|
1 | | -!function(web) { |
| 1 | +//ryanve.dev/varam |
| 2 | +!function(web, dom) { |
| 3 | + var empty = "" |
2 | 4 | var dash = "--" |
3 | 5 | var word = /\S+/g |
4 | 6 | var what = "data-varam" |
5 | 7 | var where = "[data-varam]" |
6 | | - var all = "querySelectorAll" |
| 8 | + var first = dom.querySelector || no |
7 | 9 | var par = web.URLSearchParams |
| 10 | + var api = par ? varam : no |
8 | 11 |
|
9 | 12 | function varam(search) { |
10 | 13 | var did = false |
11 | 14 | var url = new par(search) |
12 | | - var stack = document[all](where) |
| 15 | + var stack = dom.querySelectorAll(where) |
13 | 16 | each(stack, function(scope) { |
14 | 17 | var keys = scope.getAttribute(what) |
15 | 18 | keys = keys && keys.match(word) |
|
20 | 23 | did = fresh(style, relay, value) || did |
21 | 24 | }) |
22 | 25 | }) |
| 26 | + api.state = url.toString() |
23 | 27 | return did |
24 | 28 | } |
25 | 29 |
|
26 | 30 | function no() { |
27 | 31 | return false |
28 | 32 | } |
29 | 33 |
|
| 34 | + function flow() { |
| 35 | + return api(location.search) |
| 36 | + } |
| 37 | + |
| 38 | + function reset() { |
| 39 | + return api(empty) |
| 40 | + } |
| 41 | + |
| 42 | + function help() { |
| 43 | + console.dir(api) |
| 44 | + return api.state |
| 45 | + } |
| 46 | + |
30 | 47 | function fresh(style, relay, value) { |
31 | 48 | var prev = style.getPropertyValue(relay) |
32 | 49 | var next = value |
|
40 | 57 | while(i--) f(stack[i]) |
41 | 58 | } |
42 | 59 |
|
43 | | - var api = par ? varam : no |
44 | | - var seed = web.varam |
| 60 | + var like = "meta[name=varam][content]" |
| 61 | + var elmo = first.call(dom, like) |
| 62 | + var seed = elmo && elmo.content |
45 | 63 | var seeded = typeof seed == "string" |
46 | 64 | seed = seeded && seed |
47 | | - api.seed = seed |
48 | | - api.seeded = seeded |
| 65 | + api.flow = par ? flow : no |
49 | 66 | api.fresh = fresh |
| 67 | + api.help = help |
| 68 | + api.reset = par ? reset : no |
| 69 | + api.state = empty |
| 70 | + par && api(seeded ? seed : location.search) |
| 71 | + api.meta = seeded ? api.state : false |
| 72 | + api.via = seeded ? "meta" : "flow" |
50 | 73 | web.varam = api |
51 | | - api(seeded ? seed : location.search) |
52 | 74 | var common = typeof module != "undefined" |
53 | 75 | if (common && module.exports) |
54 | 76 | module.exports = api |
55 | | -}(window) |
| 77 | +}(window, document) |
0 commit comments