library(eurostat)
library(tidyverse)
library(ggdemetra)
library(ggtext)
library(lubridate)


dat <- get_eurostat("namq_10_a10", time_format = "date")

dat_es <- dat %>%
  filter(geo == "ES" & unit %in% c("CP_MNAC", "CLV15_MNAC") & na_item == "B1G" & time>="2010-01-01") %>%
  pivot_wider(
    names_from = s_adj,
    values_from = values
  ) %>%
  arrange(time) %>%
  mutate(
    year = lubridate::year(time),
    quarter = lubridate::quarter(time),
    quarter = str_replace_all(quarter, c("1" = "0", "2" = "25", "3" = "50", "4" = "75")), # weird data format for ggdemetra
    date = paste0(year, ".", quarter),
    date = as.numeric(date)
  ) %>%
  select(-time) %>%
  group_by(geo, na_item, nace_r2, unit) %>%
  nest() %>%
  unite("id", c(geo, na_item, nace_r2, unit), remove = FALSE)


plot_sa <- function(.x, .y) {
  mycaption <- '<span style="color:#242121;">NSA</span> / 
                <span style="color:#4741BF;">SCA</span> /
                <span style="color:#B52626;">Tramoseats</span> /
                <span style="color:#42855B;">X13</span>'

  p <- ggplot(.x, aes(date, NSA)) +
    geom_line(colour = "#242121", size = 0.2) +
    geom_sa(colour = "#B52626", method = "tramoseats", spec = "RSAfull", size = 0.6) +
    geom_sa(colour = "#42855B", method = "x13", spec = "RSA5c", size = 0.6) +
    geom_line(aes(date, SCA), colour = "#4741BF", size = 0.6) +
    theme_light() +
    labs(
      title = paste0(.y),
      subtitle = mycaption
    ) +
    theme(plot.subtitle = element_markdown(hjust = 0, size = 11)) +
    xlab("") +
    ylab("")
}

sa_plot <- dat_es %>%
  mutate(plot = map2(data, id, plot_sa))

for (i in seq_along(sa_plot$plot)) print(sa_plot$plot[[i]])