{
  "version": 3,
  "file": "bundle.css",
  "sources": [
    "..\\..\\App.svelte",
    "..\\..\\Media.svelte"
  ],
  "sourcesContent": [
    "<script>\n  import { onMount, afterUpdate } from \"svelte\";\n  import Media from \"./Media.svelte\";\n\n  /**\n   * component scoped variables\n   */\n\n  let pictures = [];\n  let more = true;\n  let offset = 0;\n  let perPage = 10;\n  let siteMessage = false;\n\n  const dispatchMessage = () => {\n    const message = siteMessage;\n\n    const data = {\n      action: \"wcw_update_site_message\",\n      nonce: wcw_alt_tags.updateSiteMessageNonce,\n      status: message\n    };\n\n    jQuery.post(wcw_alt_tags.ajaxUrl, data, response => {\n      console.log(\"message received bud\");\n    });\n  };\n\n  const fetchMedia = () => {\n    // rest url provided via wp_localize_script\n    fetch(`${wcw_alt_tags.restUrl}?offset=${offset}`)\n      .then(res => {\n        return res.json();\n      })\n      .then(res => {\n        // check to see we have at least 1\n        if (res.length > 0) {\n          document.cookie = \"wcw_alt_clean=clean\";\n        } else {\n          document.cookie = \"wcw_alt_clean=dirty\";\n        }\n\n        // check to see if we don't have at least 10\n        if (res.length < 10) {\n          more = false;\n        }\n\n        // sort the pic into our array\n        sortMedia(res);\n\n        // and then, if there is more pics, we do it again\n        if (more) {\n          offset += 10;\n          fetchMedia();\n        }\n      });\n  };\n\n  /**\n   *  return the\n   * */\n\n  const findPicSource = pic => {\n    if (pic.media_details.sizes) {\n      return pic.media_details.sizes.thumbnail.source_url;\n    } else {\n      return false;\n    }\n  };\n\n  const loadMore = () => {\n    perPage += 10;\n  };\n\n  const removeMedia = index => {\n    pictures.splice(index, 1);\n    pictures = pictures;\n  };\n\n  const sortMedia = picArray => {\n    picArray.forEach(pic => {\n      if (\n        pic.alt_text == \"\" &&\n        pic.media_type == \"image\" &&\n        pic.mime_type != \"image/svg+xml\" &&\n        pic.mime_type != \"image/tiff\"\n      ) {\n        var thumbnail = findPicSource(pic);\n\n        if (thumbnail) {\n          let picture = {\n            id: pic.id,\n            path: findPicSource(pic),\n            large: pic.source_url\n          };\n          pictures = [...pictures, picture];\n        }\n\n        if (!siteMessage) {\n          siteMessage = true;\n          dispatchMessage();\n        }\n      }\n    });\n  };\n\n  /***\n   *\n   *  lifecycle events\n   *\n   * */\n\n  onMount(() => {\n    fetchMedia();\n    document.cookie = \"wcw_alt_visited=visited;max-age=31536000\";\n  });\n</script>\n\n<style>\n  .widefat {\n    border: 1px solid #e5e5e5;\n    box-shadow: 0 1px 1px rgba(0, 0, 0, 0.04);\n  }\n\n  p {\n    padding: 0 1em;\n  }\n\n  .button-wrap {\n    margin: 1em 0;\n    max-width: 800px;\n    text-align: center;\n  }\n</style>\n\n<div class=\"widefat\">\n  <p>You have {pictures.length} alt tags to review.</p>\n\n  {#each pictures.slice(0, perPage) as picture, index}\n    <Media {picture} {index} {removeMedia} />\n  {/each}\n\n  {#if perPage < pictures.length}\n    <div class=\"button-wrap\">\n      <button class=\"button\" on:click={loadMore}>Load more</button>\n    </div>\n  {/if}\n</div>\n",
    "<script>\r\n  import DOMPurify from \"dompurify\";\r\n\r\n  // props with some sensible defaults\r\n  export let picture = {};\r\n  export let index = 0;\r\n  export let removeMedia = () => {};\r\n\r\n  // component scoped vars\r\n  let alt = \"\";\r\n  let isOdd = index % 2 === 1;\r\n\r\n  /**\r\n   *\r\n   * click handler for button\r\n   * takes an html event, sends an ajax request to wp and saves new alt text\r\n   *\r\n   * */\r\n  const editAltText = e => {\r\n    if (alt == \"\") {\r\n      return;\r\n    }\r\n\r\n    const data = {\r\n      action: \"wcw_update_alt_text\",\r\n      nonce: wcw_alt_tags.updateAltTextNonce,\r\n      altText: DOMPurify.sanitize(alt),\r\n      media: picture.id\r\n    };\r\n\r\n    // todo - this is using jquery instead of fetch for some reason, need to fix\r\n    jQuery.post(wcw_alt_tags.ajaxUrl, data, response => {\r\n      if (response == 0 && alt != \"\") {\r\n        removeMedia(index);\r\n        alt = \"\";\r\n      }\r\n    });\r\n  };\r\n</script>\r\n\r\n<style>\r\n  .media {\r\n    align-items: center;\r\n    display: flex;\r\n    padding: 0.5em;\r\n    max-width: 800px;\r\n  }\r\n\r\n  .media.media--odd {\r\n    background-color: #f9f9f9;\r\n  }\r\n\r\n  .media div {\r\n    align-items: center;\r\n    display: flex;\r\n    flex: 1;\r\n    flex-direction: column;\r\n    justify-content: center;\r\n  }\r\n\r\n  .media img {\r\n    padding: 0.5em;\r\n  }\r\n</style>\r\n\r\n<div class={isOdd ? 'media media--odd' : 'media media--even'}>\r\n  <div>\r\n    <img src={picture.path} {alt} />\r\n    <a href={picture.large} target=\"_blank\">\r\n      View full size (opens in new tab)\r\n    </a>\r\n  </div>\r\n  <div>\r\n    <label for={`enter_alt_text_${picture.id}`}>Enter alt text below</label>\r\n    <input\r\n      bind:value={alt}\r\n      type=\"text\"\r\n      id={`enter_alt_text_${picture.id}`}\r\n      name={`enter_alt_text_${picture.id}`} />\r\n  </div>\r\n  <div>\r\n    <button class=\"button\" on:click={editAltText}>Add alt text</button>\r\n  </div>\r\n</div>\r\n"
  ],
  "names": [],
  "mappings": "AAuHE,QAAQ,eAAC,CAAC,AACR,MAAM,CAAE,GAAG,CAAC,KAAK,CAAC,OAAO,CACzB,UAAU,CAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,AAC3C,CAAC,AAED,CAAC,eAAC,CAAC,AACD,OAAO,CAAE,CAAC,CAAC,GAAG,AAChB,CAAC,AAED,YAAY,eAAC,CAAC,AACZ,MAAM,CAAE,GAAG,CAAC,CAAC,CACb,SAAS,CAAE,KAAK,CAChB,UAAU,CAAE,MAAM,AACpB,CAAC;AC3FD,MAAM,4BAAC,CAAC,AACN,WAAW,CAAE,MAAM,CACnB,OAAO,CAAE,IAAI,CACb,OAAO,CAAE,KAAK,CACd,SAAS,CAAE,KAAK,AAClB,CAAC,AAED,MAAM,WAAW,4BAAC,CAAC,AACjB,gBAAgB,CAAE,OAAO,AAC3B,CAAC,AAED,oBAAM,CAAC,GAAG,cAAC,CAAC,AACV,WAAW,CAAE,MAAM,CACnB,OAAO,CAAE,IAAI,CACb,IAAI,CAAE,CAAC,CACP,cAAc,CAAE,MAAM,CACtB,eAAe,CAAE,MAAM,AACzB,CAAC,AAED,oBAAM,CAAC,GAAG,cAAC,CAAC,AACV,OAAO,CAAE,KAAK,AAChB,CAAC"
}