|
234 | 234 | (clojure.string/join " ") |
235 | 235 | (str "@media ")))) |
236 | 236 |
|
237 | | -(defn compile-media-dispatch [styles _] |
| 237 | +(defn compile-media-dispatch [styles _ _] |
238 | 238 | (cond |
239 | 239 | (contains? styles :media) :media |
240 | 240 | (contains? styles :styles) :styles)) |
241 | 241 |
|
242 | 242 | (defmulti compile-media #'compile-media-dispatch) |
243 | 243 |
|
244 | | -(defmethod compile-media :media [{media :media} cls] |
| 244 | +(defmethod compile-media :media [{media :media} cls rule-index] |
245 | 245 | (->> (seq media) |
246 | 246 | (reduce |
247 | | - (fn [[sstyles svalues] [query styles]] |
248 | | - (let [[static values] (compile-media {:styles styles} cls) |
| 247 | + (fn [[sstyles svalues nxt-idx] [query styles]] |
| 248 | + (let [[static values nxt-idx] (compile-media {:styles styles} cls nxt-idx) |
249 | 249 | query (-compile-media-query query)] |
250 | | - [(str sstyles query static) (concat svalues values)])) |
251 | | - ["" []]))) |
| 250 | + [(str sstyles query static) (concat svalues values) nxt-idx])) |
| 251 | + ["" [] rule-index]))) |
252 | 252 |
|
253 | | -(defmethod compile-media :styles [{styles :styles} cls] |
| 253 | +(defmethod compile-media :styles [{styles :styles} cls rule-index] |
254 | 254 | (let [pseudo (filterv utils/pseudo? styles) |
255 | | - pstyles (->> pseudo |
256 | | - (reduce |
257 | | - (fn [coll [rule styles]] |
258 | | - (conj coll (c/collect-styles (str cls (subs (name rule) 1)) styles))) |
259 | | - [])) |
| 255 | + [pstyles rule-index] (c/collect-dynamic-styles rule-index pseudo (fn [rule] (str cls (subs (name rule) 1)))) |
| 256 | + |
260 | 257 | styles (filterv (comp not utils/pseudo?) styles) |
261 | | - [static values] (c/collect-styles cls styles) |
| 258 | + [static values rule-index] (c/collect-styles cls styles rule-index) |
262 | 259 | values (->> pstyles |
263 | 260 | (mapcat second) |
264 | 261 | (into values))] |
265 | 262 | [(str "{" (apply str static (map first pstyles)) "}") |
266 | | - values])) |
| 263 | + values |
| 264 | + rule-index])) |
267 | 265 |
|
268 | | -(defn build-media [cls styles] |
269 | | - (compile-media {:media styles} cls)) |
| 266 | +(defn build-media [cls rule-index styles] |
| 267 | + (compile-media {:media styles} cls rule-index)) |
270 | 268 |
|
271 | 269 | (comment |
272 | 270 | (build-media |
|
0 commit comments