Browse Source

Add agenda

Tienson Qin 5 years ago
parent
commit
f3bf9232c5

+ 1 - 1
web/package.json

@@ -15,7 +15,7 @@
     "browserfs": "^1.4.3",
     "dev": "^0.1.3",
     "isomorphic-git": "^1.1.2",
-    "mldoc_org": "^0.2.0",
+    "mldoc_org": "^0.2.3",
     "purgecss": "^2.1.0",
     "react": "^16.12.0",
     "react-dom": "^16.12.0",

+ 1 - 0
web/public/index.html

@@ -4,6 +4,7 @@
     <meta charset="utf-8">
     <meta content="minimum-scale=1, initial-scale=1, width=device-width, shrink-to-fit=no" name="viewport">
     <link href="/static/css/tailwind.min.css" rel="stylesheet" type="text/css">
+    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@tailwindcss/ui@latest/dist/tailwind-ui.min.css">
     <link href="/static/css/org.css" rel="stylesheet">
     <link href="/static/css/style.css" rel="stylesheet" type="text/css">
     <link href="https://fonts.googleapis.com/css?family=Roboto:300,400,500,700&amp;display=swap" rel="stylesheet">

+ 3 - 22
web/public/static/css/style.css

@@ -30,8 +30,6 @@
             font-size: medium;
             font-weight: bold;
             margin-top:0; }
-.tag    { background-color: #eee; font-family: monospace;
-          padding: 2px; font-size: 80%; font-weight: normal; }
 .timestamp { color: #bebebe; margin-left: 6px; }
 .timestamp-kwd { color: #5f9ea0; margin-left: 6px; }
 .org-right  { margin-left: auto; margin-right: 0px;  text-align: right; }
@@ -211,15 +209,15 @@ dt { font-weight: bold; }
 
 /* scroll-bg */
 .scroll-background {
-    height: 400%; width: 400%; top: -25%; left: -100%; background-size: 800px auto; background-image: url('/img/hero-pattern-lg.png');
+    height: 400%; width: 400%; top: -25%; left: -100%; background-size: 800px auto; background-image: url('/static/img/hero-pattern-lg.png');
 }
 
 .angled-background {
-    background-image: url('/img/angled-background.svg'); background-size: 100% auto; background-position: -5px -5px;
+    background-image: url('/static/img/angled-background.svg'); background-size: 100% auto; background-position: -5px -5px;
 }
 
 .scroll-background-2 {
-    height: 800%; width: 400%; top: -100%; left: -100%; background-size: 400px auto; background-image: url('/img/hero-pattern-lg.png');
+    height: 800%; width: 400%; top: -100%; left: -100%; background-size: 400px auto; background-image: url('/static/img/hero-pattern-lg.png');
 }
 
 @-webkit-keyframes scrollSmall {0%{transform:rotate(-13deg) translateY(0)}to{transform:rotate(-13deg) translateY(-639px)}}
@@ -235,23 +233,6 @@ dt { font-weight: bold; }
 .scroll-bg{-webkit-animation-name:scrollSmall;animation-name:scrollSmall;-webkit-animation-duration:15s;animation-duration:15s;-webkit-animation-timing-function:linear;animation-timing-function:linear;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}
 @media (min-width:1024px){.scroll-bg{-webkit-animation-name:scrollLarge;animation-name:scrollLarge;-webkit-animation-duration:35s;animation-duration:35s;-webkit-animation-timing-function:linear;animation-timing-function:linear;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}}
 
-.text-gray-700 {
-    color: #374151;
-}
-
-.form-input {
-    -webkit-appearance: none;
-    -moz-appearance: none;
-    appearance: none;
-    background-color: #fff;
-    border-color: #d2d6dc;
-    border-width: 1px;
-    border-radius: .375rem;
-    padding: .5rem .75rem;
-    font-size: 1rem;
-    line-height: 1.5;
-}
-
 h1, h2, h3, h4, h5, h6 {
     font-weight: bold;
 }

+ 82 - 63
web/src/frontend/components/agenda.cljs

@@ -6,11 +6,9 @@
             [frontend.state :as state]
             [clojure.string :as string]
             [frontend.format.org-mode :as org]
-            [frontend.components.sidebar :as sidebar]))
-
-(rum/defc agenda
-  []
-  (sidebar/sidebar [:div "Agenda"]))
+            [frontend.components.sidebar :as sidebar]
+            [frontend.db :as db]
+            [frontend.ui :as ui]))
 
 (rum/defc timestamps-cp
   [timestamps]
@@ -30,73 +28,94 @@
         html (org/inline-list->html title-json)]
     (util/raw-html html)))
 
+(rum/defc children-cp
+  [children]
+  (let [children-json (js/JSON.stringify (clj->js children))
+        html (org/json->html children-json)]
+    (util/raw-html html)))
+
 (rum/defc marker-cp
   [marker]
-  [:span {:class (str "marker-" (string/lower-case marker))
-          :style {:margin-left 8}}
-   (if (contains? #{"DOING" "IN-PROGRESS"} marker)
-     (str " (" marker ")"))])
+  (if marker
+    [:span {:class (str "marker-" (string/lower-case marker))
+            :style {:margin-left 8}}
+     (if (contains? #{"DOING" "IN-PROGRESS"} marker)
+       (str " (" marker ")"))]))
 
 (rum/defc tags-cp
   [tags]
   [:span
-   (for [tag tags]
-     [:span.tag {:key tag}
+   (for [{:keys [tag/name]} tags]
+     [:span.tag {:key name}
       [:span
-       tag]])])
+       name]])])
+
+(rum/defq agenda <
+  {:q (fn [state] (db/sub-agenda))}
+  [state tasks]
+  (let [tasks-ids (db/seq-flatten tasks)
+        tasks (db/pull-many tasks-ids)]
+    (sidebar/sidebar
+     [:div#agenda
+      [:h2.mb-3 "Agenda"]
+      (if (seq tasks)
+        [:div.ml-1
+         (let [parent-tasks (block/group-by-parent (block/sort-tasks tasks))]
+           (for [[parent tasks] parent-tasks]
+             (let [parent (cond
+                            (string? parent)
+                            parent
+
+                            (and (map? parent)
+                                 (:label parent))
+                            (title-cp (:label parent))
+
+                            :else
+                            "uncategorized")]
+               [:div.mt-10
+                [:h4.mb-3.text-gray-500 parent]
+                (for [{:heading/keys [uuid marker title priority level tags children timestamps meta] :as task} tasks]
+                  [:div.mb-2
+                   {:key (str "task-" uuid)
+                    :style {:padding-left 8
+                            :padding-right 8}}
+                   [:div.column
+                    [:div.row {:style {:align-items "center"}}
+                     (case marker
+                       (list "DOING" "IN-PROGRESS" "TODO")
+                       (ui/checkbox {:on-change (fn [_]
+                                                  ;; FIXME: Log timestamp
+                                                  ;; (handler/check marker (:pos meta))
+                                                  )})
 
-;; (rum/defc agenda
-;;   [tasks]
-;;   [:span "TBD"]
-;;   ;; [:div#agenda
-;;   ;;  (if (seq tasks)
-;;   ;;    (for [[section-name tasks] tasks]
-;;   ;;      [:div.section {:key (str "section-" section-name)}
-;;   ;;       [:h3 section-name]
-;;   ;;       (mui/list
-;;   ;;        (for [[idx {:keys [marker title priority level tags children timestamps meta]}] (util/indexed (block/sort-tasks tasks))]
-;;   ;;          (mui/list-item
-;;   ;;           {:key (str "task-" section-name "-" idx)
-;;   ;;            :style {:padding-left 8
-;;   ;;                    :padding-right 8}}
-;;   ;;           [:div.column
-;;   ;;            [:div.row {:style {:align-items "center"}}
-;;   ;;             (let [marker (case marker
-;;   ;;                            (list "DOING" "IN-PROGRESS" "TODO")
-;;   ;;                            (mui/checkbox {:checked false
-;;   ;;                                           :on-change (fn [_]
-;;   ;;                                                        ;; FIXME: Log timestamp
-;;   ;;                                                        (handler/check marker (:pos meta)))
-;;   ;;                                           :color "primary"
-;;   ;;                                           :style {:padding 0}})
+                       "WAIT"
+                       [:span {:style {:font-weight "bold"}}
+                        "WAIT"]
 
-;;   ;;                            "WAIT"
-;;   ;;                            [:span {:style {:font-weight "bold"}}
-;;   ;;                             "WAIT"]
+                       "DONE"
+                       (do
+                         (prn marker)
+                         (ui/checkbox {:checked true
+                                       :on-change (fn [_]
+                                                    ;; FIXME: Log timestamp
+                                                    ;; (handler/uncheck marker (:pos meta))
+                                                    )}))
 
-;;   ;;                            "DONE"
-;;   ;;                            (mui/checkbox {:checked true
-;;   ;;                                           :on-change (fn [_]
-;;   ;;                                                        ;; FIXME: rollback to the last state if exists.
-;;   ;;                                                        ;; it must not be `TODO`
-;;   ;;                                                        (handler/uncheck (:pos meta)))
-;;   ;;                                           :color "primary"
-;;   ;;                                           :style {:padding 0}})
+                       nil)
+                     [:div.row.ml-2
+                      (if priority
+                        [:span.priority.mr-1
+                         (str "#[" priority "]")])
+                      (title-cp title)
+                      (marker-cp marker)
+                      (when (seq tags)
+                        (tags-cp tags))]]
+                    (when (seq timestamps)
+                      (timestamps-cp timestamps))
 
-;;   ;;                            nil)]
-;;   ;;               (if priority
-;;   ;;                 (mui/badge {:badge-content (string/lower-case priority)
-;;   ;;                             :overlay "circle"}
-;;   ;;                            marker)
-;;   ;;                 marker))
+                    ;; FIXME: parse error
+                    ;; (when (seq children)
+                    ;;   (children-cp children))
 
-;;   ;;             [:div.row {:style {:margin-left 8}}
-;;   ;;              (title-cp title)
-;;   ;;              (marker-cp marker)
-;;   ;;              (when (seq tags)
-;;   ;;                (tags-cp tags))]]
-;;   ;;            (when (seq timestamps)
-;;   ;;              (timestamps-cp timestamps))
-;;   ;;            ])))])
-;;   ;;    "Empty")]
-;;   )
+                    ]])])))]
+        "Empty")])))

+ 27 - 30
web/src/frontend/components/file.cljs

@@ -30,14 +30,12 @@
         suffix (last (string/split path #"\."))]
     (sidebar/sidebar
      (if (and suffix (contains? #{"md" "markdown" "org"} suffix))
-       [:div#content.flex.justify-center
-        [:div.m-6.flex-1 {:style {:position "relative"
-                                  :max-width 800}}
-         [:a {:href (str "/file/" encoded-path "/edit")}
-          "edit"]
-         (if content
-           (util/raw-html (format/to-html content suffix))
-           "Loading ...")]]
+       [:div#content
+        [:a {:href (str "/file/" encoded-path "/edit")}
+         "edit"]
+        (if content
+          (util/raw-html (format/to-html content suffix))
+          "Loading ...")]
        [:div "File " suffix " is not supported."]))))
 
 (defn- count-newlines
@@ -54,25 +52,24 @@
         commit-message (get state ::commit-message)
         [_encoded-path path] (get-path state)]
     (sidebar/sidebar
-     [:div#content.flex.justify-center
-      [:div.m-6.flex-1 {:style {:max-width 800}}
-       [:h3.mb-2 (str "Update " path)]
-       [:textarea
-        {:rows (+ 3 (count-newlines @content))
-         :style {:min-height 300}
-         :default-value initial-content
-         :on-change #(reset! content (.. % -target -value))
-         :auto-focus true}]
-       [:div.mt-1.mb-1.relative.rounded-md.shadow-sm
-        [:input.form-input.block.w-full.sm:text-sm.sm:leading-5
-         {:placeholder "Commit message"
-          :on-change (fn [e]
-                       (reset! commit-message (util/evalue e)))}]]
-       (ui/button "Save" (fn []
-                           (when (and (not (string/blank? @content))
-                                      (not (= initial-content
-                                              @content)))
-                             (let [commit-message (if (string/blank? @commit-message)
-                                                    (str "Update " path)
-                                                    @commit-message)]
-                               (handler/alter-file path commit-message @content)))))]])))
+     [:div#content
+      [:h3.mb-2 (str "Update " path)]
+      [:textarea
+       {:rows (+ 3 (count-newlines @content))
+        :style {:min-height 300}
+        :default-value initial-content
+        :on-change #(reset! content (.. % -target -value))
+        :auto-focus true}]
+      [:div.mt-1.mb-1.relative.rounded-md.shadow-sm
+       [:input.form-input.block.w-full.sm:text-sm.sm:leading-5
+        {:placeholder "Commit message"
+         :on-change (fn [e]
+                      (reset! commit-message (util/evalue e)))}]]
+      (ui/button "Save" (fn []
+                          (when (and (not (string/blank? @content))
+                                     (not (= initial-content
+                                             @content)))
+                            (let [commit-message (if (string/blank? @commit-message)
+                                                   (str "Update " path)
+                                                   @commit-message)]
+                              (handler/alter-file path commit-message @content)))))])))

+ 3 - 3
web/src/frontend/components/home.cljs

@@ -23,7 +23,7 @@
        [:div
         [:img.h-6.lg:h-8.xl:h-9
          {:alt "Gitnotes",
-          :src "/img/tailwindui-logo-on-dark.svg"}]]
+          :src "/static/img/tailwindui-logo-on-dark.svg"}]]
        [:div
         [:a.text-sm.font-semibold.text-white.focus:outline-none.focus:underline
          {:href (str config/api "login/github")}
@@ -55,7 +55,7 @@
         {:href "https://twitter.com/adamwathan"}]
        [:div.flex-shrink-0
         [:img.h-12.w-12.rounded-full.border-2.border-white
-         {:alt "", :src "/img/adam.jpg"}]]
+         {:alt "", :src "/static/img/adam.jpg"}]]
        [:div.ml-3
         [:p.font-semibold.text-white.leading-tight "Adam Wathan"]
         [:p.text-sm.text-gray-500.leading-tight
@@ -64,7 +64,7 @@
         {:href "https://twitter.com/steveschoger"}]
        [:div.flex-shrink-0
         [:img.h-12.w-12.rounded-full.border-2.border-white
-         {:alt "", :src "/img/steve.jpg"}]]
+         {:alt "", :src "/static/img/steve.jpg"}]]
        [:div.ml-3
         [:p.font-semibold.text-white.leading-tight "Steve Schoger"]
         [:p.text-sm.text-gray-500.leading-tight

+ 15 - 12
web/src/frontend/components/repo.cljs

@@ -20,21 +20,24 @@
 
 (rum/defcs add-repo < (rum/local "https://github.com/" ::repo-url)
   [state]
-  (let [repo-url (get state ::repo-url)]
+  (let [prefix "https://github.com/"
+        repo-url (get state ::repo-url)]
     [:div.p-8.flex.items-center.justify-center.bg-white
      [:div.w-full.max-w-xs.mx-auto
       [:div
-       [:label.block.text-sm.font-medium.leading-5.text-gray-700
-        {:for "Repo"}
-        "Specify your repo: "]
-       [:div.mt-2.mb-2.relative.rounded-md.shadow-sm
-        [:input.form-input.block.w-full.sm:text-sm.sm:leading-5
-         {:auto-focus true
-          :placeholder "https://github.com/yourname/repo"
-          :value @repo-url
-          :on-change (fn [e]
-                       (reset! repo-url (util/evalue e)))}]]]
+       [:div
+        [:h2 "Specify your repo:"]
+        [:div.mt-2.mb-2.relative.rounded-md.shadow-sm
+         [:div.absolute.inset-y-0.left-0.pl-3.flex.items-center.pointer-events-none
+          [:span.text-gray-500.sm:text-sm.sm:leading-5
+           prefix]]
+         [:input#repo.form-input.block.w-full.pl-16.sm:pl-14.sm:text-sm.sm:leading-5
+          {:autoFocus true
+           :placeholder "username/repo"
+           :on-change (fn [e]
+                        (reset! repo-url (util/evalue e)))
+           :style {:padding-left "9.1em"}}]]]]
       (ui/button
         "Clone"
         (fn []
-          (handler/clone-and-pull @repo-url)))]]))
+          (handler/clone-and-pull (str prefix @repo-url))))]]))

+ 4 - 4
web/src/frontend/components/sidebar.cljs

@@ -150,9 +150,9 @@
       [:main.flex-1.relative.z-0.overflow-y-auto.py-6.focus:outline-none
        ;; {:x-init "$el.focus()", :x-data "x-data", :tabindex "0"}
        {:tabIndex "0"}
-       main-content
-       [:div.max-w-7xl.mx-auto.px-4.sm:px-6.md:px-8
-        [:div.py-4
-         [:div.border-4.border-dashed.border-gray-200.rounded-lg.h-96]]]]
+       [:div.flex.justify-center
+        [:div.flex-1.m-6 {:style {:position "relative"
+                                  :max-width 800}}
+         main-content]]]
 
       (ui/notification)]]))

+ 33 - 27
web/src/frontend/db.cljs

@@ -71,7 +71,9 @@
              ;; FIXME do not notify if tx-data is empty
              (prn "db changed.")
              (when-let [db (:db-after tx-report)]
-               (js/setTimeout #(persist db) 0))))
+               (js/setTimeout #(do
+                                 (persist db)
+                                 (posh/posh! conn)) 0))))
 
 ;; (new TextEncoder().encode('foo')).length
 (defn db-size
@@ -82,9 +84,9 @@
 
 (defn restore! []
   (when-let [stored (js/localStorage.getItem datascript-db)]
-   (let [stored-db (string->db stored)]
-     (when (= (:schema stored-db) schema) ;; check for code update
-       (reset-conn! stored-db)))))
+    (let [stored-db (string->db stored)]
+      (when (= (:schema stored-db) schema) ;; check for code update
+        (reset-conn! stored-db)))))
 
 ;; TODO: added_at, started_at, schedule, deadline
 (def qualified-map
@@ -161,10 +163,10 @@
 (defn get-repo-headings
   [repo-url]
   (-> (d/q '[:find ?heading
-          :in $ ?repo-url
-          :where
-          [?repo :repo/url ?repo-url]
-          [?heading :heading/repo ?repo]]
+             :in $ ?repo-url
+             :where
+             [?repo :repo/url ?repo-url]
+             [?heading :heading/repo ?repo]]
         @conn repo-url)
       seq-flatten))
 
@@ -189,21 +191,6 @@
           [?h :heading/title]]
      @conn)))
 
-;; marker should be one of: TODO, DOING, IN-PROGRESS
-;; time duration
-(defn get-agenda
-  [time]
-  (let [duration (case time
-                   :today []
-                   :week  []
-                   :month [])]
-    (d/q '[:find (pull ?h [*])
-           :where
-           (or [?h :heading/marker "TODO"]
-               [?h :heading/marker "DOING"]
-               [?h :heading/marker "IN-PROGRESS"])]
-      @conn)))
-
 (defn search-headings-by-title
   [title])
 
@@ -227,8 +214,10 @@
   (posh/pull conn selector eid))
 
 (defn pull-many
-  [selector eids]
-  (posh/pull-many conn selector eids))
+  ([eids]
+   (pull-many '[*] eids))
+  ([selector eids]
+   (d/pull-many (d/db conn) selector eids)))
 
 (defn q
   [query & inputs]
@@ -369,10 +358,27 @@
          [?repo :repo/url ?repo-url]
          [?file :file/repo ?repo]
          [?file :file/content ?content]
-         [?file :file/path ?path]
-         ]
+         [?file :file/path ?path]]
     @conn repo-url))
 
+;; marker should be one of: TODO, DOING, IN-PROGRESS
+;; time duration
+(defn sub-agenda
+  ([]
+   (sub-agenda :week))
+  ([time]
+   (let [duration (case time
+                    :today []
+                    :week  []
+                    :month [])]
+     (q '[:find ?h
+          :where
+          (or [?h :heading/marker "TODO"]
+              [?h :heading/marker "DOING"]
+              [?h :heading/marker "IN-PROGRESS"]
+              [?h :heading/marker "DONE"])]
+       conn))))
+
 (comment
   (d/transact! conn [{:db/id -1
                       :repo/url "https://github.com/tiensonqin/notes"

+ 8 - 16
web/src/frontend/format/org/block.cljs

@@ -82,18 +82,6 @@
                 (recur child-level children children-headings result (rest rblocks) timestamps)))))
         (reverse result)))))
 
-(defn get-sections
-  [section-headings]
-  (map first section-headings))
-
-(defn get-section-headings
-  [section-name section-headings]
-  (-> (util/find-first
-       (fn [[name headings]]
-         (= name section-name))
-       section-headings)
-      second))
-
 ;; marker: DOING | IN-PROGRESS > TODO > WAITING | WAIT > DONE > CANCELED | CANCELLED
 ;; priority: A > B > C
 (defn sort-tasks
@@ -103,11 +91,15 @@
         priorities ["A" "B" "C" "D" "E" "F" "G"]
         priorities (zipmap priorities (reverse (range 1 (count priorities))))]
     (sort (fn [t1 t2]
-            (let [m1 (get markers (:marker t1) 0)
-                  m2 (get markers (:marker t2) 0)
-                  p1 (get priorities (:priority t1) 0)
-                  p2 (get priorities (:priority t2) 0)]
+            (let [m1 (get markers (:heading/marker t1) 0)
+                  m2 (get markers (:heading/marker t2) 0)
+                  p1 (get priorities (:heading/priority t1) 0)
+                  p2 (get priorities (:heading/priority t2) 0)]
               (if (= m1 m2)
                 (> p1 p2)
                 (> m1 m2))))
           headings)))
+
+(defn group-by-parent
+  [headings]
+  (group-by :heading/parent-title headings))

+ 14 - 7
web/src/frontend/format/org_mode.cljs

@@ -2,19 +2,26 @@
   (:require ["mldoc_org" :as org]
             [frontend.format.protocol :as protocol]))
 
+(def config
+  (js/JSON.stringify
+   #js {:toc false
+        :heading_number false}))
+
+(def Org (.-MldocOrg org))
+
 (defrecord OrgMode [content]
   protocol/Format
   (toHtml [this]
-    (.parseHtml (.-MldocOrg org)
-                content
-                (js/JSON.stringify
-                 #js {:toc false
-                      :heading_number false}))))
+    (.parseHtml Org content config)))
 
 (defn parse-json
   [content]
-  (.parseJson (.-MldocOrg org) content))
+  (.parseJson Org content))
 
 (defn inline-list->html
   [json]
-  (.inlineListToHtmlStr (.-MldocOrg org) json))
+  (.inlineListToHtmlStr Org json))
+
+(defn json->html
+  [json]
+  (.jsonToHtmlStr Org json config))

+ 1 - 2
web/src/frontend/state.cljs

@@ -3,7 +3,6 @@
 ;; TODO: replace this with datascript
 (def state (atom
             {:route-match nil
-             :tasks {}
              :notification/show? false
              :notification/text nil
-             }))
+             :tasks-transactions nil}))

+ 13 - 2
web/src/frontend/ui.cljs

@@ -65,7 +65,7 @@
       [:div.flex.items-start
        [:div.flex-shrink-0
         [:svg.h-6.w-6.text-green-400
-         {:stroke "currentColor", :viewbox "0 0 24 24", :fill "none"}
+         {:stroke "currentColor", :viewBox "0 0 24 24", :fill "none"}
          [:path
           {:d "M9 12l2 2 4-4m6 2a9 9 0 11-18 0 9 9 0 0118 0z",
            :stroke-width "2",
@@ -79,7 +79,7 @@
          {:on-click (fn []
                       (swap! state/state assoc :notification/show? false))}
          [:svg.h-5.w-5
-          {:fill "currentColor", :viewbox "0 0 20 20"}
+          {:fill "currentColor", :viewBox "0 0 20 20"}
           [:path
            {:clip-rule "evenodd",
             :d
@@ -93,3 +93,14 @@
      {:in show? :timeout 100}
      (fn [state]
        (notification-content state text)))))
+
+(rum/defc checkbox
+  [option]
+  [:input.form-checkbox.h-4.w-4.text-indigo-600.transition.duration-150.ease-in-out
+   (merge {:type "checkbox"} option)])
+
+(rum/defc badge
+  [text option]
+  [:span.inline-flex.items-center.px-2.5.py-0.5.rounded-full.text-xs.font-medium.leading-4.bg-purple-100.text-purple-800
+   option
+   text])

+ 8 - 226
web/yarn.lock

@@ -2,117 +2,18 @@
 # yarn lockfile v1
 
 
-"@babel/runtime@^7.3.1", "@babel/runtime@^7.4.4", "@babel/runtime@^7.5.5", "@babel/runtime@^7.6.2", "@babel/runtime@^7.6.3":
+"@babel/runtime@^7.5.5", "@babel/runtime@^7.6.3":
   version "7.7.6"
   resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.7.6.tgz#d18c511121aff1b4f2cd1d452f1bac9601dd830f"
   integrity sha512-BWAJxpNVa0QlE5gZdWjSxXtemZyZ9RmrmVozxt3NUXeZhVIJ5ANyqmMc0JDrivBZyxUuQvFxlvH4OWWOogGfUw==
   dependencies:
     regenerator-runtime "^0.13.2"
 
-"@emotion/hash@^0.7.1":
-  version "0.7.3"
-  resolved "https://registry.yarnpkg.com/@emotion/hash/-/hash-0.7.3.tgz#a166882c81c0c6040975dd30df24fae8549bd96f"
-  integrity sha512-14ZVlsB9akwvydAdaEnVnvqu6J2P6ySv39hYyl/aoB6w/V+bXX0tay8cF6paqbgZsN2n5Xh15uF4pE+GvE+itw==
-
-"@material-ui/core@^4.7.2":
-  version "4.7.2"
-  resolved "https://registry.yarnpkg.com/@material-ui/core/-/core-4.7.2.tgz#b4396eded7c85214c43c17a18bad66e94742f92c"
-  integrity sha512-ZbeO6xshTEHcMU2jMNjBY26u9p5ILQFj0y7HvOPZ9WT6POaN6qNKYX2PdXnnRDE1MpN8W2K1cxM4KKkiYWNkCQ==
-  dependencies:
-    "@babel/runtime" "^7.4.4"
-    "@material-ui/styles" "^4.7.1"
-    "@material-ui/system" "^4.7.1"
-    "@material-ui/types" "^4.1.1"
-    "@material-ui/utils" "^4.7.1"
-    "@types/react-transition-group" "^4.2.0"
-    clsx "^1.0.2"
-    convert-css-length "^2.0.1"
-    hoist-non-react-statics "^3.2.1"
-    normalize-scroll-left "^0.2.0"
-    popper.js "^1.14.1"
-    prop-types "^15.7.2"
-    react-is "^16.8.0"
-    react-transition-group "^4.3.0"
-
-"@material-ui/icons@^4.5.1":
-  version "4.5.1"
-  resolved "https://registry.yarnpkg.com/@material-ui/icons/-/icons-4.5.1.tgz#6963bad139e938702ece85ca43067688018f04f8"
-  integrity sha512-YZ/BgJbXX4a0gOuKWb30mBaHaoXRqPanlePam83JQPZ/y4kl+3aW0Wv9tlR70hB5EGAkEJGW5m4ktJwMgxQAeA==
-  dependencies:
-    "@babel/runtime" "^7.4.4"
-
-"@material-ui/styles@^4.7.1":
-  version "4.7.1"
-  resolved "https://registry.yarnpkg.com/@material-ui/styles/-/styles-4.7.1.tgz#48fa70f06441c35e301a9c4b6c825526a97b7a29"
-  integrity sha512-BBfxVThaPrglqHmKtSdrZJxnbFGJqKdZ5ZvDarj3HsmkteGCXsP1ohrDi5TWoa5JEJFo9S6q6NywqsENZn9rZA==
-  dependencies:
-    "@babel/runtime" "^7.4.4"
-    "@emotion/hash" "^0.7.1"
-    "@material-ui/types" "^4.1.1"
-    "@material-ui/utils" "^4.7.1"
-    clsx "^1.0.2"
-    csstype "^2.5.2"
-    hoist-non-react-statics "^3.2.1"
-    jss "^10.0.0"
-    jss-plugin-camel-case "^10.0.0"
-    jss-plugin-default-unit "^10.0.0"
-    jss-plugin-global "^10.0.0"
-    jss-plugin-nested "^10.0.0"
-    jss-plugin-props-sort "^10.0.0"
-    jss-plugin-rule-value-function "^10.0.0"
-    jss-plugin-vendor-prefixer "^10.0.0"
-    prop-types "^15.7.2"
-
-"@material-ui/system@^4.7.1":
-  version "4.7.1"
-  resolved "https://registry.yarnpkg.com/@material-ui/system/-/system-4.7.1.tgz#d928dacc0eeae6bea569ff3ee079f409efb3517d"
-  integrity sha512-zH02p+FOimXLSKOW/OT2laYkl9bB3dD1AvnZqsHYoseUaq0aVrpbl2BGjQi+vJ5lg8w73uYlt9zOWzb3+1UdMQ==
-  dependencies:
-    "@babel/runtime" "^7.4.4"
-    "@material-ui/utils" "^4.7.1"
-    prop-types "^15.7.2"
-
-"@material-ui/types@^4.1.1":
-  version "4.1.1"
-  resolved "https://registry.yarnpkg.com/@material-ui/types/-/types-4.1.1.tgz#b65e002d926089970a3271213a3ad7a21b17f02b"
-  integrity sha512-AN+GZNXytX9yxGi0JOfxHrRTbhFybjUJ05rnsBVjcB+16e466Z0Xe5IxawuOayVZgTBNDxmPKo5j4V6OnMtaSQ==
-  dependencies:
-    "@types/react" "*"
-
-"@material-ui/utils@^4.7.1":
-  version "4.7.1"
-  resolved "https://registry.yarnpkg.com/@material-ui/utils/-/utils-4.7.1.tgz#dc16c7f0d2cd02fbcdd5cfe601fd6863ae3cc652"
-  integrity sha512-+ux0SlLdlehvzCk2zdQ3KiS3/ylWvuo/JwAGhvb8dFVvwR21K28z0PU9OQW2PGogrMEdvX3miEI5tGxTwwWiwQ==
-  dependencies:
-    "@babel/runtime" "^7.4.4"
-    prop-types "^15.7.2"
-    react-is "^16.8.0"
-
 "@types/color-name@^1.1.1":
   version "1.1.1"
   resolved "https://registry.yarnpkg.com/@types/color-name/-/color-name-1.1.1.tgz#1c1261bbeaa10a8055bbc5d8ab84b7b2afc846a0"
   integrity sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==
 
-"@types/prop-types@*":
-  version "15.7.3"
-  resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.3.tgz#2ab0d5da2e5815f94b0b9d4b95d1e5f243ab2ca7"
-  integrity sha512-KfRL3PuHmqQLOG+2tGpRO26Ctg+Cq1E01D2DMriKEATHgWLfeNDmq9e29Q9WIky0dQ3NPkd1mzYH8Lm936Z9qw==
-
-"@types/react-transition-group@^4.2.0":
-  version "4.2.3"
-  resolved "https://registry.yarnpkg.com/@types/react-transition-group/-/react-transition-group-4.2.3.tgz#4924133f7268694058e415bf7aea2d4c21131470"
-  integrity sha512-Hk8jiuT7iLOHrcjKP/ZVSyCNXK73wJAUz60xm0mVhiRujrdiI++j4duLiL282VGxwAgxetHQFfqA29LgEeSkFA==
-  dependencies:
-    "@types/react" "*"
-
-"@types/react@*":
-  version "16.9.16"
-  resolved "https://registry.yarnpkg.com/@types/react/-/react-16.9.16.tgz#4f12515707148b1f53a8eaa4341dae5dfefb066d"
-  integrity sha512-dQ3wlehuBbYlfvRXfF5G+5TbZF3xqgkikK7DWAsQXe2KnzV+kjD4W2ea+ThCrKASZn9h98bjjPzoTYzfRqyBkw==
-  dependencies:
-    "@types/prop-types" "*"
-    csstype "^2.2.0"
-
 acorn-node@^1.6.1:
   version "1.8.2"
   resolved "https://registry.yarnpkg.com/acorn-node/-/acorn-node-1.8.2.tgz#114c95d64539e53dede23de8b9d96df7c7ae2af8"
@@ -420,11 +321,6 @@ cliui@^5.0.0:
     strip-ansi "^5.2.0"
     wrap-ansi "^5.1.0"
 
-clsx@^1.0.2:
-  version "1.0.4"
-  resolved "https://registry.yarnpkg.com/clsx/-/clsx-1.0.4.tgz#0c0171f6d5cb2fe83848463c15fcc26b4df8c2ec"
-  integrity sha512-1mQ557MIZTrL/140j+JVdRM6e31/OA4vTYxXgqIIZlndyfjHpyawKZia1Im05Vp9BWmImkcNrNtFYQMyFcgJDg==
-
 code-point-at@^1.0.0:
   version "1.1.0"
   resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77"
@@ -474,11 +370,6 @@ constants-browserify@^1.0.0:
   resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75"
   integrity sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=
 
-convert-css-length@^2.0.1:
-  version "2.0.1"
-  resolved "https://registry.yarnpkg.com/convert-css-length/-/convert-css-length-2.0.1.tgz#90a76bde5bfd24d72881a5b45d02249b2c1d257c"
-  integrity sha512-iGpbcvhLPRKUbBc0Quxx7w/bV14AC3ItuBEGMahA5WTYqB8lq9jH0kTXFheCBASsYnqeMFZhiTruNxr1N59Axg==
-
 core-util-is@~1.0.0:
   version "1.0.2"
   resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
@@ -556,20 +447,12 @@ css-unit-converter@^1.1.1:
   resolved "https://registry.yarnpkg.com/css-unit-converter/-/css-unit-converter-1.1.1.tgz#d9b9281adcfd8ced935bdbaba83786897f64e996"
   integrity sha1-2bkoGtz9jO2TW9urqDeGiX9k6ZY=
 
-css-vendor@^2.0.6:
-  version "2.0.7"
-  resolved "https://registry.yarnpkg.com/css-vendor/-/css-vendor-2.0.7.tgz#4e6d53d953c187981576d6a542acc9fb57174bda"
-  integrity sha512-VS9Rjt79+p7M0WkPqcAza4Yq1ZHrsHrwf7hPL/bjQB+c1lwmAI+1FXxYTYt818D/50fFVflw0XKleiBN5RITkg==
-  dependencies:
-    "@babel/runtime" "^7.6.2"
-    is-in-browser "^1.0.2"
-
 cssesc@^3.0.0:
   version "3.0.0"
   resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee"
   integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==
 
-csstype@^2.2.0, csstype@^2.5.2, csstype@^2.6.5, csstype@^2.6.7:
+csstype@^2.6.7:
   version "2.6.7"
   resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.6.7.tgz#20b0024c20b6718f4eda3853a1f5a1cce7f5e4a5"
   integrity sha512-9Mcn9sFbGBAdmimWb2gLVDtFJzeKtDGIr76TUqmjZrw9LFXBMSU70lcs+C0/7fyCd6iBDqmksUcCOUIkisPHsQ==
@@ -811,23 +694,11 @@ hmac-drbg@^1.0.0:
     minimalistic-assert "^1.0.0"
     minimalistic-crypto-utils "^1.0.1"
 
-hoist-non-react-statics@^3.2.1:
-  version "3.3.1"
-  resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.1.tgz#101685d3aff3b23ea213163f6e8e12f4f111e19f"
-  integrity sha512-wbg3bpgA/ZqWrZuMOeJi8+SKMhr7X9TesL/rXMjTzh0p0JUBo3II8DHboYbuIXWRlttrUFxwcu/5kygrCw8fJw==
-  dependencies:
-    react-is "^16.7.0"
-
 https-browserify@^1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73"
   integrity sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=
 
-hyphenate-style-name@^1.0.3:
-  version "1.0.3"
-  resolved "https://registry.yarnpkg.com/hyphenate-style-name/-/hyphenate-style-name-1.0.3.tgz#097bb7fa0b8f1a9cf0bd5c734cf95899981a9b48"
-  integrity sha512-EcuixamT82oplpoJ2XU4pDtKGWQ7b00CD9f1ug9IaQ3p1bkHMiKCZ9ut9QDI6qsa6cpUuB+A/I+zLtdNK4n2DQ==
-
 ieee754@^1.1.4:
   version "1.1.13"
   resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.13.tgz#ec168558e95aa181fd87d37f55c32bbcb6708b84"
@@ -891,11 +762,6 @@ is-fullwidth-code-point@^2.0.0:
   resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f"
   integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=
 
-is-in-browser@^1.0.2, is-in-browser@^1.1.3:
-  version "1.1.3"
-  resolved "https://registry.yarnpkg.com/is-in-browser/-/is-in-browser-1.1.3.tgz#56ff4db683a078c6082eb95dad7dc62e1d04f835"
-  integrity sha1-Vv9NtoOgeMYILrldrX3GLh0E+DU=
-
 is-stream@^1.1.0:
   version "1.1.0"
   resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44"
@@ -941,75 +807,6 @@ jsonfile@^4.0.0:
   optionalDependencies:
     graceful-fs "^4.1.6"
 
-jss-plugin-camel-case@^10.0.0:
-  version "10.0.0"
-  resolved "https://registry.yarnpkg.com/jss-plugin-camel-case/-/jss-plugin-camel-case-10.0.0.tgz#d601bae2e8e2041cc526add289dcd7062db0a248"
-  integrity sha512-yALDL00+pPR4FJh+k07A8FeDvfoPPuXU48HLy63enAubcVd3DnS+2rgqPXglHDGixIDVkCSXecl/l5GAMjzIbA==
-  dependencies:
-    "@babel/runtime" "^7.3.1"
-    hyphenate-style-name "^1.0.3"
-    jss "10.0.0"
-
-jss-plugin-default-unit@^10.0.0:
-  version "10.0.0"
-  resolved "https://registry.yarnpkg.com/jss-plugin-default-unit/-/jss-plugin-default-unit-10.0.0.tgz#601caf5f576fc0c66986fbe8a9aa37307a3a3ea3"
-  integrity sha512-sURozIOdCtGg9ap18erQ+ijndAfEGtTaetxfU3H4qwC18Bi+fdvjlY/ahKbuu0ASs7R/+WKCP7UaRZOjUDMcdQ==
-  dependencies:
-    "@babel/runtime" "^7.3.1"
-    jss "10.0.0"
-
-jss-plugin-global@^10.0.0:
-  version "10.0.0"
-  resolved "https://registry.yarnpkg.com/jss-plugin-global/-/jss-plugin-global-10.0.0.tgz#0fed1b6461e0d57d6e394f877529009bc1cb3cb6"
-  integrity sha512-80ofWKSQUo62bxLtRoTNe0kFPtHgUbAJeOeR36WEGgWIBEsXLyXOnD5KNnjPqG4heuEkz9eSLccjYST50JnI7Q==
-  dependencies:
-    "@babel/runtime" "^7.3.1"
-    jss "10.0.0"
-
-jss-plugin-nested@^10.0.0:
-  version "10.0.0"
-  resolved "https://registry.yarnpkg.com/jss-plugin-nested/-/jss-plugin-nested-10.0.0.tgz#d37ecc013c3b0d0e4acc2b48f6b62da6ae53948b"
-  integrity sha512-waxxwl/po1hN3azTyixKnr8ReEqUv5WK7WsO+5AWB0bFndML5Yqnt8ARZ90HEg8/P6WlqE/AB2413TkCRZE8bA==
-  dependencies:
-    "@babel/runtime" "^7.3.1"
-    jss "10.0.0"
-    tiny-warning "^1.0.2"
-
-jss-plugin-props-sort@^10.0.0:
-  version "10.0.0"
-  resolved "https://registry.yarnpkg.com/jss-plugin-props-sort/-/jss-plugin-props-sort-10.0.0.tgz#38a13407384c2a4a7c026659488350669b953b18"
-  integrity sha512-41mf22CImjwNdtOG3r+cdC8+RhwNm616sjHx5YlqTwtSJLyLFinbQC/a4PIFk8xqf1qpFH1kEAIw+yx9HaqZ3g==
-  dependencies:
-    "@babel/runtime" "^7.3.1"
-    jss "10.0.0"
-
-jss-plugin-rule-value-function@^10.0.0:
-  version "10.0.0"
-  resolved "https://registry.yarnpkg.com/jss-plugin-rule-value-function/-/jss-plugin-rule-value-function-10.0.0.tgz#3ec1b781b7c86080136dbef6c36e91f20244b72e"
-  integrity sha512-Jw+BZ8JIw1f12V0SERqGlBT1JEPWax3vuZpMym54NAXpPb7R1LYHiCTIlaJUyqvIfEy3kiHMtgI+r2whGgRIxQ==
-  dependencies:
-    "@babel/runtime" "^7.3.1"
-    jss "10.0.0"
-
-jss-plugin-vendor-prefixer@^10.0.0:
-  version "10.0.0"
-  resolved "https://registry.yarnpkg.com/jss-plugin-vendor-prefixer/-/jss-plugin-vendor-prefixer-10.0.0.tgz#400280535b0f483a9c78105afe4eee61b70018eb"
-  integrity sha512-qslqvL0MUbWuzXJWdUxpj6mdNUX8jr4FFTo3aZnAT65nmzWL7g8oTr9ZxmTXXgdp7ANhS1QWE7036/Q2isFBpw==
-  dependencies:
-    "@babel/runtime" "^7.3.1"
-    css-vendor "^2.0.6"
-    jss "10.0.0"
-
[email protected], jss@^10.0.0:
-  version "10.0.0"
-  resolved "https://registry.yarnpkg.com/jss/-/jss-10.0.0.tgz#998d5026c02accae15708de83bd6ba57bac977d2"
-  integrity sha512-TPpDFsiBjuERiL+dFDq8QCdiF9oDasPcNqCKLGCo/qED3fNYOQ8PX2lZhknyTiAt3tZrfOFbb0lbQ9lTjPZxsQ==
-  dependencies:
-    "@babel/runtime" "^7.3.1"
-    csstype "^2.6.5"
-    is-in-browser "^1.1.3"
-    tiny-warning "^1.0.2"
-
 lcid@^2.0.0:
   version "2.0.0"
   resolved "https://registry.yarnpkg.com/lcid/-/lcid-2.0.0.tgz#6ef5d2df60e52f82eb228a4c373e8d1f397253cf"
@@ -1126,10 +923,10 @@ mkdirp@^0.5.1:
   dependencies:
     minimist "0.0.8"
 
-mldoc_org@^0.2.0:
-  version "0.2.0"
-  resolved "https://registry.yarnpkg.com/mldoc_org/-/mldoc_org-0.2.0.tgz#b9643333939dbddf6b38e76ec130c4b2cc72d6ab"
-  integrity sha512-s5QuzNWRX8XuAV6ymrBB43qwqvxjsCfUZX6/3AuCJ/dka3+jPxcQVjjOfueTFdzbQdPOBMxAhutV+AX9oQnv1A==
+mldoc_org@^0.2.3:
+  version "0.2.3"
+  resolved "https://registry.yarnpkg.com/mldoc_org/-/mldoc_org-0.2.3.tgz#585a866925a0952bb9175cd67604b137c3f6969b"
+  integrity sha512-v+4Un+DxuLm9NurW7KJWbgTIjeG4Q6AWmOQ4raWa2WozlefDiA9/xcs+RtgQiQ45Jf7Exj+6sC9Eyf9s0GrKQg==
   dependencies:
     yargs "^12.0.2"
 
@@ -1191,11 +988,6 @@ normalize-range@^0.1.2:
   resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942"
   integrity sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=
 
-normalize-scroll-left@^0.2.0:
-  version "0.2.0"
-  resolved "https://registry.yarnpkg.com/normalize-scroll-left/-/normalize-scroll-left-0.2.0.tgz#9445d74275f303cc661e113329aefa492f58114c"
-  integrity sha512-t5oCENZJl8TGusJKoCJm7+asaSsPuNmK6+iEjrZ5TyBj2f02brCRsd4c83hwtu+e5d4LCSBZ0uoDlMjBo+A8yA==
-
 normalize.css@^8.0.1:
   version "8.0.1"
   resolved "https://registry.yarnpkg.com/normalize.css/-/normalize.css-8.0.1.tgz#9b98a208738b9cc2634caacbc42d131c97487bf3"
@@ -1336,11 +1128,6 @@ pify@^4.0.1:
   resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231"
   integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==
 
-popper.js@^1.14.1:
-  version "1.16.0"
-  resolved "https://registry.yarnpkg.com/popper.js/-/popper.js-1.16.0.tgz#2e1816bcbbaa518ea6c2e15a466f4cb9c6e2fbb3"
-  integrity sha512-+G+EkOPoE5S/zChTpmBSSDYmhXJ5PsW8eMhH8cP/CQHMFPBG/kC9Y5IIw6qNYgdJ+/COf0ddY2li28iHaZRSjw==
-
 postcss-functions@^3.0.0:
   version "3.0.0"
   resolved "https://registry.yarnpkg.com/postcss-functions/-/postcss-functions-3.0.0.tgz#0e94d01444700a481de20de4d55fb2640564250e"
@@ -1424,7 +1211,7 @@ process@^0.11.10:
   resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182"
   integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI=
 
-prop-types@^15.6.2, prop-types@^15.7.2:
+prop-types@^15.6.2:
   version "15.7.2"
   resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.7.2.tgz#52c41e75b8c87e72b9d9360e0206b99dcbffa6c5"
   integrity sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==
@@ -1508,7 +1295,7 @@ react-dom@^16.12.0:
     prop-types "^15.6.2"
     scheduler "^0.18.0"
 
-react-is@^16.7.0, react-is@^16.8.0, react-is@^16.8.1:
+react-is@^16.8.1:
   version "16.12.0"
   resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.12.0.tgz#2cc0fe0fba742d97fd527c42a13bec4eeb06241c"
   integrity sha512-rPCkf/mWBtKc97aLL9/txD8DZdemK0vkA3JMLShjlJB3Pj3s+lpf1KaBzMfQrAmhMQB0n1cU/SUGgKKBCe837Q==
@@ -1856,11 +1643,6 @@ timers-browserify@^2.0.4:
   dependencies:
     setimmediate "^1.0.4"
 
-tiny-warning@^1.0.2:
-  version "1.0.3"
-  resolved "https://registry.yarnpkg.com/tiny-warning/-/tiny-warning-1.0.3.tgz#94a30db453df4c643d0fd566060d60a875d84754"
-  integrity sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==
-
 to-arraybuffer@^1.0.0:
   version "1.0.1"
   resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43"