diff --git a/.gitignore b/.gitignore index be7f54db9..adfd0277d 100644 --- a/.gitignore +++ b/.gitignore @@ -84,8 +84,8 @@ Derived/ ### Tuist managed dependencies ### Tuist/Dependencies -### Tuist Signing ### -Tuist/Signing +### Tuist Master.key ### +Tuist/master.key ### Secrets Secrets.xcconfig diff --git a/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/AppIcon.png b/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/AppIcon.png new file mode 100644 index 000000000..223eb6a9b Binary files /dev/null and b/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/AppIcon.png differ diff --git a/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/AppIcon_1024x1024.png b/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/AppIcon_1024x1024.png deleted file mode 100644 index 0d1eb8f84..000000000 Binary files a/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/AppIcon_1024x1024.png and /dev/null differ diff --git a/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/Contents.json b/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/Contents.json index 75e969190..cefcc878e 100644 --- a/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/Contents.json +++ b/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -1,7 +1,7 @@ { "images" : [ { - "filename" : "AppIcon_1024x1024.png", + "filename" : "AppIcon.png", "idiom" : "universal", "platform" : "ios", "size" : "1024x1024" diff --git a/Projects/Features/ArtistFeature/Sources/ViewControllers/ArtistDetailHeaderViewController.swift b/Projects/Features/ArtistFeature/Sources/ViewControllers/ArtistDetailHeaderViewController.swift index 1afb4959b..1e7e05aac 100644 --- a/Projects/Features/ArtistFeature/Sources/ViewControllers/ArtistDetailHeaderViewController.swift +++ b/Projects/Features/ArtistFeature/Sources/ViewControllers/ArtistDetailHeaderViewController.swift @@ -181,7 +181,7 @@ extension ArtistDetailHeaderViewController { artistGroupLabel.font = DesignSystemFontFamily.Pretendard.medium.font(size: 14) artistGroupLabel.textColor = DesignSystemAsset.GrayColor.gray900.color - artistGroupLabel.setLineSpacing(kernValue: -0.5) + artistGroupLabel.setTextWithAttributes(kernValue: -0.5) artistIntroLabel.font = DesignSystemFontFamily.Pretendard.medium.font(size: 14) artistIntroLabel.textColor = DesignSystemAsset.GrayColor.gray900.color @@ -189,13 +189,13 @@ extension ArtistDetailHeaderViewController { introTitleLabel.font = DesignSystemFontFamily.Pretendard.bold.font(size: 14) introTitleLabel.textColor = DesignSystemAsset.GrayColor.gray900.color - introTitleLabel.setLineSpacing(kernValue: -0.5) + introTitleLabel.setTextWithAttributes(kernValue: -0.5) introDescriptionLabel.font = DesignSystemFontFamily.Pretendard.light.font(size: 12) introDescriptionLabel.textColor = DesignSystemAsset.GrayColor.gray900.color introDescriptionLabel.textAlignment = .left introDescriptionLabel.lineBreakMode = .byWordWrapping - introDescriptionLabel.setLineSpacing(kernValue: -0.5) + introDescriptionLabel.setTextWithAttributes(kernValue: -0.5) scrollView.scrollIndicatorInsets = UIEdgeInsets(top: 0, left: 0, bottom: 0, right: -3) } diff --git a/Projects/Modules/Utility/Sources/Utils/AES256.swift b/Projects/Features/BaseFeature/Sources/AES256.swift similarity index 96% rename from Projects/Modules/Utility/Sources/Utils/AES256.swift rename to Projects/Features/BaseFeature/Sources/AES256.swift index fc4404fd8..0e0c178e8 100644 --- a/Projects/Modules/Utility/Sources/Utils/AES256.swift +++ b/Projects/Features/BaseFeature/Sources/AES256.swift @@ -1,8 +1,8 @@ // // AES256.swift -// Utility +// BaseFeature // -// Created by KTH on 2023/02/18. +// Created by KTH on 2023/11/26. // Copyright © 2023 yongbeomkwak. All rights reserved. // diff --git a/Projects/Features/CommonFeature/Resources/EditSheetView/EditSheetView.xib b/Projects/Features/CommonFeature/Resources/EditSheetView/EditSheetView.xib index 37eca9d1e..b8944a687 100644 --- a/Projects/Features/CommonFeature/Resources/EditSheetView/EditSheetView.xib +++ b/Projects/Features/CommonFeature/Resources/EditSheetView/EditSheetView.xib @@ -1,9 +1,9 @@ - + - + @@ -11,6 +11,7 @@ + @@ -23,7 +24,7 @@ - + @@ -94,7 +95,7 @@ - + diff --git a/Projects/Features/CommonFeature/Resources/SongCartView/SongCartView.xib b/Projects/Features/CommonFeature/Resources/SongCartView/SongCartView.xib index 085b9c339..b92322f3d 100644 --- a/Projects/Features/CommonFeature/Resources/SongCartView/SongCartView.xib +++ b/Projects/Features/CommonFeature/Resources/SongCartView/SongCartView.xib @@ -1,9 +1,9 @@ - + - + @@ -24,6 +24,7 @@ + @@ -178,7 +179,7 @@ - + diff --git a/Projects/Features/CommonFeature/Sources/ViewControllers/ContainSongsViewController.swift b/Projects/Features/CommonFeature/Sources/ViewControllers/ContainSongsViewController.swift index e2edd7c8d..11034c3b1 100644 --- a/Projects/Features/CommonFeature/Sources/ViewControllers/ContainSongsViewController.swift +++ b/Projects/Features/CommonFeature/Sources/ViewControllers/ContainSongsViewController.swift @@ -135,17 +135,17 @@ extension ContainSongsViewController { titleLabel.font = DesignSystemFontFamily.Pretendard.medium.font(size: 16) titleLabel.textColor = DesignSystemAsset.GrayColor.gray900.color titleLabel.text = "리스트에 담기" - titleLabel.setLineSpacing(kernValue: -0.5) + titleLabel.setTextWithAttributes(kernValue: -0.5) songCountLabel.font = DesignSystemFontFamily.Pretendard.medium.font(size: 14) songCountLabel.textColor = DesignSystemAsset.PrimaryColor.point.color songCountLabel.text = "\(viewModel.songs.count)" - songCountLabel.setLineSpacing(kernValue: -0.5) - + songCountLabel.setTextWithAttributes(kernValue: -0.5) + subTitleLabel.font = DesignSystemFontFamily.Pretendard.medium.font(size: 14) subTitleLabel.textColor = DesignSystemAsset.PrimaryColor.sub3.color subTitleLabel.text = "곡 선택" - subTitleLabel.setLineSpacing(kernValue: -0.5) + subTitleLabel.setTextWithAttributes(kernValue: -0.5) indicator.type = .circleStrokeSpin indicator.color = DesignSystemAsset.PrimaryColor.point.color diff --git a/Projects/Features/CommonFeature/Sources/ViewControllers/ContractViewController.swift b/Projects/Features/CommonFeature/Sources/ViewControllers/ContractViewController.swift index a3632d9ce..682869d11 100644 --- a/Projects/Features/CommonFeature/Sources/ViewControllers/ContractViewController.swift +++ b/Projects/Features/CommonFeature/Sources/ViewControllers/ContractViewController.swift @@ -111,8 +111,8 @@ extension ContractViewController{ titleLabel.text = type.title titleLabel.textColor = DesignSystemAsset.GrayColor.gray900.color titleLabel.font = DesignSystemFontFamily.Pretendard.medium.font(size: 16) - titleLabel.setLineSpacing(kernValue: -0.5) - + titleLabel.setTextWithAttributes(kernValue: -0.5) + DispatchQueue.global(qos: .default).async { if let url = URL(string: self.type.url), let document = PDFDocument(url: url) { DispatchQueue.main.async { diff --git a/Projects/Features/CommonFeature/Sources/ViewControllers/NewSongsViewController.swift b/Projects/Features/CommonFeature/Sources/ViewControllers/NewSongsViewController.swift index bba330c69..b2a6fce1c 100644 --- a/Projects/Features/CommonFeature/Sources/ViewControllers/NewSongsViewController.swift +++ b/Projects/Features/CommonFeature/Sources/ViewControllers/NewSongsViewController.swift @@ -54,7 +54,7 @@ extension NewSongsViewController { self.navigationTitleLabel.text = "최신 음악" self.navigationTitleLabel.font = DesignSystemFontFamily.Pretendard.medium.font(size: 16) self.navigationTitleLabel.textColor = DesignSystemAsset.GrayColor.gray900.color - self.navigationTitleLabel.setLineSpacing(kernValue: -0.5) + self.navigationTitleLabel.setTextWithAttributes(kernValue: -0.5) } private func configurePage() { diff --git a/Projects/Features/CommonFeature/Sources/ViewControllers/OpenSourceLicenseViewController.swift b/Projects/Features/CommonFeature/Sources/ViewControllers/OpenSourceLicenseViewController.swift index f9a61d3c8..7ec9bab3f 100644 --- a/Projects/Features/CommonFeature/Sources/ViewControllers/OpenSourceLicenseViewController.swift +++ b/Projects/Features/CommonFeature/Sources/ViewControllers/OpenSourceLicenseViewController.swift @@ -112,7 +112,7 @@ extension OpenSourceLicenseViewController { titleStringLabel.text = "오픈소스 라이선스" titleStringLabel.font = DesignSystemFontFamily.Pretendard.medium.font(size: 16) titleStringLabel.textColor = DesignSystemAsset.GrayColor.gray900.color - titleStringLabel.setLineSpacing(kernValue: -0.5) + titleStringLabel.setTextWithAttributes(kernValue: -0.5) tableView.tableFooterView = UIView(frame: CGRect(x: 0, y: 0, width: APP_WIDTH(), height: 56)) tableView.scrollIndicatorInsets = UIEdgeInsets(top: 0, left: 0, bottom: 56, right: 0) } diff --git a/Projects/Features/CommonFeature/Sources/ViewControllers/PlayListDetailViewController.swift b/Projects/Features/CommonFeature/Sources/ViewControllers/PlayListDetailViewController.swift index 5384abfb6..ccc8f2196 100644 --- a/Projects/Features/CommonFeature/Sources/ViewControllers/PlayListDetailViewController.swift +++ b/Projects/Features/CommonFeature/Sources/ViewControllers/PlayListDetailViewController.swift @@ -157,15 +157,15 @@ extension PlayListDetailViewController{ self.editStateLabel.text = "편집" self.editStateLabel.font = DesignSystemFontFamily.Pretendard.medium.font(size: 16) - self.editStateLabel.setLineSpacing(kernValue: -0.5) + self.editStateLabel.setTextWithAttributes(kernValue: -0.5) self.playListCountLabel.font = DesignSystemFontFamily.Pretendard.light.font(size: 14) self.playListCountLabel.textColor = DesignSystemAsset.GrayColor.gray900.color.withAlphaComponent(0.6) // opacity 60% - self.playListCountLabel.setLineSpacing(kernValue: -0.5) + self.playListCountLabel.setTextWithAttributes(kernValue: -0.5) self.playListNameLabel.font = DesignSystemFontFamily.Pretendard.bold.font(size: 20) - self.playListNameLabel.setLineSpacing(kernValue: -0.5) - + self.playListNameLabel.setTextWithAttributes(kernValue: -0.5) + playListInfoView.layer.borderWidth = 1 playListInfoView.layer.borderColor = colorFromRGB(0xFCFCFD).cgColor playListInfoView.layer.cornerRadius = 8 diff --git a/Projects/Features/CommonFeature/Sources/ViewControllers/ProfilePopViewController.swift b/Projects/Features/CommonFeature/Sources/ViewControllers/ProfilePopViewController.swift index 3ef03bc56..99c19f12d 100644 --- a/Projects/Features/CommonFeature/Sources/ViewControllers/ProfilePopViewController.swift +++ b/Projects/Features/CommonFeature/Sources/ViewControllers/ProfilePopViewController.swift @@ -50,7 +50,7 @@ public final class ProfilePopViewController: UIViewController, ViewControllerFro extension ProfilePopViewController{ private func configureUI(){ - + saveButton.backgroundColor = DesignSystemAsset.PrimaryColor.point.color saveButton.layer.cornerRadius = 12 saveButton.clipsToBounds = true saveButton.setAttributedTitle( diff --git a/Projects/Features/CommonFeature/Sources/ViewControllers/ServiceInfoViewController.swift b/Projects/Features/CommonFeature/Sources/ViewControllers/ServiceInfoViewController.swift index 97229dfd1..cf86b8ebe 100644 --- a/Projects/Features/CommonFeature/Sources/ViewControllers/ServiceInfoViewController.swift +++ b/Projects/Features/CommonFeature/Sources/ViewControllers/ServiceInfoViewController.swift @@ -135,7 +135,7 @@ extension ServiceInfoViewController { titleStringLabel.text = "서비스 정보" titleStringLabel.font = DesignSystemFontFamily.Pretendard.medium.font(size: 16) titleStringLabel.textColor = DesignSystemAsset.GrayColor.gray900.color - titleStringLabel.setLineSpacing(kernValue: -0.5) + titleStringLabel.setTextWithAttributes(kernValue: -0.5) tableView.tableHeaderView = UIView(frame: CGRect(x: 0, y: 0, width: APP_WIDTH(), height: 20)) tableView.tableFooterView = UIView(frame: CGRect(x: 0, y: 0, width: APP_WIDTH(), height: 56)) tableView.scrollIndicatorInsets = UIEdgeInsets(top: 0, left: 0, bottom: 56, right: 0) diff --git a/Projects/Features/CommonFeature/Sources/ViewControllers/TextPopupViewController.swift b/Projects/Features/CommonFeature/Sources/ViewControllers/TextPopupViewController.swift index eafc30dc4..871a5ca36 100644 --- a/Projects/Features/CommonFeature/Sources/ViewControllers/TextPopupViewController.swift +++ b/Projects/Features/CommonFeature/Sources/ViewControllers/TextPopupViewController.swift @@ -76,6 +76,7 @@ extension TextPopupViewController { ) cancelButton.setAttributedTitle(cancelAttributedString, for: .normal) + confirmButton.backgroundColor = DesignSystemAsset.PrimaryColor.point.color confirmButton.layer.cornerRadius = cancelButton.layer.cornerRadius confirmButton.clipsToBounds = true diff --git a/Projects/Features/CommonFeature/Sources/Views/CurrentPlayListTableViewCell.swift b/Projects/Features/CommonFeature/Sources/Views/CurrentPlayListTableViewCell.swift index dc4ebccd3..a8a3df391 100644 --- a/Projects/Features/CommonFeature/Sources/Views/CurrentPlayListTableViewCell.swift +++ b/Projects/Features/CommonFeature/Sources/Views/CurrentPlayListTableViewCell.swift @@ -23,10 +23,10 @@ class CurrentPlayListTableViewCell: UITableViewCell { self.playListImageView.layer.cornerRadius = 4 self.playListNameLabel.font = DesignSystemFontFamily.Pretendard.medium.font(size: 14) self.playListNameLabel.textColor = DesignSystemAsset.GrayColor.gray900.color - self.playListNameLabel.setLineSpacing(kernValue: -0.5) + self.playListNameLabel.setTextWithAttributes(kernValue: -0.5) self.playListCountLabel.font = DesignSystemFontFamily.Pretendard.light.font(size: 12) self.playListCountLabel.textColor = DesignSystemAsset.GrayColor.gray900.color - self.playListCountLabel.setLineSpacing(kernValue: -0.5) + self.playListCountLabel.setTextWithAttributes(kernValue: -0.5) } } diff --git a/Projects/Features/CommonFeature/Sources/Views/EditSheetView.swift b/Projects/Features/CommonFeature/Sources/Views/EditSheetView.swift index 0fb80dcc5..54f235ed9 100644 --- a/Projects/Features/CommonFeature/Sources/Views/EditSheetView.swift +++ b/Projects/Features/CommonFeature/Sources/Views/EditSheetView.swift @@ -22,7 +22,7 @@ public enum EditSheetSelectType { } public class EditSheetView: UIView { - + @IBOutlet weak var contentView: UIView! @IBOutlet weak var editButton: UIButton! @IBOutlet weak var shareButton: UIButton! @IBOutlet weak var profileButton: UIButton! @@ -99,7 +99,7 @@ public extension EditSheetView { } private func configureUI() { - + contentView.backgroundColor = DesignSystemAsset.PrimaryColor.point.color let titles: [String] = ["편집", "공유하기", "프로필 변경", "닉네임 수정"] let images: [UIImage] = [DesignSystemAsset.PlayListEdit.playlistEdit.image, diff --git a/Projects/Features/CommonFeature/Sources/Views/NewSongsCell.swift b/Projects/Features/CommonFeature/Sources/Views/NewSongsCell.swift index 92d0e55bc..6b9dc3a31 100644 --- a/Projects/Features/CommonFeature/Sources/Views/NewSongsCell.swift +++ b/Projects/Features/CommonFeature/Sources/Views/NewSongsCell.swift @@ -53,13 +53,13 @@ extension NewSongsCell { titleStringLabel.text = model.title titleStringLabel.textColor = DesignSystemAsset.GrayColor.gray900.color titleStringLabel.font = DesignSystemFontFamily.Pretendard.medium.font(size: 14) - titleStringLabel.setLineSpacing(kernValue: -0.5) + titleStringLabel.setTextWithAttributes(kernValue: -0.5) artistLabel.text = model.artist artistLabel.textColor = DesignSystemAsset.GrayColor.gray900.color artistLabel.font = DesignSystemFontFamily.Pretendard.light.font(size: 12) - artistLabel.setLineSpacing(kernValue: -0.5) - + artistLabel.setTextWithAttributes(kernValue: -0.5) + viewsLabel.text = model.views.addCommaToNumber() + "회" viewsLabel.font = DesignSystemFontFamily.SCoreDream._3Light.font(size: 12) diff --git a/Projects/Features/CommonFeature/Sources/Views/OpenSourceLibraryCell.swift b/Projects/Features/CommonFeature/Sources/Views/OpenSourceLibraryCell.swift index bf84cb84f..7f5d4db5f 100644 --- a/Projects/Features/CommonFeature/Sources/Views/OpenSourceLibraryCell.swift +++ b/Projects/Features/CommonFeature/Sources/Views/OpenSourceLibraryCell.swift @@ -20,11 +20,11 @@ public class OpenSourceLibraryCell: UITableViewCell { self.contentView.backgroundColor = .clear titleStringLabel.font = DesignSystemFontFamily.Pretendard.bold.font(size: 15) titleStringLabel.textColor = DesignSystemAsset.GrayColor.gray900.color - titleStringLabel.setLineSpacing(kernValue: -0.5) + titleStringLabel.setTextWithAttributes(kernValue: -0.5) titleStringLabel.numberOfLines = 0 descriptionLabel.font = DesignSystemFontFamily.Pretendard.light.font(size: 13) descriptionLabel.textColor = DesignSystemAsset.GrayColor.gray500.color - descriptionLabel.setLineSpacing(kernValue: -0.5) + descriptionLabel.setTextWithAttributes(kernValue: -0.5) descriptionLabel.lineBreakMode = .byWordWrapping descriptionLabel.numberOfLines = 0 } diff --git a/Projects/Features/CommonFeature/Sources/Views/OpenSourceLicenseCell.swift b/Projects/Features/CommonFeature/Sources/Views/OpenSourceLicenseCell.swift index 598c1b765..842c9bf57 100644 --- a/Projects/Features/CommonFeature/Sources/Views/OpenSourceLicenseCell.swift +++ b/Projects/Features/CommonFeature/Sources/Views/OpenSourceLicenseCell.swift @@ -20,11 +20,11 @@ class OpenSourceLicenseCell: UITableViewCell { self.contentView.backgroundColor = .clear titleStringLabel.font = DesignSystemFontFamily.Pretendard.bold.font(size: 18) titleStringLabel.textColor = DesignSystemAsset.GrayColor.gray900.color - titleStringLabel.setLineSpacing(kernValue: -0.5) + titleStringLabel.setTextWithAttributes(kernValue: -0.5) titleStringLabel.numberOfLines = 0 descriptionLabel.font = DesignSystemFontFamily.Pretendard.light.font(size: 13) descriptionLabel.textColor = DesignSystemAsset.GrayColor.gray500.color - descriptionLabel.setLineSpacing(kernValue: -0.5) + descriptionLabel.setTextWithAttributes(kernValue: -0.5) descriptionLabel.lineBreakMode = .byWordWrapping descriptionLabel.numberOfLines = 0 } diff --git a/Projects/Features/CommonFeature/Sources/Views/ServiceInfoCell.swift b/Projects/Features/CommonFeature/Sources/Views/ServiceInfoCell.swift index f9cf0390b..7025bc061 100644 --- a/Projects/Features/CommonFeature/Sources/Views/ServiceInfoCell.swift +++ b/Projects/Features/CommonFeature/Sources/Views/ServiceInfoCell.swift @@ -24,10 +24,10 @@ class ServiceInfoCell: UITableViewCell { self.contentView.backgroundColor = .clear titleStringLabel.font = DesignSystemFontFamily.Pretendard.medium.font(size: 16) titleStringLabel.textColor = DesignSystemAsset.GrayColor.gray900.color - titleStringLabel.setLineSpacing(kernValue: -0.5) + titleStringLabel.setTextWithAttributes(kernValue: -0.5) subTitleStringLabel.font = DesignSystemFontFamily.Pretendard.light.font(size: 12) subTitleStringLabel.textColor = DesignSystemAsset.GrayColor.gray500.color - subTitleStringLabel.setLineSpacing(kernValue: -0.5) + subTitleStringLabel.setTextWithAttributes(kernValue: -0.5) } } diff --git a/Projects/Features/CommonFeature/Sources/Views/SongCartView.swift b/Projects/Features/CommonFeature/Sources/Views/SongCartView.swift index 6516f6cd0..e7b86e176 100644 --- a/Projects/Features/CommonFeature/Sources/Views/SongCartView.swift +++ b/Projects/Features/CommonFeature/Sources/Views/SongCartView.swift @@ -35,6 +35,7 @@ public class SongCartView: UIView { @IBOutlet weak var selectCountView: UIView! @IBOutlet weak var selectCountViewLeadingConstraint: NSLayoutConstraint! @IBOutlet weak var selectCountLabel: UILabel! + @IBOutlet weak var stackContentView: UIView! @IBOutlet weak var bottomSpaceView: UIView! @IBOutlet weak var bottomSpaceViewHeight: NSLayoutConstraint! @@ -199,6 +200,7 @@ public extension SongCartView { } } + stackContentView.backgroundColor = DesignSystemAsset.PrimaryColor.point.color bottomSpaceView.backgroundColor = DesignSystemAsset.PrimaryColor.point.color bottomSpaceViewHeight.constant = SAFEAREA_BOTTOM_HEIGHT() layoutIfNeeded() diff --git a/Projects/Features/CommonFeature/Sources/Views/WarningView.swift b/Projects/Features/CommonFeature/Sources/Views/WarningView.swift index 3aff8b74f..a99a5d18e 100644 --- a/Projects/Features/CommonFeature/Sources/Views/WarningView.swift +++ b/Projects/Features/CommonFeature/Sources/Views/WarningView.swift @@ -42,7 +42,7 @@ extension WarningView { private func configureUI() { warningImageView.image = DesignSystemAsset.Search.warning.image warningLabelView.textColor = DesignSystemAsset.GrayColor.gray900.color - warningLabelView.setLineSpacing(kernValue: -0.5) + warningLabelView.setTextWithAttributes(kernValue: -0.5) warningLabelView.font = DesignSystemFontFamily.Pretendard.medium.font(size: 14) } } diff --git a/Projects/Features/HomeFeature/Sources/ViewControllers/HomeViewController.swift b/Projects/Features/HomeFeature/Sources/ViewControllers/HomeViewController.swift index 1d7ba3e53..79269a5ca 100644 --- a/Projects/Features/HomeFeature/Sources/ViewControllers/HomeViewController.swift +++ b/Projects/Features/HomeFeature/Sources/ViewControllers/HomeViewController.swift @@ -298,7 +298,7 @@ extension HomeViewController { latestSongEmptyLabel.text = "현재 집계된 음악이 없습니다." latestSongEmptyLabel.textColor = DesignSystemAsset.GrayColor.gray900.color latestSongEmptyLabel.font = DesignSystemFontFamily.Pretendard.medium.font(size: 14) - latestSongEmptyLabel.setLineSpacing(kernValue: -0.5) + latestSongEmptyLabel.setTextWithAttributes(kernValue: -0.5) latestSongEmptyLabel.textAlignment = .center scrollView.refreshControl = refreshControl scrollView.delegate = self diff --git a/Projects/Features/PlayerFeature/Sources/ViewControllers/PlayerViewController.swift b/Projects/Features/PlayerFeature/Sources/ViewControllers/PlayerViewController.swift index db554fa1b..72951548e 100644 --- a/Projects/Features/PlayerFeature/Sources/ViewControllers/PlayerViewController.swift +++ b/Projects/Features/PlayerFeature/Sources/ViewControllers/PlayerViewController.swift @@ -115,18 +115,25 @@ private extension PlayerViewController { let input = PlayerViewModel.Input( viewWillAppearEvent: self.rx.methodInvoked(#selector(UIViewController.viewWillAppear)).map {_ in }, closeButtonDidTapEvent: self.playerView.closeButton.tapPublisher(), - playButtonDidTapEvent: self.playerView.playButton.tapPublisher(), + playButtonDidTapEvent: Publishers.Merge( + self.playerView.playButton.tapPublisher(), + self.miniPlayerView.playButton.tapPublisher() + ).eraseToAnyPublisher(), prevButtonDidTapEvent: self.playerView.prevButton.rx.tap.asObservable(), - nextButtonDidTapEvent: self.playerView.nextButton.rx.tap.asObservable(), + nextButtonDidTapEvent: Observable.merge( + self.playerView.nextButton.rx.tap.asObservable(), + self.miniPlayerView.nextButton.rx.tap.asObservable() + ), sliderValueChangedEvent: self.playerView.playTimeSlider.rx.value.changed.asObservable(), repeatButtonDidTapEvent: self.playerView.repeatButton.tapPublisher(), shuffleButtonDidTapEvent: self.playerView.shuffleButton.tapPublisher(), likeButtonDidTapEvent: self.playerView.likeButton.tapPublisher(), addPlaylistButtonDidTapEvent: self.playerView.addPlayistButton.tapPublisher(), - playlistButtonDidTapEvent: self.playerView.playistButton.tapPublisher(), - miniExtendButtonDidTapEvent: self.miniPlayerView.extendButton.tapPublisher(), - miniPlayButtonDidTapEvent: self.miniPlayerView.playButton.tapPublisher(), - miniCloseButtonDidTapEvent: self.miniPlayerView.closeButton.tapPublisher() + playlistButtonDidTapEvent: Publishers.Merge( + self.playerView.playistButton.tapPublisher(), + self.miniPlayerView.playlistButton.tapPublisher() + ).eraseToAnyPublisher(), + miniExtendButtonDidTapEvent: self.miniPlayerView.extendButton.tapPublisher() ) let output = self.viewModel.transform(from: input) @@ -214,11 +221,6 @@ private extension PlayerViewController { placeholder: placeholderImage, options: transitionOptions ) - self.miniPlayerView.thumbnailImageView.kf.setImage( - with: sdURL, - placeholder: placeholderImage, - options: transitionOptions - ) }.store(in: &subscription) } diff --git a/Projects/Features/PlayerFeature/Sources/ViewControllers/PlaylistViewController.swift b/Projects/Features/PlayerFeature/Sources/ViewControllers/PlaylistViewController.swift index 5f431d93b..1c080eedb 100644 --- a/Projects/Features/PlayerFeature/Sources/ViewControllers/PlaylistViewController.swift +++ b/Projects/Features/PlayerFeature/Sources/ViewControllers/PlaylistViewController.swift @@ -129,6 +129,7 @@ private extension PlaylistViewController { private func bindViewModel() { let input = PlaylistViewModel.Input( + viewWillAppearEvent: self.rx.methodInvoked(#selector(UIViewController.viewWillAppear)).map { _ in }, closeButtonDidTapEvent: playlistView.closeButton.tapPublisher, editButtonDidTapEvent: playlistView.editButton.tapPublisher, repeatButtonDidTapEvent: playlistView.repeatButton.tapPublisher, @@ -145,6 +146,7 @@ private extension PlaylistViewController { ) let output = self.viewModel.transform(from: input) + bindCountOfSongs(output: output) bindPlaylistTableView(output: output) bindSongCart(output: output) bindCloseButton(output: output) @@ -156,6 +158,13 @@ private extension PlaylistViewController { bindwaveStreamAnimationView(output: output) } + private func bindCountOfSongs(output: PlaylistViewModel.Output) { + output.countOfSongs.sink { [weak self] count in + guard let self else { return } + self.playlistView.countLabel.text = count == 0 ? "" : String(count) + }.store(in: &subscription) + } + private func bindPlaylistTableView(output: PlaylistViewModel.Output) { playlistView.playlistTableView.rx .sentMessage(#selector(playlistView.playlistTableView.reloadData)) diff --git a/Projects/Features/PlayerFeature/Sources/ViewModels/PlayerViewModel.swift b/Projects/Features/PlayerFeature/Sources/ViewModels/PlayerViewModel.swift index ca0d2768d..4a50f87e9 100644 --- a/Projects/Features/PlayerFeature/Sources/ViewModels/PlayerViewModel.swift +++ b/Projects/Features/PlayerFeature/Sources/ViewModels/PlayerViewModel.swift @@ -30,8 +30,6 @@ final class PlayerViewModel: ViewModelType { let addPlaylistButtonDidTapEvent: AnyPublisher let playlistButtonDidTapEvent: AnyPublisher let miniExtendButtonDidTapEvent: AnyPublisher - let miniPlayButtonDidTapEvent: AnyPublisher - let miniCloseButtonDidTapEvent: AnyPublisher } struct Output { var playerState = CurrentValueSubject(.unstarted) @@ -112,7 +110,7 @@ final class PlayerViewModel: ViewModelType { } private func bindInput(input: Input, output: Output) { - input.playButtonDidTapEvent.merge(with: input.miniPlayButtonDidTapEvent).sink { [weak self] _ in + input.playButtonDidTapEvent.sink { [weak self] _ in guard let self else { return } let state = self.playState.state if state == .playing { @@ -130,10 +128,6 @@ final class PlayerViewModel: ViewModelType { self?.playState.switchPlayerMode(to: .full) }.store(in: &subscription) - input.miniCloseButtonDidTapEvent.sink { [weak self] _ in - self?.playState.switchPlayerMode(to: .close) - self?.playState.stop() - }.store(in: &subscription) input.repeatButtonDidTapEvent.sink { [weak self] _ in guard let self else { return } diff --git a/Projects/Features/PlayerFeature/Sources/ViewModels/PlaylistViewModel.swift b/Projects/Features/PlayerFeature/Sources/ViewModels/PlaylistViewModel.swift index 3ab30a477..8caca13d7 100644 --- a/Projects/Features/PlayerFeature/Sources/ViewModels/PlaylistViewModel.swift +++ b/Projects/Features/PlayerFeature/Sources/ViewModels/PlaylistViewModel.swift @@ -21,6 +21,7 @@ internal typealias PlayListSectionModel = SectionModel final class PlaylistViewModel: ViewModelType { struct Input { + let viewWillAppearEvent: Observable let closeButtonDidTapEvent: AnyPublisher let editButtonDidTapEvent: AnyPublisher let repeatButtonDidTapEvent: AnyPublisher @@ -48,6 +49,7 @@ final class PlaylistViewModel: ViewModelType { var shuffleMode = CurrentValueSubject(.off) let dataSource: BehaviorRelay<[PlayListSectionModel]> = BehaviorRelay(value: []) let indexOfSelectedSongs: BehaviorRelay<[Int]> = BehaviorRelay(value: []) + let countOfSongs = CurrentValueSubject(0) } private let playState = PlayState.shared @@ -85,6 +87,12 @@ final class PlaylistViewModel: ViewModelType { } private func bindInput(input: Input, output: Output) { + input.viewWillAppearEvent.subscribe { [weak self] _ in + guard let self else { return } + let count = self.playState.playList.count + output.countOfSongs.send(count) + }.disposed(by: disposeBag) + input.closeButtonDidTapEvent.sink { _ in output.willClosePlaylist.send() }.store(in: &subscription) diff --git a/Projects/Features/PlayerFeature/Sources/Views/LyricsTabelViewCell.swift b/Projects/Features/PlayerFeature/Sources/Views/LyricsTabelViewCell.swift index 33ecdb570..f39d23a7c 100644 --- a/Projects/Features/PlayerFeature/Sources/Views/LyricsTabelViewCell.swift +++ b/Projects/Features/PlayerFeature/Sources/Views/LyricsTabelViewCell.swift @@ -15,15 +15,10 @@ import Utility internal class LyricsTableViewCell: UITableViewCell { static let identifier = "LyricsTableViewCell" static let lyricMaxWidth: CGFloat = (270 * APP_WIDTH())/375.0 - - private lazy var lyricsLabel = UILabel().then { - $0.font = .init(font: DesignSystemFontFamily.Pretendard.medium, size: 14) - $0.textColor = DesignSystemAsset.GrayColor.gray500.color - $0.setLineSpacing(kernValue: -0.5, lineHeightMultiple: 1.44) - $0.text = "" + + private lazy var lyricsLabel = WMLabel(text: "가사", textColor: DesignSystemAsset.GrayColor.gray500.color, font: .t6(weight: .medium), alignment: .center, lineHeight: UIFont.WMFontSystem.t6().lineHeight, kernValue: -0.5).then { $0.numberOfLines = 0 $0.preferredMaxLayoutWidth = LyricsTableViewCell.lyricMaxWidth - $0.textAlignment = .center } override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) { diff --git a/Projects/Features/PlayerFeature/Sources/Views/MiniPlayerView.swift b/Projects/Features/PlayerFeature/Sources/Views/MiniPlayerView.swift index 18a2b76a0..2e2dfe502 100644 --- a/Projects/Features/PlayerFeature/Sources/Views/MiniPlayerView.swift +++ b/Projects/Features/PlayerFeature/Sources/Views/MiniPlayerView.swift @@ -34,22 +34,16 @@ final class MiniPlayerView: UIView { $0.backgroundColor = DesignSystemAsset.PrimaryColor.point.color } - internal lazy var thumbnailImageView = UIImageView().then { - $0.image = DesignSystemAsset.Player.dummyThumbnailSmall.image - $0.contentMode = .scaleAspectFill - $0.layer.cornerRadius = 4 - $0.clipsToBounds = true + internal lazy var titleArtistStackView: UIStackView = UIStackView(arrangedSubviews: [titleLabel, artistLabel]).then { + $0.axis = .vertical + $0.distribution = .fill } - - internal lazy var titleArtistLabelView: UIView = UIView() - + internal lazy var titleLabel = MarqueeLabel().then { $0.font = .init(font: DesignSystemFontFamily.Pretendard.medium, size: 14) $0.textColor = DesignSystemAsset.GrayColor.gray900.color - $0.setLineSpacing(kernValue: -0.5, lineHeightMultiple: 1.44) - $0.text = "리와인드(RE:WIND)" - $0.setLineHeight(lineHeight: 24) - $0.lineBreakMode = .byTruncatingTail + $0.text = "제목" + $0.setTextWithAttributes(lineHeight: 24, kernValue: -0.5) $0.leadingBuffer = 0 $0.trailingBuffer = 35 $0.fadeLength = 3 @@ -60,10 +54,8 @@ final class MiniPlayerView: UIView { internal lazy var artistLabel = MarqueeLabel().then { $0.font = .init(font: DesignSystemFontFamily.Pretendard.light, size: 12) $0.textColor = DesignSystemAsset.GrayColor.gray900.color - $0.setLineSpacing(kernValue: -0.5, lineHeightMultiple: 1.26) - $0.text = "이세계아이돌" - $0.setLineHeight(lineHeight: 18) - $0.lineBreakMode = .byTruncatingTail + $0.text = "아티스트" + $0.setTextWithAttributes(lineHeight: 18, kernValue: -0.5) $0.leadingBuffer = 0 $0.trailingBuffer = 20 $0.fadeLength = 3 @@ -76,11 +68,20 @@ final class MiniPlayerView: UIView { $0.tintColor = .systemGray } + internal lazy var nextButton = UIButton().then { + $0.setImage(DesignSystemAsset.Player.nextOn.image, for: .normal) + $0.tintColor = .systemGray + } + internal lazy var closeButton = UIButton().then { $0.setImage(DesignSystemAsset.Player.miniClose.image, for: .normal) $0.tintColor = .systemGray } + internal lazy var playlistButton = UIButton().then { + $0.setImage(DesignSystemAsset.Player.playList.image, for: .normal) + } + override init(frame: CGRect) { super.init(frame: frame) configureUI() @@ -99,12 +100,10 @@ private extension MiniPlayerView { self.configureBlur() self.configureContent() self.configurePlayTime() - self.configureThumbnail() self.configureTitleArtist() - self.configureTitleLabel() - self.configureArtistLabel() self.configurePlayButton() - self.configureCloseButton() + self.configureNextButton() + self.configurePlaylistButton() } private func configureSubViews() { @@ -112,13 +111,11 @@ private extension MiniPlayerView { self.addSubview(contentView) self.contentView.addSubview(totalPlayTimeView) self.totalPlayTimeView.addSubview(currentPlayTimeView) - self.contentView.addSubview(thumbnailImageView) - self.contentView.addSubview(titleArtistLabelView) - self.titleArtistLabelView.addSubview(titleLabel) - self.titleArtistLabelView.addSubview(artistLabel) + self.contentView.addSubview(titleArtistStackView) self.contentView.addSubview(extendButton) self.contentView.addSubview(playButton) - self.contentView.addSubview(closeButton) + self.contentView.addSubview(nextButton) + self.contentView.addSubview(playlistButton) } private func configureBlur() { @@ -149,47 +146,33 @@ private extension MiniPlayerView { } } - private func configureThumbnail() { - let height = 40 - let width = height * 16 / 9 - thumbnailImageView.snp.makeConstraints { - $0.centerY.equalToSuperview() - $0.left.equalToSuperview().offset(20) - $0.width.equalTo(width) - $0.height.equalTo(height) - } - } - private func configureTitleArtist() { - titleArtistLabelView.snp.makeConstraints { + titleArtistStackView.snp.makeConstraints { $0.top.equalToSuperview().offset(7) $0.bottom.equalToSuperview().offset(-7) - $0.left.equalTo(thumbnailImageView.snp.right).offset(8) + $0.left.equalToSuperview().offset(20) $0.right.equalTo(playButton.snp.left).offset(-12) } } - private func configureTitleLabel() { - titleLabel.snp.makeConstraints { - $0.top.left.right.equalToSuperview() - } - } - private func configureArtistLabel() { - artistLabel.snp.makeConstraints { - $0.bottom.left.right.equalToSuperview() + private func configurePlayButton() { + playButton.snp.makeConstraints { + $0.centerY.equalToSuperview() + $0.right.equalTo(nextButton.snp.left).offset(-20) + $0.width.height.equalTo(32) } } - private func configurePlayButton() { - playButton.snp.makeConstraints { + private func configureNextButton() { + nextButton.snp.makeConstraints { $0.centerY.equalToSuperview() - $0.right.equalTo(closeButton.snp.left).offset(-20) + $0.right.equalTo(playlistButton.snp.left).offset(-20) $0.width.height.equalTo(32) } } - private func configureCloseButton() { - closeButton.snp.makeConstraints { + private func configurePlaylistButton() { + playlistButton.snp.makeConstraints { $0.centerY.equalToSuperview() $0.right.equalToSuperview().offset(-16) $0.width.height.equalTo(32) diff --git a/Projects/Features/PlayerFeature/Sources/Views/PlayerView.swift b/Projects/Features/PlayerFeature/Sources/Views/PlayerView.swift index 71c7a93aa..395047b43 100644 --- a/Projects/Features/PlayerFeature/Sources/Views/PlayerView.swift +++ b/Projects/Features/PlayerFeature/Sources/Views/PlayerView.swift @@ -39,27 +39,19 @@ public final class PlayerView: UIView { $0.tintColor = .systemGray } - internal lazy var titleLabel = MarqueeLabel().then { - $0.font = .init(font: DesignSystemFontFamily.Pretendard.medium, size: 16) - $0.textColor = DesignSystemAsset.GrayColor.gray900.color - $0.setLineSpacing(kernValue: -0.5, lineHeightMultiple: 1.26) - $0.setLineHeight(lineHeight: 24) - $0.lineBreakMode = .byTruncatingTail - $0.textAlignment = .center - $0.leadingBuffer = 0 - $0.trailingBuffer = 35 - $0.fadeLength = 3 - $0.animationDelay = 1 - $0.speed = .rate(30) + internal lazy var titleArtistStackView: UIStackView = UIStackView(arrangedSubviews: [titleLabel, artistLabel]).then { + $0.axis = .vertical + $0.distribution = .fill } + internal lazy var titleLabel = WMFlowLabel(text: "제목", textColor: DesignSystemAsset.GrayColor.gray900.color, font: .t5(weight: .medium), alignment: .center, lineHeight: UIFont.WMFontSystem.t5().lineHeight, kernValue: -0.5, leadingBuffer: 0, trailingBuffer: 35) + internal lazy var artistLabel = MarqueeLabel().then { $0.font = .init(font: DesignSystemFontFamily.Pretendard.medium, size: 14) $0.textColor = DesignSystemAsset.GrayColor.gray900.color $0.alpha = 0.6 - $0.setLineSpacing(kernValue: -0.5, lineHeightMultiple: 1.2) - $0.setLineHeight(lineHeight: 20) - $0.lineBreakMode = .byTruncatingTail + $0.text = "아티스트" + $0.setTextWithAttributes(lineHeight: 20, kernValue: -0.5) $0.textAlignment = .center $0.leadingBuffer = 0 $0.trailingBuffer = 20 @@ -88,7 +80,7 @@ public final class PlayerView: UIView { let circleSize: CGFloat = 8.0 let circleImage: UIImage? = makeCircleWith(size: CGSize(width: circleSize, height: circleSize), - color: colorFromRGB(0x08DEF7), + color: DesignSystemAsset.PrimaryColor.point.color, padding: 20) $0.layer.cornerRadius = 1 $0.setThumbImage(circleImage, for: .normal) @@ -102,15 +94,15 @@ public final class PlayerView: UIView { internal lazy var currentPlayTimeLabel = UILabel().then { $0.font = .init(font: DesignSystemFontFamily.Pretendard.medium, size: 12) $0.textColor = DesignSystemAsset.PrimaryColor.point.color - $0.setLineSpacing(kernValue: -0.5, lineHeightMultiple: 1.26) $0.text = "-:--" + $0.setTextWithAttributes(lineHeight: 18, kernValue: -0.5, lineHeightMultiple: 1.26) } internal lazy var totalPlayTimeLabel = UILabel().then { $0.font = .init(font: DesignSystemFontFamily.Pretendard.medium, size: 12) $0.textColor = DesignSystemAsset.GrayColor.gray400.color - $0.setLineSpacing(kernValue: -0.5, lineHeightMultiple: 1.26) $0.text = "-:--" + $0.setTextWithAttributes(lineHeight: 18, kernValue: -0.5, lineHeightMultiple: 1.26) } private lazy var buttonBarView: UIView = UIView() @@ -156,14 +148,16 @@ public final class PlayerView: UIView { internal lazy var likeButton = LikeButton().then { $0.titleLabel.font = UIFont(font: DesignSystemFontFamily.Pretendard.medium, size: 12) - $0.titleLabel.setLineSpacing(kernValue: -0.5, lineHeightMultiple: 0.98) + $0.title = "좋아요" + $0.titleLabel.setTextWithAttributes(lineHeight: 14, kernValue: -0.5, lineHeightMultiple: 0.98) $0.isLiked = false } internal lazy var viewsView = VerticalImageButton().then { $0.image = DesignSystemAsset.Player.views.image $0.titleLabel.font = UIFont(font: DesignSystemFontFamily.Pretendard.medium, size: 12) - $0.titleLabel.setLineSpacing(kernValue: -0.5, lineHeightMultiple: 0.98) + $0.title = "조회수" + $0.titleLabel.setTextWithAttributes(lineHeight: 14, kernValue: -0.5, lineHeightMultiple: 0.98) $0.titleLabel.textColor = DesignSystemAsset.GrayColor.gray400.color } @@ -171,7 +165,7 @@ public final class PlayerView: UIView { $0.image = DesignSystemAsset.Player.playerMusicAdd.image $0.title = "노래담기" $0.titleLabel.font = UIFont(font: DesignSystemFontFamily.Pretendard.medium, size: 12) - $0.titleLabel.setLineSpacing(kernValue: -0.5, lineHeightMultiple: 0.98) + $0.titleLabel.setTextWithAttributes(lineHeight: 14, kernValue: -0.5, lineHeightMultiple: 0.98) $0.titleLabel.textColor = DesignSystemAsset.GrayColor.gray400.color } @@ -179,7 +173,7 @@ public final class PlayerView: UIView { $0.image = DesignSystemAsset.Player.playList.image $0.title = "재생목록" $0.titleLabel.font = UIFont(font: DesignSystemFontFamily.Pretendard.medium, size: 12) - $0.titleLabel.setLineSpacing(kernValue: -0.5, lineHeightMultiple: 0.98) + $0.titleLabel.setTextWithAttributes(lineHeight: 14, kernValue: -0.5, lineHeightMultiple: 0.98) $0.titleLabel.textColor = DesignSystemAsset.GrayColor.gray400.color } @@ -231,8 +225,7 @@ private extension PlayerView { self.contentView.addSubview(bottomBarView) self.titleBarView.addSubview(closeButton) - self.titleBarView.addSubview(titleLabel) - self.titleBarView.addSubview(artistLabel) + self.titleBarView.addSubview(titleArtistStackView) self.playTimeView.addSubview(currentPlayTimeLabel) self.playTimeView.addSubview(totalPlayTimeLabel) @@ -284,13 +277,10 @@ private extension PlayerView { $0.left.equalToSuperview().offset(20) $0.width.height.equalTo(32) } - titleLabel.snp.makeConstraints { + titleArtistStackView.snp.makeConstraints { + $0.centerX.centerY.equalToSuperview() $0.top.equalToSuperview().offset(2) - $0.left.equalTo(closeButton.snp.right).offset(10) - $0.right.equalToSuperview().offset(-62) - } - artistLabel.snp.makeConstraints { - $0.top.equalTo(titleLabel.snp.bottom) + $0.bottom.equalToSuperview().offset(-2) $0.left.equalTo(closeButton.snp.right).offset(10) $0.right.equalToSuperview().offset(-62) } diff --git a/Projects/Features/PlayerFeature/Sources/Views/PlaylistTableViewCell.swift b/Projects/Features/PlayerFeature/Sources/Views/PlaylistTableViewCell.swift index e8f3350e7..bf2ca22f1 100644 --- a/Projects/Features/PlayerFeature/Sources/Views/PlaylistTableViewCell.swift +++ b/Projects/Features/PlayerFeature/Sources/Views/PlaylistTableViewCell.swift @@ -29,12 +29,17 @@ internal class PlaylistTableViewCell: UITableViewCell { $0.clipsToBounds = true } + internal lazy var titleArtistStackView = UIStackView(arrangedSubviews: [titleLabel, artistLabel]).then { + $0.axis = .vertical + $0.distribution = .fill + } + internal lazy var titleLabel = UILabel().then { $0.font = .init(font: DesignSystemFontFamily.Pretendard.medium, size: 14) $0.textColor = DesignSystemAsset.GrayColor.gray900.color - $0.setLineSpacing(kernValue: -0.5, lineHeightMultiple: 1.44) $0.text = "곡 제목" - $0.setLineHeight(lineHeight: 24) + $0.setTextWithAttributes(lineHeight: 24, kernValue: -0.5) + $0.textAlignment = .left $0.lineBreakMode = .byTruncatingTail } @@ -42,9 +47,8 @@ internal class PlaylistTableViewCell: UITableViewCell { internal lazy var artistLabel = UILabel().then { $0.font = .init(font: DesignSystemFontFamily.Pretendard.light, size: 12) $0.textColor = DesignSystemAsset.GrayColor.gray900.color - $0.setLineSpacing(kernValue: -0.5, lineHeightMultiple: 1.26) $0.text = "아티스트명" - $0.setLineHeight(lineHeight: 18) + $0.setTextWithAttributes(lineHeight: 18, kernValue: -0.5) $0.textAlignment = .left $0.lineBreakMode = .byTruncatingTail } @@ -93,8 +97,7 @@ internal class PlaylistTableViewCell: UITableViewCell { private func configureContents() { self.backgroundColor = .clear self.contentView.addSubview(self.thumbnailImageView) - self.contentView.addSubview(self.titleLabel) - self.contentView.addSubview(self.artistLabel) + self.contentView.addSubview(self.titleArtistStackView) self.contentView.addSubview(self.playImageView) self.contentView.addSubview(self.waveStreamAnimationView) self.contentView.addSubview(self.superButton) @@ -108,16 +111,11 @@ internal class PlaylistTableViewCell: UITableViewCell { $0.height.equalTo(height) } - titleLabel.snp.makeConstraints { - $0.left.equalTo(thumbnailImageView.snp.right).offset(8) - $0.right.equalTo(playImageView.snp.left).offset(-16) - $0.bottom.equalTo(contentView.snp.centerY) - } - - artistLabel.snp.makeConstraints { + titleArtistStackView.snp.makeConstraints { + $0.top.equalTo(thumbnailImageView.snp.top) $0.left.equalTo(thumbnailImageView.snp.right).offset(8) $0.right.equalTo(playImageView.snp.left).offset(-16) - $0.top.equalTo(contentView.snp.centerY) + $0.bottom.equalTo(thumbnailImageView.snp.bottom) } playImageView.snp.makeConstraints { diff --git a/Projects/Features/PlayerFeature/Sources/Views/PlaylistView.swift b/Projects/Features/PlayerFeature/Sources/Views/PlaylistView.swift index 7ae085fc7..6290c53c9 100644 --- a/Projects/Features/PlayerFeature/Sources/Views/PlaylistView.swift +++ b/Projects/Features/PlayerFeature/Sources/Views/PlaylistView.swift @@ -20,19 +20,34 @@ public final class PlaylistView: UIView { private lazy var contentView = UIView() - internal lazy var titleBarView: UIView = UIView() + internal lazy var titleBarView = UIView() internal lazy var closeButton = UIButton().then { $0.setImage(DesignSystemAsset.Navigation.close.image, for: .normal) $0.tintColor = .systemGray } - internal lazy var titleLabel = UILabel().then { - $0.font = .init(font: DesignSystemFontFamily.Pretendard.medium, size: 16) - $0.textColor = DesignSystemAsset.GrayColor.gray900.color - $0.setLineSpacing(kernValue: -0.5, lineHeightMultiple: 1.26) - $0.text = "재생목록" - $0.setLineHeight(lineHeight: 24) + internal lazy var titleCountStackView = UIStackView(arrangedSubviews: [titleLabel, countLabel]).then { + $0.axis = .horizontal + $0.distribution = .fill + $0.spacing = 4 + } + +// internal lazy var titleLabel = UILabel().then { +// $0.font = .init(font: DesignSystemFontFamily.Pretendard.medium, size: 16) +// $0.textColor = DesignSystemAsset.GrayColor.gray900.color +// $0.text = "재생목록" +// $0.setTextWithAttributes(lineHeight: 24, kernValue: -0.5) +// $0.textAlignment = .center +// } + + lazy var titleLabel = WMLabel(text: "재생목록", textColor: DesignSystemAsset.GrayColor.gray900.color, font: .t5(weight: .medium), alignment: .center, lineHeight: 24, kernValue: -0.5) + + internal lazy var countLabel = UILabel().then { + $0.font = .init(font: DesignSystemFontFamily.Pretendard.bold, size: 18) + $0.textColor = DesignSystemAsset.PrimaryColor.point.color + $0.text = "0" + $0.setTextWithAttributes(lineHeight: 28, kernValue: -0.5) $0.textAlignment = .center } @@ -141,7 +156,7 @@ private extension PlaylistView { self.addSubview(contentView) contentView.addSubview(titleBarView) titleBarView.addSubview(closeButton) - titleBarView.addSubview(titleLabel) + titleBarView.addSubview(titleCountStackView) titleBarView.addSubview(editButton) contentView.addSubview(playlistTableView) contentView.addSubview(blurEffectView) @@ -186,7 +201,7 @@ private extension PlaylistView { $0.centerY.equalToSuperview() } - titleLabel.snp.makeConstraints { + titleCountStackView.snp.makeConstraints { $0.centerX.centerY.equalToSuperview() } diff --git a/Projects/Features/RootFeature/Sources/ViewControllers/IntroViewController.swift b/Projects/Features/RootFeature/Sources/ViewControllers/IntroViewController.swift index 1a173b57f..169137d00 100644 --- a/Projects/Features/RootFeature/Sources/ViewControllers/IntroViewController.swift +++ b/Projects/Features/RootFeature/Sources/ViewControllers/IntroViewController.swift @@ -42,8 +42,16 @@ extension IntroViewController { private func inputBind() { input.fetchPermissionCheck.onNext(()) } +} +extension IntroViewController { private func outputBind() { + permissionResult() + appInfoResult() + userInfoAndLottieEnded() + } + + private func permissionResult() { output.permissionResult .do(onNext: { [weak self] (permission) in guard let self = self else { return } @@ -55,24 +63,23 @@ extension IntroViewController { self.present(permission, animated: true) }) .filter { return ($0 ?? false) == true } - .do(onNext: { [weak self] (_) in - guard let self = self else { return } - self.lottiePlay() - self.input.startLottieAnimation.onNext(()) - }) .map{ _ in () } .bind(to: input.fetchAppCheck) .disposed(by: disposeBag) - + } + + private func appInfoResult(){ output.appInfoResult .withUnretained(self) .subscribe(onNext: { owner, result in switch result { case let .success(entity): + owner.lottiePlay(specialLogo: entity.specialLogo) + var textPopupVc: TextPopupViewController let updateTitle: String = "왁타버스 뮤직이 업데이트 되었습니다." let updateMessage: String = "최신 버전으로 업데이트 후 이용하시기 바랍니다.\n감사합니다." - + switch entity.flag { case .normal: owner.input.fetchUserInfoCheck.onNext(()) @@ -131,6 +138,7 @@ extension IntroViewController { owner.showPanModal(content: textPopupVc) case let .failure(error): + owner.lottiePlay(specialLogo: false) owner.showPanModal( content: TextPopupViewController.viewController( text: error.asWMError.errorDescription ?? "", @@ -141,17 +149,20 @@ extension IntroViewController { } }) .disposed(by: disposeBag) - + } + + private func userInfoAndLottieEnded() { Observable.zip( output.userInfoResult, - output.endLottieAnimation + output.endedLottieAnimation ) { (result, _) -> Result in return result } .withUnretained(self) .subscribe(onNext: { (owner, result) in switch result{ - case .success(_): + case let .success(suc): + DEBUG_LOG("success: \(suc)✅✅") owner.showTabBar() case .failure(let error): @@ -177,13 +188,17 @@ extension IntroViewController { self.navigationController?.pushViewController(viewController, animated: false) } - private func lottiePlay() { - let animationView = LottieAnimationView(name: "Splash_Logo_Main", bundle: DesignSystemResources.bundle) + private func lottiePlay(specialLogo: Bool) { + let animationView = LottieAnimationView( + name: specialLogo ? "Splash_Logo_Special" : "Splash_Logo_Main", + bundle: DesignSystemResources.bundle + ) animationView.frame = self.logoContentView.bounds animationView.backgroundColor = .clear animationView.contentMode = .scaleAspectFill animationView.loopMode = .playOnce - + animationView.clipsToBounds = false + self.logoContentView.addSubview(animationView) let originWidth: CGFloat = 156.0 @@ -199,6 +214,9 @@ extension IntroViewController { $0.centerX.equalTo(self.logoContentView.snp.centerX) $0.centerY.equalTo(self.logoContentView.snp.centerY) } - animationView.play() + + animationView.play { _ in + self.input.endedLottieAnimation.onNext(()) + } } } diff --git a/Projects/Features/RootFeature/Sources/ViewControllers/PermissionViewController.swift b/Projects/Features/RootFeature/Sources/ViewControllers/PermissionViewController.swift index 986f9294b..4a8713c76 100644 --- a/Projects/Features/RootFeature/Sources/ViewControllers/PermissionViewController.swift +++ b/Projects/Features/RootFeature/Sources/ViewControllers/PermissionViewController.swift @@ -136,6 +136,7 @@ extension PermissionViewController { .kern: -0.5] ) self.confirmButton.setAttributedTitle(confirmAttributedString, for: .normal) + self.confirmButton.backgroundColor = DesignSystemAsset.PrimaryColor.point.color self.borderViewWidthConstraint.constant = APP_WIDTH() < 375 ? (APP_WIDTH()-40.0) : 335.0 self.view.layoutIfNeeded() diff --git a/Projects/Features/RootFeature/Sources/ViewModels/IntroViewModel.swift b/Projects/Features/RootFeature/Sources/ViewModels/IntroViewModel.swift index 09db1aa65..1792270dd 100644 --- a/Projects/Features/RootFeature/Sources/ViewModels/IntroViewModel.swift +++ b/Projects/Features/RootFeature/Sources/ViewModels/IntroViewModel.swift @@ -26,14 +26,14 @@ final public class IntroViewModel: ViewModelType { var fetchPermissionCheck: PublishSubject = PublishSubject() var fetchAppCheck: PublishSubject = PublishSubject() var fetchUserInfoCheck: PublishSubject = PublishSubject() - var startLottieAnimation: PublishSubject = PublishSubject() + var endedLottieAnimation: PublishSubject = PublishSubject() } public struct Output { var permissionResult: PublishSubject = PublishSubject() var appInfoResult: PublishSubject> = PublishSubject() var userInfoResult: PublishSubject> = PublishSubject() - var endLottieAnimation: PublishSubject = PublishSubject() + var endedLottieAnimation: PublishSubject = PublishSubject() } public init( @@ -57,9 +57,8 @@ final public class IntroViewModel: ViewModelType { .bind(to: output.permissionResult) .disposed(by: disposeBag) - input.startLottieAnimation - .delay(RxTimeInterval.milliseconds(1200), scheduler: MainScheduler.instance) - .bind(to: output.endLottieAnimation) + input.endedLottieAnimation + .bind(to: output.endedLottieAnimation) .disposed(by: disposeBag) input.fetchAppCheck @@ -71,10 +70,12 @@ final public class IntroViewModel: ViewModelType { if wmError == .offline { return Single.create { single in single(.success(AppInfoEntity( - flag: .offline, - title: "", - description: wmError.errorDescription ?? "", - version: "")) + flag: .offline, + title: "", + description: wmError.errorDescription ?? "", + version: "", + specialLogo: false) + ) ) return Disposables.create() } diff --git a/Projects/Features/SearchFeature/Sources/View/EntireSectionHeader.swift b/Projects/Features/SearchFeature/Sources/View/EntireSectionHeader.swift index 084838fe1..886b46b25 100644 --- a/Projects/Features/SearchFeature/Sources/View/EntireSectionHeader.swift +++ b/Projects/Features/SearchFeature/Sources/View/EntireSectionHeader.swift @@ -62,11 +62,11 @@ extension EntireSectionHeader { private func configureUI() { self.categoryLabel.font = DesignSystemFontFamily.Pretendard.medium.font(size: 16) self.categoryLabel.textColor = DesignSystemAsset.GrayColor.gray900.color - self.categoryLabel.setLineSpacing(kernValue: -0.5) + self.categoryLabel.setTextWithAttributes(kernValue: -0.5) self.numberOfSongLabel.font = DesignSystemFontFamily.Pretendard.medium.font(size: 16) self.numberOfSongLabel.textColor = DesignSystemAsset.PrimaryColor.point.color - self.numberOfSongLabel.setLineSpacing(kernValue: -0.5) + self.numberOfSongLabel.setTextWithAttributes(kernValue: -0.5) let attrTitle = NSAttributedString( string: "전체보기", diff --git a/Projects/Features/SearchFeature/Sources/View/RecentRecordHeaderView.swift b/Projects/Features/SearchFeature/Sources/View/RecentRecordHeaderView.swift index f69b58c5b..8cbb36111 100644 --- a/Projects/Features/SearchFeature/Sources/View/RecentRecordHeaderView.swift +++ b/Projects/Features/SearchFeature/Sources/View/RecentRecordHeaderView.swift @@ -44,11 +44,11 @@ class RecentRecordHeaderView: UIView { self.recentLabel.text = "최근 검색어" self.recentLabel.font = DesignSystemFontFamily.Pretendard.bold.font(size: 16) self.recentLabel.textColor = DesignSystemAsset.GrayColor.gray900.color - self.recentLabel.setLineSpacing(kernValue: -0.5) + self.recentLabel.setTextWithAttributes(kernValue: -0.5) self.removeAllLabel.text = "전체삭제" self.removeAllLabel.font = DesignSystemFontFamily.Pretendard.medium.font(size: 14) self.removeAllLabel.textColor = DesignSystemAsset.GrayColor.gray400.color - self.removeAllLabel.setLineSpacing(kernValue: -0.5) + self.removeAllLabel.setTextWithAttributes(kernValue: -0.5) } } diff --git a/Projects/Features/SearchFeature/Sources/View/RecentRecordTableViewCell.swift b/Projects/Features/SearchFeature/Sources/View/RecentRecordTableViewCell.swift index f9a4dec5d..afc40c563 100644 --- a/Projects/Features/SearchFeature/Sources/View/RecentRecordTableViewCell.swift +++ b/Projects/Features/SearchFeature/Sources/View/RecentRecordTableViewCell.swift @@ -32,7 +32,7 @@ class RecentRecordTableViewCell: UITableViewCell { recentRemoveButton.setImage(DesignSystemAsset.Search.keywordRemove.image, for: .normal) recentLabel.font = DesignSystemFontFamily.Pretendard.medium.font(size: 14) recentLabel.textColor = DesignSystemAsset.GrayColor.gray900.color - recentLabel.setLineSpacing(kernValue: -0.5) + recentLabel.setTextWithAttributes(kernValue: -0.5) } @IBAction func pressRemoveAction(_ sender: Any) { diff --git a/Projects/Features/SignInFeature/Sources/Views/LoginUIExtension.swift b/Projects/Features/SignInFeature/Sources/Views/LoginUIExtension.swift index 67a741929..07ebb7130 100644 --- a/Projects/Features/SignInFeature/Sources/Views/LoginUIExtension.swift +++ b/Projects/Features/SignInFeature/Sources/Views/LoginUIExtension.swift @@ -99,7 +99,7 @@ extension LoginViewController { versionLabel.text = "버전 정보 " + APP_VERSION() versionLabel.textColor = DesignSystemAsset.GrayColor.gray400.color versionLabel.font = DesignSystemFontFamily.Pretendard.light.font(size: 12) - versionLabel.setLineSpacing(kernValue: -0.5) + versionLabel.setTextWithAttributes(kernValue: -0.5) versionLabel.textAlignment = .center } } diff --git a/Projects/Features/StorageFeature/Sources/ViewControllers/AfterLoginViewController.swift b/Projects/Features/StorageFeature/Sources/ViewControllers/AfterLoginViewController.swift index 202012a3c..86062869d 100644 --- a/Projects/Features/StorageFeature/Sources/ViewControllers/AfterLoginViewController.swift +++ b/Projects/Features/StorageFeature/Sources/ViewControllers/AfterLoginViewController.swift @@ -16,6 +16,7 @@ import PanModal import CommonFeature import KeychainModule import DataMappingModule +import BaseFeature public final class AfterLoginViewController: TabmanViewController, ViewControllerFromStoryBoard, EditSheetViewType { diff --git a/Projects/Features/StorageFeature/Sources/ViewControllers/AskSongViewController.swift b/Projects/Features/StorageFeature/Sources/ViewControllers/AskSongViewController.swift index 5d322ac43..d5bb0d088 100644 --- a/Projects/Features/StorageFeature/Sources/ViewControllers/AskSongViewController.swift +++ b/Projects/Features/StorageFeature/Sources/ViewControllers/AskSongViewController.swift @@ -112,7 +112,7 @@ extension AskSongViewController { titleLabel.font = DesignSystemFontFamily.Pretendard.medium.font(size: 16) titleLabel.textColor = DesignSystemAsset.GrayColor.gray900.color titleLabel.text = viewModel.type == .add ? "노래 추가" : "노래 수정" - titleLabel.setLineSpacing(kernValue: -0.5) + titleLabel.setTextWithAttributes(kernValue: -0.5) let style = NSMutableParagraphStyle() style.lineHeightMultiple = 1.35 @@ -161,7 +161,7 @@ extension AskSongViewController { descriptionLabels[i].text = title descriptionLabels[i].font = DesignSystemFontFamily.Pretendard.medium.font(size: 18) descriptionLabels[i].textColor = DesignSystemAsset.GrayColor.gray900.color - descriptionLabels[i].setLineSpacing(kernValue: -0.5) + descriptionLabels[i].setTextWithAttributes(kernValue: -0.5) if i < 3 { textFields[i].attributedPlaceholder = NSAttributedString(string: placeHolder,attributes:placeHolderAttributes) //플레이스 홀더 설정 diff --git a/Projects/Features/StorageFeature/Sources/ViewControllers/BugReportViewController.swift b/Projects/Features/StorageFeature/Sources/ViewControllers/BugReportViewController.swift index a891c0ae8..a656b5802 100644 --- a/Projects/Features/StorageFeature/Sources/ViewControllers/BugReportViewController.swift +++ b/Projects/Features/StorageFeature/Sources/ViewControllers/BugReportViewController.swift @@ -127,12 +127,12 @@ extension BugReportViewController { titleLabel.font = DesignSystemFontFamily.Pretendard.medium.font(size: 16) titleLabel.textColor = DesignSystemAsset.GrayColor.gray900.color titleLabel.text = "버그제보" - titleLabel.setLineSpacing(kernValue: -0.5) + titleLabel.setTextWithAttributes(kernValue: -0.5) descriptionLabel1.text = "겪으신 버그에 대해 설명해 주세요." descriptionLabel1.font = DesignSystemFontFamily.Pretendard.medium.font(size: 18) descriptionLabel1.textColor = DesignSystemAsset.GrayColor.gray900.color - descriptionLabel1.setLineSpacing(kernValue: -0.5) + descriptionLabel1.setTextWithAttributes(kernValue: -0.5) baseLine1.backgroundColor = unPointColor baseLine2.backgroundColor = unPointColor @@ -140,12 +140,12 @@ extension BugReportViewController { descriptionLabel2.text = "버그와 관련된 사진이나 영상을 첨부 해주세요." descriptionLabel2.font = DesignSystemFontFamily.Pretendard.medium.font(size: 18) descriptionLabel2.textColor = DesignSystemAsset.GrayColor.gray900.color - descriptionLabel2.setLineSpacing(kernValue: -0.5) + descriptionLabel2.setTextWithAttributes(kernValue: -0.5) descriptionLabel3.text = "왁물원 닉네임을 알려주세요." descriptionLabel3.font = DesignSystemFontFamily.Pretendard.medium.font(size: 18) descriptionLabel3.textColor = DesignSystemAsset.GrayColor.gray900.color - descriptionLabel3.setLineSpacing(kernValue: -0.5) + descriptionLabel3.setTextWithAttributes(kernValue: -0.5) scrollView.delegate = self textView.delegate = self @@ -166,7 +166,7 @@ extension BugReportViewController { noticeLabel.font = DesignSystemFontFamily.Pretendard.medium.font(size: 16) noticeLabel.textColor = DesignSystemAsset.GrayColor.gray400.color noticeImageView.image = DesignSystemAsset.Navigation.close.image - noticeLabel.setLineSpacing(kernValue: -0.5) + noticeLabel.setTextWithAttributes(kernValue: -0.5) textField.font = DesignSystemFontFamily.Pretendard.medium.font(size: 16) textField.attributedPlaceholder = NSAttributedString(string: placeHolder,attributes:placeHolderAttributes) @@ -176,7 +176,7 @@ extension BugReportViewController { infoLabel.text = "닉네임을 알려주시면 피드백을 받으시는 데 도움이 됩니다." infoLabel.font = DesignSystemFontFamily.Pretendard.light.font(size: 12) infoLabel.textColor = DesignSystemAsset.GrayColor.gray500.color - infoLabel.setLineSpacing(kernValue: -0.5) + infoLabel.setTextWithAttributes(kernValue: -0.5) self.completionButton.layer.cornerRadius = 12 self.completionButton.clipsToBounds = true diff --git a/Projects/Features/StorageFeature/Sources/ViewControllers/QuestionViewController.swift b/Projects/Features/StorageFeature/Sources/ViewControllers/QuestionViewController.swift index 2c937b10d..f569eb083 100644 --- a/Projects/Features/StorageFeature/Sources/ViewControllers/QuestionViewController.swift +++ b/Projects/Features/StorageFeature/Sources/ViewControllers/QuestionViewController.swift @@ -87,14 +87,14 @@ extension QuestionViewController { self.titleLabel.font = DesignSystemFontFamily.Pretendard.medium.font(size: 16) self.titleLabel.textColor = DesignSystemAsset.GrayColor.gray900.color self.titleLabel.text = "문의하기" - self.titleLabel.setLineSpacing(kernValue: -0.5) + self.titleLabel.setTextWithAttributes(kernValue: -0.5) self.closeButton.setImage(DesignSystemAsset.Navigation.crossClose.image, for: .normal) self.descriptionLabel.text = "어떤 것 관련해서 문의주셨나요?" self.descriptionLabel.font = DesignSystemFontFamily.Pretendard.medium.font(size: 20) self.descriptionLabel.textColor = DesignSystemAsset.GrayColor.gray900.color - self.descriptionLabel.setLineSpacing(kernValue: -0.5) + self.descriptionLabel.setTextWithAttributes(kernValue: -0.5) self.nextButton.layer.cornerRadius = 12 self.nextButton.clipsToBounds = true diff --git a/Projects/Features/StorageFeature/Sources/ViewControllers/RequestViewController.swift b/Projects/Features/StorageFeature/Sources/ViewControllers/RequestViewController.swift index 9f6fbb38e..4bbd919f9 100644 --- a/Projects/Features/StorageFeature/Sources/ViewControllers/RequestViewController.swift +++ b/Projects/Features/StorageFeature/Sources/ViewControllers/RequestViewController.swift @@ -124,7 +124,7 @@ extension RequestViewController{ self.backButton.setImage(DesignSystemAsset.Navigation.back.image, for: .normal) self.titleLabel.text = "건의사항" self.titleLabel.font = DesignSystemFontFamily.Pretendard.medium.font(size: 16) - self.titleLabel.setLineSpacing(kernValue: -0.5) + self.titleLabel.setTextWithAttributes(kernValue: -0.5) let buttons: [UIButton] = [self.questionButton, self.qnaButton, self.noticeButton, self.serviceButton, self.bombButton] let superViews: [UIView] = [self.questionSuperView, self.qnaSuperView, self.noticeSuperView, self.serviceSuperView, self.bombSuperView] @@ -170,7 +170,7 @@ extension RequestViewController{ descriptionLabel.text = "왁타버스 뮤직 팀에 속한 모든 팀원들은 부아내비 (부려먹는 게 아니라 내가 비빈거다)라는 모토를 가슴에 새기고 일하고 있습니다." descriptionLabel.font = DesignSystemFontFamily.Pretendard.light.font(size: 12) - descriptionLabel.setLineSpacing(kernValue: -0.5, lineHeightMultiple: 1.26) + descriptionLabel.setTextWithAttributes(kernValue: -0.5, lineHeightMultiple: 1.26) let withDrawAttributedString = NSMutableAttributedString.init(string: "회원탈퇴") withDrawAttributedString.addAttributes( diff --git a/Projects/Features/StorageFeature/Sources/ViewControllers/SuggestFunctionViewController.swift b/Projects/Features/StorageFeature/Sources/ViewControllers/SuggestFunctionViewController.swift index 0bd591c50..b086f050b 100644 --- a/Projects/Features/StorageFeature/Sources/ViewControllers/SuggestFunctionViewController.swift +++ b/Projects/Features/StorageFeature/Sources/ViewControllers/SuggestFunctionViewController.swift @@ -60,14 +60,14 @@ extension SuggestFunctionViewController { private func configureUI(){ titleLabel.font = DesignSystemFontFamily.Pretendard.medium.font(size: 16) titleLabel.textColor = DesignSystemAsset.GrayColor.gray900.color - titleLabel.setLineSpacing(kernValue: -0.5) + titleLabel.setTextWithAttributes(kernValue: -0.5) closeButton.setImage(DesignSystemAsset.Navigation.crossClose.image, for: .normal) descriptionLabel1.text = "제안해 주고 싶은 기능에 대해 설명해 주세요." descriptionLabel1.font = DesignSystemFontFamily.Pretendard.medium.font(size: 18) descriptionLabel1.textColor = DesignSystemAsset.GrayColor.gray900.color - descriptionLabel1.setLineSpacing(kernValue: -0.5) + descriptionLabel1.setTextWithAttributes(kernValue: -0.5) textView.delegate = self textView.font = DesignSystemFontFamily.Pretendard.medium.font(size: 16) @@ -82,7 +82,7 @@ extension SuggestFunctionViewController { descriptionLabel2.text = "어떤 플랫폼과 관련된 기능인가요?" descriptionLabel2.font = DesignSystemFontFamily.Pretendard.medium.font(size: 18) descriptionLabel2.textColor = DesignSystemAsset.GrayColor.gray900.color - descriptionLabel2.setLineSpacing(kernValue: -0.5) + descriptionLabel2.setTextWithAttributes(kernValue: -0.5) let superViews: [UIView] = [self.mobileAppSuperView, self.webSiteSuperView] let buttons: [UIButton] = [self.mobileAppButton, self.webSiteButton] diff --git a/Projects/Features/StorageFeature/Sources/ViewControllers/WakMusicFeedbackViewController.swift b/Projects/Features/StorageFeature/Sources/ViewControllers/WakMusicFeedbackViewController.swift index 37ab4b71d..e82d8ea48 100644 --- a/Projects/Features/StorageFeature/Sources/ViewControllers/WakMusicFeedbackViewController.swift +++ b/Projects/Features/StorageFeature/Sources/ViewControllers/WakMusicFeedbackViewController.swift @@ -51,14 +51,14 @@ extension WakMusicFeedbackViewController { private func configureUI(){ titleLabel.font = DesignSystemFontFamily.Pretendard.medium.font(size: 16) titleLabel.textColor = DesignSystemAsset.GrayColor.gray900.color - titleLabel.setLineSpacing(kernValue: -0.5) + titleLabel.setTextWithAttributes(kernValue: -0.5) closeButton.setImage(DesignSystemAsset.Navigation.crossClose.image, for: .normal) descriptionLabel1.text = "문의하실 내용을 적어주세요." descriptionLabel1.font = DesignSystemFontFamily.Pretendard.medium.font(size: 18) descriptionLabel1.textColor = DesignSystemAsset.GrayColor.gray900.color - descriptionLabel1.setLineSpacing(kernValue: -0.5) + descriptionLabel1.setTextWithAttributes(kernValue: -0.5) textView.delegate = self textView.font = DesignSystemFontFamily.Pretendard.medium.font(size: 16) diff --git a/Projects/Features/StorageFeature/Sources/Views/AnswerTableViewCell.swift b/Projects/Features/StorageFeature/Sources/Views/AnswerTableViewCell.swift index 25873b653..f6efa2f36 100644 --- a/Projects/Features/StorageFeature/Sources/Views/AnswerTableViewCell.swift +++ b/Projects/Features/StorageFeature/Sources/Views/AnswerTableViewCell.swift @@ -18,7 +18,8 @@ class AnswerTableViewCell: UITableViewCell { override func awakeFromNib() { super.awakeFromNib() answerLabel.font = DesignSystemFontFamily.Pretendard.medium.font(size: 14) - answerLabel.setLineSpacing(kernValue: -0.5, lineSpacing: 6) + answerLabel.setTextWithAttributes(kernValue: -0.5, lineSpacing: 6) + } } diff --git a/Projects/Features/StorageFeature/Sources/Views/NoticeDetailHeaderView.swift b/Projects/Features/StorageFeature/Sources/Views/NoticeDetailHeaderView.swift index 06487ef40..33cf0ff7b 100644 --- a/Projects/Features/StorageFeature/Sources/Views/NoticeDetailHeaderView.swift +++ b/Projects/Features/StorageFeature/Sources/Views/NoticeDetailHeaderView.swift @@ -23,19 +23,19 @@ class NoticeDetailHeaderView: UICollectionReusableView { titleStringLabel.font = DesignSystemFontFamily.Pretendard.medium.font(size: 18) titleStringLabel.textColor = DesignSystemAsset.GrayColor.gray900.color - titleStringLabel.setLineSpacing(kernValue: -0.5, lineSpacing: 0, lineHeightMultiple: 1.26) + titleStringLabel.setTextWithAttributes(kernValue: -0.5, lineSpacing: 0, lineHeightMultiple: 1.26) dateLabel.font = DesignSystemFontFamily.Pretendard.light.font(size: 12) dateLabel.textColor = DesignSystemAsset.GrayColor.gray500.color - dateLabel.setLineSpacing(kernValue: -0.5, lineSpacing: 0, lineHeightMultiple: 0) + dateLabel.setTextWithAttributes(kernValue: -0.5, lineSpacing: 0, lineHeightMultiple: 0) timeLabel.font = DesignSystemFontFamily.Pretendard.light.font(size: 12) timeLabel.textColor = DesignSystemAsset.GrayColor.gray500.color - timeLabel.setLineSpacing(kernValue: -0.5, lineSpacing: 0, lineHeightMultiple: 0) + timeLabel.setTextWithAttributes(kernValue: -0.5, lineSpacing: 0, lineHeightMultiple: 0) contentStringLabel.font = DesignSystemFontFamily.Pretendard.medium.font(size: 14) contentStringLabel.textColor = DesignSystemAsset.GrayColor.gray900.color - contentStringLabel.setLineSpacing(kernValue: -0.5, lineSpacing: 0, lineHeightMultiple: 1.26) + contentStringLabel.setTextWithAttributes(kernValue: -0.5, lineSpacing: 0, lineHeightMultiple: 1.26) } } diff --git a/Projects/Features/StorageFeature/Sources/Views/NoticeListCell.swift b/Projects/Features/StorageFeature/Sources/Views/NoticeListCell.swift index b19485d13..33db60670 100644 --- a/Projects/Features/StorageFeature/Sources/Views/NoticeListCell.swift +++ b/Projects/Features/StorageFeature/Sources/Views/NoticeListCell.swift @@ -24,15 +24,15 @@ class NoticeListCell: UITableViewCell { titleStringLabel.font = DesignSystemFontFamily.Pretendard.medium.font(size: 16) titleStringLabel.textColor = DesignSystemAsset.GrayColor.gray900.color - titleStringLabel.setLineSpacing(kernValue: -0.5, lineSpacing: 0, lineHeightMultiple: 1.26) - + titleStringLabel.setTextWithAttributes(kernValue: -0.5, lineSpacing: 0, lineHeightMultiple: 1.26) + dayLabel.font = DesignSystemFontFamily.Pretendard.light.font(size: 12) dayLabel.textColor = DesignSystemAsset.GrayColor.gray500.color - dayLabel.setLineSpacing(kernValue: -0.5, lineSpacing: 0, lineHeightMultiple: 0) + dayLabel.setTextWithAttributes(kernValue: -0.5, lineSpacing: 0, lineHeightMultiple: 0) timeLabel.font = DesignSystemFontFamily.Pretendard.light.font(size: 12) timeLabel.textColor = DesignSystemAsset.GrayColor.gray500.color - timeLabel.setLineSpacing(kernValue: -0.5, lineSpacing: 0, lineHeightMultiple: 0) + timeLabel.setTextWithAttributes(kernValue: -0.5, lineSpacing: 0, lineHeightMultiple: 0) } } diff --git a/Projects/Features/StorageFeature/Sources/Views/QuestionTableViewCell.swift b/Projects/Features/StorageFeature/Sources/Views/QuestionTableViewCell.swift index 9fb0136cd..51571203e 100644 --- a/Projects/Features/StorageFeature/Sources/Views/QuestionTableViewCell.swift +++ b/Projects/Features/StorageFeature/Sources/Views/QuestionTableViewCell.swift @@ -20,9 +20,9 @@ class QuestionTableViewCell: UITableViewCell { override func awakeFromNib() { super.awakeFromNib() categoryLabel.font = DesignSystemFontFamily.Pretendard.light.font(size: 12) - categoryLabel.setLineSpacing(kernValue: -0.5) + categoryLabel.setTextWithAttributes(kernValue: -0.5) titleLabel.font = DesignSystemFontFamily.Pretendard.medium.font(size: 16) - titleLabel.setLineSpacing(kernValue: -0.5, lineSpacing: 5) + titleLabel.setTextWithAttributes(kernValue: -0.5, lineSpacing: 5) } } diff --git a/Projects/Modules/Utility/Sources/Extensions/Extension+UILabel.swift b/Projects/Modules/Utility/Sources/Extensions/Extension+UILabel.swift deleted file mode 100644 index 725626619..000000000 --- a/Projects/Modules/Utility/Sources/Extensions/Extension+UILabel.swift +++ /dev/null @@ -1,50 +0,0 @@ -// -// Extension+UILabel.swift -// Utility -// -// Created by YoungK on 2023/01/09. -// Copyright © 2023 yongbeomkwak. All rights reserved. -// - -import UIKit - -public extension UILabel { - /// 레이블의 자간, 행간을 조절하는 메소드입니다. - /// - Parameter kernValue: 글자간의 간격 - /// - Parameter lineSpacing: 줄 간격 (한 줄과 다음 줄 사이의 간격) - /// - Parameter lineHeightMultiple: 줄 간격의 배수 (lineSpacing * lineHeightMultiple) - func setLineSpacing(kernValue: Double = 0.0, - lineSpacing: CGFloat = 0.0, - lineHeightMultiple: CGFloat = 0.0) { - guard let labelText = self.text else { return } - - let paragraphStyle = NSMutableParagraphStyle() - paragraphStyle.lineSpacing = lineSpacing - paragraphStyle.lineHeightMultiple = lineHeightMultiple - paragraphStyle.lineBreakMode = .byTruncatingTail - - let attributedString = NSMutableAttributedString(string: labelText, - attributes: [ - .paragraphStyle: paragraphStyle, - .kern: kernValue - ]) - - self.attributedText = attributedString - } - - func setLineHeight(lineHeight: CGFloat){ - if let text = self.text { - let style = NSMutableParagraphStyle() - style.maximumLineHeight = lineHeight - style.minimumLineHeight = lineHeight - - let attributes: [NSAttributedString.Key: Any] = [ - .paragraphStyle: style, - .baselineOffset: (lineHeight - font.lineHeight) / 4 - ] - let attrString = NSAttributedString(string: text, - attributes: attributes) - self.attributedText = attrString - } - } -} diff --git a/Projects/Services/DataMappingModule/Sources/App/Response/AppInfoDTO.swift b/Projects/Services/DataMappingModule/Sources/App/Response/AppInfoDTO.swift index 9373386a5..88944aab1 100644 --- a/Projects/Services/DataMappingModule/Sources/App/Response/AppInfoDTO.swift +++ b/Projects/Services/DataMappingModule/Sources/App/Response/AppInfoDTO.swift @@ -11,4 +11,5 @@ import Foundation public struct AppInfoDTO: Codable { public let flag: AppInfoFlagType public let title, description, version: String? + public let specialLogo: Bool? } diff --git a/Projects/Services/DomainModule/Sources/App/Entity/AppInfoEntity.swift b/Projects/Services/DomainModule/Sources/App/Entity/AppInfoEntity.swift index a27663fae..5bc3a2dd4 100644 --- a/Projects/Services/DomainModule/Sources/App/Entity/AppInfoEntity.swift +++ b/Projects/Services/DomainModule/Sources/App/Entity/AppInfoEntity.swift @@ -14,15 +14,18 @@ public struct AppInfoEntity: Equatable { flag: AppInfoFlagType, title: String, description: String, - version: String + version: String, + specialLogo: Bool ) { self.flag = flag self.title = title self.description = description self.version = version + self.specialLogo = specialLogo } public let flag: AppInfoFlagType public let title, description, version: String + public let specialLogo: Bool } diff --git a/Projects/Services/NetworkModule/Sources/App/DataTransfer/FetchCheckVersionTransfer.swift b/Projects/Services/NetworkModule/Sources/App/DataTransfer/FetchCheckVersionTransfer.swift index dc95b343f..3215d5851 100644 --- a/Projects/Services/NetworkModule/Sources/App/DataTransfer/FetchCheckVersionTransfer.swift +++ b/Projects/Services/NetworkModule/Sources/App/DataTransfer/FetchCheckVersionTransfer.swift @@ -17,7 +17,8 @@ public extension AppInfoDTO { flag: flag, title: title ?? "", description: description ?? "", - version: version ?? "" + version: version ?? "", + specialLogo: specialLogo ?? false ) } } diff --git a/Projects/UsertInterfaces/DesignSystem/Resources/Color/PrimaryColor.xcassets/POINT.colorset/Contents.json b/Projects/UsertInterfaces/DesignSystem/Resources/Color/PrimaryColor.xcassets/POINT.colorset/Contents.json index 70d5a6793..916ca5520 100644 --- a/Projects/UsertInterfaces/DesignSystem/Resources/Color/PrimaryColor.xcassets/POINT.colorset/Contents.json +++ b/Projects/UsertInterfaces/DesignSystem/Resources/Color/PrimaryColor.xcassets/POINT.colorset/Contents.json @@ -5,9 +5,9 @@ "color-space" : "srgb", "components" : { "alpha" : "1.000", - "blue" : "0.969", - "green" : "0.871", - "red" : "0.031" + "blue" : "0.950", + "green" : "0.785", + "red" : "0.036" } }, "idiom" : "universal" diff --git a/Projects/UsertInterfaces/DesignSystem/Resources/Image/Artist.xcassets/document_on.imageset/Contents.json b/Projects/UsertInterfaces/DesignSystem/Resources/Image/Artist.xcassets/document_on.imageset/Contents.json index 5608e9ec7..2b077804e 100644 --- a/Projects/UsertInterfaces/DesignSystem/Resources/Image/Artist.xcassets/document_on.imageset/Contents.json +++ b/Projects/UsertInterfaces/DesignSystem/Resources/Image/Artist.xcassets/document_on.imageset/Contents.json @@ -5,12 +5,12 @@ "scale" : "1x" }, { - "filename" : "document_on@2x.png", + "filename" : "ic_24_document_on-1.png", "idiom" : "universal", "scale" : "2x" }, { - "filename" : "document_on@3x.png", + "filename" : "ic_24_document_on.png", "idiom" : "universal", "scale" : "3x" } diff --git a/Projects/UsertInterfaces/DesignSystem/Resources/Image/Artist.xcassets/document_on.imageset/document_on@2x.png b/Projects/UsertInterfaces/DesignSystem/Resources/Image/Artist.xcassets/document_on.imageset/document_on@2x.png deleted file mode 100644 index 94d05eafc..000000000 Binary files a/Projects/UsertInterfaces/DesignSystem/Resources/Image/Artist.xcassets/document_on.imageset/document_on@2x.png and /dev/null differ diff --git a/Projects/UsertInterfaces/DesignSystem/Resources/Image/Artist.xcassets/document_on.imageset/document_on@3x.png b/Projects/UsertInterfaces/DesignSystem/Resources/Image/Artist.xcassets/document_on.imageset/document_on@3x.png deleted file mode 100644 index 549e6d07b..000000000 Binary files a/Projects/UsertInterfaces/DesignSystem/Resources/Image/Artist.xcassets/document_on.imageset/document_on@3x.png and /dev/null differ diff --git a/Projects/UsertInterfaces/DesignSystem/Resources/Image/Artist.xcassets/document_on.imageset/ic_24_document_on-1.png b/Projects/UsertInterfaces/DesignSystem/Resources/Image/Artist.xcassets/document_on.imageset/ic_24_document_on-1.png new file mode 100644 index 000000000..f031cc779 Binary files /dev/null and b/Projects/UsertInterfaces/DesignSystem/Resources/Image/Artist.xcassets/document_on.imageset/ic_24_document_on-1.png differ diff --git a/Projects/UsertInterfaces/DesignSystem/Resources/Image/Artist.xcassets/document_on.imageset/ic_24_document_on.png b/Projects/UsertInterfaces/DesignSystem/Resources/Image/Artist.xcassets/document_on.imageset/ic_24_document_on.png new file mode 100644 index 000000000..b56d388c4 Binary files /dev/null and b/Projects/UsertInterfaces/DesignSystem/Resources/Image/Artist.xcassets/document_on.imageset/ic_24_document_on.png differ diff --git a/Projects/UsertInterfaces/DesignSystem/Resources/Image/Home.xcassets/play_small.imageset/Contents.json b/Projects/UsertInterfaces/DesignSystem/Resources/Image/Home.xcassets/play_small.imageset/Contents.json index f54604927..4a9459e18 100644 --- a/Projects/UsertInterfaces/DesignSystem/Resources/Image/Home.xcassets/play_small.imageset/Contents.json +++ b/Projects/UsertInterfaces/DesignSystem/Resources/Image/Home.xcassets/play_small.imageset/Contents.json @@ -5,12 +5,12 @@ "scale" : "1x" }, { - "filename" : "ic_32_play_point@2x.png", + "filename" : "ic_32_play_point-1.png", "idiom" : "universal", "scale" : "2x" }, { - "filename" : "ic_32_play_point@3x.png", + "filename" : "ic_32_play_point.png", "idiom" : "universal", "scale" : "3x" } diff --git a/Projects/UsertInterfaces/DesignSystem/Resources/Image/Home.xcassets/play_small.imageset/ic_32_play_point-1.png b/Projects/UsertInterfaces/DesignSystem/Resources/Image/Home.xcassets/play_small.imageset/ic_32_play_point-1.png new file mode 100644 index 000000000..ad1b5ecfd Binary files /dev/null and b/Projects/UsertInterfaces/DesignSystem/Resources/Image/Home.xcassets/play_small.imageset/ic_32_play_point-1.png differ diff --git a/Projects/UsertInterfaces/DesignSystem/Resources/Image/Home.xcassets/play_small.imageset/ic_32_play_point.png b/Projects/UsertInterfaces/DesignSystem/Resources/Image/Home.xcassets/play_small.imageset/ic_32_play_point.png new file mode 100644 index 000000000..74ee7fc38 Binary files /dev/null and b/Projects/UsertInterfaces/DesignSystem/Resources/Image/Home.xcassets/play_small.imageset/ic_32_play_point.png differ diff --git a/Projects/UsertInterfaces/DesignSystem/Resources/Image/Home.xcassets/play_small.imageset/ic_32_play_point@2x.png b/Projects/UsertInterfaces/DesignSystem/Resources/Image/Home.xcassets/play_small.imageset/ic_32_play_point@2x.png deleted file mode 100644 index 0f10adc80..000000000 Binary files a/Projects/UsertInterfaces/DesignSystem/Resources/Image/Home.xcassets/play_small.imageset/ic_32_play_point@2x.png and /dev/null differ diff --git a/Projects/UsertInterfaces/DesignSystem/Resources/Image/Home.xcassets/play_small.imageset/ic_32_play_point@3x.png b/Projects/UsertInterfaces/DesignSystem/Resources/Image/Home.xcassets/play_small.imageset/ic_32_play_point@3x.png deleted file mode 100644 index 07d8b5a21..000000000 Binary files a/Projects/UsertInterfaces/DesignSystem/Resources/Image/Home.xcassets/play_small.imageset/ic_32_play_point@3x.png and /dev/null differ diff --git a/Projects/UsertInterfaces/DesignSystem/Resources/Image/PlayListEdit.xcassets/check_on.imageset/Contents.json b/Projects/UsertInterfaces/DesignSystem/Resources/Image/PlayListEdit.xcassets/check_on.imageset/Contents.json index 1c6209a01..fbea48b8f 100644 --- a/Projects/UsertInterfaces/DesignSystem/Resources/Image/PlayListEdit.xcassets/check_on.imageset/Contents.json +++ b/Projects/UsertInterfaces/DesignSystem/Resources/Image/PlayListEdit.xcassets/check_on.imageset/Contents.json @@ -5,12 +5,12 @@ "scale" : "1x" }, { - "filename" : "check_on@2x.png", + "filename" : "ic_32_Check_on-1.png", "idiom" : "universal", "scale" : "2x" }, { - "filename" : "check_on@3x.png", + "filename" : "ic_32_Check_on.png", "idiom" : "universal", "scale" : "3x" } diff --git a/Projects/UsertInterfaces/DesignSystem/Resources/Image/PlayListEdit.xcassets/check_on.imageset/check_on@2x.png b/Projects/UsertInterfaces/DesignSystem/Resources/Image/PlayListEdit.xcassets/check_on.imageset/check_on@2x.png deleted file mode 100644 index 17ccf2435..000000000 Binary files a/Projects/UsertInterfaces/DesignSystem/Resources/Image/PlayListEdit.xcassets/check_on.imageset/check_on@2x.png and /dev/null differ diff --git a/Projects/UsertInterfaces/DesignSystem/Resources/Image/PlayListEdit.xcassets/check_on.imageset/check_on@3x.png b/Projects/UsertInterfaces/DesignSystem/Resources/Image/PlayListEdit.xcassets/check_on.imageset/check_on@3x.png deleted file mode 100644 index bc671e74c..000000000 Binary files a/Projects/UsertInterfaces/DesignSystem/Resources/Image/PlayListEdit.xcassets/check_on.imageset/check_on@3x.png and /dev/null differ diff --git a/Projects/UsertInterfaces/DesignSystem/Resources/Image/PlayListEdit.xcassets/check_on.imageset/ic_32_Check_on-1.png b/Projects/UsertInterfaces/DesignSystem/Resources/Image/PlayListEdit.xcassets/check_on.imageset/ic_32_Check_on-1.png new file mode 100644 index 000000000..17a28e708 Binary files /dev/null and b/Projects/UsertInterfaces/DesignSystem/Resources/Image/PlayListEdit.xcassets/check_on.imageset/ic_32_Check_on-1.png differ diff --git a/Projects/UsertInterfaces/DesignSystem/Resources/Image/PlayListEdit.xcassets/check_on.imageset/ic_32_Check_on.png b/Projects/UsertInterfaces/DesignSystem/Resources/Image/PlayListEdit.xcassets/check_on.imageset/ic_32_Check_on.png new file mode 100644 index 000000000..36c1171e8 Binary files /dev/null and b/Projects/UsertInterfaces/DesignSystem/Resources/Image/PlayListEdit.xcassets/check_on.imageset/ic_32_Check_on.png differ diff --git a/Projects/UsertInterfaces/DesignSystem/Resources/Image/Player.xcassets/play_large.imageset/Contents.json b/Projects/UsertInterfaces/DesignSystem/Resources/Image/Player.xcassets/play_large.imageset/Contents.json index a029f6ae9..4f02d0550 100644 --- a/Projects/UsertInterfaces/DesignSystem/Resources/Image/Player.xcassets/play_large.imageset/Contents.json +++ b/Projects/UsertInterfaces/DesignSystem/Resources/Image/Player.xcassets/play_large.imageset/Contents.json @@ -5,12 +5,12 @@ "scale" : "1x" }, { - "filename" : "ic_80_play@2x.png", + "filename" : "ic_80_play-1.png", "idiom" : "universal", "scale" : "2x" }, { - "filename" : "ic_80_play@3x.png", + "filename" : "ic_80_play.png", "idiom" : "universal", "scale" : "3x" } diff --git a/Projects/UsertInterfaces/DesignSystem/Resources/Image/Player.xcassets/play_large.imageset/ic_80_play-1.png b/Projects/UsertInterfaces/DesignSystem/Resources/Image/Player.xcassets/play_large.imageset/ic_80_play-1.png new file mode 100644 index 000000000..2851a849f Binary files /dev/null and b/Projects/UsertInterfaces/DesignSystem/Resources/Image/Player.xcassets/play_large.imageset/ic_80_play-1.png differ diff --git a/Projects/UsertInterfaces/DesignSystem/Resources/Image/Player.xcassets/play_large.imageset/ic_80_play.png b/Projects/UsertInterfaces/DesignSystem/Resources/Image/Player.xcassets/play_large.imageset/ic_80_play.png new file mode 100644 index 000000000..a8a22b4df Binary files /dev/null and b/Projects/UsertInterfaces/DesignSystem/Resources/Image/Player.xcassets/play_large.imageset/ic_80_play.png differ diff --git a/Projects/UsertInterfaces/DesignSystem/Resources/Image/Player.xcassets/play_large.imageset/ic_80_play@2x.png b/Projects/UsertInterfaces/DesignSystem/Resources/Image/Player.xcassets/play_large.imageset/ic_80_play@2x.png deleted file mode 100644 index aa1305938..000000000 Binary files a/Projects/UsertInterfaces/DesignSystem/Resources/Image/Player.xcassets/play_large.imageset/ic_80_play@2x.png and /dev/null differ diff --git a/Projects/UsertInterfaces/DesignSystem/Resources/Image/Player.xcassets/play_large.imageset/ic_80_play@3x.png b/Projects/UsertInterfaces/DesignSystem/Resources/Image/Player.xcassets/play_large.imageset/ic_80_play@3x.png deleted file mode 100644 index 2cdc3ac4b..000000000 Binary files a/Projects/UsertInterfaces/DesignSystem/Resources/Image/Player.xcassets/play_large.imageset/ic_80_play@3x.png and /dev/null differ diff --git a/Projects/UsertInterfaces/DesignSystem/Resources/Image/Player.xcassets/play_medium.imageset/Contents.json b/Projects/UsertInterfaces/DesignSystem/Resources/Image/Player.xcassets/play_medium.imageset/Contents.json index c9f3912da..4a9459e18 100644 --- a/Projects/UsertInterfaces/DesignSystem/Resources/Image/Player.xcassets/play_medium.imageset/Contents.json +++ b/Projects/UsertInterfaces/DesignSystem/Resources/Image/Player.xcassets/play_medium.imageset/Contents.json @@ -5,12 +5,12 @@ "scale" : "1x" }, { - "filename" : "play@2x.png", + "filename" : "ic_32_play_point-1.png", "idiom" : "universal", "scale" : "2x" }, { - "filename" : "play@3x.png", + "filename" : "ic_32_play_point.png", "idiom" : "universal", "scale" : "3x" } diff --git a/Projects/UsertInterfaces/DesignSystem/Resources/Image/Player.xcassets/play_medium.imageset/ic_32_play_point-1.png b/Projects/UsertInterfaces/DesignSystem/Resources/Image/Player.xcassets/play_medium.imageset/ic_32_play_point-1.png new file mode 100644 index 000000000..ad1b5ecfd Binary files /dev/null and b/Projects/UsertInterfaces/DesignSystem/Resources/Image/Player.xcassets/play_medium.imageset/ic_32_play_point-1.png differ diff --git a/Projects/UsertInterfaces/DesignSystem/Resources/Image/Player.xcassets/play_medium.imageset/ic_32_play_point.png b/Projects/UsertInterfaces/DesignSystem/Resources/Image/Player.xcassets/play_medium.imageset/ic_32_play_point.png new file mode 100644 index 000000000..74ee7fc38 Binary files /dev/null and b/Projects/UsertInterfaces/DesignSystem/Resources/Image/Player.xcassets/play_medium.imageset/ic_32_play_point.png differ diff --git a/Projects/UsertInterfaces/DesignSystem/Resources/Image/Player.xcassets/play_medium.imageset/play@2x.png b/Projects/UsertInterfaces/DesignSystem/Resources/Image/Player.xcassets/play_medium.imageset/play@2x.png deleted file mode 100644 index 0f10adc80..000000000 Binary files a/Projects/UsertInterfaces/DesignSystem/Resources/Image/Player.xcassets/play_medium.imageset/play@2x.png and /dev/null differ diff --git a/Projects/UsertInterfaces/DesignSystem/Resources/Image/Player.xcassets/play_medium.imageset/play@3x.png b/Projects/UsertInterfaces/DesignSystem/Resources/Image/Player.xcassets/play_medium.imageset/play@3x.png deleted file mode 100644 index 07d8b5a21..000000000 Binary files a/Projects/UsertInterfaces/DesignSystem/Resources/Image/Player.xcassets/play_medium.imageset/play@3x.png and /dev/null differ diff --git a/Projects/UsertInterfaces/DesignSystem/Resources/Image/Player.xcassets/repeat_on_1.imageset/Contents.json b/Projects/UsertInterfaces/DesignSystem/Resources/Image/Player.xcassets/repeat_on_1.imageset/Contents.json index faa72558b..c4654b9f6 100644 --- a/Projects/UsertInterfaces/DesignSystem/Resources/Image/Player.xcassets/repeat_on_1.imageset/Contents.json +++ b/Projects/UsertInterfaces/DesignSystem/Resources/Image/Player.xcassets/repeat_on_1.imageset/Contents.json @@ -5,12 +5,12 @@ "scale" : "1x" }, { - "filename" : "repeat_on_1@2x.png", + "filename" : "ic_32_repeat_on_1-1.png", "idiom" : "universal", "scale" : "2x" }, { - "filename" : "repeat_on_1@3x.png", + "filename" : "ic_32_repeat_on_1.png", "idiom" : "universal", "scale" : "3x" } diff --git a/Projects/UsertInterfaces/DesignSystem/Resources/Image/Player.xcassets/repeat_on_1.imageset/ic_32_repeat_on_1-1.png b/Projects/UsertInterfaces/DesignSystem/Resources/Image/Player.xcassets/repeat_on_1.imageset/ic_32_repeat_on_1-1.png new file mode 100644 index 000000000..026dec99b Binary files /dev/null and b/Projects/UsertInterfaces/DesignSystem/Resources/Image/Player.xcassets/repeat_on_1.imageset/ic_32_repeat_on_1-1.png differ diff --git a/Projects/UsertInterfaces/DesignSystem/Resources/Image/Player.xcassets/repeat_on_1.imageset/ic_32_repeat_on_1.png b/Projects/UsertInterfaces/DesignSystem/Resources/Image/Player.xcassets/repeat_on_1.imageset/ic_32_repeat_on_1.png new file mode 100644 index 000000000..f035bcf35 Binary files /dev/null and b/Projects/UsertInterfaces/DesignSystem/Resources/Image/Player.xcassets/repeat_on_1.imageset/ic_32_repeat_on_1.png differ diff --git a/Projects/UsertInterfaces/DesignSystem/Resources/Image/Player.xcassets/repeat_on_1.imageset/repeat_on_1@2x.png b/Projects/UsertInterfaces/DesignSystem/Resources/Image/Player.xcassets/repeat_on_1.imageset/repeat_on_1@2x.png deleted file mode 100644 index 022c45739..000000000 Binary files a/Projects/UsertInterfaces/DesignSystem/Resources/Image/Player.xcassets/repeat_on_1.imageset/repeat_on_1@2x.png and /dev/null differ diff --git a/Projects/UsertInterfaces/DesignSystem/Resources/Image/Player.xcassets/repeat_on_1.imageset/repeat_on_1@3x.png b/Projects/UsertInterfaces/DesignSystem/Resources/Image/Player.xcassets/repeat_on_1.imageset/repeat_on_1@3x.png deleted file mode 100644 index 1679ceb41..000000000 Binary files a/Projects/UsertInterfaces/DesignSystem/Resources/Image/Player.xcassets/repeat_on_1.imageset/repeat_on_1@3x.png and /dev/null differ diff --git a/Projects/UsertInterfaces/DesignSystem/Resources/Image/Player.xcassets/repeat_on_all.imageset/Contents.json b/Projects/UsertInterfaces/DesignSystem/Resources/Image/Player.xcassets/repeat_on_all.imageset/Contents.json index fe37b5a6b..43192be9c 100644 --- a/Projects/UsertInterfaces/DesignSystem/Resources/Image/Player.xcassets/repeat_on_all.imageset/Contents.json +++ b/Projects/UsertInterfaces/DesignSystem/Resources/Image/Player.xcassets/repeat_on_all.imageset/Contents.json @@ -5,12 +5,12 @@ "scale" : "1x" }, { - "filename" : "repeat_on_all@2x.png", + "filename" : "ic_32_repeat_on_all-1.png", "idiom" : "universal", "scale" : "2x" }, { - "filename" : "repeat_on_all@3x.png", + "filename" : "ic_32_repeat_on_all.png", "idiom" : "universal", "scale" : "3x" } diff --git a/Projects/UsertInterfaces/DesignSystem/Resources/Image/Player.xcassets/repeat_on_all.imageset/ic_32_repeat_on_all-1.png b/Projects/UsertInterfaces/DesignSystem/Resources/Image/Player.xcassets/repeat_on_all.imageset/ic_32_repeat_on_all-1.png new file mode 100644 index 000000000..83afced3f Binary files /dev/null and b/Projects/UsertInterfaces/DesignSystem/Resources/Image/Player.xcassets/repeat_on_all.imageset/ic_32_repeat_on_all-1.png differ diff --git a/Projects/UsertInterfaces/DesignSystem/Resources/Image/Player.xcassets/repeat_on_all.imageset/ic_32_repeat_on_all.png b/Projects/UsertInterfaces/DesignSystem/Resources/Image/Player.xcassets/repeat_on_all.imageset/ic_32_repeat_on_all.png new file mode 100644 index 000000000..d26bbc2a2 Binary files /dev/null and b/Projects/UsertInterfaces/DesignSystem/Resources/Image/Player.xcassets/repeat_on_all.imageset/ic_32_repeat_on_all.png differ diff --git a/Projects/UsertInterfaces/DesignSystem/Resources/Image/Player.xcassets/repeat_on_all.imageset/repeat_on_all@2x.png b/Projects/UsertInterfaces/DesignSystem/Resources/Image/Player.xcassets/repeat_on_all.imageset/repeat_on_all@2x.png deleted file mode 100644 index aeffb68b5..000000000 Binary files a/Projects/UsertInterfaces/DesignSystem/Resources/Image/Player.xcassets/repeat_on_all.imageset/repeat_on_all@2x.png and /dev/null differ diff --git a/Projects/UsertInterfaces/DesignSystem/Resources/Image/Player.xcassets/repeat_on_all.imageset/repeat_on_all@3x.png b/Projects/UsertInterfaces/DesignSystem/Resources/Image/Player.xcassets/repeat_on_all.imageset/repeat_on_all@3x.png deleted file mode 100644 index 203f521c1..000000000 Binary files a/Projects/UsertInterfaces/DesignSystem/Resources/Image/Player.xcassets/repeat_on_all.imageset/repeat_on_all@3x.png and /dev/null differ diff --git a/Projects/UsertInterfaces/DesignSystem/Resources/Image/Player.xcassets/shuffle_on.imageset/Contents.json b/Projects/UsertInterfaces/DesignSystem/Resources/Image/Player.xcassets/shuffle_on.imageset/Contents.json index d4e663544..9142474a2 100644 --- a/Projects/UsertInterfaces/DesignSystem/Resources/Image/Player.xcassets/shuffle_on.imageset/Contents.json +++ b/Projects/UsertInterfaces/DesignSystem/Resources/Image/Player.xcassets/shuffle_on.imageset/Contents.json @@ -5,12 +5,12 @@ "scale" : "1x" }, { - "filename" : "shuffle_on@2x.png", + "filename" : "ic_32_random_on-1.png", "idiom" : "universal", "scale" : "2x" }, { - "filename" : "shuffle_on@3x.png", + "filename" : "ic_32_random_on.png", "idiom" : "universal", "scale" : "3x" } diff --git a/Projects/UsertInterfaces/DesignSystem/Resources/Image/Player.xcassets/shuffle_on.imageset/ic_32_random_on-1.png b/Projects/UsertInterfaces/DesignSystem/Resources/Image/Player.xcassets/shuffle_on.imageset/ic_32_random_on-1.png new file mode 100644 index 000000000..984b765dc Binary files /dev/null and b/Projects/UsertInterfaces/DesignSystem/Resources/Image/Player.xcassets/shuffle_on.imageset/ic_32_random_on-1.png differ diff --git a/Projects/UsertInterfaces/DesignSystem/Resources/Image/Player.xcassets/shuffle_on.imageset/ic_32_random_on.png b/Projects/UsertInterfaces/DesignSystem/Resources/Image/Player.xcassets/shuffle_on.imageset/ic_32_random_on.png new file mode 100644 index 000000000..0dee60d4b Binary files /dev/null and b/Projects/UsertInterfaces/DesignSystem/Resources/Image/Player.xcassets/shuffle_on.imageset/ic_32_random_on.png differ diff --git a/Projects/UsertInterfaces/DesignSystem/Resources/Image/Player.xcassets/shuffle_on.imageset/shuffle_on@2x.png b/Projects/UsertInterfaces/DesignSystem/Resources/Image/Player.xcassets/shuffle_on.imageset/shuffle_on@2x.png deleted file mode 100644 index 30308cdec..000000000 Binary files a/Projects/UsertInterfaces/DesignSystem/Resources/Image/Player.xcassets/shuffle_on.imageset/shuffle_on@2x.png and /dev/null differ diff --git a/Projects/UsertInterfaces/DesignSystem/Resources/Image/Player.xcassets/shuffle_on.imageset/shuffle_on@3x.png b/Projects/UsertInterfaces/DesignSystem/Resources/Image/Player.xcassets/shuffle_on.imageset/shuffle_on@3x.png deleted file mode 100644 index f83f295a3..000000000 Binary files a/Projects/UsertInterfaces/DesignSystem/Resources/Image/Player.xcassets/shuffle_on.imageset/shuffle_on@3x.png and /dev/null differ diff --git a/Projects/UsertInterfaces/DesignSystem/Resources/Image/Storage.xcassets/play.imageset/ic_32_play_point-1.png b/Projects/UsertInterfaces/DesignSystem/Resources/Image/Storage.xcassets/play.imageset/ic_32_play_point-1.png index 84047286d..e890925f6 100644 Binary files a/Projects/UsertInterfaces/DesignSystem/Resources/Image/Storage.xcassets/play.imageset/ic_32_play_point-1.png and b/Projects/UsertInterfaces/DesignSystem/Resources/Image/Storage.xcassets/play.imageset/ic_32_play_point-1.png differ diff --git a/Projects/UsertInterfaces/DesignSystem/Resources/Image/Storage.xcassets/play.imageset/ic_32_play_point.png b/Projects/UsertInterfaces/DesignSystem/Resources/Image/Storage.xcassets/play.imageset/ic_32_play_point.png index 106031908..ecdec6ce9 100644 Binary files a/Projects/UsertInterfaces/DesignSystem/Resources/Image/Storage.xcassets/play.imageset/ic_32_play_point.png and b/Projects/UsertInterfaces/DesignSystem/Resources/Image/Storage.xcassets/play.imageset/ic_32_play_point.png differ diff --git a/Projects/UsertInterfaces/DesignSystem/Resources/Lottie/Splash_Logo_Special.json b/Projects/UsertInterfaces/DesignSystem/Resources/Lottie/Splash_Logo_Special.json new file mode 100644 index 000000000..fdbf4f821 --- /dev/null +++ b/Projects/UsertInterfaces/DesignSystem/Resources/Lottie/Splash_Logo_Special.json @@ -0,0 +1 @@ +{"v":"4.8.0","meta":{"g":"LottieFiles AE 3.5.2","a":"","k":"","d":"","tc":""},"fr":29.9700012207031,"ip":0,"op":81.0000032991976,"w":1500,"h":1900,"nm":"Main","ddd":0,"assets":[{"id":"image_0","w":289,"h":158,"u":"","p":"data:image/png;base64,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","e":1},{"id":"image_1","w":213,"h":218,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAANUAAADaCAYAAAAxFgdWAAAACXBIWXMAAAABAAAAAQBPJcTWAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAALXElEQVR4nO3d730bxxHG8VmReSfSZAPWqgJCFfhcgZQKTFcQpoKwgzAVhKrASgWhKgjVwdINwCL4LhQ2L3BQABB/7253Z3d/33eWaOBe6Pnc3XBmRwQAAAAVMakvAHl4snYkIo2XaSNizuZ/7sW7V/Lq/r8in86dc8kuUBFCha0erf1gxF+LyMUeP/5ZxFyfOHcX9qp0I1RYa2zt2bH4TyLy06H/rxf/8Zu8ujp37o8Al6YeocILT9aOpuI/GZE3PT7my7OYpsZgESosGVt7diT+vmeg5qoM1qvUFwA92ke+u4ECJSJycSTTm4E+KxuECt+1AdinILE3I+aXibXNkJ+pHaGCiIhMrL02Yn4J8+n+Oszn6sQ7FeTR2ksj/p8hv+NZzNtafo/FnapyT9aOQgdKRORPIh9Cf4cWhKpiY2utF38X47tmnRh14PGvUvNKnwxcmNjmWcx5DeV17lSVarslogVKRORIpIn5fakQqgo92h9vpUP7UX/TKt6rCFVlnqy9Clc638U0ab43Lt6pKtJ2nP+W8hqMmHevnbtPeQ2hcaeqRFs6v019Hb6C0jqhqsDY2rO2dP5D6msR8YQKeVsonSsIlIiIXIytPdv9Y/kiVIU7lumtRC6d73JU+CMgoSrYxNobEfM+9XWsMoWX1glVoR6tvRTxf0l9HeuVXVonVAWaWNvEaJLt4YeSZ6wIVWFmR4n5T6mvYw/FPgISqoK0pfNb0VPp28gXXFonVAWJ3XXehxF5M7bWpr6OEAhVIdom2SwCNVfq4CKhKkDY8yXCKXVwkYbazMU4XyKkEgcXuVNlrG2SzfpcvRIHFwlVphbOl1Bf6duuvO4KQpWhheUBmQdKpMTuCkKVIY1Nsl0ZkTft7qtiEKrMzErn+ppk+yhtcJFQZWRW6cuvdL5bWd0VlNQzoeF8iZBKKq1zp8qAlvMlQippcJFQKTe29mxaTKVvs5IGF49TXwA2WzhfYqglbIqVU1rnTqVYiCVsihUzuEiolMq1SbanIh4BCZVC7fkSf0t9HbGVMrhISV2ZJ2tHXvx/Ul9HKiVsXOROpUgbqLvU15FSCYOLhEqJnM6XCKmEwUVCpUSKJWw6mfe5HwtNqBRIt4RNp9wHFwlVYmmXsGmVd3cFoUro0doPXvzfU1+HPnl3VxCqRGpoku0q98FFQpWAriVsOuU8uEioIlO4hE2pfLsrCFVkJZ0vEVi2GxcJVURal7BplevgIqGKRPcSNp1yHVxkSDGC2ZxQvkczp5NnaZ07VWAZLWHTKMvBRUIVUC3nSwSW3SMgoQroWPydqeJ8iXByHFwkVIHkuIRNoxw3LhKqACo9XyKY3AYXCdXAaj1fIqTcBhc5o2JAC+PwFCYGltOx0NypBlLOEjadchpcJFQDKGsJm1b5dFcQqgFwvkQM+XRXEKqeOF8ijpwGFwlVD+UuYdMpl8FFQtVRu4SNJtmo8uiuoKTeAaXzdHIorXOnOhBNsmnlMLhIqA4wP1+CJtl0chhcJFQHqGwJm1L6S+uEak8Ta2+o9KmgfnCRUO2B8yXUUf0ISKh2aE+SpXSuiPbBRUK1BUvYdNI+uEioNmAJm26aBxcJ1QY0yeqmeXCRjoo1Hu2Pt1T69NPaXcGdagVL2PKhdXCRUC14tPaSJWw50dldQahaben8JvV14BA6uyt4p5LvPX1OqPRlx4h599q5+9TXsaj6OxVL2PKmcXCx+lCxhC13+rorqn78o3ReBm2l9WrvVJwvUQ5tg4tVhmpibUOTbDm0DS5WFyqWsJVIV2m9qlBxvkSxVA0uVhUqzpcomppHwGpCxRK2smkaXKwiVCxhK5+mwcXiQ8UStnpoGVwsOlScL1EXLYOLxXZUjK21x+LvhUpfVU7cQ/J/00XeqVjCVq9Ha5M/AhYZKs6XqFn67oriQsUSttql764oKlQ0yULDxsViQsUSNixoUn55EaFqS+e3qa8DOnjxlym/P3n5sS/Ol8A6KQcXs75Tcb4ENkk5uJh1qFjChs3SdVccp/rivibW3oh4Kn1Yy4jhTnUIlrBhD8kGF7MLFU2yOECSu1VWoWIJGw7jmxTfmk1JfaHSR2ECe3sW8/bcORfzO7O5UxEodJFicDGLUHG+BLpKMbioPlQsYUM/5n3sb1QdKpawYQixBxfVhoolbBhO3MFFlaEaW3vm6enDYOIOLqoLFU2yGFrswUV1oWIJGwJpYn2RqlDNSufxqzUoX8zBRTUdFbPzJejpQzixBhdV3KlYwoYYYg0uJg8VS9gQT5zuiqShYgkbYoo1uJgsVPPSOUvYEFGUwcVkoeJ8CSQS/G6V5IyKibXXnC+BNMIPLkYvqVM6R2qhBxejPv5xvgQ0CD24GC1UY2st50tAg9CDi1FCxRI26BK2FS5KqFjCBm1CDi4GDxVL2KBTuMHFoKHifAnoFW5wMVhJvV3C9luozwf6MmLevXbufujPDXKnYgkbMtGE+NDBQ8X5EshFqMHFQUPF+RLIzMXY2rOhP3TQUNEki9yEGFwcLFQTa2+o9CE/w3dXDBIqlrAhVyEGF3uHivMlkLnBBxd7hYrzJVCIQe9WnUPVls5vhUofsjfs4GLnULGEDQW5GFtrh/qwTqFiCRtKM+Tg4sGhokkWJRpycPGghlrOl0DJTtzDIA3me9+pWMKG0g01uLhXqBbOl6DSh4INM7i4M1ScL4F6DDO4uDNULGFDLYbauLg1VCxhQ4Wavh+wMVSzSh+lc9RliMHFtSXEWYOh/3ffDwdy1Hfj4os71WwSkiZZ1Kvv4OKLUB2LXAmVPlStX3fFmncqf9XnA4Hc9R1cXApV+xtl7lKoXa/BxaVQmUDnoAEZ6ny3Wnn8871/8QWUofvgYtLt9IBinQcXCRWwQdfBRUIFbNB1cHElVGbwDQhAvrr1vS6FyosQKmBBl8HFpVB9E/kkIl8HuyIge4cPLi6F6ty5Pzx9f8CCwwcXXxQqvsmra+FuBYhIt8HFF6E6d855MfT/Af/XHPLDa0vqp87devEfB7kcIHOHDi5uPedsYu0NK3KAwwYXt/7y98S5KxHzsxd5GObSgDwdMri4s6PixLm7U/dgvZhfReRLrysDsrV/d8XBx9zOzgGUkYg0ItNRW3JkBgul+3riHvZauj3I2dFja+2RyGg2j+VHIvLTEJ8L6GJ+PnHubudPhfr6J2tHU5GRyLQxYkbCgZzInvnHrM6w46diXMpcO6LciExHXszIiLyJ+f1AT19O3MPOXwRHDdWqsbVnRyKNERm1k5Yj4f0Mij2LeXvunNv2M0lDtU77fjYPGu9nUMWI+etr57aulFIXqnUm1jZGZDSV6Yj3M6Tl/3Xift/6O6ssQrWKsj5S2rVxMctQrbNQ1p+/n/HYiCC8mD+fOrdxRKqYUK1DWR8hePEfT93vl5v+vuhQrTN/P/MybSjrowsv8nDqHuymv68uVKso66MLI+bda+fWnulSfajWoayPXbaV1gnVntqR6oayPlobuysIVUerZX3ez+qzaXCRUA2Isn5dvJhfT527Xf1zQhXYvKy/EDQeGwuxqbROqBKgrF+MtYOLhEqB5fczyvp5eTm4SKiUoqyfi5eDi4QqI5T1VXpRWidUmWOaOr3VwUVCVZg1ZX3ezwJb7a4gVBWgrB/a8uAioarU4jS1iGl4bOxlqbROqCAilPX7WpwGJlTYiENS90eo0Bll/fUIFQZFWZ9QIbAKy/pLvwA+TnklKFP7i1AnIt9PHFop6xf2fmbulv4r0VUAxZT1V8+rIFRQI9NDUj+fuIdm8Q8IFVTTXtZft7CAUCE7Wg5JZZweRYtd1t8UKBFChUIFPCT1qxdztSlQIoQKFRmgrP/5WcxldkvfgJj22H32WcTcPYvc7goTAAB5+B/lZPvK/4RI3wAAAABJRU5ErkJggg==","e":1},{"id":"image_2","w":57,"h":57,"u":"","p":"data:image/png;base64,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","e":1},{"id":"image_3","w":108,"h":95,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGwAAABfCAYAAAANiCLOAAAACXBIWXMAAAABAAAAAQBPJcTWAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAFF0lEQVR4nO2d3XXiOBTH/xIh5I08gs05660gngrGW8Gmg2QqGEqYEmYrGNJBpgO2g0wFSc7BZh43bxtgrX3AMHzIxjaSLdn398iHufBDV7J8ZQEEQRBEAlN9wPlg4KHTCWImPAb4EOxaMDEFACHY4ygMn1R/ZptQJixynFswNgbExxMvfRUMk8XF5dffX17+UfX5beFsYfPBwBOdziSHqENeGeP3w9lsem4MbeIsYTPX9TnEFEC/fADs0zAMJ+fE0SZ42TeqkAUAAuJb5A7H5xyjTZRqYc+ed91bLp4A/KYwlgcnjO4VHq+RlGphveXyC9TKAoC7yHUmio/ZOAq3sPUggz/rCCaBWloGhVuY6LBbHYHsQC0tgxIpkd0rj+IYkpZCmT7sRnkUckiahELC5qNRoCmONEjaAYWECfGfryuQDO6ikfP47HnXNXy2cRRMiawOYYDAn73lYkrSivdhgY4gcnJD0goIS34o1SfLRWm9tNzCrlaretLhMa2WlltYjDjQGEdRWisttzAmWKAxjjK0UlqBQYcwJSXu0jppuYTNBwMPZ1730shNb7mYzlzXxD+UcnIJE5yb/mPccIhWSMuXEplx/ZeMfhuk5e3DbPkRGi8tp7DCFVF10mhpJ4VZ+sUbK+2ksI496fCQRko7KUxABBXEoYvGScvTh9n+ZfscYjp33fu6A1FBHmFVlQTopC8gvjVBWqawGkoCtNIEaZnCDJuhV4Lt0jKFMfv7Lyk2S8vuw0QzhQH2SksVZkhJgFZslJYqrLdYBBXGURu2SUsVJnhz0+Eh6zVqdhSspgozsCRAN1ZUGWcMOowsCdCN8dKkwpK5N1NLAnRjtDSpMItn6FVhrDSpMEHCAEOlpfVhJGyNcdKka5wj1xFVB2I4D+/dy7EJd+45amFNm6FXxJ0pBatHwmpatGcDRlQZS/qwmhbt2UHt0mSDjqDqICyjVml7wtowQ6+I2qTtCTNo0Z4N1CJtT1gTSwI0U7m0PWFNLQnQTKXLnfYHHYIGHCWpbLnTVpjhi/ZsoJIq460wCxbt2YB2aTvCqP9ShFZpW2EtLAnQiTZpO4MOqxbt2YAWaRywdtGeDSiXxgEqCdCM0uVOHKCSgApQttxp04eRsApQIa30zhBEOc6VRsJq4BxpG2G0p1fFlJXGAYCRsFooI40DwL/d7qOWiIiTFJXGASCpt3vQFRSRTZHlTttBRwz2VVtERB7uItc96WArbL2ZKPtLb0xENuLzqfR4VKoduc4TmnEzFVt5e+9eemll4UfnYe/dywDAD91REan0e8tFampM3fBtnU/FZz0xESdIbWWpMx1OGI4Z43+A4bve2AgJ/avlUrqx3kXWu5I9lqeb3c/Xt+JjHl3s1E/aFZTS+zjPXNfvAH7MhLcuLxBtXhetAfa3E4bB4aOZLSyL9WnA/pTWfDDwcHHhxYgDBvjJrY+oVl8hpYXJGP78+QLgBcB09/H5aBSs150xn1LqeSgVlsamL9x9bJNSk1ztU0o9gAnpeVglwmSkpVTBuS84/LanVJFyBaX0oKMqnj3v+mq18n+lVPhowUxMDPYh+VPvYbywNBqeUl+dMPJkT1grTEZTUioD+zQMw4n8uYZjYUr94YRRahVb44WlYWhKfYvBAlnftaG1wmTUnVKzUuGv1xCZVJRS3xjjt8n5aiYkrCTKUirDd7aKx8ksUY6XE8ookFJfAfYYA5Os/koGCauA3Ruu5Ul7BEHUxf8pZA3ZP6T0gwAAAABJRU5ErkJggg==","e":1},{"id":"image_4","w":134,"h":134,"u":"","p":"data:image/png;base64,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","e":1},{"id":"image_5","w":1215,"h":727,"u":"","p":"data:image/png;base64,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","e":1},{"id":"comp_0","layers":[{"ddd":0,"ind":1,"ty":0,"nm":"Santa-hat","refId":"comp_1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.7],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":38,"s":[20]},{"i":{"x":[0.7],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":50,"s":[-1]},{"t":60.0000024438501,"s":[0]}],"ix":10},"p":{"a":1,"k":[{"i":{"x":0.7,"y":1},"o":{"x":0.167,"y":0.167},"t":38,"s":[1242,432,0],"to":[-226,98,0],"ti":[0,0,0]},{"i":{"x":0.7,"y":1},"o":{"x":0.167,"y":0},"t":50,"s":[1000,1038,0],"to":[0,0,0],"ti":[0,0,0]},{"t":60.0000024438501,"s":[1000,1000,0]}],"ix":2},"a":{"a":0,"k":[1000,1000,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.7,0.7,0.667],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,17]},"t":38,"s":[0,0,100]},{"i":{"x":[0.7,0.7,0.667],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0,0,0]},"t":50,"s":[102,102,100]},{"t":60.0000024438501,"s":[100,100,100]}],"ix":6}},"ao":0,"w":2000,"h":2000,"ip":38.0000015477717,"op":188.000007657397,"st":38.0000015477717,"bm":0},{"ddd":0,"ind":2,"ty":2,"nm":"코","refId":"image_4","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1002.3,1057.09,0],"ix":2},"a":{"a":0,"k":[66.691,66.691,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,20]},"t":30,"s":[0,0,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":37,"s":[120,120,100]},{"t":43.0000017514259,"s":[100,100,100]}],"ix":6}},"ao":0,"ip":30.0000012219251,"op":316.000012870944,"st":16.0000006516934,"bm":0},{"ddd":0,"ind":3,"ty":2,"nm":"레이어 1","refId":"image_5","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[999.842,999.509,0],"ix":2},"a":{"a":0,"k":[607.335,363.363,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"hasMask":true,"masksProperties":[{"inv":false,"mode":"s","pt":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":25,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[684.493,521.855],[533.493,521.855],[533.493,498.855],[684.493,498.855]],"c":true}]},{"t":26.0000010590017,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[684.493,351.855],[533.493,351.855],[533.493,498.855],[684.493,498.855]],"c":true}]}],"ix":1},"o":{"a":0,"k":100,"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 1"}],"ip":0,"op":150.000006109625,"st":0,"bm":0}]},{"id":"comp_1","layers":[{"ddd":0,"ind":1,"ty":2,"nm":"레이어 7","refId":"image_0","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1101.137,636.976,0],"ix":2},"a":{"a":0,"k":[144.114,78.956,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":262.000010671479,"st":-38.0000015477717,"bm":0},{"ddd":0,"ind":2,"ty":2,"nm":"레이어 5","refId":"image_1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1106.338,523.097,0],"ix":2},"a":{"a":0,"k":[106.174,108.906,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":262.000010671479,"st":-38.0000015477717,"bm":0},{"ddd":0,"ind":3,"ty":2,"nm":"레이어 6","parent":4,"refId":"image_2","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[106.33,87.413,0],"ix":2},"a":{"a":0,"k":[28.363,28.363,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":262.000010671479,"st":-38.0000015477717,"bm":0},{"ddd":0,"ind":4,"ty":2,"nm":"레이어 4","refId":"image_3","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.412],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":5,"s":[-36]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":23,"s":[6]},{"t":34.0000013848484,"s":[0]}],"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"t":5,"s":[1147.83,439.265,0],"to":[0,0,0],"ti":[0,0,0]},{"t":23.0000009368092,"s":[1140.83,439.265,0]}],"ix":2},"a":{"a":0,"k":[19.909,22.168,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":262.000010671479,"st":-38.0000015477717,"bm":0}]},{"id":"comp_2","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"우4 Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1100.134,778,0],"ix":2},"a":{"a":0,"k":[382.57,398,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[55.268,0],[0,-55.267],[0,0]],"o":[[0,0],[0,-55.267],[-55.267,0],[0,0],[0,0]],"v":[[100.071,80.571],[100.071,-15.43],[-0.001,-115.5],[-100.071,-15.43],[-100.071,115.5]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.062745098039,0.094117647059,0.156862745098,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":113,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[382.571,398],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":0,"k":0,"ix":1},"e":{"a":1,"k":[{"i":{"x":[0],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":18,"s":[0]},{"t":32.0000013033867,"s":[100]}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":12.00000048877,"op":162.000006598395,"st":12.00000048877,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"우3 Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1299.852,1016.022,0],"ix":2},"a":{"a":0,"k":[382.148,539.336,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[55.034,0],[0,-55.034],[0,0]],"o":[[0,0],[0,-55.034],[-55.034,0],[0,0],[0,0]],"v":[[99.648,67.078],[99.648,-157.188],[0,-256.835],[-99.648,-157.188],[-99.648,256.836]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.062745098039,0.094117647059,0.156862745098,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":113,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[382.148,539.336],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":0,"k":0,"ix":1},"e":{"a":1,"k":[{"i":{"x":[0],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":12,"s":[0]},{"t":27.0000010997325,"s":[100]}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":12.00000048877,"op":162.000006598395,"st":12.00000048877,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"우2 Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1399.4,1120.619,0],"ix":2},"a":{"a":0,"k":[56.5,112.119,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[56.5,56.5],[56.5,167.738]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.062745098039,0.094117647059,0.156862745098,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":113,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":0,"k":0,"ix":1},"e":{"a":1,"k":[{"i":{"x":[0],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":12,"s":[0]},{"t":22.0000008960784,"s":[100]}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":12.00000048877,"op":162.000006598395,"st":12.00000048877,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"우1 Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1600.4,1038.493,0],"ix":2},"a":{"a":0,"k":[56.5,101.107,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[56.5,56.5],[56.5,145.714]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.062745098039,0.094117647059,0.156862745098,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":113,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0],"y":[1]},"o":{"x":[0.15],"y":[0]},"t":12,"s":[100]},{"t":32.0000013033867,"s":[0]}],"ix":1},"e":{"a":0,"k":100,"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":12.00000048877,"op":162.000006598395,"st":12.00000048877,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":"좌4 Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[900.05,1237.107,0],"ix":2},"a":{"a":0,"k":[382.45,382.893,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[-55.201,0],[0,55.201]],"o":[[0,0],[0,55.201],[55.201,0],[0,0]],"v":[[-99.95,-100.393],[-99.95,0.443],[0,100.393],[99.95,0.443]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.062745098039,0.094117647059,0.156862745098,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":113,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[382.45,382.893],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":0,"k":0,"ix":1},"e":{"a":1,"k":[{"i":{"x":[0],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":18,"s":[0]},{"t":32.0000013033867,"s":[100]}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":12.00000048877,"op":162.000006598395,"st":12.00000048877,"bm":0},{"ddd":0,"ind":6,"ty":4,"nm":"좌3 Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[700.412,983.8,0],"ix":2},"a":{"a":0,"k":[382.112,539.3,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[-55.014,0],[0,55.014],[0,0]],"o":[[0,0],[0,55.014],[55.014,0],[0,0],[0,0]],"v":[[-99.612,75.086],[-99.612,157.189],[0,256.8],[99.612,157.189],[99.612,-256.8]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.062745098039,0.094117647059,0.156862745098,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":113,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[382.112,539.3],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":0,"k":0,"ix":1},"e":{"a":1,"k":[{"i":{"x":[0],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":12,"s":[0]},{"t":27.0000010997325,"s":[100]}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":12.00000048877,"op":162.000006598395,"st":12.00000048877,"bm":0},{"ddd":0,"ind":7,"ty":4,"nm":"좌2 Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[600.8,953.493,0],"ix":2},"a":{"a":0,"k":[56.5,186.107,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[56.5,56.5],[56.5,315.714]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.062745098039,0.094117647059,0.156862745098,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":113,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":12,"s":[100]},{"t":22.0000008960784,"s":[0]}],"ix":1},"e":{"a":0,"k":100,"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":12.00000048877,"op":162.000006598395,"st":12.00000048877,"bm":0},{"ddd":0,"ind":8,"ty":4,"nm":"좌1 Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[399.7,1038.493,0],"ix":2},"a":{"a":0,"k":[56.5,101.107,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[56.5,56.5],[56.5,145.714]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.062745098039,0.094117647059,0.156862745098,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":113,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0],"y":[1]},"o":{"x":[0.1],"y":[0]},"t":12,"s":[100]},{"t":32.0000013033867,"s":[0]}],"ix":1},"e":{"a":0,"k":100,"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":12.00000048877,"op":162.000006598395,"st":12.00000048877,"bm":0},{"ddd":0,"ind":9,"ty":4,"nm":"축 Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1000.05,1070.993,0],"ix":2},"a":{"a":0,"k":[656.85,68.607,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[1257.2,80.714],[1257.2,56.5]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.062745098039,0.094117647059,0.156862745098,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":113,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 2","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"st","c":{"a":0,"k":[0.062745098039,0.094117647059,0.156862745098,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":113,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[1056.3,80.714],[1056.3,56.5]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.062745098039,0.094117647059,0.156862745098,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":113,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[856.9,80.714],[856.9,56.5]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.062745098039,0.094117647059,0.156862745098,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":113,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 3","np":2,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[56.5,56.5],[56.5,80.714]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.062745098039,0.094117647059,0.156862745098,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":113,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 4","np":2,"cix":2,"bm":0,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[257.6,56.5],[257.6,80.714]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.062745098039,0.094117647059,0.156862745098,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":113,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 5","np":2,"cix":2,"bm":0,"ix":5,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[456.9,56.5],[456.9,80.714]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.062745098039,0.094117647059,0.156862745098,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":113,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 6","np":2,"cix":2,"bm":0,"ix":6,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[656.8,56.5],[656.8,80.714]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.062745098039,0.094117647059,0.156862745098,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":113,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 7","np":2,"cix":2,"bm":0,"ix":7,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":150.000006109625,"st":0,"bm":0}]},{"id":"comp_3","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"WAKTAVERSE Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[999.842,1381.684,0],"ix":2},"a":{"a":0,"k":[632.828,69.651,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"hasMask":true,"masksProperties":[{"inv":false,"mode":"a","pt":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[0.25,0.25],[0.25,139.052],[1265.407,139.052],[1265.407,0.25]],"c":true},"ix":1},"o":{"a":0,"k":100,"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 1"}],"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[3.814,-14.183],[0,0],[3.778,13.966],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[-3.591,13.966],[0,0],[-3.816,-14.146],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[107.042,-8.294],[96.905,33.397],[96.044,33.397],[85.907,-8.294],[71.544,-65.752],[33.092,-65.752],[73.639,65.742],[117.589,65.742],[158.135,-65.752],[120.955,-65.752]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[16.673,6.564],[0,0],[0,6.384],[-8.647,0],[-9.044,-6.384],[0,0],[15.239,0],[0,-22.869],[-14.4,-5.762],[0,0],[0,-6.375],[10.722,0],[9.487,7.62],[0,0],[-16.88,0],[0,22.641]],"o":[[0,0],[-12.146,-4.743],[0,-5.978],[9.883,0],[0,0],[-12.354,-12.136],[-29.243,0],[0,19.35],[0,0],[11.344,4.517],[0,5.979],[-9.883,0],[0,0],[14.4,12.976],[33.364,0],[0,-18.521]],"v":[[496.076,-10.086],[479.819,-16.461],[460.053,-29.842],[474.057,-38.923],[500.82,-29.257],[518.539,-51.503],[474.057,-69.401],[424.209,-27.795],[451.189,9.463],[467.852,16.46],[485.977,29.436],[470.738,38.923],[439.411,25.937],[419.25,50.258],[469.898,69.401],[522.226,26.56]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ind":2,"ty":"sh","ix":3,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[215.521,13.122],[259.069,13.122],[259.069,-15.998],[215.521,-15.998],[215.521,-36.622],[266.443,-36.622],[266.443,-65.752],[180.217,-65.752],[180.217,65.742],[268.48,65.742],[268.48,36.622],[215.521,36.622]],"c":true},"ix":2},"nm":"Path 3","mn":"ADBE Vector Shape - Group","hd":false},{"ind":3,"ty":"sh","ix":4,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[579.609,36.622],[579.609,13.122],[623.12,13.122],[623.12,-15.998],[579.609,-15.998],[579.609,-36.622],[630.542,-36.622],[630.542,-65.752],[544.312,-65.752],[544.312,65.742],[632.578,65.742],[632.578,36.622]],"c":true},"ix":2},"nm":"Path 4","mn":"ADBE Vector Shape - Group","hd":false},{"ind":4,"ty":"sh","ix":5,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[-2.896,13.362],[0,0],[-3.3,-12.571],[0,0]],"o":[[0,0],[3.3,-12.533],[0,0],[3.299,13.146],[0,0],[0,0]],"v":[[-42.405,10.906],[-40.205,1.806],[-30.673,-39.885],[-29.83,-39.885],[-19.896,1.806],[-17.697,10.906]],"c":true},"ix":2},"nm":"Path 5","mn":"ADBE Vector Shape - Group","hd":false},{"ind":5,"ty":"sh","ix":6,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-50.983,-65.752],[-91.968,65.742],[-55.528,65.742],[-48.819,37.838],[-11.281,37.838],[-4.609,65.742],[33.076,65.742],[-7.908,-65.752]],"c":true},"ix":2},"nm":"Path 6","mn":"ADBE Vector Shape - Group","hd":false},{"ind":6,"ty":"sh","ix":7,"ks":{"a":0,"k":{"i":[[13.834,0],[0,0],[0,0],[0,0],[0,-11.316]],"o":[[0,0],[0,0],[0,0],[13.834,0],[0,11.326]],"v":[[341.865,-5.861],[329.248,-5.861],[329.248,-38.235],[341.865,-38.235],[363.008,-23.269]],"c":true},"ix":2},"nm":"Path 7","mn":"ADBE Vector Shape - Group","hd":false},{"ind":7,"ty":"sh","ix":8,"ks":{"a":0,"k":{"i":[[0,18.775],[28.469,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,-32.77],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[12.862,-6.913]],"v":[[397.211,-23.269],[344.308,-65.752],[294.224,-65.752],[294.224,65.742],[329.248,65.742],[329.248,21.647],[342.686,21.647],[365.46,65.742],[404.557,65.742],[375.767,14.631]],"c":true},"ix":2},"nm":"Path 8","mn":"ADBE Vector Shape - Group","hd":false},{"ind":8,"ty":"sh","ix":9,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[-2.896,13.324],[0,0],[-3.298,-12.57],[0,0]],"o":[[0,0],[3.262,-12.57],[0,0],[3.298,13.145],[0,0],[0,0]],"v":[[-413.804,10.944],[-411.605,1.843],[-402.113,-39.847],[-401.27,-39.847],[-391.34,1.843],[-389.139,10.944]],"c":true},"ix":2},"nm":"Path 9","mn":"ADBE Vector Shape - Group","hd":false},{"ind":9,"ty":"sh","ix":10,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-422.417,-65.752],[-463.389,65.742],[-426.961,65.742],[-420.254,37.838],[-382.726,37.838],[-376.02,65.742],[-338.345,65.742],[-379.318,-65.752]],"c":true},"ix":2},"nm":"Path 10","mn":"ADBE Vector Shape - Group","hd":false},{"ind":10,"ty":"sh","ix":11,"ks":{"a":0,"k":{"i":[[0,0],[1.453,-13.937],[0,0],[2.534,13.146],[0,0],[0,0],[0,0],[2.496,-13.758],[0,0],[1.453,13.759],[0,0],[0,0],[0,0],[0,0],[0,0],[-1.49,9.741],[0,0],[-2.123,-10.138],[0,0],[0,0],[0,0],[0,0]],"o":[[-1.491,13.363],[0,0],[-2.533,-13.975],[0,0],[0,0],[0,0],[-2.534,13.542],[0,0],[-1.49,-13.758],[0,0],[0,0],[0,0],[0,0],[0,0],[2.086,-10.1],[0,0],[1.266,9.713],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-505.463,-8.294],[-510.083,32.972],[-510.94,32.972],[-518.503,-8.294],[-531.542,-65.752],[-561.831,-65.752],[-574.87,-8.294],[-582.433,32.972],[-583.29,32.972],[-587.911,-8.294],[-595.474,-65.752],[-632.578,-65.752],[-608.586,65.742],[-563.544,65.742],[-553.448,13.556],[-548.381,-17.215],[-547.524,-17.215],[-542.458,13.556],[-531.99,65.742],[-486.127,65.742],[-463.402,-65.752],[-497.9,-65.752]],"c":true},"ix":2},"nm":"Path 11","mn":"ADBE Vector Shape - Group","hd":false},{"ind":11,"ty":"sh","ix":12,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-194.926,-36.622],[-158.134,-36.622],[-158.134,65.742],[-121.382,65.742],[-121.382,-36.622],[-84.593,-36.622],[-84.593,-65.752],[-194.926,-65.752]],"c":true},"ix":2},"nm":"Path 12","mn":"ADBE Vector Shape - Group","hd":false},{"ind":12,"ty":"sh","ix":13,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-206.528,-65.752],[-245.621,-65.752],[-279.71,-16.781],[-280.52,-16.781],[-280.52,-65.752],[-316.301,-65.752],[-316.301,65.742],[-280.52,65.742],[-280.52,32.972],[-267.635,15.168],[-237.708,65.742],[-198.613,65.742],[-246.837,-12.339]],"c":true},"ix":2},"nm":"Path 13","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.062745098039,0.094117647059,0.156862745098,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":1,"k":[{"i":{"x":0,"y":1},"o":{"x":1,"y":0.417},"t":0,"s":[632.828,229.651],"to":[0,-26.667],"ti":[0,26.667]},{"i":{"x":0,"y":0},"o":{"x":0,"y":0},"t":20,"s":[632.828,69.651],"to":[0,0],"ti":[0,0]},{"t":32.0000013033867,"s":[632.828,69.651]}],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":14,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":150.000006109625,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"MUSIC Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1009.031,1571.617,0],"ix":2},"a":{"a":0,"k":[458.13,69.652,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"hasMask":true,"masksProperties":[{"inv":false,"mode":"a","pt":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[0.25,0.25],[0.25,139.053],[916.011,139.053],[916.011,0.25]],"c":true},"ix":1},"o":{"a":0,"k":100,"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 1"}],"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[218.845,69.402],[255.622,69.402],[255.622,-62.093],[218.845,-62.093]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[16.701,6.591],[0,0],[0,6.384],[-8.643,0],[-9.044,-6.385],[0,0],[15.242,0],[0,-22.859],[-14.404,-5.762],[0,0],[0,-6.384],[10.72,0],[9.481,7.62],[0,0],[-16.882,0],[0,22.641]],"o":[[0,0],[-12.142,-4.743],[0,-5.979],[9.882,0],[0,0],[-12.362,-12.146],[-29.245,0],[0,19.36],[0,0],[11.341,4.526],[0,5.979],[-9.883,0],[0,0],[14.404,12.976],[33.366,0],[0.036,-18.521]],"v":[[78.67,-10.076],[62.406,-16.46],[42.642,-29.842],[56.646,-38.923],[83.411,-29.257],[101.132,-51.494],[56.646,-69.402],[6.799,-27.795],[33.781,9.463],[50.447,16.46],[68.569,29.446],[53.328,38.924],[22.004,25.937],[1.839,50.257],[52.488,69.402],[104.816,26.561]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ind":2,"ty":"sh","ix":3,"ks":{"a":0,"k":{"i":[[0,0],[10.505,0],[0,25.122],[-15.993,0],[-6.742,-5.761],[0,0],[18.115,0],[0,-44.915],[-34.958,0],[-11.589,13.165]],"o":[[-5.885,6.158],[-17.672,0],[0,-24.311],[9.241,0],[0,0],[-9.694,-9.478],[-34.514,0],[0,45.718],[17.672,0],[0,0]],"v":[[438.946,27.399],[414.125,38.924],[384.636,-0.202],[414.531,-38.923],[437.266,-29.041],[456.203,-51.682],[413.672,-69.402],[347.548,1.041],[412.814,69.402],[457.88,49.636]],"c":true},"ix":2},"nm":"Path 3","mn":"ADBE Vector Shape - Group","hd":false},{"ind":3,"ty":"sh","ix":4,"ks":{"a":0,"k":{"i":[[0,0],[2.52,-7.695],[0,0],[2.521,7.27],[0,0],[0,0],[0,0],[0,0],[0,0],[1.668,13.146],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,-13.325],[0,0],[0,0],[0,0],[0,0]],"o":[[-2.52,7.27],[0,0],[-2.52,-7.695],[0,0],[0,0],[0,0],[0,0],[0,0],[0,-13.353],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-1.667,13.146],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-383.75,-8.294],[-390.865,14.773],[-391.719,14.773],[-398.834,-8.294],[-419.37,-62.093],[-457.88,-62.093],[-457.88,69.402],[-425.633,69.402],[-425.633,30.567],[-430.229,-16.347],[-429.376,-16.347],[-418.479,15.205],[-401.725,58.688],[-382.451,58.688],[-365.698,15.205],[-354.393,-16.347],[-353.54,-16.347],[-358.136,30.567],[-358.136,69.402],[-325.482,69.402],[-325.482,-62.093],[-364.068,-62.093]],"c":true},"ix":2},"nm":"Path 4","mn":"ADBE Vector Shape - Group","hd":false},{"ind":4,"ty":"sh","ix":5,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[13.996,0],[0,23.028],[0,0],[0,0],[0,0],[-37.469,0],[0,44.104],[0,0],[0,0]],"o":[[0,0],[0,23.028],[-13.996,0],[0,0],[0,0],[0,0],[0,44.104],[37.471,0],[0,0],[0,0],[0,0]],"v":[[-135.339,8.633],[-135.266,8.633],[-155.859,39.998],[-176.052,8.633],[-176.052,-62.093],[-211.482,-62.093],[-211.482,4.654],[-155.896,69.402],[-101.148,4.654],[-101.148,-62.093],[-135.339,-62.093]],"c":true},"ix":2},"nm":"Path 5","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.062745098039,0.094117647059,0.156862745098,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":1,"k":[{"i":{"x":0,"y":1},"o":{"x":1,"y":0.417},"t":0,"s":[458.13,-90.348],"to":[0,26.667],"ti":[0,-26.667]},{"t":20.0000008146167,"s":[458.13,69.652]}],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":6,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":150.000006109625,"st":0,"bm":0}]}],"layers":[{"ddd":0,"ind":1,"ty":0,"nm":"FINAL","refId":"comp_0","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[750,797,0],"ix":2},"a":{"a":0,"k":[1000,1000,0],"ix":1},"s":{"a":0,"k":[102,102,100],"ix":6}},"ao":0,"hasMask":true,"masksProperties":[{"inv":false,"mode":"a","pt":{"a":1,"k":[{"i":{"x":0.094,"y":1},"o":{"x":0.5,"y":1},"t":25,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-800,-228],[-800,1772],[-296,1772],[1200,-228]],"c":true}]},{"t":30.0000012219251,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-800,-228],[-800,1771.999],[1272.003,2068],[2768,68]],"c":true}]}],"ix":1},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":25,"s":[0]},{"t":30.0000012219251,"s":[100]}],"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 1"}],"w":2000,"h":2000,"ip":0,"op":81.0000032991976,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":0,"nm":"S3","refId":"comp_2","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":8,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.333],"y":[0]},"t":26,"s":[100]},{"t":30.0000012219251,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[749.5,797,0],"ix":2},"a":{"a":0,"k":[1000,1000,0],"ix":1},"s":{"a":0,"k":[94,94,100],"ix":6}},"ao":0,"w":2000,"h":2000,"ip":0,"op":81.0000032991976,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":0,"nm":"LOGO TYPE","refId":"comp_3","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[750,1084,0],"ix":2},"a":{"a":0,"k":[1000,1000,0],"ix":1},"s":{"a":0,"k":[102,102,100],"ix":6}},"ao":0,"w":2000,"h":2000,"ip":20.0000008146167,"op":81.0000032991976,"st":20.0000008146167,"bm":0}],"markers":[]} \ No newline at end of file diff --git a/Projects/UsertInterfaces/DesignSystem/Sources/Extension+UILabel.swift b/Projects/UsertInterfaces/DesignSystem/Sources/Extension+UILabel.swift new file mode 100644 index 000000000..219750d0e --- /dev/null +++ b/Projects/UsertInterfaces/DesignSystem/Sources/Extension+UILabel.swift @@ -0,0 +1,95 @@ +// +// Extension+UILabel.swift +// Utility +// +// Created by YoungK on 2023/01/09. +// Copyright © 2023 yongbeomkwak. All rights reserved. +// + +import UIKit + +public extension UILabel { + @available(*, deprecated, renamed: "setTextWithAttributes", message: "setLineSpacing과 setLineHeight 통합됨") + /// 레이블의 높이, 자간, 행간을 조절하는 메소드입니다. + /// - Parameter kernValue: 글자간의 간격 + /// - Parameter lineSpacing: 줄 간격 (한 줄과 다음 줄 사이의 간격) + /// - Parameter lineHeightMultiple: 줄 간격의 배수 (lineSpacing * lineHeightMultiple) + func setLineSpacing(kernValue: Double = 0.0, + lineSpacing: CGFloat = 0.0, + lineHeightMultiple: CGFloat = 0.0) { + guard let labelText = self.text else { return } + + let paragraphStyle = NSMutableParagraphStyle() + paragraphStyle.lineSpacing = lineSpacing + paragraphStyle.lineHeightMultiple = lineHeightMultiple + paragraphStyle.lineBreakMode = .byTruncatingTail + + let attributedString = NSMutableAttributedString(string: labelText, + attributes: [ + .paragraphStyle: paragraphStyle, + .kern: kernValue + ]) + + self.attributedText = attributedString + } + + @available(*, deprecated, renamed: "setTextWithAttributes", message: "setLineSpacing과 setLineHeight 통합됨") + func setLineHeight(lineHeight: CGFloat){ + if let text = self.text { + let style = NSMutableParagraphStyle() + style.maximumLineHeight = lineHeight + style.minimumLineHeight = lineHeight + + let attributes: [NSAttributedString.Key: Any] = [ + .paragraphStyle: style, + .baselineOffset: (lineHeight - font.lineHeight) / 2 + ] + let attrString = NSAttributedString(string: text, + attributes: attributes) + self.attributedText = attrString + } + } + + /// 레이블의 높이, 자간, 행간을 조절하는 메소드입니다. + /// - Parameter lineHeight: 레이블 자체의 높이 + /// - Parameter kernValue: 글자간의 간격 + /// - Parameter lineSpacing: 줄 간격 (한 줄과 다음 줄 사이의 간격) + /// - Parameter lineHeightMultiple: 줄 간격의 배수 (lineSpacing * lineHeightMultiple) + func setTextWithAttributes(lineHeight: CGFloat? = nil, + kernValue: Double? = nil, + lineSpacing: CGFloat? = nil, + lineHeightMultiple: CGFloat? = nil, + alignment: NSTextAlignment = .left) { + guard let labelText = self.text else { return } + + let paragraphStyle = NSMutableParagraphStyle() + + if let lineSpacing { paragraphStyle.lineSpacing = lineSpacing } + if let lineHeightMultiple { paragraphStyle.lineHeightMultiple = lineHeightMultiple } + + paragraphStyle.lineBreakMode = .byTruncatingTail + paragraphStyle.alignment = alignment + + let style = NSMutableParagraphStyle() + + let baselineOffset: CGFloat + + if let lineHeight { + style.maximumLineHeight = lineHeight + style.minimumLineHeight = lineHeight + baselineOffset = (lineHeight - font.lineHeight) / 2 + } else { + baselineOffset = 0 + } + + let attributes: [NSAttributedString.Key: Any] = [ + .paragraphStyle: paragraphStyle, + .kern: kernValue ?? 0.0, + .baselineOffset: baselineOffset + ] + + let attributedString = NSMutableAttributedString(string: labelText, attributes: attributes) + + self.attributedText = attributedString + } +} diff --git a/Projects/UsertInterfaces/DesignSystem/Sources/Temp.swift b/Projects/UsertInterfaces/DesignSystem/Sources/Temp.swift deleted file mode 100644 index 9bdd50472..000000000 --- a/Projects/UsertInterfaces/DesignSystem/Sources/Temp.swift +++ /dev/null @@ -1,9 +0,0 @@ -// -// Temp.swift -// DesignSystem -// -// Created by yongbeomkwak on 2023/02/09. -// Copyright © 2023 yongbeomkwak. All rights reserved. -// - -import Foundation diff --git a/Projects/UsertInterfaces/DesignSystem/Sources/WMFlowLabel.swift b/Projects/UsertInterfaces/DesignSystem/Sources/WMFlowLabel.swift new file mode 100644 index 000000000..5aecc59cb --- /dev/null +++ b/Projects/UsertInterfaces/DesignSystem/Sources/WMFlowLabel.swift @@ -0,0 +1,42 @@ +// +// WMFlowLabel.swift +// DesignSystem +// +// Created by YoungK on 11/25/23. +// Copyright © 2023 yongbeomkwak. All rights reserved. +// + +import UIKit +import MarqueeLabel + +public final class WMFlowLabel: MarqueeLabel { + public init( + text: String = "", + textColor: UIColor = .init(), + font: UIFont.WMFontSystem, + alignment: NSTextAlignment = .left, + lineHeight: CGFloat? = nil, + kernValue: Double? = nil, + lineSpacing: CGFloat? = nil, + lineHeightMultiple: CGFloat? = nil, + leadingBuffer: CGFloat = 0, + trailingBuffer: CGFloat = 0, + animationDelay: CGFloat = 1, + animationSpeed: CGFloat = 30, + fadeLength: CGFloat = 3 + ) { + super.init(frame: .zero, rate: animationSpeed, fadeLength: fadeLength) + self.text = text + self.textColor = textColor + self.font = .setFont(font) + self.textAlignment = alignment + self.setTextWithAttributes(lineHeight: lineHeight, kernValue: kernValue, lineSpacing: lineSpacing, lineHeightMultiple: lineHeightMultiple, alignment: alignment) + self.leadingBuffer = leadingBuffer + self.trailingBuffer = trailingBuffer + self.animationDelay = animationDelay + } + + required init?(coder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } +} diff --git a/Projects/UsertInterfaces/DesignSystem/Sources/WMFontSystem.swift b/Projects/UsertInterfaces/DesignSystem/Sources/WMFontSystem.swift new file mode 100644 index 000000000..90a119202 --- /dev/null +++ b/Projects/UsertInterfaces/DesignSystem/Sources/WMFontSystem.swift @@ -0,0 +1,115 @@ +// +// WMFontSystem.swift +// DesignSystem +// +// Created by YoungK on 11/22/23. +// Copyright © 2023 yongbeomkwak. All rights reserved. +// + +import UIKit + +protocol WMFontable { + var font: UIFont { get } + var lineHeight: CGFloat { get } +} + +public extension UIFont { + enum WMFontSystem: WMFontable { + /// size: 24 height: 36 + case t1(weight: WMFontWeight = .medium) + /// size: 22 height: 32 + case t2(weight: WMFontWeight = .medium) + /// size: 20 height: 32 + case t3(weight: WMFontWeight = .medium) + /// size: 18 height: 28 + case t4(weight: WMFontWeight = .medium) + /// size: 16 height: 24 + case t5(weight: WMFontWeight = .medium) + /// size: 14 height: 14 + case t6(weight: WMFontWeight = .medium) + /// size: 14 height: 20 + case t6_1(weight: WMFontWeight = .medium) + /// size: 12 height: 18 + case t7(weight: WMFontWeight = .medium) + /// size: 12 height: 14 + case t7_1(weight: WMFontWeight = .medium) + /// size: 11 height: 16 + case t8(weight: WMFontWeight = .medium) + } + + static func setFont(_ style: WMFontSystem) -> UIFont { + return style.font + } +} + +public extension UIFont.WMFontSystem { + enum WMFontWeight { + case light, medium, bold + } + + var font: UIFont { + return UIFont(font: weight.font, size: size) ?? .init() + } + + var lineHeight: CGFloat { + return height + } +} + +private extension UIFont.WMFontSystem { + var weight: WMFontWeight { + switch self { + case let .t1(weight), + let .t2(weight), + let .t3(weight), + let .t4(weight), + let .t5(weight), + let .t6(weight), + let .t6_1(weight), + let .t7(weight), + let .t7_1(weight), + let .t8(weight): + return weight + } + } + + var size: CGFloat { + switch self { + case .t1: return 24 + case .t2: return 22 + case .t3: return 20 + case .t4: return 18 + case .t5: return 16 + case .t6: return 14 + case .t6_1: return 14 + case .t7: return 12 + case .t7_1: return 12 + case .t8: return 11 + } + } + + var height: CGFloat { + switch self { + case .t1: return 36 + case .t2: return 32 + case .t3: return 32 + case .t4: return 28 + case .t5: return 24 + case .t6: return 20 + case .t6_1: return 20 + case .t7: return 18 + case .t7_1: return 14 + case .t8: return 16 + } + } +} + +public extension UIFont.WMFontSystem.WMFontWeight { + var font: DesignSystemFontConvertible { + switch self { + case .light: return DesignSystemFontFamily.Pretendard.light + case .medium: return DesignSystemFontFamily.Pretendard.medium + case .bold: return DesignSystemFontFamily.Pretendard.bold + } + } +} diff --git a/Projects/UsertInterfaces/DesignSystem/Sources/WMLabel.swift b/Projects/UsertInterfaces/DesignSystem/Sources/WMLabel.swift new file mode 100644 index 000000000..97da8bba1 --- /dev/null +++ b/Projects/UsertInterfaces/DesignSystem/Sources/WMLabel.swift @@ -0,0 +1,46 @@ +// +// WMLabel.swift +// DesignSystem +// +// Created by YoungK on 11/22/23. +// Copyright © 2023 yongbeomkwak. All rights reserved. +// + +import UIKit +import MarqueeLabel + +public final class WMLabel: UILabel { + public init( + text: String, + textColor: UIColor = .init(), + font: UIFont.WMFontSystem, + alignment: NSTextAlignment = .left, + lineHeight: CGFloat? = nil, + kernValue: Double? = nil, + lineSpacing: CGFloat? = nil, + lineHeightMultiple: CGFloat? = nil + ) { + super.init(frame: .zero) + self.text = text + self.textColor = textColor + self.font = .setFont(font) + self.textAlignment = alignment + self.setTextWithAttributes(lineHeight: lineHeight, kernValue: kernValue, lineSpacing: lineSpacing, lineHeightMultiple: lineHeightMultiple, alignment: alignment) + } + + convenience init( + text: String, + textColor: UIColor = .init(), + font: UIFont.WMFontSystem, + alignment: NSTextAlignment = .left, + lineHeight: CGFloat? = nil, + kernValue: Double? = nil + ) { + self.init(text: text, textColor: textColor, font: font, alignment: alignment, lineHeight: lineHeight, kernValue: kernValue, lineSpacing: nil, lineHeightMultiple: nil) + } + + required init?(coder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } +} + diff --git a/Tuist/Dependencies.swift b/Tuist/Dependencies.swift index 6879c1765..131ef98e4 100644 --- a/Tuist/Dependencies.swift +++ b/Tuist/Dependencies.swift @@ -18,7 +18,7 @@ let dependencies = Dependencies( .remote(url: "https://github.com/RxSwiftCommunity/RxKeyboard.git", requirement: .upToNextMajor(from: "2.0.1")), .remote(url: "https://github.com/huri000/SwiftEntryKit", requirement: .upToNextMajor(from: "2.0.0")), .remote(url: "https://github.com/kyungkoo/naveridlogin-ios-sp", requirement: .upToNextMajor(from: "4.1.5")), - .remote(url: "https://github.com/krzyzanowskim/CryptoSwift.git", requirement: .upToNextMajor(from: "1.6.0")), + .remote(url: "https://github.com/krzyzanowskim/CryptoSwift.git", requirement: .upToNextMajor(from: "1.8.0")), .remote(url: "https://github.com/cbpowell/MarqueeLabel.git", requirement: .upToNextMajor(from: "4.3.0")), .remote(url: "https://github.com/firebase/firebase-ios-sdk.git", requirement: .upToNextMajor(from: "10.7.0")), .remote(url: "https://github.com/ninjaprox/NVActivityIndicatorView.git", requirement: .upToNextMajor(from: "5.1.1")) diff --git a/Tuist/ProjectDescriptionHelpers/Environment.swift b/Tuist/ProjectDescriptionHelpers/Environment.swift index f03a89a63..f689e38fd 100644 --- a/Tuist/ProjectDescriptionHelpers/Environment.swift +++ b/Tuist/ProjectDescriptionHelpers/Environment.swift @@ -9,7 +9,7 @@ public enum Environment { public static let deploymentTarget: DeploymentTarget = .iOS(targetVersion: "14.0", devices: [.iphone]) public static let platform = Platform.iOS public static let baseSetting: SettingsDictionary = SettingsDictionary() - .marketingVersion("2.1.0") + .marketingVersion("2.2.0") .currentProjectVersion("0") .debugInformationFormat(DebugInformationFormat.dwarfWithDsym) .otherLinkerFlags(["-ObjC"]) diff --git a/Tuist/Signing/WaktaverseMusic.Debug.cer.encrypted b/Tuist/Signing/WaktaverseMusic.Debug.cer.encrypted new file mode 100644 index 000000000..fb7149af1 --- /dev/null +++ b/Tuist/Signing/WaktaverseMusic.Debug.cer.encrypted @@ -0,0 +1 @@ +Fl4nwJKCBazx3DL8xzU56w==-T+kG/m0iP7xrs0Zyj9AW3W9WaKpn7Uv2npPpllC2pj0zpE3D2DtQS1ZVodWXZaUpqiYX0qRooP5E74x0hdi0tltfN5KrzIEeJdLv5Lq8DRjN3Fe4geVe/AvM3seAs3JyN/wFGvDzJzCro+pF/kVrYoV3oN8qRKyfSZnP/RndjwM7xMb5oi+goVOoXHiMI4tpMFoQ9Tbg0HKod/RGlZI5e5SzMJEMbJoQS7HM/ougWpG+C4qif9AFRSVrWtF9ePXNeIxni1PModWZY2xfsh01UUNrFLHAz4+ZqCu9jmpVKTDHPwZ3srmZNKNUqftssYezsKwZyrM6fnE7kEpNbt3gD6DRV0NwM1zAJgx52us6biQcsLBQyUyU6wmIWEGGsHIcE92I5Ug/55VrgThq3cq7QMGMb3UUHq9XwgrtimrbeJ8ptF/xPPPRlZmCC1o6DcOcrKW+2kjl502kjR5k9Ou6B+8LkIHgdotLVV8CyOwAEjZQBsJIM8zUjuIByY9wcUWBhPuiPGvcZZxpLu0M53RSWdgUQUZZlpc/pOt3Dclic8jIWdct4pfpbM/JRnalKLXofTEsiQhkkkneUCxdsxVNpWYb5ZAyVzpVLa1+5iIl3dvn5Fcd2w8WxGg6S4x9DP78CreWYvq/c7Sk8Zc4qqu4U9cVsUJv/1qgHfcdwWD5ZbmlEHx30RAWMbD/3pEU50AZlqUxIp1S5jp43Gy4zlqByQFIAC/nmiw+c/MKfzGQT/a1uSVBeE3LMvWDjtO4DFLTAY6gPppWs5F5co4d/5LoYPqfK/zkMR9cZeEXLSHguvkKJWx9lUTFxkCTGKTb2qddk8d52RfQ2GWQbiHFwjgMhKgvDWXPLoQfwyBS71c06X9i728/i49FFCdn2jpPB4SxIT4yJZYvxy0MWib02jCIs399+DaFfhRp4BGjhX2Lk2GebE3O78OpuLtQDWr7yV46gJFj/4UYZtjQXQxV0gMF8rZgpa4mXy8xeEWC1lzLdA/dopiX9HfqwBl/mnJTs4lHNHzsmoz5Az5yT+C9guS4Bh4+f8KI5eUtnb8qPjqdqb/i3UBp8PwHL4uY/X6urN0/NLHV149yuPjkiT62aXnKErNIInnVXPsROdzWyczZlCyBW0He0aSjcwqnvDJYN95v8IZHlxN6KhGRtPfB0YhBXbkHbVNfshU8zRJyArvjtSRFJk1irAyHqQdBTFUGC+TFOc/NVGEXQvlc65HVBhhI4lkOWdon/tUBS+OEIj5Un3ekPyH0VJPz05MAR6AJlYw7ZB+cLSdKgZs6u68TXQ36YESzT2vERquD7M8Ae4JRHUt05/3i/HnpxUJat2lwwVcWtUVM9VXDxGB7QeZT0/KG5tWZimNw9fqnsuJD9MxYoqsixveZDG+Z0xMdvjbbr2py4KlagPA4ms3wQWzhG1sHKN+e/KnFDVAxMNHVFJ/1JAClPTEXZwYx/trBXB8f1Ad8kPFYrlJ0tk4i9n16RiFBebGC/1fH8HBS7jSVF9FzNwG4U82PJGj8r07DXVLzrgzwu6QIh2rVTm+0fob8BII/lekrnGz9ZOIA1DW4ev8q3ieEFbJTwsZxssfXkfN3zwy3OUHwj3wMGiFzqfWMT5OXPvRhDkImvtxMB6+/6lN7quGoi/RTXtAcASHx0YhldDGXe+Kod1pNgODPM/J75RxCjY2lG0zWsTGuKeYTAp9wcffefCbi5a8zUCqgerc3lRZHlr2SZMf2sP0iE12Ruq6Q81BrQGgaitG3FOpTDv69gQxysVyVQgbU1IE6fcEPU46SvfscLydENCDNzZmDfPdra70oY53E6pU+MZL7wYG2P7V2k+jC9+Jn6/cFebZcR2MSdGqUogb0uXwi0uCZj5lgN8t+z94ihbr0stEtAaCjVa5zrswWFqHjoBjZ+q2qW+yTw4CHlCWPyCz3ajpnYIsb/kYk1fIWTz8nB2ScJJ56Pnrg9WXrLm6psEKHw1U= \ No newline at end of file diff --git a/Tuist/Signing/WaktaverseMusic.Debug.mobileprovision b/Tuist/Signing/WaktaverseMusic.Debug.mobileprovision new file mode 100644 index 000000000..e8f8ab71b Binary files /dev/null and b/Tuist/Signing/WaktaverseMusic.Debug.mobileprovision differ diff --git a/Tuist/Signing/WaktaverseMusic.Debug.p12.encrypted b/Tuist/Signing/WaktaverseMusic.Debug.p12.encrypted new file mode 100644 index 000000000..8d7863ec6 --- /dev/null +++ b/Tuist/Signing/WaktaverseMusic.Debug.p12.encrypted @@ -0,0 +1 @@ ++igvqE/zcwI5++0yDFtrcg==-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 \ No newline at end of file diff --git a/Tuist/Signing/WaktaverseMusic.Release.cer.encrypted b/Tuist/Signing/WaktaverseMusic.Release.cer.encrypted new file mode 100644 index 000000000..7a3eaad1c --- /dev/null +++ b/Tuist/Signing/WaktaverseMusic.Release.cer.encrypted @@ -0,0 +1 @@ +oU0HjBuBMWyrb1YdO4yw3A==-+z+6H0ANiVeU/bmsXCXAAzxKSW90TcIWMSOSm84gHx6NU32JIU6QUr9MgoMFM1is1klDMvDusoTAjW1KWN23Zyi+4i5YblewH2e3u0c20ScBAFH27c25E/GlhpQ7SjDIVUGs+hSob9Iu8YFXfyA91sc9UCreFrcHjRESFOXAnuOlklrFqxrpEu+5FlVnDj55JwoJSh98N4uCWQUkC1uklGgEVwUruAEuwSJVE2Cb/NgkfmzFh4mcucsBuSrcEUerQnplTIjxgJ7DFNOH2FwgT8iFpW1IA0QM/hYQPh3xwAwMivNH6zfARjSLuE8wArQ87i2SCQ2rdKOan4b74xZX1ZLn2JEqctfTbDeF15dY7Vn3Lk1CMgw0yDLbUAm3E2M+Lb8ZocYp7MTyrUKeo4EaqyQiXpT2o58SzwLZ6EfD9TJhN64huFCBtJNDu3oh+JDXLcMXadgvGxi3Tn4nrDyaWra2jUzkbV14Jy0bKAR7xHY5XNPXnmBsdqCDMzX7EPHIXLX3rx2RaqVD/1dh1l0KdydWIreOm1jJPY3bBcZofAxHeZUr7g/4T81A0OagvVFQcVcluucpEydJYxW7cm5MRgiuCR8PlYChoeI+pvlpE36i+VvFYGg9PCA703KDqLFC2dxirs6G/f5Hc2NlRbdpAdtadZvJmw5se90vWaQGUiyLx1HjXgOy7VGkzM6zIdLJyryQxlTS+h5QtGf1DwHwee7YjY985/UjpZrKOC6xgNGJTpkzgDtC1cxA8iHUuE5vgX2OBkH8+ZnMiYjOu0VACVld/AMX6TtyNrM28HqEYVHq23SN4rHUVq/yALCp+Y4rK0adVzMIG6dN1wRggGz9rHwezanD5+I+Sg8cXinIr5uhr+Wg2VdsYAGmS7qVHgRv1HM6gzW4elQIuWE6xI94I0evZPS0QHnylV2yz6fAeubW2lhXUiJMpIfpup6T9ZHTrEu4tmjCht3y/+Tz73SCXBOv8osx8wfU1UvKsoX1wrLjz5n6SmQWZmQ47jjxWwyRb60AG59QLgIPl/lJQP+Y+16bWrcPAkL16KEifK/xEGjyGTs5N9YDPv5Smq+m4RkqYkyDh+PMUsBq0rBS8drmwf8bsxUC8yymQT84kTIO+usV1Cx8TbwJypL587bVR7PMi9oB6Em0+YeVWIzzkr/T2AmDZE0pQuQNEKmdkg67EWaxA5oPKViZnnv7n4cj8Tt3ceanR8Fc4EwXr8zpioCIuYGxTN/tWLKHHpHFJpSt36DIqDsHjE9Il8AIUfI8NeaMJjbZmwvcDxQ8RB9TfuVUsrCzxhUnC++hK5s4PUUSxlYffGq3va0UtHTCKF70EDl4vvas8Iu7vYGmm4cntdEuUmtdijTbECWrZpC3RSUV5Ti9ORkRBuhR5OP+hpf992SeWq3gic/Gl0VLluqJmq3SZYVPh/C3nrOdgCO+RaaHZZqna+GYshS2eQXfurujotq5aN/5QjZ7Je9gA/j+8YcdjAqaX11ofweSjVuDLSONWEizlB1Ji8AFj5jUSklPL5nGWWTzJKq+ko4SfUdcmgAr225j6bvVSxPvJD1mc103UgmRQ/1p4c7b85tFIHKpqxo40wCnqX67NA1HiZCFuDiu7fs8QJR0jj8xSGILprWkthZbK/DNfwWo8upD9HNpq7AKG2KALXtqpjASH8Qzm1/N6US4JUgxXrFk/+dRePj0CcRYXhEx1KU1TTd+InVm6o/7DFMAaJW1T8PWgkE+4KKApwyo1/DuakgIOv9ROZ9CMuA0mqX9KCIQ0MCR6Gl2CNYP/JwzifsS7Gzsd+L+Emf1td+or7qNFNJ0q2J9cPie2XMZR81kw9sc6OAxuDri1StjYkvyoVoAHuekYaYxkr9zK1iw5nJ26ruE84XBZJ88VuNaie9iBp57utEicejHuoDBdALYsVxasfqXss+NTLvf5y/EsaWQcDc9bwgiB244g4TUk2M3CNPymvV0DWb0 \ No newline at end of file diff --git a/Tuist/Signing/WaktaverseMusic.Release.mobileprovision b/Tuist/Signing/WaktaverseMusic.Release.mobileprovision new file mode 100644 index 000000000..e856884de Binary files /dev/null and b/Tuist/Signing/WaktaverseMusic.Release.mobileprovision differ diff --git a/Tuist/Signing/WaktaverseMusic.Release.p12.encrypted b/Tuist/Signing/WaktaverseMusic.Release.p12.encrypted new file mode 100644 index 000000000..3f9286d7a --- /dev/null +++ b/Tuist/Signing/WaktaverseMusic.Release.p12.encrypted @@ -0,0 +1 @@ +NcuPxzd+cio70b8yx9ccsA==-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 \ No newline at end of file diff --git a/Tuist/master.key b/Tuist/master.key deleted file mode 100644 index e2110a299..000000000 --- a/Tuist/master.key +++ /dev/null @@ -1 +0,0 @@ -6w7vPFaZPcME3zFm8L24EjBSCiTiYZP25DDLNEQeCE4=