Repository: rundis/elm-light Branch: master Commit: 5e1c0983b089 Files: 69 Total size: 2.5 MB Directory structure: gitextract_2btuyzk6/ ├── .gitignore ├── DocPreview/ │ ├── DocPreview.elm │ ├── DocPreview.html │ ├── LICENSE │ ├── docPreview.js │ ├── elm-package.json │ ├── highlight.pack.js │ └── src/ │ ├── Docs/ │ │ ├── Entry.elm │ │ ├── Name.elm │ │ ├── Package.elm │ │ ├── Summary.elm │ │ ├── Type.elm │ │ └── Version.elm │ ├── Native/ │ │ ├── Jump.js │ │ └── Parse.js │ ├── Parse/ │ │ ├── Combinators.elm │ │ └── Type.elm │ └── Utils/ │ ├── Code.elm │ ├── FluidList.elm │ ├── Markdown.elm │ └── Path.elm ├── LICENSE.md ├── README.adoc ├── css/ │ ├── docpreview.css │ ├── elm.css │ ├── graph.css │ ├── hinter.css │ ├── inlinedoc.css │ └── test.css ├── elm/ │ └── ModuleBrowser/ │ ├── ModuleBrowser.elm │ ├── ModuleBrowser.html │ ├── elm-package.json │ └── moduleBrowser.js ├── elm-light.behaviors ├── elm-light_compiled.js ├── elm.keymap ├── js/ │ ├── highlight.pack.js │ ├── show-hint.js │ └── show-hint2.js ├── mode/ │ └── elm.js ├── node/ │ ├── elm-client.js │ └── elmparser.js ├── package.json ├── plugin.edn ├── project.clj ├── src/ │ └── lt/ │ └── plugins/ │ ├── elm_light/ │ │ ├── autocompleter/ │ │ │ └── core.cljs │ │ ├── autocompleter.cljs │ │ ├── clients.cljs │ │ ├── docpreview.cljs │ │ ├── elm_ast.cljs │ │ ├── format.cljs │ │ ├── graph.cljs │ │ ├── gutter.cljs │ │ ├── hinter.cljs │ │ ├── inline-doc.cljs │ │ ├── linter.cljs │ │ ├── make.cljs │ │ ├── module_graph.cljs │ │ ├── modulebrowser.cljs │ │ ├── packages.cljs │ │ ├── repl.cljs │ │ ├── selection.cljs │ │ ├── test.cljs │ │ ├── usages.cljs │ │ ├── utils.cljs │ │ └── widgets/ │ │ └── selector.cljs │ └── elm_light.cljs └── templates/ └── test/ ├── Main.elm └── Tests.elm ================================================ FILE CONTENTS ================================================ ================================================ FILE: .gitignore ================================================ .nrepl-port target elm/ModuleBrowser/elm-stuff elm/ModuleBrowser/elm.js DocPreview/elm-stuff DocPreview/elm.js ================================================ FILE: DocPreview/DocPreview.elm ================================================ module DocPreview (..) where import Html exposing (Html, text, div, span, h1) import Html.Attributes exposing (class) import StartApp import Effects exposing (Effects, Never) import Docs.Package import Docs.Entry import String import Regex import Dict import Json.Decode as Dec import Utils.Markdown as Markdown import Parse.Type import Docs.Type import Docs.Name import Set type alias Model = { selModule : Maybe Docs.Package.Module , package : Docs.Package.Package } init : (Model, Effects Action) init = (Model Nothing Dict.empty, Effects.none) type Action = NoOp | RefreshModules String | SelectModule String update : Action -> Model -> ( Model, Effects Action ) update action model = case action of NoOp -> ( model, Effects.none ) RefreshModules rawModules -> let res = Dec.decodeString Docs.Package.decodePackage rawModules in case res of Result.Err v -> Debug.crash "Error decoding package docs" Result.Ok r -> ( { model | package = r , selModule = Dict.values r |> List.head } , Effects.none ) SelectModule name -> ( { model | selModule = Dict.get name model.package } , Effects.none ) -- View module docs view : Signal.Address Action -> Model -> Html view address model = case model.selModule of Nothing -> div [] [text "NO SELECTED MODULE - Maybe you forgot to add your module to the `exposed-modules` entry in elm-package.json ?"] Just mod -> let chunks = toChunks mod --nameDict = toNameDict model.package --newChunks = List.map (chunkMap stringToType) chunks in div [ class "entry-list" ] <| h1 [class "entry-list-title"] [text mod.name] :: List.map (viewChunk Docs.Entry.stringView) chunks --:: List.map (viewChunk (Docs.Entry.typeView nameDict)) newChunks viewChunk : (Docs.Entry.Model tipe -> Html) -> Chunk tipe -> Html viewChunk entryView chunk = case chunk of Markdown md -> span [class "markdown-entry"] [ Markdown.block md ] Entry entry -> entryView entry type Chunk tipe = Markdown String | Entry (Docs.Entry.Model tipe) toNameDict : Docs.Package.Package -> Docs.Name.Dictionary toNameDict pkg = Dict.map (\_ modul -> Set.fromList (Dict.keys modul.entries)) pkg chunkMap : (a -> b) -> Chunk a -> Chunk b chunkMap func chunk = case chunk of Markdown md -> Markdown md Entry entry -> Entry (Docs.Entry.map func entry) -- parsing fails for some reason when in LT (native issue ?) stringToType : String -> Docs.Type.Type stringToType str = let _ = Debug.log "String to type for:" str in case Parse.Type.parse str of Ok tipe -> let _ = Debug.log "type after parse: " tipe in tipe Err err -> let _ = Debug.log "Shit while parsing" err in Docs.Type.Var str toChunks : Docs.Package.Module -> List (Chunk String) toChunks moduleDocs = case String.split "\n@docs " moduleDocs.comment of [] -> Debug.crash "Expecting some documented functions in this module!" firstChunk :: rest -> Markdown firstChunk :: List.concatMap (subChunks moduleDocs) rest subChunks : Docs.Package.Module -> String -> List (Chunk String) subChunks moduleDocs postDocs = subChunksHelp moduleDocs (String.split "," postDocs) subChunksHelp : Docs.Package.Module -> List String -> List (Chunk String) subChunksHelp moduleDocs parts = case parts of [] -> [] rawPart :: remainingParts -> let part = String.trim rawPart in case isValue part of Just valueName -> toEntry moduleDocs valueName :: subChunksHelp moduleDocs remainingParts Nothing -> let trimmedPart = String.trimLeft rawPart in case String.words trimmedPart of [] -> [ Markdown (String.join "," parts) ] token :: _ -> case isValue token of Just valueName -> [ toEntry moduleDocs valueName , Markdown (String.dropLeft (String.length token) trimmedPart) ] Nothing -> [ Markdown (String.join "," parts) ] var : Regex.Regex var = Regex.regex "^[a-zA-Z0-9_']+$" operator : Regex.Regex operator = Regex.regex "^\\([^a-zA-Z0-9]+\\)$" isValue : String -> Maybe String isValue str = if Regex.contains var str then Just str else if Regex.contains operator str then Just (String.dropLeft 1 (String.dropRight 1 str)) else Nothing toEntry : Docs.Package.Module -> String -> Chunk String toEntry moduleDocs name = case Dict.get name moduleDocs.entries of Nothing -> Debug.crash ("docs have been corrupted, could not find " ++ name) Just entry -> Entry entry -- START-APP WIRING app : StartApp.App Model app = StartApp.start { init = init , update = update , view = view , inputs = [ modulesSignal, selectModuleSignal ] } main : Signal Html main = app.html -- Inbound modulesSignal : Signal Action modulesSignal = Signal.map RefreshModules modules port modules : Signal String selectModuleSignal : Signal Action selectModuleSignal = Signal.map SelectModule selectModule port selectModule : Signal String ================================================ FILE: DocPreview/DocPreview.html ================================================
Here we go docpreview
================================================ FILE: DocPreview/LICENSE ================================================ Copyright (c) 2014, Evan Czaplicki All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of Evan Czaplicki nor the names of other contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ================================================ FILE: DocPreview/docPreview.js ================================================ var Elm = Elm || { Native: {} }; Elm.Native.Array = {}; Elm.Native.Array.make = function(localRuntime) { localRuntime.Native = localRuntime.Native || {}; localRuntime.Native.Array = localRuntime.Native.Array || {}; if (localRuntime.Native.Array.values) { return localRuntime.Native.Array.values; } if ('values' in Elm.Native.Array) { return localRuntime.Native.Array.values = Elm.Native.Array.values; } var List = Elm.Native.List.make(localRuntime); // A RRB-Tree has two distinct data types. // Leaf -> "height" is always 0 // "table" is an array of elements // Node -> "height" is always greater than 0 // "table" is an array of child nodes // "lengths" is an array of accumulated lengths of the child nodes // M is the maximal table size. 32 seems fast. E is the allowed increase // of search steps when concatting to find an index. Lower values will // decrease balancing, but will increase search steps. var M = 32; var E = 2; // An empty array. var empty = { ctor: '_Array', height: 0, table: [] }; function get(i, array) { if (i < 0 || i >= length(array)) { throw new Error( 'Index ' + i + ' is out of range. Check the length of ' + 'your array first or use getMaybe or getWithDefault.'); } return unsafeGet(i, array); } function unsafeGet(i, array) { for (var x = array.height; x > 0; x--) { var slot = i >> (x * 5); while (array.lengths[slot] <= i) { slot++; } if (slot > 0) { i -= array.lengths[slot - 1]; } array = array.table[slot]; } return array.table[i]; } // Sets the value at the index i. Only the nodes leading to i will get // copied and updated. function set(i, item, array) { if (i < 0 || length(array) <= i) { return array; } return unsafeSet(i, item, array); } function unsafeSet(i, item, array) { array = nodeCopy(array); if (array.height === 0) { array.table[i] = item; } else { var slot = getSlot(i, array); if (slot > 0) { i -= array.lengths[slot - 1]; } array.table[slot] = unsafeSet(i, item, array.table[slot]); } return array; } function initialize(len, f) { if (len <= 0) { return empty; } var h = Math.floor( Math.log(len) / Math.log(M) ); return initialize_(f, h, 0, len); } function initialize_(f, h, from, to) { if (h === 0) { var table = new Array((to - from) % (M + 1)); for (var i = 0; i < table.length; i++) { table[i] = f(from + i); } return { ctor: '_Array', height: 0, table: table }; } var step = Math.pow(M, h); var table = new Array(Math.ceil((to - from) / step)); var lengths = new Array(table.length); for (var i = 0; i < table.length; i++) { table[i] = initialize_(f, h - 1, from + (i * step), Math.min(from + ((i + 1) * step), to)); lengths[i] = length(table[i]) + (i > 0 ? lengths[i-1] : 0); } return { ctor: '_Array', height: h, table: table, lengths: lengths }; } function fromList(list) { if (list === List.Nil) { return empty; } // Allocate M sized blocks (table) and write list elements to it. var table = new Array(M); var nodes = []; var i = 0; while (list.ctor !== '[]') { table[i] = list._0; list = list._1; i++; // table is full, so we can push a leaf containing it into the // next node. if (i === M) { var leaf = { ctor: '_Array', height: 0, table: table }; fromListPush(leaf, nodes); table = new Array(M); i = 0; } } // Maybe there is something left on the table. if (i > 0) { var leaf = { ctor: '_Array', height: 0, table: table.splice(0, i) }; fromListPush(leaf, nodes); } // Go through all of the nodes and eventually push them into higher nodes. for (var h = 0; h < nodes.length - 1; h++) { if (nodes[h].table.length > 0) { fromListPush(nodes[h], nodes); } } var head = nodes[nodes.length - 1]; if (head.height > 0 && head.table.length === 1) { return head.table[0]; } else { return head; } } // Push a node into a higher node as a child. function fromListPush(toPush, nodes) { var h = toPush.height; // Maybe the node on this height does not exist. if (nodes.length === h) { var node = { ctor: '_Array', height: h + 1, table: [], lengths: [] }; nodes.push(node); } nodes[h].table.push(toPush); var len = length(toPush); if (nodes[h].lengths.length > 0) { len += nodes[h].lengths[nodes[h].lengths.length - 1]; } nodes[h].lengths.push(len); if (nodes[h].table.length === M) { fromListPush(nodes[h], nodes); nodes[h] = { ctor: '_Array', height: h + 1, table: [], lengths: [] }; } } // Pushes an item via push_ to the bottom right of a tree. function push(item, a) { var pushed = push_(item, a); if (pushed !== null) { return pushed; } var newTree = create(item, a.height); return siblise(a, newTree); } // Recursively tries to push an item to the bottom-right most // tree possible. If there is no space left for the item, // null will be returned. function push_(item, a) { // Handle resursion stop at leaf level. if (a.height === 0) { if (a.table.length < M) { var newA = { ctor: '_Array', height: 0, table: a.table.slice() }; newA.table.push(item); return newA; } else { return null; } } // Recursively push var pushed = push_(item, botRight(a)); // There was space in the bottom right tree, so the slot will // be updated. if (pushed !== null) { var newA = nodeCopy(a); newA.table[newA.table.length - 1] = pushed; newA.lengths[newA.lengths.length - 1]++; return newA; } // When there was no space left, check if there is space left // for a new slot with a tree which contains only the item // at the bottom. if (a.table.length < M) { var newSlot = create(item, a.height - 1); var newA = nodeCopy(a); newA.table.push(newSlot); newA.lengths.push(newA.lengths[newA.lengths.length - 1] + length(newSlot)); return newA; } else { return null; } } // Converts an array into a list of elements. function toList(a) { return toList_(List.Nil, a); } function toList_(list, a) { for (var i = a.table.length - 1; i >= 0; i--) { list = a.height === 0 ? List.Cons(a.table[i], list) : toList_(list, a.table[i]); } return list; } // Maps a function over the elements of an array. function map(f, a) { var newA = { ctor: '_Array', height: a.height, table: new Array(a.table.length) }; if (a.height > 0) { newA.lengths = a.lengths; } for (var i = 0; i < a.table.length; i++) { newA.table[i] = a.height === 0 ? f(a.table[i]) : map(f, a.table[i]); } return newA; } // Maps a function over the elements with their index as first argument. function indexedMap(f, a) { return indexedMap_(f, a, 0); } function indexedMap_(f, a, from) { var newA = { ctor: '_Array', height: a.height, table: new Array(a.table.length) }; if (a.height > 0) { newA.lengths = a.lengths; } for (var i = 0; i < a.table.length; i++) { newA.table[i] = a.height === 0 ? A2(f, from + i, a.table[i]) : indexedMap_(f, a.table[i], i == 0 ? from : from + a.lengths[i - 1]); } return newA; } function foldl(f, b, a) { if (a.height === 0) { for (var i = 0; i < a.table.length; i++) { b = A2(f, a.table[i], b); } } else { for (var i = 0; i < a.table.length; i++) { b = foldl(f, b, a.table[i]); } } return b; } function foldr(f, b, a) { if (a.height === 0) { for (var i = a.table.length; i--; ) { b = A2(f, a.table[i], b); } } else { for (var i = a.table.length; i--; ) { b = foldr(f, b, a.table[i]); } } return b; } // TODO: currently, it slices the right, then the left. This can be // optimized. function slice(from, to, a) { if (from < 0) { from += length(a); } if (to < 0) { to += length(a); } return sliceLeft(from, sliceRight(to, a)); } function sliceRight(to, a) { if (to === length(a)) { return a; } // Handle leaf level. if (a.height === 0) { var newA = { ctor:'_Array', height:0 }; newA.table = a.table.slice(0, to); return newA; } // Slice the right recursively. var right = getSlot(to, a); var sliced = sliceRight(to - (right > 0 ? a.lengths[right - 1] : 0), a.table[right]); // Maybe the a node is not even needed, as sliced contains the whole slice. if (right === 0) { return sliced; } // Create new node. var newA = { ctor: '_Array', height: a.height, table: a.table.slice(0, right), lengths: a.lengths.slice(0, right) }; if (sliced.table.length > 0) { newA.table[right] = sliced; newA.lengths[right] = length(sliced) + (right > 0 ? newA.lengths[right - 1] : 0); } return newA; } function sliceLeft(from, a) { if (from === 0) { return a; } // Handle leaf level. if (a.height === 0) { var newA = { ctor:'_Array', height:0 }; newA.table = a.table.slice(from, a.table.length + 1); return newA; } // Slice the left recursively. var left = getSlot(from, a); var sliced = sliceLeft(from - (left > 0 ? a.lengths[left - 1] : 0), a.table[left]); // Maybe the a node is not even needed, as sliced contains the whole slice. if (left === a.table.length - 1) { return sliced; } // Create new node. var newA = { ctor: '_Array', height: a.height, table: a.table.slice(left, a.table.length + 1), lengths: new Array(a.table.length - left) }; newA.table[0] = sliced; var len = 0; for (var i = 0; i < newA.table.length; i++) { len += length(newA.table[i]); newA.lengths[i] = len; } return newA; } // Appends two trees. function append(a,b) { if (a.table.length === 0) { return b; } if (b.table.length === 0) { return a; } var c = append_(a, b); // Check if both nodes can be crunshed together. if (c[0].table.length + c[1].table.length <= M) { if (c[0].table.length === 0) { return c[1]; } if (c[1].table.length === 0) { return c[0]; } // Adjust .table and .lengths c[0].table = c[0].table.concat(c[1].table); if (c[0].height > 0) { var len = length(c[0]); for (var i = 0; i < c[1].lengths.length; i++) { c[1].lengths[i] += len; } c[0].lengths = c[0].lengths.concat(c[1].lengths); } return c[0]; } if (c[0].height > 0) { var toRemove = calcToRemove(a, b); if (toRemove > E) { c = shuffle(c[0], c[1], toRemove); } } return siblise(c[0], c[1]); } // Returns an array of two nodes; right and left. One node _may_ be empty. function append_(a, b) { if (a.height === 0 && b.height === 0) { return [a, b]; } if (a.height !== 1 || b.height !== 1) { if (a.height === b.height) { a = nodeCopy(a); b = nodeCopy(b); var appended = append_(botRight(a), botLeft(b)); insertRight(a, appended[1]); insertLeft(b, appended[0]); } else if (a.height > b.height) { a = nodeCopy(a); var appended = append_(botRight(a), b); insertRight(a, appended[0]); b = parentise(appended[1], appended[1].height + 1); } else { b = nodeCopy(b); var appended = append_(a, botLeft(b)); var left = appended[0].table.length === 0 ? 0 : 1; var right = left === 0 ? 1 : 0; insertLeft(b, appended[left]); a = parentise(appended[right], appended[right].height + 1); } } // Check if balancing is needed and return based on that. if (a.table.length === 0 || b.table.length === 0) { return [a, b]; } var toRemove = calcToRemove(a, b); if (toRemove <= E) { return [a, b]; } return shuffle(a, b, toRemove); } // Helperfunctions for append_. Replaces a child node at the side of the parent. function insertRight(parent, node) { var index = parent.table.length - 1; parent.table[index] = node; parent.lengths[index] = length(node); parent.lengths[index] += index > 0 ? parent.lengths[index - 1] : 0; } function insertLeft(parent, node) { if (node.table.length > 0) { parent.table[0] = node; parent.lengths[0] = length(node); var len = length(parent.table[0]); for (var i = 1; i < parent.lengths.length; i++) { len += length(parent.table[i]); parent.lengths[i] = len; } } else { parent.table.shift(); for (var i = 1; i < parent.lengths.length; i++) { parent.lengths[i] = parent.lengths[i] - parent.lengths[0]; } parent.lengths.shift(); } } // Returns the extra search steps for E. Refer to the paper. function calcToRemove(a, b) { var subLengths = 0; for (var i = 0; i < a.table.length; i++) { subLengths += a.table[i].table.length; } for (var i = 0; i < b.table.length; i++) { subLengths += b.table[i].table.length; } var toRemove = a.table.length + b.table.length; return toRemove - (Math.floor((subLengths - 1) / M) + 1); } // get2, set2 and saveSlot are helpers for accessing elements over two arrays. function get2(a, b, index) { return index < a.length ? a[index] : b[index - a.length]; } function set2(a, b, index, value) { if (index < a.length) { a[index] = value; } else { b[index - a.length] = value; } } function saveSlot(a, b, index, slot) { set2(a.table, b.table, index, slot); var l = (index === 0 || index === a.lengths.length) ? 0 : get2(a.lengths, a.lengths, index - 1); set2(a.lengths, b.lengths, index, l + length(slot)); } // Creates a node or leaf with a given length at their arrays for perfomance. // Is only used by shuffle. function createNode(h, length) { if (length < 0) { length = 0; } var a = { ctor: '_Array', height: h, table: new Array(length) }; if (h > 0) { a.lengths = new Array(length); } return a; } // Returns an array of two balanced nodes. function shuffle(a, b, toRemove) { var newA = createNode(a.height, Math.min(M, a.table.length + b.table.length - toRemove)); var newB = createNode(a.height, newA.table.length - (a.table.length + b.table.length - toRemove)); // Skip the slots with size M. More precise: copy the slot references // to the new node var read = 0; while (get2(a.table, b.table, read).table.length % M === 0) { set2(newA.table, newB.table, read, get2(a.table, b.table, read)); set2(newA.lengths, newB.lengths, read, get2(a.lengths, b.lengths, read)); read++; } // Pulling items from left to right, caching in a slot before writing // it into the new nodes. var write = read; var slot = new createNode(a.height - 1, 0); var from = 0; // If the current slot is still containing data, then there will be at // least one more write, so we do not break this loop yet. while (read - write - (slot.table.length > 0 ? 1 : 0) < toRemove) { // Find out the max possible items for copying. var source = get2(a.table, b.table, read); var to = Math.min(M - slot.table.length, source.table.length); // Copy and adjust size table. slot.table = slot.table.concat(source.table.slice(from, to)); if (slot.height > 0) { var len = slot.lengths.length; for (var i = len; i < len + to - from; i++) { slot.lengths[i] = length(slot.table[i]); slot.lengths[i] += (i > 0 ? slot.lengths[i - 1] : 0); } } from += to; // Only proceed to next slots[i] if the current one was // fully copied. if (source.table.length <= to) { read++; from = 0; } // Only create a new slot if the current one is filled up. if (slot.table.length === M) { saveSlot(newA, newB, write, slot); slot = createNode(a.height - 1, 0); write++; } } // Cleanup after the loop. Copy the last slot into the new nodes. if (slot.table.length > 0) { saveSlot(newA, newB, write, slot); write++; } // Shift the untouched slots to the left while (read < a.table.length + b.table.length ) { saveSlot(newA, newB, write, get2(a.table, b.table, read)); read++; write++; } return [newA, newB]; } // Navigation functions function botRight(a) { return a.table[a.table.length - 1]; } function botLeft(a) { return a.table[0]; } // Copies a node for updating. Note that you should not use this if // only updating only one of "table" or "lengths" for performance reasons. function nodeCopy(a) { var newA = { ctor: '_Array', height: a.height, table: a.table.slice() }; if (a.height > 0) { newA.lengths = a.lengths.slice(); } return newA; } // Returns how many items are in the tree. function length(array) { if (array.height === 0) { return array.table.length; } else { return array.lengths[array.lengths.length - 1]; } } // Calculates in which slot of "table" the item probably is, then // find the exact slot via forward searching in "lengths". Returns the index. function getSlot(i, a) { var slot = i >> (5 * a.height); while (a.lengths[slot] <= i) { slot++; } return slot; } // Recursively creates a tree with a given height containing // only the given item. function create(item, h) { if (h === 0) { return { ctor: '_Array', height: 0, table: [item] }; } return { ctor: '_Array', height: h, table: [create(item, h - 1)], lengths: [1] }; } // Recursively creates a tree that contains the given tree. function parentise(tree, h) { if (h === tree.height) { return tree; } return { ctor: '_Array', height: h, table: [parentise(tree, h - 1)], lengths: [length(tree)] }; } // Emphasizes blood brotherhood beneath two trees. function siblise(a, b) { return { ctor: '_Array', height: a.height + 1, table: [a, b], lengths: [length(a), length(a) + length(b)] }; } function toJSArray(a) { var jsArray = new Array(length(a)); toJSArray_(jsArray, 0, a); return jsArray; } function toJSArray_(jsArray, i, a) { for (var t = 0; t < a.table.length; t++) { if (a.height === 0) { jsArray[i + t] = a.table[t]; } else { var inc = t === 0 ? 0 : a.lengths[t - 1]; toJSArray_(jsArray, i + inc, a.table[t]); } } } function fromJSArray(jsArray) { if (jsArray.length === 0) { return empty; } var h = Math.floor(Math.log(jsArray.length) / Math.log(M)); return fromJSArray_(jsArray, h, 0, jsArray.length); } function fromJSArray_(jsArray, h, from, to) { if (h === 0) { return { ctor: '_Array', height: 0, table: jsArray.slice(from, to) }; } var step = Math.pow(M, h); var table = new Array(Math.ceil((to - from) / step)); var lengths = new Array(table.length); for (var i = 0; i < table.length; i++) { table[i] = fromJSArray_(jsArray, h - 1, from + (i * step), Math.min(from + ((i + 1) * step), to)); lengths[i] = length(table[i]) + (i > 0 ? lengths[i - 1] : 0); } return { ctor: '_Array', height: h, table: table, lengths: lengths }; } Elm.Native.Array.values = { empty: empty, fromList: fromList, toList: toList, initialize: F2(initialize), append: F2(append), push: F2(push), slice: F3(slice), get: F2(get), set: F3(set), map: F2(map), indexedMap: F2(indexedMap), foldl: F3(foldl), foldr: F3(foldr), length: length, toJSArray: toJSArray, fromJSArray: fromJSArray }; return localRuntime.Native.Array.values = Elm.Native.Array.values; }; Elm.Native.Basics = {}; Elm.Native.Basics.make = function(localRuntime) { localRuntime.Native = localRuntime.Native || {}; localRuntime.Native.Basics = localRuntime.Native.Basics || {}; if (localRuntime.Native.Basics.values) { return localRuntime.Native.Basics.values; } var Utils = Elm.Native.Utils.make(localRuntime); function div(a, b) { return (a / b) | 0; } function rem(a, b) { return a % b; } function mod(a, b) { if (b === 0) { throw new Error('Cannot perform mod 0. Division by zero error.'); } var r = a % b; var m = a === 0 ? 0 : (b > 0 ? (a >= 0 ? r : r + b) : -mod(-a, -b)); return m === b ? 0 : m; } function logBase(base, n) { return Math.log(n) / Math.log(base); } function negate(n) { return -n; } function abs(n) { return n < 0 ? -n : n; } function min(a, b) { return Utils.cmp(a, b) < 0 ? a : b; } function max(a, b) { return Utils.cmp(a, b) > 0 ? a : b; } function clamp(lo, hi, n) { return Utils.cmp(n, lo) < 0 ? lo : Utils.cmp(n, hi) > 0 ? hi : n; } function xor(a, b) { return a !== b; } function not(b) { return !b; } function isInfinite(n) { return n === Infinity || n === -Infinity; } function truncate(n) { return n | 0; } function degrees(d) { return d * Math.PI / 180; } function turns(t) { return 2 * Math.PI * t; } function fromPolar(point) { var r = point._0; var t = point._1; return Utils.Tuple2(r * Math.cos(t), r * Math.sin(t)); } function toPolar(point) { var x = point._0; var y = point._1; return Utils.Tuple2(Math.sqrt(x * x + y * y), Math.atan2(y, x)); } return localRuntime.Native.Basics.values = { div: F2(div), rem: F2(rem), mod: F2(mod), pi: Math.PI, e: Math.E, cos: Math.cos, sin: Math.sin, tan: Math.tan, acos: Math.acos, asin: Math.asin, atan: Math.atan, atan2: F2(Math.atan2), degrees: degrees, turns: turns, fromPolar: fromPolar, toPolar: toPolar, sqrt: Math.sqrt, logBase: F2(logBase), negate: negate, abs: abs, min: F2(min), max: F2(max), clamp: F3(clamp), compare: Utils.compare, xor: F2(xor), not: not, truncate: truncate, ceiling: Math.ceil, floor: Math.floor, round: Math.round, toFloat: function(x) { return x; }, isNaN: isNaN, isInfinite: isInfinite }; }; Elm.Native.Port = {}; Elm.Native.Port.make = function(localRuntime) { localRuntime.Native = localRuntime.Native || {}; localRuntime.Native.Port = localRuntime.Native.Port || {}; if (localRuntime.Native.Port.values) { return localRuntime.Native.Port.values; } var NS; // INBOUND function inbound(name, type, converter) { if (!localRuntime.argsTracker[name]) { throw new Error( 'Port Error:\n' + 'No argument was given for the port named \'' + name + '\' with type:\n\n' + ' ' + type.split('\n').join('\n ') + '\n\n' + 'You need to provide an initial value!\n\n' + 'Find out more about ports here ' ); } var arg = localRuntime.argsTracker[name]; arg.used = true; return jsToElm(name, type, converter, arg.value); } function inboundSignal(name, type, converter) { var initialValue = inbound(name, type, converter); if (!NS) { NS = Elm.Native.Signal.make(localRuntime); } var signal = NS.input('inbound-port-' + name, initialValue); function send(jsValue) { var elmValue = jsToElm(name, type, converter, jsValue); setTimeout(function() { localRuntime.notify(signal.id, elmValue); }, 0); } localRuntime.ports[name] = { send: send }; return signal; } function jsToElm(name, type, converter, value) { try { return converter(value); } catch(e) { throw new Error( 'Port Error:\n' + 'Regarding the port named \'' + name + '\' with type:\n\n' + ' ' + type.split('\n').join('\n ') + '\n\n' + 'You just sent the value:\n\n' + ' ' + JSON.stringify(value) + '\n\n' + 'but it cannot be converted to the necessary type.\n' + e.message ); } } // OUTBOUND function outbound(name, converter, elmValue) { localRuntime.ports[name] = converter(elmValue); } function outboundSignal(name, converter, signal) { var subscribers = []; function subscribe(handler) { subscribers.push(handler); } function unsubscribe(handler) { subscribers.pop(subscribers.indexOf(handler)); } function notify(elmValue) { var jsValue = converter(elmValue); var len = subscribers.length; for (var i = 0; i < len; ++i) { subscribers[i](jsValue); } } if (!NS) { NS = Elm.Native.Signal.make(localRuntime); } NS.output('outbound-port-' + name, notify, signal); localRuntime.ports[name] = { subscribe: subscribe, unsubscribe: unsubscribe }; return signal; } return localRuntime.Native.Port.values = { inbound: inbound, outbound: outbound, inboundSignal: inboundSignal, outboundSignal: outboundSignal }; }; if (!Elm.fullscreen) { (function() { 'use strict'; var Display = { FULLSCREEN: 0, COMPONENT: 1, NONE: 2 }; Elm.fullscreen = function(module, args) { var container = document.createElement('div'); document.body.appendChild(container); return init(Display.FULLSCREEN, container, module, args || {}); }; Elm.embed = function(module, container, args) { var tag = container.tagName; if (tag !== 'DIV') { throw new Error('Elm.node must be given a DIV, not a ' + tag + '.'); } return init(Display.COMPONENT, container, module, args || {}); }; Elm.worker = function(module, args) { return init(Display.NONE, {}, module, args || {}); }; function init(display, container, module, args, moduleToReplace) { // defining state needed for an instance of the Elm RTS var inputs = []; /* OFFSET * Elm's time traveling debugger lets you pause time. This means * "now" may be shifted a bit into the past. By wrapping Date.now() * we can manage this. */ var timer = { programStart: Date.now(), now: function() { return Date.now(); } }; var updateInProgress = false; function notify(id, v) { if (updateInProgress) { throw new Error( 'The notify function has been called synchronously!\n' + 'This can lead to frames being dropped.\n' + 'Definitely report this to \n'); } updateInProgress = true; var timestep = timer.now(); for (var i = inputs.length; i--; ) { inputs[i].notify(timestep, id, v); } updateInProgress = false; } function setTimeout(func, delay) { return window.setTimeout(func, delay); } var listeners = []; function addListener(relevantInputs, domNode, eventName, func) { domNode.addEventListener(eventName, func); var listener = { relevantInputs: relevantInputs, domNode: domNode, eventName: eventName, func: func }; listeners.push(listener); } var argsTracker = {}; for (var name in args) { argsTracker[name] = { value: args[name], used: false }; } // create the actual RTS. Any impure modules will attach themselves to this // object. This permits many Elm programs to be embedded per document. var elm = { notify: notify, setTimeout: setTimeout, node: container, addListener: addListener, inputs: inputs, timer: timer, argsTracker: argsTracker, ports: {}, isFullscreen: function() { return display === Display.FULLSCREEN; }, isEmbed: function() { return display === Display.COMPONENT; }, isWorker: function() { return display === Display.NONE; } }; function swap(newModule) { removeListeners(listeners); var div = document.createElement('div'); var newElm = init(display, div, newModule, args, elm); inputs = []; return newElm; } function dispose() { removeListeners(listeners); inputs = []; } var Module = {}; try { Module = module.make(elm); checkInputs(elm); } catch (error) { if (typeof container.appendChild === "function") { container.appendChild(errorNode(error.message)); } else { console.error(error.message); } throw error; } if (display !== Display.NONE) { var graphicsNode = initGraphics(elm, Module); } var rootNode = { kids: inputs }; trimDeadNodes(rootNode); inputs = rootNode.kids; filterListeners(inputs, listeners); addReceivers(elm.ports); if (typeof moduleToReplace !== 'undefined') { hotSwap(moduleToReplace, elm); // rerender scene if graphics are enabled. if (typeof graphicsNode !== 'undefined') { graphicsNode.notify(0, true, 0); } } return { swap: swap, ports: elm.ports, dispose: dispose }; } function checkInputs(elm) { var argsTracker = elm.argsTracker; for (var name in argsTracker) { if (!argsTracker[name].used) { throw new Error( "Port Error:\nYou provided an argument named '" + name + "' but there is no corresponding port!\n\n" + "Maybe add a port '" + name + "' to your Elm module?\n" + "Maybe remove the '" + name + "' argument from your initialization code in JS?" ); } } } function errorNode(message) { var code = document.createElement('code'); var lines = message.split('\n'); code.appendChild(document.createTextNode(lines[0])); code.appendChild(document.createElement('br')); code.appendChild(document.createElement('br')); for (var i = 1; i < lines.length; ++i) { code.appendChild(document.createTextNode('\u00A0 \u00A0 ' + lines[i].replace(/ /g, '\u00A0 '))); code.appendChild(document.createElement('br')); } code.appendChild(document.createElement('br')); code.appendChild(document.createTextNode('Open the developer console for more details.')); return code; } //// FILTER SIGNALS //// // TODO: move this code into the signal module and create a function // Signal.initializeGraph that actually instantiates everything. function filterListeners(inputs, listeners) { loop: for (var i = listeners.length; i--; ) { var listener = listeners[i]; for (var j = inputs.length; j--; ) { if (listener.relevantInputs.indexOf(inputs[j].id) >= 0) { continue loop; } } listener.domNode.removeEventListener(listener.eventName, listener.func); } } function removeListeners(listeners) { for (var i = listeners.length; i--; ) { var listener = listeners[i]; listener.domNode.removeEventListener(listener.eventName, listener.func); } } // add receivers for built-in ports if they are defined function addReceivers(ports) { if ('title' in ports) { if (typeof ports.title === 'string') { document.title = ports.title; } else { ports.title.subscribe(function(v) { document.title = v; }); } } if ('redirect' in ports) { ports.redirect.subscribe(function(v) { if (v.length > 0) { window.location = v; } }); } } // returns a boolean representing whether the node is alive or not. function trimDeadNodes(node) { if (node.isOutput) { return true; } var liveKids = []; for (var i = node.kids.length; i--; ) { var kid = node.kids[i]; if (trimDeadNodes(kid)) { liveKids.push(kid); } } node.kids = liveKids; return liveKids.length > 0; } //// RENDERING //// function initGraphics(elm, Module) { if (!('main' in Module)) { throw new Error("'main' is missing! What do I display?!"); } var signalGraph = Module.main; // make sure the signal graph is actually a signal & extract the visual model if (!('notify' in signalGraph)) { signalGraph = Elm.Signal.make(elm).constant(signalGraph); } var initialScene = signalGraph.value; // Figure out what the render functions should be var render; var update; if (initialScene.ctor === 'Element_elm_builtin') { var Element = Elm.Native.Graphics.Element.make(elm); render = Element.render; update = Element.updateAndReplace; } else { var VirtualDom = Elm.Native.VirtualDom.make(elm); render = VirtualDom.render; update = VirtualDom.updateAndReplace; } // Add the initialScene to the DOM var container = elm.node; var node = render(initialScene); while (container.firstChild) { container.removeChild(container.firstChild); } container.appendChild(node); var _requestAnimationFrame = typeof requestAnimationFrame !== 'undefined' ? requestAnimationFrame : function(cb) { setTimeout(cb, 1000 / 60); } ; // domUpdate is called whenever the main Signal changes. // // domUpdate and drawCallback implement a small state machine in order // to schedule only 1 draw per animation frame. This enforces that // once draw has been called, it will not be called again until the // next frame. // // drawCallback is scheduled whenever // 1. The state transitions from PENDING_REQUEST to EXTRA_REQUEST, or // 2. The state transitions from NO_REQUEST to PENDING_REQUEST // // Invariants: // 1. In the NO_REQUEST state, there is never a scheduled drawCallback. // 2. In the PENDING_REQUEST and EXTRA_REQUEST states, there is always exactly 1 // scheduled drawCallback. var NO_REQUEST = 0; var PENDING_REQUEST = 1; var EXTRA_REQUEST = 2; var state = NO_REQUEST; var savedScene = initialScene; var scheduledScene = initialScene; function domUpdate(newScene) { scheduledScene = newScene; switch (state) { case NO_REQUEST: _requestAnimationFrame(drawCallback); state = PENDING_REQUEST; return; case PENDING_REQUEST: state = PENDING_REQUEST; return; case EXTRA_REQUEST: state = PENDING_REQUEST; return; } } function drawCallback() { switch (state) { case NO_REQUEST: // This state should not be possible. How can there be no // request, yet somehow we are actively fulfilling a // request? throw new Error( 'Unexpected draw callback.\n' + 'Please report this to .' ); case PENDING_REQUEST: // At this point, we do not *know* that another frame is // needed, but we make an extra request to rAF just in // case. It's possible to drop a frame if rAF is called // too late, so we just do it preemptively. _requestAnimationFrame(drawCallback); state = EXTRA_REQUEST; // There's also stuff we definitely need to draw. draw(); return; case EXTRA_REQUEST: // Turns out the extra request was not needed, so we will // stop calling rAF. No reason to call it all the time if // no one needs it. state = NO_REQUEST; return; } } function draw() { update(elm.node.firstChild, savedScene, scheduledScene); if (elm.Native.Window) { elm.Native.Window.values.resizeIfNeeded(); } savedScene = scheduledScene; } var renderer = Elm.Native.Signal.make(elm).output('main', domUpdate, signalGraph); // must check for resize after 'renderer' is created so // that changes show up. if (elm.Native.Window) { elm.Native.Window.values.resizeIfNeeded(); } return renderer; } //// HOT SWAPPING //// // Returns boolean indicating if the swap was successful. // Requires that the two signal graphs have exactly the same // structure. function hotSwap(from, to) { function similar(nodeOld, nodeNew) { if (nodeOld.id !== nodeNew.id) { return false; } if (nodeOld.isOutput) { return nodeNew.isOutput; } return nodeOld.kids.length === nodeNew.kids.length; } function swap(nodeOld, nodeNew) { nodeNew.value = nodeOld.value; return true; } var canSwap = depthFirstTraversals(similar, from.inputs, to.inputs); if (canSwap) { depthFirstTraversals(swap, from.inputs, to.inputs); } from.node.parentNode.replaceChild(to.node, from.node); return canSwap; } // Returns false if the node operation f ever fails. function depthFirstTraversals(f, queueOld, queueNew) { if (queueOld.length !== queueNew.length) { return false; } queueOld = queueOld.slice(0); queueNew = queueNew.slice(0); var seen = []; while (queueOld.length > 0 && queueNew.length > 0) { var nodeOld = queueOld.pop(); var nodeNew = queueNew.pop(); if (seen.indexOf(nodeOld.id) < 0) { if (!f(nodeOld, nodeNew)) { return false; } queueOld = queueOld.concat(nodeOld.kids || []); queueNew = queueNew.concat(nodeNew.kids || []); seen.push(nodeOld.id); } } return true; } }()); function F2(fun) { function wrapper(a) { return function(b) { return fun(a,b); }; } wrapper.arity = 2; wrapper.func = fun; return wrapper; } function F3(fun) { function wrapper(a) { return function(b) { return function(c) { return fun(a, b, c); }; }; } wrapper.arity = 3; wrapper.func = fun; return wrapper; } function F4(fun) { function wrapper(a) { return function(b) { return function(c) { return function(d) { return fun(a, b, c, d); }; }; }; } wrapper.arity = 4; wrapper.func = fun; return wrapper; } function F5(fun) { function wrapper(a) { return function(b) { return function(c) { return function(d) { return function(e) { return fun(a, b, c, d, e); }; }; }; }; } wrapper.arity = 5; wrapper.func = fun; return wrapper; } function F6(fun) { function wrapper(a) { return function(b) { return function(c) { return function(d) { return function(e) { return function(f) { return fun(a, b, c, d, e, f); }; }; }; }; }; } wrapper.arity = 6; wrapper.func = fun; return wrapper; } function F7(fun) { function wrapper(a) { return function(b) { return function(c) { return function(d) { return function(e) { return function(f) { return function(g) { return fun(a, b, c, d, e, f, g); }; }; }; }; }; }; } wrapper.arity = 7; wrapper.func = fun; return wrapper; } function F8(fun) { function wrapper(a) { return function(b) { return function(c) { return function(d) { return function(e) { return function(f) { return function(g) { return function(h) { return fun(a, b, c, d, e, f, g, h); }; }; }; }; }; }; }; } wrapper.arity = 8; wrapper.func = fun; return wrapper; } function F9(fun) { function wrapper(a) { return function(b) { return function(c) { return function(d) { return function(e) { return function(f) { return function(g) { return function(h) { return function(i) { return fun(a, b, c, d, e, f, g, h, i); }; }; }; }; }; }; }; }; } wrapper.arity = 9; wrapper.func = fun; return wrapper; } function A2(fun, a, b) { return fun.arity === 2 ? fun.func(a, b) : fun(a)(b); } function A3(fun, a, b, c) { return fun.arity === 3 ? fun.func(a, b, c) : fun(a)(b)(c); } function A4(fun, a, b, c, d) { return fun.arity === 4 ? fun.func(a, b, c, d) : fun(a)(b)(c)(d); } function A5(fun, a, b, c, d, e) { return fun.arity === 5 ? fun.func(a, b, c, d, e) : fun(a)(b)(c)(d)(e); } function A6(fun, a, b, c, d, e, f) { return fun.arity === 6 ? fun.func(a, b, c, d, e, f) : fun(a)(b)(c)(d)(e)(f); } function A7(fun, a, b, c, d, e, f, g) { return fun.arity === 7 ? fun.func(a, b, c, d, e, f, g) : fun(a)(b)(c)(d)(e)(f)(g); } function A8(fun, a, b, c, d, e, f, g, h) { return fun.arity === 8 ? fun.func(a, b, c, d, e, f, g, h) : fun(a)(b)(c)(d)(e)(f)(g)(h); } function A9(fun, a, b, c, d, e, f, g, h, i) { return fun.arity === 9 ? fun.func(a, b, c, d, e, f, g, h, i) : fun(a)(b)(c)(d)(e)(f)(g)(h)(i); } } Elm.Native = Elm.Native || {}; Elm.Native.Utils = {}; Elm.Native.Utils.make = function(localRuntime) { localRuntime.Native = localRuntime.Native || {}; localRuntime.Native.Utils = localRuntime.Native.Utils || {}; if (localRuntime.Native.Utils.values) { return localRuntime.Native.Utils.values; } // COMPARISONS function eq(l, r) { var stack = [{'x': l, 'y': r}]; while (stack.length > 0) { var front = stack.pop(); var x = front.x; var y = front.y; if (x === y) { continue; } if (typeof x === 'object') { var c = 0; for (var i in x) { ++c; if (i in y) { if (i !== 'ctor') { stack.push({ 'x': x[i], 'y': y[i] }); } } else { return false; } } if ('ctor' in x) { stack.push({'x': x.ctor, 'y': y.ctor}); } if (c !== Object.keys(y).length) { return false; } } else if (typeof x === 'function') { throw new Error('Equality error: general function equality is ' + 'undecidable, and therefore, unsupported'); } else { return false; } } return true; } // code in Generate/JavaScript.hs depends on the particular // integer values assigned to LT, EQ, and GT var LT = -1, EQ = 0, GT = 1, ord = ['LT', 'EQ', 'GT']; function compare(x, y) { return { ctor: ord[cmp(x, y) + 1] }; } function cmp(x, y) { var ord; if (typeof x !== 'object') { return x === y ? EQ : x < y ? LT : GT; } else if (x.isChar) { var a = x.toString(); var b = y.toString(); return a === b ? EQ : a < b ? LT : GT; } else if (x.ctor === '::' || x.ctor === '[]') { while (true) { if (x.ctor === '[]' && y.ctor === '[]') { return EQ; } if (x.ctor !== y.ctor) { return x.ctor === '[]' ? LT : GT; } ord = cmp(x._0, y._0); if (ord !== EQ) { return ord; } x = x._1; y = y._1; } } else if (x.ctor.slice(0, 6) === '_Tuple') { var n = x.ctor.slice(6) - 0; var err = 'cannot compare tuples with more than 6 elements.'; if (n === 0) return EQ; if (n >= 1) { ord = cmp(x._0, y._0); if (ord !== EQ) return ord; if (n >= 2) { ord = cmp(x._1, y._1); if (ord !== EQ) return ord; if (n >= 3) { ord = cmp(x._2, y._2); if (ord !== EQ) return ord; if (n >= 4) { ord = cmp(x._3, y._3); if (ord !== EQ) return ord; if (n >= 5) { ord = cmp(x._4, y._4); if (ord !== EQ) return ord; if (n >= 6) { ord = cmp(x._5, y._5); if (ord !== EQ) return ord; if (n >= 7) throw new Error('Comparison error: ' + err); } } } } } } return EQ; } else { throw new Error('Comparison error: comparison is only defined on ints, ' + 'floats, times, chars, strings, lists of comparable values, ' + 'and tuples of comparable values.'); } } // TUPLES var Tuple0 = { ctor: '_Tuple0' }; function Tuple2(x, y) { return { ctor: '_Tuple2', _0: x, _1: y }; } // LITERALS function chr(c) { var x = new String(c); x.isChar = true; return x; } function txt(str) { var t = new String(str); t.text = true; return t; } // GUID var count = 0; function guid(_) { return count++; } // RECORDS function update(oldRecord, updatedFields) { var newRecord = {}; for (var key in oldRecord) { var value = (key in updatedFields) ? updatedFields[key] : oldRecord[key]; newRecord[key] = value; } return newRecord; } // MOUSE COORDINATES function getXY(e) { var posx = 0; var posy = 0; if (e.pageX || e.pageY) { posx = e.pageX; posy = e.pageY; } else if (e.clientX || e.clientY) { posx = e.clientX + document.body.scrollLeft + document.documentElement.scrollLeft; posy = e.clientY + document.body.scrollTop + document.documentElement.scrollTop; } if (localRuntime.isEmbed()) { var rect = localRuntime.node.getBoundingClientRect(); var relx = rect.left + document.body.scrollLeft + document.documentElement.scrollLeft; var rely = rect.top + document.body.scrollTop + document.documentElement.scrollTop; // TODO: figure out if there is a way to avoid rounding here posx = posx - Math.round(relx) - localRuntime.node.clientLeft; posy = posy - Math.round(rely) - localRuntime.node.clientTop; } return Tuple2(posx, posy); } //// LIST STUFF //// var Nil = { ctor: '[]' }; function Cons(hd, tl) { return { ctor: '::', _0: hd, _1: tl }; } function list(arr) { var out = Nil; for (var i = arr.length; i--; ) { out = Cons(arr[i], out); } return out; } function range(lo, hi) { var list = Nil; if (lo <= hi) { do { list = Cons(hi, list); } while (hi-- > lo); } return list; } function append(xs, ys) { // append Strings if (typeof xs === 'string') { return xs + ys; } // append Text if (xs.ctor.slice(0, 5) === 'Text:') { return { ctor: 'Text:Append', _0: xs, _1: ys }; } // append Lists if (xs.ctor === '[]') { return ys; } var root = Cons(xs._0, Nil); var curr = root; xs = xs._1; while (xs.ctor !== '[]') { curr._1 = Cons(xs._0, Nil); xs = xs._1; curr = curr._1; } curr._1 = ys; return root; } // CRASHES function crash(moduleName, region) { return function(message) { throw new Error( 'Ran into a `Debug.crash` in module `' + moduleName + '` ' + regionToString(region) + '\n' + 'The message provided by the code author is:\n\n ' + message ); }; } function crashCase(moduleName, region, value) { return function(message) { throw new Error( 'Ran into a `Debug.crash` in module `' + moduleName + '`\n\n' + 'This was caused by the `case` expression ' + regionToString(region) + '.\n' + 'One of the branches ended with a crash and the following value got through:\n\n ' + toString(value) + '\n\n' + 'The message provided by the code author is:\n\n ' + message ); }; } function regionToString(region) { if (region.start.line == region.end.line) { return 'on line ' + region.start.line; } return 'between lines ' + region.start.line + ' and ' + region.end.line; } // BAD PORTS function badPort(expected, received) { throw new Error( 'Runtime error when sending values through a port.\n\n' + 'Expecting ' + expected + ' but was given ' + formatValue(received) ); } function formatValue(value) { // Explicity format undefined values as "undefined" // because JSON.stringify(undefined) unhelpfully returns "" return (value === undefined) ? "undefined" : JSON.stringify(value); } // TO STRING var _Array; var Dict; var List; var toString = function(v) { var type = typeof v; if (type === 'function') { var name = v.func ? v.func.name : v.name; return ''; } else if (type === 'boolean') { return v ? 'True' : 'False'; } else if (type === 'number') { return v + ''; } else if ((v instanceof String) && v.isChar) { return '\'' + addSlashes(v, true) + '\''; } else if (type === 'string') { return '"' + addSlashes(v, false) + '"'; } else if (type === 'object' && 'ctor' in v) { if (v.ctor.substring(0, 6) === '_Tuple') { var output = []; for (var k in v) { if (k === 'ctor') continue; output.push(toString(v[k])); } return '(' + output.join(',') + ')'; } else if (v.ctor === '_Array') { if (!_Array) { _Array = Elm.Array.make(localRuntime); } var list = _Array.toList(v); return 'Array.fromList ' + toString(list); } else if (v.ctor === '::') { var output = '[' + toString(v._0); v = v._1; while (v.ctor === '::') { output += ',' + toString(v._0); v = v._1; } return output + ']'; } else if (v.ctor === '[]') { return '[]'; } else if (v.ctor === 'RBNode_elm_builtin' || v.ctor === 'RBEmpty_elm_builtin' || v.ctor === 'Set_elm_builtin') { if (!Dict) { Dict = Elm.Dict.make(localRuntime); } var list; var name; if (v.ctor === 'Set_elm_builtin') { if (!List) { List = Elm.List.make(localRuntime); } name = 'Set'; list = A2(List.map, function(x) {return x._0; }, Dict.toList(v._0)); } else { name = 'Dict'; list = Dict.toList(v); } return name + '.fromList ' + toString(list); } else if (v.ctor.slice(0, 5) === 'Text:') { return ''; } else if (v.ctor === 'Element_elm_builtin') { return '' } else if (v.ctor === 'Form_elm_builtin') { return '
' } else { var output = ''; for (var i in v) { if (i === 'ctor') continue; var str = toString(v[i]); var parenless = str[0] === '{' || str[0] === '<' || str.indexOf(' ') < 0; output += ' ' + (parenless ? str : '(' + str + ')'); } return v.ctor + output; } } else if (type === 'object' && 'notify' in v && 'id' in v) { return ''; } else if (type === 'object') { var output = []; for (var k in v) { output.push(k + ' = ' + toString(v[k])); } if (output.length === 0) { return '{}'; } return '{ ' + output.join(', ') + ' }'; } return ''; }; function addSlashes(str, isChar) { var s = str.replace(/\\/g, '\\\\') .replace(/\n/g, '\\n') .replace(/\t/g, '\\t') .replace(/\r/g, '\\r') .replace(/\v/g, '\\v') .replace(/\0/g, '\\0'); if (isChar) { return s.replace(/\'/g, '\\\''); } else { return s.replace(/\"/g, '\\"'); } } return localRuntime.Native.Utils.values = { eq: eq, cmp: cmp, compare: F2(compare), Tuple0: Tuple0, Tuple2: Tuple2, chr: chr, txt: txt, update: update, guid: guid, getXY: getXY, Nil: Nil, Cons: Cons, list: list, range: range, append: F2(append), crash: crash, crashCase: crashCase, badPort: badPort, toString: toString }; }; Elm.Basics = Elm.Basics || {}; Elm.Basics.make = function (_elm) { "use strict"; _elm.Basics = _elm.Basics || {}; if (_elm.Basics.values) return _elm.Basics.values; var _U = Elm.Native.Utils.make(_elm),$Native$Basics = Elm.Native.Basics.make(_elm),$Native$Utils = Elm.Native.Utils.make(_elm); var _op = {}; var uncurry = F2(function (f,_p0) { var _p1 = _p0;return A2(f,_p1._0,_p1._1);}); var curry = F3(function (f,a,b) { return f({ctor: "_Tuple2",_0: a,_1: b});}); var flip = F3(function (f,b,a) { return A2(f,a,b);}); var snd = function (_p2) { var _p3 = _p2;return _p3._1;}; var fst = function (_p4) { var _p5 = _p4;return _p5._0;}; var always = F2(function (a,_p6) { return a;}); var identity = function (x) { return x;}; _op["<|"] = F2(function (f,x) { return f(x);}); _op["|>"] = F2(function (x,f) { return f(x);}); _op[">>"] = F3(function (f,g,x) { return g(f(x));}); _op["<<"] = F3(function (g,f,x) { return g(f(x));}); _op["++"] = $Native$Utils.append; var toString = $Native$Utils.toString; var isInfinite = $Native$Basics.isInfinite; var isNaN = $Native$Basics.isNaN; var toFloat = $Native$Basics.toFloat; var ceiling = $Native$Basics.ceiling; var floor = $Native$Basics.floor; var truncate = $Native$Basics.truncate; var round = $Native$Basics.round; var not = $Native$Basics.not; var xor = $Native$Basics.xor; _op["||"] = $Native$Basics.or; _op["&&"] = $Native$Basics.and; var max = $Native$Basics.max; var min = $Native$Basics.min; var GT = {ctor: "GT"}; var EQ = {ctor: "EQ"}; var LT = {ctor: "LT"}; var compare = $Native$Basics.compare; _op[">="] = $Native$Basics.ge; _op["<="] = $Native$Basics.le; _op[">"] = $Native$Basics.gt; _op["<"] = $Native$Basics.lt; _op["/="] = $Native$Basics.neq; _op["=="] = $Native$Basics.eq; var e = $Native$Basics.e; var pi = $Native$Basics.pi; var clamp = $Native$Basics.clamp; var logBase = $Native$Basics.logBase; var abs = $Native$Basics.abs; var negate = $Native$Basics.negate; var sqrt = $Native$Basics.sqrt; var atan2 = $Native$Basics.atan2; var atan = $Native$Basics.atan; var asin = $Native$Basics.asin; var acos = $Native$Basics.acos; var tan = $Native$Basics.tan; var sin = $Native$Basics.sin; var cos = $Native$Basics.cos; _op["^"] = $Native$Basics.exp; _op["%"] = $Native$Basics.mod; var rem = $Native$Basics.rem; _op["//"] = $Native$Basics.div; _op["/"] = $Native$Basics.floatDiv; _op["*"] = $Native$Basics.mul; _op["-"] = $Native$Basics.sub; _op["+"] = $Native$Basics.add; var toPolar = $Native$Basics.toPolar; var fromPolar = $Native$Basics.fromPolar; var turns = $Native$Basics.turns; var degrees = $Native$Basics.degrees; var radians = function (t) { return t;}; return _elm.Basics.values = {_op: _op ,max: max ,min: min ,compare: compare ,not: not ,xor: xor ,rem: rem ,negate: negate ,abs: abs ,sqrt: sqrt ,clamp: clamp ,logBase: logBase ,e: e ,pi: pi ,cos: cos ,sin: sin ,tan: tan ,acos: acos ,asin: asin ,atan: atan ,atan2: atan2 ,round: round ,floor: floor ,ceiling: ceiling ,truncate: truncate ,toFloat: toFloat ,degrees: degrees ,radians: radians ,turns: turns ,toPolar: toPolar ,fromPolar: fromPolar ,isNaN: isNaN ,isInfinite: isInfinite ,toString: toString ,fst: fst ,snd: snd ,identity: identity ,always: always ,flip: flip ,curry: curry ,uncurry: uncurry ,LT: LT ,EQ: EQ ,GT: GT}; }; Elm.Maybe = Elm.Maybe || {}; Elm.Maybe.make = function (_elm) { "use strict"; _elm.Maybe = _elm.Maybe || {}; if (_elm.Maybe.values) return _elm.Maybe.values; var _U = Elm.Native.Utils.make(_elm); var _op = {}; var withDefault = F2(function ($default,maybe) { var _p0 = maybe;if (_p0.ctor === "Just") { return _p0._0;} else { return $default;}}); var Nothing = {ctor: "Nothing"}; var oneOf = function (maybes) { oneOf: while (true) { var _p1 = maybes; if (_p1.ctor === "[]") { return Nothing; } else { var _p3 = _p1._0; var _p2 = _p3; if (_p2.ctor === "Nothing") { var _v3 = _p1._1; maybes = _v3; continue oneOf; } else { return _p3; } } } }; var andThen = F2(function (maybeValue,callback) { var _p4 = maybeValue; if (_p4.ctor === "Just") { return callback(_p4._0); } else { return Nothing; } }); var Just = function (a) { return {ctor: "Just",_0: a};}; var map = F2(function (f,maybe) { var _p5 = maybe;if (_p5.ctor === "Just") { return Just(f(_p5._0));} else { return Nothing;}}); var map2 = F3(function (func,ma,mb) { var _p6 = {ctor: "_Tuple2",_0: ma,_1: mb}; if (_p6.ctor === "_Tuple2" && _p6._0.ctor === "Just" && _p6._1.ctor === "Just") { return Just(A2(func,_p6._0._0,_p6._1._0)); } else { return Nothing; } }); var map3 = F4(function (func,ma,mb,mc) { var _p7 = {ctor: "_Tuple3",_0: ma,_1: mb,_2: mc}; if (_p7.ctor === "_Tuple3" && _p7._0.ctor === "Just" && _p7._1.ctor === "Just" && _p7._2.ctor === "Just") { return Just(A3(func,_p7._0._0,_p7._1._0,_p7._2._0)); } else { return Nothing; } }); var map4 = F5(function (func,ma,mb,mc,md) { var _p8 = {ctor: "_Tuple4",_0: ma,_1: mb,_2: mc,_3: md}; if (_p8.ctor === "_Tuple4" && _p8._0.ctor === "Just" && _p8._1.ctor === "Just" && _p8._2.ctor === "Just" && _p8._3.ctor === "Just") { return Just(A4(func,_p8._0._0,_p8._1._0,_p8._2._0,_p8._3._0)); } else { return Nothing; } }); var map5 = F6(function (func,ma,mb,mc,md,me) { var _p9 = {ctor: "_Tuple5",_0: ma,_1: mb,_2: mc,_3: md,_4: me}; if (_p9.ctor === "_Tuple5" && _p9._0.ctor === "Just" && _p9._1.ctor === "Just" && _p9._2.ctor === "Just" && _p9._3.ctor === "Just" && _p9._4.ctor === "Just") { return Just(A5(func,_p9._0._0,_p9._1._0,_p9._2._0,_p9._3._0,_p9._4._0)); } else { return Nothing; } }); return _elm.Maybe.values = {_op: _op ,andThen: andThen ,map: map ,map2: map2 ,map3: map3 ,map4: map4 ,map5: map5 ,withDefault: withDefault ,oneOf: oneOf ,Just: Just ,Nothing: Nothing}; }; Elm.Native.List = {}; Elm.Native.List.make = function(localRuntime) { localRuntime.Native = localRuntime.Native || {}; localRuntime.Native.List = localRuntime.Native.List || {}; if (localRuntime.Native.List.values) { return localRuntime.Native.List.values; } if ('values' in Elm.Native.List) { return localRuntime.Native.List.values = Elm.Native.List.values; } var Utils = Elm.Native.Utils.make(localRuntime); var Nil = Utils.Nil; var Cons = Utils.Cons; var fromArray = Utils.list; function toArray(xs) { var out = []; while (xs.ctor !== '[]') { out.push(xs._0); xs = xs._1; } return out; } // f defined similarly for both foldl and foldr (NB: different from Haskell) // ie, foldl : (a -> b -> b) -> b -> [a] -> b function foldl(f, b, xs) { var acc = b; while (xs.ctor !== '[]') { acc = A2(f, xs._0, acc); xs = xs._1; } return acc; } function foldr(f, b, xs) { var arr = toArray(xs); var acc = b; for (var i = arr.length; i--; ) { acc = A2(f, arr[i], acc); } return acc; } function map2(f, xs, ys) { var arr = []; while (xs.ctor !== '[]' && ys.ctor !== '[]') { arr.push(A2(f, xs._0, ys._0)); xs = xs._1; ys = ys._1; } return fromArray(arr); } function map3(f, xs, ys, zs) { var arr = []; while (xs.ctor !== '[]' && ys.ctor !== '[]' && zs.ctor !== '[]') { arr.push(A3(f, xs._0, ys._0, zs._0)); xs = xs._1; ys = ys._1; zs = zs._1; } return fromArray(arr); } function map4(f, ws, xs, ys, zs) { var arr = []; while ( ws.ctor !== '[]' && xs.ctor !== '[]' && ys.ctor !== '[]' && zs.ctor !== '[]') { arr.push(A4(f, ws._0, xs._0, ys._0, zs._0)); ws = ws._1; xs = xs._1; ys = ys._1; zs = zs._1; } return fromArray(arr); } function map5(f, vs, ws, xs, ys, zs) { var arr = []; while ( vs.ctor !== '[]' && ws.ctor !== '[]' && xs.ctor !== '[]' && ys.ctor !== '[]' && zs.ctor !== '[]') { arr.push(A5(f, vs._0, ws._0, xs._0, ys._0, zs._0)); vs = vs._1; ws = ws._1; xs = xs._1; ys = ys._1; zs = zs._1; } return fromArray(arr); } function sortBy(f, xs) { return fromArray(toArray(xs).sort(function(a, b) { return Utils.cmp(f(a), f(b)); })); } function sortWith(f, xs) { return fromArray(toArray(xs).sort(function(a, b) { var ord = f(a)(b).ctor; return ord === 'EQ' ? 0 : ord === 'LT' ? -1 : 1; })); } function take(n, xs) { var arr = []; while (xs.ctor !== '[]' && n > 0) { arr.push(xs._0); xs = xs._1; --n; } return fromArray(arr); } Elm.Native.List.values = { Nil: Nil, Cons: Cons, cons: F2(Cons), toArray: toArray, fromArray: fromArray, foldl: F3(foldl), foldr: F3(foldr), map2: F3(map2), map3: F4(map3), map4: F5(map4), map5: F6(map5), sortBy: F2(sortBy), sortWith: F2(sortWith), take: F2(take) }; return localRuntime.Native.List.values = Elm.Native.List.values; }; Elm.List = Elm.List || {}; Elm.List.make = function (_elm) { "use strict"; _elm.List = _elm.List || {}; if (_elm.List.values) return _elm.List.values; var _U = Elm.Native.Utils.make(_elm),$Basics = Elm.Basics.make(_elm),$Maybe = Elm.Maybe.make(_elm),$Native$List = Elm.Native.List.make(_elm); var _op = {}; var sortWith = $Native$List.sortWith; var sortBy = $Native$List.sortBy; var sort = function (xs) { return A2(sortBy,$Basics.identity,xs);}; var drop = F2(function (n,list) { drop: while (true) if (_U.cmp(n,0) < 1) return list; else { var _p0 = list; if (_p0.ctor === "[]") { return list; } else { var _v1 = n - 1,_v2 = _p0._1; n = _v1; list = _v2; continue drop; } } }); var take = $Native$List.take; var map5 = $Native$List.map5; var map4 = $Native$List.map4; var map3 = $Native$List.map3; var map2 = $Native$List.map2; var any = F2(function (isOkay,list) { any: while (true) { var _p1 = list; if (_p1.ctor === "[]") { return false; } else { if (isOkay(_p1._0)) return true; else { var _v4 = isOkay,_v5 = _p1._1; isOkay = _v4; list = _v5; continue any; } } } }); var all = F2(function (isOkay,list) { return $Basics.not(A2(any,function (_p2) { return $Basics.not(isOkay(_p2));},list));}); var foldr = $Native$List.foldr; var foldl = $Native$List.foldl; var length = function (xs) { return A3(foldl,F2(function (_p3,i) { return i + 1;}),0,xs);}; var sum = function (numbers) { return A3(foldl,F2(function (x,y) { return x + y;}),0,numbers);}; var product = function (numbers) { return A3(foldl,F2(function (x,y) { return x * y;}),1,numbers);}; var maximum = function (list) { var _p4 = list; if (_p4.ctor === "::") { return $Maybe.Just(A3(foldl,$Basics.max,_p4._0,_p4._1)); } else { return $Maybe.Nothing; } }; var minimum = function (list) { var _p5 = list; if (_p5.ctor === "::") { return $Maybe.Just(A3(foldl,$Basics.min,_p5._0,_p5._1)); } else { return $Maybe.Nothing; } }; var indexedMap = F2(function (f,xs) { return A3(map2,f,_U.range(0,length(xs) - 1),xs);}); var member = F2(function (x,xs) { return A2(any,function (a) { return _U.eq(a,x);},xs);}); var isEmpty = function (xs) { var _p6 = xs;if (_p6.ctor === "[]") { return true;} else { return false;}}; var tail = function (list) { var _p7 = list;if (_p7.ctor === "::") { return $Maybe.Just(_p7._1);} else { return $Maybe.Nothing;}}; var head = function (list) { var _p8 = list;if (_p8.ctor === "::") { return $Maybe.Just(_p8._0);} else { return $Maybe.Nothing;}}; _op["::"] = $Native$List.cons; var map = F2(function (f,xs) { return A3(foldr,F2(function (x,acc) { return A2(_op["::"],f(x),acc);}),_U.list([]),xs);}); var filter = F2(function (pred,xs) { var conditionalCons = F2(function (x,xs$) { return pred(x) ? A2(_op["::"],x,xs$) : xs$;}); return A3(foldr,conditionalCons,_U.list([]),xs); }); var maybeCons = F3(function (f,mx,xs) { var _p9 = f(mx);if (_p9.ctor === "Just") { return A2(_op["::"],_p9._0,xs);} else { return xs;}}); var filterMap = F2(function (f,xs) { return A3(foldr,maybeCons(f),_U.list([]),xs);}); var reverse = function (list) { return A3(foldl,F2(function (x,y) { return A2(_op["::"],x,y);}),_U.list([]),list);}; var scanl = F3(function (f,b,xs) { var scan1 = F2(function (x,accAcc) { var _p10 = accAcc; if (_p10.ctor === "::") { return A2(_op["::"],A2(f,x,_p10._0),accAcc); } else { return _U.list([]); } }); return reverse(A3(foldl,scan1,_U.list([b]),xs)); }); var append = F2(function (xs,ys) { var _p11 = ys; if (_p11.ctor === "[]") { return xs; } else { return A3(foldr,F2(function (x,y) { return A2(_op["::"],x,y);}),ys,xs); } }); var concat = function (lists) { return A3(foldr,append,_U.list([]),lists);}; var concatMap = F2(function (f,list) { return concat(A2(map,f,list));}); var partition = F2(function (pred,list) { var step = F2(function (x,_p12) { var _p13 = _p12; var _p15 = _p13._0; var _p14 = _p13._1; return pred(x) ? {ctor: "_Tuple2",_0: A2(_op["::"],x,_p15),_1: _p14} : {ctor: "_Tuple2",_0: _p15,_1: A2(_op["::"],x,_p14)}; }); return A3(foldr,step,{ctor: "_Tuple2",_0: _U.list([]),_1: _U.list([])},list); }); var unzip = function (pairs) { var step = F2(function (_p17,_p16) { var _p18 = _p17; var _p19 = _p16; return {ctor: "_Tuple2",_0: A2(_op["::"],_p18._0,_p19._0),_1: A2(_op["::"],_p18._1,_p19._1)}; }); return A3(foldr,step,{ctor: "_Tuple2",_0: _U.list([]),_1: _U.list([])},pairs); }; var intersperse = F2(function (sep,xs) { var _p20 = xs; if (_p20.ctor === "[]") { return _U.list([]); } else { var step = F2(function (x,rest) { return A2(_op["::"],sep,A2(_op["::"],x,rest));}); var spersed = A3(foldr,step,_U.list([]),_p20._1); return A2(_op["::"],_p20._0,spersed); } }); var repeatHelp = F3(function (result,n,value) { repeatHelp: while (true) if (_U.cmp(n,0) < 1) return result; else { var _v18 = A2(_op["::"],value,result),_v19 = n - 1,_v20 = value; result = _v18; n = _v19; value = _v20; continue repeatHelp; } }); var repeat = F2(function (n,value) { return A3(repeatHelp,_U.list([]),n,value);}); return _elm.List.values = {_op: _op ,isEmpty: isEmpty ,length: length ,reverse: reverse ,member: member ,head: head ,tail: tail ,filter: filter ,take: take ,drop: drop ,repeat: repeat ,append: append ,concat: concat ,intersperse: intersperse ,partition: partition ,unzip: unzip ,map: map ,map2: map2 ,map3: map3 ,map4: map4 ,map5: map5 ,filterMap: filterMap ,concatMap: concatMap ,indexedMap: indexedMap ,foldr: foldr ,foldl: foldl ,sum: sum ,product: product ,maximum: maximum ,minimum: minimum ,all: all ,any: any ,scanl: scanl ,sort: sort ,sortBy: sortBy ,sortWith: sortWith}; }; Elm.Array = Elm.Array || {}; Elm.Array.make = function (_elm) { "use strict"; _elm.Array = _elm.Array || {}; if (_elm.Array.values) return _elm.Array.values; var _U = Elm.Native.Utils.make(_elm), $Basics = Elm.Basics.make(_elm), $List = Elm.List.make(_elm), $Maybe = Elm.Maybe.make(_elm), $Native$Array = Elm.Native.Array.make(_elm); var _op = {}; var append = $Native$Array.append; var length = $Native$Array.length; var isEmpty = function (array) { return _U.eq(length(array),0);}; var slice = $Native$Array.slice; var set = $Native$Array.set; var get = F2(function (i,array) { return _U.cmp(0,i) < 1 && _U.cmp(i,$Native$Array.length(array)) < 0 ? $Maybe.Just(A2($Native$Array.get,i,array)) : $Maybe.Nothing; }); var push = $Native$Array.push; var empty = $Native$Array.empty; var filter = F2(function (isOkay,arr) { var update = F2(function (x,xs) { return isOkay(x) ? A2($Native$Array.push,x,xs) : xs;}); return A3($Native$Array.foldl,update,$Native$Array.empty,arr); }); var foldr = $Native$Array.foldr; var foldl = $Native$Array.foldl; var indexedMap = $Native$Array.indexedMap; var map = $Native$Array.map; var toIndexedList = function (array) { return A3($List.map2, F2(function (v0,v1) { return {ctor: "_Tuple2",_0: v0,_1: v1};}), _U.range(0,$Native$Array.length(array) - 1), $Native$Array.toList(array)); }; var toList = $Native$Array.toList; var fromList = $Native$Array.fromList; var initialize = $Native$Array.initialize; var repeat = F2(function (n,e) { return A2(initialize,n,$Basics.always(e));}); var Array = {ctor: "Array"}; return _elm.Array.values = {_op: _op ,empty: empty ,repeat: repeat ,initialize: initialize ,fromList: fromList ,isEmpty: isEmpty ,length: length ,push: push ,append: append ,get: get ,set: set ,slice: slice ,toList: toList ,toIndexedList: toIndexedList ,map: map ,indexedMap: indexedMap ,filter: filter ,foldl: foldl ,foldr: foldr}; }; Elm.Native.Char = {}; Elm.Native.Char.make = function(localRuntime) { localRuntime.Native = localRuntime.Native || {}; localRuntime.Native.Char = localRuntime.Native.Char || {}; if (localRuntime.Native.Char.values) { return localRuntime.Native.Char.values; } var Utils = Elm.Native.Utils.make(localRuntime); return localRuntime.Native.Char.values = { fromCode: function(c) { return Utils.chr(String.fromCharCode(c)); }, toCode: function(c) { return c.charCodeAt(0); }, toUpper: function(c) { return Utils.chr(c.toUpperCase()); }, toLower: function(c) { return Utils.chr(c.toLowerCase()); }, toLocaleUpper: function(c) { return Utils.chr(c.toLocaleUpperCase()); }, toLocaleLower: function(c) { return Utils.chr(c.toLocaleLowerCase()); } }; }; Elm.Char = Elm.Char || {}; Elm.Char.make = function (_elm) { "use strict"; _elm.Char = _elm.Char || {}; if (_elm.Char.values) return _elm.Char.values; var _U = Elm.Native.Utils.make(_elm),$Basics = Elm.Basics.make(_elm),$Native$Char = Elm.Native.Char.make(_elm); var _op = {}; var fromCode = $Native$Char.fromCode; var toCode = $Native$Char.toCode; var toLocaleLower = $Native$Char.toLocaleLower; var toLocaleUpper = $Native$Char.toLocaleUpper; var toLower = $Native$Char.toLower; var toUpper = $Native$Char.toUpper; var isBetween = F3(function (low,high,$char) { var code = toCode($char);return _U.cmp(code,toCode(low)) > -1 && _U.cmp(code,toCode(high)) < 1;}); var isUpper = A2(isBetween,_U.chr("A"),_U.chr("Z")); var isLower = A2(isBetween,_U.chr("a"),_U.chr("z")); var isDigit = A2(isBetween,_U.chr("0"),_U.chr("9")); var isOctDigit = A2(isBetween,_U.chr("0"),_U.chr("7")); var isHexDigit = function ($char) { return isDigit($char) || (A3(isBetween,_U.chr("a"),_U.chr("f"),$char) || A3(isBetween,_U.chr("A"),_U.chr("F"),$char)); }; return _elm.Char.values = {_op: _op ,isUpper: isUpper ,isLower: isLower ,isDigit: isDigit ,isOctDigit: isOctDigit ,isHexDigit: isHexDigit ,toUpper: toUpper ,toLower: toLower ,toLocaleUpper: toLocaleUpper ,toLocaleLower: toLocaleLower ,toCode: toCode ,fromCode: fromCode}; }; Elm.Native.Color = {}; Elm.Native.Color.make = function(localRuntime) { localRuntime.Native = localRuntime.Native || {}; localRuntime.Native.Color = localRuntime.Native.Color || {}; if (localRuntime.Native.Color.values) { return localRuntime.Native.Color.values; } function toCss(c) { var format = ''; var colors = ''; if (c.ctor === 'RGBA') { format = 'rgb'; colors = c._0 + ', ' + c._1 + ', ' + c._2; } else { format = 'hsl'; colors = (c._0 * 180 / Math.PI) + ', ' + (c._1 * 100) + '%, ' + (c._2 * 100) + '%'; } if (c._3 === 1) { return format + '(' + colors + ')'; } else { return format + 'a(' + colors + ', ' + c._3 + ')'; } } return localRuntime.Native.Color.values = { toCss: toCss }; }; Elm.Color = Elm.Color || {}; Elm.Color.make = function (_elm) { "use strict"; _elm.Color = _elm.Color || {}; if (_elm.Color.values) return _elm.Color.values; var _U = Elm.Native.Utils.make(_elm),$Basics = Elm.Basics.make(_elm); var _op = {}; var Radial = F5(function (a,b,c,d,e) { return {ctor: "Radial",_0: a,_1: b,_2: c,_3: d,_4: e};}); var radial = Radial; var Linear = F3(function (a,b,c) { return {ctor: "Linear",_0: a,_1: b,_2: c};}); var linear = Linear; var fmod = F2(function (f,n) { var integer = $Basics.floor(f);return $Basics.toFloat(A2($Basics._op["%"],integer,n)) + f - $Basics.toFloat(integer);}); var rgbToHsl = F3(function (red,green,blue) { var b = $Basics.toFloat(blue) / 255; var g = $Basics.toFloat(green) / 255; var r = $Basics.toFloat(red) / 255; var cMax = A2($Basics.max,A2($Basics.max,r,g),b); var cMin = A2($Basics.min,A2($Basics.min,r,g),b); var c = cMax - cMin; var lightness = (cMax + cMin) / 2; var saturation = _U.eq(lightness,0) ? 0 : c / (1 - $Basics.abs(2 * lightness - 1)); var hue = $Basics.degrees(60) * (_U.eq(cMax,r) ? A2(fmod,(g - b) / c,6) : _U.eq(cMax,g) ? (b - r) / c + 2 : (r - g) / c + 4); return {ctor: "_Tuple3",_0: hue,_1: saturation,_2: lightness}; }); var hslToRgb = F3(function (hue,saturation,lightness) { var hue$ = hue / $Basics.degrees(60); var chroma = (1 - $Basics.abs(2 * lightness - 1)) * saturation; var x = chroma * (1 - $Basics.abs(A2(fmod,hue$,2) - 1)); var _p0 = _U.cmp(hue$,0) < 0 ? {ctor: "_Tuple3",_0: 0,_1: 0,_2: 0} : _U.cmp(hue$,1) < 0 ? {ctor: "_Tuple3",_0: chroma,_1: x,_2: 0} : _U.cmp(hue$, 2) < 0 ? {ctor: "_Tuple3",_0: x,_1: chroma,_2: 0} : _U.cmp(hue$,3) < 0 ? {ctor: "_Tuple3",_0: 0,_1: chroma,_2: x} : _U.cmp(hue$,4) < 0 ? {ctor: "_Tuple3" ,_0: 0 ,_1: x ,_2: chroma} : _U.cmp(hue$, 5) < 0 ? {ctor: "_Tuple3",_0: x,_1: 0,_2: chroma} : _U.cmp(hue$,6) < 0 ? {ctor: "_Tuple3",_0: chroma,_1: 0,_2: x} : {ctor: "_Tuple3",_0: 0,_1: 0,_2: 0}; var r = _p0._0; var g = _p0._1; var b = _p0._2; var m = lightness - chroma / 2; return {ctor: "_Tuple3",_0: r + m,_1: g + m,_2: b + m}; }); var toRgb = function (color) { var _p1 = color; if (_p1.ctor === "RGBA") { return {red: _p1._0,green: _p1._1,blue: _p1._2,alpha: _p1._3}; } else { var _p2 = A3(hslToRgb,_p1._0,_p1._1,_p1._2); var r = _p2._0; var g = _p2._1; var b = _p2._2; return {red: $Basics.round(255 * r),green: $Basics.round(255 * g),blue: $Basics.round(255 * b),alpha: _p1._3}; } }; var toHsl = function (color) { var _p3 = color; if (_p3.ctor === "HSLA") { return {hue: _p3._0,saturation: _p3._1,lightness: _p3._2,alpha: _p3._3}; } else { var _p4 = A3(rgbToHsl,_p3._0,_p3._1,_p3._2); var h = _p4._0; var s = _p4._1; var l = _p4._2; return {hue: h,saturation: s,lightness: l,alpha: _p3._3}; } }; var HSLA = F4(function (a,b,c,d) { return {ctor: "HSLA",_0: a,_1: b,_2: c,_3: d};}); var hsla = F4(function (hue,saturation,lightness,alpha) { return A4(HSLA,hue - $Basics.turns($Basics.toFloat($Basics.floor(hue / (2 * $Basics.pi)))),saturation,lightness,alpha); }); var hsl = F3(function (hue,saturation,lightness) { return A4(hsla,hue,saturation,lightness,1);}); var complement = function (color) { var _p5 = color; if (_p5.ctor === "HSLA") { return A4(hsla,_p5._0 + $Basics.degrees(180),_p5._1,_p5._2,_p5._3); } else { var _p6 = A3(rgbToHsl,_p5._0,_p5._1,_p5._2); var h = _p6._0; var s = _p6._1; var l = _p6._2; return A4(hsla,h + $Basics.degrees(180),s,l,_p5._3); } }; var grayscale = function (p) { return A4(HSLA,0,0,1 - p,1);}; var greyscale = function (p) { return A4(HSLA,0,0,1 - p,1);}; var RGBA = F4(function (a,b,c,d) { return {ctor: "RGBA",_0: a,_1: b,_2: c,_3: d};}); var rgba = RGBA; var rgb = F3(function (r,g,b) { return A4(RGBA,r,g,b,1);}); var lightRed = A4(RGBA,239,41,41,1); var red = A4(RGBA,204,0,0,1); var darkRed = A4(RGBA,164,0,0,1); var lightOrange = A4(RGBA,252,175,62,1); var orange = A4(RGBA,245,121,0,1); var darkOrange = A4(RGBA,206,92,0,1); var lightYellow = A4(RGBA,255,233,79,1); var yellow = A4(RGBA,237,212,0,1); var darkYellow = A4(RGBA,196,160,0,1); var lightGreen = A4(RGBA,138,226,52,1); var green = A4(RGBA,115,210,22,1); var darkGreen = A4(RGBA,78,154,6,1); var lightBlue = A4(RGBA,114,159,207,1); var blue = A4(RGBA,52,101,164,1); var darkBlue = A4(RGBA,32,74,135,1); var lightPurple = A4(RGBA,173,127,168,1); var purple = A4(RGBA,117,80,123,1); var darkPurple = A4(RGBA,92,53,102,1); var lightBrown = A4(RGBA,233,185,110,1); var brown = A4(RGBA,193,125,17,1); var darkBrown = A4(RGBA,143,89,2,1); var black = A4(RGBA,0,0,0,1); var white = A4(RGBA,255,255,255,1); var lightGrey = A4(RGBA,238,238,236,1); var grey = A4(RGBA,211,215,207,1); var darkGrey = A4(RGBA,186,189,182,1); var lightGray = A4(RGBA,238,238,236,1); var gray = A4(RGBA,211,215,207,1); var darkGray = A4(RGBA,186,189,182,1); var lightCharcoal = A4(RGBA,136,138,133,1); var charcoal = A4(RGBA,85,87,83,1); var darkCharcoal = A4(RGBA,46,52,54,1); return _elm.Color.values = {_op: _op ,rgb: rgb ,rgba: rgba ,hsl: hsl ,hsla: hsla ,greyscale: greyscale ,grayscale: grayscale ,complement: complement ,linear: linear ,radial: radial ,toRgb: toRgb ,toHsl: toHsl ,red: red ,orange: orange ,yellow: yellow ,green: green ,blue: blue ,purple: purple ,brown: brown ,lightRed: lightRed ,lightOrange: lightOrange ,lightYellow: lightYellow ,lightGreen: lightGreen ,lightBlue: lightBlue ,lightPurple: lightPurple ,lightBrown: lightBrown ,darkRed: darkRed ,darkOrange: darkOrange ,darkYellow: darkYellow ,darkGreen: darkGreen ,darkBlue: darkBlue ,darkPurple: darkPurple ,darkBrown: darkBrown ,white: white ,lightGrey: lightGrey ,grey: grey ,darkGrey: darkGrey ,lightCharcoal: lightCharcoal ,charcoal: charcoal ,darkCharcoal: darkCharcoal ,black: black ,lightGray: lightGray ,gray: gray ,darkGray: darkGray}; }; Elm.Native.Signal = {}; Elm.Native.Signal.make = function(localRuntime) { localRuntime.Native = localRuntime.Native || {}; localRuntime.Native.Signal = localRuntime.Native.Signal || {}; if (localRuntime.Native.Signal.values) { return localRuntime.Native.Signal.values; } var Task = Elm.Native.Task.make(localRuntime); var Utils = Elm.Native.Utils.make(localRuntime); function broadcastToKids(node, timestamp, update) { var kids = node.kids; for (var i = kids.length; i--; ) { kids[i].notify(timestamp, update, node.id); } } // INPUT function input(name, base) { var node = { id: Utils.guid(), name: 'input-' + name, value: base, parents: [], kids: [] }; node.notify = function(timestamp, targetId, value) { var update = targetId === node.id; if (update) { node.value = value; } broadcastToKids(node, timestamp, update); return update; }; localRuntime.inputs.push(node); return node; } function constant(value) { return input('constant', value); } // MAILBOX function mailbox(base) { var signal = input('mailbox', base); function send(value) { return Task.asyncFunction(function(callback) { localRuntime.setTimeout(function() { localRuntime.notify(signal.id, value); }, 0); callback(Task.succeed(Utils.Tuple0)); }); } return { signal: signal, address: { ctor: 'Address', _0: send } }; } function sendMessage(message) { Task.perform(message._0); } // OUTPUT function output(name, handler, parent) { var node = { id: Utils.guid(), name: 'output-' + name, parents: [parent], isOutput: true }; node.notify = function(timestamp, parentUpdate, parentID) { if (parentUpdate) { handler(parent.value); } }; parent.kids.push(node); return node; } // MAP function mapMany(refreshValue, args) { var node = { id: Utils.guid(), name: 'map' + args.length, value: refreshValue(), parents: args, kids: [] }; var numberOfParents = args.length; var count = 0; var update = false; node.notify = function(timestamp, parentUpdate, parentID) { ++count; update = update || parentUpdate; if (count === numberOfParents) { if (update) { node.value = refreshValue(); } broadcastToKids(node, timestamp, update); update = false; count = 0; } }; for (var i = numberOfParents; i--; ) { args[i].kids.push(node); } return node; } function map(func, a) { function refreshValue() { return func(a.value); } return mapMany(refreshValue, [a]); } function map2(func, a, b) { function refreshValue() { return A2( func, a.value, b.value ); } return mapMany(refreshValue, [a, b]); } function map3(func, a, b, c) { function refreshValue() { return A3( func, a.value, b.value, c.value ); } return mapMany(refreshValue, [a, b, c]); } function map4(func, a, b, c, d) { function refreshValue() { return A4( func, a.value, b.value, c.value, d.value ); } return mapMany(refreshValue, [a, b, c, d]); } function map5(func, a, b, c, d, e) { function refreshValue() { return A5( func, a.value, b.value, c.value, d.value, e.value ); } return mapMany(refreshValue, [a, b, c, d, e]); } // FOLD function foldp(update, state, signal) { var node = { id: Utils.guid(), name: 'foldp', parents: [signal], kids: [], value: state }; node.notify = function(timestamp, parentUpdate, parentID) { if (parentUpdate) { node.value = A2( update, signal.value, node.value ); } broadcastToKids(node, timestamp, parentUpdate); }; signal.kids.push(node); return node; } // TIME function timestamp(signal) { var node = { id: Utils.guid(), name: 'timestamp', value: Utils.Tuple2(localRuntime.timer.programStart, signal.value), parents: [signal], kids: [] }; node.notify = function(timestamp, parentUpdate, parentID) { if (parentUpdate) { node.value = Utils.Tuple2(timestamp, signal.value); } broadcastToKids(node, timestamp, parentUpdate); }; signal.kids.push(node); return node; } function delay(time, signal) { var delayed = input('delay-input-' + time, signal.value); function handler(value) { setTimeout(function() { localRuntime.notify(delayed.id, value); }, time); } output('delay-output-' + time, handler, signal); return delayed; } // MERGING function genericMerge(tieBreaker, leftStream, rightStream) { var node = { id: Utils.guid(), name: 'merge', value: A2(tieBreaker, leftStream.value, rightStream.value), parents: [leftStream, rightStream], kids: [] }; var left = { touched: false, update: false, value: null }; var right = { touched: false, update: false, value: null }; node.notify = function(timestamp, parentUpdate, parentID) { if (parentID === leftStream.id) { left.touched = true; left.update = parentUpdate; left.value = leftStream.value; } if (parentID === rightStream.id) { right.touched = true; right.update = parentUpdate; right.value = rightStream.value; } if (left.touched && right.touched) { var update = false; if (left.update && right.update) { node.value = A2(tieBreaker, left.value, right.value); update = true; } else if (left.update) { node.value = left.value; update = true; } else if (right.update) { node.value = right.value; update = true; } left.touched = false; right.touched = false; broadcastToKids(node, timestamp, update); } }; leftStream.kids.push(node); rightStream.kids.push(node); return node; } // FILTERING function filterMap(toMaybe, base, signal) { var maybe = toMaybe(signal.value); var node = { id: Utils.guid(), name: 'filterMap', value: maybe.ctor === 'Nothing' ? base : maybe._0, parents: [signal], kids: [] }; node.notify = function(timestamp, parentUpdate, parentID) { var update = false; if (parentUpdate) { var maybe = toMaybe(signal.value); if (maybe.ctor === 'Just') { update = true; node.value = maybe._0; } } broadcastToKids(node, timestamp, update); }; signal.kids.push(node); return node; } // SAMPLING function sampleOn(ticker, signal) { var node = { id: Utils.guid(), name: 'sampleOn', value: signal.value, parents: [ticker, signal], kids: [] }; var signalTouch = false; var tickerTouch = false; var tickerUpdate = false; node.notify = function(timestamp, parentUpdate, parentID) { if (parentID === ticker.id) { tickerTouch = true; tickerUpdate = parentUpdate; } if (parentID === signal.id) { signalTouch = true; } if (tickerTouch && signalTouch) { if (tickerUpdate) { node.value = signal.value; } tickerTouch = false; signalTouch = false; broadcastToKids(node, timestamp, tickerUpdate); } }; ticker.kids.push(node); signal.kids.push(node); return node; } // DROP REPEATS function dropRepeats(signal) { var node = { id: Utils.guid(), name: 'dropRepeats', value: signal.value, parents: [signal], kids: [] }; node.notify = function(timestamp, parentUpdate, parentID) { var update = false; if (parentUpdate && !Utils.eq(node.value, signal.value)) { node.value = signal.value; update = true; } broadcastToKids(node, timestamp, update); }; signal.kids.push(node); return node; } return localRuntime.Native.Signal.values = { input: input, constant: constant, mailbox: mailbox, sendMessage: sendMessage, output: output, map: F2(map), map2: F3(map2), map3: F4(map3), map4: F5(map4), map5: F6(map5), foldp: F3(foldp), genericMerge: F3(genericMerge), filterMap: F3(filterMap), sampleOn: F2(sampleOn), dropRepeats: dropRepeats, timestamp: timestamp, delay: F2(delay) }; }; Elm.Native.Time = {}; Elm.Native.Time.make = function(localRuntime) { localRuntime.Native = localRuntime.Native || {}; localRuntime.Native.Time = localRuntime.Native.Time || {}; if (localRuntime.Native.Time.values) { return localRuntime.Native.Time.values; } var NS = Elm.Native.Signal.make(localRuntime); var Maybe = Elm.Maybe.make(localRuntime); // FRAMES PER SECOND function fpsWhen(desiredFPS, isOn) { var msPerFrame = 1000 / desiredFPS; var ticker = NS.input('fps-' + desiredFPS, null); function notifyTicker() { localRuntime.notify(ticker.id, null); } function firstArg(x, y) { return x; } // input fires either when isOn changes, or when ticker fires. // Its value is a tuple with the current timestamp, and the state of isOn var input = NS.timestamp(A3(NS.map2, F2(firstArg), NS.dropRepeats(isOn), ticker)); var initialState = { isOn: false, time: localRuntime.timer.programStart, delta: 0 }; var timeoutId; function update(input, state) { var currentTime = input._0; var isOn = input._1; var wasOn = state.isOn; var previousTime = state.time; if (isOn) { timeoutId = localRuntime.setTimeout(notifyTicker, msPerFrame); } else if (wasOn) { clearTimeout(timeoutId); } return { isOn: isOn, time: currentTime, delta: (isOn && !wasOn) ? 0 : currentTime - previousTime }; } return A2( NS.map, function(state) { return state.delta; }, A3(NS.foldp, F2(update), update(input.value, initialState), input) ); } // EVERY function every(t) { var ticker = NS.input('every-' + t, null); function tellTime() { localRuntime.notify(ticker.id, null); } var clock = A2(NS.map, fst, NS.timestamp(ticker)); setInterval(tellTime, t); return clock; } function fst(pair) { return pair._0; } function read(s) { var t = Date.parse(s); return isNaN(t) ? Maybe.Nothing : Maybe.Just(t); } return localRuntime.Native.Time.values = { fpsWhen: F2(fpsWhen), every: every, toDate: function(t) { return new Date(t); }, read: read }; }; Elm.Native.Transform2D = {}; Elm.Native.Transform2D.make = function(localRuntime) { localRuntime.Native = localRuntime.Native || {}; localRuntime.Native.Transform2D = localRuntime.Native.Transform2D || {}; if (localRuntime.Native.Transform2D.values) { return localRuntime.Native.Transform2D.values; } var A; if (typeof Float32Array === 'undefined') { A = function(arr) { this.length = arr.length; this[0] = arr[0]; this[1] = arr[1]; this[2] = arr[2]; this[3] = arr[3]; this[4] = arr[4]; this[5] = arr[5]; }; } else { A = Float32Array; } // layout of matrix in an array is // // | m11 m12 dx | // | m21 m22 dy | // | 0 0 1 | // // new A([ m11, m12, dx, m21, m22, dy ]) var identity = new A([1, 0, 0, 0, 1, 0]); function matrix(m11, m12, m21, m22, dx, dy) { return new A([m11, m12, dx, m21, m22, dy]); } function rotation(t) { var c = Math.cos(t); var s = Math.sin(t); return new A([c, -s, 0, s, c, 0]); } function rotate(t, m) { var c = Math.cos(t); var s = Math.sin(t); var m11 = m[0], m12 = m[1], m21 = m[3], m22 = m[4]; return new A([m11 * c + m12 * s, -m11 * s + m12 * c, m[2], m21 * c + m22 * s, -m21 * s + m22 * c, m[5]]); } /* function move(xy,m) { var x = xy._0; var y = xy._1; var m11 = m[0], m12 = m[1], m21 = m[3], m22 = m[4]; return new A([m11, m12, m11*x + m12*y + m[2], m21, m22, m21*x + m22*y + m[5]]); } function scale(s,m) { return new A([m[0]*s, m[1]*s, m[2], m[3]*s, m[4]*s, m[5]]); } function scaleX(x,m) { return new A([m[0]*x, m[1], m[2], m[3]*x, m[4], m[5]]); } function scaleY(y,m) { return new A([m[0], m[1]*y, m[2], m[3], m[4]*y, m[5]]); } function reflectX(m) { return new A([-m[0], m[1], m[2], -m[3], m[4], m[5]]); } function reflectY(m) { return new A([m[0], -m[1], m[2], m[3], -m[4], m[5]]); } function transform(m11, m21, m12, m22, mdx, mdy, n) { var n11 = n[0], n12 = n[1], n21 = n[3], n22 = n[4], ndx = n[2], ndy = n[5]; return new A([m11*n11 + m12*n21, m11*n12 + m12*n22, m11*ndx + m12*ndy + mdx, m21*n11 + m22*n21, m21*n12 + m22*n22, m21*ndx + m22*ndy + mdy]); } */ function multiply(m, n) { var m11 = m[0], m12 = m[1], m21 = m[3], m22 = m[4], mdx = m[2], mdy = m[5]; var n11 = n[0], n12 = n[1], n21 = n[3], n22 = n[4], ndx = n[2], ndy = n[5]; return new A([m11 * n11 + m12 * n21, m11 * n12 + m12 * n22, m11 * ndx + m12 * ndy + mdx, m21 * n11 + m22 * n21, m21 * n12 + m22 * n22, m21 * ndx + m22 * ndy + mdy]); } return localRuntime.Native.Transform2D.values = { identity: identity, matrix: F6(matrix), rotation: rotation, multiply: F2(multiply) /* transform: F7(transform), rotate: F2(rotate), move: F2(move), scale: F2(scale), scaleX: F2(scaleX), scaleY: F2(scaleY), reflectX: reflectX, reflectY: reflectY */ }; }; Elm.Transform2D = Elm.Transform2D || {}; Elm.Transform2D.make = function (_elm) { "use strict"; _elm.Transform2D = _elm.Transform2D || {}; if (_elm.Transform2D.values) return _elm.Transform2D.values; var _U = Elm.Native.Utils.make(_elm),$Native$Transform2D = Elm.Native.Transform2D.make(_elm); var _op = {}; var multiply = $Native$Transform2D.multiply; var rotation = $Native$Transform2D.rotation; var matrix = $Native$Transform2D.matrix; var translation = F2(function (x,y) { return A6(matrix,1,0,0,1,x,y);}); var scale = function (s) { return A6(matrix,s,0,0,s,0,0);}; var scaleX = function (x) { return A6(matrix,x,0,0,1,0,0);}; var scaleY = function (y) { return A6(matrix,1,0,0,y,0,0);}; var identity = $Native$Transform2D.identity; var Transform2D = {ctor: "Transform2D"}; return _elm.Transform2D.values = {_op: _op ,identity: identity ,matrix: matrix ,multiply: multiply ,rotation: rotation ,translation: translation ,scale: scale ,scaleX: scaleX ,scaleY: scaleY}; }; // setup Elm.Native = Elm.Native || {}; Elm.Native.Graphics = Elm.Native.Graphics || {}; Elm.Native.Graphics.Collage = Elm.Native.Graphics.Collage || {}; // definition Elm.Native.Graphics.Collage.make = function(localRuntime) { 'use strict'; // attempt to short-circuit localRuntime.Native = localRuntime.Native || {}; localRuntime.Native.Graphics = localRuntime.Native.Graphics || {}; localRuntime.Native.Graphics.Collage = localRuntime.Native.Graphics.Collage || {}; if ('values' in localRuntime.Native.Graphics.Collage) { return localRuntime.Native.Graphics.Collage.values; } // okay, we cannot short-ciruit, so now we define everything var Color = Elm.Native.Color.make(localRuntime); var List = Elm.Native.List.make(localRuntime); var NativeElement = Elm.Native.Graphics.Element.make(localRuntime); var Transform = Elm.Transform2D.make(localRuntime); var Utils = Elm.Native.Utils.make(localRuntime); function setStrokeStyle(ctx, style) { ctx.lineWidth = style.width; var cap = style.cap.ctor; ctx.lineCap = cap === 'Flat' ? 'butt' : cap === 'Round' ? 'round' : 'square'; var join = style.join.ctor; ctx.lineJoin = join === 'Smooth' ? 'round' : join === 'Sharp' ? 'miter' : 'bevel'; ctx.miterLimit = style.join._0 || 10; ctx.strokeStyle = Color.toCss(style.color); } function setFillStyle(redo, ctx, style) { var sty = style.ctor; ctx.fillStyle = sty === 'Solid' ? Color.toCss(style._0) : sty === 'Texture' ? texture(redo, ctx, style._0) : gradient(ctx, style._0); } function trace(ctx, path) { var points = List.toArray(path); var i = points.length - 1; if (i <= 0) { return; } ctx.moveTo(points[i]._0, points[i]._1); while (i--) { ctx.lineTo(points[i]._0, points[i]._1); } if (path.closed) { i = points.length - 1; ctx.lineTo(points[i]._0, points[i]._1); } } function line(ctx, style, path) { if (style.dashing.ctor === '[]') { trace(ctx, path); } else { customLineHelp(ctx, style, path); } ctx.scale(1, -1); ctx.stroke(); } function customLineHelp(ctx, style, path) { var points = List.toArray(path); if (path.closed) { points.push(points[0]); } var pattern = List.toArray(style.dashing); var i = points.length - 1; if (i <= 0) { return; } var x0 = points[i]._0, y0 = points[i]._1; var x1 = 0, y1 = 0, dx = 0, dy = 0, remaining = 0; var pindex = 0, plen = pattern.length; var draw = true, segmentLength = pattern[0]; ctx.moveTo(x0, y0); while (i--) { x1 = points[i]._0; y1 = points[i]._1; dx = x1 - x0; dy = y1 - y0; remaining = Math.sqrt(dx * dx + dy * dy); while (segmentLength <= remaining) { x0 += dx * segmentLength / remaining; y0 += dy * segmentLength / remaining; ctx[draw ? 'lineTo' : 'moveTo'](x0, y0); // update starting position dx = x1 - x0; dy = y1 - y0; remaining = Math.sqrt(dx * dx + dy * dy); // update pattern draw = !draw; pindex = (pindex + 1) % plen; segmentLength = pattern[pindex]; } if (remaining > 0) { ctx[draw ? 'lineTo' : 'moveTo'](x1, y1); segmentLength -= remaining; } x0 = x1; y0 = y1; } } function drawLine(ctx, style, path) { setStrokeStyle(ctx, style); return line(ctx, style, path); } function texture(redo, ctx, src) { var img = new Image(); img.src = src; img.onload = redo; return ctx.createPattern(img, 'repeat'); } function gradient(ctx, grad) { var g; var stops = []; if (grad.ctor === 'Linear') { var p0 = grad._0, p1 = grad._1; g = ctx.createLinearGradient(p0._0, -p0._1, p1._0, -p1._1); stops = List.toArray(grad._2); } else { var p0 = grad._0, p2 = grad._2; g = ctx.createRadialGradient(p0._0, -p0._1, grad._1, p2._0, -p2._1, grad._3); stops = List.toArray(grad._4); } var len = stops.length; for (var i = 0; i < len; ++i) { var stop = stops[i]; g.addColorStop(stop._0, Color.toCss(stop._1)); } return g; } function drawShape(redo, ctx, style, path) { trace(ctx, path); setFillStyle(redo, ctx, style); ctx.scale(1, -1); ctx.fill(); } // TEXT RENDERING function fillText(redo, ctx, text) { drawText(ctx, text, ctx.fillText); } function strokeText(redo, ctx, style, text) { setStrokeStyle(ctx, style); // Use native canvas API for dashes only for text for now // Degrades to non-dashed on IE 9 + 10 if (style.dashing.ctor !== '[]' && ctx.setLineDash) { var pattern = List.toArray(style.dashing); ctx.setLineDash(pattern); } drawText(ctx, text, ctx.strokeText); } function drawText(ctx, text, canvasDrawFn) { var textChunks = chunkText(defaultContext, text); var totalWidth = 0; var maxHeight = 0; var numChunks = textChunks.length; ctx.scale(1,-1); for (var i = numChunks; i--; ) { var chunk = textChunks[i]; ctx.font = chunk.font; var metrics = ctx.measureText(chunk.text); chunk.width = metrics.width; totalWidth += chunk.width; if (chunk.height > maxHeight) { maxHeight = chunk.height; } } var x = -totalWidth / 2.0; for (var i = 0; i < numChunks; ++i) { var chunk = textChunks[i]; ctx.font = chunk.font; ctx.fillStyle = chunk.color; canvasDrawFn.call(ctx, chunk.text, x, maxHeight / 2); x += chunk.width; } } function toFont(props) { return [ props['font-style'], props['font-variant'], props['font-weight'], props['font-size'], props['font-family'] ].join(' '); } // Convert the object returned by the text module // into something we can use for styling canvas text function chunkText(context, text) { var tag = text.ctor; if (tag === 'Text:Append') { var leftChunks = chunkText(context, text._0); var rightChunks = chunkText(context, text._1); return leftChunks.concat(rightChunks); } if (tag === 'Text:Text') { return [{ text: text._0, color: context.color, height: context['font-size'].slice(0, -2) | 0, font: toFont(context) }]; } if (tag === 'Text:Meta') { var newContext = freshContext(text._0, context); return chunkText(newContext, text._1); } } function freshContext(props, ctx) { return { 'font-style': props['font-style'] || ctx['font-style'], 'font-variant': props['font-variant'] || ctx['font-variant'], 'font-weight': props['font-weight'] || ctx['font-weight'], 'font-size': props['font-size'] || ctx['font-size'], 'font-family': props['font-family'] || ctx['font-family'], 'color': props['color'] || ctx['color'] }; } var defaultContext = { 'font-style': 'normal', 'font-variant': 'normal', 'font-weight': 'normal', 'font-size': '12px', 'font-family': 'sans-serif', 'color': 'black' }; // IMAGES function drawImage(redo, ctx, form) { var img = new Image(); img.onload = redo; img.src = form._3; var w = form._0, h = form._1, pos = form._2, srcX = pos._0, srcY = pos._1, srcW = w, srcH = h, destX = -w / 2, destY = -h / 2, destW = w, destH = h; ctx.scale(1, -1); ctx.drawImage(img, srcX, srcY, srcW, srcH, destX, destY, destW, destH); } function renderForm(redo, ctx, form) { ctx.save(); var x = form.x, y = form.y, theta = form.theta, scale = form.scale; if (x !== 0 || y !== 0) { ctx.translate(x, y); } if (theta !== 0) { ctx.rotate(theta % (Math.PI * 2)); } if (scale !== 1) { ctx.scale(scale, scale); } if (form.alpha !== 1) { ctx.globalAlpha = ctx.globalAlpha * form.alpha; } ctx.beginPath(); var f = form.form; switch (f.ctor) { case 'FPath': drawLine(ctx, f._0, f._1); break; case 'FImage': drawImage(redo, ctx, f); break; case 'FShape': if (f._0.ctor === 'Line') { f._1.closed = true; drawLine(ctx, f._0._0, f._1); } else { drawShape(redo, ctx, f._0._0, f._1); } break; case 'FText': fillText(redo, ctx, f._0); break; case 'FOutlinedText': strokeText(redo, ctx, f._0, f._1); break; } ctx.restore(); } function formToMatrix(form) { var scale = form.scale; var matrix = A6( Transform.matrix, scale, 0, 0, scale, form.x, form.y ); var theta = form.theta; if (theta !== 0) { matrix = A2( Transform.multiply, matrix, Transform.rotation(theta) ); } return matrix; } function str(n) { if (n < 0.00001 && n > -0.00001) { return 0; } return n; } function makeTransform(w, h, form, matrices) { var props = form.form._0._0.props; var m = A6( Transform.matrix, 1, 0, 0, -1, (w - props.width ) / 2, (h - props.height) / 2 ); var len = matrices.length; for (var i = 0; i < len; ++i) { m = A2( Transform.multiply, m, matrices[i] ); } m = A2( Transform.multiply, m, formToMatrix(form) ); return 'matrix(' + str( m[0]) + ', ' + str( m[3]) + ', ' + str(-m[1]) + ', ' + str(-m[4]) + ', ' + str( m[2]) + ', ' + str( m[5]) + ')'; } function stepperHelp(list) { var arr = List.toArray(list); var i = 0; function peekNext() { return i < arr.length ? arr[i]._0.form.ctor : ''; } // assumes that there is a next element function next() { var out = arr[i]._0; ++i; return out; } return { peekNext: peekNext, next: next }; } function formStepper(forms) { var ps = [stepperHelp(forms)]; var matrices = []; var alphas = []; function peekNext() { var len = ps.length; var formType = ''; for (var i = 0; i < len; ++i ) { if (formType = ps[i].peekNext()) return formType; } return ''; } // assumes that there is a next element function next(ctx) { while (!ps[0].peekNext()) { ps.shift(); matrices.pop(); alphas.shift(); if (ctx) { ctx.restore(); } } var out = ps[0].next(); var f = out.form; if (f.ctor === 'FGroup') { ps.unshift(stepperHelp(f._1)); var m = A2(Transform.multiply, f._0, formToMatrix(out)); ctx.save(); ctx.transform(m[0], m[3], m[1], m[4], m[2], m[5]); matrices.push(m); var alpha = (alphas[0] || 1) * out.alpha; alphas.unshift(alpha); ctx.globalAlpha = alpha; } return out; } function transforms() { return matrices; } function alpha() { return alphas[0] || 1; } return { peekNext: peekNext, next: next, transforms: transforms, alpha: alpha }; } function makeCanvas(w, h) { var canvas = NativeElement.createNode('canvas'); canvas.style.width = w + 'px'; canvas.style.height = h + 'px'; canvas.style.display = 'block'; canvas.style.position = 'absolute'; var ratio = window.devicePixelRatio || 1; canvas.width = w * ratio; canvas.height = h * ratio; return canvas; } function render(model) { var div = NativeElement.createNode('div'); div.style.overflow = 'hidden'; div.style.position = 'relative'; update(div, model, model); return div; } function nodeStepper(w, h, div) { var kids = div.childNodes; var i = 0; var ratio = window.devicePixelRatio || 1; function transform(transforms, ctx) { ctx.translate( w / 2 * ratio, h / 2 * ratio ); ctx.scale( ratio, -ratio ); var len = transforms.length; for (var i = 0; i < len; ++i) { var m = transforms[i]; ctx.save(); ctx.transform(m[0], m[3], m[1], m[4], m[2], m[5]); } return ctx; } function nextContext(transforms) { while (i < kids.length) { var node = kids[i]; if (node.getContext) { node.width = w * ratio; node.height = h * ratio; node.style.width = w + 'px'; node.style.height = h + 'px'; ++i; return transform(transforms, node.getContext('2d')); } div.removeChild(node); } var canvas = makeCanvas(w, h); div.appendChild(canvas); // we have added a new node, so we must step our position ++i; return transform(transforms, canvas.getContext('2d')); } function addElement(matrices, alpha, form) { var kid = kids[i]; var elem = form.form._0; var node = (!kid || kid.getContext) ? NativeElement.render(elem) : NativeElement.update(kid, kid.oldElement, elem); node.style.position = 'absolute'; node.style.opacity = alpha * form.alpha * elem._0.props.opacity; NativeElement.addTransform(node.style, makeTransform(w, h, form, matrices)); node.oldElement = elem; ++i; if (!kid) { div.appendChild(node); } else { div.insertBefore(node, kid); } } function clearRest() { while (i < kids.length) { div.removeChild(kids[i]); } } return { nextContext: nextContext, addElement: addElement, clearRest: clearRest }; } function update(div, _, model) { var w = model.w; var h = model.h; var forms = formStepper(model.forms); var nodes = nodeStepper(w, h, div); var ctx = null; var formType = ''; while (formType = forms.peekNext()) { // make sure we have context if we need it if (ctx === null && formType !== 'FElement') { ctx = nodes.nextContext(forms.transforms()); ctx.globalAlpha = forms.alpha(); } var form = forms.next(ctx); // if it is FGroup, all updates are made within formStepper when next is called. if (formType === 'FElement') { // update or insert an element, get a new context nodes.addElement(forms.transforms(), forms.alpha(), form); ctx = null; } else if (formType !== 'FGroup') { renderForm(function() { update(div, model, model); }, ctx, form); } } nodes.clearRest(); return div; } function collage(w, h, forms) { return A3(NativeElement.newElement, w, h, { ctor: 'Custom', type: 'Collage', render: render, update: update, model: {w: w, h: h, forms: forms} }); } return localRuntime.Native.Graphics.Collage.values = { collage: F3(collage) }; }; // setup Elm.Native = Elm.Native || {}; Elm.Native.Graphics = Elm.Native.Graphics || {}; Elm.Native.Graphics.Element = Elm.Native.Graphics.Element || {}; // definition Elm.Native.Graphics.Element.make = function(localRuntime) { 'use strict'; // attempt to short-circuit localRuntime.Native = localRuntime.Native || {}; localRuntime.Native.Graphics = localRuntime.Native.Graphics || {}; localRuntime.Native.Graphics.Element = localRuntime.Native.Graphics.Element || {}; if ('values' in localRuntime.Native.Graphics.Element) { return localRuntime.Native.Graphics.Element.values; } var Color = Elm.Native.Color.make(localRuntime); var List = Elm.Native.List.make(localRuntime); var Maybe = Elm.Maybe.make(localRuntime); var Text = Elm.Native.Text.make(localRuntime); var Utils = Elm.Native.Utils.make(localRuntime); // CREATION var createNode = typeof document === 'undefined' ? function(_) { return { style: {}, appendChild: function() {} }; } : function(elementType) { var node = document.createElement(elementType); node.style.padding = '0'; node.style.margin = '0'; return node; } ; function newElement(width, height, elementPrim) { return { ctor: 'Element_elm_builtin', _0: { element: elementPrim, props: { id: Utils.guid(), width: width, height: height, opacity: 1, color: Maybe.Nothing, href: '', tag: '', hover: Utils.Tuple0, click: Utils.Tuple0 } } }; } // PROPERTIES function setProps(elem, node) { var props = elem.props; var element = elem.element; var width = props.width - (element.adjustWidth || 0); var height = props.height - (element.adjustHeight || 0); node.style.width = (width | 0) + 'px'; node.style.height = (height | 0) + 'px'; if (props.opacity !== 1) { node.style.opacity = props.opacity; } if (props.color.ctor === 'Just') { node.style.backgroundColor = Color.toCss(props.color._0); } if (props.tag !== '') { node.id = props.tag; } if (props.hover.ctor !== '_Tuple0') { addHover(node, props.hover); } if (props.click.ctor !== '_Tuple0') { addClick(node, props.click); } if (props.href !== '') { var anchor = createNode('a'); anchor.href = props.href; anchor.style.display = 'block'; anchor.style.pointerEvents = 'auto'; anchor.appendChild(node); node = anchor; } return node; } function addClick(e, handler) { e.style.pointerEvents = 'auto'; e.elm_click_handler = handler; function trigger(ev) { e.elm_click_handler(Utils.Tuple0); ev.stopPropagation(); } e.elm_click_trigger = trigger; e.addEventListener('click', trigger); } function removeClick(e, handler) { if (e.elm_click_trigger) { e.removeEventListener('click', e.elm_click_trigger); e.elm_click_trigger = null; e.elm_click_handler = null; } } function addHover(e, handler) { e.style.pointerEvents = 'auto'; e.elm_hover_handler = handler; e.elm_hover_count = 0; function over(evt) { if (e.elm_hover_count++ > 0) return; e.elm_hover_handler(true); evt.stopPropagation(); } function out(evt) { if (e.contains(evt.toElement || evt.relatedTarget)) return; e.elm_hover_count = 0; e.elm_hover_handler(false); evt.stopPropagation(); } e.elm_hover_over = over; e.elm_hover_out = out; e.addEventListener('mouseover', over); e.addEventListener('mouseout', out); } function removeHover(e) { e.elm_hover_handler = null; if (e.elm_hover_over) { e.removeEventListener('mouseover', e.elm_hover_over); e.elm_hover_over = null; } if (e.elm_hover_out) { e.removeEventListener('mouseout', e.elm_hover_out); e.elm_hover_out = null; } } // IMAGES function image(props, img) { switch (img._0.ctor) { case 'Plain': return plainImage(img._3); case 'Fitted': return fittedImage(props.width, props.height, img._3); case 'Cropped': return croppedImage(img, props.width, props.height, img._3); case 'Tiled': return tiledImage(img._3); } } function plainImage(src) { var img = createNode('img'); img.src = src; img.name = src; img.style.display = 'block'; return img; } function tiledImage(src) { var div = createNode('div'); div.style.backgroundImage = 'url(' + src + ')'; return div; } function fittedImage(w, h, src) { var div = createNode('div'); div.style.background = 'url(' + src + ') no-repeat center'; div.style.webkitBackgroundSize = 'cover'; div.style.MozBackgroundSize = 'cover'; div.style.OBackgroundSize = 'cover'; div.style.backgroundSize = 'cover'; return div; } function croppedImage(elem, w, h, src) { var pos = elem._0._0; var e = createNode('div'); e.style.overflow = 'hidden'; var img = createNode('img'); img.onload = function() { var sw = w / elem._1, sh = h / elem._2; img.style.width = ((this.width * sw) | 0) + 'px'; img.style.height = ((this.height * sh) | 0) + 'px'; img.style.marginLeft = ((- pos._0 * sw) | 0) + 'px'; img.style.marginTop = ((- pos._1 * sh) | 0) + 'px'; }; img.src = src; img.name = src; e.appendChild(img); return e; } // FLOW function goOut(node) { node.style.position = 'absolute'; return node; } function goDown(node) { return node; } function goRight(node) { node.style.styleFloat = 'left'; node.style.cssFloat = 'left'; return node; } var directionTable = { DUp: goDown, DDown: goDown, DLeft: goRight, DRight: goRight, DIn: goOut, DOut: goOut }; function needsReversal(dir) { return dir === 'DUp' || dir === 'DLeft' || dir === 'DIn'; } function flow(dir, elist) { var array = List.toArray(elist); var container = createNode('div'); var goDir = directionTable[dir]; if (goDir === goOut) { container.style.pointerEvents = 'none'; } if (needsReversal(dir)) { array.reverse(); } var len = array.length; for (var i = 0; i < len; ++i) { container.appendChild(goDir(render(array[i]))); } return container; } // CONTAINER function toPos(pos) { return pos.ctor === 'Absolute' ? pos._0 + 'px' : (pos._0 * 100) + '%'; } // must clear right, left, top, bottom, and transform // before calling this function function setPos(pos, wrappedElement, e) { var elem = wrappedElement._0; var element = elem.element; var props = elem.props; var w = props.width + (element.adjustWidth ? element.adjustWidth : 0); var h = props.height + (element.adjustHeight ? element.adjustHeight : 0); e.style.position = 'absolute'; e.style.margin = 'auto'; var transform = ''; switch (pos.horizontal.ctor) { case 'P': e.style.right = toPos(pos.x); e.style.removeProperty('left'); break; case 'Z': transform = 'translateX(' + ((-w / 2) | 0) + 'px) '; case 'N': e.style.left = toPos(pos.x); e.style.removeProperty('right'); break; } switch (pos.vertical.ctor) { case 'N': e.style.bottom = toPos(pos.y); e.style.removeProperty('top'); break; case 'Z': transform += 'translateY(' + ((-h / 2) | 0) + 'px)'; case 'P': e.style.top = toPos(pos.y); e.style.removeProperty('bottom'); break; } if (transform !== '') { addTransform(e.style, transform); } return e; } function addTransform(style, transform) { style.transform = transform; style.msTransform = transform; style.MozTransform = transform; style.webkitTransform = transform; style.OTransform = transform; } function container(pos, elem) { var e = render(elem); setPos(pos, elem, e); var div = createNode('div'); div.style.position = 'relative'; div.style.overflow = 'hidden'; div.appendChild(e); return div; } function rawHtml(elem) { var html = elem.html; var align = elem.align; var div = createNode('div'); div.innerHTML = html; div.style.visibility = 'hidden'; if (align) { div.style.textAlign = align; } div.style.visibility = 'visible'; div.style.pointerEvents = 'auto'; return div; } // RENDER function render(wrappedElement) { var elem = wrappedElement._0; return setProps(elem, makeElement(elem)); } function makeElement(e) { var elem = e.element; switch (elem.ctor) { case 'Image': return image(e.props, elem); case 'Flow': return flow(elem._0.ctor, elem._1); case 'Container': return container(elem._0, elem._1); case 'Spacer': return createNode('div'); case 'RawHtml': return rawHtml(elem); case 'Custom': return elem.render(elem.model); } } function updateAndReplace(node, curr, next) { var newNode = update(node, curr, next); if (newNode !== node) { node.parentNode.replaceChild(newNode, node); } return newNode; } // UPDATE function update(node, wrappedCurrent, wrappedNext) { var curr = wrappedCurrent._0; var next = wrappedNext._0; var rootNode = node; if (node.tagName === 'A') { node = node.firstChild; } if (curr.props.id === next.props.id) { updateProps(node, curr, next); return rootNode; } if (curr.element.ctor !== next.element.ctor) { return render(wrappedNext); } var nextE = next.element; var currE = curr.element; switch (nextE.ctor) { case 'Spacer': updateProps(node, curr, next); return rootNode; case 'RawHtml': if(currE.html.valueOf() !== nextE.html.valueOf()) { node.innerHTML = nextE.html; } updateProps(node, curr, next); return rootNode; case 'Image': if (nextE._0.ctor === 'Plain') { if (nextE._3 !== currE._3) { node.src = nextE._3; } } else if (!Utils.eq(nextE, currE) || next.props.width !== curr.props.width || next.props.height !== curr.props.height) { return render(wrappedNext); } updateProps(node, curr, next); return rootNode; case 'Flow': var arr = List.toArray(nextE._1); for (var i = arr.length; i--; ) { arr[i] = arr[i]._0.element.ctor; } if (nextE._0.ctor !== currE._0.ctor) { return render(wrappedNext); } var nexts = List.toArray(nextE._1); var kids = node.childNodes; if (nexts.length !== kids.length) { return render(wrappedNext); } var currs = List.toArray(currE._1); var dir = nextE._0.ctor; var goDir = directionTable[dir]; var toReverse = needsReversal(dir); var len = kids.length; for (var i = len; i--; ) { var subNode = kids[toReverse ? len - i - 1 : i]; goDir(updateAndReplace(subNode, currs[i], nexts[i])); } updateProps(node, curr, next); return rootNode; case 'Container': var subNode = node.firstChild; var newSubNode = updateAndReplace(subNode, currE._1, nextE._1); setPos(nextE._0, nextE._1, newSubNode); updateProps(node, curr, next); return rootNode; case 'Custom': if (currE.type === nextE.type) { var updatedNode = nextE.update(node, currE.model, nextE.model); updateProps(updatedNode, curr, next); return updatedNode; } return render(wrappedNext); } } function updateProps(node, curr, next) { var nextProps = next.props; var currProps = curr.props; var element = next.element; var width = nextProps.width - (element.adjustWidth || 0); var height = nextProps.height - (element.adjustHeight || 0); if (width !== currProps.width) { node.style.width = (width | 0) + 'px'; } if (height !== currProps.height) { node.style.height = (height | 0) + 'px'; } if (nextProps.opacity !== currProps.opacity) { node.style.opacity = nextProps.opacity; } var nextColor = nextProps.color.ctor === 'Just' ? Color.toCss(nextProps.color._0) : ''; if (node.style.backgroundColor !== nextColor) { node.style.backgroundColor = nextColor; } if (nextProps.tag !== currProps.tag) { node.id = nextProps.tag; } if (nextProps.href !== currProps.href) { if (currProps.href === '') { // add a surrounding href var anchor = createNode('a'); anchor.href = nextProps.href; anchor.style.display = 'block'; anchor.style.pointerEvents = 'auto'; node.parentNode.replaceChild(anchor, node); anchor.appendChild(node); } else if (nextProps.href === '') { // remove the surrounding href var anchor = node.parentNode; anchor.parentNode.replaceChild(node, anchor); } else { // just update the link node.parentNode.href = nextProps.href; } } // update click and hover handlers var removed = false; // update hover handlers if (currProps.hover.ctor === '_Tuple0') { if (nextProps.hover.ctor !== '_Tuple0') { addHover(node, nextProps.hover); } } else { if (nextProps.hover.ctor === '_Tuple0') { removed = true; removeHover(node); } else { node.elm_hover_handler = nextProps.hover; } } // update click handlers if (currProps.click.ctor === '_Tuple0') { if (nextProps.click.ctor !== '_Tuple0') { addClick(node, nextProps.click); } } else { if (nextProps.click.ctor === '_Tuple0') { removed = true; removeClick(node); } else { node.elm_click_handler = nextProps.click; } } // stop capturing clicks if if (removed && nextProps.hover.ctor === '_Tuple0' && nextProps.click.ctor === '_Tuple0') { node.style.pointerEvents = 'none'; } } // TEXT function block(align) { return function(text) { var raw = { ctor: 'RawHtml', html: Text.renderHtml(text), align: align }; var pos = htmlHeight(0, raw); return newElement(pos._0, pos._1, raw); }; } function markdown(text) { var raw = { ctor: 'RawHtml', html: text, align: null }; var pos = htmlHeight(0, raw); return newElement(pos._0, pos._1, raw); } var htmlHeight = typeof document !== 'undefined' ? realHtmlHeight : function(a, b) { return Utils.Tuple2(0, 0); }; function realHtmlHeight(width, rawHtml) { // create dummy node var temp = document.createElement('div'); temp.innerHTML = rawHtml.html; if (width > 0) { temp.style.width = width + 'px'; } temp.style.visibility = 'hidden'; temp.style.styleFloat = 'left'; temp.style.cssFloat = 'left'; document.body.appendChild(temp); // get dimensions var style = window.getComputedStyle(temp, null); var w = Math.ceil(style.getPropertyValue('width').slice(0, -2) - 0); var h = Math.ceil(style.getPropertyValue('height').slice(0, -2) - 0); document.body.removeChild(temp); return Utils.Tuple2(w, h); } return localRuntime.Native.Graphics.Element.values = { render: render, update: update, updateAndReplace: updateAndReplace, createNode: createNode, newElement: F3(newElement), addTransform: addTransform, htmlHeight: F2(htmlHeight), guid: Utils.guid, block: block, markdown: markdown }; }; Elm.Native.Text = {}; Elm.Native.Text.make = function(localRuntime) { localRuntime.Native = localRuntime.Native || {}; localRuntime.Native.Text = localRuntime.Native.Text || {}; if (localRuntime.Native.Text.values) { return localRuntime.Native.Text.values; } var toCss = Elm.Native.Color.make(localRuntime).toCss; var List = Elm.Native.List.make(localRuntime); // CONSTRUCTORS function fromString(str) { return { ctor: 'Text:Text', _0: str }; } function append(a, b) { return { ctor: 'Text:Append', _0: a, _1: b }; } function addMeta(field, value, text) { var newProps = {}; var newText = { ctor: 'Text:Meta', _0: newProps, _1: text }; if (text.ctor === 'Text:Meta') { newText._1 = text._1; var props = text._0; for (var i = metaKeys.length; i--; ) { var key = metaKeys[i]; var val = props[key]; if (val) { newProps[key] = val; } } } newProps[field] = value; return newText; } var metaKeys = [ 'font-size', 'font-family', 'font-style', 'font-weight', 'href', 'text-decoration', 'color' ]; // conversions from Elm values to CSS function toTypefaces(list) { var typefaces = List.toArray(list); for (var i = typefaces.length; i--; ) { var typeface = typefaces[i]; if (typeface.indexOf(' ') > -1) { typefaces[i] = "'" + typeface + "'"; } } return typefaces.join(','); } function toLine(line) { var ctor = line.ctor; return ctor === 'Under' ? 'underline' : ctor === 'Over' ? 'overline' : 'line-through'; } // setting styles of Text function style(style, text) { var newText = addMeta('color', toCss(style.color), text); var props = newText._0; if (style.typeface.ctor !== '[]') { props['font-family'] = toTypefaces(style.typeface); } if (style.height.ctor !== 'Nothing') { props['font-size'] = style.height._0 + 'px'; } if (style.bold) { props['font-weight'] = 'bold'; } if (style.italic) { props['font-style'] = 'italic'; } if (style.line.ctor !== 'Nothing') { props['text-decoration'] = toLine(style.line._0); } return newText; } function height(px, text) { return addMeta('font-size', px + 'px', text); } function typeface(names, text) { return addMeta('font-family', toTypefaces(names), text); } function monospace(text) { return addMeta('font-family', 'monospace', text); } function italic(text) { return addMeta('font-style', 'italic', text); } function bold(text) { return addMeta('font-weight', 'bold', text); } function link(href, text) { return addMeta('href', href, text); } function line(line, text) { return addMeta('text-decoration', toLine(line), text); } function color(color, text) { return addMeta('color', toCss(color), text); } // RENDER function renderHtml(text) { var tag = text.ctor; if (tag === 'Text:Append') { return renderHtml(text._0) + renderHtml(text._1); } if (tag === 'Text:Text') { return properEscape(text._0); } if (tag === 'Text:Meta') { return renderMeta(text._0, renderHtml(text._1)); } } function renderMeta(metas, string) { var href = metas.href; if (href) { string = '' + string + ''; } var styles = ''; for (var key in metas) { if (key === 'href') { continue; } styles += key + ':' + metas[key] + ';'; } if (styles) { string = '' + string + ''; } return string; } function properEscape(str) { if (str.length === 0) { return str; } str = str //.replace(/&/g, '&') .replace(/"/g, '"') .replace(/'/g, ''') .replace(//g, '>'); var arr = str.split('\n'); for (var i = arr.length; i--; ) { arr[i] = makeSpaces(arr[i]); } return arr.join('
'); } function makeSpaces(s) { if (s.length === 0) { return s; } var arr = s.split(''); if (arr[0] === ' ') { arr[0] = ' '; } for (var i = arr.length; --i; ) { if (arr[i][0] === ' ' && arr[i - 1] === ' ') { arr[i - 1] = arr[i - 1] + arr[i]; arr[i] = ''; } } for (var i = arr.length; i--; ) { if (arr[i].length > 1 && arr[i][0] === ' ') { var spaces = arr[i].split(''); for (var j = spaces.length - 2; j >= 0; j -= 2) { spaces[j] = ' '; } arr[i] = spaces.join(''); } } arr = arr.join(''); if (arr[arr.length - 1] === ' ') { return arr.slice(0, -1) + ' '; } return arr; } return localRuntime.Native.Text.values = { fromString: fromString, append: F2(append), height: F2(height), italic: italic, bold: bold, line: F2(line), monospace: monospace, typeface: F2(typeface), color: F2(color), link: F2(link), style: F2(style), toTypefaces: toTypefaces, toLine: toLine, renderHtml: renderHtml }; }; Elm.Text = Elm.Text || {}; Elm.Text.make = function (_elm) { "use strict"; _elm.Text = _elm.Text || {}; if (_elm.Text.values) return _elm.Text.values; var _U = Elm.Native.Utils.make(_elm), $Color = Elm.Color.make(_elm), $List = Elm.List.make(_elm), $Maybe = Elm.Maybe.make(_elm), $Native$Text = Elm.Native.Text.make(_elm); var _op = {}; var line = $Native$Text.line; var italic = $Native$Text.italic; var bold = $Native$Text.bold; var color = $Native$Text.color; var height = $Native$Text.height; var link = $Native$Text.link; var monospace = $Native$Text.monospace; var typeface = $Native$Text.typeface; var style = $Native$Text.style; var append = $Native$Text.append; var fromString = $Native$Text.fromString; var empty = fromString(""); var concat = function (texts) { return A3($List.foldr,append,empty,texts);}; var join = F2(function (seperator,texts) { return concat(A2($List.intersperse,seperator,texts));}); var defaultStyle = {typeface: _U.list([]),height: $Maybe.Nothing,color: $Color.black,bold: false,italic: false,line: $Maybe.Nothing}; var Style = F6(function (a,b,c,d,e,f) { return {typeface: a,height: b,color: c,bold: d,italic: e,line: f};}); var Through = {ctor: "Through"}; var Over = {ctor: "Over"}; var Under = {ctor: "Under"}; var Text = {ctor: "Text"}; return _elm.Text.values = {_op: _op ,fromString: fromString ,empty: empty ,append: append ,concat: concat ,join: join ,link: link ,style: style ,defaultStyle: defaultStyle ,typeface: typeface ,monospace: monospace ,height: height ,color: color ,bold: bold ,italic: italic ,line: line ,Style: Style ,Under: Under ,Over: Over ,Through: Through}; }; Elm.Graphics = Elm.Graphics || {}; Elm.Graphics.Element = Elm.Graphics.Element || {}; Elm.Graphics.Element.make = function (_elm) { "use strict"; _elm.Graphics = _elm.Graphics || {}; _elm.Graphics.Element = _elm.Graphics.Element || {}; if (_elm.Graphics.Element.values) return _elm.Graphics.Element.values; var _U = Elm.Native.Utils.make(_elm), $Basics = Elm.Basics.make(_elm), $Color = Elm.Color.make(_elm), $List = Elm.List.make(_elm), $Maybe = Elm.Maybe.make(_elm), $Native$Graphics$Element = Elm.Native.Graphics.Element.make(_elm), $Text = Elm.Text.make(_elm); var _op = {}; var DOut = {ctor: "DOut"}; var outward = DOut; var DIn = {ctor: "DIn"}; var inward = DIn; var DRight = {ctor: "DRight"}; var right = DRight; var DLeft = {ctor: "DLeft"}; var left = DLeft; var DDown = {ctor: "DDown"}; var down = DDown; var DUp = {ctor: "DUp"}; var up = DUp; var RawPosition = F4(function (a,b,c,d) { return {horizontal: a,vertical: b,x: c,y: d};}); var Position = function (a) { return {ctor: "Position",_0: a};}; var Relative = function (a) { return {ctor: "Relative",_0: a};}; var relative = Relative; var Absolute = function (a) { return {ctor: "Absolute",_0: a};}; var absolute = Absolute; var N = {ctor: "N"}; var bottomLeft = Position({horizontal: N,vertical: N,x: Absolute(0),y: Absolute(0)}); var bottomLeftAt = F2(function (x,y) { return Position({horizontal: N,vertical: N,x: x,y: y});}); var Z = {ctor: "Z"}; var middle = Position({horizontal: Z,vertical: Z,x: Relative(0.5),y: Relative(0.5)}); var midLeft = Position({horizontal: N,vertical: Z,x: Absolute(0),y: Relative(0.5)}); var midBottom = Position({horizontal: Z,vertical: N,x: Relative(0.5),y: Absolute(0)}); var middleAt = F2(function (x,y) { return Position({horizontal: Z,vertical: Z,x: x,y: y});}); var midLeftAt = F2(function (x,y) { return Position({horizontal: N,vertical: Z,x: x,y: y});}); var midBottomAt = F2(function (x,y) { return Position({horizontal: Z,vertical: N,x: x,y: y});}); var P = {ctor: "P"}; var topLeft = Position({horizontal: N,vertical: P,x: Absolute(0),y: Absolute(0)}); var topRight = Position({horizontal: P,vertical: P,x: Absolute(0),y: Absolute(0)}); var bottomRight = Position({horizontal: P,vertical: N,x: Absolute(0),y: Absolute(0)}); var midRight = Position({horizontal: P,vertical: Z,x: Absolute(0),y: Relative(0.5)}); var midTop = Position({horizontal: Z,vertical: P,x: Relative(0.5),y: Absolute(0)}); var topLeftAt = F2(function (x,y) { return Position({horizontal: N,vertical: P,x: x,y: y});}); var topRightAt = F2(function (x,y) { return Position({horizontal: P,vertical: P,x: x,y: y});}); var bottomRightAt = F2(function (x,y) { return Position({horizontal: P,vertical: N,x: x,y: y});}); var midRightAt = F2(function (x,y) { return Position({horizontal: P,vertical: Z,x: x,y: y});}); var midTopAt = F2(function (x,y) { return Position({horizontal: Z,vertical: P,x: x,y: y});}); var justified = $Native$Graphics$Element.block("justify"); var centered = $Native$Graphics$Element.block("center"); var rightAligned = $Native$Graphics$Element.block("right"); var leftAligned = $Native$Graphics$Element.block("left"); var show = function (value) { return leftAligned($Text.monospace($Text.fromString($Basics.toString(value))));}; var Tiled = {ctor: "Tiled"}; var Cropped = function (a) { return {ctor: "Cropped",_0: a};}; var Fitted = {ctor: "Fitted"}; var Plain = {ctor: "Plain"}; var Custom = {ctor: "Custom"}; var RawHtml = {ctor: "RawHtml"}; var Spacer = {ctor: "Spacer"}; var Flow = F2(function (a,b) { return {ctor: "Flow",_0: a,_1: b};}); var Container = F2(function (a,b) { return {ctor: "Container",_0: a,_1: b};}); var Image = F4(function (a,b,c,d) { return {ctor: "Image",_0: a,_1: b,_2: c,_3: d};}); var newElement = $Native$Graphics$Element.newElement; var image = F3(function (w,h,src) { return A3(newElement,w,h,A4(Image,Plain,w,h,src));}); var fittedImage = F3(function (w,h,src) { return A3(newElement,w,h,A4(Image,Fitted,w,h,src));}); var croppedImage = F4(function (pos,w,h,src) { return A3(newElement,w,h,A4(Image,Cropped(pos),w,h,src));}); var tiledImage = F3(function (w,h,src) { return A3(newElement,w,h,A4(Image,Tiled,w,h,src));}); var container = F4(function (w,h,_p0,e) { var _p1 = _p0;return A3(newElement,w,h,A2(Container,_p1._0,e));}); var spacer = F2(function (w,h) { return A3(newElement,w,h,Spacer);}); var sizeOf = function (_p2) { var _p3 = _p2;var _p4 = _p3._0;return {ctor: "_Tuple2",_0: _p4.props.width,_1: _p4.props.height};}; var heightOf = function (_p5) { var _p6 = _p5;return _p6._0.props.height;}; var widthOf = function (_p7) { var _p8 = _p7;return _p8._0.props.width;}; var above = F2(function (hi,lo) { return A3(newElement,A2($Basics.max,widthOf(hi),widthOf(lo)),heightOf(hi) + heightOf(lo),A2(Flow,DDown,_U.list([hi,lo]))); }); var below = F2(function (lo,hi) { return A3(newElement,A2($Basics.max,widthOf(hi),widthOf(lo)),heightOf(hi) + heightOf(lo),A2(Flow,DDown,_U.list([hi,lo]))); }); var beside = F2(function (lft,rht) { return A3(newElement,widthOf(lft) + widthOf(rht),A2($Basics.max,heightOf(lft),heightOf(rht)),A2(Flow,right,_U.list([lft,rht]))); }); var layers = function (es) { var hs = A2($List.map,heightOf,es); var ws = A2($List.map,widthOf,es); return A3(newElement,A2($Maybe.withDefault,0,$List.maximum(ws)),A2($Maybe.withDefault,0,$List.maximum(hs)),A2(Flow,DOut,es)); }; var empty = A2(spacer,0,0); var flow = F2(function (dir,es) { var newFlow = F2(function (w,h) { return A3(newElement,w,h,A2(Flow,dir,es));}); var maxOrZero = function (list) { return A2($Maybe.withDefault,0,$List.maximum(list));}; var hs = A2($List.map,heightOf,es); var ws = A2($List.map,widthOf,es); if (_U.eq(es,_U.list([]))) return empty; else { var _p9 = dir; switch (_p9.ctor) {case "DUp": return A2(newFlow,maxOrZero(ws),$List.sum(hs)); case "DDown": return A2(newFlow,maxOrZero(ws),$List.sum(hs)); case "DLeft": return A2(newFlow,$List.sum(ws),maxOrZero(hs)); case "DRight": return A2(newFlow,$List.sum(ws),maxOrZero(hs)); case "DIn": return A2(newFlow,maxOrZero(ws),maxOrZero(hs)); default: return A2(newFlow,maxOrZero(ws),maxOrZero(hs));} } }); var Properties = F9(function (a,b,c,d,e,f,g,h,i) { return {id: a,width: b,height: c,opacity: d,color: e,href: f,tag: g,hover: h,click: i};}); var Element_elm_builtin = function (a) { return {ctor: "Element_elm_builtin",_0: a};}; var width = F2(function (newWidth,_p10) { var _p11 = _p10; var _p14 = _p11._0.props; var _p13 = _p11._0.element; var newHeight = function () { var _p12 = _p13; switch (_p12.ctor) {case "Image": return $Basics.round($Basics.toFloat(_p12._2) / $Basics.toFloat(_p12._1) * $Basics.toFloat(newWidth)); case "RawHtml": return $Basics.snd(A2($Native$Graphics$Element.htmlHeight,newWidth,_p13)); default: return _p14.height;} }(); return Element_elm_builtin({element: _p13,props: _U.update(_p14,{width: newWidth,height: newHeight})}); }); var height = F2(function (newHeight,_p15) { var _p16 = _p15; return Element_elm_builtin({element: _p16._0.element,props: _U.update(_p16._0.props,{height: newHeight})}); }); var size = F3(function (w,h,e) { return A2(height,h,A2(width,w,e));}); var opacity = F2(function (givenOpacity,_p17) { var _p18 = _p17; return Element_elm_builtin({element: _p18._0.element,props: _U.update(_p18._0.props,{opacity: givenOpacity})}); }); var color = F2(function (clr,_p19) { var _p20 = _p19; return Element_elm_builtin({element: _p20._0.element,props: _U.update(_p20._0.props,{color: $Maybe.Just(clr)})}); }); var tag = F2(function (name,_p21) { var _p22 = _p21;return Element_elm_builtin({element: _p22._0.element,props: _U.update(_p22._0.props,{tag: name})});}); var link = F2(function (href,_p23) { var _p24 = _p23; return Element_elm_builtin({element: _p24._0.element,props: _U.update(_p24._0.props,{href: href})}); }); return _elm.Graphics.Element.values = {_op: _op ,image: image ,fittedImage: fittedImage ,croppedImage: croppedImage ,tiledImage: tiledImage ,leftAligned: leftAligned ,rightAligned: rightAligned ,centered: centered ,justified: justified ,show: show ,width: width ,height: height ,size: size ,color: color ,opacity: opacity ,link: link ,tag: tag ,widthOf: widthOf ,heightOf: heightOf ,sizeOf: sizeOf ,flow: flow ,up: up ,down: down ,left: left ,right: right ,inward: inward ,outward: outward ,layers: layers ,above: above ,below: below ,beside: beside ,empty: empty ,spacer: spacer ,container: container ,middle: middle ,midTop: midTop ,midBottom: midBottom ,midLeft: midLeft ,midRight: midRight ,topLeft: topLeft ,topRight: topRight ,bottomLeft: bottomLeft ,bottomRight: bottomRight ,absolute: absolute ,relative: relative ,middleAt: middleAt ,midTopAt: midTopAt ,midBottomAt: midBottomAt ,midLeftAt: midLeftAt ,midRightAt: midRightAt ,topLeftAt: topLeftAt ,topRightAt: topRightAt ,bottomLeftAt: bottomLeftAt ,bottomRightAt: bottomRightAt}; }; Elm.Graphics = Elm.Graphics || {}; Elm.Graphics.Collage = Elm.Graphics.Collage || {}; Elm.Graphics.Collage.make = function (_elm) { "use strict"; _elm.Graphics = _elm.Graphics || {}; _elm.Graphics.Collage = _elm.Graphics.Collage || {}; if (_elm.Graphics.Collage.values) return _elm.Graphics.Collage.values; var _U = Elm.Native.Utils.make(_elm), $Basics = Elm.Basics.make(_elm), $Color = Elm.Color.make(_elm), $Graphics$Element = Elm.Graphics.Element.make(_elm), $List = Elm.List.make(_elm), $Native$Graphics$Collage = Elm.Native.Graphics.Collage.make(_elm), $Text = Elm.Text.make(_elm), $Transform2D = Elm.Transform2D.make(_elm); var _op = {}; var Shape = function (a) { return {ctor: "Shape",_0: a};}; var polygon = function (points) { return Shape(points);}; var rect = F2(function (w,h) { var hh = h / 2; var hw = w / 2; return Shape(_U.list([{ctor: "_Tuple2",_0: 0 - hw,_1: 0 - hh} ,{ctor: "_Tuple2",_0: 0 - hw,_1: hh} ,{ctor: "_Tuple2",_0: hw,_1: hh} ,{ctor: "_Tuple2",_0: hw,_1: 0 - hh}])); }); var square = function (n) { return A2(rect,n,n);}; var oval = F2(function (w,h) { var hh = h / 2; var hw = w / 2; var n = 50; var t = 2 * $Basics.pi / n; var f = function (i) { return {ctor: "_Tuple2",_0: hw * $Basics.cos(t * i),_1: hh * $Basics.sin(t * i)};}; return Shape(A2($List.map,f,_U.range(0,n - 1))); }); var circle = function (r) { return A2(oval,2 * r,2 * r);}; var ngon = F2(function (n,r) { var m = $Basics.toFloat(n); var t = 2 * $Basics.pi / m; var f = function (i) { return {ctor: "_Tuple2",_0: r * $Basics.cos(t * i),_1: r * $Basics.sin(t * i)};}; return Shape(A2($List.map,f,_U.range(0,m - 1))); }); var Path = function (a) { return {ctor: "Path",_0: a};}; var path = function (ps) { return Path(ps);}; var segment = F2(function (p1,p2) { return Path(_U.list([p1,p2]));}); var collage = $Native$Graphics$Collage.collage; var Fill = function (a) { return {ctor: "Fill",_0: a};}; var Line = function (a) { return {ctor: "Line",_0: a};}; var FGroup = F2(function (a,b) { return {ctor: "FGroup",_0: a,_1: b};}); var FElement = function (a) { return {ctor: "FElement",_0: a};}; var FImage = F4(function (a,b,c,d) { return {ctor: "FImage",_0: a,_1: b,_2: c,_3: d};}); var FText = function (a) { return {ctor: "FText",_0: a};}; var FOutlinedText = F2(function (a,b) { return {ctor: "FOutlinedText",_0: a,_1: b};}); var FShape = F2(function (a,b) { return {ctor: "FShape",_0: a,_1: b};}); var FPath = F2(function (a,b) { return {ctor: "FPath",_0: a,_1: b};}); var LineStyle = F6(function (a,b,c,d,e,f) { return {color: a,width: b,cap: c,join: d,dashing: e,dashOffset: f};}); var Clipped = {ctor: "Clipped"}; var Sharp = function (a) { return {ctor: "Sharp",_0: a};}; var Smooth = {ctor: "Smooth"}; var Padded = {ctor: "Padded"}; var Round = {ctor: "Round"}; var Flat = {ctor: "Flat"}; var defaultLine = {color: $Color.black,width: 1,cap: Flat,join: Sharp(10),dashing: _U.list([]),dashOffset: 0}; var solid = function (clr) { return _U.update(defaultLine,{color: clr});}; var dashed = function (clr) { return _U.update(defaultLine,{color: clr,dashing: _U.list([8,4])});}; var dotted = function (clr) { return _U.update(defaultLine,{color: clr,dashing: _U.list([3,3])});}; var Grad = function (a) { return {ctor: "Grad",_0: a};}; var Texture = function (a) { return {ctor: "Texture",_0: a};}; var Solid = function (a) { return {ctor: "Solid",_0: a};}; var Form_elm_builtin = function (a) { return {ctor: "Form_elm_builtin",_0: a};}; var form = function (f) { return Form_elm_builtin({theta: 0,scale: 1,x: 0,y: 0,alpha: 1,form: f});}; var fill = F2(function (style,_p0) { var _p1 = _p0;return form(A2(FShape,Fill(style),_p1._0));}); var filled = F2(function (color,shape) { return A2(fill,Solid(color),shape);}); var textured = F2(function (src,shape) { return A2(fill,Texture(src),shape);}); var gradient = F2(function (grad,shape) { return A2(fill,Grad(grad),shape);}); var outlined = F2(function (style,_p2) { var _p3 = _p2;return form(A2(FShape,Line(style),_p3._0));}); var traced = F2(function (style,_p4) { var _p5 = _p4;return form(A2(FPath,style,_p5._0));}); var sprite = F4(function (w,h,pos,src) { return form(A4(FImage,w,h,pos,src));}); var toForm = function (e) { return form(FElement(e));}; var group = function (fs) { return form(A2(FGroup,$Transform2D.identity,fs));}; var groupTransform = F2(function (matrix,fs) { return form(A2(FGroup,matrix,fs));}); var text = function (t) { return form(FText(t));}; var outlinedText = F2(function (ls,t) { return form(A2(FOutlinedText,ls,t));}); var move = F2(function (_p7,_p6) { var _p8 = _p7; var _p9 = _p6; var _p10 = _p9._0; return Form_elm_builtin(_U.update(_p10,{x: _p10.x + _p8._0,y: _p10.y + _p8._1})); }); var moveX = F2(function (x,_p11) { var _p12 = _p11;var _p13 = _p12._0;return Form_elm_builtin(_U.update(_p13,{x: _p13.x + x}));}); var moveY = F2(function (y,_p14) { var _p15 = _p14;var _p16 = _p15._0;return Form_elm_builtin(_U.update(_p16,{y: _p16.y + y}));}); var scale = F2(function (s,_p17) { var _p18 = _p17;var _p19 = _p18._0;return Form_elm_builtin(_U.update(_p19,{scale: _p19.scale * s}));}); var rotate = F2(function (t,_p20) { var _p21 = _p20;var _p22 = _p21._0;return Form_elm_builtin(_U.update(_p22,{theta: _p22.theta + t}));}); var alpha = F2(function (a,_p23) { var _p24 = _p23;return Form_elm_builtin(_U.update(_p24._0,{alpha: a}));}); return _elm.Graphics.Collage.values = {_op: _op ,collage: collage ,toForm: toForm ,filled: filled ,textured: textured ,gradient: gradient ,outlined: outlined ,traced: traced ,text: text ,outlinedText: outlinedText ,move: move ,moveX: moveX ,moveY: moveY ,scale: scale ,rotate: rotate ,alpha: alpha ,group: group ,groupTransform: groupTransform ,rect: rect ,oval: oval ,square: square ,circle: circle ,ngon: ngon ,polygon: polygon ,segment: segment ,path: path ,solid: solid ,dashed: dashed ,dotted: dotted ,defaultLine: defaultLine ,LineStyle: LineStyle ,Flat: Flat ,Round: Round ,Padded: Padded ,Smooth: Smooth ,Sharp: Sharp ,Clipped: Clipped}; }; Elm.Native.Debug = {}; Elm.Native.Debug.make = function(localRuntime) { localRuntime.Native = localRuntime.Native || {}; localRuntime.Native.Debug = localRuntime.Native.Debug || {}; if (localRuntime.Native.Debug.values) { return localRuntime.Native.Debug.values; } var toString = Elm.Native.Utils.make(localRuntime).toString; function log(tag, value) { var msg = tag + ': ' + toString(value); var process = process || {}; if (process.stdout) { process.stdout.write(msg); } else { console.log(msg); } return value; } function crash(message) { throw new Error(message); } function tracePath(tag, form) { if (localRuntime.debug) { return localRuntime.debug.trace(tag, form); } return form; } function watch(tag, value) { if (localRuntime.debug) { localRuntime.debug.watch(tag, value); } return value; } function watchSummary(tag, summarize, value) { if (localRuntime.debug) { localRuntime.debug.watch(tag, summarize(value)); } return value; } return localRuntime.Native.Debug.values = { crash: crash, tracePath: F2(tracePath), log: F2(log), watch: F2(watch), watchSummary: F3(watchSummary) }; }; Elm.Debug = Elm.Debug || {}; Elm.Debug.make = function (_elm) { "use strict"; _elm.Debug = _elm.Debug || {}; if (_elm.Debug.values) return _elm.Debug.values; var _U = Elm.Native.Utils.make(_elm),$Graphics$Collage = Elm.Graphics.Collage.make(_elm),$Native$Debug = Elm.Native.Debug.make(_elm); var _op = {}; var trace = $Native$Debug.tracePath; var watchSummary = $Native$Debug.watchSummary; var watch = $Native$Debug.watch; var crash = $Native$Debug.crash; var log = $Native$Debug.log; return _elm.Debug.values = {_op: _op,log: log,crash: crash,watch: watch,watchSummary: watchSummary,trace: trace}; }; Elm.Native.Task = {}; Elm.Native.Task.make = function(localRuntime) { localRuntime.Native = localRuntime.Native || {}; localRuntime.Native.Task = localRuntime.Native.Task || {}; if (localRuntime.Native.Task.values) { return localRuntime.Native.Task.values; } var Result = Elm.Result.make(localRuntime); var Signal; var Utils = Elm.Native.Utils.make(localRuntime); // CONSTRUCTORS function succeed(value) { return { tag: 'Succeed', value: value }; } function fail(error) { return { tag: 'Fail', value: error }; } function asyncFunction(func) { return { tag: 'Async', asyncFunction: func }; } function andThen(task, callback) { return { tag: 'AndThen', task: task, callback: callback }; } function catch_(task, callback) { return { tag: 'Catch', task: task, callback: callback }; } // RUNNER function perform(task) { runTask({ task: task }, function() {}); } function performSignal(name, signal) { var workQueue = []; function onComplete() { workQueue.shift(); if (workQueue.length > 0) { var task = workQueue[0]; setTimeout(function() { runTask(task, onComplete); }, 0); } } function register(task) { var root = { task: task }; workQueue.push(root); if (workQueue.length === 1) { runTask(root, onComplete); } } if (!Signal) { Signal = Elm.Native.Signal.make(localRuntime); } Signal.output('perform-tasks-' + name, register, signal); register(signal.value); return signal; } function mark(status, task) { return { status: status, task: task }; } function runTask(root, onComplete) { var result = mark('runnable', root.task); while (result.status === 'runnable') { result = stepTask(onComplete, root, result.task); } if (result.status === 'done') { root.task = result.task; onComplete(); } if (result.status === 'blocked') { root.task = result.task; } } function stepTask(onComplete, root, task) { var tag = task.tag; if (tag === 'Succeed' || tag === 'Fail') { return mark('done', task); } if (tag === 'Async') { var placeHolder = {}; var couldBeSync = true; var wasSync = false; task.asyncFunction(function(result) { placeHolder.tag = result.tag; placeHolder.value = result.value; if (couldBeSync) { wasSync = true; } else { runTask(root, onComplete); } }); couldBeSync = false; return mark(wasSync ? 'done' : 'blocked', placeHolder); } if (tag === 'AndThen' || tag === 'Catch') { var result = mark('runnable', task.task); while (result.status === 'runnable') { result = stepTask(onComplete, root, result.task); } if (result.status === 'done') { var activeTask = result.task; var activeTag = activeTask.tag; var succeedChain = activeTag === 'Succeed' && tag === 'AndThen'; var failChain = activeTag === 'Fail' && tag === 'Catch'; return (succeedChain || failChain) ? mark('runnable', task.callback(activeTask.value)) : mark('runnable', activeTask); } if (result.status === 'blocked') { return mark('blocked', { tag: tag, task: result.task, callback: task.callback }); } } } // THREADS function sleep(time) { return asyncFunction(function(callback) { setTimeout(function() { callback(succeed(Utils.Tuple0)); }, time); }); } function spawn(task) { return asyncFunction(function(callback) { var id = setTimeout(function() { perform(task); }, 0); callback(succeed(id)); }); } return localRuntime.Native.Task.values = { succeed: succeed, fail: fail, asyncFunction: asyncFunction, andThen: F2(andThen), catch_: F2(catch_), perform: perform, performSignal: performSignal, spawn: spawn, sleep: sleep }; }; Elm.Result = Elm.Result || {}; Elm.Result.make = function (_elm) { "use strict"; _elm.Result = _elm.Result || {}; if (_elm.Result.values) return _elm.Result.values; var _U = Elm.Native.Utils.make(_elm),$Maybe = Elm.Maybe.make(_elm); var _op = {}; var toMaybe = function (result) { var _p0 = result;if (_p0.ctor === "Ok") { return $Maybe.Just(_p0._0);} else { return $Maybe.Nothing;}}; var withDefault = F2(function (def,result) { var _p1 = result;if (_p1.ctor === "Ok") { return _p1._0;} else { return def;}}); var Err = function (a) { return {ctor: "Err",_0: a};}; var andThen = F2(function (result,callback) { var _p2 = result;if (_p2.ctor === "Ok") { return callback(_p2._0);} else { return Err(_p2._0);}}); var Ok = function (a) { return {ctor: "Ok",_0: a};}; var map = F2(function (func,ra) { var _p3 = ra;if (_p3.ctor === "Ok") { return Ok(func(_p3._0));} else { return Err(_p3._0);}}); var map2 = F3(function (func,ra,rb) { var _p4 = {ctor: "_Tuple2",_0: ra,_1: rb}; if (_p4._0.ctor === "Ok") { if (_p4._1.ctor === "Ok") { return Ok(A2(func,_p4._0._0,_p4._1._0)); } else { return Err(_p4._1._0); } } else { return Err(_p4._0._0); } }); var map3 = F4(function (func,ra,rb,rc) { var _p5 = {ctor: "_Tuple3",_0: ra,_1: rb,_2: rc}; if (_p5._0.ctor === "Ok") { if (_p5._1.ctor === "Ok") { if (_p5._2.ctor === "Ok") { return Ok(A3(func,_p5._0._0,_p5._1._0,_p5._2._0)); } else { return Err(_p5._2._0); } } else { return Err(_p5._1._0); } } else { return Err(_p5._0._0); } }); var map4 = F5(function (func,ra,rb,rc,rd) { var _p6 = {ctor: "_Tuple4",_0: ra,_1: rb,_2: rc,_3: rd}; if (_p6._0.ctor === "Ok") { if (_p6._1.ctor === "Ok") { if (_p6._2.ctor === "Ok") { if (_p6._3.ctor === "Ok") { return Ok(A4(func,_p6._0._0,_p6._1._0,_p6._2._0,_p6._3._0)); } else { return Err(_p6._3._0); } } else { return Err(_p6._2._0); } } else { return Err(_p6._1._0); } } else { return Err(_p6._0._0); } }); var map5 = F6(function (func,ra,rb,rc,rd,re) { var _p7 = {ctor: "_Tuple5",_0: ra,_1: rb,_2: rc,_3: rd,_4: re}; if (_p7._0.ctor === "Ok") { if (_p7._1.ctor === "Ok") { if (_p7._2.ctor === "Ok") { if (_p7._3.ctor === "Ok") { if (_p7._4.ctor === "Ok") { return Ok(A5(func,_p7._0._0,_p7._1._0,_p7._2._0,_p7._3._0,_p7._4._0)); } else { return Err(_p7._4._0); } } else { return Err(_p7._3._0); } } else { return Err(_p7._2._0); } } else { return Err(_p7._1._0); } } else { return Err(_p7._0._0); } }); var formatError = F2(function (f,result) { var _p8 = result;if (_p8.ctor === "Ok") { return Ok(_p8._0);} else { return Err(f(_p8._0));}}); var fromMaybe = F2(function (err,maybe) { var _p9 = maybe;if (_p9.ctor === "Just") { return Ok(_p9._0);} else { return Err(err);}}); return _elm.Result.values = {_op: _op ,withDefault: withDefault ,map: map ,map2: map2 ,map3: map3 ,map4: map4 ,map5: map5 ,andThen: andThen ,toMaybe: toMaybe ,fromMaybe: fromMaybe ,formatError: formatError ,Ok: Ok ,Err: Err}; }; Elm.Task = Elm.Task || {}; Elm.Task.make = function (_elm) { "use strict"; _elm.Task = _elm.Task || {}; if (_elm.Task.values) return _elm.Task.values; var _U = Elm.Native.Utils.make(_elm), $List = Elm.List.make(_elm), $Maybe = Elm.Maybe.make(_elm), $Native$Task = Elm.Native.Task.make(_elm), $Result = Elm.Result.make(_elm); var _op = {}; var sleep = $Native$Task.sleep; var spawn = $Native$Task.spawn; var ThreadID = function (a) { return {ctor: "ThreadID",_0: a};}; var onError = $Native$Task.catch_; var andThen = $Native$Task.andThen; var fail = $Native$Task.fail; var mapError = F2(function (f,task) { return A2(onError,task,function (err) { return fail(f(err));});}); var succeed = $Native$Task.succeed; var map = F2(function (func,taskA) { return A2(andThen,taskA,function (a) { return succeed(func(a));});}); var map2 = F3(function (func,taskA,taskB) { return A2(andThen,taskA,function (a) { return A2(andThen,taskB,function (b) { return succeed(A2(func,a,b));});}); }); var map3 = F4(function (func,taskA,taskB,taskC) { return A2(andThen, taskA, function (a) { return A2(andThen,taskB,function (b) { return A2(andThen,taskC,function (c) { return succeed(A3(func,a,b,c));});}); }); }); var map4 = F5(function (func,taskA,taskB,taskC,taskD) { return A2(andThen, taskA, function (a) { return A2(andThen, taskB, function (b) { return A2(andThen,taskC,function (c) { return A2(andThen,taskD,function (d) { return succeed(A4(func,a,b,c,d));});}); }); }); }); var map5 = F6(function (func,taskA,taskB,taskC,taskD,taskE) { return A2(andThen, taskA, function (a) { return A2(andThen, taskB, function (b) { return A2(andThen, taskC, function (c) { return A2(andThen,taskD,function (d) { return A2(andThen,taskE,function (e) { return succeed(A5(func,a,b,c,d,e));});}); }); }); }); }); var andMap = F2(function (taskFunc,taskValue) { return A2(andThen,taskFunc,function (func) { return A2(andThen,taskValue,function (value) { return succeed(func(value));});}); }); var sequence = function (tasks) { var _p0 = tasks; if (_p0.ctor === "[]") { return succeed(_U.list([])); } else { return A3(map2,F2(function (x,y) { return A2($List._op["::"],x,y);}),_p0._0,sequence(_p0._1)); } }; var toMaybe = function (task) { return A2(onError,A2(map,$Maybe.Just,task),function (_p1) { return succeed($Maybe.Nothing);});}; var fromMaybe = F2(function ($default,maybe) { var _p2 = maybe;if (_p2.ctor === "Just") { return succeed(_p2._0);} else { return fail($default);}}); var toResult = function (task) { return A2(onError,A2(map,$Result.Ok,task),function (msg) { return succeed($Result.Err(msg));});}; var fromResult = function (result) { var _p3 = result;if (_p3.ctor === "Ok") { return succeed(_p3._0);} else { return fail(_p3._0);}}; var Task = {ctor: "Task"}; return _elm.Task.values = {_op: _op ,succeed: succeed ,fail: fail ,map: map ,map2: map2 ,map3: map3 ,map4: map4 ,map5: map5 ,andMap: andMap ,sequence: sequence ,andThen: andThen ,onError: onError ,mapError: mapError ,toMaybe: toMaybe ,fromMaybe: fromMaybe ,toResult: toResult ,fromResult: fromResult ,spawn: spawn ,sleep: sleep}; }; Elm.Signal = Elm.Signal || {}; Elm.Signal.make = function (_elm) { "use strict"; _elm.Signal = _elm.Signal || {}; if (_elm.Signal.values) return _elm.Signal.values; var _U = Elm.Native.Utils.make(_elm), $Basics = Elm.Basics.make(_elm), $Debug = Elm.Debug.make(_elm), $List = Elm.List.make(_elm), $Maybe = Elm.Maybe.make(_elm), $Native$Signal = Elm.Native.Signal.make(_elm), $Task = Elm.Task.make(_elm); var _op = {}; var send = F2(function (_p0,value) { var _p1 = _p0; return A2($Task.onError,_p1._0(value),function (_p2) { return $Task.succeed({ctor: "_Tuple0"});}); }); var Message = function (a) { return {ctor: "Message",_0: a};}; var message = F2(function (_p3,value) { var _p4 = _p3;return Message(_p4._0(value));}); var mailbox = $Native$Signal.mailbox; var Address = function (a) { return {ctor: "Address",_0: a};}; var forwardTo = F2(function (_p5,f) { var _p6 = _p5;return Address(function (x) { return _p6._0(f(x));});}); var Mailbox = F2(function (a,b) { return {address: a,signal: b};}); var sampleOn = $Native$Signal.sampleOn; var dropRepeats = $Native$Signal.dropRepeats; var filterMap = $Native$Signal.filterMap; var filter = F3(function (isOk,base,signal) { return A3(filterMap,function (value) { return isOk(value) ? $Maybe.Just(value) : $Maybe.Nothing;},base,signal); }); var merge = F2(function (left,right) { return A3($Native$Signal.genericMerge,$Basics.always,left,right);}); var mergeMany = function (signalList) { var _p7 = $List.reverse(signalList); if (_p7.ctor === "[]") { return _U.crashCase("Signal",{start: {line: 184,column: 3},end: {line: 189,column: 40}},_p7)("mergeMany was given an empty list!"); } else { return A3($List.foldl,merge,_p7._0,_p7._1); } }; var foldp = $Native$Signal.foldp; var map5 = $Native$Signal.map5; var map4 = $Native$Signal.map4; var map3 = $Native$Signal.map3; var map2 = $Native$Signal.map2; var map = $Native$Signal.map; var constant = $Native$Signal.constant; var Signal = {ctor: "Signal"}; return _elm.Signal.values = {_op: _op ,merge: merge ,mergeMany: mergeMany ,map: map ,map2: map2 ,map3: map3 ,map4: map4 ,map5: map5 ,constant: constant ,dropRepeats: dropRepeats ,filter: filter ,filterMap: filterMap ,sampleOn: sampleOn ,foldp: foldp ,mailbox: mailbox ,send: send ,message: message ,forwardTo: forwardTo ,Mailbox: Mailbox}; }; Elm.Time = Elm.Time || {}; Elm.Time.make = function (_elm) { "use strict"; _elm.Time = _elm.Time || {}; if (_elm.Time.values) return _elm.Time.values; var _U = Elm.Native.Utils.make(_elm), $Basics = Elm.Basics.make(_elm), $Native$Signal = Elm.Native.Signal.make(_elm), $Native$Time = Elm.Native.Time.make(_elm), $Signal = Elm.Signal.make(_elm); var _op = {}; var delay = $Native$Signal.delay; var since = F2(function (time,signal) { var stop = A2($Signal.map,$Basics.always(-1),A2(delay,time,signal)); var start = A2($Signal.map,$Basics.always(1),signal); var delaydiff = A3($Signal.foldp,F2(function (x,y) { return x + y;}),0,A2($Signal.merge,start,stop)); return A2($Signal.map,F2(function (x,y) { return !_U.eq(x,y);})(0),delaydiff); }); var timestamp = $Native$Signal.timestamp; var every = $Native$Time.every; var fpsWhen = $Native$Time.fpsWhen; var fps = function (targetFrames) { return A2(fpsWhen,targetFrames,$Signal.constant(true));}; var inMilliseconds = function (t) { return t;}; var millisecond = 1; var second = 1000 * millisecond; var minute = 60 * second; var hour = 60 * minute; var inHours = function (t) { return t / hour;}; var inMinutes = function (t) { return t / minute;}; var inSeconds = function (t) { return t / second;}; return _elm.Time.values = {_op: _op ,millisecond: millisecond ,second: second ,minute: minute ,hour: hour ,inMilliseconds: inMilliseconds ,inSeconds: inSeconds ,inMinutes: inMinutes ,inHours: inHours ,fps: fps ,fpsWhen: fpsWhen ,every: every ,timestamp: timestamp ,delay: delay ,since: since}; }; Elm.Native.String = {}; Elm.Native.String.make = function(localRuntime) { localRuntime.Native = localRuntime.Native || {}; localRuntime.Native.String = localRuntime.Native.String || {}; if (localRuntime.Native.String.values) { return localRuntime.Native.String.values; } if ('values' in Elm.Native.String) { return localRuntime.Native.String.values = Elm.Native.String.values; } var Char = Elm.Char.make(localRuntime); var List = Elm.Native.List.make(localRuntime); var Maybe = Elm.Maybe.make(localRuntime); var Result = Elm.Result.make(localRuntime); var Utils = Elm.Native.Utils.make(localRuntime); function isEmpty(str) { return str.length === 0; } function cons(chr, str) { return chr + str; } function uncons(str) { var hd = str[0]; if (hd) { return Maybe.Just(Utils.Tuple2(Utils.chr(hd), str.slice(1))); } return Maybe.Nothing; } function append(a, b) { return a + b; } function concat(strs) { return List.toArray(strs).join(''); } function length(str) { return str.length; } function map(f, str) { var out = str.split(''); for (var i = out.length; i--; ) { out[i] = f(Utils.chr(out[i])); } return out.join(''); } function filter(pred, str) { return str.split('').map(Utils.chr).filter(pred).join(''); } function reverse(str) { return str.split('').reverse().join(''); } function foldl(f, b, str) { var len = str.length; for (var i = 0; i < len; ++i) { b = A2(f, Utils.chr(str[i]), b); } return b; } function foldr(f, b, str) { for (var i = str.length; i--; ) { b = A2(f, Utils.chr(str[i]), b); } return b; } function split(sep, str) { return List.fromArray(str.split(sep)); } function join(sep, strs) { return List.toArray(strs).join(sep); } function repeat(n, str) { var result = ''; while (n > 0) { if (n & 1) { result += str; } n >>= 1, str += str; } return result; } function slice(start, end, str) { return str.slice(start, end); } function left(n, str) { return n < 1 ? '' : str.slice(0, n); } function right(n, str) { return n < 1 ? '' : str.slice(-n); } function dropLeft(n, str) { return n < 1 ? str : str.slice(n); } function dropRight(n, str) { return n < 1 ? str : str.slice(0, -n); } function pad(n, chr, str) { var half = (n - str.length) / 2; return repeat(Math.ceil(half), chr) + str + repeat(half | 0, chr); } function padRight(n, chr, str) { return str + repeat(n - str.length, chr); } function padLeft(n, chr, str) { return repeat(n - str.length, chr) + str; } function trim(str) { return str.trim(); } function trimLeft(str) { return str.replace(/^\s+/, ''); } function trimRight(str) { return str.replace(/\s+$/, ''); } function words(str) { return List.fromArray(str.trim().split(/\s+/g)); } function lines(str) { return List.fromArray(str.split(/\r\n|\r|\n/g)); } function toUpper(str) { return str.toUpperCase(); } function toLower(str) { return str.toLowerCase(); } function any(pred, str) { for (var i = str.length; i--; ) { if (pred(Utils.chr(str[i]))) { return true; } } return false; } function all(pred, str) { for (var i = str.length; i--; ) { if (!pred(Utils.chr(str[i]))) { return false; } } return true; } function contains(sub, str) { return str.indexOf(sub) > -1; } function startsWith(sub, str) { return str.indexOf(sub) === 0; } function endsWith(sub, str) { return str.length >= sub.length && str.lastIndexOf(sub) === str.length - sub.length; } function indexes(sub, str) { var subLen = sub.length; var i = 0; var is = []; while ((i = str.indexOf(sub, i)) > -1) { is.push(i); i = i + subLen; } return List.fromArray(is); } function toInt(s) { var len = s.length; if (len === 0) { return Result.Err("could not convert string '" + s + "' to an Int" ); } var start = 0; if (s[0] === '-') { if (len === 1) { return Result.Err("could not convert string '" + s + "' to an Int" ); } start = 1; } for (var i = start; i < len; ++i) { if (!Char.isDigit(s[i])) { return Result.Err("could not convert string '" + s + "' to an Int" ); } } return Result.Ok(parseInt(s, 10)); } function toFloat(s) { var len = s.length; if (len === 0) { return Result.Err("could not convert string '" + s + "' to a Float" ); } var start = 0; if (s[0] === '-') { if (len === 1) { return Result.Err("could not convert string '" + s + "' to a Float" ); } start = 1; } var dotCount = 0; for (var i = start; i < len; ++i) { if (Char.isDigit(s[i])) { continue; } if (s[i] === '.') { dotCount += 1; if (dotCount <= 1) { continue; } } return Result.Err("could not convert string '" + s + "' to a Float" ); } return Result.Ok(parseFloat(s)); } function toList(str) { return List.fromArray(str.split('').map(Utils.chr)); } function fromList(chars) { return List.toArray(chars).join(''); } return Elm.Native.String.values = { isEmpty: isEmpty, cons: F2(cons), uncons: uncons, append: F2(append), concat: concat, length: length, map: F2(map), filter: F2(filter), reverse: reverse, foldl: F3(foldl), foldr: F3(foldr), split: F2(split), join: F2(join), repeat: F2(repeat), slice: F3(slice), left: F2(left), right: F2(right), dropLeft: F2(dropLeft), dropRight: F2(dropRight), pad: F3(pad), padLeft: F3(padLeft), padRight: F3(padRight), trim: trim, trimLeft: trimLeft, trimRight: trimRight, words: words, lines: lines, toUpper: toUpper, toLower: toLower, any: F2(any), all: F2(all), contains: F2(contains), startsWith: F2(startsWith), endsWith: F2(endsWith), indexes: F2(indexes), toInt: toInt, toFloat: toFloat, toList: toList, fromList: fromList }; }; Elm.String = Elm.String || {}; Elm.String.make = function (_elm) { "use strict"; _elm.String = _elm.String || {}; if (_elm.String.values) return _elm.String.values; var _U = Elm.Native.Utils.make(_elm),$Maybe = Elm.Maybe.make(_elm),$Native$String = Elm.Native.String.make(_elm),$Result = Elm.Result.make(_elm); var _op = {}; var fromList = $Native$String.fromList; var toList = $Native$String.toList; var toFloat = $Native$String.toFloat; var toInt = $Native$String.toInt; var indices = $Native$String.indexes; var indexes = $Native$String.indexes; var endsWith = $Native$String.endsWith; var startsWith = $Native$String.startsWith; var contains = $Native$String.contains; var all = $Native$String.all; var any = $Native$String.any; var toLower = $Native$String.toLower; var toUpper = $Native$String.toUpper; var lines = $Native$String.lines; var words = $Native$String.words; var trimRight = $Native$String.trimRight; var trimLeft = $Native$String.trimLeft; var trim = $Native$String.trim; var padRight = $Native$String.padRight; var padLeft = $Native$String.padLeft; var pad = $Native$String.pad; var dropRight = $Native$String.dropRight; var dropLeft = $Native$String.dropLeft; var right = $Native$String.right; var left = $Native$String.left; var slice = $Native$String.slice; var repeat = $Native$String.repeat; var join = $Native$String.join; var split = $Native$String.split; var foldr = $Native$String.foldr; var foldl = $Native$String.foldl; var reverse = $Native$String.reverse; var filter = $Native$String.filter; var map = $Native$String.map; var length = $Native$String.length; var concat = $Native$String.concat; var append = $Native$String.append; var uncons = $Native$String.uncons; var cons = $Native$String.cons; var fromChar = function ($char) { return A2(cons,$char,"");}; var isEmpty = $Native$String.isEmpty; return _elm.String.values = {_op: _op ,isEmpty: isEmpty ,length: length ,reverse: reverse ,repeat: repeat ,cons: cons ,uncons: uncons ,fromChar: fromChar ,append: append ,concat: concat ,split: split ,join: join ,words: words ,lines: lines ,slice: slice ,left: left ,right: right ,dropLeft: dropLeft ,dropRight: dropRight ,contains: contains ,startsWith: startsWith ,endsWith: endsWith ,indexes: indexes ,indices: indices ,toInt: toInt ,toFloat: toFloat ,toList: toList ,fromList: fromList ,toUpper: toUpper ,toLower: toLower ,pad: pad ,padLeft: padLeft ,padRight: padRight ,trim: trim ,trimLeft: trimLeft ,trimRight: trimRight ,map: map ,filter: filter ,foldl: foldl ,foldr: foldr ,any: any ,all: all}; }; Elm.Dict = Elm.Dict || {}; Elm.Dict.make = function (_elm) { "use strict"; _elm.Dict = _elm.Dict || {}; if (_elm.Dict.values) return _elm.Dict.values; var _U = Elm.Native.Utils.make(_elm), $Basics = Elm.Basics.make(_elm), $List = Elm.List.make(_elm), $Maybe = Elm.Maybe.make(_elm), $Native$Debug = Elm.Native.Debug.make(_elm), $String = Elm.String.make(_elm); var _op = {}; var foldr = F3(function (f,acc,t) { foldr: while (true) { var _p0 = t; if (_p0.ctor === "RBEmpty_elm_builtin") { return acc; } else { var _v1 = f,_v2 = A3(f,_p0._1,_p0._2,A3(foldr,f,acc,_p0._4)),_v3 = _p0._3; f = _v1; acc = _v2; t = _v3; continue foldr; } } }); var keys = function (dict) { return A3(foldr,F3(function (key,value,keyList) { return A2($List._op["::"],key,keyList);}),_U.list([]),dict);}; var values = function (dict) { return A3(foldr,F3(function (key,value,valueList) { return A2($List._op["::"],value,valueList);}),_U.list([]),dict);}; var toList = function (dict) { return A3(foldr,F3(function (key,value,list) { return A2($List._op["::"],{ctor: "_Tuple2",_0: key,_1: value},list);}),_U.list([]),dict); }; var foldl = F3(function (f,acc,dict) { foldl: while (true) { var _p1 = dict; if (_p1.ctor === "RBEmpty_elm_builtin") { return acc; } else { var _v5 = f,_v6 = A3(f,_p1._1,_p1._2,A3(foldl,f,acc,_p1._3)),_v7 = _p1._4; f = _v5; acc = _v6; dict = _v7; continue foldl; } } }); var reportRemBug = F4(function (msg,c,lgot,rgot) { return $Native$Debug.crash($String.concat(_U.list(["Internal red-black tree invariant violated, expected " ,msg ," and got " ,$Basics.toString(c) ,"/" ,lgot ,"/" ,rgot ,"\nPlease report this bug to "]))); }); var isBBlack = function (dict) { var _p2 = dict; _v8_2: do { if (_p2.ctor === "RBNode_elm_builtin") { if (_p2._0.ctor === "BBlack") { return true; } else { break _v8_2; } } else { if (_p2._0.ctor === "LBBlack") { return true; } else { break _v8_2; } } } while (false); return false; }; var Same = {ctor: "Same"}; var Remove = {ctor: "Remove"}; var Insert = {ctor: "Insert"}; var sizeHelp = F2(function (n,dict) { sizeHelp: while (true) { var _p3 = dict; if (_p3.ctor === "RBEmpty_elm_builtin") { return n; } else { var _v10 = A2(sizeHelp,n + 1,_p3._4),_v11 = _p3._3; n = _v10; dict = _v11; continue sizeHelp; } } }); var size = function (dict) { return A2(sizeHelp,0,dict);}; var get = F2(function (targetKey,dict) { get: while (true) { var _p4 = dict; if (_p4.ctor === "RBEmpty_elm_builtin") { return $Maybe.Nothing; } else { var _p5 = A2($Basics.compare,targetKey,_p4._1); switch (_p5.ctor) {case "LT": var _v14 = targetKey,_v15 = _p4._3; targetKey = _v14; dict = _v15; continue get; case "EQ": return $Maybe.Just(_p4._2); default: var _v16 = targetKey,_v17 = _p4._4; targetKey = _v16; dict = _v17; continue get;} } } }); var member = F2(function (key,dict) { var _p6 = A2(get,key,dict);if (_p6.ctor === "Just") { return true;} else { return false;}}); var maxWithDefault = F3(function (k,v,r) { maxWithDefault: while (true) { var _p7 = r; if (_p7.ctor === "RBEmpty_elm_builtin") { return {ctor: "_Tuple2",_0: k,_1: v}; } else { var _v20 = _p7._1,_v21 = _p7._2,_v22 = _p7._4; k = _v20; v = _v21; r = _v22; continue maxWithDefault; } } }); var RBEmpty_elm_builtin = function (a) { return {ctor: "RBEmpty_elm_builtin",_0: a};}; var RBNode_elm_builtin = F5(function (a,b,c,d,e) { return {ctor: "RBNode_elm_builtin",_0: a,_1: b,_2: c,_3: d,_4: e};}); var LBBlack = {ctor: "LBBlack"}; var LBlack = {ctor: "LBlack"}; var empty = RBEmpty_elm_builtin(LBlack); var isEmpty = function (dict) { return _U.eq(dict,empty);}; var map = F2(function (f,dict) { var _p8 = dict; if (_p8.ctor === "RBEmpty_elm_builtin") { return RBEmpty_elm_builtin(LBlack); } else { var _p9 = _p8._1; return A5(RBNode_elm_builtin,_p8._0,_p9,A2(f,_p9,_p8._2),A2(map,f,_p8._3),A2(map,f,_p8._4)); } }); var NBlack = {ctor: "NBlack"}; var BBlack = {ctor: "BBlack"}; var Black = {ctor: "Black"}; var ensureBlackRoot = function (dict) { var _p10 = dict; if (_p10.ctor === "RBNode_elm_builtin" && _p10._0.ctor === "Red") { return A5(RBNode_elm_builtin,Black,_p10._1,_p10._2,_p10._3,_p10._4); } else { return dict; } }; var blackish = function (t) { var _p11 = t; if (_p11.ctor === "RBNode_elm_builtin") { var _p12 = _p11._0; return _U.eq(_p12,Black) || _U.eq(_p12,BBlack); } else { return true; } }; var blacken = function (t) { var _p13 = t; if (_p13.ctor === "RBEmpty_elm_builtin") { return RBEmpty_elm_builtin(LBlack); } else { return A5(RBNode_elm_builtin,Black,_p13._1,_p13._2,_p13._3,_p13._4); } }; var Red = {ctor: "Red"}; var moreBlack = function (color) { var _p14 = color; switch (_p14.ctor) {case "Black": return BBlack; case "Red": return Black; case "NBlack": return Red; default: return $Native$Debug.crash("Can\'t make a double black node more black!");} }; var lessBlack = function (color) { var _p15 = color; switch (_p15.ctor) {case "BBlack": return Black; case "Black": return Red; case "Red": return NBlack; default: return $Native$Debug.crash("Can\'t make a negative black node less black!");} }; var lessBlackTree = function (dict) { var _p16 = dict; if (_p16.ctor === "RBNode_elm_builtin") { return A5(RBNode_elm_builtin,lessBlack(_p16._0),_p16._1,_p16._2,_p16._3,_p16._4); } else { return RBEmpty_elm_builtin(LBlack); } }; var balancedTree = function (col) { return function (xk) { return function (xv) { return function (yk) { return function (yv) { return function (zk) { return function (zv) { return function (a) { return function (b) { return function (c) { return function (d) { return A5(RBNode_elm_builtin, lessBlack(col), yk, yv, A5(RBNode_elm_builtin,Black,xk,xv,a,b), A5(RBNode_elm_builtin,Black,zk,zv,c,d)); }; }; }; }; }; }; }; }; }; }; }; var redden = function (t) { var _p17 = t; if (_p17.ctor === "RBEmpty_elm_builtin") { return $Native$Debug.crash("can\'t make a Leaf red"); } else { return A5(RBNode_elm_builtin,Red,_p17._1,_p17._2,_p17._3,_p17._4); } }; var balanceHelp = function (tree) { var _p18 = tree; _v31_6: do { _v31_5: do { _v31_4: do { _v31_3: do { _v31_2: do { _v31_1: do { _v31_0: do { if (_p18.ctor === "RBNode_elm_builtin") { if (_p18._3.ctor === "RBNode_elm_builtin") { if (_p18._4.ctor === "RBNode_elm_builtin") { switch (_p18._3._0.ctor) {case "Red": switch (_p18._4._0.ctor) {case "Red": if (_p18._3._3.ctor === "RBNode_elm_builtin" && _p18._3._3._0.ctor === "Red") { break _v31_0; } else { if (_p18._3._4.ctor === "RBNode_elm_builtin" && _p18._3._4._0.ctor === "Red") { break _v31_1; } else { if (_p18._4._3.ctor === "RBNode_elm_builtin" && _p18._4._3._0.ctor === "Red") { break _v31_2; } else { if (_p18._4._4.ctor === "RBNode_elm_builtin" && _p18._4._4._0.ctor === "Red") { break _v31_3; } else { break _v31_6; } } } } case "NBlack": if (_p18._3._3.ctor === "RBNode_elm_builtin" && _p18._3._3._0.ctor === "Red") { break _v31_0; } else { if (_p18._3._4.ctor === "RBNode_elm_builtin" && _p18._3._4._0.ctor === "Red") { break _v31_1; } else { if (_p18._0.ctor === "BBlack" && _p18._4._3.ctor === "RBNode_elm_builtin" && _p18._4._3._0.ctor === "Black" && _p18._4._4.ctor === "RBNode_elm_builtin" && _p18._4._4._0.ctor === "Black") { break _v31_4; } else { break _v31_6; } } } default: if (_p18._3._3.ctor === "RBNode_elm_builtin" && _p18._3._3._0.ctor === "Red") { break _v31_0; } else { if (_p18._3._4.ctor === "RBNode_elm_builtin" && _p18._3._4._0.ctor === "Red") { break _v31_1; } else { break _v31_6; } }} case "NBlack": switch (_p18._4._0.ctor) {case "Red": if (_p18._4._3.ctor === "RBNode_elm_builtin" && _p18._4._3._0.ctor === "Red") { break _v31_2; } else { if (_p18._4._4.ctor === "RBNode_elm_builtin" && _p18._4._4._0.ctor === "Red") { break _v31_3; } else { if (_p18._0.ctor === "BBlack" && _p18._3._3.ctor === "RBNode_elm_builtin" && _p18._3._3._0.ctor === "Black" && _p18._3._4.ctor === "RBNode_elm_builtin" && _p18._3._4._0.ctor === "Black") { break _v31_5; } else { break _v31_6; } } } case "NBlack": if (_p18._0.ctor === "BBlack") { if (_p18._4._3.ctor === "RBNode_elm_builtin" && _p18._4._3._0.ctor === "Black" && _p18._4._4.ctor === "RBNode_elm_builtin" && _p18._4._4._0.ctor === "Black") { break _v31_4; } else { if (_p18._3._3.ctor === "RBNode_elm_builtin" && _p18._3._3._0.ctor === "Black" && _p18._3._4.ctor === "RBNode_elm_builtin" && _p18._3._4._0.ctor === "Black") { break _v31_5; } else { break _v31_6; } } } else { break _v31_6; } default: if (_p18._0.ctor === "BBlack" && _p18._3._3.ctor === "RBNode_elm_builtin" && _p18._3._3._0.ctor === "Black" && _p18._3._4.ctor === "RBNode_elm_builtin" && _p18._3._4._0.ctor === "Black") { break _v31_5; } else { break _v31_6; }} default: switch (_p18._4._0.ctor) {case "Red": if (_p18._4._3.ctor === "RBNode_elm_builtin" && _p18._4._3._0.ctor === "Red") { break _v31_2; } else { if (_p18._4._4.ctor === "RBNode_elm_builtin" && _p18._4._4._0.ctor === "Red") { break _v31_3; } else { break _v31_6; } } case "NBlack": if (_p18._0.ctor === "BBlack" && _p18._4._3.ctor === "RBNode_elm_builtin" && _p18._4._3._0.ctor === "Black" && _p18._4._4.ctor === "RBNode_elm_builtin" && _p18._4._4._0.ctor === "Black") { break _v31_4; } else { break _v31_6; } default: break _v31_6;}} } else { switch (_p18._3._0.ctor) {case "Red": if (_p18._3._3.ctor === "RBNode_elm_builtin" && _p18._3._3._0.ctor === "Red") { break _v31_0; } else { if (_p18._3._4.ctor === "RBNode_elm_builtin" && _p18._3._4._0.ctor === "Red") { break _v31_1; } else { break _v31_6; } } case "NBlack": if (_p18._0.ctor === "BBlack" && _p18._3._3.ctor === "RBNode_elm_builtin" && _p18._3._3._0.ctor === "Black" && _p18._3._4.ctor === "RBNode_elm_builtin" && _p18._3._4._0.ctor === "Black") { break _v31_5; } else { break _v31_6; } default: break _v31_6;} } } else { if (_p18._4.ctor === "RBNode_elm_builtin") { switch (_p18._4._0.ctor) {case "Red": if (_p18._4._3.ctor === "RBNode_elm_builtin" && _p18._4._3._0.ctor === "Red") { break _v31_2; } else { if (_p18._4._4.ctor === "RBNode_elm_builtin" && _p18._4._4._0.ctor === "Red") { break _v31_3; } else { break _v31_6; } } case "NBlack": if (_p18._0.ctor === "BBlack" && _p18._4._3.ctor === "RBNode_elm_builtin" && _p18._4._3._0.ctor === "Black" && _p18._4._4.ctor === "RBNode_elm_builtin" && _p18._4._4._0.ctor === "Black") { break _v31_4; } else { break _v31_6; } default: break _v31_6;} } else { break _v31_6; } } } else { break _v31_6; } } while (false); return balancedTree(_p18._0)(_p18._3._3._1)(_p18._3._3._2)(_p18._3._1)(_p18._3._2)(_p18._1)(_p18._2)(_p18._3._3._3)(_p18._3._3._4)(_p18._3._4)(_p18._4); } while (false); return balancedTree(_p18._0)(_p18._3._1)(_p18._3._2)(_p18._3._4._1)(_p18._3._4._2)(_p18._1)(_p18._2)(_p18._3._3)(_p18._3._4._3)(_p18._3._4._4)(_p18._4); } while (false); return balancedTree(_p18._0)(_p18._1)(_p18._2)(_p18._4._3._1)(_p18._4._3._2)(_p18._4._1)(_p18._4._2)(_p18._3)(_p18._4._3._3)(_p18._4._3._4)(_p18._4._4); } while (false); return balancedTree(_p18._0)(_p18._1)(_p18._2)(_p18._4._1)(_p18._4._2)(_p18._4._4._1)(_p18._4._4._2)(_p18._3)(_p18._4._3)(_p18._4._4._3)(_p18._4._4._4); } while (false); return A5(RBNode_elm_builtin, Black, _p18._4._3._1, _p18._4._3._2, A5(RBNode_elm_builtin,Black,_p18._1,_p18._2,_p18._3,_p18._4._3._3), A5(balance,Black,_p18._4._1,_p18._4._2,_p18._4._3._4,redden(_p18._4._4))); } while (false); return A5(RBNode_elm_builtin, Black, _p18._3._4._1, _p18._3._4._2, A5(balance,Black,_p18._3._1,_p18._3._2,redden(_p18._3._3),_p18._3._4._3), A5(RBNode_elm_builtin,Black,_p18._1,_p18._2,_p18._3._4._4,_p18._4)); } while (false); return tree; }; var balance = F5(function (c,k,v,l,r) { var tree = A5(RBNode_elm_builtin,c,k,v,l,r);return blackish(tree) ? balanceHelp(tree) : tree;}); var bubble = F5(function (c,k,v,l,r) { return isBBlack(l) || isBBlack(r) ? A5(balance,moreBlack(c),k,v,lessBlackTree(l),lessBlackTree(r)) : A5(RBNode_elm_builtin,c,k,v,l,r); }); var removeMax = F5(function (c,k,v,l,r) { var _p19 = r; if (_p19.ctor === "RBEmpty_elm_builtin") { return A3(rem,c,l,r); } else { return A5(bubble,c,k,v,l,A5(removeMax,_p19._0,_p19._1,_p19._2,_p19._3,_p19._4)); } }); var rem = F3(function (c,l,r) { var _p20 = {ctor: "_Tuple2",_0: l,_1: r}; if (_p20._0.ctor === "RBEmpty_elm_builtin") { if (_p20._1.ctor === "RBEmpty_elm_builtin") { var _p21 = c; switch (_p21.ctor) {case "Red": return RBEmpty_elm_builtin(LBlack); case "Black": return RBEmpty_elm_builtin(LBBlack); default: return $Native$Debug.crash("cannot have bblack or nblack nodes at this point");} } else { var _p24 = _p20._1._0; var _p23 = _p20._0._0; var _p22 = {ctor: "_Tuple3",_0: c,_1: _p23,_2: _p24}; if (_p22.ctor === "_Tuple3" && _p22._0.ctor === "Black" && _p22._1.ctor === "LBlack" && _p22._2.ctor === "Red") { return A5(RBNode_elm_builtin,Black,_p20._1._1,_p20._1._2,_p20._1._3,_p20._1._4); } else { return A4(reportRemBug,"Black/LBlack/Red",c,$Basics.toString(_p23),$Basics.toString(_p24)); } } } else { if (_p20._1.ctor === "RBEmpty_elm_builtin") { var _p27 = _p20._1._0; var _p26 = _p20._0._0; var _p25 = {ctor: "_Tuple3",_0: c,_1: _p26,_2: _p27}; if (_p25.ctor === "_Tuple3" && _p25._0.ctor === "Black" && _p25._1.ctor === "Red" && _p25._2.ctor === "LBlack") { return A5(RBNode_elm_builtin,Black,_p20._0._1,_p20._0._2,_p20._0._3,_p20._0._4); } else { return A4(reportRemBug,"Black/Red/LBlack",c,$Basics.toString(_p26),$Basics.toString(_p27)); } } else { var _p31 = _p20._0._2; var _p30 = _p20._0._4; var _p29 = _p20._0._1; var l$ = A5(removeMax,_p20._0._0,_p29,_p31,_p20._0._3,_p30); var _p28 = A3(maxWithDefault,_p29,_p31,_p30); var k = _p28._0; var v = _p28._1; return A5(bubble,c,k,v,l$,r); } } }); var update = F3(function (k,alter,dict) { var up = function (dict) { var _p32 = dict; if (_p32.ctor === "RBEmpty_elm_builtin") { var _p33 = alter($Maybe.Nothing); if (_p33.ctor === "Nothing") { return {ctor: "_Tuple2",_0: Same,_1: empty}; } else { return {ctor: "_Tuple2",_0: Insert,_1: A5(RBNode_elm_builtin,Red,k,_p33._0,empty,empty)}; } } else { var _p44 = _p32._2; var _p43 = _p32._4; var _p42 = _p32._3; var _p41 = _p32._1; var _p40 = _p32._0; var _p34 = A2($Basics.compare,k,_p41); switch (_p34.ctor) {case "EQ": var _p35 = alter($Maybe.Just(_p44)); if (_p35.ctor === "Nothing") { return {ctor: "_Tuple2",_0: Remove,_1: A3(rem,_p40,_p42,_p43)}; } else { return {ctor: "_Tuple2",_0: Same,_1: A5(RBNode_elm_builtin,_p40,_p41,_p35._0,_p42,_p43)}; } case "LT": var _p36 = up(_p42); var flag = _p36._0; var newLeft = _p36._1; var _p37 = flag; switch (_p37.ctor) {case "Same": return {ctor: "_Tuple2",_0: Same,_1: A5(RBNode_elm_builtin,_p40,_p41,_p44,newLeft,_p43)}; case "Insert": return {ctor: "_Tuple2",_0: Insert,_1: A5(balance,_p40,_p41,_p44,newLeft,_p43)}; default: return {ctor: "_Tuple2",_0: Remove,_1: A5(bubble,_p40,_p41,_p44,newLeft,_p43)};} default: var _p38 = up(_p43); var flag = _p38._0; var newRight = _p38._1; var _p39 = flag; switch (_p39.ctor) {case "Same": return {ctor: "_Tuple2",_0: Same,_1: A5(RBNode_elm_builtin,_p40,_p41,_p44,_p42,newRight)}; case "Insert": return {ctor: "_Tuple2",_0: Insert,_1: A5(balance,_p40,_p41,_p44,_p42,newRight)}; default: return {ctor: "_Tuple2",_0: Remove,_1: A5(bubble,_p40,_p41,_p44,_p42,newRight)};}} } }; var _p45 = up(dict); var flag = _p45._0; var updatedDict = _p45._1; var _p46 = flag; switch (_p46.ctor) {case "Same": return updatedDict; case "Insert": return ensureBlackRoot(updatedDict); default: return blacken(updatedDict);} }); var insert = F3(function (key,value,dict) { return A3(update,key,$Basics.always($Maybe.Just(value)),dict);}); var singleton = F2(function (key,value) { return A3(insert,key,value,empty);}); var union = F2(function (t1,t2) { return A3(foldl,insert,t2,t1);}); var fromList = function (assocs) { return A3($List.foldl,F2(function (_p47,dict) { var _p48 = _p47;return A3(insert,_p48._0,_p48._1,dict);}),empty,assocs); }; var filter = F2(function (predicate,dictionary) { var add = F3(function (key,value,dict) { return A2(predicate,key,value) ? A3(insert,key,value,dict) : dict;}); return A3(foldl,add,empty,dictionary); }); var intersect = F2(function (t1,t2) { return A2(filter,F2(function (k,_p49) { return A2(member,k,t2);}),t1);}); var partition = F2(function (predicate,dict) { var add = F3(function (key,value,_p50) { var _p51 = _p50; var _p53 = _p51._1; var _p52 = _p51._0; return A2(predicate,key,value) ? {ctor: "_Tuple2",_0: A3(insert,key,value,_p52),_1: _p53} : {ctor: "_Tuple2",_0: _p52,_1: A3(insert,key,value,_p53)}; }); return A3(foldl,add,{ctor: "_Tuple2",_0: empty,_1: empty},dict); }); var remove = F2(function (key,dict) { return A3(update,key,$Basics.always($Maybe.Nothing),dict);}); var diff = F2(function (t1,t2) { return A3(foldl,F3(function (k,v,t) { return A2(remove,k,t);}),t1,t2);}); return _elm.Dict.values = {_op: _op ,empty: empty ,singleton: singleton ,insert: insert ,update: update ,isEmpty: isEmpty ,get: get ,remove: remove ,member: member ,size: size ,filter: filter ,partition: partition ,foldl: foldl ,foldr: foldr ,map: map ,union: union ,intersect: intersect ,diff: diff ,keys: keys ,values: values ,toList: toList ,fromList: fromList}; }; Elm.Native.Json = {}; Elm.Native.Json.make = function(localRuntime) { localRuntime.Native = localRuntime.Native || {}; localRuntime.Native.Json = localRuntime.Native.Json || {}; if (localRuntime.Native.Json.values) { return localRuntime.Native.Json.values; } var ElmArray = Elm.Native.Array.make(localRuntime); var List = Elm.Native.List.make(localRuntime); var Maybe = Elm.Maybe.make(localRuntime); var Result = Elm.Result.make(localRuntime); var Utils = Elm.Native.Utils.make(localRuntime); function crash(expected, actual) { throw new Error( 'expecting ' + expected + ' but got ' + JSON.stringify(actual) ); } // PRIMITIVE VALUES function decodeNull(successValue) { return function(value) { if (value === null) { return successValue; } crash('null', value); }; } function decodeString(value) { if (typeof value === 'string' || value instanceof String) { return value; } crash('a String', value); } function decodeFloat(value) { if (typeof value === 'number') { return value; } crash('a Float', value); } function decodeInt(value) { if (typeof value !== 'number') { crash('an Int', value); } if (value < 2147483647 && value > -2147483647 && (value | 0) === value) { return value; } if (isFinite(value) && !(value % 1)) { return value; } crash('an Int', value); } function decodeBool(value) { if (typeof value === 'boolean') { return value; } crash('a Bool', value); } // ARRAY function decodeArray(decoder) { return function(value) { if (value instanceof Array) { var len = value.length; var array = new Array(len); for (var i = len; i--; ) { array[i] = decoder(value[i]); } return ElmArray.fromJSArray(array); } crash('an Array', value); }; } // LIST function decodeList(decoder) { return function(value) { if (value instanceof Array) { var len = value.length; var list = List.Nil; for (var i = len; i--; ) { list = List.Cons( decoder(value[i]), list ); } return list; } crash('a List', value); }; } // MAYBE function decodeMaybe(decoder) { return function(value) { try { return Maybe.Just(decoder(value)); } catch(e) { return Maybe.Nothing; } }; } // FIELDS function decodeField(field, decoder) { return function(value) { var subValue = value[field]; if (subValue !== undefined) { return decoder(subValue); } crash("an object with field '" + field + "'", value); }; } // OBJECTS function decodeKeyValuePairs(decoder) { return function(value) { var isObject = typeof value === 'object' && value !== null && !(value instanceof Array); if (isObject) { var keyValuePairs = List.Nil; for (var key in value) { var elmValue = decoder(value[key]); var pair = Utils.Tuple2(key, elmValue); keyValuePairs = List.Cons(pair, keyValuePairs); } return keyValuePairs; } crash('an object', value); }; } function decodeObject1(f, d1) { return function(value) { return f(d1(value)); }; } function decodeObject2(f, d1, d2) { return function(value) { return A2( f, d1(value), d2(value) ); }; } function decodeObject3(f, d1, d2, d3) { return function(value) { return A3( f, d1(value), d2(value), d3(value) ); }; } function decodeObject4(f, d1, d2, d3, d4) { return function(value) { return A4( f, d1(value), d2(value), d3(value), d4(value) ); }; } function decodeObject5(f, d1, d2, d3, d4, d5) { return function(value) { return A5( f, d1(value), d2(value), d3(value), d4(value), d5(value) ); }; } function decodeObject6(f, d1, d2, d3, d4, d5, d6) { return function(value) { return A6( f, d1(value), d2(value), d3(value), d4(value), d5(value), d6(value) ); }; } function decodeObject7(f, d1, d2, d3, d4, d5, d6, d7) { return function(value) { return A7( f, d1(value), d2(value), d3(value), d4(value), d5(value), d6(value), d7(value) ); }; } function decodeObject8(f, d1, d2, d3, d4, d5, d6, d7, d8) { return function(value) { return A8( f, d1(value), d2(value), d3(value), d4(value), d5(value), d6(value), d7(value), d8(value) ); }; } // TUPLES function decodeTuple1(f, d1) { return function(value) { if ( !(value instanceof Array) || value.length !== 1 ) { crash('a Tuple of length 1', value); } return f( d1(value[0]) ); }; } function decodeTuple2(f, d1, d2) { return function(value) { if ( !(value instanceof Array) || value.length !== 2 ) { crash('a Tuple of length 2', value); } return A2( f, d1(value[0]), d2(value[1]) ); }; } function decodeTuple3(f, d1, d2, d3) { return function(value) { if ( !(value instanceof Array) || value.length !== 3 ) { crash('a Tuple of length 3', value); } return A3( f, d1(value[0]), d2(value[1]), d3(value[2]) ); }; } function decodeTuple4(f, d1, d2, d3, d4) { return function(value) { if ( !(value instanceof Array) || value.length !== 4 ) { crash('a Tuple of length 4', value); } return A4( f, d1(value[0]), d2(value[1]), d3(value[2]), d4(value[3]) ); }; } function decodeTuple5(f, d1, d2, d3, d4, d5) { return function(value) { if ( !(value instanceof Array) || value.length !== 5 ) { crash('a Tuple of length 5', value); } return A5( f, d1(value[0]), d2(value[1]), d3(value[2]), d4(value[3]), d5(value[4]) ); }; } function decodeTuple6(f, d1, d2, d3, d4, d5, d6) { return function(value) { if ( !(value instanceof Array) || value.length !== 6 ) { crash('a Tuple of length 6', value); } return A6( f, d1(value[0]), d2(value[1]), d3(value[2]), d4(value[3]), d5(value[4]), d6(value[5]) ); }; } function decodeTuple7(f, d1, d2, d3, d4, d5, d6, d7) { return function(value) { if ( !(value instanceof Array) || value.length !== 7 ) { crash('a Tuple of length 7', value); } return A7( f, d1(value[0]), d2(value[1]), d3(value[2]), d4(value[3]), d5(value[4]), d6(value[5]), d7(value[6]) ); }; } function decodeTuple8(f, d1, d2, d3, d4, d5, d6, d7, d8) { return function(value) { if ( !(value instanceof Array) || value.length !== 8 ) { crash('a Tuple of length 8', value); } return A8( f, d1(value[0]), d2(value[1]), d3(value[2]), d4(value[3]), d5(value[4]), d6(value[5]), d7(value[6]), d8(value[7]) ); }; } // CUSTOM DECODERS function decodeValue(value) { return value; } function runDecoderValue(decoder, value) { try { return Result.Ok(decoder(value)); } catch(e) { return Result.Err(e.message); } } function customDecoder(decoder, callback) { return function(value) { var result = callback(decoder(value)); if (result.ctor === 'Err') { throw new Error('custom decoder failed: ' + result._0); } return result._0; }; } function andThen(decode, callback) { return function(value) { var result = decode(value); return callback(result)(value); }; } function fail(msg) { return function(value) { throw new Error(msg); }; } function succeed(successValue) { return function(value) { return successValue; }; } // ONE OF MANY function oneOf(decoders) { return function(value) { var errors = []; var temp = decoders; while (temp.ctor !== '[]') { try { return temp._0(value); } catch(e) { errors.push(e.message); } temp = temp._1; } throw new Error('expecting one of the following:\n ' + errors.join('\n ')); }; } function get(decoder, value) { try { return Result.Ok(decoder(value)); } catch(e) { return Result.Err(e.message); } } // ENCODE / DECODE function runDecoderString(decoder, string) { try { return Result.Ok(decoder(JSON.parse(string))); } catch(e) { return Result.Err(e.message); } } function encode(indentLevel, value) { return JSON.stringify(value, null, indentLevel); } function identity(value) { return value; } function encodeObject(keyValuePairs) { var obj = {}; while (keyValuePairs.ctor !== '[]') { var pair = keyValuePairs._0; obj[pair._0] = pair._1; keyValuePairs = keyValuePairs._1; } return obj; } return localRuntime.Native.Json.values = { encode: F2(encode), runDecoderString: F2(runDecoderString), runDecoderValue: F2(runDecoderValue), get: F2(get), oneOf: oneOf, decodeNull: decodeNull, decodeInt: decodeInt, decodeFloat: decodeFloat, decodeString: decodeString, decodeBool: decodeBool, decodeMaybe: decodeMaybe, decodeList: decodeList, decodeArray: decodeArray, decodeField: F2(decodeField), decodeObject1: F2(decodeObject1), decodeObject2: F3(decodeObject2), decodeObject3: F4(decodeObject3), decodeObject4: F5(decodeObject4), decodeObject5: F6(decodeObject5), decodeObject6: F7(decodeObject6), decodeObject7: F8(decodeObject7), decodeObject8: F9(decodeObject8), decodeKeyValuePairs: decodeKeyValuePairs, decodeTuple1: F2(decodeTuple1), decodeTuple2: F3(decodeTuple2), decodeTuple3: F4(decodeTuple3), decodeTuple4: F5(decodeTuple4), decodeTuple5: F6(decodeTuple5), decodeTuple6: F7(decodeTuple6), decodeTuple7: F8(decodeTuple7), decodeTuple8: F9(decodeTuple8), andThen: F2(andThen), decodeValue: decodeValue, customDecoder: F2(customDecoder), fail: fail, succeed: succeed, identity: identity, encodeNull: null, encodeArray: ElmArray.toJSArray, encodeList: List.toArray, encodeObject: encodeObject }; }; Elm.Json = Elm.Json || {}; Elm.Json.Encode = Elm.Json.Encode || {}; Elm.Json.Encode.make = function (_elm) { "use strict"; _elm.Json = _elm.Json || {}; _elm.Json.Encode = _elm.Json.Encode || {}; if (_elm.Json.Encode.values) return _elm.Json.Encode.values; var _U = Elm.Native.Utils.make(_elm),$Array = Elm.Array.make(_elm),$Native$Json = Elm.Native.Json.make(_elm); var _op = {}; var list = $Native$Json.encodeList; var array = $Native$Json.encodeArray; var object = $Native$Json.encodeObject; var $null = $Native$Json.encodeNull; var bool = $Native$Json.identity; var $float = $Native$Json.identity; var $int = $Native$Json.identity; var string = $Native$Json.identity; var encode = $Native$Json.encode; var Value = {ctor: "Value"}; return _elm.Json.Encode.values = {_op: _op ,encode: encode ,string: string ,$int: $int ,$float: $float ,bool: bool ,$null: $null ,list: list ,array: array ,object: object}; }; Elm.Json = Elm.Json || {}; Elm.Json.Decode = Elm.Json.Decode || {}; Elm.Json.Decode.make = function (_elm) { "use strict"; _elm.Json = _elm.Json || {}; _elm.Json.Decode = _elm.Json.Decode || {}; if (_elm.Json.Decode.values) return _elm.Json.Decode.values; var _U = Elm.Native.Utils.make(_elm), $Array = Elm.Array.make(_elm), $Dict = Elm.Dict.make(_elm), $Json$Encode = Elm.Json.Encode.make(_elm), $List = Elm.List.make(_elm), $Maybe = Elm.Maybe.make(_elm), $Native$Json = Elm.Native.Json.make(_elm), $Result = Elm.Result.make(_elm); var _op = {}; var tuple8 = $Native$Json.decodeTuple8; var tuple7 = $Native$Json.decodeTuple7; var tuple6 = $Native$Json.decodeTuple6; var tuple5 = $Native$Json.decodeTuple5; var tuple4 = $Native$Json.decodeTuple4; var tuple3 = $Native$Json.decodeTuple3; var tuple2 = $Native$Json.decodeTuple2; var tuple1 = $Native$Json.decodeTuple1; var succeed = $Native$Json.succeed; var fail = $Native$Json.fail; var andThen = $Native$Json.andThen; var customDecoder = $Native$Json.customDecoder; var decodeValue = $Native$Json.runDecoderValue; var value = $Native$Json.decodeValue; var maybe = $Native$Json.decodeMaybe; var $null = $Native$Json.decodeNull; var array = $Native$Json.decodeArray; var list = $Native$Json.decodeList; var bool = $Native$Json.decodeBool; var $int = $Native$Json.decodeInt; var $float = $Native$Json.decodeFloat; var string = $Native$Json.decodeString; var oneOf = $Native$Json.oneOf; var keyValuePairs = $Native$Json.decodeKeyValuePairs; var object8 = $Native$Json.decodeObject8; var object7 = $Native$Json.decodeObject7; var object6 = $Native$Json.decodeObject6; var object5 = $Native$Json.decodeObject5; var object4 = $Native$Json.decodeObject4; var object3 = $Native$Json.decodeObject3; var object2 = $Native$Json.decodeObject2; var object1 = $Native$Json.decodeObject1; _op[":="] = $Native$Json.decodeField; var at = F2(function (fields,decoder) { return A3($List.foldr,F2(function (x,y) { return A2(_op[":="],x,y);}),decoder,fields);}); var decodeString = $Native$Json.runDecoderString; var map = $Native$Json.decodeObject1; var dict = function (decoder) { return A2(map,$Dict.fromList,keyValuePairs(decoder));}; var Decoder = {ctor: "Decoder"}; return _elm.Json.Decode.values = {_op: _op ,decodeString: decodeString ,decodeValue: decodeValue ,string: string ,$int: $int ,$float: $float ,bool: bool ,$null: $null ,list: list ,array: array ,tuple1: tuple1 ,tuple2: tuple2 ,tuple3: tuple3 ,tuple4: tuple4 ,tuple5: tuple5 ,tuple6: tuple6 ,tuple7: tuple7 ,tuple8: tuple8 ,at: at ,object1: object1 ,object2: object2 ,object3: object3 ,object4: object4 ,object5: object5 ,object6: object6 ,object7: object7 ,object8: object8 ,keyValuePairs: keyValuePairs ,dict: dict ,maybe: maybe ,oneOf: oneOf ,map: map ,fail: fail ,succeed: succeed ,andThen: andThen ,value: value ,customDecoder: customDecoder}; }; Elm.Set = Elm.Set || {}; Elm.Set.make = function (_elm) { "use strict"; _elm.Set = _elm.Set || {}; if (_elm.Set.values) return _elm.Set.values; var _U = Elm.Native.Utils.make(_elm),$Basics = Elm.Basics.make(_elm),$Dict = Elm.Dict.make(_elm),$List = Elm.List.make(_elm); var _op = {}; var foldr = F3(function (f,b,_p0) { var _p1 = _p0;return A3($Dict.foldr,F3(function (k,_p2,b) { return A2(f,k,b);}),b,_p1._0);}); var foldl = F3(function (f,b,_p3) { var _p4 = _p3;return A3($Dict.foldl,F3(function (k,_p5,b) { return A2(f,k,b);}),b,_p4._0);}); var toList = function (_p6) { var _p7 = _p6;return $Dict.keys(_p7._0);}; var size = function (_p8) { var _p9 = _p8;return $Dict.size(_p9._0);}; var member = F2(function (k,_p10) { var _p11 = _p10;return A2($Dict.member,k,_p11._0);}); var isEmpty = function (_p12) { var _p13 = _p12;return $Dict.isEmpty(_p13._0);}; var Set_elm_builtin = function (a) { return {ctor: "Set_elm_builtin",_0: a};}; var empty = Set_elm_builtin($Dict.empty); var singleton = function (k) { return Set_elm_builtin(A2($Dict.singleton,k,{ctor: "_Tuple0"}));}; var insert = F2(function (k,_p14) { var _p15 = _p14;return Set_elm_builtin(A3($Dict.insert,k,{ctor: "_Tuple0"},_p15._0));}); var fromList = function (xs) { return A3($List.foldl,insert,empty,xs);}; var map = F2(function (f,s) { return fromList(A2($List.map,f,toList(s)));}); var remove = F2(function (k,_p16) { var _p17 = _p16;return Set_elm_builtin(A2($Dict.remove,k,_p17._0));}); var union = F2(function (_p19,_p18) { var _p20 = _p19;var _p21 = _p18;return Set_elm_builtin(A2($Dict.union,_p20._0,_p21._0));}); var intersect = F2(function (_p23,_p22) { var _p24 = _p23;var _p25 = _p22;return Set_elm_builtin(A2($Dict.intersect,_p24._0,_p25._0));}); var diff = F2(function (_p27,_p26) { var _p28 = _p27;var _p29 = _p26;return Set_elm_builtin(A2($Dict.diff,_p28._0,_p29._0));}); var filter = F2(function (p,_p30) { var _p31 = _p30;return Set_elm_builtin(A2($Dict.filter,F2(function (k,_p32) { return p(k);}),_p31._0));}); var partition = F2(function (p,_p33) { var _p34 = _p33; var _p35 = A2($Dict.partition,F2(function (k,_p36) { return p(k);}),_p34._0); var p1 = _p35._0; var p2 = _p35._1; return {ctor: "_Tuple2",_0: Set_elm_builtin(p1),_1: Set_elm_builtin(p2)}; }); return _elm.Set.values = {_op: _op ,empty: empty ,singleton: singleton ,insert: insert ,remove: remove ,isEmpty: isEmpty ,member: member ,size: size ,foldl: foldl ,foldr: foldr ,map: map ,filter: filter ,partition: partition ,union: union ,intersect: intersect ,diff: diff ,toList: toList ,fromList: fromList}; }; Elm.Native.Regex = {}; Elm.Native.Regex.make = function(localRuntime) { localRuntime.Native = localRuntime.Native || {}; localRuntime.Native.Regex = localRuntime.Native.Regex || {}; if (localRuntime.Native.Regex.values) { return localRuntime.Native.Regex.values; } if ('values' in Elm.Native.Regex) { return localRuntime.Native.Regex.values = Elm.Native.Regex.values; } var List = Elm.Native.List.make(localRuntime); var Maybe = Elm.Maybe.make(localRuntime); function escape(str) { return str.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&'); } function caseInsensitive(re) { return new RegExp(re.source, 'gi'); } function regex(raw) { return new RegExp(raw, 'g'); } function contains(re, string) { return string.match(re) !== null; } function find(n, re, str) { n = n.ctor === 'All' ? Infinity : n._0; var out = []; var number = 0; var string = str; var lastIndex = re.lastIndex; var prevLastIndex = -1; var result; while (number++ < n && (result = re.exec(string))) { if (prevLastIndex === re.lastIndex) break; var i = result.length - 1; var subs = new Array(i); while (i > 0) { var submatch = result[i]; subs[--i] = submatch === undefined ? Maybe.Nothing : Maybe.Just(submatch); } out.push({ match: result[0], submatches: List.fromArray(subs), index: result.index, number: number }); prevLastIndex = re.lastIndex; } re.lastIndex = lastIndex; return List.fromArray(out); } function replace(n, re, replacer, string) { n = n.ctor === 'All' ? Infinity : n._0; var count = 0; function jsReplacer(match) { if (count++ >= n) { return match; } var i = arguments.length - 3; var submatches = new Array(i); while (i > 0) { var submatch = arguments[i]; submatches[--i] = submatch === undefined ? Maybe.Nothing : Maybe.Just(submatch); } return replacer({ match: match, submatches: List.fromArray(submatches), index: arguments[i - 1], number: count }); } return string.replace(re, jsReplacer); } function split(n, re, str) { n = n.ctor === 'All' ? Infinity : n._0; if (n === Infinity) { return List.fromArray(str.split(re)); } var string = str; var result; var out = []; var start = re.lastIndex; while (n--) { if (!(result = re.exec(string))) break; out.push(string.slice(start, result.index)); start = re.lastIndex; } out.push(string.slice(start)); return List.fromArray(out); } return Elm.Native.Regex.values = { regex: regex, caseInsensitive: caseInsensitive, escape: escape, contains: F2(contains), find: F3(find), replace: F4(replace), split: F3(split) }; }; Elm.Regex = Elm.Regex || {}; Elm.Regex.make = function (_elm) { "use strict"; _elm.Regex = _elm.Regex || {}; if (_elm.Regex.values) return _elm.Regex.values; var _U = Elm.Native.Utils.make(_elm),$Maybe = Elm.Maybe.make(_elm),$Native$Regex = Elm.Native.Regex.make(_elm); var _op = {}; var split = $Native$Regex.split; var replace = $Native$Regex.replace; var find = $Native$Regex.find; var AtMost = function (a) { return {ctor: "AtMost",_0: a};}; var All = {ctor: "All"}; var Match = F4(function (a,b,c,d) { return {match: a,submatches: b,index: c,number: d};}); var contains = $Native$Regex.contains; var caseInsensitive = $Native$Regex.caseInsensitive; var regex = $Native$Regex.regex; var escape = $Native$Regex.escape; var Regex = {ctor: "Regex"}; return _elm.Regex.values = {_op: _op ,regex: regex ,escape: escape ,caseInsensitive: caseInsensitive ,contains: contains ,find: find ,replace: replace ,split: split ,Match: Match ,All: All ,AtMost: AtMost}; }; (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o> 0 currentItem = indices[currentIndex] if (minIndex === maxIndex) { return currentItem >= left && currentItem <= right } else if (currentItem < left) { minIndex = currentIndex + 1 } else if (currentItem > right) { maxIndex = currentIndex - 1 } else { return true } } return false; } function ascending(a, b) { return a > b ? 1 : -1 } },{}],8:[function(require,module,exports){ var applyProperties = require("./apply-properties") var isWidget = require("../vnode/is-widget.js") var VPatch = require("../vnode/vpatch.js") var render = require("./create-element") var updateWidget = require("./update-widget") module.exports = applyPatch function applyPatch(vpatch, domNode, renderOptions) { var type = vpatch.type var vNode = vpatch.vNode var patch = vpatch.patch switch (type) { case VPatch.REMOVE: return removeNode(domNode, vNode) case VPatch.INSERT: return insertNode(domNode, patch, renderOptions) case VPatch.VTEXT: return stringPatch(domNode, vNode, patch, renderOptions) case VPatch.WIDGET: return widgetPatch(domNode, vNode, patch, renderOptions) case VPatch.VNODE: return vNodePatch(domNode, vNode, patch, renderOptions) case VPatch.ORDER: reorderChildren(domNode, patch) return domNode case VPatch.PROPS: applyProperties(domNode, patch, vNode.properties) return domNode case VPatch.THUNK: return replaceRoot(domNode, renderOptions.patch(domNode, patch, renderOptions)) default: return domNode } } function removeNode(domNode, vNode) { var parentNode = domNode.parentNode if (parentNode) { parentNode.removeChild(domNode) } destroyWidget(domNode, vNode); return null } function insertNode(parentNode, vNode, renderOptions) { var newNode = render(vNode, renderOptions) if (parentNode) { parentNode.appendChild(newNode) } return parentNode } function stringPatch(domNode, leftVNode, vText, renderOptions) { var newNode if (domNode.nodeType === 3) { domNode.replaceData(0, domNode.length, vText.text) newNode = domNode } else { var parentNode = domNode.parentNode newNode = render(vText, renderOptions) if (parentNode && newNode !== domNode) { parentNode.replaceChild(newNode, domNode) } } return newNode } function widgetPatch(domNode, leftVNode, widget, renderOptions) { var updating = updateWidget(leftVNode, widget) var newNode if (updating) { newNode = widget.update(leftVNode, domNode) || domNode } else { newNode = render(widget, renderOptions) } var parentNode = domNode.parentNode if (parentNode && newNode !== domNode) { parentNode.replaceChild(newNode, domNode) } if (!updating) { destroyWidget(domNode, leftVNode) } return newNode } function vNodePatch(domNode, leftVNode, vNode, renderOptions) { var parentNode = domNode.parentNode var newNode = render(vNode, renderOptions) if (parentNode && newNode !== domNode) { parentNode.replaceChild(newNode, domNode) } return newNode } function destroyWidget(domNode, w) { if (typeof w.destroy === "function" && isWidget(w)) { w.destroy(domNode) } } function reorderChildren(domNode, moves) { var childNodes = domNode.childNodes var keyMap = {} var node var remove var insert for (var i = 0; i < moves.removes.length; i++) { remove = moves.removes[i] node = childNodes[remove.from] if (remove.key) { keyMap[remove.key] = node } domNode.removeChild(node) } var length = childNodes.length for (var j = 0; j < moves.inserts.length; j++) { insert = moves.inserts[j] node = keyMap[insert.key] // this is the weirdest bug i've ever seen in webkit domNode.insertBefore(node, insert.to >= length++ ? null : childNodes[insert.to]) } } function replaceRoot(oldRoot, newRoot) { if (oldRoot && newRoot && oldRoot !== newRoot && oldRoot.parentNode) { oldRoot.parentNode.replaceChild(newRoot, oldRoot) } return newRoot; } },{"../vnode/is-widget.js":16,"../vnode/vpatch.js":19,"./apply-properties":5,"./create-element":6,"./update-widget":10}],9:[function(require,module,exports){ var document = require("global/document") var isArray = require("x-is-array") var domIndex = require("./dom-index") var patchOp = require("./patch-op") module.exports = patch function patch(rootNode, patches) { return patchRecursive(rootNode, patches) } function patchRecursive(rootNode, patches, renderOptions) { var indices = patchIndices(patches) if (indices.length === 0) { return rootNode } var index = domIndex(rootNode, patches.a, indices) var ownerDocument = rootNode.ownerDocument if (!renderOptions) { renderOptions = { patch: patchRecursive } if (ownerDocument !== document) { renderOptions.document = ownerDocument } } for (var i = 0; i < indices.length; i++) { var nodeIndex = indices[i] rootNode = applyPatch(rootNode, index[nodeIndex], patches[nodeIndex], renderOptions) } return rootNode } function applyPatch(rootNode, domNode, patchList, renderOptions) { if (!domNode) { return rootNode } var newNode if (isArray(patchList)) { for (var i = 0; i < patchList.length; i++) { newNode = patchOp(patchList[i], domNode, renderOptions) if (domNode === rootNode) { rootNode = newNode } } } else { newNode = patchOp(patchList, domNode, renderOptions) if (domNode === rootNode) { rootNode = newNode } } return rootNode } function patchIndices(patches) { var indices = [] for (var key in patches) { if (key !== "a") { indices.push(Number(key)) } } return indices } },{"./dom-index":7,"./patch-op":8,"global/document":2,"x-is-array":4}],10:[function(require,module,exports){ var isWidget = require("../vnode/is-widget.js") module.exports = updateWidget function updateWidget(a, b) { if (isWidget(a) && isWidget(b)) { if ("name" in a && "name" in b) { return a.id === b.id } else { return a.init === b.init } } return false } },{"../vnode/is-widget.js":16}],11:[function(require,module,exports){ var isVNode = require("./is-vnode") var isVText = require("./is-vtext") var isWidget = require("./is-widget") var isThunk = require("./is-thunk") module.exports = handleThunk function handleThunk(a, b) { var renderedA = a var renderedB = b if (isThunk(b)) { renderedB = renderThunk(b, a) } if (isThunk(a)) { renderedA = renderThunk(a, null) } return { a: renderedA, b: renderedB } } function renderThunk(thunk, previous) { var renderedThunk = thunk.vnode if (!renderedThunk) { renderedThunk = thunk.vnode = thunk.render(previous) } if (!(isVNode(renderedThunk) || isVText(renderedThunk) || isWidget(renderedThunk))) { throw new Error("thunk did not return a valid node"); } return renderedThunk } },{"./is-thunk":12,"./is-vnode":14,"./is-vtext":15,"./is-widget":16}],12:[function(require,module,exports){ module.exports = isThunk function isThunk(t) { return t && t.type === "Thunk" } },{}],13:[function(require,module,exports){ module.exports = isHook function isHook(hook) { return hook && (typeof hook.hook === "function" && !hook.hasOwnProperty("hook") || typeof hook.unhook === "function" && !hook.hasOwnProperty("unhook")) } },{}],14:[function(require,module,exports){ var version = require("./version") module.exports = isVirtualNode function isVirtualNode(x) { return x && x.type === "VirtualNode" && x.version === version } },{"./version":17}],15:[function(require,module,exports){ var version = require("./version") module.exports = isVirtualText function isVirtualText(x) { return x && x.type === "VirtualText" && x.version === version } },{"./version":17}],16:[function(require,module,exports){ module.exports = isWidget function isWidget(w) { return w && w.type === "Widget" } },{}],17:[function(require,module,exports){ module.exports = "2" },{}],18:[function(require,module,exports){ var version = require("./version") var isVNode = require("./is-vnode") var isWidget = require("./is-widget") var isThunk = require("./is-thunk") var isVHook = require("./is-vhook") module.exports = VirtualNode var noProperties = {} var noChildren = [] function VirtualNode(tagName, properties, children, key, namespace) { this.tagName = tagName this.properties = properties || noProperties this.children = children || noChildren this.key = key != null ? String(key) : undefined this.namespace = (typeof namespace === "string") ? namespace : null var count = (children && children.length) || 0 var descendants = 0 var hasWidgets = false var hasThunks = false var descendantHooks = false var hooks for (var propName in properties) { if (properties.hasOwnProperty(propName)) { var property = properties[propName] if (isVHook(property) && property.unhook) { if (!hooks) { hooks = {} } hooks[propName] = property } } } for (var i = 0; i < count; i++) { var child = children[i] if (isVNode(child)) { descendants += child.count || 0 if (!hasWidgets && child.hasWidgets) { hasWidgets = true } if (!hasThunks && child.hasThunks) { hasThunks = true } if (!descendantHooks && (child.hooks || child.descendantHooks)) { descendantHooks = true } } else if (!hasWidgets && isWidget(child)) { if (typeof child.destroy === "function") { hasWidgets = true } } else if (!hasThunks && isThunk(child)) { hasThunks = true; } } this.count = count + descendants this.hasWidgets = hasWidgets this.hasThunks = hasThunks this.hooks = hooks this.descendantHooks = descendantHooks } VirtualNode.prototype.version = version VirtualNode.prototype.type = "VirtualNode" },{"./is-thunk":12,"./is-vhook":13,"./is-vnode":14,"./is-widget":16,"./version":17}],19:[function(require,module,exports){ var version = require("./version") VirtualPatch.NONE = 0 VirtualPatch.VTEXT = 1 VirtualPatch.VNODE = 2 VirtualPatch.WIDGET = 3 VirtualPatch.PROPS = 4 VirtualPatch.ORDER = 5 VirtualPatch.INSERT = 6 VirtualPatch.REMOVE = 7 VirtualPatch.THUNK = 8 module.exports = VirtualPatch function VirtualPatch(type, vNode, patch) { this.type = Number(type) this.vNode = vNode this.patch = patch } VirtualPatch.prototype.version = version VirtualPatch.prototype.type = "VirtualPatch" },{"./version":17}],20:[function(require,module,exports){ var version = require("./version") module.exports = VirtualText function VirtualText(text) { this.text = String(text) } VirtualText.prototype.version = version VirtualText.prototype.type = "VirtualText" },{"./version":17}],21:[function(require,module,exports){ var isObject = require("is-object") var isHook = require("../vnode/is-vhook") module.exports = diffProps function diffProps(a, b) { var diff for (var aKey in a) { if (!(aKey in b)) { diff = diff || {} diff[aKey] = undefined } var aValue = a[aKey] var bValue = b[aKey] if (aValue === bValue) { continue } else if (isObject(aValue) && isObject(bValue)) { if (getPrototype(bValue) !== getPrototype(aValue)) { diff = diff || {} diff[aKey] = bValue } else if (isHook(bValue)) { diff = diff || {} diff[aKey] = bValue } else { var objectDiff = diffProps(aValue, bValue) if (objectDiff) { diff = diff || {} diff[aKey] = objectDiff } } } else { diff = diff || {} diff[aKey] = bValue } } for (var bKey in b) { if (!(bKey in a)) { diff = diff || {} diff[bKey] = b[bKey] } } return diff } function getPrototype(value) { if (Object.getPrototypeOf) { return Object.getPrototypeOf(value) } else if (value.__proto__) { return value.__proto__ } else if (value.constructor) { return value.constructor.prototype } } },{"../vnode/is-vhook":13,"is-object":3}],22:[function(require,module,exports){ var isArray = require("x-is-array") var VPatch = require("../vnode/vpatch") var isVNode = require("../vnode/is-vnode") var isVText = require("../vnode/is-vtext") var isWidget = require("../vnode/is-widget") var isThunk = require("../vnode/is-thunk") var handleThunk = require("../vnode/handle-thunk") var diffProps = require("./diff-props") module.exports = diff function diff(a, b) { var patch = { a: a } walk(a, b, patch, 0) return patch } function walk(a, b, patch, index) { if (a === b) { return } var apply = patch[index] var applyClear = false if (isThunk(a) || isThunk(b)) { thunks(a, b, patch, index) } else if (b == null) { // If a is a widget we will add a remove patch for it // Otherwise any child widgets/hooks must be destroyed. // This prevents adding two remove patches for a widget. if (!isWidget(a)) { clearState(a, patch, index) apply = patch[index] } apply = appendPatch(apply, new VPatch(VPatch.REMOVE, a, b)) } else if (isVNode(b)) { if (isVNode(a)) { if (a.tagName === b.tagName && a.namespace === b.namespace && a.key === b.key) { var propsPatch = diffProps(a.properties, b.properties) if (propsPatch) { apply = appendPatch(apply, new VPatch(VPatch.PROPS, a, propsPatch)) } apply = diffChildren(a, b, patch, apply, index) } else { apply = appendPatch(apply, new VPatch(VPatch.VNODE, a, b)) applyClear = true } } else { apply = appendPatch(apply, new VPatch(VPatch.VNODE, a, b)) applyClear = true } } else if (isVText(b)) { if (!isVText(a)) { apply = appendPatch(apply, new VPatch(VPatch.VTEXT, a, b)) applyClear = true } else if (a.text !== b.text) { apply = appendPatch(apply, new VPatch(VPatch.VTEXT, a, b)) } } else if (isWidget(b)) { if (!isWidget(a)) { applyClear = true } apply = appendPatch(apply, new VPatch(VPatch.WIDGET, a, b)) } if (apply) { patch[index] = apply } if (applyClear) { clearState(a, patch, index) } } function diffChildren(a, b, patch, apply, index) { var aChildren = a.children var orderedSet = reorder(aChildren, b.children) var bChildren = orderedSet.children var aLen = aChildren.length var bLen = bChildren.length var len = aLen > bLen ? aLen : bLen for (var i = 0; i < len; i++) { var leftNode = aChildren[i] var rightNode = bChildren[i] index += 1 if (!leftNode) { if (rightNode) { // Excess nodes in b need to be added apply = appendPatch(apply, new VPatch(VPatch.INSERT, null, rightNode)) } } else { walk(leftNode, rightNode, patch, index) } if (isVNode(leftNode) && leftNode.count) { index += leftNode.count } } if (orderedSet.moves) { // Reorder nodes last apply = appendPatch(apply, new VPatch( VPatch.ORDER, a, orderedSet.moves )) } return apply } function clearState(vNode, patch, index) { // TODO: Make this a single walk, not two unhook(vNode, patch, index) destroyWidgets(vNode, patch, index) } // Patch records for all destroyed widgets must be added because we need // a DOM node reference for the destroy function function destroyWidgets(vNode, patch, index) { if (isWidget(vNode)) { if (typeof vNode.destroy === "function") { patch[index] = appendPatch( patch[index], new VPatch(VPatch.REMOVE, vNode, null) ) } } else if (isVNode(vNode) && (vNode.hasWidgets || vNode.hasThunks)) { var children = vNode.children var len = children.length for (var i = 0; i < len; i++) { var child = children[i] index += 1 destroyWidgets(child, patch, index) if (isVNode(child) && child.count) { index += child.count } } } else if (isThunk(vNode)) { thunks(vNode, null, patch, index) } } // Create a sub-patch for thunks function thunks(a, b, patch, index) { var nodes = handleThunk(a, b) var thunkPatch = diff(nodes.a, nodes.b) if (hasPatches(thunkPatch)) { patch[index] = new VPatch(VPatch.THUNK, null, thunkPatch) } } function hasPatches(patch) { for (var index in patch) { if (index !== "a") { return true } } return false } // Execute hooks when two nodes are identical function unhook(vNode, patch, index) { if (isVNode(vNode)) { if (vNode.hooks) { patch[index] = appendPatch( patch[index], new VPatch( VPatch.PROPS, vNode, undefinedKeys(vNode.hooks) ) ) } if (vNode.descendantHooks || vNode.hasThunks) { var children = vNode.children var len = children.length for (var i = 0; i < len; i++) { var child = children[i] index += 1 unhook(child, patch, index) if (isVNode(child) && child.count) { index += child.count } } } } else if (isThunk(vNode)) { thunks(vNode, null, patch, index) } } function undefinedKeys(obj) { var result = {} for (var key in obj) { result[key] = undefined } return result } // List diff, naive left to right reordering function reorder(aChildren, bChildren) { // O(M) time, O(M) memory var bChildIndex = keyIndex(bChildren) var bKeys = bChildIndex.keys var bFree = bChildIndex.free if (bFree.length === bChildren.length) { return { children: bChildren, moves: null } } // O(N) time, O(N) memory var aChildIndex = keyIndex(aChildren) var aKeys = aChildIndex.keys var aFree = aChildIndex.free if (aFree.length === aChildren.length) { return { children: bChildren, moves: null } } // O(MAX(N, M)) memory var newChildren = [] var freeIndex = 0 var freeCount = bFree.length var deletedItems = 0 // Iterate through a and match a node in b // O(N) time, for (var i = 0 ; i < aChildren.length; i++) { var aItem = aChildren[i] var itemIndex if (aItem.key) { if (bKeys.hasOwnProperty(aItem.key)) { // Match up the old keys itemIndex = bKeys[aItem.key] newChildren.push(bChildren[itemIndex]) } else { // Remove old keyed items itemIndex = i - deletedItems++ newChildren.push(null) } } else { // Match the item in a with the next free item in b if (freeIndex < freeCount) { itemIndex = bFree[freeIndex++] newChildren.push(bChildren[itemIndex]) } else { // There are no free items in b to match with // the free items in a, so the extra free nodes // are deleted. itemIndex = i - deletedItems++ newChildren.push(null) } } } var lastFreeIndex = freeIndex >= bFree.length ? bChildren.length : bFree[freeIndex] // Iterate through b and append any new keys // O(M) time for (var j = 0; j < bChildren.length; j++) { var newItem = bChildren[j] if (newItem.key) { if (!aKeys.hasOwnProperty(newItem.key)) { // Add any new keyed items // We are adding new items to the end and then sorting them // in place. In future we should insert new items in place. newChildren.push(newItem) } } else if (j >= lastFreeIndex) { // Add any leftover non-keyed items newChildren.push(newItem) } } var simulate = newChildren.slice() var simulateIndex = 0 var removes = [] var inserts = [] var simulateItem for (var k = 0; k < bChildren.length;) { var wantedItem = bChildren[k] simulateItem = simulate[simulateIndex] // remove items while (simulateItem === null && simulate.length) { removes.push(remove(simulate, simulateIndex, null)) simulateItem = simulate[simulateIndex] } if (!simulateItem || simulateItem.key !== wantedItem.key) { // if we need a key in this position... if (wantedItem.key) { if (simulateItem && simulateItem.key) { // if an insert doesn't put this key in place, it needs to move if (bKeys[simulateItem.key] !== k + 1) { removes.push(remove(simulate, simulateIndex, simulateItem.key)) simulateItem = simulate[simulateIndex] // if the remove didn't put the wanted item in place, we need to insert it if (!simulateItem || simulateItem.key !== wantedItem.key) { inserts.push({key: wantedItem.key, to: k}) } // items are matching, so skip ahead else { simulateIndex++ } } else { inserts.push({key: wantedItem.key, to: k}) } } else { inserts.push({key: wantedItem.key, to: k}) } k++ } // a key in simulate has no matching wanted key, remove it else if (simulateItem && simulateItem.key) { removes.push(remove(simulate, simulateIndex, simulateItem.key)) } } else { simulateIndex++ k++ } } // remove all the remaining nodes from simulate while(simulateIndex < simulate.length) { simulateItem = simulate[simulateIndex] removes.push(remove(simulate, simulateIndex, simulateItem && simulateItem.key)) } // If the only moves we have are deletes then we can just // let the delete patch remove these items. if (removes.length === deletedItems && !inserts.length) { return { children: newChildren, moves: null } } return { children: newChildren, moves: { removes: removes, inserts: inserts } } } function remove(arr, index, key) { arr.splice(index, 1) return { from: index, key: key } } function keyIndex(children) { var keys = {} var free = [] var length = children.length for (var i = 0; i < length; i++) { var child = children[i] if (child.key) { keys[child.key] = i } else { free.push(i) } } return { keys: keys, // A hash of key name to index free: free, // An array of unkeyed item indices } } function appendPatch(apply, patch) { if (apply) { if (isArray(apply)) { apply.push(patch) } else { apply = [apply, patch] } return apply } else { return patch } } },{"../vnode/handle-thunk":11,"../vnode/is-thunk":12,"../vnode/is-vnode":14,"../vnode/is-vtext":15,"../vnode/is-widget":16,"../vnode/vpatch":19,"./diff-props":21,"x-is-array":4}],23:[function(require,module,exports){ var VNode = require('virtual-dom/vnode/vnode'); var VText = require('virtual-dom/vnode/vtext'); var diff = require('virtual-dom/vtree/diff'); var patch = require('virtual-dom/vdom/patch'); var createElement = require('virtual-dom/vdom/create-element'); var isHook = require("virtual-dom/vnode/is-vhook"); Elm.Native.VirtualDom = {}; Elm.Native.VirtualDom.make = function(elm) { elm.Native = elm.Native || {}; elm.Native.VirtualDom = elm.Native.VirtualDom || {}; if (elm.Native.VirtualDom.values) { return elm.Native.VirtualDom.values; } var Element = Elm.Native.Graphics.Element.make(elm); var Json = Elm.Native.Json.make(elm); var List = Elm.Native.List.make(elm); var Signal = Elm.Native.Signal.make(elm); var Utils = Elm.Native.Utils.make(elm); var ATTRIBUTE_KEY = 'UniqueNameThatOthersAreVeryUnlikelyToUse'; // VIRTUAL DOM NODES function text(string) { return new VText(string); } function node(name) { return F2(function(propertyList, contents) { return makeNode(name, propertyList, contents); }); } // BUILD VIRTUAL DOME NODES function makeNode(name, propertyList, contents) { var props = listToProperties(propertyList); var key, namespace; // support keys if (props.key !== undefined) { key = props.key; props.key = undefined; } // support namespace if (props.namespace !== undefined) { namespace = props.namespace; props.namespace = undefined; } // ensure that setting text of an input does not move the cursor var useSoftSet = (name === 'input' || name === 'textarea') && props.value !== undefined && !isHook(props.value); if (useSoftSet) { props.value = SoftSetHook(props.value); } return new VNode(name, props, List.toArray(contents), key, namespace); } function listToProperties(list) { var object = {}; while (list.ctor !== '[]') { var entry = list._0; if (entry.key === ATTRIBUTE_KEY) { object.attributes = object.attributes || {}; object.attributes[entry.value.attrKey] = entry.value.attrValue; } else { object[entry.key] = entry.value; } list = list._1; } return object; } // PROPERTIES AND ATTRIBUTES function property(key, value) { return { key: key, value: value }; } function attribute(key, value) { return { key: ATTRIBUTE_KEY, value: { attrKey: key, attrValue: value } }; } // NAMESPACED ATTRIBUTES function attributeNS(namespace, key, value) { return { key: key, value: new AttributeHook(namespace, key, value) }; } function AttributeHook(namespace, key, value) { if (!(this instanceof AttributeHook)) { return new AttributeHook(namespace, key, value); } this.namespace = namespace; this.key = key; this.value = value; } AttributeHook.prototype.hook = function (node, prop, prev) { if (prev && prev.type === 'AttributeHook' && prev.value === this.value && prev.namespace === this.namespace) { return; } node.setAttributeNS(this.namespace, prop, this.value); }; AttributeHook.prototype.unhook = function (node, prop, next) { if (next && next.type === 'AttributeHook' && next.namespace === this.namespace) { return; } node.removeAttributeNS(this.namespace, this.key); }; AttributeHook.prototype.type = 'AttributeHook'; // EVENTS function on(name, options, decoder, createMessage) { function eventHandler(event) { var value = A2(Json.runDecoderValue, decoder, event); if (value.ctor === 'Ok') { if (options.stopPropagation) { event.stopPropagation(); } if (options.preventDefault) { event.preventDefault(); } Signal.sendMessage(createMessage(value._0)); } } return property('on' + name, eventHandler); } function SoftSetHook(value) { if (!(this instanceof SoftSetHook)) { return new SoftSetHook(value); } this.value = value; } SoftSetHook.prototype.hook = function (node, propertyName) { if (node[propertyName] !== this.value) { node[propertyName] = this.value; } }; // INTEGRATION WITH ELEMENTS function ElementWidget(element) { this.element = element; } ElementWidget.prototype.type = "Widget"; ElementWidget.prototype.init = function init() { return Element.render(this.element); }; ElementWidget.prototype.update = function update(previous, node) { return Element.update(node, previous.element, this.element); }; function fromElement(element) { return new ElementWidget(element); } function toElement(width, height, html) { return A3(Element.newElement, width, height, { ctor: 'Custom', type: 'evancz/elm-html', render: render, update: update, model: html }); } // RENDER AND UPDATE function render(model) { var element = Element.createNode('div'); element.appendChild(createElement(model)); return element; } function update(node, oldModel, newModel) { updateAndReplace(node.firstChild, oldModel, newModel); return node; } function updateAndReplace(node, oldModel, newModel) { var patches = diff(oldModel, newModel); var newNode = patch(node, patches); return newNode; } // LAZINESS function lazyRef(fn, a) { function thunk() { return fn(a); } return new Thunk(fn, [a], thunk); } function lazyRef2(fn, a, b) { function thunk() { return A2(fn, a, b); } return new Thunk(fn, [a,b], thunk); } function lazyRef3(fn, a, b, c) { function thunk() { return A3(fn, a, b, c); } return new Thunk(fn, [a,b,c], thunk); } function Thunk(fn, args, thunk) { /* public (used by VirtualDom.js) */ this.vnode = null; this.key = undefined; /* private */ this.fn = fn; this.args = args; this.thunk = thunk; } Thunk.prototype.type = "Thunk"; Thunk.prototype.render = renderThunk; function shouldUpdate(current, previous) { if (current.fn !== previous.fn) { return true; } // if it's the same function, we know the number of args must match var cargs = current.args; var pargs = previous.args; for (var i = cargs.length; i--; ) { if (cargs[i] !== pargs[i]) { return true; } } return false; } function renderThunk(previous) { if (previous == null || shouldUpdate(this, previous)) { return this.thunk(); } else { return previous.vnode; } } return elm.Native.VirtualDom.values = Elm.Native.VirtualDom.values = { node: node, text: text, on: F4(on), property: F2(property), attribute: F2(attribute), attributeNS: F3(attributeNS), lazy: F2(lazyRef), lazy2: F3(lazyRef2), lazy3: F4(lazyRef3), toElement: F3(toElement), fromElement: fromElement, render: createElement, updateAndReplace: updateAndReplace }; }; },{"virtual-dom/vdom/create-element":6,"virtual-dom/vdom/patch":9,"virtual-dom/vnode/is-vhook":13,"virtual-dom/vnode/vnode":18,"virtual-dom/vnode/vtext":20,"virtual-dom/vtree/diff":22}]},{},[23]); Elm.VirtualDom = Elm.VirtualDom || {}; Elm.VirtualDom.make = function (_elm) { "use strict"; _elm.VirtualDom = _elm.VirtualDom || {}; if (_elm.VirtualDom.values) return _elm.VirtualDom.values; var _U = Elm.Native.Utils.make(_elm), $Basics = Elm.Basics.make(_elm), $Debug = Elm.Debug.make(_elm), $Graphics$Element = Elm.Graphics.Element.make(_elm), $Json$Decode = Elm.Json.Decode.make(_elm), $List = Elm.List.make(_elm), $Maybe = Elm.Maybe.make(_elm), $Native$VirtualDom = Elm.Native.VirtualDom.make(_elm), $Result = Elm.Result.make(_elm), $Signal = Elm.Signal.make(_elm); var _op = {}; var lazy3 = $Native$VirtualDom.lazy3; var lazy2 = $Native$VirtualDom.lazy2; var lazy = $Native$VirtualDom.lazy; var defaultOptions = {stopPropagation: false,preventDefault: false}; var Options = F2(function (a,b) { return {stopPropagation: a,preventDefault: b};}); var onWithOptions = $Native$VirtualDom.on; var on = F3(function (eventName,decoder,toMessage) { return A4($Native$VirtualDom.on,eventName,defaultOptions,decoder,toMessage);}); var attributeNS = $Native$VirtualDom.attributeNS; var attribute = $Native$VirtualDom.attribute; var property = $Native$VirtualDom.property; var Property = {ctor: "Property"}; var fromElement = $Native$VirtualDom.fromElement; var toElement = $Native$VirtualDom.toElement; var text = $Native$VirtualDom.text; var node = $Native$VirtualDom.node; var Node = {ctor: "Node"}; return _elm.VirtualDom.values = {_op: _op ,text: text ,node: node ,toElement: toElement ,fromElement: fromElement ,property: property ,attribute: attribute ,attributeNS: attributeNS ,on: on ,onWithOptions: onWithOptions ,defaultOptions: defaultOptions ,lazy: lazy ,lazy2: lazy2 ,lazy3: lazy3 ,Options: Options}; }; Elm.Html = Elm.Html || {}; Elm.Html.make = function (_elm) { "use strict"; _elm.Html = _elm.Html || {}; if (_elm.Html.values) return _elm.Html.values; var _U = Elm.Native.Utils.make(_elm), $Basics = Elm.Basics.make(_elm), $Debug = Elm.Debug.make(_elm), $Graphics$Element = Elm.Graphics.Element.make(_elm), $List = Elm.List.make(_elm), $Maybe = Elm.Maybe.make(_elm), $Result = Elm.Result.make(_elm), $Signal = Elm.Signal.make(_elm), $VirtualDom = Elm.VirtualDom.make(_elm); var _op = {}; var fromElement = $VirtualDom.fromElement; var toElement = $VirtualDom.toElement; var text = $VirtualDom.text; var node = $VirtualDom.node; var body = node("body"); var section = node("section"); var nav = node("nav"); var article = node("article"); var aside = node("aside"); var h1 = node("h1"); var h2 = node("h2"); var h3 = node("h3"); var h4 = node("h4"); var h5 = node("h5"); var h6 = node("h6"); var header = node("header"); var footer = node("footer"); var address = node("address"); var main$ = node("main"); var p = node("p"); var hr = node("hr"); var pre = node("pre"); var blockquote = node("blockquote"); var ol = node("ol"); var ul = node("ul"); var li = node("li"); var dl = node("dl"); var dt = node("dt"); var dd = node("dd"); var figure = node("figure"); var figcaption = node("figcaption"); var div = node("div"); var a = node("a"); var em = node("em"); var strong = node("strong"); var small = node("small"); var s = node("s"); var cite = node("cite"); var q = node("q"); var dfn = node("dfn"); var abbr = node("abbr"); var time = node("time"); var code = node("code"); var $var = node("var"); var samp = node("samp"); var kbd = node("kbd"); var sub = node("sub"); var sup = node("sup"); var i = node("i"); var b = node("b"); var u = node("u"); var mark = node("mark"); var ruby = node("ruby"); var rt = node("rt"); var rp = node("rp"); var bdi = node("bdi"); var bdo = node("bdo"); var span = node("span"); var br = node("br"); var wbr = node("wbr"); var ins = node("ins"); var del = node("del"); var img = node("img"); var iframe = node("iframe"); var embed = node("embed"); var object = node("object"); var param = node("param"); var video = node("video"); var audio = node("audio"); var source = node("source"); var track = node("track"); var canvas = node("canvas"); var svg = node("svg"); var math = node("math"); var table = node("table"); var caption = node("caption"); var colgroup = node("colgroup"); var col = node("col"); var tbody = node("tbody"); var thead = node("thead"); var tfoot = node("tfoot"); var tr = node("tr"); var td = node("td"); var th = node("th"); var form = node("form"); var fieldset = node("fieldset"); var legend = node("legend"); var label = node("label"); var input = node("input"); var button = node("button"); var select = node("select"); var datalist = node("datalist"); var optgroup = node("optgroup"); var option = node("option"); var textarea = node("textarea"); var keygen = node("keygen"); var output = node("output"); var progress = node("progress"); var meter = node("meter"); var details = node("details"); var summary = node("summary"); var menuitem = node("menuitem"); var menu = node("menu"); return _elm.Html.values = {_op: _op ,node: node ,text: text ,toElement: toElement ,fromElement: fromElement ,body: body ,section: section ,nav: nav ,article: article ,aside: aside ,h1: h1 ,h2: h2 ,h3: h3 ,h4: h4 ,h5: h5 ,h6: h6 ,header: header ,footer: footer ,address: address ,main$: main$ ,p: p ,hr: hr ,pre: pre ,blockquote: blockquote ,ol: ol ,ul: ul ,li: li ,dl: dl ,dt: dt ,dd: dd ,figure: figure ,figcaption: figcaption ,div: div ,a: a ,em: em ,strong: strong ,small: small ,s: s ,cite: cite ,q: q ,dfn: dfn ,abbr: abbr ,time: time ,code: code ,$var: $var ,samp: samp ,kbd: kbd ,sub: sub ,sup: sup ,i: i ,b: b ,u: u ,mark: mark ,ruby: ruby ,rt: rt ,rp: rp ,bdi: bdi ,bdo: bdo ,span: span ,br: br ,wbr: wbr ,ins: ins ,del: del ,img: img ,iframe: iframe ,embed: embed ,object: object ,param: param ,video: video ,audio: audio ,source: source ,track: track ,canvas: canvas ,svg: svg ,math: math ,table: table ,caption: caption ,colgroup: colgroup ,col: col ,tbody: tbody ,thead: thead ,tfoot: tfoot ,tr: tr ,td: td ,th: th ,form: form ,fieldset: fieldset ,legend: legend ,label: label ,input: input ,button: button ,select: select ,datalist: datalist ,optgroup: optgroup ,option: option ,textarea: textarea ,keygen: keygen ,output: output ,progress: progress ,meter: meter ,details: details ,summary: summary ,menuitem: menuitem ,menu: menu}; }; Elm.Html = Elm.Html || {}; Elm.Html.Attributes = Elm.Html.Attributes || {}; Elm.Html.Attributes.make = function (_elm) { "use strict"; _elm.Html = _elm.Html || {}; _elm.Html.Attributes = _elm.Html.Attributes || {}; if (_elm.Html.Attributes.values) return _elm.Html.Attributes.values; var _U = Elm.Native.Utils.make(_elm), $Basics = Elm.Basics.make(_elm), $Debug = Elm.Debug.make(_elm), $Html = Elm.Html.make(_elm), $Json$Encode = Elm.Json.Encode.make(_elm), $List = Elm.List.make(_elm), $Maybe = Elm.Maybe.make(_elm), $Result = Elm.Result.make(_elm), $Signal = Elm.Signal.make(_elm), $String = Elm.String.make(_elm), $VirtualDom = Elm.VirtualDom.make(_elm); var _op = {}; var attribute = $VirtualDom.attribute; var contextmenu = function (value) { return A2(attribute,"contextmenu",value);}; var property = $VirtualDom.property; var stringProperty = F2(function (name,string) { return A2(property,name,$Json$Encode.string(string));}); var $class = function (name) { return A2(stringProperty,"className",name);}; var id = function (name) { return A2(stringProperty,"id",name);}; var title = function (name) { return A2(stringProperty,"title",name);}; var accesskey = function ($char) { return A2(stringProperty,"accessKey",$String.fromChar($char));}; var dir = function (value) { return A2(stringProperty,"dir",value);}; var draggable = function (value) { return A2(stringProperty,"draggable",value);}; var dropzone = function (value) { return A2(stringProperty,"dropzone",value);}; var itemprop = function (value) { return A2(stringProperty,"itemprop",value);}; var lang = function (value) { return A2(stringProperty,"lang",value);}; var tabindex = function (n) { return A2(stringProperty,"tabIndex",$Basics.toString(n));}; var charset = function (value) { return A2(stringProperty,"charset",value);}; var content = function (value) { return A2(stringProperty,"content",value);}; var httpEquiv = function (value) { return A2(stringProperty,"httpEquiv",value);}; var language = function (value) { return A2(stringProperty,"language",value);}; var src = function (value) { return A2(stringProperty,"src",value);}; var height = function (value) { return A2(stringProperty,"height",$Basics.toString(value));}; var width = function (value) { return A2(stringProperty,"width",$Basics.toString(value));}; var alt = function (value) { return A2(stringProperty,"alt",value);}; var preload = function (value) { return A2(stringProperty,"preload",value);}; var poster = function (value) { return A2(stringProperty,"poster",value);}; var kind = function (value) { return A2(stringProperty,"kind",value);}; var srclang = function (value) { return A2(stringProperty,"srclang",value);}; var sandbox = function (value) { return A2(stringProperty,"sandbox",value);}; var srcdoc = function (value) { return A2(stringProperty,"srcdoc",value);}; var type$ = function (value) { return A2(stringProperty,"type",value);}; var value = function (value) { return A2(stringProperty,"value",value);}; var placeholder = function (value) { return A2(stringProperty,"placeholder",value);}; var accept = function (value) { return A2(stringProperty,"accept",value);}; var acceptCharset = function (value) { return A2(stringProperty,"acceptCharset",value);}; var action = function (value) { return A2(stringProperty,"action",value);}; var autocomplete = function (bool) { return A2(stringProperty,"autocomplete",bool ? "on" : "off");}; var autosave = function (value) { return A2(stringProperty,"autosave",value);}; var enctype = function (value) { return A2(stringProperty,"enctype",value);}; var formaction = function (value) { return A2(stringProperty,"formAction",value);}; var list = function (value) { return A2(stringProperty,"list",value);}; var minlength = function (n) { return A2(stringProperty,"minLength",$Basics.toString(n));}; var maxlength = function (n) { return A2(stringProperty,"maxLength",$Basics.toString(n));}; var method = function (value) { return A2(stringProperty,"method",value);}; var name = function (value) { return A2(stringProperty,"name",value);}; var pattern = function (value) { return A2(stringProperty,"pattern",value);}; var size = function (n) { return A2(stringProperty,"size",$Basics.toString(n));}; var $for = function (value) { return A2(stringProperty,"htmlFor",value);}; var form = function (value) { return A2(stringProperty,"form",value);}; var max = function (value) { return A2(stringProperty,"max",value);}; var min = function (value) { return A2(stringProperty,"min",value);}; var step = function (n) { return A2(stringProperty,"step",n);}; var cols = function (n) { return A2(stringProperty,"cols",$Basics.toString(n));}; var rows = function (n) { return A2(stringProperty,"rows",$Basics.toString(n));}; var wrap = function (value) { return A2(stringProperty,"wrap",value);}; var usemap = function (value) { return A2(stringProperty,"useMap",value);}; var shape = function (value) { return A2(stringProperty,"shape",value);}; var coords = function (value) { return A2(stringProperty,"coords",value);}; var challenge = function (value) { return A2(stringProperty,"challenge",value);}; var keytype = function (value) { return A2(stringProperty,"keytype",value);}; var align = function (value) { return A2(stringProperty,"align",value);}; var cite = function (value) { return A2(stringProperty,"cite",value);}; var href = function (value) { return A2(stringProperty,"href",value);}; var target = function (value) { return A2(stringProperty,"target",value);}; var downloadAs = function (value) { return A2(stringProperty,"download",value);}; var hreflang = function (value) { return A2(stringProperty,"hreflang",value);}; var media = function (value) { return A2(stringProperty,"media",value);}; var ping = function (value) { return A2(stringProperty,"ping",value);}; var rel = function (value) { return A2(stringProperty,"rel",value);}; var datetime = function (value) { return A2(stringProperty,"datetime",value);}; var pubdate = function (value) { return A2(stringProperty,"pubdate",value);}; var start = function (n) { return A2(stringProperty,"start",$Basics.toString(n));}; var colspan = function (n) { return A2(stringProperty,"colSpan",$Basics.toString(n));}; var headers = function (value) { return A2(stringProperty,"headers",value);}; var rowspan = function (n) { return A2(stringProperty,"rowSpan",$Basics.toString(n));}; var scope = function (value) { return A2(stringProperty,"scope",value);}; var manifest = function (value) { return A2(stringProperty,"manifest",value);}; var boolProperty = F2(function (name,bool) { return A2(property,name,$Json$Encode.bool(bool));}); var hidden = function (bool) { return A2(boolProperty,"hidden",bool);}; var contenteditable = function (bool) { return A2(boolProperty,"contentEditable",bool);}; var spellcheck = function (bool) { return A2(boolProperty,"spellcheck",bool);}; var async = function (bool) { return A2(boolProperty,"async",bool);}; var defer = function (bool) { return A2(boolProperty,"defer",bool);}; var scoped = function (bool) { return A2(boolProperty,"scoped",bool);}; var autoplay = function (bool) { return A2(boolProperty,"autoplay",bool);}; var controls = function (bool) { return A2(boolProperty,"controls",bool);}; var loop = function (bool) { return A2(boolProperty,"loop",bool);}; var $default = function (bool) { return A2(boolProperty,"default",bool);}; var seamless = function (bool) { return A2(boolProperty,"seamless",bool);}; var checked = function (bool) { return A2(boolProperty,"checked",bool);}; var selected = function (bool) { return A2(boolProperty,"selected",bool);}; var autofocus = function (bool) { return A2(boolProperty,"autofocus",bool);}; var disabled = function (bool) { return A2(boolProperty,"disabled",bool);}; var multiple = function (bool) { return A2(boolProperty,"multiple",bool);}; var novalidate = function (bool) { return A2(boolProperty,"noValidate",bool);}; var readonly = function (bool) { return A2(boolProperty,"readOnly",bool);}; var required = function (bool) { return A2(boolProperty,"required",bool);}; var ismap = function (value) { return A2(boolProperty,"isMap",value);}; var download = function (bool) { return A2(boolProperty,"download",bool);}; var reversed = function (bool) { return A2(boolProperty,"reversed",bool);}; var classList = function (list) { return $class(A2($String.join," ",A2($List.map,$Basics.fst,A2($List.filter,$Basics.snd,list))));}; var style = function (props) { return A2(property, "style", $Json$Encode.object(A2($List.map,function (_p0) { var _p1 = _p0;return {ctor: "_Tuple2",_0: _p1._0,_1: $Json$Encode.string(_p1._1)};},props))); }; var key = function (k) { return A2(stringProperty,"key",k);}; return _elm.Html.Attributes.values = {_op: _op ,key: key ,style: style ,$class: $class ,classList: classList ,id: id ,title: title ,hidden: hidden ,type$: type$ ,value: value ,checked: checked ,placeholder: placeholder ,selected: selected ,accept: accept ,acceptCharset: acceptCharset ,action: action ,autocomplete: autocomplete ,autofocus: autofocus ,autosave: autosave ,disabled: disabled ,enctype: enctype ,formaction: formaction ,list: list ,maxlength: maxlength ,minlength: minlength ,method: method ,multiple: multiple ,name: name ,novalidate: novalidate ,pattern: pattern ,readonly: readonly ,required: required ,size: size ,$for: $for ,form: form ,max: max ,min: min ,step: step ,cols: cols ,rows: rows ,wrap: wrap ,href: href ,target: target ,download: download ,downloadAs: downloadAs ,hreflang: hreflang ,media: media ,ping: ping ,rel: rel ,ismap: ismap ,usemap: usemap ,shape: shape ,coords: coords ,src: src ,height: height ,width: width ,alt: alt ,autoplay: autoplay ,controls: controls ,loop: loop ,preload: preload ,poster: poster ,$default: $default ,kind: kind ,srclang: srclang ,sandbox: sandbox ,seamless: seamless ,srcdoc: srcdoc ,reversed: reversed ,start: start ,align: align ,colspan: colspan ,rowspan: rowspan ,headers: headers ,scope: scope ,async: async ,charset: charset ,content: content ,defer: defer ,httpEquiv: httpEquiv ,language: language ,scoped: scoped ,accesskey: accesskey ,contenteditable: contenteditable ,contextmenu: contextmenu ,dir: dir ,draggable: draggable ,dropzone: dropzone ,itemprop: itemprop ,lang: lang ,spellcheck: spellcheck ,tabindex: tabindex ,challenge: challenge ,keytype: keytype ,cite: cite ,datetime: datetime ,pubdate: pubdate ,manifest: manifest ,property: property ,attribute: attribute}; }; Elm.Native.Effects = {}; Elm.Native.Effects.make = function(localRuntime) { localRuntime.Native = localRuntime.Native || {}; localRuntime.Native.Effects = localRuntime.Native.Effects || {}; if (localRuntime.Native.Effects.values) { return localRuntime.Native.Effects.values; } var Task = Elm.Native.Task.make(localRuntime); var Utils = Elm.Native.Utils.make(localRuntime); var Signal = Elm.Signal.make(localRuntime); var List = Elm.Native.List.make(localRuntime); // polyfill so things will work even if rAF is not available for some reason var _requestAnimationFrame = typeof requestAnimationFrame !== 'undefined' ? requestAnimationFrame : function(cb) { setTimeout(cb, 1000 / 60); } ; // batchedSending and sendCallback implement a small state machine in order // to schedule only one send(time) call per animation frame. // // Invariants: // 1. In the NO_REQUEST state, there is never a scheduled sendCallback. // 2. In the PENDING_REQUEST and EXTRA_REQUEST states, there is always exactly // one scheduled sendCallback. var NO_REQUEST = 0; var PENDING_REQUEST = 1; var EXTRA_REQUEST = 2; var state = NO_REQUEST; var messageArray = []; function batchedSending(address, tickMessages) { // insert ticks into the messageArray var foundAddress = false; for (var i = messageArray.length; i--; ) { if (messageArray[i].address === address) { foundAddress = true; messageArray[i].tickMessages = A3(List.foldl, List.cons, messageArray[i].tickMessages, tickMessages); break; } } if (!foundAddress) { messageArray.push({ address: address, tickMessages: tickMessages }); } // do the appropriate state transition switch (state) { case NO_REQUEST: _requestAnimationFrame(sendCallback); state = PENDING_REQUEST; break; case PENDING_REQUEST: state = PENDING_REQUEST; break; case EXTRA_REQUEST: state = PENDING_REQUEST; break; } } function sendCallback(time) { switch (state) { case NO_REQUEST: // This state should not be possible. How can there be no // request, yet somehow we are actively fulfilling a // request? throw new Error( 'Unexpected send callback.\n' + 'Please report this to .' ); case PENDING_REQUEST: // At this point, we do not *know* that another frame is // needed, but we make an extra request to rAF just in // case. It's possible to drop a frame if rAF is called // too late, so we just do it preemptively. _requestAnimationFrame(sendCallback); state = EXTRA_REQUEST; // There's also stuff we definitely need to send. send(time); return; case EXTRA_REQUEST: // Turns out the extra request was not needed, so we will // stop calling rAF. No reason to call it all the time if // no one needs it. state = NO_REQUEST; return; } } function send(time) { for (var i = messageArray.length; i--; ) { var messages = A3( List.foldl, F2( function(toAction, list) { return List.Cons(toAction(time), list); } ), List.Nil, messageArray[i].tickMessages ); Task.perform( A2(Signal.send, messageArray[i].address, messages) ); } messageArray = []; } function requestTickSending(address, tickMessages) { return Task.asyncFunction(function(callback) { batchedSending(address, tickMessages); callback(Task.succeed(Utils.Tuple0)); }); } return localRuntime.Native.Effects.values = { requestTickSending: F2(requestTickSending) }; }; Elm.Effects = Elm.Effects || {}; Elm.Effects.make = function (_elm) { "use strict"; _elm.Effects = _elm.Effects || {}; if (_elm.Effects.values) return _elm.Effects.values; var _U = Elm.Native.Utils.make(_elm), $Basics = Elm.Basics.make(_elm), $Debug = Elm.Debug.make(_elm), $List = Elm.List.make(_elm), $Maybe = Elm.Maybe.make(_elm), $Native$Effects = Elm.Native.Effects.make(_elm), $Result = Elm.Result.make(_elm), $Signal = Elm.Signal.make(_elm), $Task = Elm.Task.make(_elm), $Time = Elm.Time.make(_elm); var _op = {}; var ignore = function (task) { return A2($Task.map,$Basics.always({ctor: "_Tuple0"}),task);}; var requestTickSending = $Native$Effects.requestTickSending; var toTaskHelp = F3(function (address,effect,_p0) { var _p1 = _p0; var _p5 = _p1._1; var _p4 = _p1; var _p3 = _p1._0; var _p2 = effect; switch (_p2.ctor) {case "Task": var reporter = A2($Task.andThen,_p2._0,function (answer) { return A2($Signal.send,address,_U.list([answer]));}); return {ctor: "_Tuple2",_0: A2($Task.andThen,_p3,$Basics.always(ignore($Task.spawn(reporter)))),_1: _p5}; case "Tick": return {ctor: "_Tuple2",_0: _p3,_1: A2($List._op["::"],_p2._0,_p5)}; case "None": return _p4; default: return A3($List.foldl,toTaskHelp(address),_p4,_p2._0);} }); var toTask = F2(function (address,effect) { var _p6 = A3(toTaskHelp,address,effect,{ctor: "_Tuple2",_0: $Task.succeed({ctor: "_Tuple0"}),_1: _U.list([])}); var combinedTask = _p6._0; var tickMessages = _p6._1; return $List.isEmpty(tickMessages) ? combinedTask : A2($Task.andThen,combinedTask,$Basics.always(A2(requestTickSending,address,tickMessages))); }); var Never = function (a) { return {ctor: "Never",_0: a};}; var Batch = function (a) { return {ctor: "Batch",_0: a};}; var batch = Batch; var None = {ctor: "None"}; var none = None; var Tick = function (a) { return {ctor: "Tick",_0: a};}; var tick = Tick; var Task = function (a) { return {ctor: "Task",_0: a};}; var task = Task; var map = F2(function (func,effect) { var _p7 = effect; switch (_p7.ctor) {case "Task": return Task(A2($Task.map,func,_p7._0)); case "Tick": return Tick(function (_p8) { return func(_p7._0(_p8));}); case "None": return None; default: return Batch(A2($List.map,map(func),_p7._0));} }); return _elm.Effects.values = {_op: _op,none: none,task: task,tick: tick,map: map,batch: batch,toTask: toTask}; }; Elm.StartApp = Elm.StartApp || {}; Elm.StartApp.make = function (_elm) { "use strict"; _elm.StartApp = _elm.StartApp || {}; if (_elm.StartApp.values) return _elm.StartApp.values; var _U = Elm.Native.Utils.make(_elm), $Basics = Elm.Basics.make(_elm), $Debug = Elm.Debug.make(_elm), $Effects = Elm.Effects.make(_elm), $Html = Elm.Html.make(_elm), $List = Elm.List.make(_elm), $Maybe = Elm.Maybe.make(_elm), $Result = Elm.Result.make(_elm), $Signal = Elm.Signal.make(_elm), $Task = Elm.Task.make(_elm); var _op = {}; var start = function (config) { var updateStep = F2(function (action,_p0) { var _p1 = _p0; var _p2 = A2(config.update,action,_p1._0); var newModel = _p2._0; var additionalEffects = _p2._1; return {ctor: "_Tuple2",_0: newModel,_1: $Effects.batch(_U.list([_p1._1,additionalEffects]))}; }); var update = F2(function (actions,_p3) { var _p4 = _p3;return A3($List.foldl,updateStep,{ctor: "_Tuple2",_0: _p4._0,_1: $Effects.none},actions);}); var messages = $Signal.mailbox(_U.list([])); var singleton = function (action) { return _U.list([action]);}; var address = A2($Signal.forwardTo,messages.address,singleton); var inputs = $Signal.mergeMany(A2($List._op["::"],messages.signal,A2($List.map,$Signal.map(singleton),config.inputs))); var effectsAndModel = A3($Signal.foldp,update,config.init,inputs); var model = A2($Signal.map,$Basics.fst,effectsAndModel); return {html: A2($Signal.map,config.view(address),model) ,model: model ,tasks: A2($Signal.map,function (_p5) { return A2($Effects.toTask,messages.address,$Basics.snd(_p5));},effectsAndModel)}; }; var App = F3(function (a,b,c) { return {html: a,model: b,tasks: c};}); var Config = F4(function (a,b,c,d) { return {init: a,update: b,view: c,inputs: d};}); return _elm.StartApp.values = {_op: _op,start: start,Config: Config,App: App}; }; Elm.Docs = Elm.Docs || {}; Elm.Docs.Name = Elm.Docs.Name || {}; Elm.Docs.Name.make = function (_elm) { "use strict"; _elm.Docs = _elm.Docs || {}; _elm.Docs.Name = _elm.Docs.Name || {}; if (_elm.Docs.Name.values) return _elm.Docs.Name.values; var _U = Elm.Native.Utils.make(_elm), $Basics = Elm.Basics.make(_elm), $Debug = Elm.Debug.make(_elm), $Dict = Elm.Dict.make(_elm), $Html = Elm.Html.make(_elm), $Html$Attributes = Elm.Html.Attributes.make(_elm), $List = Elm.List.make(_elm), $Maybe = Elm.Maybe.make(_elm), $Result = Elm.Result.make(_elm), $Set = Elm.Set.make(_elm), $Signal = Elm.Signal.make(_elm), $String = Elm.String.make(_elm); var _op = {}; var toLink = F2(function (dict,_p0) { var _p1 = _p0; var _p4 = _p1.name; var _p3 = _p1.home; var _p2 = A2($Maybe.map,$Set.member(_p4),A2($Dict.get,_p3,dict)); if (_p2.ctor === "Just" && _p2._0 === true) { var link = A2($Basics._op["++"], A2($String.map,function (c) { return _U.eq(c,_U.chr(".")) ? _U.chr("-") : c;},_p3), A2($Basics._op["++"],"#",_p4)); return A2($Html.a,_U.list([$Html$Attributes.href(link)]),_U.list([$Html.text(_p4)])); } else { return $Html.text(_p4); } }); var Canonical = F2(function (a,b) { return {home: a,name: b};}); return _elm.Docs.Name.values = {_op: _op,Canonical: Canonical,toLink: toLink}; }; Elm.Utils = Elm.Utils || {}; Elm.Utils.Code = Elm.Utils.Code || {}; Elm.Utils.Code.make = function (_elm) { "use strict"; _elm.Utils = _elm.Utils || {}; _elm.Utils.Code = _elm.Utils.Code || {}; if (_elm.Utils.Code.values) return _elm.Utils.Code.values; var _U = Elm.Native.Utils.make(_elm), $Basics = Elm.Basics.make(_elm), $Debug = Elm.Debug.make(_elm), $Html = Elm.Html.make(_elm), $Html$Attributes = Elm.Html.Attributes.make(_elm), $List = Elm.List.make(_elm), $Maybe = Elm.Maybe.make(_elm), $Result = Elm.Result.make(_elm), $Signal = Elm.Signal.make(_elm); var _op = {}; var equals = A2($Html.span,_U.list([]),_U.list([$Html.text("=")])); var colon = A2($Html.span,_U.list([]),_U.list([$Html.text(":")])); var arrow = A2($Html.span,_U.list([]),_U.list([$Html.text("->")])); var space = $Html.text(" "); var padded = function (html) { return _U.list([space,html,space]);}; var addParens = function (list) { return A2($List._op["::"],$Html.text("("),A2($Basics._op["++"],list,_U.list([$Html.text(")")])));}; var keyword = function (kw) { return A2($Html.span,_U.list([$Html$Attributes.$class("hljs-keyword")]),_U.list([$Html.text(kw)]));}; return _elm.Utils.Code.values = {_op: _op,keyword: keyword,addParens: addParens,space: space,padded: padded,arrow: arrow,colon: colon,equals: equals}; }; Elm.Docs = Elm.Docs || {}; Elm.Docs.Type = Elm.Docs.Type || {}; Elm.Docs.Type.make = function (_elm) { "use strict"; _elm.Docs = _elm.Docs || {}; _elm.Docs.Type = _elm.Docs.Type || {}; if (_elm.Docs.Type.values) return _elm.Docs.Type.values; var _U = Elm.Native.Utils.make(_elm), $Basics = Elm.Basics.make(_elm), $Debug = Elm.Debug.make(_elm), $Docs$Name = Elm.Docs.Name.make(_elm), $Html = Elm.Html.make(_elm), $List = Elm.List.make(_elm), $Maybe = Elm.Maybe.make(_elm), $Result = Elm.Result.make(_elm), $Signal = Elm.Signal.make(_elm), $String = Elm.String.make(_elm), $Utils$Code = Elm.Utils.Code.make(_elm); var _op = {}; var Other = {ctor: "Other"}; var App = {ctor: "App"}; var Func = {ctor: "Func"}; var toHtml = F3(function (nameDict,context,tipe) { var go = F2(function (ctx,t) { return A3(toHtml,nameDict,ctx,t);}); var _p0 = tipe; switch (_p0.ctor) {case "Function": var argsHtml = A2($List.concatMap, function (arg) { return A2($Basics._op["++"],A2(go,Func,arg),$Utils$Code.padded($Utils$Code.arrow)); }, _p0._0); var maybeAddParens = function () { var _p1 = context; switch (_p1.ctor) {case "Func": return $Utils$Code.addParens; case "App": return $Utils$Code.addParens; default: return $Basics.identity;} }(); return maybeAddParens(A2($Basics._op["++"],argsHtml,A2(go,Func,_p0._1))); case "Var": return _U.list([$Html.text(_p0._0)]); case "Apply": if (_p0._1.ctor === "[]") { return _U.list([A2($Docs$Name.toLink,nameDict,_p0._0)]); } else { var argsHtml = A2($List.concatMap,function (arg) { return A2($List._op["::"],$Utils$Code.space,A2(go,App,arg));},_p0._1); var maybeAddParens = function () { var _p2 = context; switch (_p2.ctor) {case "Func": return $Basics.identity; case "App": return $Utils$Code.addParens; default: return $Basics.identity;} }(); return maybeAddParens(A2($List._op["::"],A2($Docs$Name.toLink,nameDict,_p0._0),argsHtml)); } case "Tuple": return $Utils$Code.addParens($List.concat(A2($List.intersperse,_U.list([$Html.text(", ")]),A2($List.map,go(Other),_p0._0)))); default: var fieldsHtml = $List.concat(A2($List.intersperse,_U.list([$Html.text(", ")]),A2($List.map,fieldToHtml(nameDict),_p0._0))); var recordInsides = function () { var _p3 = _p0._1; if (_p3.ctor === "Nothing") { return fieldsHtml; } else { return A2($List._op["::"],$Html.text(_p3._0),A2($List._op["::"],$Html.text(" | "),fieldsHtml)); } }(); return A2($List._op["::"],$Html.text("{ "),A2($Basics._op["++"],recordInsides,_U.list([$Html.text(" }")])));} }); var fieldToHtml = F2(function (nameDict,_p4) { var _p5 = _p4; return A2($List._op["::"], $Html.text(_p5._0), A2($List._op["::"],$Utils$Code.space,A2($List._op["::"],$Utils$Code.colon,A2($List._op["::"],$Utils$Code.space,A3(toHtml,nameDict,Other,_p5._1))))); }); var length = F2(function (context,tipe) { var _p6 = tipe; switch (_p6.ctor) {case "Function": var argLengths = A2($List.map,function (t) { return 4 + A2(length,Func,t);},_p6._0); var parens = function () { var _p7 = context;switch (_p7.ctor) {case "Func": return 2;case "App": return 2;default: return 0;}}(); return parens + $List.sum(argLengths) + A2(length,Func,_p6._1); case "Var": return $String.length(_p6._0); case "Apply": if (_p6._1.ctor === "[]") { return $String.length(_p6._0.name); } else { var argsLength = $List.sum(A2($List.map,function (t) { return 1 + A2(length,App,t);},_p6._1)); var parens = function () { var _p8 = context;switch (_p8.ctor) {case "Func": return 0;case "App": return 2;default: return 0;}}(); return parens + $String.length(_p6._0.name) + argsLength; } case "Tuple": return $List.sum(A2($List.map,function (t) { return 2 + A2(length,Other,t);},_p6._0)); default: var extLength = function () { var _p9 = _p6._1; if (_p9.ctor === "Nothing") { return 0; } else { return 2 + $String.length(_p9._0); } }(); var fieldLength = function (_p10) { var _p11 = _p10;return $String.length(_p11._0) + 3 + A2(length,Other,_p11._1);}; var recordLength = 2 + $List.sum(A2($List.map,function (ft) { return 2 + fieldLength(ft);},_p6._0)); return recordLength + extLength;} }); var Tag = F2(function (a,b) { return {tag: a,args: b};}); var Record = F2(function (a,b) { return {ctor: "Record",_0: a,_1: b};}); var Tuple = function (a) { return {ctor: "Tuple",_0: a};}; var Apply = F2(function (a,b) { return {ctor: "Apply",_0: a,_1: b};}); var Var = function (a) { return {ctor: "Var",_0: a};}; var Function = F2(function (a,b) { return {ctor: "Function",_0: a,_1: b};}); return _elm.Docs.Type.values = {_op: _op ,Function: Function ,Var: Var ,Apply: Apply ,Tuple: Tuple ,Record: Record ,Tag: Tag ,Func: Func ,App: App ,Other: Other ,toHtml: toHtml ,fieldToHtml: fieldToHtml ,length: length}; }; // setup Elm.Native = Elm.Native || {}; Elm.Native.Markdown = Elm.Native.Markdown || {}; // definition Elm.Native.Markdown.make = function(localRuntime) { 'use strict'; // attempt to short-circuit if ('values' in Elm.Native.Markdown) { return Elm.Native.Markdown.values; } var Element = Elm.Native.Graphics.Element.make(localRuntime); var marked = (function() { // catch the `marked` object regardless of the outer environment. // (ex. a CommonJS module compatible environment.) // note that this depends on marked's implementation of environment detection. var module = {}; var exports = module.exports = {}; /** * marked - a markdown parser * Copyright (c) 2011-2014, Christopher Jeffrey. (MIT Licensed) * https://github.com/chjj/marked */ (function(){var block={newline:/^\n+/,code:/^( {4}[^\n]+\n*)+/,fences:noop,hr:/^( *[-*_]){3,} *(?:\n+|$)/,heading:/^ *(#{1,6}) *([^\n]+?) *#* *(?:\n+|$)/,nptable:noop,lheading:/^([^\n]+)\n *(=|-){2,} *(?:\n+|$)/,blockquote:/^( *>[^\n]+(\n(?!def)[^\n]+)*\n*)+/,list:/^( *)(bull) [\s\S]+?(?:hr|def|\n{2,}(?! )(?!\1bull )\n*|\s*$)/,html:/^ *(?:comment|closed|closing) *(?:\n{2,}|\s*$)/,def:/^ *\[([^\]]+)\]: *]+)>?(?: +["(]([^\n]+)[")])? *(?:\n+|$)/,table:noop,paragraph:/^((?:[^\n]+\n?(?!hr|heading|lheading|blockquote|tag|def))+)\n*/,text:/^[^\n]+/};block.bullet=/(?:[*+-]|\d+\.)/;block.item=/^( *)(bull) [^\n]*(?:\n(?!\1bull )[^\n]*)*/;block.item=replace(block.item,"gm")(/bull/g,block.bullet)();block.list=replace(block.list)(/bull/g,block.bullet)("hr","\\n+(?=\\1?(?:[-*_] *){3,}(?:\\n+|$))")("def","\\n+(?="+block.def.source+")")();block.blockquote=replace(block.blockquote)("def",block.def)();block._tag="(?!(?:"+"a|em|strong|small|s|cite|q|dfn|abbr|data|time|code"+"|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo"+"|span|br|wbr|ins|del|img)\\b)\\w+(?!:/|[^\\w\\s@]*@)\\b";block.html=replace(block.html)("comment",//)("closed",/<(tag)[\s\S]+?<\/\1>/)("closing",/])*?>/)(/tag/g,block._tag)();block.paragraph=replace(block.paragraph)("hr",block.hr)("heading",block.heading)("lheading",block.lheading)("blockquote",block.blockquote)("tag","<"+block._tag)("def",block.def)();block.normal=merge({},block);block.gfm=merge({},block.normal,{fences:/^ *(`{3,}|~{3,}) *(\S+)? *\n([\s\S]+?)\s*\1 *(?:\n+|$)/,paragraph:/^/});block.gfm.paragraph=replace(block.paragraph)("(?!","(?!"+block.gfm.fences.source.replace("\\1","\\2")+"|"+block.list.source.replace("\\1","\\3")+"|")();block.tables=merge({},block.gfm,{nptable:/^ *(\S.*\|.*)\n *([-:]+ *\|[-| :]*)\n((?:.*\|.*(?:\n|$))*)\n*/,table:/^ *\|(.+)\n *\|( *[-:]+[-| :]*)\n((?: *\|.*(?:\n|$))*)\n*/});function Lexer(options){this.tokens=[];this.tokens.links={};this.options=options||marked.defaults;this.rules=block.normal;if(this.options.gfm){if(this.options.tables){this.rules=block.tables}else{this.rules=block.gfm}}}Lexer.rules=block;Lexer.lex=function(src,options){var lexer=new Lexer(options);return lexer.lex(src)};Lexer.prototype.lex=function(src){src=src.replace(/\r\n|\r/g,"\n").replace(/\t/g," ").replace(/\u00a0/g," ").replace(/\u2424/g,"\n");return this.token(src,true)};Lexer.prototype.token=function(src,top,bq){var src=src.replace(/^ +$/gm,""),next,loose,cap,bull,b,item,space,i,l;while(src){if(cap=this.rules.newline.exec(src)){src=src.substring(cap[0].length);if(cap[0].length>1){this.tokens.push({type:"space"})}}if(cap=this.rules.code.exec(src)){src=src.substring(cap[0].length);cap=cap[0].replace(/^ {4}/gm,"");this.tokens.push({type:"code",text:!this.options.pedantic?cap.replace(/\n+$/,""):cap});continue}if(cap=this.rules.fences.exec(src)){src=src.substring(cap[0].length);this.tokens.push({type:"code",lang:cap[2],text:cap[3]});continue}if(cap=this.rules.heading.exec(src)){src=src.substring(cap[0].length);this.tokens.push({type:"heading",depth:cap[1].length,text:cap[2]});continue}if(top&&(cap=this.rules.nptable.exec(src))){src=src.substring(cap[0].length);item={type:"table",header:cap[1].replace(/^ *| *\| *$/g,"").split(/ *\| */),align:cap[2].replace(/^ *|\| *$/g,"").split(/ *\| */),cells:cap[3].replace(/\n$/,"").split("\n")};for(i=0;i ?/gm,"");this.token(cap,top,true);this.tokens.push({type:"blockquote_end"});continue}if(cap=this.rules.list.exec(src)){src=src.substring(cap[0].length);bull=cap[2];this.tokens.push({type:"list_start",ordered:bull.length>1});cap=cap[0].match(this.rules.item);next=false;l=cap.length;i=0;for(;i1&&b.length>1)){src=cap.slice(i+1).join("\n")+src;i=l-1}}loose=next||/\n\n(?!\s*$)/.test(item);if(i!==l-1){next=item.charAt(item.length-1)==="\n";if(!loose)loose=next}this.tokens.push({type:loose?"loose_item_start":"list_item_start"});this.token(item,false,bq);this.tokens.push({type:"list_item_end"})}this.tokens.push({type:"list_end"});continue}if(cap=this.rules.html.exec(src)){src=src.substring(cap[0].length);this.tokens.push({type:this.options.sanitize?"paragraph":"html",pre:cap[1]==="pre"||cap[1]==="script"||cap[1]==="style",text:cap[0]});continue}if(!bq&&top&&(cap=this.rules.def.exec(src))){src=src.substring(cap[0].length);this.tokens.links[cap[1].toLowerCase()]={href:cap[2],title:cap[3]};continue}if(top&&(cap=this.rules.table.exec(src))){src=src.substring(cap[0].length);item={type:"table",header:cap[1].replace(/^ *| *\| *$/g,"").split(/ *\| */),align:cap[2].replace(/^ *|\| *$/g,"").split(/ *\| */),cells:cap[3].replace(/(?: *\| *)?\n$/,"").split("\n")};for(i=0;i])/,autolink:/^<([^ >]+(@|:\/)[^ >]+)>/,url:noop,tag:/^|^<\/?\w+(?:"[^"]*"|'[^']*'|[^'">])*?>/,link:/^!?\[(inside)\]\(href\)/,reflink:/^!?\[(inside)\]\s*\[([^\]]*)\]/,nolink:/^!?\[((?:\[[^\]]*\]|[^\[\]])*)\]/,strong:/^__([\s\S]+?)__(?!_)|^\*\*([\s\S]+?)\*\*(?!\*)/,em:/^\b_((?:__|[\s\S])+?)_\b|^\*((?:\*\*|[\s\S])+?)\*(?!\*)/,code:/^(`+)\s*([\s\S]*?[^`])\s*\1(?!`)/,br:/^ {2,}\n(?!\s*$)/,del:noop,text:/^[\s\S]+?(?=[\\?(?:\s+['"]([\s\S]*?)['"])?\s*/;inline.link=replace(inline.link)("inside",inline._inside)("href",inline._href)();inline.reflink=replace(inline.reflink)("inside",inline._inside)();inline.normal=merge({},inline);inline.pedantic=merge({},inline.normal,{strong:/^__(?=\S)([\s\S]*?\S)__(?!_)|^\*\*(?=\S)([\s\S]*?\S)\*\*(?!\*)/,em:/^_(?=\S)([\s\S]*?\S)_(?!_)|^\*(?=\S)([\s\S]*?\S)\*(?!\*)/});inline.gfm=merge({},inline.normal,{escape:replace(inline.escape)("])","~|])")(),url:/^(https?:\/\/[^\s<]+[^<.,:;"')\]\s])/,del:/^~~(?=\S)([\s\S]*?\S)~~/,text:replace(inline.text)("]|","~]|")("|","|https?://|")()});inline.breaks=merge({},inline.gfm,{br:replace(inline.br)("{2,}","*")(),text:replace(inline.gfm.text)("{2,}","*")()});function InlineLexer(links,options){this.options=options||marked.defaults;this.links=links;this.rules=inline.normal;this.renderer=this.options.renderer||new Renderer;this.renderer.options=this.options;if(!this.links){throw new Error("Tokens array requires a `links` property.")}if(this.options.gfm){if(this.options.breaks){this.rules=inline.breaks}else{this.rules=inline.gfm}}else if(this.options.pedantic){this.rules=inline.pedantic}}InlineLexer.rules=inline;InlineLexer.output=function(src,links,options){var inline=new InlineLexer(links,options);return inline.output(src)};InlineLexer.prototype.output=function(src){var out="",link,text,href,cap;while(src){if(cap=this.rules.escape.exec(src)){src=src.substring(cap[0].length);out+=cap[1];continue}if(cap=this.rules.autolink.exec(src)){src=src.substring(cap[0].length);if(cap[2]==="@"){text=cap[1].charAt(6)===":"?this.mangle(cap[1].substring(7)):this.mangle(cap[1]);href=this.mangle("mailto:")+text}else{text=escape(cap[1]);href=text}out+=this.renderer.link(href,null,text);continue}if(!this.inLink&&(cap=this.rules.url.exec(src))){src=src.substring(cap[0].length);text=escape(cap[1]);href=text;out+=this.renderer.link(href,null,text);continue}if(cap=this.rules.tag.exec(src)){if(!this.inLink&&/^/i.test(cap[0])){this.inLink=false}src=src.substring(cap[0].length);out+=this.options.sanitize?escape(cap[0]):cap[0];continue}if(cap=this.rules.link.exec(src)){src=src.substring(cap[0].length);this.inLink=true;out+=this.outputLink(cap,{href:cap[2],title:cap[3]});this.inLink=false;continue}if((cap=this.rules.reflink.exec(src))||(cap=this.rules.nolink.exec(src))){src=src.substring(cap[0].length);link=(cap[2]||cap[1]).replace(/\s+/g," ");link=this.links[link.toLowerCase()];if(!link||!link.href){out+=cap[0].charAt(0);src=cap[0].substring(1)+src;continue}this.inLink=true;out+=this.outputLink(cap,link);this.inLink=false;continue}if(cap=this.rules.strong.exec(src)){src=src.substring(cap[0].length);out+=this.renderer.strong(this.output(cap[2]||cap[1]));continue}if(cap=this.rules.em.exec(src)){src=src.substring(cap[0].length);out+=this.renderer.em(this.output(cap[2]||cap[1]));continue}if(cap=this.rules.code.exec(src)){src=src.substring(cap[0].length);out+=this.renderer.codespan(escape(cap[2],true));continue}if(cap=this.rules.br.exec(src)){src=src.substring(cap[0].length);out+=this.renderer.br();continue}if(cap=this.rules.del.exec(src)){src=src.substring(cap[0].length);out+=this.renderer.del(this.output(cap[1]));continue}if(cap=this.rules.text.exec(src)){src=src.substring(cap[0].length);out+=escape(this.smartypants(cap[0]));continue}if(src){throw new Error("Infinite loop on byte: "+src.charCodeAt(0))}}return out};InlineLexer.prototype.outputLink=function(cap,link){var href=escape(link.href),title=link.title?escape(link.title):null;return cap[0].charAt(0)!=="!"?this.renderer.link(href,title,this.output(cap[1])):this.renderer.image(href,title,escape(cap[1]))};InlineLexer.prototype.smartypants=function(text){if(!this.options.smartypants)return text;return text.replace(/--/g,"—").replace(/(^|[-\u2014/(\[{"\s])'/g,"$1‘").replace(/'/g,"’").replace(/(^|[-\u2014/(\[{\u2018\s])"/g,"$1“").replace(/"/g,"”").replace(/\.{3}/g,"…")};InlineLexer.prototype.mangle=function(text){var out="",l=text.length,i=0,ch;for(;i.5){ch="x"+ch.toString(16)}out+="&#"+ch+";"}return out};function Renderer(options){this.options=options||{}}Renderer.prototype.code=function(code,lang,escaped){if(this.options.highlight){var out=this.options.highlight(code,lang);if(out!=null&&out!==code){escaped=true;code=out}}if(!lang){return"
"+(escaped?code:escape(code,true))+"\n
"}return'
'+(escaped?code:escape(code,true))+"\n
\n"};Renderer.prototype.blockquote=function(quote){return"
\n"+quote+"
\n"};Renderer.prototype.html=function(html){return html};Renderer.prototype.heading=function(text,level,raw){return"'+text+"\n"};Renderer.prototype.hr=function(){return this.options.xhtml?"
\n":"
\n"};Renderer.prototype.list=function(body,ordered){var type=ordered?"ol":"ul";return"<"+type+">\n"+body+"\n"};Renderer.prototype.listitem=function(text){return"
  • "+text+"
  • \n"};Renderer.prototype.paragraph=function(text){return"

    "+text+"

    \n"};Renderer.prototype.table=function(header,body){return"\n"+"\n"+header+"\n"+"\n"+body+"\n"+"
    \n"};Renderer.prototype.tablerow=function(content){return"\n"+content+"\n"};Renderer.prototype.tablecell=function(content,flags){var type=flags.header?"th":"td";var tag=flags.align?"<"+type+' style="text-align:'+flags.align+'">':"<"+type+">";return tag+content+"\n"};Renderer.prototype.strong=function(text){return""+text+""};Renderer.prototype.em=function(text){return""+text+""};Renderer.prototype.codespan=function(text){return""+text+""};Renderer.prototype.br=function(){return this.options.xhtml?"
    ":"
    "};Renderer.prototype.del=function(text){return""+text+""};Renderer.prototype.link=function(href,title,text){if(this.options.sanitize){try{var prot=decodeURIComponent(unescape(href)).replace(/[^\w:]/g,"").toLowerCase()}catch(e){return""}if(prot.indexOf("javascript:")===0){return""}}var out='
    ";return out};Renderer.prototype.image=function(href,title,text){var out=''+text+'":">";return out};function Parser(options){this.tokens=[];this.token=null;this.options=options||marked.defaults;this.options.renderer=this.options.renderer||new Renderer;this.renderer=this.options.renderer;this.renderer.options=this.options}Parser.parse=function(src,options,renderer){var parser=new Parser(options,renderer);return parser.parse(src)};Parser.prototype.parse=function(src){this.inline=new InlineLexer(src.links,this.options,this.renderer);this.tokens=src.reverse();var out="";while(this.next()){out+=this.tok()}return out};Parser.prototype.next=function(){return this.token=this.tokens.pop()};Parser.prototype.peek=function(){return this.tokens[this.tokens.length-1]||0};Parser.prototype.parseText=function(){var body=this.token.text;while(this.peek().type==="text"){body+="\n"+this.next().text}return this.inline.output(body)};Parser.prototype.tok=function(){switch(this.token.type){case"space":{return""}case"hr":{return this.renderer.hr()}case"heading":{return this.renderer.heading(this.inline.output(this.token.text),this.token.depth,this.token.text)}case"code":{return this.renderer.code(this.token.text,this.token.lang,this.token.escaped)}case"table":{var header="",body="",i,row,cell,flags,j;cell="";for(i=0;i/g,">").replace(/"/g,""").replace(/'/g,"'")}function unescape(html){return html.replace(/&([#\w]+);/g,function(_,n){n=n.toLowerCase();if(n==="colon")return":";if(n.charAt(0)==="#"){return n.charAt(1)==="x"?String.fromCharCode(parseInt(n.substring(2),16)):String.fromCharCode(+n.substring(1))}return""})}function replace(regex,opt){regex=regex.source;opt=opt||"";return function self(name,val){if(!name)return new RegExp(regex,opt);val=val.source||val;val=val.replace(/(^|[^\[])\^/g,"$1");regex=regex.replace(name,val);return self}}function noop(){}noop.exec=noop;function merge(obj){var i=1,target,key;for(;iAn error occured:

    "+escape(e.message+"",true)+"
    "}throw e}}marked.options=marked.setOptions=function(opt){merge(marked.defaults,opt);return marked};marked.defaults={gfm:true,tables:true,breaks:false,pedantic:false,sanitize:false,smartLists:false,silent:false,highlight:null,langPrefix:"lang-",smartypants:false,headerPrefix:"",renderer:new Renderer,xhtml:false};marked.Parser=Parser;marked.parser=Parser.parse;marked.Renderer=Renderer;marked.Lexer=Lexer;marked.lexer=Lexer.lex;marked.InlineLexer=InlineLexer;marked.inlineLexer=InlineLexer.output;marked.parse=marked;if(typeof module!=="undefined"&&typeof exports==="object"){module.exports=marked}else if(typeof define==="function"&&define.amd){define(function(){return marked})}else{this.marked=marked}}).call(function(){return this||(typeof window!=="undefined"?window:global)}()); return module.exports; })(); function formatOptions(options) { var toHighlight = function (code, lang) { if (!lang && options.defaultHighlighting.ctor === 'Just') { lang = options.defaultHighlighting._0; } if (typeof hljs !== 'undefined' && lang && hljs.listLanguages().indexOf(lang) >= 0) { return hljs.highlight(lang, code, true).value; } return code; }; var gfm = options.githubFlavored; if (gfm.ctor === 'Just') { return { highlight: toHighlight, gfm: true, tables: gfm._0.tables, breaks: gfm._0.breaks, sanitize: options.sanitize, smartypants: options.smartypants }; } else { return { highlight: toHighlight, gfm: false, tables: false, breaks: false, sanitize: options.sanitize, smartypants: options.smartypants }; } } function toHtmlWith(options, rawMarkdown) { return new MarkdownWidget(options, rawMarkdown); } function MarkdownWidget(options, rawMarkdown) { this.options = options; this.markdown = rawMarkdown; } MarkdownWidget.prototype.type = "Widget"; MarkdownWidget.prototype.init = function init() { var html = marked(this.markdown, formatOptions(this.options)); var div = document.createElement('div'); div.innerHTML = html; return div; }; MarkdownWidget.prototype.update = function update(previous, node) { if (this.markdown !== previous.markdown || this.options != previous.options) { var html = marked(this.markdown, formatOptions(this.options)); node.innerHTML = html; } return node; }; function toElementWith(options, rawMarkdown) { return Element.markdown(marked(rawMarkdown, formatOptions(options))); } return Elm.Native.Markdown.values = { toHtmlWith: F2(toHtmlWith), toElementWith: F2(toElementWith) }; }; Elm.Markdown = Elm.Markdown || {}; Elm.Markdown.make = function (_elm) { "use strict"; _elm.Markdown = _elm.Markdown || {}; if (_elm.Markdown.values) return _elm.Markdown.values; var _U = Elm.Native.Utils.make(_elm), $Basics = Elm.Basics.make(_elm), $Debug = Elm.Debug.make(_elm), $Graphics$Element = Elm.Graphics.Element.make(_elm), $Html = Elm.Html.make(_elm), $List = Elm.List.make(_elm), $Maybe = Elm.Maybe.make(_elm), $Native$Markdown = Elm.Native.Markdown.make(_elm), $Result = Elm.Result.make(_elm), $Signal = Elm.Signal.make(_elm); var _op = {}; var toElementWith = $Native$Markdown.toElementWith; var toHtmlWith = $Native$Markdown.toHtmlWith; var defaultOptions = {githubFlavored: $Maybe.Just({tables: false,breaks: false}),defaultHighlighting: $Maybe.Nothing,sanitize: false,smartypants: false}; var Options = F4(function (a,b,c,d) { return {githubFlavored: a,defaultHighlighting: b,sanitize: c,smartypants: d};}); var toElement = function (string) { return A2($Native$Markdown.toElementWith,defaultOptions,string);}; var toHtml = function (string) { return A2($Native$Markdown.toHtmlWith,defaultOptions,string);}; return _elm.Markdown.values = {_op: _op ,toHtml: toHtml ,toElement: toElement ,Options: Options ,defaultOptions: defaultOptions ,toHtmlWith: toHtmlWith ,toElementWith: toElementWith}; }; Elm.Utils = Elm.Utils || {}; Elm.Utils.Markdown = Elm.Utils.Markdown || {}; Elm.Utils.Markdown.make = function (_elm) { "use strict"; _elm.Utils = _elm.Utils || {}; _elm.Utils.Markdown = _elm.Utils.Markdown || {}; if (_elm.Utils.Markdown.values) return _elm.Utils.Markdown.values; var _U = Elm.Native.Utils.make(_elm), $Basics = Elm.Basics.make(_elm), $Debug = Elm.Debug.make(_elm), $Html = Elm.Html.make(_elm), $List = Elm.List.make(_elm), $Markdown = Elm.Markdown.make(_elm), $Maybe = Elm.Maybe.make(_elm), $Result = Elm.Result.make(_elm), $Signal = Elm.Signal.make(_elm); var _op = {}; var myOptions = function () { var options = $Markdown.defaultOptions;return _U.update(options,{defaultHighlighting: $Maybe.Just("elm")});}(); var block = function (raw) { return A2($Markdown.toHtmlWith,myOptions,raw);}; return _elm.Utils.Markdown.values = {_op: _op,block: block}; }; Elm.Docs = Elm.Docs || {}; Elm.Docs.Entry = Elm.Docs.Entry || {}; Elm.Docs.Entry.make = function (_elm) { "use strict"; _elm.Docs = _elm.Docs || {}; _elm.Docs.Entry = _elm.Docs.Entry || {}; if (_elm.Docs.Entry.values) return _elm.Docs.Entry.values; var _U = Elm.Native.Utils.make(_elm), $Basics = Elm.Basics.make(_elm), $Debug = Elm.Debug.make(_elm), $Docs$Name = Elm.Docs.Name.make(_elm), $Docs$Type = Elm.Docs.Type.make(_elm), $Effects = Elm.Effects.make(_elm), $Html = Elm.Html.make(_elm), $Html$Attributes = Elm.Html.Attributes.make(_elm), $List = Elm.List.make(_elm), $Maybe = Elm.Maybe.make(_elm), $Regex = Elm.Regex.make(_elm), $Result = Elm.Result.make(_elm), $Signal = Elm.Signal.make(_elm), $String = Elm.String.make(_elm), $Utils$Code = Elm.Utils.Code.make(_elm), $Utils$Markdown = Elm.Utils.Markdown.make(_elm); var _op = {}; var viewTag = F2(function (tipeToHtml,_p0) { var _p1 = _p0; return A2($List._op["::"], $Html.text(_p1.tag), A2($List.concatMap,F2(function (x,y) { return A2($List._op["::"],x,y);})($Utils$Code.space),A2($List.map,tipeToHtml,_p1.args))); }); var longFunctionAnnotation = F3(function (nameDict,args,result) { var starters = A2($List._op["::"], _U.list([$Html.text(" "),$Utils$Code.colon,$Html.text(" ")]), A2($List.repeat,$List.length(args),_U.list([$Html.text(" "),$Utils$Code.arrow,$Utils$Code.space]))); var tipeHtml = A2($List.map,A2($Docs$Type.toHtml,nameDict,$Docs$Type.Func),A2($Basics._op["++"],args,_U.list([result]))); return A3($List.map2,F2(function (x,y) { return A2($Basics._op["++"],x,y);}),starters,tipeHtml); }); var operator = $Regex.regex("^[^a-zA-Z0-9]+$"); var annotationBlock = function (bits) { return A2($Html.div,_U.list([$Html$Attributes.$class("docs-annotation")]),$List.concat(A2($List.intersperse,_U.list([$Html.text("\n")]),bits))); }; _op["=>"] = F2(function (v0,v1) { return {ctor: "_Tuple2",_0: v0,_1: v1};}); var nameToLink = function (name) { var humanName = A2($Regex.contains,operator,name) ? A2($Basics._op["++"],"(",A2($Basics._op["++"],name,")")) : name; return A2($Html.a, _U.list([$Html$Attributes.style(_U.list([A2(_op["=>"],"font-weight","bold")])),$Html$Attributes.href(A2($Basics._op["++"],"#",name))]), _U.list([$Html.text(humanName)])); }; var valueAnnotation = F3(function (nameDict,name,tipe) { var _p2 = A2($Debug.log,"Value annotation:",tipe); var _p3 = tipe; if (_p3.ctor === "Function") { return _U.cmp($String.length(name) + 3 + A2($Docs$Type.length,$Docs$Type.Other,tipe),64) > 0 ? A2($List._op["::"], _U.list([nameToLink(name)]), A3(longFunctionAnnotation,nameDict,_p3._0,_p3._1)) : _U.list([A2($List._op["::"], nameToLink(name), A2($Basics._op["++"],$Utils$Code.padded($Utils$Code.colon),A3($Docs$Type.toHtml,nameDict,$Docs$Type.Other,tipe)))]); } else { return _U.list([A2($List._op["::"], nameToLink(name), A2($Basics._op["++"],$Utils$Code.padded($Utils$Code.colon),A3($Docs$Type.toHtml,nameDict,$Docs$Type.Other,tipe)))]); } }); var unionAnnotation = F4(function (tipeToHtml,name,vars,tags) { var tagLines = A3($List.map2, F2(function (x,y) { return A2($List._op["::"],x,y);}), A2($List._op["::"],$Html.text(" = "),A2($List.repeat,$List.length(tags) - 1,$Html.text(" | "))), A2($List.map,viewTag(tipeToHtml),tags)); var nameLine = _U.list([$Utils$Code.keyword("type") ,$Utils$Code.space ,nameToLink(name) ,$Html.text($String.concat(A2($List.map,F2(function (x,y) { return A2($Basics._op["++"],x,y);})(" "),vars)))]); return A2($List._op["::"],nameLine,tagLines); }); var aliasNameLine = F2(function (name,vars) { return _U.list([$Utils$Code.keyword("type") ,$Utils$Code.space ,$Utils$Code.keyword("alias") ,$Utils$Code.space ,nameToLink(name) ,$Html.text($String.concat(A2($List.map,F2(function (x,y) { return A2($Basics._op["++"],x,y);})(" "),vars))) ,$Utils$Code.space ,$Utils$Code.equals ,$Utils$Code.space]); }); var aliasAnnotation = F4(function (nameDict,name,vars,tipe) { var typeLines = function () { var _p4 = tipe; if (_p4.ctor === "Record") { var _p7 = _p4._0; var _p5 = function () { var _p6 = _p4._1; if (_p6.ctor === "Nothing") { return {ctor: "_Tuple2" ,_0: _U.list([]) ,_1: A2($List._op["::"],$Html.text(" { "),A2($List.repeat,$List.length(_p7),$Html.text(" , ")))}; } else { return {ctor: "_Tuple2" ,_0: _U.list([_U.list([$Html.text(" { "),$Html.text(_p6._0),$Html.text(" |")])]) ,_1: A2($List._op["::"],$Html.text(" | "),A2($List.repeat,$List.length(_p7),$Html.text(" , ")))}; } }(); var firstLine = _p5._0; var starters = _p5._1; return A2($Basics._op["++"], firstLine, A2($Basics._op["++"], A3($List.map2,F2(function (x,y) { return A2($List._op["::"],x,y);}),starters,A2($List.map,$Docs$Type.fieldToHtml(nameDict),_p7)), _U.list([_U.list([$Html.text(" }")])]))); } else { return _U.list([A2($List._op["::"],$Html.text(" "),A3($Docs$Type.toHtml,nameDict,$Docs$Type.Other,tipe))]); } }(); return A2($List._op["::"],A2(aliasNameLine,name,vars),typeLines); }); var typeView = F2(function (nameDict,model) { var annotation = function () { var _p8 = model.info; switch (_p8.ctor) {case "Value": return A3(valueAnnotation,nameDict,model.name,_p8._0); case "Union": return A4(unionAnnotation,A2($Docs$Type.toHtml,nameDict,$Docs$Type.App),model.name,_p8._0.vars,_p8._0.tags); default: return A4(aliasAnnotation,nameDict,model.name,_p8._0.vars,_p8._0.tipe);} }(); return A2($Html.div, _U.list([$Html$Attributes.$class("docs-entry"),$Html$Attributes.id(model.name)]), _U.list([annotationBlock(annotation),A2($Html.div,_U.list([$Html$Attributes.$class("docs-comment")]),_U.list([$Utils$Markdown.block(model.docs)]))])); }); var stringView = function (model) { var annotation = function () { var _p9 = model.info; switch (_p9.ctor) {case "Value": return _U.list([A2($List._op["::"], nameToLink(model.name), A2($Basics._op["++"],$Utils$Code.padded($Utils$Code.colon),_U.list([$Html.text(_p9._0)])))]); case "Union": return A4(unionAnnotation,function (t) { return _U.list([$Html.text(t)]);},model.name,_p9._0.vars,_p9._0.tags); default: return _U.list([A2(aliasNameLine,model.name,_p9._0.vars),_U.list([$Html.text(" "),$Html.text(_p9._0.tipe)])]);} }(); return A2($Html.div, _U.list([$Html$Attributes.$class("docs-entry"),$Html$Attributes.id(model.name)]), _U.list([annotationBlock(annotation),A2($Html.div,_U.list([$Html$Attributes.$class("docs-comment")]),_U.list([$Utils$Markdown.block(model.docs)]))])); }; var tagMap = F2(function (func,tag) { return _U.update(tag,{args: A2($List.map,func,tag.args)});}); var update = F2(function (action,model) { return {ctor: "_Tuple2",_0: model,_1: $Effects.none};}); var Fixity = F2(function (a,b) { return {precedence: a,associativity: b};}); var Tag = F2(function (a,b) { return {tag: a,args: b};}); var Alias = function (a) { return {ctor: "Alias",_0: a};}; var Union = function (a) { return {ctor: "Union",_0: a};}; var Value = F2(function (a,b) { return {ctor: "Value",_0: a,_1: b};}); var map = F2(function (func,model) { var newInfo = function () { var _p10 = model.info; switch (_p10.ctor) {case "Value": return A2(Value,func(_p10._0),_p10._1); case "Union": return Union({vars: _p10._0.vars,tags: A2($List.map,tagMap(func),_p10._0.tags)}); default: return Alias({vars: _p10._0.vars,tipe: func(_p10._0.tipe)});} }(); return _U.update(model,{info: newInfo}); }); var Model = F3(function (a,b,c) { return {name: a,info: b,docs: c};}); return _elm.Docs.Entry.values = {_op: _op ,Model: Model ,Value: Value ,Union: Union ,Alias: Alias ,Tag: Tag ,Fixity: Fixity ,update: update ,map: map ,tagMap: tagMap ,stringView: stringView ,typeView: typeView ,annotationBlock: annotationBlock ,nameToLink: nameToLink ,operator: operator ,valueAnnotation: valueAnnotation ,longFunctionAnnotation: longFunctionAnnotation ,unionAnnotation: unionAnnotation ,viewTag: viewTag ,aliasAnnotation: aliasAnnotation ,aliasNameLine: aliasNameLine}; }; Elm.Docs = Elm.Docs || {}; Elm.Docs.Package = Elm.Docs.Package || {}; Elm.Docs.Package.make = function (_elm) { "use strict"; _elm.Docs = _elm.Docs || {}; _elm.Docs.Package = _elm.Docs.Package || {}; if (_elm.Docs.Package.values) return _elm.Docs.Package.values; var _U = Elm.Native.Utils.make(_elm), $Basics = Elm.Basics.make(_elm), $Debug = Elm.Debug.make(_elm), $Dict = Elm.Dict.make(_elm), $Docs$Entry = Elm.Docs.Entry.make(_elm), $Json$Decode = Elm.Json.Decode.make(_elm), $List = Elm.List.make(_elm), $Maybe = Elm.Maybe.make(_elm), $Result = Elm.Result.make(_elm), $Signal = Elm.Signal.make(_elm); var _op = {}; var tipe = $Json$Decode.string; var alias = A3($Json$Decode.object2, F2(function (vars,tipe) { return $Docs$Entry.Alias({vars: vars,tipe: tipe});}), A2($Json$Decode._op[":="],"args",$Json$Decode.list($Json$Decode.string)), A2($Json$Decode._op[":="],"type",tipe)); var tag = A3($Json$Decode.tuple2,$Docs$Entry.Tag,$Json$Decode.string,$Json$Decode.list(tipe)); var union = A3($Json$Decode.object2, F2(function (vars,tags) { return $Docs$Entry.Union({vars: vars,tags: tags});}), A2($Json$Decode._op[":="],"args",$Json$Decode.list($Json$Decode.string)), A2($Json$Decode._op[":="],"cases",$Json$Decode.list(tag))); var fixity = A3($Json$Decode.object2, $Docs$Entry.Fixity, A2($Json$Decode._op[":="],"precedence",$Json$Decode.$int), A2($Json$Decode._op[":="],"associativity",$Json$Decode.string)); var value = A3($Json$Decode.object2,$Docs$Entry.Value,A2($Json$Decode._op[":="],"type",tipe),$Json$Decode.maybe(fixity)); var entry = function (decodeInfo) { return A4($Json$Decode.object3, $Docs$Entry.Model, A2($Json$Decode._op[":="],"name",$Json$Decode.string), decodeInfo, A2($Json$Decode._op[":="],"comment",$Json$Decode.string)); }; var dictBy = F2(function (f,list) { return $Dict.fromList(A2($List.map,function (x) { return {ctor: "_Tuple2",_0: f(x),_1: x};},list));}); var Module = F3(function (a,b,c) { return {name: a,comment: b,entries: c};}); var decodeModule = function () { var make = F5(function (name,comment,values,unions,aliases) { return A3(Module,name,comment,A2(dictBy,function (_) { return _.name;},A2($Basics._op["++"],values,A2($Basics._op["++"],unions,aliases)))); }); return A6($Json$Decode.object5, make, A2($Json$Decode._op[":="],"name",$Json$Decode.string), A2($Json$Decode._op[":="],"comment",$Json$Decode.string), A2($Json$Decode._op[":="],"aliases",$Json$Decode.list(entry(alias))), A2($Json$Decode._op[":="],"types",$Json$Decode.list(entry(union))), A2($Json$Decode._op[":="],"values",$Json$Decode.list(entry(value)))); }(); var decodePackage = A2($Json$Decode.map,dictBy(function (_) { return _.name;}),$Json$Decode.list(decodeModule)); return _elm.Docs.Package.values = {_op: _op,decodePackage: decodePackage,decodeModule: decodeModule,Module: Module}; }; Elm.Native.Parse = {}; Elm.Native.Parse.make = function(localRuntime) { localRuntime.Native = localRuntime.Native || {}; localRuntime.Native.Parse = localRuntime.Native.Parse || {}; if (localRuntime.Native.Parse.values) { return localRuntime.Native.Parse.values; } var List = Elm.Native.List.make(localRuntime); var Utils = Elm.Native.Utils.make(localRuntime); // HELPERS function ok(index, value) { return { ctor: 'Ok', _0: { index: index, value: value } }; } function err(msg) { return { ctor: 'Err', _0: msg }; } // BASICS function succeed(value) { return function(input, index) { return ok(index, value); }; } function fail(msg) { return function(input, index) { return err(msg); }; } // SATISFY function satisfy(isOk) { return function(input, index) { if (input.length <= index) { return err('ran out of characters'); } var chr = Utils.chr(input[index]); return isOk(chr) ? ok(index + 1, chr) : err("char '" + input[index] + "' at index " + index + " is not okay."); }; } function string(expected) { return function(input, index) { var nextIndex = index + expected.length; var actual = input.slice(index, nextIndex); return expected === actual ? ok(nextIndex, actual) : err("expecting '" + expected + "' at index " + index + " but instead saw '" + actual + "'."); }; } // ONE OF function oneOf(parserList) { var parsers = List.toArray(parserList); return function(input, index) { var len = parsers.length; for (var i = 0; i < len; ++i) { var result = parsers[i](input, index); if (result.ctor === 'Ok') { return result; } } return err('none of the parsers given to oneOf worked'); }; } // AND THEN function andThen(parser, callback) { return function(input, index) { var result = parser(input, index); if (result.ctor === 'Ok') { var newData = result._0; return callback(newData.value)(input, newData.index); } else { return result; } }; } // RUN function run(parser, input) { var result = parser(input, 0); if (result.ctor === 'Ok') { return { ctor: 'Ok', _0: result._0.value }; } else { return result; } } return localRuntime.Native.Parse.values = { succeed: succeed, fail: fail, satisfy: satisfy, string: string, oneOf: oneOf, andThen: F2(andThen), run: F2(run) }; }; Elm.Parse = Elm.Parse || {}; Elm.Parse.Combinators = Elm.Parse.Combinators || {}; Elm.Parse.Combinators.make = function (_elm) { "use strict"; _elm.Parse = _elm.Parse || {}; _elm.Parse.Combinators = _elm.Parse.Combinators || {}; if (_elm.Parse.Combinators.values) return _elm.Parse.Combinators.values; var _U = Elm.Native.Utils.make(_elm), $Basics = Elm.Basics.make(_elm), $Char = Elm.Char.make(_elm), $Debug = Elm.Debug.make(_elm), $List = Elm.List.make(_elm), $Maybe = Elm.Maybe.make(_elm), $Native$Parse = Elm.Native.Parse.make(_elm), $Result = Elm.Result.make(_elm), $Signal = Elm.Signal.make(_elm); var _op = {}; var andThen = $Native$Parse.andThen; var fail = $Native$Parse.fail; var succeed = $Native$Parse.succeed; var map = F2(function (func,parser) { return A2(andThen,parser,function (a) { return succeed(func(a));});}); var map2 = F3(function (func,parserA,parserB) { return A2(andThen,parserA,function (a) { return A2(andThen,parserB,function (b) { return succeed(A2(func,a,b));});}); }); var ignore1 = F2(function (x,parser) { return A3(map2,F2(function (_p0,a) { return a;}),x,parser);}); var map3 = F4(function (func,parserA,parserB,parserC) { return A2(andThen, parserA, function (a) { return A2(andThen,parserB,function (b) { return A2(andThen,parserC,function (c) { return succeed(A3(func,a,b,c));});}); }); }); var ignore2 = F3(function (x,y,parser) { return A4(map3,F3(function (_p2,_p1,a) { return a;}),x,y,parser);}); var middle = F3(function (x,parser,y) { return A4(map3,F3(function (_p4,a,_p3) { return a;}),x,parser,y);}); var map4 = F5(function (func,parserA,parserB,parserC,parserD) { return A2(andThen, parserA, function (a) { return A2(andThen, parserB, function (b) { return A2(andThen,parserC,function (c) { return A2(andThen,parserD,function (d) { return succeed(A4(func,a,b,c,d));});}); }); }); }); var ignore3 = F4(function (x,y,z,parser) { return A5(map4,F4(function (_p7,_p6,_p5,a) { return a;}),x,y,z,parser);}); var lazy = function (thunk) { return A2(andThen,succeed({ctor: "_Tuple0"}),thunk);}; var $try = function (parser) { return parser;}; var oneOf = $Native$Parse.oneOf; var zeroOrMore = function (parser) { return oneOf(_U.list([A2(andThen,parser,function (a) { return A2(map,F2(function (x,y) { return A2($List._op["::"],x,y);})(a),zeroOrMore(parser));}) ,succeed(_U.list([]))])); }; var oneOrMore = function (parser) { return A3(map2,F2(function (x,y) { return A2($List._op["::"],x,y);}),parser,zeroOrMore(parser));}; var string = $Native$Parse.string; var satisfy = $Native$Parse.satisfy; var lower = satisfy($Char.isLower); var upper = satisfy($Char.isUpper); var letter = satisfy(function (c) { return $Char.isLower(c) || $Char.isUpper(c);}); var digit = satisfy($Char.isDigit); var $char = function (c) { return satisfy(F2(function (x,y) { return _U.eq(x,y);})(c));}; var run = $Native$Parse.run; var P = {ctor: "P"}; return _elm.Parse.Combinators.values = {_op: _op ,P: P ,run: run ,$char: $char ,satisfy: satisfy ,lower: lower ,upper: upper ,letter: letter ,digit: digit ,string: string ,oneOf: oneOf ,$try: $try ,succeed: succeed ,fail: fail ,map: map ,map2: map2 ,map3: map3 ,map4: map4 ,andThen: andThen ,zeroOrMore: zeroOrMore ,oneOrMore: oneOrMore ,lazy: lazy ,ignore1: ignore1 ,ignore2: ignore2 ,ignore3: ignore3 ,middle: middle}; }; Elm.Parse = Elm.Parse || {}; Elm.Parse.Type = Elm.Parse.Type || {}; Elm.Parse.Type.make = function (_elm) { "use strict"; _elm.Parse = _elm.Parse || {}; _elm.Parse.Type = _elm.Parse.Type || {}; if (_elm.Parse.Type.values) return _elm.Parse.Type.values; var _U = Elm.Native.Utils.make(_elm), $Basics = Elm.Basics.make(_elm), $Char = Elm.Char.make(_elm), $Debug = Elm.Debug.make(_elm), $Docs$Name = Elm.Docs.Name.make(_elm), $Docs$Type = Elm.Docs.Type.make(_elm), $List = Elm.List.make(_elm), $Maybe = Elm.Maybe.make(_elm), $Parse$Combinators = Elm.Parse.Combinators.make(_elm), $Result = Elm.Result.make(_elm), $Signal = Elm.Signal.make(_elm), $String = Elm.String.make(_elm); var _op = {}; var tuplize = function (args) { var _p0 = args; if (_p0.ctor === "::" && _p0._1.ctor === "[]") { return _p0._0; } else { return $Docs$Type.Tuple(args); } }; var buildFunction = F3(function (args,currentType,remainingTypes) { buildFunction: while (true) { var _p1 = remainingTypes; if (_p1.ctor === "[]") { return $List.isEmpty(args) ? currentType : A2($Docs$Type.Function,$List.reverse(args),currentType); } else { var _v2 = A2($List._op["::"],currentType,args),_v3 = _p1._0,_v4 = _p1._1; args = _v2; currentType = _v3; remainingTypes = _v4; continue buildFunction; } } }); var spaces = A2($Parse$Combinators.map,$Basics.always({ctor: "_Tuple0"}),$Parse$Combinators.zeroOrMore($Parse$Combinators.$char(_U.chr(" ")))); var commasLeading = function (parser) { return $Parse$Combinators.zeroOrMore(A4($Parse$Combinators.ignore3,spaces,$Parse$Combinators.$char(_U.chr(",")),spaces,parser)); }; var varChar = $Parse$Combinators.satisfy(function (c) { return $Char.isLower(c) || ($Char.isUpper(c) || (_U.eq(c,_U.chr("_")) || (_U.eq(c,_U.chr("\'")) || $Char.isDigit(c)))); }); var elmVarWith = function (starter) { return A2($Parse$Combinators.map, $String.fromList, A3($Parse$Combinators.map2,F2(function (x,y) { return A2($List._op["::"],x,y);}),starter,$Parse$Combinators.zeroOrMore(varChar))); }; var $var = A2($Parse$Combinators.map,$Docs$Type.Var,elmVarWith($Parse$Combinators.lower)); var nameHelp = function (seen) { return A2($Parse$Combinators.andThen, elmVarWith($Parse$Combinators.upper), function (str) { return $Parse$Combinators.oneOf(_U.list([A2($Parse$Combinators.ignore1,$Parse$Combinators.$char(_U.chr(".")),nameHelp(A2($List._op["::"],str,seen))) ,$Parse$Combinators.succeed(A2($Docs$Name.Canonical,A2($String.join,".",$List.reverse(seen)),str))])); }); }; var name = nameHelp(_U.list([])); var field = $Parse$Combinators.lazy(function (_p2) { return A3($Parse$Combinators.map2, F2(function (v0,v1) { return {ctor: "_Tuple2",_0: v0,_1: v1};}), elmVarWith($Parse$Combinators.lower), A4($Parse$Combinators.ignore3,spaces,$Parse$Combinators.$char(_U.chr(":")),spaces,tipe)); }); var tipe = $Parse$Combinators.lazy(function (_p3) { return A3($Parse$Combinators.map2,buildFunction(_U.list([])),tipeTerm,arrowTerms);}); var arrowTerms = $Parse$Combinators.lazy(function (_p4) { return $Parse$Combinators.zeroOrMore(A4($Parse$Combinators.ignore3,spaces,$Parse$Combinators.string("->"),spaces,tipeTerm)); }); var tipeTerm = $Parse$Combinators.lazy(function (_p5) { return $Parse$Combinators.oneOf(_U.list([$var,apply,record,parenTipe]));}); var apply = $Parse$Combinators.lazy(function (_p6) { return A3($Parse$Combinators.map2,$Docs$Type.Apply,name,$Parse$Combinators.zeroOrMore(A2($Parse$Combinators.ignore1,spaces,applyTerm))); }); var applyTerm = $Parse$Combinators.lazy(function (_p7) { return $Parse$Combinators.oneOf(_U.list([$var ,A2($Parse$Combinators.map,function (n) { return A2($Docs$Type.Apply,n,_U.list([]));},name) ,record ,parenTipe])); }); var parenTipe = $Parse$Combinators.lazy(function (_p8) { return A2($Parse$Combinators.map, tuplize, A3($Parse$Combinators.middle, A2($Parse$Combinators.ignore1,$Parse$Combinators.$char(_U.chr("(")),spaces), $Parse$Combinators.oneOf(_U.list([A3($Parse$Combinators.map2,F2(function (x,y) { return A2($List._op["::"],x,y);}),tipe,commasLeading(tipe)) ,$Parse$Combinators.succeed(_U.list([]))])), A2($Parse$Combinators.ignore1,spaces,$Parse$Combinators.$char(_U.chr(")"))))); }); var record = $Parse$Combinators.lazy(function (_p9) { return A3($Parse$Combinators.middle, A2($Parse$Combinators.ignore1,$Parse$Combinators.$char(_U.chr("{")),spaces), $Parse$Combinators.oneOf(_U.list([A2($Parse$Combinators.andThen,elmVarWith($Parse$Combinators.lower),recordHelp) ,$Parse$Combinators.succeed(A2($Docs$Type.Record,_U.list([]),$Maybe.Nothing))])), A2($Parse$Combinators.ignore1,spaces,$Parse$Combinators.$char(_U.chr("}")))); }); var recordHelp = function (lowerName) { return $Parse$Combinators.lazy(function (_p10) { return A2($Parse$Combinators.ignore1, spaces, $Parse$Combinators.oneOf(_U.list([A3($Parse$Combinators.map2, F2(function (t,rest) { return A2($Docs$Type.Record,A2($List._op["::"],{ctor: "_Tuple2",_0: lowerName,_1: t},rest),$Maybe.Nothing); }), A3($Parse$Combinators.ignore2,$Parse$Combinators.$char(_U.chr(":")),spaces,tipe), commasLeading(field)) ,A2($Parse$Combinators.map, function (fields) { return A2($Docs$Type.Record,fields,$Maybe.Just(lowerName)); }, A3($Parse$Combinators.ignore2, $Parse$Combinators.$char(_U.chr("|")), spaces, A3($Parse$Combinators.map2,F2(function (x,y) { return A2($List._op["::"],x,y);}),field,commasLeading(field))))]))); }); }; var parse = function (tipeString) { return A2($Parse$Combinators.run,tipe,tipeString);}; return _elm.Parse.Type.values = {_op: _op,parse: parse}; }; Elm.DocPreview = Elm.DocPreview || {}; Elm.DocPreview.make = function (_elm) { "use strict"; _elm.DocPreview = _elm.DocPreview || {}; if (_elm.DocPreview.values) return _elm.DocPreview.values; var _U = Elm.Native.Utils.make(_elm), $Basics = Elm.Basics.make(_elm), $Debug = Elm.Debug.make(_elm), $Dict = Elm.Dict.make(_elm), $Docs$Entry = Elm.Docs.Entry.make(_elm), $Docs$Name = Elm.Docs.Name.make(_elm), $Docs$Package = Elm.Docs.Package.make(_elm), $Docs$Type = Elm.Docs.Type.make(_elm), $Effects = Elm.Effects.make(_elm), $Html = Elm.Html.make(_elm), $Html$Attributes = Elm.Html.Attributes.make(_elm), $Json$Decode = Elm.Json.Decode.make(_elm), $List = Elm.List.make(_elm), $Maybe = Elm.Maybe.make(_elm), $Parse$Type = Elm.Parse.Type.make(_elm), $Regex = Elm.Regex.make(_elm), $Result = Elm.Result.make(_elm), $Set = Elm.Set.make(_elm), $Signal = Elm.Signal.make(_elm), $StartApp = Elm.StartApp.make(_elm), $String = Elm.String.make(_elm), $Utils$Markdown = Elm.Utils.Markdown.make(_elm); var _op = {}; var selectModule = Elm.Native.Port.make(_elm).inboundSignal("selectModule", "String", function (v) { return typeof v === "string" || typeof v === "object" && v instanceof String ? v : _U.badPort("a string",v); }); var modules = Elm.Native.Port.make(_elm).inboundSignal("modules", "String", function (v) { return typeof v === "string" || typeof v === "object" && v instanceof String ? v : _U.badPort("a string",v); }); var operator = $Regex.regex("^\\([^a-zA-Z0-9]+\\)$"); var $var = $Regex.regex("^[a-zA-Z0-9_\']+$"); var isValue = function (str) { return A2($Regex.contains,$var,str) ? $Maybe.Just(str) : A2($Regex.contains,operator,str) ? $Maybe.Just(A2($String.dropLeft, 1, A2($String.dropRight,1,str))) : $Maybe.Nothing; }; var stringToType = function (str) { var _p0 = A2($Debug.log,"String to type for:",str); var _p1 = $Parse$Type.parse(str); if (_p1.ctor === "Ok") { var _p3 = _p1._0; var _p2 = A2($Debug.log,"type after parse: ",_p3); return _p3; } else { var _p4 = A2($Debug.log,"Shit while parsing",_p1._0); return $Docs$Type.Var(str); } }; var toNameDict = function (pkg) { return A2($Dict.map,F2(function (_p5,modul) { return $Set.fromList($Dict.keys(modul.entries));}),pkg);}; var Entry = function (a) { return {ctor: "Entry",_0: a};}; var toEntry = F2(function (moduleDocs,name) { var _p6 = A2($Dict.get,name,moduleDocs.entries); if (_p6.ctor === "Nothing") { return _U.crashCase("DocPreview",{start: {line: 214,column: 3},end: {line: 219,column: 20}},_p6)(A2($Basics._op["++"], "docs have been corrupted, could not find ", name)); } else { return Entry(_p6._0); } }); var Markdown = function (a) { return {ctor: "Markdown",_0: a};}; var chunkMap = F2(function (func,chunk) { var _p8 = chunk; if (_p8.ctor === "Markdown") { return Markdown(_p8._0); } else { return Entry(A2($Docs$Entry.map,func,_p8._0)); } }); var subChunksHelp = F2(function (moduleDocs,parts) { var _p9 = parts; if (_p9.ctor === "[]") { return _U.list([]); } else { var _p14 = _p9._0; var part = $String.trim(_p14); var _p10 = isValue(part); if (_p10.ctor === "Just") { return A2($List._op["::"],A2(toEntry,moduleDocs,_p10._0),A2(subChunksHelp,moduleDocs,_p9._1)); } else { var trimmedPart = $String.trimLeft(_p14); var _p11 = $String.words(trimmedPart); if (_p11.ctor === "[]") { return _U.list([Markdown(A2($String.join,",",parts))]); } else { var _p13 = _p11._0; var _p12 = isValue(_p13); if (_p12.ctor === "Just") { return _U.list([A2(toEntry,moduleDocs,_p12._0),Markdown(A2($String.dropLeft,$String.length(_p13),trimmedPart))]); } else { return _U.list([Markdown(A2($String.join,",",parts))]); } } } } }); var subChunks = F2(function (moduleDocs,postDocs) { return A2(subChunksHelp,moduleDocs,A2($String.split,",",postDocs));}); var toChunks = function (moduleDocs) { var _p15 = A2($String.split,"\n@docs ",moduleDocs.comment); if (_p15.ctor === "[]") { return _U.crashCase("DocPreview", {start: {line: 141,column: 3},end: {line: 147,column: 54}}, _p15)("Expecting some documented functions in this module!"); } else { return A2($List._op["::"],Markdown(_p15._0),A2($List.concatMap,subChunks(moduleDocs),_p15._1)); } }; var viewChunk = F2(function (entryView,chunk) { var _p17 = chunk; if (_p17.ctor === "Markdown") { return A2($Html.span,_U.list([$Html$Attributes.$class("markdown-entry")]),_U.list([$Utils$Markdown.block(_p17._0)])); } else { return entryView(_p17._0); } }); var view = F2(function (address,model) { var _p18 = model.selModule; if (_p18.ctor === "Nothing") { return A2($Html.div, _U.list([]), _U.list([$Html.text("NO SELECTED MODULE - Maybe you forgot to add your module to the `exposed-modules` entry in elm-package.json ?")])); } else { var _p19 = _p18._0; var chunks = toChunks(_p19); return A2($Html.div, _U.list([$Html$Attributes.$class("entry-list")]), A2($List._op["::"], A2($Html.h1,_U.list([$Html$Attributes.$class("entry-list-title")]),_U.list([$Html.text(_p19.name)])), A2($List.map,viewChunk($Docs$Entry.stringView),chunks))); } }); var update = F2(function (action,model) { var _p20 = action; switch (_p20.ctor) {case "NoOp": return {ctor: "_Tuple2",_0: model,_1: $Effects.none}; case "RefreshModules": var res = A2($Json$Decode.decodeString,$Docs$Package.decodePackage,_p20._0); var _p21 = res; if (_p21.ctor === "Err") { return _U.crashCase("DocPreview",{start: {line: 49,column: 9},end: {line: 58,column: 14}},_p21)("Error decoding package docs"); } else { var _p23 = _p21._0; return {ctor: "_Tuple2",_0: _U.update(model,{$package: _p23,selModule: $List.head($Dict.values(_p23))}),_1: $Effects.none}; } default: return {ctor: "_Tuple2",_0: _U.update(model,{selModule: A2($Dict.get,_p20._0,model.$package)}),_1: $Effects.none};} }); var SelectModule = function (a) { return {ctor: "SelectModule",_0: a};}; var selectModuleSignal = A2($Signal.map,SelectModule,selectModule); var RefreshModules = function (a) { return {ctor: "RefreshModules",_0: a};}; var modulesSignal = A2($Signal.map,RefreshModules,modules); var NoOp = {ctor: "NoOp"}; var Model = F2(function (a,b) { return {selModule: a,$package: b};}); var init = {ctor: "_Tuple2",_0: A2(Model,$Maybe.Nothing,$Dict.empty),_1: $Effects.none}; var app = $StartApp.start({init: init,update: update,view: view,inputs: _U.list([modulesSignal,selectModuleSignal])}); var main = app.html; return _elm.DocPreview.values = {_op: _op ,Model: Model ,init: init ,NoOp: NoOp ,RefreshModules: RefreshModules ,SelectModule: SelectModule ,update: update ,view: view ,viewChunk: viewChunk ,Markdown: Markdown ,Entry: Entry ,toNameDict: toNameDict ,chunkMap: chunkMap ,stringToType: stringToType ,toChunks: toChunks ,subChunks: subChunks ,subChunksHelp: subChunksHelp ,$var: $var ,operator: operator ,isValue: isValue ,toEntry: toEntry ,app: app ,main: main ,modulesSignal: modulesSignal ,selectModuleSignal: selectModuleSignal}; }; ================================================ FILE: DocPreview/elm-package.json ================================================ { "version": "1.0.0", "summary": "website for browsing packages and exploring documentation", "repository": "https://github.com/elm-lang/package.elm-lang.org.git", "license": "BSD3", "source-directories": [ ".", "src/" ], "exposed-modules": [], "native-modules": true, "dependencies": { "elm-lang/core": "3.0.0 <= v < 4.0.0", "evancz/elm-effects": "2.0.1 <= v < 3.0.0", "evancz/elm-html": "4.0.2 <= v < 5.0.0", "evancz/elm-http": "3.0.0 <= v < 4.0.0", "evancz/elm-markdown": "2.0.0 <= v < 3.0.0", "evancz/start-app": "2.0.2 <= v < 3.0.0" }, "elm-version": "0.16.0 <= v < 0.17.0" } ================================================ FILE: DocPreview/highlight.pack.js ================================================ /*! highlight.js v9.2.0 | BSD3 License | git.io/hljslicense */ !function(e){var n="object"==typeof window&&window||"object"==typeof self&&self;"undefined"!=typeof exports?e(exports):n&&(n.hljs=e({}),"function"==typeof define&&define.amd&&define([],function(){return n.hljs}))}(function(e){function n(e){return e.replace(/&/gm,"&").replace(//gm,">")}function t(e){return e.nodeName.toLowerCase()}function r(e,n){var t=e&&e.exec(n);return t&&0==t.index}function a(e){return/^(no-?highlight|plain|text)$/i.test(e)}function i(e){var n,t,r,i=e.className+" ";if(i+=e.parentNode?e.parentNode.className:"",t=/\blang(?:uage)?-([\w-]+)\b/i.exec(i))return w(t[1])?t[1]:"no-highlight";for(i=i.split(/\s+/),n=0,r=i.length;r>n;n++)if(w(i[n])||a(i[n]))return i[n]}function o(e,n){var t,r={};for(t in e)r[t]=e[t];if(n)for(t in n)r[t]=n[t];return r}function u(e){var n=[];return function r(e,a){for(var i=e.firstChild;i;i=i.nextSibling)3==i.nodeType?a+=i.nodeValue.length:1==i.nodeType&&(n.push({event:"start",offset:a,node:i}),a=r(i,a),t(i).match(/br|hr|img|input/)||n.push({event:"stop",offset:a,node:i}));return a}(e,0),n}function c(e,r,a){function i(){return e.length&&r.length?e[0].offset!=r[0].offset?e[0].offset"}function u(e){f+=""}function c(e){("start"==e.event?o:u)(e.node)}for(var s=0,f="",l=[];e.length||r.length;){var g=i();if(f+=n(a.substr(s,g[0].offset-s)),s=g[0].offset,g==e){l.reverse().forEach(u);do c(g.splice(0,1)[0]),g=i();while(g==e&&g.length&&g[0].offset==s);l.reverse().forEach(o)}else"start"==g[0].event?l.push(g[0].node):l.pop(),c(g.splice(0,1)[0])}return f+n(a.substr(s))}function s(e){function n(e){return e&&e.source||e}function t(t,r){return new RegExp(n(t),"m"+(e.cI?"i":"")+(r?"g":""))}function r(a,i){if(!a.compiled){if(a.compiled=!0,a.k=a.k||a.bK,a.k){var u={},c=function(n,t){e.cI&&(t=t.toLowerCase()),t.split(" ").forEach(function(e){var t=e.split("|");u[t[0]]=[n,t[1]?Number(t[1]):1]})};"string"==typeof a.k?c("keyword",a.k):Object.keys(a.k).forEach(function(e){c(e,a.k[e])}),a.k=u}a.lR=t(a.l||/\b\w+\b/,!0),i&&(a.bK&&(a.b="\\b("+a.bK.split(" ").join("|")+")\\b"),a.b||(a.b=/\B|\b/),a.bR=t(a.b),a.e||a.eW||(a.e=/\B|\b/),a.e&&(a.eR=t(a.e)),a.tE=n(a.e)||"",a.eW&&i.tE&&(a.tE+=(a.e?"|":"")+i.tE)),a.i&&(a.iR=t(a.i)),void 0===a.r&&(a.r=1),a.c||(a.c=[]);var s=[];a.c.forEach(function(e){e.v?e.v.forEach(function(n){s.push(o(e,n))}):s.push("self"==e?a:e)}),a.c=s,a.c.forEach(function(e){r(e,a)}),a.starts&&r(a.starts,i);var f=a.c.map(function(e){return e.bK?"\\.?("+e.b+")\\.?":e.b}).concat([a.tE,a.i]).map(n).filter(Boolean);a.t=f.length?t(f.join("|"),!0):{exec:function(){return null}}}}r(e)}function f(e,t,a,i){function o(e,n){for(var t=0;t";return i+=e+'">',i+n+o}function h(){if(!k.k)return n(M);var e="",t=0;k.lR.lastIndex=0;for(var r=k.lR.exec(M);r;){e+=n(M.substr(t,r.index-t));var a=g(k,r);a?(B+=a[1],e+=p(a[0],n(r[0]))):e+=n(r[0]),t=k.lR.lastIndex,r=k.lR.exec(M)}return e+n(M.substr(t))}function d(){var e="string"==typeof k.sL;if(e&&!R[k.sL])return n(M);var t=e?f(k.sL,M,!0,y[k.sL]):l(M,k.sL.length?k.sL:void 0);return k.r>0&&(B+=t.r),e&&(y[k.sL]=t.top),p(t.language,t.value,!1,!0)}function b(){L+=void 0!==k.sL?d():h(),M=""}function v(e,n){L+=e.cN?p(e.cN,"",!0):"",k=Object.create(e,{parent:{value:k}})}function m(e,n){if(M+=e,void 0===n)return b(),0;var t=o(n,k);if(t)return t.skip?M+=n:(t.eB&&(M+=n),b(),t.rB||t.eB||(M=n)),v(t,n),t.rB?0:n.length;var r=u(k,n);if(r){var a=k;a.skip?M+=n:(a.rE||a.eE||(M+=n),b(),a.eE&&(M=n));do k.cN&&(L+=""),k.skip||(B+=k.r),k=k.parent;while(k!=r.parent);return r.starts&&v(r.starts,""),a.rE?0:n.length}if(c(n,k))throw new Error('Illegal lexeme "'+n+'" for mode "'+(k.cN||"")+'"');return M+=n,n.length||1}var N=w(e);if(!N)throw new Error('Unknown language: "'+e+'"');s(N);var x,k=i||N,y={},L="";for(x=k;x!=N;x=x.parent)x.cN&&(L=p(x.cN,"",!0)+L);var M="",B=0;try{for(var C,j,I=0;;){if(k.t.lastIndex=I,C=k.t.exec(t),!C)break;j=m(t.substr(I,C.index-I),C[0]),I=C.index+j}for(m(t.substr(I)),x=k;x.parent;x=x.parent)x.cN&&(L+="");return{r:B,value:L,language:e,top:k}}catch(O){if(-1!=O.message.indexOf("Illegal"))return{r:0,value:n(t)};throw O}}function l(e,t){t=t||E.languages||Object.keys(R);var r={r:0,value:n(e)},a=r;return t.forEach(function(n){if(w(n)){var t=f(n,e,!1);t.language=n,t.r>a.r&&(a=t),t.r>r.r&&(a=r,r=t)}}),a.language&&(r.second_best=a),r}function g(e){return E.tabReplace&&(e=e.replace(/^((<[^>]+>|\t)+)/gm,function(e,n){return n.replace(/\t/g,E.tabReplace)})),E.useBR&&(e=e.replace(/\n/g,"
    ")),e}function p(e,n,t){var r=n?x[n]:t,a=[e.trim()];return e.match(/\bhljs\b/)||a.push("hljs"),-1===e.indexOf(r)&&a.push(r),a.join(" ").trim()}function h(e){var n=i(e);if(!a(n)){var t;E.useBR?(t=document.createElementNS("http://www.w3.org/1999/xhtml","div"),t.innerHTML=e.innerHTML.replace(/\n/g,"").replace(//g,"\n")):t=e;var r=t.textContent,o=n?f(n,r,!0):l(r),s=u(t);if(s.length){var h=document.createElementNS("http://www.w3.org/1999/xhtml","div");h.innerHTML=o.value,o.value=c(s,u(h),r)}o.value=g(o.value),e.innerHTML=o.value,e.className=p(e.className,n,o.language),e.result={language:o.language,re:o.r},o.second_best&&(e.second_best={language:o.second_best.language,re:o.second_best.r})}}function d(e){E=o(E,e)}function b(){if(!b.called){b.called=!0;var e=document.querySelectorAll("pre code");Array.prototype.forEach.call(e,h)}}function v(){addEventListener("DOMContentLoaded",b,!1),addEventListener("load",b,!1)}function m(n,t){var r=R[n]=t(e);r.aliases&&r.aliases.forEach(function(e){x[e]=n})}function N(){return Object.keys(R)}function w(e){return e=(e||"").toLowerCase(),R[e]||R[x[e]]}var E={classPrefix:"hljs-",tabReplace:null,useBR:!1,languages:void 0},R={},x={};return e.highlight=f,e.highlightAuto=l,e.fixMarkup=g,e.highlightBlock=h,e.configure=d,e.initHighlighting=b,e.initHighlightingOnLoad=v,e.registerLanguage=m,e.listLanguages=N,e.getLanguage=w,e.inherit=o,e.IR="[a-zA-Z]\\w*",e.UIR="[a-zA-Z_]\\w*",e.NR="\\b\\d+(\\.\\d+)?",e.CNR="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",e.BNR="\\b(0b[01]+)",e.RSR="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",e.BE={b:"\\\\[\\s\\S]",r:0},e.ASM={cN:"string",b:"'",e:"'",i:"\\n",c:[e.BE]},e.QSM={cN:"string",b:'"',e:'"',i:"\\n",c:[e.BE]},e.PWM={b:/\b(a|an|the|are|I|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|like)\b/},e.C=function(n,t,r){var a=e.inherit({cN:"comment",b:n,e:t,c:[]},r||{});return a.c.push(e.PWM),a.c.push({cN:"doctag",b:"(?:TODO|FIXME|NOTE|BUG|XXX):",r:0}),a},e.CLCM=e.C("//","$"),e.CBCM=e.C("/\\*","\\*/"),e.HCM=e.C("#","$"),e.NM={cN:"number",b:e.NR,r:0},e.CNM={cN:"number",b:e.CNR,r:0},e.BNM={cN:"number",b:e.BNR,r:0},e.CSSNM={cN:"number",b:e.NR+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",r:0},e.RM={cN:"regexp",b:/\//,e:/\/[gimuy]*/,i:/\n/,c:[e.BE,{b:/\[/,e:/\]/,r:0,c:[e.BE]}]},e.TM={cN:"title",b:e.IR,r:0},e.UTM={cN:"title",b:e.UIR,r:0},e.METHOD_GUARD={b:"\\.\\s*"+e.UIR,r:0},e});hljs.registerLanguage("ruby",function(e){var b="[a-zA-Z_]\\w*[!?=]?|[-+~]\\@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?",c="and false then defined module in return redo if BEGIN retry end for true self when next until do begin unless END rescue nil else break undef not super class case require yield alias while ensure elsif or include attr_reader attr_writer attr_accessor",r={cN:"doctag",b:"@[A-Za-z]+"},a={b:"#<",e:">"},s=[e.C("#","$",{c:[r]}),e.C("^\\=begin","^\\=end",{c:[r],r:10}),e.C("^__END__","\\n$")],n={cN:"subst",b:"#\\{",e:"}",k:c},t={cN:"string",c:[e.BE,n],v:[{b:/'/,e:/'/},{b:/"/,e:/"/},{b:/`/,e:/`/},{b:"%[qQwWx]?\\(",e:"\\)"},{b:"%[qQwWx]?\\[",e:"\\]"},{b:"%[qQwWx]?{",e:"}"},{b:"%[qQwWx]?<",e:">"},{b:"%[qQwWx]?/",e:"/"},{b:"%[qQwWx]?%",e:"%"},{b:"%[qQwWx]?-",e:"-"},{b:"%[qQwWx]?\\|",e:"\\|"},{b:/\B\?(\\\d{1,3}|\\x[A-Fa-f0-9]{1,2}|\\u[A-Fa-f0-9]{4}|\\?\S)\b/}]},i={cN:"params",b:"\\(",e:"\\)",endsParent:!0,k:c},d=[t,a,{cN:"class",bK:"class module",e:"$|;",i:/=/,c:[e.inherit(e.TM,{b:"[A-Za-z_]\\w*(::\\w+)*(\\?|\\!)?"}),{b:"<\\s*",c:[{b:"("+e.IR+"::)?"+e.IR}]}].concat(s)},{cN:"function",bK:"def",e:"$|;",c:[e.inherit(e.TM,{b:b}),i].concat(s)},{cN:"symbol",b:e.UIR+"(\\!|\\?)?:",r:0},{cN:"symbol",b:":",c:[t,{b:b}],r:0},{cN:"number",b:"(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b",r:0},{b:"(\\$\\W)|((\\$|\\@\\@?)(\\w+))"},{b:"("+e.RSR+")\\s*",c:[a,{cN:"regexp",c:[e.BE,n],i:/\n/,v:[{b:"/",e:"/[a-z]*"},{b:"%r{",e:"}[a-z]*"},{b:"%r\\(",e:"\\)[a-z]*"},{b:"%r!",e:"![a-z]*"},{b:"%r\\[",e:"\\][a-z]*"}]}].concat(s),r:0}].concat(s);n.c=d,i.c=d;var o="[>?]>",l="[\\w#]+\\(\\w+\\):\\d+:\\d+>",u="(\\w+-)?\\d+\\.\\d+\\.\\d(p\\d+)?[^>]+>",w=[{b:/^\s*=>/,starts:{e:"$",c:d}},{cN:"meta",b:"^("+o+"|"+l+"|"+u+")",starts:{e:"$",c:d}}];return{aliases:["rb","gemspec","podspec","thor","irb"],k:c,i:/\/\*/,c:s.concat(w).concat(d)}});hljs.registerLanguage("json",function(e){var i={literal:"true false null"},n=[e.QSM,e.CNM],r={e:",",eW:!0,eE:!0,c:n,k:i},t={b:"{",e:"}",c:[{cN:"attr",b:/"/,e:/"/,c:[e.BE],i:"\\n"},e.inherit(r,{b:/:/})],i:"\\S"},c={b:"\\[",e:"\\]",c:[e.inherit(r)],i:"\\S"};return n.splice(n.length,0,t,c),{c:n,k:i,i:"\\S"}});hljs.registerLanguage("css",function(e){var c="[a-zA-Z-][a-zA-Z0-9_-]*",t={b:/[A-Z\_\.\-]+\s*:/,rB:!0,e:";",eW:!0,c:[{cN:"attribute",b:/\S/,e:":",eE:!0,starts:{eW:!0,eE:!0,c:[{b:/[\w-]+\(/,rB:!0,c:[{cN:"built_in",b:/[\w-]+/},{b:/\(/,e:/\)/,c:[e.ASM,e.QSM]}]},e.CSSNM,e.QSM,e.ASM,e.CBCM,{cN:"number",b:"#[0-9A-Fa-f]+"},{cN:"meta",b:"!important"}]}}]};return{cI:!0,i:/[=\/|'\$]/,c:[e.CBCM,{cN:"selector-id",b:/#[A-Za-z0-9_-]+/},{cN:"selector-class",b:/\.[A-Za-z0-9_-]+/},{cN:"selector-attr",b:/\[/,e:/\]/,i:"$"},{cN:"selector-pseudo",b:/:(:)?[a-zA-Z0-9\_\-\+\(\)"'.]+/},{b:"@(font-face|page)",l:"[a-z-]+",k:"font-face page"},{b:"@",e:"[{;]",c:[{cN:"keyword",b:/\S+/},{b:/\s/,eW:!0,eE:!0,r:0,c:[e.ASM,e.QSM,e.CSSNM]}]},{cN:"selector-tag",b:c,r:0},{b:"{",e:"}",i:/\S/,c:[e.CBCM,t]}]}});hljs.registerLanguage("cpp",function(t){var e={cN:"keyword",b:"\\b[a-z\\d_]*_t\\b"},r={cN:"string",v:[t.inherit(t.QSM,{b:'((u8?|U)|L)?"'}),{b:'(u8?|U)?R"',e:'"',c:[t.BE]},{b:"'\\\\?.",e:"'",i:"."}]},i={cN:"number",v:[{b:"\\b(\\d+(\\.\\d*)?|\\.\\d+)(u|U|l|L|ul|UL|f|F)"},{b:t.CNR}],r:0},s={cN:"meta",b:"#",e:"$",k:{"meta-keyword":"if else elif endif define undef warning error line pragma ifdef ifndef"},c:[{b:/\\\n/,r:0},{bK:"include",e:"$",k:{"meta-keyword":"include"},c:[t.inherit(r,{cN:"meta-string"}),{cN:"meta-string",b:"<",e:">",i:"\\n"}]},r,t.CLCM,t.CBCM]},a=t.IR+"\\s*\\(",c={keyword:"int float while private char catch export virtual operator sizeof dynamic_cast|10 typedef const_cast|10 const struct for static_cast|10 union namespace unsigned long volatile static protected bool template mutable if public friend do goto auto void enum else break extern using class asm case typeid short reinterpret_cast|10 default double register explicit signed typename try this switch continue inline delete alignof constexpr decltype noexcept static_assert thread_local restrict _Bool complex _Complex _Imaginary atomic_bool atomic_char atomic_schar atomic_uchar atomic_short atomic_ushort atomic_int atomic_uint atomic_long atomic_ulong atomic_llong atomic_ullong",built_in:"std string cin cout cerr clog stdin stdout stderr stringstream istringstream ostringstream auto_ptr deque list queue stack vector map set bitset multiset multimap unordered_set unordered_map unordered_multiset unordered_multimap array shared_ptr abort abs acos asin atan2 atan calloc ceil cosh cos exit exp fabs floor fmod fprintf fputs free frexp fscanf isalnum isalpha iscntrl isdigit isgraph islower isprint ispunct isspace isupper isxdigit tolower toupper labs ldexp log10 log malloc realloc memchr memcmp memcpy memset modf pow printf putchar puts scanf sinh sin snprintf sprintf sqrt sscanf strcat strchr strcmp strcpy strcspn strlen strncat strncmp strncpy strpbrk strrchr strspn strstr tanh tan vfprintf vprintf vsprintf endl initializer_list unique_ptr",literal:"true false nullptr NULL"};return{aliases:["c","cc","h","c++","h++","hpp"],k:c,i:"",k:c,c:["self",e]},{b:t.IR+"::",k:c},{bK:"new throw return else",r:0},{cN:"function",b:"("+t.IR+"[\\*&\\s]+)+"+a,rB:!0,e:/[{;=]/,eE:!0,k:c,i:/[^\w\s\*&]/,c:[{b:a,rB:!0,c:[t.TM],r:0},{cN:"params",b:/\(/,e:/\)/,k:c,r:0,c:[t.CLCM,t.CBCM,r,i]},t.CLCM,t.CBCM,s]}]}});hljs.registerLanguage("cs",function(e){var t="abstract as base bool break byte case catch char checked const continue decimal dynamic default delegate do double else enum event explicit extern false finally fixed float for foreach goto if implicit in int interface internal is lock long null when object operator out override params private protected public readonly ref sbyte sealed short sizeof stackalloc static string struct switch this true try typeof uint ulong unchecked unsafe ushort using virtual volatile void while async protected public private internal ascending descending from get group into join let orderby partial select set value var where yield",r=e.IR+"(<"+e.IR+">)?";return{aliases:["csharp"],k:t,i:/::/,c:[e.C("///","$",{rB:!0,c:[{cN:"doctag",v:[{b:"///",r:0},{b:""},{b:""}]}]}),e.CLCM,e.CBCM,{cN:"meta",b:"#",e:"$",k:{"meta-keyword":"if else elif endif define undef warning error line region endregion pragma checksum"}},{cN:"string",b:'@"',e:'"',c:[{b:'""'}]},e.ASM,e.QSM,e.CNM,{bK:"class interface",e:/[{;=]/,i:/[^\s:]/,c:[e.TM,e.CLCM,e.CBCM]},{bK:"namespace",e:/[{;=]/,i:/[^\s:]/,c:[e.inherit(e.TM,{b:"[a-zA-Z](\\.?\\w)*"}),e.CLCM,e.CBCM]},{bK:"new return throw await",r:0},{cN:"function",b:"("+r+"\\s+)+"+e.IR+"\\s*\\(",rB:!0,e:/[{;=]/,eE:!0,k:t,c:[{b:e.IR+"\\s*\\(",rB:!0,c:[e.TM],r:0},{cN:"params",b:/\(/,e:/\)/,eB:!0,eE:!0,k:t,r:0,c:[e.ASM,e.QSM,e.CNM,e.CBCM]},e.CLCM,e.CBCM]}]}});hljs.registerLanguage("groovy",function(e){return{k:{literal:"true false null",keyword:"byte short char int long boolean float double void def as in assert trait super this abstract static volatile transient public private protected synchronized final class interface enum if else for while switch case break default continue throw throws try catch finally implements extends new import package return instanceof"},c:[e.C("/\\*\\*","\\*/",{r:0,c:[{b:/\w+@/,r:0},{cN:"doctag",b:"@[A-Za-z]+"}]}),e.CLCM,e.CBCM,{cN:"string",b:'"""',e:'"""'},{cN:"string",b:"'''",e:"'''"},{cN:"string",b:"\\$/",e:"/\\$",r:10},e.ASM,{cN:"regexp",b:/~?\/[^\/\n]+\//,c:[e.BE]},e.QSM,{cN:"meta",b:"^#!/usr/bin/env",e:"$",i:"\n"},e.BNM,{cN:"class",bK:"class interface trait enum",e:"{",i:":",c:[{bK:"extends implements"},e.UTM]},e.CNM,{cN:"meta",b:"@[A-Za-z]+"},{cN:"string",b:/[^\?]{0}[A-Za-z0-9_$]+ *:/},{b:/\?/,e:/\:/},{cN:"symbol",b:"^\\s*[A-Za-z0-9_$]+:",r:0}],i:/#|<\//}});hljs.registerLanguage("nginx",function(e){var r={cN:"variable",v:[{b:/\$\d+/},{b:/\$\{/,e:/}/},{b:"[\\$\\@]"+e.UIR}]},b={eW:!0,l:"[a-z/_]+",k:{literal:"on off yes no true false none blocked debug info notice warn error crit select break last permanent redirect kqueue rtsig epoll poll /dev/poll"},r:0,i:"=>",c:[e.HCM,{cN:"string",c:[e.BE,r],v:[{b:/"/,e:/"/},{b:/'/,e:/'/}]},{b:"([a-z]+):/",e:"\\s",eW:!0,eE:!0,c:[r]},{cN:"regexp",c:[e.BE,r],v:[{b:"\\s\\^",e:"\\s|{|;",rE:!0},{b:"~\\*?\\s+",e:"\\s|{|;",rE:!0},{b:"\\*(\\.[a-z\\-]+)+"},{b:"([a-z\\-]+\\.)+\\*"}]},{cN:"number",b:"\\b\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}(:\\d{1,5})?\\b"},{cN:"number",b:"\\b\\d+[kKmMgGdshdwy]*\\b",r:0},r]};return{aliases:["nginxconf"],c:[e.HCM,{b:e.UIR+"\\s+{",rB:!0,e:"{",c:[{cN:"section",b:e.UIR}],r:0},{b:e.UIR+"\\s",e:";|{",rB:!0,c:[{cN:"attribute",b:e.UIR,starts:b}],r:0}],i:"[^\\s\\}]"}});hljs.registerLanguage("objectivec",function(e){var t={cN:"built_in",b:"(AV|CA|CF|CG|CI|MK|MP|NS|UI|XC)\\w+"},i={keyword:"int float while char export sizeof typedef const struct for union unsigned long volatile static bool mutable if do return goto void enum else break extern asm case short default double register explicit signed typename this switch continue wchar_t inline readonly assign readwrite self @synchronized id typeof nonatomic super unichar IBOutlet IBAction strong weak copy in out inout bycopy byref oneway __strong __weak __block __autoreleasing @private @protected @public @try @property @end @throw @catch @finally @autoreleasepool @synthesize @dynamic @selector @optional @required",literal:"false true FALSE TRUE nil YES NO NULL",built_in:"BOOL dispatch_once_t dispatch_queue_t dispatch_sync dispatch_async dispatch_once"},n=/[a-zA-Z@][a-zA-Z0-9_]*/,o="@interface @class @protocol @implementation";return{aliases:["mm","objc","obj-c"],k:i,l:n,i:""}]}]},{cN:"class",b:"("+o.split(" ").join("|")+")\\b",e:"({|$)",eE:!0,k:o,l:n,c:[e.UTM]},{b:"\\."+e.UIR,r:0}]}});hljs.registerLanguage("bash",function(e){var t={cN:"variable",v:[{b:/\$[\w\d#@][\w\d_]*/},{b:/\$\{(.*?)}/}]},s={cN:"string",b:/"/,e:/"/,c:[e.BE,t,{cN:"variable",b:/\$\(/,e:/\)/,c:[e.BE]}]},a={cN:"string",b:/'/,e:/'/};return{aliases:["sh","zsh"],l:/-?[a-z\.]+/,k:{keyword:"if then else elif fi for while in do done case esac function",literal:"true false",built_in:"break cd continue eval exec exit export getopts hash pwd readonly return shift test times trap umask unset alias bind builtin caller command declare echo enable help let local logout mapfile printf read readarray source type typeset ulimit unalias set shopt autoload bg bindkey bye cap chdir clone comparguments compcall compctl compdescribe compfiles compgroups compquote comptags comptry compvalues dirs disable disown echotc echoti emulate fc fg float functions getcap getln history integer jobs kill limit log noglob popd print pushd pushln rehash sched setcap setopt stat suspend ttyctl unfunction unhash unlimit unsetopt vared wait whence where which zcompile zformat zftp zle zmodload zparseopts zprof zpty zregexparse zsocket zstyle ztcp",_:"-ne -eq -lt -gt -f -d -e -s -l -a"},c:[{cN:"meta",b:/^#![^\n]+sh\s*$/,r:10},{cN:"function",b:/\w[\w\d_]*\s*\(\s*\)\s*\{/,rB:!0,c:[e.inherit(e.TM,{b:/\w[\w\d_]*/})],r:0},e.HCM,s,a,t]}});hljs.registerLanguage("swift",function(e){var i={keyword:"__COLUMN__ __FILE__ __FUNCTION__ __LINE__ as as! as? associativity break case catch class continue convenience default defer deinit didSet do dynamic dynamicType else enum extension fallthrough false final for func get guard if import in indirect infix init inout internal is lazy left let mutating nil none nonmutating operator optional override postfix precedence prefix private protocol Protocol public repeat required rethrows return right self Self set static struct subscript super switch throw throws true try try! try? Type typealias unowned var weak where while willSet",literal:"true false nil",built_in:"abs advance alignof alignofValue anyGenerator assert assertionFailure bridgeFromObjectiveC bridgeFromObjectiveCUnconditional bridgeToObjectiveC bridgeToObjectiveCUnconditional c contains count countElements countLeadingZeros debugPrint debugPrintln distance dropFirst dropLast dump encodeBitsAsWords enumerate equal fatalError filter find getBridgedObjectiveCType getVaList indices insertionSort isBridgedToObjectiveC isBridgedVerbatimToObjectiveC isUniquelyReferenced isUniquelyReferencedNonObjC join lazy lexicographicalCompare map max maxElement min minElement numericCast overlaps partition posix precondition preconditionFailure print println quickSort readLine reduce reflect reinterpretCast reverse roundUpToAlignment sizeof sizeofValue sort split startsWith stride strideof strideofValue swap toString transcode underestimateCount unsafeAddressOf unsafeBitCast unsafeDowncast unsafeUnwrap unsafeReflect withExtendedLifetime withObjectAtPlusZero withUnsafePointer withUnsafePointerToObject withUnsafeMutablePointer withUnsafeMutablePointers withUnsafePointer withUnsafePointers withVaList zip"},t={cN:"type",b:"\\b[A-Z][\\w']*",r:0},n=e.C("/\\*","\\*/",{c:["self"]}),r={cN:"subst",b:/\\\(/,e:"\\)",k:i,c:[]},a={cN:"number",b:"\\b([\\d_]+(\\.[\\deE_]+)?|0x[a-fA-F0-9_]+(\\.[a-fA-F0-9p_]+)?|0b[01_]+|0o[0-7_]+)\\b",r:0},o=e.inherit(e.QSM,{c:[r,e.BE]});return r.c=[a],{k:i,c:[o,e.CLCM,n,t,a,{cN:"function",bK:"func",e:"{",eE:!0,c:[e.inherit(e.TM,{b:/[A-Za-z$_][0-9A-Za-z$_]*/,i:/\(/}),{b://,i:/>/},{cN:"params",b:/\(/,e:/\)/,endsParent:!0,k:i,c:["self",a,o,e.CBCM,{b:":"}],i:/["']/}],i:/\[|%/},{cN:"class",bK:"struct protocol class extension enum",k:i,e:"\\{",eE:!0,c:[e.inherit(e.TM,{b:/[A-Za-z$_][0-9A-Za-z$_]*/})]},{cN:"meta",b:"(@warn_unused_result|@exported|@lazy|@noescape|@NSCopying|@NSManaged|@objc|@convention|@required|@noreturn|@IBAction|@IBDesignable|@IBInspectable|@IBOutlet|@infix|@prefix|@postfix|@autoclosure|@testable|@available|@nonobjc|@NSApplicationMain|@UIApplicationMain)"},{bK:"import",e:/$/,c:[e.CLCM,n]}]}});hljs.registerLanguage("erlang",function(e){var r="[a-z'][a-zA-Z0-9_']*",c="("+r+":"+r+"|"+r+")",b={keyword:"after and andalso|10 band begin bnot bor bsl bzr bxor case catch cond div end fun if let not of orelse|10 query receive rem try when xor",literal:"false true"},i=e.C("%","$"),n={cN:"number",b:"\\b(\\d+#[a-fA-F0-9]+|\\d+(\\.\\d+)?([eE][-+]?\\d+)?)",r:0},a={b:"fun\\s+"+r+"/\\d+"},d={b:c+"\\(",e:"\\)",rB:!0,r:0,c:[{b:c,r:0},{b:"\\(",e:"\\)",eW:!0,rE:!0,r:0}]},o={b:"{",e:"}",r:0},t={b:"\\b_([A-Z][A-Za-z0-9_]*)?",r:0},f={b:"[A-Z][a-zA-Z0-9_]*",r:0},l={b:"#"+e.UIR,r:0,rB:!0,c:[{b:"#"+e.UIR,r:0},{b:"{",e:"}",r:0}]},s={bK:"fun receive if try case",e:"end",k:b};s.c=[i,a,e.inherit(e.ASM,{cN:""}),s,d,e.QSM,n,o,t,f,l];var u=[i,a,s,d,e.QSM,n,o,t,f,l];d.c[1].c=u,o.c=u,l.c[1].c=u;var h={cN:"params",b:"\\(",e:"\\)",c:u};return{aliases:["erl"],k:b,i:"(",rB:!0,i:"\\(|#|//|/\\*|\\\\|:|;",c:[h,e.inherit(e.TM,{b:r})],starts:{e:";|\\.",k:b,c:u}},i,{b:"^-",e:"\\.",r:0,eE:!0,rB:!0,l:"-"+e.IR,k:"-module -record -undef -export -ifdef -ifndef -author -copyright -doc -vsn -import -include -include_lib -compile -define -else -endif -file -behaviour -behavior -spec",c:[h]},n,e.QSM,l,t,f,o,{b:/\.$/}]}});hljs.registerLanguage("xml",function(s){var e="[A-Za-z0-9\\._:-]+",t={eW:!0,i:/]+/}]}]}]};return{aliases:["html","xhtml","rss","atom","xsl","plist"],cI:!0,c:[{cN:"meta",b:"",r:10,c:[{b:"\\[",e:"\\]"}]},s.C("",{r:10}),{b:"<\\!\\[CDATA\\[",e:"\\]\\]>",r:10},{b:/<\?(php)?/,e:/\?>/,sL:"php",c:[{b:"/\\*",e:"\\*/",skip:!0}]},{cN:"tag",b:"|$)",e:">",k:{name:"style"},c:[t],starts:{e:"",rE:!0,sL:["css","xml"]}},{cN:"tag",b:"|$)",e:">",k:{name:"script"},c:[t],starts:{e:"",rE:!0,sL:["actionscript","javascript","handlebars","xml"]}},{cN:"meta",v:[{b:/<\?xml/,e:/\?>/,r:10},{b:/<\?\w+/,e:/\?>/}]},{cN:"tag",b:"",c:[{cN:"name",b:/[^\/><\s]+/,r:0},t]}]}});hljs.registerLanguage("ini",function(e){var b={cN:"string",c:[e.BE],v:[{b:"'''",e:"'''",r:10},{b:'"""',e:'"""',r:10},{b:'"',e:'"'},{b:"'",e:"'"}]};return{aliases:["toml"],cI:!0,i:/\S/,c:[e.C(";","$"),e.HCM,{cN:"section",b:/^\s*\[+/,e:/\]+/},{b:/^[a-z0-9\[\]_-]+\s*=\s*/,e:"$",rB:!0,c:[{cN:"attr",b:/[a-z0-9\[\]_-]+/},{b:/=/,eW:!0,r:0,c:[{cN:"literal",b:/\bon|off|true|false|yes|no\b/},{cN:"variable",v:[{b:/\$[\w\d"][\w\d_]*/},{b:/\$\{(.*?)}/}]},b,{cN:"number",b:/([\+\-]+)?[\d]+_[\d_]+/},e.NM]}]}]}});hljs.registerLanguage("gradle",function(e){return{cI:!0,k:{keyword:"task project allprojects subprojects artifacts buildscript configurations dependencies repositories sourceSets description delete from into include exclude source classpath destinationDir includes options sourceCompatibility targetCompatibility group flatDir doLast doFirst flatten todir fromdir ant def abstract break case catch continue default do else extends final finally for if implements instanceof native new private protected public return static switch synchronized throw throws transient try volatile while strictfp package import false null super this true antlrtask checkstyle codenarc copy boolean byte char class double float int interface long short void compile runTime file fileTree abs any append asList asWritable call collect compareTo count div dump each eachByte eachFile eachLine every find findAll flatten getAt getErr getIn getOut getText grep immutable inject inspect intersect invokeMethods isCase join leftShift minus multiply newInputStream newOutputStream newPrintWriter newReader newWriter next plus pop power previous print println push putAt read readBytes readLines reverse reverseEach round size sort splitEachLine step subMap times toInteger toList tokenize upto waitForOrKill withPrintWriter withReader withStream withWriter withWriterAppend write writeLine"},c:[e.CLCM,e.CBCM,e.ASM,e.QSM,e.NM,e.RM]}});hljs.registerLanguage("haskell",function(e){var i={v:[e.C("--","$"),e.C("{-","-}",{c:["self"]})]},a={cN:"meta",b:"{-#",e:"#-}"},l={cN:"meta",b:"^#",e:"$"},c={cN:"type",b:"\\b[A-Z][\\w']*",r:0},n={b:"\\(",e:"\\)",i:'"',c:[a,l,{cN:"type",b:"\\b[A-Z][\\w]*(\\((\\.\\.|,|\\w+)\\))?"},e.inherit(e.TM,{b:"[_a-z][\\w']*"}),i]},s={b:"{",e:"}",c:n.c};return{aliases:["hs"],k:"let in if then else case of where do module import hiding qualified type data newtype deriving class instance as default infix infixl infixr foreign export ccall stdcall cplusplus jvm dotnet safe unsafe family forall mdo proc rec",c:[{bK:"module",e:"where",k:"module where",c:[n,i],i:"\\W\\.|;"},{b:"\\bimport\\b",e:"$",k:"import qualified as hiding",c:[n,i],i:"\\W\\.|;"},{cN:"class",b:"^(\\s*)?(class|instance)\\b",e:"where",k:"class family instance where",c:[c,n,i]},{cN:"class",b:"\\b(data|(new)?type)\\b",e:"$",k:"data family type newtype deriving",c:[a,c,n,s,i]},{bK:"default",e:"$",c:[c,n,i]},{bK:"infix infixl infixr",e:"$",c:[e.CNM,i]},{b:"\\bforeign\\b",e:"$",k:"foreign import export ccall stdcall cplusplus jvm dotnet safe unsafe",c:[c,e.QSM,i]},{cN:"meta",b:"#!\\/usr\\/bin\\/env runhaskell",e:"$"},a,l,e.QSM,e.CNM,c,e.inherit(e.TM,{b:"^[_a-z][\\w']*"}),i,{b:"->|<-"}]}});hljs.registerLanguage("markdown",function(e){return{aliases:["md","mkdown","mkd"],c:[{cN:"section",v:[{b:"^#{1,6}",e:"$"},{b:"^.+?\\n[=-]{2,}$"}]},{b:"<",e:">",sL:"xml",r:0},{cN:"bullet",b:"^([*+-]|(\\d+\\.))\\s+"},{cN:"strong",b:"[*_]{2}.+?[*_]{2}"},{cN:"emphasis",v:[{b:"\\*.+?\\*"},{b:"_.+?_",r:0}]},{cN:"quote",b:"^>\\s+",e:"$"},{cN:"code",v:[{b:"`.+?`"},{b:"^( {4}| )",e:"$",r:0}]},{b:"^[-\\*]{3,}",e:"$"},{b:"\\[.+?\\][\\(\\[].*?[\\)\\]]",rB:!0,c:[{cN:"string",b:"\\[",e:"\\]",eB:!0,rE:!0,r:0},{cN:"link",b:"\\]\\(",e:"\\)",eB:!0,eE:!0},{cN:"symbol",b:"\\]\\[",e:"\\]",eB:!0,eE:!0}],r:10},{b:"^\\[.+\\]:",rB:!0,c:[{cN:"symbol",b:"\\[",e:"\\]:",eB:!0,eE:!0,starts:{cN:"link",e:"$"}}]}]}});hljs.registerLanguage("go",function(e){var t={keyword:"break default func interface select case map struct chan else goto package switch const fallthrough if range type continue for import return var go defer bool byte complex64 complex128 float32 float64 int8 int16 int32 int64 string uint8 uint16 uint32 uint64 int uint uintptr rune",literal:"true false iota nil",built_in:"append cap close complex copy imag len make new panic print println real recover delete"};return{aliases:["golang"],k:t,i:">|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?",b="and false then defined module in return redo retry end for true self when next until do begin unless nil break not case cond alias while ensure or include use alias fn quote",c={cN:"subst",b:"#\\{",e:"}",l:r,k:b},a={cN:"string",c:[e.BE,c],v:[{b:/'/,e:/'/},{b:/"/,e:/"/}]},i={cN:"function",bK:"def defp defmacro",e:/\B\b/,c:[e.inherit(e.TM,{b:r,endsParent:!0})]},s=e.inherit(i,{cN:"class",bK:"defmodule defrecord",e:/\bdo\b|$|;/}),l=[a,e.HCM,s,i,{cN:"symbol",b:":",c:[a,{b:n}],r:0},{cN:"symbol",b:r+":",r:0},{cN:"number",b:"(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b",r:0},{cN:"variable",b:"(\\$\\W)|((\\$|\\@\\@?)(\\w+))"},{b:"->"},{b:"("+e.RSR+")\\s*",c:[e.HCM,{cN:"regexp",i:"\\n",c:[e.BE,c],v:[{b:"/",e:"/[a-z]*"},{b:"%r\\[",e:"\\][a-z]*"}]}],r:0}];return c.c=l,{l:r,k:b,c:l}});hljs.registerLanguage("java",function(e){var a=e.UIR+"(<"+e.UIR+"(\\s*,\\s*"+e.UIR+")*>)?",t="false synchronized int abstract float private char boolean static null if const for true while long strictfp finally protected import native final void enum else break transient catch instanceof byte super volatile case assert short package default double public try this switch continue throws protected public private",r="\\b(0[bB]([01]+[01_]+[01]+|[01]+)|0[xX]([a-fA-F0-9]+[a-fA-F0-9_]+[a-fA-F0-9]+|[a-fA-F0-9]+)|(([\\d]+[\\d_]+[\\d]+|[\\d]+)(\\.([\\d]+[\\d_]+[\\d]+|[\\d]+))?|\\.([\\d]+[\\d_]+[\\d]+|[\\d]+))([eE][-+]?\\d+)?)[lLfF]?",c={cN:"number",b:r,r:0};return{aliases:["jsp"],k:t,i:/<\/|#/,c:[e.C("/\\*\\*","\\*/",{r:0,c:[{b:/\w+@/,r:0},{cN:"doctag",b:"@[A-Za-z]+"}]}),e.CLCM,e.CBCM,e.ASM,e.QSM,{cN:"class",bK:"class interface",e:/[{;=]/,eE:!0,k:"class interface",i:/[:"\[\]]/,c:[{bK:"extends implements"},e.UTM]},{bK:"new throw return else",r:0},{cN:"function",b:"("+a+"\\s+)+"+e.UIR+"\\s*\\(",rB:!0,e:/[{;=]/,eE:!0,k:t,c:[{b:e.UIR+"\\s*\\(",rB:!0,r:0,c:[e.UTM]},{cN:"params",b:/\(/,e:/\)/,k:t,r:0,c:[e.ASM,e.QSM,e.CNM,e.CBCM]},e.CLCM,e.CBCM]},c,{cN:"meta",b:"@[A-Za-z]+"}]}});hljs.registerLanguage("php",function(e){var c={b:"\\$+[a-zA-Z_-ÿ][a-zA-Z0-9_-ÿ]*"},a={cN:"meta",b:/<\?(php)?|\?>/},i={cN:"string",c:[e.BE,a],v:[{b:'b"',e:'"'},{b:"b'",e:"'"},e.inherit(e.ASM,{i:null}),e.inherit(e.QSM,{i:null})]},t={v:[e.BNM,e.CNM]};return{aliases:["php3","php4","php5","php6"],cI:!0,k:"and include_once list abstract global private echo interface as static endswitch array null if endwhile or const for endforeach self var while isset public protected exit foreach throw elseif include __FILE__ empty require_once do xor return parent clone use __CLASS__ __LINE__ else break print eval new catch __METHOD__ case exception default die require __FUNCTION__ enddeclare final try switch continue endfor endif declare unset true false trait goto instanceof insteadof __DIR__ __NAMESPACE__ yield finally",c:[e.HCM,e.C("//","$",{c:[a]}),e.C("/\\*","\\*/",{c:[{cN:"doctag",b:"@[A-Za-z]+"}]}),e.C("__halt_compiler.+?;",!1,{eW:!0,k:"__halt_compiler",l:e.UIR}),{cN:"string",b:/<<<['"]?\w+['"]?$/,e:/^\w+;?$/,c:[e.BE,{cN:"subst",v:[{b:/\$\w+/},{b:/\{\$/,e:/\}/}]}]},a,c,{b:/(::|->)+[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/},{cN:"function",bK:"function",e:/[;{]/,eE:!0,i:"\\$|\\[|%",c:[e.UTM,{cN:"params",b:"\\(",e:"\\)",c:["self",c,e.CBCM,i,t]}]},{cN:"class",bK:"class interface",e:"{",eE:!0,i:/[:\(\$"]/,c:[{bK:"extends implements"},e.UTM]},{bK:"namespace",e:";",i:/[\.']/,c:[e.UTM]},{bK:"use",e:";",c:[e.UTM]},{b:"=>"},i,t]}});hljs.registerLanguage("sql",function(e){var t=e.C("--","$");return{cI:!0,i:/[<>{}*]/,c:[{bK:"begin end start commit rollback savepoint lock alter create drop rename call delete do handler insert load replace select truncate update set show pragma grant merge describe use explain help declare prepare execute deallocate release unlock purge reset change stop analyze cache flush optimize repair kill install uninstall checksum restore check backup revoke",e:/;/,eW:!0,k:{keyword:"abort abs absolute acc acce accep accept access accessed accessible account acos action activate add addtime admin administer advanced advise aes_decrypt aes_encrypt after agent aggregate ali alia alias allocate allow alter always analyze ancillary and any anydata anydataset anyschema anytype apply archive archived archivelog are as asc ascii asin assembly assertion associate asynchronous at atan atn2 attr attri attrib attribu attribut attribute attributes audit authenticated authentication authid authors auto autoallocate autodblink autoextend automatic availability avg backup badfile basicfile before begin beginning benchmark between bfile bfile_base big bigfile bin binary_double binary_float binlog bit_and bit_count bit_length bit_or bit_xor bitmap blob_base block blocksize body both bound buffer_cache buffer_pool build bulk by byte byteordermark bytes cache caching call calling cancel capacity cascade cascaded case cast catalog category ceil ceiling chain change changed char_base char_length character_length characters characterset charindex charset charsetform charsetid check checksum checksum_agg child choose chr chunk class cleanup clear client clob clob_base clone close cluster_id cluster_probability cluster_set clustering coalesce coercibility col collate collation collect colu colum column column_value columns columns_updated comment commit compact compatibility compiled complete composite_limit compound compress compute concat concat_ws concurrent confirm conn connec connect connect_by_iscycle connect_by_isleaf connect_by_root connect_time connection consider consistent constant constraint constraints constructor container content contents context contributors controlfile conv convert convert_tz corr corr_k corr_s corresponding corruption cos cost count count_big counted covar_pop covar_samp cpu_per_call cpu_per_session crc32 create creation critical cross cube cume_dist curdate current current_date current_time current_timestamp current_user cursor curtime customdatum cycle data database databases datafile datafiles datalength date_add date_cache date_format date_sub dateadd datediff datefromparts datename datepart datetime2fromparts day day_to_second dayname dayofmonth dayofweek dayofyear days db_role_change dbtimezone ddl deallocate declare decode decompose decrement decrypt deduplicate def defa defau defaul default defaults deferred defi defin define degrees delayed delegate delete delete_all delimited demand dense_rank depth dequeue des_decrypt des_encrypt des_key_file desc descr descri describ describe descriptor deterministic diagnostics difference dimension direct_load directory disable disable_all disallow disassociate discardfile disconnect diskgroup distinct distinctrow distribute distributed div do document domain dotnet double downgrade drop dumpfile duplicate duration each edition editionable editions element ellipsis else elsif elt empty enable enable_all enclosed encode encoding encrypt end end-exec endian enforced engine engines enqueue enterprise entityescaping eomonth error errors escaped evalname evaluate event eventdata events except exception exceptions exchange exclude excluding execu execut execute exempt exists exit exp expire explain export export_set extended extent external external_1 external_2 externally extract failed failed_login_attempts failover failure far fast feature_set feature_value fetch field fields file file_name_convert filesystem_like_logging final finish first first_value fixed flash_cache flashback floor flush following follows for forall force form forma format found found_rows freelist freelists freepools fresh from from_base64 from_days ftp full function general generated get get_format get_lock getdate getutcdate global global_name globally go goto grant grants greatest group group_concat group_id grouping grouping_id groups gtid_subtract guarantee guard handler hash hashkeys having hea head headi headin heading heap help hex hierarchy high high_priority hosts hour http id ident_current ident_incr ident_seed identified identity idle_time if ifnull ignore iif ilike ilm immediate import in include including increment index indexes indexing indextype indicator indices inet6_aton inet6_ntoa inet_aton inet_ntoa infile initial initialized initially initrans inmemory inner innodb input insert install instance instantiable instr interface interleaved intersect into invalidate invisible is is_free_lock is_ipv4 is_ipv4_compat is_not is_not_null is_used_lock isdate isnull isolation iterate java join json json_exists keep keep_duplicates key keys kill language large last last_day last_insert_id last_value lax lcase lead leading least leaves left len lenght length less level levels library like like2 like4 likec limit lines link list listagg little ln load load_file lob lobs local localtime localtimestamp locate locator lock locked log log10 log2 logfile logfiles logging logical logical_reads_per_call logoff logon logs long loop low low_priority lower lpad lrtrim ltrim main make_set makedate maketime managed management manual map mapping mask master master_pos_wait match matched materialized max maxextents maximize maxinstances maxlen maxlogfiles maxloghistory maxlogmembers maxsize maxtrans md5 measures median medium member memcompress memory merge microsecond mid migration min minextents minimum mining minus minute minvalue missing mod mode model modification modify module monitoring month months mount move movement multiset mutex name name_const names nan national native natural nav nchar nclob nested never new newline next nextval no no_write_to_binlog noarchivelog noaudit nobadfile nocheck nocompress nocopy nocycle nodelay nodiscardfile noentityescaping noguarantee nokeep nologfile nomapping nomaxvalue nominimize nominvalue nomonitoring none noneditionable nonschema noorder nopr nopro noprom nopromp noprompt norely noresetlogs noreverse normal norowdependencies noschemacheck noswitch not nothing notice notrim novalidate now nowait nth_value nullif nulls num numb numbe nvarchar nvarchar2 object ocicoll ocidate ocidatetime ociduration ociinterval ociloblocator ocinumber ociref ocirefcursor ocirowid ocistring ocitype oct octet_length of off offline offset oid oidindex old on online only opaque open operations operator optimal optimize option optionally or oracle oracle_date oradata ord ordaudio orddicom orddoc order ordimage ordinality ordvideo organization orlany orlvary out outer outfile outline output over overflow overriding package pad parallel parallel_enable parameters parent parse partial partition partitions pascal passing password password_grace_time password_lock_time password_reuse_max password_reuse_time password_verify_function patch path patindex pctincrease pctthreshold pctused pctversion percent percent_rank percentile_cont percentile_disc performance period period_add period_diff permanent physical pi pipe pipelined pivot pluggable plugin policy position post_transaction pow power pragma prebuilt precedes preceding precision prediction prediction_cost prediction_details prediction_probability prediction_set prepare present preserve prior priority private private_sga privileges procedural procedure procedure_analyze processlist profiles project prompt protection public publishingservername purge quarter query quick quiesce quota quotename radians raise rand range rank raw read reads readsize rebuild record records recover recovery recursive recycle redo reduced ref reference referenced references referencing refresh regexp_like register regr_avgx regr_avgy regr_count regr_intercept regr_r2 regr_slope regr_sxx regr_sxy reject rekey relational relative relaylog release release_lock relies_on relocate rely rem remainder rename repair repeat replace replicate replication required reset resetlogs resize resource respect restore restricted result result_cache resumable resume retention return returning returns reuse reverse revoke right rlike role roles rollback rolling rollup round row row_count rowdependencies rowid rownum rows rtrim rules safe salt sample save savepoint sb1 sb2 sb4 scan schema schemacheck scn scope scroll sdo_georaster sdo_topo_geometry search sec_to_time second section securefile security seed segment select self sequence sequential serializable server servererror session session_user sessions_per_user set sets settings sha sha1 sha2 share shared shared_pool short show shrink shutdown si_averagecolor si_colorhistogram si_featurelist si_positionalcolor si_stillimage si_texture siblings sid sign sin size size_t sizes skip slave sleep smalldatetimefromparts smallfile snapshot some soname sort soundex source space sparse spfile split sql sql_big_result sql_buffer_result sql_cache sql_calc_found_rows sql_small_result sql_variant_property sqlcode sqldata sqlerror sqlname sqlstate sqrt square standalone standby start starting startup statement static statistics stats_binomial_test stats_crosstab stats_ks_test stats_mode stats_mw_test stats_one_way_anova stats_t_test_ stats_t_test_indep stats_t_test_one stats_t_test_paired stats_wsr_test status std stddev stddev_pop stddev_samp stdev stop storage store stored str str_to_date straight_join strcmp strict string struct stuff style subdate subpartition subpartitions substitutable substr substring subtime subtring_index subtype success sum suspend switch switchoffset switchover sync synchronous synonym sys sys_xmlagg sysasm sysaux sysdate sysdatetimeoffset sysdba sysoper system system_user sysutcdatetime table tables tablespace tan tdo template temporary terminated tertiary_weights test than then thread through tier ties time time_format time_zone timediff timefromparts timeout timestamp timestampadd timestampdiff timezone_abbr timezone_minute timezone_region to to_base64 to_date to_days to_seconds todatetimeoffset trace tracking transaction transactional translate translation treat trigger trigger_nestlevel triggers trim truncate try_cast try_convert try_parse type ub1 ub2 ub4 ucase unarchived unbounded uncompress under undo unhex unicode uniform uninstall union unique unix_timestamp unknown unlimited unlock unpivot unrecoverable unsafe unsigned until untrusted unusable unused update updated upgrade upped upper upsert url urowid usable usage use use_stored_outlines user user_data user_resources users using utc_date utc_timestamp uuid uuid_short validate validate_password_strength validation valist value values var var_samp varcharc vari varia variab variabl variable variables variance varp varraw varrawc varray verify version versions view virtual visible void wait wallet warning warnings week weekday weekofyear wellformed when whene whenev wheneve whenever where while whitespace with within without work wrapped xdb xml xmlagg xmlattributes xmlcast xmlcolattval xmlelement xmlexists xmlforest xmlindex xmlnamespaces xmlpi xmlquery xmlroot xmlschema xmlserialize xmltable xmltype xor year year_to_month years yearweek",literal:"true false null",built_in:"array bigint binary bit blob boolean char character date dec decimal float int int8 integer interval number numeric real record serial serial8 smallint text varchar varying void"},c:[{cN:"string",b:"'",e:"'",c:[e.BE,{b:"''"}]},{cN:"string",b:'"',e:'"',c:[e.BE,{b:'""'}]},{cN:"string",b:"`",e:"`",c:[e.BE]},e.CNM,e.CBCM,t]},e.CBCM,t]}});hljs.registerLanguage("coffeescript",function(e){var c={keyword:"in if for while finally new do return else break catch instanceof throw try this switch continue typeof delete debugger super then unless until loop of by when and or is isnt not",literal:"true false null undefined yes no on off",built_in:"npm require console print module global window document"},n="[A-Za-z$_][0-9A-Za-z$_]*",r={cN:"subst",b:/#\{/,e:/}/,k:c},s=[e.BNM,e.inherit(e.CNM,{starts:{e:"(\\s*/)?",r:0}}),{cN:"string",v:[{b:/'''/,e:/'''/,c:[e.BE]},{b:/'/,e:/'/,c:[e.BE]},{b:/"""/,e:/"""/,c:[e.BE,r]},{b:/"/,e:/"/,c:[e.BE,r]}]},{cN:"regexp",v:[{b:"///",e:"///",c:[r,e.HCM]},{b:"//[gim]*",r:0},{b:/\/(?![ *])(\\\/|.)*?\/[gim]*(?=\W|$)/}]},{b:"@"+n},{b:"`",e:"`",eB:!0,eE:!0,sL:"javascript"}];r.c=s;var i=e.inherit(e.TM,{b:n}),t="(\\(.*\\))?\\s*\\B[-=]>",o={cN:"params",b:"\\([^\\(]",rB:!0,c:[{b:/\(/,e:/\)/,k:c,c:["self"].concat(s)}]};return{aliases:["coffee","cson","iced"],k:c,i:/\/\*/,c:s.concat([e.C("###","###"),e.HCM,{cN:"function",b:"^\\s*"+n+"\\s*=\\s*"+t,e:"[-=]>",rB:!0,c:[i,o]},{b:/[:\(,=]\s*/,r:0,c:[{cN:"function",b:t,e:"[-=]>",rB:!0,c:[o]}]},{cN:"class",bK:"class",e:"$",i:/[:="\[\]]/,c:[{bK:"extends",eW:!0,i:/[:="\[\]]/,c:[i]},i]},{b:n+":",e:":",rB:!0,rE:!0,r:0}])}});hljs.registerLanguage("yaml",function(e){var a={literal:"{ } true false yes no Yes No True False null"},b="^[ \\-]*",r="[a-zA-Z_][\\w\\-]*",t={cN:"attr",v:[{b:b+r+":"},{b:b+'"'+r+'":'},{b:b+"'"+r+"':"}]},c={cN:"template-variable",v:[{b:"{{",e:"}}"},{b:"%{",e:"}"}]},l={cN:"string",r:0,v:[{b:/'/,e:/'/},{b:/"/,e:/"/}],c:[e.BE,c]};return{cI:!0,aliases:["yml","YAML","yaml"],c:[t,{cN:"meta",b:"^---s*$",r:10},{cN:"string",b:"[\\|>] *$",rE:!0,c:l.c,e:t.v[0].b},{b:"<%[%=-]?",e:"[%-]?%>",sL:"ruby",eB:!0,eE:!0,r:0},{cN:"type",b:"!!"+e.UIR},{cN:"meta",b:"&"+e.UIR+"$"},{cN:"meta",b:"\\*"+e.UIR+"$"},{cN:"bullet",b:"^ *-",r:0},l,e.HCM,e.CNM],k:a}});hljs.registerLanguage("clojure",function(e){var t={"builtin-name":"def defonce cond apply if-not if-let if not not= = < > <= >= == + / * - rem quot neg? pos? delay? symbol? keyword? true? false? integer? empty? coll? list? set? ifn? fn? associative? sequential? sorted? counted? reversible? number? decimal? class? distinct? isa? float? rational? reduced? ratio? odd? even? char? seq? vector? string? map? nil? contains? zero? instance? not-every? not-any? libspec? -> ->> .. . inc compare do dotimes mapcat take remove take-while drop letfn drop-last take-last drop-while while intern condp case reduced cycle split-at split-with repeat replicate iterate range merge zipmap declare line-seq sort comparator sort-by dorun doall nthnext nthrest partition eval doseq await await-for let agent atom send send-off release-pending-sends add-watch mapv filterv remove-watch agent-error restart-agent set-error-handler error-handler set-error-mode! error-mode shutdown-agents quote var fn loop recur throw try monitor-enter monitor-exit defmacro defn defn- macroexpand macroexpand-1 for dosync and or when when-not when-let comp juxt partial sequence memoize constantly complement identity assert peek pop doto proxy defstruct first rest cons defprotocol cast coll deftype defrecord last butlast sigs reify second ffirst fnext nfirst nnext defmulti defmethod meta with-meta ns in-ns create-ns import refer keys select-keys vals key val rseq name namespace promise into transient persistent! conj! assoc! dissoc! pop! disj! use class type num float double short byte boolean bigint biginteger bigdec print-method print-dup throw-if printf format load compile get-in update-in pr pr-on newline flush read slurp read-line subvec with-open memfn time re-find re-groups rand-int rand mod locking assert-valid-fdecl alias resolve ref deref refset swap! reset! set-validator! compare-and-set! alter-meta! reset-meta! commute get-validator alter ref-set ref-history-count ref-min-history ref-max-history ensure sync io! new next conj set! to-array future future-call into-array aset gen-class reduce map filter find empty hash-map hash-set sorted-map sorted-map-by sorted-set sorted-set-by vec vector seq flatten reverse assoc dissoc list disj get union difference intersection extend extend-type extend-protocol int nth delay count concat chunk chunk-buffer chunk-append chunk-first chunk-rest max min dec unchecked-inc-int unchecked-inc unchecked-dec-inc unchecked-dec unchecked-negate unchecked-add-int unchecked-add unchecked-subtract-int unchecked-subtract chunk-next chunk-cons chunked-seq? prn vary-meta lazy-seq spread list* str find-keyword keyword symbol gensym force rationalize"},r="a-zA-Z_\\-!.?+*=<>&#'",n="["+r+"]["+r+"0-9/;:]*",a="[-+]?\\d+(\\.\\d+)?",o={b:n,r:0},s={cN:"number",b:a,r:0},i=e.inherit(e.QSM,{i:null}),c=e.C(";","$",{r:0}),d={cN:"literal",b:/\b(true|false|nil)\b/},l={b:"[\\[\\{]",e:"[\\]\\}]"},m={cN:"comment",b:"\\^"+n},p=e.C("\\^\\{","\\}"),u={cN:"symbol",b:"[:]"+n},f={b:"\\(",e:"\\)"},h={eW:!0,r:0},y={k:t,l:n,cN:"name",b:n,starts:h},b=[f,i,m,p,c,u,l,s,d,o];return f.c=[e.C("comment",""),y,h],h.c=b,l.c=b,{aliases:["clj"],i:/\S/,c:[f,i,m,p,c,u,l,s,d]}});hljs.registerLanguage("scala",function(e){var t={cN:"meta",b:"@[A-Za-z]+"},a={cN:"subst",v:[{b:"\\$[A-Za-z0-9_]+"},{b:"\\${",e:"}"}]},r={cN:"string",v:[{b:'"',e:'"',i:"\\n",c:[e.BE]},{b:'"""',e:'"""',r:10},{b:'[a-z]+"',e:'"',i:"\\n",c:[e.BE,a]},{cN:"string",b:'[a-z]+"""',e:'"""',c:[a],r:10}]},c={cN:"symbol",b:"'\\w[\\w\\d_]*(?!')"},i={cN:"type",b:"\\b[A-Z][A-Za-z0-9_]*",r:0},s={cN:"title",b:/[^0-9\n\t "'(),.`{}\[\]:;][^\n\t "'(),.`{}\[\]:;]+|[^0-9\n\t "'(),.`{}\[\]:;=]/,r:0},n={cN:"class",bK:"class object trait type",e:/[:={\[\n;]/,eE:!0,c:[{bK:"extends with",r:10},{b:/\[/,e:/\]/,eB:!0,eE:!0,r:0,c:[i]},{cN:"params",b:/\(/,e:/\)/,eB:!0,eE:!0,r:0,c:[i]},s]},l={cN:"function",bK:"def",e:/[:={\[(\n;]/,eE:!0,c:[s]};return{k:{literal:"true false null",keyword:"type yield lazy override def with val var sealed abstract private trait object if forSome for while throw finally protected extends import final return else break new catch super class case package default try this match continue throws implicit"},c:[e.CLCM,e.CBCM,r,c,i,l,n,e.CNM,t]}});hljs.registerLanguage("elm",function(e){var i={v:[e.C("--","$"),e.C("{-","-}",{c:["self"]})]},r={cN:"type",b:"\\b[A-Z][\\w']*",r:0},t={b:"\\(",e:"\\)",i:'"',c:[{cN:"type",b:"\\b[A-Z][\\w]*(\\((\\.\\.|,|\\w+)\\))?"},i]},n={b:"{",e:"}",c:t.c};return{k:"let in if then else case of where module import exposing type alias as infix infixl infixr port",c:[{bK:"module",e:"where",k:"module where",c:[t,i],i:"\\W\\.|;"},{b:"import",e:"$",k:"import as exposing",c:[t,i],i:"\\W\\.|;"},{b:"type",e:"$",k:"type alias",c:[r,t,n,i]},{bK:"infix infixl infixr",e:"$",c:[e.CNM,i]},{b:"port",e:"$",k:"port",c:[i]},e.QSM,e.CNM,r,e.inherit(e.TM,{b:"^[_a-z][\\w']*"}),i,{b:"->|<-"}]}});hljs.registerLanguage("diff",function(e){return{aliases:["patch"],c:[{cN:"meta",r:10,v:[{b:/^@@ +\-\d+,\d+ +\+\d+,\d+ +@@$/},{b:/^\*\*\* +\d+,\d+ +\*\*\*\*$/},{b:/^\-\-\- +\d+,\d+ +\-\-\-\-$/}]},{cN:"comment",v:[{b:/Index: /,e:/$/},{b:/=====/,e:/=====$/},{b:/^\-\-\-/,e:/$/},{b:/^\*{3} /,e:/$/},{b:/^\+\+\+/,e:/$/},{b:/\*{5}/,e:/\*{5}$/}]},{cN:"addition",b:"^\\+",e:"$"},{cN:"deletion",b:"^\\-",e:"$"},{cN:"addition",b:"^\\!",e:"$"}]}});hljs.registerLanguage("rust",function(e){var t="([uif](8|16|32|64|size))?",r=e.inherit(e.CBCM);r.c.push("self");var n="Copy Send Sized Sync Drop Fn FnMut FnOnce drop Box ToOwned Clone PartialEq PartialOrd Eq Ord AsRef AsMut Into From Default Iterator Extend IntoIterator DoubleEndedIterator ExactSizeIterator Option Result SliceConcatExt String ToString Vec assert! assert_eq! bitflags! bytes! cfg! col! concat! concat_idents! debug_assert! debug_assert_eq! env! panic! file! format! format_args! include_bin! include_str! line! local_data_key! module_path! option_env! print! println! select! stringify! try! unimplemented! unreachable! vec! write! writeln! macro_rules!";return{aliases:["rs"],k:{keyword:"alignof as be box break const continue crate do else enum extern false fn for if impl in let loop match mod mut offsetof once priv proc pub pure ref return self Self sizeof static struct super trait true type typeof unsafe unsized use virtual while where yield int i8 i16 i32 i64 uint u8 u32 u64 float f32 f64 str char bool",literal:"true false Some None Ok Err",built_in:n},l:e.IR+"!?",i:""}]}});hljs.registerLanguage("fsharp",function(e){var t={b:"<",e:">",c:[e.inherit(e.TM,{b:/'[a-zA-Z0-9_]+/})]};return{aliases:["fs"],k:"abstract and as assert base begin class default delegate do done downcast downto elif else end exception extern false finally for fun function global if in inherit inline interface internal lazy let match member module mutable namespace new null of open or override private public rec return sig static struct then to true try type upcast use val void when while with yield",i:/\/\*/,c:[{cN:"keyword",b:/\b(yield|return|let|do)!/},{cN:"string",b:'@"',e:'"',c:[{b:'""'}]},{cN:"string",b:'"""',e:'"""'},e.C("\\(\\*","\\*\\)"),{cN:"class",bK:"type",e:"\\(|=|$",eE:!0,c:[e.UTM,t]},{cN:"meta",b:"\\[<",e:">\\]",r:10},{cN:"symbol",b:"\\B('[A-Za-z])\\b",c:[e.BE]},e.CLCM,e.inherit(e.QSM,{i:null}),e.CNM]}});hljs.registerLanguage("perl",function(e){var t="getpwent getservent quotemeta msgrcv scalar kill dbmclose undef lc ma syswrite tr send umask sysopen shmwrite vec qx utime local oct semctl localtime readpipe do return format read sprintf dbmopen pop getpgrp not getpwnam rewinddir qqfileno qw endprotoent wait sethostent bless s|0 opendir continue each sleep endgrent shutdown dump chomp connect getsockname die socketpair close flock exists index shmgetsub for endpwent redo lstat msgctl setpgrp abs exit select print ref gethostbyaddr unshift fcntl syscall goto getnetbyaddr join gmtime symlink semget splice x|0 getpeername recv log setsockopt cos last reverse gethostbyname getgrnam study formline endhostent times chop length gethostent getnetent pack getprotoent getservbyname rand mkdir pos chmod y|0 substr endnetent printf next open msgsnd readdir use unlink getsockopt getpriority rindex wantarray hex system getservbyport endservent int chr untie rmdir prototype tell listen fork shmread ucfirst setprotoent else sysseek link getgrgid shmctl waitpid unpack getnetbyname reset chdir grep split require caller lcfirst until warn while values shift telldir getpwuid my getprotobynumber delete and sort uc defined srand accept package seekdir getprotobyname semop our rename seek if q|0 chroot sysread setpwent no crypt getc chown sqrt write setnetent setpriority foreach tie sin msgget map stat getlogin unless elsif truncate exec keys glob tied closedirioctl socket readlink eval xor readline binmode setservent eof ord bind alarm pipe atan2 getgrent exp time push setgrent gt lt or ne m|0 break given say state when",r={cN:"subst",b:"[$@]\\{",e:"\\}",k:t},s={b:"->{",e:"}"},n={v:[{b:/\$\d/},{b:/[\$%@](\^\w\b|#\w+(::\w+)*|{\w+}|\w+(::\w*)*)/},{b:/[\$%@][^\s\w{]/,r:0}]},i=[e.BE,r,n],o=[n,e.HCM,e.C("^\\=\\w","\\=cut",{eW:!0}),s,{cN:"string",c:i,v:[{b:"q[qwxr]?\\s*\\(",e:"\\)",r:5},{b:"q[qwxr]?\\s*\\[",e:"\\]",r:5},{b:"q[qwxr]?\\s*\\{",e:"\\}",r:5},{b:"q[qwxr]?\\s*\\|",e:"\\|",r:5},{b:"q[qwxr]?\\s*\\<",e:"\\>",r:5},{b:"qw\\s+q",e:"q",r:5},{b:"'",e:"'",c:[e.BE]},{b:'"',e:'"'},{b:"`",e:"`",c:[e.BE]},{b:"{\\w+}",c:[],r:0},{b:"-?\\w+\\s*\\=\\>",c:[],r:0}]},{cN:"number",b:"(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b",r:0},{b:"(\\/\\/|"+e.RSR+"|\\b(split|return|print|reverse|grep)\\b)\\s*",k:"split return print reverse grep",r:0,c:[e.HCM,{cN:"regexp",b:"(s|tr|y)/(\\\\.|[^/])*/(\\\\.|[^/])*/[a-z]*",r:10},{cN:"regexp",b:"(m|qr)?/",e:"/[a-z]*",c:[e.BE],r:0}]},{cN:"function",bK:"sub",e:"(\\s*\\(.*?\\))?[;{]",eE:!0,r:5,c:[e.TM]},{b:"-\\w\\b",r:0},{b:"^__DATA__$",e:"^__END__$",sL:"mojolicious",c:[{b:"^@@.*",e:"$",cN:"comment"}]}];return r.c=o,s.c=o,{aliases:["pl"],k:t,c:o}});hljs.registerLanguage("scss",function(e){var t="[a-zA-Z-][a-zA-Z0-9_-]*",i={cN:"variable",b:"(\\$"+t+")\\b"},r={cN:"number",b:"#[0-9A-Fa-f]+"};({cN:"attribute",b:"[A-Z\\_\\.\\-]+",e:":",eE:!0,i:"[^\\s]",starts:{eW:!0,eE:!0,c:[r,e.CSSNM,e.QSM,e.ASM,e.CBCM,{cN:"meta",b:"!important"}]}});return{cI:!0,i:"[=/|']",c:[e.CLCM,e.CBCM,{cN:"selector-id",b:"\\#[A-Za-z0-9_-]+",r:0},{cN:"selector-class",b:"\\.[A-Za-z0-9_-]+",r:0},{cN:"selector-attr",b:"\\[",e:"\\]",i:"$"},{cN:"selector-tag",b:"\\b(a|abbr|acronym|address|area|article|aside|audio|b|base|big|blockquote|body|br|button|canvas|caption|cite|code|col|colgroup|command|datalist|dd|del|details|dfn|div|dl|dt|em|embed|fieldset|figcaption|figure|footer|form|frame|frameset|(h[1-6])|head|header|hgroup|hr|html|i|iframe|img|input|ins|kbd|keygen|label|legend|li|link|map|mark|meta|meter|nav|noframes|noscript|object|ol|optgroup|option|output|p|param|pre|progress|q|rp|rt|ruby|samp|script|section|select|small|span|strike|strong|style|sub|sup|table|tbody|td|textarea|tfoot|th|thead|time|title|tr|tt|ul|var|video)\\b",r:0},{b:":(visited|valid|root|right|required|read-write|read-only|out-range|optional|only-of-type|only-child|nth-of-type|nth-last-of-type|nth-last-child|nth-child|not|link|left|last-of-type|last-child|lang|invalid|indeterminate|in-range|hover|focus|first-of-type|first-line|first-letter|first-child|first|enabled|empty|disabled|default|checked|before|after|active)"},{b:"::(after|before|choices|first-letter|first-line|repeat-index|repeat-item|selection|value)"},i,{cN:"attribute",b:"\\b(z-index|word-wrap|word-spacing|word-break|width|widows|white-space|visibility|vertical-align|unicode-bidi|transition-timing-function|transition-property|transition-duration|transition-delay|transition|transform-style|transform-origin|transform|top|text-underline-position|text-transform|text-shadow|text-rendering|text-overflow|text-indent|text-decoration-style|text-decoration-line|text-decoration-color|text-decoration|text-align-last|text-align|tab-size|table-layout|right|resize|quotes|position|pointer-events|perspective-origin|perspective|page-break-inside|page-break-before|page-break-after|padding-top|padding-right|padding-left|padding-bottom|padding|overflow-y|overflow-x|overflow-wrap|overflow|outline-width|outline-style|outline-offset|outline-color|outline|orphans|order|opacity|object-position|object-fit|normal|none|nav-up|nav-right|nav-left|nav-index|nav-down|min-width|min-height|max-width|max-height|mask|marks|margin-top|margin-right|margin-left|margin-bottom|margin|list-style-type|list-style-position|list-style-image|list-style|line-height|letter-spacing|left|justify-content|initial|inherit|ime-mode|image-orientation|image-resolution|image-rendering|icon|hyphens|height|font-weight|font-variant-ligatures|font-variant|font-style|font-stretch|font-size-adjust|font-size|font-language-override|font-kerning|font-feature-settings|font-family|font|float|flex-wrap|flex-shrink|flex-grow|flex-flow|flex-direction|flex-basis|flex|filter|empty-cells|display|direction|cursor|counter-reset|counter-increment|content|column-width|column-span|column-rule-width|column-rule-style|column-rule-color|column-rule|column-gap|column-fill|column-count|columns|color|clip-path|clip|clear|caption-side|break-inside|break-before|break-after|box-sizing|box-shadow|box-decoration-break|bottom|border-width|border-top-width|border-top-style|border-top-right-radius|border-top-left-radius|border-top-color|border-top|border-style|border-spacing|border-right-width|border-right-style|border-right-color|border-right|border-radius|border-left-width|border-left-style|border-left-color|border-left|border-image-width|border-image-source|border-image-slice|border-image-repeat|border-image-outset|border-image|border-color|border-collapse|border-bottom-width|border-bottom-style|border-bottom-right-radius|border-bottom-left-radius|border-bottom-color|border-bottom|border|background-size|background-repeat|background-position|background-origin|background-image|background-color|background-clip|background-attachment|background-blend-mode|background|backface-visibility|auto|animation-timing-function|animation-play-state|animation-name|animation-iteration-count|animation-fill-mode|animation-duration|animation-direction|animation-delay|animation|align-self|align-items|align-content)\\b",i:"[^\\s]"},{b:"\\b(whitespace|wait|w-resize|visible|vertical-text|vertical-ideographic|uppercase|upper-roman|upper-alpha|underline|transparent|top|thin|thick|text|text-top|text-bottom|tb-rl|table-header-group|table-footer-group|sw-resize|super|strict|static|square|solid|small-caps|separate|se-resize|scroll|s-resize|rtl|row-resize|ridge|right|repeat|repeat-y|repeat-x|relative|progress|pointer|overline|outside|outset|oblique|nowrap|not-allowed|normal|none|nw-resize|no-repeat|no-drop|newspaper|ne-resize|n-resize|move|middle|medium|ltr|lr-tb|lowercase|lower-roman|lower-alpha|loose|list-item|line|line-through|line-edge|lighter|left|keep-all|justify|italic|inter-word|inter-ideograph|inside|inset|inline|inline-block|inherit|inactive|ideograph-space|ideograph-parenthesis|ideograph-numeric|ideograph-alpha|horizontal|hidden|help|hand|groove|fixed|ellipsis|e-resize|double|dotted|distribute|distribute-space|distribute-letter|distribute-all-lines|disc|disabled|default|decimal|dashed|crosshair|collapse|col-resize|circle|char|center|capitalize|break-word|break-all|bottom|both|bolder|bold|block|bidi-override|below|baseline|auto|always|all-scroll|absolute|table|table-cell)\\b"},{b:":",e:";",c:[i,r,e.CSSNM,e.QSM,e.ASM,{cN:"meta",b:"!important"}]},{b:"@",e:"[{;]",k:"mixin include extend for if else each while charset import debug media page content font-face namespace warn",c:[i,e.QSM,e.ASM,r,e.CSSNM,{b:"\\s[A-Za-z0-9_.-]+",r:0}]}]}});hljs.registerLanguage("python",function(e){var r={cN:"meta",b:/^(>>>|\.\.\.) /},b={cN:"string",c:[e.BE],v:[{b:/(u|b)?r?'''/,e:/'''/,c:[r],r:10},{b:/(u|b)?r?"""/,e:/"""/,c:[r],r:10},{b:/(u|r|ur)'/,e:/'/,r:10},{b:/(u|r|ur)"/,e:/"/,r:10},{b:/(b|br)'/,e:/'/},{b:/(b|br)"/,e:/"/},e.ASM,e.QSM]},a={cN:"number",r:0,v:[{b:e.BNR+"[lLjJ]?"},{b:"\\b(0o[0-7]+)[lLjJ]?"},{b:e.CNR+"[lLjJ]?"}]},l={cN:"params",b:/\(/,e:/\)/,c:["self",r,a,b]};return{aliases:["py","gyp"],k:{keyword:"and elif is global as in if from raise for except finally print import pass return exec else break not with class assert yield try while continue del or def lambda async await nonlocal|10 None True False",built_in:"Ellipsis NotImplemented"},i:/(<\/|->|\?)/,c:[r,a,b,e.HCM,{v:[{cN:"function",bK:"def",r:10},{cN:"class",bK:"class"}],e:/:/,i:/[${=;\n,]/,c:[e.UTM,l,{b:/->/,eW:!0,k:"None"}]},{cN:"meta",b:/^[\t ]*@/,e:/$/},{b:/\b(print|exec)\(/}]}});hljs.registerLanguage("javascript",function(e){return{aliases:["js","jsx"],k:{keyword:"in of if for while finally var new function do return void else break catch instanceof with throw case default try this switch continue typeof delete let yield const export super debugger as async await static import from as",literal:"true false null undefined NaN Infinity",built_in:"eval isFinite isNaN parseFloat parseInt decodeURI decodeURIComponent encodeURI encodeURIComponent escape unescape Object Function Boolean Error EvalError InternalError RangeError ReferenceError StopIteration SyntaxError TypeError URIError Number Math Date String RegExp Array Float32Array Float64Array Int16Array Int32Array Int8Array Uint16Array Uint32Array Uint8Array Uint8ClampedArray ArrayBuffer DataView JSON Intl arguments require module console window document Symbol Set Map WeakSet WeakMap Proxy Reflect Promise"},c:[{cN:"meta",r:10,b:/^\s*['"]use (strict|asm)['"]/},{cN:"meta",b:/^#!/,e:/$/},e.ASM,e.QSM,{cN:"string",b:"`",e:"`",c:[e.BE,{cN:"subst",b:"\\$\\{",e:"\\}"}]},e.CLCM,e.CBCM,{cN:"number",v:[{b:"\\b(0[bB][01]+)"},{b:"\\b(0[oO][0-7]+)"},{b:e.CNR}],r:0},{b:"("+e.RSR+"|\\b(case|return|throw)\\b)\\s*",k:"return throw case",c:[e.CLCM,e.CBCM,e.RM,{b://,sL:"xml",c:[{b:/<\w+\/>/,skip:!0},{b:/<\w+/,e:/(\/\w+|\w+\/)>/,skip:!0,c:["self"]}]}],r:0},{cN:"function",bK:"function",e:/\{/,eE:!0,c:[e.inherit(e.TM,{b:/[A-Za-z$_][0-9A-Za-z$_]*/}),{cN:"params",b:/\(/,e:/\)/,eB:!0,eE:!0,c:[e.CLCM,e.CBCM]}],i:/\[|%/},{b:/\$[(.]/},e.METHOD_GUARD,{cN:"class",bK:"class",e:/[{;=]/,eE:!0,i:/[:"\[\]]/,c:[{bK:"extends"},e.UTM]},{bK:"constructor",e:/\{/,eE:!0}],i:/#(?!!)/}});hljs.registerLanguage("apache",function(e){var r={cN:"number",b:"[\\$%]\\d+"};return{aliases:["apacheconf"],cI:!0,c:[e.HCM,{cN:"section",b:""},{cN:"attribute",b:/\w+/,r:0,k:{nomarkup:"order deny allow setenv rewriterule rewriteengine rewritecond documentroot sethandler errordocument loadmodule options header listen serverroot servername"},starts:{e:/$/,r:0,k:{literal:"on off all"},c:[{cN:"meta",b:"\\s\\[",e:"\\]$"},{cN:"variable",b:"[\\$%]\\{",e:"\\}",c:["self",r]},r,e.QSM]}}],i:/\S/}});hljs.registerLanguage("makefile",function(e){var a={cN:"variable",b:/\$\(/,e:/\)/,c:[e.BE]};return{aliases:["mk","mak"],c:[e.HCM,{b:/^\w+\s*\W*=/,rB:!0,r:0,starts:{e:/\s*\W*=/,eE:!0,starts:{e:/$/,r:0,c:[a]}}},{cN:"section",b:/^[\w]+:\s*$/},{cN:"meta",b:/^\.PHONY:/,e:/$/,k:{"meta-keyword":".PHONY"},l:/[\.\w]+/},{b:/^\t+/,e:/$/,r:0,c:[e.QSM,a]}]}}); ================================================ FILE: DocPreview/src/Docs/Entry.elm ================================================ module Docs.Entry where import Effects as Fx exposing (Effects) import Html exposing (..) import Html.Attributes exposing (..) import Regex import String import Docs.Name as Name import Docs.Type as Type exposing (Type) import Utils.Code exposing (arrow, colon, equals, keyword, padded, space) import Utils.Markdown as Markdown -- MODEL type alias Model tipe = { name : String , info : Info tipe , docs : String } type Info tipe = Value tipe (Maybe Fixity) | Union { vars : List String , tags : List (Tag tipe) } | Alias { vars : List String , tipe : tipe } type alias Tag tipe = { tag : String , args : List tipe } type alias Fixity = { precedence : Int , associativity : String } -- UPDATE update : a -> Model tipe -> (Model tipe, Effects a) update action model = (model, Fx.none) -- MAP map : (a -> b) -> Model a -> Model b map func model = let newInfo = case model.info of Value tipe fixity -> Value (func tipe) fixity Union {vars,tags} -> Union { vars = vars, tags = List.map (tagMap func) tags } Alias {vars,tipe} -> Alias { vars = vars, tipe = func tipe } in { model | info = newInfo } tagMap : (a -> b) -> Tag a -> Tag b tagMap func tag = { tag | args = List.map func tag.args } -- STRING VIEW stringView : Model String -> Html stringView model = let annotation = case model.info of Value tipe _ -> [ nameToLink model.name :: padded colon ++ [text tipe] ] Union {vars,tags} -> unionAnnotation (\t -> [text t]) model.name vars tags Alias {vars,tipe} -> [ aliasNameLine model.name vars , [ text " ", text tipe ] ] in div [ class "docs-entry", id model.name ] [ annotationBlock annotation , div [class "docs-comment"] [Markdown.block model.docs] ] -- TYPE VIEW (=>) : a -> b -> ( a, b ) (=>) = (,) typeView : Name.Dictionary -> Model Type -> Html typeView nameDict model = let annotation = case model.info of Value tipe _ -> valueAnnotation nameDict model.name tipe Union {vars,tags} -> unionAnnotation (Type.toHtml nameDict Type.App) model.name vars tags Alias {vars,tipe} -> aliasAnnotation nameDict model.name vars tipe in div [ class "docs-entry", id model.name ] [ annotationBlock annotation , div [class "docs-comment"] [Markdown.block model.docs] ] annotationBlock : List (List Html) -> Html annotationBlock bits = div [ class "docs-annotation" ] (List.concat (List.intersperse [text "\n"] bits)) nameToLink : String -> Html nameToLink name = let humanName = if Regex.contains operator name then "(" ++ name ++ ")" else name in a [style ["font-weight" => "bold"], href ("#" ++ name)] [text humanName] operator : Regex.Regex operator = Regex.regex "^[^a-zA-Z0-9]+$" -- VALUE ANNOTATIONS valueAnnotation : Name.Dictionary -> String -> Type -> List (List Html) valueAnnotation nameDict name tipe = let _ = Debug.log "Value annotation:" tipe in case tipe of Type.Function args result -> if String.length name + 3 + Type.length Type.Other tipe > 64 then [ nameToLink name ] :: longFunctionAnnotation nameDict args result else [ nameToLink name :: padded colon ++ Type.toHtml nameDict Type.Other tipe ] _ -> [ nameToLink name :: padded colon ++ Type.toHtml nameDict Type.Other tipe ] longFunctionAnnotation : Name.Dictionary -> List Type -> Type -> List (List Html) longFunctionAnnotation nameDict args result = let tipeHtml = List.map (Type.toHtml nameDict Type.Func) (args ++ [result]) starters = [ text " ", colon, text " " ] :: List.repeat (List.length args) [ text " ", arrow, space ] in List.map2 (++) starters tipeHtml -- UNION ANNOTATIONS unionAnnotation : (tipe -> List Html) -> String -> List String -> List (Tag tipe) -> List (List Html) unionAnnotation tipeToHtml name vars tags = let nameLine = [ keyword "type" , space , nameToLink name , text (String.concat (List.map ((++) " ") vars)) ] tagLines = List.map2 (::) (text " = " :: List.repeat (List.length tags - 1) (text " | ")) (List.map (viewTag tipeToHtml) tags) in nameLine :: tagLines viewTag : (tipe -> List Html) -> Tag tipe -> List Html viewTag tipeToHtml {tag,args} = text tag :: List.concatMap ((::) space) (List.map tipeToHtml args) -- ALIAS ANNOTATIONS aliasAnnotation : Name.Dictionary -> String -> List String -> Type -> List (List Html) aliasAnnotation nameDict name vars tipe = let typeLines = case tipe of Type.Record fields ext -> let ( firstLine, starters ) = case ext of Nothing -> ( [] , text " { " :: List.repeat (List.length fields) (text " , ") ) Just extName -> ( [ [ text " { ", text extName, text " |" ] ] , text " | " :: List.repeat (List.length fields) (text " , ") ) in firstLine ++ List.map2 (::) starters (List.map (Type.fieldToHtml nameDict) fields) ++ [ [ text " }" ] ] _ -> [ text " " :: Type.toHtml nameDict Type.Other tipe ] in aliasNameLine name vars :: typeLines aliasNameLine : String -> List String -> List Html aliasNameLine name vars = [ keyword "type" , space , keyword "alias" , space , nameToLink name , text (String.concat (List.map ((++) " ") vars)) , space , equals , space ] ================================================ FILE: DocPreview/src/Docs/Name.elm ================================================ module Docs.Name where import Dict import Html exposing (..) import Html.Attributes exposing (..) import Set import String type alias Canonical = { home : String , name : String } type alias Dictionary = Dict.Dict String (Set.Set String) toLink : Dictionary -> Canonical -> Html toLink dict ({home,name} as canonical) = case Maybe.map (Set.member name) (Dict.get home dict) of Just True -> let link = String.map (\c -> if c == '.' then '-' else c) home ++ "#" ++ name in a [href link] [text name] _ -> text name ================================================ FILE: DocPreview/src/Docs/Package.elm ================================================ module Docs.Package ( Package , Module , decodePackage , decodeModule ) where import Dict import Json.Decode as Json exposing ((:=)) import Docs.Entry as Entry -- TYPES type alias Package = Dict.Dict String Module type alias Module = { name : String , comment : String , entries : Dict.Dict String (Entry.Model String) } -- DECODERS decodePackage : Json.Decoder Package decodePackage = Json.map (dictBy .name) (Json.list decodeModule) decodeModule : Json.Decoder Module decodeModule = let make name comment values unions aliases = Module name comment (dictBy .name (values ++ unions ++ aliases)) in Json.object5 make ("name" := Json.string) ("comment" := Json.string) ("aliases" := Json.list (entry alias)) ("types" := Json.list (entry union)) ("values" := Json.list (entry value)) dictBy : (a -> comparable) -> List a -> Dict.Dict comparable a dictBy f list = Dict.fromList (List.map (\x -> (f x, x)) list) -- ENTRY entry : Json.Decoder (Entry.Info String) -> Json.Decoder (Entry.Model String) entry decodeInfo = Json.object3 Entry.Model ("name" := Json.string) decodeInfo ("comment" := Json.string) -- VALUE INFO value : Json.Decoder (Entry.Info String) value = Json.object2 Entry.Value ("type" := tipe) (Json.maybe fixity) fixity : Json.Decoder Entry.Fixity fixity = Json.object2 Entry.Fixity ("precedence" := Json.int) ("associativity" := Json.string) -- UNION INFO union : Json.Decoder (Entry.Info String) union = Json.object2 (\vars tags -> Entry.Union { vars = vars, tags = tags }) ("args" := Json.list Json.string) ("cases" := Json.list tag) tag : Json.Decoder (Entry.Tag String) tag = Json.tuple2 Entry.Tag Json.string (Json.list tipe) -- ALIAS INFO alias : Json.Decoder (Entry.Info String) alias = Json.object2 (\vars tipe -> Entry.Alias { vars = vars, tipe = tipe }) ("args" := Json.list Json.string) ("type" := tipe) -- TYPES tipe : Json.Decoder String tipe = Json.string ================================================ FILE: DocPreview/src/Docs/Summary.elm ================================================ module Docs.Summary (Summary, decoder) where import Docs.Version as Vsn import Json.Decode exposing (..) type alias Summary = { name : String , summary : String , versions : List Vsn.Version } decoder : Decoder (List Summary) decoder = list decodeSummary decodeSummary : Decoder Summary decodeSummary = object3 Summary ("name" := string) ("summary" := string) ("versions" := list Vsn.decoder) ================================================ FILE: DocPreview/src/Docs/Type.elm ================================================ module Docs.Type where import Html exposing (..) import String import Docs.Name as Name import Utils.Code as Code exposing (arrow, colon, padded, space) -- MODEL type Type = Function (List Type) Type | Var String | Apply Name.Canonical (List Type) | Tuple (List Type) | Record (List (String, Type)) (Maybe String) type alias Tag = { tag : String , args : List Type } -- TYPE TO FLAT HTML type Context = Func | App | Other toHtml : Name.Dictionary -> Context -> Type -> List Html toHtml nameDict context tipe = let go ctx t = toHtml nameDict ctx t in case tipe of Function args result -> let maybeAddParens = case context of Func -> Code.addParens App -> Code.addParens Other -> identity argsHtml = List.concatMap (\arg -> go Func arg ++ padded arrow) args in maybeAddParens (argsHtml ++ go Func result) Var name -> [ text name ] Apply name [] -> [ Name.toLink nameDict name ] Apply name args -> let maybeAddParens = case context of Func -> identity App -> Code.addParens Other -> identity argsHtml = List.concatMap (\arg -> space :: go App arg) args in maybeAddParens (Name.toLink nameDict name :: argsHtml) Tuple args -> List.map (go Other) args |> List.intersperse [text ", "] |> List.concat |> Code.addParens Record fields ext -> let fieldsHtml = List.map (fieldToHtml nameDict) fields |> List.intersperse [text ", "] |> List.concat recordInsides = case ext of Nothing -> fieldsHtml Just extName -> text extName :: text " | " :: fieldsHtml in text "{ " :: recordInsides ++ [text " }"] fieldToHtml : Name.Dictionary -> (String, Type) -> List Html fieldToHtml nameDict (field, tipe) = text field :: space :: colon :: space :: toHtml nameDict Other tipe -- TYPE LENGTH length : Context -> Type -> Int length context tipe = case tipe of Function args result -> let parens = case context of Func -> 2 App -> 2 Other -> 0 argLengths = List.map (\t -> 4 + length Func t) args in parens + List.sum argLengths + length Func result Var name -> String.length name Apply {name} [] -> String.length name Apply {name} args -> let parens = case context of Func -> 0 App -> 2 Other -> 0 argsLength = List.sum (List.map (\t -> 1 + length App t) args) in parens + String.length name + argsLength Tuple args -> List.sum (List.map (\t -> 2 + length Other t) args) Record fields ext -> let fieldLength (field, tipe) = String.length field + 3 + length Other tipe recordLength = 2 + List.sum (List.map (\ft -> 2 + fieldLength ft) fields) extLength = case ext of Nothing -> 0 Just extName -> 2 + String.length extName in recordLength + extLength ================================================ FILE: DocPreview/src/Docs/Version.elm ================================================ module Docs.Version ( Version , Dictionary , MinorPatch , decoder , filterInteresting , realMax , toDict , fromStringList , vsnToString ) where import Dict import Json.Decode as Json exposing (..) import String type alias Version = (Int, Int, Int) -- JSON DECODER decoder : Decoder Version decoder = customDecoder string fromString fromString : String -> Result String Version fromString str = case all (List.map String.toInt (String.split "." str)) of Ok [major, minor, patch] -> Ok (major, minor, patch) _ -> Err (str ++ " is not a valid Elm version") all : List (Result x a) -> Result x (List a) all list = case list of [] -> Ok [] x :: xs -> Result.map2 (::) x (all xs) fromStringList : List String -> Result String (List Version) fromStringList versions = all (List.map fromString versions) -- MAXIMUM realMax : String -> List String -> Maybe String realMax rawVsn allRawVsns = case Result.map2 (,) (fromString rawVsn) (fromStringList allRawVsns) of Ok (version, allVersions) -> let maxVersion = List.foldl max version allVersions in if version == maxVersion then Nothing else Just (vsnToString maxVersion) _ -> Nothing -- TO STRING vsnToString : Version -> String vsnToString (major, minor, patch) = toString major ++ "." ++ toString minor ++ "." ++ toString patch -- INTERESTING VERSIONS filterInteresting : List Version -> List Version filterInteresting versions = List.map (uncurry toLatest) (Dict.toList (toDict versions)) toLatest : Int -> MinorPatch -> Version toLatest major {latest} = let (minor, patch) = latest in (major, minor, patch) -- TO DICTIONARY type alias Dictionary = Dict.Dict Int MinorPatch type alias MinorPatch = { latest : (Int, Int) , others : List (Int, Int) } toDict : List Version -> Dictionary toDict versions = List.foldl toDictHelp Dict.empty versions toDictHelp : Version -> Dictionary -> Dictionary toDictHelp (major, minor, patch) dict = let current = (minor, patch) update maybeMinorPatch = case maybeMinorPatch of Nothing -> Just (MinorPatch current []) Just {latest, others} -> Just (MinorPatch (max latest current) (insert (min latest current) others)) in Dict.update major update dict insert : comparable -> List comparable -> List comparable insert y list = case list of [] -> [y] x :: xs -> if y > x then x :: insert y xs else y :: list ================================================ FILE: DocPreview/src/Native/Jump.js ================================================ Elm.Native.Jump = {}; Elm.Native.Jump.make = function(localRuntime) { localRuntime.Native = localRuntime.Native || {}; localRuntime.Native.Jump = localRuntime.Native.Jump || {}; if (localRuntime.Native.Jump.values) { return localRuntime.Native.Jump.values; } var Task = Elm.Native.Task.make(localRuntime); var jump = Task.asyncFunction(function(callback) { var hash = window.location.hash; if (hash.length > 0 && hash[0] === '#') { var id = hash.slice(1); var target = document.getElementById(id); if (typeof target.scrollIntoView === 'function') { target.scrollIntoView(true); } } return callback(Task.succeed({ ctor: '_Tuple0' })); }); return localRuntime.Native.Jump.values = { jump: jump }; }; ================================================ FILE: DocPreview/src/Native/Parse.js ================================================ Elm.Native.Parse = {}; Elm.Native.Parse.make = function(localRuntime) { localRuntime.Native = localRuntime.Native || {}; localRuntime.Native.Parse = localRuntime.Native.Parse || {}; if (localRuntime.Native.Parse.values) { return localRuntime.Native.Parse.values; } var List = Elm.Native.List.make(localRuntime); var Utils = Elm.Native.Utils.make(localRuntime); // HELPERS function ok(index, value) { return { ctor: 'Ok', _0: { index: index, value: value } }; } function err(msg) { return { ctor: 'Err', _0: msg }; } // BASICS function succeed(value) { return function(input, index) { return ok(index, value); }; } function fail(msg) { return function(input, index) { return err(msg); }; } // SATISFY function satisfy(isOk) { return function(input, index) { if (input.length <= index) { return err('ran out of characters'); } var chr = Utils.chr(input[index]); return isOk(chr) ? ok(index + 1, chr) : err("char '" + input[index] + "' at index " + index + " is not okay."); }; } function string(expected) { return function(input, index) { var nextIndex = index + expected.length; var actual = input.slice(index, nextIndex); return expected === actual ? ok(nextIndex, actual) : err("expecting '" + expected + "' at index " + index + " but instead saw '" + actual + "'."); }; } // ONE OF function oneOf(parserList) { var parsers = List.toArray(parserList); return function(input, index) { var len = parsers.length; for (var i = 0; i < len; ++i) { var result = parsers[i](input, index); if (result.ctor === 'Ok') { return result; } } return err('none of the parsers given to oneOf worked'); }; } // AND THEN function andThen(parser, callback) { return function(input, index) { var result = parser(input, index); if (result.ctor === 'Ok') { var newData = result._0; return callback(newData.value)(input, newData.index); } else { return result; } }; } // RUN function run(parser, input) { var result = parser(input, 0); if (result.ctor === 'Ok') { return { ctor: 'Ok', _0: result._0.value }; } else { return result; } } return localRuntime.Native.Parse.values = { succeed: succeed, fail: fail, satisfy: satisfy, string: string, oneOf: oneOf, andThen: F2(andThen), run: F2(run) }; }; ================================================ FILE: DocPreview/src/Parse/Combinators.elm ================================================ module Parse.Combinators where import Char import Native.Parse -- PARSERS type Parser a = P run : Parser a -> String -> Result String a run = Native.Parse.run -- CHARACTERS char : Char -> Parser Char char c = satisfy ((==) c) satisfy : (Char -> Bool) -> Parser Char satisfy = Native.Parse.satisfy lower : Parser Char lower = satisfy Char.isLower upper : Parser Char upper = satisfy Char.isUpper letter : Parser Char letter = satisfy (\c -> Char.isLower c || Char.isUpper c) digit : Parser Char digit = satisfy Char.isDigit -- STRINGS string : String -> Parser String string = Native.Parse.string {-- int : Parser Int int = Debug.crash "TODO" float : Parser Float float = Debug.crash "TODO" --} -- COMBINATORS oneOf : List (Parser a) -> Parser a oneOf = Native.Parse.oneOf try : Parser a -> Parser a try parser = parser succeed : a -> Parser a succeed = Native.Parse.succeed fail : String -> Parser a fail = Native.Parse.fail map : (a -> b) -> Parser a -> Parser b map func parser = parser `andThen` \a -> succeed (func a) map2 : (a -> b -> c) -> Parser a -> Parser b -> Parser c map2 func parserA parserB = parserA `andThen` \a -> parserB `andThen` \b -> succeed (func a b) map3 : (a -> b -> c -> d) -> Parser a -> Parser b -> Parser c -> Parser d map3 func parserA parserB parserC = parserA `andThen` \a -> parserB `andThen` \b -> parserC `andThen` \c -> succeed (func a b c) map4 : (a -> b -> c -> d -> e) -> Parser a -> Parser b -> Parser c -> Parser d -> Parser e map4 func parserA parserB parserC parserD = parserA `andThen` \a -> parserB `andThen` \b -> parserC `andThen` \c -> parserD `andThen` \d -> succeed (func a b c d) andThen : Parser a -> (a -> Parser b) -> Parser b andThen = Native.Parse.andThen zeroOrMore : Parser a -> Parser (List a) zeroOrMore parser = oneOf [ parser `andThen` \a -> map ((::) a) (zeroOrMore parser) , succeed [] ] oneOrMore : Parser a -> Parser (List a) oneOrMore parser = map2 (::) parser (zeroOrMore parser) lazy : (() -> Parser a) -> Parser a lazy thunk = succeed () `andThen` thunk ignore1 : Parser x -> Parser a -> Parser a ignore1 x parser = map2 (\_ a -> a) x parser ignore2 : Parser x -> Parser y -> Parser a -> Parser a ignore2 x y parser = map3 (\_ _ a -> a) x y parser ignore3 : Parser x -> Parser y -> Parser z -> Parser a -> Parser a ignore3 x y z parser = map4 (\_ _ _ a -> a) x y z parser middle : Parser x -> Parser a -> Parser y -> Parser a middle x parser y = map3 (\_ a _ -> a) x parser y ================================================ FILE: DocPreview/src/Parse/Type.elm ================================================ module Parse.Type (parse) where import Char import String import Parse.Combinators exposing (..) import Docs.Name as Name import Docs.Type exposing (Type(..)) -- PARSE parse : String -> Result String Type parse tipeString = run tipe tipeString -- HELPERS elmVarWith : Parser Char -> Parser String elmVarWith starter = map2 (::) starter (zeroOrMore varChar) |> map String.fromList varChar : Parser Char varChar = satisfy (\c -> Char.isLower c || Char.isUpper c || c == '_' || c == '\'' || Char.isDigit c) spaces : Parser () spaces = map (always ()) (zeroOrMore (char ' ')) commasLeading : Parser a -> Parser (List a) commasLeading parser = zeroOrMore (ignore3 spaces (char ',') spaces parser) -- TYPE VARIABLES var : Parser Type var = map Var (elmVarWith lower) -- TYPE APPLICATIONS name : Parser Name.Canonical name = nameHelp [] nameHelp : List String -> Parser Name.Canonical nameHelp seen = elmVarWith upper `andThen` \str -> oneOf [ ignore1 (char '.') (nameHelp (str :: seen)) , succeed (Name.Canonical (String.join "." (List.reverse seen)) str) ] apply : Parser Type apply = lazy <| \_ -> map2 Apply name (zeroOrMore (ignore1 spaces applyTerm)) applyTerm : Parser Type applyTerm = lazy <| \_ -> oneOf [ var, map (\n -> Apply n []) name, record, parenTipe ] -- RECORDS record : Parser Type record = lazy <| \_ -> middle (ignore1 (char '{') spaces) ( oneOf [ elmVarWith lower `andThen` recordHelp , succeed (Record [] Nothing) ] ) (ignore1 spaces (char '}')) recordHelp : String -> Parser Type recordHelp lowerName = lazy <| \_ -> ignore1 spaces <| oneOf [ map2 (\t rest -> Record ((lowerName, t) :: rest) Nothing) (ignore2 (char ':') spaces tipe) (commasLeading field) , map (\fields -> Record fields (Just lowerName)) (ignore2 (char '|') spaces (map2 (::) field (commasLeading field))) ] field : Parser (String, Type) field = lazy <| \_ -> map2 (,) (elmVarWith lower) (ignore3 spaces (char ':') spaces tipe) -- FUNCTIONS tipe : Parser Type tipe = lazy <| \_ -> map2 (buildFunction []) tipeTerm arrowTerms buildFunction : List Type -> Type -> List Type -> Type buildFunction args currentType remainingTypes = case remainingTypes of [] -> if List.isEmpty args then currentType else Function (List.reverse args) currentType t :: ts -> buildFunction (currentType :: args) t ts arrowTerms : Parser (List Type) arrowTerms = lazy <| \_ -> zeroOrMore (ignore3 spaces (string "->") spaces tipeTerm) tipeTerm : Parser Type tipeTerm = lazy <| \_ -> oneOf [ var, apply, record, parenTipe ] parenTipe : Parser Type parenTipe = lazy <| \_ -> map tuplize <| middle (ignore1 (char '(') spaces) (oneOf [ map2 (::) tipe (commasLeading tipe) , succeed [] ] ) (ignore1 spaces (char ')')) tuplize : List Type -> Type tuplize args = case args of [t] -> t _ -> Tuple args ================================================ FILE: DocPreview/src/Utils/Code.elm ================================================ module Utils.Code where import Html exposing (..) import Html.Attributes exposing (..) keyword : String -> Html keyword kw = span [class "hljs-keyword"] [text kw] addParens : List Html -> List Html addParens list = text "(" :: list ++ [text ")"] space : Html space = text " " padded : Html -> List Html padded html = [ space, html, space ] arrow : Html arrow = span [] [text "->"] colon : Html colon = span [] [text ":"] equals : Html equals = span [] [text "="] ================================================ FILE: DocPreview/src/Utils/FluidList.elm ================================================ module Utils.FluidList where import Html exposing (..) import Html.Attributes exposing (..) (=>) : a -> b -> ( a, b ) (=>) = (,) fluidList : String -> Int -> Int -> List (List Html) -> Html fluidList itemClass itemWidth maxColumns itemList = let toPx : Int -> String toPx num = toString num ++ "px" bulletStyle = [ "display" => "inline-block" , "width" => toPx itemWidth , "vertical-align" => "top" , "text-align" => "left" , "margin" => ("0 " ++ toPx gutter) ] gutter = 30 in section [style ["max-width" => toPx (itemWidth*maxColumns + 2*gutter*maxColumns), "margin" => "auto", "text-align" => "center", "margin-top" => "30px"]] (List.map (section [class itemClass, style bulletStyle]) itemList) ================================================ FILE: DocPreview/src/Utils/Markdown.elm ================================================ module Utils.Markdown (block) where import Html import Markdown block : String -> Html.Html block raw = Markdown.toHtmlWith myOptions raw myOptions : Markdown.Options myOptions = let options = Markdown.defaultOptions in { options | defaultHighlighting = Just "elm" } ================================================ FILE: DocPreview/src/Utils/Path.elm ================================================ module Utils.Path where import String hyphenate : String -> String hyphenate string = String.map (\c -> if c == '.' then '-' else c) string () : String -> String -> String () a b = a ++ "/" ++ b ================================================ FILE: LICENSE.md ================================================ The MIT License (MIT) ===================== Copyright (c) 2015 Magnus Rundberget Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ================================================ FILE: README.adoc ================================================ = Elm LightTable plugin ifdef::env-github[] :tip-caption: :bulb: :note-caption: :information_source: :important-caption: :heavy_exclamation_mark: :caution-caption: :fire: :warning-caption: :warning: endif::[] http://elm-lang.org/[Elm] language plugin for Light Table image:images/elm-light.png[] == Installation Install using the Light Table plugin manager. Alternatively you can clone it into `$LT_USER_HOME\plugins`. (If you know what you are doing, this is a great way to try out the latest and greatests not yet released !) == Preconditions * **LIghtTable 0.8-alpha or higher is required** * You will need to have the http://elm-lang.org/install[elm-platform] (there is also a npm installer out there) installed and the following should be in your path: ** https://github.com/elm-lang/elm-reactor[elm-reactor] ** https://github.com/elm-lang/elm-make[elm-make] ** https://github.com/elm-lang/elm-package[elm-package] ** https://github.com/elm-lang/elm-repl[elm-repl] * For all commands/features you will need to have a project folder with a `elm-package.json` file NOTE: Tested with Elm 0.18.0 and Elm 0.17.1 on OS/X 10.9.5, Ubuntu 14.04 and Windows 10. == Documentation Please see the https://rundis.gitbooks.io/elm-light-guide/content/[Guide] for a comprehensive documentaiton on how to use the plugin. == Resources * http://rundis.github.io/blog/2015/elm_light.html[ScreenCast] - Demo of the features available in the first release of the plugin * http://elm-lang.org/[elm-lang.org] - The home of Elm * https://github.com/LightTable/LightTable[Light Table] - Light Table on GitHub == Feature demos === Testing image:images/elm-light-test-teaser.gif[] === Inline docs and jump to image:images/ast_teaser.gif[] ==== Type aliases and records even image:images/elm-light_type_alias.gif[] ==== Yeah some destructuring support too ! image:images/destructuring.gif[] === Repl image:images/elm-light-repl.gif[] === Package Manager ==== Install package and start using at once image:images/pck_inst_and_use.gif[] === Package docs Preview package documentation inside Light Table. Updates on save. image:images/package_docs.gif[] === Module graph image:images/module-graph.gif[] == Contributing Pull requests are most welcome. Please do not include the transpiled files (*_compiled*) in the PR. == History * 0.5.1 Better destructuring support and a few bugfixes ** Support jump to, docs and autocompletions for common param destructuring cases ** Enhancement: Upgrade highlight.js for more accurate source highlighting in docs ** Enhancement: Adjust test folder default when initializing new test project ** Bugfix: Handle single-char region errors (previously wouldn't show up) ** Bugfix: Package doc preview now loads correct doc when multiple are generated by elm-make due to module deps * 0.5.0 Elm Test support is back (requires Elm 0.18). ** Features to set up new test project, run one, a modules or all tests in your project. Test results display in a visual test runner + in the console. ** Show popup if the plugin isn't able to find the elm binaries ** Show errors when there is a mismatch between your project version and the currently install Elm version on your machine ** Show popup if you try to use elm-format related features, but the plugin is unable to find the elm-format executable ** Attempted to provide better support for node installed Elm executables on Windows (using cross-spawn) ** Fixed a regression with the interactive repl features not working ** Adjusted the autocompleter for changes in default imports in Elm 0.18 * 0.4.2 ** Fixed a bug with faulty/erronous events from chokidar or it's underlying libs causing issues on Windows * 0.4.1 ** Fixed manual connect bug ** Auto completions for type alias params in function bodies ** Jump to and docs for type alias params in function bodies * 0.4.0 Introduction of AST based features. The plugin now parses your project Elm files (and 3rd party packages too) ** Added features *** Find usages *** Inline doc now renders the documentation markdown (your own docs included) *** You can Jump to definition and back *** Autocompleter suggests both for 3rd party imports as well as for you project imports *** Expose/unexpose declarations for a module *** Quick import module *** Sort imports ** Removed features *** Elm test related features have temporarily been removed. They will be rewritten to support the totally rewritten elm-test package *** Elm reactor debug command has been removed as elm-reactor doesn't support debugging in 0.17 * 0.3.8 Support code folding, fix autoclose brackets issue, scrollposition after format improvement * 0.3.7 Improved autocompleter implementation and added quick-fixes feature to Linter messages * 0.3.6 Added package doc preview feature ** Fixed bug with lint display at bottom of editor getting cut off * 0.3.5 Added module browser ** Bugfix: Display make errors (both make and linting) * 0.3.4 Updated to supprt elm-format 0.2-alpha ** Added format buffer (keeps unsaved changes) and format expression commands * 0.3.3 Fix compatibility with LT 0.8.1. Also tweaked the autocompletion to be a little faster and more accurate. * 0.3.2 Module aware autocomplete and remove leading pipes from repl results * 0.3.1 Added an inline project dependency graph (using d3) * 0.3.0 Added windows support. See github release notes for details * 0.2.0 Improved linting, introduced test support and support for elm-format * 0.1.3 Bugfix: Forgot to include react.js (used for rendering package ui) * 0.1.2 Package manager and 0.16.0 fix ** UI for managing your project packages. ** 0.16.0 fix: Remove ansi color codes from errors and warnings shown inline * 0.1.1 Maintenance release: ** Feature to select top level expressions ** Eval in repl with no selection automatically selects top level expression based on cursor position ** Syntax highlight multiline strings `"""` ** Allow user to select to browse file in reactor with or without debugger ** Fix: Allow reuse of released reactor ports ** Add tag :editor.elm.common to allow users to configure common behaviors/commands for repl and editors more easily * 0.1.0 Initial release == License MIT, same as Light Table. See LICENSE.md for details. ================================================ FILE: css/docpreview.css ================================================ /*.hljs { display: block; overflow-x: auto; padding: 0.5em; background: #f0f0f0; -webkit-text-size-adjust: none; }*/ .elm-doc-preview .hljs, .elm-doc-preview .hljs-subst, .elm-doc-preview .hljs-tag .hljs-title, .elm-doc-preview .nginx .hljs-title { color: black; } .elm-doc-preview .hljs-string, .elm-doc-preview .hljs-title, .elm-doc-preview .hljs-constant, .elm-doc-preview .hljs-parent, .elm-doc-preview .hljs-tag .hljs-value, .elm-doc-preview .hljs-rules .hljs-value, .elm-doc-preview .hljs-preprocessor, .elm-doc-preview .hljs-pragma, .elm-doc-preview .haml .hljs-symbol, .elm-doc-preview .ruby .hljs-symbol, .elm-doc-preview .ruby .hljs-symbol .hljs-string, .elm-doc-preview .hljs-template_tag, .elm-doc-preview .django .hljs-variable, .elm-doc-preview .smalltalk .hljs-class, .elm-doc-preview .hljs-addition, .elm-doc-preview .hljs-flow, .elm-doc-preview .hljs-stream, .elm-doc-preview .bash .hljs-variable, .elm-doc-preview .apache .hljs-tag, .elm-doc-preview .apache .hljs-cbracket, .elm-doc-preview .tex .hljs-command, .elm-doc-preview .tex .hljs-special, .elm-doc-preview .erlang_repl .hljs-function_or_atom, .elm-doc-preview .asciidoc .hljs-header, .elm-doc-preview .markdown .hljs-header, .elm-doc-preview .coffeescript .hljs-attribute { color: #800; } .elm-doc-preview .smartquote, .elm-doc-preview .hljs-comment, .elm-doc-preview .hljs-annotation, .elm-doc-preview .diff .hljs-header, .elm-doc-preview .hljs-chunk, .elm-doc-preview .asciidoc .hljs-blockquote, .elm-doc-preview .markdown .hljs-blockquote { color: #888; } .elm-doc-preview .hljs-number, .elm-doc-preview .hljs-date, .elm-doc-preview .hljs-regexp, .elm-doc-preview .hljs-literal, .elm-doc-preview .hljs-hexcolor, .elm-doc-preview .smalltalk .hljs-symbol, .elm-doc-preview .smalltalk .hljs-char, .elm-doc-preview .go .hljs-constant, .elm-doc-preview .hljs-change, .elm-doc-preview .lasso .hljs-variable, .elm-doc-preview .makefile .hljs-variable, .elm-doc-preview .asciidoc .hljs-bullet, .elm-doc-preview .markdown .hljs-bullet, .elm-doc-preview .asciidoc .hljs-link_url, .elm-doc-preview .markdown .hljs-link_url { color: #080; } .elm-doc-preview .hljs-label, .elm-doc-preview .hljs-javadoc, .elm-doc-preview .ruby .hljs-string, .elm-doc-preview .hljs-decorator, .elm-doc-preview .hljs-filter .hljs-argument, .elm-doc-preview .hljs-localvars, .elm-doc-preview .hljs-array, .elm-doc-preview .hljs-attr_selector, .elm-doc-preview .hljs-important, .elm-doc-preview .hljs-pseudo, .elm-doc-preview .hljs-pi, .elm-doc-preview .haml .hljs-bullet, .elm-doc-preview .hljs-doctype, .elm-doc-preview .hljs-deletion, .elm-doc-preview .hljs-envvar, .elm-doc-preview .hljs-shebang, .elm-doc-preview .apache .hljs-sqbracket, .elm-doc-preview .nginx .hljs-built_in, .elm-doc-preview .tex .hljs-formula, .elm-doc-preview .erlang_repl .hljs-reserved, .elm-doc-preview .hljs-prompt, .elm-doc-preview .asciidoc .hljs-link_label, .elm-doc-preview .markdown .hljs-link_label, .elm-doc-preview .vhdl .hljs-attribute, .elm-doc-preview .clojure .hljs-attribute, .elm-doc-preview .asciidoc .hljs-attribute, .elm-doc-preview .lasso .hljs-attribute, .elm-doc-preview .coffeescript .hljs-property, .elm-doc-preview .hljs-phony { color: #88f; } .elm-doc-preview .hljs-keyword, .elm-doc-preview .hljs-id, .elm-doc-preview .hljs-title, .elm-doc-preview .hljs-built_in, .elm-doc-preview .css .hljs-tag, .elm-doc-preview .hljs-javadoctag, .elm-doc-preview .hljs-phpdoc, .elm-doc-preview .hljs-dartdoc, .elm-doc-preview .hljs-yardoctag, .elm-doc-preview .smalltalk .hljs-class, .elm-doc-preview .hljs-winutils, .elm-doc-preview .bash .hljs-variable, .elm-doc-preview .apache .hljs-tag, .elm-doc-preview .hljs-type, .elm-doc-preview .hljs-typename, .elm-doc-preview .tex .hljs-command, .elm-doc-preview .asciidoc .hljs-strong, .elm-doc-preview .markdown .hljs-strong, .elm-doc-preview .hljs-request, .elm-doc-preview .hljs-status { font-weight: bold; } .elm-doc-preview .asciidoc .hljs-emphasis, .elm-doc-preview .markdown .hljs-emphasis { font-style: italic; } .elm-doc-preview .nginx .hljs-built_in { font-weight: normal; } .elm-doc-preview .coffeescript .javascript, .elm-doc-preview .javascript .xml, .elm-doc-preview .lasso .markup, .elm-doc-preview .tex .hljs-formula, .elm-doc-preview .xml .javascript, .elm-doc-preview .xml .vbscript, .elm-doc-preview .xml .css, .elm-doc-preview .xml .hljs-cdata { opacity: 0.5; } /* Orginal Style from ethanschoonover.com/solarized (c) Jeremy Hull */ .elm-doc-preview .hljs { display: block; overflow-x: auto; padding: 0.5em; background: rgb(254,254,254); border-color: rgb(245,245,245); border-radius: 6px; color: #657b83; -webkit-text-size-adjust: none; } .elm-doc-preview .hljs-comment, .elm-doc-preview .diff .hljs-header, .elm-doc-preview .hljs-doctype, .elm-doc-preview .hljs-pi, .elm-doc-preview .lisp .hljs-string, .elm-doc-preview .hljs-javadoc { color: #93a1a1; } /* Solarized Green */ .elm-doc-preview .hljs-keyword, .elm-doc-preview .hljs-winutils, .elm-doc-preview .method, .elm-doc-preview .hljs-addition, .elm-doc-preview .css .hljs-tag, .elm-doc-preview .hljs-request, .elm-doc-preview .hljs-status, .elm-doc-preview .nginx .hljs-title { color: #859900; } /* Solarized Cyan */ .elm-doc-preview .hljs-number, .elm-doc-preview .hljs-command, .elm-doc-preview .hljs-string, .elm-doc-preview .hljs-tag .hljs-value, .elm-doc-preview .hljs-rules .hljs-value, .elm-doc-preview .hljs-phpdoc, .elm-doc-preview .hljs-dartdoc, .elm-doc-preview .tex .hljs-formula, .elm-doc-preview .hljs-regexp, .elm-doc-preview .hljs-hexcolor, .elm-doc-preview .hljs-link_url { color: #2aa198; } /* Solarized Blue */ .elm-doc-preview .hljs-title, .elm-doc-preview .hljs-localvars, .elm-doc-preview .hljs-chunk, .elm-doc-preview .hljs-decorator, .elm-doc-preview .hljs-built_in, .elm-doc-preview .hljs-identifier, .elm-doc-preview .vhdl .hljs-literal, .elm-doc-preview .hljs-id, .elm-doc-preview .css .hljs-function { color: #268bd2; } /* Solarized Yellow */ .elm-doc-preview .hljs-attribute, .elm-doc-preview .hljs-variable, .elm-doc-preview .lisp .hljs-body, .elm-doc-preview .smalltalk .hljs-number, .elm-doc-preview .hljs-constant, .elm-doc-preview .hljs-class .hljs-title, .elm-doc-preview .hljs-parent, .elm-doc-preview .hljs-type, .elm-doc-preview .hljs-link_reference { color: #b58900; } /* Solarized Orange */ .elm-doc-preview .hljs-preprocessor, .elm-doc-preview .hljs-preprocessor .hljs-keyword, .elm-doc-preview .hljs-pragma, .elm-doc-preview .hljs-shebang, .elm-doc-preview .hljs-symbol, .elm-doc-preview .hljs-symbol .hljs-string, .elm-doc-preview .diff .hljs-change, .elm-doc-preview .hljs-special, .elm-doc-preview .hljs-attr_selector, .elm-doc-preview .hljs-subst, .elm-doc-preview .hljs-cdata, .elm-doc-preview .css .hljs-pseudo, .elm-doc-preview .hljs-header { color: #cb4b16; } /* Solarized Red */ .elm-doc-preview .hljs-deletion, .elm-doc-preview .hljs-important { color: #dc322f; } /* Solarized Violet */ .elm-doc-preview .hljs-link_label { color: #6c71c4; } .elm-doc-preview .tex .hljs-formula { background: #eee8d5; } .elm-doc-preview { font-family: 'Source Sans Pro', 'Trebuchet MS', 'Lucida Grande', 'Bitstream Vera Sans', 'Helvetica Neue', sans-serif; color: #293c4b; background-color: white; padding: 10px; overflow: auto; } .elm-doc-preview h1, .elm-doc-preview h2, .elm-doc-preview h3, .elm-doc-preview h4 { font-weight: normal; } .elm-doc-preview .entry-list { width: 600px; display: inline-block; vertical-align: top; } .elm-doc-preview .entry-list-title { font-size: 3em; } .elm-doc-preview .markdown-entry h1 { margin-top: 2em; margin-bottom: 0.5px } .elm-doc-preview .docs-entry { border-top: 1px solid #eeeeee; margin-top: 1em; margin-bottom: 2em; } .elm-doc-preview .docs-annotation { white-space: pre; font-family: 'Source Code Pro', consolas, inconsolata, monospace; padding-top: 10px; padding-bottom: 10px; } .elm-doc-preview .docs-comment { overflow: hidden; padding-left: 1em; } .elm-doc-preview code { font-family: 'Source Code Pro', consolas, inconsolata, monospace; background-color: rgb(254,254,254); } .elm-doc-preview pre { margin: 0; padding: 10px; background-color: rgb(254,254,254); border-style: solid; border-width: 1px; border-color: rgb(245,245,245); border-radius: 6px; overflow-x: auto; font-family: 'Source Code Pro', consolas, inconsolata, monospace; } .elm-doc-preview .markdown-entry h1 { font-size: 2em; margin-top: 2em; margin-bottom: 0.5px } .elm-doc-preview .markdown-entry h2 { display: block; font-size: 1.5em; } .elm-doc-preview a { color: #1184CE; text-decoration: none; } .elm-doc-preview a:hover { text-decoration: underline; color: rgb(234,21,122); } .elm-doc-preview p, .elm-doc-preview li { line-height: 1.5em; } .elm-doc-preview i, .elm-doc-preview cite, .elm-doc-preview em, .elm-doc-preview var, .elm-doc-preview address, .elm-doc-preview dfn { font-style: italic; } .elm-doc-preview ul { list-style: disc; -webkit-margin-before: 1em; -webkit-margin-after: 1em; -webkit-margin-start: 0px; -webkit-margin-end: 0px; -webkit-padding-start: 40px; } .elm-doc-preview ol { -webkit-margin-before: 1em; -webkit-margin-after: 1em; -webkit-margin-start: 0px; -webkit-margin-end: 0px; -webkit-padding-start: 40px; } ================================================ FILE: css/elm.css ================================================ /* linting */ .package-table { padding-bottom: 10px; } .package-table > tbody > tr:first-child { line-height: 20px; } .package-table th { border-bottom: 2px solid red; font-weight: bold; } .package-table td, .package-table th { padding: 2px 8px 2px 4px; } .project-packages button { border: 2px darkgray solid; padding: 4px; background: inherit; } .project-packages .link:hover { text-decoration: underline; cursor: hand; } .add-package { margin-top: 10px; /*border: 1px solid red;*/ } .add-package h3 { font-size: 16px; } .form-row label { display: block; margin-right: 10px; } .add-package :focus { /* -webkit-focus-ring-color = '#5B9DD9' */ outline: -webkit-focus-ring-color auto 5px; } .add-package select { font-size: inherit; font-family: inherit; color: white; background: #616161; border: 1px solid #616161; padding: 4px; } .add-package .versions { margin-left: 10px; } .add-package .btn { margin-left: 10px; } .autocomplete-dropdown { position: relative; } .autocomplete-dropdown-menu { position: absolute; top: 100%; left: 0px; display: block; background: #3b3f41; max-height: 300px; width: 250px; overflow: auto; -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, .175); box-shadow: 0 6px 12px rgba(0, 0, 0, .175); } .autocomplete-dropdown-item { padding: 0 4px 0 4px; } .autocomplete-active { background: #616161; color: #f4f4f4; } .autocomplete-dropdown-item.row:hover {cursor: pointer; cursor: hand;} /** Linter specifix styling **/ /* .CodeMirror .lint-error { border-bottom: 3px solid darkred; background-color: inherit; } */ .CodeMirror .lint-warning, .CodeMirror .lint-error { border-bottom:2px dotted; display: inline-block; position: relative; } .CodeMirror .lint-warning:after, .CodeMirror .lint-error:after { content: ''; height: 5px; width: 100%; border-bottom: 2px dotted; position: absolute; bottom: -3px; left: -2px; } .CodeMirror .lint-error, .CodeMirror .lint-error:after { border-bottom-color: red; } .CodeMirror .lint-warning, .CodeMirror .lint-warning:after { border-bottom-color: #FFFFCC; } /* Override Inline doc */ div.inline-doc h2 { font-size: 100%; } div.inline-doc h3 { font-size: 90%; font-weight: 600; border-bottom: none; } div.linter-res { z-index: 1000; top: 100%; left: 0px; display:block; position:absolute; overflow:hidden; box-sizing:border-box; padding: 5px; margin-bottom: 50px; /* to handle "high" errors getting clipped when at bottom of editor*/ -webkit-user-select: text; } span.lint-status, span.ast-status { padding: 0 5px 0 5px; -webkit-border-radius: 5px; display: block; opacity: 0.8; } span.ast-status.ok { background-color: #7CAB80; color: #B9FBBE; } div.linter-res.error, span.lint-status.error, span.ast-status.error { background: #73404c; color: #ffa6a6; } div.linter-res.warning, span.lint-status.warning { background: #FFFFCC; color: #7f8000; } div.linter-res.open { display:block; } div.linter-res .title { font-weight: bold; padding-bottom: 5px; text-decoration: underline; } div.linter-res span.button { display:inline-block; padding: 3px; margin-top: 5px; margin-left: 3px; } #elm-module-browser p.binding { color: #ccc; font-size: 8pt; font-style: italic; } #elm-module-browser input { width: 100% } div.elmrepl .main { height:100%; width:100%; float:left; border-radius:0; box-sizing:border-box; } /* Elm gutter */ div.elm-gutter { background-color: inherit; text-align: center; } div.elm-gutter-marker { color:inherit; background-color: inherit; padding-left: 2px; opacity: 0.6; } /* Hinter customization */ .elm-completion .display-text, .elm-completion .module { display: inline-block; line-height:inherit; } .elm-completion .display-text { width: 20em; overflow-x: hidden; text-overflow: ellipsis; } .elm-completion .module { opacity: 0.5; height:auto; vertical-align:top; } .elm-completion .module:not(:empty) { padding-right: 5px; padding-left: 5px; } /* Selector */ div.elm-select { position: relative; display: inline-block; background: #3b3f41; padding:0; margin: 0; } div.elm-select select { -webkit-appearance:none; vertical-align: top; font-size: inherit; font-family: inherit; font-size: 110%; color: white; background: #3b3f41; border: 1px solid #3b3f41; padding: 2px; max-height: 20em; } /* Find usages overrides */ .search-results.elm-usages .line { width: 60px; } .search-results.elm-usages .res { bottom: 75px; border-bottom: 1px outset; } .search-results.elm-usages .searcher .link { font-weight: 700; } .search-results.elm-usages .searcher .link:hover { cursor: hand; text-decoration: underline; } .search-results.elm-usages .signature { opacity: 0.8; color: #c7e6ff } /* loader animation */ .bubblingG { text-align: center; width:78px; height:49px; margin: auto; } .bubblingG span { display: inline-block; vertical-align: middle; width: 10px; height: 10px; margin: 24px auto; background: rgb(0,0,0); border-radius: 49px; -webkit-border-radius: 49px; animation: bubblingG 1.5s infinite alternate; -webkit-animation: bubblingG 1.5s infinite alternate; } #bubblingG_1 { animation-delay: 0s; -webkit-animation-delay: 0s; } #bubblingG_2 { animation-delay: 0.45s; -webkit-animation-delay: 0.45s; } #bubblingG_3 { animation-delay: 0.9s; -webkit-animation-delay: 0.9s; } @keyframes bubblingG { 0% { width: 10px; height: 10px; background-color:rgb(0,0,0); transform: translateY(0); } 100% { width: 23px; height: 23px; background-color:rgb(255,255,255); transform: translateY(-20px); } } @-webkit-keyframes bubblingG { 0% { width: 10px; height: 10px; background-color:rgb(0,0,0); -webkit-transform: translateY(0); } 100% { width: 23px; height: 23px; background-color:rgb(255,255,255); -webkit-transform: translateY(-20px); } } ================================================ FILE: css/graph.css ================================================ div.graph { width: 100%; height: 100%; } .graph .filters { border-bottom: 1px solid; padding-bottom: 10px; margin: 10px; } .graph select { vertical-align: top; font-size: inherit; font-family: inherit; color: white; background: #3b3f41; border: 1px solid #3b3f41; padding: 2px; max-height: 20em; } .graph .filters .filter + .filter { margin-left: 10px; } .dependency-graph svg { background-color: inherit; } .dependency-graph .node rect, .dependency-graph .node ellipse, .module-graph .node rect { stroke: white; stroke-width: 1.5px; fill: #ccc; } .dependency-graph .edgeLabel { fill: #ccc; } .dependency-graph .edgeLabel rect { fill: #ccc; } .dependency-graph .edgePath, .module-graph .edgePath { stroke: white; stroke-width: 1.5px; fill: none; } div.graph-label { padding: 3px; text-align:center; color: black; } div.graph-label ul { border-top: 1px solid; text-align:left; } .module-graph .node rect:has (> graph-label.highlight) { background-color: yellow; } div.graph-label.error { color: #ffa6a6; } div.graph-label.clickable { font-weight: bold; } .clickable:hover { text-decoration: underline; cursor: hand; } ================================================ FILE: css/hinter.css ================================================ .CodeMirror-hint-active { background: #616161; color: #f4f4f4; } .CodeMirror-hint em { font-weight: bold; color: #c7e6ff; } ================================================ FILE: css/inlinedoc.css ================================================ .hljs { display: block; overflow-x: auto; padding: 0.5em; background: inherit; -webkit-text-size-adjust: none; } .elm-inline-doc .hljs, .elm-inline-doc .hljs-subst, .elm-inline-doc .hljs-tag .hljs-title, .elm-inline-doc .nginx .hljs-title { color: black; } .elm-inline-doc .hljs-string, .elm-inline-doc .hljs-title, .elm-inline-doc .hljs-constant, .elm-inline-doc .hljs-parent, .elm-inline-doc .hljs-tag .hljs-value, .elm-inline-doc .hljs-rules .hljs-value, .elm-inline-doc .hljs-preprocessor, .elm-inline-doc .hljs-pragma, .elm-inline-doc .haml .hljs-symbol, .elm-inline-doc .ruby .hljs-symbol, .elm-inline-doc .ruby .hljs-symbol .hljs-string, .elm-inline-doc .hljs-template_tag, .elm-inline-doc .django .hljs-variable, .elm-inline-doc .smalltalk .hljs-class, .elm-inline-doc .hljs-addition, .elm-inline-doc .hljs-flow, .elm-inline-doc .hljs-stream, .elm-inline-doc .bash .hljs-variable, .elm-inline-doc .apache .hljs-tag, .elm-inline-doc .apache .hljs-cbracket, .elm-inline-doc .tex .hljs-command, .elm-inline-doc .tex .hljs-special, .elm-inline-doc .erlang_repl .hljs-function_or_atom, .elm-inline-doc .asciidoc .hljs-header, .elm-inline-doc .markdown .hljs-header, .elm-inline-doc .coffeescript .hljs-attribute { color: #800; } .elm-inline-doc .smartquote, .elm-inline-doc .hljs-comment, .elm-inline-doc .hljs-annotation, .elm-inline-doc .diff .hljs-header, .elm-inline-doc .hljs-chunk, .elm-inline-doc .asciidoc .hljs-blockquote, .elm-inline-doc .markdown .hljs-blockquote { color: #888; } .elm-inline-doc .hljs-number, .elm-inline-doc .hljs-date, .elm-inline-doc .hljs-regexp, .elm-inline-doc .hljs-literal, .elm-inline-doc .hljs-hexcolor, .elm-inline-doc .smalltalk .hljs-symbol, .elm-inline-doc .smalltalk .hljs-char, .elm-inline-doc .go .hljs-constant, .elm-inline-doc .hljs-change, .elm-inline-doc .lasso .hljs-variable, .elm-inline-doc .makefile .hljs-variable, .elm-inline-doc .asciidoc .hljs-bullet, .elm-inline-doc .markdown .hljs-bullet, .elm-inline-doc .asciidoc .hljs-link_url, .elm-inline-doc .markdown .hljs-link_url { color: #080; } .elm-inline-doc .hljs-label, .elm-inline-doc .hljs-javadoc, .elm-inline-doc .ruby .hljs-string, .elm-inline-doc .hljs-decorator, .elm-inline-doc .hljs-filter .hljs-argument, .elm-inline-doc .hljs-localvars, .elm-inline-doc .hljs-array, .elm-inline-doc .hljs-attr_selector, .elm-inline-doc .hljs-important, .elm-inline-doc .hljs-pseudo, .elm-inline-doc .hljs-pi, .elm-inline-doc .haml .hljs-bullet, .elm-inline-doc .hljs-doctype, .elm-inline-doc .hljs-deletion, .elm-inline-doc .hljs-envvar, .elm-inline-doc .hljs-shebang, .elm-inline-doc .apache .hljs-sqbracket, .elm-inline-doc .nginx .hljs-built_in, .elm-inline-doc .tex .hljs-formula, .elm-inline-doc .erlang_repl .hljs-reserved, .elm-inline-doc .hljs-prompt, .elm-inline-doc .asciidoc .hljs-link_label, .elm-inline-doc .markdown .hljs-link_label, .elm-inline-doc .vhdl .hljs-attribute, .elm-inline-doc .clojure .hljs-attribute, .elm-inline-doc .asciidoc .hljs-attribute, .elm-inline-doc .lasso .hljs-attribute, .elm-inline-doc .coffeescript .hljs-property, .elm-inline-doc .hljs-phony { color: #88f; } .elm-inline-doc .hljs-keyword, .elm-inline-doc .hljs-id, .elm-inline-doc .hljs-title, .elm-inline-doc .hljs-built_in, .elm-inline-doc .css .hljs-tag, .elm-inline-doc .hljs-javadoctag, .elm-inline-doc .hljs-phpdoc, .elm-inline-doc .hljs-dartdoc, .elm-inline-doc .hljs-yardoctag, .elm-inline-doc .smalltalk .hljs-class, .elm-inline-doc .hljs-winutils, .elm-inline-doc .bash .hljs-variable, .elm-inline-doc .apache .hljs-tag, .elm-inline-doc .hljs-type, .elm-inline-doc .hljs-typename, .elm-inline-doc .tex .hljs-command, .elm-inline-doc .asciidoc .hljs-strong, .elm-inline-doc .markdown .hljs-strong, .elm-inline-doc .hljs-request, .elm-inline-doc .hljs-status { font-weight: bold; } .elm-inline-doc .asciidoc .hljs-emphasis, .elm-inline-doc .markdown .hljs-emphasis { font-style: italic; } .elm-inline-doc .nginx .hljs-built_in { font-weight: normal; } .elm-inline-doc .coffeescript .javascript, .elm-inline-doc .javascript .xml, .elm-inline-doc .lasso .markup, .elm-inline-doc .tex .hljs-formula, .elm-inline-doc .xml .javascript, .elm-inline-doc .xml .vbscript, .elm-inline-doc .xml .css, .elm-inline-doc .xml .hljs-cdata { opacity: 0.5; } .elm-inline-doc { margin-top: 1em; font-family: inherit; color: inherit; background-color: inherit; } .elm-inline-doc h1, .elm-inline-doc h2, .elm-inline-doc h3, .elm-inline-doc h4 { font-weight: normal; } .elm-inline-doc code { color: #c7e6ff; } .elm-inline-doc code:hover { text-decoration: none; } .elm-inline-doc pre > code { font-family: 'Source Code Pro', consolas, inconsolata, monospace; background-color: #c7e6ff; } .elm-inline-doc blockquote p { padding: 0 1em; font-style: italic; border-left: 0.25em solid gray; } .underline-result .elm-inline-doc > pre { margin: 0px 0px 10px 0px; padding: 10px; background-color: inherit; /*rgb(254,254,254);*/ border-style: solid; border-width: 1px; border-color: rgb(245,245,245); border-radius: 6px; font-family: 'Source Code Pro', consolas, inconsolata, monospace; } .elm-inline-doc a { color: white; text-decoration: none; } .elm-inline-doc a:hover { text-decoration: underline; } .elm-inline-doc p, .elm-inline-doc li { line-height: inherit; } .elm-inline-doc i, .elm-inline-doc cite, .elm-inline-doc em, .elm-inline-doc var, .elm-inline-doc address, .elm-inline-doc dfn { font-style: italic; } .elm-inline-doc ul li, .elm-inline-doc ol li { line-height: 0.8em; } .elm-inline-doc ul { list-style: disc; line-height: 0.9em; -webkit-margin-before: 1em; -webkit-margin-after: 1em; -webkit-margin-start: 0px; -webkit-margin-end: 0px; -webkit-padding-start: 30px; } .elm-inline-doc ol { line-height: 0.9em; -webkit-margin-before: 1em; -webkit-margin-after: 1em; -webkit-margin-start: 0px; -webkit-margin-end: 0px; -webkit-padding-start: 30px; } ================================================ FILE: css/test.css ================================================ .elmtest-dashboard { padding: 10px; } .elmtest-dashboard h2 { font-size: 125%; } .elmtest-dashboard .curr-test { margin-top: 5px; } .elmtest-dashboard .result-container { margin-top: 15px; } .elmtest-dashboard .test-failures { position: relative; overflow: hidden; width: 100%; height: 100%; margin-top: 10px; box-sizing:border-box; } .elmtest-dashboard .test-failures > ul { border-top: 1px solid darkgray; overflow: scroll; left: 1px; right:1px; bottom: 130px; top: 30px; overflow: auto; padding-top: 8px; position: absolute; } .elmtest-dashboard .test-failures > ul > li { padding-bottom: 10px; padding-top: 10px; } .elmtest-dashboard .test-failures > ul > li > ul > li > .test-label { color: #7ffffd; } .elmtest-dashboard .test-failures > ul > li > ul { color: #ccc; } /*.elmtest-dashboard .test-failures > ul > li:nth-child(even) { background: inherit; }*/ .elmtest-dashboard .test-failures > ul > li > ul li ul { margin-left : 10px; margin-top: 5px; } .elmtest-dashboard .test-failures > ul > li pre { margin-left: 20px; opacity: 0.8; } .elmtest-dashboard .test-failures .given { margin-left: 10px; } .elmtest-dashboard .summary-item { display: inline-block; width: 150px; } .elmtest-dashboard .summary-item span {padding-left: 5px;} .elmtest-dashboard .test-progress progress, .test-progress progress[role] { -webkit-appearance: none; } .test-progress progress { width: 100%; } /* Polyfill */ .test-progress progress[role]:after { background-image: none; } .elmtest-dashboard .test-progress progress.ok::-webkit-progress-value { background: #7CAB80; } .test-progress progress.error::-webkit-progress-value { background: #FF5357; } ================================================ FILE: elm/ModuleBrowser/ModuleBrowser.elm ================================================ module ModuleBrowser (..) where import Html exposing (Html, text, ul, li, div, input, p) import Html.Attributes exposing (value, style, class, type', placeholder) import Html.Events exposing (on, onClick, onWithOptions, targetValue, keyCode) import StartApp import Effects exposing (Effects, Never) import String import Json.Decode as Json import List.Extra as ListX import Dict import Signal import Task type alias Model = { allModules : List Modul , filteredModules : List Modul , searchStr : String , selected : Maybe Modul } type alias Modul = { name : String , file : String , packageName : String , version : String } init : ( Model, Effects Action ) init = ( Model [] [] "" Nothing , Effects.none ) type Action = NoOp | Filter String | Prev | Next | Select | ClickSelect String | Close | Refresh (List Modul) update : Action -> Model -> ( Model, Effects Action ) update action model = case action of NoOp -> ( model, Effects.none ) Filter str -> let filtered = filterModules str model.allModules sel = List.head filtered in ( { model | searchStr = str , filteredModules = filtered , selected = sel } , Effects.none ) Prev -> ( { model | selected = prevModule model } , notifyChangeSelection ) Next -> ( { model | selected = nextModule model } , notifyChangeSelection ) Select -> case model.selected of Nothing -> ( model, Effects.none ) Just x -> ( model , notifySelect x.file ) ClickSelect file -> ( model , notifySelect file ) Close -> ( model, notifyClose ) Refresh modules -> ( Model modules modules "" (List.head modules) , Effects.none ) filterModules : String -> List Modul -> List Modul filterModules searchStr modules = let filtr mod = String.startsWith (String.toLower searchStr) (String.toLower mod.name) in List.filter filtr modules prevModule : Model -> Maybe Modul prevModule model = let prev i = if (i > 0) then ListX.getAt model.filteredModules (i - 1) else model.selected in selectModule prev model nextModule : Model -> Maybe Modul nextModule model = let nxt i = if (i < (List.length model.filteredModules) - 1) then ListX.getAt model.filteredModules (i + 1) else model.selected in selectModule nxt model selectModule : (Int -> Maybe Modul) -> Model -> Maybe Modul selectModule selFn model = let pipeM = flip Maybe.andThen selIndex sel = ListX.elemIndex sel model.filteredModules in model.selected |> pipeM selIndex |> pipeM selFn notifySelect : String -> Effects Action notifySelect file = Signal.send selectMailbox.address file |> Effects.task |> Effects.map (\_ -> NoOp) notifyChangeSelection : Effects Action notifyChangeSelection = Signal.send changeSelectionMailbox.address () |> Effects.task |> Effects.map (\_ -> NoOp) notifyClose : Effects Action notifyClose = Signal.send closeMailbox.address () |> Effects.task |> Effects.map (\_ -> NoOp) -- VIEW view : Signal.Address Action -> Model -> Html view address model = div [ class "filter-list" ] [ searchInputView address model , ul [] (List.map (\m -> itemView address m model) model.filteredModules) ] searchInputView : Signal.Address Action -> Model -> Html searchInputView address model = let options = { preventDefault = True, stopPropagation = False } keyActions = Dict.fromList [ ( 38, Prev ), ( 40, Next ), ( 13, Select ), ( 27, Close ) ] dec = (Json.customDecoder keyCode (\k -> if Dict.member k keyActions then Ok k else Err "not handling that key" ) ) handleKeydown k = Maybe.withDefault NoOp (Dict.get k keyActions) |> Signal.message address in input [ value model.searchStr , class "search" , type' "text" , placeholder "search" , on "input" targetValue (\str -> Signal.message address (Filter str)) , onWithOptions "keydown" options dec handleKeydown ] [] itemView : Signal.Address Action -> Modul -> Model -> Html itemView address mod model = let pipeM = flip Maybe.andThen itemClass = model.selected |> pipeM (\sel -> if (sel == mod) then Just "selected" else Nothing ) |> Maybe.withDefault "" in li [ class itemClass , onClick address (ClickSelect mod.file) ] [ p [] [ text mod.name ] , p [ class "binding" ] [ text (mod.packageName ++ " - " ++ mod.version) ] ] -- START-APP WIRING app : StartApp.App Model app = StartApp.start { init = init , update = update , view = view , inputs = [ modzSignal ] } main : Signal Html main = app.html -- PORTS port tasks : Signal (Task.Task Never ()) port tasks = app.tasks -- Inbound modzSignal : Signal Action modzSignal = Signal.map Refresh modzPort port modzPort : Signal (List Modul) -- Outbound selectMailbox : Signal.Mailbox String selectMailbox = Signal.mailbox "" port select : Signal String port select = selectMailbox.signal changeSelectionMailbox : Signal.Mailbox () changeSelectionMailbox = Signal.mailbox () port changeSelection : Signal () port changeSelection = changeSelectionMailbox.signal closeMailbox : Signal.Mailbox () closeMailbox = Signal.mailbox () port close : Signal () port close = closeMailbox.signal ================================================ FILE: elm/ModuleBrowser/ModuleBrowser.html ================================================
    Left
    Elm modul browser
    ================================================ FILE: elm/ModuleBrowser/elm-package.json ================================================ { "version": "1.0.0", "summary": "Elm project module browser for elm-light", "repository": "https://github.com/rundis/elm-light.git", "license": "MIT", "source-directories": [ "." ], "exposed-modules": [], "dependencies": { "circuithub/elm-list-extra": "3.9.0 <= v < 4.0.0", "elm-lang/core": "3.0.0 <= v < 4.0.0", "evancz/elm-html": "4.0.2 <= v < 5.0.0", "evancz/start-app": "2.0.2 <= v < 3.0.0", "evancz/elm-effects": "2.0.1 <= v < 3.0.0" }, "elm-version": "0.16.0 <= v < 0.17.0" } ================================================ FILE: elm/ModuleBrowser/moduleBrowser.js ================================================ var Elm = Elm || { Native: {} }; Elm.Native.Basics = {}; Elm.Native.Basics.make = function(localRuntime) { localRuntime.Native = localRuntime.Native || {}; localRuntime.Native.Basics = localRuntime.Native.Basics || {}; if (localRuntime.Native.Basics.values) { return localRuntime.Native.Basics.values; } var Utils = Elm.Native.Utils.make(localRuntime); function div(a, b) { return (a / b) | 0; } function rem(a, b) { return a % b; } function mod(a, b) { if (b === 0) { throw new Error('Cannot perform mod 0. Division by zero error.'); } var r = a % b; var m = a === 0 ? 0 : (b > 0 ? (a >= 0 ? r : r + b) : -mod(-a, -b)); return m === b ? 0 : m; } function logBase(base, n) { return Math.log(n) / Math.log(base); } function negate(n) { return -n; } function abs(n) { return n < 0 ? -n : n; } function min(a, b) { return Utils.cmp(a, b) < 0 ? a : b; } function max(a, b) { return Utils.cmp(a, b) > 0 ? a : b; } function clamp(lo, hi, n) { return Utils.cmp(n, lo) < 0 ? lo : Utils.cmp(n, hi) > 0 ? hi : n; } function xor(a, b) { return a !== b; } function not(b) { return !b; } function isInfinite(n) { return n === Infinity || n === -Infinity; } function truncate(n) { return n | 0; } function degrees(d) { return d * Math.PI / 180; } function turns(t) { return 2 * Math.PI * t; } function fromPolar(point) { var r = point._0; var t = point._1; return Utils.Tuple2(r * Math.cos(t), r * Math.sin(t)); } function toPolar(point) { var x = point._0; var y = point._1; return Utils.Tuple2(Math.sqrt(x * x + y * y), Math.atan2(y, x)); } return localRuntime.Native.Basics.values = { div: F2(div), rem: F2(rem), mod: F2(mod), pi: Math.PI, e: Math.E, cos: Math.cos, sin: Math.sin, tan: Math.tan, acos: Math.acos, asin: Math.asin, atan: Math.atan, atan2: F2(Math.atan2), degrees: degrees, turns: turns, fromPolar: fromPolar, toPolar: toPolar, sqrt: Math.sqrt, logBase: F2(logBase), negate: negate, abs: abs, min: F2(min), max: F2(max), clamp: F3(clamp), compare: Utils.compare, xor: F2(xor), not: not, truncate: truncate, ceiling: Math.ceil, floor: Math.floor, round: Math.round, toFloat: function(x) { return x; }, isNaN: isNaN, isInfinite: isInfinite }; }; Elm.Native.Port = {}; Elm.Native.Port.make = function(localRuntime) { localRuntime.Native = localRuntime.Native || {}; localRuntime.Native.Port = localRuntime.Native.Port || {}; if (localRuntime.Native.Port.values) { return localRuntime.Native.Port.values; } var NS; // INBOUND function inbound(name, type, converter) { if (!localRuntime.argsTracker[name]) { throw new Error( 'Port Error:\n' + 'No argument was given for the port named \'' + name + '\' with type:\n\n' + ' ' + type.split('\n').join('\n ') + '\n\n' + 'You need to provide an initial value!\n\n' + 'Find out more about ports here ' ); } var arg = localRuntime.argsTracker[name]; arg.used = true; return jsToElm(name, type, converter, arg.value); } function inboundSignal(name, type, converter) { var initialValue = inbound(name, type, converter); if (!NS) { NS = Elm.Native.Signal.make(localRuntime); } var signal = NS.input('inbound-port-' + name, initialValue); function send(jsValue) { var elmValue = jsToElm(name, type, converter, jsValue); setTimeout(function() { localRuntime.notify(signal.id, elmValue); }, 0); } localRuntime.ports[name] = { send: send }; return signal; } function jsToElm(name, type, converter, value) { try { return converter(value); } catch(e) { throw new Error( 'Port Error:\n' + 'Regarding the port named \'' + name + '\' with type:\n\n' + ' ' + type.split('\n').join('\n ') + '\n\n' + 'You just sent the value:\n\n' + ' ' + JSON.stringify(value) + '\n\n' + 'but it cannot be converted to the necessary type.\n' + e.message ); } } // OUTBOUND function outbound(name, converter, elmValue) { localRuntime.ports[name] = converter(elmValue); } function outboundSignal(name, converter, signal) { var subscribers = []; function subscribe(handler) { subscribers.push(handler); } function unsubscribe(handler) { subscribers.pop(subscribers.indexOf(handler)); } function notify(elmValue) { var jsValue = converter(elmValue); var len = subscribers.length; for (var i = 0; i < len; ++i) { subscribers[i](jsValue); } } if (!NS) { NS = Elm.Native.Signal.make(localRuntime); } NS.output('outbound-port-' + name, notify, signal); localRuntime.ports[name] = { subscribe: subscribe, unsubscribe: unsubscribe }; return signal; } return localRuntime.Native.Port.values = { inbound: inbound, outbound: outbound, inboundSignal: inboundSignal, outboundSignal: outboundSignal }; }; if (!Elm.fullscreen) { (function() { 'use strict'; var Display = { FULLSCREEN: 0, COMPONENT: 1, NONE: 2 }; Elm.fullscreen = function(module, args) { var container = document.createElement('div'); document.body.appendChild(container); return init(Display.FULLSCREEN, container, module, args || {}); }; Elm.embed = function(module, container, args) { var tag = container.tagName; if (tag !== 'DIV') { throw new Error('Elm.node must be given a DIV, not a ' + tag + '.'); } return init(Display.COMPONENT, container, module, args || {}); }; Elm.worker = function(module, args) { return init(Display.NONE, {}, module, args || {}); }; function init(display, container, module, args, moduleToReplace) { // defining state needed for an instance of the Elm RTS var inputs = []; /* OFFSET * Elm's time traveling debugger lets you pause time. This means * "now" may be shifted a bit into the past. By wrapping Date.now() * we can manage this. */ var timer = { programStart: Date.now(), now: function() { return Date.now(); } }; var updateInProgress = false; function notify(id, v) { if (updateInProgress) { throw new Error( 'The notify function has been called synchronously!\n' + 'This can lead to frames being dropped.\n' + 'Definitely report this to \n'); } updateInProgress = true; var timestep = timer.now(); for (var i = inputs.length; i--; ) { inputs[i].notify(timestep, id, v); } updateInProgress = false; } function setTimeout(func, delay) { return window.setTimeout(func, delay); } var listeners = []; function addListener(relevantInputs, domNode, eventName, func) { domNode.addEventListener(eventName, func); var listener = { relevantInputs: relevantInputs, domNode: domNode, eventName: eventName, func: func }; listeners.push(listener); } var argsTracker = {}; for (var name in args) { argsTracker[name] = { value: args[name], used: false }; } // create the actual RTS. Any impure modules will attach themselves to this // object. This permits many Elm programs to be embedded per document. var elm = { notify: notify, setTimeout: setTimeout, node: container, addListener: addListener, inputs: inputs, timer: timer, argsTracker: argsTracker, ports: {}, isFullscreen: function() { return display === Display.FULLSCREEN; }, isEmbed: function() { return display === Display.COMPONENT; }, isWorker: function() { return display === Display.NONE; } }; function swap(newModule) { removeListeners(listeners); var div = document.createElement('div'); var newElm = init(display, div, newModule, args, elm); inputs = []; return newElm; } function dispose() { removeListeners(listeners); inputs = []; } var Module = {}; try { Module = module.make(elm); checkInputs(elm); } catch (error) { if (typeof container.appendChild === "function") { container.appendChild(errorNode(error.message)); } else { console.error(error.message); } throw error; } if (display !== Display.NONE) { var graphicsNode = initGraphics(elm, Module); } var rootNode = { kids: inputs }; trimDeadNodes(rootNode); inputs = rootNode.kids; filterListeners(inputs, listeners); addReceivers(elm.ports); if (typeof moduleToReplace !== 'undefined') { hotSwap(moduleToReplace, elm); // rerender scene if graphics are enabled. if (typeof graphicsNode !== 'undefined') { graphicsNode.notify(0, true, 0); } } return { swap: swap, ports: elm.ports, dispose: dispose }; } function checkInputs(elm) { var argsTracker = elm.argsTracker; for (var name in argsTracker) { if (!argsTracker[name].used) { throw new Error( "Port Error:\nYou provided an argument named '" + name + "' but there is no corresponding port!\n\n" + "Maybe add a port '" + name + "' to your Elm module?\n" + "Maybe remove the '" + name + "' argument from your initialization code in JS?" ); } } } function errorNode(message) { var code = document.createElement('code'); var lines = message.split('\n'); code.appendChild(document.createTextNode(lines[0])); code.appendChild(document.createElement('br')); code.appendChild(document.createElement('br')); for (var i = 1; i < lines.length; ++i) { code.appendChild(document.createTextNode('\u00A0 \u00A0 ' + lines[i].replace(/ /g, '\u00A0 '))); code.appendChild(document.createElement('br')); } code.appendChild(document.createElement('br')); code.appendChild(document.createTextNode('Open the developer console for more details.')); return code; } //// FILTER SIGNALS //// // TODO: move this code into the signal module and create a function // Signal.initializeGraph that actually instantiates everything. function filterListeners(inputs, listeners) { loop: for (var i = listeners.length; i--; ) { var listener = listeners[i]; for (var j = inputs.length; j--; ) { if (listener.relevantInputs.indexOf(inputs[j].id) >= 0) { continue loop; } } listener.domNode.removeEventListener(listener.eventName, listener.func); } } function removeListeners(listeners) { for (var i = listeners.length; i--; ) { var listener = listeners[i]; listener.domNode.removeEventListener(listener.eventName, listener.func); } } // add receivers for built-in ports if they are defined function addReceivers(ports) { if ('title' in ports) { if (typeof ports.title === 'string') { document.title = ports.title; } else { ports.title.subscribe(function(v) { document.title = v; }); } } if ('redirect' in ports) { ports.redirect.subscribe(function(v) { if (v.length > 0) { window.location = v; } }); } } // returns a boolean representing whether the node is alive or not. function trimDeadNodes(node) { if (node.isOutput) { return true; } var liveKids = []; for (var i = node.kids.length; i--; ) { var kid = node.kids[i]; if (trimDeadNodes(kid)) { liveKids.push(kid); } } node.kids = liveKids; return liveKids.length > 0; } //// RENDERING //// function initGraphics(elm, Module) { if (!('main' in Module)) { throw new Error("'main' is missing! What do I display?!"); } var signalGraph = Module.main; // make sure the signal graph is actually a signal & extract the visual model if (!('notify' in signalGraph)) { signalGraph = Elm.Signal.make(elm).constant(signalGraph); } var initialScene = signalGraph.value; // Figure out what the render functions should be var render; var update; if (initialScene.ctor === 'Element_elm_builtin') { var Element = Elm.Native.Graphics.Element.make(elm); render = Element.render; update = Element.updateAndReplace; } else { var VirtualDom = Elm.Native.VirtualDom.make(elm); render = VirtualDom.render; update = VirtualDom.updateAndReplace; } // Add the initialScene to the DOM var container = elm.node; var node = render(initialScene); while (container.firstChild) { container.removeChild(container.firstChild); } container.appendChild(node); var _requestAnimationFrame = typeof requestAnimationFrame !== 'undefined' ? requestAnimationFrame : function(cb) { setTimeout(cb, 1000 / 60); } ; // domUpdate is called whenever the main Signal changes. // // domUpdate and drawCallback implement a small state machine in order // to schedule only 1 draw per animation frame. This enforces that // once draw has been called, it will not be called again until the // next frame. // // drawCallback is scheduled whenever // 1. The state transitions from PENDING_REQUEST to EXTRA_REQUEST, or // 2. The state transitions from NO_REQUEST to PENDING_REQUEST // // Invariants: // 1. In the NO_REQUEST state, there is never a scheduled drawCallback. // 2. In the PENDING_REQUEST and EXTRA_REQUEST states, there is always exactly 1 // scheduled drawCallback. var NO_REQUEST = 0; var PENDING_REQUEST = 1; var EXTRA_REQUEST = 2; var state = NO_REQUEST; var savedScene = initialScene; var scheduledScene = initialScene; function domUpdate(newScene) { scheduledScene = newScene; switch (state) { case NO_REQUEST: _requestAnimationFrame(drawCallback); state = PENDING_REQUEST; return; case PENDING_REQUEST: state = PENDING_REQUEST; return; case EXTRA_REQUEST: state = PENDING_REQUEST; return; } } function drawCallback() { switch (state) { case NO_REQUEST: // This state should not be possible. How can there be no // request, yet somehow we are actively fulfilling a // request? throw new Error( 'Unexpected draw callback.\n' + 'Please report this to .' ); case PENDING_REQUEST: // At this point, we do not *know* that another frame is // needed, but we make an extra request to rAF just in // case. It's possible to drop a frame if rAF is called // too late, so we just do it preemptively. _requestAnimationFrame(drawCallback); state = EXTRA_REQUEST; // There's also stuff we definitely need to draw. draw(); return; case EXTRA_REQUEST: // Turns out the extra request was not needed, so we will // stop calling rAF. No reason to call it all the time if // no one needs it. state = NO_REQUEST; return; } } function draw() { update(elm.node.firstChild, savedScene, scheduledScene); if (elm.Native.Window) { elm.Native.Window.values.resizeIfNeeded(); } savedScene = scheduledScene; } var renderer = Elm.Native.Signal.make(elm).output('main', domUpdate, signalGraph); // must check for resize after 'renderer' is created so // that changes show up. if (elm.Native.Window) { elm.Native.Window.values.resizeIfNeeded(); } return renderer; } //// HOT SWAPPING //// // Returns boolean indicating if the swap was successful. // Requires that the two signal graphs have exactly the same // structure. function hotSwap(from, to) { function similar(nodeOld, nodeNew) { if (nodeOld.id !== nodeNew.id) { return false; } if (nodeOld.isOutput) { return nodeNew.isOutput; } return nodeOld.kids.length === nodeNew.kids.length; } function swap(nodeOld, nodeNew) { nodeNew.value = nodeOld.value; return true; } var canSwap = depthFirstTraversals(similar, from.inputs, to.inputs); if (canSwap) { depthFirstTraversals(swap, from.inputs, to.inputs); } from.node.parentNode.replaceChild(to.node, from.node); return canSwap; } // Returns false if the node operation f ever fails. function depthFirstTraversals(f, queueOld, queueNew) { if (queueOld.length !== queueNew.length) { return false; } queueOld = queueOld.slice(0); queueNew = queueNew.slice(0); var seen = []; while (queueOld.length > 0 && queueNew.length > 0) { var nodeOld = queueOld.pop(); var nodeNew = queueNew.pop(); if (seen.indexOf(nodeOld.id) < 0) { if (!f(nodeOld, nodeNew)) { return false; } queueOld = queueOld.concat(nodeOld.kids || []); queueNew = queueNew.concat(nodeNew.kids || []); seen.push(nodeOld.id); } } return true; } }()); function F2(fun) { function wrapper(a) { return function(b) { return fun(a,b); }; } wrapper.arity = 2; wrapper.func = fun; return wrapper; } function F3(fun) { function wrapper(a) { return function(b) { return function(c) { return fun(a, b, c); }; }; } wrapper.arity = 3; wrapper.func = fun; return wrapper; } function F4(fun) { function wrapper(a) { return function(b) { return function(c) { return function(d) { return fun(a, b, c, d); }; }; }; } wrapper.arity = 4; wrapper.func = fun; return wrapper; } function F5(fun) { function wrapper(a) { return function(b) { return function(c) { return function(d) { return function(e) { return fun(a, b, c, d, e); }; }; }; }; } wrapper.arity = 5; wrapper.func = fun; return wrapper; } function F6(fun) { function wrapper(a) { return function(b) { return function(c) { return function(d) { return function(e) { return function(f) { return fun(a, b, c, d, e, f); }; }; }; }; }; } wrapper.arity = 6; wrapper.func = fun; return wrapper; } function F7(fun) { function wrapper(a) { return function(b) { return function(c) { return function(d) { return function(e) { return function(f) { return function(g) { return fun(a, b, c, d, e, f, g); }; }; }; }; }; }; } wrapper.arity = 7; wrapper.func = fun; return wrapper; } function F8(fun) { function wrapper(a) { return function(b) { return function(c) { return function(d) { return function(e) { return function(f) { return function(g) { return function(h) { return fun(a, b, c, d, e, f, g, h); }; }; }; }; }; }; }; } wrapper.arity = 8; wrapper.func = fun; return wrapper; } function F9(fun) { function wrapper(a) { return function(b) { return function(c) { return function(d) { return function(e) { return function(f) { return function(g) { return function(h) { return function(i) { return fun(a, b, c, d, e, f, g, h, i); }; }; }; }; }; }; }; }; } wrapper.arity = 9; wrapper.func = fun; return wrapper; } function A2(fun, a, b) { return fun.arity === 2 ? fun.func(a, b) : fun(a)(b); } function A3(fun, a, b, c) { return fun.arity === 3 ? fun.func(a, b, c) : fun(a)(b)(c); } function A4(fun, a, b, c, d) { return fun.arity === 4 ? fun.func(a, b, c, d) : fun(a)(b)(c)(d); } function A5(fun, a, b, c, d, e) { return fun.arity === 5 ? fun.func(a, b, c, d, e) : fun(a)(b)(c)(d)(e); } function A6(fun, a, b, c, d, e, f) { return fun.arity === 6 ? fun.func(a, b, c, d, e, f) : fun(a)(b)(c)(d)(e)(f); } function A7(fun, a, b, c, d, e, f, g) { return fun.arity === 7 ? fun.func(a, b, c, d, e, f, g) : fun(a)(b)(c)(d)(e)(f)(g); } function A8(fun, a, b, c, d, e, f, g, h) { return fun.arity === 8 ? fun.func(a, b, c, d, e, f, g, h) : fun(a)(b)(c)(d)(e)(f)(g)(h); } function A9(fun, a, b, c, d, e, f, g, h, i) { return fun.arity === 9 ? fun.func(a, b, c, d, e, f, g, h, i) : fun(a)(b)(c)(d)(e)(f)(g)(h)(i); } } Elm.Native = Elm.Native || {}; Elm.Native.Utils = {}; Elm.Native.Utils.make = function(localRuntime) { localRuntime.Native = localRuntime.Native || {}; localRuntime.Native.Utils = localRuntime.Native.Utils || {}; if (localRuntime.Native.Utils.values) { return localRuntime.Native.Utils.values; } // COMPARISONS function eq(l, r) { var stack = [{'x': l, 'y': r}]; while (stack.length > 0) { var front = stack.pop(); var x = front.x; var y = front.y; if (x === y) { continue; } if (typeof x === 'object') { var c = 0; for (var i in x) { ++c; if (i in y) { if (i !== 'ctor') { stack.push({ 'x': x[i], 'y': y[i] }); } } else { return false; } } if ('ctor' in x) { stack.push({'x': x.ctor, 'y': y.ctor}); } if (c !== Object.keys(y).length) { return false; } } else if (typeof x === 'function') { throw new Error('Equality error: general function equality is ' + 'undecidable, and therefore, unsupported'); } else { return false; } } return true; } // code in Generate/JavaScript.hs depends on the particular // integer values assigned to LT, EQ, and GT var LT = -1, EQ = 0, GT = 1, ord = ['LT', 'EQ', 'GT']; function compare(x, y) { return { ctor: ord[cmp(x, y) + 1] }; } function cmp(x, y) { var ord; if (typeof x !== 'object') { return x === y ? EQ : x < y ? LT : GT; } else if (x.isChar) { var a = x.toString(); var b = y.toString(); return a === b ? EQ : a < b ? LT : GT; } else if (x.ctor === '::' || x.ctor === '[]') { while (true) { if (x.ctor === '[]' && y.ctor === '[]') { return EQ; } if (x.ctor !== y.ctor) { return x.ctor === '[]' ? LT : GT; } ord = cmp(x._0, y._0); if (ord !== EQ) { return ord; } x = x._1; y = y._1; } } else if (x.ctor.slice(0, 6) === '_Tuple') { var n = x.ctor.slice(6) - 0; var err = 'cannot compare tuples with more than 6 elements.'; if (n === 0) return EQ; if (n >= 1) { ord = cmp(x._0, y._0); if (ord !== EQ) return ord; if (n >= 2) { ord = cmp(x._1, y._1); if (ord !== EQ) return ord; if (n >= 3) { ord = cmp(x._2, y._2); if (ord !== EQ) return ord; if (n >= 4) { ord = cmp(x._3, y._3); if (ord !== EQ) return ord; if (n >= 5) { ord = cmp(x._4, y._4); if (ord !== EQ) return ord; if (n >= 6) { ord = cmp(x._5, y._5); if (ord !== EQ) return ord; if (n >= 7) throw new Error('Comparison error: ' + err); } } } } } } return EQ; } else { throw new Error('Comparison error: comparison is only defined on ints, ' + 'floats, times, chars, strings, lists of comparable values, ' + 'and tuples of comparable values.'); } } // TUPLES var Tuple0 = { ctor: '_Tuple0' }; function Tuple2(x, y) { return { ctor: '_Tuple2', _0: x, _1: y }; } // LITERALS function chr(c) { var x = new String(c); x.isChar = true; return x; } function txt(str) { var t = new String(str); t.text = true; return t; } // GUID var count = 0; function guid(_) { return count++; } // RECORDS function update(oldRecord, updatedFields) { var newRecord = {}; for (var key in oldRecord) { var value = (key in updatedFields) ? updatedFields[key] : oldRecord[key]; newRecord[key] = value; } return newRecord; } // MOUSE COORDINATES function getXY(e) { var posx = 0; var posy = 0; if (e.pageX || e.pageY) { posx = e.pageX; posy = e.pageY; } else if (e.clientX || e.clientY) { posx = e.clientX + document.body.scrollLeft + document.documentElement.scrollLeft; posy = e.clientY + document.body.scrollTop + document.documentElement.scrollTop; } if (localRuntime.isEmbed()) { var rect = localRuntime.node.getBoundingClientRect(); var relx = rect.left + document.body.scrollLeft + document.documentElement.scrollLeft; var rely = rect.top + document.body.scrollTop + document.documentElement.scrollTop; // TODO: figure out if there is a way to avoid rounding here posx = posx - Math.round(relx) - localRuntime.node.clientLeft; posy = posy - Math.round(rely) - localRuntime.node.clientTop; } return Tuple2(posx, posy); } //// LIST STUFF //// var Nil = { ctor: '[]' }; function Cons(hd, tl) { return { ctor: '::', _0: hd, _1: tl }; } function list(arr) { var out = Nil; for (var i = arr.length; i--; ) { out = Cons(arr[i], out); } return out; } function range(lo, hi) { var list = Nil; if (lo <= hi) { do { list = Cons(hi, list); } while (hi-- > lo); } return list; } function append(xs, ys) { // append Strings if (typeof xs === 'string') { return xs + ys; } // append Text if (xs.ctor.slice(0, 5) === 'Text:') { return { ctor: 'Text:Append', _0: xs, _1: ys }; } // append Lists if (xs.ctor === '[]') { return ys; } var root = Cons(xs._0, Nil); var curr = root; xs = xs._1; while (xs.ctor !== '[]') { curr._1 = Cons(xs._0, Nil); xs = xs._1; curr = curr._1; } curr._1 = ys; return root; } // CRASHES function crash(moduleName, region) { return function(message) { throw new Error( 'Ran into a `Debug.crash` in module `' + moduleName + '` ' + regionToString(region) + '\n' + 'The message provided by the code author is:\n\n ' + message ); }; } function crashCase(moduleName, region, value) { return function(message) { throw new Error( 'Ran into a `Debug.crash` in module `' + moduleName + '`\n\n' + 'This was caused by the `case` expression ' + regionToString(region) + '.\n' + 'One of the branches ended with a crash and the following value got through:\n\n ' + toString(value) + '\n\n' + 'The message provided by the code author is:\n\n ' + message ); }; } function regionToString(region) { if (region.start.line == region.end.line) { return 'on line ' + region.start.line; } return 'between lines ' + region.start.line + ' and ' + region.end.line; } // BAD PORTS function badPort(expected, received) { throw new Error( 'Runtime error when sending values through a port.\n\n' + 'Expecting ' + expected + ' but was given ' + formatValue(received) ); } function formatValue(value) { // Explicity format undefined values as "undefined" // because JSON.stringify(undefined) unhelpfully returns "" return (value === undefined) ? "undefined" : JSON.stringify(value); } // TO STRING var _Array; var Dict; var List; var toString = function(v) { var type = typeof v; if (type === 'function') { var name = v.func ? v.func.name : v.name; return ''; } else if (type === 'boolean') { return v ? 'True' : 'False'; } else if (type === 'number') { return v + ''; } else if ((v instanceof String) && v.isChar) { return '\'' + addSlashes(v, true) + '\''; } else if (type === 'string') { return '"' + addSlashes(v, false) + '"'; } else if (type === 'object' && 'ctor' in v) { if (v.ctor.substring(0, 6) === '_Tuple') { var output = []; for (var k in v) { if (k === 'ctor') continue; output.push(toString(v[k])); } return '(' + output.join(',') + ')'; } else if (v.ctor === '_Array') { if (!_Array) { _Array = Elm.Array.make(localRuntime); } var list = _Array.toList(v); return 'Array.fromList ' + toString(list); } else if (v.ctor === '::') { var output = '[' + toString(v._0); v = v._1; while (v.ctor === '::') { output += ',' + toString(v._0); v = v._1; } return output + ']'; } else if (v.ctor === '[]') { return '[]'; } else if (v.ctor === 'RBNode_elm_builtin' || v.ctor === 'RBEmpty_elm_builtin' || v.ctor === 'Set_elm_builtin') { if (!Dict) { Dict = Elm.Dict.make(localRuntime); } var list; var name; if (v.ctor === 'Set_elm_builtin') { if (!List) { List = Elm.List.make(localRuntime); } name = 'Set'; list = A2(List.map, function(x) {return x._0; }, Dict.toList(v._0)); } else { name = 'Dict'; list = Dict.toList(v); } return name + '.fromList ' + toString(list); } else if (v.ctor.slice(0, 5) === 'Text:') { return ''; } else if (v.ctor === 'Element_elm_builtin') { return '' } else if (v.ctor === 'Form_elm_builtin') { return '' } else { var output = ''; for (var i in v) { if (i === 'ctor') continue; var str = toString(v[i]); var parenless = str[0] === '{' || str[0] === '<' || str.indexOf(' ') < 0; output += ' ' + (parenless ? str : '(' + str + ')'); } return v.ctor + output; } } else if (type === 'object' && 'notify' in v && 'id' in v) { return ''; } else if (type === 'object') { var output = []; for (var k in v) { output.push(k + ' = ' + toString(v[k])); } if (output.length === 0) { return '{}'; } return '{ ' + output.join(', ') + ' }'; } return ''; }; function addSlashes(str, isChar) { var s = str.replace(/\\/g, '\\\\') .replace(/\n/g, '\\n') .replace(/\t/g, '\\t') .replace(/\r/g, '\\r') .replace(/\v/g, '\\v') .replace(/\0/g, '\\0'); if (isChar) { return s.replace(/\'/g, '\\\''); } else { return s.replace(/\"/g, '\\"'); } } return localRuntime.Native.Utils.values = { eq: eq, cmp: cmp, compare: F2(compare), Tuple0: Tuple0, Tuple2: Tuple2, chr: chr, txt: txt, update: update, guid: guid, getXY: getXY, Nil: Nil, Cons: Cons, list: list, range: range, append: F2(append), crash: crash, crashCase: crashCase, badPort: badPort, toString: toString }; }; Elm.Basics = Elm.Basics || {}; Elm.Basics.make = function (_elm) { "use strict"; _elm.Basics = _elm.Basics || {}; if (_elm.Basics.values) return _elm.Basics.values; var _U = Elm.Native.Utils.make(_elm),$Native$Basics = Elm.Native.Basics.make(_elm),$Native$Utils = Elm.Native.Utils.make(_elm); var _op = {}; var uncurry = F2(function (f,_p0) { var _p1 = _p0;return A2(f,_p1._0,_p1._1);}); var curry = F3(function (f,a,b) { return f({ctor: "_Tuple2",_0: a,_1: b});}); var flip = F3(function (f,b,a) { return A2(f,a,b);}); var snd = function (_p2) { var _p3 = _p2;return _p3._1;}; var fst = function (_p4) { var _p5 = _p4;return _p5._0;}; var always = F2(function (a,_p6) { return a;}); var identity = function (x) { return x;}; _op["<|"] = F2(function (f,x) { return f(x);}); _op["|>"] = F2(function (x,f) { return f(x);}); _op[">>"] = F3(function (f,g,x) { return g(f(x));}); _op["<<"] = F3(function (g,f,x) { return g(f(x));}); _op["++"] = $Native$Utils.append; var toString = $Native$Utils.toString; var isInfinite = $Native$Basics.isInfinite; var isNaN = $Native$Basics.isNaN; var toFloat = $Native$Basics.toFloat; var ceiling = $Native$Basics.ceiling; var floor = $Native$Basics.floor; var truncate = $Native$Basics.truncate; var round = $Native$Basics.round; var not = $Native$Basics.not; var xor = $Native$Basics.xor; _op["||"] = $Native$Basics.or; _op["&&"] = $Native$Basics.and; var max = $Native$Basics.max; var min = $Native$Basics.min; var GT = {ctor: "GT"}; var EQ = {ctor: "EQ"}; var LT = {ctor: "LT"}; var compare = $Native$Basics.compare; _op[">="] = $Native$Basics.ge; _op["<="] = $Native$Basics.le; _op[">"] = $Native$Basics.gt; _op["<"] = $Native$Basics.lt; _op["/="] = $Native$Basics.neq; _op["=="] = $Native$Basics.eq; var e = $Native$Basics.e; var pi = $Native$Basics.pi; var clamp = $Native$Basics.clamp; var logBase = $Native$Basics.logBase; var abs = $Native$Basics.abs; var negate = $Native$Basics.negate; var sqrt = $Native$Basics.sqrt; var atan2 = $Native$Basics.atan2; var atan = $Native$Basics.atan; var asin = $Native$Basics.asin; var acos = $Native$Basics.acos; var tan = $Native$Basics.tan; var sin = $Native$Basics.sin; var cos = $Native$Basics.cos; _op["^"] = $Native$Basics.exp; _op["%"] = $Native$Basics.mod; var rem = $Native$Basics.rem; _op["//"] = $Native$Basics.div; _op["/"] = $Native$Basics.floatDiv; _op["*"] = $Native$Basics.mul; _op["-"] = $Native$Basics.sub; _op["+"] = $Native$Basics.add; var toPolar = $Native$Basics.toPolar; var fromPolar = $Native$Basics.fromPolar; var turns = $Native$Basics.turns; var degrees = $Native$Basics.degrees; var radians = function (t) { return t;}; return _elm.Basics.values = {_op: _op ,max: max ,min: min ,compare: compare ,not: not ,xor: xor ,rem: rem ,negate: negate ,abs: abs ,sqrt: sqrt ,clamp: clamp ,logBase: logBase ,e: e ,pi: pi ,cos: cos ,sin: sin ,tan: tan ,acos: acos ,asin: asin ,atan: atan ,atan2: atan2 ,round: round ,floor: floor ,ceiling: ceiling ,truncate: truncate ,toFloat: toFloat ,degrees: degrees ,radians: radians ,turns: turns ,toPolar: toPolar ,fromPolar: fromPolar ,isNaN: isNaN ,isInfinite: isInfinite ,toString: toString ,fst: fst ,snd: snd ,identity: identity ,always: always ,flip: flip ,curry: curry ,uncurry: uncurry ,LT: LT ,EQ: EQ ,GT: GT}; }; Elm.Maybe = Elm.Maybe || {}; Elm.Maybe.make = function (_elm) { "use strict"; _elm.Maybe = _elm.Maybe || {}; if (_elm.Maybe.values) return _elm.Maybe.values; var _U = Elm.Native.Utils.make(_elm); var _op = {}; var withDefault = F2(function ($default,maybe) { var _p0 = maybe;if (_p0.ctor === "Just") { return _p0._0;} else { return $default;}}); var Nothing = {ctor: "Nothing"}; var oneOf = function (maybes) { oneOf: while (true) { var _p1 = maybes; if (_p1.ctor === "[]") { return Nothing; } else { var _p3 = _p1._0; var _p2 = _p3; if (_p2.ctor === "Nothing") { var _v3 = _p1._1; maybes = _v3; continue oneOf; } else { return _p3; } } } }; var andThen = F2(function (maybeValue,callback) { var _p4 = maybeValue; if (_p4.ctor === "Just") { return callback(_p4._0); } else { return Nothing; } }); var Just = function (a) { return {ctor: "Just",_0: a};}; var map = F2(function (f,maybe) { var _p5 = maybe;if (_p5.ctor === "Just") { return Just(f(_p5._0));} else { return Nothing;}}); var map2 = F3(function (func,ma,mb) { var _p6 = {ctor: "_Tuple2",_0: ma,_1: mb}; if (_p6.ctor === "_Tuple2" && _p6._0.ctor === "Just" && _p6._1.ctor === "Just") { return Just(A2(func,_p6._0._0,_p6._1._0)); } else { return Nothing; } }); var map3 = F4(function (func,ma,mb,mc) { var _p7 = {ctor: "_Tuple3",_0: ma,_1: mb,_2: mc}; if (_p7.ctor === "_Tuple3" && _p7._0.ctor === "Just" && _p7._1.ctor === "Just" && _p7._2.ctor === "Just") { return Just(A3(func,_p7._0._0,_p7._1._0,_p7._2._0)); } else { return Nothing; } }); var map4 = F5(function (func,ma,mb,mc,md) { var _p8 = {ctor: "_Tuple4",_0: ma,_1: mb,_2: mc,_3: md}; if (_p8.ctor === "_Tuple4" && _p8._0.ctor === "Just" && _p8._1.ctor === "Just" && _p8._2.ctor === "Just" && _p8._3.ctor === "Just") { return Just(A4(func,_p8._0._0,_p8._1._0,_p8._2._0,_p8._3._0)); } else { return Nothing; } }); var map5 = F6(function (func,ma,mb,mc,md,me) { var _p9 = {ctor: "_Tuple5",_0: ma,_1: mb,_2: mc,_3: md,_4: me}; if (_p9.ctor === "_Tuple5" && _p9._0.ctor === "Just" && _p9._1.ctor === "Just" && _p9._2.ctor === "Just" && _p9._3.ctor === "Just" && _p9._4.ctor === "Just") { return Just(A5(func,_p9._0._0,_p9._1._0,_p9._2._0,_p9._3._0,_p9._4._0)); } else { return Nothing; } }); return _elm.Maybe.values = {_op: _op ,andThen: andThen ,map: map ,map2: map2 ,map3: map3 ,map4: map4 ,map5: map5 ,withDefault: withDefault ,oneOf: oneOf ,Just: Just ,Nothing: Nothing}; }; Elm.Native.List = {}; Elm.Native.List.make = function(localRuntime) { localRuntime.Native = localRuntime.Native || {}; localRuntime.Native.List = localRuntime.Native.List || {}; if (localRuntime.Native.List.values) { return localRuntime.Native.List.values; } if ('values' in Elm.Native.List) { return localRuntime.Native.List.values = Elm.Native.List.values; } var Utils = Elm.Native.Utils.make(localRuntime); var Nil = Utils.Nil; var Cons = Utils.Cons; var fromArray = Utils.list; function toArray(xs) { var out = []; while (xs.ctor !== '[]') { out.push(xs._0); xs = xs._1; } return out; } // f defined similarly for both foldl and foldr (NB: different from Haskell) // ie, foldl : (a -> b -> b) -> b -> [a] -> b function foldl(f, b, xs) { var acc = b; while (xs.ctor !== '[]') { acc = A2(f, xs._0, acc); xs = xs._1; } return acc; } function foldr(f, b, xs) { var arr = toArray(xs); var acc = b; for (var i = arr.length; i--; ) { acc = A2(f, arr[i], acc); } return acc; } function map2(f, xs, ys) { var arr = []; while (xs.ctor !== '[]' && ys.ctor !== '[]') { arr.push(A2(f, xs._0, ys._0)); xs = xs._1; ys = ys._1; } return fromArray(arr); } function map3(f, xs, ys, zs) { var arr = []; while (xs.ctor !== '[]' && ys.ctor !== '[]' && zs.ctor !== '[]') { arr.push(A3(f, xs._0, ys._0, zs._0)); xs = xs._1; ys = ys._1; zs = zs._1; } return fromArray(arr); } function map4(f, ws, xs, ys, zs) { var arr = []; while ( ws.ctor !== '[]' && xs.ctor !== '[]' && ys.ctor !== '[]' && zs.ctor !== '[]') { arr.push(A4(f, ws._0, xs._0, ys._0, zs._0)); ws = ws._1; xs = xs._1; ys = ys._1; zs = zs._1; } return fromArray(arr); } function map5(f, vs, ws, xs, ys, zs) { var arr = []; while ( vs.ctor !== '[]' && ws.ctor !== '[]' && xs.ctor !== '[]' && ys.ctor !== '[]' && zs.ctor !== '[]') { arr.push(A5(f, vs._0, ws._0, xs._0, ys._0, zs._0)); vs = vs._1; ws = ws._1; xs = xs._1; ys = ys._1; zs = zs._1; } return fromArray(arr); } function sortBy(f, xs) { return fromArray(toArray(xs).sort(function(a, b) { return Utils.cmp(f(a), f(b)); })); } function sortWith(f, xs) { return fromArray(toArray(xs).sort(function(a, b) { var ord = f(a)(b).ctor; return ord === 'EQ' ? 0 : ord === 'LT' ? -1 : 1; })); } function take(n, xs) { var arr = []; while (xs.ctor !== '[]' && n > 0) { arr.push(xs._0); xs = xs._1; --n; } return fromArray(arr); } Elm.Native.List.values = { Nil: Nil, Cons: Cons, cons: F2(Cons), toArray: toArray, fromArray: fromArray, foldl: F3(foldl), foldr: F3(foldr), map2: F3(map2), map3: F4(map3), map4: F5(map4), map5: F6(map5), sortBy: F2(sortBy), sortWith: F2(sortWith), take: F2(take) }; return localRuntime.Native.List.values = Elm.Native.List.values; }; Elm.List = Elm.List || {}; Elm.List.make = function (_elm) { "use strict"; _elm.List = _elm.List || {}; if (_elm.List.values) return _elm.List.values; var _U = Elm.Native.Utils.make(_elm),$Basics = Elm.Basics.make(_elm),$Maybe = Elm.Maybe.make(_elm),$Native$List = Elm.Native.List.make(_elm); var _op = {}; var sortWith = $Native$List.sortWith; var sortBy = $Native$List.sortBy; var sort = function (xs) { return A2(sortBy,$Basics.identity,xs);}; var drop = F2(function (n,list) { drop: while (true) if (_U.cmp(n,0) < 1) return list; else { var _p0 = list; if (_p0.ctor === "[]") { return list; } else { var _v1 = n - 1,_v2 = _p0._1; n = _v1; list = _v2; continue drop; } } }); var take = $Native$List.take; var map5 = $Native$List.map5; var map4 = $Native$List.map4; var map3 = $Native$List.map3; var map2 = $Native$List.map2; var any = F2(function (isOkay,list) { any: while (true) { var _p1 = list; if (_p1.ctor === "[]") { return false; } else { if (isOkay(_p1._0)) return true; else { var _v4 = isOkay,_v5 = _p1._1; isOkay = _v4; list = _v5; continue any; } } } }); var all = F2(function (isOkay,list) { return $Basics.not(A2(any,function (_p2) { return $Basics.not(isOkay(_p2));},list));}); var foldr = $Native$List.foldr; var foldl = $Native$List.foldl; var length = function (xs) { return A3(foldl,F2(function (_p3,i) { return i + 1;}),0,xs);}; var sum = function (numbers) { return A3(foldl,F2(function (x,y) { return x + y;}),0,numbers);}; var product = function (numbers) { return A3(foldl,F2(function (x,y) { return x * y;}),1,numbers);}; var maximum = function (list) { var _p4 = list; if (_p4.ctor === "::") { return $Maybe.Just(A3(foldl,$Basics.max,_p4._0,_p4._1)); } else { return $Maybe.Nothing; } }; var minimum = function (list) { var _p5 = list; if (_p5.ctor === "::") { return $Maybe.Just(A3(foldl,$Basics.min,_p5._0,_p5._1)); } else { return $Maybe.Nothing; } }; var indexedMap = F2(function (f,xs) { return A3(map2,f,_U.range(0,length(xs) - 1),xs);}); var member = F2(function (x,xs) { return A2(any,function (a) { return _U.eq(a,x);},xs);}); var isEmpty = function (xs) { var _p6 = xs;if (_p6.ctor === "[]") { return true;} else { return false;}}; var tail = function (list) { var _p7 = list;if (_p7.ctor === "::") { return $Maybe.Just(_p7._1);} else { return $Maybe.Nothing;}}; var head = function (list) { var _p8 = list;if (_p8.ctor === "::") { return $Maybe.Just(_p8._0);} else { return $Maybe.Nothing;}}; _op["::"] = $Native$List.cons; var map = F2(function (f,xs) { return A3(foldr,F2(function (x,acc) { return A2(_op["::"],f(x),acc);}),_U.list([]),xs);}); var filter = F2(function (pred,xs) { var conditionalCons = F2(function (x,xs$) { return pred(x) ? A2(_op["::"],x,xs$) : xs$;}); return A3(foldr,conditionalCons,_U.list([]),xs); }); var maybeCons = F3(function (f,mx,xs) { var _p9 = f(mx);if (_p9.ctor === "Just") { return A2(_op["::"],_p9._0,xs);} else { return xs;}}); var filterMap = F2(function (f,xs) { return A3(foldr,maybeCons(f),_U.list([]),xs);}); var reverse = function (list) { return A3(foldl,F2(function (x,y) { return A2(_op["::"],x,y);}),_U.list([]),list);}; var scanl = F3(function (f,b,xs) { var scan1 = F2(function (x,accAcc) { var _p10 = accAcc; if (_p10.ctor === "::") { return A2(_op["::"],A2(f,x,_p10._0),accAcc); } else { return _U.list([]); } }); return reverse(A3(foldl,scan1,_U.list([b]),xs)); }); var append = F2(function (xs,ys) { var _p11 = ys; if (_p11.ctor === "[]") { return xs; } else { return A3(foldr,F2(function (x,y) { return A2(_op["::"],x,y);}),ys,xs); } }); var concat = function (lists) { return A3(foldr,append,_U.list([]),lists);}; var concatMap = F2(function (f,list) { return concat(A2(map,f,list));}); var partition = F2(function (pred,list) { var step = F2(function (x,_p12) { var _p13 = _p12; var _p15 = _p13._0; var _p14 = _p13._1; return pred(x) ? {ctor: "_Tuple2",_0: A2(_op["::"],x,_p15),_1: _p14} : {ctor: "_Tuple2",_0: _p15,_1: A2(_op["::"],x,_p14)}; }); return A3(foldr,step,{ctor: "_Tuple2",_0: _U.list([]),_1: _U.list([])},list); }); var unzip = function (pairs) { var step = F2(function (_p17,_p16) { var _p18 = _p17; var _p19 = _p16; return {ctor: "_Tuple2",_0: A2(_op["::"],_p18._0,_p19._0),_1: A2(_op["::"],_p18._1,_p19._1)}; }); return A3(foldr,step,{ctor: "_Tuple2",_0: _U.list([]),_1: _U.list([])},pairs); }; var intersperse = F2(function (sep,xs) { var _p20 = xs; if (_p20.ctor === "[]") { return _U.list([]); } else { var step = F2(function (x,rest) { return A2(_op["::"],sep,A2(_op["::"],x,rest));}); var spersed = A3(foldr,step,_U.list([]),_p20._1); return A2(_op["::"],_p20._0,spersed); } }); var repeatHelp = F3(function (result,n,value) { repeatHelp: while (true) if (_U.cmp(n,0) < 1) return result; else { var _v18 = A2(_op["::"],value,result),_v19 = n - 1,_v20 = value; result = _v18; n = _v19; value = _v20; continue repeatHelp; } }); var repeat = F2(function (n,value) { return A3(repeatHelp,_U.list([]),n,value);}); return _elm.List.values = {_op: _op ,isEmpty: isEmpty ,length: length ,reverse: reverse ,member: member ,head: head ,tail: tail ,filter: filter ,take: take ,drop: drop ,repeat: repeat ,append: append ,concat: concat ,intersperse: intersperse ,partition: partition ,unzip: unzip ,map: map ,map2: map2 ,map3: map3 ,map4: map4 ,map5: map5 ,filterMap: filterMap ,concatMap: concatMap ,indexedMap: indexedMap ,foldr: foldr ,foldl: foldl ,sum: sum ,product: product ,maximum: maximum ,minimum: minimum ,all: all ,any: any ,scanl: scanl ,sort: sort ,sortBy: sortBy ,sortWith: sortWith}; }; Elm.Native.Transform2D = {}; Elm.Native.Transform2D.make = function(localRuntime) { localRuntime.Native = localRuntime.Native || {}; localRuntime.Native.Transform2D = localRuntime.Native.Transform2D || {}; if (localRuntime.Native.Transform2D.values) { return localRuntime.Native.Transform2D.values; } var A; if (typeof Float32Array === 'undefined') { A = function(arr) { this.length = arr.length; this[0] = arr[0]; this[1] = arr[1]; this[2] = arr[2]; this[3] = arr[3]; this[4] = arr[4]; this[5] = arr[5]; }; } else { A = Float32Array; } // layout of matrix in an array is // // | m11 m12 dx | // | m21 m22 dy | // | 0 0 1 | // // new A([ m11, m12, dx, m21, m22, dy ]) var identity = new A([1, 0, 0, 0, 1, 0]); function matrix(m11, m12, m21, m22, dx, dy) { return new A([m11, m12, dx, m21, m22, dy]); } function rotation(t) { var c = Math.cos(t); var s = Math.sin(t); return new A([c, -s, 0, s, c, 0]); } function rotate(t, m) { var c = Math.cos(t); var s = Math.sin(t); var m11 = m[0], m12 = m[1], m21 = m[3], m22 = m[4]; return new A([m11 * c + m12 * s, -m11 * s + m12 * c, m[2], m21 * c + m22 * s, -m21 * s + m22 * c, m[5]]); } /* function move(xy,m) { var x = xy._0; var y = xy._1; var m11 = m[0], m12 = m[1], m21 = m[3], m22 = m[4]; return new A([m11, m12, m11*x + m12*y + m[2], m21, m22, m21*x + m22*y + m[5]]); } function scale(s,m) { return new A([m[0]*s, m[1]*s, m[2], m[3]*s, m[4]*s, m[5]]); } function scaleX(x,m) { return new A([m[0]*x, m[1], m[2], m[3]*x, m[4], m[5]]); } function scaleY(y,m) { return new A([m[0], m[1]*y, m[2], m[3], m[4]*y, m[5]]); } function reflectX(m) { return new A([-m[0], m[1], m[2], -m[3], m[4], m[5]]); } function reflectY(m) { return new A([m[0], -m[1], m[2], m[3], -m[4], m[5]]); } function transform(m11, m21, m12, m22, mdx, mdy, n) { var n11 = n[0], n12 = n[1], n21 = n[3], n22 = n[4], ndx = n[2], ndy = n[5]; return new A([m11*n11 + m12*n21, m11*n12 + m12*n22, m11*ndx + m12*ndy + mdx, m21*n11 + m22*n21, m21*n12 + m22*n22, m21*ndx + m22*ndy + mdy]); } */ function multiply(m, n) { var m11 = m[0], m12 = m[1], m21 = m[3], m22 = m[4], mdx = m[2], mdy = m[5]; var n11 = n[0], n12 = n[1], n21 = n[3], n22 = n[4], ndx = n[2], ndy = n[5]; return new A([m11 * n11 + m12 * n21, m11 * n12 + m12 * n22, m11 * ndx + m12 * ndy + mdx, m21 * n11 + m22 * n21, m21 * n12 + m22 * n22, m21 * ndx + m22 * ndy + mdy]); } return localRuntime.Native.Transform2D.values = { identity: identity, matrix: F6(matrix), rotation: rotation, multiply: F2(multiply) /* transform: F7(transform), rotate: F2(rotate), move: F2(move), scale: F2(scale), scaleX: F2(scaleX), scaleY: F2(scaleY), reflectX: reflectX, reflectY: reflectY */ }; }; Elm.Transform2D = Elm.Transform2D || {}; Elm.Transform2D.make = function (_elm) { "use strict"; _elm.Transform2D = _elm.Transform2D || {}; if (_elm.Transform2D.values) return _elm.Transform2D.values; var _U = Elm.Native.Utils.make(_elm),$Native$Transform2D = Elm.Native.Transform2D.make(_elm); var _op = {}; var multiply = $Native$Transform2D.multiply; var rotation = $Native$Transform2D.rotation; var matrix = $Native$Transform2D.matrix; var translation = F2(function (x,y) { return A6(matrix,1,0,0,1,x,y);}); var scale = function (s) { return A6(matrix,s,0,0,s,0,0);}; var scaleX = function (x) { return A6(matrix,x,0,0,1,0,0);}; var scaleY = function (y) { return A6(matrix,1,0,0,y,0,0);}; var identity = $Native$Transform2D.identity; var Transform2D = {ctor: "Transform2D"}; return _elm.Transform2D.values = {_op: _op ,identity: identity ,matrix: matrix ,multiply: multiply ,rotation: rotation ,translation: translation ,scale: scale ,scaleX: scaleX ,scaleY: scaleY}; }; // setup Elm.Native = Elm.Native || {}; Elm.Native.Graphics = Elm.Native.Graphics || {}; Elm.Native.Graphics.Collage = Elm.Native.Graphics.Collage || {}; // definition Elm.Native.Graphics.Collage.make = function(localRuntime) { 'use strict'; // attempt to short-circuit localRuntime.Native = localRuntime.Native || {}; localRuntime.Native.Graphics = localRuntime.Native.Graphics || {}; localRuntime.Native.Graphics.Collage = localRuntime.Native.Graphics.Collage || {}; if ('values' in localRuntime.Native.Graphics.Collage) { return localRuntime.Native.Graphics.Collage.values; } // okay, we cannot short-ciruit, so now we define everything var Color = Elm.Native.Color.make(localRuntime); var List = Elm.Native.List.make(localRuntime); var NativeElement = Elm.Native.Graphics.Element.make(localRuntime); var Transform = Elm.Transform2D.make(localRuntime); var Utils = Elm.Native.Utils.make(localRuntime); function setStrokeStyle(ctx, style) { ctx.lineWidth = style.width; var cap = style.cap.ctor; ctx.lineCap = cap === 'Flat' ? 'butt' : cap === 'Round' ? 'round' : 'square'; var join = style.join.ctor; ctx.lineJoin = join === 'Smooth' ? 'round' : join === 'Sharp' ? 'miter' : 'bevel'; ctx.miterLimit = style.join._0 || 10; ctx.strokeStyle = Color.toCss(style.color); } function setFillStyle(redo, ctx, style) { var sty = style.ctor; ctx.fillStyle = sty === 'Solid' ? Color.toCss(style._0) : sty === 'Texture' ? texture(redo, ctx, style._0) : gradient(ctx, style._0); } function trace(ctx, path) { var points = List.toArray(path); var i = points.length - 1; if (i <= 0) { return; } ctx.moveTo(points[i]._0, points[i]._1); while (i--) { ctx.lineTo(points[i]._0, points[i]._1); } if (path.closed) { i = points.length - 1; ctx.lineTo(points[i]._0, points[i]._1); } } function line(ctx, style, path) { if (style.dashing.ctor === '[]') { trace(ctx, path); } else { customLineHelp(ctx, style, path); } ctx.scale(1, -1); ctx.stroke(); } function customLineHelp(ctx, style, path) { var points = List.toArray(path); if (path.closed) { points.push(points[0]); } var pattern = List.toArray(style.dashing); var i = points.length - 1; if (i <= 0) { return; } var x0 = points[i]._0, y0 = points[i]._1; var x1 = 0, y1 = 0, dx = 0, dy = 0, remaining = 0; var pindex = 0, plen = pattern.length; var draw = true, segmentLength = pattern[0]; ctx.moveTo(x0, y0); while (i--) { x1 = points[i]._0; y1 = points[i]._1; dx = x1 - x0; dy = y1 - y0; remaining = Math.sqrt(dx * dx + dy * dy); while (segmentLength <= remaining) { x0 += dx * segmentLength / remaining; y0 += dy * segmentLength / remaining; ctx[draw ? 'lineTo' : 'moveTo'](x0, y0); // update starting position dx = x1 - x0; dy = y1 - y0; remaining = Math.sqrt(dx * dx + dy * dy); // update pattern draw = !draw; pindex = (pindex + 1) % plen; segmentLength = pattern[pindex]; } if (remaining > 0) { ctx[draw ? 'lineTo' : 'moveTo'](x1, y1); segmentLength -= remaining; } x0 = x1; y0 = y1; } } function drawLine(ctx, style, path) { setStrokeStyle(ctx, style); return line(ctx, style, path); } function texture(redo, ctx, src) { var img = new Image(); img.src = src; img.onload = redo; return ctx.createPattern(img, 'repeat'); } function gradient(ctx, grad) { var g; var stops = []; if (grad.ctor === 'Linear') { var p0 = grad._0, p1 = grad._1; g = ctx.createLinearGradient(p0._0, -p0._1, p1._0, -p1._1); stops = List.toArray(grad._2); } else { var p0 = grad._0, p2 = grad._2; g = ctx.createRadialGradient(p0._0, -p0._1, grad._1, p2._0, -p2._1, grad._3); stops = List.toArray(grad._4); } var len = stops.length; for (var i = 0; i < len; ++i) { var stop = stops[i]; g.addColorStop(stop._0, Color.toCss(stop._1)); } return g; } function drawShape(redo, ctx, style, path) { trace(ctx, path); setFillStyle(redo, ctx, style); ctx.scale(1, -1); ctx.fill(); } // TEXT RENDERING function fillText(redo, ctx, text) { drawText(ctx, text, ctx.fillText); } function strokeText(redo, ctx, style, text) { setStrokeStyle(ctx, style); // Use native canvas API for dashes only for text for now // Degrades to non-dashed on IE 9 + 10 if (style.dashing.ctor !== '[]' && ctx.setLineDash) { var pattern = List.toArray(style.dashing); ctx.setLineDash(pattern); } drawText(ctx, text, ctx.strokeText); } function drawText(ctx, text, canvasDrawFn) { var textChunks = chunkText(defaultContext, text); var totalWidth = 0; var maxHeight = 0; var numChunks = textChunks.length; ctx.scale(1,-1); for (var i = numChunks; i--; ) { var chunk = textChunks[i]; ctx.font = chunk.font; var metrics = ctx.measureText(chunk.text); chunk.width = metrics.width; totalWidth += chunk.width; if (chunk.height > maxHeight) { maxHeight = chunk.height; } } var x = -totalWidth / 2.0; for (var i = 0; i < numChunks; ++i) { var chunk = textChunks[i]; ctx.font = chunk.font; ctx.fillStyle = chunk.color; canvasDrawFn.call(ctx, chunk.text, x, maxHeight / 2); x += chunk.width; } } function toFont(props) { return [ props['font-style'], props['font-variant'], props['font-weight'], props['font-size'], props['font-family'] ].join(' '); } // Convert the object returned by the text module // into something we can use for styling canvas text function chunkText(context, text) { var tag = text.ctor; if (tag === 'Text:Append') { var leftChunks = chunkText(context, text._0); var rightChunks = chunkText(context, text._1); return leftChunks.concat(rightChunks); } if (tag === 'Text:Text') { return [{ text: text._0, color: context.color, height: context['font-size'].slice(0, -2) | 0, font: toFont(context) }]; } if (tag === 'Text:Meta') { var newContext = freshContext(text._0, context); return chunkText(newContext, text._1); } } function freshContext(props, ctx) { return { 'font-style': props['font-style'] || ctx['font-style'], 'font-variant': props['font-variant'] || ctx['font-variant'], 'font-weight': props['font-weight'] || ctx['font-weight'], 'font-size': props['font-size'] || ctx['font-size'], 'font-family': props['font-family'] || ctx['font-family'], 'color': props['color'] || ctx['color'] }; } var defaultContext = { 'font-style': 'normal', 'font-variant': 'normal', 'font-weight': 'normal', 'font-size': '12px', 'font-family': 'sans-serif', 'color': 'black' }; // IMAGES function drawImage(redo, ctx, form) { var img = new Image(); img.onload = redo; img.src = form._3; var w = form._0, h = form._1, pos = form._2, srcX = pos._0, srcY = pos._1, srcW = w, srcH = h, destX = -w / 2, destY = -h / 2, destW = w, destH = h; ctx.scale(1, -1); ctx.drawImage(img, srcX, srcY, srcW, srcH, destX, destY, destW, destH); } function renderForm(redo, ctx, form) { ctx.save(); var x = form.x, y = form.y, theta = form.theta, scale = form.scale; if (x !== 0 || y !== 0) { ctx.translate(x, y); } if (theta !== 0) { ctx.rotate(theta % (Math.PI * 2)); } if (scale !== 1) { ctx.scale(scale, scale); } if (form.alpha !== 1) { ctx.globalAlpha = ctx.globalAlpha * form.alpha; } ctx.beginPath(); var f = form.form; switch (f.ctor) { case 'FPath': drawLine(ctx, f._0, f._1); break; case 'FImage': drawImage(redo, ctx, f); break; case 'FShape': if (f._0.ctor === 'Line') { f._1.closed = true; drawLine(ctx, f._0._0, f._1); } else { drawShape(redo, ctx, f._0._0, f._1); } break; case 'FText': fillText(redo, ctx, f._0); break; case 'FOutlinedText': strokeText(redo, ctx, f._0, f._1); break; } ctx.restore(); } function formToMatrix(form) { var scale = form.scale; var matrix = A6( Transform.matrix, scale, 0, 0, scale, form.x, form.y ); var theta = form.theta; if (theta !== 0) { matrix = A2( Transform.multiply, matrix, Transform.rotation(theta) ); } return matrix; } function str(n) { if (n < 0.00001 && n > -0.00001) { return 0; } return n; } function makeTransform(w, h, form, matrices) { var props = form.form._0._0.props; var m = A6( Transform.matrix, 1, 0, 0, -1, (w - props.width ) / 2, (h - props.height) / 2 ); var len = matrices.length; for (var i = 0; i < len; ++i) { m = A2( Transform.multiply, m, matrices[i] ); } m = A2( Transform.multiply, m, formToMatrix(form) ); return 'matrix(' + str( m[0]) + ', ' + str( m[3]) + ', ' + str(-m[1]) + ', ' + str(-m[4]) + ', ' + str( m[2]) + ', ' + str( m[5]) + ')'; } function stepperHelp(list) { var arr = List.toArray(list); var i = 0; function peekNext() { return i < arr.length ? arr[i]._0.form.ctor : ''; } // assumes that there is a next element function next() { var out = arr[i]._0; ++i; return out; } return { peekNext: peekNext, next: next }; } function formStepper(forms) { var ps = [stepperHelp(forms)]; var matrices = []; var alphas = []; function peekNext() { var len = ps.length; var formType = ''; for (var i = 0; i < len; ++i ) { if (formType = ps[i].peekNext()) return formType; } return ''; } // assumes that there is a next element function next(ctx) { while (!ps[0].peekNext()) { ps.shift(); matrices.pop(); alphas.shift(); if (ctx) { ctx.restore(); } } var out = ps[0].next(); var f = out.form; if (f.ctor === 'FGroup') { ps.unshift(stepperHelp(f._1)); var m = A2(Transform.multiply, f._0, formToMatrix(out)); ctx.save(); ctx.transform(m[0], m[3], m[1], m[4], m[2], m[5]); matrices.push(m); var alpha = (alphas[0] || 1) * out.alpha; alphas.unshift(alpha); ctx.globalAlpha = alpha; } return out; } function transforms() { return matrices; } function alpha() { return alphas[0] || 1; } return { peekNext: peekNext, next: next, transforms: transforms, alpha: alpha }; } function makeCanvas(w, h) { var canvas = NativeElement.createNode('canvas'); canvas.style.width = w + 'px'; canvas.style.height = h + 'px'; canvas.style.display = 'block'; canvas.style.position = 'absolute'; var ratio = window.devicePixelRatio || 1; canvas.width = w * ratio; canvas.height = h * ratio; return canvas; } function render(model) { var div = NativeElement.createNode('div'); div.style.overflow = 'hidden'; div.style.position = 'relative'; update(div, model, model); return div; } function nodeStepper(w, h, div) { var kids = div.childNodes; var i = 0; var ratio = window.devicePixelRatio || 1; function transform(transforms, ctx) { ctx.translate( w / 2 * ratio, h / 2 * ratio ); ctx.scale( ratio, -ratio ); var len = transforms.length; for (var i = 0; i < len; ++i) { var m = transforms[i]; ctx.save(); ctx.transform(m[0], m[3], m[1], m[4], m[2], m[5]); } return ctx; } function nextContext(transforms) { while (i < kids.length) { var node = kids[i]; if (node.getContext) { node.width = w * ratio; node.height = h * ratio; node.style.width = w + 'px'; node.style.height = h + 'px'; ++i; return transform(transforms, node.getContext('2d')); } div.removeChild(node); } var canvas = makeCanvas(w, h); div.appendChild(canvas); // we have added a new node, so we must step our position ++i; return transform(transforms, canvas.getContext('2d')); } function addElement(matrices, alpha, form) { var kid = kids[i]; var elem = form.form._0; var node = (!kid || kid.getContext) ? NativeElement.render(elem) : NativeElement.update(kid, kid.oldElement, elem); node.style.position = 'absolute'; node.style.opacity = alpha * form.alpha * elem._0.props.opacity; NativeElement.addTransform(node.style, makeTransform(w, h, form, matrices)); node.oldElement = elem; ++i; if (!kid) { div.appendChild(node); } else { div.insertBefore(node, kid); } } function clearRest() { while (i < kids.length) { div.removeChild(kids[i]); } } return { nextContext: nextContext, addElement: addElement, clearRest: clearRest }; } function update(div, _, model) { var w = model.w; var h = model.h; var forms = formStepper(model.forms); var nodes = nodeStepper(w, h, div); var ctx = null; var formType = ''; while (formType = forms.peekNext()) { // make sure we have context if we need it if (ctx === null && formType !== 'FElement') { ctx = nodes.nextContext(forms.transforms()); ctx.globalAlpha = forms.alpha(); } var form = forms.next(ctx); // if it is FGroup, all updates are made within formStepper when next is called. if (formType === 'FElement') { // update or insert an element, get a new context nodes.addElement(forms.transforms(), forms.alpha(), form); ctx = null; } else if (formType !== 'FGroup') { renderForm(function() { update(div, model, model); }, ctx, form); } } nodes.clearRest(); return div; } function collage(w, h, forms) { return A3(NativeElement.newElement, w, h, { ctor: 'Custom', type: 'Collage', render: render, update: update, model: {w: w, h: h, forms: forms} }); } return localRuntime.Native.Graphics.Collage.values = { collage: F3(collage) }; }; Elm.Native.Color = {}; Elm.Native.Color.make = function(localRuntime) { localRuntime.Native = localRuntime.Native || {}; localRuntime.Native.Color = localRuntime.Native.Color || {}; if (localRuntime.Native.Color.values) { return localRuntime.Native.Color.values; } function toCss(c) { var format = ''; var colors = ''; if (c.ctor === 'RGBA') { format = 'rgb'; colors = c._0 + ', ' + c._1 + ', ' + c._2; } else { format = 'hsl'; colors = (c._0 * 180 / Math.PI) + ', ' + (c._1 * 100) + '%, ' + (c._2 * 100) + '%'; } if (c._3 === 1) { return format + '(' + colors + ')'; } else { return format + 'a(' + colors + ', ' + c._3 + ')'; } } return localRuntime.Native.Color.values = { toCss: toCss }; }; Elm.Color = Elm.Color || {}; Elm.Color.make = function (_elm) { "use strict"; _elm.Color = _elm.Color || {}; if (_elm.Color.values) return _elm.Color.values; var _U = Elm.Native.Utils.make(_elm),$Basics = Elm.Basics.make(_elm); var _op = {}; var Radial = F5(function (a,b,c,d,e) { return {ctor: "Radial",_0: a,_1: b,_2: c,_3: d,_4: e};}); var radial = Radial; var Linear = F3(function (a,b,c) { return {ctor: "Linear",_0: a,_1: b,_2: c};}); var linear = Linear; var fmod = F2(function (f,n) { var integer = $Basics.floor(f);return $Basics.toFloat(A2($Basics._op["%"],integer,n)) + f - $Basics.toFloat(integer);}); var rgbToHsl = F3(function (red,green,blue) { var b = $Basics.toFloat(blue) / 255; var g = $Basics.toFloat(green) / 255; var r = $Basics.toFloat(red) / 255; var cMax = A2($Basics.max,A2($Basics.max,r,g),b); var cMin = A2($Basics.min,A2($Basics.min,r,g),b); var c = cMax - cMin; var lightness = (cMax + cMin) / 2; var saturation = _U.eq(lightness,0) ? 0 : c / (1 - $Basics.abs(2 * lightness - 1)); var hue = $Basics.degrees(60) * (_U.eq(cMax,r) ? A2(fmod,(g - b) / c,6) : _U.eq(cMax,g) ? (b - r) / c + 2 : (r - g) / c + 4); return {ctor: "_Tuple3",_0: hue,_1: saturation,_2: lightness}; }); var hslToRgb = F3(function (hue,saturation,lightness) { var hue$ = hue / $Basics.degrees(60); var chroma = (1 - $Basics.abs(2 * lightness - 1)) * saturation; var x = chroma * (1 - $Basics.abs(A2(fmod,hue$,2) - 1)); var _p0 = _U.cmp(hue$,0) < 0 ? {ctor: "_Tuple3",_0: 0,_1: 0,_2: 0} : _U.cmp(hue$,1) < 0 ? {ctor: "_Tuple3",_0: chroma,_1: x,_2: 0} : _U.cmp(hue$, 2) < 0 ? {ctor: "_Tuple3",_0: x,_1: chroma,_2: 0} : _U.cmp(hue$,3) < 0 ? {ctor: "_Tuple3",_0: 0,_1: chroma,_2: x} : _U.cmp(hue$,4) < 0 ? {ctor: "_Tuple3" ,_0: 0 ,_1: x ,_2: chroma} : _U.cmp(hue$, 5) < 0 ? {ctor: "_Tuple3",_0: x,_1: 0,_2: chroma} : _U.cmp(hue$,6) < 0 ? {ctor: "_Tuple3",_0: chroma,_1: 0,_2: x} : {ctor: "_Tuple3",_0: 0,_1: 0,_2: 0}; var r = _p0._0; var g = _p0._1; var b = _p0._2; var m = lightness - chroma / 2; return {ctor: "_Tuple3",_0: r + m,_1: g + m,_2: b + m}; }); var toRgb = function (color) { var _p1 = color; if (_p1.ctor === "RGBA") { return {red: _p1._0,green: _p1._1,blue: _p1._2,alpha: _p1._3}; } else { var _p2 = A3(hslToRgb,_p1._0,_p1._1,_p1._2); var r = _p2._0; var g = _p2._1; var b = _p2._2; return {red: $Basics.round(255 * r),green: $Basics.round(255 * g),blue: $Basics.round(255 * b),alpha: _p1._3}; } }; var toHsl = function (color) { var _p3 = color; if (_p3.ctor === "HSLA") { return {hue: _p3._0,saturation: _p3._1,lightness: _p3._2,alpha: _p3._3}; } else { var _p4 = A3(rgbToHsl,_p3._0,_p3._1,_p3._2); var h = _p4._0; var s = _p4._1; var l = _p4._2; return {hue: h,saturation: s,lightness: l,alpha: _p3._3}; } }; var HSLA = F4(function (a,b,c,d) { return {ctor: "HSLA",_0: a,_1: b,_2: c,_3: d};}); var hsla = F4(function (hue,saturation,lightness,alpha) { return A4(HSLA,hue - $Basics.turns($Basics.toFloat($Basics.floor(hue / (2 * $Basics.pi)))),saturation,lightness,alpha); }); var hsl = F3(function (hue,saturation,lightness) { return A4(hsla,hue,saturation,lightness,1);}); var complement = function (color) { var _p5 = color; if (_p5.ctor === "HSLA") { return A4(hsla,_p5._0 + $Basics.degrees(180),_p5._1,_p5._2,_p5._3); } else { var _p6 = A3(rgbToHsl,_p5._0,_p5._1,_p5._2); var h = _p6._0; var s = _p6._1; var l = _p6._2; return A4(hsla,h + $Basics.degrees(180),s,l,_p5._3); } }; var grayscale = function (p) { return A4(HSLA,0,0,1 - p,1);}; var greyscale = function (p) { return A4(HSLA,0,0,1 - p,1);}; var RGBA = F4(function (a,b,c,d) { return {ctor: "RGBA",_0: a,_1: b,_2: c,_3: d};}); var rgba = RGBA; var rgb = F3(function (r,g,b) { return A4(RGBA,r,g,b,1);}); var lightRed = A4(RGBA,239,41,41,1); var red = A4(RGBA,204,0,0,1); var darkRed = A4(RGBA,164,0,0,1); var lightOrange = A4(RGBA,252,175,62,1); var orange = A4(RGBA,245,121,0,1); var darkOrange = A4(RGBA,206,92,0,1); var lightYellow = A4(RGBA,255,233,79,1); var yellow = A4(RGBA,237,212,0,1); var darkYellow = A4(RGBA,196,160,0,1); var lightGreen = A4(RGBA,138,226,52,1); var green = A4(RGBA,115,210,22,1); var darkGreen = A4(RGBA,78,154,6,1); var lightBlue = A4(RGBA,114,159,207,1); var blue = A4(RGBA,52,101,164,1); var darkBlue = A4(RGBA,32,74,135,1); var lightPurple = A4(RGBA,173,127,168,1); var purple = A4(RGBA,117,80,123,1); var darkPurple = A4(RGBA,92,53,102,1); var lightBrown = A4(RGBA,233,185,110,1); var brown = A4(RGBA,193,125,17,1); var darkBrown = A4(RGBA,143,89,2,1); var black = A4(RGBA,0,0,0,1); var white = A4(RGBA,255,255,255,1); var lightGrey = A4(RGBA,238,238,236,1); var grey = A4(RGBA,211,215,207,1); var darkGrey = A4(RGBA,186,189,182,1); var lightGray = A4(RGBA,238,238,236,1); var gray = A4(RGBA,211,215,207,1); var darkGray = A4(RGBA,186,189,182,1); var lightCharcoal = A4(RGBA,136,138,133,1); var charcoal = A4(RGBA,85,87,83,1); var darkCharcoal = A4(RGBA,46,52,54,1); return _elm.Color.values = {_op: _op ,rgb: rgb ,rgba: rgba ,hsl: hsl ,hsla: hsla ,greyscale: greyscale ,grayscale: grayscale ,complement: complement ,linear: linear ,radial: radial ,toRgb: toRgb ,toHsl: toHsl ,red: red ,orange: orange ,yellow: yellow ,green: green ,blue: blue ,purple: purple ,brown: brown ,lightRed: lightRed ,lightOrange: lightOrange ,lightYellow: lightYellow ,lightGreen: lightGreen ,lightBlue: lightBlue ,lightPurple: lightPurple ,lightBrown: lightBrown ,darkRed: darkRed ,darkOrange: darkOrange ,darkYellow: darkYellow ,darkGreen: darkGreen ,darkBlue: darkBlue ,darkPurple: darkPurple ,darkBrown: darkBrown ,white: white ,lightGrey: lightGrey ,grey: grey ,darkGrey: darkGrey ,lightCharcoal: lightCharcoal ,charcoal: charcoal ,darkCharcoal: darkCharcoal ,black: black ,lightGray: lightGray ,gray: gray ,darkGray: darkGray}; }; // setup Elm.Native = Elm.Native || {}; Elm.Native.Graphics = Elm.Native.Graphics || {}; Elm.Native.Graphics.Element = Elm.Native.Graphics.Element || {}; // definition Elm.Native.Graphics.Element.make = function(localRuntime) { 'use strict'; // attempt to short-circuit localRuntime.Native = localRuntime.Native || {}; localRuntime.Native.Graphics = localRuntime.Native.Graphics || {}; localRuntime.Native.Graphics.Element = localRuntime.Native.Graphics.Element || {}; if ('values' in localRuntime.Native.Graphics.Element) { return localRuntime.Native.Graphics.Element.values; } var Color = Elm.Native.Color.make(localRuntime); var List = Elm.Native.List.make(localRuntime); var Maybe = Elm.Maybe.make(localRuntime); var Text = Elm.Native.Text.make(localRuntime); var Utils = Elm.Native.Utils.make(localRuntime); // CREATION var createNode = typeof document === 'undefined' ? function(_) { return { style: {}, appendChild: function() {} }; } : function(elementType) { var node = document.createElement(elementType); node.style.padding = '0'; node.style.margin = '0'; return node; } ; function newElement(width, height, elementPrim) { return { ctor: 'Element_elm_builtin', _0: { element: elementPrim, props: { id: Utils.guid(), width: width, height: height, opacity: 1, color: Maybe.Nothing, href: '', tag: '', hover: Utils.Tuple0, click: Utils.Tuple0 } } }; } // PROPERTIES function setProps(elem, node) { var props = elem.props; var element = elem.element; var width = props.width - (element.adjustWidth || 0); var height = props.height - (element.adjustHeight || 0); node.style.width = (width | 0) + 'px'; node.style.height = (height | 0) + 'px'; if (props.opacity !== 1) { node.style.opacity = props.opacity; } if (props.color.ctor === 'Just') { node.style.backgroundColor = Color.toCss(props.color._0); } if (props.tag !== '') { node.id = props.tag; } if (props.hover.ctor !== '_Tuple0') { addHover(node, props.hover); } if (props.click.ctor !== '_Tuple0') { addClick(node, props.click); } if (props.href !== '') { var anchor = createNode('a'); anchor.href = props.href; anchor.style.display = 'block'; anchor.style.pointerEvents = 'auto'; anchor.appendChild(node); node = anchor; } return node; } function addClick(e, handler) { e.style.pointerEvents = 'auto'; e.elm_click_handler = handler; function trigger(ev) { e.elm_click_handler(Utils.Tuple0); ev.stopPropagation(); } e.elm_click_trigger = trigger; e.addEventListener('click', trigger); } function removeClick(e, handler) { if (e.elm_click_trigger) { e.removeEventListener('click', e.elm_click_trigger); e.elm_click_trigger = null; e.elm_click_handler = null; } } function addHover(e, handler) { e.style.pointerEvents = 'auto'; e.elm_hover_handler = handler; e.elm_hover_count = 0; function over(evt) { if (e.elm_hover_count++ > 0) return; e.elm_hover_handler(true); evt.stopPropagation(); } function out(evt) { if (e.contains(evt.toElement || evt.relatedTarget)) return; e.elm_hover_count = 0; e.elm_hover_handler(false); evt.stopPropagation(); } e.elm_hover_over = over; e.elm_hover_out = out; e.addEventListener('mouseover', over); e.addEventListener('mouseout', out); } function removeHover(e) { e.elm_hover_handler = null; if (e.elm_hover_over) { e.removeEventListener('mouseover', e.elm_hover_over); e.elm_hover_over = null; } if (e.elm_hover_out) { e.removeEventListener('mouseout', e.elm_hover_out); e.elm_hover_out = null; } } // IMAGES function image(props, img) { switch (img._0.ctor) { case 'Plain': return plainImage(img._3); case 'Fitted': return fittedImage(props.width, props.height, img._3); case 'Cropped': return croppedImage(img, props.width, props.height, img._3); case 'Tiled': return tiledImage(img._3); } } function plainImage(src) { var img = createNode('img'); img.src = src; img.name = src; img.style.display = 'block'; return img; } function tiledImage(src) { var div = createNode('div'); div.style.backgroundImage = 'url(' + src + ')'; return div; } function fittedImage(w, h, src) { var div = createNode('div'); div.style.background = 'url(' + src + ') no-repeat center'; div.style.webkitBackgroundSize = 'cover'; div.style.MozBackgroundSize = 'cover'; div.style.OBackgroundSize = 'cover'; div.style.backgroundSize = 'cover'; return div; } function croppedImage(elem, w, h, src) { var pos = elem._0._0; var e = createNode('div'); e.style.overflow = 'hidden'; var img = createNode('img'); img.onload = function() { var sw = w / elem._1, sh = h / elem._2; img.style.width = ((this.width * sw) | 0) + 'px'; img.style.height = ((this.height * sh) | 0) + 'px'; img.style.marginLeft = ((- pos._0 * sw) | 0) + 'px'; img.style.marginTop = ((- pos._1 * sh) | 0) + 'px'; }; img.src = src; img.name = src; e.appendChild(img); return e; } // FLOW function goOut(node) { node.style.position = 'absolute'; return node; } function goDown(node) { return node; } function goRight(node) { node.style.styleFloat = 'left'; node.style.cssFloat = 'left'; return node; } var directionTable = { DUp: goDown, DDown: goDown, DLeft: goRight, DRight: goRight, DIn: goOut, DOut: goOut }; function needsReversal(dir) { return dir === 'DUp' || dir === 'DLeft' || dir === 'DIn'; } function flow(dir, elist) { var array = List.toArray(elist); var container = createNode('div'); var goDir = directionTable[dir]; if (goDir === goOut) { container.style.pointerEvents = 'none'; } if (needsReversal(dir)) { array.reverse(); } var len = array.length; for (var i = 0; i < len; ++i) { container.appendChild(goDir(render(array[i]))); } return container; } // CONTAINER function toPos(pos) { return pos.ctor === 'Absolute' ? pos._0 + 'px' : (pos._0 * 100) + '%'; } // must clear right, left, top, bottom, and transform // before calling this function function setPos(pos, wrappedElement, e) { var elem = wrappedElement._0; var element = elem.element; var props = elem.props; var w = props.width + (element.adjustWidth ? element.adjustWidth : 0); var h = props.height + (element.adjustHeight ? element.adjustHeight : 0); e.style.position = 'absolute'; e.style.margin = 'auto'; var transform = ''; switch (pos.horizontal.ctor) { case 'P': e.style.right = toPos(pos.x); e.style.removeProperty('left'); break; case 'Z': transform = 'translateX(' + ((-w / 2) | 0) + 'px) '; case 'N': e.style.left = toPos(pos.x); e.style.removeProperty('right'); break; } switch (pos.vertical.ctor) { case 'N': e.style.bottom = toPos(pos.y); e.style.removeProperty('top'); break; case 'Z': transform += 'translateY(' + ((-h / 2) | 0) + 'px)'; case 'P': e.style.top = toPos(pos.y); e.style.removeProperty('bottom'); break; } if (transform !== '') { addTransform(e.style, transform); } return e; } function addTransform(style, transform) { style.transform = transform; style.msTransform = transform; style.MozTransform = transform; style.webkitTransform = transform; style.OTransform = transform; } function container(pos, elem) { var e = render(elem); setPos(pos, elem, e); var div = createNode('div'); div.style.position = 'relative'; div.style.overflow = 'hidden'; div.appendChild(e); return div; } function rawHtml(elem) { var html = elem.html; var align = elem.align; var div = createNode('div'); div.innerHTML = html; div.style.visibility = 'hidden'; if (align) { div.style.textAlign = align; } div.style.visibility = 'visible'; div.style.pointerEvents = 'auto'; return div; } // RENDER function render(wrappedElement) { var elem = wrappedElement._0; return setProps(elem, makeElement(elem)); } function makeElement(e) { var elem = e.element; switch (elem.ctor) { case 'Image': return image(e.props, elem); case 'Flow': return flow(elem._0.ctor, elem._1); case 'Container': return container(elem._0, elem._1); case 'Spacer': return createNode('div'); case 'RawHtml': return rawHtml(elem); case 'Custom': return elem.render(elem.model); } } function updateAndReplace(node, curr, next) { var newNode = update(node, curr, next); if (newNode !== node) { node.parentNode.replaceChild(newNode, node); } return newNode; } // UPDATE function update(node, wrappedCurrent, wrappedNext) { var curr = wrappedCurrent._0; var next = wrappedNext._0; var rootNode = node; if (node.tagName === 'A') { node = node.firstChild; } if (curr.props.id === next.props.id) { updateProps(node, curr, next); return rootNode; } if (curr.element.ctor !== next.element.ctor) { return render(wrappedNext); } var nextE = next.element; var currE = curr.element; switch (nextE.ctor) { case 'Spacer': updateProps(node, curr, next); return rootNode; case 'RawHtml': if(currE.html.valueOf() !== nextE.html.valueOf()) { node.innerHTML = nextE.html; } updateProps(node, curr, next); return rootNode; case 'Image': if (nextE._0.ctor === 'Plain') { if (nextE._3 !== currE._3) { node.src = nextE._3; } } else if (!Utils.eq(nextE, currE) || next.props.width !== curr.props.width || next.props.height !== curr.props.height) { return render(wrappedNext); } updateProps(node, curr, next); return rootNode; case 'Flow': var arr = List.toArray(nextE._1); for (var i = arr.length; i--; ) { arr[i] = arr[i]._0.element.ctor; } if (nextE._0.ctor !== currE._0.ctor) { return render(wrappedNext); } var nexts = List.toArray(nextE._1); var kids = node.childNodes; if (nexts.length !== kids.length) { return render(wrappedNext); } var currs = List.toArray(currE._1); var dir = nextE._0.ctor; var goDir = directionTable[dir]; var toReverse = needsReversal(dir); var len = kids.length; for (var i = len; i--; ) { var subNode = kids[toReverse ? len - i - 1 : i]; goDir(updateAndReplace(subNode, currs[i], nexts[i])); } updateProps(node, curr, next); return rootNode; case 'Container': var subNode = node.firstChild; var newSubNode = updateAndReplace(subNode, currE._1, nextE._1); setPos(nextE._0, nextE._1, newSubNode); updateProps(node, curr, next); return rootNode; case 'Custom': if (currE.type === nextE.type) { var updatedNode = nextE.update(node, currE.model, nextE.model); updateProps(updatedNode, curr, next); return updatedNode; } return render(wrappedNext); } } function updateProps(node, curr, next) { var nextProps = next.props; var currProps = curr.props; var element = next.element; var width = nextProps.width - (element.adjustWidth || 0); var height = nextProps.height - (element.adjustHeight || 0); if (width !== currProps.width) { node.style.width = (width | 0) + 'px'; } if (height !== currProps.height) { node.style.height = (height | 0) + 'px'; } if (nextProps.opacity !== currProps.opacity) { node.style.opacity = nextProps.opacity; } var nextColor = nextProps.color.ctor === 'Just' ? Color.toCss(nextProps.color._0) : ''; if (node.style.backgroundColor !== nextColor) { node.style.backgroundColor = nextColor; } if (nextProps.tag !== currProps.tag) { node.id = nextProps.tag; } if (nextProps.href !== currProps.href) { if (currProps.href === '') { // add a surrounding href var anchor = createNode('a'); anchor.href = nextProps.href; anchor.style.display = 'block'; anchor.style.pointerEvents = 'auto'; node.parentNode.replaceChild(anchor, node); anchor.appendChild(node); } else if (nextProps.href === '') { // remove the surrounding href var anchor = node.parentNode; anchor.parentNode.replaceChild(node, anchor); } else { // just update the link node.parentNode.href = nextProps.href; } } // update click and hover handlers var removed = false; // update hover handlers if (currProps.hover.ctor === '_Tuple0') { if (nextProps.hover.ctor !== '_Tuple0') { addHover(node, nextProps.hover); } } else { if (nextProps.hover.ctor === '_Tuple0') { removed = true; removeHover(node); } else { node.elm_hover_handler = nextProps.hover; } } // update click handlers if (currProps.click.ctor === '_Tuple0') { if (nextProps.click.ctor !== '_Tuple0') { addClick(node, nextProps.click); } } else { if (nextProps.click.ctor === '_Tuple0') { removed = true; removeClick(node); } else { node.elm_click_handler = nextProps.click; } } // stop capturing clicks if if (removed && nextProps.hover.ctor === '_Tuple0' && nextProps.click.ctor === '_Tuple0') { node.style.pointerEvents = 'none'; } } // TEXT function block(align) { return function(text) { var raw = { ctor: 'RawHtml', html: Text.renderHtml(text), align: align }; var pos = htmlHeight(0, raw); return newElement(pos._0, pos._1, raw); }; } function markdown(text) { var raw = { ctor: 'RawHtml', html: text, align: null }; var pos = htmlHeight(0, raw); return newElement(pos._0, pos._1, raw); } var htmlHeight = typeof document !== 'undefined' ? realHtmlHeight : function(a, b) { return Utils.Tuple2(0, 0); }; function realHtmlHeight(width, rawHtml) { // create dummy node var temp = document.createElement('div'); temp.innerHTML = rawHtml.html; if (width > 0) { temp.style.width = width + 'px'; } temp.style.visibility = 'hidden'; temp.style.styleFloat = 'left'; temp.style.cssFloat = 'left'; document.body.appendChild(temp); // get dimensions var style = window.getComputedStyle(temp, null); var w = Math.ceil(style.getPropertyValue('width').slice(0, -2) - 0); var h = Math.ceil(style.getPropertyValue('height').slice(0, -2) - 0); document.body.removeChild(temp); return Utils.Tuple2(w, h); } return localRuntime.Native.Graphics.Element.values = { render: render, update: update, updateAndReplace: updateAndReplace, createNode: createNode, newElement: F3(newElement), addTransform: addTransform, htmlHeight: F2(htmlHeight), guid: Utils.guid, block: block, markdown: markdown }; }; Elm.Native.Text = {}; Elm.Native.Text.make = function(localRuntime) { localRuntime.Native = localRuntime.Native || {}; localRuntime.Native.Text = localRuntime.Native.Text || {}; if (localRuntime.Native.Text.values) { return localRuntime.Native.Text.values; } var toCss = Elm.Native.Color.make(localRuntime).toCss; var List = Elm.Native.List.make(localRuntime); // CONSTRUCTORS function fromString(str) { return { ctor: 'Text:Text', _0: str }; } function append(a, b) { return { ctor: 'Text:Append', _0: a, _1: b }; } function addMeta(field, value, text) { var newProps = {}; var newText = { ctor: 'Text:Meta', _0: newProps, _1: text }; if (text.ctor === 'Text:Meta') { newText._1 = text._1; var props = text._0; for (var i = metaKeys.length; i--; ) { var key = metaKeys[i]; var val = props[key]; if (val) { newProps[key] = val; } } } newProps[field] = value; return newText; } var metaKeys = [ 'font-size', 'font-family', 'font-style', 'font-weight', 'href', 'text-decoration', 'color' ]; // conversions from Elm values to CSS function toTypefaces(list) { var typefaces = List.toArray(list); for (var i = typefaces.length; i--; ) { var typeface = typefaces[i]; if (typeface.indexOf(' ') > -1) { typefaces[i] = "'" + typeface + "'"; } } return typefaces.join(','); } function toLine(line) { var ctor = line.ctor; return ctor === 'Under' ? 'underline' : ctor === 'Over' ? 'overline' : 'line-through'; } // setting styles of Text function style(style, text) { var newText = addMeta('color', toCss(style.color), text); var props = newText._0; if (style.typeface.ctor !== '[]') { props['font-family'] = toTypefaces(style.typeface); } if (style.height.ctor !== 'Nothing') { props['font-size'] = style.height._0 + 'px'; } if (style.bold) { props['font-weight'] = 'bold'; } if (style.italic) { props['font-style'] = 'italic'; } if (style.line.ctor !== 'Nothing') { props['text-decoration'] = toLine(style.line._0); } return newText; } function height(px, text) { return addMeta('font-size', px + 'px', text); } function typeface(names, text) { return addMeta('font-family', toTypefaces(names), text); } function monospace(text) { return addMeta('font-family', 'monospace', text); } function italic(text) { return addMeta('font-style', 'italic', text); } function bold(text) { return addMeta('font-weight', 'bold', text); } function link(href, text) { return addMeta('href', href, text); } function line(line, text) { return addMeta('text-decoration', toLine(line), text); } function color(color, text) { return addMeta('color', toCss(color), text); } // RENDER function renderHtml(text) { var tag = text.ctor; if (tag === 'Text:Append') { return renderHtml(text._0) + renderHtml(text._1); } if (tag === 'Text:Text') { return properEscape(text._0); } if (tag === 'Text:Meta') { return renderMeta(text._0, renderHtml(text._1)); } } function renderMeta(metas, string) { var href = metas.href; if (href) { string = '
    ' + string + ''; } var styles = ''; for (var key in metas) { if (key === 'href') { continue; } styles += key + ':' + metas[key] + ';'; } if (styles) { string = '' + string + ''; } return string; } function properEscape(str) { if (str.length === 0) { return str; } str = str //.replace(/&/g, '&') .replace(/"/g, '"') .replace(/'/g, ''') .replace(//g, '>'); var arr = str.split('\n'); for (var i = arr.length; i--; ) { arr[i] = makeSpaces(arr[i]); } return arr.join('
    '); } function makeSpaces(s) { if (s.length === 0) { return s; } var arr = s.split(''); if (arr[0] === ' ') { arr[0] = ' '; } for (var i = arr.length; --i; ) { if (arr[i][0] === ' ' && arr[i - 1] === ' ') { arr[i - 1] = arr[i - 1] + arr[i]; arr[i] = ''; } } for (var i = arr.length; i--; ) { if (arr[i].length > 1 && arr[i][0] === ' ') { var spaces = arr[i].split(''); for (var j = spaces.length - 2; j >= 0; j -= 2) { spaces[j] = ' '; } arr[i] = spaces.join(''); } } arr = arr.join(''); if (arr[arr.length - 1] === ' ') { return arr.slice(0, -1) + ' '; } return arr; } return localRuntime.Native.Text.values = { fromString: fromString, append: F2(append), height: F2(height), italic: italic, bold: bold, line: F2(line), monospace: monospace, typeface: F2(typeface), color: F2(color), link: F2(link), style: F2(style), toTypefaces: toTypefaces, toLine: toLine, renderHtml: renderHtml }; }; Elm.Text = Elm.Text || {}; Elm.Text.make = function (_elm) { "use strict"; _elm.Text = _elm.Text || {}; if (_elm.Text.values) return _elm.Text.values; var _U = Elm.Native.Utils.make(_elm), $Color = Elm.Color.make(_elm), $List = Elm.List.make(_elm), $Maybe = Elm.Maybe.make(_elm), $Native$Text = Elm.Native.Text.make(_elm); var _op = {}; var line = $Native$Text.line; var italic = $Native$Text.italic; var bold = $Native$Text.bold; var color = $Native$Text.color; var height = $Native$Text.height; var link = $Native$Text.link; var monospace = $Native$Text.monospace; var typeface = $Native$Text.typeface; var style = $Native$Text.style; var append = $Native$Text.append; var fromString = $Native$Text.fromString; var empty = fromString(""); var concat = function (texts) { return A3($List.foldr,append,empty,texts);}; var join = F2(function (seperator,texts) { return concat(A2($List.intersperse,seperator,texts));}); var defaultStyle = {typeface: _U.list([]),height: $Maybe.Nothing,color: $Color.black,bold: false,italic: false,line: $Maybe.Nothing}; var Style = F6(function (a,b,c,d,e,f) { return {typeface: a,height: b,color: c,bold: d,italic: e,line: f};}); var Through = {ctor: "Through"}; var Over = {ctor: "Over"}; var Under = {ctor: "Under"}; var Text = {ctor: "Text"}; return _elm.Text.values = {_op: _op ,fromString: fromString ,empty: empty ,append: append ,concat: concat ,join: join ,link: link ,style: style ,defaultStyle: defaultStyle ,typeface: typeface ,monospace: monospace ,height: height ,color: color ,bold: bold ,italic: italic ,line: line ,Style: Style ,Under: Under ,Over: Over ,Through: Through}; }; Elm.Graphics = Elm.Graphics || {}; Elm.Graphics.Element = Elm.Graphics.Element || {}; Elm.Graphics.Element.make = function (_elm) { "use strict"; _elm.Graphics = _elm.Graphics || {}; _elm.Graphics.Element = _elm.Graphics.Element || {}; if (_elm.Graphics.Element.values) return _elm.Graphics.Element.values; var _U = Elm.Native.Utils.make(_elm), $Basics = Elm.Basics.make(_elm), $Color = Elm.Color.make(_elm), $List = Elm.List.make(_elm), $Maybe = Elm.Maybe.make(_elm), $Native$Graphics$Element = Elm.Native.Graphics.Element.make(_elm), $Text = Elm.Text.make(_elm); var _op = {}; var DOut = {ctor: "DOut"}; var outward = DOut; var DIn = {ctor: "DIn"}; var inward = DIn; var DRight = {ctor: "DRight"}; var right = DRight; var DLeft = {ctor: "DLeft"}; var left = DLeft; var DDown = {ctor: "DDown"}; var down = DDown; var DUp = {ctor: "DUp"}; var up = DUp; var RawPosition = F4(function (a,b,c,d) { return {horizontal: a,vertical: b,x: c,y: d};}); var Position = function (a) { return {ctor: "Position",_0: a};}; var Relative = function (a) { return {ctor: "Relative",_0: a};}; var relative = Relative; var Absolute = function (a) { return {ctor: "Absolute",_0: a};}; var absolute = Absolute; var N = {ctor: "N"}; var bottomLeft = Position({horizontal: N,vertical: N,x: Absolute(0),y: Absolute(0)}); var bottomLeftAt = F2(function (x,y) { return Position({horizontal: N,vertical: N,x: x,y: y});}); var Z = {ctor: "Z"}; var middle = Position({horizontal: Z,vertical: Z,x: Relative(0.5),y: Relative(0.5)}); var midLeft = Position({horizontal: N,vertical: Z,x: Absolute(0),y: Relative(0.5)}); var midBottom = Position({horizontal: Z,vertical: N,x: Relative(0.5),y: Absolute(0)}); var middleAt = F2(function (x,y) { return Position({horizontal: Z,vertical: Z,x: x,y: y});}); var midLeftAt = F2(function (x,y) { return Position({horizontal: N,vertical: Z,x: x,y: y});}); var midBottomAt = F2(function (x,y) { return Position({horizontal: Z,vertical: N,x: x,y: y});}); var P = {ctor: "P"}; var topLeft = Position({horizontal: N,vertical: P,x: Absolute(0),y: Absolute(0)}); var topRight = Position({horizontal: P,vertical: P,x: Absolute(0),y: Absolute(0)}); var bottomRight = Position({horizontal: P,vertical: N,x: Absolute(0),y: Absolute(0)}); var midRight = Position({horizontal: P,vertical: Z,x: Absolute(0),y: Relative(0.5)}); var midTop = Position({horizontal: Z,vertical: P,x: Relative(0.5),y: Absolute(0)}); var topLeftAt = F2(function (x,y) { return Position({horizontal: N,vertical: P,x: x,y: y});}); var topRightAt = F2(function (x,y) { return Position({horizontal: P,vertical: P,x: x,y: y});}); var bottomRightAt = F2(function (x,y) { return Position({horizontal: P,vertical: N,x: x,y: y});}); var midRightAt = F2(function (x,y) { return Position({horizontal: P,vertical: Z,x: x,y: y});}); var midTopAt = F2(function (x,y) { return Position({horizontal: Z,vertical: P,x: x,y: y});}); var justified = $Native$Graphics$Element.block("justify"); var centered = $Native$Graphics$Element.block("center"); var rightAligned = $Native$Graphics$Element.block("right"); var leftAligned = $Native$Graphics$Element.block("left"); var show = function (value) { return leftAligned($Text.monospace($Text.fromString($Basics.toString(value))));}; var Tiled = {ctor: "Tiled"}; var Cropped = function (a) { return {ctor: "Cropped",_0: a};}; var Fitted = {ctor: "Fitted"}; var Plain = {ctor: "Plain"}; var Custom = {ctor: "Custom"}; var RawHtml = {ctor: "RawHtml"}; var Spacer = {ctor: "Spacer"}; var Flow = F2(function (a,b) { return {ctor: "Flow",_0: a,_1: b};}); var Container = F2(function (a,b) { return {ctor: "Container",_0: a,_1: b};}); var Image = F4(function (a,b,c,d) { return {ctor: "Image",_0: a,_1: b,_2: c,_3: d};}); var newElement = $Native$Graphics$Element.newElement; var image = F3(function (w,h,src) { return A3(newElement,w,h,A4(Image,Plain,w,h,src));}); var fittedImage = F3(function (w,h,src) { return A3(newElement,w,h,A4(Image,Fitted,w,h,src));}); var croppedImage = F4(function (pos,w,h,src) { return A3(newElement,w,h,A4(Image,Cropped(pos),w,h,src));}); var tiledImage = F3(function (w,h,src) { return A3(newElement,w,h,A4(Image,Tiled,w,h,src));}); var container = F4(function (w,h,_p0,e) { var _p1 = _p0;return A3(newElement,w,h,A2(Container,_p1._0,e));}); var spacer = F2(function (w,h) { return A3(newElement,w,h,Spacer);}); var sizeOf = function (_p2) { var _p3 = _p2;var _p4 = _p3._0;return {ctor: "_Tuple2",_0: _p4.props.width,_1: _p4.props.height};}; var heightOf = function (_p5) { var _p6 = _p5;return _p6._0.props.height;}; var widthOf = function (_p7) { var _p8 = _p7;return _p8._0.props.width;}; var above = F2(function (hi,lo) { return A3(newElement,A2($Basics.max,widthOf(hi),widthOf(lo)),heightOf(hi) + heightOf(lo),A2(Flow,DDown,_U.list([hi,lo]))); }); var below = F2(function (lo,hi) { return A3(newElement,A2($Basics.max,widthOf(hi),widthOf(lo)),heightOf(hi) + heightOf(lo),A2(Flow,DDown,_U.list([hi,lo]))); }); var beside = F2(function (lft,rht) { return A3(newElement,widthOf(lft) + widthOf(rht),A2($Basics.max,heightOf(lft),heightOf(rht)),A2(Flow,right,_U.list([lft,rht]))); }); var layers = function (es) { var hs = A2($List.map,heightOf,es); var ws = A2($List.map,widthOf,es); return A3(newElement,A2($Maybe.withDefault,0,$List.maximum(ws)),A2($Maybe.withDefault,0,$List.maximum(hs)),A2(Flow,DOut,es)); }; var empty = A2(spacer,0,0); var flow = F2(function (dir,es) { var newFlow = F2(function (w,h) { return A3(newElement,w,h,A2(Flow,dir,es));}); var maxOrZero = function (list) { return A2($Maybe.withDefault,0,$List.maximum(list));}; var hs = A2($List.map,heightOf,es); var ws = A2($List.map,widthOf,es); if (_U.eq(es,_U.list([]))) return empty; else { var _p9 = dir; switch (_p9.ctor) {case "DUp": return A2(newFlow,maxOrZero(ws),$List.sum(hs)); case "DDown": return A2(newFlow,maxOrZero(ws),$List.sum(hs)); case "DLeft": return A2(newFlow,$List.sum(ws),maxOrZero(hs)); case "DRight": return A2(newFlow,$List.sum(ws),maxOrZero(hs)); case "DIn": return A2(newFlow,maxOrZero(ws),maxOrZero(hs)); default: return A2(newFlow,maxOrZero(ws),maxOrZero(hs));} } }); var Properties = F9(function (a,b,c,d,e,f,g,h,i) { return {id: a,width: b,height: c,opacity: d,color: e,href: f,tag: g,hover: h,click: i};}); var Element_elm_builtin = function (a) { return {ctor: "Element_elm_builtin",_0: a};}; var width = F2(function (newWidth,_p10) { var _p11 = _p10; var _p14 = _p11._0.props; var _p13 = _p11._0.element; var newHeight = function () { var _p12 = _p13; switch (_p12.ctor) {case "Image": return $Basics.round($Basics.toFloat(_p12._2) / $Basics.toFloat(_p12._1) * $Basics.toFloat(newWidth)); case "RawHtml": return $Basics.snd(A2($Native$Graphics$Element.htmlHeight,newWidth,_p13)); default: return _p14.height;} }(); return Element_elm_builtin({element: _p13,props: _U.update(_p14,{width: newWidth,height: newHeight})}); }); var height = F2(function (newHeight,_p15) { var _p16 = _p15; return Element_elm_builtin({element: _p16._0.element,props: _U.update(_p16._0.props,{height: newHeight})}); }); var size = F3(function (w,h,e) { return A2(height,h,A2(width,w,e));}); var opacity = F2(function (givenOpacity,_p17) { var _p18 = _p17; return Element_elm_builtin({element: _p18._0.element,props: _U.update(_p18._0.props,{opacity: givenOpacity})}); }); var color = F2(function (clr,_p19) { var _p20 = _p19; return Element_elm_builtin({element: _p20._0.element,props: _U.update(_p20._0.props,{color: $Maybe.Just(clr)})}); }); var tag = F2(function (name,_p21) { var _p22 = _p21;return Element_elm_builtin({element: _p22._0.element,props: _U.update(_p22._0.props,{tag: name})});}); var link = F2(function (href,_p23) { var _p24 = _p23; return Element_elm_builtin({element: _p24._0.element,props: _U.update(_p24._0.props,{href: href})}); }); return _elm.Graphics.Element.values = {_op: _op ,image: image ,fittedImage: fittedImage ,croppedImage: croppedImage ,tiledImage: tiledImage ,leftAligned: leftAligned ,rightAligned: rightAligned ,centered: centered ,justified: justified ,show: show ,width: width ,height: height ,size: size ,color: color ,opacity: opacity ,link: link ,tag: tag ,widthOf: widthOf ,heightOf: heightOf ,sizeOf: sizeOf ,flow: flow ,up: up ,down: down ,left: left ,right: right ,inward: inward ,outward: outward ,layers: layers ,above: above ,below: below ,beside: beside ,empty: empty ,spacer: spacer ,container: container ,middle: middle ,midTop: midTop ,midBottom: midBottom ,midLeft: midLeft ,midRight: midRight ,topLeft: topLeft ,topRight: topRight ,bottomLeft: bottomLeft ,bottomRight: bottomRight ,absolute: absolute ,relative: relative ,middleAt: middleAt ,midTopAt: midTopAt ,midBottomAt: midBottomAt ,midLeftAt: midLeftAt ,midRightAt: midRightAt ,topLeftAt: topLeftAt ,topRightAt: topRightAt ,bottomLeftAt: bottomLeftAt ,bottomRightAt: bottomRightAt}; }; Elm.Graphics = Elm.Graphics || {}; Elm.Graphics.Collage = Elm.Graphics.Collage || {}; Elm.Graphics.Collage.make = function (_elm) { "use strict"; _elm.Graphics = _elm.Graphics || {}; _elm.Graphics.Collage = _elm.Graphics.Collage || {}; if (_elm.Graphics.Collage.values) return _elm.Graphics.Collage.values; var _U = Elm.Native.Utils.make(_elm), $Basics = Elm.Basics.make(_elm), $Color = Elm.Color.make(_elm), $Graphics$Element = Elm.Graphics.Element.make(_elm), $List = Elm.List.make(_elm), $Native$Graphics$Collage = Elm.Native.Graphics.Collage.make(_elm), $Text = Elm.Text.make(_elm), $Transform2D = Elm.Transform2D.make(_elm); var _op = {}; var Shape = function (a) { return {ctor: "Shape",_0: a};}; var polygon = function (points) { return Shape(points);}; var rect = F2(function (w,h) { var hh = h / 2; var hw = w / 2; return Shape(_U.list([{ctor: "_Tuple2",_0: 0 - hw,_1: 0 - hh} ,{ctor: "_Tuple2",_0: 0 - hw,_1: hh} ,{ctor: "_Tuple2",_0: hw,_1: hh} ,{ctor: "_Tuple2",_0: hw,_1: 0 - hh}])); }); var square = function (n) { return A2(rect,n,n);}; var oval = F2(function (w,h) { var hh = h / 2; var hw = w / 2; var n = 50; var t = 2 * $Basics.pi / n; var f = function (i) { return {ctor: "_Tuple2",_0: hw * $Basics.cos(t * i),_1: hh * $Basics.sin(t * i)};}; return Shape(A2($List.map,f,_U.range(0,n - 1))); }); var circle = function (r) { return A2(oval,2 * r,2 * r);}; var ngon = F2(function (n,r) { var m = $Basics.toFloat(n); var t = 2 * $Basics.pi / m; var f = function (i) { return {ctor: "_Tuple2",_0: r * $Basics.cos(t * i),_1: r * $Basics.sin(t * i)};}; return Shape(A2($List.map,f,_U.range(0,m - 1))); }); var Path = function (a) { return {ctor: "Path",_0: a};}; var path = function (ps) { return Path(ps);}; var segment = F2(function (p1,p2) { return Path(_U.list([p1,p2]));}); var collage = $Native$Graphics$Collage.collage; var Fill = function (a) { return {ctor: "Fill",_0: a};}; var Line = function (a) { return {ctor: "Line",_0: a};}; var FGroup = F2(function (a,b) { return {ctor: "FGroup",_0: a,_1: b};}); var FElement = function (a) { return {ctor: "FElement",_0: a};}; var FImage = F4(function (a,b,c,d) { return {ctor: "FImage",_0: a,_1: b,_2: c,_3: d};}); var FText = function (a) { return {ctor: "FText",_0: a};}; var FOutlinedText = F2(function (a,b) { return {ctor: "FOutlinedText",_0: a,_1: b};}); var FShape = F2(function (a,b) { return {ctor: "FShape",_0: a,_1: b};}); var FPath = F2(function (a,b) { return {ctor: "FPath",_0: a,_1: b};}); var LineStyle = F6(function (a,b,c,d,e,f) { return {color: a,width: b,cap: c,join: d,dashing: e,dashOffset: f};}); var Clipped = {ctor: "Clipped"}; var Sharp = function (a) { return {ctor: "Sharp",_0: a};}; var Smooth = {ctor: "Smooth"}; var Padded = {ctor: "Padded"}; var Round = {ctor: "Round"}; var Flat = {ctor: "Flat"}; var defaultLine = {color: $Color.black,width: 1,cap: Flat,join: Sharp(10),dashing: _U.list([]),dashOffset: 0}; var solid = function (clr) { return _U.update(defaultLine,{color: clr});}; var dashed = function (clr) { return _U.update(defaultLine,{color: clr,dashing: _U.list([8,4])});}; var dotted = function (clr) { return _U.update(defaultLine,{color: clr,dashing: _U.list([3,3])});}; var Grad = function (a) { return {ctor: "Grad",_0: a};}; var Texture = function (a) { return {ctor: "Texture",_0: a};}; var Solid = function (a) { return {ctor: "Solid",_0: a};}; var Form_elm_builtin = function (a) { return {ctor: "Form_elm_builtin",_0: a};}; var form = function (f) { return Form_elm_builtin({theta: 0,scale: 1,x: 0,y: 0,alpha: 1,form: f});}; var fill = F2(function (style,_p0) { var _p1 = _p0;return form(A2(FShape,Fill(style),_p1._0));}); var filled = F2(function (color,shape) { return A2(fill,Solid(color),shape);}); var textured = F2(function (src,shape) { return A2(fill,Texture(src),shape);}); var gradient = F2(function (grad,shape) { return A2(fill,Grad(grad),shape);}); var outlined = F2(function (style,_p2) { var _p3 = _p2;return form(A2(FShape,Line(style),_p3._0));}); var traced = F2(function (style,_p4) { var _p5 = _p4;return form(A2(FPath,style,_p5._0));}); var sprite = F4(function (w,h,pos,src) { return form(A4(FImage,w,h,pos,src));}); var toForm = function (e) { return form(FElement(e));}; var group = function (fs) { return form(A2(FGroup,$Transform2D.identity,fs));}; var groupTransform = F2(function (matrix,fs) { return form(A2(FGroup,matrix,fs));}); var text = function (t) { return form(FText(t));}; var outlinedText = F2(function (ls,t) { return form(A2(FOutlinedText,ls,t));}); var move = F2(function (_p7,_p6) { var _p8 = _p7; var _p9 = _p6; var _p10 = _p9._0; return Form_elm_builtin(_U.update(_p10,{x: _p10.x + _p8._0,y: _p10.y + _p8._1})); }); var moveX = F2(function (x,_p11) { var _p12 = _p11;var _p13 = _p12._0;return Form_elm_builtin(_U.update(_p13,{x: _p13.x + x}));}); var moveY = F2(function (y,_p14) { var _p15 = _p14;var _p16 = _p15._0;return Form_elm_builtin(_U.update(_p16,{y: _p16.y + y}));}); var scale = F2(function (s,_p17) { var _p18 = _p17;var _p19 = _p18._0;return Form_elm_builtin(_U.update(_p19,{scale: _p19.scale * s}));}); var rotate = F2(function (t,_p20) { var _p21 = _p20;var _p22 = _p21._0;return Form_elm_builtin(_U.update(_p22,{theta: _p22.theta + t}));}); var alpha = F2(function (a,_p23) { var _p24 = _p23;return Form_elm_builtin(_U.update(_p24._0,{alpha: a}));}); return _elm.Graphics.Collage.values = {_op: _op ,collage: collage ,toForm: toForm ,filled: filled ,textured: textured ,gradient: gradient ,outlined: outlined ,traced: traced ,text: text ,outlinedText: outlinedText ,move: move ,moveX: moveX ,moveY: moveY ,scale: scale ,rotate: rotate ,alpha: alpha ,group: group ,groupTransform: groupTransform ,rect: rect ,oval: oval ,square: square ,circle: circle ,ngon: ngon ,polygon: polygon ,segment: segment ,path: path ,solid: solid ,dashed: dashed ,dotted: dotted ,defaultLine: defaultLine ,LineStyle: LineStyle ,Flat: Flat ,Round: Round ,Padded: Padded ,Smooth: Smooth ,Sharp: Sharp ,Clipped: Clipped}; }; Elm.Native.Debug = {}; Elm.Native.Debug.make = function(localRuntime) { localRuntime.Native = localRuntime.Native || {}; localRuntime.Native.Debug = localRuntime.Native.Debug || {}; if (localRuntime.Native.Debug.values) { return localRuntime.Native.Debug.values; } var toString = Elm.Native.Utils.make(localRuntime).toString; function log(tag, value) { var msg = tag + ': ' + toString(value); var process = process || {}; if (process.stdout) { process.stdout.write(msg); } else { console.log(msg); } return value; } function crash(message) { throw new Error(message); } function tracePath(tag, form) { if (localRuntime.debug) { return localRuntime.debug.trace(tag, form); } return form; } function watch(tag, value) { if (localRuntime.debug) { localRuntime.debug.watch(tag, value); } return value; } function watchSummary(tag, summarize, value) { if (localRuntime.debug) { localRuntime.debug.watch(tag, summarize(value)); } return value; } return localRuntime.Native.Debug.values = { crash: crash, tracePath: F2(tracePath), log: F2(log), watch: F2(watch), watchSummary: F3(watchSummary) }; }; Elm.Debug = Elm.Debug || {}; Elm.Debug.make = function (_elm) { "use strict"; _elm.Debug = _elm.Debug || {}; if (_elm.Debug.values) return _elm.Debug.values; var _U = Elm.Native.Utils.make(_elm),$Graphics$Collage = Elm.Graphics.Collage.make(_elm),$Native$Debug = Elm.Native.Debug.make(_elm); var _op = {}; var trace = $Native$Debug.tracePath; var watchSummary = $Native$Debug.watchSummary; var watch = $Native$Debug.watch; var crash = $Native$Debug.crash; var log = $Native$Debug.log; return _elm.Debug.values = {_op: _op,log: log,crash: crash,watch: watch,watchSummary: watchSummary,trace: trace}; }; Elm.Result = Elm.Result || {}; Elm.Result.make = function (_elm) { "use strict"; _elm.Result = _elm.Result || {}; if (_elm.Result.values) return _elm.Result.values; var _U = Elm.Native.Utils.make(_elm),$Maybe = Elm.Maybe.make(_elm); var _op = {}; var toMaybe = function (result) { var _p0 = result;if (_p0.ctor === "Ok") { return $Maybe.Just(_p0._0);} else { return $Maybe.Nothing;}}; var withDefault = F2(function (def,result) { var _p1 = result;if (_p1.ctor === "Ok") { return _p1._0;} else { return def;}}); var Err = function (a) { return {ctor: "Err",_0: a};}; var andThen = F2(function (result,callback) { var _p2 = result;if (_p2.ctor === "Ok") { return callback(_p2._0);} else { return Err(_p2._0);}}); var Ok = function (a) { return {ctor: "Ok",_0: a};}; var map = F2(function (func,ra) { var _p3 = ra;if (_p3.ctor === "Ok") { return Ok(func(_p3._0));} else { return Err(_p3._0);}}); var map2 = F3(function (func,ra,rb) { var _p4 = {ctor: "_Tuple2",_0: ra,_1: rb}; if (_p4._0.ctor === "Ok") { if (_p4._1.ctor === "Ok") { return Ok(A2(func,_p4._0._0,_p4._1._0)); } else { return Err(_p4._1._0); } } else { return Err(_p4._0._0); } }); var map3 = F4(function (func,ra,rb,rc) { var _p5 = {ctor: "_Tuple3",_0: ra,_1: rb,_2: rc}; if (_p5._0.ctor === "Ok") { if (_p5._1.ctor === "Ok") { if (_p5._2.ctor === "Ok") { return Ok(A3(func,_p5._0._0,_p5._1._0,_p5._2._0)); } else { return Err(_p5._2._0); } } else { return Err(_p5._1._0); } } else { return Err(_p5._0._0); } }); var map4 = F5(function (func,ra,rb,rc,rd) { var _p6 = {ctor: "_Tuple4",_0: ra,_1: rb,_2: rc,_3: rd}; if (_p6._0.ctor === "Ok") { if (_p6._1.ctor === "Ok") { if (_p6._2.ctor === "Ok") { if (_p6._3.ctor === "Ok") { return Ok(A4(func,_p6._0._0,_p6._1._0,_p6._2._0,_p6._3._0)); } else { return Err(_p6._3._0); } } else { return Err(_p6._2._0); } } else { return Err(_p6._1._0); } } else { return Err(_p6._0._0); } }); var map5 = F6(function (func,ra,rb,rc,rd,re) { var _p7 = {ctor: "_Tuple5",_0: ra,_1: rb,_2: rc,_3: rd,_4: re}; if (_p7._0.ctor === "Ok") { if (_p7._1.ctor === "Ok") { if (_p7._2.ctor === "Ok") { if (_p7._3.ctor === "Ok") { if (_p7._4.ctor === "Ok") { return Ok(A5(func,_p7._0._0,_p7._1._0,_p7._2._0,_p7._3._0,_p7._4._0)); } else { return Err(_p7._4._0); } } else { return Err(_p7._3._0); } } else { return Err(_p7._2._0); } } else { return Err(_p7._1._0); } } else { return Err(_p7._0._0); } }); var formatError = F2(function (f,result) { var _p8 = result;if (_p8.ctor === "Ok") { return Ok(_p8._0);} else { return Err(f(_p8._0));}}); var fromMaybe = F2(function (err,maybe) { var _p9 = maybe;if (_p9.ctor === "Just") { return Ok(_p9._0);} else { return Err(err);}}); return _elm.Result.values = {_op: _op ,withDefault: withDefault ,map: map ,map2: map2 ,map3: map3 ,map4: map4 ,map5: map5 ,andThen: andThen ,toMaybe: toMaybe ,fromMaybe: fromMaybe ,formatError: formatError ,Ok: Ok ,Err: Err}; }; Elm.Native.Signal = {}; Elm.Native.Signal.make = function(localRuntime) { localRuntime.Native = localRuntime.Native || {}; localRuntime.Native.Signal = localRuntime.Native.Signal || {}; if (localRuntime.Native.Signal.values) { return localRuntime.Native.Signal.values; } var Task = Elm.Native.Task.make(localRuntime); var Utils = Elm.Native.Utils.make(localRuntime); function broadcastToKids(node, timestamp, update) { var kids = node.kids; for (var i = kids.length; i--; ) { kids[i].notify(timestamp, update, node.id); } } // INPUT function input(name, base) { var node = { id: Utils.guid(), name: 'input-' + name, value: base, parents: [], kids: [] }; node.notify = function(timestamp, targetId, value) { var update = targetId === node.id; if (update) { node.value = value; } broadcastToKids(node, timestamp, update); return update; }; localRuntime.inputs.push(node); return node; } function constant(value) { return input('constant', value); } // MAILBOX function mailbox(base) { var signal = input('mailbox', base); function send(value) { return Task.asyncFunction(function(callback) { localRuntime.setTimeout(function() { localRuntime.notify(signal.id, value); }, 0); callback(Task.succeed(Utils.Tuple0)); }); } return { signal: signal, address: { ctor: 'Address', _0: send } }; } function sendMessage(message) { Task.perform(message._0); } // OUTPUT function output(name, handler, parent) { var node = { id: Utils.guid(), name: 'output-' + name, parents: [parent], isOutput: true }; node.notify = function(timestamp, parentUpdate, parentID) { if (parentUpdate) { handler(parent.value); } }; parent.kids.push(node); return node; } // MAP function mapMany(refreshValue, args) { var node = { id: Utils.guid(), name: 'map' + args.length, value: refreshValue(), parents: args, kids: [] }; var numberOfParents = args.length; var count = 0; var update = false; node.notify = function(timestamp, parentUpdate, parentID) { ++count; update = update || parentUpdate; if (count === numberOfParents) { if (update) { node.value = refreshValue(); } broadcastToKids(node, timestamp, update); update = false; count = 0; } }; for (var i = numberOfParents; i--; ) { args[i].kids.push(node); } return node; } function map(func, a) { function refreshValue() { return func(a.value); } return mapMany(refreshValue, [a]); } function map2(func, a, b) { function refreshValue() { return A2( func, a.value, b.value ); } return mapMany(refreshValue, [a, b]); } function map3(func, a, b, c) { function refreshValue() { return A3( func, a.value, b.value, c.value ); } return mapMany(refreshValue, [a, b, c]); } function map4(func, a, b, c, d) { function refreshValue() { return A4( func, a.value, b.value, c.value, d.value ); } return mapMany(refreshValue, [a, b, c, d]); } function map5(func, a, b, c, d, e) { function refreshValue() { return A5( func, a.value, b.value, c.value, d.value, e.value ); } return mapMany(refreshValue, [a, b, c, d, e]); } // FOLD function foldp(update, state, signal) { var node = { id: Utils.guid(), name: 'foldp', parents: [signal], kids: [], value: state }; node.notify = function(timestamp, parentUpdate, parentID) { if (parentUpdate) { node.value = A2( update, signal.value, node.value ); } broadcastToKids(node, timestamp, parentUpdate); }; signal.kids.push(node); return node; } // TIME function timestamp(signal) { var node = { id: Utils.guid(), name: 'timestamp', value: Utils.Tuple2(localRuntime.timer.programStart, signal.value), parents: [signal], kids: [] }; node.notify = function(timestamp, parentUpdate, parentID) { if (parentUpdate) { node.value = Utils.Tuple2(timestamp, signal.value); } broadcastToKids(node, timestamp, parentUpdate); }; signal.kids.push(node); return node; } function delay(time, signal) { var delayed = input('delay-input-' + time, signal.value); function handler(value) { setTimeout(function() { localRuntime.notify(delayed.id, value); }, time); } output('delay-output-' + time, handler, signal); return delayed; } // MERGING function genericMerge(tieBreaker, leftStream, rightStream) { var node = { id: Utils.guid(), name: 'merge', value: A2(tieBreaker, leftStream.value, rightStream.value), parents: [leftStream, rightStream], kids: [] }; var left = { touched: false, update: false, value: null }; var right = { touched: false, update: false, value: null }; node.notify = function(timestamp, parentUpdate, parentID) { if (parentID === leftStream.id) { left.touched = true; left.update = parentUpdate; left.value = leftStream.value; } if (parentID === rightStream.id) { right.touched = true; right.update = parentUpdate; right.value = rightStream.value; } if (left.touched && right.touched) { var update = false; if (left.update && right.update) { node.value = A2(tieBreaker, left.value, right.value); update = true; } else if (left.update) { node.value = left.value; update = true; } else if (right.update) { node.value = right.value; update = true; } left.touched = false; right.touched = false; broadcastToKids(node, timestamp, update); } }; leftStream.kids.push(node); rightStream.kids.push(node); return node; } // FILTERING function filterMap(toMaybe, base, signal) { var maybe = toMaybe(signal.value); var node = { id: Utils.guid(), name: 'filterMap', value: maybe.ctor === 'Nothing' ? base : maybe._0, parents: [signal], kids: [] }; node.notify = function(timestamp, parentUpdate, parentID) { var update = false; if (parentUpdate) { var maybe = toMaybe(signal.value); if (maybe.ctor === 'Just') { update = true; node.value = maybe._0; } } broadcastToKids(node, timestamp, update); }; signal.kids.push(node); return node; } // SAMPLING function sampleOn(ticker, signal) { var node = { id: Utils.guid(), name: 'sampleOn', value: signal.value, parents: [ticker, signal], kids: [] }; var signalTouch = false; var tickerTouch = false; var tickerUpdate = false; node.notify = function(timestamp, parentUpdate, parentID) { if (parentID === ticker.id) { tickerTouch = true; tickerUpdate = parentUpdate; } if (parentID === signal.id) { signalTouch = true; } if (tickerTouch && signalTouch) { if (tickerUpdate) { node.value = signal.value; } tickerTouch = false; signalTouch = false; broadcastToKids(node, timestamp, tickerUpdate); } }; ticker.kids.push(node); signal.kids.push(node); return node; } // DROP REPEATS function dropRepeats(signal) { var node = { id: Utils.guid(), name: 'dropRepeats', value: signal.value, parents: [signal], kids: [] }; node.notify = function(timestamp, parentUpdate, parentID) { var update = false; if (parentUpdate && !Utils.eq(node.value, signal.value)) { node.value = signal.value; update = true; } broadcastToKids(node, timestamp, update); }; signal.kids.push(node); return node; } return localRuntime.Native.Signal.values = { input: input, constant: constant, mailbox: mailbox, sendMessage: sendMessage, output: output, map: F2(map), map2: F3(map2), map3: F4(map3), map4: F5(map4), map5: F6(map5), foldp: F3(foldp), genericMerge: F3(genericMerge), filterMap: F3(filterMap), sampleOn: F2(sampleOn), dropRepeats: dropRepeats, timestamp: timestamp, delay: F2(delay) }; }; Elm.Native.Task = {}; Elm.Native.Task.make = function(localRuntime) { localRuntime.Native = localRuntime.Native || {}; localRuntime.Native.Task = localRuntime.Native.Task || {}; if (localRuntime.Native.Task.values) { return localRuntime.Native.Task.values; } var Result = Elm.Result.make(localRuntime); var Signal; var Utils = Elm.Native.Utils.make(localRuntime); // CONSTRUCTORS function succeed(value) { return { tag: 'Succeed', value: value }; } function fail(error) { return { tag: 'Fail', value: error }; } function asyncFunction(func) { return { tag: 'Async', asyncFunction: func }; } function andThen(task, callback) { return { tag: 'AndThen', task: task, callback: callback }; } function catch_(task, callback) { return { tag: 'Catch', task: task, callback: callback }; } // RUNNER function perform(task) { runTask({ task: task }, function() {}); } function performSignal(name, signal) { var workQueue = []; function onComplete() { workQueue.shift(); if (workQueue.length > 0) { var task = workQueue[0]; setTimeout(function() { runTask(task, onComplete); }, 0); } } function register(task) { var root = { task: task }; workQueue.push(root); if (workQueue.length === 1) { runTask(root, onComplete); } } if (!Signal) { Signal = Elm.Native.Signal.make(localRuntime); } Signal.output('perform-tasks-' + name, register, signal); register(signal.value); return signal; } function mark(status, task) { return { status: status, task: task }; } function runTask(root, onComplete) { var result = mark('runnable', root.task); while (result.status === 'runnable') { result = stepTask(onComplete, root, result.task); } if (result.status === 'done') { root.task = result.task; onComplete(); } if (result.status === 'blocked') { root.task = result.task; } } function stepTask(onComplete, root, task) { var tag = task.tag; if (tag === 'Succeed' || tag === 'Fail') { return mark('done', task); } if (tag === 'Async') { var placeHolder = {}; var couldBeSync = true; var wasSync = false; task.asyncFunction(function(result) { placeHolder.tag = result.tag; placeHolder.value = result.value; if (couldBeSync) { wasSync = true; } else { runTask(root, onComplete); } }); couldBeSync = false; return mark(wasSync ? 'done' : 'blocked', placeHolder); } if (tag === 'AndThen' || tag === 'Catch') { var result = mark('runnable', task.task); while (result.status === 'runnable') { result = stepTask(onComplete, root, result.task); } if (result.status === 'done') { var activeTask = result.task; var activeTag = activeTask.tag; var succeedChain = activeTag === 'Succeed' && tag === 'AndThen'; var failChain = activeTag === 'Fail' && tag === 'Catch'; return (succeedChain || failChain) ? mark('runnable', task.callback(activeTask.value)) : mark('runnable', activeTask); } if (result.status === 'blocked') { return mark('blocked', { tag: tag, task: result.task, callback: task.callback }); } } } // THREADS function sleep(time) { return asyncFunction(function(callback) { setTimeout(function() { callback(succeed(Utils.Tuple0)); }, time); }); } function spawn(task) { return asyncFunction(function(callback) { var id = setTimeout(function() { perform(task); }, 0); callback(succeed(id)); }); } return localRuntime.Native.Task.values = { succeed: succeed, fail: fail, asyncFunction: asyncFunction, andThen: F2(andThen), catch_: F2(catch_), perform: perform, performSignal: performSignal, spawn: spawn, sleep: sleep }; }; Elm.Task = Elm.Task || {}; Elm.Task.make = function (_elm) { "use strict"; _elm.Task = _elm.Task || {}; if (_elm.Task.values) return _elm.Task.values; var _U = Elm.Native.Utils.make(_elm), $List = Elm.List.make(_elm), $Maybe = Elm.Maybe.make(_elm), $Native$Task = Elm.Native.Task.make(_elm), $Result = Elm.Result.make(_elm); var _op = {}; var sleep = $Native$Task.sleep; var spawn = $Native$Task.spawn; var ThreadID = function (a) { return {ctor: "ThreadID",_0: a};}; var onError = $Native$Task.catch_; var andThen = $Native$Task.andThen; var fail = $Native$Task.fail; var mapError = F2(function (f,task) { return A2(onError,task,function (err) { return fail(f(err));});}); var succeed = $Native$Task.succeed; var map = F2(function (func,taskA) { return A2(andThen,taskA,function (a) { return succeed(func(a));});}); var map2 = F3(function (func,taskA,taskB) { return A2(andThen,taskA,function (a) { return A2(andThen,taskB,function (b) { return succeed(A2(func,a,b));});}); }); var map3 = F4(function (func,taskA,taskB,taskC) { return A2(andThen, taskA, function (a) { return A2(andThen,taskB,function (b) { return A2(andThen,taskC,function (c) { return succeed(A3(func,a,b,c));});}); }); }); var map4 = F5(function (func,taskA,taskB,taskC,taskD) { return A2(andThen, taskA, function (a) { return A2(andThen, taskB, function (b) { return A2(andThen,taskC,function (c) { return A2(andThen,taskD,function (d) { return succeed(A4(func,a,b,c,d));});}); }); }); }); var map5 = F6(function (func,taskA,taskB,taskC,taskD,taskE) { return A2(andThen, taskA, function (a) { return A2(andThen, taskB, function (b) { return A2(andThen, taskC, function (c) { return A2(andThen,taskD,function (d) { return A2(andThen,taskE,function (e) { return succeed(A5(func,a,b,c,d,e));});}); }); }); }); }); var andMap = F2(function (taskFunc,taskValue) { return A2(andThen,taskFunc,function (func) { return A2(andThen,taskValue,function (value) { return succeed(func(value));});}); }); var sequence = function (tasks) { var _p0 = tasks; if (_p0.ctor === "[]") { return succeed(_U.list([])); } else { return A3(map2,F2(function (x,y) { return A2($List._op["::"],x,y);}),_p0._0,sequence(_p0._1)); } }; var toMaybe = function (task) { return A2(onError,A2(map,$Maybe.Just,task),function (_p1) { return succeed($Maybe.Nothing);});}; var fromMaybe = F2(function ($default,maybe) { var _p2 = maybe;if (_p2.ctor === "Just") { return succeed(_p2._0);} else { return fail($default);}}); var toResult = function (task) { return A2(onError,A2(map,$Result.Ok,task),function (msg) { return succeed($Result.Err(msg));});}; var fromResult = function (result) { var _p3 = result;if (_p3.ctor === "Ok") { return succeed(_p3._0);} else { return fail(_p3._0);}}; var Task = {ctor: "Task"}; return _elm.Task.values = {_op: _op ,succeed: succeed ,fail: fail ,map: map ,map2: map2 ,map3: map3 ,map4: map4 ,map5: map5 ,andMap: andMap ,sequence: sequence ,andThen: andThen ,onError: onError ,mapError: mapError ,toMaybe: toMaybe ,fromMaybe: fromMaybe ,toResult: toResult ,fromResult: fromResult ,spawn: spawn ,sleep: sleep}; }; Elm.Signal = Elm.Signal || {}; Elm.Signal.make = function (_elm) { "use strict"; _elm.Signal = _elm.Signal || {}; if (_elm.Signal.values) return _elm.Signal.values; var _U = Elm.Native.Utils.make(_elm), $Basics = Elm.Basics.make(_elm), $Debug = Elm.Debug.make(_elm), $List = Elm.List.make(_elm), $Maybe = Elm.Maybe.make(_elm), $Native$Signal = Elm.Native.Signal.make(_elm), $Task = Elm.Task.make(_elm); var _op = {}; var send = F2(function (_p0,value) { var _p1 = _p0; return A2($Task.onError,_p1._0(value),function (_p2) { return $Task.succeed({ctor: "_Tuple0"});}); }); var Message = function (a) { return {ctor: "Message",_0: a};}; var message = F2(function (_p3,value) { var _p4 = _p3;return Message(_p4._0(value));}); var mailbox = $Native$Signal.mailbox; var Address = function (a) { return {ctor: "Address",_0: a};}; var forwardTo = F2(function (_p5,f) { var _p6 = _p5;return Address(function (x) { return _p6._0(f(x));});}); var Mailbox = F2(function (a,b) { return {address: a,signal: b};}); var sampleOn = $Native$Signal.sampleOn; var dropRepeats = $Native$Signal.dropRepeats; var filterMap = $Native$Signal.filterMap; var filter = F3(function (isOk,base,signal) { return A3(filterMap,function (value) { return isOk(value) ? $Maybe.Just(value) : $Maybe.Nothing;},base,signal); }); var merge = F2(function (left,right) { return A3($Native$Signal.genericMerge,$Basics.always,left,right);}); var mergeMany = function (signalList) { var _p7 = $List.reverse(signalList); if (_p7.ctor === "[]") { return _U.crashCase("Signal",{start: {line: 184,column: 3},end: {line: 189,column: 40}},_p7)("mergeMany was given an empty list!"); } else { return A3($List.foldl,merge,_p7._0,_p7._1); } }; var foldp = $Native$Signal.foldp; var map5 = $Native$Signal.map5; var map4 = $Native$Signal.map4; var map3 = $Native$Signal.map3; var map2 = $Native$Signal.map2; var map = $Native$Signal.map; var constant = $Native$Signal.constant; var Signal = {ctor: "Signal"}; return _elm.Signal.values = {_op: _op ,merge: merge ,mergeMany: mergeMany ,map: map ,map2: map2 ,map3: map3 ,map4: map4 ,map5: map5 ,constant: constant ,dropRepeats: dropRepeats ,filter: filter ,filterMap: filterMap ,sampleOn: sampleOn ,foldp: foldp ,mailbox: mailbox ,send: send ,message: message ,forwardTo: forwardTo ,Mailbox: Mailbox}; }; Elm.Native.String = {}; Elm.Native.String.make = function(localRuntime) { localRuntime.Native = localRuntime.Native || {}; localRuntime.Native.String = localRuntime.Native.String || {}; if (localRuntime.Native.String.values) { return localRuntime.Native.String.values; } if ('values' in Elm.Native.String) { return localRuntime.Native.String.values = Elm.Native.String.values; } var Char = Elm.Char.make(localRuntime); var List = Elm.Native.List.make(localRuntime); var Maybe = Elm.Maybe.make(localRuntime); var Result = Elm.Result.make(localRuntime); var Utils = Elm.Native.Utils.make(localRuntime); function isEmpty(str) { return str.length === 0; } function cons(chr, str) { return chr + str; } function uncons(str) { var hd = str[0]; if (hd) { return Maybe.Just(Utils.Tuple2(Utils.chr(hd), str.slice(1))); } return Maybe.Nothing; } function append(a, b) { return a + b; } function concat(strs) { return List.toArray(strs).join(''); } function length(str) { return str.length; } function map(f, str) { var out = str.split(''); for (var i = out.length; i--; ) { out[i] = f(Utils.chr(out[i])); } return out.join(''); } function filter(pred, str) { return str.split('').map(Utils.chr).filter(pred).join(''); } function reverse(str) { return str.split('').reverse().join(''); } function foldl(f, b, str) { var len = str.length; for (var i = 0; i < len; ++i) { b = A2(f, Utils.chr(str[i]), b); } return b; } function foldr(f, b, str) { for (var i = str.length; i--; ) { b = A2(f, Utils.chr(str[i]), b); } return b; } function split(sep, str) { return List.fromArray(str.split(sep)); } function join(sep, strs) { return List.toArray(strs).join(sep); } function repeat(n, str) { var result = ''; while (n > 0) { if (n & 1) { result += str; } n >>= 1, str += str; } return result; } function slice(start, end, str) { return str.slice(start, end); } function left(n, str) { return n < 1 ? '' : str.slice(0, n); } function right(n, str) { return n < 1 ? '' : str.slice(-n); } function dropLeft(n, str) { return n < 1 ? str : str.slice(n); } function dropRight(n, str) { return n < 1 ? str : str.slice(0, -n); } function pad(n, chr, str) { var half = (n - str.length) / 2; return repeat(Math.ceil(half), chr) + str + repeat(half | 0, chr); } function padRight(n, chr, str) { return str + repeat(n - str.length, chr); } function padLeft(n, chr, str) { return repeat(n - str.length, chr) + str; } function trim(str) { return str.trim(); } function trimLeft(str) { return str.replace(/^\s+/, ''); } function trimRight(str) { return str.replace(/\s+$/, ''); } function words(str) { return List.fromArray(str.trim().split(/\s+/g)); } function lines(str) { return List.fromArray(str.split(/\r\n|\r|\n/g)); } function toUpper(str) { return str.toUpperCase(); } function toLower(str) { return str.toLowerCase(); } function any(pred, str) { for (var i = str.length; i--; ) { if (pred(Utils.chr(str[i]))) { return true; } } return false; } function all(pred, str) { for (var i = str.length; i--; ) { if (!pred(Utils.chr(str[i]))) { return false; } } return true; } function contains(sub, str) { return str.indexOf(sub) > -1; } function startsWith(sub, str) { return str.indexOf(sub) === 0; } function endsWith(sub, str) { return str.length >= sub.length && str.lastIndexOf(sub) === str.length - sub.length; } function indexes(sub, str) { var subLen = sub.length; var i = 0; var is = []; while ((i = str.indexOf(sub, i)) > -1) { is.push(i); i = i + subLen; } return List.fromArray(is); } function toInt(s) { var len = s.length; if (len === 0) { return Result.Err("could not convert string '" + s + "' to an Int" ); } var start = 0; if (s[0] === '-') { if (len === 1) { return Result.Err("could not convert string '" + s + "' to an Int" ); } start = 1; } for (var i = start; i < len; ++i) { if (!Char.isDigit(s[i])) { return Result.Err("could not convert string '" + s + "' to an Int" ); } } return Result.Ok(parseInt(s, 10)); } function toFloat(s) { var len = s.length; if (len === 0) { return Result.Err("could not convert string '" + s + "' to a Float" ); } var start = 0; if (s[0] === '-') { if (len === 1) { return Result.Err("could not convert string '" + s + "' to a Float" ); } start = 1; } var dotCount = 0; for (var i = start; i < len; ++i) { if (Char.isDigit(s[i])) { continue; } if (s[i] === '.') { dotCount += 1; if (dotCount <= 1) { continue; } } return Result.Err("could not convert string '" + s + "' to a Float" ); } return Result.Ok(parseFloat(s)); } function toList(str) { return List.fromArray(str.split('').map(Utils.chr)); } function fromList(chars) { return List.toArray(chars).join(''); } return Elm.Native.String.values = { isEmpty: isEmpty, cons: F2(cons), uncons: uncons, append: F2(append), concat: concat, length: length, map: F2(map), filter: F2(filter), reverse: reverse, foldl: F3(foldl), foldr: F3(foldr), split: F2(split), join: F2(join), repeat: F2(repeat), slice: F3(slice), left: F2(left), right: F2(right), dropLeft: F2(dropLeft), dropRight: F2(dropRight), pad: F3(pad), padLeft: F3(padLeft), padRight: F3(padRight), trim: trim, trimLeft: trimLeft, trimRight: trimRight, words: words, lines: lines, toUpper: toUpper, toLower: toLower, any: F2(any), all: F2(all), contains: F2(contains), startsWith: F2(startsWith), endsWith: F2(endsWith), indexes: F2(indexes), toInt: toInt, toFloat: toFloat, toList: toList, fromList: fromList }; }; Elm.Native.Char = {}; Elm.Native.Char.make = function(localRuntime) { localRuntime.Native = localRuntime.Native || {}; localRuntime.Native.Char = localRuntime.Native.Char || {}; if (localRuntime.Native.Char.values) { return localRuntime.Native.Char.values; } var Utils = Elm.Native.Utils.make(localRuntime); return localRuntime.Native.Char.values = { fromCode: function(c) { return Utils.chr(String.fromCharCode(c)); }, toCode: function(c) { return c.charCodeAt(0); }, toUpper: function(c) { return Utils.chr(c.toUpperCase()); }, toLower: function(c) { return Utils.chr(c.toLowerCase()); }, toLocaleUpper: function(c) { return Utils.chr(c.toLocaleUpperCase()); }, toLocaleLower: function(c) { return Utils.chr(c.toLocaleLowerCase()); } }; }; Elm.Char = Elm.Char || {}; Elm.Char.make = function (_elm) { "use strict"; _elm.Char = _elm.Char || {}; if (_elm.Char.values) return _elm.Char.values; var _U = Elm.Native.Utils.make(_elm),$Basics = Elm.Basics.make(_elm),$Native$Char = Elm.Native.Char.make(_elm); var _op = {}; var fromCode = $Native$Char.fromCode; var toCode = $Native$Char.toCode; var toLocaleLower = $Native$Char.toLocaleLower; var toLocaleUpper = $Native$Char.toLocaleUpper; var toLower = $Native$Char.toLower; var toUpper = $Native$Char.toUpper; var isBetween = F3(function (low,high,$char) { var code = toCode($char);return _U.cmp(code,toCode(low)) > -1 && _U.cmp(code,toCode(high)) < 1;}); var isUpper = A2(isBetween,_U.chr("A"),_U.chr("Z")); var isLower = A2(isBetween,_U.chr("a"),_U.chr("z")); var isDigit = A2(isBetween,_U.chr("0"),_U.chr("9")); var isOctDigit = A2(isBetween,_U.chr("0"),_U.chr("7")); var isHexDigit = function ($char) { return isDigit($char) || (A3(isBetween,_U.chr("a"),_U.chr("f"),$char) || A3(isBetween,_U.chr("A"),_U.chr("F"),$char)); }; return _elm.Char.values = {_op: _op ,isUpper: isUpper ,isLower: isLower ,isDigit: isDigit ,isOctDigit: isOctDigit ,isHexDigit: isHexDigit ,toUpper: toUpper ,toLower: toLower ,toLocaleUpper: toLocaleUpper ,toLocaleLower: toLocaleLower ,toCode: toCode ,fromCode: fromCode}; }; Elm.String = Elm.String || {}; Elm.String.make = function (_elm) { "use strict"; _elm.String = _elm.String || {}; if (_elm.String.values) return _elm.String.values; var _U = Elm.Native.Utils.make(_elm),$Maybe = Elm.Maybe.make(_elm),$Native$String = Elm.Native.String.make(_elm),$Result = Elm.Result.make(_elm); var _op = {}; var fromList = $Native$String.fromList; var toList = $Native$String.toList; var toFloat = $Native$String.toFloat; var toInt = $Native$String.toInt; var indices = $Native$String.indexes; var indexes = $Native$String.indexes; var endsWith = $Native$String.endsWith; var startsWith = $Native$String.startsWith; var contains = $Native$String.contains; var all = $Native$String.all; var any = $Native$String.any; var toLower = $Native$String.toLower; var toUpper = $Native$String.toUpper; var lines = $Native$String.lines; var words = $Native$String.words; var trimRight = $Native$String.trimRight; var trimLeft = $Native$String.trimLeft; var trim = $Native$String.trim; var padRight = $Native$String.padRight; var padLeft = $Native$String.padLeft; var pad = $Native$String.pad; var dropRight = $Native$String.dropRight; var dropLeft = $Native$String.dropLeft; var right = $Native$String.right; var left = $Native$String.left; var slice = $Native$String.slice; var repeat = $Native$String.repeat; var join = $Native$String.join; var split = $Native$String.split; var foldr = $Native$String.foldr; var foldl = $Native$String.foldl; var reverse = $Native$String.reverse; var filter = $Native$String.filter; var map = $Native$String.map; var length = $Native$String.length; var concat = $Native$String.concat; var append = $Native$String.append; var uncons = $Native$String.uncons; var cons = $Native$String.cons; var fromChar = function ($char) { return A2(cons,$char,"");}; var isEmpty = $Native$String.isEmpty; return _elm.String.values = {_op: _op ,isEmpty: isEmpty ,length: length ,reverse: reverse ,repeat: repeat ,cons: cons ,uncons: uncons ,fromChar: fromChar ,append: append ,concat: concat ,split: split ,join: join ,words: words ,lines: lines ,slice: slice ,left: left ,right: right ,dropLeft: dropLeft ,dropRight: dropRight ,contains: contains ,startsWith: startsWith ,endsWith: endsWith ,indexes: indexes ,indices: indices ,toInt: toInt ,toFloat: toFloat ,toList: toList ,fromList: fromList ,toUpper: toUpper ,toLower: toLower ,pad: pad ,padLeft: padLeft ,padRight: padRight ,trim: trim ,trimLeft: trimLeft ,trimRight: trimRight ,map: map ,filter: filter ,foldl: foldl ,foldr: foldr ,any: any ,all: all}; }; Elm.Dict = Elm.Dict || {}; Elm.Dict.make = function (_elm) { "use strict"; _elm.Dict = _elm.Dict || {}; if (_elm.Dict.values) return _elm.Dict.values; var _U = Elm.Native.Utils.make(_elm), $Basics = Elm.Basics.make(_elm), $List = Elm.List.make(_elm), $Maybe = Elm.Maybe.make(_elm), $Native$Debug = Elm.Native.Debug.make(_elm), $String = Elm.String.make(_elm); var _op = {}; var foldr = F3(function (f,acc,t) { foldr: while (true) { var _p0 = t; if (_p0.ctor === "RBEmpty_elm_builtin") { return acc; } else { var _v1 = f,_v2 = A3(f,_p0._1,_p0._2,A3(foldr,f,acc,_p0._4)),_v3 = _p0._3; f = _v1; acc = _v2; t = _v3; continue foldr; } } }); var keys = function (dict) { return A3(foldr,F3(function (key,value,keyList) { return A2($List._op["::"],key,keyList);}),_U.list([]),dict);}; var values = function (dict) { return A3(foldr,F3(function (key,value,valueList) { return A2($List._op["::"],value,valueList);}),_U.list([]),dict);}; var toList = function (dict) { return A3(foldr,F3(function (key,value,list) { return A2($List._op["::"],{ctor: "_Tuple2",_0: key,_1: value},list);}),_U.list([]),dict); }; var foldl = F3(function (f,acc,dict) { foldl: while (true) { var _p1 = dict; if (_p1.ctor === "RBEmpty_elm_builtin") { return acc; } else { var _v5 = f,_v6 = A3(f,_p1._1,_p1._2,A3(foldl,f,acc,_p1._3)),_v7 = _p1._4; f = _v5; acc = _v6; dict = _v7; continue foldl; } } }); var reportRemBug = F4(function (msg,c,lgot,rgot) { return $Native$Debug.crash($String.concat(_U.list(["Internal red-black tree invariant violated, expected " ,msg ," and got " ,$Basics.toString(c) ,"/" ,lgot ,"/" ,rgot ,"\nPlease report this bug to "]))); }); var isBBlack = function (dict) { var _p2 = dict; _v8_2: do { if (_p2.ctor === "RBNode_elm_builtin") { if (_p2._0.ctor === "BBlack") { return true; } else { break _v8_2; } } else { if (_p2._0.ctor === "LBBlack") { return true; } else { break _v8_2; } } } while (false); return false; }; var Same = {ctor: "Same"}; var Remove = {ctor: "Remove"}; var Insert = {ctor: "Insert"}; var sizeHelp = F2(function (n,dict) { sizeHelp: while (true) { var _p3 = dict; if (_p3.ctor === "RBEmpty_elm_builtin") { return n; } else { var _v10 = A2(sizeHelp,n + 1,_p3._4),_v11 = _p3._3; n = _v10; dict = _v11; continue sizeHelp; } } }); var size = function (dict) { return A2(sizeHelp,0,dict);}; var get = F2(function (targetKey,dict) { get: while (true) { var _p4 = dict; if (_p4.ctor === "RBEmpty_elm_builtin") { return $Maybe.Nothing; } else { var _p5 = A2($Basics.compare,targetKey,_p4._1); switch (_p5.ctor) {case "LT": var _v14 = targetKey,_v15 = _p4._3; targetKey = _v14; dict = _v15; continue get; case "EQ": return $Maybe.Just(_p4._2); default: var _v16 = targetKey,_v17 = _p4._4; targetKey = _v16; dict = _v17; continue get;} } } }); var member = F2(function (key,dict) { var _p6 = A2(get,key,dict);if (_p6.ctor === "Just") { return true;} else { return false;}}); var maxWithDefault = F3(function (k,v,r) { maxWithDefault: while (true) { var _p7 = r; if (_p7.ctor === "RBEmpty_elm_builtin") { return {ctor: "_Tuple2",_0: k,_1: v}; } else { var _v20 = _p7._1,_v21 = _p7._2,_v22 = _p7._4; k = _v20; v = _v21; r = _v22; continue maxWithDefault; } } }); var RBEmpty_elm_builtin = function (a) { return {ctor: "RBEmpty_elm_builtin",_0: a};}; var RBNode_elm_builtin = F5(function (a,b,c,d,e) { return {ctor: "RBNode_elm_builtin",_0: a,_1: b,_2: c,_3: d,_4: e};}); var LBBlack = {ctor: "LBBlack"}; var LBlack = {ctor: "LBlack"}; var empty = RBEmpty_elm_builtin(LBlack); var isEmpty = function (dict) { return _U.eq(dict,empty);}; var map = F2(function (f,dict) { var _p8 = dict; if (_p8.ctor === "RBEmpty_elm_builtin") { return RBEmpty_elm_builtin(LBlack); } else { var _p9 = _p8._1; return A5(RBNode_elm_builtin,_p8._0,_p9,A2(f,_p9,_p8._2),A2(map,f,_p8._3),A2(map,f,_p8._4)); } }); var NBlack = {ctor: "NBlack"}; var BBlack = {ctor: "BBlack"}; var Black = {ctor: "Black"}; var ensureBlackRoot = function (dict) { var _p10 = dict; if (_p10.ctor === "RBNode_elm_builtin" && _p10._0.ctor === "Red") { return A5(RBNode_elm_builtin,Black,_p10._1,_p10._2,_p10._3,_p10._4); } else { return dict; } }; var blackish = function (t) { var _p11 = t; if (_p11.ctor === "RBNode_elm_builtin") { var _p12 = _p11._0; return _U.eq(_p12,Black) || _U.eq(_p12,BBlack); } else { return true; } }; var blacken = function (t) { var _p13 = t; if (_p13.ctor === "RBEmpty_elm_builtin") { return RBEmpty_elm_builtin(LBlack); } else { return A5(RBNode_elm_builtin,Black,_p13._1,_p13._2,_p13._3,_p13._4); } }; var Red = {ctor: "Red"}; var moreBlack = function (color) { var _p14 = color; switch (_p14.ctor) {case "Black": return BBlack; case "Red": return Black; case "NBlack": return Red; default: return $Native$Debug.crash("Can\'t make a double black node more black!");} }; var lessBlack = function (color) { var _p15 = color; switch (_p15.ctor) {case "BBlack": return Black; case "Black": return Red; case "Red": return NBlack; default: return $Native$Debug.crash("Can\'t make a negative black node less black!");} }; var lessBlackTree = function (dict) { var _p16 = dict; if (_p16.ctor === "RBNode_elm_builtin") { return A5(RBNode_elm_builtin,lessBlack(_p16._0),_p16._1,_p16._2,_p16._3,_p16._4); } else { return RBEmpty_elm_builtin(LBlack); } }; var balancedTree = function (col) { return function (xk) { return function (xv) { return function (yk) { return function (yv) { return function (zk) { return function (zv) { return function (a) { return function (b) { return function (c) { return function (d) { return A5(RBNode_elm_builtin, lessBlack(col), yk, yv, A5(RBNode_elm_builtin,Black,xk,xv,a,b), A5(RBNode_elm_builtin,Black,zk,zv,c,d)); }; }; }; }; }; }; }; }; }; }; }; var redden = function (t) { var _p17 = t; if (_p17.ctor === "RBEmpty_elm_builtin") { return $Native$Debug.crash("can\'t make a Leaf red"); } else { return A5(RBNode_elm_builtin,Red,_p17._1,_p17._2,_p17._3,_p17._4); } }; var balanceHelp = function (tree) { var _p18 = tree; _v31_6: do { _v31_5: do { _v31_4: do { _v31_3: do { _v31_2: do { _v31_1: do { _v31_0: do { if (_p18.ctor === "RBNode_elm_builtin") { if (_p18._3.ctor === "RBNode_elm_builtin") { if (_p18._4.ctor === "RBNode_elm_builtin") { switch (_p18._3._0.ctor) {case "Red": switch (_p18._4._0.ctor) {case "Red": if (_p18._3._3.ctor === "RBNode_elm_builtin" && _p18._3._3._0.ctor === "Red") { break _v31_0; } else { if (_p18._3._4.ctor === "RBNode_elm_builtin" && _p18._3._4._0.ctor === "Red") { break _v31_1; } else { if (_p18._4._3.ctor === "RBNode_elm_builtin" && _p18._4._3._0.ctor === "Red") { break _v31_2; } else { if (_p18._4._4.ctor === "RBNode_elm_builtin" && _p18._4._4._0.ctor === "Red") { break _v31_3; } else { break _v31_6; } } } } case "NBlack": if (_p18._3._3.ctor === "RBNode_elm_builtin" && _p18._3._3._0.ctor === "Red") { break _v31_0; } else { if (_p18._3._4.ctor === "RBNode_elm_builtin" && _p18._3._4._0.ctor === "Red") { break _v31_1; } else { if (_p18._0.ctor === "BBlack" && _p18._4._3.ctor === "RBNode_elm_builtin" && _p18._4._3._0.ctor === "Black" && _p18._4._4.ctor === "RBNode_elm_builtin" && _p18._4._4._0.ctor === "Black") { break _v31_4; } else { break _v31_6; } } } default: if (_p18._3._3.ctor === "RBNode_elm_builtin" && _p18._3._3._0.ctor === "Red") { break _v31_0; } else { if (_p18._3._4.ctor === "RBNode_elm_builtin" && _p18._3._4._0.ctor === "Red") { break _v31_1; } else { break _v31_6; } }} case "NBlack": switch (_p18._4._0.ctor) {case "Red": if (_p18._4._3.ctor === "RBNode_elm_builtin" && _p18._4._3._0.ctor === "Red") { break _v31_2; } else { if (_p18._4._4.ctor === "RBNode_elm_builtin" && _p18._4._4._0.ctor === "Red") { break _v31_3; } else { if (_p18._0.ctor === "BBlack" && _p18._3._3.ctor === "RBNode_elm_builtin" && _p18._3._3._0.ctor === "Black" && _p18._3._4.ctor === "RBNode_elm_builtin" && _p18._3._4._0.ctor === "Black") { break _v31_5; } else { break _v31_6; } } } case "NBlack": if (_p18._0.ctor === "BBlack") { if (_p18._4._3.ctor === "RBNode_elm_builtin" && _p18._4._3._0.ctor === "Black" && _p18._4._4.ctor === "RBNode_elm_builtin" && _p18._4._4._0.ctor === "Black") { break _v31_4; } else { if (_p18._3._3.ctor === "RBNode_elm_builtin" && _p18._3._3._0.ctor === "Black" && _p18._3._4.ctor === "RBNode_elm_builtin" && _p18._3._4._0.ctor === "Black") { break _v31_5; } else { break _v31_6; } } } else { break _v31_6; } default: if (_p18._0.ctor === "BBlack" && _p18._3._3.ctor === "RBNode_elm_builtin" && _p18._3._3._0.ctor === "Black" && _p18._3._4.ctor === "RBNode_elm_builtin" && _p18._3._4._0.ctor === "Black") { break _v31_5; } else { break _v31_6; }} default: switch (_p18._4._0.ctor) {case "Red": if (_p18._4._3.ctor === "RBNode_elm_builtin" && _p18._4._3._0.ctor === "Red") { break _v31_2; } else { if (_p18._4._4.ctor === "RBNode_elm_builtin" && _p18._4._4._0.ctor === "Red") { break _v31_3; } else { break _v31_6; } } case "NBlack": if (_p18._0.ctor === "BBlack" && _p18._4._3.ctor === "RBNode_elm_builtin" && _p18._4._3._0.ctor === "Black" && _p18._4._4.ctor === "RBNode_elm_builtin" && _p18._4._4._0.ctor === "Black") { break _v31_4; } else { break _v31_6; } default: break _v31_6;}} } else { switch (_p18._3._0.ctor) {case "Red": if (_p18._3._3.ctor === "RBNode_elm_builtin" && _p18._3._3._0.ctor === "Red") { break _v31_0; } else { if (_p18._3._4.ctor === "RBNode_elm_builtin" && _p18._3._4._0.ctor === "Red") { break _v31_1; } else { break _v31_6; } } case "NBlack": if (_p18._0.ctor === "BBlack" && _p18._3._3.ctor === "RBNode_elm_builtin" && _p18._3._3._0.ctor === "Black" && _p18._3._4.ctor === "RBNode_elm_builtin" && _p18._3._4._0.ctor === "Black") { break _v31_5; } else { break _v31_6; } default: break _v31_6;} } } else { if (_p18._4.ctor === "RBNode_elm_builtin") { switch (_p18._4._0.ctor) {case "Red": if (_p18._4._3.ctor === "RBNode_elm_builtin" && _p18._4._3._0.ctor === "Red") { break _v31_2; } else { if (_p18._4._4.ctor === "RBNode_elm_builtin" && _p18._4._4._0.ctor === "Red") { break _v31_3; } else { break _v31_6; } } case "NBlack": if (_p18._0.ctor === "BBlack" && _p18._4._3.ctor === "RBNode_elm_builtin" && _p18._4._3._0.ctor === "Black" && _p18._4._4.ctor === "RBNode_elm_builtin" && _p18._4._4._0.ctor === "Black") { break _v31_4; } else { break _v31_6; } default: break _v31_6;} } else { break _v31_6; } } } else { break _v31_6; } } while (false); return balancedTree(_p18._0)(_p18._3._3._1)(_p18._3._3._2)(_p18._3._1)(_p18._3._2)(_p18._1)(_p18._2)(_p18._3._3._3)(_p18._3._3._4)(_p18._3._4)(_p18._4); } while (false); return balancedTree(_p18._0)(_p18._3._1)(_p18._3._2)(_p18._3._4._1)(_p18._3._4._2)(_p18._1)(_p18._2)(_p18._3._3)(_p18._3._4._3)(_p18._3._4._4)(_p18._4); } while (false); return balancedTree(_p18._0)(_p18._1)(_p18._2)(_p18._4._3._1)(_p18._4._3._2)(_p18._4._1)(_p18._4._2)(_p18._3)(_p18._4._3._3)(_p18._4._3._4)(_p18._4._4); } while (false); return balancedTree(_p18._0)(_p18._1)(_p18._2)(_p18._4._1)(_p18._4._2)(_p18._4._4._1)(_p18._4._4._2)(_p18._3)(_p18._4._3)(_p18._4._4._3)(_p18._4._4._4); } while (false); return A5(RBNode_elm_builtin, Black, _p18._4._3._1, _p18._4._3._2, A5(RBNode_elm_builtin,Black,_p18._1,_p18._2,_p18._3,_p18._4._3._3), A5(balance,Black,_p18._4._1,_p18._4._2,_p18._4._3._4,redden(_p18._4._4))); } while (false); return A5(RBNode_elm_builtin, Black, _p18._3._4._1, _p18._3._4._2, A5(balance,Black,_p18._3._1,_p18._3._2,redden(_p18._3._3),_p18._3._4._3), A5(RBNode_elm_builtin,Black,_p18._1,_p18._2,_p18._3._4._4,_p18._4)); } while (false); return tree; }; var balance = F5(function (c,k,v,l,r) { var tree = A5(RBNode_elm_builtin,c,k,v,l,r);return blackish(tree) ? balanceHelp(tree) : tree;}); var bubble = F5(function (c,k,v,l,r) { return isBBlack(l) || isBBlack(r) ? A5(balance,moreBlack(c),k,v,lessBlackTree(l),lessBlackTree(r)) : A5(RBNode_elm_builtin,c,k,v,l,r); }); var removeMax = F5(function (c,k,v,l,r) { var _p19 = r; if (_p19.ctor === "RBEmpty_elm_builtin") { return A3(rem,c,l,r); } else { return A5(bubble,c,k,v,l,A5(removeMax,_p19._0,_p19._1,_p19._2,_p19._3,_p19._4)); } }); var rem = F3(function (c,l,r) { var _p20 = {ctor: "_Tuple2",_0: l,_1: r}; if (_p20._0.ctor === "RBEmpty_elm_builtin") { if (_p20._1.ctor === "RBEmpty_elm_builtin") { var _p21 = c; switch (_p21.ctor) {case "Red": return RBEmpty_elm_builtin(LBlack); case "Black": return RBEmpty_elm_builtin(LBBlack); default: return $Native$Debug.crash("cannot have bblack or nblack nodes at this point");} } else { var _p24 = _p20._1._0; var _p23 = _p20._0._0; var _p22 = {ctor: "_Tuple3",_0: c,_1: _p23,_2: _p24}; if (_p22.ctor === "_Tuple3" && _p22._0.ctor === "Black" && _p22._1.ctor === "LBlack" && _p22._2.ctor === "Red") { return A5(RBNode_elm_builtin,Black,_p20._1._1,_p20._1._2,_p20._1._3,_p20._1._4); } else { return A4(reportRemBug,"Black/LBlack/Red",c,$Basics.toString(_p23),$Basics.toString(_p24)); } } } else { if (_p20._1.ctor === "RBEmpty_elm_builtin") { var _p27 = _p20._1._0; var _p26 = _p20._0._0; var _p25 = {ctor: "_Tuple3",_0: c,_1: _p26,_2: _p27}; if (_p25.ctor === "_Tuple3" && _p25._0.ctor === "Black" && _p25._1.ctor === "Red" && _p25._2.ctor === "LBlack") { return A5(RBNode_elm_builtin,Black,_p20._0._1,_p20._0._2,_p20._0._3,_p20._0._4); } else { return A4(reportRemBug,"Black/Red/LBlack",c,$Basics.toString(_p26),$Basics.toString(_p27)); } } else { var _p31 = _p20._0._2; var _p30 = _p20._0._4; var _p29 = _p20._0._1; var l$ = A5(removeMax,_p20._0._0,_p29,_p31,_p20._0._3,_p30); var _p28 = A3(maxWithDefault,_p29,_p31,_p30); var k = _p28._0; var v = _p28._1; return A5(bubble,c,k,v,l$,r); } } }); var update = F3(function (k,alter,dict) { var up = function (dict) { var _p32 = dict; if (_p32.ctor === "RBEmpty_elm_builtin") { var _p33 = alter($Maybe.Nothing); if (_p33.ctor === "Nothing") { return {ctor: "_Tuple2",_0: Same,_1: empty}; } else { return {ctor: "_Tuple2",_0: Insert,_1: A5(RBNode_elm_builtin,Red,k,_p33._0,empty,empty)}; } } else { var _p44 = _p32._2; var _p43 = _p32._4; var _p42 = _p32._3; var _p41 = _p32._1; var _p40 = _p32._0; var _p34 = A2($Basics.compare,k,_p41); switch (_p34.ctor) {case "EQ": var _p35 = alter($Maybe.Just(_p44)); if (_p35.ctor === "Nothing") { return {ctor: "_Tuple2",_0: Remove,_1: A3(rem,_p40,_p42,_p43)}; } else { return {ctor: "_Tuple2",_0: Same,_1: A5(RBNode_elm_builtin,_p40,_p41,_p35._0,_p42,_p43)}; } case "LT": var _p36 = up(_p42); var flag = _p36._0; var newLeft = _p36._1; var _p37 = flag; switch (_p37.ctor) {case "Same": return {ctor: "_Tuple2",_0: Same,_1: A5(RBNode_elm_builtin,_p40,_p41,_p44,newLeft,_p43)}; case "Insert": return {ctor: "_Tuple2",_0: Insert,_1: A5(balance,_p40,_p41,_p44,newLeft,_p43)}; default: return {ctor: "_Tuple2",_0: Remove,_1: A5(bubble,_p40,_p41,_p44,newLeft,_p43)};} default: var _p38 = up(_p43); var flag = _p38._0; var newRight = _p38._1; var _p39 = flag; switch (_p39.ctor) {case "Same": return {ctor: "_Tuple2",_0: Same,_1: A5(RBNode_elm_builtin,_p40,_p41,_p44,_p42,newRight)}; case "Insert": return {ctor: "_Tuple2",_0: Insert,_1: A5(balance,_p40,_p41,_p44,_p42,newRight)}; default: return {ctor: "_Tuple2",_0: Remove,_1: A5(bubble,_p40,_p41,_p44,_p42,newRight)};}} } }; var _p45 = up(dict); var flag = _p45._0; var updatedDict = _p45._1; var _p46 = flag; switch (_p46.ctor) {case "Same": return updatedDict; case "Insert": return ensureBlackRoot(updatedDict); default: return blacken(updatedDict);} }); var insert = F3(function (key,value,dict) { return A3(update,key,$Basics.always($Maybe.Just(value)),dict);}); var singleton = F2(function (key,value) { return A3(insert,key,value,empty);}); var union = F2(function (t1,t2) { return A3(foldl,insert,t2,t1);}); var fromList = function (assocs) { return A3($List.foldl,F2(function (_p47,dict) { var _p48 = _p47;return A3(insert,_p48._0,_p48._1,dict);}),empty,assocs); }; var filter = F2(function (predicate,dictionary) { var add = F3(function (key,value,dict) { return A2(predicate,key,value) ? A3(insert,key,value,dict) : dict;}); return A3(foldl,add,empty,dictionary); }); var intersect = F2(function (t1,t2) { return A2(filter,F2(function (k,_p49) { return A2(member,k,t2);}),t1);}); var partition = F2(function (predicate,dict) { var add = F3(function (key,value,_p50) { var _p51 = _p50; var _p53 = _p51._1; var _p52 = _p51._0; return A2(predicate,key,value) ? {ctor: "_Tuple2",_0: A3(insert,key,value,_p52),_1: _p53} : {ctor: "_Tuple2",_0: _p52,_1: A3(insert,key,value,_p53)}; }); return A3(foldl,add,{ctor: "_Tuple2",_0: empty,_1: empty},dict); }); var remove = F2(function (key,dict) { return A3(update,key,$Basics.always($Maybe.Nothing),dict);}); var diff = F2(function (t1,t2) { return A3(foldl,F3(function (k,v,t) { return A2(remove,k,t);}),t1,t2);}); return _elm.Dict.values = {_op: _op ,empty: empty ,singleton: singleton ,insert: insert ,update: update ,isEmpty: isEmpty ,get: get ,remove: remove ,member: member ,size: size ,filter: filter ,partition: partition ,foldl: foldl ,foldr: foldr ,map: map ,union: union ,intersect: intersect ,diff: diff ,keys: keys ,values: values ,toList: toList ,fromList: fromList}; }; Elm.Set = Elm.Set || {}; Elm.Set.make = function (_elm) { "use strict"; _elm.Set = _elm.Set || {}; if (_elm.Set.values) return _elm.Set.values; var _U = Elm.Native.Utils.make(_elm),$Basics = Elm.Basics.make(_elm),$Dict = Elm.Dict.make(_elm),$List = Elm.List.make(_elm); var _op = {}; var foldr = F3(function (f,b,_p0) { var _p1 = _p0;return A3($Dict.foldr,F3(function (k,_p2,b) { return A2(f,k,b);}),b,_p1._0);}); var foldl = F3(function (f,b,_p3) { var _p4 = _p3;return A3($Dict.foldl,F3(function (k,_p5,b) { return A2(f,k,b);}),b,_p4._0);}); var toList = function (_p6) { var _p7 = _p6;return $Dict.keys(_p7._0);}; var size = function (_p8) { var _p9 = _p8;return $Dict.size(_p9._0);}; var member = F2(function (k,_p10) { var _p11 = _p10;return A2($Dict.member,k,_p11._0);}); var isEmpty = function (_p12) { var _p13 = _p12;return $Dict.isEmpty(_p13._0);}; var Set_elm_builtin = function (a) { return {ctor: "Set_elm_builtin",_0: a};}; var empty = Set_elm_builtin($Dict.empty); var singleton = function (k) { return Set_elm_builtin(A2($Dict.singleton,k,{ctor: "_Tuple0"}));}; var insert = F2(function (k,_p14) { var _p15 = _p14;return Set_elm_builtin(A3($Dict.insert,k,{ctor: "_Tuple0"},_p15._0));}); var fromList = function (xs) { return A3($List.foldl,insert,empty,xs);}; var map = F2(function (f,s) { return fromList(A2($List.map,f,toList(s)));}); var remove = F2(function (k,_p16) { var _p17 = _p16;return Set_elm_builtin(A2($Dict.remove,k,_p17._0));}); var union = F2(function (_p19,_p18) { var _p20 = _p19;var _p21 = _p18;return Set_elm_builtin(A2($Dict.union,_p20._0,_p21._0));}); var intersect = F2(function (_p23,_p22) { var _p24 = _p23;var _p25 = _p22;return Set_elm_builtin(A2($Dict.intersect,_p24._0,_p25._0));}); var diff = F2(function (_p27,_p26) { var _p28 = _p27;var _p29 = _p26;return Set_elm_builtin(A2($Dict.diff,_p28._0,_p29._0));}); var filter = F2(function (p,_p30) { var _p31 = _p30;return Set_elm_builtin(A2($Dict.filter,F2(function (k,_p32) { return p(k);}),_p31._0));}); var partition = F2(function (p,_p33) { var _p34 = _p33; var _p35 = A2($Dict.partition,F2(function (k,_p36) { return p(k);}),_p34._0); var p1 = _p35._0; var p2 = _p35._1; return {ctor: "_Tuple2",_0: Set_elm_builtin(p1),_1: Set_elm_builtin(p2)}; }); return _elm.Set.values = {_op: _op ,empty: empty ,singleton: singleton ,insert: insert ,remove: remove ,isEmpty: isEmpty ,member: member ,size: size ,foldl: foldl ,foldr: foldr ,map: map ,filter: filter ,partition: partition ,union: union ,intersect: intersect ,diff: diff ,toList: toList ,fromList: fromList}; }; Elm.List = Elm.List || {}; Elm.List.Extra = Elm.List.Extra || {}; Elm.List.Extra.make = function (_elm) { "use strict"; _elm.List = _elm.List || {}; _elm.List.Extra = _elm.List.Extra || {}; if (_elm.List.Extra.values) return _elm.List.Extra.values; var _U = Elm.Native.Utils.make(_elm), $Basics = Elm.Basics.make(_elm), $Debug = Elm.Debug.make(_elm), $List = Elm.List.make(_elm), $Maybe = Elm.Maybe.make(_elm), $Result = Elm.Result.make(_elm), $Set = Elm.Set.make(_elm), $Signal = Elm.Signal.make(_elm); var _op = {}; var zip5 = $List.map5(F5(function (v0,v1,v2,v3,v4) { return {ctor: "_Tuple5",_0: v0,_1: v1,_2: v2,_3: v3,_4: v4};})); var zip4 = $List.map4(F4(function (v0,v1,v2,v3) { return {ctor: "_Tuple4",_0: v0,_1: v1,_2: v2,_3: v3};})); var zip3 = $List.map3(F3(function (v0,v1,v2) { return {ctor: "_Tuple3",_0: v0,_1: v1,_2: v2};})); var zip = $List.map2(F2(function (v0,v1) { return {ctor: "_Tuple2",_0: v0,_1: v1};})); var isPrefixOf = function (prefix) { return function (_p0) { return A2($List.all,$Basics.identity,A3($List.map2,F2(function (x,y) { return _U.eq(x,y);}),prefix,_p0)); }; }; var isSuffixOf = F2(function (suffix,xs) { return A2(isPrefixOf,$List.reverse(suffix),$List.reverse(xs));}); var selectSplit = function (xs) { var _p1 = xs; if (_p1.ctor === "[]") { return _U.list([]); } else { var _p5 = _p1._1; var _p4 = _p1._0; return A2($List._op["::"], {ctor: "_Tuple3",_0: _U.list([]),_1: _p4,_2: _p5}, A2($List.map, function (_p2) { var _p3 = _p2; return {ctor: "_Tuple3",_0: A2($List._op["::"],_p4,_p3._0),_1: _p3._1,_2: _p3._2}; }, selectSplit(_p5))); } }; var select = function (xs) { var _p6 = xs; if (_p6.ctor === "[]") { return _U.list([]); } else { var _p10 = _p6._1; var _p9 = _p6._0; return A2($List._op["::"], {ctor: "_Tuple2",_0: _p9,_1: _p10}, A2($List.map,function (_p7) { var _p8 = _p7;return {ctor: "_Tuple2",_0: _p8._0,_1: A2($List._op["::"],_p9,_p8._1)};},select(_p10))); } }; var tailsHelp = F2(function (e,list) { var _p11 = list; if (_p11.ctor === "::") { var _p12 = _p11._0; return A2($List._op["::"],A2($List._op["::"],e,_p12),A2($List._op["::"],_p12,_p11._1)); } else { return _U.list([]); } }); var tails = A2($List.foldr,tailsHelp,_U.list([_U.list([])])); var isInfixOf = F2(function (infix,xs) { return A2($List.any,isPrefixOf(infix),tails(xs));}); var inits = A2($List.foldr, F2(function (e,acc) { return A2($List._op["::"],_U.list([]),A2($List.map,F2(function (x,y) { return A2($List._op["::"],x,y);})(e),acc));}), _U.list([_U.list([])])); var groupByTransitive = F2(function (cmp,xs$) { var _p13 = xs$; if (_p13.ctor === "[]") { return _U.list([]); } else { if (_p13._1.ctor === "[]") { return _U.list([_U.list([_p13._0])]); } else { var _p15 = _p13._0; var _p14 = A2(groupByTransitive,cmp,_p13._1); if (_p14.ctor === "::") { return A2(cmp,_p15,_p13._1._0) ? A2($List._op["::"],A2($List._op["::"],_p15,_p14._0),_p14._1) : A2($List._op["::"], _U.list([_p15]), _p14); } else { return _U.list([]); } } } }); var stripPrefix = F2(function (prefix,xs) { var step = F2(function (e,m) { var _p16 = m; if (_p16.ctor === "Nothing") { return $Maybe.Nothing; } else { if (_p16._0.ctor === "[]") { return $Maybe.Nothing; } else { return _U.eq(e,_p16._0._0) ? $Maybe.Just(_p16._0._1) : $Maybe.Nothing; } } }); return A3($List.foldl,step,$Maybe.Just(xs),prefix); }); var dropWhileEnd = function (p) { return A2($List.foldr,F2(function (x,xs) { return p(x) && $List.isEmpty(xs) ? _U.list([]) : A2($List._op["::"],x,xs);}),_U.list([])); }; var takeWhileEnd = function (p) { var step = F2(function (x,_p17) { var _p18 = _p17; var _p19 = _p18._0; return p(x) && _p18._1 ? {ctor: "_Tuple2",_0: A2($List._op["::"],x,_p19),_1: true} : {ctor: "_Tuple2",_0: _p19,_1: false}; }); return function (_p20) { return $Basics.fst(A3($List.foldr,step,{ctor: "_Tuple2",_0: _U.list([]),_1: true},_p20)); }; }; var splitAt = F2(function (n,xs) { return {ctor: "_Tuple2",_0: A2($List.take,n,xs),_1: A2($List.drop,n,xs)};}); var unfoldr = F2(function (f,seed) { var _p21 = f(seed); if (_p21.ctor === "Nothing") { return _U.list([]); } else { return A2($List._op["::"],_p21._0._0,A2(unfoldr,f,_p21._0._1)); } }); var scanr1 = F2(function (f,xs$) { var _p22 = xs$; if (_p22.ctor === "[]") { return _U.list([]); } else { if (_p22._1.ctor === "[]") { return _U.list([_p22._0]); } else { var _p23 = A2(scanr1,f,_p22._1); if (_p23.ctor === "::") { return A2($List._op["::"],A2(f,_p22._0,_p23._0),_p23); } else { return _U.list([]); } } } }); var scanr = F3(function (f,acc,xs$) { var _p24 = xs$; if (_p24.ctor === "[]") { return _U.list([acc]); } else { var _p25 = A3(scanr,f,acc,_p24._1); if (_p25.ctor === "::") { return A2($List._op["::"],A2(f,_p24._0,_p25._0),_p25); } else { return _U.list([]); } } }); var scanl1 = F2(function (f,xs$) { var _p26 = xs$; if (_p26.ctor === "[]") { return _U.list([]); } else { return A3($List.scanl,f,_p26._0,_p26._1); } }); var foldr1 = F2(function (f,xs) { var mf = F2(function (x,m) { return $Maybe.Just(function () { var _p27 = m;if (_p27.ctor === "Nothing") { return x;} else { return A2(f,x,_p27._0);}}()); }); return A3($List.foldr,mf,$Maybe.Nothing,xs); }); var foldl1 = F2(function (f,xs) { var mf = F2(function (x,m) { return $Maybe.Just(function () { var _p28 = m;if (_p28.ctor === "Nothing") { return x;} else { return A2(f,_p28._0,x);}}()); }); return A3($List.foldl,mf,$Maybe.Nothing,xs); }); var uniqueHelp = F2(function (existing,remaining) { uniqueHelp: while (true) { var _p29 = remaining; if (_p29.ctor === "[]") { return _U.list([]); } else { var _p31 = _p29._1; var _p30 = _p29._0; if (A2($Set.member,_p30,existing)) { var _v18 = existing,_v19 = _p31; existing = _v18; remaining = _v19; continue uniqueHelp; } else return A2($List._op["::"],_p30,A2(uniqueHelp,A2($Set.insert,_p30,existing),_p31)); } } }); var unique = function (list) { return A2(uniqueHelp,$Set.empty,list);}; var interweaveHelp = F3(function (l1,l2,acc) { interweaveHelp: while (true) { var _p32 = {ctor: "_Tuple2",_0: l1,_1: l2}; _v20_1: do { if (_p32._0.ctor === "::") { if (_p32._1.ctor === "::") { var _v21 = _p32._0._1,_v22 = _p32._1._1,_v23 = A2($Basics._op["++"],acc,_U.list([_p32._0._0,_p32._1._0])); l1 = _v21; l2 = _v22; acc = _v23; continue interweaveHelp; } else { break _v20_1; } } else { if (_p32._1.ctor === "[]") { break _v20_1; } else { return A2($Basics._op["++"],acc,_p32._1); } } } while (false); return A2($Basics._op["++"],acc,_p32._0); } }); var interweave = F2(function (l1,l2) { return A3(interweaveHelp,l1,l2,_U.list([]));}); var permutations = function (xs$) { var _p33 = xs$; if (_p33.ctor === "[]") { return _U.list([_U.list([])]); } else { var f = function (_p34) { var _p35 = _p34; return A2($List.map,F2(function (x,y) { return A2($List._op["::"],x,y);})(_p35._0),permutations(_p35._1)); }; return A2($List.concatMap,f,select(_p33)); } }; var isPermutationOf = F2(function (permut,xs) { return A2($List.member,permut,permutations(xs));}); var subsequencesNonEmpty = function (xs) { var _p36 = xs; if (_p36.ctor === "[]") { return _U.list([]); } else { var _p37 = _p36._0; var f = F2(function (ys,r) { return A2($List._op["::"],ys,A2($List._op["::"],A2($List._op["::"],_p37,ys),r));}); return A2($List._op["::"],_U.list([_p37]),A3($List.foldr,f,_U.list([]),subsequencesNonEmpty(_p36._1))); } }; var subsequences = function (xs) { return A2($List._op["::"],_U.list([]),subsequencesNonEmpty(xs));}; var isSubsequenceOf = F2(function (subseq,xs) { return A2($List.member,subseq,subsequences(xs));}); var transpose = function (ll) { transpose: while (true) { var _p38 = ll; if (_p38.ctor === "[]") { return _U.list([]); } else { if (_p38._0.ctor === "[]") { var _v28 = _p38._1; ll = _v28; continue transpose; } else { var _p39 = _p38._1; var tails = A2($List.filterMap,$List.tail,_p39); var heads = A2($List.filterMap,$List.head,_p39); return A2($List._op["::"],A2($List._op["::"],_p38._0._0,heads),transpose(A2($List._op["::"],_p38._0._1,tails))); } } } }; var intercalate = function (xs) { return function (_p40) { return $List.concat(A2($List.intersperse,xs,_p40));};}; var removeWhen = F2(function (pred,list) { return A2($List.filter,function (_p41) { return $Basics.not(pred(_p41));},list);}); var singleton = function (x) { return _U.list([x]);}; var replaceIf = F3(function (predicate,replacement,list) { return A2($List.map,function (item) { return predicate(item) ? replacement : item;},list); }); var findIndices = function (p) { return function (_p42) { return A2($List.map, $Basics.fst, A2($List.filter, function (_p43) { var _p44 = _p43; return p(_p44._1); }, A2($List.indexedMap,F2(function (v0,v1) { return {ctor: "_Tuple2",_0: v0,_1: v1};}),_p42))); }; }; var findIndex = function (p) { return function (_p45) { return $List.head(A2(findIndices,p,_p45));};}; var elemIndices = function (x) { return findIndices(F2(function (x,y) { return _U.eq(x,y);})(x));}; var elemIndex = function (x) { return findIndex(F2(function (x,y) { return _U.eq(x,y);})(x));}; var find = F2(function (predicate,list) { find: while (true) { var _p46 = list; if (_p46.ctor === "[]") { return $Maybe.Nothing; } else { var _p47 = _p46._0; if (predicate(_p47)) return $Maybe.Just(_p47); else { var _v31 = predicate,_v32 = _p46._1; predicate = _v31; list = _v32; continue find; } } } }); var notMember = function (x) { return function (_p48) { return $Basics.not(A2($List.member,x,_p48));};}; var andThen = $Basics.flip($List.concatMap); var lift2 = F3(function (f,la,lb) { return A2(andThen,la,function (a) { return A2(andThen,lb,function (b) { return _U.list([A2(f,a,b)]);});});}); var lift3 = F4(function (f,la,lb,lc) { return A2(andThen, la, function (a) { return A2(andThen,lb,function (b) { return A2(andThen,lc,function (c) { return _U.list([A3(f,a,b,c)]);});}); }); }); var lift4 = F5(function (f,la,lb,lc,ld) { return A2(andThen, la, function (a) { return A2(andThen, lb, function (b) { return A2(andThen,lc,function (c) { return A2(andThen,ld,function (d) { return _U.list([A4(f,a,b,c,d)]);});}); }); }); }); var andMap = F2(function (fl,l) { return A3($List.map2,F2(function (x,y) { return x(y);}),fl,l);}); var dropDuplicates = function (list) { var step = F2(function (next,_p49) { var _p50 = _p49; var _p52 = _p50._0; var _p51 = _p50._1; return A2($Set.member,next,_p52) ? {ctor: "_Tuple2",_0: _p52,_1: _p51} : {ctor: "_Tuple2" ,_0: A2($Set.insert,next,_p52) ,_1: A2($List._op["::"],next,_p51)}; }); return $List.reverse($Basics.snd(A3($List.foldl,step,{ctor: "_Tuple2",_0: $Set.empty,_1: _U.list([])},list))); }; var dropWhile = F2(function (predicate,list) { dropWhile: while (true) { var _p53 = list; if (_p53.ctor === "[]") { return _U.list([]); } else { if (predicate(_p53._0)) { var _v35 = predicate,_v36 = _p53._1; predicate = _v35; list = _v36; continue dropWhile; } else return list; } } }); var takeWhile = F2(function (predicate,list) { var _p54 = list; if (_p54.ctor === "[]") { return _U.list([]); } else { var _p55 = _p54._0; return predicate(_p55) ? A2($List._op["::"],_p55,A2(takeWhile,predicate,_p54._1)) : _U.list([]); } }); var span = F2(function (p,xs) { return {ctor: "_Tuple2",_0: A2(takeWhile,p,xs),_1: A2(dropWhile,p,xs)};}); var $break = function (p) { return span(function (_p56) { return $Basics.not(p(_p56));});}; var groupBy = F2(function (eq,xs$) { var _p57 = xs$; if (_p57.ctor === "[]") { return _U.list([]); } else { var _p59 = _p57._0; var _p58 = A2(span,eq(_p59),_p57._1); var ys = _p58._0; var zs = _p58._1; return A2($List._op["::"],A2($List._op["::"],_p59,ys),A2(groupBy,eq,zs)); } }); var group = groupBy(F2(function (x,y) { return _U.eq(x,y);})); var minimumBy = F2(function (f,ls) { var minBy = F2(function (x,_p60) { var _p61 = _p60; var _p62 = _p61._1; var fx = f(x); return _U.cmp(fx,_p62) < 0 ? {ctor: "_Tuple2",_0: x,_1: fx} : {ctor: "_Tuple2",_0: _p61._0,_1: _p62}; }); var _p63 = ls; if (_p63.ctor === "::") { if (_p63._1.ctor === "[]") { return $Maybe.Just(_p63._0); } else { var _p64 = _p63._0; return $Maybe.Just($Basics.fst(A3($List.foldl,minBy,{ctor: "_Tuple2",_0: _p64,_1: f(_p64)},_p63._1))); } } else { return $Maybe.Nothing; } }); var maximumBy = F2(function (f,ls) { var maxBy = F2(function (x,_p65) { var _p66 = _p65; var _p67 = _p66._1; var fx = f(x); return _U.cmp(fx,_p67) > 0 ? {ctor: "_Tuple2",_0: x,_1: fx} : {ctor: "_Tuple2",_0: _p66._0,_1: _p67}; }); var _p68 = ls; if (_p68.ctor === "::") { if (_p68._1.ctor === "[]") { return $Maybe.Just(_p68._0); } else { var _p69 = _p68._0; return $Maybe.Just($Basics.fst(A3($List.foldl,maxBy,{ctor: "_Tuple2",_0: _p69,_1: f(_p69)},_p68._1))); } } else { return $Maybe.Nothing; } }); var uncons = function (xs) { var _p70 = xs; if (_p70.ctor === "[]") { return $Maybe.Nothing; } else { return $Maybe.Just({ctor: "_Tuple2",_0: _p70._0,_1: _p70._1}); } }; var iterate = F2(function (f,x) { var _p71 = f(x); if (_p71.ctor === "Just") { return A2($List._op["::"],x,A2(iterate,f,_p71._0)); } else { return _U.list([x]); } }); var getAt = F2(function (xs,idx) { return $List.head(A2($List.drop,idx,xs));}); _op["!!"] = getAt; var init = function () { var maybe = F2(function (d,f) { return function (_p72) { return A2($Maybe.withDefault,d,A2($Maybe.map,f,_p72));};}); return A2($List.foldr, function (_p73) { return A2(F2(function (x,y) { return function (_p74) { return x(y(_p74));};}), $Maybe.Just, A2(maybe,_U.list([]),F2(function (x,y) { return A2($List._op["::"],x,y);})(_p73))); }, $Maybe.Nothing); }(); var last = foldl1($Basics.flip($Basics.always)); return _elm.List.Extra.values = {_op: _op ,last: last ,init: init ,getAt: getAt ,uncons: uncons ,minimumBy: minimumBy ,maximumBy: maximumBy ,andMap: andMap ,andThen: andThen ,takeWhile: takeWhile ,dropWhile: dropWhile ,dropDuplicates: dropDuplicates ,replaceIf: replaceIf ,singleton: singleton ,removeWhen: removeWhen ,iterate: iterate ,intercalate: intercalate ,transpose: transpose ,subsequences: subsequences ,permutations: permutations ,interweave: interweave ,unique: unique ,foldl1: foldl1 ,foldr1: foldr1 ,scanl1: scanl1 ,scanr: scanr ,scanr1: scanr1 ,unfoldr: unfoldr ,splitAt: splitAt ,takeWhileEnd: takeWhileEnd ,dropWhileEnd: dropWhileEnd ,span: span ,$break: $break ,stripPrefix: stripPrefix ,group: group ,groupBy: groupBy ,groupByTransitive: groupByTransitive ,inits: inits ,tails: tails ,select: select ,selectSplit: selectSplit ,isPrefixOf: isPrefixOf ,isSuffixOf: isSuffixOf ,isInfixOf: isInfixOf ,isSubsequenceOf: isSubsequenceOf ,isPermutationOf: isPermutationOf ,notMember: notMember ,find: find ,elemIndex: elemIndex ,elemIndices: elemIndices ,findIndex: findIndex ,findIndices: findIndices ,zip: zip ,zip3: zip3 ,zip4: zip4 ,zip5: zip5 ,lift2: lift2 ,lift3: lift3 ,lift4: lift4}; }; Elm.Native.Array = {}; Elm.Native.Array.make = function(localRuntime) { localRuntime.Native = localRuntime.Native || {}; localRuntime.Native.Array = localRuntime.Native.Array || {}; if (localRuntime.Native.Array.values) { return localRuntime.Native.Array.values; } if ('values' in Elm.Native.Array) { return localRuntime.Native.Array.values = Elm.Native.Array.values; } var List = Elm.Native.List.make(localRuntime); // A RRB-Tree has two distinct data types. // Leaf -> "height" is always 0 // "table" is an array of elements // Node -> "height" is always greater than 0 // "table" is an array of child nodes // "lengths" is an array of accumulated lengths of the child nodes // M is the maximal table size. 32 seems fast. E is the allowed increase // of search steps when concatting to find an index. Lower values will // decrease balancing, but will increase search steps. var M = 32; var E = 2; // An empty array. var empty = { ctor: '_Array', height: 0, table: [] }; function get(i, array) { if (i < 0 || i >= length(array)) { throw new Error( 'Index ' + i + ' is out of range. Check the length of ' + 'your array first or use getMaybe or getWithDefault.'); } return unsafeGet(i, array); } function unsafeGet(i, array) { for (var x = array.height; x > 0; x--) { var slot = i >> (x * 5); while (array.lengths[slot] <= i) { slot++; } if (slot > 0) { i -= array.lengths[slot - 1]; } array = array.table[slot]; } return array.table[i]; } // Sets the value at the index i. Only the nodes leading to i will get // copied and updated. function set(i, item, array) { if (i < 0 || length(array) <= i) { return array; } return unsafeSet(i, item, array); } function unsafeSet(i, item, array) { array = nodeCopy(array); if (array.height === 0) { array.table[i] = item; } else { var slot = getSlot(i, array); if (slot > 0) { i -= array.lengths[slot - 1]; } array.table[slot] = unsafeSet(i, item, array.table[slot]); } return array; } function initialize(len, f) { if (len <= 0) { return empty; } var h = Math.floor( Math.log(len) / Math.log(M) ); return initialize_(f, h, 0, len); } function initialize_(f, h, from, to) { if (h === 0) { var table = new Array((to - from) % (M + 1)); for (var i = 0; i < table.length; i++) { table[i] = f(from + i); } return { ctor: '_Array', height: 0, table: table }; } var step = Math.pow(M, h); var table = new Array(Math.ceil((to - from) / step)); var lengths = new Array(table.length); for (var i = 0; i < table.length; i++) { table[i] = initialize_(f, h - 1, from + (i * step), Math.min(from + ((i + 1) * step), to)); lengths[i] = length(table[i]) + (i > 0 ? lengths[i-1] : 0); } return { ctor: '_Array', height: h, table: table, lengths: lengths }; } function fromList(list) { if (list === List.Nil) { return empty; } // Allocate M sized blocks (table) and write list elements to it. var table = new Array(M); var nodes = []; var i = 0; while (list.ctor !== '[]') { table[i] = list._0; list = list._1; i++; // table is full, so we can push a leaf containing it into the // next node. if (i === M) { var leaf = { ctor: '_Array', height: 0, table: table }; fromListPush(leaf, nodes); table = new Array(M); i = 0; } } // Maybe there is something left on the table. if (i > 0) { var leaf = { ctor: '_Array', height: 0, table: table.splice(0, i) }; fromListPush(leaf, nodes); } // Go through all of the nodes and eventually push them into higher nodes. for (var h = 0; h < nodes.length - 1; h++) { if (nodes[h].table.length > 0) { fromListPush(nodes[h], nodes); } } var head = nodes[nodes.length - 1]; if (head.height > 0 && head.table.length === 1) { return head.table[0]; } else { return head; } } // Push a node into a higher node as a child. function fromListPush(toPush, nodes) { var h = toPush.height; // Maybe the node on this height does not exist. if (nodes.length === h) { var node = { ctor: '_Array', height: h + 1, table: [], lengths: [] }; nodes.push(node); } nodes[h].table.push(toPush); var len = length(toPush); if (nodes[h].lengths.length > 0) { len += nodes[h].lengths[nodes[h].lengths.length - 1]; } nodes[h].lengths.push(len); if (nodes[h].table.length === M) { fromListPush(nodes[h], nodes); nodes[h] = { ctor: '_Array', height: h + 1, table: [], lengths: [] }; } } // Pushes an item via push_ to the bottom right of a tree. function push(item, a) { var pushed = push_(item, a); if (pushed !== null) { return pushed; } var newTree = create(item, a.height); return siblise(a, newTree); } // Recursively tries to push an item to the bottom-right most // tree possible. If there is no space left for the item, // null will be returned. function push_(item, a) { // Handle resursion stop at leaf level. if (a.height === 0) { if (a.table.length < M) { var newA = { ctor: '_Array', height: 0, table: a.table.slice() }; newA.table.push(item); return newA; } else { return null; } } // Recursively push var pushed = push_(item, botRight(a)); // There was space in the bottom right tree, so the slot will // be updated. if (pushed !== null) { var newA = nodeCopy(a); newA.table[newA.table.length - 1] = pushed; newA.lengths[newA.lengths.length - 1]++; return newA; } // When there was no space left, check if there is space left // for a new slot with a tree which contains only the item // at the bottom. if (a.table.length < M) { var newSlot = create(item, a.height - 1); var newA = nodeCopy(a); newA.table.push(newSlot); newA.lengths.push(newA.lengths[newA.lengths.length - 1] + length(newSlot)); return newA; } else { return null; } } // Converts an array into a list of elements. function toList(a) { return toList_(List.Nil, a); } function toList_(list, a) { for (var i = a.table.length - 1; i >= 0; i--) { list = a.height === 0 ? List.Cons(a.table[i], list) : toList_(list, a.table[i]); } return list; } // Maps a function over the elements of an array. function map(f, a) { var newA = { ctor: '_Array', height: a.height, table: new Array(a.table.length) }; if (a.height > 0) { newA.lengths = a.lengths; } for (var i = 0; i < a.table.length; i++) { newA.table[i] = a.height === 0 ? f(a.table[i]) : map(f, a.table[i]); } return newA; } // Maps a function over the elements with their index as first argument. function indexedMap(f, a) { return indexedMap_(f, a, 0); } function indexedMap_(f, a, from) { var newA = { ctor: '_Array', height: a.height, table: new Array(a.table.length) }; if (a.height > 0) { newA.lengths = a.lengths; } for (var i = 0; i < a.table.length; i++) { newA.table[i] = a.height === 0 ? A2(f, from + i, a.table[i]) : indexedMap_(f, a.table[i], i == 0 ? from : from + a.lengths[i - 1]); } return newA; } function foldl(f, b, a) { if (a.height === 0) { for (var i = 0; i < a.table.length; i++) { b = A2(f, a.table[i], b); } } else { for (var i = 0; i < a.table.length; i++) { b = foldl(f, b, a.table[i]); } } return b; } function foldr(f, b, a) { if (a.height === 0) { for (var i = a.table.length; i--; ) { b = A2(f, a.table[i], b); } } else { for (var i = a.table.length; i--; ) { b = foldr(f, b, a.table[i]); } } return b; } // TODO: currently, it slices the right, then the left. This can be // optimized. function slice(from, to, a) { if (from < 0) { from += length(a); } if (to < 0) { to += length(a); } return sliceLeft(from, sliceRight(to, a)); } function sliceRight(to, a) { if (to === length(a)) { return a; } // Handle leaf level. if (a.height === 0) { var newA = { ctor:'_Array', height:0 }; newA.table = a.table.slice(0, to); return newA; } // Slice the right recursively. var right = getSlot(to, a); var sliced = sliceRight(to - (right > 0 ? a.lengths[right - 1] : 0), a.table[right]); // Maybe the a node is not even needed, as sliced contains the whole slice. if (right === 0) { return sliced; } // Create new node. var newA = { ctor: '_Array', height: a.height, table: a.table.slice(0, right), lengths: a.lengths.slice(0, right) }; if (sliced.table.length > 0) { newA.table[right] = sliced; newA.lengths[right] = length(sliced) + (right > 0 ? newA.lengths[right - 1] : 0); } return newA; } function sliceLeft(from, a) { if (from === 0) { return a; } // Handle leaf level. if (a.height === 0) { var newA = { ctor:'_Array', height:0 }; newA.table = a.table.slice(from, a.table.length + 1); return newA; } // Slice the left recursively. var left = getSlot(from, a); var sliced = sliceLeft(from - (left > 0 ? a.lengths[left - 1] : 0), a.table[left]); // Maybe the a node is not even needed, as sliced contains the whole slice. if (left === a.table.length - 1) { return sliced; } // Create new node. var newA = { ctor: '_Array', height: a.height, table: a.table.slice(left, a.table.length + 1), lengths: new Array(a.table.length - left) }; newA.table[0] = sliced; var len = 0; for (var i = 0; i < newA.table.length; i++) { len += length(newA.table[i]); newA.lengths[i] = len; } return newA; } // Appends two trees. function append(a,b) { if (a.table.length === 0) { return b; } if (b.table.length === 0) { return a; } var c = append_(a, b); // Check if both nodes can be crunshed together. if (c[0].table.length + c[1].table.length <= M) { if (c[0].table.length === 0) { return c[1]; } if (c[1].table.length === 0) { return c[0]; } // Adjust .table and .lengths c[0].table = c[0].table.concat(c[1].table); if (c[0].height > 0) { var len = length(c[0]); for (var i = 0; i < c[1].lengths.length; i++) { c[1].lengths[i] += len; } c[0].lengths = c[0].lengths.concat(c[1].lengths); } return c[0]; } if (c[0].height > 0) { var toRemove = calcToRemove(a, b); if (toRemove > E) { c = shuffle(c[0], c[1], toRemove); } } return siblise(c[0], c[1]); } // Returns an array of two nodes; right and left. One node _may_ be empty. function append_(a, b) { if (a.height === 0 && b.height === 0) { return [a, b]; } if (a.height !== 1 || b.height !== 1) { if (a.height === b.height) { a = nodeCopy(a); b = nodeCopy(b); var appended = append_(botRight(a), botLeft(b)); insertRight(a, appended[1]); insertLeft(b, appended[0]); } else if (a.height > b.height) { a = nodeCopy(a); var appended = append_(botRight(a), b); insertRight(a, appended[0]); b = parentise(appended[1], appended[1].height + 1); } else { b = nodeCopy(b); var appended = append_(a, botLeft(b)); var left = appended[0].table.length === 0 ? 0 : 1; var right = left === 0 ? 1 : 0; insertLeft(b, appended[left]); a = parentise(appended[right], appended[right].height + 1); } } // Check if balancing is needed and return based on that. if (a.table.length === 0 || b.table.length === 0) { return [a, b]; } var toRemove = calcToRemove(a, b); if (toRemove <= E) { return [a, b]; } return shuffle(a, b, toRemove); } // Helperfunctions for append_. Replaces a child node at the side of the parent. function insertRight(parent, node) { var index = parent.table.length - 1; parent.table[index] = node; parent.lengths[index] = length(node); parent.lengths[index] += index > 0 ? parent.lengths[index - 1] : 0; } function insertLeft(parent, node) { if (node.table.length > 0) { parent.table[0] = node; parent.lengths[0] = length(node); var len = length(parent.table[0]); for (var i = 1; i < parent.lengths.length; i++) { len += length(parent.table[i]); parent.lengths[i] = len; } } else { parent.table.shift(); for (var i = 1; i < parent.lengths.length; i++) { parent.lengths[i] = parent.lengths[i] - parent.lengths[0]; } parent.lengths.shift(); } } // Returns the extra search steps for E. Refer to the paper. function calcToRemove(a, b) { var subLengths = 0; for (var i = 0; i < a.table.length; i++) { subLengths += a.table[i].table.length; } for (var i = 0; i < b.table.length; i++) { subLengths += b.table[i].table.length; } var toRemove = a.table.length + b.table.length; return toRemove - (Math.floor((subLengths - 1) / M) + 1); } // get2, set2 and saveSlot are helpers for accessing elements over two arrays. function get2(a, b, index) { return index < a.length ? a[index] : b[index - a.length]; } function set2(a, b, index, value) { if (index < a.length) { a[index] = value; } else { b[index - a.length] = value; } } function saveSlot(a, b, index, slot) { set2(a.table, b.table, index, slot); var l = (index === 0 || index === a.lengths.length) ? 0 : get2(a.lengths, a.lengths, index - 1); set2(a.lengths, b.lengths, index, l + length(slot)); } // Creates a node or leaf with a given length at their arrays for perfomance. // Is only used by shuffle. function createNode(h, length) { if (length < 0) { length = 0; } var a = { ctor: '_Array', height: h, table: new Array(length) }; if (h > 0) { a.lengths = new Array(length); } return a; } // Returns an array of two balanced nodes. function shuffle(a, b, toRemove) { var newA = createNode(a.height, Math.min(M, a.table.length + b.table.length - toRemove)); var newB = createNode(a.height, newA.table.length - (a.table.length + b.table.length - toRemove)); // Skip the slots with size M. More precise: copy the slot references // to the new node var read = 0; while (get2(a.table, b.table, read).table.length % M === 0) { set2(newA.table, newB.table, read, get2(a.table, b.table, read)); set2(newA.lengths, newB.lengths, read, get2(a.lengths, b.lengths, read)); read++; } // Pulling items from left to right, caching in a slot before writing // it into the new nodes. var write = read; var slot = new createNode(a.height - 1, 0); var from = 0; // If the current slot is still containing data, then there will be at // least one more write, so we do not break this loop yet. while (read - write - (slot.table.length > 0 ? 1 : 0) < toRemove) { // Find out the max possible items for copying. var source = get2(a.table, b.table, read); var to = Math.min(M - slot.table.length, source.table.length); // Copy and adjust size table. slot.table = slot.table.concat(source.table.slice(from, to)); if (slot.height > 0) { var len = slot.lengths.length; for (var i = len; i < len + to - from; i++) { slot.lengths[i] = length(slot.table[i]); slot.lengths[i] += (i > 0 ? slot.lengths[i - 1] : 0); } } from += to; // Only proceed to next slots[i] if the current one was // fully copied. if (source.table.length <= to) { read++; from = 0; } // Only create a new slot if the current one is filled up. if (slot.table.length === M) { saveSlot(newA, newB, write, slot); slot = createNode(a.height - 1, 0); write++; } } // Cleanup after the loop. Copy the last slot into the new nodes. if (slot.table.length > 0) { saveSlot(newA, newB, write, slot); write++; } // Shift the untouched slots to the left while (read < a.table.length + b.table.length ) { saveSlot(newA, newB, write, get2(a.table, b.table, read)); read++; write++; } return [newA, newB]; } // Navigation functions function botRight(a) { return a.table[a.table.length - 1]; } function botLeft(a) { return a.table[0]; } // Copies a node for updating. Note that you should not use this if // only updating only one of "table" or "lengths" for performance reasons. function nodeCopy(a) { var newA = { ctor: '_Array', height: a.height, table: a.table.slice() }; if (a.height > 0) { newA.lengths = a.lengths.slice(); } return newA; } // Returns how many items are in the tree. function length(array) { if (array.height === 0) { return array.table.length; } else { return array.lengths[array.lengths.length - 1]; } } // Calculates in which slot of "table" the item probably is, then // find the exact slot via forward searching in "lengths". Returns the index. function getSlot(i, a) { var slot = i >> (5 * a.height); while (a.lengths[slot] <= i) { slot++; } return slot; } // Recursively creates a tree with a given height containing // only the given item. function create(item, h) { if (h === 0) { return { ctor: '_Array', height: 0, table: [item] }; } return { ctor: '_Array', height: h, table: [create(item, h - 1)], lengths: [1] }; } // Recursively creates a tree that contains the given tree. function parentise(tree, h) { if (h === tree.height) { return tree; } return { ctor: '_Array', height: h, table: [parentise(tree, h - 1)], lengths: [length(tree)] }; } // Emphasizes blood brotherhood beneath two trees. function siblise(a, b) { return { ctor: '_Array', height: a.height + 1, table: [a, b], lengths: [length(a), length(a) + length(b)] }; } function toJSArray(a) { var jsArray = new Array(length(a)); toJSArray_(jsArray, 0, a); return jsArray; } function toJSArray_(jsArray, i, a) { for (var t = 0; t < a.table.length; t++) { if (a.height === 0) { jsArray[i + t] = a.table[t]; } else { var inc = t === 0 ? 0 : a.lengths[t - 1]; toJSArray_(jsArray, i + inc, a.table[t]); } } } function fromJSArray(jsArray) { if (jsArray.length === 0) { return empty; } var h = Math.floor(Math.log(jsArray.length) / Math.log(M)); return fromJSArray_(jsArray, h, 0, jsArray.length); } function fromJSArray_(jsArray, h, from, to) { if (h === 0) { return { ctor: '_Array', height: 0, table: jsArray.slice(from, to) }; } var step = Math.pow(M, h); var table = new Array(Math.ceil((to - from) / step)); var lengths = new Array(table.length); for (var i = 0; i < table.length; i++) { table[i] = fromJSArray_(jsArray, h - 1, from + (i * step), Math.min(from + ((i + 1) * step), to)); lengths[i] = length(table[i]) + (i > 0 ? lengths[i - 1] : 0); } return { ctor: '_Array', height: h, table: table, lengths: lengths }; } Elm.Native.Array.values = { empty: empty, fromList: fromList, toList: toList, initialize: F2(initialize), append: F2(append), push: F2(push), slice: F3(slice), get: F2(get), set: F3(set), map: F2(map), indexedMap: F2(indexedMap), foldl: F3(foldl), foldr: F3(foldr), length: length, toJSArray: toJSArray, fromJSArray: fromJSArray }; return localRuntime.Native.Array.values = Elm.Native.Array.values; }; Elm.Array = Elm.Array || {}; Elm.Array.make = function (_elm) { "use strict"; _elm.Array = _elm.Array || {}; if (_elm.Array.values) return _elm.Array.values; var _U = Elm.Native.Utils.make(_elm), $Basics = Elm.Basics.make(_elm), $List = Elm.List.make(_elm), $Maybe = Elm.Maybe.make(_elm), $Native$Array = Elm.Native.Array.make(_elm); var _op = {}; var append = $Native$Array.append; var length = $Native$Array.length; var isEmpty = function (array) { return _U.eq(length(array),0);}; var slice = $Native$Array.slice; var set = $Native$Array.set; var get = F2(function (i,array) { return _U.cmp(0,i) < 1 && _U.cmp(i,$Native$Array.length(array)) < 0 ? $Maybe.Just(A2($Native$Array.get,i,array)) : $Maybe.Nothing; }); var push = $Native$Array.push; var empty = $Native$Array.empty; var filter = F2(function (isOkay,arr) { var update = F2(function (x,xs) { return isOkay(x) ? A2($Native$Array.push,x,xs) : xs;}); return A3($Native$Array.foldl,update,$Native$Array.empty,arr); }); var foldr = $Native$Array.foldr; var foldl = $Native$Array.foldl; var indexedMap = $Native$Array.indexedMap; var map = $Native$Array.map; var toIndexedList = function (array) { return A3($List.map2, F2(function (v0,v1) { return {ctor: "_Tuple2",_0: v0,_1: v1};}), _U.range(0,$Native$Array.length(array) - 1), $Native$Array.toList(array)); }; var toList = $Native$Array.toList; var fromList = $Native$Array.fromList; var initialize = $Native$Array.initialize; var repeat = F2(function (n,e) { return A2(initialize,n,$Basics.always(e));}); var Array = {ctor: "Array"}; return _elm.Array.values = {_op: _op ,empty: empty ,repeat: repeat ,initialize: initialize ,fromList: fromList ,isEmpty: isEmpty ,length: length ,push: push ,append: append ,get: get ,set: set ,slice: slice ,toList: toList ,toIndexedList: toIndexedList ,map: map ,indexedMap: indexedMap ,filter: filter ,foldl: foldl ,foldr: foldr}; }; Elm.Native.Time = {}; Elm.Native.Time.make = function(localRuntime) { localRuntime.Native = localRuntime.Native || {}; localRuntime.Native.Time = localRuntime.Native.Time || {}; if (localRuntime.Native.Time.values) { return localRuntime.Native.Time.values; } var NS = Elm.Native.Signal.make(localRuntime); var Maybe = Elm.Maybe.make(localRuntime); // FRAMES PER SECOND function fpsWhen(desiredFPS, isOn) { var msPerFrame = 1000 / desiredFPS; var ticker = NS.input('fps-' + desiredFPS, null); function notifyTicker() { localRuntime.notify(ticker.id, null); } function firstArg(x, y) { return x; } // input fires either when isOn changes, or when ticker fires. // Its value is a tuple with the current timestamp, and the state of isOn var input = NS.timestamp(A3(NS.map2, F2(firstArg), NS.dropRepeats(isOn), ticker)); var initialState = { isOn: false, time: localRuntime.timer.programStart, delta: 0 }; var timeoutId; function update(input, state) { var currentTime = input._0; var isOn = input._1; var wasOn = state.isOn; var previousTime = state.time; if (isOn) { timeoutId = localRuntime.setTimeout(notifyTicker, msPerFrame); } else if (wasOn) { clearTimeout(timeoutId); } return { isOn: isOn, time: currentTime, delta: (isOn && !wasOn) ? 0 : currentTime - previousTime }; } return A2( NS.map, function(state) { return state.delta; }, A3(NS.foldp, F2(update), update(input.value, initialState), input) ); } // EVERY function every(t) { var ticker = NS.input('every-' + t, null); function tellTime() { localRuntime.notify(ticker.id, null); } var clock = A2(NS.map, fst, NS.timestamp(ticker)); setInterval(tellTime, t); return clock; } function fst(pair) { return pair._0; } function read(s) { var t = Date.parse(s); return isNaN(t) ? Maybe.Nothing : Maybe.Just(t); } return localRuntime.Native.Time.values = { fpsWhen: F2(fpsWhen), every: every, toDate: function(t) { return new Date(t); }, read: read }; }; Elm.Time = Elm.Time || {}; Elm.Time.make = function (_elm) { "use strict"; _elm.Time = _elm.Time || {}; if (_elm.Time.values) return _elm.Time.values; var _U = Elm.Native.Utils.make(_elm), $Basics = Elm.Basics.make(_elm), $Native$Signal = Elm.Native.Signal.make(_elm), $Native$Time = Elm.Native.Time.make(_elm), $Signal = Elm.Signal.make(_elm); var _op = {}; var delay = $Native$Signal.delay; var since = F2(function (time,signal) { var stop = A2($Signal.map,$Basics.always(-1),A2(delay,time,signal)); var start = A2($Signal.map,$Basics.always(1),signal); var delaydiff = A3($Signal.foldp,F2(function (x,y) { return x + y;}),0,A2($Signal.merge,start,stop)); return A2($Signal.map,F2(function (x,y) { return !_U.eq(x,y);})(0),delaydiff); }); var timestamp = $Native$Signal.timestamp; var every = $Native$Time.every; var fpsWhen = $Native$Time.fpsWhen; var fps = function (targetFrames) { return A2(fpsWhen,targetFrames,$Signal.constant(true));}; var inMilliseconds = function (t) { return t;}; var millisecond = 1; var second = 1000 * millisecond; var minute = 60 * second; var hour = 60 * minute; var inHours = function (t) { return t / hour;}; var inMinutes = function (t) { return t / minute;}; var inSeconds = function (t) { return t / second;}; return _elm.Time.values = {_op: _op ,millisecond: millisecond ,second: second ,minute: minute ,hour: hour ,inMilliseconds: inMilliseconds ,inSeconds: inSeconds ,inMinutes: inMinutes ,inHours: inHours ,fps: fps ,fpsWhen: fpsWhen ,every: every ,timestamp: timestamp ,delay: delay ,since: since}; }; Elm.Native.Json = {}; Elm.Native.Json.make = function(localRuntime) { localRuntime.Native = localRuntime.Native || {}; localRuntime.Native.Json = localRuntime.Native.Json || {}; if (localRuntime.Native.Json.values) { return localRuntime.Native.Json.values; } var ElmArray = Elm.Native.Array.make(localRuntime); var List = Elm.Native.List.make(localRuntime); var Maybe = Elm.Maybe.make(localRuntime); var Result = Elm.Result.make(localRuntime); var Utils = Elm.Native.Utils.make(localRuntime); function crash(expected, actual) { throw new Error( 'expecting ' + expected + ' but got ' + JSON.stringify(actual) ); } // PRIMITIVE VALUES function decodeNull(successValue) { return function(value) { if (value === null) { return successValue; } crash('null', value); }; } function decodeString(value) { if (typeof value === 'string' || value instanceof String) { return value; } crash('a String', value); } function decodeFloat(value) { if (typeof value === 'number') { return value; } crash('a Float', value); } function decodeInt(value) { if (typeof value !== 'number') { crash('an Int', value); } if (value < 2147483647 && value > -2147483647 && (value | 0) === value) { return value; } if (isFinite(value) && !(value % 1)) { return value; } crash('an Int', value); } function decodeBool(value) { if (typeof value === 'boolean') { return value; } crash('a Bool', value); } // ARRAY function decodeArray(decoder) { return function(value) { if (value instanceof Array) { var len = value.length; var array = new Array(len); for (var i = len; i--; ) { array[i] = decoder(value[i]); } return ElmArray.fromJSArray(array); } crash('an Array', value); }; } // LIST function decodeList(decoder) { return function(value) { if (value instanceof Array) { var len = value.length; var list = List.Nil; for (var i = len; i--; ) { list = List.Cons( decoder(value[i]), list ); } return list; } crash('a List', value); }; } // MAYBE function decodeMaybe(decoder) { return function(value) { try { return Maybe.Just(decoder(value)); } catch(e) { return Maybe.Nothing; } }; } // FIELDS function decodeField(field, decoder) { return function(value) { var subValue = value[field]; if (subValue !== undefined) { return decoder(subValue); } crash("an object with field '" + field + "'", value); }; } // OBJECTS function decodeKeyValuePairs(decoder) { return function(value) { var isObject = typeof value === 'object' && value !== null && !(value instanceof Array); if (isObject) { var keyValuePairs = List.Nil; for (var key in value) { var elmValue = decoder(value[key]); var pair = Utils.Tuple2(key, elmValue); keyValuePairs = List.Cons(pair, keyValuePairs); } return keyValuePairs; } crash('an object', value); }; } function decodeObject1(f, d1) { return function(value) { return f(d1(value)); }; } function decodeObject2(f, d1, d2) { return function(value) { return A2( f, d1(value), d2(value) ); }; } function decodeObject3(f, d1, d2, d3) { return function(value) { return A3( f, d1(value), d2(value), d3(value) ); }; } function decodeObject4(f, d1, d2, d3, d4) { return function(value) { return A4( f, d1(value), d2(value), d3(value), d4(value) ); }; } function decodeObject5(f, d1, d2, d3, d4, d5) { return function(value) { return A5( f, d1(value), d2(value), d3(value), d4(value), d5(value) ); }; } function decodeObject6(f, d1, d2, d3, d4, d5, d6) { return function(value) { return A6( f, d1(value), d2(value), d3(value), d4(value), d5(value), d6(value) ); }; } function decodeObject7(f, d1, d2, d3, d4, d5, d6, d7) { return function(value) { return A7( f, d1(value), d2(value), d3(value), d4(value), d5(value), d6(value), d7(value) ); }; } function decodeObject8(f, d1, d2, d3, d4, d5, d6, d7, d8) { return function(value) { return A8( f, d1(value), d2(value), d3(value), d4(value), d5(value), d6(value), d7(value), d8(value) ); }; } // TUPLES function decodeTuple1(f, d1) { return function(value) { if ( !(value instanceof Array) || value.length !== 1 ) { crash('a Tuple of length 1', value); } return f( d1(value[0]) ); }; } function decodeTuple2(f, d1, d2) { return function(value) { if ( !(value instanceof Array) || value.length !== 2 ) { crash('a Tuple of length 2', value); } return A2( f, d1(value[0]), d2(value[1]) ); }; } function decodeTuple3(f, d1, d2, d3) { return function(value) { if ( !(value instanceof Array) || value.length !== 3 ) { crash('a Tuple of length 3', value); } return A3( f, d1(value[0]), d2(value[1]), d3(value[2]) ); }; } function decodeTuple4(f, d1, d2, d3, d4) { return function(value) { if ( !(value instanceof Array) || value.length !== 4 ) { crash('a Tuple of length 4', value); } return A4( f, d1(value[0]), d2(value[1]), d3(value[2]), d4(value[3]) ); }; } function decodeTuple5(f, d1, d2, d3, d4, d5) { return function(value) { if ( !(value instanceof Array) || value.length !== 5 ) { crash('a Tuple of length 5', value); } return A5( f, d1(value[0]), d2(value[1]), d3(value[2]), d4(value[3]), d5(value[4]) ); }; } function decodeTuple6(f, d1, d2, d3, d4, d5, d6) { return function(value) { if ( !(value instanceof Array) || value.length !== 6 ) { crash('a Tuple of length 6', value); } return A6( f, d1(value[0]), d2(value[1]), d3(value[2]), d4(value[3]), d5(value[4]), d6(value[5]) ); }; } function decodeTuple7(f, d1, d2, d3, d4, d5, d6, d7) { return function(value) { if ( !(value instanceof Array) || value.length !== 7 ) { crash('a Tuple of length 7', value); } return A7( f, d1(value[0]), d2(value[1]), d3(value[2]), d4(value[3]), d5(value[4]), d6(value[5]), d7(value[6]) ); }; } function decodeTuple8(f, d1, d2, d3, d4, d5, d6, d7, d8) { return function(value) { if ( !(value instanceof Array) || value.length !== 8 ) { crash('a Tuple of length 8', value); } return A8( f, d1(value[0]), d2(value[1]), d3(value[2]), d4(value[3]), d5(value[4]), d6(value[5]), d7(value[6]), d8(value[7]) ); }; } // CUSTOM DECODERS function decodeValue(value) { return value; } function runDecoderValue(decoder, value) { try { return Result.Ok(decoder(value)); } catch(e) { return Result.Err(e.message); } } function customDecoder(decoder, callback) { return function(value) { var result = callback(decoder(value)); if (result.ctor === 'Err') { throw new Error('custom decoder failed: ' + result._0); } return result._0; }; } function andThen(decode, callback) { return function(value) { var result = decode(value); return callback(result)(value); }; } function fail(msg) { return function(value) { throw new Error(msg); }; } function succeed(successValue) { return function(value) { return successValue; }; } // ONE OF MANY function oneOf(decoders) { return function(value) { var errors = []; var temp = decoders; while (temp.ctor !== '[]') { try { return temp._0(value); } catch(e) { errors.push(e.message); } temp = temp._1; } throw new Error('expecting one of the following:\n ' + errors.join('\n ')); }; } function get(decoder, value) { try { return Result.Ok(decoder(value)); } catch(e) { return Result.Err(e.message); } } // ENCODE / DECODE function runDecoderString(decoder, string) { try { return Result.Ok(decoder(JSON.parse(string))); } catch(e) { return Result.Err(e.message); } } function encode(indentLevel, value) { return JSON.stringify(value, null, indentLevel); } function identity(value) { return value; } function encodeObject(keyValuePairs) { var obj = {}; while (keyValuePairs.ctor !== '[]') { var pair = keyValuePairs._0; obj[pair._0] = pair._1; keyValuePairs = keyValuePairs._1; } return obj; } return localRuntime.Native.Json.values = { encode: F2(encode), runDecoderString: F2(runDecoderString), runDecoderValue: F2(runDecoderValue), get: F2(get), oneOf: oneOf, decodeNull: decodeNull, decodeInt: decodeInt, decodeFloat: decodeFloat, decodeString: decodeString, decodeBool: decodeBool, decodeMaybe: decodeMaybe, decodeList: decodeList, decodeArray: decodeArray, decodeField: F2(decodeField), decodeObject1: F2(decodeObject1), decodeObject2: F3(decodeObject2), decodeObject3: F4(decodeObject3), decodeObject4: F5(decodeObject4), decodeObject5: F6(decodeObject5), decodeObject6: F7(decodeObject6), decodeObject7: F8(decodeObject7), decodeObject8: F9(decodeObject8), decodeKeyValuePairs: decodeKeyValuePairs, decodeTuple1: F2(decodeTuple1), decodeTuple2: F3(decodeTuple2), decodeTuple3: F4(decodeTuple3), decodeTuple4: F5(decodeTuple4), decodeTuple5: F6(decodeTuple5), decodeTuple6: F7(decodeTuple6), decodeTuple7: F8(decodeTuple7), decodeTuple8: F9(decodeTuple8), andThen: F2(andThen), decodeValue: decodeValue, customDecoder: F2(customDecoder), fail: fail, succeed: succeed, identity: identity, encodeNull: null, encodeArray: ElmArray.toJSArray, encodeList: List.toArray, encodeObject: encodeObject }; }; Elm.Json = Elm.Json || {}; Elm.Json.Encode = Elm.Json.Encode || {}; Elm.Json.Encode.make = function (_elm) { "use strict"; _elm.Json = _elm.Json || {}; _elm.Json.Encode = _elm.Json.Encode || {}; if (_elm.Json.Encode.values) return _elm.Json.Encode.values; var _U = Elm.Native.Utils.make(_elm),$Array = Elm.Array.make(_elm),$Native$Json = Elm.Native.Json.make(_elm); var _op = {}; var list = $Native$Json.encodeList; var array = $Native$Json.encodeArray; var object = $Native$Json.encodeObject; var $null = $Native$Json.encodeNull; var bool = $Native$Json.identity; var $float = $Native$Json.identity; var $int = $Native$Json.identity; var string = $Native$Json.identity; var encode = $Native$Json.encode; var Value = {ctor: "Value"}; return _elm.Json.Encode.values = {_op: _op ,encode: encode ,string: string ,$int: $int ,$float: $float ,bool: bool ,$null: $null ,list: list ,array: array ,object: object}; }; Elm.Json = Elm.Json || {}; Elm.Json.Decode = Elm.Json.Decode || {}; Elm.Json.Decode.make = function (_elm) { "use strict"; _elm.Json = _elm.Json || {}; _elm.Json.Decode = _elm.Json.Decode || {}; if (_elm.Json.Decode.values) return _elm.Json.Decode.values; var _U = Elm.Native.Utils.make(_elm), $Array = Elm.Array.make(_elm), $Dict = Elm.Dict.make(_elm), $Json$Encode = Elm.Json.Encode.make(_elm), $List = Elm.List.make(_elm), $Maybe = Elm.Maybe.make(_elm), $Native$Json = Elm.Native.Json.make(_elm), $Result = Elm.Result.make(_elm); var _op = {}; var tuple8 = $Native$Json.decodeTuple8; var tuple7 = $Native$Json.decodeTuple7; var tuple6 = $Native$Json.decodeTuple6; var tuple5 = $Native$Json.decodeTuple5; var tuple4 = $Native$Json.decodeTuple4; var tuple3 = $Native$Json.decodeTuple3; var tuple2 = $Native$Json.decodeTuple2; var tuple1 = $Native$Json.decodeTuple1; var succeed = $Native$Json.succeed; var fail = $Native$Json.fail; var andThen = $Native$Json.andThen; var customDecoder = $Native$Json.customDecoder; var decodeValue = $Native$Json.runDecoderValue; var value = $Native$Json.decodeValue; var maybe = $Native$Json.decodeMaybe; var $null = $Native$Json.decodeNull; var array = $Native$Json.decodeArray; var list = $Native$Json.decodeList; var bool = $Native$Json.decodeBool; var $int = $Native$Json.decodeInt; var $float = $Native$Json.decodeFloat; var string = $Native$Json.decodeString; var oneOf = $Native$Json.oneOf; var keyValuePairs = $Native$Json.decodeKeyValuePairs; var object8 = $Native$Json.decodeObject8; var object7 = $Native$Json.decodeObject7; var object6 = $Native$Json.decodeObject6; var object5 = $Native$Json.decodeObject5; var object4 = $Native$Json.decodeObject4; var object3 = $Native$Json.decodeObject3; var object2 = $Native$Json.decodeObject2; var object1 = $Native$Json.decodeObject1; _op[":="] = $Native$Json.decodeField; var at = F2(function (fields,decoder) { return A3($List.foldr,F2(function (x,y) { return A2(_op[":="],x,y);}),decoder,fields);}); var decodeString = $Native$Json.runDecoderString; var map = $Native$Json.decodeObject1; var dict = function (decoder) { return A2(map,$Dict.fromList,keyValuePairs(decoder));}; var Decoder = {ctor: "Decoder"}; return _elm.Json.Decode.values = {_op: _op ,decodeString: decodeString ,decodeValue: decodeValue ,string: string ,$int: $int ,$float: $float ,bool: bool ,$null: $null ,list: list ,array: array ,tuple1: tuple1 ,tuple2: tuple2 ,tuple3: tuple3 ,tuple4: tuple4 ,tuple5: tuple5 ,tuple6: tuple6 ,tuple7: tuple7 ,tuple8: tuple8 ,at: at ,object1: object1 ,object2: object2 ,object3: object3 ,object4: object4 ,object5: object5 ,object6: object6 ,object7: object7 ,object8: object8 ,keyValuePairs: keyValuePairs ,dict: dict ,maybe: maybe ,oneOf: oneOf ,map: map ,fail: fail ,succeed: succeed ,andThen: andThen ,value: value ,customDecoder: customDecoder}; }; Elm.Native.Effects = {}; Elm.Native.Effects.make = function(localRuntime) { localRuntime.Native = localRuntime.Native || {}; localRuntime.Native.Effects = localRuntime.Native.Effects || {}; if (localRuntime.Native.Effects.values) { return localRuntime.Native.Effects.values; } var Task = Elm.Native.Task.make(localRuntime); var Utils = Elm.Native.Utils.make(localRuntime); var Signal = Elm.Signal.make(localRuntime); var List = Elm.Native.List.make(localRuntime); // polyfill so things will work even if rAF is not available for some reason var _requestAnimationFrame = typeof requestAnimationFrame !== 'undefined' ? requestAnimationFrame : function(cb) { setTimeout(cb, 1000 / 60); } ; // batchedSending and sendCallback implement a small state machine in order // to schedule only one send(time) call per animation frame. // // Invariants: // 1. In the NO_REQUEST state, there is never a scheduled sendCallback. // 2. In the PENDING_REQUEST and EXTRA_REQUEST states, there is always exactly // one scheduled sendCallback. var NO_REQUEST = 0; var PENDING_REQUEST = 1; var EXTRA_REQUEST = 2; var state = NO_REQUEST; var messageArray = []; function batchedSending(address, tickMessages) { // insert ticks into the messageArray var foundAddress = false; for (var i = messageArray.length; i--; ) { if (messageArray[i].address === address) { foundAddress = true; messageArray[i].tickMessages = A3(List.foldl, List.cons, messageArray[i].tickMessages, tickMessages); break; } } if (!foundAddress) { messageArray.push({ address: address, tickMessages: tickMessages }); } // do the appropriate state transition switch (state) { case NO_REQUEST: _requestAnimationFrame(sendCallback); state = PENDING_REQUEST; break; case PENDING_REQUEST: state = PENDING_REQUEST; break; case EXTRA_REQUEST: state = PENDING_REQUEST; break; } } function sendCallback(time) { switch (state) { case NO_REQUEST: // This state should not be possible. How can there be no // request, yet somehow we are actively fulfilling a // request? throw new Error( 'Unexpected send callback.\n' + 'Please report this to .' ); case PENDING_REQUEST: // At this point, we do not *know* that another frame is // needed, but we make an extra request to rAF just in // case. It's possible to drop a frame if rAF is called // too late, so we just do it preemptively. _requestAnimationFrame(sendCallback); state = EXTRA_REQUEST; // There's also stuff we definitely need to send. send(time); return; case EXTRA_REQUEST: // Turns out the extra request was not needed, so we will // stop calling rAF. No reason to call it all the time if // no one needs it. state = NO_REQUEST; return; } } function send(time) { for (var i = messageArray.length; i--; ) { var messages = A3( List.foldl, F2( function(toAction, list) { return List.Cons(toAction(time), list); } ), List.Nil, messageArray[i].tickMessages ); Task.perform( A2(Signal.send, messageArray[i].address, messages) ); } messageArray = []; } function requestTickSending(address, tickMessages) { return Task.asyncFunction(function(callback) { batchedSending(address, tickMessages); callback(Task.succeed(Utils.Tuple0)); }); } return localRuntime.Native.Effects.values = { requestTickSending: F2(requestTickSending) }; }; Elm.Effects = Elm.Effects || {}; Elm.Effects.make = function (_elm) { "use strict"; _elm.Effects = _elm.Effects || {}; if (_elm.Effects.values) return _elm.Effects.values; var _U = Elm.Native.Utils.make(_elm), $Basics = Elm.Basics.make(_elm), $Debug = Elm.Debug.make(_elm), $List = Elm.List.make(_elm), $Maybe = Elm.Maybe.make(_elm), $Native$Effects = Elm.Native.Effects.make(_elm), $Result = Elm.Result.make(_elm), $Signal = Elm.Signal.make(_elm), $Task = Elm.Task.make(_elm), $Time = Elm.Time.make(_elm); var _op = {}; var ignore = function (task) { return A2($Task.map,$Basics.always({ctor: "_Tuple0"}),task);}; var requestTickSending = $Native$Effects.requestTickSending; var toTaskHelp = F3(function (address,effect,_p0) { var _p1 = _p0; var _p5 = _p1._1; var _p4 = _p1; var _p3 = _p1._0; var _p2 = effect; switch (_p2.ctor) {case "Task": var reporter = A2($Task.andThen,_p2._0,function (answer) { return A2($Signal.send,address,_U.list([answer]));}); return {ctor: "_Tuple2",_0: A2($Task.andThen,_p3,$Basics.always(ignore($Task.spawn(reporter)))),_1: _p5}; case "Tick": return {ctor: "_Tuple2",_0: _p3,_1: A2($List._op["::"],_p2._0,_p5)}; case "None": return _p4; default: return A3($List.foldl,toTaskHelp(address),_p4,_p2._0);} }); var toTask = F2(function (address,effect) { var _p6 = A3(toTaskHelp,address,effect,{ctor: "_Tuple2",_0: $Task.succeed({ctor: "_Tuple0"}),_1: _U.list([])}); var combinedTask = _p6._0; var tickMessages = _p6._1; return $List.isEmpty(tickMessages) ? combinedTask : A2($Task.andThen,combinedTask,$Basics.always(A2(requestTickSending,address,tickMessages))); }); var Never = function (a) { return {ctor: "Never",_0: a};}; var Batch = function (a) { return {ctor: "Batch",_0: a};}; var batch = Batch; var None = {ctor: "None"}; var none = None; var Tick = function (a) { return {ctor: "Tick",_0: a};}; var tick = Tick; var Task = function (a) { return {ctor: "Task",_0: a};}; var task = Task; var map = F2(function (func,effect) { var _p7 = effect; switch (_p7.ctor) {case "Task": return Task(A2($Task.map,func,_p7._0)); case "Tick": return Tick(function (_p8) { return func(_p7._0(_p8));}); case "None": return None; default: return Batch(A2($List.map,map(func),_p7._0));} }); return _elm.Effects.values = {_op: _op,none: none,task: task,tick: tick,map: map,batch: batch,toTask: toTask}; }; (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o> 0 currentItem = indices[currentIndex] if (minIndex === maxIndex) { return currentItem >= left && currentItem <= right } else if (currentItem < left) { minIndex = currentIndex + 1 } else if (currentItem > right) { maxIndex = currentIndex - 1 } else { return true } } return false; } function ascending(a, b) { return a > b ? 1 : -1 } },{}],8:[function(require,module,exports){ var applyProperties = require("./apply-properties") var isWidget = require("../vnode/is-widget.js") var VPatch = require("../vnode/vpatch.js") var render = require("./create-element") var updateWidget = require("./update-widget") module.exports = applyPatch function applyPatch(vpatch, domNode, renderOptions) { var type = vpatch.type var vNode = vpatch.vNode var patch = vpatch.patch switch (type) { case VPatch.REMOVE: return removeNode(domNode, vNode) case VPatch.INSERT: return insertNode(domNode, patch, renderOptions) case VPatch.VTEXT: return stringPatch(domNode, vNode, patch, renderOptions) case VPatch.WIDGET: return widgetPatch(domNode, vNode, patch, renderOptions) case VPatch.VNODE: return vNodePatch(domNode, vNode, patch, renderOptions) case VPatch.ORDER: reorderChildren(domNode, patch) return domNode case VPatch.PROPS: applyProperties(domNode, patch, vNode.properties) return domNode case VPatch.THUNK: return replaceRoot(domNode, renderOptions.patch(domNode, patch, renderOptions)) default: return domNode } } function removeNode(domNode, vNode) { var parentNode = domNode.parentNode if (parentNode) { parentNode.removeChild(domNode) } destroyWidget(domNode, vNode); return null } function insertNode(parentNode, vNode, renderOptions) { var newNode = render(vNode, renderOptions) if (parentNode) { parentNode.appendChild(newNode) } return parentNode } function stringPatch(domNode, leftVNode, vText, renderOptions) { var newNode if (domNode.nodeType === 3) { domNode.replaceData(0, domNode.length, vText.text) newNode = domNode } else { var parentNode = domNode.parentNode newNode = render(vText, renderOptions) if (parentNode && newNode !== domNode) { parentNode.replaceChild(newNode, domNode) } } return newNode } function widgetPatch(domNode, leftVNode, widget, renderOptions) { var updating = updateWidget(leftVNode, widget) var newNode if (updating) { newNode = widget.update(leftVNode, domNode) || domNode } else { newNode = render(widget, renderOptions) } var parentNode = domNode.parentNode if (parentNode && newNode !== domNode) { parentNode.replaceChild(newNode, domNode) } if (!updating) { destroyWidget(domNode, leftVNode) } return newNode } function vNodePatch(domNode, leftVNode, vNode, renderOptions) { var parentNode = domNode.parentNode var newNode = render(vNode, renderOptions) if (parentNode && newNode !== domNode) { parentNode.replaceChild(newNode, domNode) } return newNode } function destroyWidget(domNode, w) { if (typeof w.destroy === "function" && isWidget(w)) { w.destroy(domNode) } } function reorderChildren(domNode, moves) { var childNodes = domNode.childNodes var keyMap = {} var node var remove var insert for (var i = 0; i < moves.removes.length; i++) { remove = moves.removes[i] node = childNodes[remove.from] if (remove.key) { keyMap[remove.key] = node } domNode.removeChild(node) } var length = childNodes.length for (var j = 0; j < moves.inserts.length; j++) { insert = moves.inserts[j] node = keyMap[insert.key] // this is the weirdest bug i've ever seen in webkit domNode.insertBefore(node, insert.to >= length++ ? null : childNodes[insert.to]) } } function replaceRoot(oldRoot, newRoot) { if (oldRoot && newRoot && oldRoot !== newRoot && oldRoot.parentNode) { oldRoot.parentNode.replaceChild(newRoot, oldRoot) } return newRoot; } },{"../vnode/is-widget.js":16,"../vnode/vpatch.js":19,"./apply-properties":5,"./create-element":6,"./update-widget":10}],9:[function(require,module,exports){ var document = require("global/document") var isArray = require("x-is-array") var domIndex = require("./dom-index") var patchOp = require("./patch-op") module.exports = patch function patch(rootNode, patches) { return patchRecursive(rootNode, patches) } function patchRecursive(rootNode, patches, renderOptions) { var indices = patchIndices(patches) if (indices.length === 0) { return rootNode } var index = domIndex(rootNode, patches.a, indices) var ownerDocument = rootNode.ownerDocument if (!renderOptions) { renderOptions = { patch: patchRecursive } if (ownerDocument !== document) { renderOptions.document = ownerDocument } } for (var i = 0; i < indices.length; i++) { var nodeIndex = indices[i] rootNode = applyPatch(rootNode, index[nodeIndex], patches[nodeIndex], renderOptions) } return rootNode } function applyPatch(rootNode, domNode, patchList, renderOptions) { if (!domNode) { return rootNode } var newNode if (isArray(patchList)) { for (var i = 0; i < patchList.length; i++) { newNode = patchOp(patchList[i], domNode, renderOptions) if (domNode === rootNode) { rootNode = newNode } } } else { newNode = patchOp(patchList, domNode, renderOptions) if (domNode === rootNode) { rootNode = newNode } } return rootNode } function patchIndices(patches) { var indices = [] for (var key in patches) { if (key !== "a") { indices.push(Number(key)) } } return indices } },{"./dom-index":7,"./patch-op":8,"global/document":2,"x-is-array":4}],10:[function(require,module,exports){ var isWidget = require("../vnode/is-widget.js") module.exports = updateWidget function updateWidget(a, b) { if (isWidget(a) && isWidget(b)) { if ("name" in a && "name" in b) { return a.id === b.id } else { return a.init === b.init } } return false } },{"../vnode/is-widget.js":16}],11:[function(require,module,exports){ var isVNode = require("./is-vnode") var isVText = require("./is-vtext") var isWidget = require("./is-widget") var isThunk = require("./is-thunk") module.exports = handleThunk function handleThunk(a, b) { var renderedA = a var renderedB = b if (isThunk(b)) { renderedB = renderThunk(b, a) } if (isThunk(a)) { renderedA = renderThunk(a, null) } return { a: renderedA, b: renderedB } } function renderThunk(thunk, previous) { var renderedThunk = thunk.vnode if (!renderedThunk) { renderedThunk = thunk.vnode = thunk.render(previous) } if (!(isVNode(renderedThunk) || isVText(renderedThunk) || isWidget(renderedThunk))) { throw new Error("thunk did not return a valid node"); } return renderedThunk } },{"./is-thunk":12,"./is-vnode":14,"./is-vtext":15,"./is-widget":16}],12:[function(require,module,exports){ module.exports = isThunk function isThunk(t) { return t && t.type === "Thunk" } },{}],13:[function(require,module,exports){ module.exports = isHook function isHook(hook) { return hook && (typeof hook.hook === "function" && !hook.hasOwnProperty("hook") || typeof hook.unhook === "function" && !hook.hasOwnProperty("unhook")) } },{}],14:[function(require,module,exports){ var version = require("./version") module.exports = isVirtualNode function isVirtualNode(x) { return x && x.type === "VirtualNode" && x.version === version } },{"./version":17}],15:[function(require,module,exports){ var version = require("./version") module.exports = isVirtualText function isVirtualText(x) { return x && x.type === "VirtualText" && x.version === version } },{"./version":17}],16:[function(require,module,exports){ module.exports = isWidget function isWidget(w) { return w && w.type === "Widget" } },{}],17:[function(require,module,exports){ module.exports = "2" },{}],18:[function(require,module,exports){ var version = require("./version") var isVNode = require("./is-vnode") var isWidget = require("./is-widget") var isThunk = require("./is-thunk") var isVHook = require("./is-vhook") module.exports = VirtualNode var noProperties = {} var noChildren = [] function VirtualNode(tagName, properties, children, key, namespace) { this.tagName = tagName this.properties = properties || noProperties this.children = children || noChildren this.key = key != null ? String(key) : undefined this.namespace = (typeof namespace === "string") ? namespace : null var count = (children && children.length) || 0 var descendants = 0 var hasWidgets = false var hasThunks = false var descendantHooks = false var hooks for (var propName in properties) { if (properties.hasOwnProperty(propName)) { var property = properties[propName] if (isVHook(property) && property.unhook) { if (!hooks) { hooks = {} } hooks[propName] = property } } } for (var i = 0; i < count; i++) { var child = children[i] if (isVNode(child)) { descendants += child.count || 0 if (!hasWidgets && child.hasWidgets) { hasWidgets = true } if (!hasThunks && child.hasThunks) { hasThunks = true } if (!descendantHooks && (child.hooks || child.descendantHooks)) { descendantHooks = true } } else if (!hasWidgets && isWidget(child)) { if (typeof child.destroy === "function") { hasWidgets = true } } else if (!hasThunks && isThunk(child)) { hasThunks = true; } } this.count = count + descendants this.hasWidgets = hasWidgets this.hasThunks = hasThunks this.hooks = hooks this.descendantHooks = descendantHooks } VirtualNode.prototype.version = version VirtualNode.prototype.type = "VirtualNode" },{"./is-thunk":12,"./is-vhook":13,"./is-vnode":14,"./is-widget":16,"./version":17}],19:[function(require,module,exports){ var version = require("./version") VirtualPatch.NONE = 0 VirtualPatch.VTEXT = 1 VirtualPatch.VNODE = 2 VirtualPatch.WIDGET = 3 VirtualPatch.PROPS = 4 VirtualPatch.ORDER = 5 VirtualPatch.INSERT = 6 VirtualPatch.REMOVE = 7 VirtualPatch.THUNK = 8 module.exports = VirtualPatch function VirtualPatch(type, vNode, patch) { this.type = Number(type) this.vNode = vNode this.patch = patch } VirtualPatch.prototype.version = version VirtualPatch.prototype.type = "VirtualPatch" },{"./version":17}],20:[function(require,module,exports){ var version = require("./version") module.exports = VirtualText function VirtualText(text) { this.text = String(text) } VirtualText.prototype.version = version VirtualText.prototype.type = "VirtualText" },{"./version":17}],21:[function(require,module,exports){ var isObject = require("is-object") var isHook = require("../vnode/is-vhook") module.exports = diffProps function diffProps(a, b) { var diff for (var aKey in a) { if (!(aKey in b)) { diff = diff || {} diff[aKey] = undefined } var aValue = a[aKey] var bValue = b[aKey] if (aValue === bValue) { continue } else if (isObject(aValue) && isObject(bValue)) { if (getPrototype(bValue) !== getPrototype(aValue)) { diff = diff || {} diff[aKey] = bValue } else if (isHook(bValue)) { diff = diff || {} diff[aKey] = bValue } else { var objectDiff = diffProps(aValue, bValue) if (objectDiff) { diff = diff || {} diff[aKey] = objectDiff } } } else { diff = diff || {} diff[aKey] = bValue } } for (var bKey in b) { if (!(bKey in a)) { diff = diff || {} diff[bKey] = b[bKey] } } return diff } function getPrototype(value) { if (Object.getPrototypeOf) { return Object.getPrototypeOf(value) } else if (value.__proto__) { return value.__proto__ } else if (value.constructor) { return value.constructor.prototype } } },{"../vnode/is-vhook":13,"is-object":3}],22:[function(require,module,exports){ var isArray = require("x-is-array") var VPatch = require("../vnode/vpatch") var isVNode = require("../vnode/is-vnode") var isVText = require("../vnode/is-vtext") var isWidget = require("../vnode/is-widget") var isThunk = require("../vnode/is-thunk") var handleThunk = require("../vnode/handle-thunk") var diffProps = require("./diff-props") module.exports = diff function diff(a, b) { var patch = { a: a } walk(a, b, patch, 0) return patch } function walk(a, b, patch, index) { if (a === b) { return } var apply = patch[index] var applyClear = false if (isThunk(a) || isThunk(b)) { thunks(a, b, patch, index) } else if (b == null) { // If a is a widget we will add a remove patch for it // Otherwise any child widgets/hooks must be destroyed. // This prevents adding two remove patches for a widget. if (!isWidget(a)) { clearState(a, patch, index) apply = patch[index] } apply = appendPatch(apply, new VPatch(VPatch.REMOVE, a, b)) } else if (isVNode(b)) { if (isVNode(a)) { if (a.tagName === b.tagName && a.namespace === b.namespace && a.key === b.key) { var propsPatch = diffProps(a.properties, b.properties) if (propsPatch) { apply = appendPatch(apply, new VPatch(VPatch.PROPS, a, propsPatch)) } apply = diffChildren(a, b, patch, apply, index) } else { apply = appendPatch(apply, new VPatch(VPatch.VNODE, a, b)) applyClear = true } } else { apply = appendPatch(apply, new VPatch(VPatch.VNODE, a, b)) applyClear = true } } else if (isVText(b)) { if (!isVText(a)) { apply = appendPatch(apply, new VPatch(VPatch.VTEXT, a, b)) applyClear = true } else if (a.text !== b.text) { apply = appendPatch(apply, new VPatch(VPatch.VTEXT, a, b)) } } else if (isWidget(b)) { if (!isWidget(a)) { applyClear = true } apply = appendPatch(apply, new VPatch(VPatch.WIDGET, a, b)) } if (apply) { patch[index] = apply } if (applyClear) { clearState(a, patch, index) } } function diffChildren(a, b, patch, apply, index) { var aChildren = a.children var orderedSet = reorder(aChildren, b.children) var bChildren = orderedSet.children var aLen = aChildren.length var bLen = bChildren.length var len = aLen > bLen ? aLen : bLen for (var i = 0; i < len; i++) { var leftNode = aChildren[i] var rightNode = bChildren[i] index += 1 if (!leftNode) { if (rightNode) { // Excess nodes in b need to be added apply = appendPatch(apply, new VPatch(VPatch.INSERT, null, rightNode)) } } else { walk(leftNode, rightNode, patch, index) } if (isVNode(leftNode) && leftNode.count) { index += leftNode.count } } if (orderedSet.moves) { // Reorder nodes last apply = appendPatch(apply, new VPatch( VPatch.ORDER, a, orderedSet.moves )) } return apply } function clearState(vNode, patch, index) { // TODO: Make this a single walk, not two unhook(vNode, patch, index) destroyWidgets(vNode, patch, index) } // Patch records for all destroyed widgets must be added because we need // a DOM node reference for the destroy function function destroyWidgets(vNode, patch, index) { if (isWidget(vNode)) { if (typeof vNode.destroy === "function") { patch[index] = appendPatch( patch[index], new VPatch(VPatch.REMOVE, vNode, null) ) } } else if (isVNode(vNode) && (vNode.hasWidgets || vNode.hasThunks)) { var children = vNode.children var len = children.length for (var i = 0; i < len; i++) { var child = children[i] index += 1 destroyWidgets(child, patch, index) if (isVNode(child) && child.count) { index += child.count } } } else if (isThunk(vNode)) { thunks(vNode, null, patch, index) } } // Create a sub-patch for thunks function thunks(a, b, patch, index) { var nodes = handleThunk(a, b) var thunkPatch = diff(nodes.a, nodes.b) if (hasPatches(thunkPatch)) { patch[index] = new VPatch(VPatch.THUNK, null, thunkPatch) } } function hasPatches(patch) { for (var index in patch) { if (index !== "a") { return true } } return false } // Execute hooks when two nodes are identical function unhook(vNode, patch, index) { if (isVNode(vNode)) { if (vNode.hooks) { patch[index] = appendPatch( patch[index], new VPatch( VPatch.PROPS, vNode, undefinedKeys(vNode.hooks) ) ) } if (vNode.descendantHooks || vNode.hasThunks) { var children = vNode.children var len = children.length for (var i = 0; i < len; i++) { var child = children[i] index += 1 unhook(child, patch, index) if (isVNode(child) && child.count) { index += child.count } } } } else if (isThunk(vNode)) { thunks(vNode, null, patch, index) } } function undefinedKeys(obj) { var result = {} for (var key in obj) { result[key] = undefined } return result } // List diff, naive left to right reordering function reorder(aChildren, bChildren) { // O(M) time, O(M) memory var bChildIndex = keyIndex(bChildren) var bKeys = bChildIndex.keys var bFree = bChildIndex.free if (bFree.length === bChildren.length) { return { children: bChildren, moves: null } } // O(N) time, O(N) memory var aChildIndex = keyIndex(aChildren) var aKeys = aChildIndex.keys var aFree = aChildIndex.free if (aFree.length === aChildren.length) { return { children: bChildren, moves: null } } // O(MAX(N, M)) memory var newChildren = [] var freeIndex = 0 var freeCount = bFree.length var deletedItems = 0 // Iterate through a and match a node in b // O(N) time, for (var i = 0 ; i < aChildren.length; i++) { var aItem = aChildren[i] var itemIndex if (aItem.key) { if (bKeys.hasOwnProperty(aItem.key)) { // Match up the old keys itemIndex = bKeys[aItem.key] newChildren.push(bChildren[itemIndex]) } else { // Remove old keyed items itemIndex = i - deletedItems++ newChildren.push(null) } } else { // Match the item in a with the next free item in b if (freeIndex < freeCount) { itemIndex = bFree[freeIndex++] newChildren.push(bChildren[itemIndex]) } else { // There are no free items in b to match with // the free items in a, so the extra free nodes // are deleted. itemIndex = i - deletedItems++ newChildren.push(null) } } } var lastFreeIndex = freeIndex >= bFree.length ? bChildren.length : bFree[freeIndex] // Iterate through b and append any new keys // O(M) time for (var j = 0; j < bChildren.length; j++) { var newItem = bChildren[j] if (newItem.key) { if (!aKeys.hasOwnProperty(newItem.key)) { // Add any new keyed items // We are adding new items to the end and then sorting them // in place. In future we should insert new items in place. newChildren.push(newItem) } } else if (j >= lastFreeIndex) { // Add any leftover non-keyed items newChildren.push(newItem) } } var simulate = newChildren.slice() var simulateIndex = 0 var removes = [] var inserts = [] var simulateItem for (var k = 0; k < bChildren.length;) { var wantedItem = bChildren[k] simulateItem = simulate[simulateIndex] // remove items while (simulateItem === null && simulate.length) { removes.push(remove(simulate, simulateIndex, null)) simulateItem = simulate[simulateIndex] } if (!simulateItem || simulateItem.key !== wantedItem.key) { // if we need a key in this position... if (wantedItem.key) { if (simulateItem && simulateItem.key) { // if an insert doesn't put this key in place, it needs to move if (bKeys[simulateItem.key] !== k + 1) { removes.push(remove(simulate, simulateIndex, simulateItem.key)) simulateItem = simulate[simulateIndex] // if the remove didn't put the wanted item in place, we need to insert it if (!simulateItem || simulateItem.key !== wantedItem.key) { inserts.push({key: wantedItem.key, to: k}) } // items are matching, so skip ahead else { simulateIndex++ } } else { inserts.push({key: wantedItem.key, to: k}) } } else { inserts.push({key: wantedItem.key, to: k}) } k++ } // a key in simulate has no matching wanted key, remove it else if (simulateItem && simulateItem.key) { removes.push(remove(simulate, simulateIndex, simulateItem.key)) } } else { simulateIndex++ k++ } } // remove all the remaining nodes from simulate while(simulateIndex < simulate.length) { simulateItem = simulate[simulateIndex] removes.push(remove(simulate, simulateIndex, simulateItem && simulateItem.key)) } // If the only moves we have are deletes then we can just // let the delete patch remove these items. if (removes.length === deletedItems && !inserts.length) { return { children: newChildren, moves: null } } return { children: newChildren, moves: { removes: removes, inserts: inserts } } } function remove(arr, index, key) { arr.splice(index, 1) return { from: index, key: key } } function keyIndex(children) { var keys = {} var free = [] var length = children.length for (var i = 0; i < length; i++) { var child = children[i] if (child.key) { keys[child.key] = i } else { free.push(i) } } return { keys: keys, // A hash of key name to index free: free, // An array of unkeyed item indices } } function appendPatch(apply, patch) { if (apply) { if (isArray(apply)) { apply.push(patch) } else { apply = [apply, patch] } return apply } else { return patch } } },{"../vnode/handle-thunk":11,"../vnode/is-thunk":12,"../vnode/is-vnode":14,"../vnode/is-vtext":15,"../vnode/is-widget":16,"../vnode/vpatch":19,"./diff-props":21,"x-is-array":4}],23:[function(require,module,exports){ var VNode = require('virtual-dom/vnode/vnode'); var VText = require('virtual-dom/vnode/vtext'); var diff = require('virtual-dom/vtree/diff'); var patch = require('virtual-dom/vdom/patch'); var createElement = require('virtual-dom/vdom/create-element'); var isHook = require("virtual-dom/vnode/is-vhook"); Elm.Native.VirtualDom = {}; Elm.Native.VirtualDom.make = function(elm) { elm.Native = elm.Native || {}; elm.Native.VirtualDom = elm.Native.VirtualDom || {}; if (elm.Native.VirtualDom.values) { return elm.Native.VirtualDom.values; } var Element = Elm.Native.Graphics.Element.make(elm); var Json = Elm.Native.Json.make(elm); var List = Elm.Native.List.make(elm); var Signal = Elm.Native.Signal.make(elm); var Utils = Elm.Native.Utils.make(elm); var ATTRIBUTE_KEY = 'UniqueNameThatOthersAreVeryUnlikelyToUse'; // VIRTUAL DOM NODES function text(string) { return new VText(string); } function node(name) { return F2(function(propertyList, contents) { return makeNode(name, propertyList, contents); }); } // BUILD VIRTUAL DOME NODES function makeNode(name, propertyList, contents) { var props = listToProperties(propertyList); var key, namespace; // support keys if (props.key !== undefined) { key = props.key; props.key = undefined; } // support namespace if (props.namespace !== undefined) { namespace = props.namespace; props.namespace = undefined; } // ensure that setting text of an input does not move the cursor var useSoftSet = (name === 'input' || name === 'textarea') && props.value !== undefined && !isHook(props.value); if (useSoftSet) { props.value = SoftSetHook(props.value); } return new VNode(name, props, List.toArray(contents), key, namespace); } function listToProperties(list) { var object = {}; while (list.ctor !== '[]') { var entry = list._0; if (entry.key === ATTRIBUTE_KEY) { object.attributes = object.attributes || {}; object.attributes[entry.value.attrKey] = entry.value.attrValue; } else { object[entry.key] = entry.value; } list = list._1; } return object; } // PROPERTIES AND ATTRIBUTES function property(key, value) { return { key: key, value: value }; } function attribute(key, value) { return { key: ATTRIBUTE_KEY, value: { attrKey: key, attrValue: value } }; } // NAMESPACED ATTRIBUTES function attributeNS(namespace, key, value) { return { key: key, value: new AttributeHook(namespace, key, value) }; } function AttributeHook(namespace, key, value) { if (!(this instanceof AttributeHook)) { return new AttributeHook(namespace, key, value); } this.namespace = namespace; this.key = key; this.value = value; } AttributeHook.prototype.hook = function (node, prop, prev) { if (prev && prev.type === 'AttributeHook' && prev.value === this.value && prev.namespace === this.namespace) { return; } node.setAttributeNS(this.namespace, prop, this.value); }; AttributeHook.prototype.unhook = function (node, prop, next) { if (next && next.type === 'AttributeHook' && next.namespace === this.namespace) { return; } node.removeAttributeNS(this.namespace, this.key); }; AttributeHook.prototype.type = 'AttributeHook'; // EVENTS function on(name, options, decoder, createMessage) { function eventHandler(event) { var value = A2(Json.runDecoderValue, decoder, event); if (value.ctor === 'Ok') { if (options.stopPropagation) { event.stopPropagation(); } if (options.preventDefault) { event.preventDefault(); } Signal.sendMessage(createMessage(value._0)); } } return property('on' + name, eventHandler); } function SoftSetHook(value) { if (!(this instanceof SoftSetHook)) { return new SoftSetHook(value); } this.value = value; } SoftSetHook.prototype.hook = function (node, propertyName) { if (node[propertyName] !== this.value) { node[propertyName] = this.value; } }; // INTEGRATION WITH ELEMENTS function ElementWidget(element) { this.element = element; } ElementWidget.prototype.type = "Widget"; ElementWidget.prototype.init = function init() { return Element.render(this.element); }; ElementWidget.prototype.update = function update(previous, node) { return Element.update(node, previous.element, this.element); }; function fromElement(element) { return new ElementWidget(element); } function toElement(width, height, html) { return A3(Element.newElement, width, height, { ctor: 'Custom', type: 'evancz/elm-html', render: render, update: update, model: html }); } // RENDER AND UPDATE function render(model) { var element = Element.createNode('div'); element.appendChild(createElement(model)); return element; } function update(node, oldModel, newModel) { updateAndReplace(node.firstChild, oldModel, newModel); return node; } function updateAndReplace(node, oldModel, newModel) { var patches = diff(oldModel, newModel); var newNode = patch(node, patches); return newNode; } // LAZINESS function lazyRef(fn, a) { function thunk() { return fn(a); } return new Thunk(fn, [a], thunk); } function lazyRef2(fn, a, b) { function thunk() { return A2(fn, a, b); } return new Thunk(fn, [a,b], thunk); } function lazyRef3(fn, a, b, c) { function thunk() { return A3(fn, a, b, c); } return new Thunk(fn, [a,b,c], thunk); } function Thunk(fn, args, thunk) { /* public (used by VirtualDom.js) */ this.vnode = null; this.key = undefined; /* private */ this.fn = fn; this.args = args; this.thunk = thunk; } Thunk.prototype.type = "Thunk"; Thunk.prototype.render = renderThunk; function shouldUpdate(current, previous) { if (current.fn !== previous.fn) { return true; } // if it's the same function, we know the number of args must match var cargs = current.args; var pargs = previous.args; for (var i = cargs.length; i--; ) { if (cargs[i] !== pargs[i]) { return true; } } return false; } function renderThunk(previous) { if (previous == null || shouldUpdate(this, previous)) { return this.thunk(); } else { return previous.vnode; } } return elm.Native.VirtualDom.values = Elm.Native.VirtualDom.values = { node: node, text: text, on: F4(on), property: F2(property), attribute: F2(attribute), attributeNS: F3(attributeNS), lazy: F2(lazyRef), lazy2: F3(lazyRef2), lazy3: F4(lazyRef3), toElement: F3(toElement), fromElement: fromElement, render: createElement, updateAndReplace: updateAndReplace }; }; },{"virtual-dom/vdom/create-element":6,"virtual-dom/vdom/patch":9,"virtual-dom/vnode/is-vhook":13,"virtual-dom/vnode/vnode":18,"virtual-dom/vnode/vtext":20,"virtual-dom/vtree/diff":22}]},{},[23]); Elm.VirtualDom = Elm.VirtualDom || {}; Elm.VirtualDom.make = function (_elm) { "use strict"; _elm.VirtualDom = _elm.VirtualDom || {}; if (_elm.VirtualDom.values) return _elm.VirtualDom.values; var _U = Elm.Native.Utils.make(_elm), $Basics = Elm.Basics.make(_elm), $Debug = Elm.Debug.make(_elm), $Graphics$Element = Elm.Graphics.Element.make(_elm), $Json$Decode = Elm.Json.Decode.make(_elm), $List = Elm.List.make(_elm), $Maybe = Elm.Maybe.make(_elm), $Native$VirtualDom = Elm.Native.VirtualDom.make(_elm), $Result = Elm.Result.make(_elm), $Signal = Elm.Signal.make(_elm); var _op = {}; var lazy3 = $Native$VirtualDom.lazy3; var lazy2 = $Native$VirtualDom.lazy2; var lazy = $Native$VirtualDom.lazy; var defaultOptions = {stopPropagation: false,preventDefault: false}; var Options = F2(function (a,b) { return {stopPropagation: a,preventDefault: b};}); var onWithOptions = $Native$VirtualDom.on; var on = F3(function (eventName,decoder,toMessage) { return A4($Native$VirtualDom.on,eventName,defaultOptions,decoder,toMessage);}); var attributeNS = $Native$VirtualDom.attributeNS; var attribute = $Native$VirtualDom.attribute; var property = $Native$VirtualDom.property; var Property = {ctor: "Property"}; var fromElement = $Native$VirtualDom.fromElement; var toElement = $Native$VirtualDom.toElement; var text = $Native$VirtualDom.text; var node = $Native$VirtualDom.node; var Node = {ctor: "Node"}; return _elm.VirtualDom.values = {_op: _op ,text: text ,node: node ,toElement: toElement ,fromElement: fromElement ,property: property ,attribute: attribute ,attributeNS: attributeNS ,on: on ,onWithOptions: onWithOptions ,defaultOptions: defaultOptions ,lazy: lazy ,lazy2: lazy2 ,lazy3: lazy3 ,Options: Options}; }; Elm.Html = Elm.Html || {}; Elm.Html.make = function (_elm) { "use strict"; _elm.Html = _elm.Html || {}; if (_elm.Html.values) return _elm.Html.values; var _U = Elm.Native.Utils.make(_elm), $Basics = Elm.Basics.make(_elm), $Debug = Elm.Debug.make(_elm), $Graphics$Element = Elm.Graphics.Element.make(_elm), $List = Elm.List.make(_elm), $Maybe = Elm.Maybe.make(_elm), $Result = Elm.Result.make(_elm), $Signal = Elm.Signal.make(_elm), $VirtualDom = Elm.VirtualDom.make(_elm); var _op = {}; var fromElement = $VirtualDom.fromElement; var toElement = $VirtualDom.toElement; var text = $VirtualDom.text; var node = $VirtualDom.node; var body = node("body"); var section = node("section"); var nav = node("nav"); var article = node("article"); var aside = node("aside"); var h1 = node("h1"); var h2 = node("h2"); var h3 = node("h3"); var h4 = node("h4"); var h5 = node("h5"); var h6 = node("h6"); var header = node("header"); var footer = node("footer"); var address = node("address"); var main$ = node("main"); var p = node("p"); var hr = node("hr"); var pre = node("pre"); var blockquote = node("blockquote"); var ol = node("ol"); var ul = node("ul"); var li = node("li"); var dl = node("dl"); var dt = node("dt"); var dd = node("dd"); var figure = node("figure"); var figcaption = node("figcaption"); var div = node("div"); var a = node("a"); var em = node("em"); var strong = node("strong"); var small = node("small"); var s = node("s"); var cite = node("cite"); var q = node("q"); var dfn = node("dfn"); var abbr = node("abbr"); var time = node("time"); var code = node("code"); var $var = node("var"); var samp = node("samp"); var kbd = node("kbd"); var sub = node("sub"); var sup = node("sup"); var i = node("i"); var b = node("b"); var u = node("u"); var mark = node("mark"); var ruby = node("ruby"); var rt = node("rt"); var rp = node("rp"); var bdi = node("bdi"); var bdo = node("bdo"); var span = node("span"); var br = node("br"); var wbr = node("wbr"); var ins = node("ins"); var del = node("del"); var img = node("img"); var iframe = node("iframe"); var embed = node("embed"); var object = node("object"); var param = node("param"); var video = node("video"); var audio = node("audio"); var source = node("source"); var track = node("track"); var canvas = node("canvas"); var svg = node("svg"); var math = node("math"); var table = node("table"); var caption = node("caption"); var colgroup = node("colgroup"); var col = node("col"); var tbody = node("tbody"); var thead = node("thead"); var tfoot = node("tfoot"); var tr = node("tr"); var td = node("td"); var th = node("th"); var form = node("form"); var fieldset = node("fieldset"); var legend = node("legend"); var label = node("label"); var input = node("input"); var button = node("button"); var select = node("select"); var datalist = node("datalist"); var optgroup = node("optgroup"); var option = node("option"); var textarea = node("textarea"); var keygen = node("keygen"); var output = node("output"); var progress = node("progress"); var meter = node("meter"); var details = node("details"); var summary = node("summary"); var menuitem = node("menuitem"); var menu = node("menu"); return _elm.Html.values = {_op: _op ,node: node ,text: text ,toElement: toElement ,fromElement: fromElement ,body: body ,section: section ,nav: nav ,article: article ,aside: aside ,h1: h1 ,h2: h2 ,h3: h3 ,h4: h4 ,h5: h5 ,h6: h6 ,header: header ,footer: footer ,address: address ,main$: main$ ,p: p ,hr: hr ,pre: pre ,blockquote: blockquote ,ol: ol ,ul: ul ,li: li ,dl: dl ,dt: dt ,dd: dd ,figure: figure ,figcaption: figcaption ,div: div ,a: a ,em: em ,strong: strong ,small: small ,s: s ,cite: cite ,q: q ,dfn: dfn ,abbr: abbr ,time: time ,code: code ,$var: $var ,samp: samp ,kbd: kbd ,sub: sub ,sup: sup ,i: i ,b: b ,u: u ,mark: mark ,ruby: ruby ,rt: rt ,rp: rp ,bdi: bdi ,bdo: bdo ,span: span ,br: br ,wbr: wbr ,ins: ins ,del: del ,img: img ,iframe: iframe ,embed: embed ,object: object ,param: param ,video: video ,audio: audio ,source: source ,track: track ,canvas: canvas ,svg: svg ,math: math ,table: table ,caption: caption ,colgroup: colgroup ,col: col ,tbody: tbody ,thead: thead ,tfoot: tfoot ,tr: tr ,td: td ,th: th ,form: form ,fieldset: fieldset ,legend: legend ,label: label ,input: input ,button: button ,select: select ,datalist: datalist ,optgroup: optgroup ,option: option ,textarea: textarea ,keygen: keygen ,output: output ,progress: progress ,meter: meter ,details: details ,summary: summary ,menuitem: menuitem ,menu: menu}; }; Elm.Html = Elm.Html || {}; Elm.Html.Attributes = Elm.Html.Attributes || {}; Elm.Html.Attributes.make = function (_elm) { "use strict"; _elm.Html = _elm.Html || {}; _elm.Html.Attributes = _elm.Html.Attributes || {}; if (_elm.Html.Attributes.values) return _elm.Html.Attributes.values; var _U = Elm.Native.Utils.make(_elm), $Basics = Elm.Basics.make(_elm), $Debug = Elm.Debug.make(_elm), $Html = Elm.Html.make(_elm), $Json$Encode = Elm.Json.Encode.make(_elm), $List = Elm.List.make(_elm), $Maybe = Elm.Maybe.make(_elm), $Result = Elm.Result.make(_elm), $Signal = Elm.Signal.make(_elm), $String = Elm.String.make(_elm), $VirtualDom = Elm.VirtualDom.make(_elm); var _op = {}; var attribute = $VirtualDom.attribute; var contextmenu = function (value) { return A2(attribute,"contextmenu",value);}; var property = $VirtualDom.property; var stringProperty = F2(function (name,string) { return A2(property,name,$Json$Encode.string(string));}); var $class = function (name) { return A2(stringProperty,"className",name);}; var id = function (name) { return A2(stringProperty,"id",name);}; var title = function (name) { return A2(stringProperty,"title",name);}; var accesskey = function ($char) { return A2(stringProperty,"accessKey",$String.fromChar($char));}; var dir = function (value) { return A2(stringProperty,"dir",value);}; var draggable = function (value) { return A2(stringProperty,"draggable",value);}; var dropzone = function (value) { return A2(stringProperty,"dropzone",value);}; var itemprop = function (value) { return A2(stringProperty,"itemprop",value);}; var lang = function (value) { return A2(stringProperty,"lang",value);}; var tabindex = function (n) { return A2(stringProperty,"tabIndex",$Basics.toString(n));}; var charset = function (value) { return A2(stringProperty,"charset",value);}; var content = function (value) { return A2(stringProperty,"content",value);}; var httpEquiv = function (value) { return A2(stringProperty,"httpEquiv",value);}; var language = function (value) { return A2(stringProperty,"language",value);}; var src = function (value) { return A2(stringProperty,"src",value);}; var height = function (value) { return A2(stringProperty,"height",$Basics.toString(value));}; var width = function (value) { return A2(stringProperty,"width",$Basics.toString(value));}; var alt = function (value) { return A2(stringProperty,"alt",value);}; var preload = function (value) { return A2(stringProperty,"preload",value);}; var poster = function (value) { return A2(stringProperty,"poster",value);}; var kind = function (value) { return A2(stringProperty,"kind",value);}; var srclang = function (value) { return A2(stringProperty,"srclang",value);}; var sandbox = function (value) { return A2(stringProperty,"sandbox",value);}; var srcdoc = function (value) { return A2(stringProperty,"srcdoc",value);}; var type$ = function (value) { return A2(stringProperty,"type",value);}; var value = function (value) { return A2(stringProperty,"value",value);}; var placeholder = function (value) { return A2(stringProperty,"placeholder",value);}; var accept = function (value) { return A2(stringProperty,"accept",value);}; var acceptCharset = function (value) { return A2(stringProperty,"acceptCharset",value);}; var action = function (value) { return A2(stringProperty,"action",value);}; var autocomplete = function (bool) { return A2(stringProperty,"autocomplete",bool ? "on" : "off");}; var autosave = function (value) { return A2(stringProperty,"autosave",value);}; var enctype = function (value) { return A2(stringProperty,"enctype",value);}; var formaction = function (value) { return A2(stringProperty,"formAction",value);}; var list = function (value) { return A2(stringProperty,"list",value);}; var minlength = function (n) { return A2(stringProperty,"minLength",$Basics.toString(n));}; var maxlength = function (n) { return A2(stringProperty,"maxLength",$Basics.toString(n));}; var method = function (value) { return A2(stringProperty,"method",value);}; var name = function (value) { return A2(stringProperty,"name",value);}; var pattern = function (value) { return A2(stringProperty,"pattern",value);}; var size = function (n) { return A2(stringProperty,"size",$Basics.toString(n));}; var $for = function (value) { return A2(stringProperty,"htmlFor",value);}; var form = function (value) { return A2(stringProperty,"form",value);}; var max = function (value) { return A2(stringProperty,"max",value);}; var min = function (value) { return A2(stringProperty,"min",value);}; var step = function (n) { return A2(stringProperty,"step",n);}; var cols = function (n) { return A2(stringProperty,"cols",$Basics.toString(n));}; var rows = function (n) { return A2(stringProperty,"rows",$Basics.toString(n));}; var wrap = function (value) { return A2(stringProperty,"wrap",value);}; var usemap = function (value) { return A2(stringProperty,"useMap",value);}; var shape = function (value) { return A2(stringProperty,"shape",value);}; var coords = function (value) { return A2(stringProperty,"coords",value);}; var challenge = function (value) { return A2(stringProperty,"challenge",value);}; var keytype = function (value) { return A2(stringProperty,"keytype",value);}; var align = function (value) { return A2(stringProperty,"align",value);}; var cite = function (value) { return A2(stringProperty,"cite",value);}; var href = function (value) { return A2(stringProperty,"href",value);}; var target = function (value) { return A2(stringProperty,"target",value);}; var downloadAs = function (value) { return A2(stringProperty,"download",value);}; var hreflang = function (value) { return A2(stringProperty,"hreflang",value);}; var media = function (value) { return A2(stringProperty,"media",value);}; var ping = function (value) { return A2(stringProperty,"ping",value);}; var rel = function (value) { return A2(stringProperty,"rel",value);}; var datetime = function (value) { return A2(stringProperty,"datetime",value);}; var pubdate = function (value) { return A2(stringProperty,"pubdate",value);}; var start = function (n) { return A2(stringProperty,"start",$Basics.toString(n));}; var colspan = function (n) { return A2(stringProperty,"colSpan",$Basics.toString(n));}; var headers = function (value) { return A2(stringProperty,"headers",value);}; var rowspan = function (n) { return A2(stringProperty,"rowSpan",$Basics.toString(n));}; var scope = function (value) { return A2(stringProperty,"scope",value);}; var manifest = function (value) { return A2(stringProperty,"manifest",value);}; var boolProperty = F2(function (name,bool) { return A2(property,name,$Json$Encode.bool(bool));}); var hidden = function (bool) { return A2(boolProperty,"hidden",bool);}; var contenteditable = function (bool) { return A2(boolProperty,"contentEditable",bool);}; var spellcheck = function (bool) { return A2(boolProperty,"spellcheck",bool);}; var async = function (bool) { return A2(boolProperty,"async",bool);}; var defer = function (bool) { return A2(boolProperty,"defer",bool);}; var scoped = function (bool) { return A2(boolProperty,"scoped",bool);}; var autoplay = function (bool) { return A2(boolProperty,"autoplay",bool);}; var controls = function (bool) { return A2(boolProperty,"controls",bool);}; var loop = function (bool) { return A2(boolProperty,"loop",bool);}; var $default = function (bool) { return A2(boolProperty,"default",bool);}; var seamless = function (bool) { return A2(boolProperty,"seamless",bool);}; var checked = function (bool) { return A2(boolProperty,"checked",bool);}; var selected = function (bool) { return A2(boolProperty,"selected",bool);}; var autofocus = function (bool) { return A2(boolProperty,"autofocus",bool);}; var disabled = function (bool) { return A2(boolProperty,"disabled",bool);}; var multiple = function (bool) { return A2(boolProperty,"multiple",bool);}; var novalidate = function (bool) { return A2(boolProperty,"noValidate",bool);}; var readonly = function (bool) { return A2(boolProperty,"readOnly",bool);}; var required = function (bool) { return A2(boolProperty,"required",bool);}; var ismap = function (value) { return A2(boolProperty,"isMap",value);}; var download = function (bool) { return A2(boolProperty,"download",bool);}; var reversed = function (bool) { return A2(boolProperty,"reversed",bool);}; var classList = function (list) { return $class(A2($String.join," ",A2($List.map,$Basics.fst,A2($List.filter,$Basics.snd,list))));}; var style = function (props) { return A2(property, "style", $Json$Encode.object(A2($List.map,function (_p0) { var _p1 = _p0;return {ctor: "_Tuple2",_0: _p1._0,_1: $Json$Encode.string(_p1._1)};},props))); }; var key = function (k) { return A2(stringProperty,"key",k);}; return _elm.Html.Attributes.values = {_op: _op ,key: key ,style: style ,$class: $class ,classList: classList ,id: id ,title: title ,hidden: hidden ,type$: type$ ,value: value ,checked: checked ,placeholder: placeholder ,selected: selected ,accept: accept ,acceptCharset: acceptCharset ,action: action ,autocomplete: autocomplete ,autofocus: autofocus ,autosave: autosave ,disabled: disabled ,enctype: enctype ,formaction: formaction ,list: list ,maxlength: maxlength ,minlength: minlength ,method: method ,multiple: multiple ,name: name ,novalidate: novalidate ,pattern: pattern ,readonly: readonly ,required: required ,size: size ,$for: $for ,form: form ,max: max ,min: min ,step: step ,cols: cols ,rows: rows ,wrap: wrap ,href: href ,target: target ,download: download ,downloadAs: downloadAs ,hreflang: hreflang ,media: media ,ping: ping ,rel: rel ,ismap: ismap ,usemap: usemap ,shape: shape ,coords: coords ,src: src ,height: height ,width: width ,alt: alt ,autoplay: autoplay ,controls: controls ,loop: loop ,preload: preload ,poster: poster ,$default: $default ,kind: kind ,srclang: srclang ,sandbox: sandbox ,seamless: seamless ,srcdoc: srcdoc ,reversed: reversed ,start: start ,align: align ,colspan: colspan ,rowspan: rowspan ,headers: headers ,scope: scope ,async: async ,charset: charset ,content: content ,defer: defer ,httpEquiv: httpEquiv ,language: language ,scoped: scoped ,accesskey: accesskey ,contenteditable: contenteditable ,contextmenu: contextmenu ,dir: dir ,draggable: draggable ,dropzone: dropzone ,itemprop: itemprop ,lang: lang ,spellcheck: spellcheck ,tabindex: tabindex ,challenge: challenge ,keytype: keytype ,cite: cite ,datetime: datetime ,pubdate: pubdate ,manifest: manifest ,property: property ,attribute: attribute}; }; Elm.Html = Elm.Html || {}; Elm.Html.Events = Elm.Html.Events || {}; Elm.Html.Events.make = function (_elm) { "use strict"; _elm.Html = _elm.Html || {}; _elm.Html.Events = _elm.Html.Events || {}; if (_elm.Html.Events.values) return _elm.Html.Events.values; var _U = Elm.Native.Utils.make(_elm), $Basics = Elm.Basics.make(_elm), $Debug = Elm.Debug.make(_elm), $Html = Elm.Html.make(_elm), $Json$Decode = Elm.Json.Decode.make(_elm), $List = Elm.List.make(_elm), $Maybe = Elm.Maybe.make(_elm), $Result = Elm.Result.make(_elm), $Signal = Elm.Signal.make(_elm), $VirtualDom = Elm.VirtualDom.make(_elm); var _op = {}; var keyCode = A2($Json$Decode._op[":="],"keyCode",$Json$Decode.$int); var targetChecked = A2($Json$Decode.at,_U.list(["target","checked"]),$Json$Decode.bool); var targetValue = A2($Json$Decode.at,_U.list(["target","value"]),$Json$Decode.string); var defaultOptions = $VirtualDom.defaultOptions; var Options = F2(function (a,b) { return {stopPropagation: a,preventDefault: b};}); var onWithOptions = $VirtualDom.onWithOptions; var on = $VirtualDom.on; var messageOn = F3(function (name,addr,msg) { return A3(on,name,$Json$Decode.value,function (_p0) { return A2($Signal.message,addr,msg);});}); var onClick = messageOn("click"); var onDoubleClick = messageOn("dblclick"); var onMouseMove = messageOn("mousemove"); var onMouseDown = messageOn("mousedown"); var onMouseUp = messageOn("mouseup"); var onMouseEnter = messageOn("mouseenter"); var onMouseLeave = messageOn("mouseleave"); var onMouseOver = messageOn("mouseover"); var onMouseOut = messageOn("mouseout"); var onBlur = messageOn("blur"); var onFocus = messageOn("focus"); var onSubmit = messageOn("submit"); var onKey = F3(function (name,addr,handler) { return A3(on,name,keyCode,function (code) { return A2($Signal.message,addr,handler(code));});}); var onKeyUp = onKey("keyup"); var onKeyDown = onKey("keydown"); var onKeyPress = onKey("keypress"); return _elm.Html.Events.values = {_op: _op ,onBlur: onBlur ,onFocus: onFocus ,onSubmit: onSubmit ,onKeyUp: onKeyUp ,onKeyDown: onKeyDown ,onKeyPress: onKeyPress ,onClick: onClick ,onDoubleClick: onDoubleClick ,onMouseMove: onMouseMove ,onMouseDown: onMouseDown ,onMouseUp: onMouseUp ,onMouseEnter: onMouseEnter ,onMouseLeave: onMouseLeave ,onMouseOver: onMouseOver ,onMouseOut: onMouseOut ,on: on ,onWithOptions: onWithOptions ,defaultOptions: defaultOptions ,targetValue: targetValue ,targetChecked: targetChecked ,keyCode: keyCode ,Options: Options}; }; Elm.StartApp = Elm.StartApp || {}; Elm.StartApp.make = function (_elm) { "use strict"; _elm.StartApp = _elm.StartApp || {}; if (_elm.StartApp.values) return _elm.StartApp.values; var _U = Elm.Native.Utils.make(_elm), $Basics = Elm.Basics.make(_elm), $Debug = Elm.Debug.make(_elm), $Effects = Elm.Effects.make(_elm), $Html = Elm.Html.make(_elm), $List = Elm.List.make(_elm), $Maybe = Elm.Maybe.make(_elm), $Result = Elm.Result.make(_elm), $Signal = Elm.Signal.make(_elm), $Task = Elm.Task.make(_elm); var _op = {}; var start = function (config) { var updateStep = F2(function (action,_p0) { var _p1 = _p0; var _p2 = A2(config.update,action,_p1._0); var newModel = _p2._0; var additionalEffects = _p2._1; return {ctor: "_Tuple2",_0: newModel,_1: $Effects.batch(_U.list([_p1._1,additionalEffects]))}; }); var update = F2(function (actions,_p3) { var _p4 = _p3;return A3($List.foldl,updateStep,{ctor: "_Tuple2",_0: _p4._0,_1: $Effects.none},actions);}); var messages = $Signal.mailbox(_U.list([])); var singleton = function (action) { return _U.list([action]);}; var address = A2($Signal.forwardTo,messages.address,singleton); var inputs = $Signal.mergeMany(A2($List._op["::"],messages.signal,A2($List.map,$Signal.map(singleton),config.inputs))); var effectsAndModel = A3($Signal.foldp,update,config.init,inputs); var model = A2($Signal.map,$Basics.fst,effectsAndModel); return {html: A2($Signal.map,config.view(address),model) ,model: model ,tasks: A2($Signal.map,function (_p5) { return A2($Effects.toTask,messages.address,$Basics.snd(_p5));},effectsAndModel)}; }; var App = F3(function (a,b,c) { return {html: a,model: b,tasks: c};}); var Config = F4(function (a,b,c,d) { return {init: a,update: b,view: c,inputs: d};}); return _elm.StartApp.values = {_op: _op,start: start,Config: Config,App: App}; }; Elm.ModuleBrowser = Elm.ModuleBrowser || {}; Elm.ModuleBrowser.make = function (_elm) { "use strict"; _elm.ModuleBrowser = _elm.ModuleBrowser || {}; if (_elm.ModuleBrowser.values) return _elm.ModuleBrowser.values; var _U = Elm.Native.Utils.make(_elm), $Basics = Elm.Basics.make(_elm), $Debug = Elm.Debug.make(_elm), $Dict = Elm.Dict.make(_elm), $Effects = Elm.Effects.make(_elm), $Html = Elm.Html.make(_elm), $Html$Attributes = Elm.Html.Attributes.make(_elm), $Html$Events = Elm.Html.Events.make(_elm), $Json$Decode = Elm.Json.Decode.make(_elm), $List = Elm.List.make(_elm), $List$Extra = Elm.List.Extra.make(_elm), $Maybe = Elm.Maybe.make(_elm), $Result = Elm.Result.make(_elm), $Signal = Elm.Signal.make(_elm), $StartApp = Elm.StartApp.make(_elm), $String = Elm.String.make(_elm), $Task = Elm.Task.make(_elm); var _op = {}; var closeMailbox = $Signal.mailbox({ctor: "_Tuple0"}); var close = Elm.Native.Port.make(_elm).outboundSignal("close",function (v) { return [];},closeMailbox.signal); var changeSelectionMailbox = $Signal.mailbox({ctor: "_Tuple0"}); var changeSelection = Elm.Native.Port.make(_elm).outboundSignal("changeSelection",function (v) { return [];},changeSelectionMailbox.signal); var selectMailbox = $Signal.mailbox(""); var select = Elm.Native.Port.make(_elm).outboundSignal("select",function (v) { return v;},selectMailbox.signal); var modzPort = Elm.Native.Port.make(_elm).inboundSignal("modzPort", "List ModuleBrowser.Modul", function (v) { return typeof v === "object" && v instanceof Array ? Elm.Native.List.make(_elm).fromArray(v.map(function (v) { return typeof v === "object" && "name" in v && "file" in v && "packageName" in v && "version" in v ? {_: {} ,name: typeof v.name === "string" || typeof v.name === "object" && v.name instanceof String ? v.name : _U.badPort("a string", v.name) ,file: typeof v.file === "string" || typeof v.file === "object" && v.file instanceof String ? v.file : _U.badPort("a string", v.file) ,packageName: typeof v.packageName === "string" || typeof v.packageName === "object" && v.packageName instanceof String ? v.packageName : _U.badPort("a string", v.packageName) ,version: typeof v.version === "string" || typeof v.version === "object" && v.version instanceof String ? v.version : _U.badPort("a string", v.version)} : _U.badPort("an object with fields `name`, `file`, `packageName`, `version`", v); })) : _U.badPort("an array",v); }); var selectModule = F2(function (selFn,model) { var selIndex = function (sel) { return A2($List$Extra.elemIndex,sel,model.filteredModules);}; var pipeM = $Basics.flip($Maybe.andThen); return A2(pipeM,selFn,A2(pipeM,selIndex,model.selected)); }); var nextModule = function (model) { var nxt = function (i) { return _U.cmp(i,$List.length(model.filteredModules) - 1) < 0 ? A2($List$Extra.getAt,model.filteredModules,i + 1) : model.selected; }; return A2(selectModule,nxt,model); }; var prevModule = function (model) { var prev = function (i) { return _U.cmp(i,0) > 0 ? A2($List$Extra.getAt,model.filteredModules,i - 1) : model.selected;}; return A2(selectModule,prev,model); }; var filterModules = F2(function (searchStr,modules) { var filtr = function (mod) { return A2($String.startsWith,$String.toLower(searchStr),$String.toLower(mod.name));}; return A2($List.filter,filtr,modules); }); var Refresh = function (a) { return {ctor: "Refresh",_0: a};}; var modzSignal = A2($Signal.map,Refresh,modzPort); var Close = {ctor: "Close"}; var ClickSelect = function (a) { return {ctor: "ClickSelect",_0: a};}; var itemView = F3(function (address,mod,model) { var pipeM = $Basics.flip($Maybe.andThen); var itemClass = A2($Maybe.withDefault,"",A2(pipeM,function (sel) { return _U.eq(sel,mod) ? $Maybe.Just("selected") : $Maybe.Nothing;},model.selected)); return A2($Html.li, _U.list([$Html$Attributes.$class(itemClass),A2($Html$Events.onClick,address,ClickSelect(mod.file))]), _U.list([A2($Html.p,_U.list([]),_U.list([$Html.text(mod.name)])) ,A2($Html.p, _U.list([$Html$Attributes.$class("binding")]), _U.list([$Html.text(A2($Basics._op["++"],mod.packageName,A2($Basics._op["++"]," - ",mod.version)))]))])); }); var Select = {ctor: "Select"}; var Next = {ctor: "Next"}; var Prev = {ctor: "Prev"}; var Filter = function (a) { return {ctor: "Filter",_0: a};}; var NoOp = {ctor: "NoOp"}; var notifySelect = function (file) { return A2($Effects.map,function (_p0) { return NoOp;},$Effects.task(A2($Signal.send,selectMailbox.address,file))); }; var notifyChangeSelection = A2($Effects.map, function (_p1) { return NoOp; }, $Effects.task(A2($Signal.send,changeSelectionMailbox.address,{ctor: "_Tuple0"}))); var notifyClose = A2($Effects.map,function (_p2) { return NoOp;},$Effects.task(A2($Signal.send,closeMailbox.address,{ctor: "_Tuple0"}))); var searchInputView = F2(function (address,model) { var keyActions = $Dict.fromList(_U.list([{ctor: "_Tuple2",_0: 38,_1: Prev} ,{ctor: "_Tuple2",_0: 40,_1: Next} ,{ctor: "_Tuple2",_0: 13,_1: Select} ,{ctor: "_Tuple2",_0: 27,_1: Close}])); var dec = A2($Json$Decode.customDecoder, $Html$Events.keyCode, function (k) { return A2($Dict.member,k,keyActions) ? $Result.Ok(k) : $Result.Err("not handling that key"); }); var handleKeydown = function (k) { var act = A2($Dict.get,k,keyActions); var _p3 = act; if (_p3.ctor === "Nothing") { return A2($Signal.message,address,NoOp); } else { return A2($Signal.message,address,_p3._0); } }; var options = {preventDefault: true,stopPropagation: false}; return A2($Html.input, _U.list([$Html$Attributes.value(model.searchStr) ,$Html$Attributes.$class("search") ,$Html$Attributes.type$("text") ,$Html$Attributes.placeholder("search") ,A3($Html$Events.on,"input",$Html$Events.targetValue,function (str) { return A2($Signal.message,address,Filter(str));}) ,A4($Html$Events.onWithOptions,"keydown",options,dec,handleKeydown)]), _U.list([])); }); var view = F2(function (address,model) { return A2($Html.div, _U.list([$Html$Attributes.$class("filter-list")]), _U.list([A2(searchInputView,address,model) ,A2($Html.ul,_U.list([]),A2($List.map,function (m) { return A3(itemView,address,m,model);},model.filteredModules))])); }); var Modul = F4(function (a,b,c,d) { return {name: a,file: b,packageName: c,version: d};}); var Model = F4(function (a,b,c,d) { return {allModules: a,filteredModules: b,searchStr: c,selected: d};}); var init = {ctor: "_Tuple2",_0: A4(Model,_U.list([]),_U.list([]),"",$Maybe.Nothing),_1: $Effects.none}; var update = F2(function (action,model) { var _p4 = action; switch (_p4.ctor) {case "NoOp": return {ctor: "_Tuple2",_0: model,_1: $Effects.none}; case "Filter": var _p5 = _p4._0; var filtered = A2(filterModules,_p5,model.allModules); var sel = $List.head(filtered); return {ctor: "_Tuple2",_0: _U.update(model,{searchStr: _p5,filteredModules: filtered,selected: sel}),_1: $Effects.none}; case "Prev": return {ctor: "_Tuple2",_0: _U.update(model,{selected: prevModule(model)}),_1: notifyChangeSelection}; case "Next": return {ctor: "_Tuple2",_0: _U.update(model,{selected: nextModule(model)}),_1: notifyChangeSelection}; case "Select": var _p6 = model.selected; if (_p6.ctor === "Nothing") { return {ctor: "_Tuple2",_0: model,_1: $Effects.none}; } else { return {ctor: "_Tuple2",_0: model,_1: notifySelect(_p6._0.file)}; } case "ClickSelect": return {ctor: "_Tuple2",_0: model,_1: notifySelect(_p4._0)}; case "Close": return {ctor: "_Tuple2",_0: model,_1: notifyClose}; default: var _p7 = _p4._0; return {ctor: "_Tuple2",_0: A4(Model,_p7,_p7,"",$List.head(_p7)),_1: $Effects.none};} }); var app = $StartApp.start({init: init,update: update,view: view,inputs: _U.list([modzSignal])}); var main = app.html; var tasks = Elm.Native.Task.make(_elm).performSignal("tasks",app.tasks); return _elm.ModuleBrowser.values = {_op: _op ,Model: Model ,Modul: Modul ,init: init ,NoOp: NoOp ,Filter: Filter ,Prev: Prev ,Next: Next ,Select: Select ,ClickSelect: ClickSelect ,Close: Close ,Refresh: Refresh ,update: update ,filterModules: filterModules ,prevModule: prevModule ,nextModule: nextModule ,selectModule: selectModule ,notifySelect: notifySelect ,notifyChangeSelection: notifyChangeSelection ,notifyClose: notifyClose ,view: view ,searchInputView: searchInputView ,itemView: itemView ,app: app ,main: main ,modzSignal: modzSignal ,selectMailbox: selectMailbox ,changeSelectionMailbox: changeSelectionMailbox ,closeMailbox: closeMailbox}; }; ================================================ FILE: elm-light.behaviors ================================================ [[:app :lt.objs.plugins/load-js ["mode/elm.js" "js/show-hint2.js" "js/react.min.js" "js/highlight.pack.js" "elm/ModuleBrowser/moduleBrowser.js" "DocPreview/docPreview.js" "elm-light_compiled.js"]] [:app :lt.objs.plugins/load-css "css/hinter.css"] [:app :lt.objs.plugins/load-css "css/elm.css"] [:app :lt.objs.plugins/load-css "css/graph.css"] [:app :lt.objs.plugins/load-css "css/docpreview.css"] [:app :lt.objs.plugins/load-css "css/inlinedoc.css"] [:app :lt.objs.plugins/load-css "css/test.css"] [:app :lt.objs.plugins/load-keymap "elm.keymap"] [:files :lt.objs.files/file-types [{:exts [:elm], :mime "text/x-elm", :tags [:editor.elm], :name "elm"}]] [:editor.elm :lt.object/add-tag :editor.elm.common] [:editor.elm.repl :lt.object/add-tag :editor.elm.common] [:elm.lang :lt.plugins.elm-light.clients/connect] [:editor.elm :lt.plugins.elm-light/elm-unsupported] [:editor.elm :lt.plugins.elm-light/elm-browse!] [:editor.elm.common :lt.plugins.elm-light/on-eval.one] [:editor.elm.common :lt.plugins.elm-light/eval-err] [:editor.elm.common :lt.plugins.elm-light/eval-result] [:editor.elm.common :lt.plugins.elm-light/repl-restart!] [:editor.elm.common :lt.object/add-tag :docable] [:elm.lang :lt.plugins.elm-light.clients/eval!] ;; ELM REPL behaviors [:elmrepl :lt.plugins.elm-light.repl/repl-destroy-on-close] [:elmrepl :lt.plugins.elm-light.repl/repl-close-parent] [:elmrepl :lt.plugins.elm-light.repl/on-focus-repl-ed] [:elmrepl :lt.plugins.elm-light.repl/on-show-repl-refresh-eds] [:editor.elm :lt.plugins.elm-light/lint] [:editor.elm :lt.plugins.elm-light/elm-lint-res] [:editor.elm :lt.plugins.elm-light/make] [:editor.elm :lt.plugins.elm-light/make-project] [:editor.elm :lt.plugins.elm-light/elm-make-res] [:editor.elm :lt.plugins.elm-light/elm-make-err] [:editor.elm.common :-lt.plugins.auto-complete/textual-hints] ; just messes with autocomplete of elm stuff [:sidebar.docs.search :lt.plugins.elm-light/elm-doc-search] [:elm.lang :lt.plugins.elm-light.clients/elm-doc-search-results] [:elm.packages :lt.plugins.elm-light.packages/show-project-packages] [:elm.packages :lt.plugins.elm-light.packages/on-close-project-packages] ;; linter behaviors. TODO: Move to linter plugin eventually [:editor.elm :lt.plugins.elm-light.linter/linter-result!] [:editor.elm :lt.plugins.elm-light.linter/clear-linter-results!] [:editor :lt.plugins.elm-light.linter/update-linter-on-editor-change] ;; Elm format [:editor.elm :lt.plugins.elm-light.format/elm-format] [:editor.elm.common :lt.plugins.elm-light.format/elm-format-expression] [:editor.elm.common :lt.plugins.elm-light.format/elm-format-buffer] ;; dependency graph stuff [:elm.graph.dependency :lt.plugins.elm-light.graph/on-show-dependencies] [:elm.graph.dependency :lt.plugins.elm-light.graph/on-get-data] [:elm.graph.dependency :lt.plugins.elm-light.graph/on-render] [:elm.graph.dependency :lt.plugins.elm-light.graph/on-get-transitives] [:elm.graph.dependency :lt.plugins.elm-light.graph/on-close-destroy] [:tabset :lt.plugins.elm-light.graph/on-tab-resized] ;; module browser [:editor.elm :lt.plugins.elm-light.modulebrowser/list-modules] [:elm.modulebrowser :lt.plugins.elm-light.modulebrowser/clear!] [:elm.modulebrowser :lt.plugins.elm-light.modulebrowser/show-project-modules] [:elm.modulebrowser :lt.plugins.elm-light.modulebrowser/focus!] [:elm.modulebrowser :lt.plugins.elm-light.modulebrowser/ensure-visible] ;; Doc preview [:editor.elm :lt.plugins.elm-light.docpreview/gendoc] [:editor.elm :lt.plugins.elm-light.docpreview/elm-gendoc-res] [:editor.elm :lt.plugins.elm-light.docpreview/elm-docpreview] ;; New AST related behaviors [:editor :lt.plugins.elm-light.elm-ast/update-ast-status-on-editor-change] [:editor.elm :lt.plugins.elm-light/elm-jump-to-definition-start] [:editor.elm :lt.plugins.elm-light/elm-jump-to-definition] [:editor.elm :lt.plugins.elm-light/elm-doc] [:editor.elm :lt.plugins.elm-light/elm-doc-start] [:editor.elm :lt.plugins.elm-light.inline-doc/editor.elm.doc.show!] [:editor.elm :lt.plugins.elm-light/elm-reload-ast] [:editor.elm :lt.plugins.elm-light/elm-reload-ast-started] [:editor.elm :lt.plugins.elm-light/elm-parse-editor] [:editor.elm :lt.plugins.elm-light/elm-parse-editor-on-change] [:editor.elm :lt.plugins.elm-light/elm-parse-editor-result] [:editor.elm :lt.plugins.elm-light/elm-editor-disconnected] [:editor.elm :lt.plugins.elm-light.hinter/elm-hints] [:editor.elm :lt.plugins.elm-light.hinter/elm-hints-parser-results] [:editor.elm :lt.plugins.elm-light.gutter/elm-gutter-exposeds] [:editor.elm :lt.plugins.elm-light.gutter/elm-gutter-exposeds-mark] [:editor.elm :lt.plugins.elm-light.gutter/show-elm-gutter] ;; **** Refactoring stuff ******* [:editor.elm :lt.plugins.elm-light/elm-expose-top-level] [:editor.elm :lt.plugins.elm-light/elm-unexpose-top-level] [:editor.elm :lt.plugins.elm-light/elm-autoimport-module-selected] [:editor.elm :lt.plugins.elm-light/elm-autoimport-module-init] [:editor.elm :lt.plugins.elm-light/elm-sort-imports] ;; find usages [:elm.usages :lt.plugins.elm-light.usages/elm.find-usages] [:elm.usages :lt.plugins.elm-light.usages/elm.find-usages.complete] [:elm.usages :lt.plugins.elm-light.usages/on-close] [:elm.usages :lt.plugins.elm-light.usages/clear!] ;; Module graph [:elm.graph.module :lt.plugins.elm-light.module-graph/on-render] [:elm.graph.module :lt.plugins.elm-light.module-graph/on-show-modules] [:elm.graph.module :lt.plugins.elm-light.module-graph/on-close-destroy] [:elm.graph.module :lt.plugins.elm-light.module-graph/on-move] [:tabset :lt.plugins.elm-light.module-graph/on-tab-resized] ;; Elm test [:editor.elm :lt.plugins.elm-light.test/elm-test] [:editor.elm :lt.plugins.elm-light.test/elm-test-suite.init] [:editor.elm :lt.plugins.elm-light.test/elm-test-suite] [:editor.elm :lt.plugins.elm-light.test/elm-test-setup] [:elm.test.dashboard :lt.plugins.elm-light.test/on-testrun-init] [:elm.test.dashboard :lt.plugins.elm-light.test/elm-test-result] [:elm.test.dashboard :lt.plugins.elm-light.test/elm-test-error] [:elm.test.dashboard :lt.plugins.elm-light.test/on-close-destroy] ;; ***** Alternate autocompleter ***** [:editor.elm :lt.object/add-tag :editor.keys.normal.elm] ;; Allow overriding tab which defaults to auto-complete command in std autocompleter plugin ;; 1) Disable std autocompleter alltogether [:editor.elm :-lt.plugins.auto-complete/intra-buffer-string-hints] [:editor.elm :-lt.plugins.auto-complete/textual-hints] [:editor.elm :-lt.plugins.auto-complete/async-hint-tokens] [:editor.elm :-lt.plugins.auto-complete/show-hint] [:editor.elm :-lt.plugins.auto-complete/remove-on-move-line] [:editor.elm :-lt.plugins.auto-complete/remove-on-scroll-inactive] [:editor.elm :-lt.plugins.auto-complete/auto-show-on-input] ;; 2) Add "generic" autocompleter behaviors [:editor.elm :lt.plugins.elm-light.autocompleter.core/start-hinting] [:editor.elm :lt.plugins.elm-light.autocompleter.core/auto-show-on-input] ] ================================================ FILE: elm-light_compiled.js ================================================ if(!lt.util.load.provided_QMARK_('lt.plugins.elm-light.widgets.selector')) { goog.provide('lt.plugins.elm_light.widgets.selector'); goog.require('cljs.core'); goog.require('lt.objs.files'); goog.require('lt.util.dom'); goog.require('clojure.string'); goog.require('lt.util.dom'); goog.require('lt.objs.editor.pool'); goog.require('lt.objs.command'); goog.require('lt.objs.files'); goog.require('clojure.string'); goog.require('lt.objs.editor'); goog.require('lt.object'); goog.require('lt.object'); goog.require('lt.objs.editor'); goog.require('lt.objs.editor.pool'); goog.require('lt.objs.command'); lt.plugins.elm_light.widgets.selector.remove_form = (function remove_form(this$){if(cljs.core.truth_(new cljs.core.Keyword(null,"deleted","deleted",2564367243).cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,this$)))) {return null; } else {lt.object.merge_BANG_.call(null,this$,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"deleted","deleted",2564367243),true], null)); return lt.object.destroy_BANG_.call(null,this$); } }); lt.plugins.elm_light.widgets.selector.select_item = (function select_item(this$,idx,item){var e__6317__auto__ = crate.core.html.call(null,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"option","option",4298734567),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"value","value",1125876963),idx,new cljs.core.Keyword(null,"selected","selected",2205476365),cljs.core._EQ_.call(null,idx,0)], null),((cljs.core.map_QMARK_.call(null,item))?new cljs.core.Keyword(null,"label","label",1116631654).cljs$core$IFn$_invoke$arity$1(item):item)], null));var seq__20798_20816 = cljs.core.seq.call(null,cljs.core.partition.call(null,2,cljs.core.PersistentVector.EMPTY));var chunk__20799_20817 = null;var count__20800_20818 = 0;var i__20801_20819 = 0;while(true){ if((i__20801_20819 < count__20800_20818)) {var vec__20802_20820 = cljs.core._nth.call(null,chunk__20799_20817,i__20801_20819);var ev__6318__auto___20821 = cljs.core.nth.call(null,vec__20802_20820,0,null);var func__6319__auto___20822 = cljs.core.nth.call(null,vec__20802_20820,1,null);lt.util.dom.on.call(null,e__6317__auto__,ev__6318__auto___20821,func__6319__auto___20822); { var G__20823 = seq__20798_20816; var G__20824 = chunk__20799_20817; var G__20825 = count__20800_20818; var G__20826 = (i__20801_20819 + 1); seq__20798_20816 = G__20823; chunk__20799_20817 = G__20824; count__20800_20818 = G__20825; i__20801_20819 = G__20826; continue; } } else {var temp__4092__auto___20827 = cljs.core.seq.call(null,seq__20798_20816);if(temp__4092__auto___20827) {var seq__20798_20828__$1 = temp__4092__auto___20827;if(cljs.core.chunked_seq_QMARK_.call(null,seq__20798_20828__$1)) {var c__5632__auto___20829 = cljs.core.chunk_first.call(null,seq__20798_20828__$1);{ var G__20830 = cljs.core.chunk_rest.call(null,seq__20798_20828__$1); var G__20831 = c__5632__auto___20829; var G__20832 = cljs.core.count.call(null,c__5632__auto___20829); var G__20833 = 0; seq__20798_20816 = G__20830; chunk__20799_20817 = G__20831; count__20800_20818 = G__20832; i__20801_20819 = G__20833; continue; } } else {var vec__20803_20834 = cljs.core.first.call(null,seq__20798_20828__$1);var ev__6318__auto___20835 = cljs.core.nth.call(null,vec__20803_20834,0,null);var func__6319__auto___20836 = cljs.core.nth.call(null,vec__20803_20834,1,null);lt.util.dom.on.call(null,e__6317__auto__,ev__6318__auto___20835,func__6319__auto___20836); { var G__20837 = cljs.core.next.call(null,seq__20798_20828__$1); var G__20838 = null; var G__20839 = 0; var G__20840 = 0; seq__20798_20816 = G__20837; chunk__20799_20817 = G__20838; count__20800_20818 = G__20839; i__20801_20819 = G__20840; continue; } } } else {} } break; } return e__6317__auto__; }); lt.plugins.elm_light.widgets.selector.select_form = (function select_form(this$,items){var e__6317__auto__ = crate.core.html.call(null,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"div.elm-select","div.elm-select",3606702322),new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"select","select",4402849902),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"size","size",1017434995),cljs.core.count.call(null,items)], null),cljs.core.map_indexed.call(null,cljs.core.partial.call(null,lt.plugins.elm_light.widgets.selector.select_item,this$),items)], null)], null));var seq__20810_20841 = cljs.core.seq.call(null,cljs.core.partition.call(null,2,cljs.core.PersistentVector.EMPTY));var chunk__20811_20842 = null;var count__20812_20843 = 0;var i__20813_20844 = 0;while(true){ if((i__20813_20844 < count__20812_20843)) {var vec__20814_20845 = cljs.core._nth.call(null,chunk__20811_20842,i__20813_20844);var ev__6318__auto___20846 = cljs.core.nth.call(null,vec__20814_20845,0,null);var func__6319__auto___20847 = cljs.core.nth.call(null,vec__20814_20845,1,null);lt.util.dom.on.call(null,e__6317__auto__,ev__6318__auto___20846,func__6319__auto___20847); { var G__20848 = seq__20810_20841; var G__20849 = chunk__20811_20842; var G__20850 = count__20812_20843; var G__20851 = (i__20813_20844 + 1); seq__20810_20841 = G__20848; chunk__20811_20842 = G__20849; count__20812_20843 = G__20850; i__20813_20844 = G__20851; continue; } } else {var temp__4092__auto___20852 = cljs.core.seq.call(null,seq__20810_20841);if(temp__4092__auto___20852) {var seq__20810_20853__$1 = temp__4092__auto___20852;if(cljs.core.chunked_seq_QMARK_.call(null,seq__20810_20853__$1)) {var c__5632__auto___20854 = cljs.core.chunk_first.call(null,seq__20810_20853__$1);{ var G__20855 = cljs.core.chunk_rest.call(null,seq__20810_20853__$1); var G__20856 = c__5632__auto___20854; var G__20857 = cljs.core.count.call(null,c__5632__auto___20854); var G__20858 = 0; seq__20810_20841 = G__20855; chunk__20811_20842 = G__20856; count__20812_20843 = G__20857; i__20813_20844 = G__20858; continue; } } else {var vec__20815_20859 = cljs.core.first.call(null,seq__20810_20853__$1);var ev__6318__auto___20860 = cljs.core.nth.call(null,vec__20815_20859,0,null);var func__6319__auto___20861 = cljs.core.nth.call(null,vec__20815_20859,1,null);lt.util.dom.on.call(null,e__6317__auto__,ev__6318__auto___20860,func__6319__auto___20861); { var G__20862 = cljs.core.next.call(null,seq__20810_20853__$1); var G__20863 = null; var G__20864 = 0; var G__20865 = 0; seq__20810_20841 = G__20862; chunk__20811_20842 = G__20863; count__20812_20843 = G__20864; i__20813_20844 = G__20865; continue; } } } else {} } break; } return e__6317__auto__; }); lt.plugins.elm_light.widgets.selector.on_keydown = (function on_keydown(this$,ed,ev){var kc = ev.keyCode;var el = ev.target;if((cljs.core._EQ_.call(null,13,kc)) || (cljs.core._EQ_.call(null,9,kc))) {lt.util.dom.stop_propagation.call(null,ev); lt.util.dom.prevent.call(null,ev); var idx = lt.util.dom.$.call(null,"option:checked",el).value;var item = cljs.core.nth.call(null,cljs.core.vec.call(null,new cljs.core.Keyword(null,"items","items",1114430258).cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,this$))),idx);var the_ed = new cljs.core.Keyword(null,"ed","ed",1013907473).cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,this$));var beh = new cljs.core.Keyword(null,"behavior","behavior",2524816836).cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,this$));lt.object.raise.call(null,the_ed,beh,item); return lt.plugins.elm_light.widgets.selector.remove_form.call(null,this$); } else {if(cljs.core._EQ_.call(null,27,kc)) {lt.util.dom.stop_propagation.call(null,ev); lt.util.dom.prevent.call(null,ev); lt.plugins.elm_light.widgets.selector.remove_form.call(null,this$); return lt.objs.editor.focus.call(null,ed); } else {return null; } } }); lt.object.object_STAR_.call(null,new cljs.core.Keyword("lt.plugins.elm-light.widgets.selector","elm-selector","lt.plugins.elm-light.widgets.selector/elm-selector",1639534363),new cljs.core.Keyword(null,"triggers","triggers",2516997421),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"click","click",1108654330),null,new cljs.core.Keyword(null,"clear!","clear!",3951036134),null], null), null),new cljs.core.Keyword(null,"tags","tags",1017456523),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"inline.elm.selector","inline.elm.selector",4143576270),null,new cljs.core.Keyword(null,"inline","inline",4124874251),null], null), null),new cljs.core.Keyword(null,"init","init",1017141378),(function (this$,info){var temp__4092__auto__ = lt.objs.editor.__GT_cm_ed.call(null,new cljs.core.Keyword(null,"ed","ed",1013907473).cljs$core$IFn$_invoke$arity$1(info));if(cljs.core.truth_(temp__4092__auto__)) {var ed = temp__4092__auto__;lt.object.merge_BANG_.call(null,this$,info); var content = lt.plugins.elm_light.widgets.selector.select_form.call(null,this$,new cljs.core.Keyword(null,"items","items",1114430258).cljs$core$IFn$_invoke$arity$1(info));lt.util.dom.on.call(null,lt.util.dom.$.call(null,new cljs.core.Keyword(null,"select","select",4402849902),content),"blur",((function (content,ed,temp__4092__auto__){ return (function (){return lt.plugins.elm_light.widgets.selector.remove_form.call(null,this$); });})(content,ed,temp__4092__auto__)) ); lt.util.dom.on.call(null,content,"keydown",cljs.core.partial.call(null,lt.plugins.elm_light.widgets.selector.on_keydown,this$,ed)); lt.util.dom.val.call(null,lt.util.dom.$.call(null,new cljs.core.Keyword(null,"option","option",4298734567),content),0); CodeMirror.positionHint(ed,content,new cljs.core.Keyword(null,"line","line",1017226086).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"pos","pos",1014015430).cljs$core$IFn$_invoke$arity$1(info))); lt.util.dom.focus.call(null,lt.util.dom.$.call(null,new cljs.core.Keyword(null,"select","select",4402849902),content)); return content; } else {return null; } })); /** * Create a selector. It expects a map with the following keys * :ed - the editor the selector is used by * :pos - Where to position the selector * :Items - List of items , if item is a map it must have a :label key used for display in the dropdown * :behavior - The behavior to be raise when an item is selected. It will pass the item back */ lt.plugins.elm_light.widgets.selector.make = (function make(info){return lt.object.create.call(null,new cljs.core.Keyword("lt.plugins.elm-light.widgets.selector","elm-selector","lt.plugins.elm-light.widgets.selector/elm-selector",1639534363),info); }); } if(!lt.util.load.provided_QMARK_('lt.plugins.elm-light.utils')) { goog.provide('lt.plugins.elm_light.utils'); goog.require('cljs.core'); goog.require('lt.objs.plugins'); goog.require('lt.objs.files'); goog.require('lt.util.dom'); goog.require('clojure.string'); goog.require('lt.util.dom'); goog.require('lt.objs.editor.pool'); goog.require('lt.objs.files'); goog.require('lt.objs.plugins'); goog.require('clojure.string'); goog.require('lt.objs.editor'); goog.require('lt.object'); goog.require('lt.object'); goog.require('lt.objs.editor'); goog.require('lt.objs.editor.pool'); goog.require('fetch.core'); goog.require('fetch.core'); lt.plugins.elm_light.utils.elm_plugin_dir = lt.objs.plugins.find_plugin.call(null,"elm-light"); lt.plugins.elm_light.utils.cp = require("child_process"); lt.plugins.elm_light.utils.marked = require(lt.objs.files.join.call(null,lt.plugins.elm_light.utils.elm_plugin_dir,"node_modules","marked")); lt.plugins.elm_light.utils.pattern = /^(\d+)\.(\d+)\.(\d+)(?:-([0-9A-Za-z-]+(?:\.[0-9A-Za-z-]+)*))?(?:\+([0-9A-Za-z-]+(?:\.[0-9A-Za-z-]+)*))?$/; lt.plugins.elm_light.utils.get_elm_version = (function get_elm_version(){try{return clojure.string.trim.call(null,lt.plugins.elm_light.utils.cp.execSync("elm --version",{"stdio": "pipe"}).toString()); }catch (e20586){var e = e20586;console.error.call(null,"elm command not found in path"); return null; }}); lt.plugins.elm_light.utils.try_parse_int = (function try_parse_int(o){try{return parseInt(o); }catch (e20588){var e = e20588;return o; }}); lt.plugins.elm_light.utils.parse_version = (function parse_version(s){var vec__20591 = cljs.core.re_seq.call(null,lt.plugins.elm_light.utils.pattern,s);var vec__20592 = cljs.core.nth.call(null,vec__20591,0,null);var _ = cljs.core.nth.call(null,vec__20592,0,null);var major = cljs.core.nth.call(null,vec__20592,1,null);var minor = cljs.core.nth.call(null,vec__20592,2,null);var patch = cljs.core.nth.call(null,vec__20592,3,null);var pre_release = cljs.core.nth.call(null,vec__20592,4,null);var build = cljs.core.nth.call(null,vec__20592,5,null);return new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,"major","major",1117563179),lt.plugins.elm_light.utils.try_parse_int.call(null,major),new cljs.core.Keyword(null,"minor","minor",1117805351),lt.plugins.elm_light.utils.try_parse_int.call(null,minor),new cljs.core.Keyword(null,"patch","patch",1120342970),lt.plugins.elm_light.utils.try_parse_int.call(null,patch),new cljs.core.Keyword(null,"pre-release","pre-release",734486095),pre_release,new cljs.core.Keyword(null,"build","build",1107999200),build], null); }); lt.plugins.elm_light.utils.compare_versions = (function compare_versions(a,b){var key_for_ident = (function (p1__20593_SHARP_){if(cljs.core.truth_(p1__20593_SHARP_)) {return cljs.core.into.call(null,cljs.core.PersistentVector.EMPTY,cljs.core.map.call(null,lt.plugins.elm_light.utils.try_parse_int,clojure.string.split.call(null,p1__20593_SHARP_,/\./))); } else {return null; } });var kay = cljs.core.juxt.call(null,new cljs.core.Keyword(null,"major","major",1117563179),new cljs.core.Keyword(null,"minor","minor",1117805351),new cljs.core.Keyword(null,"patch","patch",1120342970),((function (key_for_ident){ return (function (p1__20594_SHARP_){return (p1__20594_SHARP_.call(null,new cljs.core.Keyword(null,"pre-release","pre-release",734486095)) == null); });})(key_for_ident)) ,((function (key_for_ident){ return (function (p1__20595_SHARP_){return key_for_ident.call(null,new cljs.core.Keyword(null,"pre-release","pre-release",734486095).cljs$core$IFn$_invoke$arity$1(p1__20595_SHARP_)); });})(key_for_ident)) ,((function (key_for_ident){ return (function (p1__20596_SHARP_){return key_for_ident.call(null,new cljs.core.Keyword(null,"build","build",1107999200).cljs$core$IFn$_invoke$arity$1(p1__20596_SHARP_)); });})(key_for_ident)) );return cljs.core.compare.call(null,kay.call(null,lt.plugins.elm_light.utils.parse_version.call(null,a)),kay.call(null,lt.plugins.elm_light.utils.parse_version.call(null,b))); }); lt.plugins.elm_light.utils.ver_GT_QMARK_ = (function ver_GT_QMARK_(a,b){return (lt.plugins.elm_light.utils.compare_versions.call(null,a,b) > 0); }); lt.plugins.elm_light.utils.ver_LT_QMARK_ = (function ver_LT_QMARK_(a,b){return (lt.plugins.elm_light.utils.compare_versions.call(null,a,b) < 0); }); lt.plugins.elm_light.utils.ver_EQ_QMARK_ = (function ver_EQ_QMARK_(a,b){return (lt.plugins.elm_light.utils.compare_versions.call(null,a,b) === 0); }); lt.plugins.elm_light.utils.ver_LTE_QMARK_ = (function ver_LTE_QMARK_(a,b){return (lt.plugins.elm_light.utils.ver_LT_QMARK_.call(null,a,b)) || (lt.plugins.elm_light.utils.ver_EQ_QMARK_.call(null,a,b)); }); lt.plugins.elm_light.utils.parse_bounds_op = (function parse_bounds_op(op){if(cljs.core._EQ_.call(null,"<",op)) {return lt.plugins.elm_light.utils.ver_LT_QMARK_; } else {return lt.plugins.elm_light.utils.ver_LTE_QMARK_; } }); lt.plugins.elm_light.utils.parse_version_bounds = (function parse_version_bounds(bounds_str){var vec__20598 = clojure.string.split.call(null,bounds_str," ");var lower = cljs.core.nth.call(null,vec__20598,0,null);var lower_op = cljs.core.nth.call(null,vec__20598,1,null);var _ = cljs.core.nth.call(null,vec__20598,2,null);var upper_op = cljs.core.nth.call(null,vec__20598,3,null);var upper = cljs.core.nth.call(null,vec__20598,4,null);return new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,"lower","lower",1117068915),lower,new cljs.core.Keyword(null,"lower-op","lower-op",3491107743),lt.plugins.elm_light.utils.parse_bounds_op.call(null,lower_op),new cljs.core.Keyword(null,"upper","upper",1125403668),upper,new cljs.core.Keyword(null,"upper-op","upper-op",2683631198),lt.plugins.elm_light.utils.parse_bounds_op.call(null,upper_op)], null); }); lt.plugins.elm_light.utils.satisfies_version = (function satisfies_version(v_str,bounds_str){var map__20600 = lt.plugins.elm_light.utils.parse_version_bounds.call(null,bounds_str);var map__20600__$1 = ((cljs.core.seq_QMARK_.call(null,map__20600))?cljs.core.apply.call(null,cljs.core.hash_map,map__20600):map__20600);var upper_op = cljs.core.get.call(null,map__20600__$1,new cljs.core.Keyword(null,"upper-op","upper-op",2683631198));var upper = cljs.core.get.call(null,map__20600__$1,new cljs.core.Keyword(null,"upper","upper",1125403668));var lower_op = cljs.core.get.call(null,map__20600__$1,new cljs.core.Keyword(null,"lower-op","lower-op",3491107743));var lower = cljs.core.get.call(null,map__20600__$1,new cljs.core.Keyword(null,"lower","lower",1117068915));var and__4872__auto__ = lower_op.call(null,lower,v_str);if(cljs.core.truth_(and__4872__auto__)) {return upper_op.call(null,v_str,upper); } else {return and__4872__auto__; } }); lt.plugins.elm_light.utils.str_contains = (function str_contains(s,v){return (s.indexOf(v) > -1); }); lt.plugins.elm_light.utils.find_symbol = (function find_symbol(ed,pos){var curr_tok = lt.objs.editor.__GT_token.call(null,ed,pos);var G__20602 = new cljs.core.Keyword(null,"type","type",1017479852).cljs$core$IFn$_invoke$arity$1(curr_tok);if(cljs.core._EQ_.call(null,"builtin",G__20602)) {return [cljs.core.str(find_symbol.call(null,ed,cljs.core.assoc.call(null,pos,new cljs.core.Keyword(null,"ch","ch",1013907415),new cljs.core.Keyword(null,"start","start",1123661780).cljs$core$IFn$_invoke$arity$1(curr_tok)))),cljs.core.str(new cljs.core.Keyword(null,"string","string",4416885635).cljs$core$IFn$_invoke$arity$1(curr_tok))].join(''); } else {if(cljs.core._EQ_.call(null,"variable-3",G__20602)) {return [cljs.core.str(find_symbol.call(null,ed,cljs.core.assoc.call(null,pos,new cljs.core.Keyword(null,"ch","ch",1013907415),new cljs.core.Keyword(null,"start","start",1123661780).cljs$core$IFn$_invoke$arity$1(curr_tok)))),cljs.core.str(new cljs.core.Keyword(null,"string","string",4416885635).cljs$core$IFn$_invoke$arity$1(curr_tok))].join(''); } else {if(cljs.core._EQ_.call(null,"variable-2",G__20602)) {return [cljs.core.str(find_symbol.call(null,ed,cljs.core.assoc.call(null,pos,new cljs.core.Keyword(null,"ch","ch",1013907415),new cljs.core.Keyword(null,"start","start",1123661780).cljs$core$IFn$_invoke$arity$1(curr_tok)))),cljs.core.str(new cljs.core.Keyword(null,"string","string",4416885635).cljs$core$IFn$_invoke$arity$1(curr_tok))].join(''); } else {if(cljs.core._EQ_.call(null,"variable",G__20602)) {return [cljs.core.str(find_symbol.call(null,ed,cljs.core.assoc.call(null,pos,new cljs.core.Keyword(null,"ch","ch",1013907415),new cljs.core.Keyword(null,"start","start",1123661780).cljs$core$IFn$_invoke$arity$1(curr_tok)))),cljs.core.str(new cljs.core.Keyword(null,"string","string",4416885635).cljs$core$IFn$_invoke$arity$1(curr_tok))].join(''); } else {if(cljs.core._EQ_.call(null,"qualifier",G__20602)) {return [cljs.core.str(find_symbol.call(null,ed,cljs.core.assoc.call(null,pos,new cljs.core.Keyword(null,"ch","ch",1013907415),new cljs.core.Keyword(null,"start","start",1123661780).cljs$core$IFn$_invoke$arity$1(curr_tok)))),cljs.core.str(new cljs.core.Keyword(null,"string","string",4416885635).cljs$core$IFn$_invoke$arity$1(curr_tok))].join(''); } else {if(cljs.core._EQ_.call(null,"keyword",G__20602)) {return [cljs.core.str(find_symbol.call(null,ed,cljs.core.assoc.call(null,pos,new cljs.core.Keyword(null,"ch","ch",1013907415),new cljs.core.Keyword(null,"start","start",1123661780).cljs$core$IFn$_invoke$arity$1(curr_tok)))),cljs.core.str(new cljs.core.Keyword(null,"string","string",4416885635).cljs$core$IFn$_invoke$arity$1(curr_tok))].join(''); } else {if(cljs.core._EQ_.call(null,"def",G__20602)) {return [cljs.core.str(find_symbol.call(null,ed,cljs.core.assoc.call(null,pos,new cljs.core.Keyword(null,"ch","ch",1013907415),new cljs.core.Keyword(null,"start","start",1123661780).cljs$core$IFn$_invoke$arity$1(curr_tok)))),cljs.core.str(new cljs.core.Keyword(null,"string","string",4416885635).cljs$core$IFn$_invoke$arity$1(curr_tok))].join(''); } else {if(new cljs.core.Keyword(null,"else","else",1017020587)) {return ""; } else {return null; } } } } } } } } }); lt.plugins.elm_light.utils.project_path = (function project_path(path){if(cljs.core.truth_(lt.objs.files.dir_QMARK_.call(null,path))) {return path; } else {var temp__4090__auto__ = lt.objs.files.walk_up_find.call(null,path,"elm-package.json");if(cljs.core.truth_(temp__4090__auto__)) {var pkg_json = temp__4090__auto__;return lt.objs.files.parent.call(null,pkg_json); } else {return null; } } }); lt.plugins.elm_light.utils.reactor_path = (function reactor_path(path){var root = lt.plugins.elm_light.utils.project_path.call(null,path);if(cljs.core._EQ_.call(null,path.indexOf(root),0)) {return cljs.core.subs.call(null,path,cljs.core.count.call(null,root)); } else {return null; } }); lt.plugins.elm_light.utils.parse_json_file = (function parse_json_file(json_file){if(cljs.core.truth_(lt.objs.files.exists_QMARK_.call(null,json_file))) {return cljs.core.js__GT_clj.call(null,JSON.parse(new cljs.core.Keyword(null,"content","content",1965434859).cljs$core$IFn$_invoke$arity$1(lt.objs.files.open_sync.call(null,json_file))),new cljs.core.Keyword(null,"keywordize-keys","keywordize-keys",4191781672),true); } else {return null; } }); lt.plugins.elm_light.utils.pretty_json = (function pretty_json(data){return JSON.stringify(cljs.core.clj__GT_js.call(null,data),lt.plugins.elm_light.utils.null$,4); }); lt.plugins.elm_light.utils.nskw__GT_name = (function nskw__GT_name(kw){return [cljs.core.str(cljs.core.namespace.call(null,kw)),cljs.core.str("/"),cljs.core.str(cljs.core.name.call(null,kw))].join(''); }); lt.plugins.elm_light.utils.get_project_deps = (function get_project_deps(project_path){var pkg_json = lt.objs.files.join.call(null,project_path,"elm-package.json");var deps_json = lt.objs.files.join.call(null,project_path,"elm-stuff","exact-dependencies.json");return cljs.core.mapv.call(null,((function (pkg_json,deps_json){ return (function (p__20609){var vec__20610 = p__20609;var _ = cljs.core.nth.call(null,vec__20610,0,null);var vs = cljs.core.nth.call(null,vec__20610,1,null);return cljs.core.apply.call(null,cljs.core.merge,vs); });})(pkg_json,deps_json)) ,cljs.core.group_by.call(null,new cljs.core.Keyword(null,"package","package",4501809080),cljs.core.concat.call(null,cljs.core.mapv.call(null,((function (pkg_json,deps_json){ return (function (p__20611){var vec__20612 = p__20611;var k = cljs.core.nth.call(null,vec__20612,0,null);var v = cljs.core.nth.call(null,vec__20612,1,null);return new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"package","package",4501809080),lt.plugins.elm_light.utils.nskw__GT_name.call(null,k),new cljs.core.Keyword(null,"exact","exact",1110851185),v], null); });})(pkg_json,deps_json)) ,lt.plugins.elm_light.utils.parse_json_file.call(null,deps_json)),cljs.core.mapv.call(null,((function (pkg_json,deps_json){ return (function (p__20613){var vec__20614 = p__20613;var k = cljs.core.nth.call(null,vec__20614,0,null);var v = cljs.core.nth.call(null,vec__20614,1,null);return new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"package","package",4501809080),lt.plugins.elm_light.utils.nskw__GT_name.call(null,k),new cljs.core.Keyword(null,"range","range",1122184367),v], null); });})(pkg_json,deps_json)) ,new cljs.core.Keyword(null,"dependencies","dependencies",1517678747).cljs$core$IFn$_invoke$arity$1(lt.plugins.elm_light.utils.parse_json_file.call(null,pkg_json)))))); }); lt.plugins.elm_light.utils.valid_project_elm_version = (function valid_project_elm_version(project_path){var elm = lt.plugins.elm_light.utils.get_elm_version.call(null);var json = lt.plugins.elm_light.utils.parse_json_file.call(null,lt.objs.files.join.call(null,project_path,"elm-package.json"));var v_bounds = new cljs.core.Keyword(null,"elm-version","elm-version",2186442275).cljs$core$IFn$_invoke$arity$1(json);if(cljs.core.truth_((function (){var and__4872__auto__ = elm;if(cljs.core.truth_(and__4872__auto__)) {var and__4872__auto____$1 = json;if(cljs.core.truth_(and__4872__auto____$1)) {return v_bounds; } else {return and__4872__auto____$1; } } else {return and__4872__auto__; } })())) {if(cljs.core.truth_(lt.plugins.elm_light.utils.satisfies_version.call(null,elm,v_bounds))) {return new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [true,null], null); } else {return new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [false,[cljs.core.str("Invalid elm-version for project: "),cljs.core.str(v_bounds),cljs.core.str(", but currently installed elm platform is in version: "),cljs.core.str(elm)].join('')], null); } } else {return new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [false,"Error checking elm version constraint"], null); } }); lt.plugins.elm_light.utils.project_satisfies_version_QMARK_ = (function project_satisfies_version_QMARK_(version,project_path){var json = lt.plugins.elm_light.utils.parse_json_file.call(null,lt.objs.files.join.call(null,project_path,"elm-package.json"));var v_bounds = new cljs.core.Keyword(null,"elm-version","elm-version",2186442275).cljs$core$IFn$_invoke$arity$1(json);if(cljs.core.truth_((function (){var and__4872__auto__ = version;if(cljs.core.truth_(and__4872__auto__)) {var and__4872__auto____$1 = json;if(cljs.core.truth_(and__4872__auto____$1)) {return v_bounds; } else {return and__4872__auto____$1; } } else {return and__4872__auto__; } })())) {if(cljs.core.truth_(lt.plugins.elm_light.utils.satisfies_version.call(null,version,v_bounds))) {return new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [true,null], null); } else {return new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [false,v_bounds], null); } } else {console.error.call(null,"Error checking elm version constraints."); return new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [false,v_bounds], null); } }); /** * Fetch all packages from package.elm-lang.org */ lt.plugins.elm_light.utils.fetch_all_packages = (function fetch_all_packages(callback){return fetch.core.xhr.call(null,[cljs.core.str("http://package.elm-lang.org/all-packages?date="),cljs.core.str((new Date()).getTime())].join(''),cljs.core.PersistentArrayMap.EMPTY,(function (data){var pkgs = cljs.core.js__GT_clj.call(null,JSON.parse(data),new cljs.core.Keyword(null,"keywordize-keys","keywordize-keys",4191781672),true);return callback.call(null,pkgs); })); }); /** * Recursively transforms JavaScript arrays into ClojureScript * vectors, and JavaScript objects into ClojureScript maps. With * option ':keywordize-keys true' will convert object fields from * strings to keywords. * @param {...*} var_args */ lt.plugins.elm_light.utils.mod_js__GT_clj = (function() { var mod_js__GT_clj = null; var mod_js__GT_clj__1 = (function (x){return lt.plugins.elm_light.utils.mod_js__GT_clj3.call(null,x,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"keywordize-keys","keywordize-keys",4191781672),false], null)); }); var mod_js__GT_clj__2 = (function() { var G__20621__delegate = function (x,opts){if((function (){var G__20619 = x;if(G__20619) {var bit__5534__auto__ = null;if(cljs.core.truth_((function (){var or__4884__auto__ = bit__5534__auto__;if(cljs.core.truth_(or__4884__auto__)) {return or__4884__auto__; } else {return G__20619.cljs$core$IEncodeClojure$; } })())) {return true; } else {if((!G__20619.cljs$lang$protocol_mask$partition$)) {return cljs.core.native_satisfies_QMARK_.call(null,cljs.core.IEncodeClojure,G__20619); } else {return false; } } } else {return cljs.core.native_satisfies_QMARK_.call(null,cljs.core.IEncodeClojure,G__20619); } })()) {return cljs.core._js__GT_clj.call(null,x,cljs.core.apply.call(null,cljs.core.array_map,opts)); } else {if(cljs.core.seq.call(null,opts)) {var map__20620 = opts;var map__20620__$1 = ((cljs.core.seq_QMARK_.call(null,map__20620))?cljs.core.apply.call(null,cljs.core.hash_map,map__20620):map__20620);var keywordize_keys = cljs.core.get.call(null,map__20620__$1,new cljs.core.Keyword(null,"keywordize-keys","keywordize-keys",4191781672));var keyfn = (cljs.core.truth_(keywordize_keys)?cljs.core.keyword:cljs.core.str);var f = ((function (map__20620,map__20620__$1,keywordize_keys,keyfn){ return (function thisfn(x__$1){if(cljs.core.seq_QMARK_.call(null,x__$1)) {return cljs.core.doall.call(null,cljs.core.map.call(null,thisfn,x__$1)); } else {if(cljs.core.coll_QMARK_.call(null,x__$1)) {return cljs.core.into.call(null,cljs.core.empty.call(null,x__$1),cljs.core.map.call(null,thisfn,x__$1)); } else {if(x__$1 instanceof Array) {return cljs.core.persistent_BANG_.call(null,cljs.core.reduce.call(null,((function (map__20620,map__20620__$1,keywordize_keys,keyfn){ return (function (p1__20615_SHARP_,p2__20616_SHARP_){return cljs.core.conj_BANG_.call(null,p1__20615_SHARP_,thisfn.call(null,p2__20616_SHARP_)); });})(map__20620,map__20620__$1,keywordize_keys,keyfn)) ,cljs.core.transient$.call(null,cljs.core.PersistentVector.EMPTY),x__$1)); } else {if((cljs.core.type.call(null,x__$1) === Object)) {return cljs.core.persistent_BANG_.call(null,cljs.core.reduce.call(null,((function (map__20620,map__20620__$1,keywordize_keys,keyfn){ return (function (r,k){return cljs.core.assoc_BANG_.call(null,r,keyfn.call(null,k),thisfn.call(null,(x__$1[k]))); });})(map__20620,map__20620__$1,keywordize_keys,keyfn)) ,cljs.core.transient$.call(null,cljs.core.PersistentArrayMap.EMPTY),cljs.core.js_keys.call(null,x__$1))); } else {if(new cljs.core.Keyword(null,"else","else",1017020587)) {return x__$1; } else {return null; } } } } } });})(map__20620,map__20620__$1,keywordize_keys,keyfn)) ;return f.call(null,x); } else {return null; } } }; var G__20621 = function (x,var_args){ var opts = null;if (arguments.length > 1) { opts = cljs.core.array_seq(Array.prototype.slice.call(arguments, 1),0);} return G__20621__delegate.call(this,x,opts);}; G__20621.cljs$lang$maxFixedArity = 1; G__20621.cljs$lang$applyTo = (function (arglist__20622){ var x = cljs.core.first(arglist__20622); var opts = cljs.core.rest(arglist__20622); return G__20621__delegate(x,opts); }); G__20621.cljs$core$IFn$_invoke$arity$variadic = G__20621__delegate; return G__20621; })() ; mod_js__GT_clj = function(x,var_args){ var opts = var_args; switch(arguments.length){ case 1: return mod_js__GT_clj__1.call(this,x); default: return mod_js__GT_clj__2.cljs$core$IFn$_invoke$arity$variadic(x, cljs.core.array_seq(arguments, 1)); } throw(new Error('Invalid arity: ' + arguments.length)); }; mod_js__GT_clj.cljs$lang$maxFixedArity = 1; mod_js__GT_clj.cljs$lang$applyTo = mod_js__GT_clj__2.cljs$lang$applyTo; mod_js__GT_clj.cljs$core$IFn$_invoke$arity$1 = mod_js__GT_clj__1; mod_js__GT_clj.cljs$core$IFn$_invoke$arity$variadic = mod_js__GT_clj__2.cljs$core$IFn$_invoke$arity$variadic; return mod_js__GT_clj; })() ; } if(!lt.util.load.provided_QMARK_('lt.plugins.elm-light.elm-ast')) { goog.provide('lt.plugins.elm_light.elm_ast'); goog.require('cljs.core'); goog.require('crate.binding'); goog.require('lt.objs.files'); goog.require('lt.objs.statusbar'); goog.require('clojure.string'); goog.require('lt.plugins.elm_light.utils'); goog.require('lt.objs.editor.pool'); goog.require('lt.objs.files'); goog.require('lt.objs.statusbar'); goog.require('clojure.string'); goog.require('crate.binding'); goog.require('lt.objs.editor'); goog.require('lt.object'); goog.require('lt.object'); goog.require('lt.objs.console'); goog.require('lt.objs.editor'); goog.require('lt.objs.console'); goog.require('lt.plugins.elm_light.utils'); goog.require('lt.objs.editor.pool'); lt.plugins.elm_light.elm_ast.elm_parser_path = lt.objs.files.join.call(null,lt.plugins.elm_light.utils.elm_plugin_dir,"node","elmparser"); lt.plugins.elm_light.elm_ast.elm_parser = require(lt.plugins.elm_light.elm_ast.elm_parser_path); lt.plugins.elm_light.elm_ast.start_with_QMARK_ = (function start_with_QMARK_(the_str,fragment){if(cljs.core.truth_((function (){var and__4872__auto__ = the_str;if(cljs.core.truth_(and__4872__auto__)) {return fragment; } else {return and__4872__auto__; } })())) {return cljs.core._EQ_.call(null,0,the_str.indexOf(fragment)); } else {return null; } }); lt.plugins.elm_light.elm_ast.idx_of = (function idx_of(pred,coll){return cljs.core.first.call(null,cljs.core.keep_indexed.call(null,(function (idx,x){if(cljs.core.truth_(pred.call(null,x))) {return idx; } else {return null; } }),coll)); }); if(typeof lt.plugins.elm_light.elm_ast.project_asts !== 'undefined') {} else {lt.plugins.elm_light.elm_ast.project_asts = cljs.core.atom.call(null,cljs.core.PersistentVector.EMPTY); } lt.plugins.elm_light.elm_ast.upsert_ast_BANG_ = (function upsert_ast_BANG_(project,file_ast){var prj_idx = lt.plugins.elm_light.elm_ast.idx_of.call(null,(function (p1__22686_SHARP_){return cljs.core._EQ_.call(null,project,new cljs.core.Keyword(null,"project","project",704593547).cljs$core$IFn$_invoke$arity$1(p1__22686_SHARP_)); }),cljs.core.deref.call(null,lt.plugins.elm_light.elm_ast.project_asts));if(cljs.core.truth_(prj_idx)) {return cljs.core.swap_BANG_.call(null,lt.plugins.elm_light.elm_ast.project_asts,cljs.core.update_in,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [prj_idx,new cljs.core.Keyword(null,"file-asts","file-asts",3945857876)], null),((function (prj_idx){ return (function (file_asts){return cljs.core.conj.call(null,cljs.core.filterv.call(null,((function (prj_idx){ return (function (p1__22687_SHARP_){return cljs.core.not_EQ_.call(null,new cljs.core.Keyword(null,"file","file",1017047278).cljs$core$IFn$_invoke$arity$1(file_ast),new cljs.core.Keyword(null,"file","file",1017047278).cljs$core$IFn$_invoke$arity$1(p1__22687_SHARP_)); });})(prj_idx)) ,file_asts),file_ast); });})(prj_idx)) ); } else {return cljs.core.swap_BANG_.call(null,lt.plugins.elm_light.elm_ast.project_asts,cljs.core.conj,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"project","project",704593547),project,new cljs.core.Keyword(null,"file-asts","file-asts",3945857876),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [file_ast], null)], null)); } }); lt.plugins.elm_light.elm_ast.delete_ast_BANG_ = (function delete_ast_BANG_(project,file){var temp__4092__auto__ = lt.plugins.elm_light.elm_ast.idx_of.call(null,(function (p1__22688_SHARP_){return cljs.core._EQ_.call(null,project,new cljs.core.Keyword(null,"project","project",704593547).cljs$core$IFn$_invoke$arity$1(p1__22688_SHARP_)); }),cljs.core.deref.call(null,lt.plugins.elm_light.elm_ast.project_asts));if(cljs.core.truth_(temp__4092__auto__)) {var prj_idx = temp__4092__auto__;return cljs.core.swap_BANG_.call(null,lt.plugins.elm_light.elm_ast.project_asts,cljs.core.update_in,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [prj_idx,new cljs.core.Keyword(null,"file-asts","file-asts",3945857876)], null),((function (prj_idx,temp__4092__auto__){ return (function (file_asts){return cljs.core.filterv.call(null,((function (prj_idx,temp__4092__auto__){ return (function (p1__22689_SHARP_){return cljs.core.not_EQ_.call(null,file,new cljs.core.Keyword(null,"file","file",1017047278).cljs$core$IFn$_invoke$arity$1(p1__22689_SHARP_)); });})(prj_idx,temp__4092__auto__)) ,file_asts); });})(prj_idx,temp__4092__auto__)) ); } else {return null; } }); lt.plugins.elm_light.elm_ast.delete_package_asts_BANG_ = (function delete_package_asts_BANG_(project){var temp__4092__auto__ = lt.plugins.elm_light.elm_ast.idx_of.call(null,(function (p1__22690_SHARP_){return cljs.core._EQ_.call(null,project,new cljs.core.Keyword(null,"project","project",704593547).cljs$core$IFn$_invoke$arity$1(p1__22690_SHARP_)); }),cljs.core.deref.call(null,lt.plugins.elm_light.elm_ast.project_asts));if(cljs.core.truth_(temp__4092__auto__)) {var prj_idx = temp__4092__auto__;return cljs.core.swap_BANG_.call(null,lt.plugins.elm_light.elm_ast.project_asts,cljs.core.update_in,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [prj_idx,new cljs.core.Keyword(null,"file-asts","file-asts",3945857876)], null),((function (prj_idx,temp__4092__auto__){ return (function (file_asts){return cljs.core.vec.call(null,cljs.core.remove.call(null,new cljs.core.Keyword(null,"package","package",4501809080),file_asts)); });})(prj_idx,temp__4092__auto__)) ); } else {return null; } }); lt.plugins.elm_light.elm_ast.delete_project_ast_BANG_ = (function delete_project_ast_BANG_(project){return cljs.core.swap_BANG_.call(null,lt.plugins.elm_light.elm_ast.project_asts,(function (prjs){return cljs.core.filterv.call(null,(function (p1__22691_SHARP_){return cljs.core.not_EQ_.call(null,project,new cljs.core.Keyword(null,"project","project",704593547).cljs$core$IFn$_invoke$arity$1(p1__22691_SHARP_)); }),prjs); })); }); lt.plugins.elm_light.elm_ast.reset_asts_BANG_ = (function reset_asts_BANG_(){return cljs.core.reset_BANG_.call(null,lt.plugins.elm_light.elm_ast.project_asts,cljs.core.PersistentVector.EMPTY); }); lt.plugins.elm_light.elm_ast.get_project = (function get_project(project){return cljs.core.first.call(null,cljs.core.filter.call(null,(function (p1__22692_SHARP_){return cljs.core._EQ_.call(null,project,new cljs.core.Keyword(null,"project","project",704593547).cljs$core$IFn$_invoke$arity$1(p1__22692_SHARP_)); }),cljs.core.deref.call(null,lt.plugins.elm_light.elm_ast.project_asts))); }); lt.plugins.elm_light.elm_ast.get_module_ast = (function get_module_ast(project,module_file){var temp__4092__auto__ = lt.plugins.elm_light.elm_ast.get_project.call(null,project);if(cljs.core.truth_(temp__4092__auto__)) {var prj = temp__4092__auto__;return cljs.core.first.call(null,cljs.core.filter.call(null,((function (prj,temp__4092__auto__){ return (function (p1__22693_SHARP_){return cljs.core._EQ_.call(null,module_file,new cljs.core.Keyword(null,"file","file",1017047278).cljs$core$IFn$_invoke$arity$1(p1__22693_SHARP_)); });})(prj,temp__4092__auto__)) ,new cljs.core.Keyword(null,"file-asts","file-asts",3945857876).cljs$core$IFn$_invoke$arity$1(prj))); } else {return null; } }); lt.plugins.elm_light.elm_ast.get_module_by_name = (function get_module_by_name(project,module_name){var temp__4092__auto__ = lt.plugins.elm_light.elm_ast.get_project.call(null,project);if(cljs.core.truth_(temp__4092__auto__)) {var prj = temp__4092__auto__;return cljs.core.first.call(null,cljs.core.filter.call(null,((function (prj,temp__4092__auto__){ return (function (p1__22694_SHARP_){return cljs.core._EQ_.call(null,module_name,new cljs.core.Keyword(null,"value","value",1125876963).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"moduleDeclaration","moduleDeclaration",1240624864).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"ast","ast",1014001140).cljs$core$IFn$_invoke$arity$1(p1__22694_SHARP_)))); });})(prj,temp__4092__auto__)) ,new cljs.core.Keyword(null,"file-asts","file-asts",3945857876).cljs$core$IFn$_invoke$arity$1(prj))); } else {return null; } }); lt.plugins.elm_light.elm_ast.parse_editor_sync = (function parse_editor_sync(ed){try{var res = lt.plugins.elm_light.elm_ast.elm_parser.parse(lt.objs.editor.__GT_val.call(null,ed));return new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"file","file",1017047278),new cljs.core.Keyword(null,"path","path",1017337751).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"info","info",1017141280).cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,ed))),new cljs.core.Keyword(null,"ast","ast",1014001140),lt.plugins.elm_light.utils.mod_js__GT_clj.call(null,res,new cljs.core.Keyword(null,"keywordize-keys","keywordize-keys",4191781672),true)], null); }catch (e22696){var e = e22696;cljs.core.println.call(null,"Parse editor contents failed",e); return null; }}); lt.plugins.elm_light.elm_ast.parse_editor_header_sync = (function parse_editor_header_sync(ed){try{var res = lt.plugins.elm_light.elm_ast.elm_parser.parse(lt.objs.editor.__GT_val.call(null,ed),{"startRule": "headerOnly"});return new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"file","file",1017047278),new cljs.core.Keyword(null,"path","path",1017337751).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"info","info",1017141280).cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,ed))),new cljs.core.Keyword(null,"ast","ast",1014001140),cljs.core.js__GT_clj.call(null,res,new cljs.core.Keyword(null,"keywordize-keys","keywordize-keys",4191781672),true)], null); }catch (e22698){var e = e22698;cljs.core.println.call(null,"Parse editor header block failed",e); return null; }}); lt.plugins.elm_light.elm_ast.parse_editor_async = lt.objs.thread.thread_STAR_.call(null,(function tfun22699(){var orig__6390__auto__ = argsArray(arguments);var msg__6391__auto__ = orig__6390__auto__.shift();var args__6392__auto__ = orig__6390__auto__.map(cljs.reader.read_string);var raise = ((function (orig__6390__auto__,msg__6391__auto__,args__6392__auto__){ return (function (obj__6393__auto__,k__6394__auto__,v__6395__auto__){return _send(obj__6393__auto__,k__6394__auto__,cljs.core.pr_str.call(null,v__6395__auto__),"clj"); });})(orig__6390__auto__,msg__6391__auto__,args__6392__auto__)) ;args__6392__auto__.unshift(msg__6391__auto__.obj); return ((function (orig__6390__auto__,msg__6391__auto__,args__6392__auto__,raise){ return (function (obj_id,parser_path,callback_behavior,elm_code){var start__5757__auto__ = (new Date()).getTime();var ret__5758__auto__ = (function (){var parser = require(parser_path);try{var res = parser.parse.call(null,elm_code);return _send(obj_id,callback_behavior,{"module": res, "status": "ok"}); }catch (e22701){var e = e22701;return _send(obj_id,callback_behavior,{"error": e, "status": "fail"}); }})();cljs.core.prn.call(null,[cljs.core.str("Elapsed time: "),cljs.core.str(((new Date()).getTime() - start__5757__auto__)),cljs.core.str(" msecs")].join('')); return ret__5758__auto__; });})(orig__6390__auto__,msg__6391__auto__,args__6392__auto__,raise)) .apply(null,args__6392__auto__); })); lt.plugins.elm_light.elm_ast.get_module_name = (function get_module_name(module){return new cljs.core.Keyword(null,"value","value",1125876963).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"moduleDeclaration","moduleDeclaration",1240624864).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"ast","ast",1014001140).cljs$core$IFn$_invoke$arity$1(module))); }); lt.plugins.elm_light.elm_ast.exposeAll_QMARK_ = (function exposeAll_QMARK_(exposing){return cljs.core._EQ_.call(null,"exposeAll",new cljs.core.Keyword(null,"type","type",1017479852).cljs$core$IFn$_invoke$arity$1(cljs.core.first.call(null,new cljs.core.Keyword(null,"exports","exports",3999815345).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"exports","exports",3999815345).cljs$core$IFn$_invoke$arity$1(exposing))))); }); lt.plugins.elm_light.elm_ast.package_import_QMARK_ = (function package_import_QMARK_(modules,import$){return cljs.core.some.call(null,(function (p1__22702_SHARP_){return cljs.core._EQ_.call(null,new cljs.core.Keyword(null,"value","value",1125876963).cljs$core$IFn$_invoke$arity$1(import$),new cljs.core.Keyword(null,"value","value",1125876963).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"moduleDeclaration","moduleDeclaration",1240624864).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"ast","ast",1014001140).cljs$core$IFn$_invoke$arity$1(p1__22702_SHARP_)))); }),cljs.core.filter.call(null,new cljs.core.Keyword(null,"package","package",4501809080),modules)); }); lt.plugins.elm_light.elm_ast.extract_exports = (function extract_exports(exposing){return cljs.core.map.call(null,new cljs.core.Keyword(null,"value","value",1125876963),new cljs.core.Keyword(null,"exports","exports",3999815345).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"exports","exports",3999815345).cljs$core$IFn$_invoke$arity$1(exposing))); }); lt.plugins.elm_light.elm_ast.exposed_by_module_QMARK_ = (function exposed_by_module_QMARK_(module,candidate){var exposing = new cljs.core.Keyword(null,"exposing","exposing",3382854387).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"moduleDeclaration","moduleDeclaration",1240624864).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"ast","ast",1014001140).cljs$core$IFn$_invoke$arity$1(module)));if(lt.plugins.elm_light.elm_ast.exposeAll_QMARK_.call(null,exposing)) {return true; } else {return cljs.core.contains_QMARK_.call(null,cljs.core.set.call(null,lt.plugins.elm_light.elm_ast.extract_exports.call(null,exposing)),candidate); } }); lt.plugins.elm_light.elm_ast.find_type_exposing = (function find_type_exposing(module_exposing,type_name){return cljs.core.first.call(null,cljs.core.filter.call(null,(function (p1__22703_SHARP_){return cljs.core._EQ_.call(null,type_name,new cljs.core.Keyword(null,"value","value",1125876963).cljs$core$IFn$_invoke$arity$1(p1__22703_SHARP_)); }),new cljs.core.Keyword(null,"exports","exports",3999815345).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"exports","exports",3999815345).cljs$core$IFn$_invoke$arity$1(module_exposing)))); }); lt.plugins.elm_light.elm_ast.find_import_type_exposing = (function find_import_type_exposing(imp,owning_type_name,type_name){return cljs.core.first.call(null,cljs.core.filter.call(null,(function (p1__22704_SHARP_){return cljs.core._EQ_.call(null,owning_type_name,new cljs.core.Keyword(null,"value","value",1125876963).cljs$core$IFn$_invoke$arity$1(p1__22704_SHARP_)); }),new cljs.core.Keyword(null,"exports","exports",3999815345).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"exports","exports",3999815345).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"exposing","exposing",3382854387).cljs$core$IFn$_invoke$arity$1(imp))))); }); lt.plugins.elm_light.elm_ast.enrich_type_declarations = (function enrich_type_declarations(module_exposing,exp_all_QMARK_,module_name,package$,file,type_decl){var type_exposing = lt.plugins.elm_light.elm_ast.find_type_exposing.call(null,module_exposing,new cljs.core.Keyword(null,"value","value",1125876963).cljs$core$IFn$_invoke$arity$1(type_decl));var exp_all_type_QMARK_ = lt.plugins.elm_light.elm_ast.exposeAll_QMARK_.call(null,type_exposing);var exports_type = cljs.core.set.call(null,lt.plugins.elm_light.elm_ast.extract_exports.call(null,type_exposing));var exp_by_mod_QMARK_ = ((function (type_exposing,exp_all_type_QMARK_,exports_type){ return (function (p1__22705_SHARP_){var or__4884__auto__ = exp_all_QMARK_;if(cljs.core.truth_(or__4884__auto__)) {return or__4884__auto__; } else {return (exp_all_type_QMARK_) || (cljs.core.contains_QMARK_.call(null,exports_type,p1__22705_SHARP_)); } });})(type_exposing,exp_all_type_QMARK_,exports_type)) ;return cljs.core.map.call(null,((function (type_exposing,exp_all_type_QMARK_,exports_type,exp_by_mod_QMARK_){ return (function (p1__22706_SHARP_){return cljs.core.assoc.call(null,p1__22706_SHARP_,new cljs.core.Keyword(null,"exposed?","exposed?",3382850193),exp_by_mod_QMARK_.call(null,new cljs.core.Keyword(null,"value","value",1125876963).cljs$core$IFn$_invoke$arity$1(p1__22706_SHARP_)),new cljs.core.Keyword(null,"owning-type-name","owning-type-name",4096407231),new cljs.core.Keyword(null,"value","value",1125876963).cljs$core$IFn$_invoke$arity$1(type_decl),new cljs.core.Keyword(null,"file","file",1017047278),file,new cljs.core.Keyword(null,"module-name","module-name",4067691710),module_name,new cljs.core.Keyword(null,"package","package",4501809080),package$); });})(type_exposing,exp_all_type_QMARK_,exports_type,exp_by_mod_QMARK_)) ,new cljs.core.Keyword(null,"adtDefs","adtDefs",4174585041).cljs$core$IFn$_invoke$arity$1(type_decl)); }); lt.plugins.elm_light.elm_ast.enrich_module_declarations = (function enrich_module_declarations(module){var exposing = new cljs.core.Keyword(null,"exposing","exposing",3382854387).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"moduleDeclaration","moduleDeclaration",1240624864).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"ast","ast",1014001140).cljs$core$IFn$_invoke$arity$1(module)));var expAll_QMARK_ = lt.plugins.elm_light.elm_ast.exposeAll_QMARK_.call(null,exposing);var exports = cljs.core.set.call(null,lt.plugins.elm_light.elm_ast.extract_exports.call(null,exposing));var exp_by_mod_QMARK_ = ((function (exposing,expAll_QMARK_,exports){ return (function (p1__22707_SHARP_){return (expAll_QMARK_) || (cljs.core.contains_QMARK_.call(null,exports,p1__22707_SHARP_)); });})(exposing,expAll_QMARK_,exports)) ;var file = new cljs.core.Keyword(null,"file","file",1017047278).cljs$core$IFn$_invoke$arity$1(module);var module_name = lt.plugins.elm_light.elm_ast.get_module_name.call(null,module);var package$ = new cljs.core.Keyword(null,"package","package",4501809080).cljs$core$IFn$_invoke$arity$1(module);return cljs.core.mapcat.call(null,((function (exposing,expAll_QMARK_,exports,exp_by_mod_QMARK_,file,module_name,package$){ return (function (decl){var G__22710 = new cljs.core.Keyword(null,"type","type",1017479852).cljs$core$IFn$_invoke$arity$1(decl);if(cljs.core._EQ_.call(null,"typeDecl",G__22710)) {return cljs.core.conj.call(null,lt.plugins.elm_light.elm_ast.enrich_type_declarations.call(null,exposing,expAll_QMARK_,module_name,package$,file,decl),decl); } else {if(new cljs.core.Keyword(null,"else","else",1017020587)) {return new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [decl], null); } else {return null; } } });})(exposing,expAll_QMARK_,exports,exp_by_mod_QMARK_,file,module_name,package$)) ,cljs.core.map.call(null,((function (exposing,expAll_QMARK_,exports,exp_by_mod_QMARK_,file,module_name,package$){ return (function (p1__22708_SHARP_){return cljs.core.assoc.call(null,p1__22708_SHARP_,new cljs.core.Keyword(null,"exposed?","exposed?",3382850193),exp_by_mod_QMARK_.call(null,new cljs.core.Keyword(null,"value","value",1125876963).cljs$core$IFn$_invoke$arity$1(p1__22708_SHARP_)),new cljs.core.Keyword(null,"file","file",1017047278),file,new cljs.core.Keyword(null,"module-name","module-name",4067691710),module_name,new cljs.core.Keyword(null,"package","package",4501809080),package$); });})(exposing,expAll_QMARK_,exports,exp_by_mod_QMARK_,file,module_name,package$)) ,new cljs.core.Keyword(null,"declarations","declarations",2554736043).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"ast","ast",1014001140).cljs$core$IFn$_invoke$arity$1(module)))); }); lt.plugins.elm_light.elm_ast.get_exposed_declarations = (function get_exposed_declarations(module){return cljs.core.filter.call(null,new cljs.core.Keyword(null,"exposed?","exposed?",3382850193),lt.plugins.elm_light.elm_ast.enrich_module_declarations.call(null,module)); }); lt.plugins.elm_light.elm_ast.get_exposed_declarations_memo = cljs.core.memoize.call(null,(function (module){return lt.plugins.elm_light.elm_ast.get_exposed_declarations.call(null,module); })); lt.plugins.elm_light.elm_ast.get_import_candidate_tokens = (function get_import_candidate_tokens(imp,imp_module_name,imp_alias,imp_exported_names,imp_exports_all_QMARK_,exposed_declaration){var decl_name = new cljs.core.Keyword(null,"value","value",1125876963).cljs$core$IFn$_invoke$arity$1(exposed_declaration);var type_exposing = ((cljs.core._EQ_.call(null,"adtDef",new cljs.core.Keyword(null,"type","type",1017479852).cljs$core$IFn$_invoke$arity$1(exposed_declaration)))?lt.plugins.elm_light.elm_ast.find_import_type_exposing.call(null,imp,new cljs.core.Keyword(null,"owning-type-name","owning-type-name",4096407231).cljs$core$IFn$_invoke$arity$1(exposed_declaration),new cljs.core.Keyword(null,"value","value",1125876963).cljs$core$IFn$_invoke$arity$1(exposed_declaration)):null);var exp_all_type_QMARK_ = lt.plugins.elm_light.elm_ast.exposeAll_QMARK_.call(null,type_exposing);var exports_type = cljs.core.set.call(null,lt.plugins.elm_light.elm_ast.extract_exports.call(null,type_exposing));return cljs.core.disj.call(null,cljs.core.PersistentHashSet.fromArray([(cljs.core.truth_((function (){var or__4884__auto__ = imp_exports_all_QMARK_;if(cljs.core.truth_(or__4884__auto__)) {return or__4884__auto__; } else {return (exp_all_type_QMARK_) || (cljs.core.contains_QMARK_.call(null,imp_exported_names,decl_name)) || (cljs.core.contains_QMARK_.call(null,exports_type,decl_name)); } })())?decl_name:null),(cljs.core.truth_(imp_alias)?[cljs.core.str(imp_alias),cljs.core.str("."),cljs.core.str(decl_name)].join(''):[cljs.core.str(imp_module_name),cljs.core.str("."),cljs.core.str(decl_name)].join(''))], true),null); }); lt.plugins.elm_light.elm_ast.get_external_exposed_modules = (function get_external_exposed_modules(curr_module_name,imported_mod_names,modules){return cljs.core.group_by.call(null,new cljs.core.Keyword(null,"module-name","module-name",4067691710),cljs.core.mapcat.call(null,(function (p1__22712_SHARP_){return lt.plugins.elm_light.elm_ast.get_exposed_declarations_memo.call(null,p1__22712_SHARP_); }),cljs.core.filter.call(null,(function (p1__22711_SHARP_){return (cljs.core.not_EQ_.call(null,curr_module_name,lt.plugins.elm_light.elm_ast.get_module_name.call(null,p1__22711_SHARP_))) && (cljs.core.contains_QMARK_.call(null,imported_mod_names,lt.plugins.elm_light.elm_ast.get_module_name.call(null,p1__22711_SHARP_))); }),modules))); }); lt.plugins.elm_light.elm_ast.get_external_candidates = (function get_external_candidates(module,modules){var imports = new cljs.core.Keyword(null,"imports","imports",2939942112).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"imports","imports",2939942112).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"ast","ast",1014001140).cljs$core$IFn$_invoke$arity$1(module)));var imported_mod_names = cljs.core.set.call(null,cljs.core.map.call(null,new cljs.core.Keyword(null,"value","value",1125876963),imports));var external_exposed = lt.plugins.elm_light.elm_ast.get_external_exposed_modules.call(null,lt.plugins.elm_light.elm_ast.get_module_name.call(null,module),imported_mod_names,modules);return cljs.core.mapcat.call(null,((function (imports,imported_mod_names,external_exposed){ return (function (imp){var imp_exported_names = cljs.core.set.call(null,lt.plugins.elm_light.elm_ast.extract_exports.call(null,new cljs.core.Keyword(null,"exposing","exposing",3382854387).cljs$core$IFn$_invoke$arity$1(imp)));var imp_exports_all_QMARK_ = lt.plugins.elm_light.elm_ast.exposeAll_QMARK_.call(null,new cljs.core.Keyword(null,"exposing","exposing",3382854387).cljs$core$IFn$_invoke$arity$1(imp));return cljs.core.map.call(null,((function (imp_exported_names,imp_exports_all_QMARK_,imports,imported_mod_names,external_exposed){ return (function (p1__22713_SHARP_){return cljs.core.assoc.call(null,p1__22713_SHARP_,new cljs.core.Keyword(null,"candidate-tokens","candidate-tokens",3775833238),lt.plugins.elm_light.elm_ast.get_import_candidate_tokens.call(null,imp,new cljs.core.Keyword(null,"value","value",1125876963).cljs$core$IFn$_invoke$arity$1(imp),new cljs.core.Keyword(null,"alias","alias",1106807234).cljs$core$IFn$_invoke$arity$1(imp),imp_exported_names,imp_exports_all_QMARK_,p1__22713_SHARP_)); });})(imp_exported_names,imp_exports_all_QMARK_,imports,imported_mod_names,external_exposed)) ,cljs.core.get.call(null,external_exposed,new cljs.core.Keyword(null,"value","value",1125876963).cljs$core$IFn$_invoke$arity$1(imp))); });})(imports,imported_mod_names,external_exposed)) ,imports); }); lt.plugins.elm_light.elm_ast.get_core_modules = (function get_core_modules(all_modules){return cljs.core.group_by.call(null,(function (p1__22715_SHARP_){return new cljs.core.Keyword(null,"value","value",1125876963).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"moduleDeclaration","moduleDeclaration",1240624864).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"ast","ast",1014001140).cljs$core$IFn$_invoke$arity$1(p1__22715_SHARP_))); }),cljs.core.filter.call(null,(function (p1__22714_SHARP_){return cljs.core._EQ_.call(null,"elm-lang/core",new cljs.core.Keyword(null,"name","name",1017277949).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"package","package",4501809080).cljs$core$IFn$_invoke$arity$1(p1__22714_SHARP_))); }),all_modules)); }); lt.plugins.elm_light.elm_ast.elm_18_QMARK_ = (function elm_18_QMARK_(version){var and__4872__auto__ = version;if(cljs.core.truth_(and__4872__auto__)) {return (5 <= parseInt(cljs.core.first.call(null,version))); } else {return and__4872__auto__; } }); /** * Get candidates for Elm default imports as per * https://github.com/elm-lang/core */ lt.plugins.elm_light.elm_ast.get_default_candidates = (function get_default_candidates(modules){return cljs.core.map.call(null,(function (p1__22726_SHARP_){return cljs.core.assoc.call(null,p1__22726_SHARP_,new cljs.core.Keyword(null,"default-candidate?","default-candidate?",4075348378),true); }),cljs.core.concat.call(null,cljs.core.map.call(null,(function (p1__22716_SHARP_){return cljs.core.assoc.call(null,p1__22716_SHARP_,new cljs.core.Keyword(null,"candidate-tokens","candidate-tokens",3775833238),cljs.core.PersistentHashSet.fromArray([new cljs.core.Keyword(null,"value","value",1125876963).cljs$core$IFn$_invoke$arity$1(p1__22716_SHARP_)], true)); }),cljs.core.mapcat.call(null,lt.plugins.elm_light.elm_ast.get_exposed_declarations,cljs.core.get.call(null,modules,"Basics"))),cljs.core.map.call(null,(function (p1__22717_SHARP_){return cljs.core.assoc.call(null,p1__22717_SHARP_,new cljs.core.Keyword(null,"candidate-tokens","candidate-tokens",3775833238),cljs.core.PersistentHashSet.fromArray([[cljs.core.str("Debug."),cljs.core.str(new cljs.core.Keyword(null,"value","value",1125876963).cljs$core$IFn$_invoke$arity$1(p1__22717_SHARP_))].join('')], true)); }),cljs.core.mapcat.call(null,lt.plugins.elm_light.elm_ast.get_exposed_declarations,cljs.core.get.call(null,modules,"Debug"))),cljs.core.map.call(null,(function (p1__22718_SHARP_){return cljs.core.assoc.call(null,p1__22718_SHARP_,new cljs.core.Keyword(null,"candidate-tokens","candidate-tokens",3775833238),((cljs.core.contains_QMARK_.call(null,new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 2, ["Just",null,"Nothing",null], null), null),new cljs.core.Keyword(null,"value","value",1125876963).cljs$core$IFn$_invoke$arity$1(p1__22718_SHARP_)))?cljs.core.PersistentHashSet.fromArray([new cljs.core.Keyword(null,"value","value",1125876963).cljs$core$IFn$_invoke$arity$1(p1__22718_SHARP_),[cljs.core.str("Maybe."),cljs.core.str(new cljs.core.Keyword(null,"value","value",1125876963).cljs$core$IFn$_invoke$arity$1(p1__22718_SHARP_))].join('')], true):cljs.core.PersistentHashSet.fromArray([[cljs.core.str("Maybe."),cljs.core.str(new cljs.core.Keyword(null,"value","value",1125876963).cljs$core$IFn$_invoke$arity$1(p1__22718_SHARP_))].join('')], true))); }),cljs.core.mapcat.call(null,lt.plugins.elm_light.elm_ast.get_exposed_declarations,cljs.core.get.call(null,modules,"Maybe"))),cljs.core.map.call(null,(function (p1__22719_SHARP_){return cljs.core.assoc.call(null,p1__22719_SHARP_,new cljs.core.Keyword(null,"candidate-tokens","candidate-tokens",3775833238),((cljs.core.contains_QMARK_.call(null,new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 2, ["Err",null,"Ok",null], null), null),new cljs.core.Keyword(null,"value","value",1125876963).cljs$core$IFn$_invoke$arity$1(p1__22719_SHARP_)))?cljs.core.PersistentHashSet.fromArray([new cljs.core.Keyword(null,"value","value",1125876963).cljs$core$IFn$_invoke$arity$1(p1__22719_SHARP_),[cljs.core.str("Result."),cljs.core.str(new cljs.core.Keyword(null,"value","value",1125876963).cljs$core$IFn$_invoke$arity$1(p1__22719_SHARP_))].join('')], true):cljs.core.PersistentHashSet.fromArray([[cljs.core.str("Result."),cljs.core.str(new cljs.core.Keyword(null,"value","value",1125876963).cljs$core$IFn$_invoke$arity$1(p1__22719_SHARP_))].join('')], true))); }),cljs.core.mapcat.call(null,lt.plugins.elm_light.elm_ast.get_exposed_declarations,cljs.core.get.call(null,modules,"Result"))),cljs.core.map.call(null,(function (p1__22720_SHARP_){return cljs.core.assoc.call(null,p1__22720_SHARP_,new cljs.core.Keyword(null,"candidate-tokens","candidate-tokens",3775833238),((cljs.core._EQ_.call(null,new cljs.core.Keyword(null,"value","value",1125876963).cljs$core$IFn$_invoke$arity$1(p1__22720_SHARP_),"Program"))?new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, ["Program",null], null), null):cljs.core.PersistentHashSet.fromArray([[cljs.core.str("Platform."),cljs.core.str(new cljs.core.Keyword(null,"value","value",1125876963).cljs$core$IFn$_invoke$arity$1(p1__22720_SHARP_))].join('')], true))); }),cljs.core.mapcat.call(null,lt.plugins.elm_light.elm_ast.get_exposed_declarations,cljs.core.get.call(null,modules,"Platform"))),cljs.core.map.call(null,(function (p1__22721_SHARP_){return cljs.core.assoc.call(null,p1__22721_SHARP_,new cljs.core.Keyword(null,"candidate-tokens","candidate-tokens",3775833238),(function (){var G__22728 = new cljs.core.Keyword(null,"value","value",1125876963).cljs$core$IFn$_invoke$arity$1(p1__22721_SHARP_);if(cljs.core._EQ_.call(null,"!",G__22728)) {return new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, ["!",null], null), null); } else {if(cljs.core._EQ_.call(null,"Cmd",G__22728)) {return new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, ["Cmd",null], null), null); } else {if(new cljs.core.Keyword(null,"else","else",1017020587)) {return cljs.core.PersistentHashSet.fromArray([[cljs.core.str("Cmd."),cljs.core.str(new cljs.core.Keyword(null,"value","value",1125876963).cljs$core$IFn$_invoke$arity$1(p1__22721_SHARP_))].join(''),[cljs.core.str("Platform.Cmd."),cljs.core.str(new cljs.core.Keyword(null,"value","value",1125876963).cljs$core$IFn$_invoke$arity$1(p1__22721_SHARP_))].join('')], true); } else {return null; } } } })()); }),cljs.core.mapcat.call(null,lt.plugins.elm_light.elm_ast.get_exposed_declarations,cljs.core.get.call(null,modules,"Platfrom.Cmd"))),cljs.core.map.call(null,(function (p1__22722_SHARP_){return cljs.core.assoc.call(null,p1__22722_SHARP_,new cljs.core.Keyword(null,"candidate-tokens","candidate-tokens",3775833238),((cljs.core._EQ_.call(null,new cljs.core.Keyword(null,"value","value",1125876963).cljs$core$IFn$_invoke$arity$1(p1__22722_SHARP_),"Sub"))?new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, ["Sub",null], null), null):cljs.core.PersistentHashSet.fromArray([[cljs.core.str("Sub."),cljs.core.str(new cljs.core.Keyword(null,"value","value",1125876963).cljs$core$IFn$_invoke$arity$1(p1__22722_SHARP_))].join(''),[cljs.core.str("Platform.Sub."),cljs.core.str(new cljs.core.Keyword(null,"value","value",1125876963).cljs$core$IFn$_invoke$arity$1(p1__22722_SHARP_))].join('')], true))); }),cljs.core.mapcat.call(null,lt.plugins.elm_light.elm_ast.get_exposed_declarations,cljs.core.get.call(null,modules,"Platform.Sub"))),cljs.core.map.call(null,(function (p1__22723_SHARP_){return cljs.core.assoc.call(null,p1__22723_SHARP_,new cljs.core.Keyword(null,"candidate-tokens","candidate-tokens",3775833238),((cljs.core._EQ_.call(null,"::",new cljs.core.Keyword(null,"value","value",1125876963).cljs$core$IFn$_invoke$arity$1(p1__22723_SHARP_)))?new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, ["::",null], null), null):cljs.core.PersistentHashSet.fromArray([[cljs.core.str("List."),cljs.core.str(new cljs.core.Keyword(null,"value","value",1125876963).cljs$core$IFn$_invoke$arity$1(p1__22723_SHARP_))].join('')], true))); }),cljs.core.mapcat.call(null,lt.plugins.elm_light.elm_ast.get_exposed_declarations,cljs.core.get.call(null,modules,"List"))),cljs.core.map.call(null,(function (p1__22724_SHARP_){return cljs.core.assoc.call(null,p1__22724_SHARP_,new cljs.core.Keyword(null,"candidate-tokens","candidate-tokens",3775833238),cljs.core.PersistentHashSet.fromArray([[cljs.core.str("Tuple."),cljs.core.str(new cljs.core.Keyword(null,"value","value",1125876963).cljs$core$IFn$_invoke$arity$1(p1__22724_SHARP_))].join('')], true)); }),cljs.core.mapcat.call(null,lt.plugins.elm_light.elm_ast.get_exposed_declarations,cljs.core.get.call(null,modules,"Tuple"))),(cljs.core.truth_(lt.plugins.elm_light.elm_ast.elm_18_QMARK_.call(null,new cljs.core.Keyword(null,"version","version",1365512266).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"package","package",4501809080).cljs$core$IFn$_invoke$arity$1(cljs.core.first.call(null,cljs.core.get.call(null,modules,"String"))))))?cljs.core.map.call(null,(function (p1__22725_SHARP_){return cljs.core.assoc.call(null,p1__22725_SHARP_,new cljs.core.Keyword(null,"candidate-tokens","candidate-tokens",3775833238),cljs.core.PersistentHashSet.fromArray([[cljs.core.str("String."),cljs.core.str(new cljs.core.Keyword(null,"value","value",1125876963).cljs$core$IFn$_invoke$arity$1(p1__22725_SHARP_))].join('')], true)); }),cljs.core.mapcat.call(null,lt.plugins.elm_light.elm_ast.get_exposed_declarations,cljs.core.get.call(null,modules,"String"))):null))); }); lt.plugins.elm_light.elm_ast.get_default_candidates_memo = cljs.core.memoize.call(null,(function (core_modules){return lt.plugins.elm_light.elm_ast.get_default_candidates.call(null,core_modules); })); lt.plugins.elm_light.elm_ast.get_current_module_candidates = (function get_current_module_candidates(module){var mod_name = lt.plugins.elm_light.elm_ast.get_module_name.call(null,module);return cljs.core.map.call(null,((function (mod_name){ return (function (p1__22729_SHARP_){return cljs.core.assoc.call(null,p1__22729_SHARP_,new cljs.core.Keyword(null,"candidate-tokens","candidate-tokens",3775833238),cljs.core.PersistentHashSet.fromArray([new cljs.core.Keyword(null,"value","value",1125876963).cljs$core$IFn$_invoke$arity$1(p1__22729_SHARP_)], true)); });})(mod_name)) ,lt.plugins.elm_light.elm_ast.enrich_module_declarations.call(null,module)); }); lt.plugins.elm_light.elm_ast.get_jump_to_candidates = (function get_jump_to_candidates(module,modules){return cljs.core.concat.call(null,lt.plugins.elm_light.elm_ast.get_current_module_candidates.call(null,module),lt.plugins.elm_light.elm_ast.get_external_candidates.call(null,module,modules),lt.plugins.elm_light.elm_ast.get_default_candidates.call(null,lt.plugins.elm_light.elm_ast.get_core_modules.call(null,modules))); }); lt.plugins.elm_light.elm_ast.get_candidate_by_token = (function get_candidate_by_token(token,module,modules){return cljs.core.first.call(null,cljs.core.filter.call(null,(function (p1__22730_SHARP_){return cljs.core.contains_QMARK_.call(null,new cljs.core.Keyword(null,"candidate-tokens","candidate-tokens",3775833238).cljs$core$IFn$_invoke$arity$1(p1__22730_SHARP_),token); }),lt.plugins.elm_light.elm_ast.get_jump_to_candidates.call(null,module,modules))); }); lt.plugins.elm_light.elm_ast.create_param_candidate = (function create_param_candidate(param,candidate){return new cljs.core.PersistentArrayMap(null, 7, [new cljs.core.Keyword(null,"value","value",1125876963),new cljs.core.Keyword(null,"value","value",1125876963).cljs$core$IFn$_invoke$arity$1(candidate),new cljs.core.Keyword(null,"candidate","candidate",1522567413),new cljs.core.Keyword(null,"value","value",1125876963).cljs$core$IFn$_invoke$arity$1(param),new cljs.core.Keyword(null,"location","location",2914947879),new cljs.core.Keyword(null,"location","location",2914947879).cljs$core$IFn$_invoke$arity$1(candidate),new cljs.core.Keyword(null,"package","package",4501809080),new cljs.core.Keyword(null,"package","package",4501809080).cljs$core$IFn$_invoke$arity$1(candidate),new cljs.core.Keyword(null,"file","file",1017047278),new cljs.core.Keyword(null,"file","file",1017047278).cljs$core$IFn$_invoke$arity$1(candidate),new cljs.core.Keyword(null,"doc","doc",1014003882),new cljs.core.Keyword(null,"doc","doc",1014003882).cljs$core$IFn$_invoke$arity$1(candidate),new cljs.core.Keyword(null,"module-name","module-name",4067691710),new cljs.core.Keyword(null,"module-name","module-name",4067691710).cljs$core$IFn$_invoke$arity$1(candidate)], null); }); lt.plugins.elm_light.elm_ast.create_typealias_rec_candidates = (function create_typealias_rec_candidates(param,candidate){return cljs.core.concat.call(null,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [lt.plugins.elm_light.elm_ast.create_param_candidate.call(null,param,candidate)], null),cljs.core.map.call(null,(function (p1__22731_SHARP_){return cljs.core.PersistentHashMap.fromArrays.call(null,[new cljs.core.Keyword(null,"value","value",1125876963),new cljs.core.Keyword(null,"candidate","candidate",1522567413),new cljs.core.Keyword(null,"package","package",4501809080),new cljs.core.Keyword(null,"location","location",2914947879),new cljs.core.Keyword(null,"signatureRaw","signatureRaw",3837738946),new cljs.core.Keyword(null,"file","file",1017047278),new cljs.core.Keyword(null,"module-name","module-name",4067691710)],[[cljs.core.str(new cljs.core.Keyword(null,"value","value",1125876963).cljs$core$IFn$_invoke$arity$1(candidate)),cljs.core.str("."),cljs.core.str(new cljs.core.Keyword(null,"name","name",1017277949).cljs$core$IFn$_invoke$arity$1(p1__22731_SHARP_))].join(''),[cljs.core.str(new cljs.core.Keyword(null,"value","value",1125876963).cljs$core$IFn$_invoke$arity$1(param)),cljs.core.str("."),cljs.core.str(new cljs.core.Keyword(null,"name","name",1017277949).cljs$core$IFn$_invoke$arity$1(p1__22731_SHARP_))].join(''),new cljs.core.Keyword(null,"package","package",4501809080).cljs$core$IFn$_invoke$arity$1(candidate),new cljs.core.Keyword(null,"location","location",2914947879).cljs$core$IFn$_invoke$arity$1(p1__22731_SHARP_),new cljs.core.Keyword(null,"signatureRaw","signatureRaw",3837738946).cljs$core$IFn$_invoke$arity$1(p1__22731_SHARP_),new cljs.core.Keyword(null,"file","file",1017047278).cljs$core$IFn$_invoke$arity$1(candidate),new cljs.core.Keyword(null,"module-name","module-name",4067691710).cljs$core$IFn$_invoke$arity$1(candidate)]); }),new cljs.core.Keyword(null,"fieldDefs","fieldDefs",2278619290).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"tipe","tipe",1017464476).cljs$core$IFn$_invoke$arity$1(candidate)))); }); lt.plugins.elm_light.elm_ast.create_destructured_type_alias_candidates = (function create_destructured_type_alias_candidates(param,candidate){var get_field_def = (function (p1__22732_SHARP_){return cljs.core.first.call(null,cljs.core.filter.call(null,(function (x){return cljs.core._EQ_.call(null,p1__22732_SHARP_,new cljs.core.Keyword(null,"name","name",1017277949).cljs$core$IFn$_invoke$arity$1(x)); }),new cljs.core.Keyword(null,"fieldDefs","fieldDefs",2278619290).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"tipe","tipe",1017464476).cljs$core$IFn$_invoke$arity$1(candidate)))); });return cljs.core.map.call(null,((function (get_field_def){ return (function (field){var map__22734 = get_field_def.call(null,new cljs.core.Keyword(null,"value","value",1125876963).cljs$core$IFn$_invoke$arity$1(field));var map__22734__$1 = ((cljs.core.seq_QMARK_.call(null,map__22734))?cljs.core.apply.call(null,cljs.core.hash_map,map__22734):map__22734);var signatureRaw = cljs.core.get.call(null,map__22734__$1,new cljs.core.Keyword(null,"signatureRaw","signatureRaw",3837738946));var doc = cljs.core.get.call(null,map__22734__$1,new cljs.core.Keyword(null,"doc","doc",1014003882));var location = cljs.core.get.call(null,map__22734__$1,new cljs.core.Keyword(null,"location","location",2914947879));return new cljs.core.PersistentArrayMap(null, 7, [new cljs.core.Keyword(null,"value","value",1125876963),[cljs.core.str(new cljs.core.Keyword(null,"value","value",1125876963).cljs$core$IFn$_invoke$arity$1(candidate)),cljs.core.str("."),cljs.core.str(new cljs.core.Keyword(null,"value","value",1125876963).cljs$core$IFn$_invoke$arity$1(field))].join(''),new cljs.core.Keyword(null,"candidate","candidate",1522567413),new cljs.core.Keyword(null,"value","value",1125876963).cljs$core$IFn$_invoke$arity$1(field),new cljs.core.Keyword(null,"package","package",4501809080),new cljs.core.Keyword(null,"package","package",4501809080).cljs$core$IFn$_invoke$arity$1(candidate),new cljs.core.Keyword(null,"file","file",1017047278),new cljs.core.Keyword(null,"file","file",1017047278).cljs$core$IFn$_invoke$arity$1(candidate),new cljs.core.Keyword(null,"doc","doc",1014003882),signatureRaw,new cljs.core.Keyword(null,"location","location",2914947879),location,new cljs.core.Keyword(null,"module-name","module-name",4067691710),new cljs.core.Keyword(null,"module-name","module-name",4067691710).cljs$core$IFn$_invoke$arity$1(candidate)], null); });})(get_field_def)) ,new cljs.core.Keyword(null,"patterns","patterns",2259909205).cljs$core$IFn$_invoke$arity$1(param)); }); lt.plugins.elm_light.elm_ast.create_bracketed_type_alias_candidates = (function create_bracketed_type_alias_candidates(param,candidate){var aliaz = new cljs.core.Keyword(null,"alias","alias",1106807234).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"pattern","pattern",4517781250).cljs$core$IFn$_invoke$arity$1(param));var get_field_def = ((function (aliaz){ return (function (p1__22735_SHARP_){return cljs.core.first.call(null,cljs.core.filter.call(null,((function (aliaz){ return (function (x){return cljs.core._EQ_.call(null,p1__22735_SHARP_,new cljs.core.Keyword(null,"name","name",1017277949).cljs$core$IFn$_invoke$arity$1(x)); });})(aliaz)) ,new cljs.core.Keyword(null,"fieldDefs","fieldDefs",2278619290).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"tipe","tipe",1017464476).cljs$core$IFn$_invoke$arity$1(candidate)))); });})(aliaz)) ;return cljs.core.concat.call(null,(cljs.core.truth_(aliaz)?cljs.core.concat.call(null,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.assoc.call(null,lt.plugins.elm_light.elm_ast.create_param_candidate.call(null,param,candidate),new cljs.core.Keyword(null,"candidate","candidate",1522567413),aliaz)], null),cljs.core.map.call(null,((function (aliaz,get_field_def){ return (function (p1__22736_SHARP_){return cljs.core.PersistentHashMap.fromArrays.call(null,[new cljs.core.Keyword(null,"value","value",1125876963),new cljs.core.Keyword(null,"candidate","candidate",1522567413),new cljs.core.Keyword(null,"location","location",2914947879),new cljs.core.Keyword(null,"doc","doc",1014003882),new cljs.core.Keyword(null,"package","package",4501809080),new cljs.core.Keyword(null,"file","file",1017047278),new cljs.core.Keyword(null,"module-name","module-name",4067691710)],[[cljs.core.str(new cljs.core.Keyword(null,"value","value",1125876963).cljs$core$IFn$_invoke$arity$1(candidate)),cljs.core.str("."),cljs.core.str(new cljs.core.Keyword(null,"name","name",1017277949).cljs$core$IFn$_invoke$arity$1(p1__22736_SHARP_))].join(''),[cljs.core.str(aliaz),cljs.core.str("."),cljs.core.str(new cljs.core.Keyword(null,"name","name",1017277949).cljs$core$IFn$_invoke$arity$1(p1__22736_SHARP_))].join(''),new cljs.core.Keyword(null,"location","location",2914947879).cljs$core$IFn$_invoke$arity$1(p1__22736_SHARP_),new cljs.core.Keyword(null,"signatureRaw","signatureRaw",3837738946).cljs$core$IFn$_invoke$arity$1(p1__22736_SHARP_),new cljs.core.Keyword(null,"package","package",4501809080).cljs$core$IFn$_invoke$arity$1(candidate),new cljs.core.Keyword(null,"file","file",1017047278).cljs$core$IFn$_invoke$arity$1(candidate),new cljs.core.Keyword(null,"module-name","module-name",4067691710).cljs$core$IFn$_invoke$arity$1(candidate)]); });})(aliaz,get_field_def)) ,new cljs.core.Keyword(null,"fieldDefs","fieldDefs",2278619290).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"tipe","tipe",1017464476).cljs$core$IFn$_invoke$arity$1(candidate)))):null),cljs.core.filter.call(null,cljs.core.identity,cljs.core.map.call(null,((function (aliaz,get_field_def){ return (function (field){var temp__4092__auto__ = get_field_def.call(null,new cljs.core.Keyword(null,"value","value",1125876963).cljs$core$IFn$_invoke$arity$1(field));if(cljs.core.truth_(temp__4092__auto__)) {var field_def = temp__4092__auto__;return new cljs.core.PersistentArrayMap(null, 7, [new cljs.core.Keyword(null,"value","value",1125876963),[cljs.core.str(new cljs.core.Keyword(null,"value","value",1125876963).cljs$core$IFn$_invoke$arity$1(candidate)),cljs.core.str("."),cljs.core.str(new cljs.core.Keyword(null,"value","value",1125876963).cljs$core$IFn$_invoke$arity$1(field))].join(''),new cljs.core.Keyword(null,"candidate","candidate",1522567413),new cljs.core.Keyword(null,"value","value",1125876963).cljs$core$IFn$_invoke$arity$1(field),new cljs.core.Keyword(null,"location","location",2914947879),new cljs.core.Keyword(null,"location","location",2914947879).cljs$core$IFn$_invoke$arity$1(field_def),new cljs.core.Keyword(null,"package","package",4501809080),new cljs.core.Keyword(null,"package","package",4501809080).cljs$core$IFn$_invoke$arity$1(candidate),new cljs.core.Keyword(null,"file","file",1017047278),new cljs.core.Keyword(null,"file","file",1017047278).cljs$core$IFn$_invoke$arity$1(candidate),new cljs.core.Keyword(null,"doc","doc",1014003882),new cljs.core.Keyword(null,"signatureRaw","signatureRaw",3837738946).cljs$core$IFn$_invoke$arity$1(field_def),new cljs.core.Keyword(null,"module-name","module-name",4067691710),new cljs.core.Keyword(null,"module-name","module-name",4067691710).cljs$core$IFn$_invoke$arity$1(candidate)], null); } else {return null; } });})(aliaz,get_field_def)) ,new cljs.core.Keyword(null,"patterns","patterns",2259909205).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"value","value",1125876963).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"pattern","pattern",4517781250).cljs$core$IFn$_invoke$arity$1(param)))))); }); lt.plugins.elm_light.elm_ast.print_rec = (function print_rec(rec){return [cljs.core.str("{ "),cljs.core.str(clojure.string.join.call(null,"\n, ",cljs.core.map.call(null,new cljs.core.Keyword(null,"signatureRaw","signatureRaw",3837738946),new cljs.core.Keyword(null,"fieldDefs","fieldDefs",2278619290).cljs$core$IFn$_invoke$arity$1(rec)))),cljs.core.str("\n}")].join(''); }); lt.plugins.elm_light.elm_ast.create_bracketed_adt_candidates = (function create_bracketed_adt_candidates(param,candidate,module,modules){var adtType = cljs.core.first.call(null,new cljs.core.Keyword(null,"adtDefs","adtDefs",4174585041).cljs$core$IFn$_invoke$arity$1(candidate));var adtPattern = new cljs.core.Keyword(null,"pattern","pattern",4517781250).cljs$core$IFn$_invoke$arity$1(param);var fst_destruct_variable = cljs.core.first.call(null,new cljs.core.Keyword(null,"variables","variables",931426537).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"value","value",1125876963).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"pattern","pattern",4517781250).cljs$core$IFn$_invoke$arity$1(param))));return cljs.core.concat.call(null,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.PersistentArrayMap(null, 7, [new cljs.core.Keyword(null,"value","value",1125876963),[cljs.core.str(new cljs.core.Keyword(null,"value","value",1125876963).cljs$core$IFn$_invoke$arity$1(candidate)),cljs.core.str("."),cljs.core.str(new cljs.core.Keyword(null,"value","value",1125876963).cljs$core$IFn$_invoke$arity$1(adtType))].join(''),new cljs.core.Keyword(null,"candidate","candidate",1522567413),new cljs.core.Keyword(null,"value","value",1125876963).cljs$core$IFn$_invoke$arity$1(adtType),new cljs.core.Keyword(null,"location","location",2914947879),new cljs.core.Keyword(null,"location","location",2914947879).cljs$core$IFn$_invoke$arity$1(adtType),new cljs.core.Keyword(null,"package","package",4501809080),new cljs.core.Keyword(null,"package","package",4501809080).cljs$core$IFn$_invoke$arity$1(candidate),new cljs.core.Keyword(null,"file","file",1017047278),new cljs.core.Keyword(null,"file","file",1017047278).cljs$core$IFn$_invoke$arity$1(candidate),new cljs.core.Keyword(null,"doc","doc",1014003882),new cljs.core.Keyword(null,"paramsRaw","paramsRaw",2968749108).cljs$core$IFn$_invoke$arity$1(adtType),new cljs.core.Keyword(null,"module-name","module-name",4067691710),new cljs.core.Keyword(null,"module-name","module-name",4067691710).cljs$core$IFn$_invoke$arity$1(candidate)], null)], null),(function (){var temp__4092__auto__ = new cljs.core.Keyword(null,"alias","alias",1106807234).cljs$core$IFn$_invoke$arity$1(adtPattern);if(cljs.core.truth_(temp__4092__auto__)) {var aliaz = temp__4092__auto__;return new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.assoc.call(null,lt.plugins.elm_light.elm_ast.create_param_candidate.call(null,param,candidate),new cljs.core.Keyword(null,"candidate","candidate",1522567413),aliaz)], null); } else {return null; } })(),((cljs.core._EQ_.call(null,"variable",new cljs.core.Keyword(null,"type","type",1017479852).cljs$core$IFn$_invoke$arity$1(fst_destruct_variable)))?(function (){var adtParam = cljs.core.first.call(null,new cljs.core.Keyword(null,"params","params",4313443576).cljs$core$IFn$_invoke$arity$1(adtType));var adtCandidate = lt.plugins.elm_light.elm_ast.get_candidate_by_token.call(null,new cljs.core.Keyword(null,"value","value",1125876963).cljs$core$IFn$_invoke$arity$1(adtParam),module,modules);return cljs.core.concat.call(null,(cljs.core.truth_(adtCandidate)?new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.PersistentArrayMap(null, 7, [new cljs.core.Keyword(null,"value","value",1125876963),new cljs.core.Keyword(null,"value","value",1125876963).cljs$core$IFn$_invoke$arity$1(adtCandidate),new cljs.core.Keyword(null,"candidate","candidate",1522567413),new cljs.core.Keyword(null,"value","value",1125876963).cljs$core$IFn$_invoke$arity$1(fst_destruct_variable),new cljs.core.Keyword(null,"location","location",2914947879),new cljs.core.Keyword(null,"location","location",2914947879).cljs$core$IFn$_invoke$arity$1(adtCandidate),new cljs.core.Keyword(null,"package","package",4501809080),new cljs.core.Keyword(null,"package","package",4501809080).cljs$core$IFn$_invoke$arity$1(adtCandidate),new cljs.core.Keyword(null,"file","file",1017047278),new cljs.core.Keyword(null,"file","file",1017047278).cljs$core$IFn$_invoke$arity$1(adtCandidate),new cljs.core.Keyword(null,"doc","doc",1014003882),new cljs.core.Keyword(null,"doc","doc",1014003882).cljs$core$IFn$_invoke$arity$1(adtCandidate),new cljs.core.Keyword(null,"module-name","module-name",4067691710),new cljs.core.Keyword(null,"module-name","module-name",4067691710).cljs$core$IFn$_invoke$arity$1(adtCandidate)], null)], null):null),((cljs.core._EQ_.call(null,"typeRec",new cljs.core.Keyword(null,"type","type",1017479852).cljs$core$IFn$_invoke$arity$1(adtParam)))?(function (){cljs.core.concat.call(null,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.PersistentArrayMap(null, 7, [new cljs.core.Keyword(null,"value","value",1125876963),[cljs.core.str(new cljs.core.Keyword(null,"value","value",1125876963).cljs$core$IFn$_invoke$arity$1(candidate)),cljs.core.str("."),cljs.core.str(new cljs.core.Keyword(null,"value","value",1125876963).cljs$core$IFn$_invoke$arity$1(adtType)),cljs.core.str(".")].join(''),new cljs.core.Keyword(null,"candidate","candidate",1522567413),new cljs.core.Keyword(null,"value","value",1125876963).cljs$core$IFn$_invoke$arity$1(fst_destruct_variable),new cljs.core.Keyword(null,"location","location",2914947879),new cljs.core.Keyword(null,"location","location",2914947879).cljs$core$IFn$_invoke$arity$1(adtParam),new cljs.core.Keyword(null,"doc","doc",1014003882),lt.plugins.elm_light.elm_ast.print_rec.call(null,adtParam),new cljs.core.Keyword(null,"package","package",4501809080),new cljs.core.Keyword(null,"package","package",4501809080).cljs$core$IFn$_invoke$arity$1(candidate),new cljs.core.Keyword(null,"file","file",1017047278),new cljs.core.Keyword(null,"file","file",1017047278).cljs$core$IFn$_invoke$arity$1(candidate),new cljs.core.Keyword(null,"module-name","module-name",4067691710),new cljs.core.Keyword(null,"module-name","module-name",4067691710).cljs$core$IFn$_invoke$arity$1(candidate)], null)], null)); return cljs.core.map.call(null,((function (adtParam,adtCandidate,adtType,adtPattern,fst_destruct_variable){ return (function (p1__22737_SHARP_){return cljs.core.PersistentHashMap.fromArrays.call(null,[new cljs.core.Keyword(null,"value","value",1125876963),new cljs.core.Keyword(null,"candidate","candidate",1522567413),new cljs.core.Keyword(null,"location","location",2914947879),new cljs.core.Keyword(null,"doc","doc",1014003882),new cljs.core.Keyword(null,"package","package",4501809080),new cljs.core.Keyword(null,"file","file",1017047278),new cljs.core.Keyword(null,"module-name","module-name",4067691710)],[[cljs.core.str(new cljs.core.Keyword(null,"value","value",1125876963).cljs$core$IFn$_invoke$arity$1(candidate)),cljs.core.str("."),cljs.core.str(new cljs.core.Keyword(null,"value","value",1125876963).cljs$core$IFn$_invoke$arity$1(adtType)),cljs.core.str(".."),cljs.core.str(new cljs.core.Keyword(null,"name","name",1017277949).cljs$core$IFn$_invoke$arity$1(p1__22737_SHARP_))].join(''),[cljs.core.str(new cljs.core.Keyword(null,"value","value",1125876963).cljs$core$IFn$_invoke$arity$1(fst_destruct_variable)),cljs.core.str("."),cljs.core.str(new cljs.core.Keyword(null,"name","name",1017277949).cljs$core$IFn$_invoke$arity$1(p1__22737_SHARP_))].join(''),new cljs.core.Keyword(null,"location","location",2914947879).cljs$core$IFn$_invoke$arity$1(p1__22737_SHARP_),new cljs.core.Keyword(null,"signatureRaw","signatureRaw",3837738946).cljs$core$IFn$_invoke$arity$1(p1__22737_SHARP_),new cljs.core.Keyword(null,"package","package",4501809080).cljs$core$IFn$_invoke$arity$1(candidate),new cljs.core.Keyword(null,"file","file",1017047278).cljs$core$IFn$_invoke$arity$1(candidate),new cljs.core.Keyword(null,"module-name","module-name",4067691710).cljs$core$IFn$_invoke$arity$1(candidate)]); });})(adtParam,adtCandidate,adtType,adtPattern,fst_destruct_variable)) ,new cljs.core.Keyword(null,"fieldDefs","fieldDefs",2278619290).cljs$core$IFn$_invoke$arity$1(adtParam)); })():null)); })():null),(cljs.core.truth_(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core._EQ_.call(null,"patternRec",new cljs.core.Keyword(null,"type","type",1017479852).cljs$core$IFn$_invoke$arity$1(fst_destruct_variable))], null))?(function (){var adtParam = cljs.core.first.call(null,new cljs.core.Keyword(null,"params","params",4313443576).cljs$core$IFn$_invoke$arity$1(adtType));var adtCandidate = lt.plugins.elm_light.elm_ast.get_candidate_by_token.call(null,new cljs.core.Keyword(null,"value","value",1125876963).cljs$core$IFn$_invoke$arity$1(adtParam),module,modules);var get_field_def = ((function (adtParam,adtCandidate,adtType,adtPattern,fst_destruct_variable){ return (function (p1__22738_SHARP_){return cljs.core.first.call(null,cljs.core.filter.call(null,((function (adtParam,adtCandidate,adtType,adtPattern,fst_destruct_variable){ return (function (x){return cljs.core._EQ_.call(null,p1__22738_SHARP_,new cljs.core.Keyword(null,"name","name",1017277949).cljs$core$IFn$_invoke$arity$1(x)); });})(adtParam,adtCandidate,adtType,adtPattern,fst_destruct_variable)) ,new cljs.core.Keyword(null,"fieldDefs","fieldDefs",2278619290).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"tipe","tipe",1017464476).cljs$core$IFn$_invoke$arity$1(adtCandidate)))); });})(adtParam,adtCandidate,adtType,adtPattern,fst_destruct_variable)) ;return cljs.core.concat.call(null,((cljs.core._EQ_.call(null,"typeAliasDecl",new cljs.core.Keyword(null,"type","type",1017479852).cljs$core$IFn$_invoke$arity$1(adtCandidate)))?cljs.core.concat.call(null,(function (){var temp__4092__auto__ = new cljs.core.Keyword(null,"alias","alias",1106807234).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"pattern","pattern",4517781250).cljs$core$IFn$_invoke$arity$1(fst_destruct_variable));if(cljs.core.truth_(temp__4092__auto__)) {var aliaz = temp__4092__auto__;return cljs.core.concat.call(null,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [lt.plugins.elm_light.elm_ast.create_param_candidate.call(null,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"value","value",1125876963),aliaz], null),adtCandidate)], null),cljs.core.map.call(null,((function (aliaz,temp__4092__auto__,adtParam,adtCandidate,get_field_def,adtType,adtPattern,fst_destruct_variable){ return (function (p1__22739_SHARP_){return cljs.core.PersistentHashMap.fromArrays.call(null,[new cljs.core.Keyword(null,"value","value",1125876963),new cljs.core.Keyword(null,"candidate","candidate",1522567413),new cljs.core.Keyword(null,"file","file",1017047278),new cljs.core.Keyword(null,"package","package",4501809080),new cljs.core.Keyword(null,"doc","doc",1014003882),new cljs.core.Keyword(null,"location","location",2914947879),new cljs.core.Keyword(null,"module-name","module-name",4067691710)],[[cljs.core.str(new cljs.core.Keyword(null,"value","value",1125876963).cljs$core$IFn$_invoke$arity$1(adtCandidate)),cljs.core.str("."),cljs.core.str(new cljs.core.Keyword(null,"name","name",1017277949).cljs$core$IFn$_invoke$arity$1(p1__22739_SHARP_))].join(''),[cljs.core.str(aliaz),cljs.core.str("."),cljs.core.str(new cljs.core.Keyword(null,"name","name",1017277949).cljs$core$IFn$_invoke$arity$1(p1__22739_SHARP_))].join(''),new cljs.core.Keyword(null,"file","file",1017047278).cljs$core$IFn$_invoke$arity$1(adtCandidate),new cljs.core.Keyword(null,"package","package",4501809080).cljs$core$IFn$_invoke$arity$1(adtCandidate),new cljs.core.Keyword(null,"signatureRaw","signatureRaw",3837738946).cljs$core$IFn$_invoke$arity$1(p1__22739_SHARP_),new cljs.core.Keyword(null,"location","location",2914947879).cljs$core$IFn$_invoke$arity$1(p1__22739_SHARP_),new cljs.core.Keyword(null,"module-name","module-name",4067691710).cljs$core$IFn$_invoke$arity$1(adtCandidate)]); });})(aliaz,temp__4092__auto__,adtParam,adtCandidate,get_field_def,adtType,adtPattern,fst_destruct_variable)) ,new cljs.core.Keyword(null,"fieldDefs","fieldDefs",2278619290).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"tipe","tipe",1017464476).cljs$core$IFn$_invoke$arity$1(adtCandidate)))); } else {return null; } })(),((cljs.core._EQ_.call(null,"patternRec",new cljs.core.Keyword(null,"type","type",1017479852).cljs$core$IFn$_invoke$arity$1(fst_destruct_variable)))?cljs.core.map.call(null,((function (adtParam,adtCandidate,get_field_def,adtType,adtPattern,fst_destruct_variable){ return (function (field){if(cljs.core.truth_(get_field_def.call(null,new cljs.core.Keyword(null,"value","value",1125876963).cljs$core$IFn$_invoke$arity$1(field)))) {var map__22743 = get_field_def.call(null,new cljs.core.Keyword(null,"value","value",1125876963).cljs$core$IFn$_invoke$arity$1(field));var map__22743__$1 = ((cljs.core.seq_QMARK_.call(null,map__22743))?cljs.core.apply.call(null,cljs.core.hash_map,map__22743):map__22743);var signatureRaw = cljs.core.get.call(null,map__22743__$1,new cljs.core.Keyword(null,"signatureRaw","signatureRaw",3837738946));var doc = cljs.core.get.call(null,map__22743__$1,new cljs.core.Keyword(null,"doc","doc",1014003882));var location = cljs.core.get.call(null,map__22743__$1,new cljs.core.Keyword(null,"location","location",2914947879));return new cljs.core.PersistentArrayMap(null, 7, [new cljs.core.Keyword(null,"value","value",1125876963),[cljs.core.str(new cljs.core.Keyword(null,"value","value",1125876963).cljs$core$IFn$_invoke$arity$1(adtCandidate)),cljs.core.str("."),cljs.core.str(new cljs.core.Keyword(null,"value","value",1125876963).cljs$core$IFn$_invoke$arity$1(field))].join(''),new cljs.core.Keyword(null,"candidate","candidate",1522567413),new cljs.core.Keyword(null,"value","value",1125876963).cljs$core$IFn$_invoke$arity$1(field),new cljs.core.Keyword(null,"package","package",4501809080),new cljs.core.Keyword(null,"package","package",4501809080).cljs$core$IFn$_invoke$arity$1(adtCandidate),new cljs.core.Keyword(null,"file","file",1017047278),new cljs.core.Keyword(null,"file","file",1017047278).cljs$core$IFn$_invoke$arity$1(adtCandidate),new cljs.core.Keyword(null,"doc","doc",1014003882),signatureRaw,new cljs.core.Keyword(null,"location","location",2914947879),location,new cljs.core.Keyword(null,"module-name","module-name",4067691710),new cljs.core.Keyword(null,"module-name","module-name",4067691710).cljs$core$IFn$_invoke$arity$1(adtCandidate)], null); } else {return null; } });})(adtParam,adtCandidate,get_field_def,adtType,adtPattern,fst_destruct_variable)) ,new cljs.core.Keyword(null,"patterns","patterns",2259909205).cljs$core$IFn$_invoke$arity$1(fst_destruct_variable)):null),((cljs.core._EQ_.call(null,"patternBracket",new cljs.core.Keyword(null,"type","type",1017479852).cljs$core$IFn$_invoke$arity$1(fst_destruct_variable)))?cljs.core.map.call(null,((function (adtParam,adtCandidate,get_field_def,adtType,adtPattern,fst_destruct_variable){ return (function (field){if(cljs.core.truth_(get_field_def.call(null,new cljs.core.Keyword(null,"value","value",1125876963).cljs$core$IFn$_invoke$arity$1(field)))) {var map__22744 = get_field_def.call(null,new cljs.core.Keyword(null,"value","value",1125876963).cljs$core$IFn$_invoke$arity$1(field));var map__22744__$1 = ((cljs.core.seq_QMARK_.call(null,map__22744))?cljs.core.apply.call(null,cljs.core.hash_map,map__22744):map__22744);var signatureRaw = cljs.core.get.call(null,map__22744__$1,new cljs.core.Keyword(null,"signatureRaw","signatureRaw",3837738946));var doc = cljs.core.get.call(null,map__22744__$1,new cljs.core.Keyword(null,"doc","doc",1014003882));var location = cljs.core.get.call(null,map__22744__$1,new cljs.core.Keyword(null,"location","location",2914947879));return new cljs.core.PersistentArrayMap(null, 7, [new cljs.core.Keyword(null,"value","value",1125876963),[cljs.core.str(new cljs.core.Keyword(null,"value","value",1125876963).cljs$core$IFn$_invoke$arity$1(adtCandidate)),cljs.core.str("."),cljs.core.str(new cljs.core.Keyword(null,"value","value",1125876963).cljs$core$IFn$_invoke$arity$1(field))].join(''),new cljs.core.Keyword(null,"candidate","candidate",1522567413),new cljs.core.Keyword(null,"value","value",1125876963).cljs$core$IFn$_invoke$arity$1(field),new cljs.core.Keyword(null,"package","package",4501809080),new cljs.core.Keyword(null,"package","package",4501809080).cljs$core$IFn$_invoke$arity$1(adtCandidate),new cljs.core.Keyword(null,"file","file",1017047278),new cljs.core.Keyword(null,"file","file",1017047278).cljs$core$IFn$_invoke$arity$1(adtCandidate),new cljs.core.Keyword(null,"doc","doc",1014003882),signatureRaw,new cljs.core.Keyword(null,"location","location",2914947879),location,new cljs.core.Keyword(null,"module-name","module-name",4067691710),new cljs.core.Keyword(null,"module-name","module-name",4067691710).cljs$core$IFn$_invoke$arity$1(adtCandidate)], null); } else {return null; } });})(adtParam,adtCandidate,get_field_def,adtType,adtPattern,fst_destruct_variable)) ,new cljs.core.Keyword(null,"patterns","patterns",2259909205).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"value","value",1125876963).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"pattern","pattern",4517781250).cljs$core$IFn$_invoke$arity$1(fst_destruct_variable)))):null)):null),((cljs.core._EQ_.call(null,"typeRec",new cljs.core.Keyword(null,"type","type",1017479852).cljs$core$IFn$_invoke$arity$1(cljs.core.first.call(null,new cljs.core.Keyword(null,"params","params",4313443576).cljs$core$IFn$_invoke$arity$1(adtType)))))?cljs.core.concat.call(null,(function (){var temp__4092__auto__ = new cljs.core.Keyword(null,"alias","alias",1106807234).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"pattern","pattern",4517781250).cljs$core$IFn$_invoke$arity$1(fst_destruct_variable));if(cljs.core.truth_(temp__4092__auto__)) {var aliaz = temp__4092__auto__;return cljs.core.concat.call(null,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.PersistentArrayMap(null, 7, [new cljs.core.Keyword(null,"value","value",1125876963),[cljs.core.str(new cljs.core.Keyword(null,"value","value",1125876963).cljs$core$IFn$_invoke$arity$1(candidate)),cljs.core.str("."),cljs.core.str(new cljs.core.Keyword(null,"value","value",1125876963).cljs$core$IFn$_invoke$arity$1(adtType)),cljs.core.str(".")].join(''),new cljs.core.Keyword(null,"candidate","candidate",1522567413),aliaz,new cljs.core.Keyword(null,"file","file",1017047278),new cljs.core.Keyword(null,"file","file",1017047278).cljs$core$IFn$_invoke$arity$1(candidate),new cljs.core.Keyword(null,"package","package",4501809080),new cljs.core.Keyword(null,"package","package",4501809080).cljs$core$IFn$_invoke$arity$1(candidate),new cljs.core.Keyword(null,"location","location",2914947879),new cljs.core.Keyword(null,"location","location",2914947879).cljs$core$IFn$_invoke$arity$1(cljs.core.first.call(null,new cljs.core.Keyword(null,"params","params",4313443576).cljs$core$IFn$_invoke$arity$1(adtType))),new cljs.core.Keyword(null,"doc","doc",1014003882),lt.plugins.elm_light.elm_ast.print_rec.call(null,cljs.core.first.call(null,new cljs.core.Keyword(null,"params","params",4313443576).cljs$core$IFn$_invoke$arity$1(adtType))),new cljs.core.Keyword(null,"module-name","module-name",4067691710),new cljs.core.Keyword(null,"module-name","module-name",4067691710).cljs$core$IFn$_invoke$arity$1(candidate)], null)], null),cljs.core.map.call(null,((function (aliaz,temp__4092__auto__,adtParam,adtCandidate,get_field_def,adtType,adtPattern,fst_destruct_variable){ return (function (p1__22740_SHARP_){return cljs.core.PersistentHashMap.fromArrays.call(null,[new cljs.core.Keyword(null,"value","value",1125876963),new cljs.core.Keyword(null,"candidate","candidate",1522567413),new cljs.core.Keyword(null,"file","file",1017047278),new cljs.core.Keyword(null,"package","package",4501809080),new cljs.core.Keyword(null,"doc","doc",1014003882),new cljs.core.Keyword(null,"location","location",2914947879),new cljs.core.Keyword(null,"module-name","module-name",4067691710)],[[cljs.core.str(new cljs.core.Keyword(null,"value","value",1125876963).cljs$core$IFn$_invoke$arity$1(candidate)),cljs.core.str("."),cljs.core.str(new cljs.core.Keyword(null,"value","value",1125876963).cljs$core$IFn$_invoke$arity$1(adtType)),cljs.core.str("."),cljs.core.str(new cljs.core.Keyword(null,"name","name",1017277949).cljs$core$IFn$_invoke$arity$1(p1__22740_SHARP_))].join(''),[cljs.core.str(aliaz),cljs.core.str("."),cljs.core.str(new cljs.core.Keyword(null,"name","name",1017277949).cljs$core$IFn$_invoke$arity$1(p1__22740_SHARP_))].join(''),new cljs.core.Keyword(null,"file","file",1017047278).cljs$core$IFn$_invoke$arity$1(candidate),new cljs.core.Keyword(null,"package","package",4501809080).cljs$core$IFn$_invoke$arity$1(candidate),new cljs.core.Keyword(null,"signatureRaw","signatureRaw",3837738946).cljs$core$IFn$_invoke$arity$1(p1__22740_SHARP_),new cljs.core.Keyword(null,"location","location",2914947879).cljs$core$IFn$_invoke$arity$1(p1__22740_SHARP_),new cljs.core.Keyword(null,"module-name","module-name",4067691710).cljs$core$IFn$_invoke$arity$1(candidate)]); });})(aliaz,temp__4092__auto__,adtParam,adtCandidate,get_field_def,adtType,adtPattern,fst_destruct_variable)) ,new cljs.core.Keyword(null,"fieldDefs","fieldDefs",2278619290).cljs$core$IFn$_invoke$arity$1(cljs.core.first.call(null,new cljs.core.Keyword(null,"params","params",4313443576).cljs$core$IFn$_invoke$arity$1(adtType))))); } else {return null; } })(),cljs.core.map.call(null,((function (adtParam,adtCandidate,get_field_def,adtType,adtPattern,fst_destruct_variable){ return (function (field){return new cljs.core.PersistentArrayMap(null, 7, [new cljs.core.Keyword(null,"value","value",1125876963),[cljs.core.str(new cljs.core.Keyword(null,"value","value",1125876963).cljs$core$IFn$_invoke$arity$1(candidate)),cljs.core.str("."),cljs.core.str(new cljs.core.Keyword(null,"value","value",1125876963).cljs$core$IFn$_invoke$arity$1(adtType)),cljs.core.str("."),cljs.core.str(new cljs.core.Keyword(null,"name","name",1017277949).cljs$core$IFn$_invoke$arity$1(field))].join(''),new cljs.core.Keyword(null,"candidate","candidate",1522567413),new cljs.core.Keyword(null,"name","name",1017277949).cljs$core$IFn$_invoke$arity$1(field),new cljs.core.Keyword(null,"package","package",4501809080),new cljs.core.Keyword(null,"package","package",4501809080).cljs$core$IFn$_invoke$arity$1(candidate),new cljs.core.Keyword(null,"file","file",1017047278),new cljs.core.Keyword(null,"file","file",1017047278).cljs$core$IFn$_invoke$arity$1(candidate),new cljs.core.Keyword(null,"doc","doc",1014003882),new cljs.core.Keyword(null,"signatureRaw","signatureRaw",3837738946).cljs$core$IFn$_invoke$arity$1(field),new cljs.core.Keyword(null,"location","location",2914947879),new cljs.core.Keyword(null,"location","location",2914947879).cljs$core$IFn$_invoke$arity$1(field),new cljs.core.Keyword(null,"module-name","module-name",4067691710),new cljs.core.Keyword(null,"module-name","module-name",4067691710).cljs$core$IFn$_invoke$arity$1(candidate)], null); });})(adtParam,adtCandidate,get_field_def,adtType,adtPattern,fst_destruct_variable)) ,new cljs.core.Keyword(null,"fieldDefs","fieldDefs",2278619290).cljs$core$IFn$_invoke$arity$1(cljs.core.first.call(null,new cljs.core.Keyword(null,"params","params",4313443576).cljs$core$IFn$_invoke$arity$1(adtType))))):null)); })():null)); }); lt.plugins.elm_light.elm_ast.get_candidate_by_token_loc_aware = (function get_candidate_by_token_loc_aware(token,pos,module,modules){var jump_to_candidates = lt.plugins.elm_light.elm_ast.get_jump_to_candidates.call(null,module,modules);var decl = lt.plugins.elm_light.elm_ast.find_top_level_declaration_by_pos.call(null,pos,module);if(cljs.core.truth_((function (){var and__4872__auto__ = cljs.core._EQ_.call(null,"nameDef",new cljs.core.Keyword(null,"type","type",1017479852).cljs$core$IFn$_invoke$arity$1(decl));if(and__4872__auto__) {return new cljs.core.Keyword(null,"signature","signature",2087488554).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"annotation","annotation",3753828001).cljs$core$IFn$_invoke$arity$1(decl)); } else {return and__4872__auto__; } })())) {return ((function (jump_to_candidates,decl){ return (function (x){var or__4884__auto__ = x;if(cljs.core.truth_(or__4884__auto__)) {return or__4884__auto__; } else {return lt.plugins.elm_light.elm_ast.get_candidate_by_token.call(null,token,module,modules); } });})(jump_to_candidates,decl)) .call(null,cljs.core.first.call(null,cljs.core.filter.call(null,((function (jump_to_candidates,decl){ return (function (p1__22745_SHARP_){return cljs.core._EQ_.call(null,token,new cljs.core.Keyword(null,"candidate","candidate",1522567413).cljs$core$IFn$_invoke$arity$1(p1__22745_SHARP_)); });})(jump_to_candidates,decl)) ,cljs.core.mapcat.call(null,((function (jump_to_candidates,decl){ return (function (param,p__22748){var map__22749 = p__22748;var map__22749__$1 = ((cljs.core.seq_QMARK_.call(null,map__22749))?cljs.core.apply.call(null,cljs.core.hash_map,map__22749):map__22749);var ann = map__22749__$1;var candidate = cljs.core.get.call(null,map__22749__$1,new cljs.core.Keyword(null,"candidate","candidate",1522567413));if((cljs.core._EQ_.call(null,"variable",new cljs.core.Keyword(null,"type","type",1017479852).cljs$core$IFn$_invoke$arity$1(param))) && (cljs.core._EQ_.call(null,"typeAliasDecl",new cljs.core.Keyword(null,"type","type",1017479852).cljs$core$IFn$_invoke$arity$1(candidate)))) {return lt.plugins.elm_light.elm_ast.create_typealias_rec_candidates.call(null,param,candidate); } else {if((cljs.core._EQ_.call(null,"variable",new cljs.core.Keyword(null,"type","type",1017479852).cljs$core$IFn$_invoke$arity$1(param))) && (cljs.core._EQ_.call(null,"typeDecl",new cljs.core.Keyword(null,"type","type",1017479852).cljs$core$IFn$_invoke$arity$1(candidate)))) {return new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [lt.plugins.elm_light.elm_ast.create_param_candidate.call(null,param,candidate)], null); } else {if((cljs.core._EQ_.call(null,"patternRec",new cljs.core.Keyword(null,"type","type",1017479852).cljs$core$IFn$_invoke$arity$1(param))) && (cljs.core._EQ_.call(null,"typeAliasDecl",new cljs.core.Keyword(null,"type","type",1017479852).cljs$core$IFn$_invoke$arity$1(candidate)))) {return lt.plugins.elm_light.elm_ast.create_destructured_type_alias_candidates.call(null,param,candidate); } else {if((cljs.core._EQ_.call(null,"patternBracket",new cljs.core.Keyword(null,"type","type",1017479852).cljs$core$IFn$_invoke$arity$1(param))) && (cljs.core._EQ_.call(null,"typeAliasDecl",new cljs.core.Keyword(null,"type","type",1017479852).cljs$core$IFn$_invoke$arity$1(candidate)))) {return lt.plugins.elm_light.elm_ast.create_bracketed_type_alias_candidates.call(null,param,candidate); } else {if((cljs.core._EQ_.call(null,"patternBracket",new cljs.core.Keyword(null,"type","type",1017479852).cljs$core$IFn$_invoke$arity$1(param))) && (cljs.core._EQ_.call(null,"typeDecl",new cljs.core.Keyword(null,"type","type",1017479852).cljs$core$IFn$_invoke$arity$1(candidate))) && (cljs.core._EQ_.call(null,1,cljs.core.count.call(null,new cljs.core.Keyword(null,"adtDefs","adtDefs",4174585041).cljs$core$IFn$_invoke$arity$1(candidate)))) && (!(lt.plugins.elm_light.elm_ast.in_range_QMARK_.call(null,pos,new cljs.core.Keyword(null,"annotation","annotation",3753828001).cljs$core$IFn$_invoke$arity$1(decl))))) {return lt.plugins.elm_light.elm_ast.create_bracketed_adt_candidates.call(null,param,candidate,module,modules); } else {if(new cljs.core.Keyword(null,"else","else",1017020587)) {return cljs.core.PersistentVector.EMPTY; } else {return null; } } } } } } });})(jump_to_candidates,decl)) ,new cljs.core.Keyword(null,"patterns","patterns",2259909205).cljs$core$IFn$_invoke$arity$1(decl),new cljs.core.Keyword(null,"signature","signature",2087488554).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"annotation","annotation",3753828001).cljs$core$IFn$_invoke$arity$1(lt.plugins.elm_light.elm_ast.enrich_top_level_declaration.call(null,decl,jump_to_candidates))))))); } else {return lt.plugins.elm_light.elm_ast.get_candidate_by_token.call(null,token,module,modules); } }); lt.plugins.elm_light.elm_ast.__GT_pos = (function __GT_pos(ast_pos){return new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"line","line",1017226086),(new cljs.core.Keyword(null,"line","line",1017226086).cljs$core$IFn$_invoke$arity$1(ast_pos) - 1),new cljs.core.Keyword(null,"ch","ch",1013907415),(new cljs.core.Keyword(null,"column","column",3954034376).cljs$core$IFn$_invoke$arity$1(ast_pos) - 1)], null); }); lt.plugins.elm_light.elm_ast.__GT_range = (function __GT_range(location){return new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"start","start",1123661780),lt.plugins.elm_light.elm_ast.__GT_pos.call(null,new cljs.core.Keyword(null,"start","start",1123661780).cljs$core$IFn$_invoke$arity$1(location)),new cljs.core.Keyword(null,"end","end",1014004813),lt.plugins.elm_light.elm_ast.__GT_pos.call(null,new cljs.core.Keyword(null,"end","end",1014004813).cljs$core$IFn$_invoke$arity$1(location))], null); }); lt.plugins.elm_light.elm_ast.in_range_QMARK_ = (function in_range_QMARK_(p__22750,decl){var map__22753 = p__22750;var map__22753__$1 = ((cljs.core.seq_QMARK_.call(null,map__22753))?cljs.core.apply.call(null,cljs.core.hash_map,map__22753):map__22753);var line = cljs.core.get.call(null,map__22753__$1,new cljs.core.Keyword(null,"line","line",1017226086));var ch = cljs.core.get.call(null,map__22753__$1,new cljs.core.Keyword(null,"ch","ch",1013907415));var map__22754 = lt.plugins.elm_light.elm_ast.__GT_range.call(null,new cljs.core.Keyword(null,"location","location",2914947879).cljs$core$IFn$_invoke$arity$1(decl));var map__22754__$1 = ((cljs.core.seq_QMARK_.call(null,map__22754))?cljs.core.apply.call(null,cljs.core.hash_map,map__22754):map__22754);var end = cljs.core.get.call(null,map__22754__$1,new cljs.core.Keyword(null,"end","end",1014004813));var start = cljs.core.get.call(null,map__22754__$1,new cljs.core.Keyword(null,"start","start",1123661780));if(((line < new cljs.core.Keyword(null,"line","line",1017226086).cljs$core$IFn$_invoke$arity$1(start))) || ((line > new cljs.core.Keyword(null,"line","line",1017226086).cljs$core$IFn$_invoke$arity$1(end)))) {return false; } else {if(((cljs.core._EQ_.call(null,new cljs.core.Keyword(null,"line","line",1017226086).cljs$core$IFn$_invoke$arity$1(start),line)) && ((ch < new cljs.core.Keyword(null,"ch","ch",1013907415).cljs$core$IFn$_invoke$arity$1(start)))) || ((cljs.core._EQ_.call(null,new cljs.core.Keyword(null,"line","line",1017226086).cljs$core$IFn$_invoke$arity$1(end),line)) && ((ch > new cljs.core.Keyword(null,"ch","ch",1013907415).cljs$core$IFn$_invoke$arity$1(end))))) {return false; } else {if(new cljs.core.Keyword(null,"else","else",1017020587)) {return true; } else {return null; } } } }); lt.plugins.elm_light.elm_ast.find_top_level_declaration_by_pos = (function() { var find_top_level_declaration_by_pos = null; var find_top_level_declaration_by_pos__2 = (function (pos,module){return cljs.core.first.call(null,cljs.core.filter.call(null,(function (p1__22755_SHARP_){return lt.plugins.elm_light.elm_ast.in_range_QMARK_.call(null,pos,p1__22755_SHARP_); }),new cljs.core.Keyword(null,"declarations","declarations",2554736043).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"ast","ast",1014001140).cljs$core$IFn$_invoke$arity$1(module)))); }); var find_top_level_declaration_by_pos__3 = (function (pos,project_dir,module_file){return find_top_level_declaration_by_pos.call(null,pos,lt.plugins.elm_light.elm_ast.get_module_ast.call(null,project_dir,module_file)); }); find_top_level_declaration_by_pos = function(pos,project_dir,module_file){ switch(arguments.length){ case 2: return find_top_level_declaration_by_pos__2.call(this,pos,project_dir); case 3: return find_top_level_declaration_by_pos__3.call(this,pos,project_dir,module_file); } throw(new Error('Invalid arity: ' + arguments.length)); }; find_top_level_declaration_by_pos.cljs$core$IFn$_invoke$arity$2 = find_top_level_declaration_by_pos__2; find_top_level_declaration_by_pos.cljs$core$IFn$_invoke$arity$3 = find_top_level_declaration_by_pos__3; return find_top_level_declaration_by_pos; })() ; lt.plugins.elm_light.elm_ast.find_import_by_pos = (function() { var find_import_by_pos = null; var find_import_by_pos__2 = (function (pos,module){return cljs.core.first.call(null,cljs.core.filter.call(null,(function (p1__22756_SHARP_){return lt.plugins.elm_light.elm_ast.in_range_QMARK_.call(null,pos,p1__22756_SHARP_); }),new cljs.core.Keyword(null,"imports","imports",2939942112).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"imports","imports",2939942112).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"ast","ast",1014001140).cljs$core$IFn$_invoke$arity$1(module))))); }); var find_import_by_pos__3 = (function (pos,project_dir,module_file){return find_import_by_pos.call(null,pos,lt.plugins.elm_light.elm_ast.get_module_ast.call(null,project_dir,module_file)); }); find_import_by_pos = function(pos,project_dir,module_file){ switch(arguments.length){ case 2: return find_import_by_pos__2.call(this,pos,project_dir); case 3: return find_import_by_pos__3.call(this,pos,project_dir,module_file); } throw(new Error('Invalid arity: ' + arguments.length)); }; find_import_by_pos.cljs$core$IFn$_invoke$arity$2 = find_import_by_pos__2; find_import_by_pos.cljs$core$IFn$_invoke$arity$3 = find_import_by_pos__3; return find_import_by_pos; })() ; /** * For annotated definitions it tries to add extended information * about types for each parameter (ie union types and type aliases) */ lt.plugins.elm_light.elm_ast.enrich_top_level_declaration = (function enrich_top_level_declaration(decl,jump_to_candidates){var get_cand = (function (token){return cljs.core.first.call(null,cljs.core.filter.call(null,(function (p1__22757_SHARP_){return cljs.core.contains_QMARK_.call(null,new cljs.core.Keyword(null,"candidate-tokens","candidate-tokens",3775833238).cljs$core$IFn$_invoke$arity$1(p1__22757_SHARP_),token); }),jump_to_candidates)); });return cljs.core.update_in.call(null,decl,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"annotation","annotation",3753828001),new cljs.core.Keyword(null,"signature","signature",2087488554)], null),((function (get_cand){ return (function (items){return cljs.core.map.call(null,((function (get_cand){ return (function (item){if(cljs.core._EQ_.call(null,"typeAdt",new cljs.core.Keyword(null,"type","type",1017479852).cljs$core$IFn$_invoke$arity$1(item))) {return cljs.core.assoc.call(null,item,new cljs.core.Keyword(null,"candidate","candidate",1522567413),get_cand.call(null,new cljs.core.Keyword(null,"value","value",1125876963).cljs$core$IFn$_invoke$arity$1(item))); } else {return item; } });})(get_cand)) ,items); });})(get_cand)) ); }); lt.plugins.elm_light.elm_ast.get_jump_to_definition = (function get_jump_to_definition(token,pos,module_file,project_file){var temp__4092__auto__ = lt.plugins.elm_light.elm_ast.get_module_ast.call(null,project_file,module_file);if(cljs.core.truth_(temp__4092__auto__)) {var module = temp__4092__auto__;return lt.plugins.elm_light.elm_ast.get_candidate_by_token_loc_aware.call(null,token,pos,module,new cljs.core.Keyword(null,"file-asts","file-asts",3945857876).cljs$core$IFn$_invoke$arity$1(lt.plugins.elm_light.elm_ast.get_project.call(null,project_file))); } else {return null; } }); lt.plugins.elm_light.elm_ast.to_hint = (function to_hint(curr_module_name,candidate){return cljs.core.map.call(null,(function (c_tok){return new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,"type","type",1017479852),new cljs.core.Keyword(null,"type","type",1017479852).cljs$core$IFn$_invoke$arity$1(candidate),new cljs.core.Keyword(null,"candidate","candidate",1522567413),c_tok,new cljs.core.Keyword(null,"module-name","module-name",4067691710),((cljs.core.not_EQ_.call(null,curr_module_name,new cljs.core.Keyword(null,"module-name","module-name",4067691710).cljs$core$IFn$_invoke$arity$1(candidate)))?new cljs.core.Keyword(null,"module-name","module-name",4067691710).cljs$core$IFn$_invoke$arity$1(candidate):null),new cljs.core.Keyword(null,"signature","signature",2087488554),new cljs.core.Keyword(null,"signatureRawSansName","signatureRawSansName",3062006176).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"annotation","annotation",3753828001).cljs$core$IFn$_invoke$arity$1(candidate))], null); }),new cljs.core.Keyword(null,"candidate-tokens","candidate-tokens",3775833238).cljs$core$IFn$_invoke$arity$1(candidate)); }); lt.plugins.elm_light.elm_ast.dot_ex = RegExp("\\.","g"); lt.plugins.elm_light.elm_ast.compare_dots = (function compare_dots(a,b){var num_dots = (function (p1__22758_SHARP_){return cljs.core.count.call(null,p1__22758_SHARP_.match(lt.plugins.elm_light.elm_ast.dot_ex)); });return cljs.core.compare.call(null,num_dots.call(null,a),num_dots.call(null,b)); }); lt.plugins.elm_light.elm_ast.declaration_param_hint_items = (function declaration_param_hint_items(pos,module,jump_to_candidates){var decl = lt.plugins.elm_light.elm_ast.find_top_level_declaration_by_pos.call(null,pos,module);var m_name = ((function (decl){ return (function (p1__22759_SHARP_){if(cljs.core._EQ_.call(null,lt.plugins.elm_light.elm_ast.get_module_name.call(null,module),new cljs.core.Keyword(null,"module-name","module-name",4067691710).cljs$core$IFn$_invoke$arity$1(p1__22759_SHARP_))) {return null; } else {return [cljs.core.str("("),cljs.core.str(new cljs.core.Keyword(null,"value","value",1125876963).cljs$core$IFn$_invoke$arity$1(p1__22759_SHARP_)),cljs.core.str(") "),cljs.core.str(new cljs.core.Keyword(null,"module-name","module-name",4067691710).cljs$core$IFn$_invoke$arity$1(p1__22759_SHARP_))].join(''); } });})(decl)) ;var get_jump_to_by_token = ((function (decl,m_name){ return (function (tok){return cljs.core.first.call(null,cljs.core.filter.call(null,((function (decl,m_name){ return (function (p1__22760_SHARP_){return cljs.core.contains_QMARK_.call(null,new cljs.core.Keyword(null,"candidate-tokens","candidate-tokens",3775833238).cljs$core$IFn$_invoke$arity$1(p1__22760_SHARP_),tok); });})(decl,m_name)) ,jump_to_candidates)); });})(decl,m_name)) ;var mod_name = ((cljs.core._EQ_.call(null,new cljs.core.Keyword(null,"module-name","module-name",4067691710).cljs$core$IFn$_invoke$arity$1(lt.plugins.elm_light.elm_ast._PERCENT_),lt.plugins.elm_light.elm_ast.get_module_name.call(null,module)))?null:[cljs.core.str("("),cljs.core.str(new cljs.core.Keyword(null,"value","value",1125876963).cljs$core$IFn$_invoke$arity$1(lt.plugins.elm_light.elm_ast._PERCENT_)),cljs.core.str(") "),cljs.core.str(new cljs.core.Keyword(null,"module-name","module-name",4067691710).cljs$core$IFn$_invoke$arity$1(lt.plugins.elm_light.elm_ast._PERCENT_))].join(''));if(cljs.core.truth_((function (){var and__4872__auto__ = cljs.core._EQ_.call(null,"nameDef",new cljs.core.Keyword(null,"type","type",1017479852).cljs$core$IFn$_invoke$arity$1(decl));if(and__4872__auto__) {return new cljs.core.Keyword(null,"signature","signature",2087488554).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"annotation","annotation",3753828001).cljs$core$IFn$_invoke$arity$1(decl)); } else {return and__4872__auto__; } })())) {return cljs.core.mapcat.call(null,((function (decl,m_name,get_jump_to_by_token,mod_name){ return (function (param,p__22776){var map__22777 = p__22776;var map__22777__$1 = ((cljs.core.seq_QMARK_.call(null,map__22777))?cljs.core.apply.call(null,cljs.core.hash_map,map__22777):map__22777);var ann = map__22777__$1;var candidate = cljs.core.get.call(null,map__22777__$1,new cljs.core.Keyword(null,"candidate","candidate",1522567413));if((cljs.core._EQ_.call(null,"variable",new cljs.core.Keyword(null,"type","type",1017479852).cljs$core$IFn$_invoke$arity$1(param))) && (cljs.core._EQ_.call(null,"typeRec",new cljs.core.Keyword(null,"type","type",1017479852).cljs$core$IFn$_invoke$arity$1(ann)))) {return cljs.core.cons.call(null,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"candidate","candidate",1522567413),new cljs.core.Keyword(null,"value","value",1125876963).cljs$core$IFn$_invoke$arity$1(param)], null),cljs.core.map.call(null,((function (map__22777,map__22777__$1,ann,candidate,decl,m_name,get_jump_to_by_token,mod_name){ return (function (p1__22761_SHARP_){return cljs.core.PersistentHashMap.fromArrays.call(null,[new cljs.core.Keyword(null,"candidate","candidate",1522567413)],[[cljs.core.str(new cljs.core.Keyword(null,"value","value",1125876963).cljs$core$IFn$_invoke$arity$1(param)),cljs.core.str("."),cljs.core.str(new cljs.core.Keyword(null,"name","name",1017277949).cljs$core$IFn$_invoke$arity$1(p1__22761_SHARP_))].join('')]); });})(map__22777,map__22777__$1,ann,candidate,decl,m_name,get_jump_to_by_token,mod_name)) ,new cljs.core.Keyword(null,"fieldDefs","fieldDefs",2278619290).cljs$core$IFn$_invoke$arity$1(ann))); } else {if((cljs.core._EQ_.call(null,"patternRec",new cljs.core.Keyword(null,"type","type",1017479852).cljs$core$IFn$_invoke$arity$1(param))) && (cljs.core._EQ_.call(null,"typeRec",new cljs.core.Keyword(null,"type","type",1017479852).cljs$core$IFn$_invoke$arity$1(ann)))) {return cljs.core.map.call(null,((function (map__22777,map__22777__$1,ann,candidate,decl,m_name,get_jump_to_by_token,mod_name){ return (function (p1__22762_SHARP_){return cljs.core.PersistentHashMap.fromArrays.call(null,[new cljs.core.Keyword(null,"candidate","candidate",1522567413)],[new cljs.core.Keyword(null,"value","value",1125876963).cljs$core$IFn$_invoke$arity$1(p1__22762_SHARP_)]); });})(map__22777,map__22777__$1,ann,candidate,decl,m_name,get_jump_to_by_token,mod_name)) ,new cljs.core.Keyword(null,"patterns","patterns",2259909205).cljs$core$IFn$_invoke$arity$1(param)); } else {if((cljs.core._EQ_.call(null,"patternBracket",new cljs.core.Keyword(null,"type","type",1017479852).cljs$core$IFn$_invoke$arity$1(param))) && (cljs.core._EQ_.call(null,"typeRec",new cljs.core.Keyword(null,"type","type",1017479852).cljs$core$IFn$_invoke$arity$1(ann)))) {return cljs.core.concat.call(null,(function (){var temp__4092__auto__ = new cljs.core.Keyword(null,"alias","alias",1106807234).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"pattern","pattern",4517781250).cljs$core$IFn$_invoke$arity$1(param));if(cljs.core.truth_(temp__4092__auto__)) {var aliaz = temp__4092__auto__;return cljs.core.concat.call(null,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"candidate","candidate",1522567413),aliaz], null)], null),cljs.core.map.call(null,((function (aliaz,temp__4092__auto__,map__22777,map__22777__$1,ann,candidate,decl,m_name,get_jump_to_by_token,mod_name){ return (function (p1__22763_SHARP_){return cljs.core.PersistentHashMap.fromArrays.call(null,[new cljs.core.Keyword(null,"candidate","candidate",1522567413)],[[cljs.core.str(aliaz),cljs.core.str("."),cljs.core.str(new cljs.core.Keyword(null,"name","name",1017277949).cljs$core$IFn$_invoke$arity$1(p1__22763_SHARP_))].join('')]); });})(aliaz,temp__4092__auto__,map__22777,map__22777__$1,ann,candidate,decl,m_name,get_jump_to_by_token,mod_name)) ,new cljs.core.Keyword(null,"fieldDefs","fieldDefs",2278619290).cljs$core$IFn$_invoke$arity$1(ann))); } else {return null; } })(),cljs.core.map.call(null,((function (map__22777,map__22777__$1,ann,candidate,decl,m_name,get_jump_to_by_token,mod_name){ return (function (p1__22764_SHARP_){return cljs.core.PersistentHashMap.fromArrays.call(null,[new cljs.core.Keyword(null,"candidate","candidate",1522567413)],[new cljs.core.Keyword(null,"value","value",1125876963).cljs$core$IFn$_invoke$arity$1(p1__22764_SHARP_)]); });})(map__22777,map__22777__$1,ann,candidate,decl,m_name,get_jump_to_by_token,mod_name)) ,new cljs.core.Keyword(null,"patterns","patterns",2259909205).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"value","value",1125876963).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"pattern","pattern",4517781250).cljs$core$IFn$_invoke$arity$1(param))))); } else {if((cljs.core._EQ_.call(null,"variable",new cljs.core.Keyword(null,"type","type",1017479852).cljs$core$IFn$_invoke$arity$1(param))) && (cljs.core._EQ_.call(null,"typeAliasDecl",new cljs.core.Keyword(null,"type","type",1017479852).cljs$core$IFn$_invoke$arity$1(candidate)))) {return cljs.core.cons.call(null,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"candidate","candidate",1522567413),new cljs.core.Keyword(null,"value","value",1125876963).cljs$core$IFn$_invoke$arity$1(param),new cljs.core.Keyword(null,"module-name","module-name",4067691710),mod_name.call(null,candidate)], null),cljs.core.map.call(null,((function (map__22777,map__22777__$1,ann,candidate,decl,m_name,get_jump_to_by_token,mod_name){ return (function (p1__22765_SHARP_){return cljs.core.PersistentHashMap.fromArrays.call(null,[new cljs.core.Keyword(null,"candidate","candidate",1522567413),new cljs.core.Keyword(null,"module-name","module-name",4067691710)],[[cljs.core.str(new cljs.core.Keyword(null,"value","value",1125876963).cljs$core$IFn$_invoke$arity$1(param)),cljs.core.str("."),cljs.core.str(new cljs.core.Keyword(null,"name","name",1017277949).cljs$core$IFn$_invoke$arity$1(p1__22765_SHARP_))].join(''),mod_name.call(null,candidate)]); });})(map__22777,map__22777__$1,ann,candidate,decl,m_name,get_jump_to_by_token,mod_name)) ,new cljs.core.Keyword(null,"fieldDefs","fieldDefs",2278619290).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"tipe","tipe",1017464476).cljs$core$IFn$_invoke$arity$1(candidate)))); } else {if((cljs.core._EQ_.call(null,"patternRec",new cljs.core.Keyword(null,"type","type",1017479852).cljs$core$IFn$_invoke$arity$1(param))) && (cljs.core._EQ_.call(null,"typeAliasDecl",new cljs.core.Keyword(null,"type","type",1017479852).cljs$core$IFn$_invoke$arity$1(candidate)))) {return cljs.core.map.call(null,((function (map__22777,map__22777__$1,ann,candidate,decl,m_name,get_jump_to_by_token,mod_name){ return (function (pattern){return new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"candidate","candidate",1522567413),new cljs.core.Keyword(null,"value","value",1125876963).cljs$core$IFn$_invoke$arity$1(pattern),new cljs.core.Keyword(null,"module-name","module-name",4067691710),mod_name.call(null,candidate)], null); });})(map__22777,map__22777__$1,ann,candidate,decl,m_name,get_jump_to_by_token,mod_name)) ,new cljs.core.Keyword(null,"patterns","patterns",2259909205).cljs$core$IFn$_invoke$arity$1(param)); } else {if((cljs.core._EQ_.call(null,"patternBracket",new cljs.core.Keyword(null,"type","type",1017479852).cljs$core$IFn$_invoke$arity$1(param))) && (cljs.core._EQ_.call(null,"typeAliasDecl",new cljs.core.Keyword(null,"type","type",1017479852).cljs$core$IFn$_invoke$arity$1(candidate)))) {var aliaz = new cljs.core.Keyword(null,"alias","alias",1106807234).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"pattern","pattern",4517781250).cljs$core$IFn$_invoke$arity$1(param));return cljs.core.concat.call(null,(cljs.core.truth_(aliaz)?cljs.core.concat.call(null,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"candidate","candidate",1522567413),aliaz,new cljs.core.Keyword(null,"module-name","module-name",4067691710),mod_name.call(null,candidate)], null)], null),cljs.core.map.call(null,((function (aliaz,map__22777,map__22777__$1,ann,candidate,decl,m_name,get_jump_to_by_token,mod_name){ return (function (p1__22766_SHARP_){return cljs.core.PersistentHashMap.fromArrays.call(null,[new cljs.core.Keyword(null,"candidate","candidate",1522567413),new cljs.core.Keyword(null,"module-name","module-name",4067691710)],[[cljs.core.str(aliaz),cljs.core.str("."),cljs.core.str(new cljs.core.Keyword(null,"name","name",1017277949).cljs$core$IFn$_invoke$arity$1(p1__22766_SHARP_))].join(''),mod_name.call(null,candidate)]); });})(aliaz,map__22777,map__22777__$1,ann,candidate,decl,m_name,get_jump_to_by_token,mod_name)) ,new cljs.core.Keyword(null,"fieldDefs","fieldDefs",2278619290).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"tipe","tipe",1017464476).cljs$core$IFn$_invoke$arity$1(candidate)))):null),cljs.core.map.call(null,((function (aliaz,map__22777,map__22777__$1,ann,candidate,decl,m_name,get_jump_to_by_token,mod_name){ return (function (p1__22767_SHARP_){return cljs.core.PersistentHashMap.fromArrays.call(null,[new cljs.core.Keyword(null,"candidate","candidate",1522567413),new cljs.core.Keyword(null,"module-name","module-name",4067691710)],[new cljs.core.Keyword(null,"value","value",1125876963).cljs$core$IFn$_invoke$arity$1(p1__22767_SHARP_),mod_name.call(null,candidate)]); });})(aliaz,map__22777,map__22777__$1,ann,candidate,decl,m_name,get_jump_to_by_token,mod_name)) ,new cljs.core.Keyword(null,"patterns","patterns",2259909205).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"value","value",1125876963).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"pattern","pattern",4517781250).cljs$core$IFn$_invoke$arity$1(param))))); } else {if((cljs.core._EQ_.call(null,"patternBracket",new cljs.core.Keyword(null,"type","type",1017479852).cljs$core$IFn$_invoke$arity$1(param))) && (cljs.core._EQ_.call(null,"typeDecl",new cljs.core.Keyword(null,"type","type",1017479852).cljs$core$IFn$_invoke$arity$1(candidate))) && (cljs.core._EQ_.call(null,1,cljs.core.count.call(null,new cljs.core.Keyword(null,"adtDefs","adtDefs",4174585041).cljs$core$IFn$_invoke$arity$1(candidate)))) && (!(lt.plugins.elm_light.elm_ast.in_range_QMARK_.call(null,pos,new cljs.core.Keyword(null,"annotation","annotation",3753828001).cljs$core$IFn$_invoke$arity$1(decl))))) {var pattern_param = cljs.core.first.call(null,new cljs.core.Keyword(null,"variables","variables",931426537).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"value","value",1125876963).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"pattern","pattern",4517781250).cljs$core$IFn$_invoke$arity$1(param))));var adtType = cljs.core.first.call(null,new cljs.core.Keyword(null,"adtDefs","adtDefs",4174585041).cljs$core$IFn$_invoke$arity$1(candidate));var adtPattern = new cljs.core.Keyword(null,"pattern","pattern",4517781250).cljs$core$IFn$_invoke$arity$1(param);var adtParam = cljs.core.first.call(null,new cljs.core.Keyword(null,"params","params",4313443576).cljs$core$IFn$_invoke$arity$1(adtType));var adtCandidate = get_jump_to_by_token.call(null,new cljs.core.Keyword(null,"value","value",1125876963).cljs$core$IFn$_invoke$arity$1(adtParam));return cljs.core.concat.call(null,(function (){var temp__4092__auto__ = new cljs.core.Keyword(null,"alias","alias",1106807234).cljs$core$IFn$_invoke$arity$1(adtPattern);if(cljs.core.truth_(temp__4092__auto__)) {var aliaz = temp__4092__auto__;return new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"candidate","candidate",1522567413),aliaz,new cljs.core.Keyword(null,"module-name","module-name",4067691710),mod_name.call(null,candidate)], null)], null); } else {return null; } })(),(((cljs.core._EQ_.call(null,"variable",new cljs.core.Keyword(null,"type","type",1017479852).cljs$core$IFn$_invoke$arity$1(pattern_param))) && ((new cljs.core.Keyword(null,"type","type",1017479852).cljs$core$IFn$_invoke$arity$1(adtCandidate) == null)))?new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"candidate","candidate",1522567413),new cljs.core.Keyword(null,"value","value",1125876963).cljs$core$IFn$_invoke$arity$1(pattern_param)], null)], null):null),(((cljs.core._EQ_.call(null,"variable",new cljs.core.Keyword(null,"type","type",1017479852).cljs$core$IFn$_invoke$arity$1(pattern_param))) && (cljs.core._EQ_.call(null,"typeRec",new cljs.core.Keyword(null,"type","type",1017479852).cljs$core$IFn$_invoke$arity$1(adtParam))))?cljs.core.map.call(null,((function (pattern_param,adtType,adtPattern,adtParam,adtCandidate,map__22777,map__22777__$1,ann,candidate,decl,m_name,get_jump_to_by_token,mod_name){ return (function (p1__22768_SHARP_){return cljs.core.PersistentHashMap.fromArrays.call(null,[new cljs.core.Keyword(null,"candidate","candidate",1522567413),new cljs.core.Keyword(null,"module-name","module-name",4067691710)],[[cljs.core.str(new cljs.core.Keyword(null,"value","value",1125876963).cljs$core$IFn$_invoke$arity$1(pattern_param)),cljs.core.str("."),cljs.core.str(new cljs.core.Keyword(null,"name","name",1017277949).cljs$core$IFn$_invoke$arity$1(p1__22768_SHARP_))].join(''),mod_name.call(null,candidate)]); });})(pattern_param,adtType,adtPattern,adtParam,adtCandidate,map__22777,map__22777__$1,ann,candidate,decl,m_name,get_jump_to_by_token,mod_name)) ,new cljs.core.Keyword(null,"fieldDefs","fieldDefs",2278619290).cljs$core$IFn$_invoke$arity$1(adtParam)):null),(((cljs.core._EQ_.call(null,"variable",new cljs.core.Keyword(null,"type","type",1017479852).cljs$core$IFn$_invoke$arity$1(pattern_param))) && (cljs.core._EQ_.call(null,"typeAliasDecl",new cljs.core.Keyword(null,"type","type",1017479852).cljs$core$IFn$_invoke$arity$1(adtCandidate))))?cljs.core.map.call(null,((function (pattern_param,adtType,adtPattern,adtParam,adtCandidate,map__22777,map__22777__$1,ann,candidate,decl,m_name,get_jump_to_by_token,mod_name){ return (function (p1__22769_SHARP_){return cljs.core.PersistentHashMap.fromArrays.call(null,[new cljs.core.Keyword(null,"candidate","candidate",1522567413),new cljs.core.Keyword(null,"module-name","module-name",4067691710)],[[cljs.core.str(new cljs.core.Keyword(null,"value","value",1125876963).cljs$core$IFn$_invoke$arity$1(pattern_param)),cljs.core.str("."),cljs.core.str(new cljs.core.Keyword(null,"name","name",1017277949).cljs$core$IFn$_invoke$arity$1(p1__22769_SHARP_))].join(''),mod_name.call(null,candidate)]); });})(pattern_param,adtType,adtPattern,adtParam,adtCandidate,map__22777,map__22777__$1,ann,candidate,decl,m_name,get_jump_to_by_token,mod_name)) ,new cljs.core.Keyword(null,"fieldDefs","fieldDefs",2278619290).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"tipe","tipe",1017464476).cljs$core$IFn$_invoke$arity$1(adtCandidate))):null),((cljs.core._EQ_.call(null,"patternRec",new cljs.core.Keyword(null,"type","type",1017479852).cljs$core$IFn$_invoke$arity$1(pattern_param)))?cljs.core.map.call(null,((function (pattern_param,adtType,adtPattern,adtParam,adtCandidate,map__22777,map__22777__$1,ann,candidate,decl,m_name,get_jump_to_by_token,mod_name){ return (function (p1__22770_SHARP_){return cljs.core.PersistentHashMap.fromArrays.call(null,[new cljs.core.Keyword(null,"candidate","candidate",1522567413),new cljs.core.Keyword(null,"module-name","module-name",4067691710)],[new cljs.core.Keyword(null,"value","value",1125876963).cljs$core$IFn$_invoke$arity$1(p1__22770_SHARP_),mod_name.call(null,candidate)]); });})(pattern_param,adtType,adtPattern,adtParam,adtCandidate,map__22777,map__22777__$1,ann,candidate,decl,m_name,get_jump_to_by_token,mod_name)) ,new cljs.core.Keyword(null,"patterns","patterns",2259909205).cljs$core$IFn$_invoke$arity$1(pattern_param)):null),((cljs.core._EQ_.call(null,"patternBracket",new cljs.core.Keyword(null,"type","type",1017479852).cljs$core$IFn$_invoke$arity$1(pattern_param)))?((cljs.core._EQ_.call(null,"patternRec",new cljs.core.Keyword(null,"type","type",1017479852).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"value","value",1125876963).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"pattern","pattern",4517781250).cljs$core$IFn$_invoke$arity$1(pattern_param)))))?cljs.core.concat.call(null,(function (){var temp__4092__auto__ = new cljs.core.Keyword(null,"alias","alias",1106807234).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"pattern","pattern",4517781250).cljs$core$IFn$_invoke$arity$1(pattern_param));if(cljs.core.truth_(temp__4092__auto__)) {var aliaz = temp__4092__auto__;return cljs.core.concat.call(null,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"candidate","candidate",1522567413),aliaz,new cljs.core.Keyword(null,"module-name","module-name",4067691710),(cljs.core.truth_(adtCandidate)?mod_name.call(null,adtCandidate):null)], null)], null),(cljs.core.truth_(adtCandidate)?cljs.core.map.call(null,((function (aliaz,temp__4092__auto__,pattern_param,adtType,adtPattern,adtParam,adtCandidate,map__22777,map__22777__$1,ann,candidate,decl,m_name,get_jump_to_by_token,mod_name){ return (function (p1__22771_SHARP_){return cljs.core.PersistentHashMap.fromArrays.call(null,[new cljs.core.Keyword(null,"candidate","candidate",1522567413),new cljs.core.Keyword(null,"module-name","module-name",4067691710)],[[cljs.core.str(aliaz),cljs.core.str("."),cljs.core.str(new cljs.core.Keyword(null,"name","name",1017277949).cljs$core$IFn$_invoke$arity$1(p1__22771_SHARP_))].join(''),mod_name.call(null,adtCandidate)]); });})(aliaz,temp__4092__auto__,pattern_param,adtType,adtPattern,adtParam,adtCandidate,map__22777,map__22777__$1,ann,candidate,decl,m_name,get_jump_to_by_token,mod_name)) ,new cljs.core.Keyword(null,"fieldDefs","fieldDefs",2278619290).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"tipe","tipe",1017464476).cljs$core$IFn$_invoke$arity$1(adtCandidate))):null),((cljs.core._EQ_.call(null,"typeRec",new cljs.core.Keyword(null,"type","type",1017479852).cljs$core$IFn$_invoke$arity$1(adtParam)))?cljs.core.map.call(null,((function (aliaz,temp__4092__auto__,pattern_param,adtType,adtPattern,adtParam,adtCandidate,map__22777,map__22777__$1,ann,candidate,decl,m_name,get_jump_to_by_token,mod_name){ return (function (p1__22772_SHARP_){return cljs.core.PersistentHashMap.fromArrays.call(null,[new cljs.core.Keyword(null,"candidate","candidate",1522567413),new cljs.core.Keyword(null,"module-name","module-name",4067691710)],[[cljs.core.str(aliaz),cljs.core.str("."),cljs.core.str(new cljs.core.Keyword(null,"name","name",1017277949).cljs$core$IFn$_invoke$arity$1(p1__22772_SHARP_))].join(''),mod_name.call(null,candidate)]); });})(aliaz,temp__4092__auto__,pattern_param,adtType,adtPattern,adtParam,adtCandidate,map__22777,map__22777__$1,ann,candidate,decl,m_name,get_jump_to_by_token,mod_name)) ,new cljs.core.Keyword(null,"fieldDefs","fieldDefs",2278619290).cljs$core$IFn$_invoke$arity$1(adtParam)):null)); } else {return null; } })(),cljs.core.map.call(null,((function (pattern_param,adtType,adtPattern,adtParam,adtCandidate,map__22777,map__22777__$1,ann,candidate,decl,m_name,get_jump_to_by_token,mod_name){ return (function (p1__22773_SHARP_){return cljs.core.PersistentHashMap.fromArrays.call(null,[new cljs.core.Keyword(null,"candidate","candidate",1522567413)],[new cljs.core.Keyword(null,"value","value",1125876963).cljs$core$IFn$_invoke$arity$1(p1__22773_SHARP_)]); });})(pattern_param,adtType,adtPattern,adtParam,adtCandidate,map__22777,map__22777__$1,ann,candidate,decl,m_name,get_jump_to_by_token,mod_name)) ,new cljs.core.Keyword(null,"patterns","patterns",2259909205).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"value","value",1125876963).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"pattern","pattern",4517781250).cljs$core$IFn$_invoke$arity$1(pattern_param))))):null):null)); } else {if(cljs.core._EQ_.call(null,"variable",new cljs.core.Keyword(null,"type","type",1017479852).cljs$core$IFn$_invoke$arity$1(param))) {return new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"candidate","candidate",1522567413),new cljs.core.Keyword(null,"value","value",1125876963).cljs$core$IFn$_invoke$arity$1(param),new cljs.core.Keyword(null,"module-name","module-name",4067691710),m_name.call(null,candidate)], null)], null); } else {if(new cljs.core.Keyword(null,"else","else",1017020587)) {return cljs.core.PersistentVector.EMPTY; } else {return null; } } } } } } } } } });})(decl,m_name,get_jump_to_by_token,mod_name)) ,new cljs.core.Keyword(null,"patterns","patterns",2259909205).cljs$core$IFn$_invoke$arity$1(decl),new cljs.core.Keyword(null,"signature","signature",2087488554).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"annotation","annotation",3753828001).cljs$core$IFn$_invoke$arity$1(lt.plugins.elm_light.elm_ast.enrich_top_level_declaration.call(null,decl,jump_to_candidates)))); } else {return cljs.core.PersistentVector.EMPTY; } }); lt.plugins.elm_light.elm_ast.declarations_hints = (function declarations_hints(p__22780,module,modules){var map__22782 = p__22780;var map__22782__$1 = ((cljs.core.seq_QMARK_.call(null,map__22782))?cljs.core.apply.call(null,cljs.core.hash_map,map__22782):map__22782);var pos = cljs.core.get.call(null,map__22782__$1,new cljs.core.Keyword(null,"pos","pos",1014015430));var token = cljs.core.get.call(null,map__22782__$1,new cljs.core.Keyword(null,"token","token",1124445547));var jump_to_candidates = lt.plugins.elm_light.elm_ast.get_jump_to_candidates.call(null,module,modules);return cljs.core.sort.call(null,((function (jump_to_candidates,map__22782,map__22782__$1,pos,token){ return (function (a,b){var mod_sort = lt.plugins.elm_light.elm_ast.compare_dots.call(null,new cljs.core.Keyword(null,"candidate","candidate",1522567413).cljs$core$IFn$_invoke$arity$1(a),new cljs.core.Keyword(null,"candidate","candidate",1522567413).cljs$core$IFn$_invoke$arity$1(b));if(cljs.core._EQ_.call(null,0,mod_sort)) {return new cljs.core.Keyword(null,"candidate","candidate",1522567413).cljs$core$IFn$_invoke$arity$1(a).localeCompare(new cljs.core.Keyword(null,"candidate","candidate",1522567413).cljs$core$IFn$_invoke$arity$1(b)); } else {return mod_sort; } });})(jump_to_candidates,map__22782,map__22782__$1,pos,token)) ,cljs.core.filter.call(null,((function (jump_to_candidates,map__22782,map__22782__$1,pos,token){ return (function (p1__22779_SHARP_){return cljs.core._EQ_.call(null,0,new cljs.core.Keyword(null,"candidate","candidate",1522567413).cljs$core$IFn$_invoke$arity$1(p1__22779_SHARP_).indexOf(token)); });})(jump_to_candidates,map__22782,map__22782__$1,pos,token)) ,cljs.core.concat.call(null,lt.plugins.elm_light.elm_ast.declaration_param_hint_items.call(null,pos,module,jump_to_candidates),cljs.core.mapcat.call(null,cljs.core.partial.call(null,lt.plugins.elm_light.elm_ast.to_hint,lt.plugins.elm_light.elm_ast.get_module_name.call(null,module)),cljs.core.filter.call(null,((function (jump_to_candidates,map__22782,map__22782__$1,pos,token){ return (function (decl){return cljs.core.some.call(null,((function (jump_to_candidates,map__22782,map__22782__$1,pos,token){ return (function (p1__22778_SHARP_){return cljs.core._EQ_.call(null,0,p1__22778_SHARP_.indexOf(token)); });})(jump_to_candidates,map__22782,map__22782__$1,pos,token)) ,new cljs.core.Keyword(null,"candidate-tokens","candidate-tokens",3775833238).cljs$core$IFn$_invoke$arity$1(decl)); });})(jump_to_candidates,map__22782,map__22782__$1,pos,token)) ,jump_to_candidates))))); }); lt.plugins.elm_light.elm_ast.import_hints = (function import_hints(p__22789,imp,mod_header,modules){var map__22791 = p__22789;var map__22791__$1 = ((cljs.core.seq_QMARK_.call(null,map__22791))?cljs.core.apply.call(null,cljs.core.hash_map,map__22791):map__22791);var pos = cljs.core.get.call(null,map__22791__$1,new cljs.core.Keyword(null,"pos","pos",1014015430));var token = cljs.core.get.call(null,map__22791__$1,new cljs.core.Keyword(null,"token","token",1124445547));var curr_exports = cljs.core.set.call(null,cljs.core.map.call(null,new cljs.core.Keyword(null,"value","value",1125876963),new cljs.core.Keyword(null,"exports","exports",3999815345).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"exports","exports",3999815345).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"exposing","exposing",3382854387).cljs$core$IFn$_invoke$arity$1(imp)))));var existing_import_names = cljs.core.set.call(null,cljs.core.map.call(null,new cljs.core.Keyword(null,"value","value",1125876963),new cljs.core.Keyword(null,"imports","imports",2939942112).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"imports","imports",2939942112).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"ast","ast",1014001140).cljs$core$IFn$_invoke$arity$1(mod_header)))));if((cljs.core.not.call(null,new cljs.core.Keyword(null,"alias","alias",1106807234).cljs$core$IFn$_invoke$arity$1(imp))) && (cljs.core.not.call(null,cljs.core.seq.call(null,new cljs.core.Keyword(null,"exports","exports",3999815345).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"exposing","exposing",3382854387).cljs$core$IFn$_invoke$arity$1(imp)))))) {return cljs.core.sort_by.call(null,new cljs.core.Keyword(null,"candidate","candidate",1522567413),cljs.core.map.call(null,((function (curr_exports,existing_import_names,map__22791,map__22791__$1,pos,token){ return (function (p1__22785_SHARP_){return cljs.core.PersistentHashMap.fromArrays.call(null,[new cljs.core.Keyword(null,"candidate","candidate",1522567413)],[new cljs.core.Keyword(null,"value","value",1125876963).cljs$core$IFn$_invoke$arity$1(p1__22785_SHARP_)]); });})(curr_exports,existing_import_names,map__22791,map__22791__$1,pos,token)) ,cljs.core.filter.call(null,((function (curr_exports,existing_import_names,map__22791,map__22791__$1,pos,token){ return (function (p1__22784_SHARP_){return (cljs.core._EQ_.call(null,0,new cljs.core.Keyword(null,"value","value",1125876963).cljs$core$IFn$_invoke$arity$1(p1__22784_SHARP_).indexOf(token))) && (!(cljs.core._EQ_.call(null,lt.plugins.elm_light.elm_ast.get_module_name.call(null,mod_header),new cljs.core.Keyword(null,"value","value",1125876963).cljs$core$IFn$_invoke$arity$1(p1__22784_SHARP_)))) && (!(cljs.core.contains_QMARK_.call(null,existing_import_names,new cljs.core.Keyword(null,"value","value",1125876963).cljs$core$IFn$_invoke$arity$1(p1__22784_SHARP_)))); });})(curr_exports,existing_import_names,map__22791,map__22791__$1,pos,token)) ,cljs.core.filter.call(null,cljs.core.identity,cljs.core.map.call(null,((function (curr_exports,existing_import_names,map__22791,map__22791__$1,pos,token){ return (function (p1__22783_SHARP_){return new cljs.core.Keyword(null,"moduleDeclaration","moduleDeclaration",1240624864).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"ast","ast",1014001140).cljs$core$IFn$_invoke$arity$1(p1__22783_SHARP_)); });})(curr_exports,existing_import_names,map__22791,map__22791__$1,pos,token)) ,modules))))); } else {if((cljs.core.seq.call(null,new cljs.core.Keyword(null,"exports","exports",3999815345).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"exposing","exposing",3382854387).cljs$core$IFn$_invoke$arity$1(imp)))) && (lt.plugins.elm_light.elm_ast.in_range_QMARK_.call(null,pos,new cljs.core.Keyword(null,"exports","exports",3999815345).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"exposing","exposing",3382854387).cljs$core$IFn$_invoke$arity$1(imp))))) {return cljs.core.map.call(null,((function (curr_exports,existing_import_names,map__22791,map__22791__$1,pos,token){ return (function (p1__22788_SHARP_){return cljs.core.PersistentHashMap.fromArrays.call(null,[new cljs.core.Keyword(null,"candidate","candidate",1522567413)],[p1__22788_SHARP_]); });})(curr_exports,existing_import_names,map__22791,map__22791__$1,pos,token)) ,cljs.core.sort.call(null,cljs.core.filter.call(null,((function (curr_exports,existing_import_names,map__22791,map__22791__$1,pos,token){ return (function (p1__22787_SHARP_){return (cljs.core._EQ_.call(null,0,p1__22787_SHARP_.indexOf(token))) && ((cljs.core._EQ_.call(null,token,p1__22787_SHARP_)) || (!(cljs.core.contains_QMARK_.call(null,curr_exports,p1__22787_SHARP_)))); });})(curr_exports,existing_import_names,map__22791,map__22791__$1,pos,token)) ,cljs.core.map.call(null,new cljs.core.Keyword(null,"value","value",1125876963),lt.plugins.elm_light.elm_ast.get_exposed_declarations.call(null,cljs.core.first.call(null,cljs.core.filter.call(null,((function (curr_exports,existing_import_names,map__22791,map__22791__$1,pos,token){ return (function (p1__22786_SHARP_){return cljs.core._EQ_.call(null,new cljs.core.Keyword(null,"value","value",1125876963).cljs$core$IFn$_invoke$arity$1(imp),new cljs.core.Keyword(null,"value","value",1125876963).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"moduleDeclaration","moduleDeclaration",1240624864).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"ast","ast",1014001140).cljs$core$IFn$_invoke$arity$1(p1__22786_SHARP_)))); });})(curr_exports,existing_import_names,map__22791,map__22791__$1,pos,token)) ,modules))))))); } else {if(new cljs.core.Keyword(null,"else","else",1017020587)) {return cljs.core.PersistentVector.EMPTY; } else {return null; } } } }); /** * Provides hints when cursor inside exposing parens. * Pls note that mod-header is the latest and greatest (if current editor content parses ok) */ lt.plugins.elm_light.elm_ast.module_header_hints = (function module_header_hints(p__22794,mod_header,module){var map__22796 = p__22794;var map__22796__$1 = ((cljs.core.seq_QMARK_.call(null,map__22796))?cljs.core.apply.call(null,cljs.core.hash_map,map__22796):map__22796);var pos = cljs.core.get.call(null,map__22796__$1,new cljs.core.Keyword(null,"pos","pos",1014015430));var token = cljs.core.get.call(null,map__22796__$1,new cljs.core.Keyword(null,"token","token",1124445547));var exposing = new cljs.core.Keyword(null,"exposing","exposing",3382854387).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"moduleDeclaration","moduleDeclaration",1240624864).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"ast","ast",1014001140).cljs$core$IFn$_invoke$arity$1(mod_header)));var exports_container = new cljs.core.Keyword(null,"exports","exports",3999815345).cljs$core$IFn$_invoke$arity$1(exposing);var curr_exports = cljs.core.set.call(null,lt.plugins.elm_light.elm_ast.extract_exports.call(null,exposing));var decls = new cljs.core.Keyword(null,"declarations","declarations",2554736043).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"ast","ast",1014001140).cljs$core$IFn$_invoke$arity$1(module));if(lt.plugins.elm_light.elm_ast.in_range_QMARK_.call(null,pos,exports_container)) {return cljs.core.map.call(null,((function (exposing,exports_container,curr_exports,decls,map__22796,map__22796__$1,pos,token){ return (function (p1__22793_SHARP_){return cljs.core.PersistentHashMap.fromArrays.call(null,[new cljs.core.Keyword(null,"candidate","candidate",1522567413)],[p1__22793_SHARP_]); });})(exposing,exports_container,curr_exports,decls,map__22796,map__22796__$1,pos,token)) ,cljs.core.sort.call(null,cljs.core.filter.call(null,((function (exposing,exports_container,curr_exports,decls,map__22796,map__22796__$1,pos,token){ return (function (p1__22792_SHARP_){return (cljs.core._EQ_.call(null,0,p1__22792_SHARP_.indexOf(token))) && (!(cljs.core.contains_QMARK_.call(null,curr_exports,p1__22792_SHARP_))); });})(exposing,exports_container,curr_exports,decls,map__22796,map__22796__$1,pos,token)) ,cljs.core.map.call(null,new cljs.core.Keyword(null,"value","value",1125876963),decls)))); } else {if(new cljs.core.Keyword(null,"else","else",1017020587)) {return cljs.core.PersistentVector.EMPTY; } else {return null; } } }); lt.plugins.elm_light.elm_ast.reserved_words_hints = (function reserved_words_hints(token){return cljs.core.map.call(null,(function (p1__22798_SHARP_){return cljs.core.PersistentHashMap.fromArrays.call(null,[new cljs.core.Keyword(null,"candidate","candidate",1522567413)],[p1__22798_SHARP_]); }),cljs.core.sort.call(null,cljs.core.filter.call(null,(function (p1__22797_SHARP_){return cljs.core._EQ_.call(null,0,p1__22797_SHARP_.indexOf(token)); }),new cljs.core.PersistentVector(null, 5, 5, cljs.core.PersistentVector.EMPTY_NODE, ["import","type","type alias","type","port"], null)))); }); /** * Return hints for a given module file and project. * The context parameter provides additional info to filter results * and to help make the results context aware to provide better more relevant results * * TODO: Only token is used and only toplevel declarations currently TBI */ lt.plugins.elm_light.elm_ast.get_hints = (function() { var get_hints = null; var get_hints__3 = (function (ctx,module_file,project_dir){return get_hints.call(null,ctx,module_file,project_dir,null); }); var get_hints__4 = (function (p__22799,module_file,project_dir,module_header){var map__22801 = p__22799;var map__22801__$1 = ((cljs.core.seq_QMARK_.call(null,map__22801))?cljs.core.apply.call(null,cljs.core.hash_map,map__22801):map__22801);var ctx = map__22801__$1;var ed = cljs.core.get.call(null,map__22801__$1,new cljs.core.Keyword(null,"ed","ed",1013907473));var token = cljs.core.get.call(null,map__22801__$1,new cljs.core.Keyword(null,"token","token",1124445547));var pos = cljs.core.get.call(null,map__22801__$1,new cljs.core.Keyword(null,"pos","pos",1014015430));var ed_tok = lt.objs.editor.__GT_token.call(null,ed,pos);var module = lt.plugins.elm_light.elm_ast.get_module_ast.call(null,project_dir,module_file);var top_level_decl_QMARK_ = lt.plugins.elm_light.elm_ast.find_top_level_declaration_by_pos.call(null,pos,module);var mod_header = (function (){var or__4884__auto__ = module_header;if(cljs.core.truth_(or__4884__auto__)) {return or__4884__auto__; } else {return module; } })();var modules = new cljs.core.Keyword(null,"file-asts","file-asts",3945857876).cljs$core$IFn$_invoke$arity$1(lt.plugins.elm_light.elm_ast.get_project.call(null,project_dir));var imp = lt.plugins.elm_light.elm_ast.find_import_by_pos.call(null,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"line","line",1017226086),new cljs.core.Keyword(null,"line","line",1017226086).cljs$core$IFn$_invoke$arity$1(pos),new cljs.core.Keyword(null,"ch","ch",1013907415),0], null),mod_header);if(cljs.core.truth_(module)) {if(cljs.core._EQ_.call(null,0,new cljs.core.Keyword(null,"start","start",1123661780).cljs$core$IFn$_invoke$arity$1(ed_tok))) {return lt.plugins.elm_light.elm_ast.reserved_words_hints.call(null,token); } else {if(cljs.core.truth_(imp)) {return lt.plugins.elm_light.elm_ast.import_hints.call(null,ctx,imp,mod_header,modules); } else {if(lt.plugins.elm_light.elm_ast.in_range_QMARK_.call(null,pos,new cljs.core.Keyword(null,"moduleDeclaration","moduleDeclaration",1240624864).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"ast","ast",1014001140).cljs$core$IFn$_invoke$arity$1(mod_header)))) {return lt.plugins.elm_light.elm_ast.module_header_hints.call(null,ctx,mod_header,module); } else {if(new cljs.core.Keyword(null,"else","else",1017020587)) {return lt.plugins.elm_light.elm_ast.declarations_hints.call(null,ctx,module,modules); } else {return null; } } } } } else {return null; } }); get_hints = function(p__22799,module_file,project_dir,module_header){ switch(arguments.length){ case 3: return get_hints__3.call(this,p__22799,module_file,project_dir); case 4: return get_hints__4.call(this,p__22799,module_file,project_dir,module_header); } throw(new Error('Invalid arity: ' + arguments.length)); }; get_hints.cljs$core$IFn$_invoke$arity$3 = get_hints__3; get_hints.cljs$core$IFn$_invoke$arity$4 = get_hints__4; return get_hints; })() ; lt.plugins.elm_light.elm_ast.find_all_occs = (function find_all_occs(line,tok){var pattern = cljs.core.re_pattern.call(null,[cljs.core.str("\\b"),cljs.core.str(tok),cljs.core.str("\\b(?!\\.)")].join(''));var s = line;var items = cljs.core.PersistentVector.EMPTY;var curr_idx = 0;while(true){ var idx = s.search(pattern);var act_idx = (curr_idx + idx);if(cljs.core._EQ_.call(null,-1,idx)) {return items; } else {{ var G__22846 = cljs.core.subs.call(null,s,((idx + cljs.core.count.call(null,tok)) + 1)); var G__22847 = cljs.core.conj.call(null,items,act_idx); var G__22848 = ((act_idx + cljs.core.count.call(null,tok)) + 1); s = G__22846; items = G__22847; curr_idx = G__22848; continue; } } break; } }); lt.plugins.elm_light.elm_ast.get_usage_editor = (function get_usage_editor(file){var temp__4090__auto__ = cljs.core.first.call(null,lt.objs.editor.pool.by_path.call(null,file));if(cljs.core.truth_(temp__4090__auto__)) {var ed = temp__4090__auto__;return new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"ed","ed",1013907473),ed,new cljs.core.Keyword(null,"close-fn","close-fn",2106681391),((function (ed,temp__4090__auto__){ return (function (){return cljs.core.List.EMPTY; });})(ed,temp__4090__auto__)) ], null); } else {var content = new cljs.core.Keyword(null,"content","content",1965434859).cljs$core$IFn$_invoke$arity$1(lt.objs.files.open_sync.call(null,file));var ed = lt.objs.editor.pool.create.call(null,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"mime","mime",1017255846),"text/x-elm",new cljs.core.Keyword(null,"content","content",1965434859),content], null));return new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"ed","ed",1013907473),ed,new cljs.core.Keyword(null,"close-fn","close-fn",2106681391),((function (content,ed,temp__4090__auto__){ return (function (){return lt.object.destroy_BANG_.call(null,ed); });})(content,ed,temp__4090__auto__)) ], null); } }); lt.plugins.elm_light.elm_ast.find_usage_hits = (function find_usage_hits(candidate_module){var map__22809 = lt.plugins.elm_light.elm_ast.get_usage_editor.call(null,new cljs.core.Keyword(null,"file","file",1017047278).cljs$core$IFn$_invoke$arity$1(candidate_module));var map__22809__$1 = ((cljs.core.seq_QMARK_.call(null,map__22809))?cljs.core.apply.call(null,cljs.core.hash_map,map__22809):map__22809);var close_fn = cljs.core.get.call(null,map__22809__$1,new cljs.core.Keyword(null,"close-fn","close-fn",2106681391));var ed = cljs.core.get.call(null,map__22809__$1,new cljs.core.Keyword(null,"ed","ed",1013907473));var line_count = lt.objs.editor.line_count.call(null,ed);return ((function (map__22809,map__22809__$1,close_fn,ed,line_count){ return (function (xs){close_fn.call(null); return cljs.core.assoc.call(null,candidate_module,new cljs.core.Keyword(null,"hits","hits",1017107122),xs); });})(map__22809,map__22809__$1,close_fn,ed,line_count)) .call(null,cljs.core.sort_by.call(null,((function (map__22809,map__22809__$1,close_fn,ed,line_count){ return (function (p1__22805_SHARP_){return new cljs.core.Keyword(null,"line","line",1017226086).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"start","start",1123661780).cljs$core$IFn$_invoke$arity$1(p1__22805_SHARP_)); });})(map__22809,map__22809__$1,close_fn,ed,line_count)) ,cljs.core.map.call(null,((function (map__22809,map__22809__$1,close_fn,ed,line_count){ return (function (p__22810){var vec__22811 = p__22810;var _ = cljs.core.nth.call(null,vec__22811,0,null);var v = cljs.core.nth.call(null,vec__22811,1,null);return cljs.core.first.call(null,cljs.core.sort_by.call(null,((function (vec__22811,_,v,map__22809,map__22809__$1,close_fn,ed,line_count){ return (function (p1__22804_SHARP_){return cljs.core.count.call(null,new cljs.core.Keyword(null,"token","token",1124445547).cljs$core$IFn$_invoke$arity$1(p1__22804_SHARP_)); });})(vec__22811,_,v,map__22809,map__22809__$1,close_fn,ed,line_count)) ,v)); });})(map__22809,map__22809__$1,close_fn,ed,line_count)) ,cljs.core.group_by.call(null,((function (map__22809,map__22809__$1,close_fn,ed,line_count){ return (function (p1__22803_SHARP_){return [cljs.core.str(new cljs.core.Keyword(null,"line","line",1017226086).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"end","end",1014004813).cljs$core$IFn$_invoke$arity$1(p1__22803_SHARP_))),cljs.core.str("-"),cljs.core.str(new cljs.core.Keyword(null,"ch","ch",1013907415).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"end","end",1014004813).cljs$core$IFn$_invoke$arity$1(p1__22803_SHARP_)))].join(''); });})(map__22809,map__22809__$1,close_fn,ed,line_count)) ,cljs.core.filter.call(null,cljs.core.seq,cljs.core.mapcat.call(null,((function (map__22809,map__22809__$1,close_fn,ed,line_count){ return (function (l){var line = lt.objs.editor.line.call(null,ed,l);return cljs.core.mapcat.call(null,((function (line,map__22809,map__22809__$1,close_fn,ed,line_count){ return (function (token){return cljs.core.map.call(null,((function (line,map__22809,map__22809__$1,close_fn,ed,line_count){ return (function (p1__22802_SHARP_){return cljs.core.PersistentHashMap.fromArrays.call(null,[new cljs.core.Keyword(null,"start","start",1123661780),new cljs.core.Keyword(null,"end","end",1014004813),new cljs.core.Keyword(null,"token","token",1124445547),new cljs.core.Keyword(null,"line","line",1017226086)],[new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"ch","ch",1013907415),p1__22802_SHARP_,new cljs.core.Keyword(null,"line","line",1017226086),l], null),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"ch","ch",1013907415),(p1__22802_SHARP_ + cljs.core.count.call(null,token)),new cljs.core.Keyword(null,"line","line",1017226086),l], null),token,line]); });})(line,map__22809,map__22809__$1,close_fn,ed,line_count)) ,lt.plugins.elm_light.elm_ast.find_all_occs.call(null,line,token)); });})(line,map__22809,map__22809__$1,close_fn,ed,line_count)) ,new cljs.core.Keyword(null,"candidate-tokens","candidate-tokens",3775833238).cljs$core$IFn$_invoke$arity$1(candidate_module)); });})(map__22809,map__22809__$1,close_fn,ed,line_count)) ,cljs.core.range.call(null,0,line_count))))))); }); lt.plugins.elm_light.elm_ast.find_usages = (function find_usages(token,project_file,module_file){var modules = new cljs.core.Keyword(null,"file-asts","file-asts",3945857876).cljs$core$IFn$_invoke$arity$1(lt.plugins.elm_light.elm_ast.get_project.call(null,project_file));var candidate = lt.plugins.elm_light.elm_ast.get_jump_to_definition.call(null,token,cljs.core.PersistentArrayMap.EMPTY,module_file,project_file);var candidate_module = lt.plugins.elm_light.elm_ast.get_module_ast.call(null,project_file,new cljs.core.Keyword(null,"file","file",1017047278).cljs$core$IFn$_invoke$arity$1(candidate));var cand_mods = cljs.core.sort_by.call(null,((function (modules,candidate,candidate_module){ return (function (p1__22812_SHARP_){return new cljs.core.Keyword(null,"value","value",1125876963).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"moduleDeclaration","moduleDeclaration",1240624864).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"ast","ast",1014001140).cljs$core$IFn$_invoke$arity$1(p1__22812_SHARP_))); });})(modules,candidate,candidate_module)) ,cljs.core.filter.call(null,cljs.core.identity,cljs.core.concat.call(null,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [(cljs.core.truth_(new cljs.core.Keyword(null,"package","package",4501809080).cljs$core$IFn$_invoke$arity$1(candidate_module))?null:candidate_module)], null),cljs.core.filter.call(null,((function (modules,candidate,candidate_module){ return (function (mod){var or__4884__auto__ = new cljs.core.Keyword(null,"default-candidate?","default-candidate?",4075348378).cljs$core$IFn$_invoke$arity$1(candidate);if(cljs.core.truth_(or__4884__auto__)) {return or__4884__auto__; } else {return cljs.core.contains_QMARK_.call(null,cljs.core.set.call(null,cljs.core.map.call(null,new cljs.core.Keyword(null,"value","value",1125876963),new cljs.core.Keyword(null,"imports","imports",2939942112).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"imports","imports",2939942112).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"ast","ast",1014001140).cljs$core$IFn$_invoke$arity$1(mod))))),new cljs.core.Keyword(null,"module-name","module-name",4067691710).cljs$core$IFn$_invoke$arity$1(candidate)); } });})(modules,candidate,candidate_module)) ,cljs.core.remove.call(null,new cljs.core.Keyword(null,"package","package",4501809080),new cljs.core.Keyword(null,"file-asts","file-asts",3945857876).cljs$core$IFn$_invoke$arity$1(lt.plugins.elm_light.elm_ast.get_project.call(null,project_file)))))));return ((function (modules,candidate,candidate_module,cand_mods){ return (function (mod_usages){return new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"candidate","candidate",1522567413),candidate,new cljs.core.Keyword(null,"usages-per-module","usages-per-module",3285520969),mod_usages,new cljs.core.Keyword(null,"token","token",1124445547),token], null); });})(modules,candidate,candidate_module,cand_mods)) .call(null,cljs.core.filter.call(null,((function (modules,candidate,candidate_module,cand_mods){ return (function (p1__22816_SHARP_){return cljs.core.seq.call(null,new cljs.core.Keyword(null,"hits","hits",1017107122).cljs$core$IFn$_invoke$arity$1(p1__22816_SHARP_)); });})(modules,candidate,candidate_module,cand_mods)) ,cljs.core.map.call(null,lt.plugins.elm_light.elm_ast.find_usage_hits,cljs.core.map.call(null,((function (modules,candidate,candidate_module,cand_mods){ return (function (p1__22815_SHARP_){return cljs.core.PersistentHashMap.fromArrays.call(null,[new cljs.core.Keyword(null,"file","file",1017047278),new cljs.core.Keyword(null,"candidate-tokens","candidate-tokens",3775833238)],[new cljs.core.Keyword(null,"candidate-module-file","candidate-module-file",3377529445).cljs$core$IFn$_invoke$arity$1(p1__22815_SHARP_),new cljs.core.Keyword(null,"candidate-tokens","candidate-tokens",3775833238).cljs$core$IFn$_invoke$arity$1(p1__22815_SHARP_)]); });})(modules,candidate,candidate_module,cand_mods)) ,cljs.core.mapcat.call(null,((function (modules,candidate,candidate_module,cand_mods){ return (function (mod){return cljs.core.filter.call(null,((function (modules,candidate,candidate_module,cand_mods){ return (function (p1__22814_SHARP_){return (false) || ((cljs.core._EQ_.call(null,new cljs.core.Keyword(null,"module-name","module-name",4067691710).cljs$core$IFn$_invoke$arity$1(candidate),new cljs.core.Keyword(null,"module-name","module-name",4067691710).cljs$core$IFn$_invoke$arity$1(p1__22814_SHARP_))) && (cljs.core._EQ_.call(null,new cljs.core.Keyword(null,"value","value",1125876963).cljs$core$IFn$_invoke$arity$1(candidate),new cljs.core.Keyword(null,"value","value",1125876963).cljs$core$IFn$_invoke$arity$1(p1__22814_SHARP_)))); });})(modules,candidate,candidate_module,cand_mods)) ,cljs.core.map.call(null,((function (modules,candidate,candidate_module,cand_mods){ return (function (p1__22813_SHARP_){return cljs.core.assoc.call(null,p1__22813_SHARP_,new cljs.core.Keyword(null,"candidate-module-file","candidate-module-file",3377529445),new cljs.core.Keyword(null,"file","file",1017047278).cljs$core$IFn$_invoke$arity$1(mod)); });})(modules,candidate,candidate_module,cand_mods)) ,lt.plugins.elm_light.elm_ast.get_jump_to_candidates.call(null,mod,modules))); });})(modules,candidate,candidate_module,cand_mods)) ,cand_mods))))); }); lt.plugins.elm_light.elm_ast.search_docs = (function search_docs(sym,project_dir){var qualified_name = (function (p1__22817_SHARP_){return [cljs.core.str(new cljs.core.Keyword(null,"module-name","module-name",4067691710).cljs$core$IFn$_invoke$arity$1(p1__22817_SHARP_)),cljs.core.str("."),cljs.core.str(new cljs.core.Keyword(null,"value","value",1125876963).cljs$core$IFn$_invoke$arity$1(p1__22817_SHARP_))].join(''); });var temp__4092__auto__ = lt.plugins.elm_light.elm_ast.get_project.call(null,project_dir);if(cljs.core.truth_(temp__4092__auto__)) {var prj = temp__4092__auto__;return cljs.core.sort_by.call(null,cljs.core.juxt.call(null,new cljs.core.Keyword(null,"value","value",1125876963),new cljs.core.Keyword(null,"module-name","module-name",4067691710)),cljs.core.map.call(null,((function (prj,temp__4092__auto__,qualified_name){ return (function (decl){return new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,"name","name",1017277949),new cljs.core.Keyword(null,"value","value",1125876963).cljs$core$IFn$_invoke$arity$1(decl),new cljs.core.Keyword(null,"ns","ns",1013907767),new cljs.core.Keyword(null,"module-name","module-name",4067691710).cljs$core$IFn$_invoke$arity$1(decl),new cljs.core.Keyword(null,"args","args",1016906831),(function (){var or__4884__auto__ = new cljs.core.Keyword(null,"signatureRaw","signatureRaw",3837738946).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"annotation","annotation",3753828001).cljs$core$IFn$_invoke$arity$1(decl));if(cljs.core.truth_(or__4884__auto__)) {return or__4884__auto__; } else {return new cljs.core.Keyword(null,"signatureRaw","signatureRaw",3837738946).cljs$core$IFn$_invoke$arity$1(decl); } })(),new cljs.core.Keyword(null,"doc","doc",1014003882),new cljs.core.Keyword(null,"doc","doc",1014003882).cljs$core$IFn$_invoke$arity$1(decl),new cljs.core.Keyword(null,"value","value",1125876963),new cljs.core.Keyword(null,"value","value",1125876963).cljs$core$IFn$_invoke$arity$1(decl),new cljs.core.Keyword(null,"module-name","module-name",4067691710),new cljs.core.Keyword(null,"module-name","module-name",4067691710).cljs$core$IFn$_invoke$arity$1(decl)], null); });})(prj,temp__4092__auto__,qualified_name)) ,cljs.core.filter.call(null,((function (prj,temp__4092__auto__,qualified_name){ return (function (decl){var or__4884__auto__ = lt.plugins.elm_light.elm_ast.start_with_QMARK_.call(null,new cljs.core.Keyword(null,"value","value",1125876963).cljs$core$IFn$_invoke$arity$1(decl),sym);if(cljs.core.truth_(or__4884__auto__)) {return or__4884__auto__; } else {return lt.plugins.elm_light.elm_ast.start_with_QMARK_.call(null,qualified_name.call(null,decl),sym); } });})(prj,temp__4092__auto__,qualified_name)) ,cljs.core.mapcat.call(null,lt.plugins.elm_light.elm_ast.get_exposed_declarations,new cljs.core.Keyword(null,"file-asts","file-asts",3945857876).cljs$core$IFn$_invoke$arity$1(prj))))); } else {return null; } }); lt.plugins.elm_light.elm_ast.get_gutter_exposeds = (function get_gutter_exposeds(module_file,project_file){var temp__4092__auto__ = lt.plugins.elm_light.elm_ast.get_module_ast.call(null,project_file,module_file);if(cljs.core.truth_(temp__4092__auto__)) {var module = temp__4092__auto__;return cljs.core.remove.call(null,((function (module,temp__4092__auto__){ return (function (p1__22818_SHARP_){return cljs.core._EQ_.call(null,"adtDef",new cljs.core.Keyword(null,"type","type",1017479852).cljs$core$IFn$_invoke$arity$1(p1__22818_SHARP_)); });})(module,temp__4092__auto__)) ,lt.plugins.elm_light.elm_ast.get_exposed_declarations.call(null,module)); } else {return null; } }); lt.plugins.elm_light.elm_ast.print_export = (function print_export(export$){return [cljs.core.str(((cljs.core._EQ_.call(null,"binOpRef",new cljs.core.Keyword(null,"type","type",1017479852).cljs$core$IFn$_invoke$arity$1(export$)))?[cljs.core.str("("),cljs.core.str(new cljs.core.Keyword(null,"value","value",1125876963).cljs$core$IFn$_invoke$arity$1(export$)),cljs.core.str(")")].join(''):new cljs.core.Keyword(null,"value","value",1125876963).cljs$core$IFn$_invoke$arity$1(export$))),cljs.core.str(((cljs.core.not.call(null,cljs.core.seq.call(null,new cljs.core.Keyword(null,"exports","exports",3999815345).cljs$core$IFn$_invoke$arity$1(export$))))?"":((new cljs.core.Keyword(null,"else","else",1017020587))?[cljs.core.str(" ("),cljs.core.str(lt.plugins.elm_light.elm_ast.print_exports.call(null,new cljs.core.Keyword(null,"exports","exports",3999815345).cljs$core$IFn$_invoke$arity$1(export$))),cljs.core.str(")")].join(''):null)))].join(''); }); lt.plugins.elm_light.elm_ast.print_exports = (function print_exports(exports){if(cljs.core.not.call(null,cljs.core.seq.call(null,exports))) {return ""; } else {if(cljs.core._EQ_.call(null,"exposeAll",new cljs.core.Keyword(null,"type","type",1017479852).cljs$core$IFn$_invoke$arity$1(cljs.core.first.call(null,new cljs.core.Keyword(null,"exports","exports",3999815345).cljs$core$IFn$_invoke$arity$1(exports))))) {return ".."; } else {if(new cljs.core.Keyword(null,"else","else",1017020587)) {return clojure.string.join.call(null,", ",cljs.core.map.call(null,lt.plugins.elm_light.elm_ast.print_export,new cljs.core.Keyword(null,"exports","exports",3999815345).cljs$core$IFn$_invoke$arity$1(exports))); } else {return null; } } } }); lt.plugins.elm_light.elm_ast.print_exposing = (function print_exposing(p__22819){var map__22821 = p__22819;var map__22821__$1 = ((cljs.core.seq_QMARK_.call(null,map__22821))?cljs.core.apply.call(null,cljs.core.hash_map,map__22821):map__22821);var exposing = map__22821__$1;var exports = cljs.core.get.call(null,map__22821__$1,new cljs.core.Keyword(null,"exports","exports",3999815345));if(cljs.core.not.call(null,cljs.core.seq.call(null,exports))) {return ""; } else {return [cljs.core.str("exposing ("),cljs.core.str(lt.plugins.elm_light.elm_ast.print_exports.call(null,exports)),cljs.core.str(")")].join(''); } }); lt.plugins.elm_light.elm_ast.print_import = (function print_import(imp){return [cljs.core.str("import "),cljs.core.str(new cljs.core.Keyword(null,"value","value",1125876963).cljs$core$IFn$_invoke$arity$1(imp)),cljs.core.str((function (){var temp__4092__auto__ = new cljs.core.Keyword(null,"alias","alias",1106807234).cljs$core$IFn$_invoke$arity$1(imp);if(cljs.core.truth_(temp__4092__auto__)) {var aliaz = temp__4092__auto__;return [cljs.core.str(" as "),cljs.core.str(aliaz)].join(''); } else {return null; } })()),cljs.core.str(((cljs.core.seq.call(null,new cljs.core.Keyword(null,"exposing","exposing",3382854387).cljs$core$IFn$_invoke$arity$1(imp)))?[cljs.core.str(" "),cljs.core.str(lt.plugins.elm_light.elm_ast.print_exposing.call(null,new cljs.core.Keyword(null,"exposing","exposing",3382854387).cljs$core$IFn$_invoke$arity$1(imp)))].join(''):null))].join(''); }); lt.plugins.elm_light.elm_ast.print_imports = (function() { var print_imports = null; var print_imports__1 = (function (imports){return print_imports.call(null,cljs.core.identity,imports); }); var print_imports__2 = (function (sort_fn,imports){return clojure.string.join.call(null,"\n",cljs.core.map.call(null,lt.plugins.elm_light.elm_ast.print_import,sort_fn.call(null,imports))); }); print_imports = function(sort_fn,imports){ switch(arguments.length){ case 1: return print_imports__1.call(this,sort_fn); case 2: return print_imports__2.call(this,sort_fn,imports); } throw(new Error('Invalid arity: ' + arguments.length)); }; print_imports.cljs$core$IFn$_invoke$arity$1 = print_imports__1; print_imports.cljs$core$IFn$_invoke$arity$2 = print_imports__2; return print_imports; })() ; lt.plugins.elm_light.elm_ast.sort_imports_default = (function sort_imports_default(project_dir,imports){var modules = new cljs.core.Keyword(null,"file-asts","file-asts",3945857876).cljs$core$IFn$_invoke$arity$1(lt.plugins.elm_light.elm_ast.get_project.call(null,project_dir));return cljs.core.sort_by.call(null,cljs.core.juxt.call(null,cljs.core.partial.call(null,lt.plugins.elm_light.elm_ast.package_import_QMARK_,modules),new cljs.core.Keyword(null,"value","value",1125876963)),imports); }); lt.plugins.elm_light.elm_ast.sym_exposed_QMARK_ = (function sym_exposed_QMARK_(sym,project_dir,module_file){return lt.plugins.elm_light.elm_ast.exposed_by_module_QMARK_.call(null,lt.plugins.elm_light.elm_ast.get_module_ast.call(null,project_dir,module_file),sym); }); /** * Adds an export to exposing node * NOTE: Does not check if exposeAll or already exposed. */ lt.plugins.elm_light.elm_ast.expose_decl = (function expose_decl(decl,exposing){var value = new cljs.core.Keyword(null,"value","value",1125876963).cljs$core$IFn$_invoke$arity$1(decl);return cljs.core.update_in.call(null,exposing,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"exports","exports",3999815345),new cljs.core.Keyword(null,"exports","exports",3999815345)], null),((function (value){ return (function (exports){return cljs.core.conj.call(null,exports,(function (){var G__22823 = new cljs.core.Keyword(null,"type","type",1017479852).cljs$core$IFn$_invoke$arity$1(decl);if(cljs.core._EQ_.call(null,"binOpDef",G__22823)) {return new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"type","type",1017479852),"binOpRef",new cljs.core.Keyword(null,"value","value",1125876963),value], null); } else {if(cljs.core._EQ_.call(null,"typeDecl",G__22823)) {return new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"type","type",1017479852),"adt",new cljs.core.Keyword(null,"value","value",1125876963),value], null); } else {if(cljs.core._EQ_.call(null,"typeAliasDecl",G__22823)) {return new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"type","type",1017479852),"adt",new cljs.core.Keyword(null,"value","value",1125876963),value], null); } else {if(new cljs.core.Keyword(null,"else","else",1017020587)) {return new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"type","type",1017479852),"ref",new cljs.core.Keyword(null,"value","value",1125876963),value], null); } else {return null; } } } } })()); });})(value)) ); }); /** * Removes an export from and exposing node. Ignored if exposed through exposeAll (..) */ lt.plugins.elm_light.elm_ast.unexpose_decl = (function unexpose_decl(decl,exposing){var value = new cljs.core.Keyword(null,"value","value",1125876963).cljs$core$IFn$_invoke$arity$1(decl);return cljs.core.update_in.call(null,exposing,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"exports","exports",3999815345),new cljs.core.Keyword(null,"exports","exports",3999815345)], null),((function (value){ return (function (exports){return cljs.core.remove.call(null,((function (value){ return (function (p1__22824_SHARP_){return cljs.core._EQ_.call(null,value,new cljs.core.Keyword(null,"value","value",1125876963).cljs$core$IFn$_invoke$arity$1(p1__22824_SHARP_)); });})(value)) ,exports); });})(value)) ); }); /** * Find applicable import candidates based on token for a given module */ lt.plugins.elm_light.elm_ast.get_autoimport_candidates = (function get_autoimport_candidates(aliaz,token,module_file,project_dir){var temp__4092__auto__ = lt.plugins.elm_light.elm_ast.get_module_ast.call(null,project_dir,module_file);if(cljs.core.truth_(temp__4092__auto__)) {var module = temp__4092__auto__;var modules = new cljs.core.Keyword(null,"file-asts","file-asts",3945857876).cljs$core$IFn$_invoke$arity$1(lt.plugins.elm_light.elm_ast.get_project.call(null,project_dir));return cljs.core.filter.call(null,((function (modules,module,temp__4092__auto__){ return (function (candidate){return (cljs.core._EQ_.call(null,token,new cljs.core.Keyword(null,"value","value",1125876963).cljs$core$IFn$_invoke$arity$1(candidate))) && (cljs.core.not.call(null,cljs.core.some.call(null,((function (modules,module,temp__4092__auto__){ return (function (p1__22826_SHARP_){var and__4872__auto__ = new cljs.core.Keyword(null,"alias","alias",1106807234).cljs$core$IFn$_invoke$arity$1(p1__22826_SHARP_);if(cljs.core.truth_(and__4872__auto__)) {return cljs.core._EQ_.call(null,new cljs.core.Keyword(null,"module-name","module-name",4067691710).cljs$core$IFn$_invoke$arity$1(candidate),new cljs.core.Keyword(null,"value","value",1125876963).cljs$core$IFn$_invoke$arity$1(p1__22826_SHARP_)); } else {return and__4872__auto__; } });})(modules,module,temp__4092__auto__)) ,new cljs.core.Keyword(null,"imports","imports",2939942112).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"imports","imports",2939942112).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"ast","ast",1014001140).cljs$core$IFn$_invoke$arity$1(module)))))); });})(modules,module,temp__4092__auto__)) ,cljs.core.concat.call(null,lt.plugins.elm_light.elm_ast.get_default_candidates.call(null,lt.plugins.elm_light.elm_ast.get_core_modules.call(null,modules)),cljs.core.mapcat.call(null,lt.plugins.elm_light.elm_ast.get_exposed_declarations,cljs.core.filter.call(null,((function (modules,module,temp__4092__auto__){ return (function (p1__22825_SHARP_){return cljs.core.not_EQ_.call(null,module_file,new cljs.core.Keyword(null,"file","file",1017047278).cljs$core$IFn$_invoke$arity$1(p1__22825_SHARP_)); });})(modules,module,temp__4092__auto__)) ,modules)))); } else {return null; } }); /** * Add import with alias or update an existing import with given alias */ lt.plugins.elm_light.elm_ast.upsert_imports = (function upsert_imports(module_name,aliaz,imports){var temp__4090__auto__ = lt.plugins.elm_light.elm_ast.idx_of.call(null,(function (p1__22827_SHARP_){return cljs.core._EQ_.call(null,module_name,new cljs.core.Keyword(null,"value","value",1125876963).cljs$core$IFn$_invoke$arity$1(p1__22827_SHARP_)); }),imports);if(cljs.core.truth_(temp__4090__auto__)) {var idx = temp__4090__auto__;return cljs.core.assoc_in.call(null,cljs.core.vec.call(null,imports),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [idx,new cljs.core.Keyword(null,"alias","alias",1106807234)], null),aliaz); } else {return cljs.core.conj.call(null,imports,new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,"value","value",1125876963),module_name,new cljs.core.Keyword(null,"type","type",1017479852),"import",new cljs.core.Keyword(null,"alias","alias",1106807234),aliaz,new cljs.core.Keyword(null,"exposing","exposing",3382854387),cljs.core.PersistentVector.EMPTY], null)); } }); lt.plugins.elm_light.elm_ast.test_module_candidate_QMARK_ = (function test_module_candidate_QMARK_(module){var imp_names = cljs.core.set.call(null,cljs.core.map.call(null,new cljs.core.Keyword(null,"value","value",1125876963),new cljs.core.Keyword(null,"imports","imports",2939942112).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"imports","imports",2939942112).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"ast","ast",1014001140).cljs$core$IFn$_invoke$arity$1(module)))));return cljs.core.contains_QMARK_.call(null,imp_names,"Test"); }); lt.plugins.elm_light.elm_ast.ignore_test_QMARK_ = (function ignore_test_QMARK_(decl){if(cljs.core.truth_(new cljs.core.Keyword(null,"doc","doc",1014003882).cljs$core$IFn$_invoke$arity$1(decl))) {return lt.plugins.elm_light.utils.str_contains.call(null,new cljs.core.Keyword(null,"doc","doc",1014003882).cljs$core$IFn$_invoke$arity$1(decl),"@ltignore"); } else {return null; } }); lt.plugins.elm_light.elm_ast.get_test_decls = (function get_test_decls(module){return cljs.core.filter.call(null,(function (p1__22828_SHARP_){return (cljs.core.not.call(null,lt.plugins.elm_light.elm_ast.ignore_test_QMARK_.call(null,p1__22828_SHARP_))) && (cljs.core._EQ_.call(null,"Test",new cljs.core.Keyword(null,"value","value",1125876963).cljs$core$IFn$_invoke$arity$1(cljs.core.first.call(null,new cljs.core.Keyword(null,"signature","signature",2087488554).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"annotation","annotation",3753828001).cljs$core$IFn$_invoke$arity$1(p1__22828_SHARP_)))))); }),lt.plugins.elm_light.elm_ast.get_exposed_declarations_memo.call(null,module)); }); lt.plugins.elm_light.elm_ast.__GT_suite_tests = (function __GT_suite_tests(module){return cljs.core.map.call(null,(function (p1__22829_SHARP_){return cljs.core.select_keys.call(null,p1__22829_SHARP_,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"value","value",1125876963),new cljs.core.Keyword(null,"module-name","module-name",4067691710)], null)); }),lt.plugins.elm_light.elm_ast.get_test_decls.call(null,module)); }); lt.plugins.elm_light.elm_ast.get_project_tests = (function get_project_tests(project_path){var project = lt.plugins.elm_light.elm_ast.get_project.call(null,project_path);return cljs.core.mapcat.call(null,lt.plugins.elm_light.elm_ast.__GT_suite_tests,cljs.core.filter.call(null,((function (project){ return (function (module){if(cljs.core.truth_(new cljs.core.Keyword(null,"package","package",4501809080).cljs$core$IFn$_invoke$arity$1(module))) {return null; } else {return lt.plugins.elm_light.elm_ast.test_module_candidate_QMARK_.call(null,module); } });})(project)) ,new cljs.core.Keyword(null,"file-asts","file-asts",3945857876).cljs$core$IFn$_invoke$arity$1(project))); }); lt.plugins.elm_light.elm_ast.get_module_tests = (function get_module_tests(project_path,module_file){var module = lt.plugins.elm_light.elm_ast.get_module_ast.call(null,project_path,module_file);if(lt.plugins.elm_light.elm_ast.test_module_candidate_QMARK_.call(null,module)) {return lt.plugins.elm_light.elm_ast.__GT_suite_tests.call(null,module); } else {return cljs.core.PersistentVector.EMPTY; } }); lt.plugins.elm_light.elm_ast.get_test_by_pos = (function get_test_by_pos(pos,project_path,module_file){var module = lt.plugins.elm_light.elm_ast.get_module_ast.call(null,project_path,module_file);var decl = lt.plugins.elm_light.elm_ast.find_top_level_declaration_by_pos.call(null,pos,module);if((lt.plugins.elm_light.elm_ast.test_module_candidate_QMARK_.call(null,module)) && (lt.plugins.elm_light.elm_ast.exposed_by_module_QMARK_.call(null,module,new cljs.core.Keyword(null,"value","value",1125876963).cljs$core$IFn$_invoke$arity$1(decl))) && (cljs.core._EQ_.call(null,"Test",new cljs.core.Keyword(null,"value","value",1125876963).cljs$core$IFn$_invoke$arity$1(cljs.core.first.call(null,new cljs.core.Keyword(null,"signature","signature",2087488554).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"annotation","annotation",3753828001).cljs$core$IFn$_invoke$arity$1(decl)))))) && (cljs.core.not.call(null,lt.plugins.elm_light.elm_ast.ignore_test_QMARK_.call(null,decl)))) {return new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"value","value",1125876963),new cljs.core.Keyword(null,"value","value",1125876963).cljs$core$IFn$_invoke$arity$1(decl),new cljs.core.Keyword(null,"module-name","module-name",4067691710),lt.plugins.elm_light.elm_ast.get_module_name.call(null,module)], null)], null); } else {return cljs.core.PersistentVector.EMPTY; } }); lt.plugins.elm_light.elm_ast.status_class = (function status_class(p__22830){var map__22833 = p__22830;var map__22833__$1 = ((cljs.core.seq_QMARK_.call(null,map__22833))?cljs.core.apply.call(null,cljs.core.hash_map,map__22833):map__22833);var status = cljs.core.get.call(null,map__22833__$1,new cljs.core.Keyword(null,"status","status",4416389988));var G__22834 = status;if(cljs.core._EQ_.call(null,new cljs.core.Keyword(null,"ok","ok",1013907790),G__22834)) {return "ok"; } else {if(cljs.core._EQ_.call(null,new cljs.core.Keyword(null,"error","error",1110689146),G__22834)) {return "error"; } else {if(new cljs.core.Keyword(null,"else","else",1017020587)) {return ""; } else {return null; } } } }); lt.plugins.elm_light.elm_ast.status_text = (function status_text(p__22835){var map__22838 = p__22835;var map__22838__$1 = ((cljs.core.seq_QMARK_.call(null,map__22838))?cljs.core.apply.call(null,cljs.core.hash_map,map__22838):map__22838);var error = cljs.core.get.call(null,map__22838__$1,new cljs.core.Keyword(null,"error","error",1110689146));var status = cljs.core.get.call(null,map__22838__$1,new cljs.core.Keyword(null,"status","status",4416389988));return [cljs.core.str("AST: "),cljs.core.str((function (){var G__22839 = status;if(cljs.core._EQ_.call(null,new cljs.core.Keyword(null,"error","error",1110689146),G__22839)) {return "Error"; } else {if(cljs.core._EQ_.call(null,new cljs.core.Keyword(null,"ok","ok",1013907790),G__22839)) {return "Ok"; } else {if(new cljs.core.Keyword(null,"else","else",1017020587)) {return "Not connected"; } else {return null; } } } })())].join(''); }); lt.plugins.elm_light.elm_ast.__GT_status_ui = (function __GT_status_ui(p__22840){var map__22842 = p__22840;var map__22842__$1 = ((cljs.core.seq_QMARK_.call(null,map__22842))?cljs.core.apply.call(null,cljs.core.hash_map,map__22842):map__22842);var ast_summary = cljs.core.get.call(null,map__22842__$1,new cljs.core.Keyword(null,"ast-summary","ast-summary",1727157965));return new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"span","span",1017440956),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"class","class",1108647146),[cljs.core.str("ast-status "),cljs.core.str(lt.plugins.elm_light.elm_ast.status_class.call(null,ast_summary))].join('')], null),lt.plugins.elm_light.elm_ast.status_text.call(null,ast_summary)], null); }); lt.plugins.elm_light.elm_ast.__BEH__update_ast_status = (function __BEH__update_ast_status(this$,f){return lt.object.update_BANG_.call(null,this$,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"ast-summary","ast-summary",1727157965)], null),f); }); lt.object.behavior_STAR_.call(null,new cljs.core.Keyword("lt.plugins.elm-light.elm-ast","update-ast-status","lt.plugins.elm-light.elm-ast/update-ast-status",2519133077),new cljs.core.Keyword(null,"reaction","reaction",4441361819),lt.plugins.elm_light.elm_ast.__BEH__update_ast_status,new cljs.core.Keyword(null,"triggers","triggers",2516997421),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"update!","update!",779473898),null], null), null)); lt.object.object_STAR_.call(null,new cljs.core.Keyword("lt.plugins.elm-light.elm-ast","statusbar.ast-status","lt.plugins.elm-light.elm-ast/statusbar.ast-status",1374391534),new cljs.core.Keyword(null,"triggers","triggers",2516997421),cljs.core.PersistentHashSet.EMPTY,new cljs.core.Keyword(null,"behaviors","behaviors",607554515),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword("lt.plugins.elm-light.elm-ast","update-ast-status","lt.plugins.elm-light.elm-ast/update-ast-status",2519133077),null], null), null),new cljs.core.Keyword(null,"ast-summary","ast-summary",1727157965),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"status","status",4416389988),""], null),new cljs.core.Keyword(null,"init","init",1017141378),(function (this$){return lt.objs.statusbar.statusbar_item.call(null,crate.binding.bound.call(null,this$,lt.plugins.elm_light.elm_ast.__GT_status_ui),""); })); lt.plugins.elm_light.elm_ast.statusbar_ast_summary = lt.object.create.call(null,new cljs.core.Keyword("lt.plugins.elm-light.elm-ast","statusbar.ast-status","lt.plugins.elm-light.elm-ast/statusbar.ast-status",1374391534)); lt.objs.statusbar.add_statusbar_item.call(null,lt.plugins.elm_light.elm_ast.statusbar_ast_summary); lt.plugins.elm_light.elm_ast.update_status_for_editor = (function update_status_for_editor(ed){var map__22845 = new cljs.core.Keyword(null,"ast-status","ast-status",2421112079).cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,ed));var map__22845__$1 = ((cljs.core.seq_QMARK_.call(null,map__22845))?cljs.core.apply.call(null,cljs.core.hash_map,map__22845):map__22845);var error = cljs.core.get.call(null,map__22845__$1,new cljs.core.Keyword(null,"error","error",1110689146));var status = cljs.core.get.call(null,map__22845__$1,new cljs.core.Keyword(null,"status","status",4416389988));return lt.object.raise.call(null,lt.plugins.elm_light.elm_ast.statusbar_ast_summary,new cljs.core.Keyword(null,"update!","update!",779473898),((function (map__22845,map__22845__$1,error,status){ return (function (p1__22843_SHARP_){return cljs.core.assoc.call(null,p1__22843_SHARP_,new cljs.core.Keyword(null,"status","status",4416389988),status,new cljs.core.Keyword(null,"error","error",1110689146),error); });})(map__22845,map__22845__$1,error,status)) ); }); lt.plugins.elm_light.elm_ast.__BEH__update_ast_status_on_editor_change = (function __BEH__update_ast_status_on_editor_change(ed){return lt.plugins.elm_light.elm_ast.update_status_for_editor.call(null,ed); }); lt.object.behavior_STAR_.call(null,new cljs.core.Keyword("lt.plugins.elm-light.elm-ast","update-ast-status-on-editor-change","lt.plugins.elm-light.elm-ast/update-ast-status-on-editor-change",1769747394),new cljs.core.Keyword(null,"reaction","reaction",4441361819),lt.plugins.elm_light.elm_ast.__BEH__update_ast_status_on_editor_change,new cljs.core.Keyword(null,"triggers","triggers",2516997421),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"focus","focus",1111509066),null], null), null)); } if(!lt.util.load.provided_QMARK_('lt.plugins.elm-light.repl')) { goog.provide('lt.plugins.elm_light.repl'); goog.require('cljs.core'); goog.require('lt.objs.tabs'); goog.require('lt.objs.editor.pool'); goog.require('lt.objs.command'); goog.require('lt.objs.editor'); goog.require('lt.object'); goog.require('lt.object'); goog.require('lt.objs.tabs'); goog.require('lt.objs.editor'); goog.require('lt.objs.editor.pool'); goog.require('lt.objs.command'); lt.plugins.elm_light.repl.__BEH__on_focus_repl_ed = (function __BEH__on_focus_repl_ed(this$){if(cljs.core.truth_(new cljs.core.Keyword(null,"main","main",1017248043).cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,this$)))) {return lt.object.raise.call(null,new cljs.core.Keyword(null,"main","main",1017248043).cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,this$)),new cljs.core.Keyword(null,"focus!","focus!",4039653819)); } else {return null; } }); lt.object.behavior_STAR_.call(null,new cljs.core.Keyword("lt.plugins.elm-light.repl","on-focus-repl-ed","lt.plugins.elm-light.repl/on-focus-repl-ed",902928202),new cljs.core.Keyword(null,"reaction","reaction",4441361819),lt.plugins.elm_light.repl.__BEH__on_focus_repl_ed,new cljs.core.Keyword(null,"triggers","triggers",2516997421),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"focus!","focus!",4039653819),null], null), null)); lt.plugins.elm_light.repl.__BEH__repl_destroy_on_close = (function __BEH__repl_destroy_on_close(this$){lt.object.raise.call(null,new cljs.core.Keyword(null,"main","main",1017248043).cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,this$)),new cljs.core.Keyword(null,"close","close",1108660586)); return lt.object.destroy_BANG_.call(null,this$); }); lt.object.behavior_STAR_.call(null,new cljs.core.Keyword("lt.plugins.elm-light.repl","repl-destroy-on-close","lt.plugins.elm-light.repl/repl-destroy-on-close",1223254671),new cljs.core.Keyword(null,"reaction","reaction",4441361819),lt.plugins.elm_light.repl.__BEH__repl_destroy_on_close,new cljs.core.Keyword(null,"triggers","triggers",2516997421),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"close","close",1108660586),null], null), null)); lt.plugins.elm_light.repl.__BEH__repl_close_parent = (function __BEH__repl_close_parent(this$){return lt.object.destroy_BANG_.call(null,new cljs.core.Keyword(null,"frame","frame",1111596255).cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,this$))); }); lt.object.behavior_STAR_.call(null,new cljs.core.Keyword("lt.plugins.elm-light.repl","repl-close-parent","lt.plugins.elm-light.repl/repl-close-parent",1283075757),new cljs.core.Keyword(null,"reaction","reaction",4441361819),lt.plugins.elm_light.repl.__BEH__repl_close_parent,new cljs.core.Keyword(null,"triggers","triggers",2516997421),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"destroy","destroy",2571277164),null], null), null)); lt.plugins.elm_light.repl.__BEH__on_show_repl_refresh_eds = (function __BEH__on_show_repl_refresh_eds(this$){if(cljs.core.truth_(new cljs.core.Keyword(null,"main","main",1017248043).cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,this$)))) {lt.object.raise.call(null,new cljs.core.Keyword(null,"main","main",1017248043).cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,this$)),new cljs.core.Keyword(null,"show","show",1017433711)); lt.object.raise.call(null,new cljs.core.Keyword(null,"main","main",1017248043).cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,this$)),new cljs.core.Keyword(null,"refresh!","refresh!",4597922840)); return lt.objs.editor.focus.call(null,new cljs.core.Keyword(null,"main","main",1017248043).cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,this$))); } else {return null; } }); lt.object.behavior_STAR_.call(null,new cljs.core.Keyword("lt.plugins.elm-light.repl","on-show-repl-refresh-eds","lt.plugins.elm-light.repl/on-show-repl-refresh-eds",1683212982),new cljs.core.Keyword(null,"reaction","reaction",4441361819),lt.plugins.elm_light.repl.__BEH__on_show_repl_refresh_eds,new cljs.core.Keyword(null,"triggers","triggers",2516997421),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"show","show",1017433711),null], null), null)); lt.object.object_STAR_.call(null,new cljs.core.Keyword("lt.plugins.elm-light.repl","elmrepl","lt.plugins.elm-light.repl/elmrepl",2110428165),new cljs.core.Keyword(null,"tags","tags",1017456523),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"elmrepl","elmrepl",3653571719),null], null), null),new cljs.core.Keyword(null,"name","name",1017277949),"elmrepl",new cljs.core.Keyword(null,"live","live",1017226334),true,new cljs.core.Keyword(null,"init","init",1017141378),(function (this$){var main = lt.object.add_tags.call(null,lt.object.remove_tags.call(null,lt.objs.editor.pool.create.call(null,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"mime","mime",1017255846),"text/x-elm",new cljs.core.Keyword(null,"content","content",1965434859),"",new cljs.core.Keyword(null,"ns","ns",1013907767),"user"], null)),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"editor.elm","editor.elm",3751348247)], null)),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"editor.elm.repl","editor.elm.repl",1086231178),new cljs.core.Keyword(null,"editor.transient","editor.transient",3554141883)], null));lt.object.merge_BANG_.call(null,main,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"frame","frame",1111596255),this$], null)); lt.objs.editor.clear_history.call(null,main); lt.object.merge_BANG_.call(null,main,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"dirty","dirty",1109497668),false,new cljs.core.Keyword(null,"editor.generation","editor.generation",4482163627),lt.objs.editor.__GT_generation.call(null,main)], null)); lt.object.merge_BANG_.call(null,this$,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"main","main",1017248043),main,new cljs.core.Keyword(null,"dirty","dirty",1109497668),false], null)); lt.objs.editor._PLUS_class.call(null,main,new cljs.core.Keyword(null,"main","main",1017248043)); lt.objs.editor.move_cursor.call(null,main,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"line","line",1017226086),0,new cljs.core.Keyword(null,"ch","ch",1013907415),0], null)); return new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"div.elmrepl","div.elmrepl",926648362),lt.object.__GT_content.call(null,main)], null); })); lt.plugins.elm_light.repl.add_repl = (function add_repl(){var elmrepl = lt.object.create.call(null,new cljs.core.Keyword("lt.plugins.elm-light.repl","elmrepl","lt.plugins.elm-light.repl/elmrepl",2110428165));lt.objs.tabs.add_BANG_.call(null,elmrepl); lt.objs.tabs.active_BANG_.call(null,elmrepl); return elmrepl; }); lt.objs.command.command.call(null,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"command","command",1964298941),new cljs.core.Keyword(null,"elmrepl","elmrepl",3653571719),new cljs.core.Keyword(null,"desc","desc",1016984067),"Elm repl: Open a elm repl",new cljs.core.Keyword(null,"exec","exec",1017031683),(function (){return lt.plugins.elm_light.repl.add_repl.call(null); })], null)); } if(!lt.util.load.provided_QMARK_('lt.plugins.elm-light.gutter')) { goog.provide('lt.plugins.elm_light.gutter'); goog.require('cljs.core'); goog.require('lt.objs.files'); goog.require('lt.util.dom'); goog.require('lt.plugins.elm_light.utils'); goog.require('lt.util.dom'); goog.require('lt.objs.files'); goog.require('lt.plugins.elm_light.utils'); goog.require('lt.objs.editor'); goog.require('lt.object'); goog.require('lt.object'); goog.require('lt.objs.editor'); goog.require('lt.plugins.elm_light.elm_ast'); goog.require('lt.plugins.elm_light.elm_ast'); lt.plugins.elm_light.gutter.icon_url = lt.objs.files.join.call(null,lt.plugins.elm_light.utils.elm_plugin_dir,"css","export.svg"); lt.plugins.elm_light.gutter.marker_templ = (function (){var elem = document.createElement("div");lt.util.dom.html.call(null,elem,"@"); lt.util.dom.add_class.call(null,elem,"elm-gutter-marker"); return elem; })(); lt.plugins.elm_light.gutter.gutter_marker_exposed = (function gutter_marker_exposed(){return lt.plugins.elm_light.gutter.marker_templ.cloneNode(true); }); lt.plugins.elm_light.gutter.__BEH__show_elm_gutter = (function __BEH__show_elm_gutter(ed){if(cljs.core.truth_(new cljs.core.Keyword(null,"elm-gutter","elm-gutter",1745506196).cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,ed)))) {return null; } else {lt.objs.editor.add_gutter.call(null,ed,"elm-gutter",15); return lt.object.assoc_in_BANG_.call(null,ed,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"elm-gutter","elm-gutter",1745506196)], null),true); } }); lt.object.behavior_STAR_.call(null,new cljs.core.Keyword("lt.plugins.elm-light.gutter","show-elm-gutter","lt.plugins.elm-light.gutter/show-elm-gutter",3265354305),new cljs.core.Keyword(null,"reaction","reaction",4441361819),lt.plugins.elm_light.gutter.__BEH__show_elm_gutter,new cljs.core.Keyword(null,"desc","desc",1016984067),"Editor Elm: Display elm gutter",new cljs.core.Keyword(null,"triggers","triggers",2516997421),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"object.instant","object.instant",773332388),null], null), null),new cljs.core.Keyword(null,"type","type",1017479852),"user"); lt.plugins.elm_light.gutter.__BEH__elm_gutter_exposeds = (function __BEH__elm_gutter_exposeds(ed){var cm_ed = lt.objs.editor.__GT_cm_ed.call(null,ed);return lt.objs.editor.operation.call(null,cm_ed,((function (cm_ed){ return (function (){cm_ed.clearGutter("elm-gutter"); var seq__12629 = cljs.core.seq.call(null,new cljs.core.Keyword(null,"elm-exposeds-bookmarks","elm-exposeds-bookmarks",1216410620).cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,ed)));var chunk__12630 = null;var count__12631 = 0;var i__12632 = 0;while(true){ if((i__12632 < count__12631)) {var bm = cljs.core._nth.call(null,chunk__12630,i__12632);var temp__4092__auto___12641 = bm.find();if(cljs.core.truth_(temp__4092__auto___12641)) {var pos_12642 = temp__4092__auto___12641;var temp__4092__auto___12643__$1 = pos_12642.line;if(cljs.core.truth_(temp__4092__auto___12643__$1)) {var line_12644 = temp__4092__auto___12643__$1;cm_ed.setGutterMarker(line_12644,"elm-gutter",lt.plugins.elm_light.gutter.gutter_marker_exposed.call(null)); } else {} } else {} { var G__12645 = seq__12629; var G__12646 = chunk__12630; var G__12647 = count__12631; var G__12648 = (i__12632 + 1); seq__12629 = G__12645; chunk__12630 = G__12646; count__12631 = G__12647; i__12632 = G__12648; continue; } } else {var temp__4092__auto__ = cljs.core.seq.call(null,seq__12629);if(temp__4092__auto__) {var seq__12629__$1 = temp__4092__auto__;if(cljs.core.chunked_seq_QMARK_.call(null,seq__12629__$1)) {var c__5632__auto__ = cljs.core.chunk_first.call(null,seq__12629__$1);{ var G__12649 = cljs.core.chunk_rest.call(null,seq__12629__$1); var G__12650 = c__5632__auto__; var G__12651 = cljs.core.count.call(null,c__5632__auto__); var G__12652 = 0; seq__12629 = G__12649; chunk__12630 = G__12650; count__12631 = G__12651; i__12632 = G__12652; continue; } } else {var bm = cljs.core.first.call(null,seq__12629__$1);var temp__4092__auto___12653__$1 = bm.find();if(cljs.core.truth_(temp__4092__auto___12653__$1)) {var pos_12654 = temp__4092__auto___12653__$1;var temp__4092__auto___12655__$2 = pos_12654.line;if(cljs.core.truth_(temp__4092__auto___12655__$2)) {var line_12656 = temp__4092__auto___12655__$2;cm_ed.setGutterMarker(line_12656,"elm-gutter",lt.plugins.elm_light.gutter.gutter_marker_exposed.call(null)); } else {} } else {} { var G__12657 = cljs.core.next.call(null,seq__12629__$1); var G__12658 = null; var G__12659 = 0; var G__12660 = 0; seq__12629 = G__12657; chunk__12630 = G__12658; count__12631 = G__12659; i__12632 = G__12660; continue; } } } else {return null; } } break; } });})(cm_ed)) ); }); lt.object.behavior_STAR_.call(null,new cljs.core.Keyword("lt.plugins.elm-light.gutter","elm-gutter-exposeds","lt.plugins.elm-light.gutter/elm-gutter-exposeds",2318158517),new cljs.core.Keyword(null,"reaction","reaction",4441361819),lt.plugins.elm_light.gutter.__BEH__elm_gutter_exposeds,new cljs.core.Keyword(null,"triggers","triggers",2516997421),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"elm.gutter.refresh","elm.gutter.refresh",722016962),null], null), null)); lt.plugins.elm_light.gutter.__BEH__elm_gutter_exposeds_mark = (function __BEH__elm_gutter_exposeds_mark(ed){var path = new cljs.core.Keyword(null,"path","path",1017337751).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"info","info",1017141280).cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,ed)));var exposeds = lt.plugins.elm_light.elm_ast.get_gutter_exposeds.call(null,path,lt.plugins.elm_light.utils.project_path.call(null,path));var cm_ed = lt.objs.editor.__GT_cm_ed.call(null,ed);lt.objs.editor.operation.call(null,cm_ed,((function (path,exposeds,cm_ed){ return (function (){var seq__12637_12661 = cljs.core.seq.call(null,new cljs.core.Keyword(null,"elm-exposeds-bookmarks","elm-exposeds-bookmarks",1216410620).cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,ed)));var chunk__12638_12662 = null;var count__12639_12663 = 0;var i__12640_12664 = 0;while(true){ if((i__12640_12664 < count__12639_12663)) {var bm_12665 = cljs.core._nth.call(null,chunk__12638_12662,i__12640_12664);bm_12665.clear(); { var G__12666 = seq__12637_12661; var G__12667 = chunk__12638_12662; var G__12668 = count__12639_12663; var G__12669 = (i__12640_12664 + 1); seq__12637_12661 = G__12666; chunk__12638_12662 = G__12667; count__12639_12663 = G__12668; i__12640_12664 = G__12669; continue; } } else {var temp__4092__auto___12670 = cljs.core.seq.call(null,seq__12637_12661);if(temp__4092__auto___12670) {var seq__12637_12671__$1 = temp__4092__auto___12670;if(cljs.core.chunked_seq_QMARK_.call(null,seq__12637_12671__$1)) {var c__5632__auto___12672 = cljs.core.chunk_first.call(null,seq__12637_12671__$1);{ var G__12673 = cljs.core.chunk_rest.call(null,seq__12637_12671__$1); var G__12674 = c__5632__auto___12672; var G__12675 = cljs.core.count.call(null,c__5632__auto___12672); var G__12676 = 0; seq__12637_12661 = G__12673; chunk__12638_12662 = G__12674; count__12639_12663 = G__12675; i__12640_12664 = G__12676; continue; } } else {var bm_12677 = cljs.core.first.call(null,seq__12637_12671__$1);bm_12677.clear(); { var G__12678 = cljs.core.next.call(null,seq__12637_12671__$1); var G__12679 = null; var G__12680 = 0; var G__12681 = 0; seq__12637_12661 = G__12678; chunk__12638_12662 = G__12679; count__12639_12663 = G__12680; i__12640_12664 = G__12681; continue; } } } else {} } break; } return lt.object.assoc_in_BANG_.call(null,ed,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"elm-exposeds-bookmarks","elm-exposeds-bookmarks",1216410620)], null),cljs.core.map.call(null,((function (path,exposeds,cm_ed){ return (function (exposed){return cm_ed.setBookmark({"line": (new cljs.core.Keyword(null,"line","line",1017226086).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"start","start",1123661780).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"location","location",2914947879).cljs$core$IFn$_invoke$arity$1(exposed))) - 1), "ch": 1}); });})(path,exposeds,cm_ed)) ,exposeds)); });})(path,exposeds,cm_ed)) ); return lt.object.raise.call(null,ed,new cljs.core.Keyword(null,"elm.gutter.refresh","elm.gutter.refresh",722016962)); }); lt.object.behavior_STAR_.call(null,new cljs.core.Keyword("lt.plugins.elm-light.gutter","elm-gutter-exposeds-mark","lt.plugins.elm-light.gutter/elm-gutter-exposeds-mark",2789067959),new cljs.core.Keyword(null,"reaction","reaction",4441361819),lt.plugins.elm_light.gutter.__BEH__elm_gutter_exposeds_mark,new cljs.core.Keyword(null,"triggers","triggers",2516997421),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"elm.gutter.exposeds.mark","elm.gutter.exposeds.mark",3035248815),null], null), null)); } if(!lt.util.load.provided_QMARK_('cljs.core.async.impl.protocols')) { goog.provide('cljs.core.async.impl.protocols'); goog.require('cljs.core'); cljs.core.async.impl.protocols.MAX_QUEUE_SIZE = 1024; cljs.core.async.impl.protocols.ReadPort = (function (){var obj18980 = {};return obj18980; })(); cljs.core.async.impl.protocols.take_BANG_ = (function take_BANG_(port,fn1_handler){if((function (){var and__4872__auto__ = port;if(and__4872__auto__) {return port.cljs$core$async$impl$protocols$ReadPort$take_BANG_$arity$2; } else {return and__4872__auto__; } })()) {return port.cljs$core$async$impl$protocols$ReadPort$take_BANG_$arity$2(port,fn1_handler); } else {var x__5511__auto__ = (((port == null))?null:port);return (function (){var or__4884__auto__ = (cljs.core.async.impl.protocols.take_BANG_[goog.typeOf(x__5511__auto__)]);if(or__4884__auto__) {return or__4884__auto__; } else {var or__4884__auto____$1 = (cljs.core.async.impl.protocols.take_BANG_["_"]);if(or__4884__auto____$1) {return or__4884__auto____$1; } else {throw cljs.core.missing_protocol.call(null,"ReadPort.take!",port); } } })().call(null,port,fn1_handler); } }); cljs.core.async.impl.protocols.WritePort = (function (){var obj18982 = {};return obj18982; })(); cljs.core.async.impl.protocols.put_BANG_ = (function put_BANG_(port,val,fn0_handler){if((function (){var and__4872__auto__ = port;if(and__4872__auto__) {return port.cljs$core$async$impl$protocols$WritePort$put_BANG_$arity$3; } else {return and__4872__auto__; } })()) {return port.cljs$core$async$impl$protocols$WritePort$put_BANG_$arity$3(port,val,fn0_handler); } else {var x__5511__auto__ = (((port == null))?null:port);return (function (){var or__4884__auto__ = (cljs.core.async.impl.protocols.put_BANG_[goog.typeOf(x__5511__auto__)]);if(or__4884__auto__) {return or__4884__auto__; } else {var or__4884__auto____$1 = (cljs.core.async.impl.protocols.put_BANG_["_"]);if(or__4884__auto____$1) {return or__4884__auto____$1; } else {throw cljs.core.missing_protocol.call(null,"WritePort.put!",port); } } })().call(null,port,val,fn0_handler); } }); cljs.core.async.impl.protocols.Channel = (function (){var obj18984 = {};return obj18984; })(); cljs.core.async.impl.protocols.close_BANG_ = (function close_BANG_(chan){if((function (){var and__4872__auto__ = chan;if(and__4872__auto__) {return chan.cljs$core$async$impl$protocols$Channel$close_BANG_$arity$1; } else {return and__4872__auto__; } })()) {return chan.cljs$core$async$impl$protocols$Channel$close_BANG_$arity$1(chan); } else {var x__5511__auto__ = (((chan == null))?null:chan);return (function (){var or__4884__auto__ = (cljs.core.async.impl.protocols.close_BANG_[goog.typeOf(x__5511__auto__)]);if(or__4884__auto__) {return or__4884__auto__; } else {var or__4884__auto____$1 = (cljs.core.async.impl.protocols.close_BANG_["_"]);if(or__4884__auto____$1) {return or__4884__auto____$1; } else {throw cljs.core.missing_protocol.call(null,"Channel.close!",chan); } } })().call(null,chan); } }); cljs.core.async.impl.protocols.Handler = (function (){var obj18986 = {};return obj18986; })(); cljs.core.async.impl.protocols.active_QMARK_ = (function active_QMARK_(h){if((function (){var and__4872__auto__ = h;if(and__4872__auto__) {return h.cljs$core$async$impl$protocols$Handler$active_QMARK_$arity$1; } else {return and__4872__auto__; } })()) {return h.cljs$core$async$impl$protocols$Handler$active_QMARK_$arity$1(h); } else {var x__5511__auto__ = (((h == null))?null:h);return (function (){var or__4884__auto__ = (cljs.core.async.impl.protocols.active_QMARK_[goog.typeOf(x__5511__auto__)]);if(or__4884__auto__) {return or__4884__auto__; } else {var or__4884__auto____$1 = (cljs.core.async.impl.protocols.active_QMARK_["_"]);if(or__4884__auto____$1) {return or__4884__auto____$1; } else {throw cljs.core.missing_protocol.call(null,"Handler.active?",h); } } })().call(null,h); } }); cljs.core.async.impl.protocols.commit = (function commit(h){if((function (){var and__4872__auto__ = h;if(and__4872__auto__) {return h.cljs$core$async$impl$protocols$Handler$commit$arity$1; } else {return and__4872__auto__; } })()) {return h.cljs$core$async$impl$protocols$Handler$commit$arity$1(h); } else {var x__5511__auto__ = (((h == null))?null:h);return (function (){var or__4884__auto__ = (cljs.core.async.impl.protocols.commit[goog.typeOf(x__5511__auto__)]);if(or__4884__auto__) {return or__4884__auto__; } else {var or__4884__auto____$1 = (cljs.core.async.impl.protocols.commit["_"]);if(or__4884__auto____$1) {return or__4884__auto____$1; } else {throw cljs.core.missing_protocol.call(null,"Handler.commit",h); } } })().call(null,h); } }); cljs.core.async.impl.protocols.Buffer = (function (){var obj18988 = {};return obj18988; })(); cljs.core.async.impl.protocols.full_QMARK_ = (function full_QMARK_(b){if((function (){var and__4872__auto__ = b;if(and__4872__auto__) {return b.cljs$core$async$impl$protocols$Buffer$full_QMARK_$arity$1; } else {return and__4872__auto__; } })()) {return b.cljs$core$async$impl$protocols$Buffer$full_QMARK_$arity$1(b); } else {var x__5511__auto__ = (((b == null))?null:b);return (function (){var or__4884__auto__ = (cljs.core.async.impl.protocols.full_QMARK_[goog.typeOf(x__5511__auto__)]);if(or__4884__auto__) {return or__4884__auto__; } else {var or__4884__auto____$1 = (cljs.core.async.impl.protocols.full_QMARK_["_"]);if(or__4884__auto____$1) {return or__4884__auto____$1; } else {throw cljs.core.missing_protocol.call(null,"Buffer.full?",b); } } })().call(null,b); } }); cljs.core.async.impl.protocols.remove_BANG_ = (function remove_BANG_(b){if((function (){var and__4872__auto__ = b;if(and__4872__auto__) {return b.cljs$core$async$impl$protocols$Buffer$remove_BANG_$arity$1; } else {return and__4872__auto__; } })()) {return b.cljs$core$async$impl$protocols$Buffer$remove_BANG_$arity$1(b); } else {var x__5511__auto__ = (((b == null))?null:b);return (function (){var or__4884__auto__ = (cljs.core.async.impl.protocols.remove_BANG_[goog.typeOf(x__5511__auto__)]);if(or__4884__auto__) {return or__4884__auto__; } else {var or__4884__auto____$1 = (cljs.core.async.impl.protocols.remove_BANG_["_"]);if(or__4884__auto____$1) {return or__4884__auto____$1; } else {throw cljs.core.missing_protocol.call(null,"Buffer.remove!",b); } } })().call(null,b); } }); cljs.core.async.impl.protocols.add_BANG_ = (function add_BANG_(b,itm){if((function (){var and__4872__auto__ = b;if(and__4872__auto__) {return b.cljs$core$async$impl$protocols$Buffer$add_BANG_$arity$2; } else {return and__4872__auto__; } })()) {return b.cljs$core$async$impl$protocols$Buffer$add_BANG_$arity$2(b,itm); } else {var x__5511__auto__ = (((b == null))?null:b);return (function (){var or__4884__auto__ = (cljs.core.async.impl.protocols.add_BANG_[goog.typeOf(x__5511__auto__)]);if(or__4884__auto__) {return or__4884__auto__; } else {var or__4884__auto____$1 = (cljs.core.async.impl.protocols.add_BANG_["_"]);if(or__4884__auto____$1) {return or__4884__auto____$1; } else {throw cljs.core.missing_protocol.call(null,"Buffer.add!",b); } } })().call(null,b,itm); } }); cljs.core.async.impl.protocols.UnblockingBuffer = (function (){var obj18990 = {};return obj18990; })(); } if(!lt.util.load.provided_QMARK_('cljs.core.async.impl.buffers')) { goog.provide('cljs.core.async.impl.buffers'); goog.require('cljs.core'); goog.require('cljs.core.async.impl.protocols'); goog.require('cljs.core.async.impl.protocols'); cljs.core.async.impl.buffers.acopy = (function acopy(src,src_start,dest,dest_start,len){var cnt = 0;while(true){ if((cnt < len)) {(dest[(dest_start + cnt)] = (src[(src_start + cnt)])); { var G__18945 = (cnt + 1); cnt = G__18945; continue; } } else {return null; } break; } }); /** * @constructor */ cljs.core.async.impl.buffers.RingBuffer = (function (head,tail,length,arr){ this.head = head; this.tail = tail; this.length = length; this.arr = arr; }) cljs.core.async.impl.buffers.RingBuffer.cljs$lang$type = true; cljs.core.async.impl.buffers.RingBuffer.cljs$lang$ctorStr = "cljs.core.async.impl.buffers/RingBuffer"; cljs.core.async.impl.buffers.RingBuffer.cljs$lang$ctorPrWriter = (function (this__5451__auto__,writer__5452__auto__,opt__5453__auto__){return cljs.core._write.call(null,writer__5452__auto__,"cljs.core.async.impl.buffers/RingBuffer"); }); cljs.core.async.impl.buffers.RingBuffer.prototype.pop = (function (){var self__ = this; var _ = this;if((self__.length === 0)) {return null; } else {var x = (self__.arr[self__.tail]);(self__.arr[self__.tail] = null); self__.tail = ((self__.tail + 1) % self__.arr.length); self__.length = (self__.length - 1); return x; } }); cljs.core.async.impl.buffers.RingBuffer.prototype.unshift = (function (x){var self__ = this; var _ = this;(self__.arr[self__.head] = x); self__.head = ((self__.head + 1) % self__.arr.length); self__.length = (self__.length + 1); return null; }); cljs.core.async.impl.buffers.RingBuffer.prototype.unbounded_unshift = (function (x){var self__ = this; var this$ = this;if(((self__.length + 1) === self__.arr.length)) {this$.resize(); } else {} return this$.unshift(x); }); cljs.core.async.impl.buffers.RingBuffer.prototype.resize = (function (){var self__ = this; var _ = this;var new_arr_size = (self__.arr.length * 2);var new_arr = (new Array(new_arr_size));if((self__.tail < self__.head)) {cljs.core.async.impl.buffers.acopy.call(null,self__.arr,self__.tail,new_arr,0,self__.length); self__.tail = 0; self__.head = self__.length; return self__.arr = new_arr; } else {if((self__.tail > self__.head)) {cljs.core.async.impl.buffers.acopy.call(null,self__.arr,self__.tail,new_arr,0,(self__.arr.length - self__.tail)); cljs.core.async.impl.buffers.acopy.call(null,self__.arr,0,new_arr,(self__.arr.length - self__.tail),self__.head); self__.tail = 0; self__.head = self__.length; return self__.arr = new_arr; } else {if((self__.tail === self__.head)) {self__.tail = 0; self__.head = 0; return self__.arr = new_arr; } else {return null; } } } }); cljs.core.async.impl.buffers.RingBuffer.prototype.cleanup = (function (keep_QMARK_){var self__ = this; var this$ = this;var n__5732__auto__ = self__.length;var x = 0;while(true){ if((x < n__5732__auto__)) {var v_18946 = this$.pop();if(keep_QMARK_.call(null,v_18946)) {this$.unshift(v_18946); } else {} { var G__18947 = (x + 1); x = G__18947; continue; } } else {return null; } break; } }); cljs.core.async.impl.buffers.__GT_RingBuffer = (function __GT_RingBuffer(head,tail,length,arr){return (new cljs.core.async.impl.buffers.RingBuffer(head,tail,length,arr)); }); cljs.core.async.impl.buffers.ring_buffer = (function ring_buffer(n){if((n > 0)) {} else {throw (new Error([cljs.core.str("Assert failed: "),cljs.core.str("Can't create a ring buffer of size 0"),cljs.core.str("\n"),cljs.core.str(cljs.core.pr_str.call(null,cljs.core.list(new cljs.core.Symbol(null,">",">",-1640531465,null),new cljs.core.Symbol(null,"n","n",-1640531417,null),0)))].join(''))); } return (new cljs.core.async.impl.buffers.RingBuffer(0,0,0,(new Array(n)))); }); /** * @constructor */ cljs.core.async.impl.buffers.FixedBuffer = (function (buf,n){ this.buf = buf; this.n = n; this.cljs$lang$protocol_mask$partition1$ = 0; this.cljs$lang$protocol_mask$partition0$ = 2; }) cljs.core.async.impl.buffers.FixedBuffer.cljs$lang$type = true; cljs.core.async.impl.buffers.FixedBuffer.cljs$lang$ctorStr = "cljs.core.async.impl.buffers/FixedBuffer"; cljs.core.async.impl.buffers.FixedBuffer.cljs$lang$ctorPrWriter = (function (this__5451__auto__,writer__5452__auto__,opt__5453__auto__){return cljs.core._write.call(null,writer__5452__auto__,"cljs.core.async.impl.buffers/FixedBuffer"); }); cljs.core.async.impl.buffers.FixedBuffer.prototype.cljs$core$ICounted$_count$arity$1 = (function (this$){var self__ = this; var this$__$1 = this;return self__.buf.length; }); cljs.core.async.impl.buffers.FixedBuffer.prototype.cljs$core$async$impl$protocols$Buffer$ = true; cljs.core.async.impl.buffers.FixedBuffer.prototype.cljs$core$async$impl$protocols$Buffer$full_QMARK_$arity$1 = (function (this$){var self__ = this; var this$__$1 = this;return (self__.buf.length === self__.n); }); cljs.core.async.impl.buffers.FixedBuffer.prototype.cljs$core$async$impl$protocols$Buffer$remove_BANG_$arity$1 = (function (this$){var self__ = this; var this$__$1 = this;return self__.buf.pop(); }); cljs.core.async.impl.buffers.FixedBuffer.prototype.cljs$core$async$impl$protocols$Buffer$add_BANG_$arity$2 = (function (this$,itm){var self__ = this; var this$__$1 = this;if(cljs.core.not.call(null,cljs.core.async.impl.protocols.full_QMARK_.call(null,this$__$1))) {} else {throw (new Error([cljs.core.str("Assert failed: "),cljs.core.str("Can't add to a full buffer"),cljs.core.str("\n"),cljs.core.str(cljs.core.pr_str.call(null,cljs.core.list(new cljs.core.Symbol(null,"not","not",-1640422260,null),cljs.core.list(new cljs.core.Symbol("impl","full?","impl/full?",-1337857039,null),new cljs.core.Symbol(null,"this","this",-1636972457,null)))))].join(''))); } return self__.buf.unshift(itm); }); cljs.core.async.impl.buffers.__GT_FixedBuffer = (function __GT_FixedBuffer(buf,n){return (new cljs.core.async.impl.buffers.FixedBuffer(buf,n)); }); cljs.core.async.impl.buffers.fixed_buffer = (function fixed_buffer(n){return (new cljs.core.async.impl.buffers.FixedBuffer(cljs.core.async.impl.buffers.ring_buffer.call(null,n),n)); }); /** * @constructor */ cljs.core.async.impl.buffers.DroppingBuffer = (function (buf,n){ this.buf = buf; this.n = n; this.cljs$lang$protocol_mask$partition1$ = 0; this.cljs$lang$protocol_mask$partition0$ = 2; }) cljs.core.async.impl.buffers.DroppingBuffer.cljs$lang$type = true; cljs.core.async.impl.buffers.DroppingBuffer.cljs$lang$ctorStr = "cljs.core.async.impl.buffers/DroppingBuffer"; cljs.core.async.impl.buffers.DroppingBuffer.cljs$lang$ctorPrWriter = (function (this__5451__auto__,writer__5452__auto__,opt__5453__auto__){return cljs.core._write.call(null,writer__5452__auto__,"cljs.core.async.impl.buffers/DroppingBuffer"); }); cljs.core.async.impl.buffers.DroppingBuffer.prototype.cljs$core$ICounted$_count$arity$1 = (function (this$){var self__ = this; var this$__$1 = this;return self__.buf.length; }); cljs.core.async.impl.buffers.DroppingBuffer.prototype.cljs$core$async$impl$protocols$Buffer$ = true; cljs.core.async.impl.buffers.DroppingBuffer.prototype.cljs$core$async$impl$protocols$Buffer$full_QMARK_$arity$1 = (function (this$){var self__ = this; var this$__$1 = this;return false; }); cljs.core.async.impl.buffers.DroppingBuffer.prototype.cljs$core$async$impl$protocols$Buffer$remove_BANG_$arity$1 = (function (this$){var self__ = this; var this$__$1 = this;return self__.buf.pop(); }); cljs.core.async.impl.buffers.DroppingBuffer.prototype.cljs$core$async$impl$protocols$Buffer$add_BANG_$arity$2 = (function (this$,itm){var self__ = this; var this$__$1 = this;if((self__.buf.length === self__.n)) {return null; } else {return self__.buf.unshift(itm); } }); cljs.core.async.impl.buffers.DroppingBuffer.prototype.cljs$core$async$impl$protocols$UnblockingBuffer$ = true; cljs.core.async.impl.buffers.__GT_DroppingBuffer = (function __GT_DroppingBuffer(buf,n){return (new cljs.core.async.impl.buffers.DroppingBuffer(buf,n)); }); cljs.core.async.impl.buffers.dropping_buffer = (function dropping_buffer(n){return (new cljs.core.async.impl.buffers.DroppingBuffer(cljs.core.async.impl.buffers.ring_buffer.call(null,n),n)); }); /** * @constructor */ cljs.core.async.impl.buffers.SlidingBuffer = (function (buf,n){ this.buf = buf; this.n = n; this.cljs$lang$protocol_mask$partition1$ = 0; this.cljs$lang$protocol_mask$partition0$ = 2; }) cljs.core.async.impl.buffers.SlidingBuffer.cljs$lang$type = true; cljs.core.async.impl.buffers.SlidingBuffer.cljs$lang$ctorStr = "cljs.core.async.impl.buffers/SlidingBuffer"; cljs.core.async.impl.buffers.SlidingBuffer.cljs$lang$ctorPrWriter = (function (this__5451__auto__,writer__5452__auto__,opt__5453__auto__){return cljs.core._write.call(null,writer__5452__auto__,"cljs.core.async.impl.buffers/SlidingBuffer"); }); cljs.core.async.impl.buffers.SlidingBuffer.prototype.cljs$core$ICounted$_count$arity$1 = (function (this$){var self__ = this; var this$__$1 = this;return self__.buf.length; }); cljs.core.async.impl.buffers.SlidingBuffer.prototype.cljs$core$async$impl$protocols$Buffer$ = true; cljs.core.async.impl.buffers.SlidingBuffer.prototype.cljs$core$async$impl$protocols$Buffer$full_QMARK_$arity$1 = (function (this$){var self__ = this; var this$__$1 = this;return false; }); cljs.core.async.impl.buffers.SlidingBuffer.prototype.cljs$core$async$impl$protocols$Buffer$remove_BANG_$arity$1 = (function (this$){var self__ = this; var this$__$1 = this;return self__.buf.pop(); }); cljs.core.async.impl.buffers.SlidingBuffer.prototype.cljs$core$async$impl$protocols$Buffer$add_BANG_$arity$2 = (function (this$,itm){var self__ = this; var this$__$1 = this;if((self__.buf.length === self__.n)) {cljs.core.async.impl.protocols.remove_BANG_.call(null,this$__$1); } else {} return self__.buf.unshift(itm); }); cljs.core.async.impl.buffers.SlidingBuffer.prototype.cljs$core$async$impl$protocols$UnblockingBuffer$ = true; cljs.core.async.impl.buffers.__GT_SlidingBuffer = (function __GT_SlidingBuffer(buf,n){return (new cljs.core.async.impl.buffers.SlidingBuffer(buf,n)); }); cljs.core.async.impl.buffers.sliding_buffer = (function sliding_buffer(n){return (new cljs.core.async.impl.buffers.SlidingBuffer(cljs.core.async.impl.buffers.ring_buffer.call(null,n),n)); }); } if(!lt.util.load.provided_QMARK_('cljs.core.async.impl.dispatch')) { goog.provide('cljs.core.async.impl.dispatch'); goog.require('cljs.core'); goog.require('cljs.core.async.impl.buffers'); goog.require('cljs.core.async.impl.buffers'); cljs.core.async.impl.dispatch.message_channel = null; cljs.core.async.impl.dispatch.tasks = cljs.core.async.impl.buffers.ring_buffer.call(null,32); cljs.core.async.impl.dispatch.running_QMARK_ = false; cljs.core.async.impl.dispatch.queued_QMARK_ = false; cljs.core.async.impl.dispatch.TASK_BATCH_SIZE = 1024; cljs.core.async.impl.dispatch.process_messages = (function process_messages(){cljs.core.async.impl.dispatch.running_QMARK_ = true; cljs.core.async.impl.dispatch.queued_QMARK_ = false; var count_18976 = 0;while(true){ var m_18977 = cljs.core.async.impl.dispatch.tasks.pop();if((m_18977 == null)) {} else {m_18977.call(null); if((count_18976 < cljs.core.async.impl.dispatch.TASK_BATCH_SIZE)) {{ var G__18978 = (count_18976 + 1); count_18976 = G__18978; continue; } } else {} } break; } cljs.core.async.impl.dispatch.running_QMARK_ = false; if((cljs.core.async.impl.dispatch.tasks.length > 0)) {return cljs.core.async.impl.dispatch.queue_dispatcher.call(null); } else {return null; } }); if(typeof MessageChannel !== 'undefined') {cljs.core.async.impl.dispatch.message_channel = (new MessageChannel()); cljs.core.async.impl.dispatch.message_channel.port1.onmessage = (function (msg){return cljs.core.async.impl.dispatch.process_messages.call(null); }); } else {} cljs.core.async.impl.dispatch.queue_dispatcher = (function queue_dispatcher(){if(cljs.core.truth_((function (){var and__4872__auto__ = cljs.core.async.impl.dispatch.queued_QMARK_;if(and__4872__auto__) {return cljs.core.async.impl.dispatch.running_QMARK_; } else {return and__4872__auto__; } })())) {return null; } else {cljs.core.async.impl.dispatch.queued_QMARK_ = true; if(typeof MessageChannel !== 'undefined') {return cljs.core.async.impl.dispatch.message_channel.port2.postMessage(0); } else {if(typeof setImmediate !== 'undefined') {return setImmediate(cljs.core.async.impl.dispatch.process_messages); } else {if(new cljs.core.Keyword(null,"else","else",1017020587)) {return setTimeout(cljs.core.async.impl.dispatch.process_messages,0); } else {return null; } } } } }); cljs.core.async.impl.dispatch.run = (function run(f){cljs.core.async.impl.dispatch.tasks.unbounded_unshift(f); return cljs.core.async.impl.dispatch.queue_dispatcher.call(null); }); cljs.core.async.impl.dispatch.queue_delay = (function queue_delay(f,delay){return setTimeout(f,delay); }); } if(!lt.util.load.provided_QMARK_('cljs.core.async.impl.channels')) { goog.provide('cljs.core.async.impl.channels'); goog.require('cljs.core'); goog.require('cljs.core.async.impl.buffers'); goog.require('cljs.core.async.impl.buffers'); goog.require('cljs.core.async.impl.dispatch'); goog.require('cljs.core.async.impl.dispatch'); goog.require('cljs.core.async.impl.protocols'); goog.require('cljs.core.async.impl.protocols'); cljs.core.async.impl.channels.box = (function box(val){if(typeof cljs.core.async.impl.channels.t18951 !== 'undefined') {} else { /** * @constructor */ cljs.core.async.impl.channels.t18951 = (function (val,box,meta18952){ this.val = val; this.box = box; this.meta18952 = meta18952; this.cljs$lang$protocol_mask$partition1$ = 0; this.cljs$lang$protocol_mask$partition0$ = 425984; }) cljs.core.async.impl.channels.t18951.cljs$lang$type = true; cljs.core.async.impl.channels.t18951.cljs$lang$ctorStr = "cljs.core.async.impl.channels/t18951"; cljs.core.async.impl.channels.t18951.cljs$lang$ctorPrWriter = (function (this__5451__auto__,writer__5452__auto__,opt__5453__auto__){return cljs.core._write.call(null,writer__5452__auto__,"cljs.core.async.impl.channels/t18951"); }); cljs.core.async.impl.channels.t18951.prototype.cljs$core$IDeref$_deref$arity$1 = (function (_){var self__ = this; var ___$1 = this;return self__.val; }); cljs.core.async.impl.channels.t18951.prototype.cljs$core$IMeta$_meta$arity$1 = (function (_18953){var self__ = this; var _18953__$1 = this;return self__.meta18952; }); cljs.core.async.impl.channels.t18951.prototype.cljs$core$IWithMeta$_with_meta$arity$2 = (function (_18953,meta18952__$1){var self__ = this; var _18953__$1 = this;return (new cljs.core.async.impl.channels.t18951(self__.val,self__.box,meta18952__$1)); }); cljs.core.async.impl.channels.__GT_t18951 = (function __GT_t18951(val__$1,box__$1,meta18952){return (new cljs.core.async.impl.channels.t18951(val__$1,box__$1,meta18952)); }); } return (new cljs.core.async.impl.channels.t18951(val,box,null)); }); /** * @constructor */ cljs.core.async.impl.channels.PutBox = (function (handler,val){ this.handler = handler; this.val = val; }) cljs.core.async.impl.channels.PutBox.cljs$lang$type = true; cljs.core.async.impl.channels.PutBox.cljs$lang$ctorStr = "cljs.core.async.impl.channels/PutBox"; cljs.core.async.impl.channels.PutBox.cljs$lang$ctorPrWriter = (function (this__5454__auto__,writer__5455__auto__,opts__5456__auto__){return cljs.core._write.call(null,writer__5455__auto__,"cljs.core.async.impl.channels/PutBox"); }); cljs.core.async.impl.channels.__GT_PutBox = (function __GT_PutBox(handler,val){return (new cljs.core.async.impl.channels.PutBox(handler,val)); }); cljs.core.async.impl.channels.put_active_QMARK_ = (function put_active_QMARK_(box){return cljs.core.async.impl.protocols.active_QMARK_.call(null,box.handler); }); cljs.core.async.impl.channels.MAX_DIRTY = 64; /** * @constructor */ cljs.core.async.impl.channels.ManyToManyChannel = (function (takes,dirty_takes,puts,dirty_puts,buf,closed){ this.takes = takes; this.dirty_takes = dirty_takes; this.puts = puts; this.dirty_puts = dirty_puts; this.buf = buf; this.closed = closed; }) cljs.core.async.impl.channels.ManyToManyChannel.cljs$lang$type = true; cljs.core.async.impl.channels.ManyToManyChannel.cljs$lang$ctorStr = "cljs.core.async.impl.channels/ManyToManyChannel"; cljs.core.async.impl.channels.ManyToManyChannel.cljs$lang$ctorPrWriter = (function (this__5451__auto__,writer__5452__auto__,opt__5453__auto__){return cljs.core._write.call(null,writer__5452__auto__,"cljs.core.async.impl.channels/ManyToManyChannel"); }); cljs.core.async.impl.channels.ManyToManyChannel.prototype.cljs$core$async$impl$protocols$Channel$ = true; cljs.core.async.impl.channels.ManyToManyChannel.prototype.cljs$core$async$impl$protocols$Channel$close_BANG_$arity$1 = (function (this$){var self__ = this; var this$__$1 = this;if(self__.closed) {return null; } else {self__.closed = true; while(true){ var taker_18964 = self__.takes.pop();if((taker_18964 == null)) {} else {if(cljs.core.async.impl.protocols.active_QMARK_.call(null,taker_18964)) {var take_cb_18965 = cljs.core.async.impl.protocols.commit.call(null,taker_18964);cljs.core.async.impl.dispatch.run.call(null,((function (take_cb_18965,taker_18964,this$__$1){ return (function (){return take_cb_18965.call(null,null); });})(take_cb_18965,taker_18964,this$__$1)) ); } else {} { continue; } } break; } return null; } }); cljs.core.async.impl.channels.ManyToManyChannel.prototype.cljs$core$async$impl$protocols$ReadPort$ = true; cljs.core.async.impl.channels.ManyToManyChannel.prototype.cljs$core$async$impl$protocols$ReadPort$take_BANG_$arity$2 = (function (this$,handler){var self__ = this; var this$__$1 = this;if(!(cljs.core.async.impl.protocols.active_QMARK_.call(null,handler))) {return null; } else {if((!((self__.buf == null))) && ((cljs.core.count.call(null,self__.buf) > 0))) {var _ = cljs.core.async.impl.protocols.commit.call(null,handler);return cljs.core.async.impl.channels.box.call(null,cljs.core.async.impl.protocols.remove_BANG_.call(null,self__.buf)); } else {while(true){ var putter = self__.puts.pop();if(!((putter == null))) {var put_handler = putter.handler;var val = putter.val;if(cljs.core.async.impl.protocols.active_QMARK_.call(null,put_handler)) {var put_cb = cljs.core.async.impl.protocols.commit.call(null,put_handler);var _ = cljs.core.async.impl.protocols.commit.call(null,handler);cljs.core.async.impl.dispatch.run.call(null,put_cb); return cljs.core.async.impl.channels.box.call(null,val); } else {{ continue; } } } else {if(self__.closed) {var _ = cljs.core.async.impl.protocols.commit.call(null,handler);return cljs.core.async.impl.channels.box.call(null,null); } else {if((self__.dirty_takes > cljs.core.async.impl.channels.MAX_DIRTY)) {self__.dirty_takes = 0; self__.takes.cleanup(cljs.core.async.impl.protocols.active_QMARK_); } else {self__.dirty_takes = (self__.dirty_takes + 1); } if((self__.takes.length < cljs.core.async.impl.protocols.MAX_QUEUE_SIZE)) {} else {throw (new Error([cljs.core.str("Assert failed: "),cljs.core.str([cljs.core.str("No more than "),cljs.core.str(cljs.core.async.impl.protocols.MAX_QUEUE_SIZE),cljs.core.str(" pending takes are allowed on a single channel.")].join('')),cljs.core.str("\n"),cljs.core.str(cljs.core.pr_str.call(null,cljs.core.list(new cljs.core.Symbol(null,"<","<",-1640531467,null),cljs.core.list(new cljs.core.Symbol(null,".-length",".-length",1395928862,null),new cljs.core.Symbol(null,"takes","takes",-1530407291,null)),new cljs.core.Symbol("impl","MAX-QUEUE-SIZE","impl/MAX-QUEUE-SIZE",-1989946393,null))))].join(''))); } self__.takes.unbounded_unshift(handler); return null; } } break; } } } }); cljs.core.async.impl.channels.ManyToManyChannel.prototype.cljs$core$async$impl$protocols$WritePort$ = true; cljs.core.async.impl.channels.ManyToManyChannel.prototype.cljs$core$async$impl$protocols$WritePort$put_BANG_$arity$3 = (function (this$,val,handler){var self__ = this; var this$__$1 = this;if(!((val == null))) {} else {throw (new Error([cljs.core.str("Assert failed: "),cljs.core.str("Can't put nil in on a channel"),cljs.core.str("\n"),cljs.core.str(cljs.core.pr_str.call(null,cljs.core.list(new cljs.core.Symbol(null,"not","not",-1640422260,null),cljs.core.list(new cljs.core.Symbol(null,"nil?","nil?",-1637150201,null),new cljs.core.Symbol(null,"val","val",-1640415014,null)))))].join(''))); } var closed__$1 = self__.closed;if((closed__$1) || (!(cljs.core.async.impl.protocols.active_QMARK_.call(null,handler)))) {return cljs.core.async.impl.channels.box.call(null,null); } else {while(true){ var taker = self__.takes.pop();if(!((taker == null))) {if(cljs.core.async.impl.protocols.active_QMARK_.call(null,taker)) {var take_cb = cljs.core.async.impl.protocols.commit.call(null,taker);var _ = cljs.core.async.impl.protocols.commit.call(null,handler);cljs.core.async.impl.dispatch.run.call(null,((function (take_cb,_,taker,closed__$1,this$__$1){ return (function (){return take_cb.call(null,val); });})(take_cb,_,taker,closed__$1,this$__$1)) ); return cljs.core.async.impl.channels.box.call(null,null); } else {{ continue; } } } else {if(!(((self__.buf == null)) || (cljs.core.async.impl.protocols.full_QMARK_.call(null,self__.buf)))) {var _ = cljs.core.async.impl.protocols.commit.call(null,handler);cljs.core.async.impl.protocols.add_BANG_.call(null,self__.buf,val); return cljs.core.async.impl.channels.box.call(null,null); } else {if((self__.dirty_puts > cljs.core.async.impl.channels.MAX_DIRTY)) {self__.dirty_puts = 0; self__.puts.cleanup(cljs.core.async.impl.channels.put_active_QMARK_); } else {self__.dirty_puts = (self__.dirty_puts + 1); } if((self__.puts.length < cljs.core.async.impl.protocols.MAX_QUEUE_SIZE)) {} else {throw (new Error([cljs.core.str("Assert failed: "),cljs.core.str([cljs.core.str("No more than "),cljs.core.str(cljs.core.async.impl.protocols.MAX_QUEUE_SIZE),cljs.core.str(" pending puts are allowed on a single channel."),cljs.core.str(" Consider using a windowed buffer.")].join('')),cljs.core.str("\n"),cljs.core.str(cljs.core.pr_str.call(null,cljs.core.list(new cljs.core.Symbol(null,"<","<",-1640531467,null),cljs.core.list(new cljs.core.Symbol(null,".-length",".-length",1395928862,null),new cljs.core.Symbol(null,"puts","puts",-1637078787,null)),new cljs.core.Symbol("impl","MAX-QUEUE-SIZE","impl/MAX-QUEUE-SIZE",-1989946393,null))))].join(''))); } self__.puts.unbounded_unshift((new cljs.core.async.impl.channels.PutBox(handler,val))); return null; } } break; } } }); cljs.core.async.impl.channels.__GT_ManyToManyChannel = (function __GT_ManyToManyChannel(takes,dirty_takes,puts,dirty_puts,buf,closed){return (new cljs.core.async.impl.channels.ManyToManyChannel(takes,dirty_takes,puts,dirty_puts,buf,closed)); }); cljs.core.async.impl.channels.chan = (function chan(buf){return (new cljs.core.async.impl.channels.ManyToManyChannel(cljs.core.async.impl.buffers.ring_buffer.call(null,32),0,cljs.core.async.impl.buffers.ring_buffer.call(null,32),0,buf,null)); }); } if(!lt.util.load.provided_QMARK_('cljs.core.async.impl.timers')) { goog.provide('cljs.core.async.impl.timers'); goog.require('cljs.core'); goog.require('cljs.core.async.impl.dispatch'); goog.require('cljs.core.async.impl.dispatch'); goog.require('cljs.core.async.impl.channels'); goog.require('cljs.core.async.impl.channels'); goog.require('cljs.core.async.impl.protocols'); goog.require('cljs.core.async.impl.protocols'); cljs.core.async.impl.timers.MAX_LEVEL = 15; cljs.core.async.impl.timers.P = (1 / 2); cljs.core.async.impl.timers.random_level = (function() { var random_level = null; var random_level__0 = (function (){return random_level.call(null,0); }); var random_level__1 = (function (level){while(true){ if(((Math.random() < cljs.core.async.impl.timers.P)) && ((level < cljs.core.async.impl.timers.MAX_LEVEL))) {{ var G__19011 = (level + 1); level = G__19011; continue; } } else {return level; } break; } }); random_level = function(level){ switch(arguments.length){ case 0: return random_level__0.call(this); case 1: return random_level__1.call(this,level); } throw(new Error('Invalid arity: ' + arguments.length)); }; random_level.cljs$core$IFn$_invoke$arity$0 = random_level__0; random_level.cljs$core$IFn$_invoke$arity$1 = random_level__1; return random_level; })() ; /** * @constructor */ cljs.core.async.impl.timers.SkipListNode = (function (key,val,forward){ this.key = key; this.val = val; this.forward = forward; this.cljs$lang$protocol_mask$partition1$ = 0; this.cljs$lang$protocol_mask$partition0$ = 2155872256; }) cljs.core.async.impl.timers.SkipListNode.cljs$lang$type = true; cljs.core.async.impl.timers.SkipListNode.cljs$lang$ctorStr = "cljs.core.async.impl.timers/SkipListNode"; cljs.core.async.impl.timers.SkipListNode.cljs$lang$ctorPrWriter = (function (this__5451__auto__,writer__5452__auto__,opt__5453__auto__){return cljs.core._write.call(null,writer__5452__auto__,"cljs.core.async.impl.timers/SkipListNode"); }); cljs.core.async.impl.timers.SkipListNode.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 = (function (coll,writer,opts){var self__ = this; var coll__$1 = this;return cljs.core.pr_sequential_writer.call(null,writer,cljs.core.pr_writer,"["," ","]",opts,coll__$1); }); cljs.core.async.impl.timers.SkipListNode.prototype.cljs$core$ISeqable$_seq$arity$1 = (function (coll){var self__ = this; var coll__$1 = this;return cljs.core._conj.call(null,cljs.core._conj.call(null,cljs.core.List.EMPTY,self__.val),self__.key); }); cljs.core.async.impl.timers.__GT_SkipListNode = (function __GT_SkipListNode(key,val,forward){return (new cljs.core.async.impl.timers.SkipListNode(key,val,forward)); }); cljs.core.async.impl.timers.skip_list_node = (function() { var skip_list_node = null; var skip_list_node__1 = (function (level){return skip_list_node.call(null,null,null,level); }); var skip_list_node__3 = (function (k,v,level){var arr = (new Array((level + 1)));var i_19012 = 0;while(true){ if((i_19012 < arr.length)) {(arr[i_19012] = null); { var G__19013 = (i_19012 + 1); i_19012 = G__19013; continue; } } else {} break; } return (new cljs.core.async.impl.timers.SkipListNode(k,v,arr)); }); skip_list_node = function(k,v,level){ switch(arguments.length){ case 1: return skip_list_node__1.call(this,k); case 3: return skip_list_node__3.call(this,k,v,level); } throw(new Error('Invalid arity: ' + arguments.length)); }; skip_list_node.cljs$core$IFn$_invoke$arity$1 = skip_list_node__1; skip_list_node.cljs$core$IFn$_invoke$arity$3 = skip_list_node__3; return skip_list_node; })() ; cljs.core.async.impl.timers.least_greater_node = (function() { var least_greater_node = null; var least_greater_node__3 = (function (x,k,level){return least_greater_node.call(null,x,k,level,null); }); var least_greater_node__4 = (function (x,k,level,update){while(true){ if(!((level < 0))) {var x__$1 = (function (){var x__$1 = x;while(true){ var temp__4090__auto__ = (x__$1.forward[level]);if(cljs.core.truth_(temp__4090__auto__)) {var x_SINGLEQUOTE_ = temp__4090__auto__;if((x_SINGLEQUOTE_.key < k)) {{ var G__19014 = x_SINGLEQUOTE_; x__$1 = G__19014; continue; } } else {return x__$1; } } else {return x__$1; } break; } })();if((update == null)) {} else {(update[level] = x__$1); } { var G__19015 = x__$1; var G__19016 = k; var G__19017 = (level - 1); var G__19018 = update; x = G__19015; k = G__19016; level = G__19017; update = G__19018; continue; } } else {return x; } break; } }); least_greater_node = function(x,k,level,update){ switch(arguments.length){ case 3: return least_greater_node__3.call(this,x,k,level); case 4: return least_greater_node__4.call(this,x,k,level,update); } throw(new Error('Invalid arity: ' + arguments.length)); }; least_greater_node.cljs$core$IFn$_invoke$arity$3 = least_greater_node__3; least_greater_node.cljs$core$IFn$_invoke$arity$4 = least_greater_node__4; return least_greater_node; })() ; /** * @constructor */ cljs.core.async.impl.timers.SkipList = (function (header,level){ this.header = header; this.level = level; this.cljs$lang$protocol_mask$partition1$ = 0; this.cljs$lang$protocol_mask$partition0$ = 2155872256; }) cljs.core.async.impl.timers.SkipList.cljs$lang$type = true; cljs.core.async.impl.timers.SkipList.cljs$lang$ctorStr = "cljs.core.async.impl.timers/SkipList"; cljs.core.async.impl.timers.SkipList.cljs$lang$ctorPrWriter = (function (this__5451__auto__,writer__5452__auto__,opt__5453__auto__){return cljs.core._write.call(null,writer__5452__auto__,"cljs.core.async.impl.timers/SkipList"); }); cljs.core.async.impl.timers.SkipList.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 = (function (coll,writer,opts){var self__ = this; var coll__$1 = this;var pr_pair = ((function (coll__$1){ return (function (keyval){return cljs.core.pr_sequential_writer.call(null,writer,cljs.core.pr_writer,""," ","",opts,keyval); });})(coll__$1)) ;return cljs.core.pr_sequential_writer.call(null,writer,pr_pair,"{",", ","}",opts,coll__$1); }); cljs.core.async.impl.timers.SkipList.prototype.cljs$core$ISeqable$_seq$arity$1 = (function (coll){var self__ = this; var coll__$1 = this;var iter = ((function (coll__$1){ return (function iter(node){return (new cljs.core.LazySeq(null,((function (coll__$1){ return (function (){if((node == null)) {return null; } else {return cljs.core.cons.call(null,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [node.key,node.val], null),iter.call(null,(node.forward[0]))); } });})(coll__$1)) ,null,null)); });})(coll__$1)) ; return iter.call(null,(self__.header.forward[0])); }); cljs.core.async.impl.timers.SkipList.prototype.put = (function (k,v){var self__ = this; var coll = this;var update = (new Array(cljs.core.async.impl.timers.MAX_LEVEL));var x = cljs.core.async.impl.timers.least_greater_node.call(null,self__.header,k,self__.level,update);var x__$1 = (x.forward[0]);if((!((x__$1 == null))) && ((x__$1.key === k))) {return x__$1.val = v; } else {var new_level = cljs.core.async.impl.timers.random_level.call(null);if((new_level > self__.level)) {var i_19019 = (self__.level + 1);while(true){ if((i_19019 <= (new_level + 1))) {(update[i_19019] = self__.header); { var G__19020 = (i_19019 + 1); i_19019 = G__19020; continue; } } else {} break; } self__.level = new_level; } else {} var x__$2 = cljs.core.async.impl.timers.skip_list_node.call(null,k,v,(new Array(new_level)));var i = 0;while(true){ if((i <= self__.level)) {var links = (update[i]).forward;(x__$2.forward[i] = (links[i])); return (links[i] = x__$2); } else {return null; } break; } } }); cljs.core.async.impl.timers.SkipList.prototype.remove = (function (k){var self__ = this; var coll = this;var update = (new Array(cljs.core.async.impl.timers.MAX_LEVEL));var x = cljs.core.async.impl.timers.least_greater_node.call(null,self__.header,k,self__.level,update);var x__$1 = (x.forward[0]);if((!((x__$1 == null))) && ((x__$1.key === k))) {var i_19021 = 0;while(true){ if((i_19021 <= self__.level)) {var links_19022 = (update[i_19021]).forward;if(((links_19022[i_19021]) === x__$1)) {(links_19022[i_19021] = (x__$1.forward[i_19021])); { var G__19023 = (i_19021 + 1); i_19021 = G__19023; continue; } } else {{ var G__19024 = (i_19021 + 1); i_19021 = G__19024; continue; } } } else {} break; } while(true){ if(((self__.level > 0)) && (((self__.header.forward[self__.level]) == null))) {self__.level = (self__.level - 1); { continue; } } else {return null; } break; } } else {return null; } }); cljs.core.async.impl.timers.SkipList.prototype.ceilingEntry = (function (k){var self__ = this; var coll = this;var x = self__.header;var level__$1 = self__.level;while(true){ if(!((level__$1 < 0))) {var nx = (function (){var x__$1 = x;while(true){ var x_SINGLEQUOTE_ = (x__$1.forward[level__$1]);if((x_SINGLEQUOTE_ == null)) {return null; } else {if((x_SINGLEQUOTE_.key >= k)) {return x_SINGLEQUOTE_; } else {{ var G__19025 = x_SINGLEQUOTE_; x__$1 = G__19025; continue; } } } break; } })();if(!((nx == null))) {{ var G__19026 = nx; var G__19027 = (level__$1 - 1); x = G__19026; level__$1 = G__19027; continue; } } else {{ var G__19028 = x; var G__19029 = (level__$1 - 1); x = G__19028; level__$1 = G__19029; continue; } } } else {if((x === self__.header)) {return null; } else {return x; } } break; } }); cljs.core.async.impl.timers.SkipList.prototype.floorEntry = (function (k){var self__ = this; var coll = this;var x = self__.header;var level__$1 = self__.level;while(true){ if(!((level__$1 < 0))) {var nx = (function (){var x__$1 = x;while(true){ var x_SINGLEQUOTE_ = (x__$1.forward[level__$1]);if(!((x_SINGLEQUOTE_ == null))) {if((x_SINGLEQUOTE_.key > k)) {return x__$1; } else {{ var G__19030 = x_SINGLEQUOTE_; x__$1 = G__19030; continue; } } } else {if((level__$1 === 0)) {return x__$1; } else {return null; } } break; } })();if(cljs.core.truth_(nx)) {{ var G__19031 = nx; var G__19032 = (level__$1 - 1); x = G__19031; level__$1 = G__19032; continue; } } else {{ var G__19033 = x; var G__19034 = (level__$1 - 1); x = G__19033; level__$1 = G__19034; continue; } } } else {if((x === self__.header)) {return null; } else {return x; } } break; } }); cljs.core.async.impl.timers.__GT_SkipList = (function __GT_SkipList(header,level){return (new cljs.core.async.impl.timers.SkipList(header,level)); }); cljs.core.async.impl.timers.skip_list = (function skip_list(){return (new cljs.core.async.impl.timers.SkipList(cljs.core.async.impl.timers.skip_list_node.call(null,0),0)); }); cljs.core.async.impl.timers.timeouts_map = cljs.core.async.impl.timers.skip_list.call(null); cljs.core.async.impl.timers.TIMEOUT_RESOLUTION_MS = 10; /** * returns a channel that will close after msecs */ cljs.core.async.impl.timers.timeout = (function timeout(msecs){var timeout__$1 = ((new Date()).valueOf() + msecs);var me = cljs.core.async.impl.timers.timeouts_map.ceilingEntry(timeout__$1);var or__4884__auto__ = (cljs.core.truth_((function (){var and__4872__auto__ = me;if(cljs.core.truth_(and__4872__auto__)) {return (me.key < (timeout__$1 + cljs.core.async.impl.timers.TIMEOUT_RESOLUTION_MS)); } else {return and__4872__auto__; } })())?me.val:null);if(cljs.core.truth_(or__4884__auto__)) {return or__4884__auto__; } else {var timeout_channel = cljs.core.async.impl.channels.chan.call(null,null);cljs.core.async.impl.timers.timeouts_map.put(timeout__$1,timeout_channel); cljs.core.async.impl.dispatch.queue_delay.call(null,((function (timeout_channel,or__4884__auto__,timeout__$1,me){ return (function (){cljs.core.async.impl.timers.timeouts_map.remove(timeout__$1); return cljs.core.async.impl.protocols.close_BANG_.call(null,timeout_channel); });})(timeout_channel,or__4884__auto__,timeout__$1,me)) ,msecs); return timeout_channel; } }); } if(!lt.util.load.provided_QMARK_('cljs.core.async.impl.ioc-helpers')) { goog.provide('cljs.core.async.impl.ioc_helpers'); goog.require('cljs.core'); goog.require('cljs.core.async.impl.protocols'); goog.require('cljs.core.async.impl.protocols'); cljs.core.async.impl.ioc_helpers.FN_IDX = 0; cljs.core.async.impl.ioc_helpers.STATE_IDX = 1; cljs.core.async.impl.ioc_helpers.VALUE_IDX = 2; cljs.core.async.impl.ioc_helpers.BINDINGS_IDX = 3; cljs.core.async.impl.ioc_helpers.EXCEPTION_FRAMES = 4; cljs.core.async.impl.ioc_helpers.CURRENT_EXCEPTION = 5; cljs.core.async.impl.ioc_helpers.USER_START_IDX = 6; cljs.core.async.impl.ioc_helpers.aset_object = (function aset_object(arr,idx,o){return (arr[idx][o]); }); cljs.core.async.impl.ioc_helpers.aget_object = (function aget_object(arr,idx){return (arr[idx]); }); /** * Returns true if the machine is in a finished state */ cljs.core.async.impl.ioc_helpers.finished_QMARK_ = (function finished_QMARK_(state_array){return cljs.core.keyword_identical_QMARK_.call(null,(state_array[cljs.core.async.impl.ioc_helpers.STATE_IDX]),new cljs.core.Keyword(null,"finished","finished",4635210724)); }); cljs.core.async.impl.ioc_helpers.fn_handler = (function fn_handler(f){if(typeof cljs.core.async.impl.ioc_helpers.t18875 !== 'undefined') {} else { /** * @constructor */ cljs.core.async.impl.ioc_helpers.t18875 = (function (f,fn_handler,meta18876){ this.f = f; this.fn_handler = fn_handler; this.meta18876 = meta18876; this.cljs$lang$protocol_mask$partition1$ = 0; this.cljs$lang$protocol_mask$partition0$ = 393216; }) cljs.core.async.impl.ioc_helpers.t18875.cljs$lang$type = true; cljs.core.async.impl.ioc_helpers.t18875.cljs$lang$ctorStr = "cljs.core.async.impl.ioc-helpers/t18875"; cljs.core.async.impl.ioc_helpers.t18875.cljs$lang$ctorPrWriter = (function (this__5451__auto__,writer__5452__auto__,opt__5453__auto__){return cljs.core._write.call(null,writer__5452__auto__,"cljs.core.async.impl.ioc-helpers/t18875"); }); cljs.core.async.impl.ioc_helpers.t18875.prototype.cljs$core$async$impl$protocols$Handler$ = true; cljs.core.async.impl.ioc_helpers.t18875.prototype.cljs$core$async$impl$protocols$Handler$active_QMARK_$arity$1 = (function (_){var self__ = this; var ___$1 = this;return true; }); cljs.core.async.impl.ioc_helpers.t18875.prototype.cljs$core$async$impl$protocols$Handler$commit$arity$1 = (function (_){var self__ = this; var ___$1 = this;return self__.f; }); cljs.core.async.impl.ioc_helpers.t18875.prototype.cljs$core$IMeta$_meta$arity$1 = (function (_18877){var self__ = this; var _18877__$1 = this;return self__.meta18876; }); cljs.core.async.impl.ioc_helpers.t18875.prototype.cljs$core$IWithMeta$_with_meta$arity$2 = (function (_18877,meta18876__$1){var self__ = this; var _18877__$1 = this;return (new cljs.core.async.impl.ioc_helpers.t18875(self__.f,self__.fn_handler,meta18876__$1)); }); cljs.core.async.impl.ioc_helpers.__GT_t18875 = (function __GT_t18875(f__$1,fn_handler__$1,meta18876){return (new cljs.core.async.impl.ioc_helpers.t18875(f__$1,fn_handler__$1,meta18876)); }); } return (new cljs.core.async.impl.ioc_helpers.t18875(f,fn_handler,null)); }); cljs.core.async.impl.ioc_helpers.run_state_machine = (function run_state_machine(state){return cljs.core.async.impl.ioc_helpers.aget_object.call(null,state,cljs.core.async.impl.ioc_helpers.FN_IDX).call(null,state); }); cljs.core.async.impl.ioc_helpers.run_state_machine_wrapped = (function run_state_machine_wrapped(state){try{return cljs.core.async.impl.ioc_helpers.run_state_machine.call(null,state); }catch (e18879){if((e18879 instanceof Object)) {var ex = e18879;cljs.core.async.impl.protocols.close_BANG_.call(null,cljs.core.async.impl.ioc_helpers.aget_object.call(null,state,cljs.core.async.impl.ioc_helpers.USER_START_IDX)); throw ex; } else {if(new cljs.core.Keyword(null,"else","else",1017020587)) {throw e18879; } else {return null; } } }}); cljs.core.async.impl.ioc_helpers.take_BANG_ = (function take_BANG_(state,blk,c){var temp__4090__auto__ = cljs.core.async.impl.protocols.take_BANG_.call(null,c,cljs.core.async.impl.ioc_helpers.fn_handler.call(null,(function (x){var statearr_18882_18925 = state;(statearr_18882_18925[cljs.core.async.impl.ioc_helpers.VALUE_IDX] = x); (statearr_18882_18925[cljs.core.async.impl.ioc_helpers.STATE_IDX] = blk); return cljs.core.async.impl.ioc_helpers.run_state_machine_wrapped.call(null,state); })));if(cljs.core.truth_(temp__4090__auto__)) {var cb = temp__4090__auto__;var statearr_18883_18926 = state;(statearr_18883_18926[cljs.core.async.impl.ioc_helpers.VALUE_IDX] = cljs.core.deref.call(null,cb)); (statearr_18883_18926[cljs.core.async.impl.ioc_helpers.STATE_IDX] = blk); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {return null; } }); cljs.core.async.impl.ioc_helpers.put_BANG_ = (function put_BANG_(state,blk,c,val){var temp__4090__auto__ = cljs.core.async.impl.protocols.put_BANG_.call(null,c,val,cljs.core.async.impl.ioc_helpers.fn_handler.call(null,(function (){var statearr_18886_18927 = state;(statearr_18886_18927[cljs.core.async.impl.ioc_helpers.VALUE_IDX] = null); (statearr_18886_18927[cljs.core.async.impl.ioc_helpers.STATE_IDX] = blk); return cljs.core.async.impl.ioc_helpers.run_state_machine_wrapped.call(null,state); })));if(cljs.core.truth_(temp__4090__auto__)) {var cb = temp__4090__auto__;var statearr_18887_18928 = state;(statearr_18887_18928[cljs.core.async.impl.ioc_helpers.VALUE_IDX] = cljs.core.deref.call(null,cb)); (statearr_18887_18928[cljs.core.async.impl.ioc_helpers.STATE_IDX] = blk); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {return null; } }); /** * @param {...*} var_args */ cljs.core.async.impl.ioc_helpers.ioc_alts_BANG_ = (function() { var ioc_alts_BANG___delegate = function (state,cont_block,ports,p__18888){var map__18893 = p__18888;var map__18893__$1 = ((cljs.core.seq_QMARK_.call(null,map__18893))?cljs.core.apply.call(null,cljs.core.hash_map,map__18893):map__18893);var opts = map__18893__$1;var statearr_18894_18929 = state;(statearr_18894_18929[cljs.core.async.impl.ioc_helpers.STATE_IDX] = cont_block); var temp__4092__auto__ = cljs.core.async.do_alts.call(null,((function (map__18893,map__18893__$1,opts){ return (function (val){var statearr_18895_18930 = state;(statearr_18895_18930[cljs.core.async.impl.ioc_helpers.VALUE_IDX] = val); return cljs.core.async.impl.ioc_helpers.run_state_machine_wrapped.call(null,state); });})(map__18893,map__18893__$1,opts)) ,ports,opts);if(cljs.core.truth_(temp__4092__auto__)) {var cb = temp__4092__auto__;var statearr_18896_18931 = state;(statearr_18896_18931[cljs.core.async.impl.ioc_helpers.VALUE_IDX] = cljs.core.deref.call(null,cb)); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {return null; } }; var ioc_alts_BANG_ = function (state,cont_block,ports,var_args){ var p__18888 = null;if (arguments.length > 3) { p__18888 = cljs.core.array_seq(Array.prototype.slice.call(arguments, 3),0);} return ioc_alts_BANG___delegate.call(this,state,cont_block,ports,p__18888);}; ioc_alts_BANG_.cljs$lang$maxFixedArity = 3; ioc_alts_BANG_.cljs$lang$applyTo = (function (arglist__18932){ var state = cljs.core.first(arglist__18932); arglist__18932 = cljs.core.next(arglist__18932); var cont_block = cljs.core.first(arglist__18932); arglist__18932 = cljs.core.next(arglist__18932); var ports = cljs.core.first(arglist__18932); var p__18888 = cljs.core.rest(arglist__18932); return ioc_alts_BANG___delegate(state,cont_block,ports,p__18888); }); ioc_alts_BANG_.cljs$core$IFn$_invoke$arity$variadic = ioc_alts_BANG___delegate; return ioc_alts_BANG_; })() ; cljs.core.async.impl.ioc_helpers.return_chan = (function return_chan(state,value){var c = (state[cljs.core.async.impl.ioc_helpers.USER_START_IDX]);if((value == null)) {} else {cljs.core.async.impl.protocols.put_BANG_.call(null,c,value,cljs.core.async.impl.ioc_helpers.fn_handler.call(null,((function (c){ return (function (){return null; });})(c)) )); } cljs.core.async.impl.protocols.close_BANG_.call(null,c); return c; }); /** * @constructor * @param {*} catch_block * @param {*} catch_exception * @param {*} finally_block * @param {*} continue_block * @param {*} prev * @param {*} __meta * @param {*} __extmap * @param {*=} __meta * @param {*=} __extmap */ cljs.core.async.impl.ioc_helpers.ExceptionFrame = (function (catch_block,catch_exception,finally_block,continue_block,prev,__meta,__extmap){ this.catch_block = catch_block; this.catch_exception = catch_exception; this.finally_block = finally_block; this.continue_block = continue_block; this.prev = prev; this.__meta = __meta; this.__extmap = __extmap; this.cljs$lang$protocol_mask$partition0$ = 2229667594; this.cljs$lang$protocol_mask$partition1$ = 8192; if(arguments.length>5){ this.__meta = __meta; this.__extmap = __extmap; } else { this.__meta=null; this.__extmap=null; } }) cljs.core.async.impl.ioc_helpers.ExceptionFrame.prototype.cljs$core$IHash$_hash$arity$1 = (function (this__5465__auto__){var self__ = this; var this__5465__auto____$1 = this;var h__5295__auto__ = self__.__hash;if(!((h__5295__auto__ == null))) {return h__5295__auto__; } else {var h__5295__auto____$1 = cljs.core.hash_imap.call(null,this__5465__auto____$1);self__.__hash = h__5295__auto____$1; return h__5295__auto____$1; } }); cljs.core.async.impl.ioc_helpers.ExceptionFrame.prototype.cljs$core$ILookup$_lookup$arity$2 = (function (this__5470__auto__,k__5471__auto__){var self__ = this; var this__5470__auto____$1 = this;return cljs.core._lookup.call(null,this__5470__auto____$1,k__5471__auto__,null); }); cljs.core.async.impl.ioc_helpers.ExceptionFrame.prototype.cljs$core$ILookup$_lookup$arity$3 = (function (this__5472__auto__,k18898,else__5473__auto__){var self__ = this; var this__5472__auto____$1 = this;if(cljs.core.keyword_identical_QMARK_.call(null,k18898,new cljs.core.Keyword(null,"catch-block","catch-block",2343862893))) {return self__.catch_block; } else {if(cljs.core.keyword_identical_QMARK_.call(null,k18898,new cljs.core.Keyword(null,"catch-exception","catch-exception",1686480687))) {return self__.catch_exception; } else {if(cljs.core.keyword_identical_QMARK_.call(null,k18898,new cljs.core.Keyword(null,"finally-block","finally-block",2846533429))) {return self__.finally_block; } else {if(cljs.core.keyword_identical_QMARK_.call(null,k18898,new cljs.core.Keyword(null,"continue-block","continue-block",1486987097))) {return self__.continue_block; } else {if(cljs.core.keyword_identical_QMARK_.call(null,k18898,new cljs.core.Keyword(null,"prev","prev",1017353637))) {return self__.prev; } else {if(new cljs.core.Keyword(null,"else","else",1017020587)) {return cljs.core.get.call(null,self__.__extmap,k18898,else__5473__auto__); } else {return null; } } } } } } }); cljs.core.async.impl.ioc_helpers.ExceptionFrame.prototype.cljs$core$IAssociative$_assoc$arity$3 = (function (this__5477__auto__,k__5478__auto__,G__18897){var self__ = this; var this__5477__auto____$1 = this;var pred__18900 = cljs.core.keyword_identical_QMARK_;var expr__18901 = k__5478__auto__;if(cljs.core.truth_(pred__18900.call(null,new cljs.core.Keyword(null,"catch-block","catch-block",2343862893),expr__18901))) {return (new cljs.core.async.impl.ioc_helpers.ExceptionFrame(G__18897,self__.catch_exception,self__.finally_block,self__.continue_block,self__.prev,self__.__meta,self__.__extmap,null)); } else {if(cljs.core.truth_(pred__18900.call(null,new cljs.core.Keyword(null,"catch-exception","catch-exception",1686480687),expr__18901))) {return (new cljs.core.async.impl.ioc_helpers.ExceptionFrame(self__.catch_block,G__18897,self__.finally_block,self__.continue_block,self__.prev,self__.__meta,self__.__extmap,null)); } else {if(cljs.core.truth_(pred__18900.call(null,new cljs.core.Keyword(null,"finally-block","finally-block",2846533429),expr__18901))) {return (new cljs.core.async.impl.ioc_helpers.ExceptionFrame(self__.catch_block,self__.catch_exception,G__18897,self__.continue_block,self__.prev,self__.__meta,self__.__extmap,null)); } else {if(cljs.core.truth_(pred__18900.call(null,new cljs.core.Keyword(null,"continue-block","continue-block",1486987097),expr__18901))) {return (new cljs.core.async.impl.ioc_helpers.ExceptionFrame(self__.catch_block,self__.catch_exception,self__.finally_block,G__18897,self__.prev,self__.__meta,self__.__extmap,null)); } else {if(cljs.core.truth_(pred__18900.call(null,new cljs.core.Keyword(null,"prev","prev",1017353637),expr__18901))) {return (new cljs.core.async.impl.ioc_helpers.ExceptionFrame(self__.catch_block,self__.catch_exception,self__.finally_block,self__.continue_block,G__18897,self__.__meta,self__.__extmap,null)); } else {return (new cljs.core.async.impl.ioc_helpers.ExceptionFrame(self__.catch_block,self__.catch_exception,self__.finally_block,self__.continue_block,self__.prev,self__.__meta,cljs.core.assoc.call(null,self__.__extmap,k__5478__auto__,G__18897),null)); } } } } } }); cljs.core.async.impl.ioc_helpers.ExceptionFrame.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 = (function (this__5484__auto__,writer__5485__auto__,opts__5486__auto__){var self__ = this; var this__5484__auto____$1 = this;var pr_pair__5487__auto__ = ((function (this__5484__auto____$1){ return (function (keyval__5488__auto__){return cljs.core.pr_sequential_writer.call(null,writer__5485__auto__,cljs.core.pr_writer,""," ","",opts__5486__auto__,keyval__5488__auto__); });})(this__5484__auto____$1)) ;return cljs.core.pr_sequential_writer.call(null,writer__5485__auto__,pr_pair__5487__auto__,"#cljs.core.async.impl.ioc-helpers.ExceptionFrame{",", ","}",opts__5486__auto__,cljs.core.concat.call(null,new cljs.core.PersistentVector(null, 5, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,"catch-block","catch-block",2343862893),self__.catch_block],null)),(new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,"catch-exception","catch-exception",1686480687),self__.catch_exception],null)),(new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,"finally-block","finally-block",2846533429),self__.finally_block],null)),(new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,"continue-block","continue-block",1486987097),self__.continue_block],null)),(new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,"prev","prev",1017353637),self__.prev],null))], null),self__.__extmap)); }); cljs.core.async.impl.ioc_helpers.ExceptionFrame.prototype.cljs$core$ICollection$_conj$arity$2 = (function (this__5475__auto__,entry__5476__auto__){var self__ = this; var this__5475__auto____$1 = this;if(cljs.core.vector_QMARK_.call(null,entry__5476__auto__)) {return cljs.core._assoc.call(null,this__5475__auto____$1,cljs.core._nth.call(null,entry__5476__auto__,0),cljs.core._nth.call(null,entry__5476__auto__,1)); } else {return cljs.core.reduce.call(null,cljs.core._conj,this__5475__auto____$1,entry__5476__auto__); } }); cljs.core.async.impl.ioc_helpers.ExceptionFrame.prototype.cljs$core$ISeqable$_seq$arity$1 = (function (this__5482__auto__){var self__ = this; var this__5482__auto____$1 = this;return cljs.core.seq.call(null,cljs.core.concat.call(null,new cljs.core.PersistentVector(null, 5, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,"catch-block","catch-block",2343862893),self__.catch_block],null)),(new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,"catch-exception","catch-exception",1686480687),self__.catch_exception],null)),(new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,"finally-block","finally-block",2846533429),self__.finally_block],null)),(new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,"continue-block","continue-block",1486987097),self__.continue_block],null)),(new cljs.core.PersistentVector(null,2,5,cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,"prev","prev",1017353637),self__.prev],null))], null),self__.__extmap)); }); cljs.core.async.impl.ioc_helpers.ExceptionFrame.prototype.cljs$core$ICounted$_count$arity$1 = (function (this__5474__auto__){var self__ = this; var this__5474__auto____$1 = this;return (5 + cljs.core.count.call(null,self__.__extmap)); }); cljs.core.async.impl.ioc_helpers.ExceptionFrame.prototype.cljs$core$IEquiv$_equiv$arity$2 = (function (this__5466__auto__,other__5467__auto__){var self__ = this; var this__5466__auto____$1 = this;if(cljs.core.truth_((function (){var and__4872__auto__ = other__5467__auto__;if(cljs.core.truth_(and__4872__auto__)) {return ((this__5466__auto____$1.constructor === other__5467__auto__.constructor)) && (cljs.core.equiv_map.call(null,this__5466__auto____$1,other__5467__auto__)); } else {return and__4872__auto__; } })())) {return true; } else {return false; } }); cljs.core.async.impl.ioc_helpers.ExceptionFrame.prototype.cljs$core$IWithMeta$_with_meta$arity$2 = (function (this__5469__auto__,G__18897){var self__ = this; var this__5469__auto____$1 = this;return (new cljs.core.async.impl.ioc_helpers.ExceptionFrame(self__.catch_block,self__.catch_exception,self__.finally_block,self__.continue_block,self__.prev,G__18897,self__.__extmap,self__.__hash)); }); cljs.core.async.impl.ioc_helpers.ExceptionFrame.prototype.cljs$core$ICloneable$_clone$arity$1 = (function (this__5464__auto__){var self__ = this; var this__5464__auto____$1 = this;return (new cljs.core.async.impl.ioc_helpers.ExceptionFrame(self__.catch_block,self__.catch_exception,self__.finally_block,self__.continue_block,self__.prev,self__.__meta,self__.__extmap,self__.__hash)); }); cljs.core.async.impl.ioc_helpers.ExceptionFrame.prototype.cljs$core$IMeta$_meta$arity$1 = (function (this__5468__auto__){var self__ = this; var this__5468__auto____$1 = this;return self__.__meta; }); cljs.core.async.impl.ioc_helpers.ExceptionFrame.prototype.cljs$core$IMap$_dissoc$arity$2 = (function (this__5479__auto__,k__5480__auto__){var self__ = this; var this__5479__auto____$1 = this;if(cljs.core.contains_QMARK_.call(null,new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,"finally-block","finally-block",2846533429),null,new cljs.core.Keyword(null,"catch-block","catch-block",2343862893),null,new cljs.core.Keyword(null,"catch-exception","catch-exception",1686480687),null,new cljs.core.Keyword(null,"continue-block","continue-block",1486987097),null,new cljs.core.Keyword(null,"prev","prev",1017353637),null], null), null),k__5480__auto__)) {return cljs.core.dissoc.call(null,cljs.core.with_meta.call(null,cljs.core.into.call(null,cljs.core.PersistentArrayMap.EMPTY,this__5479__auto____$1),self__.__meta),k__5480__auto__); } else {return (new cljs.core.async.impl.ioc_helpers.ExceptionFrame(self__.catch_block,self__.catch_exception,self__.finally_block,self__.continue_block,self__.prev,self__.__meta,cljs.core.not_empty.call(null,cljs.core.dissoc.call(null,self__.__extmap,k__5480__auto__)),null)); } }); cljs.core.async.impl.ioc_helpers.ExceptionFrame.cljs$lang$type = true; cljs.core.async.impl.ioc_helpers.ExceptionFrame.cljs$lang$ctorPrSeq = (function (this__5504__auto__){return cljs.core._conj.call(null,cljs.core.List.EMPTY,"cljs.core.async.impl.ioc-helpers/ExceptionFrame"); }); cljs.core.async.impl.ioc_helpers.ExceptionFrame.cljs$lang$ctorPrWriter = (function (this__5504__auto__,writer__5505__auto__){return cljs.core._write.call(null,writer__5505__auto__,"cljs.core.async.impl.ioc-helpers/ExceptionFrame"); }); cljs.core.async.impl.ioc_helpers.__GT_ExceptionFrame = (function __GT_ExceptionFrame(catch_block,catch_exception,finally_block,continue_block,prev){return (new cljs.core.async.impl.ioc_helpers.ExceptionFrame(catch_block,catch_exception,finally_block,continue_block,prev)); }); cljs.core.async.impl.ioc_helpers.map__GT_ExceptionFrame = (function map__GT_ExceptionFrame(G__18899){return (new cljs.core.async.impl.ioc_helpers.ExceptionFrame(new cljs.core.Keyword(null,"catch-block","catch-block",2343862893).cljs$core$IFn$_invoke$arity$1(G__18899),new cljs.core.Keyword(null,"catch-exception","catch-exception",1686480687).cljs$core$IFn$_invoke$arity$1(G__18899),new cljs.core.Keyword(null,"finally-block","finally-block",2846533429).cljs$core$IFn$_invoke$arity$1(G__18899),new cljs.core.Keyword(null,"continue-block","continue-block",1486987097).cljs$core$IFn$_invoke$arity$1(G__18899),new cljs.core.Keyword(null,"prev","prev",1017353637).cljs$core$IFn$_invoke$arity$1(G__18899),null,cljs.core.dissoc.call(null,G__18899,new cljs.core.Keyword(null,"catch-block","catch-block",2343862893),new cljs.core.Keyword(null,"catch-exception","catch-exception",1686480687),new cljs.core.Keyword(null,"finally-block","finally-block",2846533429),new cljs.core.Keyword(null,"continue-block","continue-block",1486987097),new cljs.core.Keyword(null,"prev","prev",1017353637)))); }); cljs.core.async.impl.ioc_helpers.add_exception_frame = (function add_exception_frame(state,catch_block,catch_exception,finally_block,continue_block){var statearr_18904 = state;(statearr_18904[cljs.core.async.impl.ioc_helpers.EXCEPTION_FRAMES] = cljs.core.async.impl.ioc_helpers.__GT_ExceptionFrame.call(null,catch_block,catch_exception,finally_block,continue_block,cljs.core.async.impl.ioc_helpers.aget_object.call(null,state,cljs.core.async.impl.ioc_helpers.EXCEPTION_FRAMES))); return statearr_18904; }); cljs.core.async.impl.ioc_helpers.process_exception = (function process_exception(state){while(true){ var exception_frame = cljs.core.async.impl.ioc_helpers.aget_object.call(null,state,cljs.core.async.impl.ioc_helpers.EXCEPTION_FRAMES);var catch_block = new cljs.core.Keyword(null,"catch-block","catch-block",2343862893).cljs$core$IFn$_invoke$arity$1(exception_frame);var catch_exception = new cljs.core.Keyword(null,"catch-exception","catch-exception",1686480687).cljs$core$IFn$_invoke$arity$1(exception_frame);var exception = cljs.core.async.impl.ioc_helpers.aget_object.call(null,state,cljs.core.async.impl.ioc_helpers.CURRENT_EXCEPTION);if(cljs.core.truth_((function (){var and__4872__auto__ = exception;if(cljs.core.truth_(and__4872__auto__)) {return cljs.core.not.call(null,exception_frame); } else {return and__4872__auto__; } })())) {throw exception; } else {if(cljs.core.truth_((function (){var and__4872__auto__ = exception;if(cljs.core.truth_(and__4872__auto__)) {var and__4872__auto____$1 = catch_block;if(cljs.core.truth_(and__4872__auto____$1)) {return (exception instanceof catch_exception); } else {return and__4872__auto____$1; } } else {return and__4872__auto__; } })())) {var statearr_18910 = state;(statearr_18910[cljs.core.async.impl.ioc_helpers.STATE_IDX] = catch_block); (statearr_18910[cljs.core.async.impl.ioc_helpers.VALUE_IDX] = exception); (statearr_18910[cljs.core.async.impl.ioc_helpers.CURRENT_EXCEPTION] = null); (statearr_18910[cljs.core.async.impl.ioc_helpers.EXCEPTION_FRAMES] = cljs.core.assoc.call(null,exception_frame,new cljs.core.Keyword(null,"catch-block","catch-block",2343862893),null,new cljs.core.Keyword(null,"catch-exception","catch-exception",1686480687),null)); return statearr_18910; } else {if(cljs.core.truth_((function (){var and__4872__auto__ = exception;if(cljs.core.truth_(and__4872__auto__)) {return (cljs.core.not.call(null,catch_block)) && (cljs.core.not.call(null,new cljs.core.Keyword(null,"finally-block","finally-block",2846533429).cljs$core$IFn$_invoke$arity$1(exception_frame))); } else {return and__4872__auto__; } })())) {var statearr_18911_18933 = state;(statearr_18911_18933[cljs.core.async.impl.ioc_helpers.EXCEPTION_FRAMES] = new cljs.core.Keyword(null,"prev","prev",1017353637).cljs$core$IFn$_invoke$arity$1(exception_frame)); { var G__18934 = state; state = G__18934; continue; } } else {if(cljs.core.truth_((function (){var and__4872__auto__ = exception;if(cljs.core.truth_(and__4872__auto__)) {var and__4872__auto____$1 = cljs.core.not.call(null,catch_block);if(and__4872__auto____$1) {return new cljs.core.Keyword(null,"finally-block","finally-block",2846533429).cljs$core$IFn$_invoke$arity$1(exception_frame); } else {return and__4872__auto____$1; } } else {return and__4872__auto__; } })())) {var statearr_18912 = state;(statearr_18912[cljs.core.async.impl.ioc_helpers.STATE_IDX] = new cljs.core.Keyword(null,"finally-block","finally-block",2846533429).cljs$core$IFn$_invoke$arity$1(exception_frame)); (statearr_18912[cljs.core.async.impl.ioc_helpers.EXCEPTION_FRAMES] = cljs.core.assoc.call(null,exception_frame,new cljs.core.Keyword(null,"finally-block","finally-block",2846533429),null)); return statearr_18912; } else {if(cljs.core.truth_((function (){var and__4872__auto__ = cljs.core.not.call(null,exception);if(and__4872__auto__) {return new cljs.core.Keyword(null,"finally-block","finally-block",2846533429).cljs$core$IFn$_invoke$arity$1(exception_frame); } else {return and__4872__auto__; } })())) {var statearr_18913 = state;(statearr_18913[cljs.core.async.impl.ioc_helpers.STATE_IDX] = new cljs.core.Keyword(null,"finally-block","finally-block",2846533429).cljs$core$IFn$_invoke$arity$1(exception_frame)); (statearr_18913[cljs.core.async.impl.ioc_helpers.EXCEPTION_FRAMES] = cljs.core.assoc.call(null,exception_frame,new cljs.core.Keyword(null,"finally-block","finally-block",2846533429),null)); return statearr_18913; } else {if((cljs.core.not.call(null,exception)) && (cljs.core.not.call(null,new cljs.core.Keyword(null,"finally-block","finally-block",2846533429).cljs$core$IFn$_invoke$arity$1(exception_frame)))) {var statearr_18914 = state;(statearr_18914[cljs.core.async.impl.ioc_helpers.STATE_IDX] = new cljs.core.Keyword(null,"continue-block","continue-block",1486987097).cljs$core$IFn$_invoke$arity$1(exception_frame)); (statearr_18914[cljs.core.async.impl.ioc_helpers.EXCEPTION_FRAMES] = new cljs.core.Keyword(null,"prev","prev",1017353637).cljs$core$IFn$_invoke$arity$1(exception_frame)); return statearr_18914; } else {if(new cljs.core.Keyword(null,"else","else",1017020587)) {if(false) {return null; } else {throw (new Error([cljs.core.str("Assert failed: "),cljs.core.str("No matching clause"),cljs.core.str("\n"),cljs.core.str(cljs.core.pr_str.call(null,false))].join(''))); } } else {return null; } } } } } } } break; } }); } if(!lt.util.load.provided_QMARK_('cljs.core.async')) { goog.provide('cljs.core.async'); goog.require('cljs.core'); goog.require('cljs.core.async.impl.ioc_helpers'); goog.require('cljs.core.async.impl.protocols'); goog.require('cljs.core.async.impl.buffers'); goog.require('cljs.core.async.impl.timers'); goog.require('cljs.core.async.impl.channels'); goog.require('cljs.core.async.impl.dispatch'); goog.require('cljs.core.async.impl.dispatch'); goog.require('cljs.core.async.impl.buffers'); goog.require('cljs.core.async.impl.protocols'); goog.require('cljs.core.async.impl.timers'); goog.require('cljs.core.async.impl.channels'); goog.require('cljs.core.async.impl.ioc_helpers'); cljs.core.async.fn_handler = (function fn_handler(f){if(typeof cljs.core.async.t16311 !== 'undefined') {} else { /** * @constructor */ cljs.core.async.t16311 = (function (f,fn_handler,meta16312){ this.f = f; this.fn_handler = fn_handler; this.meta16312 = meta16312; this.cljs$lang$protocol_mask$partition1$ = 0; this.cljs$lang$protocol_mask$partition0$ = 393216; }) cljs.core.async.t16311.cljs$lang$type = true; cljs.core.async.t16311.cljs$lang$ctorStr = "cljs.core.async/t16311"; cljs.core.async.t16311.cljs$lang$ctorPrWriter = (function (this__5451__auto__,writer__5452__auto__,opt__5453__auto__){return cljs.core._write.call(null,writer__5452__auto__,"cljs.core.async/t16311"); }); cljs.core.async.t16311.prototype.cljs$core$async$impl$protocols$Handler$ = true; cljs.core.async.t16311.prototype.cljs$core$async$impl$protocols$Handler$active_QMARK_$arity$1 = (function (_){var self__ = this; var ___$1 = this;return true; }); cljs.core.async.t16311.prototype.cljs$core$async$impl$protocols$Handler$commit$arity$1 = (function (_){var self__ = this; var ___$1 = this;return self__.f; }); cljs.core.async.t16311.prototype.cljs$core$IMeta$_meta$arity$1 = (function (_16313){var self__ = this; var _16313__$1 = this;return self__.meta16312; }); cljs.core.async.t16311.prototype.cljs$core$IWithMeta$_with_meta$arity$2 = (function (_16313,meta16312__$1){var self__ = this; var _16313__$1 = this;return (new cljs.core.async.t16311(self__.f,self__.fn_handler,meta16312__$1)); }); cljs.core.async.__GT_t16311 = (function __GT_t16311(f__$1,fn_handler__$1,meta16312){return (new cljs.core.async.t16311(f__$1,fn_handler__$1,meta16312)); }); } return (new cljs.core.async.t16311(f,fn_handler,null)); }); /** * Returns a fixed buffer of size n. When full, puts will block/park. */ cljs.core.async.buffer = (function buffer(n){return cljs.core.async.impl.buffers.fixed_buffer.call(null,n); }); /** * Returns a buffer of size n. When full, puts will complete but * val will be dropped (no transfer). */ cljs.core.async.dropping_buffer = (function dropping_buffer(n){return cljs.core.async.impl.buffers.dropping_buffer.call(null,n); }); /** * Returns a buffer of size n. When full, puts will complete, and be * buffered, but oldest elements in buffer will be dropped (not * transferred). */ cljs.core.async.sliding_buffer = (function sliding_buffer(n){return cljs.core.async.impl.buffers.sliding_buffer.call(null,n); }); /** * Returns true if a channel created with buff will never block. That is to say, * puts into this buffer will never cause the buffer to be full. */ cljs.core.async.unblocking_buffer_QMARK_ = (function unblocking_buffer_QMARK_(buff){var G__16315 = buff;if(G__16315) {var bit__5534__auto__ = null;if(cljs.core.truth_((function (){var or__4884__auto__ = bit__5534__auto__;if(cljs.core.truth_(or__4884__auto__)) {return or__4884__auto__; } else {return G__16315.cljs$core$async$impl$protocols$UnblockingBuffer$; } })())) {return true; } else {if((!G__16315.cljs$lang$protocol_mask$partition$)) {return cljs.core.native_satisfies_QMARK_.call(null,cljs.core.async.impl.protocols.UnblockingBuffer,G__16315); } else {return false; } } } else {return cljs.core.native_satisfies_QMARK_.call(null,cljs.core.async.impl.protocols.UnblockingBuffer,G__16315); } }); /** * Creates a channel with an optional buffer. If buf-or-n is a number, * will create and use a fixed buffer of that size. */ cljs.core.async.chan = (function() { var chan = null; var chan__0 = (function (){return chan.call(null,null); }); var chan__1 = (function (buf_or_n){var buf_or_n__$1 = ((cljs.core._EQ_.call(null,buf_or_n,0))?null:buf_or_n);return cljs.core.async.impl.channels.chan.call(null,((typeof buf_or_n__$1 === 'number')?cljs.core.async.buffer.call(null,buf_or_n__$1):buf_or_n__$1)); }); chan = function(buf_or_n){ switch(arguments.length){ case 0: return chan__0.call(this); case 1: return chan__1.call(this,buf_or_n); } throw(new Error('Invalid arity: ' + arguments.length)); }; chan.cljs$core$IFn$_invoke$arity$0 = chan__0; chan.cljs$core$IFn$_invoke$arity$1 = chan__1; return chan; })() ; /** * Returns a channel that will close after msecs */ cljs.core.async.timeout = (function timeout(msecs){return cljs.core.async.impl.timers.timeout.call(null,msecs); }); /** * takes a val from port. Must be called inside a (go ...) block. Will * return nil if closed. Will park if nothing is available. */ cljs.core.async._LT__BANG_ = (function _LT__BANG_(port){if(null) {return null; } else {throw (new Error([cljs.core.str("Assert failed: "),cljs.core.str("! used not in (go ...) block"),cljs.core.str("\n"),cljs.core.str(cljs.core.pr_str.call(null,null))].join(''))); } }); /** * Asynchronously puts a val into port, calling fn0 (if supplied) when * complete. nil values are not allowed. Will throw if closed. If * on-caller? (default true) is true, and the put is immediately * accepted, will call fn0 on calling thread. Returns nil. */ cljs.core.async.put_BANG_ = (function() { var put_BANG_ = null; var put_BANG___2 = (function (port,val){return put_BANG_.call(null,port,val,cljs.core.async.nop); }); var put_BANG___3 = (function (port,val,fn0){return put_BANG_.call(null,port,val,fn0,true); }); var put_BANG___4 = (function (port,val,fn0,on_caller_QMARK_){var ret = cljs.core.async.impl.protocols.put_BANG_.call(null,port,val,cljs.core.async.fn_handler.call(null,fn0));if(cljs.core.truth_((function (){var and__4872__auto__ = ret;if(cljs.core.truth_(and__4872__auto__)) {return cljs.core.not_EQ_.call(null,fn0,cljs.core.async.nop); } else {return and__4872__auto__; } })())) {if(cljs.core.truth_(on_caller_QMARK_)) {fn0.call(null); } else {cljs.core.async.impl.dispatch.run.call(null,fn0); } } else {} return null; }); put_BANG_ = function(port,val,fn0,on_caller_QMARK_){ switch(arguments.length){ case 2: return put_BANG___2.call(this,port,val); case 3: return put_BANG___3.call(this,port,val,fn0); case 4: return put_BANG___4.call(this,port,val,fn0,on_caller_QMARK_); } throw(new Error('Invalid arity: ' + arguments.length)); }; put_BANG_.cljs$core$IFn$_invoke$arity$2 = put_BANG___2; put_BANG_.cljs$core$IFn$_invoke$arity$3 = put_BANG___3; put_BANG_.cljs$core$IFn$_invoke$arity$4 = put_BANG___4; return put_BANG_; })() ; cljs.core.async.close_BANG_ = (function close_BANG_(port){return cljs.core.async.impl.protocols.close_BANG_.call(null,port); }); cljs.core.async.random_array = (function random_array(n){var a = (new Array(n));var n__5732__auto___18580 = n;var x_18581 = 0;while(true){ if((x_18581 < n__5732__auto___18580)) {(a[x_18581] = 0); { var G__18582 = (x_18581 + 1); x_18581 = G__18582; continue; } } else {} break; } var i = 1;while(true){ if(cljs.core._EQ_.call(null,i,n)) {return a; } else {var j = cljs.core.rand_int.call(null,i);(a[i] = (a[j])); (a[j] = i); { var G__18583 = (i + 1); i = G__18583; continue; } } break; } }); cljs.core.async.alt_flag = (function alt_flag(){var flag = cljs.core.atom.call(null,true);if(typeof cljs.core.async.t16319 !== 'undefined') {} else { /** * @constructor */ cljs.core.async.t16319 = (function (flag,alt_flag,meta16320){ this.flag = flag; this.alt_flag = alt_flag; this.meta16320 = meta16320; this.cljs$lang$protocol_mask$partition1$ = 0; this.cljs$lang$protocol_mask$partition0$ = 393216; }) cljs.core.async.t16319.cljs$lang$type = true; cljs.core.async.t16319.cljs$lang$ctorStr = "cljs.core.async/t16319"; cljs.core.async.t16319.cljs$lang$ctorPrWriter = ((function (flag){ return (function (this__5451__auto__,writer__5452__auto__,opt__5453__auto__){return cljs.core._write.call(null,writer__5452__auto__,"cljs.core.async/t16319"); });})(flag)) ; cljs.core.async.t16319.prototype.cljs$core$async$impl$protocols$Handler$ = true; cljs.core.async.t16319.prototype.cljs$core$async$impl$protocols$Handler$active_QMARK_$arity$1 = ((function (flag){ return (function (_){var self__ = this; var ___$1 = this;return cljs.core.deref.call(null,self__.flag); });})(flag)) ; cljs.core.async.t16319.prototype.cljs$core$async$impl$protocols$Handler$commit$arity$1 = ((function (flag){ return (function (_){var self__ = this; var ___$1 = this;cljs.core.reset_BANG_.call(null,self__.flag,null); return true; });})(flag)) ; cljs.core.async.t16319.prototype.cljs$core$IMeta$_meta$arity$1 = ((function (flag){ return (function (_16321){var self__ = this; var _16321__$1 = this;return self__.meta16320; });})(flag)) ; cljs.core.async.t16319.prototype.cljs$core$IWithMeta$_with_meta$arity$2 = ((function (flag){ return (function (_16321,meta16320__$1){var self__ = this; var _16321__$1 = this;return (new cljs.core.async.t16319(self__.flag,self__.alt_flag,meta16320__$1)); });})(flag)) ; cljs.core.async.__GT_t16319 = ((function (flag){ return (function __GT_t16319(flag__$1,alt_flag__$1,meta16320){return (new cljs.core.async.t16319(flag__$1,alt_flag__$1,meta16320)); });})(flag)) ; } return (new cljs.core.async.t16319(flag,alt_flag,null)); }); cljs.core.async.alt_handler = (function alt_handler(flag,cb){if(typeof cljs.core.async.t16325 !== 'undefined') {} else { /** * @constructor */ cljs.core.async.t16325 = (function (cb,flag,alt_handler,meta16326){ this.cb = cb; this.flag = flag; this.alt_handler = alt_handler; this.meta16326 = meta16326; this.cljs$lang$protocol_mask$partition1$ = 0; this.cljs$lang$protocol_mask$partition0$ = 393216; }) cljs.core.async.t16325.cljs$lang$type = true; cljs.core.async.t16325.cljs$lang$ctorStr = "cljs.core.async/t16325"; cljs.core.async.t16325.cljs$lang$ctorPrWriter = (function (this__5451__auto__,writer__5452__auto__,opt__5453__auto__){return cljs.core._write.call(null,writer__5452__auto__,"cljs.core.async/t16325"); }); cljs.core.async.t16325.prototype.cljs$core$async$impl$protocols$Handler$ = true; cljs.core.async.t16325.prototype.cljs$core$async$impl$protocols$Handler$active_QMARK_$arity$1 = (function (_){var self__ = this; var ___$1 = this;return cljs.core.async.impl.protocols.active_QMARK_.call(null,self__.flag); }); cljs.core.async.t16325.prototype.cljs$core$async$impl$protocols$Handler$commit$arity$1 = (function (_){var self__ = this; var ___$1 = this;cljs.core.async.impl.protocols.commit.call(null,self__.flag); return self__.cb; }); cljs.core.async.t16325.prototype.cljs$core$IMeta$_meta$arity$1 = (function (_16327){var self__ = this; var _16327__$1 = this;return self__.meta16326; }); cljs.core.async.t16325.prototype.cljs$core$IWithMeta$_with_meta$arity$2 = (function (_16327,meta16326__$1){var self__ = this; var _16327__$1 = this;return (new cljs.core.async.t16325(self__.cb,self__.flag,self__.alt_handler,meta16326__$1)); }); cljs.core.async.__GT_t16325 = (function __GT_t16325(cb__$1,flag__$1,alt_handler__$1,meta16326){return (new cljs.core.async.t16325(cb__$1,flag__$1,alt_handler__$1,meta16326)); }); } return (new cljs.core.async.t16325(cb,flag,alt_handler,null)); }); /** * returns derefable [val port] if immediate, nil if enqueued */ cljs.core.async.do_alts = (function do_alts(fret,ports,opts){var flag = cljs.core.async.alt_flag.call(null);var n = cljs.core.count.call(null,ports);var idxs = cljs.core.async.random_array.call(null,n);var priority = new cljs.core.Keyword(null,"priority","priority",4143410454).cljs$core$IFn$_invoke$arity$1(opts);var ret = (function (){var i = 0;while(true){ if((i < n)) {var idx = (cljs.core.truth_(priority)?i:(idxs[i]));var port = cljs.core.nth.call(null,ports,idx);var wport = ((cljs.core.vector_QMARK_.call(null,port))?port.call(null,0):null);var vbox = (cljs.core.truth_(wport)?(function (){var val = port.call(null,1);return cljs.core.async.impl.protocols.put_BANG_.call(null,wport,val,cljs.core.async.alt_handler.call(null,flag,((function (i,val,idx,port,wport,flag,n,idxs,priority){ return (function (){return fret.call(null,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,wport], null)); });})(i,val,idx,port,wport,flag,n,idxs,priority)) )); })():cljs.core.async.impl.protocols.take_BANG_.call(null,port,cljs.core.async.alt_handler.call(null,flag,((function (i,idx,port,wport,flag,n,idxs,priority){ return (function (p1__16328_SHARP_){return fret.call(null,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [p1__16328_SHARP_,port], null)); });})(i,idx,port,wport,flag,n,idxs,priority)) )));if(cljs.core.truth_(vbox)) {return cljs.core.async.impl.channels.box.call(null,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.deref.call(null,vbox),(function (){var or__4884__auto__ = wport;if(cljs.core.truth_(or__4884__auto__)) {return or__4884__auto__; } else {return port; } })()], null)); } else {{ var G__18584 = (i + 1); i = G__18584; continue; } } } else {return null; } break; } })();var or__4884__auto__ = ret;if(cljs.core.truth_(or__4884__auto__)) {return or__4884__auto__; } else {if(cljs.core.contains_QMARK_.call(null,opts,new cljs.core.Keyword(null,"default","default",2558708147))) {var temp__4092__auto__ = (function (){var and__4872__auto__ = cljs.core.async.impl.protocols.active_QMARK_.call(null,flag);if(cljs.core.truth_(and__4872__auto__)) {return cljs.core.async.impl.protocols.commit.call(null,flag); } else {return and__4872__auto__; } })();if(cljs.core.truth_(temp__4092__auto__)) {var got = temp__4092__auto__;return cljs.core.async.impl.channels.box.call(null,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"default","default",2558708147).cljs$core$IFn$_invoke$arity$1(opts),new cljs.core.Keyword(null,"default","default",2558708147)], null)); } else {return null; } } else {return null; } } }); /** * Completes at most one of several channel operations. Must be called * inside a (go ...) block. ports is a vector of channel endpoints, which * can be either a channel to take from or a vector of * [channel-to-put-to val-to-put], in any combination. Takes will be * made as if by !. Unless * the :priority option is true, if more than one port operation is * ready a non-deterministic choice will be made. If no operation is * ready and a :default value is supplied, [default-val :default] will * be returned, otherwise alts! will park until the first operation to * become ready completes. Returns [val port] of the completed * operation, where val is the value taken for takes, and nil for puts. * * opts are passed as :key val ... Supported options: * * :default val - the value to use if none of the operations are immediately ready * :priority true - (default nil) when true, the operations will be tried in order. * * Note: there is no guarantee that the port exps or val exprs will be * used, nor in what order should they be, so they should not be * depended upon for side effects. * @param {...*} var_args */ cljs.core.async.alts_BANG_ = (function() { var alts_BANG___delegate = function (ports,p__16329){var map__16331 = p__16329;var map__16331__$1 = ((cljs.core.seq_QMARK_.call(null,map__16331))?cljs.core.apply.call(null,cljs.core.hash_map,map__16331):map__16331);var opts = map__16331__$1;if(null) {return null; } else {throw (new Error([cljs.core.str("Assert failed: "),cljs.core.str("alts! used not in (go ...) block"),cljs.core.str("\n"),cljs.core.str(cljs.core.pr_str.call(null,null))].join(''))); } }; var alts_BANG_ = function (ports,var_args){ var p__16329 = null;if (arguments.length > 1) { p__16329 = cljs.core.array_seq(Array.prototype.slice.call(arguments, 1),0);} return alts_BANG___delegate.call(this,ports,p__16329);}; alts_BANG_.cljs$lang$maxFixedArity = 1; alts_BANG_.cljs$lang$applyTo = (function (arglist__18585){ var ports = cljs.core.first(arglist__18585); var p__16329 = cljs.core.rest(arglist__18585); return alts_BANG___delegate(ports,p__16329); }); alts_BANG_.cljs$core$IFn$_invoke$arity$variadic = alts_BANG___delegate; return alts_BANG_; })() ; /** * Takes a function and a source channel, and returns a channel which * contains the values produced by applying f to each value taken from * the source channel */ cljs.core.async.map_LT_ = (function map_LT_(f,ch){if(typeof cljs.core.async.t16339 !== 'undefined') {} else { /** * @constructor */ cljs.core.async.t16339 = (function (ch,f,map_LT_,meta16340){ this.ch = ch; this.f = f; this.map_LT_ = map_LT_; this.meta16340 = meta16340; this.cljs$lang$protocol_mask$partition1$ = 0; this.cljs$lang$protocol_mask$partition0$ = 393216; }) cljs.core.async.t16339.cljs$lang$type = true; cljs.core.async.t16339.cljs$lang$ctorStr = "cljs.core.async/t16339"; cljs.core.async.t16339.cljs$lang$ctorPrWriter = (function (this__5451__auto__,writer__5452__auto__,opt__5453__auto__){return cljs.core._write.call(null,writer__5452__auto__,"cljs.core.async/t16339"); }); cljs.core.async.t16339.prototype.cljs$core$async$impl$protocols$WritePort$ = true; cljs.core.async.t16339.prototype.cljs$core$async$impl$protocols$WritePort$put_BANG_$arity$3 = (function (_,val,fn0){var self__ = this; var ___$1 = this;return cljs.core.async.impl.protocols.put_BANG_.call(null,self__.ch,val,fn0); }); cljs.core.async.t16339.prototype.cljs$core$async$impl$protocols$ReadPort$ = true; cljs.core.async.t16339.prototype.cljs$core$async$impl$protocols$ReadPort$take_BANG_$arity$2 = (function (_,fn1){var self__ = this; var ___$1 = this;var ret = cljs.core.async.impl.protocols.take_BANG_.call(null,self__.ch,(function (){if(typeof cljs.core.async.t16342 !== 'undefined') {} else { /** * @constructor */ cljs.core.async.t16342 = (function (fn1,_,meta16340,ch,f,map_LT_,meta16343){ this.fn1 = fn1; this._ = _; this.meta16340 = meta16340; this.ch = ch; this.f = f; this.map_LT_ = map_LT_; this.meta16343 = meta16343; this.cljs$lang$protocol_mask$partition1$ = 0; this.cljs$lang$protocol_mask$partition0$ = 393216; }) cljs.core.async.t16342.cljs$lang$type = true; cljs.core.async.t16342.cljs$lang$ctorStr = "cljs.core.async/t16342"; cljs.core.async.t16342.cljs$lang$ctorPrWriter = ((function (___$1){ return (function (this__5451__auto__,writer__5452__auto__,opt__5453__auto__){return cljs.core._write.call(null,writer__5452__auto__,"cljs.core.async/t16342"); });})(___$1)) ; cljs.core.async.t16342.prototype.cljs$core$async$impl$protocols$Handler$ = true; cljs.core.async.t16342.prototype.cljs$core$async$impl$protocols$Handler$active_QMARK_$arity$1 = ((function (___$1){ return (function (___$3){var self__ = this; var ___$4 = this;return cljs.core.async.impl.protocols.active_QMARK_.call(null,self__.fn1); });})(___$1)) ; cljs.core.async.t16342.prototype.cljs$core$async$impl$protocols$Handler$lock_id$arity$1 = ((function (___$1){ return (function (___$3){var self__ = this; var ___$4 = this;return cljs.core.async.impl.protocols.lock_id.call(null,self__.fn1); });})(___$1)) ; cljs.core.async.t16342.prototype.cljs$core$async$impl$protocols$Handler$commit$arity$1 = ((function (___$1){ return (function (___$3){var self__ = this; var ___$4 = this;var f1 = cljs.core.async.impl.protocols.commit.call(null,self__.fn1);return ((function (f1,___$4,___$1){ return (function (p1__16332_SHARP_){return f1.call(null,(((p1__16332_SHARP_ == null))?null:self__.f.call(null,p1__16332_SHARP_))); }); ;})(f1,___$4,___$1)) });})(___$1)) ; cljs.core.async.t16342.prototype.cljs$core$IMeta$_meta$arity$1 = ((function (___$1){ return (function (_16344){var self__ = this; var _16344__$1 = this;return self__.meta16343; });})(___$1)) ; cljs.core.async.t16342.prototype.cljs$core$IWithMeta$_with_meta$arity$2 = ((function (___$1){ return (function (_16344,meta16343__$1){var self__ = this; var _16344__$1 = this;return (new cljs.core.async.t16342(self__.fn1,self__._,self__.meta16340,self__.ch,self__.f,self__.map_LT_,meta16343__$1)); });})(___$1)) ; cljs.core.async.__GT_t16342 = ((function (___$1){ return (function __GT_t16342(fn1__$1,___$2,meta16340__$1,ch__$2,f__$2,map_LT___$2,meta16343){return (new cljs.core.async.t16342(fn1__$1,___$2,meta16340__$1,ch__$2,f__$2,map_LT___$2,meta16343)); });})(___$1)) ; } return (new cljs.core.async.t16342(fn1,___$1,self__.meta16340,self__.ch,self__.f,self__.map_LT_,null)); })());if(cljs.core.truth_((function (){var and__4872__auto__ = ret;if(cljs.core.truth_(and__4872__auto__)) {return !((cljs.core.deref.call(null,ret) == null)); } else {return and__4872__auto__; } })())) {return cljs.core.async.impl.channels.box.call(null,self__.f.call(null,cljs.core.deref.call(null,ret))); } else {return ret; } }); cljs.core.async.t16339.prototype.cljs$core$async$impl$protocols$Channel$ = true; cljs.core.async.t16339.prototype.cljs$core$async$impl$protocols$Channel$close_BANG_$arity$1 = (function (_){var self__ = this; var ___$1 = this;return cljs.core.async.impl.protocols.close_BANG_.call(null,self__.ch); }); cljs.core.async.t16339.prototype.cljs$core$IMeta$_meta$arity$1 = (function (_16341){var self__ = this; var _16341__$1 = this;return self__.meta16340; }); cljs.core.async.t16339.prototype.cljs$core$IWithMeta$_with_meta$arity$2 = (function (_16341,meta16340__$1){var self__ = this; var _16341__$1 = this;return (new cljs.core.async.t16339(self__.ch,self__.f,self__.map_LT_,meta16340__$1)); }); cljs.core.async.__GT_t16339 = (function __GT_t16339(ch__$1,f__$1,map_LT___$1,meta16340){return (new cljs.core.async.t16339(ch__$1,f__$1,map_LT___$1,meta16340)); }); } return (new cljs.core.async.t16339(ch,f,map_LT_,null)); }); /** * Takes a function and a target channel, and returns a channel which * applies f to each value before supplying it to the target channel. */ cljs.core.async.map_GT_ = (function map_GT_(f,ch){if(typeof cljs.core.async.t16348 !== 'undefined') {} else { /** * @constructor */ cljs.core.async.t16348 = (function (ch,f,map_GT_,meta16349){ this.ch = ch; this.f = f; this.map_GT_ = map_GT_; this.meta16349 = meta16349; this.cljs$lang$protocol_mask$partition1$ = 0; this.cljs$lang$protocol_mask$partition0$ = 393216; }) cljs.core.async.t16348.cljs$lang$type = true; cljs.core.async.t16348.cljs$lang$ctorStr = "cljs.core.async/t16348"; cljs.core.async.t16348.cljs$lang$ctorPrWriter = (function (this__5451__auto__,writer__5452__auto__,opt__5453__auto__){return cljs.core._write.call(null,writer__5452__auto__,"cljs.core.async/t16348"); }); cljs.core.async.t16348.prototype.cljs$core$async$impl$protocols$WritePort$ = true; cljs.core.async.t16348.prototype.cljs$core$async$impl$protocols$WritePort$put_BANG_$arity$3 = (function (_,val,fn0){var self__ = this; var ___$1 = this;return cljs.core.async.impl.protocols.put_BANG_.call(null,self__.ch,self__.f.call(null,val),fn0); }); cljs.core.async.t16348.prototype.cljs$core$async$impl$protocols$ReadPort$ = true; cljs.core.async.t16348.prototype.cljs$core$async$impl$protocols$ReadPort$take_BANG_$arity$2 = (function (_,fn1){var self__ = this; var ___$1 = this;return cljs.core.async.impl.protocols.take_BANG_.call(null,self__.ch,fn1); }); cljs.core.async.t16348.prototype.cljs$core$async$impl$protocols$Channel$ = true; cljs.core.async.t16348.prototype.cljs$core$async$impl$protocols$Channel$close_BANG_$arity$1 = (function (_){var self__ = this; var ___$1 = this;return cljs.core.async.impl.protocols.close_BANG_.call(null,self__.ch); }); cljs.core.async.t16348.prototype.cljs$core$IMeta$_meta$arity$1 = (function (_16350){var self__ = this; var _16350__$1 = this;return self__.meta16349; }); cljs.core.async.t16348.prototype.cljs$core$IWithMeta$_with_meta$arity$2 = (function (_16350,meta16349__$1){var self__ = this; var _16350__$1 = this;return (new cljs.core.async.t16348(self__.ch,self__.f,self__.map_GT_,meta16349__$1)); }); cljs.core.async.__GT_t16348 = (function __GT_t16348(ch__$1,f__$1,map_GT___$1,meta16349){return (new cljs.core.async.t16348(ch__$1,f__$1,map_GT___$1,meta16349)); }); } return (new cljs.core.async.t16348(ch,f,map_GT_,null)); }); /** * Takes a predicate and a target channel, and returns a channel which * supplies only the values for which the predicate returns true to the * target channel. */ cljs.core.async.filter_GT_ = (function filter_GT_(p,ch){if(typeof cljs.core.async.t16354 !== 'undefined') {} else { /** * @constructor */ cljs.core.async.t16354 = (function (ch,p,filter_GT_,meta16355){ this.ch = ch; this.p = p; this.filter_GT_ = filter_GT_; this.meta16355 = meta16355; this.cljs$lang$protocol_mask$partition1$ = 0; this.cljs$lang$protocol_mask$partition0$ = 393216; }) cljs.core.async.t16354.cljs$lang$type = true; cljs.core.async.t16354.cljs$lang$ctorStr = "cljs.core.async/t16354"; cljs.core.async.t16354.cljs$lang$ctorPrWriter = (function (this__5451__auto__,writer__5452__auto__,opt__5453__auto__){return cljs.core._write.call(null,writer__5452__auto__,"cljs.core.async/t16354"); }); cljs.core.async.t16354.prototype.cljs$core$async$impl$protocols$WritePort$ = true; cljs.core.async.t16354.prototype.cljs$core$async$impl$protocols$WritePort$put_BANG_$arity$3 = (function (_,val,fn0){var self__ = this; var ___$1 = this;if(cljs.core.truth_(self__.p.call(null,val))) {return cljs.core.async.impl.protocols.put_BANG_.call(null,self__.ch,val,fn0); } else {return cljs.core.async.impl.channels.box.call(null,null); } }); cljs.core.async.t16354.prototype.cljs$core$async$impl$protocols$ReadPort$ = true; cljs.core.async.t16354.prototype.cljs$core$async$impl$protocols$ReadPort$take_BANG_$arity$2 = (function (_,fn1){var self__ = this; var ___$1 = this;return cljs.core.async.impl.protocols.take_BANG_.call(null,self__.ch,fn1); }); cljs.core.async.t16354.prototype.cljs$core$async$impl$protocols$Channel$ = true; cljs.core.async.t16354.prototype.cljs$core$async$impl$protocols$Channel$close_BANG_$arity$1 = (function (_){var self__ = this; var ___$1 = this;return cljs.core.async.impl.protocols.close_BANG_.call(null,self__.ch); }); cljs.core.async.t16354.prototype.cljs$core$IMeta$_meta$arity$1 = (function (_16356){var self__ = this; var _16356__$1 = this;return self__.meta16355; }); cljs.core.async.t16354.prototype.cljs$core$IWithMeta$_with_meta$arity$2 = (function (_16356,meta16355__$1){var self__ = this; var _16356__$1 = this;return (new cljs.core.async.t16354(self__.ch,self__.p,self__.filter_GT_,meta16355__$1)); }); cljs.core.async.__GT_t16354 = (function __GT_t16354(ch__$1,p__$1,filter_GT___$1,meta16355){return (new cljs.core.async.t16354(ch__$1,p__$1,filter_GT___$1,meta16355)); }); } return (new cljs.core.async.t16354(ch,p,filter_GT_,null)); }); /** * Takes a predicate and a target channel, and returns a channel which * supplies only the values for which the predicate returns false to the * target channel. */ cljs.core.async.remove_GT_ = (function remove_GT_(p,ch){return cljs.core.async.filter_GT_.call(null,cljs.core.complement.call(null,p),ch); }); /** * Takes a predicate and a source channel, and returns a channel which * contains only the values taken from the source channel for which the * predicate returns true. The returned channel will be unbuffered by * default, or a buf-or-n can be supplied. The channel will close * when the source channel closes. */ cljs.core.async.filter_LT_ = (function() { var filter_LT_ = null; var filter_LT___2 = (function (p,ch){return filter_LT_.call(null,p,ch,null); }); var filter_LT___3 = (function (p,ch,buf_or_n){var out = cljs.core.async.chan.call(null,buf_or_n);var c__13951__auto___18586 = cljs.core.async.chan.call(null,1);cljs.core.async.impl.dispatch.run.call(null,((function (c__13951__auto___18586,out){ return (function (){var f__13952__auto__ = (function (){var switch__13881__auto__ = ((function (c__13951__auto___18586,out){ return (function (state_16418){var state_val_16419 = (state_16418[1]);if((state_val_16419 === 1)) {var state_16418__$1 = state_16418;var statearr_16420_18587 = state_16418__$1;(statearr_16420_18587[2] = null); (statearr_16420_18587[1] = 2); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_16419 === 2)) {var state_16418__$1 = state_16418;return cljs.core.async.impl.ioc_helpers.take_BANG_.call(null,state_16418__$1,4,ch); } else {if((state_val_16419 === 3)) {var inst_16416 = (state_16418[2]);var state_16418__$1 = state_16418;return cljs.core.async.impl.ioc_helpers.return_chan.call(null,state_16418__$1,inst_16416); } else {if((state_val_16419 === 4)) {var inst_16400 = (state_16418[7]);var inst_16400__$1 = (state_16418[2]);var inst_16401 = (inst_16400__$1 == null);var state_16418__$1 = (function (){var statearr_16421 = state_16418;(statearr_16421[7] = inst_16400__$1); return statearr_16421; })();if(cljs.core.truth_(inst_16401)) {var statearr_16422_18588 = state_16418__$1;(statearr_16422_18588[1] = 5); } else {var statearr_16423_18589 = state_16418__$1;(statearr_16423_18589[1] = 6); } return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_16419 === 5)) {var inst_16403 = cljs.core.async.close_BANG_.call(null,out);var state_16418__$1 = state_16418;var statearr_16424_18590 = state_16418__$1;(statearr_16424_18590[2] = inst_16403); (statearr_16424_18590[1] = 7); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_16419 === 6)) {var inst_16400 = (state_16418[7]);var inst_16405 = p.call(null,inst_16400);var state_16418__$1 = state_16418;if(cljs.core.truth_(inst_16405)) {var statearr_16425_18591 = state_16418__$1;(statearr_16425_18591[1] = 8); } else {var statearr_16426_18592 = state_16418__$1;(statearr_16426_18592[1] = 9); } return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_16419 === 7)) {var inst_16414 = (state_16418[2]);var state_16418__$1 = state_16418;var statearr_16427_18593 = state_16418__$1;(statearr_16427_18593[2] = inst_16414); (statearr_16427_18593[1] = 3); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_16419 === 8)) {var inst_16400 = (state_16418[7]);var state_16418__$1 = state_16418;return cljs.core.async.impl.ioc_helpers.put_BANG_.call(null,state_16418__$1,11,out,inst_16400); } else {if((state_val_16419 === 9)) {var state_16418__$1 = state_16418;var statearr_16428_18594 = state_16418__$1;(statearr_16428_18594[2] = null); (statearr_16428_18594[1] = 10); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_16419 === 10)) {var inst_16411 = (state_16418[2]);var state_16418__$1 = (function (){var statearr_16429 = state_16418;(statearr_16429[8] = inst_16411); return statearr_16429; })();var statearr_16430_18595 = state_16418__$1;(statearr_16430_18595[2] = null); (statearr_16430_18595[1] = 2); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_16419 === 11)) {var inst_16408 = (state_16418[2]);var state_16418__$1 = state_16418;var statearr_16431_18596 = state_16418__$1;(statearr_16431_18596[2] = inst_16408); (statearr_16431_18596[1] = 10); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {return null; } } } } } } } } } } } });})(c__13951__auto___18586,out)) ;return ((function (switch__13881__auto__,c__13951__auto___18586,out){ return (function() { var state_machine__13882__auto__ = null; var state_machine__13882__auto____0 = (function (){var statearr_16435 = [null,null,null,null,null,null,null,null,null];(statearr_16435[0] = state_machine__13882__auto__); (statearr_16435[1] = 1); return statearr_16435; }); var state_machine__13882__auto____1 = (function (state_16418){while(true){ var ret_value__13883__auto__ = (function (){try{while(true){ var result__13884__auto__ = switch__13881__auto__.call(null,state_16418);if(cljs.core.keyword_identical_QMARK_.call(null,result__13884__auto__,new cljs.core.Keyword(null,"recur","recur",1122293407))) {{ continue; } } else {return result__13884__auto__; } break; } }catch (e16436){if((e16436 instanceof Object)) {var ex__13885__auto__ = e16436;var statearr_16437_18597 = state_16418;(statearr_16437_18597[5] = ex__13885__auto__); cljs.core.async.impl.ioc_helpers.process_exception.call(null,state_16418); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if(new cljs.core.Keyword(null,"else","else",1017020587)) {throw e16436; } else {return null; } } }})();if(cljs.core.keyword_identical_QMARK_.call(null,ret_value__13883__auto__,new cljs.core.Keyword(null,"recur","recur",1122293407))) {{ var G__18598 = state_16418; state_16418 = G__18598; continue; } } else {return ret_value__13883__auto__; } break; } }); state_machine__13882__auto__ = function(state_16418){ switch(arguments.length){ case 0: return state_machine__13882__auto____0.call(this); case 1: return state_machine__13882__auto____1.call(this,state_16418); } throw(new Error('Invalid arity: ' + arguments.length)); }; state_machine__13882__auto__.cljs$core$IFn$_invoke$arity$0 = state_machine__13882__auto____0; state_machine__13882__auto__.cljs$core$IFn$_invoke$arity$1 = state_machine__13882__auto____1; return state_machine__13882__auto__; })() ;})(switch__13881__auto__,c__13951__auto___18586,out)) })();var state__13953__auto__ = (function (){var statearr_16438 = f__13952__auto__.call(null);(statearr_16438[cljs.core.async.impl.ioc_helpers.USER_START_IDX] = c__13951__auto___18586); return statearr_16438; })();return cljs.core.async.impl.ioc_helpers.run_state_machine_wrapped.call(null,state__13953__auto__); });})(c__13951__auto___18586,out)) ); return out; }); filter_LT_ = function(p,ch,buf_or_n){ switch(arguments.length){ case 2: return filter_LT___2.call(this,p,ch); case 3: return filter_LT___3.call(this,p,ch,buf_or_n); } throw(new Error('Invalid arity: ' + arguments.length)); }; filter_LT_.cljs$core$IFn$_invoke$arity$2 = filter_LT___2; filter_LT_.cljs$core$IFn$_invoke$arity$3 = filter_LT___3; return filter_LT_; })() ; /** * Takes a predicate and a source channel, and returns a channel which * contains only the values taken from the source channel for which the * predicate returns false. The returned channel will be unbuffered by * default, or a buf-or-n can be supplied. The channel will close * when the source channel closes. */ cljs.core.async.remove_LT_ = (function() { var remove_LT_ = null; var remove_LT___2 = (function (p,ch){return remove_LT_.call(null,p,ch,null); }); var remove_LT___3 = (function (p,ch,buf_or_n){return cljs.core.async.filter_LT_.call(null,cljs.core.complement.call(null,p),ch,buf_or_n); }); remove_LT_ = function(p,ch,buf_or_n){ switch(arguments.length){ case 2: return remove_LT___2.call(this,p,ch); case 3: return remove_LT___3.call(this,p,ch,buf_or_n); } throw(new Error('Invalid arity: ' + arguments.length)); }; remove_LT_.cljs$core$IFn$_invoke$arity$2 = remove_LT___2; remove_LT_.cljs$core$IFn$_invoke$arity$3 = remove_LT___3; return remove_LT_; })() ; cljs.core.async.mapcat_STAR_ = (function mapcat_STAR_(f,in$,out){var c__13951__auto__ = cljs.core.async.chan.call(null,1);cljs.core.async.impl.dispatch.run.call(null,((function (c__13951__auto__){ return (function (){var f__13952__auto__ = (function (){var switch__13881__auto__ = ((function (c__13951__auto__){ return (function (state_16590){var state_val_16591 = (state_16590[1]);if((state_val_16591 === 1)) {var state_16590__$1 = state_16590;var statearr_16592_18599 = state_16590__$1;(statearr_16592_18599[2] = null); (statearr_16592_18599[1] = 2); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_16591 === 2)) {var state_16590__$1 = state_16590;return cljs.core.async.impl.ioc_helpers.take_BANG_.call(null,state_16590__$1,4,in$); } else {if((state_val_16591 === 3)) {var inst_16588 = (state_16590[2]);var state_16590__$1 = state_16590;return cljs.core.async.impl.ioc_helpers.return_chan.call(null,state_16590__$1,inst_16588); } else {if((state_val_16591 === 4)) {var inst_16536 = (state_16590[7]);var inst_16536__$1 = (state_16590[2]);var inst_16537 = (inst_16536__$1 == null);var state_16590__$1 = (function (){var statearr_16593 = state_16590;(statearr_16593[7] = inst_16536__$1); return statearr_16593; })();if(cljs.core.truth_(inst_16537)) {var statearr_16594_18600 = state_16590__$1;(statearr_16594_18600[1] = 5); } else {var statearr_16595_18601 = state_16590__$1;(statearr_16595_18601[1] = 6); } return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_16591 === 5)) {var inst_16539 = cljs.core.async.close_BANG_.call(null,out);var state_16590__$1 = state_16590;var statearr_16596_18602 = state_16590__$1;(statearr_16596_18602[2] = inst_16539); (statearr_16596_18602[1] = 7); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_16591 === 6)) {var inst_16536 = (state_16590[7]);var inst_16541 = f.call(null,inst_16536);var inst_16546 = cljs.core.seq.call(null,inst_16541);var inst_16547 = inst_16546;var inst_16548 = null;var inst_16549 = 0;var inst_16550 = 0;var state_16590__$1 = (function (){var statearr_16597 = state_16590;(statearr_16597[8] = inst_16549); (statearr_16597[9] = inst_16548); (statearr_16597[10] = inst_16547); (statearr_16597[11] = inst_16550); return statearr_16597; })();var statearr_16598_18603 = state_16590__$1;(statearr_16598_18603[2] = null); (statearr_16598_18603[1] = 8); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_16591 === 7)) {var inst_16586 = (state_16590[2]);var state_16590__$1 = state_16590;var statearr_16599_18604 = state_16590__$1;(statearr_16599_18604[2] = inst_16586); (statearr_16599_18604[1] = 3); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_16591 === 8)) {var inst_16549 = (state_16590[8]);var inst_16550 = (state_16590[11]);var inst_16552 = (inst_16550 < inst_16549);var inst_16553 = inst_16552;var state_16590__$1 = state_16590;if(cljs.core.truth_(inst_16553)) {var statearr_16600_18605 = state_16590__$1;(statearr_16600_18605[1] = 10); } else {var statearr_16601_18606 = state_16590__$1;(statearr_16601_18606[1] = 11); } return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_16591 === 9)) {var inst_16583 = (state_16590[2]);var state_16590__$1 = (function (){var statearr_16602 = state_16590;(statearr_16602[12] = inst_16583); return statearr_16602; })();var statearr_16603_18607 = state_16590__$1;(statearr_16603_18607[2] = null); (statearr_16603_18607[1] = 2); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_16591 === 10)) {var inst_16548 = (state_16590[9]);var inst_16550 = (state_16590[11]);var inst_16555 = cljs.core._nth.call(null,inst_16548,inst_16550);var state_16590__$1 = state_16590;return cljs.core.async.impl.ioc_helpers.put_BANG_.call(null,state_16590__$1,13,out,inst_16555); } else {if((state_val_16591 === 11)) {var inst_16547 = (state_16590[10]);var inst_16561 = (state_16590[13]);var inst_16561__$1 = cljs.core.seq.call(null,inst_16547);var state_16590__$1 = (function (){var statearr_16607 = state_16590;(statearr_16607[13] = inst_16561__$1); return statearr_16607; })();if(inst_16561__$1) {var statearr_16608_18608 = state_16590__$1;(statearr_16608_18608[1] = 14); } else {var statearr_16609_18609 = state_16590__$1;(statearr_16609_18609[1] = 15); } return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_16591 === 12)) {var inst_16581 = (state_16590[2]);var state_16590__$1 = state_16590;var statearr_16610_18610 = state_16590__$1;(statearr_16610_18610[2] = inst_16581); (statearr_16610_18610[1] = 9); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_16591 === 13)) {var inst_16549 = (state_16590[8]);var inst_16548 = (state_16590[9]);var inst_16547 = (state_16590[10]);var inst_16550 = (state_16590[11]);var inst_16557 = (state_16590[2]);var inst_16558 = (inst_16550 + 1);var tmp16604 = inst_16549;var tmp16605 = inst_16548;var tmp16606 = inst_16547;var inst_16547__$1 = tmp16606;var inst_16548__$1 = tmp16605;var inst_16549__$1 = tmp16604;var inst_16550__$1 = inst_16558;var state_16590__$1 = (function (){var statearr_16611 = state_16590;(statearr_16611[8] = inst_16549__$1); (statearr_16611[14] = inst_16557); (statearr_16611[9] = inst_16548__$1); (statearr_16611[10] = inst_16547__$1); (statearr_16611[11] = inst_16550__$1); return statearr_16611; })();var statearr_16612_18611 = state_16590__$1;(statearr_16612_18611[2] = null); (statearr_16612_18611[1] = 8); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_16591 === 14)) {var inst_16561 = (state_16590[13]);var inst_16563 = cljs.core.chunked_seq_QMARK_.call(null,inst_16561);var state_16590__$1 = state_16590;if(inst_16563) {var statearr_16613_18612 = state_16590__$1;(statearr_16613_18612[1] = 17); } else {var statearr_16614_18613 = state_16590__$1;(statearr_16614_18613[1] = 18); } return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_16591 === 15)) {var state_16590__$1 = state_16590;var statearr_16615_18614 = state_16590__$1;(statearr_16615_18614[2] = null); (statearr_16615_18614[1] = 16); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_16591 === 16)) {var inst_16579 = (state_16590[2]);var state_16590__$1 = state_16590;var statearr_16616_18615 = state_16590__$1;(statearr_16616_18615[2] = inst_16579); (statearr_16616_18615[1] = 12); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_16591 === 17)) {var inst_16561 = (state_16590[13]);var inst_16565 = cljs.core.chunk_first.call(null,inst_16561);var inst_16566 = cljs.core.chunk_rest.call(null,inst_16561);var inst_16567 = cljs.core.count.call(null,inst_16565);var inst_16547 = inst_16566;var inst_16548 = inst_16565;var inst_16549 = inst_16567;var inst_16550 = 0;var state_16590__$1 = (function (){var statearr_16617 = state_16590;(statearr_16617[8] = inst_16549); (statearr_16617[9] = inst_16548); (statearr_16617[10] = inst_16547); (statearr_16617[11] = inst_16550); return statearr_16617; })();var statearr_16618_18616 = state_16590__$1;(statearr_16618_18616[2] = null); (statearr_16618_18616[1] = 8); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_16591 === 18)) {var inst_16561 = (state_16590[13]);var inst_16570 = cljs.core.first.call(null,inst_16561);var state_16590__$1 = state_16590;return cljs.core.async.impl.ioc_helpers.put_BANG_.call(null,state_16590__$1,20,out,inst_16570); } else {if((state_val_16591 === 19)) {var inst_16576 = (state_16590[2]);var state_16590__$1 = state_16590;var statearr_16619_18617 = state_16590__$1;(statearr_16619_18617[2] = inst_16576); (statearr_16619_18617[1] = 16); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_16591 === 20)) {var inst_16561 = (state_16590[13]);var inst_16572 = (state_16590[2]);var inst_16573 = cljs.core.next.call(null,inst_16561);var inst_16547 = inst_16573;var inst_16548 = null;var inst_16549 = 0;var inst_16550 = 0;var state_16590__$1 = (function (){var statearr_16620 = state_16590;(statearr_16620[8] = inst_16549); (statearr_16620[9] = inst_16548); (statearr_16620[10] = inst_16547); (statearr_16620[11] = inst_16550); (statearr_16620[15] = inst_16572); return statearr_16620; })();var statearr_16621_18618 = state_16590__$1;(statearr_16621_18618[2] = null); (statearr_16621_18618[1] = 8); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {return null; } } } } } } } } } } } } } } } } } } } } });})(c__13951__auto__)) ;return ((function (switch__13881__auto__,c__13951__auto__){ return (function() { var state_machine__13882__auto__ = null; var state_machine__13882__auto____0 = (function (){var statearr_16625 = [null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null];(statearr_16625[0] = state_machine__13882__auto__); (statearr_16625[1] = 1); return statearr_16625; }); var state_machine__13882__auto____1 = (function (state_16590){while(true){ var ret_value__13883__auto__ = (function (){try{while(true){ var result__13884__auto__ = switch__13881__auto__.call(null,state_16590);if(cljs.core.keyword_identical_QMARK_.call(null,result__13884__auto__,new cljs.core.Keyword(null,"recur","recur",1122293407))) {{ continue; } } else {return result__13884__auto__; } break; } }catch (e16626){if((e16626 instanceof Object)) {var ex__13885__auto__ = e16626;var statearr_16627_18619 = state_16590;(statearr_16627_18619[5] = ex__13885__auto__); cljs.core.async.impl.ioc_helpers.process_exception.call(null,state_16590); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if(new cljs.core.Keyword(null,"else","else",1017020587)) {throw e16626; } else {return null; } } }})();if(cljs.core.keyword_identical_QMARK_.call(null,ret_value__13883__auto__,new cljs.core.Keyword(null,"recur","recur",1122293407))) {{ var G__18620 = state_16590; state_16590 = G__18620; continue; } } else {return ret_value__13883__auto__; } break; } }); state_machine__13882__auto__ = function(state_16590){ switch(arguments.length){ case 0: return state_machine__13882__auto____0.call(this); case 1: return state_machine__13882__auto____1.call(this,state_16590); } throw(new Error('Invalid arity: ' + arguments.length)); }; state_machine__13882__auto__.cljs$core$IFn$_invoke$arity$0 = state_machine__13882__auto____0; state_machine__13882__auto__.cljs$core$IFn$_invoke$arity$1 = state_machine__13882__auto____1; return state_machine__13882__auto__; })() ;})(switch__13881__auto__,c__13951__auto__)) })();var state__13953__auto__ = (function (){var statearr_16628 = f__13952__auto__.call(null);(statearr_16628[cljs.core.async.impl.ioc_helpers.USER_START_IDX] = c__13951__auto__); return statearr_16628; })();return cljs.core.async.impl.ioc_helpers.run_state_machine_wrapped.call(null,state__13953__auto__); });})(c__13951__auto__)) ); return c__13951__auto__; }); /** * Takes a function and a source channel, and returns a channel which * contains the values in each collection produced by applying f to * each value taken from the source channel. f must return a * collection. * * The returned channel will be unbuffered by default, or a buf-or-n * can be supplied. The channel will close when the source channel * closes. */ cljs.core.async.mapcat_LT_ = (function() { var mapcat_LT_ = null; var mapcat_LT___2 = (function (f,in$){return mapcat_LT_.call(null,f,in$,null); }); var mapcat_LT___3 = (function (f,in$,buf_or_n){var out = cljs.core.async.chan.call(null,buf_or_n);cljs.core.async.mapcat_STAR_.call(null,f,in$,out); return out; }); mapcat_LT_ = function(f,in$,buf_or_n){ switch(arguments.length){ case 2: return mapcat_LT___2.call(this,f,in$); case 3: return mapcat_LT___3.call(this,f,in$,buf_or_n); } throw(new Error('Invalid arity: ' + arguments.length)); }; mapcat_LT_.cljs$core$IFn$_invoke$arity$2 = mapcat_LT___2; mapcat_LT_.cljs$core$IFn$_invoke$arity$3 = mapcat_LT___3; return mapcat_LT_; })() ; /** * Takes a function and a target channel, and returns a channel which * applies f to each value put, then supplies each element of the result * to the target channel. f must return a collection. * * The returned channel will be unbuffered by default, or a buf-or-n * can be supplied. The target channel will be closed when the source * channel closes. */ cljs.core.async.mapcat_GT_ = (function() { var mapcat_GT_ = null; var mapcat_GT___2 = (function (f,out){return mapcat_GT_.call(null,f,out,null); }); var mapcat_GT___3 = (function (f,out,buf_or_n){var in$ = cljs.core.async.chan.call(null,buf_or_n);cljs.core.async.mapcat_STAR_.call(null,f,in$,out); return in$; }); mapcat_GT_ = function(f,out,buf_or_n){ switch(arguments.length){ case 2: return mapcat_GT___2.call(this,f,out); case 3: return mapcat_GT___3.call(this,f,out,buf_or_n); } throw(new Error('Invalid arity: ' + arguments.length)); }; mapcat_GT_.cljs$core$IFn$_invoke$arity$2 = mapcat_GT___2; mapcat_GT_.cljs$core$IFn$_invoke$arity$3 = mapcat_GT___3; return mapcat_GT_; })() ; /** * Takes elements from the from channel and supplies them to the to * channel. By default, the to channel will be closed when the * from channel closes, but can be determined by the close? * parameter. */ cljs.core.async.pipe = (function() { var pipe = null; var pipe__2 = (function (from,to){return pipe.call(null,from,to,true); }); var pipe__3 = (function (from,to,close_QMARK_){var c__13951__auto___18621 = cljs.core.async.chan.call(null,1);cljs.core.async.impl.dispatch.run.call(null,((function (c__13951__auto___18621){ return (function (){var f__13952__auto__ = (function (){var switch__13881__auto__ = ((function (c__13951__auto___18621){ return (function (state_16688){var state_val_16689 = (state_16688[1]);if((state_val_16689 === 1)) {var state_16688__$1 = state_16688;var statearr_16690_18622 = state_16688__$1;(statearr_16690_18622[2] = null); (statearr_16690_18622[1] = 2); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_16689 === 2)) {var state_16688__$1 = state_16688;return cljs.core.async.impl.ioc_helpers.take_BANG_.call(null,state_16688__$1,4,from); } else {if((state_val_16689 === 3)) {var inst_16686 = (state_16688[2]);var state_16688__$1 = state_16688;return cljs.core.async.impl.ioc_helpers.return_chan.call(null,state_16688__$1,inst_16686); } else {if((state_val_16689 === 4)) {var inst_16671 = (state_16688[7]);var inst_16671__$1 = (state_16688[2]);var inst_16672 = (inst_16671__$1 == null);var state_16688__$1 = (function (){var statearr_16691 = state_16688;(statearr_16691[7] = inst_16671__$1); return statearr_16691; })();if(cljs.core.truth_(inst_16672)) {var statearr_16692_18623 = state_16688__$1;(statearr_16692_18623[1] = 5); } else {var statearr_16693_18624 = state_16688__$1;(statearr_16693_18624[1] = 6); } return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_16689 === 5)) {var state_16688__$1 = state_16688;if(cljs.core.truth_(close_QMARK_)) {var statearr_16694_18625 = state_16688__$1;(statearr_16694_18625[1] = 8); } else {var statearr_16695_18626 = state_16688__$1;(statearr_16695_18626[1] = 9); } return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_16689 === 6)) {var inst_16671 = (state_16688[7]);var state_16688__$1 = state_16688;return cljs.core.async.impl.ioc_helpers.put_BANG_.call(null,state_16688__$1,11,to,inst_16671); } else {if((state_val_16689 === 7)) {var inst_16684 = (state_16688[2]);var state_16688__$1 = state_16688;var statearr_16696_18627 = state_16688__$1;(statearr_16696_18627[2] = inst_16684); (statearr_16696_18627[1] = 3); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_16689 === 8)) {var inst_16675 = cljs.core.async.close_BANG_.call(null,to);var state_16688__$1 = state_16688;var statearr_16697_18628 = state_16688__$1;(statearr_16697_18628[2] = inst_16675); (statearr_16697_18628[1] = 10); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_16689 === 9)) {var state_16688__$1 = state_16688;var statearr_16698_18629 = state_16688__$1;(statearr_16698_18629[2] = null); (statearr_16698_18629[1] = 10); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_16689 === 10)) {var inst_16678 = (state_16688[2]);var state_16688__$1 = state_16688;var statearr_16699_18630 = state_16688__$1;(statearr_16699_18630[2] = inst_16678); (statearr_16699_18630[1] = 7); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_16689 === 11)) {var inst_16681 = (state_16688[2]);var state_16688__$1 = (function (){var statearr_16700 = state_16688;(statearr_16700[8] = inst_16681); return statearr_16700; })();var statearr_16701_18631 = state_16688__$1;(statearr_16701_18631[2] = null); (statearr_16701_18631[1] = 2); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {return null; } } } } } } } } } } } });})(c__13951__auto___18621)) ;return ((function (switch__13881__auto__,c__13951__auto___18621){ return (function() { var state_machine__13882__auto__ = null; var state_machine__13882__auto____0 = (function (){var statearr_16705 = [null,null,null,null,null,null,null,null,null];(statearr_16705[0] = state_machine__13882__auto__); (statearr_16705[1] = 1); return statearr_16705; }); var state_machine__13882__auto____1 = (function (state_16688){while(true){ var ret_value__13883__auto__ = (function (){try{while(true){ var result__13884__auto__ = switch__13881__auto__.call(null,state_16688);if(cljs.core.keyword_identical_QMARK_.call(null,result__13884__auto__,new cljs.core.Keyword(null,"recur","recur",1122293407))) {{ continue; } } else {return result__13884__auto__; } break; } }catch (e16706){if((e16706 instanceof Object)) {var ex__13885__auto__ = e16706;var statearr_16707_18632 = state_16688;(statearr_16707_18632[5] = ex__13885__auto__); cljs.core.async.impl.ioc_helpers.process_exception.call(null,state_16688); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if(new cljs.core.Keyword(null,"else","else",1017020587)) {throw e16706; } else {return null; } } }})();if(cljs.core.keyword_identical_QMARK_.call(null,ret_value__13883__auto__,new cljs.core.Keyword(null,"recur","recur",1122293407))) {{ var G__18633 = state_16688; state_16688 = G__18633; continue; } } else {return ret_value__13883__auto__; } break; } }); state_machine__13882__auto__ = function(state_16688){ switch(arguments.length){ case 0: return state_machine__13882__auto____0.call(this); case 1: return state_machine__13882__auto____1.call(this,state_16688); } throw(new Error('Invalid arity: ' + arguments.length)); }; state_machine__13882__auto__.cljs$core$IFn$_invoke$arity$0 = state_machine__13882__auto____0; state_machine__13882__auto__.cljs$core$IFn$_invoke$arity$1 = state_machine__13882__auto____1; return state_machine__13882__auto__; })() ;})(switch__13881__auto__,c__13951__auto___18621)) })();var state__13953__auto__ = (function (){var statearr_16708 = f__13952__auto__.call(null);(statearr_16708[cljs.core.async.impl.ioc_helpers.USER_START_IDX] = c__13951__auto___18621); return statearr_16708; })();return cljs.core.async.impl.ioc_helpers.run_state_machine_wrapped.call(null,state__13953__auto__); });})(c__13951__auto___18621)) ); return to; }); pipe = function(from,to,close_QMARK_){ switch(arguments.length){ case 2: return pipe__2.call(this,from,to); case 3: return pipe__3.call(this,from,to,close_QMARK_); } throw(new Error('Invalid arity: ' + arguments.length)); }; pipe.cljs$core$IFn$_invoke$arity$2 = pipe__2; pipe.cljs$core$IFn$_invoke$arity$3 = pipe__3; return pipe; })() ; /** * Takes a predicate and a source channel and returns a vector of two * channels, the first of which will contain the values for which the * predicate returned true, the second those for which it returned * false. * * The out channels will be unbuffered by default, or two buf-or-ns can * be supplied. The channels will close after the source channel has * closed. */ cljs.core.async.split = (function() { var split = null; var split__2 = (function (p,ch){return split.call(null,p,ch,null,null); }); var split__4 = (function (p,ch,t_buf_or_n,f_buf_or_n){var tc = cljs.core.async.chan.call(null,t_buf_or_n);var fc = cljs.core.async.chan.call(null,f_buf_or_n);var c__13951__auto___18634 = cljs.core.async.chan.call(null,1);cljs.core.async.impl.dispatch.run.call(null,((function (c__13951__auto___18634,tc,fc){ return (function (){var f__13952__auto__ = (function (){var switch__13881__auto__ = ((function (c__13951__auto___18634,tc,fc){ return (function (state_16773){var state_val_16774 = (state_16773[1]);if((state_val_16774 === 1)) {var state_16773__$1 = state_16773;var statearr_16775_18635 = state_16773__$1;(statearr_16775_18635[2] = null); (statearr_16775_18635[1] = 2); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_16774 === 2)) {var state_16773__$1 = state_16773;return cljs.core.async.impl.ioc_helpers.take_BANG_.call(null,state_16773__$1,4,ch); } else {if((state_val_16774 === 3)) {var inst_16771 = (state_16773[2]);var state_16773__$1 = state_16773;return cljs.core.async.impl.ioc_helpers.return_chan.call(null,state_16773__$1,inst_16771); } else {if((state_val_16774 === 4)) {var inst_16754 = (state_16773[7]);var inst_16754__$1 = (state_16773[2]);var inst_16755 = (inst_16754__$1 == null);var state_16773__$1 = (function (){var statearr_16776 = state_16773;(statearr_16776[7] = inst_16754__$1); return statearr_16776; })();if(cljs.core.truth_(inst_16755)) {var statearr_16777_18636 = state_16773__$1;(statearr_16777_18636[1] = 5); } else {var statearr_16778_18637 = state_16773__$1;(statearr_16778_18637[1] = 6); } return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_16774 === 5)) {var inst_16757 = cljs.core.async.close_BANG_.call(null,tc);var inst_16758 = cljs.core.async.close_BANG_.call(null,fc);var state_16773__$1 = (function (){var statearr_16779 = state_16773;(statearr_16779[8] = inst_16757); return statearr_16779; })();var statearr_16780_18638 = state_16773__$1;(statearr_16780_18638[2] = inst_16758); (statearr_16780_18638[1] = 7); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_16774 === 6)) {var inst_16754 = (state_16773[7]);var inst_16760 = p.call(null,inst_16754);var state_16773__$1 = state_16773;if(cljs.core.truth_(inst_16760)) {var statearr_16781_18639 = state_16773__$1;(statearr_16781_18639[1] = 9); } else {var statearr_16782_18640 = state_16773__$1;(statearr_16782_18640[1] = 10); } return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_16774 === 7)) {var inst_16769 = (state_16773[2]);var state_16773__$1 = state_16773;var statearr_16783_18641 = state_16773__$1;(statearr_16783_18641[2] = inst_16769); (statearr_16783_18641[1] = 3); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_16774 === 8)) {var inst_16766 = (state_16773[2]);var state_16773__$1 = (function (){var statearr_16784 = state_16773;(statearr_16784[9] = inst_16766); return statearr_16784; })();var statearr_16785_18642 = state_16773__$1;(statearr_16785_18642[2] = null); (statearr_16785_18642[1] = 2); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_16774 === 9)) {var state_16773__$1 = state_16773;var statearr_16786_18643 = state_16773__$1;(statearr_16786_18643[2] = tc); (statearr_16786_18643[1] = 11); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_16774 === 10)) {var state_16773__$1 = state_16773;var statearr_16787_18644 = state_16773__$1;(statearr_16787_18644[2] = fc); (statearr_16787_18644[1] = 11); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_16774 === 11)) {var inst_16754 = (state_16773[7]);var inst_16764 = (state_16773[2]);var state_16773__$1 = state_16773;return cljs.core.async.impl.ioc_helpers.put_BANG_.call(null,state_16773__$1,8,inst_16764,inst_16754); } else {return null; } } } } } } } } } } } });})(c__13951__auto___18634,tc,fc)) ;return ((function (switch__13881__auto__,c__13951__auto___18634,tc,fc){ return (function() { var state_machine__13882__auto__ = null; var state_machine__13882__auto____0 = (function (){var statearr_16791 = [null,null,null,null,null,null,null,null,null,null];(statearr_16791[0] = state_machine__13882__auto__); (statearr_16791[1] = 1); return statearr_16791; }); var state_machine__13882__auto____1 = (function (state_16773){while(true){ var ret_value__13883__auto__ = (function (){try{while(true){ var result__13884__auto__ = switch__13881__auto__.call(null,state_16773);if(cljs.core.keyword_identical_QMARK_.call(null,result__13884__auto__,new cljs.core.Keyword(null,"recur","recur",1122293407))) {{ continue; } } else {return result__13884__auto__; } break; } }catch (e16792){if((e16792 instanceof Object)) {var ex__13885__auto__ = e16792;var statearr_16793_18645 = state_16773;(statearr_16793_18645[5] = ex__13885__auto__); cljs.core.async.impl.ioc_helpers.process_exception.call(null,state_16773); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if(new cljs.core.Keyword(null,"else","else",1017020587)) {throw e16792; } else {return null; } } }})();if(cljs.core.keyword_identical_QMARK_.call(null,ret_value__13883__auto__,new cljs.core.Keyword(null,"recur","recur",1122293407))) {{ var G__18646 = state_16773; state_16773 = G__18646; continue; } } else {return ret_value__13883__auto__; } break; } }); state_machine__13882__auto__ = function(state_16773){ switch(arguments.length){ case 0: return state_machine__13882__auto____0.call(this); case 1: return state_machine__13882__auto____1.call(this,state_16773); } throw(new Error('Invalid arity: ' + arguments.length)); }; state_machine__13882__auto__.cljs$core$IFn$_invoke$arity$0 = state_machine__13882__auto____0; state_machine__13882__auto__.cljs$core$IFn$_invoke$arity$1 = state_machine__13882__auto____1; return state_machine__13882__auto__; })() ;})(switch__13881__auto__,c__13951__auto___18634,tc,fc)) })();var state__13953__auto__ = (function (){var statearr_16794 = f__13952__auto__.call(null);(statearr_16794[cljs.core.async.impl.ioc_helpers.USER_START_IDX] = c__13951__auto___18634); return statearr_16794; })();return cljs.core.async.impl.ioc_helpers.run_state_machine_wrapped.call(null,state__13953__auto__); });})(c__13951__auto___18634,tc,fc)) ); return new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [tc,fc], null); }); split = function(p,ch,t_buf_or_n,f_buf_or_n){ switch(arguments.length){ case 2: return split__2.call(this,p,ch); case 4: return split__4.call(this,p,ch,t_buf_or_n,f_buf_or_n); } throw(new Error('Invalid arity: ' + arguments.length)); }; split.cljs$core$IFn$_invoke$arity$2 = split__2; split.cljs$core$IFn$_invoke$arity$4 = split__4; return split; })() ; /** * f should be a function of 2 arguments. Returns a channel containing * the single result of applying f to init and the first item from the * channel, then applying f to that result and the 2nd item, etc. If * the channel closes without yielding items, returns init and f is not * called. ch must close before reduce produces a result. */ cljs.core.async.reduce = (function reduce(f,init,ch){var c__13951__auto__ = cljs.core.async.chan.call(null,1);cljs.core.async.impl.dispatch.run.call(null,((function (c__13951__auto__){ return (function (){var f__13952__auto__ = (function (){var switch__13881__auto__ = ((function (c__13951__auto__){ return (function (state_16841){var state_val_16842 = (state_16841[1]);if((state_val_16842 === 7)) {var inst_16837 = (state_16841[2]);var state_16841__$1 = state_16841;var statearr_16843_18647 = state_16841__$1;(statearr_16843_18647[2] = inst_16837); (statearr_16843_18647[1] = 3); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_16842 === 6)) {var inst_16827 = (state_16841[7]);var inst_16830 = (state_16841[8]);var inst_16834 = f.call(null,inst_16827,inst_16830);var inst_16827__$1 = inst_16834;var state_16841__$1 = (function (){var statearr_16844 = state_16841;(statearr_16844[7] = inst_16827__$1); return statearr_16844; })();var statearr_16845_18648 = state_16841__$1;(statearr_16845_18648[2] = null); (statearr_16845_18648[1] = 2); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_16842 === 5)) {var inst_16827 = (state_16841[7]);var state_16841__$1 = state_16841;var statearr_16846_18649 = state_16841__$1;(statearr_16846_18649[2] = inst_16827); (statearr_16846_18649[1] = 7); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_16842 === 4)) {var inst_16830 = (state_16841[8]);var inst_16830__$1 = (state_16841[2]);var inst_16831 = (inst_16830__$1 == null);var state_16841__$1 = (function (){var statearr_16847 = state_16841;(statearr_16847[8] = inst_16830__$1); return statearr_16847; })();if(cljs.core.truth_(inst_16831)) {var statearr_16848_18650 = state_16841__$1;(statearr_16848_18650[1] = 5); } else {var statearr_16849_18651 = state_16841__$1;(statearr_16849_18651[1] = 6); } return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_16842 === 3)) {var inst_16839 = (state_16841[2]);var state_16841__$1 = state_16841;return cljs.core.async.impl.ioc_helpers.return_chan.call(null,state_16841__$1,inst_16839); } else {if((state_val_16842 === 2)) {var state_16841__$1 = state_16841;return cljs.core.async.impl.ioc_helpers.take_BANG_.call(null,state_16841__$1,4,ch); } else {if((state_val_16842 === 1)) {var inst_16827 = init;var state_16841__$1 = (function (){var statearr_16850 = state_16841;(statearr_16850[7] = inst_16827); return statearr_16850; })();var statearr_16851_18652 = state_16841__$1;(statearr_16851_18652[2] = null); (statearr_16851_18652[1] = 2); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {return null; } } } } } } } });})(c__13951__auto__)) ;return ((function (switch__13881__auto__,c__13951__auto__){ return (function() { var state_machine__13882__auto__ = null; var state_machine__13882__auto____0 = (function (){var statearr_16855 = [null,null,null,null,null,null,null,null,null];(statearr_16855[0] = state_machine__13882__auto__); (statearr_16855[1] = 1); return statearr_16855; }); var state_machine__13882__auto____1 = (function (state_16841){while(true){ var ret_value__13883__auto__ = (function (){try{while(true){ var result__13884__auto__ = switch__13881__auto__.call(null,state_16841);if(cljs.core.keyword_identical_QMARK_.call(null,result__13884__auto__,new cljs.core.Keyword(null,"recur","recur",1122293407))) {{ continue; } } else {return result__13884__auto__; } break; } }catch (e16856){if((e16856 instanceof Object)) {var ex__13885__auto__ = e16856;var statearr_16857_18653 = state_16841;(statearr_16857_18653[5] = ex__13885__auto__); cljs.core.async.impl.ioc_helpers.process_exception.call(null,state_16841); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if(new cljs.core.Keyword(null,"else","else",1017020587)) {throw e16856; } else {return null; } } }})();if(cljs.core.keyword_identical_QMARK_.call(null,ret_value__13883__auto__,new cljs.core.Keyword(null,"recur","recur",1122293407))) {{ var G__18654 = state_16841; state_16841 = G__18654; continue; } } else {return ret_value__13883__auto__; } break; } }); state_machine__13882__auto__ = function(state_16841){ switch(arguments.length){ case 0: return state_machine__13882__auto____0.call(this); case 1: return state_machine__13882__auto____1.call(this,state_16841); } throw(new Error('Invalid arity: ' + arguments.length)); }; state_machine__13882__auto__.cljs$core$IFn$_invoke$arity$0 = state_machine__13882__auto____0; state_machine__13882__auto__.cljs$core$IFn$_invoke$arity$1 = state_machine__13882__auto____1; return state_machine__13882__auto__; })() ;})(switch__13881__auto__,c__13951__auto__)) })();var state__13953__auto__ = (function (){var statearr_16858 = f__13952__auto__.call(null);(statearr_16858[cljs.core.async.impl.ioc_helpers.USER_START_IDX] = c__13951__auto__); return statearr_16858; })();return cljs.core.async.impl.ioc_helpers.run_state_machine_wrapped.call(null,state__13953__auto__); });})(c__13951__auto__)) ); return c__13951__auto__; }); /** * Puts the contents of coll into the supplied channel. * * By default the channel will be closed after the items are copied, * but can be determined by the close? parameter. * * Returns a channel which will close after the items are copied. */ cljs.core.async.onto_chan = (function() { var onto_chan = null; var onto_chan__2 = (function (ch,coll){return onto_chan.call(null,ch,coll,true); }); var onto_chan__3 = (function (ch,coll,close_QMARK_){var c__13951__auto__ = cljs.core.async.chan.call(null,1);cljs.core.async.impl.dispatch.run.call(null,((function (c__13951__auto__){ return (function (){var f__13952__auto__ = (function (){var switch__13881__auto__ = ((function (c__13951__auto__){ return (function (state_16920){var state_val_16921 = (state_16920[1]);if((state_val_16921 === 1)) {var inst_16900 = cljs.core.seq.call(null,coll);var inst_16901 = inst_16900;var state_16920__$1 = (function (){var statearr_16922 = state_16920;(statearr_16922[7] = inst_16901); return statearr_16922; })();var statearr_16923_18655 = state_16920__$1;(statearr_16923_18655[2] = null); (statearr_16923_18655[1] = 2); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_16921 === 2)) {var inst_16901 = (state_16920[7]);var state_16920__$1 = state_16920;if(cljs.core.truth_(inst_16901)) {var statearr_16924_18656 = state_16920__$1;(statearr_16924_18656[1] = 4); } else {var statearr_16925_18657 = state_16920__$1;(statearr_16925_18657[1] = 5); } return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_16921 === 3)) {var inst_16918 = (state_16920[2]);var state_16920__$1 = state_16920;return cljs.core.async.impl.ioc_helpers.return_chan.call(null,state_16920__$1,inst_16918); } else {if((state_val_16921 === 4)) {var inst_16901 = (state_16920[7]);var inst_16904 = cljs.core.first.call(null,inst_16901);var state_16920__$1 = state_16920;return cljs.core.async.impl.ioc_helpers.put_BANG_.call(null,state_16920__$1,7,ch,inst_16904); } else {if((state_val_16921 === 5)) {var state_16920__$1 = state_16920;if(cljs.core.truth_(close_QMARK_)) {var statearr_16926_18658 = state_16920__$1;(statearr_16926_18658[1] = 8); } else {var statearr_16927_18659 = state_16920__$1;(statearr_16927_18659[1] = 9); } return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_16921 === 6)) {var inst_16916 = (state_16920[2]);var state_16920__$1 = state_16920;var statearr_16928_18660 = state_16920__$1;(statearr_16928_18660[2] = inst_16916); (statearr_16928_18660[1] = 3); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_16921 === 7)) {var inst_16901 = (state_16920[7]);var inst_16906 = (state_16920[2]);var inst_16907 = cljs.core.next.call(null,inst_16901);var inst_16901__$1 = inst_16907;var state_16920__$1 = (function (){var statearr_16929 = state_16920;(statearr_16929[7] = inst_16901__$1); (statearr_16929[8] = inst_16906); return statearr_16929; })();var statearr_16930_18661 = state_16920__$1;(statearr_16930_18661[2] = null); (statearr_16930_18661[1] = 2); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_16921 === 8)) {var inst_16911 = cljs.core.async.close_BANG_.call(null,ch);var state_16920__$1 = state_16920;var statearr_16931_18662 = state_16920__$1;(statearr_16931_18662[2] = inst_16911); (statearr_16931_18662[1] = 10); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_16921 === 9)) {var state_16920__$1 = state_16920;var statearr_16932_18663 = state_16920__$1;(statearr_16932_18663[2] = null); (statearr_16932_18663[1] = 10); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_16921 === 10)) {var inst_16914 = (state_16920[2]);var state_16920__$1 = state_16920;var statearr_16933_18664 = state_16920__$1;(statearr_16933_18664[2] = inst_16914); (statearr_16933_18664[1] = 6); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {return null; } } } } } } } } } } });})(c__13951__auto__)) ;return ((function (switch__13881__auto__,c__13951__auto__){ return (function() { var state_machine__13882__auto__ = null; var state_machine__13882__auto____0 = (function (){var statearr_16937 = [null,null,null,null,null,null,null,null,null];(statearr_16937[0] = state_machine__13882__auto__); (statearr_16937[1] = 1); return statearr_16937; }); var state_machine__13882__auto____1 = (function (state_16920){while(true){ var ret_value__13883__auto__ = (function (){try{while(true){ var result__13884__auto__ = switch__13881__auto__.call(null,state_16920);if(cljs.core.keyword_identical_QMARK_.call(null,result__13884__auto__,new cljs.core.Keyword(null,"recur","recur",1122293407))) {{ continue; } } else {return result__13884__auto__; } break; } }catch (e16938){if((e16938 instanceof Object)) {var ex__13885__auto__ = e16938;var statearr_16939_18665 = state_16920;(statearr_16939_18665[5] = ex__13885__auto__); cljs.core.async.impl.ioc_helpers.process_exception.call(null,state_16920); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if(new cljs.core.Keyword(null,"else","else",1017020587)) {throw e16938; } else {return null; } } }})();if(cljs.core.keyword_identical_QMARK_.call(null,ret_value__13883__auto__,new cljs.core.Keyword(null,"recur","recur",1122293407))) {{ var G__18666 = state_16920; state_16920 = G__18666; continue; } } else {return ret_value__13883__auto__; } break; } }); state_machine__13882__auto__ = function(state_16920){ switch(arguments.length){ case 0: return state_machine__13882__auto____0.call(this); case 1: return state_machine__13882__auto____1.call(this,state_16920); } throw(new Error('Invalid arity: ' + arguments.length)); }; state_machine__13882__auto__.cljs$core$IFn$_invoke$arity$0 = state_machine__13882__auto____0; state_machine__13882__auto__.cljs$core$IFn$_invoke$arity$1 = state_machine__13882__auto____1; return state_machine__13882__auto__; })() ;})(switch__13881__auto__,c__13951__auto__)) })();var state__13953__auto__ = (function (){var statearr_16940 = f__13952__auto__.call(null);(statearr_16940[cljs.core.async.impl.ioc_helpers.USER_START_IDX] = c__13951__auto__); return statearr_16940; })();return cljs.core.async.impl.ioc_helpers.run_state_machine_wrapped.call(null,state__13953__auto__); });})(c__13951__auto__)) ); return c__13951__auto__; }); onto_chan = function(ch,coll,close_QMARK_){ switch(arguments.length){ case 2: return onto_chan__2.call(this,ch,coll); case 3: return onto_chan__3.call(this,ch,coll,close_QMARK_); } throw(new Error('Invalid arity: ' + arguments.length)); }; onto_chan.cljs$core$IFn$_invoke$arity$2 = onto_chan__2; onto_chan.cljs$core$IFn$_invoke$arity$3 = onto_chan__3; return onto_chan; })() ; /** * Creates and returns a channel which contains the contents of coll, * closing when exhausted. */ cljs.core.async.to_chan = (function to_chan(coll){var ch = cljs.core.async.chan.call(null,cljs.core.bounded_count.call(null,100,coll));cljs.core.async.onto_chan.call(null,ch,coll); return ch; }); cljs.core.async.Mux = (function (){var obj16942 = {};return obj16942; })(); cljs.core.async.muxch_STAR_ = (function muxch_STAR_(_){if((function (){var and__4872__auto__ = _;if(and__4872__auto__) {return _.cljs$core$async$Mux$muxch_STAR_$arity$1; } else {return and__4872__auto__; } })()) {return _.cljs$core$async$Mux$muxch_STAR_$arity$1(_); } else {var x__5511__auto__ = (((_ == null))?null:_);return (function (){var or__4884__auto__ = (cljs.core.async.muxch_STAR_[goog.typeOf(x__5511__auto__)]);if(or__4884__auto__) {return or__4884__auto__; } else {var or__4884__auto____$1 = (cljs.core.async.muxch_STAR_["_"]);if(or__4884__auto____$1) {return or__4884__auto____$1; } else {throw cljs.core.missing_protocol.call(null,"Mux.muxch*",_); } } })().call(null,_); } }); cljs.core.async.Mult = (function (){var obj16944 = {};return obj16944; })(); cljs.core.async.tap_STAR_ = (function tap_STAR_(m,ch,close_QMARK_){if((function (){var and__4872__auto__ = m;if(and__4872__auto__) {return m.cljs$core$async$Mult$tap_STAR_$arity$3; } else {return and__4872__auto__; } })()) {return m.cljs$core$async$Mult$tap_STAR_$arity$3(m,ch,close_QMARK_); } else {var x__5511__auto__ = (((m == null))?null:m);return (function (){var or__4884__auto__ = (cljs.core.async.tap_STAR_[goog.typeOf(x__5511__auto__)]);if(or__4884__auto__) {return or__4884__auto__; } else {var or__4884__auto____$1 = (cljs.core.async.tap_STAR_["_"]);if(or__4884__auto____$1) {return or__4884__auto____$1; } else {throw cljs.core.missing_protocol.call(null,"Mult.tap*",m); } } })().call(null,m,ch,close_QMARK_); } }); cljs.core.async.untap_STAR_ = (function untap_STAR_(m,ch){if((function (){var and__4872__auto__ = m;if(and__4872__auto__) {return m.cljs$core$async$Mult$untap_STAR_$arity$2; } else {return and__4872__auto__; } })()) {return m.cljs$core$async$Mult$untap_STAR_$arity$2(m,ch); } else {var x__5511__auto__ = (((m == null))?null:m);return (function (){var or__4884__auto__ = (cljs.core.async.untap_STAR_[goog.typeOf(x__5511__auto__)]);if(or__4884__auto__) {return or__4884__auto__; } else {var or__4884__auto____$1 = (cljs.core.async.untap_STAR_["_"]);if(or__4884__auto____$1) {return or__4884__auto____$1; } else {throw cljs.core.missing_protocol.call(null,"Mult.untap*",m); } } })().call(null,m,ch); } }); cljs.core.async.untap_all_STAR_ = (function untap_all_STAR_(m){if((function (){var and__4872__auto__ = m;if(and__4872__auto__) {return m.cljs$core$async$Mult$untap_all_STAR_$arity$1; } else {return and__4872__auto__; } })()) {return m.cljs$core$async$Mult$untap_all_STAR_$arity$1(m); } else {var x__5511__auto__ = (((m == null))?null:m);return (function (){var or__4884__auto__ = (cljs.core.async.untap_all_STAR_[goog.typeOf(x__5511__auto__)]);if(or__4884__auto__) {return or__4884__auto__; } else {var or__4884__auto____$1 = (cljs.core.async.untap_all_STAR_["_"]);if(or__4884__auto____$1) {return or__4884__auto____$1; } else {throw cljs.core.missing_protocol.call(null,"Mult.untap-all*",m); } } })().call(null,m); } }); /** * Creates and returns a mult(iple) of the supplied channel. Channels * containing copies of the channel can be created with 'tap', and * detached with 'untap'. * * Each item is distributed to all taps in parallel and synchronously, * i.e. each tap must accept before the next item is distributed. Use * buffering/windowing to prevent slow taps from holding up the mult. * * Items received when there are no taps get dropped. * * If a tap put throws an exception, it will be removed from the mult. */ cljs.core.async.mult = (function mult(ch){var cs = cljs.core.atom.call(null,cljs.core.PersistentArrayMap.EMPTY);var m = (function (){if(typeof cljs.core.async.t17168 !== 'undefined') {} else { /** * @constructor */ cljs.core.async.t17168 = (function (cs,ch,mult,meta17169){ this.cs = cs; this.ch = ch; this.mult = mult; this.meta17169 = meta17169; this.cljs$lang$protocol_mask$partition1$ = 0; this.cljs$lang$protocol_mask$partition0$ = 393216; }) cljs.core.async.t17168.cljs$lang$type = true; cljs.core.async.t17168.cljs$lang$ctorStr = "cljs.core.async/t17168"; cljs.core.async.t17168.cljs$lang$ctorPrWriter = ((function (cs){ return (function (this__5451__auto__,writer__5452__auto__,opt__5453__auto__){return cljs.core._write.call(null,writer__5452__auto__,"cljs.core.async/t17168"); });})(cs)) ; cljs.core.async.t17168.prototype.cljs$core$async$Mult$ = true; cljs.core.async.t17168.prototype.cljs$core$async$Mult$tap_STAR_$arity$3 = ((function (cs){ return (function (_,ch__$2,close_QMARK_){var self__ = this; var ___$1 = this;cljs.core.swap_BANG_.call(null,self__.cs,cljs.core.assoc,ch__$2,close_QMARK_); return null; });})(cs)) ; cljs.core.async.t17168.prototype.cljs$core$async$Mult$untap_STAR_$arity$2 = ((function (cs){ return (function (_,ch__$2){var self__ = this; var ___$1 = this;cljs.core.swap_BANG_.call(null,self__.cs,cljs.core.dissoc,ch__$2); return null; });})(cs)) ; cljs.core.async.t17168.prototype.cljs$core$async$Mult$untap_all_STAR_$arity$1 = ((function (cs){ return (function (_){var self__ = this; var ___$1 = this;cljs.core.reset_BANG_.call(null,self__.cs,cljs.core.PersistentArrayMap.EMPTY); return null; });})(cs)) ; cljs.core.async.t17168.prototype.cljs$core$async$Mux$ = true; cljs.core.async.t17168.prototype.cljs$core$async$Mux$muxch_STAR_$arity$1 = ((function (cs){ return (function (_){var self__ = this; var ___$1 = this;return self__.ch; });})(cs)) ; cljs.core.async.t17168.prototype.cljs$core$IMeta$_meta$arity$1 = ((function (cs){ return (function (_17170){var self__ = this; var _17170__$1 = this;return self__.meta17169; });})(cs)) ; cljs.core.async.t17168.prototype.cljs$core$IWithMeta$_with_meta$arity$2 = ((function (cs){ return (function (_17170,meta17169__$1){var self__ = this; var _17170__$1 = this;return (new cljs.core.async.t17168(self__.cs,self__.ch,self__.mult,meta17169__$1)); });})(cs)) ; cljs.core.async.__GT_t17168 = ((function (cs){ return (function __GT_t17168(cs__$1,ch__$1,mult__$1,meta17169){return (new cljs.core.async.t17168(cs__$1,ch__$1,mult__$1,meta17169)); });})(cs)) ; } return (new cljs.core.async.t17168(cs,ch,mult,null)); })();var dchan = cljs.core.async.chan.call(null,1);var dctr = cljs.core.atom.call(null,null);var done = ((function (cs,m,dchan,dctr){ return (function (){if((cljs.core.swap_BANG_.call(null,dctr,cljs.core.dec) === 0)) {return cljs.core.async.put_BANG_.call(null,dchan,true); } else {return null; } });})(cs,m,dchan,dctr)) ;var c__13951__auto___18667 = cljs.core.async.chan.call(null,1);cljs.core.async.impl.dispatch.run.call(null,((function (c__13951__auto___18667,cs,m,dchan,dctr,done){ return (function (){var f__13952__auto__ = (function (){var switch__13881__auto__ = ((function (c__13951__auto___18667,cs,m,dchan,dctr,done){ return (function (state_17305){var state_val_17306 = (state_17305[1]);if((state_val_17306 === 32)) {var inst_17249 = (state_17305[7]);var inst_17173 = (state_17305[8]);var _ = cljs.core.async.impl.ioc_helpers.add_exception_frame.call(null,state_17305,31,Object,null,30);var inst_17256 = cljs.core.async.put_BANG_.call(null,inst_17249,inst_17173,done);var state_17305__$1 = state_17305;var statearr_17307_18668 = state_17305__$1;(statearr_17307_18668[2] = inst_17256); cljs.core.async.impl.ioc_helpers.process_exception.call(null,state_17305__$1); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_17306 === 1)) {var state_17305__$1 = state_17305;var statearr_17308_18669 = state_17305__$1;(statearr_17308_18669[2] = null); (statearr_17308_18669[1] = 2); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_17306 === 33)) {var inst_17262 = (state_17305[9]);var inst_17264 = cljs.core.chunked_seq_QMARK_.call(null,inst_17262);var state_17305__$1 = state_17305;if(inst_17264) {var statearr_17309_18670 = state_17305__$1;(statearr_17309_18670[1] = 36); } else {var statearr_17310_18671 = state_17305__$1;(statearr_17310_18671[1] = 37); } return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_17306 === 2)) {var state_17305__$1 = state_17305;return cljs.core.async.impl.ioc_helpers.take_BANG_.call(null,state_17305__$1,4,ch); } else {if((state_val_17306 === 34)) {var state_17305__$1 = state_17305;var statearr_17311_18672 = state_17305__$1;(statearr_17311_18672[2] = null); (statearr_17311_18672[1] = 35); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_17306 === 3)) {var inst_17303 = (state_17305[2]);var state_17305__$1 = state_17305;return cljs.core.async.impl.ioc_helpers.return_chan.call(null,state_17305__$1,inst_17303); } else {if((state_val_17306 === 35)) {var inst_17287 = (state_17305[2]);var state_17305__$1 = state_17305;var statearr_17312_18673 = state_17305__$1;(statearr_17312_18673[2] = inst_17287); (statearr_17312_18673[1] = 29); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_17306 === 4)) {var inst_17173 = (state_17305[8]);var inst_17173__$1 = (state_17305[2]);var inst_17174 = (inst_17173__$1 == null);var state_17305__$1 = (function (){var statearr_17313 = state_17305;(statearr_17313[8] = inst_17173__$1); return statearr_17313; })();if(cljs.core.truth_(inst_17174)) {var statearr_17314_18674 = state_17305__$1;(statearr_17314_18674[1] = 5); } else {var statearr_17315_18675 = state_17305__$1;(statearr_17315_18675[1] = 6); } return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_17306 === 36)) {var inst_17262 = (state_17305[9]);var inst_17266 = cljs.core.chunk_first.call(null,inst_17262);var inst_17267 = cljs.core.chunk_rest.call(null,inst_17262);var inst_17268 = cljs.core.count.call(null,inst_17266);var inst_17241 = inst_17267;var inst_17242 = inst_17266;var inst_17243 = inst_17268;var inst_17244 = 0;var state_17305__$1 = (function (){var statearr_17316 = state_17305;(statearr_17316[10] = inst_17242); (statearr_17316[11] = inst_17241); (statearr_17316[12] = inst_17244); (statearr_17316[13] = inst_17243); return statearr_17316; })();var statearr_17317_18676 = state_17305__$1;(statearr_17317_18676[2] = null); (statearr_17317_18676[1] = 25); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_17306 === 5)) {var inst_17180 = cljs.core.deref.call(null,cs);var inst_17181 = cljs.core.seq.call(null,inst_17180);var inst_17182 = inst_17181;var inst_17183 = null;var inst_17184 = 0;var inst_17185 = 0;var state_17305__$1 = (function (){var statearr_17318 = state_17305;(statearr_17318[14] = inst_17182); (statearr_17318[15] = inst_17183); (statearr_17318[16] = inst_17184); (statearr_17318[17] = inst_17185); return statearr_17318; })();var statearr_17319_18677 = state_17305__$1;(statearr_17319_18677[2] = null); (statearr_17319_18677[1] = 8); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_17306 === 37)) {var inst_17262 = (state_17305[9]);var inst_17271 = cljs.core.first.call(null,inst_17262);var state_17305__$1 = (function (){var statearr_17320 = state_17305;(statearr_17320[18] = inst_17271); return statearr_17320; })();var statearr_17321_18678 = state_17305__$1;(statearr_17321_18678[2] = null); (statearr_17321_18678[1] = 41); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_17306 === 6)) {var inst_17233 = (state_17305[19]);var inst_17232 = cljs.core.deref.call(null,cs);var inst_17233__$1 = cljs.core.keys.call(null,inst_17232);var inst_17234 = cljs.core.count.call(null,inst_17233__$1);var inst_17235 = cljs.core.reset_BANG_.call(null,dctr,inst_17234);var inst_17240 = cljs.core.seq.call(null,inst_17233__$1);var inst_17241 = inst_17240;var inst_17242 = null;var inst_17243 = 0;var inst_17244 = 0;var state_17305__$1 = (function (){var statearr_17322 = state_17305;(statearr_17322[20] = inst_17235); (statearr_17322[19] = inst_17233__$1); (statearr_17322[10] = inst_17242); (statearr_17322[11] = inst_17241); (statearr_17322[12] = inst_17244); (statearr_17322[13] = inst_17243); return statearr_17322; })();var statearr_17323_18679 = state_17305__$1;(statearr_17323_18679[2] = null); (statearr_17323_18679[1] = 25); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_17306 === 38)) {var inst_17284 = (state_17305[2]);var state_17305__$1 = state_17305;var statearr_17324_18680 = state_17305__$1;(statearr_17324_18680[2] = inst_17284); (statearr_17324_18680[1] = 35); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_17306 === 7)) {var inst_17301 = (state_17305[2]);var state_17305__$1 = state_17305;var statearr_17325_18681 = state_17305__$1;(statearr_17325_18681[2] = inst_17301); (statearr_17325_18681[1] = 3); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_17306 === 39)) {var inst_17262 = (state_17305[9]);var inst_17280 = (state_17305[2]);var inst_17281 = cljs.core.next.call(null,inst_17262);var inst_17241 = inst_17281;var inst_17242 = null;var inst_17243 = 0;var inst_17244 = 0;var state_17305__$1 = (function (){var statearr_17326 = state_17305;(statearr_17326[10] = inst_17242); (statearr_17326[11] = inst_17241); (statearr_17326[12] = inst_17244); (statearr_17326[13] = inst_17243); (statearr_17326[21] = inst_17280); return statearr_17326; })();var statearr_17327_18682 = state_17305__$1;(statearr_17327_18682[2] = null); (statearr_17327_18682[1] = 25); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_17306 === 8)) {var inst_17184 = (state_17305[16]);var inst_17185 = (state_17305[17]);var inst_17187 = (inst_17185 < inst_17184);var inst_17188 = inst_17187;var state_17305__$1 = state_17305;if(cljs.core.truth_(inst_17188)) {var statearr_17328_18683 = state_17305__$1;(statearr_17328_18683[1] = 10); } else {var statearr_17329_18684 = state_17305__$1;(statearr_17329_18684[1] = 11); } return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_17306 === 40)) {var inst_17271 = (state_17305[18]);var inst_17272 = (state_17305[2]);var inst_17273 = cljs.core.swap_BANG_.call(null,dctr,cljs.core.dec);var inst_17274 = cljs.core.async.untap_STAR_.call(null,m,inst_17271);var state_17305__$1 = (function (){var statearr_17330 = state_17305;(statearr_17330[22] = inst_17272); (statearr_17330[23] = inst_17273); return statearr_17330; })();var statearr_17331_18685 = state_17305__$1;(statearr_17331_18685[2] = inst_17274); cljs.core.async.impl.ioc_helpers.process_exception.call(null,state_17305__$1); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_17306 === 9)) {var inst_17230 = (state_17305[2]);var state_17305__$1 = state_17305;var statearr_17332_18686 = state_17305__$1;(statearr_17332_18686[2] = inst_17230); (statearr_17332_18686[1] = 7); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_17306 === 41)) {var inst_17173 = (state_17305[8]);var inst_17271 = (state_17305[18]);var _ = cljs.core.async.impl.ioc_helpers.add_exception_frame.call(null,state_17305,40,Object,null,39);var inst_17278 = cljs.core.async.put_BANG_.call(null,inst_17271,inst_17173,done);var state_17305__$1 = state_17305;var statearr_17333_18687 = state_17305__$1;(statearr_17333_18687[2] = inst_17278); cljs.core.async.impl.ioc_helpers.process_exception.call(null,state_17305__$1); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_17306 === 10)) {var inst_17183 = (state_17305[15]);var inst_17185 = (state_17305[17]);var inst_17191 = cljs.core._nth.call(null,inst_17183,inst_17185);var inst_17192 = cljs.core.nth.call(null,inst_17191,0,null);var inst_17193 = cljs.core.nth.call(null,inst_17191,1,null);var state_17305__$1 = (function (){var statearr_17334 = state_17305;(statearr_17334[24] = inst_17192); return statearr_17334; })();if(cljs.core.truth_(inst_17193)) {var statearr_17335_18688 = state_17305__$1;(statearr_17335_18688[1] = 13); } else {var statearr_17336_18689 = state_17305__$1;(statearr_17336_18689[1] = 14); } return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_17306 === 42)) {var state_17305__$1 = state_17305;return cljs.core.async.impl.ioc_helpers.take_BANG_.call(null,state_17305__$1,45,dchan); } else {if((state_val_17306 === 11)) {var inst_17182 = (state_17305[14]);var inst_17202 = (state_17305[25]);var inst_17202__$1 = cljs.core.seq.call(null,inst_17182);var state_17305__$1 = (function (){var statearr_17337 = state_17305;(statearr_17337[25] = inst_17202__$1); return statearr_17337; })();if(inst_17202__$1) {var statearr_17338_18690 = state_17305__$1;(statearr_17338_18690[1] = 16); } else {var statearr_17339_18691 = state_17305__$1;(statearr_17339_18691[1] = 17); } return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_17306 === 43)) {var state_17305__$1 = state_17305;var statearr_17340_18692 = state_17305__$1;(statearr_17340_18692[2] = null); (statearr_17340_18692[1] = 44); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_17306 === 12)) {var inst_17228 = (state_17305[2]);var state_17305__$1 = state_17305;var statearr_17341_18693 = state_17305__$1;(statearr_17341_18693[2] = inst_17228); (statearr_17341_18693[1] = 9); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_17306 === 44)) {var inst_17298 = (state_17305[2]);var state_17305__$1 = (function (){var statearr_17342 = state_17305;(statearr_17342[26] = inst_17298); return statearr_17342; })();var statearr_17343_18694 = state_17305__$1;(statearr_17343_18694[2] = null); (statearr_17343_18694[1] = 2); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_17306 === 13)) {var inst_17192 = (state_17305[24]);var inst_17195 = cljs.core.async.close_BANG_.call(null,inst_17192);var state_17305__$1 = state_17305;var statearr_17344_18695 = state_17305__$1;(statearr_17344_18695[2] = inst_17195); (statearr_17344_18695[1] = 15); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_17306 === 45)) {var inst_17295 = (state_17305[2]);var state_17305__$1 = state_17305;var statearr_17348_18696 = state_17305__$1;(statearr_17348_18696[2] = inst_17295); (statearr_17348_18696[1] = 44); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_17306 === 14)) {var state_17305__$1 = state_17305;var statearr_17349_18697 = state_17305__$1;(statearr_17349_18697[2] = null); (statearr_17349_18697[1] = 15); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_17306 === 15)) {var inst_17182 = (state_17305[14]);var inst_17183 = (state_17305[15]);var inst_17184 = (state_17305[16]);var inst_17185 = (state_17305[17]);var inst_17198 = (state_17305[2]);var inst_17199 = (inst_17185 + 1);var tmp17345 = inst_17182;var tmp17346 = inst_17183;var tmp17347 = inst_17184;var inst_17182__$1 = tmp17345;var inst_17183__$1 = tmp17346;var inst_17184__$1 = tmp17347;var inst_17185__$1 = inst_17199;var state_17305__$1 = (function (){var statearr_17350 = state_17305;(statearr_17350[14] = inst_17182__$1); (statearr_17350[15] = inst_17183__$1); (statearr_17350[16] = inst_17184__$1); (statearr_17350[17] = inst_17185__$1); (statearr_17350[27] = inst_17198); return statearr_17350; })();var statearr_17351_18698 = state_17305__$1;(statearr_17351_18698[2] = null); (statearr_17351_18698[1] = 8); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_17306 === 16)) {var inst_17202 = (state_17305[25]);var inst_17204 = cljs.core.chunked_seq_QMARK_.call(null,inst_17202);var state_17305__$1 = state_17305;if(inst_17204) {var statearr_17352_18699 = state_17305__$1;(statearr_17352_18699[1] = 19); } else {var statearr_17353_18700 = state_17305__$1;(statearr_17353_18700[1] = 20); } return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_17306 === 17)) {var state_17305__$1 = state_17305;var statearr_17354_18701 = state_17305__$1;(statearr_17354_18701[2] = null); (statearr_17354_18701[1] = 18); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_17306 === 18)) {var inst_17226 = (state_17305[2]);var state_17305__$1 = state_17305;var statearr_17355_18702 = state_17305__$1;(statearr_17355_18702[2] = inst_17226); (statearr_17355_18702[1] = 12); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_17306 === 19)) {var inst_17202 = (state_17305[25]);var inst_17206 = cljs.core.chunk_first.call(null,inst_17202);var inst_17207 = cljs.core.chunk_rest.call(null,inst_17202);var inst_17208 = cljs.core.count.call(null,inst_17206);var inst_17182 = inst_17207;var inst_17183 = inst_17206;var inst_17184 = inst_17208;var inst_17185 = 0;var state_17305__$1 = (function (){var statearr_17356 = state_17305;(statearr_17356[14] = inst_17182); (statearr_17356[15] = inst_17183); (statearr_17356[16] = inst_17184); (statearr_17356[17] = inst_17185); return statearr_17356; })();var statearr_17357_18703 = state_17305__$1;(statearr_17357_18703[2] = null); (statearr_17357_18703[1] = 8); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_17306 === 20)) {var inst_17202 = (state_17305[25]);var inst_17212 = cljs.core.first.call(null,inst_17202);var inst_17213 = cljs.core.nth.call(null,inst_17212,0,null);var inst_17214 = cljs.core.nth.call(null,inst_17212,1,null);var state_17305__$1 = (function (){var statearr_17358 = state_17305;(statearr_17358[28] = inst_17213); return statearr_17358; })();if(cljs.core.truth_(inst_17214)) {var statearr_17359_18704 = state_17305__$1;(statearr_17359_18704[1] = 22); } else {var statearr_17360_18705 = state_17305__$1;(statearr_17360_18705[1] = 23); } return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_17306 === 21)) {var inst_17223 = (state_17305[2]);var state_17305__$1 = state_17305;var statearr_17361_18706 = state_17305__$1;(statearr_17361_18706[2] = inst_17223); (statearr_17361_18706[1] = 18); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_17306 === 22)) {var inst_17213 = (state_17305[28]);var inst_17216 = cljs.core.async.close_BANG_.call(null,inst_17213);var state_17305__$1 = state_17305;var statearr_17362_18707 = state_17305__$1;(statearr_17362_18707[2] = inst_17216); (statearr_17362_18707[1] = 24); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_17306 === 23)) {var state_17305__$1 = state_17305;var statearr_17363_18708 = state_17305__$1;(statearr_17363_18708[2] = null); (statearr_17363_18708[1] = 24); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_17306 === 24)) {var inst_17202 = (state_17305[25]);var inst_17219 = (state_17305[2]);var inst_17220 = cljs.core.next.call(null,inst_17202);var inst_17182 = inst_17220;var inst_17183 = null;var inst_17184 = 0;var inst_17185 = 0;var state_17305__$1 = (function (){var statearr_17364 = state_17305;(statearr_17364[14] = inst_17182); (statearr_17364[15] = inst_17183); (statearr_17364[16] = inst_17184); (statearr_17364[17] = inst_17185); (statearr_17364[29] = inst_17219); return statearr_17364; })();var statearr_17365_18709 = state_17305__$1;(statearr_17365_18709[2] = null); (statearr_17365_18709[1] = 8); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_17306 === 25)) {var inst_17244 = (state_17305[12]);var inst_17243 = (state_17305[13]);var inst_17246 = (inst_17244 < inst_17243);var inst_17247 = inst_17246;var state_17305__$1 = state_17305;if(cljs.core.truth_(inst_17247)) {var statearr_17366_18710 = state_17305__$1;(statearr_17366_18710[1] = 27); } else {var statearr_17367_18711 = state_17305__$1;(statearr_17367_18711[1] = 28); } return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_17306 === 26)) {var inst_17233 = (state_17305[19]);var inst_17291 = (state_17305[2]);var inst_17292 = cljs.core.seq.call(null,inst_17233);var state_17305__$1 = (function (){var statearr_17368 = state_17305;(statearr_17368[30] = inst_17291); return statearr_17368; })();if(inst_17292) {var statearr_17369_18712 = state_17305__$1;(statearr_17369_18712[1] = 42); } else {var statearr_17370_18713 = state_17305__$1;(statearr_17370_18713[1] = 43); } return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_17306 === 27)) {var inst_17242 = (state_17305[10]);var inst_17244 = (state_17305[12]);var inst_17249 = cljs.core._nth.call(null,inst_17242,inst_17244);var state_17305__$1 = (function (){var statearr_17371 = state_17305;(statearr_17371[7] = inst_17249); return statearr_17371; })();var statearr_17372_18714 = state_17305__$1;(statearr_17372_18714[2] = null); (statearr_17372_18714[1] = 32); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_17306 === 28)) {var inst_17262 = (state_17305[9]);var inst_17241 = (state_17305[11]);var inst_17262__$1 = cljs.core.seq.call(null,inst_17241);var state_17305__$1 = (function (){var statearr_17376 = state_17305;(statearr_17376[9] = inst_17262__$1); return statearr_17376; })();if(inst_17262__$1) {var statearr_17377_18715 = state_17305__$1;(statearr_17377_18715[1] = 33); } else {var statearr_17378_18716 = state_17305__$1;(statearr_17378_18716[1] = 34); } return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_17306 === 29)) {var inst_17289 = (state_17305[2]);var state_17305__$1 = state_17305;var statearr_17379_18717 = state_17305__$1;(statearr_17379_18717[2] = inst_17289); (statearr_17379_18717[1] = 26); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_17306 === 30)) {var inst_17242 = (state_17305[10]);var inst_17241 = (state_17305[11]);var inst_17244 = (state_17305[12]);var inst_17243 = (state_17305[13]);var inst_17258 = (state_17305[2]);var inst_17259 = (inst_17244 + 1);var tmp17373 = inst_17242;var tmp17374 = inst_17241;var tmp17375 = inst_17243;var inst_17241__$1 = tmp17374;var inst_17242__$1 = tmp17373;var inst_17243__$1 = tmp17375;var inst_17244__$1 = inst_17259;var state_17305__$1 = (function (){var statearr_17380 = state_17305;(statearr_17380[10] = inst_17242__$1); (statearr_17380[11] = inst_17241__$1); (statearr_17380[12] = inst_17244__$1); (statearr_17380[13] = inst_17243__$1); (statearr_17380[31] = inst_17258); return statearr_17380; })();var statearr_17381_18718 = state_17305__$1;(statearr_17381_18718[2] = null); (statearr_17381_18718[1] = 25); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_17306 === 31)) {var inst_17249 = (state_17305[7]);var inst_17250 = (state_17305[2]);var inst_17251 = cljs.core.swap_BANG_.call(null,dctr,cljs.core.dec);var inst_17252 = cljs.core.async.untap_STAR_.call(null,m,inst_17249);var state_17305__$1 = (function (){var statearr_17382 = state_17305;(statearr_17382[32] = inst_17250); (statearr_17382[33] = inst_17251); return statearr_17382; })();var statearr_17383_18719 = state_17305__$1;(statearr_17383_18719[2] = inst_17252); cljs.core.async.impl.ioc_helpers.process_exception.call(null,state_17305__$1); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {return null; } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } });})(c__13951__auto___18667,cs,m,dchan,dctr,done)) ;return ((function (switch__13881__auto__,c__13951__auto___18667,cs,m,dchan,dctr,done){ return (function() { var state_machine__13882__auto__ = null; var state_machine__13882__auto____0 = (function (){var statearr_17387 = [null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null];(statearr_17387[0] = state_machine__13882__auto__); (statearr_17387[1] = 1); return statearr_17387; }); var state_machine__13882__auto____1 = (function (state_17305){while(true){ var ret_value__13883__auto__ = (function (){try{while(true){ var result__13884__auto__ = switch__13881__auto__.call(null,state_17305);if(cljs.core.keyword_identical_QMARK_.call(null,result__13884__auto__,new cljs.core.Keyword(null,"recur","recur",1122293407))) {{ continue; } } else {return result__13884__auto__; } break; } }catch (e17388){if((e17388 instanceof Object)) {var ex__13885__auto__ = e17388;var statearr_17389_18720 = state_17305;(statearr_17389_18720[5] = ex__13885__auto__); cljs.core.async.impl.ioc_helpers.process_exception.call(null,state_17305); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if(new cljs.core.Keyword(null,"else","else",1017020587)) {throw e17388; } else {return null; } } }})();if(cljs.core.keyword_identical_QMARK_.call(null,ret_value__13883__auto__,new cljs.core.Keyword(null,"recur","recur",1122293407))) {{ var G__18721 = state_17305; state_17305 = G__18721; continue; } } else {return ret_value__13883__auto__; } break; } }); state_machine__13882__auto__ = function(state_17305){ switch(arguments.length){ case 0: return state_machine__13882__auto____0.call(this); case 1: return state_machine__13882__auto____1.call(this,state_17305); } throw(new Error('Invalid arity: ' + arguments.length)); }; state_machine__13882__auto__.cljs$core$IFn$_invoke$arity$0 = state_machine__13882__auto____0; state_machine__13882__auto__.cljs$core$IFn$_invoke$arity$1 = state_machine__13882__auto____1; return state_machine__13882__auto__; })() ;})(switch__13881__auto__,c__13951__auto___18667,cs,m,dchan,dctr,done)) })();var state__13953__auto__ = (function (){var statearr_17390 = f__13952__auto__.call(null);(statearr_17390[cljs.core.async.impl.ioc_helpers.USER_START_IDX] = c__13951__auto___18667); return statearr_17390; })();return cljs.core.async.impl.ioc_helpers.run_state_machine_wrapped.call(null,state__13953__auto__); });})(c__13951__auto___18667,cs,m,dchan,dctr,done)) ); return m; }); /** * Copies the mult source onto the supplied channel. * * By default the channel will be closed when the source closes, * but can be determined by the close? parameter. */ cljs.core.async.tap = (function() { var tap = null; var tap__2 = (function (mult,ch){return tap.call(null,mult,ch,true); }); var tap__3 = (function (mult,ch,close_QMARK_){cljs.core.async.tap_STAR_.call(null,mult,ch,close_QMARK_); return ch; }); tap = function(mult,ch,close_QMARK_){ switch(arguments.length){ case 2: return tap__2.call(this,mult,ch); case 3: return tap__3.call(this,mult,ch,close_QMARK_); } throw(new Error('Invalid arity: ' + arguments.length)); }; tap.cljs$core$IFn$_invoke$arity$2 = tap__2; tap.cljs$core$IFn$_invoke$arity$3 = tap__3; return tap; })() ; /** * Disconnects a target channel from a mult */ cljs.core.async.untap = (function untap(mult,ch){return cljs.core.async.untap_STAR_.call(null,mult,ch); }); /** * Disconnects all target channels from a mult */ cljs.core.async.untap_all = (function untap_all(mult){return cljs.core.async.untap_all_STAR_.call(null,mult); }); cljs.core.async.Mix = (function (){var obj17392 = {};return obj17392; })(); cljs.core.async.admix_STAR_ = (function admix_STAR_(m,ch){if((function (){var and__4872__auto__ = m;if(and__4872__auto__) {return m.cljs$core$async$Mix$admix_STAR_$arity$2; } else {return and__4872__auto__; } })()) {return m.cljs$core$async$Mix$admix_STAR_$arity$2(m,ch); } else {var x__5511__auto__ = (((m == null))?null:m);return (function (){var or__4884__auto__ = (cljs.core.async.admix_STAR_[goog.typeOf(x__5511__auto__)]);if(or__4884__auto__) {return or__4884__auto__; } else {var or__4884__auto____$1 = (cljs.core.async.admix_STAR_["_"]);if(or__4884__auto____$1) {return or__4884__auto____$1; } else {throw cljs.core.missing_protocol.call(null,"Mix.admix*",m); } } })().call(null,m,ch); } }); cljs.core.async.unmix_STAR_ = (function unmix_STAR_(m,ch){if((function (){var and__4872__auto__ = m;if(and__4872__auto__) {return m.cljs$core$async$Mix$unmix_STAR_$arity$2; } else {return and__4872__auto__; } })()) {return m.cljs$core$async$Mix$unmix_STAR_$arity$2(m,ch); } else {var x__5511__auto__ = (((m == null))?null:m);return (function (){var or__4884__auto__ = (cljs.core.async.unmix_STAR_[goog.typeOf(x__5511__auto__)]);if(or__4884__auto__) {return or__4884__auto__; } else {var or__4884__auto____$1 = (cljs.core.async.unmix_STAR_["_"]);if(or__4884__auto____$1) {return or__4884__auto____$1; } else {throw cljs.core.missing_protocol.call(null,"Mix.unmix*",m); } } })().call(null,m,ch); } }); cljs.core.async.unmix_all_STAR_ = (function unmix_all_STAR_(m){if((function (){var and__4872__auto__ = m;if(and__4872__auto__) {return m.cljs$core$async$Mix$unmix_all_STAR_$arity$1; } else {return and__4872__auto__; } })()) {return m.cljs$core$async$Mix$unmix_all_STAR_$arity$1(m); } else {var x__5511__auto__ = (((m == null))?null:m);return (function (){var or__4884__auto__ = (cljs.core.async.unmix_all_STAR_[goog.typeOf(x__5511__auto__)]);if(or__4884__auto__) {return or__4884__auto__; } else {var or__4884__auto____$1 = (cljs.core.async.unmix_all_STAR_["_"]);if(or__4884__auto____$1) {return or__4884__auto____$1; } else {throw cljs.core.missing_protocol.call(null,"Mix.unmix-all*",m); } } })().call(null,m); } }); cljs.core.async.toggle_STAR_ = (function toggle_STAR_(m,state_map){if((function (){var and__4872__auto__ = m;if(and__4872__auto__) {return m.cljs$core$async$Mix$toggle_STAR_$arity$2; } else {return and__4872__auto__; } })()) {return m.cljs$core$async$Mix$toggle_STAR_$arity$2(m,state_map); } else {var x__5511__auto__ = (((m == null))?null:m);return (function (){var or__4884__auto__ = (cljs.core.async.toggle_STAR_[goog.typeOf(x__5511__auto__)]);if(or__4884__auto__) {return or__4884__auto__; } else {var or__4884__auto____$1 = (cljs.core.async.toggle_STAR_["_"]);if(or__4884__auto____$1) {return or__4884__auto____$1; } else {throw cljs.core.missing_protocol.call(null,"Mix.toggle*",m); } } })().call(null,m,state_map); } }); cljs.core.async.solo_mode_STAR_ = (function solo_mode_STAR_(m,mode){if((function (){var and__4872__auto__ = m;if(and__4872__auto__) {return m.cljs$core$async$Mix$solo_mode_STAR_$arity$2; } else {return and__4872__auto__; } })()) {return m.cljs$core$async$Mix$solo_mode_STAR_$arity$2(m,mode); } else {var x__5511__auto__ = (((m == null))?null:m);return (function (){var or__4884__auto__ = (cljs.core.async.solo_mode_STAR_[goog.typeOf(x__5511__auto__)]);if(or__4884__auto__) {return or__4884__auto__; } else {var or__4884__auto____$1 = (cljs.core.async.solo_mode_STAR_["_"]);if(or__4884__auto____$1) {return or__4884__auto____$1; } else {throw cljs.core.missing_protocol.call(null,"Mix.solo-mode*",m); } } })().call(null,m,mode); } }); /** * Creates and returns a mix of one or more input channels which will * be put on the supplied out channel. Input sources can be added to * the mix with 'admix', and removed with 'unmix'. A mix supports * soloing, muting and pausing multiple inputs atomically using * 'toggle', and can solo using either muting or pausing as determined * by 'solo-mode'. * * Each channel can have zero or more boolean modes set via 'toggle': * * :solo - when true, only this (ond other soloed) channel(s) will appear * in the mix output channel. :mute and :pause states of soloed * channels are ignored. If solo-mode is :mute, non-soloed * channels are muted, if :pause, non-soloed channels are * paused. * * :mute - muted channels will have their contents consumed but not included in the mix * :pause - paused channels will not have their contents consumed (and thus also not included in the mix) */ cljs.core.async.mix = (function mix(out){var cs = cljs.core.atom.call(null,cljs.core.PersistentArrayMap.EMPTY);var solo_modes = new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"pause","pause",1120344424),null,new cljs.core.Keyword(null,"mute","mute",1017267595),null], null), null);var attrs = cljs.core.conj.call(null,solo_modes,new cljs.core.Keyword(null,"solo","solo",1017440337));var solo_mode = cljs.core.atom.call(null,new cljs.core.Keyword(null,"mute","mute",1017267595));var change = cljs.core.async.chan.call(null);var changed = ((function (cs,solo_modes,attrs,solo_mode,change){ return (function (){return cljs.core.async.put_BANG_.call(null,change,true); });})(cs,solo_modes,attrs,solo_mode,change)) ;var pick = ((function (cs,solo_modes,attrs,solo_mode,change,changed){ return (function (attr,chs){return cljs.core.reduce_kv.call(null,((function (cs,solo_modes,attrs,solo_mode,change,changed){ return (function (ret,c,v){if(cljs.core.truth_(attr.call(null,v))) {return cljs.core.conj.call(null,ret,c); } else {return ret; } });})(cs,solo_modes,attrs,solo_mode,change,changed)) ,cljs.core.PersistentHashSet.EMPTY,chs); });})(cs,solo_modes,attrs,solo_mode,change,changed)) ;var calc_state = ((function (cs,solo_modes,attrs,solo_mode,change,changed,pick){ return (function (){var chs = cljs.core.deref.call(null,cs);var mode = cljs.core.deref.call(null,solo_mode);var solos = pick.call(null,new cljs.core.Keyword(null,"solo","solo",1017440337),chs);var pauses = pick.call(null,new cljs.core.Keyword(null,"pause","pause",1120344424),chs);return new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"solos","solos",1123523302),solos,new cljs.core.Keyword(null,"mutes","mutes",1118168300),pick.call(null,new cljs.core.Keyword(null,"mute","mute",1017267595),chs),new cljs.core.Keyword(null,"reads","reads",1122290959),cljs.core.conj.call(null,(((cljs.core._EQ_.call(null,mode,new cljs.core.Keyword(null,"pause","pause",1120344424))) && (!(cljs.core.empty_QMARK_.call(null,solos))))?cljs.core.vec.call(null,solos):cljs.core.vec.call(null,cljs.core.remove.call(null,pauses,cljs.core.keys.call(null,chs)))),change)], null); });})(cs,solo_modes,attrs,solo_mode,change,changed,pick)) ;var m = (function (){if(typeof cljs.core.async.t17502 !== 'undefined') {} else { /** * @constructor */ cljs.core.async.t17502 = (function (pick,out,attrs,cs,calc_state,solo_modes,mix,changed,change,solo_mode,meta17503){ this.pick = pick; this.out = out; this.attrs = attrs; this.cs = cs; this.calc_state = calc_state; this.solo_modes = solo_modes; this.mix = mix; this.changed = changed; this.change = change; this.solo_mode = solo_mode; this.meta17503 = meta17503; this.cljs$lang$protocol_mask$partition1$ = 0; this.cljs$lang$protocol_mask$partition0$ = 393216; }) cljs.core.async.t17502.cljs$lang$type = true; cljs.core.async.t17502.cljs$lang$ctorStr = "cljs.core.async/t17502"; cljs.core.async.t17502.cljs$lang$ctorPrWriter = ((function (cs,solo_modes,attrs,solo_mode,change,changed,pick,calc_state){ return (function (this__5451__auto__,writer__5452__auto__,opt__5453__auto__){return cljs.core._write.call(null,writer__5452__auto__,"cljs.core.async/t17502"); });})(cs,solo_modes,attrs,solo_mode,change,changed,pick,calc_state)) ; cljs.core.async.t17502.prototype.cljs$core$async$Mix$ = true; cljs.core.async.t17502.prototype.cljs$core$async$Mix$admix_STAR_$arity$2 = ((function (cs,solo_modes,attrs,solo_mode,change,changed,pick,calc_state){ return (function (_,ch){var self__ = this; var ___$1 = this;cljs.core.swap_BANG_.call(null,self__.cs,cljs.core.assoc,ch,cljs.core.PersistentArrayMap.EMPTY); return self__.changed.call(null); });})(cs,solo_modes,attrs,solo_mode,change,changed,pick,calc_state)) ; cljs.core.async.t17502.prototype.cljs$core$async$Mix$unmix_STAR_$arity$2 = ((function (cs,solo_modes,attrs,solo_mode,change,changed,pick,calc_state){ return (function (_,ch){var self__ = this; var ___$1 = this;cljs.core.swap_BANG_.call(null,self__.cs,cljs.core.dissoc,ch); return self__.changed.call(null); });})(cs,solo_modes,attrs,solo_mode,change,changed,pick,calc_state)) ; cljs.core.async.t17502.prototype.cljs$core$async$Mix$unmix_all_STAR_$arity$1 = ((function (cs,solo_modes,attrs,solo_mode,change,changed,pick,calc_state){ return (function (_){var self__ = this; var ___$1 = this;cljs.core.reset_BANG_.call(null,self__.cs,cljs.core.PersistentArrayMap.EMPTY); return self__.changed.call(null); });})(cs,solo_modes,attrs,solo_mode,change,changed,pick,calc_state)) ; cljs.core.async.t17502.prototype.cljs$core$async$Mix$toggle_STAR_$arity$2 = ((function (cs,solo_modes,attrs,solo_mode,change,changed,pick,calc_state){ return (function (_,state_map){var self__ = this; var ___$1 = this;cljs.core.swap_BANG_.call(null,self__.cs,cljs.core.partial.call(null,cljs.core.merge_with,cljs.core.merge),state_map); return self__.changed.call(null); });})(cs,solo_modes,attrs,solo_mode,change,changed,pick,calc_state)) ; cljs.core.async.t17502.prototype.cljs$core$async$Mix$solo_mode_STAR_$arity$2 = ((function (cs,solo_modes,attrs,solo_mode,change,changed,pick,calc_state){ return (function (_,mode){var self__ = this; var ___$1 = this;if(cljs.core.truth_(self__.solo_modes.call(null,mode))) {} else {throw (new Error([cljs.core.str("Assert failed: "),cljs.core.str([cljs.core.str("mode must be one of: "),cljs.core.str(self__.solo_modes)].join('')),cljs.core.str("\n"),cljs.core.str(cljs.core.pr_str.call(null,cljs.core.list(new cljs.core.Symbol(null,"solo-modes","solo-modes",-1162732933,null),new cljs.core.Symbol(null,"mode","mode",-1637174436,null))))].join(''))); } cljs.core.reset_BANG_.call(null,self__.solo_mode,mode); return self__.changed.call(null); });})(cs,solo_modes,attrs,solo_mode,change,changed,pick,calc_state)) ; cljs.core.async.t17502.prototype.cljs$core$async$Mux$ = true; cljs.core.async.t17502.prototype.cljs$core$async$Mux$muxch_STAR_$arity$1 = ((function (cs,solo_modes,attrs,solo_mode,change,changed,pick,calc_state){ return (function (_){var self__ = this; var ___$1 = this;return self__.out; });})(cs,solo_modes,attrs,solo_mode,change,changed,pick,calc_state)) ; cljs.core.async.t17502.prototype.cljs$core$IMeta$_meta$arity$1 = ((function (cs,solo_modes,attrs,solo_mode,change,changed,pick,calc_state){ return (function (_17504){var self__ = this; var _17504__$1 = this;return self__.meta17503; });})(cs,solo_modes,attrs,solo_mode,change,changed,pick,calc_state)) ; cljs.core.async.t17502.prototype.cljs$core$IWithMeta$_with_meta$arity$2 = ((function (cs,solo_modes,attrs,solo_mode,change,changed,pick,calc_state){ return (function (_17504,meta17503__$1){var self__ = this; var _17504__$1 = this;return (new cljs.core.async.t17502(self__.pick,self__.out,self__.attrs,self__.cs,self__.calc_state,self__.solo_modes,self__.mix,self__.changed,self__.change,self__.solo_mode,meta17503__$1)); });})(cs,solo_modes,attrs,solo_mode,change,changed,pick,calc_state)) ; cljs.core.async.__GT_t17502 = ((function (cs,solo_modes,attrs,solo_mode,change,changed,pick,calc_state){ return (function __GT_t17502(pick__$1,out__$1,attrs__$1,cs__$1,calc_state__$1,solo_modes__$1,mix__$1,changed__$1,change__$1,solo_mode__$1,meta17503){return (new cljs.core.async.t17502(pick__$1,out__$1,attrs__$1,cs__$1,calc_state__$1,solo_modes__$1,mix__$1,changed__$1,change__$1,solo_mode__$1,meta17503)); });})(cs,solo_modes,attrs,solo_mode,change,changed,pick,calc_state)) ; } return (new cljs.core.async.t17502(pick,out,attrs,cs,calc_state,solo_modes,mix,changed,change,solo_mode,null)); })();var c__13951__auto___18722 = cljs.core.async.chan.call(null,1);cljs.core.async.impl.dispatch.run.call(null,((function (c__13951__auto___18722,cs,solo_modes,attrs,solo_mode,change,changed,pick,calc_state,m){ return (function (){var f__13952__auto__ = (function (){var switch__13881__auto__ = ((function (c__13951__auto___18722,cs,solo_modes,attrs,solo_mode,change,changed,pick,calc_state,m){ return (function (state_17569){var state_val_17570 = (state_17569[1]);if((state_val_17570 === 1)) {var inst_17508 = (state_17569[7]);var inst_17508__$1 = calc_state.call(null);var inst_17509 = cljs.core.seq_QMARK_.call(null,inst_17508__$1);var state_17569__$1 = (function (){var statearr_17571 = state_17569;(statearr_17571[7] = inst_17508__$1); return statearr_17571; })();if(inst_17509) {var statearr_17572_18723 = state_17569__$1;(statearr_17572_18723[1] = 2); } else {var statearr_17573_18724 = state_17569__$1;(statearr_17573_18724[1] = 3); } return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_17570 === 2)) {var inst_17508 = (state_17569[7]);var inst_17511 = cljs.core.apply.call(null,cljs.core.hash_map,inst_17508);var state_17569__$1 = state_17569;var statearr_17574_18725 = state_17569__$1;(statearr_17574_18725[2] = inst_17511); (statearr_17574_18725[1] = 4); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_17570 === 3)) {var inst_17508 = (state_17569[7]);var state_17569__$1 = state_17569;var statearr_17575_18726 = state_17569__$1;(statearr_17575_18726[2] = inst_17508); (statearr_17575_18726[1] = 4); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_17570 === 4)) {var inst_17508 = (state_17569[7]);var inst_17514 = (state_17569[2]);var inst_17515 = cljs.core.get.call(null,inst_17514,new cljs.core.Keyword(null,"reads","reads",1122290959));var inst_17516 = cljs.core.get.call(null,inst_17514,new cljs.core.Keyword(null,"mutes","mutes",1118168300));var inst_17517 = cljs.core.get.call(null,inst_17514,new cljs.core.Keyword(null,"solos","solos",1123523302));var inst_17518 = inst_17508;var state_17569__$1 = (function (){var statearr_17576 = state_17569;(statearr_17576[8] = inst_17517); (statearr_17576[9] = inst_17518); (statearr_17576[10] = inst_17516); (statearr_17576[11] = inst_17515); return statearr_17576; })();var statearr_17577_18727 = state_17569__$1;(statearr_17577_18727[2] = null); (statearr_17577_18727[1] = 5); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_17570 === 5)) {var inst_17518 = (state_17569[9]);var inst_17521 = cljs.core.seq_QMARK_.call(null,inst_17518);var state_17569__$1 = state_17569;if(inst_17521) {var statearr_17578_18728 = state_17569__$1;(statearr_17578_18728[1] = 7); } else {var statearr_17579_18729 = state_17569__$1;(statearr_17579_18729[1] = 8); } return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_17570 === 6)) {var inst_17567 = (state_17569[2]);var state_17569__$1 = state_17569;return cljs.core.async.impl.ioc_helpers.return_chan.call(null,state_17569__$1,inst_17567); } else {if((state_val_17570 === 7)) {var inst_17518 = (state_17569[9]);var inst_17523 = cljs.core.apply.call(null,cljs.core.hash_map,inst_17518);var state_17569__$1 = state_17569;var statearr_17580_18730 = state_17569__$1;(statearr_17580_18730[2] = inst_17523); (statearr_17580_18730[1] = 9); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_17570 === 8)) {var inst_17518 = (state_17569[9]);var state_17569__$1 = state_17569;var statearr_17581_18731 = state_17569__$1;(statearr_17581_18731[2] = inst_17518); (statearr_17581_18731[1] = 9); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_17570 === 9)) {var inst_17526 = (state_17569[12]);var inst_17526__$1 = (state_17569[2]);var inst_17527 = cljs.core.get.call(null,inst_17526__$1,new cljs.core.Keyword(null,"reads","reads",1122290959));var inst_17528 = cljs.core.get.call(null,inst_17526__$1,new cljs.core.Keyword(null,"mutes","mutes",1118168300));var inst_17529 = cljs.core.get.call(null,inst_17526__$1,new cljs.core.Keyword(null,"solos","solos",1123523302));var state_17569__$1 = (function (){var statearr_17582 = state_17569;(statearr_17582[12] = inst_17526__$1); (statearr_17582[13] = inst_17528); (statearr_17582[14] = inst_17529); return statearr_17582; })();return cljs.core.async.impl.ioc_helpers.ioc_alts_BANG_.call(null,state_17569__$1,10,inst_17527); } else {if((state_val_17570 === 10)) {var inst_17533 = (state_17569[15]);var inst_17534 = (state_17569[16]);var inst_17532 = (state_17569[2]);var inst_17533__$1 = cljs.core.nth.call(null,inst_17532,0,null);var inst_17534__$1 = cljs.core.nth.call(null,inst_17532,1,null);var inst_17535 = (inst_17533__$1 == null);var inst_17536 = cljs.core._EQ_.call(null,inst_17534__$1,change);var inst_17537 = (inst_17535) || (inst_17536);var state_17569__$1 = (function (){var statearr_17583 = state_17569;(statearr_17583[15] = inst_17533__$1); (statearr_17583[16] = inst_17534__$1); return statearr_17583; })();if(cljs.core.truth_(inst_17537)) {var statearr_17584_18732 = state_17569__$1;(statearr_17584_18732[1] = 11); } else {var statearr_17585_18733 = state_17569__$1;(statearr_17585_18733[1] = 12); } return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_17570 === 11)) {var inst_17533 = (state_17569[15]);var inst_17539 = (inst_17533 == null);var state_17569__$1 = state_17569;if(cljs.core.truth_(inst_17539)) {var statearr_17586_18734 = state_17569__$1;(statearr_17586_18734[1] = 14); } else {var statearr_17587_18735 = state_17569__$1;(statearr_17587_18735[1] = 15); } return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_17570 === 12)) {var inst_17534 = (state_17569[16]);var inst_17548 = (state_17569[17]);var inst_17529 = (state_17569[14]);var inst_17548__$1 = inst_17529.call(null,inst_17534);var state_17569__$1 = (function (){var statearr_17588 = state_17569;(statearr_17588[17] = inst_17548__$1); return statearr_17588; })();if(cljs.core.truth_(inst_17548__$1)) {var statearr_17589_18736 = state_17569__$1;(statearr_17589_18736[1] = 17); } else {var statearr_17590_18737 = state_17569__$1;(statearr_17590_18737[1] = 18); } return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_17570 === 13)) {var inst_17565 = (state_17569[2]);var state_17569__$1 = state_17569;var statearr_17591_18738 = state_17569__$1;(statearr_17591_18738[2] = inst_17565); (statearr_17591_18738[1] = 6); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_17570 === 14)) {var inst_17534 = (state_17569[16]);var inst_17541 = cljs.core.swap_BANG_.call(null,cs,cljs.core.dissoc,inst_17534);var state_17569__$1 = state_17569;var statearr_17592_18739 = state_17569__$1;(statearr_17592_18739[2] = inst_17541); (statearr_17592_18739[1] = 16); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_17570 === 15)) {var state_17569__$1 = state_17569;var statearr_17593_18740 = state_17569__$1;(statearr_17593_18740[2] = null); (statearr_17593_18740[1] = 16); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_17570 === 16)) {var inst_17544 = (state_17569[2]);var inst_17545 = calc_state.call(null);var inst_17518 = inst_17545;var state_17569__$1 = (function (){var statearr_17594 = state_17569;(statearr_17594[9] = inst_17518); (statearr_17594[18] = inst_17544); return statearr_17594; })();var statearr_17595_18741 = state_17569__$1;(statearr_17595_18741[2] = null); (statearr_17595_18741[1] = 5); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_17570 === 17)) {var inst_17548 = (state_17569[17]);var state_17569__$1 = state_17569;var statearr_17596_18742 = state_17569__$1;(statearr_17596_18742[2] = inst_17548); (statearr_17596_18742[1] = 19); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_17570 === 18)) {var inst_17534 = (state_17569[16]);var inst_17528 = (state_17569[13]);var inst_17529 = (state_17569[14]);var inst_17551 = cljs.core.empty_QMARK_.call(null,inst_17529);var inst_17552 = inst_17528.call(null,inst_17534);var inst_17553 = cljs.core.not.call(null,inst_17552);var inst_17554 = (inst_17551) && (inst_17553);var state_17569__$1 = state_17569;var statearr_17597_18743 = state_17569__$1;(statearr_17597_18743[2] = inst_17554); (statearr_17597_18743[1] = 19); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_17570 === 19)) {var inst_17556 = (state_17569[2]);var state_17569__$1 = state_17569;if(cljs.core.truth_(inst_17556)) {var statearr_17598_18744 = state_17569__$1;(statearr_17598_18744[1] = 20); } else {var statearr_17599_18745 = state_17569__$1;(statearr_17599_18745[1] = 21); } return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_17570 === 20)) {var inst_17533 = (state_17569[15]);var state_17569__$1 = state_17569;return cljs.core.async.impl.ioc_helpers.put_BANG_.call(null,state_17569__$1,23,out,inst_17533); } else {if((state_val_17570 === 21)) {var state_17569__$1 = state_17569;var statearr_17600_18746 = state_17569__$1;(statearr_17600_18746[2] = null); (statearr_17600_18746[1] = 22); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_17570 === 22)) {var inst_17526 = (state_17569[12]);var inst_17562 = (state_17569[2]);var inst_17518 = inst_17526;var state_17569__$1 = (function (){var statearr_17601 = state_17569;(statearr_17601[9] = inst_17518); (statearr_17601[19] = inst_17562); return statearr_17601; })();var statearr_17602_18747 = state_17569__$1;(statearr_17602_18747[2] = null); (statearr_17602_18747[1] = 5); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_17570 === 23)) {var inst_17559 = (state_17569[2]);var state_17569__$1 = state_17569;var statearr_17603_18748 = state_17569__$1;(statearr_17603_18748[2] = inst_17559); (statearr_17603_18748[1] = 22); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {return null; } } } } } } } } } } } } } } } } } } } } } } } });})(c__13951__auto___18722,cs,solo_modes,attrs,solo_mode,change,changed,pick,calc_state,m)) ;return ((function (switch__13881__auto__,c__13951__auto___18722,cs,solo_modes,attrs,solo_mode,change,changed,pick,calc_state,m){ return (function() { var state_machine__13882__auto__ = null; var state_machine__13882__auto____0 = (function (){var statearr_17607 = [null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null];(statearr_17607[0] = state_machine__13882__auto__); (statearr_17607[1] = 1); return statearr_17607; }); var state_machine__13882__auto____1 = (function (state_17569){while(true){ var ret_value__13883__auto__ = (function (){try{while(true){ var result__13884__auto__ = switch__13881__auto__.call(null,state_17569);if(cljs.core.keyword_identical_QMARK_.call(null,result__13884__auto__,new cljs.core.Keyword(null,"recur","recur",1122293407))) {{ continue; } } else {return result__13884__auto__; } break; } }catch (e17608){if((e17608 instanceof Object)) {var ex__13885__auto__ = e17608;var statearr_17609_18749 = state_17569;(statearr_17609_18749[5] = ex__13885__auto__); cljs.core.async.impl.ioc_helpers.process_exception.call(null,state_17569); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if(new cljs.core.Keyword(null,"else","else",1017020587)) {throw e17608; } else {return null; } } }})();if(cljs.core.keyword_identical_QMARK_.call(null,ret_value__13883__auto__,new cljs.core.Keyword(null,"recur","recur",1122293407))) {{ var G__18750 = state_17569; state_17569 = G__18750; continue; } } else {return ret_value__13883__auto__; } break; } }); state_machine__13882__auto__ = function(state_17569){ switch(arguments.length){ case 0: return state_machine__13882__auto____0.call(this); case 1: return state_machine__13882__auto____1.call(this,state_17569); } throw(new Error('Invalid arity: ' + arguments.length)); }; state_machine__13882__auto__.cljs$core$IFn$_invoke$arity$0 = state_machine__13882__auto____0; state_machine__13882__auto__.cljs$core$IFn$_invoke$arity$1 = state_machine__13882__auto____1; return state_machine__13882__auto__; })() ;})(switch__13881__auto__,c__13951__auto___18722,cs,solo_modes,attrs,solo_mode,change,changed,pick,calc_state,m)) })();var state__13953__auto__ = (function (){var statearr_17610 = f__13952__auto__.call(null);(statearr_17610[cljs.core.async.impl.ioc_helpers.USER_START_IDX] = c__13951__auto___18722); return statearr_17610; })();return cljs.core.async.impl.ioc_helpers.run_state_machine_wrapped.call(null,state__13953__auto__); });})(c__13951__auto___18722,cs,solo_modes,attrs,solo_mode,change,changed,pick,calc_state,m)) ); return m; }); /** * Adds ch as an input to the mix */ cljs.core.async.admix = (function admix(mix,ch){return cljs.core.async.admix_STAR_.call(null,mix,ch); }); /** * Removes ch as an input to the mix */ cljs.core.async.unmix = (function unmix(mix,ch){return cljs.core.async.unmix_STAR_.call(null,mix,ch); }); /** * removes all inputs from the mix */ cljs.core.async.unmix_all = (function unmix_all(mix){return cljs.core.async.unmix_all_STAR_.call(null,mix); }); /** * Atomically sets the state(s) of one or more channels in a mix. The * state map is a map of channels -> channel-state-map. A * channel-state-map is a map of attrs -> boolean, where attr is one or * more of :mute, :pause or :solo. Any states supplied are merged with * the current state. * * Note that channels can be added to a mix via toggle, which can be * used to add channels in a particular (e.g. paused) state. */ cljs.core.async.toggle = (function toggle(mix,state_map){return cljs.core.async.toggle_STAR_.call(null,mix,state_map); }); /** * Sets the solo mode of the mix. mode must be one of :mute or :pause */ cljs.core.async.solo_mode = (function solo_mode(mix,mode){return cljs.core.async.solo_mode_STAR_.call(null,mix,mode); }); cljs.core.async.Pub = (function (){var obj17612 = {};return obj17612; })(); cljs.core.async.sub_STAR_ = (function sub_STAR_(p,v,ch,close_QMARK_){if((function (){var and__4872__auto__ = p;if(and__4872__auto__) {return p.cljs$core$async$Pub$sub_STAR_$arity$4; } else {return and__4872__auto__; } })()) {return p.cljs$core$async$Pub$sub_STAR_$arity$4(p,v,ch,close_QMARK_); } else {var x__5511__auto__ = (((p == null))?null:p);return (function (){var or__4884__auto__ = (cljs.core.async.sub_STAR_[goog.typeOf(x__5511__auto__)]);if(or__4884__auto__) {return or__4884__auto__; } else {var or__4884__auto____$1 = (cljs.core.async.sub_STAR_["_"]);if(or__4884__auto____$1) {return or__4884__auto____$1; } else {throw cljs.core.missing_protocol.call(null,"Pub.sub*",p); } } })().call(null,p,v,ch,close_QMARK_); } }); cljs.core.async.unsub_STAR_ = (function unsub_STAR_(p,v,ch){if((function (){var and__4872__auto__ = p;if(and__4872__auto__) {return p.cljs$core$async$Pub$unsub_STAR_$arity$3; } else {return and__4872__auto__; } })()) {return p.cljs$core$async$Pub$unsub_STAR_$arity$3(p,v,ch); } else {var x__5511__auto__ = (((p == null))?null:p);return (function (){var or__4884__auto__ = (cljs.core.async.unsub_STAR_[goog.typeOf(x__5511__auto__)]);if(or__4884__auto__) {return or__4884__auto__; } else {var or__4884__auto____$1 = (cljs.core.async.unsub_STAR_["_"]);if(or__4884__auto____$1) {return or__4884__auto____$1; } else {throw cljs.core.missing_protocol.call(null,"Pub.unsub*",p); } } })().call(null,p,v,ch); } }); cljs.core.async.unsub_all_STAR_ = (function() { var unsub_all_STAR_ = null; var unsub_all_STAR___1 = (function (p){if((function (){var and__4872__auto__ = p;if(and__4872__auto__) {return p.cljs$core$async$Pub$unsub_all_STAR_$arity$1; } else {return and__4872__auto__; } })()) {return p.cljs$core$async$Pub$unsub_all_STAR_$arity$1(p); } else {var x__5511__auto__ = (((p == null))?null:p);return (function (){var or__4884__auto__ = (cljs.core.async.unsub_all_STAR_[goog.typeOf(x__5511__auto__)]);if(or__4884__auto__) {return or__4884__auto__; } else {var or__4884__auto____$1 = (cljs.core.async.unsub_all_STAR_["_"]);if(or__4884__auto____$1) {return or__4884__auto____$1; } else {throw cljs.core.missing_protocol.call(null,"Pub.unsub-all*",p); } } })().call(null,p); } }); var unsub_all_STAR___2 = (function (p,v){if((function (){var and__4872__auto__ = p;if(and__4872__auto__) {return p.cljs$core$async$Pub$unsub_all_STAR_$arity$2; } else {return and__4872__auto__; } })()) {return p.cljs$core$async$Pub$unsub_all_STAR_$arity$2(p,v); } else {var x__5511__auto__ = (((p == null))?null:p);return (function (){var or__4884__auto__ = (cljs.core.async.unsub_all_STAR_[goog.typeOf(x__5511__auto__)]);if(or__4884__auto__) {return or__4884__auto__; } else {var or__4884__auto____$1 = (cljs.core.async.unsub_all_STAR_["_"]);if(or__4884__auto____$1) {return or__4884__auto____$1; } else {throw cljs.core.missing_protocol.call(null,"Pub.unsub-all*",p); } } })().call(null,p,v); } }); unsub_all_STAR_ = function(p,v){ switch(arguments.length){ case 1: return unsub_all_STAR___1.call(this,p); case 2: return unsub_all_STAR___2.call(this,p,v); } throw(new Error('Invalid arity: ' + arguments.length)); }; unsub_all_STAR_.cljs$core$IFn$_invoke$arity$1 = unsub_all_STAR___1; unsub_all_STAR_.cljs$core$IFn$_invoke$arity$2 = unsub_all_STAR___2; return unsub_all_STAR_; })() ; /** * Creates and returns a pub(lication) of the supplied channel, * partitioned into topics by the topic-fn. topic-fn will be applied to * each value on the channel and the result will determine the 'topic' * on which that value will be put. Channels can be subscribed to * receive copies of topics using 'sub', and unsubscribed using * 'unsub'. Each topic will be handled by an internal mult on a * dedicated channel. By default these internal channels are * unbuffered, but a buf-fn can be supplied which, given a topic, * creates a buffer with desired properties. * * Each item is distributed to all subs in parallel and synchronously, * i.e. each sub must accept before the next item is distributed. Use * buffering/windowing to prevent slow subs from holding up the pub. * * Items received when there are no matching subs get dropped. * * Note that if buf-fns are used then each topic is handled * asynchronously, i.e. if a channel is subscribed to more than one * topic it should not expect them to be interleaved identically with * the source. */ cljs.core.async.pub = (function() { var pub = null; var pub__2 = (function (ch,topic_fn){return pub.call(null,ch,topic_fn,cljs.core.constantly.call(null,null)); }); var pub__3 = (function (ch,topic_fn,buf_fn){var mults = cljs.core.atom.call(null,cljs.core.PersistentArrayMap.EMPTY);var ensure_mult = ((function (mults){ return (function (topic){var or__4884__auto__ = cljs.core.get.call(null,cljs.core.deref.call(null,mults),topic);if(cljs.core.truth_(or__4884__auto__)) {return or__4884__auto__; } else {return cljs.core.get.call(null,cljs.core.swap_BANG_.call(null,mults,((function (or__4884__auto__,mults){ return (function (p1__17613_SHARP_){if(cljs.core.truth_(p1__17613_SHARP_.call(null,topic))) {return p1__17613_SHARP_; } else {return cljs.core.assoc.call(null,p1__17613_SHARP_,topic,cljs.core.async.mult.call(null,cljs.core.async.chan.call(null,buf_fn.call(null,topic)))); } });})(or__4884__auto__,mults)) ),topic); } });})(mults)) ;var p = (function (){if(typeof cljs.core.async.t17738 !== 'undefined') {} else { /** * @constructor */ cljs.core.async.t17738 = (function (ensure_mult,mults,buf_fn,topic_fn,ch,pub,meta17739){ this.ensure_mult = ensure_mult; this.mults = mults; this.buf_fn = buf_fn; this.topic_fn = topic_fn; this.ch = ch; this.pub = pub; this.meta17739 = meta17739; this.cljs$lang$protocol_mask$partition1$ = 0; this.cljs$lang$protocol_mask$partition0$ = 393216; }) cljs.core.async.t17738.cljs$lang$type = true; cljs.core.async.t17738.cljs$lang$ctorStr = "cljs.core.async/t17738"; cljs.core.async.t17738.cljs$lang$ctorPrWriter = ((function (mults,ensure_mult){ return (function (this__5451__auto__,writer__5452__auto__,opt__5453__auto__){return cljs.core._write.call(null,writer__5452__auto__,"cljs.core.async/t17738"); });})(mults,ensure_mult)) ; cljs.core.async.t17738.prototype.cljs$core$async$Pub$ = true; cljs.core.async.t17738.prototype.cljs$core$async$Pub$sub_STAR_$arity$4 = ((function (mults,ensure_mult){ return (function (p,topic,ch__$2,close_QMARK_){var self__ = this; var p__$1 = this;var m = self__.ensure_mult.call(null,topic);return cljs.core.async.tap.call(null,m,ch__$2,close_QMARK_); });})(mults,ensure_mult)) ; cljs.core.async.t17738.prototype.cljs$core$async$Pub$unsub_STAR_$arity$3 = ((function (mults,ensure_mult){ return (function (p,topic,ch__$2){var self__ = this; var p__$1 = this;var temp__4092__auto__ = cljs.core.get.call(null,cljs.core.deref.call(null,self__.mults),topic);if(cljs.core.truth_(temp__4092__auto__)) {var m = temp__4092__auto__;return cljs.core.async.untap.call(null,m,ch__$2); } else {return null; } });})(mults,ensure_mult)) ; cljs.core.async.t17738.prototype.cljs$core$async$Pub$unsub_all_STAR_$arity$1 = ((function (mults,ensure_mult){ return (function (_){var self__ = this; var ___$1 = this;return cljs.core.reset_BANG_.call(null,self__.mults,cljs.core.PersistentArrayMap.EMPTY); });})(mults,ensure_mult)) ; cljs.core.async.t17738.prototype.cljs$core$async$Pub$unsub_all_STAR_$arity$2 = ((function (mults,ensure_mult){ return (function (_,topic){var self__ = this; var ___$1 = this;return cljs.core.swap_BANG_.call(null,self__.mults,cljs.core.dissoc,topic); });})(mults,ensure_mult)) ; cljs.core.async.t17738.prototype.cljs$core$async$Mux$ = true; cljs.core.async.t17738.prototype.cljs$core$async$Mux$muxch_STAR_$arity$1 = ((function (mults,ensure_mult){ return (function (_){var self__ = this; var ___$1 = this;return self__.ch; });})(mults,ensure_mult)) ; cljs.core.async.t17738.prototype.cljs$core$IMeta$_meta$arity$1 = ((function (mults,ensure_mult){ return (function (_17740){var self__ = this; var _17740__$1 = this;return self__.meta17739; });})(mults,ensure_mult)) ; cljs.core.async.t17738.prototype.cljs$core$IWithMeta$_with_meta$arity$2 = ((function (mults,ensure_mult){ return (function (_17740,meta17739__$1){var self__ = this; var _17740__$1 = this;return (new cljs.core.async.t17738(self__.ensure_mult,self__.mults,self__.buf_fn,self__.topic_fn,self__.ch,self__.pub,meta17739__$1)); });})(mults,ensure_mult)) ; cljs.core.async.__GT_t17738 = ((function (mults,ensure_mult){ return (function __GT_t17738(ensure_mult__$1,mults__$1,buf_fn__$1,topic_fn__$1,ch__$1,pub__$1,meta17739){return (new cljs.core.async.t17738(ensure_mult__$1,mults__$1,buf_fn__$1,topic_fn__$1,ch__$1,pub__$1,meta17739)); });})(mults,ensure_mult)) ; } return (new cljs.core.async.t17738(ensure_mult,mults,buf_fn,topic_fn,ch,pub,null)); })();var c__13951__auto___18751 = cljs.core.async.chan.call(null,1);cljs.core.async.impl.dispatch.run.call(null,((function (c__13951__auto___18751,mults,ensure_mult,p){ return (function (){var f__13952__auto__ = (function (){var switch__13881__auto__ = ((function (c__13951__auto___18751,mults,ensure_mult,p){ return (function (state_17814){var state_val_17815 = (state_17814[1]);if((state_val_17815 === 1)) {var state_17814__$1 = state_17814;var statearr_17816_18752 = state_17814__$1;(statearr_17816_18752[2] = null); (statearr_17816_18752[1] = 2); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_17815 === 2)) {var state_17814__$1 = state_17814;return cljs.core.async.impl.ioc_helpers.take_BANG_.call(null,state_17814__$1,4,ch); } else {if((state_val_17815 === 3)) {var inst_17812 = (state_17814[2]);var state_17814__$1 = state_17814;return cljs.core.async.impl.ioc_helpers.return_chan.call(null,state_17814__$1,inst_17812); } else {if((state_val_17815 === 4)) {var inst_17743 = (state_17814[7]);var inst_17743__$1 = (state_17814[2]);var inst_17744 = (inst_17743__$1 == null);var state_17814__$1 = (function (){var statearr_17817 = state_17814;(statearr_17817[7] = inst_17743__$1); return statearr_17817; })();if(cljs.core.truth_(inst_17744)) {var statearr_17818_18753 = state_17814__$1;(statearr_17818_18753[1] = 5); } else {var statearr_17819_18754 = state_17814__$1;(statearr_17819_18754[1] = 6); } return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_17815 === 5)) {var inst_17750 = cljs.core.deref.call(null,mults);var inst_17751 = cljs.core.vals.call(null,inst_17750);var inst_17752 = cljs.core.seq.call(null,inst_17751);var inst_17753 = inst_17752;var inst_17754 = null;var inst_17755 = 0;var inst_17756 = 0;var state_17814__$1 = (function (){var statearr_17820 = state_17814;(statearr_17820[8] = inst_17753); (statearr_17820[9] = inst_17754); (statearr_17820[10] = inst_17756); (statearr_17820[11] = inst_17755); return statearr_17820; })();var statearr_17821_18755 = state_17814__$1;(statearr_17821_18755[2] = null); (statearr_17821_18755[1] = 8); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_17815 === 6)) {var inst_17791 = (state_17814[12]);var inst_17793 = (state_17814[13]);var inst_17743 = (state_17814[7]);var inst_17791__$1 = topic_fn.call(null,inst_17743);var inst_17792 = cljs.core.deref.call(null,mults);var inst_17793__$1 = cljs.core.get.call(null,inst_17792,inst_17791__$1);var state_17814__$1 = (function (){var statearr_17822 = state_17814;(statearr_17822[12] = inst_17791__$1); (statearr_17822[13] = inst_17793__$1); return statearr_17822; })();if(cljs.core.truth_(inst_17793__$1)) {var statearr_17823_18756 = state_17814__$1;(statearr_17823_18756[1] = 19); } else {var statearr_17824_18757 = state_17814__$1;(statearr_17824_18757[1] = 20); } return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_17815 === 7)) {var inst_17810 = (state_17814[2]);var state_17814__$1 = state_17814;var statearr_17825_18758 = state_17814__$1;(statearr_17825_18758[2] = inst_17810); (statearr_17825_18758[1] = 3); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_17815 === 8)) {var inst_17756 = (state_17814[10]);var inst_17755 = (state_17814[11]);var inst_17758 = (inst_17756 < inst_17755);var inst_17759 = inst_17758;var state_17814__$1 = state_17814;if(cljs.core.truth_(inst_17759)) {var statearr_17829_18759 = state_17814__$1;(statearr_17829_18759[1] = 10); } else {var statearr_17830_18760 = state_17814__$1;(statearr_17830_18760[1] = 11); } return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_17815 === 9)) {var inst_17789 = (state_17814[2]);var state_17814__$1 = state_17814;var statearr_17831_18761 = state_17814__$1;(statearr_17831_18761[2] = inst_17789); (statearr_17831_18761[1] = 7); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_17815 === 10)) {var inst_17753 = (state_17814[8]);var inst_17754 = (state_17814[9]);var inst_17756 = (state_17814[10]);var inst_17755 = (state_17814[11]);var inst_17761 = cljs.core._nth.call(null,inst_17754,inst_17756);var inst_17762 = cljs.core.async.muxch_STAR_.call(null,inst_17761);var inst_17763 = cljs.core.async.close_BANG_.call(null,inst_17762);var inst_17764 = (inst_17756 + 1);var tmp17826 = inst_17753;var tmp17827 = inst_17754;var tmp17828 = inst_17755;var inst_17753__$1 = tmp17826;var inst_17754__$1 = tmp17827;var inst_17755__$1 = tmp17828;var inst_17756__$1 = inst_17764;var state_17814__$1 = (function (){var statearr_17832 = state_17814;(statearr_17832[8] = inst_17753__$1); (statearr_17832[9] = inst_17754__$1); (statearr_17832[14] = inst_17763); (statearr_17832[10] = inst_17756__$1); (statearr_17832[11] = inst_17755__$1); return statearr_17832; })();var statearr_17833_18762 = state_17814__$1;(statearr_17833_18762[2] = null); (statearr_17833_18762[1] = 8); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_17815 === 11)) {var inst_17753 = (state_17814[8]);var inst_17767 = (state_17814[15]);var inst_17767__$1 = cljs.core.seq.call(null,inst_17753);var state_17814__$1 = (function (){var statearr_17834 = state_17814;(statearr_17834[15] = inst_17767__$1); return statearr_17834; })();if(inst_17767__$1) {var statearr_17835_18763 = state_17814__$1;(statearr_17835_18763[1] = 13); } else {var statearr_17836_18764 = state_17814__$1;(statearr_17836_18764[1] = 14); } return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_17815 === 12)) {var inst_17787 = (state_17814[2]);var state_17814__$1 = state_17814;var statearr_17837_18765 = state_17814__$1;(statearr_17837_18765[2] = inst_17787); (statearr_17837_18765[1] = 9); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_17815 === 13)) {var inst_17767 = (state_17814[15]);var inst_17769 = cljs.core.chunked_seq_QMARK_.call(null,inst_17767);var state_17814__$1 = state_17814;if(inst_17769) {var statearr_17838_18766 = state_17814__$1;(statearr_17838_18766[1] = 16); } else {var statearr_17839_18767 = state_17814__$1;(statearr_17839_18767[1] = 17); } return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_17815 === 14)) {var state_17814__$1 = state_17814;var statearr_17840_18768 = state_17814__$1;(statearr_17840_18768[2] = null); (statearr_17840_18768[1] = 15); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_17815 === 15)) {var inst_17785 = (state_17814[2]);var state_17814__$1 = state_17814;var statearr_17841_18769 = state_17814__$1;(statearr_17841_18769[2] = inst_17785); (statearr_17841_18769[1] = 12); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_17815 === 16)) {var inst_17767 = (state_17814[15]);var inst_17771 = cljs.core.chunk_first.call(null,inst_17767);var inst_17772 = cljs.core.chunk_rest.call(null,inst_17767);var inst_17773 = cljs.core.count.call(null,inst_17771);var inst_17753 = inst_17772;var inst_17754 = inst_17771;var inst_17755 = inst_17773;var inst_17756 = 0;var state_17814__$1 = (function (){var statearr_17842 = state_17814;(statearr_17842[8] = inst_17753); (statearr_17842[9] = inst_17754); (statearr_17842[10] = inst_17756); (statearr_17842[11] = inst_17755); return statearr_17842; })();var statearr_17843_18770 = state_17814__$1;(statearr_17843_18770[2] = null); (statearr_17843_18770[1] = 8); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_17815 === 17)) {var inst_17767 = (state_17814[15]);var inst_17776 = cljs.core.first.call(null,inst_17767);var inst_17777 = cljs.core.async.muxch_STAR_.call(null,inst_17776);var inst_17778 = cljs.core.async.close_BANG_.call(null,inst_17777);var inst_17779 = cljs.core.next.call(null,inst_17767);var inst_17753 = inst_17779;var inst_17754 = null;var inst_17755 = 0;var inst_17756 = 0;var state_17814__$1 = (function (){var statearr_17844 = state_17814;(statearr_17844[8] = inst_17753); (statearr_17844[9] = inst_17754); (statearr_17844[10] = inst_17756); (statearr_17844[11] = inst_17755); (statearr_17844[16] = inst_17778); return statearr_17844; })();var statearr_17845_18771 = state_17814__$1;(statearr_17845_18771[2] = null); (statearr_17845_18771[1] = 8); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_17815 === 18)) {var inst_17782 = (state_17814[2]);var state_17814__$1 = state_17814;var statearr_17846_18772 = state_17814__$1;(statearr_17846_18772[2] = inst_17782); (statearr_17846_18772[1] = 15); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_17815 === 19)) {var state_17814__$1 = state_17814;var statearr_17847_18773 = state_17814__$1;(statearr_17847_18773[2] = null); (statearr_17847_18773[1] = 24); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_17815 === 20)) {var state_17814__$1 = state_17814;var statearr_17848_18774 = state_17814__$1;(statearr_17848_18774[2] = null); (statearr_17848_18774[1] = 21); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_17815 === 21)) {var inst_17807 = (state_17814[2]);var state_17814__$1 = (function (){var statearr_17849 = state_17814;(statearr_17849[17] = inst_17807); return statearr_17849; })();var statearr_17850_18775 = state_17814__$1;(statearr_17850_18775[2] = null); (statearr_17850_18775[1] = 2); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_17815 === 22)) {var inst_17804 = (state_17814[2]);var state_17814__$1 = state_17814;var statearr_17851_18776 = state_17814__$1;(statearr_17851_18776[2] = inst_17804); (statearr_17851_18776[1] = 21); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_17815 === 23)) {var inst_17791 = (state_17814[12]);var inst_17795 = (state_17814[2]);var inst_17796 = cljs.core.swap_BANG_.call(null,mults,cljs.core.dissoc,inst_17791);var state_17814__$1 = (function (){var statearr_17852 = state_17814;(statearr_17852[18] = inst_17795); return statearr_17852; })();var statearr_17853_18777 = state_17814__$1;(statearr_17853_18777[2] = inst_17796); cljs.core.async.impl.ioc_helpers.process_exception.call(null,state_17814__$1); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_17815 === 24)) {var inst_17793 = (state_17814[13]);var inst_17743 = (state_17814[7]);var _ = cljs.core.async.impl.ioc_helpers.add_exception_frame.call(null,state_17814,23,Object,null,22);var inst_17800 = cljs.core.async.muxch_STAR_.call(null,inst_17793);var state_17814__$1 = state_17814;return cljs.core.async.impl.ioc_helpers.put_BANG_.call(null,state_17814__$1,25,inst_17800,inst_17743); } else {if((state_val_17815 === 25)) {var inst_17802 = (state_17814[2]);var state_17814__$1 = state_17814;var statearr_17854_18778 = state_17814__$1;(statearr_17854_18778[2] = inst_17802); cljs.core.async.impl.ioc_helpers.process_exception.call(null,state_17814__$1); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {return null; } } } } } } } } } } } } } } } } } } } } } } } } } });})(c__13951__auto___18751,mults,ensure_mult,p)) ;return ((function (switch__13881__auto__,c__13951__auto___18751,mults,ensure_mult,p){ return (function() { var state_machine__13882__auto__ = null; var state_machine__13882__auto____0 = (function (){var statearr_17858 = [null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null];(statearr_17858[0] = state_machine__13882__auto__); (statearr_17858[1] = 1); return statearr_17858; }); var state_machine__13882__auto____1 = (function (state_17814){while(true){ var ret_value__13883__auto__ = (function (){try{while(true){ var result__13884__auto__ = switch__13881__auto__.call(null,state_17814);if(cljs.core.keyword_identical_QMARK_.call(null,result__13884__auto__,new cljs.core.Keyword(null,"recur","recur",1122293407))) {{ continue; } } else {return result__13884__auto__; } break; } }catch (e17859){if((e17859 instanceof Object)) {var ex__13885__auto__ = e17859;var statearr_17860_18779 = state_17814;(statearr_17860_18779[5] = ex__13885__auto__); cljs.core.async.impl.ioc_helpers.process_exception.call(null,state_17814); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if(new cljs.core.Keyword(null,"else","else",1017020587)) {throw e17859; } else {return null; } } }})();if(cljs.core.keyword_identical_QMARK_.call(null,ret_value__13883__auto__,new cljs.core.Keyword(null,"recur","recur",1122293407))) {{ var G__18780 = state_17814; state_17814 = G__18780; continue; } } else {return ret_value__13883__auto__; } break; } }); state_machine__13882__auto__ = function(state_17814){ switch(arguments.length){ case 0: return state_machine__13882__auto____0.call(this); case 1: return state_machine__13882__auto____1.call(this,state_17814); } throw(new Error('Invalid arity: ' + arguments.length)); }; state_machine__13882__auto__.cljs$core$IFn$_invoke$arity$0 = state_machine__13882__auto____0; state_machine__13882__auto__.cljs$core$IFn$_invoke$arity$1 = state_machine__13882__auto____1; return state_machine__13882__auto__; })() ;})(switch__13881__auto__,c__13951__auto___18751,mults,ensure_mult,p)) })();var state__13953__auto__ = (function (){var statearr_17861 = f__13952__auto__.call(null);(statearr_17861[cljs.core.async.impl.ioc_helpers.USER_START_IDX] = c__13951__auto___18751); return statearr_17861; })();return cljs.core.async.impl.ioc_helpers.run_state_machine_wrapped.call(null,state__13953__auto__); });})(c__13951__auto___18751,mults,ensure_mult,p)) ); return p; }); pub = function(ch,topic_fn,buf_fn){ switch(arguments.length){ case 2: return pub__2.call(this,ch,topic_fn); case 3: return pub__3.call(this,ch,topic_fn,buf_fn); } throw(new Error('Invalid arity: ' + arguments.length)); }; pub.cljs$core$IFn$_invoke$arity$2 = pub__2; pub.cljs$core$IFn$_invoke$arity$3 = pub__3; return pub; })() ; /** * Subscribes a channel to a topic of a pub. * * By default the channel will be closed when the source closes, * but can be determined by the close? parameter. */ cljs.core.async.sub = (function() { var sub = null; var sub__3 = (function (p,topic,ch){return sub.call(null,p,topic,ch,true); }); var sub__4 = (function (p,topic,ch,close_QMARK_){return cljs.core.async.sub_STAR_.call(null,p,topic,ch,close_QMARK_); }); sub = function(p,topic,ch,close_QMARK_){ switch(arguments.length){ case 3: return sub__3.call(this,p,topic,ch); case 4: return sub__4.call(this,p,topic,ch,close_QMARK_); } throw(new Error('Invalid arity: ' + arguments.length)); }; sub.cljs$core$IFn$_invoke$arity$3 = sub__3; sub.cljs$core$IFn$_invoke$arity$4 = sub__4; return sub; })() ; /** * Unsubscribes a channel from a topic of a pub */ cljs.core.async.unsub = (function unsub(p,topic,ch){return cljs.core.async.unsub_STAR_.call(null,p,topic,ch); }); /** * Unsubscribes all channels from a pub, or a topic of a pub */ cljs.core.async.unsub_all = (function() { var unsub_all = null; var unsub_all__1 = (function (p){return cljs.core.async.unsub_all_STAR_.call(null,p); }); var unsub_all__2 = (function (p,topic){return cljs.core.async.unsub_all_STAR_.call(null,p,topic); }); unsub_all = function(p,topic){ switch(arguments.length){ case 1: return unsub_all__1.call(this,p); case 2: return unsub_all__2.call(this,p,topic); } throw(new Error('Invalid arity: ' + arguments.length)); }; unsub_all.cljs$core$IFn$_invoke$arity$1 = unsub_all__1; unsub_all.cljs$core$IFn$_invoke$arity$2 = unsub_all__2; return unsub_all; })() ; /** * Takes a function and a collection of source channels, and returns a * channel which contains the values produced by applying f to the set * of first items taken from each source channel, followed by applying * f to the set of second items from each channel, until any one of the * channels is closed, at which point the output channel will be * closed. The returned channel will be unbuffered by default, or a * buf-or-n can be supplied */ cljs.core.async.map = (function() { var map = null; var map__2 = (function (f,chs){return map.call(null,f,chs,null); }); var map__3 = (function (f,chs,buf_or_n){var chs__$1 = cljs.core.vec.call(null,chs);var out = cljs.core.async.chan.call(null,buf_or_n);var cnt = cljs.core.count.call(null,chs__$1);var rets = cljs.core.object_array.call(null,cnt);var dchan = cljs.core.async.chan.call(null,1);var dctr = cljs.core.atom.call(null,null);var done = cljs.core.mapv.call(null,((function (chs__$1,out,cnt,rets,dchan,dctr){ return (function (i){return ((function (chs__$1,out,cnt,rets,dchan,dctr){ return (function (ret){(rets[i] = ret); if((cljs.core.swap_BANG_.call(null,dctr,cljs.core.dec) === 0)) {return cljs.core.async.put_BANG_.call(null,dchan,rets.slice(0)); } else {return null; } }); ;})(chs__$1,out,cnt,rets,dchan,dctr)) });})(chs__$1,out,cnt,rets,dchan,dctr)) ,cljs.core.range.call(null,cnt));var c__13951__auto___18781 = cljs.core.async.chan.call(null,1);cljs.core.async.impl.dispatch.run.call(null,((function (c__13951__auto___18781,chs__$1,out,cnt,rets,dchan,dctr,done){ return (function (){var f__13952__auto__ = (function (){var switch__13881__auto__ = ((function (c__13951__auto___18781,chs__$1,out,cnt,rets,dchan,dctr,done){ return (function (state_17968){var state_val_17969 = (state_17968[1]);if((state_val_17969 === 1)) {var state_17968__$1 = state_17968;var statearr_17970_18782 = state_17968__$1;(statearr_17970_18782[2] = null); (statearr_17970_18782[1] = 2); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_17969 === 2)) {var inst_17931 = cljs.core.reset_BANG_.call(null,dctr,cnt);var inst_17932 = 0;var state_17968__$1 = (function (){var statearr_17971 = state_17968;(statearr_17971[7] = inst_17932); (statearr_17971[8] = inst_17931); return statearr_17971; })();var statearr_17972_18783 = state_17968__$1;(statearr_17972_18783[2] = null); (statearr_17972_18783[1] = 4); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_17969 === 3)) {var inst_17966 = (state_17968[2]);var state_17968__$1 = state_17968;return cljs.core.async.impl.ioc_helpers.return_chan.call(null,state_17968__$1,inst_17966); } else {if((state_val_17969 === 4)) {var inst_17932 = (state_17968[7]);var inst_17934 = (inst_17932 < cnt);var state_17968__$1 = state_17968;if(cljs.core.truth_(inst_17934)) {var statearr_17973_18784 = state_17968__$1;(statearr_17973_18784[1] = 6); } else {var statearr_17974_18785 = state_17968__$1;(statearr_17974_18785[1] = 7); } return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_17969 === 5)) {var inst_17952 = (state_17968[2]);var state_17968__$1 = (function (){var statearr_17975 = state_17968;(statearr_17975[9] = inst_17952); return statearr_17975; })();return cljs.core.async.impl.ioc_helpers.take_BANG_.call(null,state_17968__$1,12,dchan); } else {if((state_val_17969 === 6)) {var state_17968__$1 = state_17968;var statearr_17976_18786 = state_17968__$1;(statearr_17976_18786[2] = null); (statearr_17976_18786[1] = 11); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_17969 === 7)) {var state_17968__$1 = state_17968;var statearr_17977_18787 = state_17968__$1;(statearr_17977_18787[2] = null); (statearr_17977_18787[1] = 8); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_17969 === 8)) {var inst_17950 = (state_17968[2]);var state_17968__$1 = state_17968;var statearr_17978_18788 = state_17968__$1;(statearr_17978_18788[2] = inst_17950); (statearr_17978_18788[1] = 5); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_17969 === 9)) {var inst_17932 = (state_17968[7]);var inst_17945 = (state_17968[2]);var inst_17946 = (inst_17932 + 1);var inst_17932__$1 = inst_17946;var state_17968__$1 = (function (){var statearr_17979 = state_17968;(statearr_17979[10] = inst_17945); (statearr_17979[7] = inst_17932__$1); return statearr_17979; })();var statearr_17980_18789 = state_17968__$1;(statearr_17980_18789[2] = null); (statearr_17980_18789[1] = 4); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_17969 === 10)) {var inst_17936 = (state_17968[2]);var inst_17937 = cljs.core.swap_BANG_.call(null,dctr,cljs.core.dec);var state_17968__$1 = (function (){var statearr_17981 = state_17968;(statearr_17981[11] = inst_17936); return statearr_17981; })();var statearr_17982_18790 = state_17968__$1;(statearr_17982_18790[2] = inst_17937); cljs.core.async.impl.ioc_helpers.process_exception.call(null,state_17968__$1); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_17969 === 11)) {var inst_17932 = (state_17968[7]);var _ = cljs.core.async.impl.ioc_helpers.add_exception_frame.call(null,state_17968,10,Object,null,9);var inst_17941 = chs__$1.call(null,inst_17932);var inst_17942 = done.call(null,inst_17932);var inst_17943 = cljs.core.async.take_BANG_.call(null,inst_17941,inst_17942);var state_17968__$1 = state_17968;var statearr_17983_18791 = state_17968__$1;(statearr_17983_18791[2] = inst_17943); cljs.core.async.impl.ioc_helpers.process_exception.call(null,state_17968__$1); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_17969 === 12)) {var inst_17954 = (state_17968[12]);var inst_17954__$1 = (state_17968[2]);var inst_17955 = cljs.core.some.call(null,cljs.core.nil_QMARK_,inst_17954__$1);var state_17968__$1 = (function (){var statearr_17984 = state_17968;(statearr_17984[12] = inst_17954__$1); return statearr_17984; })();if(cljs.core.truth_(inst_17955)) {var statearr_17985_18792 = state_17968__$1;(statearr_17985_18792[1] = 13); } else {var statearr_17986_18793 = state_17968__$1;(statearr_17986_18793[1] = 14); } return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_17969 === 13)) {var inst_17957 = cljs.core.async.close_BANG_.call(null,out);var state_17968__$1 = state_17968;var statearr_17987_18794 = state_17968__$1;(statearr_17987_18794[2] = inst_17957); (statearr_17987_18794[1] = 15); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_17969 === 14)) {var inst_17954 = (state_17968[12]);var inst_17959 = cljs.core.apply.call(null,f,inst_17954);var state_17968__$1 = state_17968;return cljs.core.async.impl.ioc_helpers.put_BANG_.call(null,state_17968__$1,16,out,inst_17959); } else {if((state_val_17969 === 15)) {var inst_17964 = (state_17968[2]);var state_17968__$1 = state_17968;var statearr_17988_18795 = state_17968__$1;(statearr_17988_18795[2] = inst_17964); (statearr_17988_18795[1] = 3); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_17969 === 16)) {var inst_17961 = (state_17968[2]);var state_17968__$1 = (function (){var statearr_17989 = state_17968;(statearr_17989[13] = inst_17961); return statearr_17989; })();var statearr_17990_18796 = state_17968__$1;(statearr_17990_18796[2] = null); (statearr_17990_18796[1] = 2); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {return null; } } } } } } } } } } } } } } } } });})(c__13951__auto___18781,chs__$1,out,cnt,rets,dchan,dctr,done)) ;return ((function (switch__13881__auto__,c__13951__auto___18781,chs__$1,out,cnt,rets,dchan,dctr,done){ return (function() { var state_machine__13882__auto__ = null; var state_machine__13882__auto____0 = (function (){var statearr_17994 = [null,null,null,null,null,null,null,null,null,null,null,null,null,null];(statearr_17994[0] = state_machine__13882__auto__); (statearr_17994[1] = 1); return statearr_17994; }); var state_machine__13882__auto____1 = (function (state_17968){while(true){ var ret_value__13883__auto__ = (function (){try{while(true){ var result__13884__auto__ = switch__13881__auto__.call(null,state_17968);if(cljs.core.keyword_identical_QMARK_.call(null,result__13884__auto__,new cljs.core.Keyword(null,"recur","recur",1122293407))) {{ continue; } } else {return result__13884__auto__; } break; } }catch (e17995){if((e17995 instanceof Object)) {var ex__13885__auto__ = e17995;var statearr_17996_18797 = state_17968;(statearr_17996_18797[5] = ex__13885__auto__); cljs.core.async.impl.ioc_helpers.process_exception.call(null,state_17968); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if(new cljs.core.Keyword(null,"else","else",1017020587)) {throw e17995; } else {return null; } } }})();if(cljs.core.keyword_identical_QMARK_.call(null,ret_value__13883__auto__,new cljs.core.Keyword(null,"recur","recur",1122293407))) {{ var G__18798 = state_17968; state_17968 = G__18798; continue; } } else {return ret_value__13883__auto__; } break; } }); state_machine__13882__auto__ = function(state_17968){ switch(arguments.length){ case 0: return state_machine__13882__auto____0.call(this); case 1: return state_machine__13882__auto____1.call(this,state_17968); } throw(new Error('Invalid arity: ' + arguments.length)); }; state_machine__13882__auto__.cljs$core$IFn$_invoke$arity$0 = state_machine__13882__auto____0; state_machine__13882__auto__.cljs$core$IFn$_invoke$arity$1 = state_machine__13882__auto____1; return state_machine__13882__auto__; })() ;})(switch__13881__auto__,c__13951__auto___18781,chs__$1,out,cnt,rets,dchan,dctr,done)) })();var state__13953__auto__ = (function (){var statearr_17997 = f__13952__auto__.call(null);(statearr_17997[cljs.core.async.impl.ioc_helpers.USER_START_IDX] = c__13951__auto___18781); return statearr_17997; })();return cljs.core.async.impl.ioc_helpers.run_state_machine_wrapped.call(null,state__13953__auto__); });})(c__13951__auto___18781,chs__$1,out,cnt,rets,dchan,dctr,done)) ); return out; }); map = function(f,chs,buf_or_n){ switch(arguments.length){ case 2: return map__2.call(this,f,chs); case 3: return map__3.call(this,f,chs,buf_or_n); } throw(new Error('Invalid arity: ' + arguments.length)); }; map.cljs$core$IFn$_invoke$arity$2 = map__2; map.cljs$core$IFn$_invoke$arity$3 = map__3; return map; })() ; /** * Takes a collection of source channels and returns a channel which * contains all values taken from them. The returned channel will be * unbuffered by default, or a buf-or-n can be supplied. The channel * will close after all the source channels have closed. */ cljs.core.async.merge = (function() { var merge = null; var merge__1 = (function (chs){return merge.call(null,chs,null); }); var merge__2 = (function (chs,buf_or_n){var out = cljs.core.async.chan.call(null,buf_or_n);var c__13951__auto___18799 = cljs.core.async.chan.call(null,1);cljs.core.async.impl.dispatch.run.call(null,((function (c__13951__auto___18799,out){ return (function (){var f__13952__auto__ = (function (){var switch__13881__auto__ = ((function (c__13951__auto___18799,out){ return (function (state_18081){var state_val_18082 = (state_18081[1]);if((state_val_18082 === 1)) {var inst_18052 = cljs.core.vec.call(null,chs);var inst_18053 = inst_18052;var state_18081__$1 = (function (){var statearr_18083 = state_18081;(statearr_18083[7] = inst_18053); return statearr_18083; })();var statearr_18084_18800 = state_18081__$1;(statearr_18084_18800[2] = null); (statearr_18084_18800[1] = 2); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_18082 === 2)) {var inst_18053 = (state_18081[7]);var inst_18055 = cljs.core.count.call(null,inst_18053);var inst_18056 = (inst_18055 > 0);var state_18081__$1 = state_18081;if(cljs.core.truth_(inst_18056)) {var statearr_18085_18801 = state_18081__$1;(statearr_18085_18801[1] = 4); } else {var statearr_18086_18802 = state_18081__$1;(statearr_18086_18802[1] = 5); } return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_18082 === 3)) {var inst_18079 = (state_18081[2]);var state_18081__$1 = state_18081;return cljs.core.async.impl.ioc_helpers.return_chan.call(null,state_18081__$1,inst_18079); } else {if((state_val_18082 === 4)) {var inst_18053 = (state_18081[7]);var state_18081__$1 = state_18081;return cljs.core.async.impl.ioc_helpers.ioc_alts_BANG_.call(null,state_18081__$1,7,inst_18053); } else {if((state_val_18082 === 5)) {var inst_18075 = cljs.core.async.close_BANG_.call(null,out);var state_18081__$1 = state_18081;var statearr_18087_18803 = state_18081__$1;(statearr_18087_18803[2] = inst_18075); (statearr_18087_18803[1] = 6); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_18082 === 6)) {var inst_18077 = (state_18081[2]);var state_18081__$1 = state_18081;var statearr_18088_18804 = state_18081__$1;(statearr_18088_18804[2] = inst_18077); (statearr_18088_18804[1] = 3); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_18082 === 7)) {var inst_18061 = (state_18081[8]);var inst_18060 = (state_18081[9]);var inst_18060__$1 = (state_18081[2]);var inst_18061__$1 = cljs.core.nth.call(null,inst_18060__$1,0,null);var inst_18062 = cljs.core.nth.call(null,inst_18060__$1,1,null);var inst_18063 = (inst_18061__$1 == null);var state_18081__$1 = (function (){var statearr_18089 = state_18081;(statearr_18089[8] = inst_18061__$1); (statearr_18089[10] = inst_18062); (statearr_18089[9] = inst_18060__$1); return statearr_18089; })();if(cljs.core.truth_(inst_18063)) {var statearr_18090_18805 = state_18081__$1;(statearr_18090_18805[1] = 8); } else {var statearr_18091_18806 = state_18081__$1;(statearr_18091_18806[1] = 9); } return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_18082 === 8)) {var inst_18061 = (state_18081[8]);var inst_18062 = (state_18081[10]);var inst_18060 = (state_18081[9]);var inst_18053 = (state_18081[7]);var inst_18065 = (function (){var c = inst_18062;var v = inst_18061;var vec__18058 = inst_18060;var cs = inst_18053;return ((function (c,v,vec__18058,cs,inst_18061,inst_18062,inst_18060,inst_18053,state_val_18082,c__13951__auto___18799,out){ return (function (p1__17998_SHARP_){return cljs.core.not_EQ_.call(null,c,p1__17998_SHARP_); }); ;})(c,v,vec__18058,cs,inst_18061,inst_18062,inst_18060,inst_18053,state_val_18082,c__13951__auto___18799,out)) })();var inst_18066 = cljs.core.filterv.call(null,inst_18065,inst_18053);var inst_18053__$1 = inst_18066;var state_18081__$1 = (function (){var statearr_18092 = state_18081;(statearr_18092[7] = inst_18053__$1); return statearr_18092; })();var statearr_18093_18807 = state_18081__$1;(statearr_18093_18807[2] = null); (statearr_18093_18807[1] = 2); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_18082 === 9)) {var inst_18061 = (state_18081[8]);var state_18081__$1 = state_18081;return cljs.core.async.impl.ioc_helpers.put_BANG_.call(null,state_18081__$1,11,out,inst_18061); } else {if((state_val_18082 === 10)) {var inst_18073 = (state_18081[2]);var state_18081__$1 = state_18081;var statearr_18095_18808 = state_18081__$1;(statearr_18095_18808[2] = inst_18073); (statearr_18095_18808[1] = 6); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_18082 === 11)) {var inst_18053 = (state_18081[7]);var inst_18070 = (state_18081[2]);var tmp18094 = inst_18053;var inst_18053__$1 = tmp18094;var state_18081__$1 = (function (){var statearr_18096 = state_18081;(statearr_18096[11] = inst_18070); (statearr_18096[7] = inst_18053__$1); return statearr_18096; })();var statearr_18097_18809 = state_18081__$1;(statearr_18097_18809[2] = null); (statearr_18097_18809[1] = 2); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {return null; } } } } } } } } } } } });})(c__13951__auto___18799,out)) ;return ((function (switch__13881__auto__,c__13951__auto___18799,out){ return (function() { var state_machine__13882__auto__ = null; var state_machine__13882__auto____0 = (function (){var statearr_18101 = [null,null,null,null,null,null,null,null,null,null,null,null];(statearr_18101[0] = state_machine__13882__auto__); (statearr_18101[1] = 1); return statearr_18101; }); var state_machine__13882__auto____1 = (function (state_18081){while(true){ var ret_value__13883__auto__ = (function (){try{while(true){ var result__13884__auto__ = switch__13881__auto__.call(null,state_18081);if(cljs.core.keyword_identical_QMARK_.call(null,result__13884__auto__,new cljs.core.Keyword(null,"recur","recur",1122293407))) {{ continue; } } else {return result__13884__auto__; } break; } }catch (e18102){if((e18102 instanceof Object)) {var ex__13885__auto__ = e18102;var statearr_18103_18810 = state_18081;(statearr_18103_18810[5] = ex__13885__auto__); cljs.core.async.impl.ioc_helpers.process_exception.call(null,state_18081); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if(new cljs.core.Keyword(null,"else","else",1017020587)) {throw e18102; } else {return null; } } }})();if(cljs.core.keyword_identical_QMARK_.call(null,ret_value__13883__auto__,new cljs.core.Keyword(null,"recur","recur",1122293407))) {{ var G__18811 = state_18081; state_18081 = G__18811; continue; } } else {return ret_value__13883__auto__; } break; } }); state_machine__13882__auto__ = function(state_18081){ switch(arguments.length){ case 0: return state_machine__13882__auto____0.call(this); case 1: return state_machine__13882__auto____1.call(this,state_18081); } throw(new Error('Invalid arity: ' + arguments.length)); }; state_machine__13882__auto__.cljs$core$IFn$_invoke$arity$0 = state_machine__13882__auto____0; state_machine__13882__auto__.cljs$core$IFn$_invoke$arity$1 = state_machine__13882__auto____1; return state_machine__13882__auto__; })() ;})(switch__13881__auto__,c__13951__auto___18799,out)) })();var state__13953__auto__ = (function (){var statearr_18104 = f__13952__auto__.call(null);(statearr_18104[cljs.core.async.impl.ioc_helpers.USER_START_IDX] = c__13951__auto___18799); return statearr_18104; })();return cljs.core.async.impl.ioc_helpers.run_state_machine_wrapped.call(null,state__13953__auto__); });})(c__13951__auto___18799,out)) ); return out; }); merge = function(chs,buf_or_n){ switch(arguments.length){ case 1: return merge__1.call(this,chs); case 2: return merge__2.call(this,chs,buf_or_n); } throw(new Error('Invalid arity: ' + arguments.length)); }; merge.cljs$core$IFn$_invoke$arity$1 = merge__1; merge.cljs$core$IFn$_invoke$arity$2 = merge__2; return merge; })() ; /** * Returns a channel containing the single (collection) result of the * items taken from the channel conjoined to the supplied * collection. ch must close before into produces a result. */ cljs.core.async.into = (function into(coll,ch){return cljs.core.async.reduce.call(null,cljs.core.conj,coll,ch); }); /** * Returns a channel that will return, at most, n items from ch. After n items * have been returned, or ch has been closed, the return chanel will close. * * The output channel is unbuffered by default, unless buf-or-n is given. */ cljs.core.async.take = (function() { var take = null; var take__2 = (function (n,ch){return take.call(null,n,ch,null); }); var take__3 = (function (n,ch,buf_or_n){var out = cljs.core.async.chan.call(null,buf_or_n);var c__13951__auto___18812 = cljs.core.async.chan.call(null,1);cljs.core.async.impl.dispatch.run.call(null,((function (c__13951__auto___18812,out){ return (function (){var f__13952__auto__ = (function (){var switch__13881__auto__ = ((function (c__13951__auto___18812,out){ return (function (state_18174){var state_val_18175 = (state_18174[1]);if((state_val_18175 === 1)) {var inst_18151 = 0;var state_18174__$1 = (function (){var statearr_18176 = state_18174;(statearr_18176[7] = inst_18151); return statearr_18176; })();var statearr_18177_18813 = state_18174__$1;(statearr_18177_18813[2] = null); (statearr_18177_18813[1] = 2); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_18175 === 2)) {var inst_18151 = (state_18174[7]);var inst_18153 = (inst_18151 < n);var state_18174__$1 = state_18174;if(cljs.core.truth_(inst_18153)) {var statearr_18178_18814 = state_18174__$1;(statearr_18178_18814[1] = 4); } else {var statearr_18179_18815 = state_18174__$1;(statearr_18179_18815[1] = 5); } return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_18175 === 3)) {var inst_18171 = (state_18174[2]);var inst_18172 = cljs.core.async.close_BANG_.call(null,out);var state_18174__$1 = (function (){var statearr_18180 = state_18174;(statearr_18180[8] = inst_18171); return statearr_18180; })();return cljs.core.async.impl.ioc_helpers.return_chan.call(null,state_18174__$1,inst_18172); } else {if((state_val_18175 === 4)) {var state_18174__$1 = state_18174;return cljs.core.async.impl.ioc_helpers.take_BANG_.call(null,state_18174__$1,7,ch); } else {if((state_val_18175 === 5)) {var state_18174__$1 = state_18174;var statearr_18181_18816 = state_18174__$1;(statearr_18181_18816[2] = null); (statearr_18181_18816[1] = 6); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_18175 === 6)) {var inst_18169 = (state_18174[2]);var state_18174__$1 = state_18174;var statearr_18182_18817 = state_18174__$1;(statearr_18182_18817[2] = inst_18169); (statearr_18182_18817[1] = 3); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_18175 === 7)) {var inst_18156 = (state_18174[9]);var inst_18156__$1 = (state_18174[2]);var inst_18157 = (inst_18156__$1 == null);var inst_18158 = cljs.core.not.call(null,inst_18157);var state_18174__$1 = (function (){var statearr_18183 = state_18174;(statearr_18183[9] = inst_18156__$1); return statearr_18183; })();if(inst_18158) {var statearr_18184_18818 = state_18174__$1;(statearr_18184_18818[1] = 8); } else {var statearr_18185_18819 = state_18174__$1;(statearr_18185_18819[1] = 9); } return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_18175 === 8)) {var inst_18156 = (state_18174[9]);var state_18174__$1 = state_18174;return cljs.core.async.impl.ioc_helpers.put_BANG_.call(null,state_18174__$1,11,out,inst_18156); } else {if((state_val_18175 === 9)) {var state_18174__$1 = state_18174;var statearr_18186_18820 = state_18174__$1;(statearr_18186_18820[2] = null); (statearr_18186_18820[1] = 10); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_18175 === 10)) {var inst_18166 = (state_18174[2]);var state_18174__$1 = state_18174;var statearr_18187_18821 = state_18174__$1;(statearr_18187_18821[2] = inst_18166); (statearr_18187_18821[1] = 6); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_18175 === 11)) {var inst_18151 = (state_18174[7]);var inst_18161 = (state_18174[2]);var inst_18162 = (inst_18151 + 1);var inst_18151__$1 = inst_18162;var state_18174__$1 = (function (){var statearr_18188 = state_18174;(statearr_18188[7] = inst_18151__$1); (statearr_18188[10] = inst_18161); return statearr_18188; })();var statearr_18189_18822 = state_18174__$1;(statearr_18189_18822[2] = null); (statearr_18189_18822[1] = 2); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {return null; } } } } } } } } } } } });})(c__13951__auto___18812,out)) ;return ((function (switch__13881__auto__,c__13951__auto___18812,out){ return (function() { var state_machine__13882__auto__ = null; var state_machine__13882__auto____0 = (function (){var statearr_18193 = [null,null,null,null,null,null,null,null,null,null,null];(statearr_18193[0] = state_machine__13882__auto__); (statearr_18193[1] = 1); return statearr_18193; }); var state_machine__13882__auto____1 = (function (state_18174){while(true){ var ret_value__13883__auto__ = (function (){try{while(true){ var result__13884__auto__ = switch__13881__auto__.call(null,state_18174);if(cljs.core.keyword_identical_QMARK_.call(null,result__13884__auto__,new cljs.core.Keyword(null,"recur","recur",1122293407))) {{ continue; } } else {return result__13884__auto__; } break; } }catch (e18194){if((e18194 instanceof Object)) {var ex__13885__auto__ = e18194;var statearr_18195_18823 = state_18174;(statearr_18195_18823[5] = ex__13885__auto__); cljs.core.async.impl.ioc_helpers.process_exception.call(null,state_18174); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if(new cljs.core.Keyword(null,"else","else",1017020587)) {throw e18194; } else {return null; } } }})();if(cljs.core.keyword_identical_QMARK_.call(null,ret_value__13883__auto__,new cljs.core.Keyword(null,"recur","recur",1122293407))) {{ var G__18824 = state_18174; state_18174 = G__18824; continue; } } else {return ret_value__13883__auto__; } break; } }); state_machine__13882__auto__ = function(state_18174){ switch(arguments.length){ case 0: return state_machine__13882__auto____0.call(this); case 1: return state_machine__13882__auto____1.call(this,state_18174); } throw(new Error('Invalid arity: ' + arguments.length)); }; state_machine__13882__auto__.cljs$core$IFn$_invoke$arity$0 = state_machine__13882__auto____0; state_machine__13882__auto__.cljs$core$IFn$_invoke$arity$1 = state_machine__13882__auto____1; return state_machine__13882__auto__; })() ;})(switch__13881__auto__,c__13951__auto___18812,out)) })();var state__13953__auto__ = (function (){var statearr_18196 = f__13952__auto__.call(null);(statearr_18196[cljs.core.async.impl.ioc_helpers.USER_START_IDX] = c__13951__auto___18812); return statearr_18196; })();return cljs.core.async.impl.ioc_helpers.run_state_machine_wrapped.call(null,state__13953__auto__); });})(c__13951__auto___18812,out)) ); return out; }); take = function(n,ch,buf_or_n){ switch(arguments.length){ case 2: return take__2.call(this,n,ch); case 3: return take__3.call(this,n,ch,buf_or_n); } throw(new Error('Invalid arity: ' + arguments.length)); }; take.cljs$core$IFn$_invoke$arity$2 = take__2; take.cljs$core$IFn$_invoke$arity$3 = take__3; return take; })() ; /** * Returns a channel that will contain values from ch. Consecutive duplicate * values will be dropped. * * The output channel is unbuffered by default, unless buf-or-n is given. */ cljs.core.async.unique = (function() { var unique = null; var unique__1 = (function (ch){return unique.call(null,ch,null); }); var unique__2 = (function (ch,buf_or_n){var out = cljs.core.async.chan.call(null,buf_or_n);var c__13951__auto___18825 = cljs.core.async.chan.call(null,1);cljs.core.async.impl.dispatch.run.call(null,((function (c__13951__auto___18825,out){ return (function (){var f__13952__auto__ = (function (){var switch__13881__auto__ = ((function (c__13951__auto___18825,out){ return (function (state_18268){var state_val_18269 = (state_18268[1]);if((state_val_18269 === 1)) {var inst_18245 = null;var state_18268__$1 = (function (){var statearr_18270 = state_18268;(statearr_18270[7] = inst_18245); return statearr_18270; })();var statearr_18271_18826 = state_18268__$1;(statearr_18271_18826[2] = null); (statearr_18271_18826[1] = 2); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_18269 === 2)) {var state_18268__$1 = state_18268;return cljs.core.async.impl.ioc_helpers.take_BANG_.call(null,state_18268__$1,4,ch); } else {if((state_val_18269 === 3)) {var inst_18265 = (state_18268[2]);var inst_18266 = cljs.core.async.close_BANG_.call(null,out);var state_18268__$1 = (function (){var statearr_18272 = state_18268;(statearr_18272[8] = inst_18265); return statearr_18272; })();return cljs.core.async.impl.ioc_helpers.return_chan.call(null,state_18268__$1,inst_18266); } else {if((state_val_18269 === 4)) {var inst_18248 = (state_18268[9]);var inst_18248__$1 = (state_18268[2]);var inst_18249 = (inst_18248__$1 == null);var inst_18250 = cljs.core.not.call(null,inst_18249);var state_18268__$1 = (function (){var statearr_18273 = state_18268;(statearr_18273[9] = inst_18248__$1); return statearr_18273; })();if(inst_18250) {var statearr_18274_18827 = state_18268__$1;(statearr_18274_18827[1] = 5); } else {var statearr_18275_18828 = state_18268__$1;(statearr_18275_18828[1] = 6); } return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_18269 === 5)) {var inst_18248 = (state_18268[9]);var inst_18245 = (state_18268[7]);var inst_18252 = cljs.core._EQ_.call(null,inst_18248,inst_18245);var state_18268__$1 = state_18268;if(inst_18252) {var statearr_18276_18829 = state_18268__$1;(statearr_18276_18829[1] = 8); } else {var statearr_18277_18830 = state_18268__$1;(statearr_18277_18830[1] = 9); } return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_18269 === 6)) {var state_18268__$1 = state_18268;var statearr_18279_18831 = state_18268__$1;(statearr_18279_18831[2] = null); (statearr_18279_18831[1] = 7); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_18269 === 7)) {var inst_18263 = (state_18268[2]);var state_18268__$1 = state_18268;var statearr_18280_18832 = state_18268__$1;(statearr_18280_18832[2] = inst_18263); (statearr_18280_18832[1] = 3); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_18269 === 8)) {var inst_18245 = (state_18268[7]);var tmp18278 = inst_18245;var inst_18245__$1 = tmp18278;var state_18268__$1 = (function (){var statearr_18281 = state_18268;(statearr_18281[7] = inst_18245__$1); return statearr_18281; })();var statearr_18282_18833 = state_18268__$1;(statearr_18282_18833[2] = null); (statearr_18282_18833[1] = 2); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_18269 === 9)) {var inst_18248 = (state_18268[9]);var state_18268__$1 = state_18268;return cljs.core.async.impl.ioc_helpers.put_BANG_.call(null,state_18268__$1,11,out,inst_18248); } else {if((state_val_18269 === 10)) {var inst_18260 = (state_18268[2]);var state_18268__$1 = state_18268;var statearr_18283_18834 = state_18268__$1;(statearr_18283_18834[2] = inst_18260); (statearr_18283_18834[1] = 7); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_18269 === 11)) {var inst_18248 = (state_18268[9]);var inst_18257 = (state_18268[2]);var inst_18245 = inst_18248;var state_18268__$1 = (function (){var statearr_18284 = state_18268;(statearr_18284[7] = inst_18245); (statearr_18284[10] = inst_18257); return statearr_18284; })();var statearr_18285_18835 = state_18268__$1;(statearr_18285_18835[2] = null); (statearr_18285_18835[1] = 2); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {return null; } } } } } } } } } } } });})(c__13951__auto___18825,out)) ;return ((function (switch__13881__auto__,c__13951__auto___18825,out){ return (function() { var state_machine__13882__auto__ = null; var state_machine__13882__auto____0 = (function (){var statearr_18289 = [null,null,null,null,null,null,null,null,null,null,null];(statearr_18289[0] = state_machine__13882__auto__); (statearr_18289[1] = 1); return statearr_18289; }); var state_machine__13882__auto____1 = (function (state_18268){while(true){ var ret_value__13883__auto__ = (function (){try{while(true){ var result__13884__auto__ = switch__13881__auto__.call(null,state_18268);if(cljs.core.keyword_identical_QMARK_.call(null,result__13884__auto__,new cljs.core.Keyword(null,"recur","recur",1122293407))) {{ continue; } } else {return result__13884__auto__; } break; } }catch (e18290){if((e18290 instanceof Object)) {var ex__13885__auto__ = e18290;var statearr_18291_18836 = state_18268;(statearr_18291_18836[5] = ex__13885__auto__); cljs.core.async.impl.ioc_helpers.process_exception.call(null,state_18268); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if(new cljs.core.Keyword(null,"else","else",1017020587)) {throw e18290; } else {return null; } } }})();if(cljs.core.keyword_identical_QMARK_.call(null,ret_value__13883__auto__,new cljs.core.Keyword(null,"recur","recur",1122293407))) {{ var G__18837 = state_18268; state_18268 = G__18837; continue; } } else {return ret_value__13883__auto__; } break; } }); state_machine__13882__auto__ = function(state_18268){ switch(arguments.length){ case 0: return state_machine__13882__auto____0.call(this); case 1: return state_machine__13882__auto____1.call(this,state_18268); } throw(new Error('Invalid arity: ' + arguments.length)); }; state_machine__13882__auto__.cljs$core$IFn$_invoke$arity$0 = state_machine__13882__auto____0; state_machine__13882__auto__.cljs$core$IFn$_invoke$arity$1 = state_machine__13882__auto____1; return state_machine__13882__auto__; })() ;})(switch__13881__auto__,c__13951__auto___18825,out)) })();var state__13953__auto__ = (function (){var statearr_18292 = f__13952__auto__.call(null);(statearr_18292[cljs.core.async.impl.ioc_helpers.USER_START_IDX] = c__13951__auto___18825); return statearr_18292; })();return cljs.core.async.impl.ioc_helpers.run_state_machine_wrapped.call(null,state__13953__auto__); });})(c__13951__auto___18825,out)) ); return out; }); unique = function(ch,buf_or_n){ switch(arguments.length){ case 1: return unique__1.call(this,ch); case 2: return unique__2.call(this,ch,buf_or_n); } throw(new Error('Invalid arity: ' + arguments.length)); }; unique.cljs$core$IFn$_invoke$arity$1 = unique__1; unique.cljs$core$IFn$_invoke$arity$2 = unique__2; return unique; })() ; /** * Returns a channel that will contain vectors of n items taken from ch. The * final vector in the return channel may be smaller than n if ch closed before * the vector could be completely filled. * * The output channel is unbuffered by default, unless buf-or-n is given */ cljs.core.async.partition = (function() { var partition = null; var partition__2 = (function (n,ch){return partition.call(null,n,ch,null); }); var partition__3 = (function (n,ch,buf_or_n){var out = cljs.core.async.chan.call(null,buf_or_n);var c__13951__auto___18838 = cljs.core.async.chan.call(null,1);cljs.core.async.impl.dispatch.run.call(null,((function (c__13951__auto___18838,out){ return (function (){var f__13952__auto__ = (function (){var switch__13881__auto__ = ((function (c__13951__auto___18838,out){ return (function (state_18397){var state_val_18398 = (state_18397[1]);if((state_val_18398 === 1)) {var inst_18360 = (new Array(n));var inst_18361 = inst_18360;var inst_18362 = 0;var state_18397__$1 = (function (){var statearr_18399 = state_18397;(statearr_18399[7] = inst_18361); (statearr_18399[8] = inst_18362); return statearr_18399; })();var statearr_18400_18839 = state_18397__$1;(statearr_18400_18839[2] = null); (statearr_18400_18839[1] = 2); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_18398 === 2)) {var state_18397__$1 = state_18397;return cljs.core.async.impl.ioc_helpers.take_BANG_.call(null,state_18397__$1,4,ch); } else {if((state_val_18398 === 3)) {var inst_18395 = (state_18397[2]);var state_18397__$1 = state_18397;return cljs.core.async.impl.ioc_helpers.return_chan.call(null,state_18397__$1,inst_18395); } else {if((state_val_18398 === 4)) {var inst_18365 = (state_18397[9]);var inst_18365__$1 = (state_18397[2]);var inst_18366 = (inst_18365__$1 == null);var inst_18367 = cljs.core.not.call(null,inst_18366);var state_18397__$1 = (function (){var statearr_18401 = state_18397;(statearr_18401[9] = inst_18365__$1); return statearr_18401; })();if(inst_18367) {var statearr_18402_18840 = state_18397__$1;(statearr_18402_18840[1] = 5); } else {var statearr_18403_18841 = state_18397__$1;(statearr_18403_18841[1] = 6); } return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_18398 === 5)) {var inst_18365 = (state_18397[9]);var inst_18370 = (state_18397[10]);var inst_18361 = (state_18397[7]);var inst_18362 = (state_18397[8]);var inst_18369 = (inst_18361[inst_18362] = inst_18365);var inst_18370__$1 = (inst_18362 + 1);var inst_18371 = (inst_18370__$1 < n);var state_18397__$1 = (function (){var statearr_18404 = state_18397;(statearr_18404[11] = inst_18369); (statearr_18404[10] = inst_18370__$1); return statearr_18404; })();if(cljs.core.truth_(inst_18371)) {var statearr_18405_18842 = state_18397__$1;(statearr_18405_18842[1] = 8); } else {var statearr_18406_18843 = state_18397__$1;(statearr_18406_18843[1] = 9); } return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_18398 === 6)) {var inst_18362 = (state_18397[8]);var inst_18383 = (inst_18362 > 0);var state_18397__$1 = state_18397;if(cljs.core.truth_(inst_18383)) {var statearr_18408_18844 = state_18397__$1;(statearr_18408_18844[1] = 12); } else {var statearr_18409_18845 = state_18397__$1;(statearr_18409_18845[1] = 13); } return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_18398 === 7)) {var inst_18393 = (state_18397[2]);var state_18397__$1 = state_18397;var statearr_18410_18846 = state_18397__$1;(statearr_18410_18846[2] = inst_18393); (statearr_18410_18846[1] = 3); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_18398 === 8)) {var inst_18370 = (state_18397[10]);var inst_18361 = (state_18397[7]);var tmp18407 = inst_18361;var inst_18361__$1 = tmp18407;var inst_18362 = inst_18370;var state_18397__$1 = (function (){var statearr_18411 = state_18397;(statearr_18411[7] = inst_18361__$1); (statearr_18411[8] = inst_18362); return statearr_18411; })();var statearr_18412_18847 = state_18397__$1;(statearr_18412_18847[2] = null); (statearr_18412_18847[1] = 2); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_18398 === 9)) {var inst_18361 = (state_18397[7]);var inst_18375 = cljs.core.vec.call(null,inst_18361);var state_18397__$1 = state_18397;return cljs.core.async.impl.ioc_helpers.put_BANG_.call(null,state_18397__$1,11,out,inst_18375); } else {if((state_val_18398 === 10)) {var inst_18381 = (state_18397[2]);var state_18397__$1 = state_18397;var statearr_18413_18848 = state_18397__$1;(statearr_18413_18848[2] = inst_18381); (statearr_18413_18848[1] = 7); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_18398 === 11)) {var inst_18377 = (state_18397[2]);var inst_18378 = (new Array(n));var inst_18361 = inst_18378;var inst_18362 = 0;var state_18397__$1 = (function (){var statearr_18414 = state_18397;(statearr_18414[12] = inst_18377); (statearr_18414[7] = inst_18361); (statearr_18414[8] = inst_18362); return statearr_18414; })();var statearr_18415_18849 = state_18397__$1;(statearr_18415_18849[2] = null); (statearr_18415_18849[1] = 2); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_18398 === 12)) {var inst_18361 = (state_18397[7]);var inst_18385 = cljs.core.vec.call(null,inst_18361);var state_18397__$1 = state_18397;return cljs.core.async.impl.ioc_helpers.put_BANG_.call(null,state_18397__$1,15,out,inst_18385); } else {if((state_val_18398 === 13)) {var state_18397__$1 = state_18397;var statearr_18416_18850 = state_18397__$1;(statearr_18416_18850[2] = null); (statearr_18416_18850[1] = 14); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_18398 === 14)) {var inst_18390 = (state_18397[2]);var inst_18391 = cljs.core.async.close_BANG_.call(null,out);var state_18397__$1 = (function (){var statearr_18417 = state_18397;(statearr_18417[13] = inst_18390); return statearr_18417; })();var statearr_18418_18851 = state_18397__$1;(statearr_18418_18851[2] = inst_18391); (statearr_18418_18851[1] = 7); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_18398 === 15)) {var inst_18387 = (state_18397[2]);var state_18397__$1 = state_18397;var statearr_18419_18852 = state_18397__$1;(statearr_18419_18852[2] = inst_18387); (statearr_18419_18852[1] = 14); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {return null; } } } } } } } } } } } } } } } });})(c__13951__auto___18838,out)) ;return ((function (switch__13881__auto__,c__13951__auto___18838,out){ return (function() { var state_machine__13882__auto__ = null; var state_machine__13882__auto____0 = (function (){var statearr_18423 = [null,null,null,null,null,null,null,null,null,null,null,null,null,null];(statearr_18423[0] = state_machine__13882__auto__); (statearr_18423[1] = 1); return statearr_18423; }); var state_machine__13882__auto____1 = (function (state_18397){while(true){ var ret_value__13883__auto__ = (function (){try{while(true){ var result__13884__auto__ = switch__13881__auto__.call(null,state_18397);if(cljs.core.keyword_identical_QMARK_.call(null,result__13884__auto__,new cljs.core.Keyword(null,"recur","recur",1122293407))) {{ continue; } } else {return result__13884__auto__; } break; } }catch (e18424){if((e18424 instanceof Object)) {var ex__13885__auto__ = e18424;var statearr_18425_18853 = state_18397;(statearr_18425_18853[5] = ex__13885__auto__); cljs.core.async.impl.ioc_helpers.process_exception.call(null,state_18397); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if(new cljs.core.Keyword(null,"else","else",1017020587)) {throw e18424; } else {return null; } } }})();if(cljs.core.keyword_identical_QMARK_.call(null,ret_value__13883__auto__,new cljs.core.Keyword(null,"recur","recur",1122293407))) {{ var G__18854 = state_18397; state_18397 = G__18854; continue; } } else {return ret_value__13883__auto__; } break; } }); state_machine__13882__auto__ = function(state_18397){ switch(arguments.length){ case 0: return state_machine__13882__auto____0.call(this); case 1: return state_machine__13882__auto____1.call(this,state_18397); } throw(new Error('Invalid arity: ' + arguments.length)); }; state_machine__13882__auto__.cljs$core$IFn$_invoke$arity$0 = state_machine__13882__auto____0; state_machine__13882__auto__.cljs$core$IFn$_invoke$arity$1 = state_machine__13882__auto____1; return state_machine__13882__auto__; })() ;})(switch__13881__auto__,c__13951__auto___18838,out)) })();var state__13953__auto__ = (function (){var statearr_18426 = f__13952__auto__.call(null);(statearr_18426[cljs.core.async.impl.ioc_helpers.USER_START_IDX] = c__13951__auto___18838); return statearr_18426; })();return cljs.core.async.impl.ioc_helpers.run_state_machine_wrapped.call(null,state__13953__auto__); });})(c__13951__auto___18838,out)) ); return out; }); partition = function(n,ch,buf_or_n){ switch(arguments.length){ case 2: return partition__2.call(this,n,ch); case 3: return partition__3.call(this,n,ch,buf_or_n); } throw(new Error('Invalid arity: ' + arguments.length)); }; partition.cljs$core$IFn$_invoke$arity$2 = partition__2; partition.cljs$core$IFn$_invoke$arity$3 = partition__3; return partition; })() ; /** * Returns a channel that will contain vectors of items taken from ch. New * vectors will be created whenever (f itm) returns a value that differs from * the previous item's (f itm). * * The output channel is unbuffered, unless buf-or-n is given */ cljs.core.async.partition_by = (function() { var partition_by = null; var partition_by__2 = (function (f,ch){return partition_by.call(null,f,ch,null); }); var partition_by__3 = (function (f,ch,buf_or_n){var out = cljs.core.async.chan.call(null,buf_or_n);var c__13951__auto___18855 = cljs.core.async.chan.call(null,1);cljs.core.async.impl.dispatch.run.call(null,((function (c__13951__auto___18855,out){ return (function (){var f__13952__auto__ = (function (){var switch__13881__auto__ = ((function (c__13951__auto___18855,out){ return (function (state_18539){var state_val_18540 = (state_18539[1]);if((state_val_18540 === 1)) {var inst_18498 = [];var inst_18499 = inst_18498;var inst_18500 = new cljs.core.Keyword("cljs.core.async","nothing","cljs.core.async/nothing",4382193538);var state_18539__$1 = (function (){var statearr_18541 = state_18539;(statearr_18541[7] = inst_18499); (statearr_18541[8] = inst_18500); return statearr_18541; })();var statearr_18542_18856 = state_18539__$1;(statearr_18542_18856[2] = null); (statearr_18542_18856[1] = 2); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_18540 === 2)) {var state_18539__$1 = state_18539;return cljs.core.async.impl.ioc_helpers.take_BANG_.call(null,state_18539__$1,4,ch); } else {if((state_val_18540 === 3)) {var inst_18537 = (state_18539[2]);var state_18539__$1 = state_18539;return cljs.core.async.impl.ioc_helpers.return_chan.call(null,state_18539__$1,inst_18537); } else {if((state_val_18540 === 4)) {var inst_18503 = (state_18539[9]);var inst_18503__$1 = (state_18539[2]);var inst_18504 = (inst_18503__$1 == null);var inst_18505 = cljs.core.not.call(null,inst_18504);var state_18539__$1 = (function (){var statearr_18543 = state_18539;(statearr_18543[9] = inst_18503__$1); return statearr_18543; })();if(inst_18505) {var statearr_18544_18857 = state_18539__$1;(statearr_18544_18857[1] = 5); } else {var statearr_18545_18858 = state_18539__$1;(statearr_18545_18858[1] = 6); } return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_18540 === 5)) {var inst_18500 = (state_18539[8]);var inst_18507 = (state_18539[10]);var inst_18503 = (state_18539[9]);var inst_18507__$1 = f.call(null,inst_18503);var inst_18508 = cljs.core._EQ_.call(null,inst_18507__$1,inst_18500);var inst_18509 = cljs.core.keyword_identical_QMARK_.call(null,inst_18500,new cljs.core.Keyword("cljs.core.async","nothing","cljs.core.async/nothing",4382193538));var inst_18510 = (inst_18508) || (inst_18509);var state_18539__$1 = (function (){var statearr_18546 = state_18539;(statearr_18546[10] = inst_18507__$1); return statearr_18546; })();if(cljs.core.truth_(inst_18510)) {var statearr_18547_18859 = state_18539__$1;(statearr_18547_18859[1] = 8); } else {var statearr_18548_18860 = state_18539__$1;(statearr_18548_18860[1] = 9); } return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_18540 === 6)) {var inst_18499 = (state_18539[7]);var inst_18524 = inst_18499.length;var inst_18525 = (inst_18524 > 0);var state_18539__$1 = state_18539;if(cljs.core.truth_(inst_18525)) {var statearr_18550_18861 = state_18539__$1;(statearr_18550_18861[1] = 12); } else {var statearr_18551_18862 = state_18539__$1;(statearr_18551_18862[1] = 13); } return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_18540 === 7)) {var inst_18535 = (state_18539[2]);var state_18539__$1 = state_18539;var statearr_18552_18863 = state_18539__$1;(statearr_18552_18863[2] = inst_18535); (statearr_18552_18863[1] = 3); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_18540 === 8)) {var inst_18499 = (state_18539[7]);var inst_18507 = (state_18539[10]);var inst_18503 = (state_18539[9]);var inst_18512 = inst_18499.push(inst_18503);var tmp18549 = inst_18499;var inst_18499__$1 = tmp18549;var inst_18500 = inst_18507;var state_18539__$1 = (function (){var statearr_18553 = state_18539;(statearr_18553[7] = inst_18499__$1); (statearr_18553[8] = inst_18500); (statearr_18553[11] = inst_18512); return statearr_18553; })();var statearr_18554_18864 = state_18539__$1;(statearr_18554_18864[2] = null); (statearr_18554_18864[1] = 2); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_18540 === 9)) {var inst_18499 = (state_18539[7]);var inst_18515 = cljs.core.vec.call(null,inst_18499);var state_18539__$1 = state_18539;return cljs.core.async.impl.ioc_helpers.put_BANG_.call(null,state_18539__$1,11,out,inst_18515); } else {if((state_val_18540 === 10)) {var inst_18522 = (state_18539[2]);var state_18539__$1 = state_18539;var statearr_18555_18865 = state_18539__$1;(statearr_18555_18865[2] = inst_18522); (statearr_18555_18865[1] = 7); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_18540 === 11)) {var inst_18507 = (state_18539[10]);var inst_18503 = (state_18539[9]);var inst_18517 = (state_18539[2]);var inst_18518 = [];var inst_18519 = inst_18518.push(inst_18503);var inst_18499 = inst_18518;var inst_18500 = inst_18507;var state_18539__$1 = (function (){var statearr_18556 = state_18539;(statearr_18556[7] = inst_18499); (statearr_18556[12] = inst_18519); (statearr_18556[8] = inst_18500); (statearr_18556[13] = inst_18517); return statearr_18556; })();var statearr_18557_18866 = state_18539__$1;(statearr_18557_18866[2] = null); (statearr_18557_18866[1] = 2); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_18540 === 12)) {var inst_18499 = (state_18539[7]);var inst_18527 = cljs.core.vec.call(null,inst_18499);var state_18539__$1 = state_18539;return cljs.core.async.impl.ioc_helpers.put_BANG_.call(null,state_18539__$1,15,out,inst_18527); } else {if((state_val_18540 === 13)) {var state_18539__$1 = state_18539;var statearr_18558_18867 = state_18539__$1;(statearr_18558_18867[2] = null); (statearr_18558_18867[1] = 14); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_18540 === 14)) {var inst_18532 = (state_18539[2]);var inst_18533 = cljs.core.async.close_BANG_.call(null,out);var state_18539__$1 = (function (){var statearr_18559 = state_18539;(statearr_18559[14] = inst_18532); return statearr_18559; })();var statearr_18560_18868 = state_18539__$1;(statearr_18560_18868[2] = inst_18533); (statearr_18560_18868[1] = 7); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_18540 === 15)) {var inst_18529 = (state_18539[2]);var state_18539__$1 = state_18539;var statearr_18561_18869 = state_18539__$1;(statearr_18561_18869[2] = inst_18529); (statearr_18561_18869[1] = 14); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {return null; } } } } } } } } } } } } } } } });})(c__13951__auto___18855,out)) ;return ((function (switch__13881__auto__,c__13951__auto___18855,out){ return (function() { var state_machine__13882__auto__ = null; var state_machine__13882__auto____0 = (function (){var statearr_18565 = [null,null,null,null,null,null,null,null,null,null,null,null,null,null,null];(statearr_18565[0] = state_machine__13882__auto__); (statearr_18565[1] = 1); return statearr_18565; }); var state_machine__13882__auto____1 = (function (state_18539){while(true){ var ret_value__13883__auto__ = (function (){try{while(true){ var result__13884__auto__ = switch__13881__auto__.call(null,state_18539);if(cljs.core.keyword_identical_QMARK_.call(null,result__13884__auto__,new cljs.core.Keyword(null,"recur","recur",1122293407))) {{ continue; } } else {return result__13884__auto__; } break; } }catch (e18566){if((e18566 instanceof Object)) {var ex__13885__auto__ = e18566;var statearr_18567_18870 = state_18539;(statearr_18567_18870[5] = ex__13885__auto__); cljs.core.async.impl.ioc_helpers.process_exception.call(null,state_18539); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if(new cljs.core.Keyword(null,"else","else",1017020587)) {throw e18566; } else {return null; } } }})();if(cljs.core.keyword_identical_QMARK_.call(null,ret_value__13883__auto__,new cljs.core.Keyword(null,"recur","recur",1122293407))) {{ var G__18871 = state_18539; state_18539 = G__18871; continue; } } else {return ret_value__13883__auto__; } break; } }); state_machine__13882__auto__ = function(state_18539){ switch(arguments.length){ case 0: return state_machine__13882__auto____0.call(this); case 1: return state_machine__13882__auto____1.call(this,state_18539); } throw(new Error('Invalid arity: ' + arguments.length)); }; state_machine__13882__auto__.cljs$core$IFn$_invoke$arity$0 = state_machine__13882__auto____0; state_machine__13882__auto__.cljs$core$IFn$_invoke$arity$1 = state_machine__13882__auto____1; return state_machine__13882__auto__; })() ;})(switch__13881__auto__,c__13951__auto___18855,out)) })();var state__13953__auto__ = (function (){var statearr_18568 = f__13952__auto__.call(null);(statearr_18568[cljs.core.async.impl.ioc_helpers.USER_START_IDX] = c__13951__auto___18855); return statearr_18568; })();return cljs.core.async.impl.ioc_helpers.run_state_machine_wrapped.call(null,state__13953__auto__); });})(c__13951__auto___18855,out)) ); return out; }); partition_by = function(f,ch,buf_or_n){ switch(arguments.length){ case 2: return partition_by__2.call(this,f,ch); case 3: return partition_by__3.call(this,f,ch,buf_or_n); } throw(new Error('Invalid arity: ' + arguments.length)); }; partition_by.cljs$core$IFn$_invoke$arity$2 = partition_by__2; partition_by.cljs$core$IFn$_invoke$arity$3 = partition_by__3; return partition_by; })() ; } if(!lt.util.load.provided_QMARK_('quiescent')) { goog.provide('quiescent'); goog.require('cljs.core'); /** * Utility function. Takes an object which is (possibly) a * ClojureScript map. If the value is a ClojureScript map, convert it * to a JavaScript properties object. Otherwise, return the argument * unchanged. */ quiescent.js_props = (function js_props(obj){if(cljs.core.map_QMARK_.call(null,obj)) {var o = (function (){var obj12085 = {};return obj12085; })();var seq__12086_12099 = cljs.core.seq.call(null,obj);var chunk__12087_12100 = null;var count__12088_12101 = 0;var i__12089_12102 = 0;while(true){ if((i__12089_12102 < count__12088_12101)) {var vec__12090_12103 = cljs.core._nth.call(null,chunk__12087_12100,i__12089_12102);var k_12104 = cljs.core.nth.call(null,vec__12090_12103,0,null);var v_12105 = cljs.core.nth.call(null,vec__12090_12103,1,null);(o[cljs.core.name.call(null,k_12104)] = js_props.call(null,v_12105)); { var G__12106 = seq__12086_12099; var G__12107 = chunk__12087_12100; var G__12108 = count__12088_12101; var G__12109 = (i__12089_12102 + 1); seq__12086_12099 = G__12106; chunk__12087_12100 = G__12107; count__12088_12101 = G__12108; i__12089_12102 = G__12109; continue; } } else {var temp__4092__auto___12110 = cljs.core.seq.call(null,seq__12086_12099);if(temp__4092__auto___12110) {var seq__12086_12111__$1 = temp__4092__auto___12110;if(cljs.core.chunked_seq_QMARK_.call(null,seq__12086_12111__$1)) {var c__5632__auto___12112 = cljs.core.chunk_first.call(null,seq__12086_12111__$1);{ var G__12113 = cljs.core.chunk_rest.call(null,seq__12086_12111__$1); var G__12114 = c__5632__auto___12112; var G__12115 = cljs.core.count.call(null,c__5632__auto___12112); var G__12116 = 0; seq__12086_12099 = G__12113; chunk__12087_12100 = G__12114; count__12088_12101 = G__12115; i__12089_12102 = G__12116; continue; } } else {var vec__12091_12117 = cljs.core.first.call(null,seq__12086_12111__$1);var k_12118 = cljs.core.nth.call(null,vec__12091_12117,0,null);var v_12119 = cljs.core.nth.call(null,vec__12091_12117,1,null);(o[cljs.core.name.call(null,k_12118)] = js_props.call(null,v_12119)); { var G__12120 = cljs.core.next.call(null,seq__12086_12111__$1); var G__12121 = null; var G__12122 = 0; var G__12123 = 0; seq__12086_12099 = G__12120; chunk__12087_12100 = G__12121; count__12088_12101 = G__12122; i__12089_12102 = G__12123; continue; } } } else {} } break; } return o; } else {return obj; } }); /** * Within a component render function, will be bound to the raw * ReactJS component. */ quiescent._STAR_component_STAR_ = null; /** * Return a function that will return a ReactJS component, using the * provided function as the implementation for React's 'render' method * on the component. * * The given render function should take a single immutable value as * its first argument, and return a single ReactJS component. * Additional arguments to the component constructor will be passed as * additional arguments to the render function whenever it is invoked, * but will *not* be included in any calculations regarding whether the * component should re-render. */ quiescent.component = (function component(renderer){var react_component = React.createClass({"render": (function (){var this$ = this;var _STAR_component_STAR_12093 = quiescent._STAR_component_STAR_;try{quiescent._STAR_component_STAR_ = this$; return cljs.core.apply.call(null,renderer,(this$.props["value"]),(this$.props["statics"])); }finally {quiescent._STAR_component_STAR_ = _STAR_component_STAR_12093; }}), "shouldComponentUpdate": (function (next_props,_){var this$ = this;return cljs.core.not_EQ_.call(null,(this$.props["value"]),(next_props["value"])); })});return ((function (react_component){ return (function() { var G__12124__delegate = function (value,static_args){return react_component.call(null,{"statics": static_args, "value": value}); }; var G__12124 = function (value,var_args){ var static_args = null;if (arguments.length > 1) { static_args = cljs.core.array_seq(Array.prototype.slice.call(arguments, 1),0);} return G__12124__delegate.call(this,value,static_args);}; G__12124.cljs$lang$maxFixedArity = 1; G__12124.cljs$lang$applyTo = (function (arglist__12125){ var value = cljs.core.first(arglist__12125); var static_args = cljs.core.rest(arglist__12125); return G__12124__delegate(value,static_args); }); G__12124.cljs$core$IFn$_invoke$arity$variadic = G__12124__delegate; return G__12124; })() ; ;})(react_component)) }); /** * Wrapper component used to mix-in lifecycle access */ quiescent.WrapperComponent = React.createClass({"componentWillUnmount": (function (){var this$ = this;var temp__4092__auto__ = (this$.props["onWillUnmount"]);if(cljs.core.truth_(temp__4092__auto__)) {var f = temp__4092__auto__;var _STAR_component_STAR_12098 = quiescent._STAR_component_STAR_;try{quiescent._STAR_component_STAR_ = this$; return f.call(null); }finally {quiescent._STAR_component_STAR_ = _STAR_component_STAR_12098; }} else {return null; } }), "componentWillUpdate": (function (_,___$1){var this$ = this;var temp__4092__auto__ = (this$.props["onWillUpdate"]);if(cljs.core.truth_(temp__4092__auto__)) {var f = temp__4092__auto__;var _STAR_component_STAR_12097 = quiescent._STAR_component_STAR_;try{quiescent._STAR_component_STAR_ = this$; return f.call(null); }finally {quiescent._STAR_component_STAR_ = _STAR_component_STAR_12097; }} else {return null; } }), "componentWillMount": (function (){var this$ = this;var temp__4092__auto__ = (this$.props["onWillMount"]);if(cljs.core.truth_(temp__4092__auto__)) {var f = temp__4092__auto__;var _STAR_component_STAR_12096 = quiescent._STAR_component_STAR_;try{quiescent._STAR_component_STAR_ = this$; return f.call(null); }finally {quiescent._STAR_component_STAR_ = _STAR_component_STAR_12096; }} else {return null; } }), "componentDidMount": (function (){var this$ = this;var temp__4092__auto__ = (this$.props["onMount"]);if(cljs.core.truth_(temp__4092__auto__)) {var f = temp__4092__auto__;var _STAR_component_STAR_12095 = quiescent._STAR_component_STAR_;try{quiescent._STAR_component_STAR_ = this$; return f.call(null,this$.getDOMNode()); }finally {quiescent._STAR_component_STAR_ = _STAR_component_STAR_12095; }} else {return null; } }), "componentDidUpdate": (function (prev_props,prev_state){var this$ = this;var temp__4092__auto__ = (this$.props["onUpdate"]);if(cljs.core.truth_(temp__4092__auto__)) {var f = temp__4092__auto__;var _STAR_component_STAR_12094 = quiescent._STAR_component_STAR_;try{quiescent._STAR_component_STAR_ = this$; return f.call(null,this$.getDOMNode()); }finally {quiescent._STAR_component_STAR_ = _STAR_component_STAR_12094; }} else {return null; } }), "render": (function (){var this$ = this;return (this$.props["wrappee"]); })}); /** * Create a wrapper function for a compoment implementing multiple * lifecycle functions. Lifecycle functions are specified as any number * of additional key-value pairs passed as arguments to this function. * * Valid keys and values include: * * :onUpdate - will call the provided function, * passing the rendered DOM node as a single arg * :onMount - will call the provided function, * passing the rendered DOM node as a single arg * :onWillUpdate - will call the provided function with no arguments * :onWillMount - will call the provided function with no arguments * :onWillUnmount - will call the provided function with no arguments * @param {...*} var_args */ quiescent.wrapper = (function() { var wrapper__delegate = function (child,kvs){var props = quiescent.js_props.call(null,cljs.core.apply.call(null,cljs.core.array_map,new cljs.core.Keyword(null,"wrappee","wrappee",2609412088),child,kvs));var temp__4092__auto___12126 = (child.props["key"]);if(cljs.core.truth_(temp__4092__auto___12126)) {var key_12127 = temp__4092__auto___12126;(props["key"] = key_12127); } else {} return quiescent.WrapperComponent.call(null,props); }; var wrapper = function (child,var_args){ var kvs = null;if (arguments.length > 1) { kvs = cljs.core.array_seq(Array.prototype.slice.call(arguments, 1),0);} return wrapper__delegate.call(this,child,kvs);}; wrapper.cljs$lang$maxFixedArity = 1; wrapper.cljs$lang$applyTo = (function (arglist__12128){ var child = cljs.core.first(arglist__12128); var kvs = cljs.core.rest(arglist__12128); return wrapper__delegate(child,kvs); }); wrapper.cljs$core$IFn$_invoke$arity$variadic = wrapper__delegate; return wrapper; })() ; /** * Wrap a component, specifying a function to be called on the * componentDidUpdate lifecycle event. * * The function will be passed the rendered DOM node. */ quiescent.on_update = (function on_update(child,f){return quiescent.wrapper.call(null,child,new cljs.core.Keyword(null,"onUpdate","onUpdate",2573468410),f); }); /** * Wrap a component, specifying a function to be called on the * componentDidMount lifecycle event. * * The function will be passed the rendered DOM node. */ quiescent.on_mount = (function on_mount(child,f){return quiescent.wrapper.call(null,child,new cljs.core.Keyword(null,"onMount","onMount",3966305516),f); }); /** * Wrap a component, specifying a function to be called on the * componentDidMount AND the componentDidUpdate lifecycle events. * * The function will be passed the rendered DOM node. */ quiescent.on_render = (function on_render(child,f){return quiescent.wrapper.call(null,child,new cljs.core.Keyword(null,"onMount","onMount",3966305516),f,new cljs.core.Keyword(null,"onUpdate","onUpdate",2573468410),f); }); /** * Wrap a component, specifying a function to be called on the * componentWillMount lifecycle event. * * The function will be called with no arguments. */ quiescent.on_will_mount = (function on_will_mount(child,f){return quiescent.wrapper.call(null,child,new cljs.core.Keyword(null,"onWillMount","onWillMount",3483492282),f); }); /** * Wrap a component, specifying a function to be called on the * componentWillUpdate lifecycle event. * * The function will be called with no arguments. */ quiescent.on_will_update = (function on_will_update(child,f){return quiescent.wrapper.call(null,child,new cljs.core.Keyword(null,"onWillUpdate","onWillUpdate",4786127340),f); }); /** * Wrap a component, specifying a function to be called on the * componentWillMount AND the componentWillUpdate lifecycle events. * * The function will be called with no arguments. */ quiescent.on_will_render = (function on_will_render(child,f){return quiescent.wrapper.call(null,child,new cljs.core.Keyword(null,"onWillMount","onWillMount",3483492282),f,new cljs.core.Keyword(null,"onWillUpdate","onWillUpdate",4786127340),f); }); /** * Wrap a component, specifying a function to be called on the * componentWillUnmount lifecycle event. * * The function will be called with no arguments. */ quiescent.on_will_unmount = (function on_will_unmount(child,f){return quiescent.wrapper.call(null,child,new cljs.core.Keyword(null,"onWillUnmount","onWillUnmount",1940175105),f); }); /** * Given a ReactJS component, immediately render it, rooted to the * specified DOM node. */ quiescent.render = (function render(component,node){return React.renderComponent(component,node); }); } if(!lt.util.load.provided_QMARK_('quiescent.dom')) { goog.provide('quiescent.dom'); goog.require('cljs.core'); goog.require('quiescent'); goog.require('quiescent'); /** * @param {...*} var_args */ quiescent.dom.a = (function() { var a__delegate = function (args__7508__auto__){var a__7509__auto__ = [];a__7509__auto__.push(quiescent.js_props.call(null,cljs.core.first.call(null,args__7508__auto__))); var seq__8510_9458 = cljs.core.seq.call(null,cljs.core.rest.call(null,args__7508__auto__));var chunk__8511_9459 = null;var count__8512_9460 = 0;var i__8513_9461 = 0;while(true){ if((i__8513_9461 < count__8512_9460)) {var arg__7510__auto___9462 = cljs.core._nth.call(null,chunk__8511_9459,i__8513_9461);a__7509__auto__.push(arg__7510__auto___9462); { var G__9463 = seq__8510_9458; var G__9464 = chunk__8511_9459; var G__9465 = count__8512_9460; var G__9466 = (i__8513_9461 + 1); seq__8510_9458 = G__9463; chunk__8511_9459 = G__9464; count__8512_9460 = G__9465; i__8513_9461 = G__9466; continue; } } else {var temp__4092__auto___9467 = cljs.core.seq.call(null,seq__8510_9458);if(temp__4092__auto___9467) {var seq__8510_9468__$1 = temp__4092__auto___9467;if(cljs.core.chunked_seq_QMARK_.call(null,seq__8510_9468__$1)) {var c__5632__auto___9469 = cljs.core.chunk_first.call(null,seq__8510_9468__$1);{ var G__9470 = cljs.core.chunk_rest.call(null,seq__8510_9468__$1); var G__9471 = c__5632__auto___9469; var G__9472 = cljs.core.count.call(null,c__5632__auto___9469); var G__9473 = 0; seq__8510_9458 = G__9470; chunk__8511_9459 = G__9471; count__8512_9460 = G__9472; i__8513_9461 = G__9473; continue; } } else {var arg__7510__auto___9474 = cljs.core.first.call(null,seq__8510_9468__$1);a__7509__auto__.push(arg__7510__auto___9474); { var G__9475 = cljs.core.next.call(null,seq__8510_9468__$1); var G__9476 = null; var G__9477 = 0; var G__9478 = 0; seq__8510_9458 = G__9475; chunk__8511_9459 = G__9476; count__8512_9460 = G__9477; i__8513_9461 = G__9478; continue; } } } else {} } break; } return React.DOM.a.apply(null,a__7509__auto__); }; var a = function (var_args){ var args__7508__auto__ = null;if (arguments.length > 0) { args__7508__auto__ = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0),0);} return a__delegate.call(this,args__7508__auto__);}; a.cljs$lang$maxFixedArity = 0; a.cljs$lang$applyTo = (function (arglist__9479){ var args__7508__auto__ = cljs.core.seq(arglist__9479); return a__delegate(args__7508__auto__); }); a.cljs$core$IFn$_invoke$arity$variadic = a__delegate; return a; })() ; /** * @param {...*} var_args */ quiescent.dom.abbr = (function() { var abbr__delegate = function (args__7508__auto__){var a__7509__auto__ = [];a__7509__auto__.push(quiescent.js_props.call(null,cljs.core.first.call(null,args__7508__auto__))); var seq__8518_9480 = cljs.core.seq.call(null,cljs.core.rest.call(null,args__7508__auto__));var chunk__8519_9481 = null;var count__8520_9482 = 0;var i__8521_9483 = 0;while(true){ if((i__8521_9483 < count__8520_9482)) {var arg__7510__auto___9484 = cljs.core._nth.call(null,chunk__8519_9481,i__8521_9483);a__7509__auto__.push(arg__7510__auto___9484); { var G__9485 = seq__8518_9480; var G__9486 = chunk__8519_9481; var G__9487 = count__8520_9482; var G__9488 = (i__8521_9483 + 1); seq__8518_9480 = G__9485; chunk__8519_9481 = G__9486; count__8520_9482 = G__9487; i__8521_9483 = G__9488; continue; } } else {var temp__4092__auto___9489 = cljs.core.seq.call(null,seq__8518_9480);if(temp__4092__auto___9489) {var seq__8518_9490__$1 = temp__4092__auto___9489;if(cljs.core.chunked_seq_QMARK_.call(null,seq__8518_9490__$1)) {var c__5632__auto___9491 = cljs.core.chunk_first.call(null,seq__8518_9490__$1);{ var G__9492 = cljs.core.chunk_rest.call(null,seq__8518_9490__$1); var G__9493 = c__5632__auto___9491; var G__9494 = cljs.core.count.call(null,c__5632__auto___9491); var G__9495 = 0; seq__8518_9480 = G__9492; chunk__8519_9481 = G__9493; count__8520_9482 = G__9494; i__8521_9483 = G__9495; continue; } } else {var arg__7510__auto___9496 = cljs.core.first.call(null,seq__8518_9490__$1);a__7509__auto__.push(arg__7510__auto___9496); { var G__9497 = cljs.core.next.call(null,seq__8518_9490__$1); var G__9498 = null; var G__9499 = 0; var G__9500 = 0; seq__8518_9480 = G__9497; chunk__8519_9481 = G__9498; count__8520_9482 = G__9499; i__8521_9483 = G__9500; continue; } } } else {} } break; } return React.DOM.abbr.apply(null,a__7509__auto__); }; var abbr = function (var_args){ var args__7508__auto__ = null;if (arguments.length > 0) { args__7508__auto__ = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0),0);} return abbr__delegate.call(this,args__7508__auto__);}; abbr.cljs$lang$maxFixedArity = 0; abbr.cljs$lang$applyTo = (function (arglist__9501){ var args__7508__auto__ = cljs.core.seq(arglist__9501); return abbr__delegate(args__7508__auto__); }); abbr.cljs$core$IFn$_invoke$arity$variadic = abbr__delegate; return abbr; })() ; /** * @param {...*} var_args */ quiescent.dom.address = (function() { var address__delegate = function (args__7508__auto__){var a__7509__auto__ = [];a__7509__auto__.push(quiescent.js_props.call(null,cljs.core.first.call(null,args__7508__auto__))); var seq__8526_9502 = cljs.core.seq.call(null,cljs.core.rest.call(null,args__7508__auto__));var chunk__8527_9503 = null;var count__8528_9504 = 0;var i__8529_9505 = 0;while(true){ if((i__8529_9505 < count__8528_9504)) {var arg__7510__auto___9506 = cljs.core._nth.call(null,chunk__8527_9503,i__8529_9505);a__7509__auto__.push(arg__7510__auto___9506); { var G__9507 = seq__8526_9502; var G__9508 = chunk__8527_9503; var G__9509 = count__8528_9504; var G__9510 = (i__8529_9505 + 1); seq__8526_9502 = G__9507; chunk__8527_9503 = G__9508; count__8528_9504 = G__9509; i__8529_9505 = G__9510; continue; } } else {var temp__4092__auto___9511 = cljs.core.seq.call(null,seq__8526_9502);if(temp__4092__auto___9511) {var seq__8526_9512__$1 = temp__4092__auto___9511;if(cljs.core.chunked_seq_QMARK_.call(null,seq__8526_9512__$1)) {var c__5632__auto___9513 = cljs.core.chunk_first.call(null,seq__8526_9512__$1);{ var G__9514 = cljs.core.chunk_rest.call(null,seq__8526_9512__$1); var G__9515 = c__5632__auto___9513; var G__9516 = cljs.core.count.call(null,c__5632__auto___9513); var G__9517 = 0; seq__8526_9502 = G__9514; chunk__8527_9503 = G__9515; count__8528_9504 = G__9516; i__8529_9505 = G__9517; continue; } } else {var arg__7510__auto___9518 = cljs.core.first.call(null,seq__8526_9512__$1);a__7509__auto__.push(arg__7510__auto___9518); { var G__9519 = cljs.core.next.call(null,seq__8526_9512__$1); var G__9520 = null; var G__9521 = 0; var G__9522 = 0; seq__8526_9502 = G__9519; chunk__8527_9503 = G__9520; count__8528_9504 = G__9521; i__8529_9505 = G__9522; continue; } } } else {} } break; } return React.DOM.address.apply(null,a__7509__auto__); }; var address = function (var_args){ var args__7508__auto__ = null;if (arguments.length > 0) { args__7508__auto__ = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0),0);} return address__delegate.call(this,args__7508__auto__);}; address.cljs$lang$maxFixedArity = 0; address.cljs$lang$applyTo = (function (arglist__9523){ var args__7508__auto__ = cljs.core.seq(arglist__9523); return address__delegate(args__7508__auto__); }); address.cljs$core$IFn$_invoke$arity$variadic = address__delegate; return address; })() ; /** * @param {...*} var_args */ quiescent.dom.area = (function() { var area__delegate = function (args__7508__auto__){var a__7509__auto__ = [];a__7509__auto__.push(quiescent.js_props.call(null,cljs.core.first.call(null,args__7508__auto__))); var seq__8534_9524 = cljs.core.seq.call(null,cljs.core.rest.call(null,args__7508__auto__));var chunk__8535_9525 = null;var count__8536_9526 = 0;var i__8537_9527 = 0;while(true){ if((i__8537_9527 < count__8536_9526)) {var arg__7510__auto___9528 = cljs.core._nth.call(null,chunk__8535_9525,i__8537_9527);a__7509__auto__.push(arg__7510__auto___9528); { var G__9529 = seq__8534_9524; var G__9530 = chunk__8535_9525; var G__9531 = count__8536_9526; var G__9532 = (i__8537_9527 + 1); seq__8534_9524 = G__9529; chunk__8535_9525 = G__9530; count__8536_9526 = G__9531; i__8537_9527 = G__9532; continue; } } else {var temp__4092__auto___9533 = cljs.core.seq.call(null,seq__8534_9524);if(temp__4092__auto___9533) {var seq__8534_9534__$1 = temp__4092__auto___9533;if(cljs.core.chunked_seq_QMARK_.call(null,seq__8534_9534__$1)) {var c__5632__auto___9535 = cljs.core.chunk_first.call(null,seq__8534_9534__$1);{ var G__9536 = cljs.core.chunk_rest.call(null,seq__8534_9534__$1); var G__9537 = c__5632__auto___9535; var G__9538 = cljs.core.count.call(null,c__5632__auto___9535); var G__9539 = 0; seq__8534_9524 = G__9536; chunk__8535_9525 = G__9537; count__8536_9526 = G__9538; i__8537_9527 = G__9539; continue; } } else {var arg__7510__auto___9540 = cljs.core.first.call(null,seq__8534_9534__$1);a__7509__auto__.push(arg__7510__auto___9540); { var G__9541 = cljs.core.next.call(null,seq__8534_9534__$1); var G__9542 = null; var G__9543 = 0; var G__9544 = 0; seq__8534_9524 = G__9541; chunk__8535_9525 = G__9542; count__8536_9526 = G__9543; i__8537_9527 = G__9544; continue; } } } else {} } break; } return React.DOM.area.apply(null,a__7509__auto__); }; var area = function (var_args){ var args__7508__auto__ = null;if (arguments.length > 0) { args__7508__auto__ = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0),0);} return area__delegate.call(this,args__7508__auto__);}; area.cljs$lang$maxFixedArity = 0; area.cljs$lang$applyTo = (function (arglist__9545){ var args__7508__auto__ = cljs.core.seq(arglist__9545); return area__delegate(args__7508__auto__); }); area.cljs$core$IFn$_invoke$arity$variadic = area__delegate; return area; })() ; /** * @param {...*} var_args */ quiescent.dom.article = (function() { var article__delegate = function (args__7508__auto__){var a__7509__auto__ = [];a__7509__auto__.push(quiescent.js_props.call(null,cljs.core.first.call(null,args__7508__auto__))); var seq__8542_9546 = cljs.core.seq.call(null,cljs.core.rest.call(null,args__7508__auto__));var chunk__8543_9547 = null;var count__8544_9548 = 0;var i__8545_9549 = 0;while(true){ if((i__8545_9549 < count__8544_9548)) {var arg__7510__auto___9550 = cljs.core._nth.call(null,chunk__8543_9547,i__8545_9549);a__7509__auto__.push(arg__7510__auto___9550); { var G__9551 = seq__8542_9546; var G__9552 = chunk__8543_9547; var G__9553 = count__8544_9548; var G__9554 = (i__8545_9549 + 1); seq__8542_9546 = G__9551; chunk__8543_9547 = G__9552; count__8544_9548 = G__9553; i__8545_9549 = G__9554; continue; } } else {var temp__4092__auto___9555 = cljs.core.seq.call(null,seq__8542_9546);if(temp__4092__auto___9555) {var seq__8542_9556__$1 = temp__4092__auto___9555;if(cljs.core.chunked_seq_QMARK_.call(null,seq__8542_9556__$1)) {var c__5632__auto___9557 = cljs.core.chunk_first.call(null,seq__8542_9556__$1);{ var G__9558 = cljs.core.chunk_rest.call(null,seq__8542_9556__$1); var G__9559 = c__5632__auto___9557; var G__9560 = cljs.core.count.call(null,c__5632__auto___9557); var G__9561 = 0; seq__8542_9546 = G__9558; chunk__8543_9547 = G__9559; count__8544_9548 = G__9560; i__8545_9549 = G__9561; continue; } } else {var arg__7510__auto___9562 = cljs.core.first.call(null,seq__8542_9556__$1);a__7509__auto__.push(arg__7510__auto___9562); { var G__9563 = cljs.core.next.call(null,seq__8542_9556__$1); var G__9564 = null; var G__9565 = 0; var G__9566 = 0; seq__8542_9546 = G__9563; chunk__8543_9547 = G__9564; count__8544_9548 = G__9565; i__8545_9549 = G__9566; continue; } } } else {} } break; } return React.DOM.article.apply(null,a__7509__auto__); }; var article = function (var_args){ var args__7508__auto__ = null;if (arguments.length > 0) { args__7508__auto__ = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0),0);} return article__delegate.call(this,args__7508__auto__);}; article.cljs$lang$maxFixedArity = 0; article.cljs$lang$applyTo = (function (arglist__9567){ var args__7508__auto__ = cljs.core.seq(arglist__9567); return article__delegate(args__7508__auto__); }); article.cljs$core$IFn$_invoke$arity$variadic = article__delegate; return article; })() ; /** * @param {...*} var_args */ quiescent.dom.aside = (function() { var aside__delegate = function (args__7508__auto__){var a__7509__auto__ = [];a__7509__auto__.push(quiescent.js_props.call(null,cljs.core.first.call(null,args__7508__auto__))); var seq__8550_9568 = cljs.core.seq.call(null,cljs.core.rest.call(null,args__7508__auto__));var chunk__8551_9569 = null;var count__8552_9570 = 0;var i__8553_9571 = 0;while(true){ if((i__8553_9571 < count__8552_9570)) {var arg__7510__auto___9572 = cljs.core._nth.call(null,chunk__8551_9569,i__8553_9571);a__7509__auto__.push(arg__7510__auto___9572); { var G__9573 = seq__8550_9568; var G__9574 = chunk__8551_9569; var G__9575 = count__8552_9570; var G__9576 = (i__8553_9571 + 1); seq__8550_9568 = G__9573; chunk__8551_9569 = G__9574; count__8552_9570 = G__9575; i__8553_9571 = G__9576; continue; } } else {var temp__4092__auto___9577 = cljs.core.seq.call(null,seq__8550_9568);if(temp__4092__auto___9577) {var seq__8550_9578__$1 = temp__4092__auto___9577;if(cljs.core.chunked_seq_QMARK_.call(null,seq__8550_9578__$1)) {var c__5632__auto___9579 = cljs.core.chunk_first.call(null,seq__8550_9578__$1);{ var G__9580 = cljs.core.chunk_rest.call(null,seq__8550_9578__$1); var G__9581 = c__5632__auto___9579; var G__9582 = cljs.core.count.call(null,c__5632__auto___9579); var G__9583 = 0; seq__8550_9568 = G__9580; chunk__8551_9569 = G__9581; count__8552_9570 = G__9582; i__8553_9571 = G__9583; continue; } } else {var arg__7510__auto___9584 = cljs.core.first.call(null,seq__8550_9578__$1);a__7509__auto__.push(arg__7510__auto___9584); { var G__9585 = cljs.core.next.call(null,seq__8550_9578__$1); var G__9586 = null; var G__9587 = 0; var G__9588 = 0; seq__8550_9568 = G__9585; chunk__8551_9569 = G__9586; count__8552_9570 = G__9587; i__8553_9571 = G__9588; continue; } } } else {} } break; } return React.DOM.aside.apply(null,a__7509__auto__); }; var aside = function (var_args){ var args__7508__auto__ = null;if (arguments.length > 0) { args__7508__auto__ = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0),0);} return aside__delegate.call(this,args__7508__auto__);}; aside.cljs$lang$maxFixedArity = 0; aside.cljs$lang$applyTo = (function (arglist__9589){ var args__7508__auto__ = cljs.core.seq(arglist__9589); return aside__delegate(args__7508__auto__); }); aside.cljs$core$IFn$_invoke$arity$variadic = aside__delegate; return aside; })() ; /** * @param {...*} var_args */ quiescent.dom.audio = (function() { var audio__delegate = function (args__7508__auto__){var a__7509__auto__ = [];a__7509__auto__.push(quiescent.js_props.call(null,cljs.core.first.call(null,args__7508__auto__))); var seq__8558_9590 = cljs.core.seq.call(null,cljs.core.rest.call(null,args__7508__auto__));var chunk__8559_9591 = null;var count__8560_9592 = 0;var i__8561_9593 = 0;while(true){ if((i__8561_9593 < count__8560_9592)) {var arg__7510__auto___9594 = cljs.core._nth.call(null,chunk__8559_9591,i__8561_9593);a__7509__auto__.push(arg__7510__auto___9594); { var G__9595 = seq__8558_9590; var G__9596 = chunk__8559_9591; var G__9597 = count__8560_9592; var G__9598 = (i__8561_9593 + 1); seq__8558_9590 = G__9595; chunk__8559_9591 = G__9596; count__8560_9592 = G__9597; i__8561_9593 = G__9598; continue; } } else {var temp__4092__auto___9599 = cljs.core.seq.call(null,seq__8558_9590);if(temp__4092__auto___9599) {var seq__8558_9600__$1 = temp__4092__auto___9599;if(cljs.core.chunked_seq_QMARK_.call(null,seq__8558_9600__$1)) {var c__5632__auto___9601 = cljs.core.chunk_first.call(null,seq__8558_9600__$1);{ var G__9602 = cljs.core.chunk_rest.call(null,seq__8558_9600__$1); var G__9603 = c__5632__auto___9601; var G__9604 = cljs.core.count.call(null,c__5632__auto___9601); var G__9605 = 0; seq__8558_9590 = G__9602; chunk__8559_9591 = G__9603; count__8560_9592 = G__9604; i__8561_9593 = G__9605; continue; } } else {var arg__7510__auto___9606 = cljs.core.first.call(null,seq__8558_9600__$1);a__7509__auto__.push(arg__7510__auto___9606); { var G__9607 = cljs.core.next.call(null,seq__8558_9600__$1); var G__9608 = null; var G__9609 = 0; var G__9610 = 0; seq__8558_9590 = G__9607; chunk__8559_9591 = G__9608; count__8560_9592 = G__9609; i__8561_9593 = G__9610; continue; } } } else {} } break; } return React.DOM.audio.apply(null,a__7509__auto__); }; var audio = function (var_args){ var args__7508__auto__ = null;if (arguments.length > 0) { args__7508__auto__ = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0),0);} return audio__delegate.call(this,args__7508__auto__);}; audio.cljs$lang$maxFixedArity = 0; audio.cljs$lang$applyTo = (function (arglist__9611){ var args__7508__auto__ = cljs.core.seq(arglist__9611); return audio__delegate(args__7508__auto__); }); audio.cljs$core$IFn$_invoke$arity$variadic = audio__delegate; return audio; })() ; /** * @param {...*} var_args */ quiescent.dom.b = (function() { var b__delegate = function (args__7508__auto__){var a__7509__auto__ = [];a__7509__auto__.push(quiescent.js_props.call(null,cljs.core.first.call(null,args__7508__auto__))); var seq__8566_9612 = cljs.core.seq.call(null,cljs.core.rest.call(null,args__7508__auto__));var chunk__8567_9613 = null;var count__8568_9614 = 0;var i__8569_9615 = 0;while(true){ if((i__8569_9615 < count__8568_9614)) {var arg__7510__auto___9616 = cljs.core._nth.call(null,chunk__8567_9613,i__8569_9615);a__7509__auto__.push(arg__7510__auto___9616); { var G__9617 = seq__8566_9612; var G__9618 = chunk__8567_9613; var G__9619 = count__8568_9614; var G__9620 = (i__8569_9615 + 1); seq__8566_9612 = G__9617; chunk__8567_9613 = G__9618; count__8568_9614 = G__9619; i__8569_9615 = G__9620; continue; } } else {var temp__4092__auto___9621 = cljs.core.seq.call(null,seq__8566_9612);if(temp__4092__auto___9621) {var seq__8566_9622__$1 = temp__4092__auto___9621;if(cljs.core.chunked_seq_QMARK_.call(null,seq__8566_9622__$1)) {var c__5632__auto___9623 = cljs.core.chunk_first.call(null,seq__8566_9622__$1);{ var G__9624 = cljs.core.chunk_rest.call(null,seq__8566_9622__$1); var G__9625 = c__5632__auto___9623; var G__9626 = cljs.core.count.call(null,c__5632__auto___9623); var G__9627 = 0; seq__8566_9612 = G__9624; chunk__8567_9613 = G__9625; count__8568_9614 = G__9626; i__8569_9615 = G__9627; continue; } } else {var arg__7510__auto___9628 = cljs.core.first.call(null,seq__8566_9622__$1);a__7509__auto__.push(arg__7510__auto___9628); { var G__9629 = cljs.core.next.call(null,seq__8566_9622__$1); var G__9630 = null; var G__9631 = 0; var G__9632 = 0; seq__8566_9612 = G__9629; chunk__8567_9613 = G__9630; count__8568_9614 = G__9631; i__8569_9615 = G__9632; continue; } } } else {} } break; } return React.DOM.b.apply(null,a__7509__auto__); }; var b = function (var_args){ var args__7508__auto__ = null;if (arguments.length > 0) { args__7508__auto__ = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0),0);} return b__delegate.call(this,args__7508__auto__);}; b.cljs$lang$maxFixedArity = 0; b.cljs$lang$applyTo = (function (arglist__9633){ var args__7508__auto__ = cljs.core.seq(arglist__9633); return b__delegate(args__7508__auto__); }); b.cljs$core$IFn$_invoke$arity$variadic = b__delegate; return b; })() ; /** * @param {...*} var_args */ quiescent.dom.base = (function() { var base__delegate = function (args__7508__auto__){var a__7509__auto__ = [];a__7509__auto__.push(quiescent.js_props.call(null,cljs.core.first.call(null,args__7508__auto__))); var seq__8574_9634 = cljs.core.seq.call(null,cljs.core.rest.call(null,args__7508__auto__));var chunk__8575_9635 = null;var count__8576_9636 = 0;var i__8577_9637 = 0;while(true){ if((i__8577_9637 < count__8576_9636)) {var arg__7510__auto___9638 = cljs.core._nth.call(null,chunk__8575_9635,i__8577_9637);a__7509__auto__.push(arg__7510__auto___9638); { var G__9639 = seq__8574_9634; var G__9640 = chunk__8575_9635; var G__9641 = count__8576_9636; var G__9642 = (i__8577_9637 + 1); seq__8574_9634 = G__9639; chunk__8575_9635 = G__9640; count__8576_9636 = G__9641; i__8577_9637 = G__9642; continue; } } else {var temp__4092__auto___9643 = cljs.core.seq.call(null,seq__8574_9634);if(temp__4092__auto___9643) {var seq__8574_9644__$1 = temp__4092__auto___9643;if(cljs.core.chunked_seq_QMARK_.call(null,seq__8574_9644__$1)) {var c__5632__auto___9645 = cljs.core.chunk_first.call(null,seq__8574_9644__$1);{ var G__9646 = cljs.core.chunk_rest.call(null,seq__8574_9644__$1); var G__9647 = c__5632__auto___9645; var G__9648 = cljs.core.count.call(null,c__5632__auto___9645); var G__9649 = 0; seq__8574_9634 = G__9646; chunk__8575_9635 = G__9647; count__8576_9636 = G__9648; i__8577_9637 = G__9649; continue; } } else {var arg__7510__auto___9650 = cljs.core.first.call(null,seq__8574_9644__$1);a__7509__auto__.push(arg__7510__auto___9650); { var G__9651 = cljs.core.next.call(null,seq__8574_9644__$1); var G__9652 = null; var G__9653 = 0; var G__9654 = 0; seq__8574_9634 = G__9651; chunk__8575_9635 = G__9652; count__8576_9636 = G__9653; i__8577_9637 = G__9654; continue; } } } else {} } break; } return React.DOM.base.apply(null,a__7509__auto__); }; var base = function (var_args){ var args__7508__auto__ = null;if (arguments.length > 0) { args__7508__auto__ = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0),0);} return base__delegate.call(this,args__7508__auto__);}; base.cljs$lang$maxFixedArity = 0; base.cljs$lang$applyTo = (function (arglist__9655){ var args__7508__auto__ = cljs.core.seq(arglist__9655); return base__delegate(args__7508__auto__); }); base.cljs$core$IFn$_invoke$arity$variadic = base__delegate; return base; })() ; /** * @param {...*} var_args */ quiescent.dom.bdi = (function() { var bdi__delegate = function (args__7508__auto__){var a__7509__auto__ = [];a__7509__auto__.push(quiescent.js_props.call(null,cljs.core.first.call(null,args__7508__auto__))); var seq__8582_9656 = cljs.core.seq.call(null,cljs.core.rest.call(null,args__7508__auto__));var chunk__8583_9657 = null;var count__8584_9658 = 0;var i__8585_9659 = 0;while(true){ if((i__8585_9659 < count__8584_9658)) {var arg__7510__auto___9660 = cljs.core._nth.call(null,chunk__8583_9657,i__8585_9659);a__7509__auto__.push(arg__7510__auto___9660); { var G__9661 = seq__8582_9656; var G__9662 = chunk__8583_9657; var G__9663 = count__8584_9658; var G__9664 = (i__8585_9659 + 1); seq__8582_9656 = G__9661; chunk__8583_9657 = G__9662; count__8584_9658 = G__9663; i__8585_9659 = G__9664; continue; } } else {var temp__4092__auto___9665 = cljs.core.seq.call(null,seq__8582_9656);if(temp__4092__auto___9665) {var seq__8582_9666__$1 = temp__4092__auto___9665;if(cljs.core.chunked_seq_QMARK_.call(null,seq__8582_9666__$1)) {var c__5632__auto___9667 = cljs.core.chunk_first.call(null,seq__8582_9666__$1);{ var G__9668 = cljs.core.chunk_rest.call(null,seq__8582_9666__$1); var G__9669 = c__5632__auto___9667; var G__9670 = cljs.core.count.call(null,c__5632__auto___9667); var G__9671 = 0; seq__8582_9656 = G__9668; chunk__8583_9657 = G__9669; count__8584_9658 = G__9670; i__8585_9659 = G__9671; continue; } } else {var arg__7510__auto___9672 = cljs.core.first.call(null,seq__8582_9666__$1);a__7509__auto__.push(arg__7510__auto___9672); { var G__9673 = cljs.core.next.call(null,seq__8582_9666__$1); var G__9674 = null; var G__9675 = 0; var G__9676 = 0; seq__8582_9656 = G__9673; chunk__8583_9657 = G__9674; count__8584_9658 = G__9675; i__8585_9659 = G__9676; continue; } } } else {} } break; } return React.DOM.bdi.apply(null,a__7509__auto__); }; var bdi = function (var_args){ var args__7508__auto__ = null;if (arguments.length > 0) { args__7508__auto__ = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0),0);} return bdi__delegate.call(this,args__7508__auto__);}; bdi.cljs$lang$maxFixedArity = 0; bdi.cljs$lang$applyTo = (function (arglist__9677){ var args__7508__auto__ = cljs.core.seq(arglist__9677); return bdi__delegate(args__7508__auto__); }); bdi.cljs$core$IFn$_invoke$arity$variadic = bdi__delegate; return bdi; })() ; /** * @param {...*} var_args */ quiescent.dom.bdo = (function() { var bdo__delegate = function (args__7508__auto__){var a__7509__auto__ = [];a__7509__auto__.push(quiescent.js_props.call(null,cljs.core.first.call(null,args__7508__auto__))); var seq__8590_9678 = cljs.core.seq.call(null,cljs.core.rest.call(null,args__7508__auto__));var chunk__8591_9679 = null;var count__8592_9680 = 0;var i__8593_9681 = 0;while(true){ if((i__8593_9681 < count__8592_9680)) {var arg__7510__auto___9682 = cljs.core._nth.call(null,chunk__8591_9679,i__8593_9681);a__7509__auto__.push(arg__7510__auto___9682); { var G__9683 = seq__8590_9678; var G__9684 = chunk__8591_9679; var G__9685 = count__8592_9680; var G__9686 = (i__8593_9681 + 1); seq__8590_9678 = G__9683; chunk__8591_9679 = G__9684; count__8592_9680 = G__9685; i__8593_9681 = G__9686; continue; } } else {var temp__4092__auto___9687 = cljs.core.seq.call(null,seq__8590_9678);if(temp__4092__auto___9687) {var seq__8590_9688__$1 = temp__4092__auto___9687;if(cljs.core.chunked_seq_QMARK_.call(null,seq__8590_9688__$1)) {var c__5632__auto___9689 = cljs.core.chunk_first.call(null,seq__8590_9688__$1);{ var G__9690 = cljs.core.chunk_rest.call(null,seq__8590_9688__$1); var G__9691 = c__5632__auto___9689; var G__9692 = cljs.core.count.call(null,c__5632__auto___9689); var G__9693 = 0; seq__8590_9678 = G__9690; chunk__8591_9679 = G__9691; count__8592_9680 = G__9692; i__8593_9681 = G__9693; continue; } } else {var arg__7510__auto___9694 = cljs.core.first.call(null,seq__8590_9688__$1);a__7509__auto__.push(arg__7510__auto___9694); { var G__9695 = cljs.core.next.call(null,seq__8590_9688__$1); var G__9696 = null; var G__9697 = 0; var G__9698 = 0; seq__8590_9678 = G__9695; chunk__8591_9679 = G__9696; count__8592_9680 = G__9697; i__8593_9681 = G__9698; continue; } } } else {} } break; } return React.DOM.bdo.apply(null,a__7509__auto__); }; var bdo = function (var_args){ var args__7508__auto__ = null;if (arguments.length > 0) { args__7508__auto__ = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0),0);} return bdo__delegate.call(this,args__7508__auto__);}; bdo.cljs$lang$maxFixedArity = 0; bdo.cljs$lang$applyTo = (function (arglist__9699){ var args__7508__auto__ = cljs.core.seq(arglist__9699); return bdo__delegate(args__7508__auto__); }); bdo.cljs$core$IFn$_invoke$arity$variadic = bdo__delegate; return bdo; })() ; /** * @param {...*} var_args */ quiescent.dom.big = (function() { var big__delegate = function (args__7508__auto__){var a__7509__auto__ = [];a__7509__auto__.push(quiescent.js_props.call(null,cljs.core.first.call(null,args__7508__auto__))); var seq__8598_9700 = cljs.core.seq.call(null,cljs.core.rest.call(null,args__7508__auto__));var chunk__8599_9701 = null;var count__8600_9702 = 0;var i__8601_9703 = 0;while(true){ if((i__8601_9703 < count__8600_9702)) {var arg__7510__auto___9704 = cljs.core._nth.call(null,chunk__8599_9701,i__8601_9703);a__7509__auto__.push(arg__7510__auto___9704); { var G__9705 = seq__8598_9700; var G__9706 = chunk__8599_9701; var G__9707 = count__8600_9702; var G__9708 = (i__8601_9703 + 1); seq__8598_9700 = G__9705; chunk__8599_9701 = G__9706; count__8600_9702 = G__9707; i__8601_9703 = G__9708; continue; } } else {var temp__4092__auto___9709 = cljs.core.seq.call(null,seq__8598_9700);if(temp__4092__auto___9709) {var seq__8598_9710__$1 = temp__4092__auto___9709;if(cljs.core.chunked_seq_QMARK_.call(null,seq__8598_9710__$1)) {var c__5632__auto___9711 = cljs.core.chunk_first.call(null,seq__8598_9710__$1);{ var G__9712 = cljs.core.chunk_rest.call(null,seq__8598_9710__$1); var G__9713 = c__5632__auto___9711; var G__9714 = cljs.core.count.call(null,c__5632__auto___9711); var G__9715 = 0; seq__8598_9700 = G__9712; chunk__8599_9701 = G__9713; count__8600_9702 = G__9714; i__8601_9703 = G__9715; continue; } } else {var arg__7510__auto___9716 = cljs.core.first.call(null,seq__8598_9710__$1);a__7509__auto__.push(arg__7510__auto___9716); { var G__9717 = cljs.core.next.call(null,seq__8598_9710__$1); var G__9718 = null; var G__9719 = 0; var G__9720 = 0; seq__8598_9700 = G__9717; chunk__8599_9701 = G__9718; count__8600_9702 = G__9719; i__8601_9703 = G__9720; continue; } } } else {} } break; } return React.DOM.big.apply(null,a__7509__auto__); }; var big = function (var_args){ var args__7508__auto__ = null;if (arguments.length > 0) { args__7508__auto__ = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0),0);} return big__delegate.call(this,args__7508__auto__);}; big.cljs$lang$maxFixedArity = 0; big.cljs$lang$applyTo = (function (arglist__9721){ var args__7508__auto__ = cljs.core.seq(arglist__9721); return big__delegate(args__7508__auto__); }); big.cljs$core$IFn$_invoke$arity$variadic = big__delegate; return big; })() ; /** * @param {...*} var_args */ quiescent.dom.blockquote = (function() { var blockquote__delegate = function (args__7508__auto__){var a__7509__auto__ = [];a__7509__auto__.push(quiescent.js_props.call(null,cljs.core.first.call(null,args__7508__auto__))); var seq__8606_9722 = cljs.core.seq.call(null,cljs.core.rest.call(null,args__7508__auto__));var chunk__8607_9723 = null;var count__8608_9724 = 0;var i__8609_9725 = 0;while(true){ if((i__8609_9725 < count__8608_9724)) {var arg__7510__auto___9726 = cljs.core._nth.call(null,chunk__8607_9723,i__8609_9725);a__7509__auto__.push(arg__7510__auto___9726); { var G__9727 = seq__8606_9722; var G__9728 = chunk__8607_9723; var G__9729 = count__8608_9724; var G__9730 = (i__8609_9725 + 1); seq__8606_9722 = G__9727; chunk__8607_9723 = G__9728; count__8608_9724 = G__9729; i__8609_9725 = G__9730; continue; } } else {var temp__4092__auto___9731 = cljs.core.seq.call(null,seq__8606_9722);if(temp__4092__auto___9731) {var seq__8606_9732__$1 = temp__4092__auto___9731;if(cljs.core.chunked_seq_QMARK_.call(null,seq__8606_9732__$1)) {var c__5632__auto___9733 = cljs.core.chunk_first.call(null,seq__8606_9732__$1);{ var G__9734 = cljs.core.chunk_rest.call(null,seq__8606_9732__$1); var G__9735 = c__5632__auto___9733; var G__9736 = cljs.core.count.call(null,c__5632__auto___9733); var G__9737 = 0; seq__8606_9722 = G__9734; chunk__8607_9723 = G__9735; count__8608_9724 = G__9736; i__8609_9725 = G__9737; continue; } } else {var arg__7510__auto___9738 = cljs.core.first.call(null,seq__8606_9732__$1);a__7509__auto__.push(arg__7510__auto___9738); { var G__9739 = cljs.core.next.call(null,seq__8606_9732__$1); var G__9740 = null; var G__9741 = 0; var G__9742 = 0; seq__8606_9722 = G__9739; chunk__8607_9723 = G__9740; count__8608_9724 = G__9741; i__8609_9725 = G__9742; continue; } } } else {} } break; } return React.DOM.blockquote.apply(null,a__7509__auto__); }; var blockquote = function (var_args){ var args__7508__auto__ = null;if (arguments.length > 0) { args__7508__auto__ = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0),0);} return blockquote__delegate.call(this,args__7508__auto__);}; blockquote.cljs$lang$maxFixedArity = 0; blockquote.cljs$lang$applyTo = (function (arglist__9743){ var args__7508__auto__ = cljs.core.seq(arglist__9743); return blockquote__delegate(args__7508__auto__); }); blockquote.cljs$core$IFn$_invoke$arity$variadic = blockquote__delegate; return blockquote; })() ; /** * @param {...*} var_args */ quiescent.dom.body = (function() { var body__delegate = function (args__7508__auto__){var a__7509__auto__ = [];a__7509__auto__.push(quiescent.js_props.call(null,cljs.core.first.call(null,args__7508__auto__))); var seq__8614_9744 = cljs.core.seq.call(null,cljs.core.rest.call(null,args__7508__auto__));var chunk__8615_9745 = null;var count__8616_9746 = 0;var i__8617_9747 = 0;while(true){ if((i__8617_9747 < count__8616_9746)) {var arg__7510__auto___9748 = cljs.core._nth.call(null,chunk__8615_9745,i__8617_9747);a__7509__auto__.push(arg__7510__auto___9748); { var G__9749 = seq__8614_9744; var G__9750 = chunk__8615_9745; var G__9751 = count__8616_9746; var G__9752 = (i__8617_9747 + 1); seq__8614_9744 = G__9749; chunk__8615_9745 = G__9750; count__8616_9746 = G__9751; i__8617_9747 = G__9752; continue; } } else {var temp__4092__auto___9753 = cljs.core.seq.call(null,seq__8614_9744);if(temp__4092__auto___9753) {var seq__8614_9754__$1 = temp__4092__auto___9753;if(cljs.core.chunked_seq_QMARK_.call(null,seq__8614_9754__$1)) {var c__5632__auto___9755 = cljs.core.chunk_first.call(null,seq__8614_9754__$1);{ var G__9756 = cljs.core.chunk_rest.call(null,seq__8614_9754__$1); var G__9757 = c__5632__auto___9755; var G__9758 = cljs.core.count.call(null,c__5632__auto___9755); var G__9759 = 0; seq__8614_9744 = G__9756; chunk__8615_9745 = G__9757; count__8616_9746 = G__9758; i__8617_9747 = G__9759; continue; } } else {var arg__7510__auto___9760 = cljs.core.first.call(null,seq__8614_9754__$1);a__7509__auto__.push(arg__7510__auto___9760); { var G__9761 = cljs.core.next.call(null,seq__8614_9754__$1); var G__9762 = null; var G__9763 = 0; var G__9764 = 0; seq__8614_9744 = G__9761; chunk__8615_9745 = G__9762; count__8616_9746 = G__9763; i__8617_9747 = G__9764; continue; } } } else {} } break; } return React.DOM.body.apply(null,a__7509__auto__); }; var body = function (var_args){ var args__7508__auto__ = null;if (arguments.length > 0) { args__7508__auto__ = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0),0);} return body__delegate.call(this,args__7508__auto__);}; body.cljs$lang$maxFixedArity = 0; body.cljs$lang$applyTo = (function (arglist__9765){ var args__7508__auto__ = cljs.core.seq(arglist__9765); return body__delegate(args__7508__auto__); }); body.cljs$core$IFn$_invoke$arity$variadic = body__delegate; return body; })() ; /** * @param {...*} var_args */ quiescent.dom.br = (function() { var br__delegate = function (args__7508__auto__){var a__7509__auto__ = [];a__7509__auto__.push(quiescent.js_props.call(null,cljs.core.first.call(null,args__7508__auto__))); var seq__8622_9766 = cljs.core.seq.call(null,cljs.core.rest.call(null,args__7508__auto__));var chunk__8623_9767 = null;var count__8624_9768 = 0;var i__8625_9769 = 0;while(true){ if((i__8625_9769 < count__8624_9768)) {var arg__7510__auto___9770 = cljs.core._nth.call(null,chunk__8623_9767,i__8625_9769);a__7509__auto__.push(arg__7510__auto___9770); { var G__9771 = seq__8622_9766; var G__9772 = chunk__8623_9767; var G__9773 = count__8624_9768; var G__9774 = (i__8625_9769 + 1); seq__8622_9766 = G__9771; chunk__8623_9767 = G__9772; count__8624_9768 = G__9773; i__8625_9769 = G__9774; continue; } } else {var temp__4092__auto___9775 = cljs.core.seq.call(null,seq__8622_9766);if(temp__4092__auto___9775) {var seq__8622_9776__$1 = temp__4092__auto___9775;if(cljs.core.chunked_seq_QMARK_.call(null,seq__8622_9776__$1)) {var c__5632__auto___9777 = cljs.core.chunk_first.call(null,seq__8622_9776__$1);{ var G__9778 = cljs.core.chunk_rest.call(null,seq__8622_9776__$1); var G__9779 = c__5632__auto___9777; var G__9780 = cljs.core.count.call(null,c__5632__auto___9777); var G__9781 = 0; seq__8622_9766 = G__9778; chunk__8623_9767 = G__9779; count__8624_9768 = G__9780; i__8625_9769 = G__9781; continue; } } else {var arg__7510__auto___9782 = cljs.core.first.call(null,seq__8622_9776__$1);a__7509__auto__.push(arg__7510__auto___9782); { var G__9783 = cljs.core.next.call(null,seq__8622_9776__$1); var G__9784 = null; var G__9785 = 0; var G__9786 = 0; seq__8622_9766 = G__9783; chunk__8623_9767 = G__9784; count__8624_9768 = G__9785; i__8625_9769 = G__9786; continue; } } } else {} } break; } return React.DOM.br.apply(null,a__7509__auto__); }; var br = function (var_args){ var args__7508__auto__ = null;if (arguments.length > 0) { args__7508__auto__ = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0),0);} return br__delegate.call(this,args__7508__auto__);}; br.cljs$lang$maxFixedArity = 0; br.cljs$lang$applyTo = (function (arglist__9787){ var args__7508__auto__ = cljs.core.seq(arglist__9787); return br__delegate(args__7508__auto__); }); br.cljs$core$IFn$_invoke$arity$variadic = br__delegate; return br; })() ; /** * @param {...*} var_args */ quiescent.dom.button = (function() { var button__delegate = function (args__7508__auto__){var a__7509__auto__ = [];a__7509__auto__.push(quiescent.js_props.call(null,cljs.core.first.call(null,args__7508__auto__))); var seq__8630_9788 = cljs.core.seq.call(null,cljs.core.rest.call(null,args__7508__auto__));var chunk__8631_9789 = null;var count__8632_9790 = 0;var i__8633_9791 = 0;while(true){ if((i__8633_9791 < count__8632_9790)) {var arg__7510__auto___9792 = cljs.core._nth.call(null,chunk__8631_9789,i__8633_9791);a__7509__auto__.push(arg__7510__auto___9792); { var G__9793 = seq__8630_9788; var G__9794 = chunk__8631_9789; var G__9795 = count__8632_9790; var G__9796 = (i__8633_9791 + 1); seq__8630_9788 = G__9793; chunk__8631_9789 = G__9794; count__8632_9790 = G__9795; i__8633_9791 = G__9796; continue; } } else {var temp__4092__auto___9797 = cljs.core.seq.call(null,seq__8630_9788);if(temp__4092__auto___9797) {var seq__8630_9798__$1 = temp__4092__auto___9797;if(cljs.core.chunked_seq_QMARK_.call(null,seq__8630_9798__$1)) {var c__5632__auto___9799 = cljs.core.chunk_first.call(null,seq__8630_9798__$1);{ var G__9800 = cljs.core.chunk_rest.call(null,seq__8630_9798__$1); var G__9801 = c__5632__auto___9799; var G__9802 = cljs.core.count.call(null,c__5632__auto___9799); var G__9803 = 0; seq__8630_9788 = G__9800; chunk__8631_9789 = G__9801; count__8632_9790 = G__9802; i__8633_9791 = G__9803; continue; } } else {var arg__7510__auto___9804 = cljs.core.first.call(null,seq__8630_9798__$1);a__7509__auto__.push(arg__7510__auto___9804); { var G__9805 = cljs.core.next.call(null,seq__8630_9798__$1); var G__9806 = null; var G__9807 = 0; var G__9808 = 0; seq__8630_9788 = G__9805; chunk__8631_9789 = G__9806; count__8632_9790 = G__9807; i__8633_9791 = G__9808; continue; } } } else {} } break; } return React.DOM.button.apply(null,a__7509__auto__); }; var button = function (var_args){ var args__7508__auto__ = null;if (arguments.length > 0) { args__7508__auto__ = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0),0);} return button__delegate.call(this,args__7508__auto__);}; button.cljs$lang$maxFixedArity = 0; button.cljs$lang$applyTo = (function (arglist__9809){ var args__7508__auto__ = cljs.core.seq(arglist__9809); return button__delegate(args__7508__auto__); }); button.cljs$core$IFn$_invoke$arity$variadic = button__delegate; return button; })() ; /** * @param {...*} var_args */ quiescent.dom.canvas = (function() { var canvas__delegate = function (args__7508__auto__){var a__7509__auto__ = [];a__7509__auto__.push(quiescent.js_props.call(null,cljs.core.first.call(null,args__7508__auto__))); var seq__8638_9810 = cljs.core.seq.call(null,cljs.core.rest.call(null,args__7508__auto__));var chunk__8639_9811 = null;var count__8640_9812 = 0;var i__8641_9813 = 0;while(true){ if((i__8641_9813 < count__8640_9812)) {var arg__7510__auto___9814 = cljs.core._nth.call(null,chunk__8639_9811,i__8641_9813);a__7509__auto__.push(arg__7510__auto___9814); { var G__9815 = seq__8638_9810; var G__9816 = chunk__8639_9811; var G__9817 = count__8640_9812; var G__9818 = (i__8641_9813 + 1); seq__8638_9810 = G__9815; chunk__8639_9811 = G__9816; count__8640_9812 = G__9817; i__8641_9813 = G__9818; continue; } } else {var temp__4092__auto___9819 = cljs.core.seq.call(null,seq__8638_9810);if(temp__4092__auto___9819) {var seq__8638_9820__$1 = temp__4092__auto___9819;if(cljs.core.chunked_seq_QMARK_.call(null,seq__8638_9820__$1)) {var c__5632__auto___9821 = cljs.core.chunk_first.call(null,seq__8638_9820__$1);{ var G__9822 = cljs.core.chunk_rest.call(null,seq__8638_9820__$1); var G__9823 = c__5632__auto___9821; var G__9824 = cljs.core.count.call(null,c__5632__auto___9821); var G__9825 = 0; seq__8638_9810 = G__9822; chunk__8639_9811 = G__9823; count__8640_9812 = G__9824; i__8641_9813 = G__9825; continue; } } else {var arg__7510__auto___9826 = cljs.core.first.call(null,seq__8638_9820__$1);a__7509__auto__.push(arg__7510__auto___9826); { var G__9827 = cljs.core.next.call(null,seq__8638_9820__$1); var G__9828 = null; var G__9829 = 0; var G__9830 = 0; seq__8638_9810 = G__9827; chunk__8639_9811 = G__9828; count__8640_9812 = G__9829; i__8641_9813 = G__9830; continue; } } } else {} } break; } return React.DOM.canvas.apply(null,a__7509__auto__); }; var canvas = function (var_args){ var args__7508__auto__ = null;if (arguments.length > 0) { args__7508__auto__ = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0),0);} return canvas__delegate.call(this,args__7508__auto__);}; canvas.cljs$lang$maxFixedArity = 0; canvas.cljs$lang$applyTo = (function (arglist__9831){ var args__7508__auto__ = cljs.core.seq(arglist__9831); return canvas__delegate(args__7508__auto__); }); canvas.cljs$core$IFn$_invoke$arity$variadic = canvas__delegate; return canvas; })() ; /** * @param {...*} var_args */ quiescent.dom.caption = (function() { var caption__delegate = function (args__7508__auto__){var a__7509__auto__ = [];a__7509__auto__.push(quiescent.js_props.call(null,cljs.core.first.call(null,args__7508__auto__))); var seq__8646_9832 = cljs.core.seq.call(null,cljs.core.rest.call(null,args__7508__auto__));var chunk__8647_9833 = null;var count__8648_9834 = 0;var i__8649_9835 = 0;while(true){ if((i__8649_9835 < count__8648_9834)) {var arg__7510__auto___9836 = cljs.core._nth.call(null,chunk__8647_9833,i__8649_9835);a__7509__auto__.push(arg__7510__auto___9836); { var G__9837 = seq__8646_9832; var G__9838 = chunk__8647_9833; var G__9839 = count__8648_9834; var G__9840 = (i__8649_9835 + 1); seq__8646_9832 = G__9837; chunk__8647_9833 = G__9838; count__8648_9834 = G__9839; i__8649_9835 = G__9840; continue; } } else {var temp__4092__auto___9841 = cljs.core.seq.call(null,seq__8646_9832);if(temp__4092__auto___9841) {var seq__8646_9842__$1 = temp__4092__auto___9841;if(cljs.core.chunked_seq_QMARK_.call(null,seq__8646_9842__$1)) {var c__5632__auto___9843 = cljs.core.chunk_first.call(null,seq__8646_9842__$1);{ var G__9844 = cljs.core.chunk_rest.call(null,seq__8646_9842__$1); var G__9845 = c__5632__auto___9843; var G__9846 = cljs.core.count.call(null,c__5632__auto___9843); var G__9847 = 0; seq__8646_9832 = G__9844; chunk__8647_9833 = G__9845; count__8648_9834 = G__9846; i__8649_9835 = G__9847; continue; } } else {var arg__7510__auto___9848 = cljs.core.first.call(null,seq__8646_9842__$1);a__7509__auto__.push(arg__7510__auto___9848); { var G__9849 = cljs.core.next.call(null,seq__8646_9842__$1); var G__9850 = null; var G__9851 = 0; var G__9852 = 0; seq__8646_9832 = G__9849; chunk__8647_9833 = G__9850; count__8648_9834 = G__9851; i__8649_9835 = G__9852; continue; } } } else {} } break; } return React.DOM.caption.apply(null,a__7509__auto__); }; var caption = function (var_args){ var args__7508__auto__ = null;if (arguments.length > 0) { args__7508__auto__ = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0),0);} return caption__delegate.call(this,args__7508__auto__);}; caption.cljs$lang$maxFixedArity = 0; caption.cljs$lang$applyTo = (function (arglist__9853){ var args__7508__auto__ = cljs.core.seq(arglist__9853); return caption__delegate(args__7508__auto__); }); caption.cljs$core$IFn$_invoke$arity$variadic = caption__delegate; return caption; })() ; /** * @param {...*} var_args */ quiescent.dom.cite = (function() { var cite__delegate = function (args__7508__auto__){var a__7509__auto__ = [];a__7509__auto__.push(quiescent.js_props.call(null,cljs.core.first.call(null,args__7508__auto__))); var seq__8654_9854 = cljs.core.seq.call(null,cljs.core.rest.call(null,args__7508__auto__));var chunk__8655_9855 = null;var count__8656_9856 = 0;var i__8657_9857 = 0;while(true){ if((i__8657_9857 < count__8656_9856)) {var arg__7510__auto___9858 = cljs.core._nth.call(null,chunk__8655_9855,i__8657_9857);a__7509__auto__.push(arg__7510__auto___9858); { var G__9859 = seq__8654_9854; var G__9860 = chunk__8655_9855; var G__9861 = count__8656_9856; var G__9862 = (i__8657_9857 + 1); seq__8654_9854 = G__9859; chunk__8655_9855 = G__9860; count__8656_9856 = G__9861; i__8657_9857 = G__9862; continue; } } else {var temp__4092__auto___9863 = cljs.core.seq.call(null,seq__8654_9854);if(temp__4092__auto___9863) {var seq__8654_9864__$1 = temp__4092__auto___9863;if(cljs.core.chunked_seq_QMARK_.call(null,seq__8654_9864__$1)) {var c__5632__auto___9865 = cljs.core.chunk_first.call(null,seq__8654_9864__$1);{ var G__9866 = cljs.core.chunk_rest.call(null,seq__8654_9864__$1); var G__9867 = c__5632__auto___9865; var G__9868 = cljs.core.count.call(null,c__5632__auto___9865); var G__9869 = 0; seq__8654_9854 = G__9866; chunk__8655_9855 = G__9867; count__8656_9856 = G__9868; i__8657_9857 = G__9869; continue; } } else {var arg__7510__auto___9870 = cljs.core.first.call(null,seq__8654_9864__$1);a__7509__auto__.push(arg__7510__auto___9870); { var G__9871 = cljs.core.next.call(null,seq__8654_9864__$1); var G__9872 = null; var G__9873 = 0; var G__9874 = 0; seq__8654_9854 = G__9871; chunk__8655_9855 = G__9872; count__8656_9856 = G__9873; i__8657_9857 = G__9874; continue; } } } else {} } break; } return React.DOM.cite.apply(null,a__7509__auto__); }; var cite = function (var_args){ var args__7508__auto__ = null;if (arguments.length > 0) { args__7508__auto__ = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0),0);} return cite__delegate.call(this,args__7508__auto__);}; cite.cljs$lang$maxFixedArity = 0; cite.cljs$lang$applyTo = (function (arglist__9875){ var args__7508__auto__ = cljs.core.seq(arglist__9875); return cite__delegate(args__7508__auto__); }); cite.cljs$core$IFn$_invoke$arity$variadic = cite__delegate; return cite; })() ; /** * @param {...*} var_args */ quiescent.dom.code = (function() { var code__delegate = function (args__7508__auto__){var a__7509__auto__ = [];a__7509__auto__.push(quiescent.js_props.call(null,cljs.core.first.call(null,args__7508__auto__))); var seq__8662_9876 = cljs.core.seq.call(null,cljs.core.rest.call(null,args__7508__auto__));var chunk__8663_9877 = null;var count__8664_9878 = 0;var i__8665_9879 = 0;while(true){ if((i__8665_9879 < count__8664_9878)) {var arg__7510__auto___9880 = cljs.core._nth.call(null,chunk__8663_9877,i__8665_9879);a__7509__auto__.push(arg__7510__auto___9880); { var G__9881 = seq__8662_9876; var G__9882 = chunk__8663_9877; var G__9883 = count__8664_9878; var G__9884 = (i__8665_9879 + 1); seq__8662_9876 = G__9881; chunk__8663_9877 = G__9882; count__8664_9878 = G__9883; i__8665_9879 = G__9884; continue; } } else {var temp__4092__auto___9885 = cljs.core.seq.call(null,seq__8662_9876);if(temp__4092__auto___9885) {var seq__8662_9886__$1 = temp__4092__auto___9885;if(cljs.core.chunked_seq_QMARK_.call(null,seq__8662_9886__$1)) {var c__5632__auto___9887 = cljs.core.chunk_first.call(null,seq__8662_9886__$1);{ var G__9888 = cljs.core.chunk_rest.call(null,seq__8662_9886__$1); var G__9889 = c__5632__auto___9887; var G__9890 = cljs.core.count.call(null,c__5632__auto___9887); var G__9891 = 0; seq__8662_9876 = G__9888; chunk__8663_9877 = G__9889; count__8664_9878 = G__9890; i__8665_9879 = G__9891; continue; } } else {var arg__7510__auto___9892 = cljs.core.first.call(null,seq__8662_9886__$1);a__7509__auto__.push(arg__7510__auto___9892); { var G__9893 = cljs.core.next.call(null,seq__8662_9886__$1); var G__9894 = null; var G__9895 = 0; var G__9896 = 0; seq__8662_9876 = G__9893; chunk__8663_9877 = G__9894; count__8664_9878 = G__9895; i__8665_9879 = G__9896; continue; } } } else {} } break; } return React.DOM.code.apply(null,a__7509__auto__); }; var code = function (var_args){ var args__7508__auto__ = null;if (arguments.length > 0) { args__7508__auto__ = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0),0);} return code__delegate.call(this,args__7508__auto__);}; code.cljs$lang$maxFixedArity = 0; code.cljs$lang$applyTo = (function (arglist__9897){ var args__7508__auto__ = cljs.core.seq(arglist__9897); return code__delegate(args__7508__auto__); }); code.cljs$core$IFn$_invoke$arity$variadic = code__delegate; return code; })() ; /** * @param {...*} var_args */ quiescent.dom.col = (function() { var col__delegate = function (args__7508__auto__){var a__7509__auto__ = [];a__7509__auto__.push(quiescent.js_props.call(null,cljs.core.first.call(null,args__7508__auto__))); var seq__8670_9898 = cljs.core.seq.call(null,cljs.core.rest.call(null,args__7508__auto__));var chunk__8671_9899 = null;var count__8672_9900 = 0;var i__8673_9901 = 0;while(true){ if((i__8673_9901 < count__8672_9900)) {var arg__7510__auto___9902 = cljs.core._nth.call(null,chunk__8671_9899,i__8673_9901);a__7509__auto__.push(arg__7510__auto___9902); { var G__9903 = seq__8670_9898; var G__9904 = chunk__8671_9899; var G__9905 = count__8672_9900; var G__9906 = (i__8673_9901 + 1); seq__8670_9898 = G__9903; chunk__8671_9899 = G__9904; count__8672_9900 = G__9905; i__8673_9901 = G__9906; continue; } } else {var temp__4092__auto___9907 = cljs.core.seq.call(null,seq__8670_9898);if(temp__4092__auto___9907) {var seq__8670_9908__$1 = temp__4092__auto___9907;if(cljs.core.chunked_seq_QMARK_.call(null,seq__8670_9908__$1)) {var c__5632__auto___9909 = cljs.core.chunk_first.call(null,seq__8670_9908__$1);{ var G__9910 = cljs.core.chunk_rest.call(null,seq__8670_9908__$1); var G__9911 = c__5632__auto___9909; var G__9912 = cljs.core.count.call(null,c__5632__auto___9909); var G__9913 = 0; seq__8670_9898 = G__9910; chunk__8671_9899 = G__9911; count__8672_9900 = G__9912; i__8673_9901 = G__9913; continue; } } else {var arg__7510__auto___9914 = cljs.core.first.call(null,seq__8670_9908__$1);a__7509__auto__.push(arg__7510__auto___9914); { var G__9915 = cljs.core.next.call(null,seq__8670_9908__$1); var G__9916 = null; var G__9917 = 0; var G__9918 = 0; seq__8670_9898 = G__9915; chunk__8671_9899 = G__9916; count__8672_9900 = G__9917; i__8673_9901 = G__9918; continue; } } } else {} } break; } return React.DOM.col.apply(null,a__7509__auto__); }; var col = function (var_args){ var args__7508__auto__ = null;if (arguments.length > 0) { args__7508__auto__ = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0),0);} return col__delegate.call(this,args__7508__auto__);}; col.cljs$lang$maxFixedArity = 0; col.cljs$lang$applyTo = (function (arglist__9919){ var args__7508__auto__ = cljs.core.seq(arglist__9919); return col__delegate(args__7508__auto__); }); col.cljs$core$IFn$_invoke$arity$variadic = col__delegate; return col; })() ; /** * @param {...*} var_args */ quiescent.dom.colgroup = (function() { var colgroup__delegate = function (args__7508__auto__){var a__7509__auto__ = [];a__7509__auto__.push(quiescent.js_props.call(null,cljs.core.first.call(null,args__7508__auto__))); var seq__8678_9920 = cljs.core.seq.call(null,cljs.core.rest.call(null,args__7508__auto__));var chunk__8679_9921 = null;var count__8680_9922 = 0;var i__8681_9923 = 0;while(true){ if((i__8681_9923 < count__8680_9922)) {var arg__7510__auto___9924 = cljs.core._nth.call(null,chunk__8679_9921,i__8681_9923);a__7509__auto__.push(arg__7510__auto___9924); { var G__9925 = seq__8678_9920; var G__9926 = chunk__8679_9921; var G__9927 = count__8680_9922; var G__9928 = (i__8681_9923 + 1); seq__8678_9920 = G__9925; chunk__8679_9921 = G__9926; count__8680_9922 = G__9927; i__8681_9923 = G__9928; continue; } } else {var temp__4092__auto___9929 = cljs.core.seq.call(null,seq__8678_9920);if(temp__4092__auto___9929) {var seq__8678_9930__$1 = temp__4092__auto___9929;if(cljs.core.chunked_seq_QMARK_.call(null,seq__8678_9930__$1)) {var c__5632__auto___9931 = cljs.core.chunk_first.call(null,seq__8678_9930__$1);{ var G__9932 = cljs.core.chunk_rest.call(null,seq__8678_9930__$1); var G__9933 = c__5632__auto___9931; var G__9934 = cljs.core.count.call(null,c__5632__auto___9931); var G__9935 = 0; seq__8678_9920 = G__9932; chunk__8679_9921 = G__9933; count__8680_9922 = G__9934; i__8681_9923 = G__9935; continue; } } else {var arg__7510__auto___9936 = cljs.core.first.call(null,seq__8678_9930__$1);a__7509__auto__.push(arg__7510__auto___9936); { var G__9937 = cljs.core.next.call(null,seq__8678_9930__$1); var G__9938 = null; var G__9939 = 0; var G__9940 = 0; seq__8678_9920 = G__9937; chunk__8679_9921 = G__9938; count__8680_9922 = G__9939; i__8681_9923 = G__9940; continue; } } } else {} } break; } return React.DOM.colgroup.apply(null,a__7509__auto__); }; var colgroup = function (var_args){ var args__7508__auto__ = null;if (arguments.length > 0) { args__7508__auto__ = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0),0);} return colgroup__delegate.call(this,args__7508__auto__);}; colgroup.cljs$lang$maxFixedArity = 0; colgroup.cljs$lang$applyTo = (function (arglist__9941){ var args__7508__auto__ = cljs.core.seq(arglist__9941); return colgroup__delegate(args__7508__auto__); }); colgroup.cljs$core$IFn$_invoke$arity$variadic = colgroup__delegate; return colgroup; })() ; /** * @param {...*} var_args */ quiescent.dom.data = (function() { var data__delegate = function (args__7508__auto__){var a__7509__auto__ = [];a__7509__auto__.push(quiescent.js_props.call(null,cljs.core.first.call(null,args__7508__auto__))); var seq__8686_9942 = cljs.core.seq.call(null,cljs.core.rest.call(null,args__7508__auto__));var chunk__8687_9943 = null;var count__8688_9944 = 0;var i__8689_9945 = 0;while(true){ if((i__8689_9945 < count__8688_9944)) {var arg__7510__auto___9946 = cljs.core._nth.call(null,chunk__8687_9943,i__8689_9945);a__7509__auto__.push(arg__7510__auto___9946); { var G__9947 = seq__8686_9942; var G__9948 = chunk__8687_9943; var G__9949 = count__8688_9944; var G__9950 = (i__8689_9945 + 1); seq__8686_9942 = G__9947; chunk__8687_9943 = G__9948; count__8688_9944 = G__9949; i__8689_9945 = G__9950; continue; } } else {var temp__4092__auto___9951 = cljs.core.seq.call(null,seq__8686_9942);if(temp__4092__auto___9951) {var seq__8686_9952__$1 = temp__4092__auto___9951;if(cljs.core.chunked_seq_QMARK_.call(null,seq__8686_9952__$1)) {var c__5632__auto___9953 = cljs.core.chunk_first.call(null,seq__8686_9952__$1);{ var G__9954 = cljs.core.chunk_rest.call(null,seq__8686_9952__$1); var G__9955 = c__5632__auto___9953; var G__9956 = cljs.core.count.call(null,c__5632__auto___9953); var G__9957 = 0; seq__8686_9942 = G__9954; chunk__8687_9943 = G__9955; count__8688_9944 = G__9956; i__8689_9945 = G__9957; continue; } } else {var arg__7510__auto___9958 = cljs.core.first.call(null,seq__8686_9952__$1);a__7509__auto__.push(arg__7510__auto___9958); { var G__9959 = cljs.core.next.call(null,seq__8686_9952__$1); var G__9960 = null; var G__9961 = 0; var G__9962 = 0; seq__8686_9942 = G__9959; chunk__8687_9943 = G__9960; count__8688_9944 = G__9961; i__8689_9945 = G__9962; continue; } } } else {} } break; } return React.DOM.data.apply(null,a__7509__auto__); }; var data = function (var_args){ var args__7508__auto__ = null;if (arguments.length > 0) { args__7508__auto__ = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0),0);} return data__delegate.call(this,args__7508__auto__);}; data.cljs$lang$maxFixedArity = 0; data.cljs$lang$applyTo = (function (arglist__9963){ var args__7508__auto__ = cljs.core.seq(arglist__9963); return data__delegate(args__7508__auto__); }); data.cljs$core$IFn$_invoke$arity$variadic = data__delegate; return data; })() ; /** * @param {...*} var_args */ quiescent.dom.datalist = (function() { var datalist__delegate = function (args__7508__auto__){var a__7509__auto__ = [];a__7509__auto__.push(quiescent.js_props.call(null,cljs.core.first.call(null,args__7508__auto__))); var seq__8694_9964 = cljs.core.seq.call(null,cljs.core.rest.call(null,args__7508__auto__));var chunk__8695_9965 = null;var count__8696_9966 = 0;var i__8697_9967 = 0;while(true){ if((i__8697_9967 < count__8696_9966)) {var arg__7510__auto___9968 = cljs.core._nth.call(null,chunk__8695_9965,i__8697_9967);a__7509__auto__.push(arg__7510__auto___9968); { var G__9969 = seq__8694_9964; var G__9970 = chunk__8695_9965; var G__9971 = count__8696_9966; var G__9972 = (i__8697_9967 + 1); seq__8694_9964 = G__9969; chunk__8695_9965 = G__9970; count__8696_9966 = G__9971; i__8697_9967 = G__9972; continue; } } else {var temp__4092__auto___9973 = cljs.core.seq.call(null,seq__8694_9964);if(temp__4092__auto___9973) {var seq__8694_9974__$1 = temp__4092__auto___9973;if(cljs.core.chunked_seq_QMARK_.call(null,seq__8694_9974__$1)) {var c__5632__auto___9975 = cljs.core.chunk_first.call(null,seq__8694_9974__$1);{ var G__9976 = cljs.core.chunk_rest.call(null,seq__8694_9974__$1); var G__9977 = c__5632__auto___9975; var G__9978 = cljs.core.count.call(null,c__5632__auto___9975); var G__9979 = 0; seq__8694_9964 = G__9976; chunk__8695_9965 = G__9977; count__8696_9966 = G__9978; i__8697_9967 = G__9979; continue; } } else {var arg__7510__auto___9980 = cljs.core.first.call(null,seq__8694_9974__$1);a__7509__auto__.push(arg__7510__auto___9980); { var G__9981 = cljs.core.next.call(null,seq__8694_9974__$1); var G__9982 = null; var G__9983 = 0; var G__9984 = 0; seq__8694_9964 = G__9981; chunk__8695_9965 = G__9982; count__8696_9966 = G__9983; i__8697_9967 = G__9984; continue; } } } else {} } break; } return React.DOM.datalist.apply(null,a__7509__auto__); }; var datalist = function (var_args){ var args__7508__auto__ = null;if (arguments.length > 0) { args__7508__auto__ = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0),0);} return datalist__delegate.call(this,args__7508__auto__);}; datalist.cljs$lang$maxFixedArity = 0; datalist.cljs$lang$applyTo = (function (arglist__9985){ var args__7508__auto__ = cljs.core.seq(arglist__9985); return datalist__delegate(args__7508__auto__); }); datalist.cljs$core$IFn$_invoke$arity$variadic = datalist__delegate; return datalist; })() ; /** * @param {...*} var_args */ quiescent.dom.dd = (function() { var dd__delegate = function (args__7508__auto__){var a__7509__auto__ = [];a__7509__auto__.push(quiescent.js_props.call(null,cljs.core.first.call(null,args__7508__auto__))); var seq__8702_9986 = cljs.core.seq.call(null,cljs.core.rest.call(null,args__7508__auto__));var chunk__8703_9987 = null;var count__8704_9988 = 0;var i__8705_9989 = 0;while(true){ if((i__8705_9989 < count__8704_9988)) {var arg__7510__auto___9990 = cljs.core._nth.call(null,chunk__8703_9987,i__8705_9989);a__7509__auto__.push(arg__7510__auto___9990); { var G__9991 = seq__8702_9986; var G__9992 = chunk__8703_9987; var G__9993 = count__8704_9988; var G__9994 = (i__8705_9989 + 1); seq__8702_9986 = G__9991; chunk__8703_9987 = G__9992; count__8704_9988 = G__9993; i__8705_9989 = G__9994; continue; } } else {var temp__4092__auto___9995 = cljs.core.seq.call(null,seq__8702_9986);if(temp__4092__auto___9995) {var seq__8702_9996__$1 = temp__4092__auto___9995;if(cljs.core.chunked_seq_QMARK_.call(null,seq__8702_9996__$1)) {var c__5632__auto___9997 = cljs.core.chunk_first.call(null,seq__8702_9996__$1);{ var G__9998 = cljs.core.chunk_rest.call(null,seq__8702_9996__$1); var G__9999 = c__5632__auto___9997; var G__10000 = cljs.core.count.call(null,c__5632__auto___9997); var G__10001 = 0; seq__8702_9986 = G__9998; chunk__8703_9987 = G__9999; count__8704_9988 = G__10000; i__8705_9989 = G__10001; continue; } } else {var arg__7510__auto___10002 = cljs.core.first.call(null,seq__8702_9996__$1);a__7509__auto__.push(arg__7510__auto___10002); { var G__10003 = cljs.core.next.call(null,seq__8702_9996__$1); var G__10004 = null; var G__10005 = 0; var G__10006 = 0; seq__8702_9986 = G__10003; chunk__8703_9987 = G__10004; count__8704_9988 = G__10005; i__8705_9989 = G__10006; continue; } } } else {} } break; } return React.DOM.dd.apply(null,a__7509__auto__); }; var dd = function (var_args){ var args__7508__auto__ = null;if (arguments.length > 0) { args__7508__auto__ = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0),0);} return dd__delegate.call(this,args__7508__auto__);}; dd.cljs$lang$maxFixedArity = 0; dd.cljs$lang$applyTo = (function (arglist__10007){ var args__7508__auto__ = cljs.core.seq(arglist__10007); return dd__delegate(args__7508__auto__); }); dd.cljs$core$IFn$_invoke$arity$variadic = dd__delegate; return dd; })() ; /** * @param {...*} var_args */ quiescent.dom.del = (function() { var del__delegate = function (args__7508__auto__){var a__7509__auto__ = [];a__7509__auto__.push(quiescent.js_props.call(null,cljs.core.first.call(null,args__7508__auto__))); var seq__8710_10008 = cljs.core.seq.call(null,cljs.core.rest.call(null,args__7508__auto__));var chunk__8711_10009 = null;var count__8712_10010 = 0;var i__8713_10011 = 0;while(true){ if((i__8713_10011 < count__8712_10010)) {var arg__7510__auto___10012 = cljs.core._nth.call(null,chunk__8711_10009,i__8713_10011);a__7509__auto__.push(arg__7510__auto___10012); { var G__10013 = seq__8710_10008; var G__10014 = chunk__8711_10009; var G__10015 = count__8712_10010; var G__10016 = (i__8713_10011 + 1); seq__8710_10008 = G__10013; chunk__8711_10009 = G__10014; count__8712_10010 = G__10015; i__8713_10011 = G__10016; continue; } } else {var temp__4092__auto___10017 = cljs.core.seq.call(null,seq__8710_10008);if(temp__4092__auto___10017) {var seq__8710_10018__$1 = temp__4092__auto___10017;if(cljs.core.chunked_seq_QMARK_.call(null,seq__8710_10018__$1)) {var c__5632__auto___10019 = cljs.core.chunk_first.call(null,seq__8710_10018__$1);{ var G__10020 = cljs.core.chunk_rest.call(null,seq__8710_10018__$1); var G__10021 = c__5632__auto___10019; var G__10022 = cljs.core.count.call(null,c__5632__auto___10019); var G__10023 = 0; seq__8710_10008 = G__10020; chunk__8711_10009 = G__10021; count__8712_10010 = G__10022; i__8713_10011 = G__10023; continue; } } else {var arg__7510__auto___10024 = cljs.core.first.call(null,seq__8710_10018__$1);a__7509__auto__.push(arg__7510__auto___10024); { var G__10025 = cljs.core.next.call(null,seq__8710_10018__$1); var G__10026 = null; var G__10027 = 0; var G__10028 = 0; seq__8710_10008 = G__10025; chunk__8711_10009 = G__10026; count__8712_10010 = G__10027; i__8713_10011 = G__10028; continue; } } } else {} } break; } return React.DOM.del.apply(null,a__7509__auto__); }; var del = function (var_args){ var args__7508__auto__ = null;if (arguments.length > 0) { args__7508__auto__ = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0),0);} return del__delegate.call(this,args__7508__auto__);}; del.cljs$lang$maxFixedArity = 0; del.cljs$lang$applyTo = (function (arglist__10029){ var args__7508__auto__ = cljs.core.seq(arglist__10029); return del__delegate(args__7508__auto__); }); del.cljs$core$IFn$_invoke$arity$variadic = del__delegate; return del; })() ; /** * @param {...*} var_args */ quiescent.dom.details = (function() { var details__delegate = function (args__7508__auto__){var a__7509__auto__ = [];a__7509__auto__.push(quiescent.js_props.call(null,cljs.core.first.call(null,args__7508__auto__))); var seq__8718_10030 = cljs.core.seq.call(null,cljs.core.rest.call(null,args__7508__auto__));var chunk__8719_10031 = null;var count__8720_10032 = 0;var i__8721_10033 = 0;while(true){ if((i__8721_10033 < count__8720_10032)) {var arg__7510__auto___10034 = cljs.core._nth.call(null,chunk__8719_10031,i__8721_10033);a__7509__auto__.push(arg__7510__auto___10034); { var G__10035 = seq__8718_10030; var G__10036 = chunk__8719_10031; var G__10037 = count__8720_10032; var G__10038 = (i__8721_10033 + 1); seq__8718_10030 = G__10035; chunk__8719_10031 = G__10036; count__8720_10032 = G__10037; i__8721_10033 = G__10038; continue; } } else {var temp__4092__auto___10039 = cljs.core.seq.call(null,seq__8718_10030);if(temp__4092__auto___10039) {var seq__8718_10040__$1 = temp__4092__auto___10039;if(cljs.core.chunked_seq_QMARK_.call(null,seq__8718_10040__$1)) {var c__5632__auto___10041 = cljs.core.chunk_first.call(null,seq__8718_10040__$1);{ var G__10042 = cljs.core.chunk_rest.call(null,seq__8718_10040__$1); var G__10043 = c__5632__auto___10041; var G__10044 = cljs.core.count.call(null,c__5632__auto___10041); var G__10045 = 0; seq__8718_10030 = G__10042; chunk__8719_10031 = G__10043; count__8720_10032 = G__10044; i__8721_10033 = G__10045; continue; } } else {var arg__7510__auto___10046 = cljs.core.first.call(null,seq__8718_10040__$1);a__7509__auto__.push(arg__7510__auto___10046); { var G__10047 = cljs.core.next.call(null,seq__8718_10040__$1); var G__10048 = null; var G__10049 = 0; var G__10050 = 0; seq__8718_10030 = G__10047; chunk__8719_10031 = G__10048; count__8720_10032 = G__10049; i__8721_10033 = G__10050; continue; } } } else {} } break; } return React.DOM.details.apply(null,a__7509__auto__); }; var details = function (var_args){ var args__7508__auto__ = null;if (arguments.length > 0) { args__7508__auto__ = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0),0);} return details__delegate.call(this,args__7508__auto__);}; details.cljs$lang$maxFixedArity = 0; details.cljs$lang$applyTo = (function (arglist__10051){ var args__7508__auto__ = cljs.core.seq(arglist__10051); return details__delegate(args__7508__auto__); }); details.cljs$core$IFn$_invoke$arity$variadic = details__delegate; return details; })() ; /** * @param {...*} var_args */ quiescent.dom.dfn = (function() { var dfn__delegate = function (args__7508__auto__){var a__7509__auto__ = [];a__7509__auto__.push(quiescent.js_props.call(null,cljs.core.first.call(null,args__7508__auto__))); var seq__8726_10052 = cljs.core.seq.call(null,cljs.core.rest.call(null,args__7508__auto__));var chunk__8727_10053 = null;var count__8728_10054 = 0;var i__8729_10055 = 0;while(true){ if((i__8729_10055 < count__8728_10054)) {var arg__7510__auto___10056 = cljs.core._nth.call(null,chunk__8727_10053,i__8729_10055);a__7509__auto__.push(arg__7510__auto___10056); { var G__10057 = seq__8726_10052; var G__10058 = chunk__8727_10053; var G__10059 = count__8728_10054; var G__10060 = (i__8729_10055 + 1); seq__8726_10052 = G__10057; chunk__8727_10053 = G__10058; count__8728_10054 = G__10059; i__8729_10055 = G__10060; continue; } } else {var temp__4092__auto___10061 = cljs.core.seq.call(null,seq__8726_10052);if(temp__4092__auto___10061) {var seq__8726_10062__$1 = temp__4092__auto___10061;if(cljs.core.chunked_seq_QMARK_.call(null,seq__8726_10062__$1)) {var c__5632__auto___10063 = cljs.core.chunk_first.call(null,seq__8726_10062__$1);{ var G__10064 = cljs.core.chunk_rest.call(null,seq__8726_10062__$1); var G__10065 = c__5632__auto___10063; var G__10066 = cljs.core.count.call(null,c__5632__auto___10063); var G__10067 = 0; seq__8726_10052 = G__10064; chunk__8727_10053 = G__10065; count__8728_10054 = G__10066; i__8729_10055 = G__10067; continue; } } else {var arg__7510__auto___10068 = cljs.core.first.call(null,seq__8726_10062__$1);a__7509__auto__.push(arg__7510__auto___10068); { var G__10069 = cljs.core.next.call(null,seq__8726_10062__$1); var G__10070 = null; var G__10071 = 0; var G__10072 = 0; seq__8726_10052 = G__10069; chunk__8727_10053 = G__10070; count__8728_10054 = G__10071; i__8729_10055 = G__10072; continue; } } } else {} } break; } return React.DOM.dfn.apply(null,a__7509__auto__); }; var dfn = function (var_args){ var args__7508__auto__ = null;if (arguments.length > 0) { args__7508__auto__ = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0),0);} return dfn__delegate.call(this,args__7508__auto__);}; dfn.cljs$lang$maxFixedArity = 0; dfn.cljs$lang$applyTo = (function (arglist__10073){ var args__7508__auto__ = cljs.core.seq(arglist__10073); return dfn__delegate(args__7508__auto__); }); dfn.cljs$core$IFn$_invoke$arity$variadic = dfn__delegate; return dfn; })() ; /** * @param {...*} var_args */ quiescent.dom.div = (function() { var div__delegate = function (args__7508__auto__){var a__7509__auto__ = [];a__7509__auto__.push(quiescent.js_props.call(null,cljs.core.first.call(null,args__7508__auto__))); var seq__8734_10074 = cljs.core.seq.call(null,cljs.core.rest.call(null,args__7508__auto__));var chunk__8735_10075 = null;var count__8736_10076 = 0;var i__8737_10077 = 0;while(true){ if((i__8737_10077 < count__8736_10076)) {var arg__7510__auto___10078 = cljs.core._nth.call(null,chunk__8735_10075,i__8737_10077);a__7509__auto__.push(arg__7510__auto___10078); { var G__10079 = seq__8734_10074; var G__10080 = chunk__8735_10075; var G__10081 = count__8736_10076; var G__10082 = (i__8737_10077 + 1); seq__8734_10074 = G__10079; chunk__8735_10075 = G__10080; count__8736_10076 = G__10081; i__8737_10077 = G__10082; continue; } } else {var temp__4092__auto___10083 = cljs.core.seq.call(null,seq__8734_10074);if(temp__4092__auto___10083) {var seq__8734_10084__$1 = temp__4092__auto___10083;if(cljs.core.chunked_seq_QMARK_.call(null,seq__8734_10084__$1)) {var c__5632__auto___10085 = cljs.core.chunk_first.call(null,seq__8734_10084__$1);{ var G__10086 = cljs.core.chunk_rest.call(null,seq__8734_10084__$1); var G__10087 = c__5632__auto___10085; var G__10088 = cljs.core.count.call(null,c__5632__auto___10085); var G__10089 = 0; seq__8734_10074 = G__10086; chunk__8735_10075 = G__10087; count__8736_10076 = G__10088; i__8737_10077 = G__10089; continue; } } else {var arg__7510__auto___10090 = cljs.core.first.call(null,seq__8734_10084__$1);a__7509__auto__.push(arg__7510__auto___10090); { var G__10091 = cljs.core.next.call(null,seq__8734_10084__$1); var G__10092 = null; var G__10093 = 0; var G__10094 = 0; seq__8734_10074 = G__10091; chunk__8735_10075 = G__10092; count__8736_10076 = G__10093; i__8737_10077 = G__10094; continue; } } } else {} } break; } return React.DOM.div.apply(null,a__7509__auto__); }; var div = function (var_args){ var args__7508__auto__ = null;if (arguments.length > 0) { args__7508__auto__ = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0),0);} return div__delegate.call(this,args__7508__auto__);}; div.cljs$lang$maxFixedArity = 0; div.cljs$lang$applyTo = (function (arglist__10095){ var args__7508__auto__ = cljs.core.seq(arglist__10095); return div__delegate(args__7508__auto__); }); div.cljs$core$IFn$_invoke$arity$variadic = div__delegate; return div; })() ; /** * @param {...*} var_args */ quiescent.dom.dl = (function() { var dl__delegate = function (args__7508__auto__){var a__7509__auto__ = [];a__7509__auto__.push(quiescent.js_props.call(null,cljs.core.first.call(null,args__7508__auto__))); var seq__8742_10096 = cljs.core.seq.call(null,cljs.core.rest.call(null,args__7508__auto__));var chunk__8743_10097 = null;var count__8744_10098 = 0;var i__8745_10099 = 0;while(true){ if((i__8745_10099 < count__8744_10098)) {var arg__7510__auto___10100 = cljs.core._nth.call(null,chunk__8743_10097,i__8745_10099);a__7509__auto__.push(arg__7510__auto___10100); { var G__10101 = seq__8742_10096; var G__10102 = chunk__8743_10097; var G__10103 = count__8744_10098; var G__10104 = (i__8745_10099 + 1); seq__8742_10096 = G__10101; chunk__8743_10097 = G__10102; count__8744_10098 = G__10103; i__8745_10099 = G__10104; continue; } } else {var temp__4092__auto___10105 = cljs.core.seq.call(null,seq__8742_10096);if(temp__4092__auto___10105) {var seq__8742_10106__$1 = temp__4092__auto___10105;if(cljs.core.chunked_seq_QMARK_.call(null,seq__8742_10106__$1)) {var c__5632__auto___10107 = cljs.core.chunk_first.call(null,seq__8742_10106__$1);{ var G__10108 = cljs.core.chunk_rest.call(null,seq__8742_10106__$1); var G__10109 = c__5632__auto___10107; var G__10110 = cljs.core.count.call(null,c__5632__auto___10107); var G__10111 = 0; seq__8742_10096 = G__10108; chunk__8743_10097 = G__10109; count__8744_10098 = G__10110; i__8745_10099 = G__10111; continue; } } else {var arg__7510__auto___10112 = cljs.core.first.call(null,seq__8742_10106__$1);a__7509__auto__.push(arg__7510__auto___10112); { var G__10113 = cljs.core.next.call(null,seq__8742_10106__$1); var G__10114 = null; var G__10115 = 0; var G__10116 = 0; seq__8742_10096 = G__10113; chunk__8743_10097 = G__10114; count__8744_10098 = G__10115; i__8745_10099 = G__10116; continue; } } } else {} } break; } return React.DOM.dl.apply(null,a__7509__auto__); }; var dl = function (var_args){ var args__7508__auto__ = null;if (arguments.length > 0) { args__7508__auto__ = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0),0);} return dl__delegate.call(this,args__7508__auto__);}; dl.cljs$lang$maxFixedArity = 0; dl.cljs$lang$applyTo = (function (arglist__10117){ var args__7508__auto__ = cljs.core.seq(arglist__10117); return dl__delegate(args__7508__auto__); }); dl.cljs$core$IFn$_invoke$arity$variadic = dl__delegate; return dl; })() ; /** * @param {...*} var_args */ quiescent.dom.dt = (function() { var dt__delegate = function (args__7508__auto__){var a__7509__auto__ = [];a__7509__auto__.push(quiescent.js_props.call(null,cljs.core.first.call(null,args__7508__auto__))); var seq__8750_10118 = cljs.core.seq.call(null,cljs.core.rest.call(null,args__7508__auto__));var chunk__8751_10119 = null;var count__8752_10120 = 0;var i__8753_10121 = 0;while(true){ if((i__8753_10121 < count__8752_10120)) {var arg__7510__auto___10122 = cljs.core._nth.call(null,chunk__8751_10119,i__8753_10121);a__7509__auto__.push(arg__7510__auto___10122); { var G__10123 = seq__8750_10118; var G__10124 = chunk__8751_10119; var G__10125 = count__8752_10120; var G__10126 = (i__8753_10121 + 1); seq__8750_10118 = G__10123; chunk__8751_10119 = G__10124; count__8752_10120 = G__10125; i__8753_10121 = G__10126; continue; } } else {var temp__4092__auto___10127 = cljs.core.seq.call(null,seq__8750_10118);if(temp__4092__auto___10127) {var seq__8750_10128__$1 = temp__4092__auto___10127;if(cljs.core.chunked_seq_QMARK_.call(null,seq__8750_10128__$1)) {var c__5632__auto___10129 = cljs.core.chunk_first.call(null,seq__8750_10128__$1);{ var G__10130 = cljs.core.chunk_rest.call(null,seq__8750_10128__$1); var G__10131 = c__5632__auto___10129; var G__10132 = cljs.core.count.call(null,c__5632__auto___10129); var G__10133 = 0; seq__8750_10118 = G__10130; chunk__8751_10119 = G__10131; count__8752_10120 = G__10132; i__8753_10121 = G__10133; continue; } } else {var arg__7510__auto___10134 = cljs.core.first.call(null,seq__8750_10128__$1);a__7509__auto__.push(arg__7510__auto___10134); { var G__10135 = cljs.core.next.call(null,seq__8750_10128__$1); var G__10136 = null; var G__10137 = 0; var G__10138 = 0; seq__8750_10118 = G__10135; chunk__8751_10119 = G__10136; count__8752_10120 = G__10137; i__8753_10121 = G__10138; continue; } } } else {} } break; } return React.DOM.dt.apply(null,a__7509__auto__); }; var dt = function (var_args){ var args__7508__auto__ = null;if (arguments.length > 0) { args__7508__auto__ = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0),0);} return dt__delegate.call(this,args__7508__auto__);}; dt.cljs$lang$maxFixedArity = 0; dt.cljs$lang$applyTo = (function (arglist__10139){ var args__7508__auto__ = cljs.core.seq(arglist__10139); return dt__delegate(args__7508__auto__); }); dt.cljs$core$IFn$_invoke$arity$variadic = dt__delegate; return dt; })() ; /** * @param {...*} var_args */ quiescent.dom.em = (function() { var em__delegate = function (args__7508__auto__){var a__7509__auto__ = [];a__7509__auto__.push(quiescent.js_props.call(null,cljs.core.first.call(null,args__7508__auto__))); var seq__8758_10140 = cljs.core.seq.call(null,cljs.core.rest.call(null,args__7508__auto__));var chunk__8759_10141 = null;var count__8760_10142 = 0;var i__8761_10143 = 0;while(true){ if((i__8761_10143 < count__8760_10142)) {var arg__7510__auto___10144 = cljs.core._nth.call(null,chunk__8759_10141,i__8761_10143);a__7509__auto__.push(arg__7510__auto___10144); { var G__10145 = seq__8758_10140; var G__10146 = chunk__8759_10141; var G__10147 = count__8760_10142; var G__10148 = (i__8761_10143 + 1); seq__8758_10140 = G__10145; chunk__8759_10141 = G__10146; count__8760_10142 = G__10147; i__8761_10143 = G__10148; continue; } } else {var temp__4092__auto___10149 = cljs.core.seq.call(null,seq__8758_10140);if(temp__4092__auto___10149) {var seq__8758_10150__$1 = temp__4092__auto___10149;if(cljs.core.chunked_seq_QMARK_.call(null,seq__8758_10150__$1)) {var c__5632__auto___10151 = cljs.core.chunk_first.call(null,seq__8758_10150__$1);{ var G__10152 = cljs.core.chunk_rest.call(null,seq__8758_10150__$1); var G__10153 = c__5632__auto___10151; var G__10154 = cljs.core.count.call(null,c__5632__auto___10151); var G__10155 = 0; seq__8758_10140 = G__10152; chunk__8759_10141 = G__10153; count__8760_10142 = G__10154; i__8761_10143 = G__10155; continue; } } else {var arg__7510__auto___10156 = cljs.core.first.call(null,seq__8758_10150__$1);a__7509__auto__.push(arg__7510__auto___10156); { var G__10157 = cljs.core.next.call(null,seq__8758_10150__$1); var G__10158 = null; var G__10159 = 0; var G__10160 = 0; seq__8758_10140 = G__10157; chunk__8759_10141 = G__10158; count__8760_10142 = G__10159; i__8761_10143 = G__10160; continue; } } } else {} } break; } return React.DOM.em.apply(null,a__7509__auto__); }; var em = function (var_args){ var args__7508__auto__ = null;if (arguments.length > 0) { args__7508__auto__ = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0),0);} return em__delegate.call(this,args__7508__auto__);}; em.cljs$lang$maxFixedArity = 0; em.cljs$lang$applyTo = (function (arglist__10161){ var args__7508__auto__ = cljs.core.seq(arglist__10161); return em__delegate(args__7508__auto__); }); em.cljs$core$IFn$_invoke$arity$variadic = em__delegate; return em; })() ; /** * @param {...*} var_args */ quiescent.dom.embed = (function() { var embed__delegate = function (args__7508__auto__){var a__7509__auto__ = [];a__7509__auto__.push(quiescent.js_props.call(null,cljs.core.first.call(null,args__7508__auto__))); var seq__8774_10162 = cljs.core.seq.call(null,cljs.core.rest.call(null,args__7508__auto__));var chunk__8775_10163 = null;var count__8776_10164 = 0;var i__8777_10165 = 0;while(true){ if((i__8777_10165 < count__8776_10164)) {var arg__7510__auto___10166 = cljs.core._nth.call(null,chunk__8775_10163,i__8777_10165);a__7509__auto__.push(arg__7510__auto___10166); { var G__10167 = seq__8774_10162; var G__10168 = chunk__8775_10163; var G__10169 = count__8776_10164; var G__10170 = (i__8777_10165 + 1); seq__8774_10162 = G__10167; chunk__8775_10163 = G__10168; count__8776_10164 = G__10169; i__8777_10165 = G__10170; continue; } } else {var temp__4092__auto___10171 = cljs.core.seq.call(null,seq__8774_10162);if(temp__4092__auto___10171) {var seq__8774_10172__$1 = temp__4092__auto___10171;if(cljs.core.chunked_seq_QMARK_.call(null,seq__8774_10172__$1)) {var c__5632__auto___10173 = cljs.core.chunk_first.call(null,seq__8774_10172__$1);{ var G__10174 = cljs.core.chunk_rest.call(null,seq__8774_10172__$1); var G__10175 = c__5632__auto___10173; var G__10176 = cljs.core.count.call(null,c__5632__auto___10173); var G__10177 = 0; seq__8774_10162 = G__10174; chunk__8775_10163 = G__10175; count__8776_10164 = G__10176; i__8777_10165 = G__10177; continue; } } else {var arg__7510__auto___10178 = cljs.core.first.call(null,seq__8774_10172__$1);a__7509__auto__.push(arg__7510__auto___10178); { var G__10179 = cljs.core.next.call(null,seq__8774_10172__$1); var G__10180 = null; var G__10181 = 0; var G__10182 = 0; seq__8774_10162 = G__10179; chunk__8775_10163 = G__10180; count__8776_10164 = G__10181; i__8777_10165 = G__10182; continue; } } } else {} } break; } return React.DOM.embed.apply(null,a__7509__auto__); }; var embed = function (var_args){ var args__7508__auto__ = null;if (arguments.length > 0) { args__7508__auto__ = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0),0);} return embed__delegate.call(this,args__7508__auto__);}; embed.cljs$lang$maxFixedArity = 0; embed.cljs$lang$applyTo = (function (arglist__10183){ var args__7508__auto__ = cljs.core.seq(arglist__10183); return embed__delegate(args__7508__auto__); }); embed.cljs$core$IFn$_invoke$arity$variadic = embed__delegate; return embed; })() ; /** * @param {...*} var_args */ quiescent.dom.fieldset = (function() { var fieldset__delegate = function (args__7508__auto__){var a__7509__auto__ = [];a__7509__auto__.push(quiescent.js_props.call(null,cljs.core.first.call(null,args__7508__auto__))); var seq__8782_10184 = cljs.core.seq.call(null,cljs.core.rest.call(null,args__7508__auto__));var chunk__8783_10185 = null;var count__8784_10186 = 0;var i__8785_10187 = 0;while(true){ if((i__8785_10187 < count__8784_10186)) {var arg__7510__auto___10188 = cljs.core._nth.call(null,chunk__8783_10185,i__8785_10187);a__7509__auto__.push(arg__7510__auto___10188); { var G__10189 = seq__8782_10184; var G__10190 = chunk__8783_10185; var G__10191 = count__8784_10186; var G__10192 = (i__8785_10187 + 1); seq__8782_10184 = G__10189; chunk__8783_10185 = G__10190; count__8784_10186 = G__10191; i__8785_10187 = G__10192; continue; } } else {var temp__4092__auto___10193 = cljs.core.seq.call(null,seq__8782_10184);if(temp__4092__auto___10193) {var seq__8782_10194__$1 = temp__4092__auto___10193;if(cljs.core.chunked_seq_QMARK_.call(null,seq__8782_10194__$1)) {var c__5632__auto___10195 = cljs.core.chunk_first.call(null,seq__8782_10194__$1);{ var G__10196 = cljs.core.chunk_rest.call(null,seq__8782_10194__$1); var G__10197 = c__5632__auto___10195; var G__10198 = cljs.core.count.call(null,c__5632__auto___10195); var G__10199 = 0; seq__8782_10184 = G__10196; chunk__8783_10185 = G__10197; count__8784_10186 = G__10198; i__8785_10187 = G__10199; continue; } } else {var arg__7510__auto___10200 = cljs.core.first.call(null,seq__8782_10194__$1);a__7509__auto__.push(arg__7510__auto___10200); { var G__10201 = cljs.core.next.call(null,seq__8782_10194__$1); var G__10202 = null; var G__10203 = 0; var G__10204 = 0; seq__8782_10184 = G__10201; chunk__8783_10185 = G__10202; count__8784_10186 = G__10203; i__8785_10187 = G__10204; continue; } } } else {} } break; } return React.DOM.fieldset.apply(null,a__7509__auto__); }; var fieldset = function (var_args){ var args__7508__auto__ = null;if (arguments.length > 0) { args__7508__auto__ = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0),0);} return fieldset__delegate.call(this,args__7508__auto__);}; fieldset.cljs$lang$maxFixedArity = 0; fieldset.cljs$lang$applyTo = (function (arglist__10205){ var args__7508__auto__ = cljs.core.seq(arglist__10205); return fieldset__delegate(args__7508__auto__); }); fieldset.cljs$core$IFn$_invoke$arity$variadic = fieldset__delegate; return fieldset; })() ; /** * @param {...*} var_args */ quiescent.dom.figcaption = (function() { var figcaption__delegate = function (args__7508__auto__){var a__7509__auto__ = [];a__7509__auto__.push(quiescent.js_props.call(null,cljs.core.first.call(null,args__7508__auto__))); var seq__8790_10206 = cljs.core.seq.call(null,cljs.core.rest.call(null,args__7508__auto__));var chunk__8791_10207 = null;var count__8792_10208 = 0;var i__8793_10209 = 0;while(true){ if((i__8793_10209 < count__8792_10208)) {var arg__7510__auto___10210 = cljs.core._nth.call(null,chunk__8791_10207,i__8793_10209);a__7509__auto__.push(arg__7510__auto___10210); { var G__10211 = seq__8790_10206; var G__10212 = chunk__8791_10207; var G__10213 = count__8792_10208; var G__10214 = (i__8793_10209 + 1); seq__8790_10206 = G__10211; chunk__8791_10207 = G__10212; count__8792_10208 = G__10213; i__8793_10209 = G__10214; continue; } } else {var temp__4092__auto___10215 = cljs.core.seq.call(null,seq__8790_10206);if(temp__4092__auto___10215) {var seq__8790_10216__$1 = temp__4092__auto___10215;if(cljs.core.chunked_seq_QMARK_.call(null,seq__8790_10216__$1)) {var c__5632__auto___10217 = cljs.core.chunk_first.call(null,seq__8790_10216__$1);{ var G__10218 = cljs.core.chunk_rest.call(null,seq__8790_10216__$1); var G__10219 = c__5632__auto___10217; var G__10220 = cljs.core.count.call(null,c__5632__auto___10217); var G__10221 = 0; seq__8790_10206 = G__10218; chunk__8791_10207 = G__10219; count__8792_10208 = G__10220; i__8793_10209 = G__10221; continue; } } else {var arg__7510__auto___10222 = cljs.core.first.call(null,seq__8790_10216__$1);a__7509__auto__.push(arg__7510__auto___10222); { var G__10223 = cljs.core.next.call(null,seq__8790_10216__$1); var G__10224 = null; var G__10225 = 0; var G__10226 = 0; seq__8790_10206 = G__10223; chunk__8791_10207 = G__10224; count__8792_10208 = G__10225; i__8793_10209 = G__10226; continue; } } } else {} } break; } return React.DOM.figcaption.apply(null,a__7509__auto__); }; var figcaption = function (var_args){ var args__7508__auto__ = null;if (arguments.length > 0) { args__7508__auto__ = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0),0);} return figcaption__delegate.call(this,args__7508__auto__);}; figcaption.cljs$lang$maxFixedArity = 0; figcaption.cljs$lang$applyTo = (function (arglist__10227){ var args__7508__auto__ = cljs.core.seq(arglist__10227); return figcaption__delegate(args__7508__auto__); }); figcaption.cljs$core$IFn$_invoke$arity$variadic = figcaption__delegate; return figcaption; })() ; /** * @param {...*} var_args */ quiescent.dom.figure = (function() { var figure__delegate = function (args__7508__auto__){var a__7509__auto__ = [];a__7509__auto__.push(quiescent.js_props.call(null,cljs.core.first.call(null,args__7508__auto__))); var seq__8798_10228 = cljs.core.seq.call(null,cljs.core.rest.call(null,args__7508__auto__));var chunk__8799_10229 = null;var count__8800_10230 = 0;var i__8801_10231 = 0;while(true){ if((i__8801_10231 < count__8800_10230)) {var arg__7510__auto___10232 = cljs.core._nth.call(null,chunk__8799_10229,i__8801_10231);a__7509__auto__.push(arg__7510__auto___10232); { var G__10233 = seq__8798_10228; var G__10234 = chunk__8799_10229; var G__10235 = count__8800_10230; var G__10236 = (i__8801_10231 + 1); seq__8798_10228 = G__10233; chunk__8799_10229 = G__10234; count__8800_10230 = G__10235; i__8801_10231 = G__10236; continue; } } else {var temp__4092__auto___10237 = cljs.core.seq.call(null,seq__8798_10228);if(temp__4092__auto___10237) {var seq__8798_10238__$1 = temp__4092__auto___10237;if(cljs.core.chunked_seq_QMARK_.call(null,seq__8798_10238__$1)) {var c__5632__auto___10239 = cljs.core.chunk_first.call(null,seq__8798_10238__$1);{ var G__10240 = cljs.core.chunk_rest.call(null,seq__8798_10238__$1); var G__10241 = c__5632__auto___10239; var G__10242 = cljs.core.count.call(null,c__5632__auto___10239); var G__10243 = 0; seq__8798_10228 = G__10240; chunk__8799_10229 = G__10241; count__8800_10230 = G__10242; i__8801_10231 = G__10243; continue; } } else {var arg__7510__auto___10244 = cljs.core.first.call(null,seq__8798_10238__$1);a__7509__auto__.push(arg__7510__auto___10244); { var G__10245 = cljs.core.next.call(null,seq__8798_10238__$1); var G__10246 = null; var G__10247 = 0; var G__10248 = 0; seq__8798_10228 = G__10245; chunk__8799_10229 = G__10246; count__8800_10230 = G__10247; i__8801_10231 = G__10248; continue; } } } else {} } break; } return React.DOM.figure.apply(null,a__7509__auto__); }; var figure = function (var_args){ var args__7508__auto__ = null;if (arguments.length > 0) { args__7508__auto__ = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0),0);} return figure__delegate.call(this,args__7508__auto__);}; figure.cljs$lang$maxFixedArity = 0; figure.cljs$lang$applyTo = (function (arglist__10249){ var args__7508__auto__ = cljs.core.seq(arglist__10249); return figure__delegate(args__7508__auto__); }); figure.cljs$core$IFn$_invoke$arity$variadic = figure__delegate; return figure; })() ; /** * @param {...*} var_args */ quiescent.dom.footer = (function() { var footer__delegate = function (args__7508__auto__){var a__7509__auto__ = [];a__7509__auto__.push(quiescent.js_props.call(null,cljs.core.first.call(null,args__7508__auto__))); var seq__8806_10250 = cljs.core.seq.call(null,cljs.core.rest.call(null,args__7508__auto__));var chunk__8807_10251 = null;var count__8808_10252 = 0;var i__8809_10253 = 0;while(true){ if((i__8809_10253 < count__8808_10252)) {var arg__7510__auto___10254 = cljs.core._nth.call(null,chunk__8807_10251,i__8809_10253);a__7509__auto__.push(arg__7510__auto___10254); { var G__10255 = seq__8806_10250; var G__10256 = chunk__8807_10251; var G__10257 = count__8808_10252; var G__10258 = (i__8809_10253 + 1); seq__8806_10250 = G__10255; chunk__8807_10251 = G__10256; count__8808_10252 = G__10257; i__8809_10253 = G__10258; continue; } } else {var temp__4092__auto___10259 = cljs.core.seq.call(null,seq__8806_10250);if(temp__4092__auto___10259) {var seq__8806_10260__$1 = temp__4092__auto___10259;if(cljs.core.chunked_seq_QMARK_.call(null,seq__8806_10260__$1)) {var c__5632__auto___10261 = cljs.core.chunk_first.call(null,seq__8806_10260__$1);{ var G__10262 = cljs.core.chunk_rest.call(null,seq__8806_10260__$1); var G__10263 = c__5632__auto___10261; var G__10264 = cljs.core.count.call(null,c__5632__auto___10261); var G__10265 = 0; seq__8806_10250 = G__10262; chunk__8807_10251 = G__10263; count__8808_10252 = G__10264; i__8809_10253 = G__10265; continue; } } else {var arg__7510__auto___10266 = cljs.core.first.call(null,seq__8806_10260__$1);a__7509__auto__.push(arg__7510__auto___10266); { var G__10267 = cljs.core.next.call(null,seq__8806_10260__$1); var G__10268 = null; var G__10269 = 0; var G__10270 = 0; seq__8806_10250 = G__10267; chunk__8807_10251 = G__10268; count__8808_10252 = G__10269; i__8809_10253 = G__10270; continue; } } } else {} } break; } return React.DOM.footer.apply(null,a__7509__auto__); }; var footer = function (var_args){ var args__7508__auto__ = null;if (arguments.length > 0) { args__7508__auto__ = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0),0);} return footer__delegate.call(this,args__7508__auto__);}; footer.cljs$lang$maxFixedArity = 0; footer.cljs$lang$applyTo = (function (arglist__10271){ var args__7508__auto__ = cljs.core.seq(arglist__10271); return footer__delegate(args__7508__auto__); }); footer.cljs$core$IFn$_invoke$arity$variadic = footer__delegate; return footer; })() ; /** * @param {...*} var_args */ quiescent.dom.form = (function() { var form__delegate = function (args__7508__auto__){var a__7509__auto__ = [];a__7509__auto__.push(quiescent.js_props.call(null,cljs.core.first.call(null,args__7508__auto__))); var seq__8814_10272 = cljs.core.seq.call(null,cljs.core.rest.call(null,args__7508__auto__));var chunk__8815_10273 = null;var count__8816_10274 = 0;var i__8817_10275 = 0;while(true){ if((i__8817_10275 < count__8816_10274)) {var arg__7510__auto___10276 = cljs.core._nth.call(null,chunk__8815_10273,i__8817_10275);a__7509__auto__.push(arg__7510__auto___10276); { var G__10277 = seq__8814_10272; var G__10278 = chunk__8815_10273; var G__10279 = count__8816_10274; var G__10280 = (i__8817_10275 + 1); seq__8814_10272 = G__10277; chunk__8815_10273 = G__10278; count__8816_10274 = G__10279; i__8817_10275 = G__10280; continue; } } else {var temp__4092__auto___10281 = cljs.core.seq.call(null,seq__8814_10272);if(temp__4092__auto___10281) {var seq__8814_10282__$1 = temp__4092__auto___10281;if(cljs.core.chunked_seq_QMARK_.call(null,seq__8814_10282__$1)) {var c__5632__auto___10283 = cljs.core.chunk_first.call(null,seq__8814_10282__$1);{ var G__10284 = cljs.core.chunk_rest.call(null,seq__8814_10282__$1); var G__10285 = c__5632__auto___10283; var G__10286 = cljs.core.count.call(null,c__5632__auto___10283); var G__10287 = 0; seq__8814_10272 = G__10284; chunk__8815_10273 = G__10285; count__8816_10274 = G__10286; i__8817_10275 = G__10287; continue; } } else {var arg__7510__auto___10288 = cljs.core.first.call(null,seq__8814_10282__$1);a__7509__auto__.push(arg__7510__auto___10288); { var G__10289 = cljs.core.next.call(null,seq__8814_10282__$1); var G__10290 = null; var G__10291 = 0; var G__10292 = 0; seq__8814_10272 = G__10289; chunk__8815_10273 = G__10290; count__8816_10274 = G__10291; i__8817_10275 = G__10292; continue; } } } else {} } break; } return React.DOM.form.apply(null,a__7509__auto__); }; var form = function (var_args){ var args__7508__auto__ = null;if (arguments.length > 0) { args__7508__auto__ = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0),0);} return form__delegate.call(this,args__7508__auto__);}; form.cljs$lang$maxFixedArity = 0; form.cljs$lang$applyTo = (function (arglist__10293){ var args__7508__auto__ = cljs.core.seq(arglist__10293); return form__delegate(args__7508__auto__); }); form.cljs$core$IFn$_invoke$arity$variadic = form__delegate; return form; })() ; /** * @param {...*} var_args */ quiescent.dom.h1 = (function() { var h1__delegate = function (args__7508__auto__){var a__7509__auto__ = [];a__7509__auto__.push(quiescent.js_props.call(null,cljs.core.first.call(null,args__7508__auto__))); var seq__8822_10294 = cljs.core.seq.call(null,cljs.core.rest.call(null,args__7508__auto__));var chunk__8823_10295 = null;var count__8824_10296 = 0;var i__8825_10297 = 0;while(true){ if((i__8825_10297 < count__8824_10296)) {var arg__7510__auto___10298 = cljs.core._nth.call(null,chunk__8823_10295,i__8825_10297);a__7509__auto__.push(arg__7510__auto___10298); { var G__10299 = seq__8822_10294; var G__10300 = chunk__8823_10295; var G__10301 = count__8824_10296; var G__10302 = (i__8825_10297 + 1); seq__8822_10294 = G__10299; chunk__8823_10295 = G__10300; count__8824_10296 = G__10301; i__8825_10297 = G__10302; continue; } } else {var temp__4092__auto___10303 = cljs.core.seq.call(null,seq__8822_10294);if(temp__4092__auto___10303) {var seq__8822_10304__$1 = temp__4092__auto___10303;if(cljs.core.chunked_seq_QMARK_.call(null,seq__8822_10304__$1)) {var c__5632__auto___10305 = cljs.core.chunk_first.call(null,seq__8822_10304__$1);{ var G__10306 = cljs.core.chunk_rest.call(null,seq__8822_10304__$1); var G__10307 = c__5632__auto___10305; var G__10308 = cljs.core.count.call(null,c__5632__auto___10305); var G__10309 = 0; seq__8822_10294 = G__10306; chunk__8823_10295 = G__10307; count__8824_10296 = G__10308; i__8825_10297 = G__10309; continue; } } else {var arg__7510__auto___10310 = cljs.core.first.call(null,seq__8822_10304__$1);a__7509__auto__.push(arg__7510__auto___10310); { var G__10311 = cljs.core.next.call(null,seq__8822_10304__$1); var G__10312 = null; var G__10313 = 0; var G__10314 = 0; seq__8822_10294 = G__10311; chunk__8823_10295 = G__10312; count__8824_10296 = G__10313; i__8825_10297 = G__10314; continue; } } } else {} } break; } return React.DOM.h1.apply(null,a__7509__auto__); }; var h1 = function (var_args){ var args__7508__auto__ = null;if (arguments.length > 0) { args__7508__auto__ = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0),0);} return h1__delegate.call(this,args__7508__auto__);}; h1.cljs$lang$maxFixedArity = 0; h1.cljs$lang$applyTo = (function (arglist__10315){ var args__7508__auto__ = cljs.core.seq(arglist__10315); return h1__delegate(args__7508__auto__); }); h1.cljs$core$IFn$_invoke$arity$variadic = h1__delegate; return h1; })() ; /** * @param {...*} var_args */ quiescent.dom.h2 = (function() { var h2__delegate = function (args__7508__auto__){var a__7509__auto__ = [];a__7509__auto__.push(quiescent.js_props.call(null,cljs.core.first.call(null,args__7508__auto__))); var seq__8830_10316 = cljs.core.seq.call(null,cljs.core.rest.call(null,args__7508__auto__));var chunk__8831_10317 = null;var count__8832_10318 = 0;var i__8833_10319 = 0;while(true){ if((i__8833_10319 < count__8832_10318)) {var arg__7510__auto___10320 = cljs.core._nth.call(null,chunk__8831_10317,i__8833_10319);a__7509__auto__.push(arg__7510__auto___10320); { var G__10321 = seq__8830_10316; var G__10322 = chunk__8831_10317; var G__10323 = count__8832_10318; var G__10324 = (i__8833_10319 + 1); seq__8830_10316 = G__10321; chunk__8831_10317 = G__10322; count__8832_10318 = G__10323; i__8833_10319 = G__10324; continue; } } else {var temp__4092__auto___10325 = cljs.core.seq.call(null,seq__8830_10316);if(temp__4092__auto___10325) {var seq__8830_10326__$1 = temp__4092__auto___10325;if(cljs.core.chunked_seq_QMARK_.call(null,seq__8830_10326__$1)) {var c__5632__auto___10327 = cljs.core.chunk_first.call(null,seq__8830_10326__$1);{ var G__10328 = cljs.core.chunk_rest.call(null,seq__8830_10326__$1); var G__10329 = c__5632__auto___10327; var G__10330 = cljs.core.count.call(null,c__5632__auto___10327); var G__10331 = 0; seq__8830_10316 = G__10328; chunk__8831_10317 = G__10329; count__8832_10318 = G__10330; i__8833_10319 = G__10331; continue; } } else {var arg__7510__auto___10332 = cljs.core.first.call(null,seq__8830_10326__$1);a__7509__auto__.push(arg__7510__auto___10332); { var G__10333 = cljs.core.next.call(null,seq__8830_10326__$1); var G__10334 = null; var G__10335 = 0; var G__10336 = 0; seq__8830_10316 = G__10333; chunk__8831_10317 = G__10334; count__8832_10318 = G__10335; i__8833_10319 = G__10336; continue; } } } else {} } break; } return React.DOM.h2.apply(null,a__7509__auto__); }; var h2 = function (var_args){ var args__7508__auto__ = null;if (arguments.length > 0) { args__7508__auto__ = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0),0);} return h2__delegate.call(this,args__7508__auto__);}; h2.cljs$lang$maxFixedArity = 0; h2.cljs$lang$applyTo = (function (arglist__10337){ var args__7508__auto__ = cljs.core.seq(arglist__10337); return h2__delegate(args__7508__auto__); }); h2.cljs$core$IFn$_invoke$arity$variadic = h2__delegate; return h2; })() ; /** * @param {...*} var_args */ quiescent.dom.h3 = (function() { var h3__delegate = function (args__7508__auto__){var a__7509__auto__ = [];a__7509__auto__.push(quiescent.js_props.call(null,cljs.core.first.call(null,args__7508__auto__))); var seq__8838_10338 = cljs.core.seq.call(null,cljs.core.rest.call(null,args__7508__auto__));var chunk__8839_10339 = null;var count__8840_10340 = 0;var i__8841_10341 = 0;while(true){ if((i__8841_10341 < count__8840_10340)) {var arg__7510__auto___10342 = cljs.core._nth.call(null,chunk__8839_10339,i__8841_10341);a__7509__auto__.push(arg__7510__auto___10342); { var G__10343 = seq__8838_10338; var G__10344 = chunk__8839_10339; var G__10345 = count__8840_10340; var G__10346 = (i__8841_10341 + 1); seq__8838_10338 = G__10343; chunk__8839_10339 = G__10344; count__8840_10340 = G__10345; i__8841_10341 = G__10346; continue; } } else {var temp__4092__auto___10347 = cljs.core.seq.call(null,seq__8838_10338);if(temp__4092__auto___10347) {var seq__8838_10348__$1 = temp__4092__auto___10347;if(cljs.core.chunked_seq_QMARK_.call(null,seq__8838_10348__$1)) {var c__5632__auto___10349 = cljs.core.chunk_first.call(null,seq__8838_10348__$1);{ var G__10350 = cljs.core.chunk_rest.call(null,seq__8838_10348__$1); var G__10351 = c__5632__auto___10349; var G__10352 = cljs.core.count.call(null,c__5632__auto___10349); var G__10353 = 0; seq__8838_10338 = G__10350; chunk__8839_10339 = G__10351; count__8840_10340 = G__10352; i__8841_10341 = G__10353; continue; } } else {var arg__7510__auto___10354 = cljs.core.first.call(null,seq__8838_10348__$1);a__7509__auto__.push(arg__7510__auto___10354); { var G__10355 = cljs.core.next.call(null,seq__8838_10348__$1); var G__10356 = null; var G__10357 = 0; var G__10358 = 0; seq__8838_10338 = G__10355; chunk__8839_10339 = G__10356; count__8840_10340 = G__10357; i__8841_10341 = G__10358; continue; } } } else {} } break; } return React.DOM.h3.apply(null,a__7509__auto__); }; var h3 = function (var_args){ var args__7508__auto__ = null;if (arguments.length > 0) { args__7508__auto__ = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0),0);} return h3__delegate.call(this,args__7508__auto__);}; h3.cljs$lang$maxFixedArity = 0; h3.cljs$lang$applyTo = (function (arglist__10359){ var args__7508__auto__ = cljs.core.seq(arglist__10359); return h3__delegate(args__7508__auto__); }); h3.cljs$core$IFn$_invoke$arity$variadic = h3__delegate; return h3; })() ; /** * @param {...*} var_args */ quiescent.dom.h4 = (function() { var h4__delegate = function (args__7508__auto__){var a__7509__auto__ = [];a__7509__auto__.push(quiescent.js_props.call(null,cljs.core.first.call(null,args__7508__auto__))); var seq__8846_10360 = cljs.core.seq.call(null,cljs.core.rest.call(null,args__7508__auto__));var chunk__8847_10361 = null;var count__8848_10362 = 0;var i__8849_10363 = 0;while(true){ if((i__8849_10363 < count__8848_10362)) {var arg__7510__auto___10364 = cljs.core._nth.call(null,chunk__8847_10361,i__8849_10363);a__7509__auto__.push(arg__7510__auto___10364); { var G__10365 = seq__8846_10360; var G__10366 = chunk__8847_10361; var G__10367 = count__8848_10362; var G__10368 = (i__8849_10363 + 1); seq__8846_10360 = G__10365; chunk__8847_10361 = G__10366; count__8848_10362 = G__10367; i__8849_10363 = G__10368; continue; } } else {var temp__4092__auto___10369 = cljs.core.seq.call(null,seq__8846_10360);if(temp__4092__auto___10369) {var seq__8846_10370__$1 = temp__4092__auto___10369;if(cljs.core.chunked_seq_QMARK_.call(null,seq__8846_10370__$1)) {var c__5632__auto___10371 = cljs.core.chunk_first.call(null,seq__8846_10370__$1);{ var G__10372 = cljs.core.chunk_rest.call(null,seq__8846_10370__$1); var G__10373 = c__5632__auto___10371; var G__10374 = cljs.core.count.call(null,c__5632__auto___10371); var G__10375 = 0; seq__8846_10360 = G__10372; chunk__8847_10361 = G__10373; count__8848_10362 = G__10374; i__8849_10363 = G__10375; continue; } } else {var arg__7510__auto___10376 = cljs.core.first.call(null,seq__8846_10370__$1);a__7509__auto__.push(arg__7510__auto___10376); { var G__10377 = cljs.core.next.call(null,seq__8846_10370__$1); var G__10378 = null; var G__10379 = 0; var G__10380 = 0; seq__8846_10360 = G__10377; chunk__8847_10361 = G__10378; count__8848_10362 = G__10379; i__8849_10363 = G__10380; continue; } } } else {} } break; } return React.DOM.h4.apply(null,a__7509__auto__); }; var h4 = function (var_args){ var args__7508__auto__ = null;if (arguments.length > 0) { args__7508__auto__ = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0),0);} return h4__delegate.call(this,args__7508__auto__);}; h4.cljs$lang$maxFixedArity = 0; h4.cljs$lang$applyTo = (function (arglist__10381){ var args__7508__auto__ = cljs.core.seq(arglist__10381); return h4__delegate(args__7508__auto__); }); h4.cljs$core$IFn$_invoke$arity$variadic = h4__delegate; return h4; })() ; /** * @param {...*} var_args */ quiescent.dom.h5 = (function() { var h5__delegate = function (args__7508__auto__){var a__7509__auto__ = [];a__7509__auto__.push(quiescent.js_props.call(null,cljs.core.first.call(null,args__7508__auto__))); var seq__8854_10382 = cljs.core.seq.call(null,cljs.core.rest.call(null,args__7508__auto__));var chunk__8855_10383 = null;var count__8856_10384 = 0;var i__8857_10385 = 0;while(true){ if((i__8857_10385 < count__8856_10384)) {var arg__7510__auto___10386 = cljs.core._nth.call(null,chunk__8855_10383,i__8857_10385);a__7509__auto__.push(arg__7510__auto___10386); { var G__10387 = seq__8854_10382; var G__10388 = chunk__8855_10383; var G__10389 = count__8856_10384; var G__10390 = (i__8857_10385 + 1); seq__8854_10382 = G__10387; chunk__8855_10383 = G__10388; count__8856_10384 = G__10389; i__8857_10385 = G__10390; continue; } } else {var temp__4092__auto___10391 = cljs.core.seq.call(null,seq__8854_10382);if(temp__4092__auto___10391) {var seq__8854_10392__$1 = temp__4092__auto___10391;if(cljs.core.chunked_seq_QMARK_.call(null,seq__8854_10392__$1)) {var c__5632__auto___10393 = cljs.core.chunk_first.call(null,seq__8854_10392__$1);{ var G__10394 = cljs.core.chunk_rest.call(null,seq__8854_10392__$1); var G__10395 = c__5632__auto___10393; var G__10396 = cljs.core.count.call(null,c__5632__auto___10393); var G__10397 = 0; seq__8854_10382 = G__10394; chunk__8855_10383 = G__10395; count__8856_10384 = G__10396; i__8857_10385 = G__10397; continue; } } else {var arg__7510__auto___10398 = cljs.core.first.call(null,seq__8854_10392__$1);a__7509__auto__.push(arg__7510__auto___10398); { var G__10399 = cljs.core.next.call(null,seq__8854_10392__$1); var G__10400 = null; var G__10401 = 0; var G__10402 = 0; seq__8854_10382 = G__10399; chunk__8855_10383 = G__10400; count__8856_10384 = G__10401; i__8857_10385 = G__10402; continue; } } } else {} } break; } return React.DOM.h5.apply(null,a__7509__auto__); }; var h5 = function (var_args){ var args__7508__auto__ = null;if (arguments.length > 0) { args__7508__auto__ = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0),0);} return h5__delegate.call(this,args__7508__auto__);}; h5.cljs$lang$maxFixedArity = 0; h5.cljs$lang$applyTo = (function (arglist__10403){ var args__7508__auto__ = cljs.core.seq(arglist__10403); return h5__delegate(args__7508__auto__); }); h5.cljs$core$IFn$_invoke$arity$variadic = h5__delegate; return h5; })() ; /** * @param {...*} var_args */ quiescent.dom.h6 = (function() { var h6__delegate = function (args__7508__auto__){var a__7509__auto__ = [];a__7509__auto__.push(quiescent.js_props.call(null,cljs.core.first.call(null,args__7508__auto__))); var seq__8862_10404 = cljs.core.seq.call(null,cljs.core.rest.call(null,args__7508__auto__));var chunk__8863_10405 = null;var count__8864_10406 = 0;var i__8865_10407 = 0;while(true){ if((i__8865_10407 < count__8864_10406)) {var arg__7510__auto___10408 = cljs.core._nth.call(null,chunk__8863_10405,i__8865_10407);a__7509__auto__.push(arg__7510__auto___10408); { var G__10409 = seq__8862_10404; var G__10410 = chunk__8863_10405; var G__10411 = count__8864_10406; var G__10412 = (i__8865_10407 + 1); seq__8862_10404 = G__10409; chunk__8863_10405 = G__10410; count__8864_10406 = G__10411; i__8865_10407 = G__10412; continue; } } else {var temp__4092__auto___10413 = cljs.core.seq.call(null,seq__8862_10404);if(temp__4092__auto___10413) {var seq__8862_10414__$1 = temp__4092__auto___10413;if(cljs.core.chunked_seq_QMARK_.call(null,seq__8862_10414__$1)) {var c__5632__auto___10415 = cljs.core.chunk_first.call(null,seq__8862_10414__$1);{ var G__10416 = cljs.core.chunk_rest.call(null,seq__8862_10414__$1); var G__10417 = c__5632__auto___10415; var G__10418 = cljs.core.count.call(null,c__5632__auto___10415); var G__10419 = 0; seq__8862_10404 = G__10416; chunk__8863_10405 = G__10417; count__8864_10406 = G__10418; i__8865_10407 = G__10419; continue; } } else {var arg__7510__auto___10420 = cljs.core.first.call(null,seq__8862_10414__$1);a__7509__auto__.push(arg__7510__auto___10420); { var G__10421 = cljs.core.next.call(null,seq__8862_10414__$1); var G__10422 = null; var G__10423 = 0; var G__10424 = 0; seq__8862_10404 = G__10421; chunk__8863_10405 = G__10422; count__8864_10406 = G__10423; i__8865_10407 = G__10424; continue; } } } else {} } break; } return React.DOM.h6.apply(null,a__7509__auto__); }; var h6 = function (var_args){ var args__7508__auto__ = null;if (arguments.length > 0) { args__7508__auto__ = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0),0);} return h6__delegate.call(this,args__7508__auto__);}; h6.cljs$lang$maxFixedArity = 0; h6.cljs$lang$applyTo = (function (arglist__10425){ var args__7508__auto__ = cljs.core.seq(arglist__10425); return h6__delegate(args__7508__auto__); }); h6.cljs$core$IFn$_invoke$arity$variadic = h6__delegate; return h6; })() ; /** * @param {...*} var_args */ quiescent.dom.head = (function() { var head__delegate = function (args__7508__auto__){var a__7509__auto__ = [];a__7509__auto__.push(quiescent.js_props.call(null,cljs.core.first.call(null,args__7508__auto__))); var seq__8870_10426 = cljs.core.seq.call(null,cljs.core.rest.call(null,args__7508__auto__));var chunk__8871_10427 = null;var count__8872_10428 = 0;var i__8873_10429 = 0;while(true){ if((i__8873_10429 < count__8872_10428)) {var arg__7510__auto___10430 = cljs.core._nth.call(null,chunk__8871_10427,i__8873_10429);a__7509__auto__.push(arg__7510__auto___10430); { var G__10431 = seq__8870_10426; var G__10432 = chunk__8871_10427; var G__10433 = count__8872_10428; var G__10434 = (i__8873_10429 + 1); seq__8870_10426 = G__10431; chunk__8871_10427 = G__10432; count__8872_10428 = G__10433; i__8873_10429 = G__10434; continue; } } else {var temp__4092__auto___10435 = cljs.core.seq.call(null,seq__8870_10426);if(temp__4092__auto___10435) {var seq__8870_10436__$1 = temp__4092__auto___10435;if(cljs.core.chunked_seq_QMARK_.call(null,seq__8870_10436__$1)) {var c__5632__auto___10437 = cljs.core.chunk_first.call(null,seq__8870_10436__$1);{ var G__10438 = cljs.core.chunk_rest.call(null,seq__8870_10436__$1); var G__10439 = c__5632__auto___10437; var G__10440 = cljs.core.count.call(null,c__5632__auto___10437); var G__10441 = 0; seq__8870_10426 = G__10438; chunk__8871_10427 = G__10439; count__8872_10428 = G__10440; i__8873_10429 = G__10441; continue; } } else {var arg__7510__auto___10442 = cljs.core.first.call(null,seq__8870_10436__$1);a__7509__auto__.push(arg__7510__auto___10442); { var G__10443 = cljs.core.next.call(null,seq__8870_10436__$1); var G__10444 = null; var G__10445 = 0; var G__10446 = 0; seq__8870_10426 = G__10443; chunk__8871_10427 = G__10444; count__8872_10428 = G__10445; i__8873_10429 = G__10446; continue; } } } else {} } break; } return React.DOM.head.apply(null,a__7509__auto__); }; var head = function (var_args){ var args__7508__auto__ = null;if (arguments.length > 0) { args__7508__auto__ = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0),0);} return head__delegate.call(this,args__7508__auto__);}; head.cljs$lang$maxFixedArity = 0; head.cljs$lang$applyTo = (function (arglist__10447){ var args__7508__auto__ = cljs.core.seq(arglist__10447); return head__delegate(args__7508__auto__); }); head.cljs$core$IFn$_invoke$arity$variadic = head__delegate; return head; })() ; /** * @param {...*} var_args */ quiescent.dom.header = (function() { var header__delegate = function (args__7508__auto__){var a__7509__auto__ = [];a__7509__auto__.push(quiescent.js_props.call(null,cljs.core.first.call(null,args__7508__auto__))); var seq__8878_10448 = cljs.core.seq.call(null,cljs.core.rest.call(null,args__7508__auto__));var chunk__8879_10449 = null;var count__8880_10450 = 0;var i__8881_10451 = 0;while(true){ if((i__8881_10451 < count__8880_10450)) {var arg__7510__auto___10452 = cljs.core._nth.call(null,chunk__8879_10449,i__8881_10451);a__7509__auto__.push(arg__7510__auto___10452); { var G__10453 = seq__8878_10448; var G__10454 = chunk__8879_10449; var G__10455 = count__8880_10450; var G__10456 = (i__8881_10451 + 1); seq__8878_10448 = G__10453; chunk__8879_10449 = G__10454; count__8880_10450 = G__10455; i__8881_10451 = G__10456; continue; } } else {var temp__4092__auto___10457 = cljs.core.seq.call(null,seq__8878_10448);if(temp__4092__auto___10457) {var seq__8878_10458__$1 = temp__4092__auto___10457;if(cljs.core.chunked_seq_QMARK_.call(null,seq__8878_10458__$1)) {var c__5632__auto___10459 = cljs.core.chunk_first.call(null,seq__8878_10458__$1);{ var G__10460 = cljs.core.chunk_rest.call(null,seq__8878_10458__$1); var G__10461 = c__5632__auto___10459; var G__10462 = cljs.core.count.call(null,c__5632__auto___10459); var G__10463 = 0; seq__8878_10448 = G__10460; chunk__8879_10449 = G__10461; count__8880_10450 = G__10462; i__8881_10451 = G__10463; continue; } } else {var arg__7510__auto___10464 = cljs.core.first.call(null,seq__8878_10458__$1);a__7509__auto__.push(arg__7510__auto___10464); { var G__10465 = cljs.core.next.call(null,seq__8878_10458__$1); var G__10466 = null; var G__10467 = 0; var G__10468 = 0; seq__8878_10448 = G__10465; chunk__8879_10449 = G__10466; count__8880_10450 = G__10467; i__8881_10451 = G__10468; continue; } } } else {} } break; } return React.DOM.header.apply(null,a__7509__auto__); }; var header = function (var_args){ var args__7508__auto__ = null;if (arguments.length > 0) { args__7508__auto__ = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0),0);} return header__delegate.call(this,args__7508__auto__);}; header.cljs$lang$maxFixedArity = 0; header.cljs$lang$applyTo = (function (arglist__10469){ var args__7508__auto__ = cljs.core.seq(arglist__10469); return header__delegate(args__7508__auto__); }); header.cljs$core$IFn$_invoke$arity$variadic = header__delegate; return header; })() ; /** * @param {...*} var_args */ quiescent.dom.hr = (function() { var hr__delegate = function (args__7508__auto__){var a__7509__auto__ = [];a__7509__auto__.push(quiescent.js_props.call(null,cljs.core.first.call(null,args__7508__auto__))); var seq__8886_10470 = cljs.core.seq.call(null,cljs.core.rest.call(null,args__7508__auto__));var chunk__8887_10471 = null;var count__8888_10472 = 0;var i__8889_10473 = 0;while(true){ if((i__8889_10473 < count__8888_10472)) {var arg__7510__auto___10474 = cljs.core._nth.call(null,chunk__8887_10471,i__8889_10473);a__7509__auto__.push(arg__7510__auto___10474); { var G__10475 = seq__8886_10470; var G__10476 = chunk__8887_10471; var G__10477 = count__8888_10472; var G__10478 = (i__8889_10473 + 1); seq__8886_10470 = G__10475; chunk__8887_10471 = G__10476; count__8888_10472 = G__10477; i__8889_10473 = G__10478; continue; } } else {var temp__4092__auto___10479 = cljs.core.seq.call(null,seq__8886_10470);if(temp__4092__auto___10479) {var seq__8886_10480__$1 = temp__4092__auto___10479;if(cljs.core.chunked_seq_QMARK_.call(null,seq__8886_10480__$1)) {var c__5632__auto___10481 = cljs.core.chunk_first.call(null,seq__8886_10480__$1);{ var G__10482 = cljs.core.chunk_rest.call(null,seq__8886_10480__$1); var G__10483 = c__5632__auto___10481; var G__10484 = cljs.core.count.call(null,c__5632__auto___10481); var G__10485 = 0; seq__8886_10470 = G__10482; chunk__8887_10471 = G__10483; count__8888_10472 = G__10484; i__8889_10473 = G__10485; continue; } } else {var arg__7510__auto___10486 = cljs.core.first.call(null,seq__8886_10480__$1);a__7509__auto__.push(arg__7510__auto___10486); { var G__10487 = cljs.core.next.call(null,seq__8886_10480__$1); var G__10488 = null; var G__10489 = 0; var G__10490 = 0; seq__8886_10470 = G__10487; chunk__8887_10471 = G__10488; count__8888_10472 = G__10489; i__8889_10473 = G__10490; continue; } } } else {} } break; } return React.DOM.hr.apply(null,a__7509__auto__); }; var hr = function (var_args){ var args__7508__auto__ = null;if (arguments.length > 0) { args__7508__auto__ = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0),0);} return hr__delegate.call(this,args__7508__auto__);}; hr.cljs$lang$maxFixedArity = 0; hr.cljs$lang$applyTo = (function (arglist__10491){ var args__7508__auto__ = cljs.core.seq(arglist__10491); return hr__delegate(args__7508__auto__); }); hr.cljs$core$IFn$_invoke$arity$variadic = hr__delegate; return hr; })() ; /** * @param {...*} var_args */ quiescent.dom.html = (function() { var html__delegate = function (args__7508__auto__){var a__7509__auto__ = [];a__7509__auto__.push(quiescent.js_props.call(null,cljs.core.first.call(null,args__7508__auto__))); var seq__8894_10492 = cljs.core.seq.call(null,cljs.core.rest.call(null,args__7508__auto__));var chunk__8895_10493 = null;var count__8896_10494 = 0;var i__8897_10495 = 0;while(true){ if((i__8897_10495 < count__8896_10494)) {var arg__7510__auto___10496 = cljs.core._nth.call(null,chunk__8895_10493,i__8897_10495);a__7509__auto__.push(arg__7510__auto___10496); { var G__10497 = seq__8894_10492; var G__10498 = chunk__8895_10493; var G__10499 = count__8896_10494; var G__10500 = (i__8897_10495 + 1); seq__8894_10492 = G__10497; chunk__8895_10493 = G__10498; count__8896_10494 = G__10499; i__8897_10495 = G__10500; continue; } } else {var temp__4092__auto___10501 = cljs.core.seq.call(null,seq__8894_10492);if(temp__4092__auto___10501) {var seq__8894_10502__$1 = temp__4092__auto___10501;if(cljs.core.chunked_seq_QMARK_.call(null,seq__8894_10502__$1)) {var c__5632__auto___10503 = cljs.core.chunk_first.call(null,seq__8894_10502__$1);{ var G__10504 = cljs.core.chunk_rest.call(null,seq__8894_10502__$1); var G__10505 = c__5632__auto___10503; var G__10506 = cljs.core.count.call(null,c__5632__auto___10503); var G__10507 = 0; seq__8894_10492 = G__10504; chunk__8895_10493 = G__10505; count__8896_10494 = G__10506; i__8897_10495 = G__10507; continue; } } else {var arg__7510__auto___10508 = cljs.core.first.call(null,seq__8894_10502__$1);a__7509__auto__.push(arg__7510__auto___10508); { var G__10509 = cljs.core.next.call(null,seq__8894_10502__$1); var G__10510 = null; var G__10511 = 0; var G__10512 = 0; seq__8894_10492 = G__10509; chunk__8895_10493 = G__10510; count__8896_10494 = G__10511; i__8897_10495 = G__10512; continue; } } } else {} } break; } return React.DOM.html.apply(null,a__7509__auto__); }; var html = function (var_args){ var args__7508__auto__ = null;if (arguments.length > 0) { args__7508__auto__ = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0),0);} return html__delegate.call(this,args__7508__auto__);}; html.cljs$lang$maxFixedArity = 0; html.cljs$lang$applyTo = (function (arglist__10513){ var args__7508__auto__ = cljs.core.seq(arglist__10513); return html__delegate(args__7508__auto__); }); html.cljs$core$IFn$_invoke$arity$variadic = html__delegate; return html; })() ; /** * @param {...*} var_args */ quiescent.dom.i = (function() { var i__delegate = function (args__7508__auto__){var a__7509__auto__ = [];a__7509__auto__.push(quiescent.js_props.call(null,cljs.core.first.call(null,args__7508__auto__))); var seq__8902_10514 = cljs.core.seq.call(null,cljs.core.rest.call(null,args__7508__auto__));var chunk__8903_10515 = null;var count__8904_10516 = 0;var i__8905_10517 = 0;while(true){ if((i__8905_10517 < count__8904_10516)) {var arg__7510__auto___10518 = cljs.core._nth.call(null,chunk__8903_10515,i__8905_10517);a__7509__auto__.push(arg__7510__auto___10518); { var G__10519 = seq__8902_10514; var G__10520 = chunk__8903_10515; var G__10521 = count__8904_10516; var G__10522 = (i__8905_10517 + 1); seq__8902_10514 = G__10519; chunk__8903_10515 = G__10520; count__8904_10516 = G__10521; i__8905_10517 = G__10522; continue; } } else {var temp__4092__auto___10523 = cljs.core.seq.call(null,seq__8902_10514);if(temp__4092__auto___10523) {var seq__8902_10524__$1 = temp__4092__auto___10523;if(cljs.core.chunked_seq_QMARK_.call(null,seq__8902_10524__$1)) {var c__5632__auto___10525 = cljs.core.chunk_first.call(null,seq__8902_10524__$1);{ var G__10526 = cljs.core.chunk_rest.call(null,seq__8902_10524__$1); var G__10527 = c__5632__auto___10525; var G__10528 = cljs.core.count.call(null,c__5632__auto___10525); var G__10529 = 0; seq__8902_10514 = G__10526; chunk__8903_10515 = G__10527; count__8904_10516 = G__10528; i__8905_10517 = G__10529; continue; } } else {var arg__7510__auto___10530 = cljs.core.first.call(null,seq__8902_10524__$1);a__7509__auto__.push(arg__7510__auto___10530); { var G__10531 = cljs.core.next.call(null,seq__8902_10524__$1); var G__10532 = null; var G__10533 = 0; var G__10534 = 0; seq__8902_10514 = G__10531; chunk__8903_10515 = G__10532; count__8904_10516 = G__10533; i__8905_10517 = G__10534; continue; } } } else {} } break; } return React.DOM.i.apply(null,a__7509__auto__); }; var i = function (var_args){ var args__7508__auto__ = null;if (arguments.length > 0) { args__7508__auto__ = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0),0);} return i__delegate.call(this,args__7508__auto__);}; i.cljs$lang$maxFixedArity = 0; i.cljs$lang$applyTo = (function (arglist__10535){ var args__7508__auto__ = cljs.core.seq(arglist__10535); return i__delegate(args__7508__auto__); }); i.cljs$core$IFn$_invoke$arity$variadic = i__delegate; return i; })() ; /** * @param {...*} var_args */ quiescent.dom.iframe = (function() { var iframe__delegate = function (args__7508__auto__){var a__7509__auto__ = [];a__7509__auto__.push(quiescent.js_props.call(null,cljs.core.first.call(null,args__7508__auto__))); var seq__8910_10536 = cljs.core.seq.call(null,cljs.core.rest.call(null,args__7508__auto__));var chunk__8911_10537 = null;var count__8912_10538 = 0;var i__8913_10539 = 0;while(true){ if((i__8913_10539 < count__8912_10538)) {var arg__7510__auto___10540 = cljs.core._nth.call(null,chunk__8911_10537,i__8913_10539);a__7509__auto__.push(arg__7510__auto___10540); { var G__10541 = seq__8910_10536; var G__10542 = chunk__8911_10537; var G__10543 = count__8912_10538; var G__10544 = (i__8913_10539 + 1); seq__8910_10536 = G__10541; chunk__8911_10537 = G__10542; count__8912_10538 = G__10543; i__8913_10539 = G__10544; continue; } } else {var temp__4092__auto___10545 = cljs.core.seq.call(null,seq__8910_10536);if(temp__4092__auto___10545) {var seq__8910_10546__$1 = temp__4092__auto___10545;if(cljs.core.chunked_seq_QMARK_.call(null,seq__8910_10546__$1)) {var c__5632__auto___10547 = cljs.core.chunk_first.call(null,seq__8910_10546__$1);{ var G__10548 = cljs.core.chunk_rest.call(null,seq__8910_10546__$1); var G__10549 = c__5632__auto___10547; var G__10550 = cljs.core.count.call(null,c__5632__auto___10547); var G__10551 = 0; seq__8910_10536 = G__10548; chunk__8911_10537 = G__10549; count__8912_10538 = G__10550; i__8913_10539 = G__10551; continue; } } else {var arg__7510__auto___10552 = cljs.core.first.call(null,seq__8910_10546__$1);a__7509__auto__.push(arg__7510__auto___10552); { var G__10553 = cljs.core.next.call(null,seq__8910_10546__$1); var G__10554 = null; var G__10555 = 0; var G__10556 = 0; seq__8910_10536 = G__10553; chunk__8911_10537 = G__10554; count__8912_10538 = G__10555; i__8913_10539 = G__10556; continue; } } } else {} } break; } return React.DOM.iframe.apply(null,a__7509__auto__); }; var iframe = function (var_args){ var args__7508__auto__ = null;if (arguments.length > 0) { args__7508__auto__ = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0),0);} return iframe__delegate.call(this,args__7508__auto__);}; iframe.cljs$lang$maxFixedArity = 0; iframe.cljs$lang$applyTo = (function (arglist__10557){ var args__7508__auto__ = cljs.core.seq(arglist__10557); return iframe__delegate(args__7508__auto__); }); iframe.cljs$core$IFn$_invoke$arity$variadic = iframe__delegate; return iframe; })() ; /** * @param {...*} var_args */ quiescent.dom.img = (function() { var img__delegate = function (args__7508__auto__){var a__7509__auto__ = [];a__7509__auto__.push(quiescent.js_props.call(null,cljs.core.first.call(null,args__7508__auto__))); var seq__8918_10558 = cljs.core.seq.call(null,cljs.core.rest.call(null,args__7508__auto__));var chunk__8919_10559 = null;var count__8920_10560 = 0;var i__8921_10561 = 0;while(true){ if((i__8921_10561 < count__8920_10560)) {var arg__7510__auto___10562 = cljs.core._nth.call(null,chunk__8919_10559,i__8921_10561);a__7509__auto__.push(arg__7510__auto___10562); { var G__10563 = seq__8918_10558; var G__10564 = chunk__8919_10559; var G__10565 = count__8920_10560; var G__10566 = (i__8921_10561 + 1); seq__8918_10558 = G__10563; chunk__8919_10559 = G__10564; count__8920_10560 = G__10565; i__8921_10561 = G__10566; continue; } } else {var temp__4092__auto___10567 = cljs.core.seq.call(null,seq__8918_10558);if(temp__4092__auto___10567) {var seq__8918_10568__$1 = temp__4092__auto___10567;if(cljs.core.chunked_seq_QMARK_.call(null,seq__8918_10568__$1)) {var c__5632__auto___10569 = cljs.core.chunk_first.call(null,seq__8918_10568__$1);{ var G__10570 = cljs.core.chunk_rest.call(null,seq__8918_10568__$1); var G__10571 = c__5632__auto___10569; var G__10572 = cljs.core.count.call(null,c__5632__auto___10569); var G__10573 = 0; seq__8918_10558 = G__10570; chunk__8919_10559 = G__10571; count__8920_10560 = G__10572; i__8921_10561 = G__10573; continue; } } else {var arg__7510__auto___10574 = cljs.core.first.call(null,seq__8918_10568__$1);a__7509__auto__.push(arg__7510__auto___10574); { var G__10575 = cljs.core.next.call(null,seq__8918_10568__$1); var G__10576 = null; var G__10577 = 0; var G__10578 = 0; seq__8918_10558 = G__10575; chunk__8919_10559 = G__10576; count__8920_10560 = G__10577; i__8921_10561 = G__10578; continue; } } } else {} } break; } return React.DOM.img.apply(null,a__7509__auto__); }; var img = function (var_args){ var args__7508__auto__ = null;if (arguments.length > 0) { args__7508__auto__ = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0),0);} return img__delegate.call(this,args__7508__auto__);}; img.cljs$lang$maxFixedArity = 0; img.cljs$lang$applyTo = (function (arglist__10579){ var args__7508__auto__ = cljs.core.seq(arglist__10579); return img__delegate(args__7508__auto__); }); img.cljs$core$IFn$_invoke$arity$variadic = img__delegate; return img; })() ; /** * @param {...*} var_args */ quiescent.dom.input = (function() { var input__delegate = function (args__7508__auto__){var a__7509__auto__ = [];a__7509__auto__.push(quiescent.js_props.call(null,cljs.core.first.call(null,args__7508__auto__))); var seq__8926_10580 = cljs.core.seq.call(null,cljs.core.rest.call(null,args__7508__auto__));var chunk__8927_10581 = null;var count__8928_10582 = 0;var i__8929_10583 = 0;while(true){ if((i__8929_10583 < count__8928_10582)) {var arg__7510__auto___10584 = cljs.core._nth.call(null,chunk__8927_10581,i__8929_10583);a__7509__auto__.push(arg__7510__auto___10584); { var G__10585 = seq__8926_10580; var G__10586 = chunk__8927_10581; var G__10587 = count__8928_10582; var G__10588 = (i__8929_10583 + 1); seq__8926_10580 = G__10585; chunk__8927_10581 = G__10586; count__8928_10582 = G__10587; i__8929_10583 = G__10588; continue; } } else {var temp__4092__auto___10589 = cljs.core.seq.call(null,seq__8926_10580);if(temp__4092__auto___10589) {var seq__8926_10590__$1 = temp__4092__auto___10589;if(cljs.core.chunked_seq_QMARK_.call(null,seq__8926_10590__$1)) {var c__5632__auto___10591 = cljs.core.chunk_first.call(null,seq__8926_10590__$1);{ var G__10592 = cljs.core.chunk_rest.call(null,seq__8926_10590__$1); var G__10593 = c__5632__auto___10591; var G__10594 = cljs.core.count.call(null,c__5632__auto___10591); var G__10595 = 0; seq__8926_10580 = G__10592; chunk__8927_10581 = G__10593; count__8928_10582 = G__10594; i__8929_10583 = G__10595; continue; } } else {var arg__7510__auto___10596 = cljs.core.first.call(null,seq__8926_10590__$1);a__7509__auto__.push(arg__7510__auto___10596); { var G__10597 = cljs.core.next.call(null,seq__8926_10590__$1); var G__10598 = null; var G__10599 = 0; var G__10600 = 0; seq__8926_10580 = G__10597; chunk__8927_10581 = G__10598; count__8928_10582 = G__10599; i__8929_10583 = G__10600; continue; } } } else {} } break; } return React.DOM.input.apply(null,a__7509__auto__); }; var input = function (var_args){ var args__7508__auto__ = null;if (arguments.length > 0) { args__7508__auto__ = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0),0);} return input__delegate.call(this,args__7508__auto__);}; input.cljs$lang$maxFixedArity = 0; input.cljs$lang$applyTo = (function (arglist__10601){ var args__7508__auto__ = cljs.core.seq(arglist__10601); return input__delegate(args__7508__auto__); }); input.cljs$core$IFn$_invoke$arity$variadic = input__delegate; return input; })() ; /** * @param {...*} var_args */ quiescent.dom.ins = (function() { var ins__delegate = function (args__7508__auto__){var a__7509__auto__ = [];a__7509__auto__.push(quiescent.js_props.call(null,cljs.core.first.call(null,args__7508__auto__))); var seq__8934_10602 = cljs.core.seq.call(null,cljs.core.rest.call(null,args__7508__auto__));var chunk__8935_10603 = null;var count__8936_10604 = 0;var i__8937_10605 = 0;while(true){ if((i__8937_10605 < count__8936_10604)) {var arg__7510__auto___10606 = cljs.core._nth.call(null,chunk__8935_10603,i__8937_10605);a__7509__auto__.push(arg__7510__auto___10606); { var G__10607 = seq__8934_10602; var G__10608 = chunk__8935_10603; var G__10609 = count__8936_10604; var G__10610 = (i__8937_10605 + 1); seq__8934_10602 = G__10607; chunk__8935_10603 = G__10608; count__8936_10604 = G__10609; i__8937_10605 = G__10610; continue; } } else {var temp__4092__auto___10611 = cljs.core.seq.call(null,seq__8934_10602);if(temp__4092__auto___10611) {var seq__8934_10612__$1 = temp__4092__auto___10611;if(cljs.core.chunked_seq_QMARK_.call(null,seq__8934_10612__$1)) {var c__5632__auto___10613 = cljs.core.chunk_first.call(null,seq__8934_10612__$1);{ var G__10614 = cljs.core.chunk_rest.call(null,seq__8934_10612__$1); var G__10615 = c__5632__auto___10613; var G__10616 = cljs.core.count.call(null,c__5632__auto___10613); var G__10617 = 0; seq__8934_10602 = G__10614; chunk__8935_10603 = G__10615; count__8936_10604 = G__10616; i__8937_10605 = G__10617; continue; } } else {var arg__7510__auto___10618 = cljs.core.first.call(null,seq__8934_10612__$1);a__7509__auto__.push(arg__7510__auto___10618); { var G__10619 = cljs.core.next.call(null,seq__8934_10612__$1); var G__10620 = null; var G__10621 = 0; var G__10622 = 0; seq__8934_10602 = G__10619; chunk__8935_10603 = G__10620; count__8936_10604 = G__10621; i__8937_10605 = G__10622; continue; } } } else {} } break; } return React.DOM.ins.apply(null,a__7509__auto__); }; var ins = function (var_args){ var args__7508__auto__ = null;if (arguments.length > 0) { args__7508__auto__ = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0),0);} return ins__delegate.call(this,args__7508__auto__);}; ins.cljs$lang$maxFixedArity = 0; ins.cljs$lang$applyTo = (function (arglist__10623){ var args__7508__auto__ = cljs.core.seq(arglist__10623); return ins__delegate(args__7508__auto__); }); ins.cljs$core$IFn$_invoke$arity$variadic = ins__delegate; return ins; })() ; /** * @param {...*} var_args */ quiescent.dom.kbd = (function() { var kbd__delegate = function (args__7508__auto__){var a__7509__auto__ = [];a__7509__auto__.push(quiescent.js_props.call(null,cljs.core.first.call(null,args__7508__auto__))); var seq__8942_10624 = cljs.core.seq.call(null,cljs.core.rest.call(null,args__7508__auto__));var chunk__8943_10625 = null;var count__8944_10626 = 0;var i__8945_10627 = 0;while(true){ if((i__8945_10627 < count__8944_10626)) {var arg__7510__auto___10628 = cljs.core._nth.call(null,chunk__8943_10625,i__8945_10627);a__7509__auto__.push(arg__7510__auto___10628); { var G__10629 = seq__8942_10624; var G__10630 = chunk__8943_10625; var G__10631 = count__8944_10626; var G__10632 = (i__8945_10627 + 1); seq__8942_10624 = G__10629; chunk__8943_10625 = G__10630; count__8944_10626 = G__10631; i__8945_10627 = G__10632; continue; } } else {var temp__4092__auto___10633 = cljs.core.seq.call(null,seq__8942_10624);if(temp__4092__auto___10633) {var seq__8942_10634__$1 = temp__4092__auto___10633;if(cljs.core.chunked_seq_QMARK_.call(null,seq__8942_10634__$1)) {var c__5632__auto___10635 = cljs.core.chunk_first.call(null,seq__8942_10634__$1);{ var G__10636 = cljs.core.chunk_rest.call(null,seq__8942_10634__$1); var G__10637 = c__5632__auto___10635; var G__10638 = cljs.core.count.call(null,c__5632__auto___10635); var G__10639 = 0; seq__8942_10624 = G__10636; chunk__8943_10625 = G__10637; count__8944_10626 = G__10638; i__8945_10627 = G__10639; continue; } } else {var arg__7510__auto___10640 = cljs.core.first.call(null,seq__8942_10634__$1);a__7509__auto__.push(arg__7510__auto___10640); { var G__10641 = cljs.core.next.call(null,seq__8942_10634__$1); var G__10642 = null; var G__10643 = 0; var G__10644 = 0; seq__8942_10624 = G__10641; chunk__8943_10625 = G__10642; count__8944_10626 = G__10643; i__8945_10627 = G__10644; continue; } } } else {} } break; } return React.DOM.kbd.apply(null,a__7509__auto__); }; var kbd = function (var_args){ var args__7508__auto__ = null;if (arguments.length > 0) { args__7508__auto__ = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0),0);} return kbd__delegate.call(this,args__7508__auto__);}; kbd.cljs$lang$maxFixedArity = 0; kbd.cljs$lang$applyTo = (function (arglist__10645){ var args__7508__auto__ = cljs.core.seq(arglist__10645); return kbd__delegate(args__7508__auto__); }); kbd.cljs$core$IFn$_invoke$arity$variadic = kbd__delegate; return kbd; })() ; /** * @param {...*} var_args */ quiescent.dom.keygen = (function() { var keygen__delegate = function (args__7508__auto__){var a__7509__auto__ = [];a__7509__auto__.push(quiescent.js_props.call(null,cljs.core.first.call(null,args__7508__auto__))); var seq__8950_10646 = cljs.core.seq.call(null,cljs.core.rest.call(null,args__7508__auto__));var chunk__8951_10647 = null;var count__8952_10648 = 0;var i__8953_10649 = 0;while(true){ if((i__8953_10649 < count__8952_10648)) {var arg__7510__auto___10650 = cljs.core._nth.call(null,chunk__8951_10647,i__8953_10649);a__7509__auto__.push(arg__7510__auto___10650); { var G__10651 = seq__8950_10646; var G__10652 = chunk__8951_10647; var G__10653 = count__8952_10648; var G__10654 = (i__8953_10649 + 1); seq__8950_10646 = G__10651; chunk__8951_10647 = G__10652; count__8952_10648 = G__10653; i__8953_10649 = G__10654; continue; } } else {var temp__4092__auto___10655 = cljs.core.seq.call(null,seq__8950_10646);if(temp__4092__auto___10655) {var seq__8950_10656__$1 = temp__4092__auto___10655;if(cljs.core.chunked_seq_QMARK_.call(null,seq__8950_10656__$1)) {var c__5632__auto___10657 = cljs.core.chunk_first.call(null,seq__8950_10656__$1);{ var G__10658 = cljs.core.chunk_rest.call(null,seq__8950_10656__$1); var G__10659 = c__5632__auto___10657; var G__10660 = cljs.core.count.call(null,c__5632__auto___10657); var G__10661 = 0; seq__8950_10646 = G__10658; chunk__8951_10647 = G__10659; count__8952_10648 = G__10660; i__8953_10649 = G__10661; continue; } } else {var arg__7510__auto___10662 = cljs.core.first.call(null,seq__8950_10656__$1);a__7509__auto__.push(arg__7510__auto___10662); { var G__10663 = cljs.core.next.call(null,seq__8950_10656__$1); var G__10664 = null; var G__10665 = 0; var G__10666 = 0; seq__8950_10646 = G__10663; chunk__8951_10647 = G__10664; count__8952_10648 = G__10665; i__8953_10649 = G__10666; continue; } } } else {} } break; } return React.DOM.keygen.apply(null,a__7509__auto__); }; var keygen = function (var_args){ var args__7508__auto__ = null;if (arguments.length > 0) { args__7508__auto__ = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0),0);} return keygen__delegate.call(this,args__7508__auto__);}; keygen.cljs$lang$maxFixedArity = 0; keygen.cljs$lang$applyTo = (function (arglist__10667){ var args__7508__auto__ = cljs.core.seq(arglist__10667); return keygen__delegate(args__7508__auto__); }); keygen.cljs$core$IFn$_invoke$arity$variadic = keygen__delegate; return keygen; })() ; /** * @param {...*} var_args */ quiescent.dom.label = (function() { var label__delegate = function (args__7508__auto__){var a__7509__auto__ = [];a__7509__auto__.push(quiescent.js_props.call(null,cljs.core.first.call(null,args__7508__auto__))); var seq__8958_10668 = cljs.core.seq.call(null,cljs.core.rest.call(null,args__7508__auto__));var chunk__8959_10669 = null;var count__8960_10670 = 0;var i__8961_10671 = 0;while(true){ if((i__8961_10671 < count__8960_10670)) {var arg__7510__auto___10672 = cljs.core._nth.call(null,chunk__8959_10669,i__8961_10671);a__7509__auto__.push(arg__7510__auto___10672); { var G__10673 = seq__8958_10668; var G__10674 = chunk__8959_10669; var G__10675 = count__8960_10670; var G__10676 = (i__8961_10671 + 1); seq__8958_10668 = G__10673; chunk__8959_10669 = G__10674; count__8960_10670 = G__10675; i__8961_10671 = G__10676; continue; } } else {var temp__4092__auto___10677 = cljs.core.seq.call(null,seq__8958_10668);if(temp__4092__auto___10677) {var seq__8958_10678__$1 = temp__4092__auto___10677;if(cljs.core.chunked_seq_QMARK_.call(null,seq__8958_10678__$1)) {var c__5632__auto___10679 = cljs.core.chunk_first.call(null,seq__8958_10678__$1);{ var G__10680 = cljs.core.chunk_rest.call(null,seq__8958_10678__$1); var G__10681 = c__5632__auto___10679; var G__10682 = cljs.core.count.call(null,c__5632__auto___10679); var G__10683 = 0; seq__8958_10668 = G__10680; chunk__8959_10669 = G__10681; count__8960_10670 = G__10682; i__8961_10671 = G__10683; continue; } } else {var arg__7510__auto___10684 = cljs.core.first.call(null,seq__8958_10678__$1);a__7509__auto__.push(arg__7510__auto___10684); { var G__10685 = cljs.core.next.call(null,seq__8958_10678__$1); var G__10686 = null; var G__10687 = 0; var G__10688 = 0; seq__8958_10668 = G__10685; chunk__8959_10669 = G__10686; count__8960_10670 = G__10687; i__8961_10671 = G__10688; continue; } } } else {} } break; } return React.DOM.label.apply(null,a__7509__auto__); }; var label = function (var_args){ var args__7508__auto__ = null;if (arguments.length > 0) { args__7508__auto__ = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0),0);} return label__delegate.call(this,args__7508__auto__);}; label.cljs$lang$maxFixedArity = 0; label.cljs$lang$applyTo = (function (arglist__10689){ var args__7508__auto__ = cljs.core.seq(arglist__10689); return label__delegate(args__7508__auto__); }); label.cljs$core$IFn$_invoke$arity$variadic = label__delegate; return label; })() ; /** * @param {...*} var_args */ quiescent.dom.legend = (function() { var legend__delegate = function (args__7508__auto__){var a__7509__auto__ = [];a__7509__auto__.push(quiescent.js_props.call(null,cljs.core.first.call(null,args__7508__auto__))); var seq__8966_10690 = cljs.core.seq.call(null,cljs.core.rest.call(null,args__7508__auto__));var chunk__8967_10691 = null;var count__8968_10692 = 0;var i__8969_10693 = 0;while(true){ if((i__8969_10693 < count__8968_10692)) {var arg__7510__auto___10694 = cljs.core._nth.call(null,chunk__8967_10691,i__8969_10693);a__7509__auto__.push(arg__7510__auto___10694); { var G__10695 = seq__8966_10690; var G__10696 = chunk__8967_10691; var G__10697 = count__8968_10692; var G__10698 = (i__8969_10693 + 1); seq__8966_10690 = G__10695; chunk__8967_10691 = G__10696; count__8968_10692 = G__10697; i__8969_10693 = G__10698; continue; } } else {var temp__4092__auto___10699 = cljs.core.seq.call(null,seq__8966_10690);if(temp__4092__auto___10699) {var seq__8966_10700__$1 = temp__4092__auto___10699;if(cljs.core.chunked_seq_QMARK_.call(null,seq__8966_10700__$1)) {var c__5632__auto___10701 = cljs.core.chunk_first.call(null,seq__8966_10700__$1);{ var G__10702 = cljs.core.chunk_rest.call(null,seq__8966_10700__$1); var G__10703 = c__5632__auto___10701; var G__10704 = cljs.core.count.call(null,c__5632__auto___10701); var G__10705 = 0; seq__8966_10690 = G__10702; chunk__8967_10691 = G__10703; count__8968_10692 = G__10704; i__8969_10693 = G__10705; continue; } } else {var arg__7510__auto___10706 = cljs.core.first.call(null,seq__8966_10700__$1);a__7509__auto__.push(arg__7510__auto___10706); { var G__10707 = cljs.core.next.call(null,seq__8966_10700__$1); var G__10708 = null; var G__10709 = 0; var G__10710 = 0; seq__8966_10690 = G__10707; chunk__8967_10691 = G__10708; count__8968_10692 = G__10709; i__8969_10693 = G__10710; continue; } } } else {} } break; } return React.DOM.legend.apply(null,a__7509__auto__); }; var legend = function (var_args){ var args__7508__auto__ = null;if (arguments.length > 0) { args__7508__auto__ = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0),0);} return legend__delegate.call(this,args__7508__auto__);}; legend.cljs$lang$maxFixedArity = 0; legend.cljs$lang$applyTo = (function (arglist__10711){ var args__7508__auto__ = cljs.core.seq(arglist__10711); return legend__delegate(args__7508__auto__); }); legend.cljs$core$IFn$_invoke$arity$variadic = legend__delegate; return legend; })() ; /** * @param {...*} var_args */ quiescent.dom.li = (function() { var li__delegate = function (args__7508__auto__){var a__7509__auto__ = [];a__7509__auto__.push(quiescent.js_props.call(null,cljs.core.first.call(null,args__7508__auto__))); var seq__8974_10712 = cljs.core.seq.call(null,cljs.core.rest.call(null,args__7508__auto__));var chunk__8975_10713 = null;var count__8976_10714 = 0;var i__8977_10715 = 0;while(true){ if((i__8977_10715 < count__8976_10714)) {var arg__7510__auto___10716 = cljs.core._nth.call(null,chunk__8975_10713,i__8977_10715);a__7509__auto__.push(arg__7510__auto___10716); { var G__10717 = seq__8974_10712; var G__10718 = chunk__8975_10713; var G__10719 = count__8976_10714; var G__10720 = (i__8977_10715 + 1); seq__8974_10712 = G__10717; chunk__8975_10713 = G__10718; count__8976_10714 = G__10719; i__8977_10715 = G__10720; continue; } } else {var temp__4092__auto___10721 = cljs.core.seq.call(null,seq__8974_10712);if(temp__4092__auto___10721) {var seq__8974_10722__$1 = temp__4092__auto___10721;if(cljs.core.chunked_seq_QMARK_.call(null,seq__8974_10722__$1)) {var c__5632__auto___10723 = cljs.core.chunk_first.call(null,seq__8974_10722__$1);{ var G__10724 = cljs.core.chunk_rest.call(null,seq__8974_10722__$1); var G__10725 = c__5632__auto___10723; var G__10726 = cljs.core.count.call(null,c__5632__auto___10723); var G__10727 = 0; seq__8974_10712 = G__10724; chunk__8975_10713 = G__10725; count__8976_10714 = G__10726; i__8977_10715 = G__10727; continue; } } else {var arg__7510__auto___10728 = cljs.core.first.call(null,seq__8974_10722__$1);a__7509__auto__.push(arg__7510__auto___10728); { var G__10729 = cljs.core.next.call(null,seq__8974_10722__$1); var G__10730 = null; var G__10731 = 0; var G__10732 = 0; seq__8974_10712 = G__10729; chunk__8975_10713 = G__10730; count__8976_10714 = G__10731; i__8977_10715 = G__10732; continue; } } } else {} } break; } return React.DOM.li.apply(null,a__7509__auto__); }; var li = function (var_args){ var args__7508__auto__ = null;if (arguments.length > 0) { args__7508__auto__ = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0),0);} return li__delegate.call(this,args__7508__auto__);}; li.cljs$lang$maxFixedArity = 0; li.cljs$lang$applyTo = (function (arglist__10733){ var args__7508__auto__ = cljs.core.seq(arglist__10733); return li__delegate(args__7508__auto__); }); li.cljs$core$IFn$_invoke$arity$variadic = li__delegate; return li; })() ; /** * @param {...*} var_args */ quiescent.dom.link = (function() { var link__delegate = function (args__7508__auto__){var a__7509__auto__ = [];a__7509__auto__.push(quiescent.js_props.call(null,cljs.core.first.call(null,args__7508__auto__))); var seq__8982_10734 = cljs.core.seq.call(null,cljs.core.rest.call(null,args__7508__auto__));var chunk__8983_10735 = null;var count__8984_10736 = 0;var i__8985_10737 = 0;while(true){ if((i__8985_10737 < count__8984_10736)) {var arg__7510__auto___10738 = cljs.core._nth.call(null,chunk__8983_10735,i__8985_10737);a__7509__auto__.push(arg__7510__auto___10738); { var G__10739 = seq__8982_10734; var G__10740 = chunk__8983_10735; var G__10741 = count__8984_10736; var G__10742 = (i__8985_10737 + 1); seq__8982_10734 = G__10739; chunk__8983_10735 = G__10740; count__8984_10736 = G__10741; i__8985_10737 = G__10742; continue; } } else {var temp__4092__auto___10743 = cljs.core.seq.call(null,seq__8982_10734);if(temp__4092__auto___10743) {var seq__8982_10744__$1 = temp__4092__auto___10743;if(cljs.core.chunked_seq_QMARK_.call(null,seq__8982_10744__$1)) {var c__5632__auto___10745 = cljs.core.chunk_first.call(null,seq__8982_10744__$1);{ var G__10746 = cljs.core.chunk_rest.call(null,seq__8982_10744__$1); var G__10747 = c__5632__auto___10745; var G__10748 = cljs.core.count.call(null,c__5632__auto___10745); var G__10749 = 0; seq__8982_10734 = G__10746; chunk__8983_10735 = G__10747; count__8984_10736 = G__10748; i__8985_10737 = G__10749; continue; } } else {var arg__7510__auto___10750 = cljs.core.first.call(null,seq__8982_10744__$1);a__7509__auto__.push(arg__7510__auto___10750); { var G__10751 = cljs.core.next.call(null,seq__8982_10744__$1); var G__10752 = null; var G__10753 = 0; var G__10754 = 0; seq__8982_10734 = G__10751; chunk__8983_10735 = G__10752; count__8984_10736 = G__10753; i__8985_10737 = G__10754; continue; } } } else {} } break; } return React.DOM.link.apply(null,a__7509__auto__); }; var link = function (var_args){ var args__7508__auto__ = null;if (arguments.length > 0) { args__7508__auto__ = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0),0);} return link__delegate.call(this,args__7508__auto__);}; link.cljs$lang$maxFixedArity = 0; link.cljs$lang$applyTo = (function (arglist__10755){ var args__7508__auto__ = cljs.core.seq(arglist__10755); return link__delegate(args__7508__auto__); }); link.cljs$core$IFn$_invoke$arity$variadic = link__delegate; return link; })() ; /** * @param {...*} var_args */ quiescent.dom.main = (function() { var main__delegate = function (args__7508__auto__){var a__7509__auto__ = [];a__7509__auto__.push(quiescent.js_props.call(null,cljs.core.first.call(null,args__7508__auto__))); var seq__8990_10756 = cljs.core.seq.call(null,cljs.core.rest.call(null,args__7508__auto__));var chunk__8991_10757 = null;var count__8992_10758 = 0;var i__8993_10759 = 0;while(true){ if((i__8993_10759 < count__8992_10758)) {var arg__7510__auto___10760 = cljs.core._nth.call(null,chunk__8991_10757,i__8993_10759);a__7509__auto__.push(arg__7510__auto___10760); { var G__10761 = seq__8990_10756; var G__10762 = chunk__8991_10757; var G__10763 = count__8992_10758; var G__10764 = (i__8993_10759 + 1); seq__8990_10756 = G__10761; chunk__8991_10757 = G__10762; count__8992_10758 = G__10763; i__8993_10759 = G__10764; continue; } } else {var temp__4092__auto___10765 = cljs.core.seq.call(null,seq__8990_10756);if(temp__4092__auto___10765) {var seq__8990_10766__$1 = temp__4092__auto___10765;if(cljs.core.chunked_seq_QMARK_.call(null,seq__8990_10766__$1)) {var c__5632__auto___10767 = cljs.core.chunk_first.call(null,seq__8990_10766__$1);{ var G__10768 = cljs.core.chunk_rest.call(null,seq__8990_10766__$1); var G__10769 = c__5632__auto___10767; var G__10770 = cljs.core.count.call(null,c__5632__auto___10767); var G__10771 = 0; seq__8990_10756 = G__10768; chunk__8991_10757 = G__10769; count__8992_10758 = G__10770; i__8993_10759 = G__10771; continue; } } else {var arg__7510__auto___10772 = cljs.core.first.call(null,seq__8990_10766__$1);a__7509__auto__.push(arg__7510__auto___10772); { var G__10773 = cljs.core.next.call(null,seq__8990_10766__$1); var G__10774 = null; var G__10775 = 0; var G__10776 = 0; seq__8990_10756 = G__10773; chunk__8991_10757 = G__10774; count__8992_10758 = G__10775; i__8993_10759 = G__10776; continue; } } } else {} } break; } return React.DOM.main.apply(null,a__7509__auto__); }; var main = function (var_args){ var args__7508__auto__ = null;if (arguments.length > 0) { args__7508__auto__ = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0),0);} return main__delegate.call(this,args__7508__auto__);}; main.cljs$lang$maxFixedArity = 0; main.cljs$lang$applyTo = (function (arglist__10777){ var args__7508__auto__ = cljs.core.seq(arglist__10777); return main__delegate(args__7508__auto__); }); main.cljs$core$IFn$_invoke$arity$variadic = main__delegate; return main; })() ; /** * @param {...*} var_args */ quiescent.dom.map = (function() { var map__delegate = function (args__7508__auto__){var a__7509__auto__ = [];a__7509__auto__.push(quiescent.js_props.call(null,cljs.core.first.call(null,args__7508__auto__))); var seq__8998_10778 = cljs.core.seq.call(null,cljs.core.rest.call(null,args__7508__auto__));var chunk__8999_10779 = null;var count__9000_10780 = 0;var i__9001_10781 = 0;while(true){ if((i__9001_10781 < count__9000_10780)) {var arg__7510__auto___10782 = cljs.core._nth.call(null,chunk__8999_10779,i__9001_10781);a__7509__auto__.push(arg__7510__auto___10782); { var G__10783 = seq__8998_10778; var G__10784 = chunk__8999_10779; var G__10785 = count__9000_10780; var G__10786 = (i__9001_10781 + 1); seq__8998_10778 = G__10783; chunk__8999_10779 = G__10784; count__9000_10780 = G__10785; i__9001_10781 = G__10786; continue; } } else {var temp__4092__auto___10787 = cljs.core.seq.call(null,seq__8998_10778);if(temp__4092__auto___10787) {var seq__8998_10788__$1 = temp__4092__auto___10787;if(cljs.core.chunked_seq_QMARK_.call(null,seq__8998_10788__$1)) {var c__5632__auto___10789 = cljs.core.chunk_first.call(null,seq__8998_10788__$1);{ var G__10790 = cljs.core.chunk_rest.call(null,seq__8998_10788__$1); var G__10791 = c__5632__auto___10789; var G__10792 = cljs.core.count.call(null,c__5632__auto___10789); var G__10793 = 0; seq__8998_10778 = G__10790; chunk__8999_10779 = G__10791; count__9000_10780 = G__10792; i__9001_10781 = G__10793; continue; } } else {var arg__7510__auto___10794 = cljs.core.first.call(null,seq__8998_10788__$1);a__7509__auto__.push(arg__7510__auto___10794); { var G__10795 = cljs.core.next.call(null,seq__8998_10788__$1); var G__10796 = null; var G__10797 = 0; var G__10798 = 0; seq__8998_10778 = G__10795; chunk__8999_10779 = G__10796; count__9000_10780 = G__10797; i__9001_10781 = G__10798; continue; } } } else {} } break; } return React.DOM.map.apply(null,a__7509__auto__); }; var map = function (var_args){ var args__7508__auto__ = null;if (arguments.length > 0) { args__7508__auto__ = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0),0);} return map__delegate.call(this,args__7508__auto__);}; map.cljs$lang$maxFixedArity = 0; map.cljs$lang$applyTo = (function (arglist__10799){ var args__7508__auto__ = cljs.core.seq(arglist__10799); return map__delegate(args__7508__auto__); }); map.cljs$core$IFn$_invoke$arity$variadic = map__delegate; return map; })() ; /** * @param {...*} var_args */ quiescent.dom.mark = (function() { var mark__delegate = function (args__7508__auto__){var a__7509__auto__ = [];a__7509__auto__.push(quiescent.js_props.call(null,cljs.core.first.call(null,args__7508__auto__))); var seq__9006_10800 = cljs.core.seq.call(null,cljs.core.rest.call(null,args__7508__auto__));var chunk__9007_10801 = null;var count__9008_10802 = 0;var i__9009_10803 = 0;while(true){ if((i__9009_10803 < count__9008_10802)) {var arg__7510__auto___10804 = cljs.core._nth.call(null,chunk__9007_10801,i__9009_10803);a__7509__auto__.push(arg__7510__auto___10804); { var G__10805 = seq__9006_10800; var G__10806 = chunk__9007_10801; var G__10807 = count__9008_10802; var G__10808 = (i__9009_10803 + 1); seq__9006_10800 = G__10805; chunk__9007_10801 = G__10806; count__9008_10802 = G__10807; i__9009_10803 = G__10808; continue; } } else {var temp__4092__auto___10809 = cljs.core.seq.call(null,seq__9006_10800);if(temp__4092__auto___10809) {var seq__9006_10810__$1 = temp__4092__auto___10809;if(cljs.core.chunked_seq_QMARK_.call(null,seq__9006_10810__$1)) {var c__5632__auto___10811 = cljs.core.chunk_first.call(null,seq__9006_10810__$1);{ var G__10812 = cljs.core.chunk_rest.call(null,seq__9006_10810__$1); var G__10813 = c__5632__auto___10811; var G__10814 = cljs.core.count.call(null,c__5632__auto___10811); var G__10815 = 0; seq__9006_10800 = G__10812; chunk__9007_10801 = G__10813; count__9008_10802 = G__10814; i__9009_10803 = G__10815; continue; } } else {var arg__7510__auto___10816 = cljs.core.first.call(null,seq__9006_10810__$1);a__7509__auto__.push(arg__7510__auto___10816); { var G__10817 = cljs.core.next.call(null,seq__9006_10810__$1); var G__10818 = null; var G__10819 = 0; var G__10820 = 0; seq__9006_10800 = G__10817; chunk__9007_10801 = G__10818; count__9008_10802 = G__10819; i__9009_10803 = G__10820; continue; } } } else {} } break; } return React.DOM.mark.apply(null,a__7509__auto__); }; var mark = function (var_args){ var args__7508__auto__ = null;if (arguments.length > 0) { args__7508__auto__ = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0),0);} return mark__delegate.call(this,args__7508__auto__);}; mark.cljs$lang$maxFixedArity = 0; mark.cljs$lang$applyTo = (function (arglist__10821){ var args__7508__auto__ = cljs.core.seq(arglist__10821); return mark__delegate(args__7508__auto__); }); mark.cljs$core$IFn$_invoke$arity$variadic = mark__delegate; return mark; })() ; /** * @param {...*} var_args */ quiescent.dom.menu = (function() { var menu__delegate = function (args__7508__auto__){var a__7509__auto__ = [];a__7509__auto__.push(quiescent.js_props.call(null,cljs.core.first.call(null,args__7508__auto__))); var seq__9014_10822 = cljs.core.seq.call(null,cljs.core.rest.call(null,args__7508__auto__));var chunk__9015_10823 = null;var count__9016_10824 = 0;var i__9017_10825 = 0;while(true){ if((i__9017_10825 < count__9016_10824)) {var arg__7510__auto___10826 = cljs.core._nth.call(null,chunk__9015_10823,i__9017_10825);a__7509__auto__.push(arg__7510__auto___10826); { var G__10827 = seq__9014_10822; var G__10828 = chunk__9015_10823; var G__10829 = count__9016_10824; var G__10830 = (i__9017_10825 + 1); seq__9014_10822 = G__10827; chunk__9015_10823 = G__10828; count__9016_10824 = G__10829; i__9017_10825 = G__10830; continue; } } else {var temp__4092__auto___10831 = cljs.core.seq.call(null,seq__9014_10822);if(temp__4092__auto___10831) {var seq__9014_10832__$1 = temp__4092__auto___10831;if(cljs.core.chunked_seq_QMARK_.call(null,seq__9014_10832__$1)) {var c__5632__auto___10833 = cljs.core.chunk_first.call(null,seq__9014_10832__$1);{ var G__10834 = cljs.core.chunk_rest.call(null,seq__9014_10832__$1); var G__10835 = c__5632__auto___10833; var G__10836 = cljs.core.count.call(null,c__5632__auto___10833); var G__10837 = 0; seq__9014_10822 = G__10834; chunk__9015_10823 = G__10835; count__9016_10824 = G__10836; i__9017_10825 = G__10837; continue; } } else {var arg__7510__auto___10838 = cljs.core.first.call(null,seq__9014_10832__$1);a__7509__auto__.push(arg__7510__auto___10838); { var G__10839 = cljs.core.next.call(null,seq__9014_10832__$1); var G__10840 = null; var G__10841 = 0; var G__10842 = 0; seq__9014_10822 = G__10839; chunk__9015_10823 = G__10840; count__9016_10824 = G__10841; i__9017_10825 = G__10842; continue; } } } else {} } break; } return React.DOM.menu.apply(null,a__7509__auto__); }; var menu = function (var_args){ var args__7508__auto__ = null;if (arguments.length > 0) { args__7508__auto__ = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0),0);} return menu__delegate.call(this,args__7508__auto__);}; menu.cljs$lang$maxFixedArity = 0; menu.cljs$lang$applyTo = (function (arglist__10843){ var args__7508__auto__ = cljs.core.seq(arglist__10843); return menu__delegate(args__7508__auto__); }); menu.cljs$core$IFn$_invoke$arity$variadic = menu__delegate; return menu; })() ; /** * @param {...*} var_args */ quiescent.dom.menuitem = (function() { var menuitem__delegate = function (args__7508__auto__){var a__7509__auto__ = [];a__7509__auto__.push(quiescent.js_props.call(null,cljs.core.first.call(null,args__7508__auto__))); var seq__9022_10844 = cljs.core.seq.call(null,cljs.core.rest.call(null,args__7508__auto__));var chunk__9023_10845 = null;var count__9024_10846 = 0;var i__9025_10847 = 0;while(true){ if((i__9025_10847 < count__9024_10846)) {var arg__7510__auto___10848 = cljs.core._nth.call(null,chunk__9023_10845,i__9025_10847);a__7509__auto__.push(arg__7510__auto___10848); { var G__10849 = seq__9022_10844; var G__10850 = chunk__9023_10845; var G__10851 = count__9024_10846; var G__10852 = (i__9025_10847 + 1); seq__9022_10844 = G__10849; chunk__9023_10845 = G__10850; count__9024_10846 = G__10851; i__9025_10847 = G__10852; continue; } } else {var temp__4092__auto___10853 = cljs.core.seq.call(null,seq__9022_10844);if(temp__4092__auto___10853) {var seq__9022_10854__$1 = temp__4092__auto___10853;if(cljs.core.chunked_seq_QMARK_.call(null,seq__9022_10854__$1)) {var c__5632__auto___10855 = cljs.core.chunk_first.call(null,seq__9022_10854__$1);{ var G__10856 = cljs.core.chunk_rest.call(null,seq__9022_10854__$1); var G__10857 = c__5632__auto___10855; var G__10858 = cljs.core.count.call(null,c__5632__auto___10855); var G__10859 = 0; seq__9022_10844 = G__10856; chunk__9023_10845 = G__10857; count__9024_10846 = G__10858; i__9025_10847 = G__10859; continue; } } else {var arg__7510__auto___10860 = cljs.core.first.call(null,seq__9022_10854__$1);a__7509__auto__.push(arg__7510__auto___10860); { var G__10861 = cljs.core.next.call(null,seq__9022_10854__$1); var G__10862 = null; var G__10863 = 0; var G__10864 = 0; seq__9022_10844 = G__10861; chunk__9023_10845 = G__10862; count__9024_10846 = G__10863; i__9025_10847 = G__10864; continue; } } } else {} } break; } return React.DOM.menuitem.apply(null,a__7509__auto__); }; var menuitem = function (var_args){ var args__7508__auto__ = null;if (arguments.length > 0) { args__7508__auto__ = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0),0);} return menuitem__delegate.call(this,args__7508__auto__);}; menuitem.cljs$lang$maxFixedArity = 0; menuitem.cljs$lang$applyTo = (function (arglist__10865){ var args__7508__auto__ = cljs.core.seq(arglist__10865); return menuitem__delegate(args__7508__auto__); }); menuitem.cljs$core$IFn$_invoke$arity$variadic = menuitem__delegate; return menuitem; })() ; /** * @param {...*} var_args */ quiescent.dom.meta = (function() { var meta__delegate = function (args__7508__auto__){var a__7509__auto__ = [];a__7509__auto__.push(quiescent.js_props.call(null,cljs.core.first.call(null,args__7508__auto__))); var seq__9030_10866 = cljs.core.seq.call(null,cljs.core.rest.call(null,args__7508__auto__));var chunk__9031_10867 = null;var count__9032_10868 = 0;var i__9033_10869 = 0;while(true){ if((i__9033_10869 < count__9032_10868)) {var arg__7510__auto___10870 = cljs.core._nth.call(null,chunk__9031_10867,i__9033_10869);a__7509__auto__.push(arg__7510__auto___10870); { var G__10871 = seq__9030_10866; var G__10872 = chunk__9031_10867; var G__10873 = count__9032_10868; var G__10874 = (i__9033_10869 + 1); seq__9030_10866 = G__10871; chunk__9031_10867 = G__10872; count__9032_10868 = G__10873; i__9033_10869 = G__10874; continue; } } else {var temp__4092__auto___10875 = cljs.core.seq.call(null,seq__9030_10866);if(temp__4092__auto___10875) {var seq__9030_10876__$1 = temp__4092__auto___10875;if(cljs.core.chunked_seq_QMARK_.call(null,seq__9030_10876__$1)) {var c__5632__auto___10877 = cljs.core.chunk_first.call(null,seq__9030_10876__$1);{ var G__10878 = cljs.core.chunk_rest.call(null,seq__9030_10876__$1); var G__10879 = c__5632__auto___10877; var G__10880 = cljs.core.count.call(null,c__5632__auto___10877); var G__10881 = 0; seq__9030_10866 = G__10878; chunk__9031_10867 = G__10879; count__9032_10868 = G__10880; i__9033_10869 = G__10881; continue; } } else {var arg__7510__auto___10882 = cljs.core.first.call(null,seq__9030_10876__$1);a__7509__auto__.push(arg__7510__auto___10882); { var G__10883 = cljs.core.next.call(null,seq__9030_10876__$1); var G__10884 = null; var G__10885 = 0; var G__10886 = 0; seq__9030_10866 = G__10883; chunk__9031_10867 = G__10884; count__9032_10868 = G__10885; i__9033_10869 = G__10886; continue; } } } else {} } break; } return React.DOM.meta.apply(null,a__7509__auto__); }; var meta = function (var_args){ var args__7508__auto__ = null;if (arguments.length > 0) { args__7508__auto__ = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0),0);} return meta__delegate.call(this,args__7508__auto__);}; meta.cljs$lang$maxFixedArity = 0; meta.cljs$lang$applyTo = (function (arglist__10887){ var args__7508__auto__ = cljs.core.seq(arglist__10887); return meta__delegate(args__7508__auto__); }); meta.cljs$core$IFn$_invoke$arity$variadic = meta__delegate; return meta; })() ; /** * @param {...*} var_args */ quiescent.dom.meter = (function() { var meter__delegate = function (args__7508__auto__){var a__7509__auto__ = [];a__7509__auto__.push(quiescent.js_props.call(null,cljs.core.first.call(null,args__7508__auto__))); var seq__9038_10888 = cljs.core.seq.call(null,cljs.core.rest.call(null,args__7508__auto__));var chunk__9039_10889 = null;var count__9040_10890 = 0;var i__9041_10891 = 0;while(true){ if((i__9041_10891 < count__9040_10890)) {var arg__7510__auto___10892 = cljs.core._nth.call(null,chunk__9039_10889,i__9041_10891);a__7509__auto__.push(arg__7510__auto___10892); { var G__10893 = seq__9038_10888; var G__10894 = chunk__9039_10889; var G__10895 = count__9040_10890; var G__10896 = (i__9041_10891 + 1); seq__9038_10888 = G__10893; chunk__9039_10889 = G__10894; count__9040_10890 = G__10895; i__9041_10891 = G__10896; continue; } } else {var temp__4092__auto___10897 = cljs.core.seq.call(null,seq__9038_10888);if(temp__4092__auto___10897) {var seq__9038_10898__$1 = temp__4092__auto___10897;if(cljs.core.chunked_seq_QMARK_.call(null,seq__9038_10898__$1)) {var c__5632__auto___10899 = cljs.core.chunk_first.call(null,seq__9038_10898__$1);{ var G__10900 = cljs.core.chunk_rest.call(null,seq__9038_10898__$1); var G__10901 = c__5632__auto___10899; var G__10902 = cljs.core.count.call(null,c__5632__auto___10899); var G__10903 = 0; seq__9038_10888 = G__10900; chunk__9039_10889 = G__10901; count__9040_10890 = G__10902; i__9041_10891 = G__10903; continue; } } else {var arg__7510__auto___10904 = cljs.core.first.call(null,seq__9038_10898__$1);a__7509__auto__.push(arg__7510__auto___10904); { var G__10905 = cljs.core.next.call(null,seq__9038_10898__$1); var G__10906 = null; var G__10907 = 0; var G__10908 = 0; seq__9038_10888 = G__10905; chunk__9039_10889 = G__10906; count__9040_10890 = G__10907; i__9041_10891 = G__10908; continue; } } } else {} } break; } return React.DOM.meter.apply(null,a__7509__auto__); }; var meter = function (var_args){ var args__7508__auto__ = null;if (arguments.length > 0) { args__7508__auto__ = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0),0);} return meter__delegate.call(this,args__7508__auto__);}; meter.cljs$lang$maxFixedArity = 0; meter.cljs$lang$applyTo = (function (arglist__10909){ var args__7508__auto__ = cljs.core.seq(arglist__10909); return meter__delegate(args__7508__auto__); }); meter.cljs$core$IFn$_invoke$arity$variadic = meter__delegate; return meter; })() ; /** * @param {...*} var_args */ quiescent.dom.nav = (function() { var nav__delegate = function (args__7508__auto__){var a__7509__auto__ = [];a__7509__auto__.push(quiescent.js_props.call(null,cljs.core.first.call(null,args__7508__auto__))); var seq__9046_10910 = cljs.core.seq.call(null,cljs.core.rest.call(null,args__7508__auto__));var chunk__9047_10911 = null;var count__9048_10912 = 0;var i__9049_10913 = 0;while(true){ if((i__9049_10913 < count__9048_10912)) {var arg__7510__auto___10914 = cljs.core._nth.call(null,chunk__9047_10911,i__9049_10913);a__7509__auto__.push(arg__7510__auto___10914); { var G__10915 = seq__9046_10910; var G__10916 = chunk__9047_10911; var G__10917 = count__9048_10912; var G__10918 = (i__9049_10913 + 1); seq__9046_10910 = G__10915; chunk__9047_10911 = G__10916; count__9048_10912 = G__10917; i__9049_10913 = G__10918; continue; } } else {var temp__4092__auto___10919 = cljs.core.seq.call(null,seq__9046_10910);if(temp__4092__auto___10919) {var seq__9046_10920__$1 = temp__4092__auto___10919;if(cljs.core.chunked_seq_QMARK_.call(null,seq__9046_10920__$1)) {var c__5632__auto___10921 = cljs.core.chunk_first.call(null,seq__9046_10920__$1);{ var G__10922 = cljs.core.chunk_rest.call(null,seq__9046_10920__$1); var G__10923 = c__5632__auto___10921; var G__10924 = cljs.core.count.call(null,c__5632__auto___10921); var G__10925 = 0; seq__9046_10910 = G__10922; chunk__9047_10911 = G__10923; count__9048_10912 = G__10924; i__9049_10913 = G__10925; continue; } } else {var arg__7510__auto___10926 = cljs.core.first.call(null,seq__9046_10920__$1);a__7509__auto__.push(arg__7510__auto___10926); { var G__10927 = cljs.core.next.call(null,seq__9046_10920__$1); var G__10928 = null; var G__10929 = 0; var G__10930 = 0; seq__9046_10910 = G__10927; chunk__9047_10911 = G__10928; count__9048_10912 = G__10929; i__9049_10913 = G__10930; continue; } } } else {} } break; } return React.DOM.nav.apply(null,a__7509__auto__); }; var nav = function (var_args){ var args__7508__auto__ = null;if (arguments.length > 0) { args__7508__auto__ = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0),0);} return nav__delegate.call(this,args__7508__auto__);}; nav.cljs$lang$maxFixedArity = 0; nav.cljs$lang$applyTo = (function (arglist__10931){ var args__7508__auto__ = cljs.core.seq(arglist__10931); return nav__delegate(args__7508__auto__); }); nav.cljs$core$IFn$_invoke$arity$variadic = nav__delegate; return nav; })() ; /** * @param {...*} var_args */ quiescent.dom.noscript = (function() { var noscript__delegate = function (args__7508__auto__){var a__7509__auto__ = [];a__7509__auto__.push(quiescent.js_props.call(null,cljs.core.first.call(null,args__7508__auto__))); var seq__9054_10932 = cljs.core.seq.call(null,cljs.core.rest.call(null,args__7508__auto__));var chunk__9055_10933 = null;var count__9056_10934 = 0;var i__9057_10935 = 0;while(true){ if((i__9057_10935 < count__9056_10934)) {var arg__7510__auto___10936 = cljs.core._nth.call(null,chunk__9055_10933,i__9057_10935);a__7509__auto__.push(arg__7510__auto___10936); { var G__10937 = seq__9054_10932; var G__10938 = chunk__9055_10933; var G__10939 = count__9056_10934; var G__10940 = (i__9057_10935 + 1); seq__9054_10932 = G__10937; chunk__9055_10933 = G__10938; count__9056_10934 = G__10939; i__9057_10935 = G__10940; continue; } } else {var temp__4092__auto___10941 = cljs.core.seq.call(null,seq__9054_10932);if(temp__4092__auto___10941) {var seq__9054_10942__$1 = temp__4092__auto___10941;if(cljs.core.chunked_seq_QMARK_.call(null,seq__9054_10942__$1)) {var c__5632__auto___10943 = cljs.core.chunk_first.call(null,seq__9054_10942__$1);{ var G__10944 = cljs.core.chunk_rest.call(null,seq__9054_10942__$1); var G__10945 = c__5632__auto___10943; var G__10946 = cljs.core.count.call(null,c__5632__auto___10943); var G__10947 = 0; seq__9054_10932 = G__10944; chunk__9055_10933 = G__10945; count__9056_10934 = G__10946; i__9057_10935 = G__10947; continue; } } else {var arg__7510__auto___10948 = cljs.core.first.call(null,seq__9054_10942__$1);a__7509__auto__.push(arg__7510__auto___10948); { var G__10949 = cljs.core.next.call(null,seq__9054_10942__$1); var G__10950 = null; var G__10951 = 0; var G__10952 = 0; seq__9054_10932 = G__10949; chunk__9055_10933 = G__10950; count__9056_10934 = G__10951; i__9057_10935 = G__10952; continue; } } } else {} } break; } return React.DOM.noscript.apply(null,a__7509__auto__); }; var noscript = function (var_args){ var args__7508__auto__ = null;if (arguments.length > 0) { args__7508__auto__ = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0),0);} return noscript__delegate.call(this,args__7508__auto__);}; noscript.cljs$lang$maxFixedArity = 0; noscript.cljs$lang$applyTo = (function (arglist__10953){ var args__7508__auto__ = cljs.core.seq(arglist__10953); return noscript__delegate(args__7508__auto__); }); noscript.cljs$core$IFn$_invoke$arity$variadic = noscript__delegate; return noscript; })() ; /** * @param {...*} var_args */ quiescent.dom.object = (function() { var object__delegate = function (args__7508__auto__){var a__7509__auto__ = [];a__7509__auto__.push(quiescent.js_props.call(null,cljs.core.first.call(null,args__7508__auto__))); var seq__9062_10954 = cljs.core.seq.call(null,cljs.core.rest.call(null,args__7508__auto__));var chunk__9063_10955 = null;var count__9064_10956 = 0;var i__9065_10957 = 0;while(true){ if((i__9065_10957 < count__9064_10956)) {var arg__7510__auto___10958 = cljs.core._nth.call(null,chunk__9063_10955,i__9065_10957);a__7509__auto__.push(arg__7510__auto___10958); { var G__10959 = seq__9062_10954; var G__10960 = chunk__9063_10955; var G__10961 = count__9064_10956; var G__10962 = (i__9065_10957 + 1); seq__9062_10954 = G__10959; chunk__9063_10955 = G__10960; count__9064_10956 = G__10961; i__9065_10957 = G__10962; continue; } } else {var temp__4092__auto___10963 = cljs.core.seq.call(null,seq__9062_10954);if(temp__4092__auto___10963) {var seq__9062_10964__$1 = temp__4092__auto___10963;if(cljs.core.chunked_seq_QMARK_.call(null,seq__9062_10964__$1)) {var c__5632__auto___10965 = cljs.core.chunk_first.call(null,seq__9062_10964__$1);{ var G__10966 = cljs.core.chunk_rest.call(null,seq__9062_10964__$1); var G__10967 = c__5632__auto___10965; var G__10968 = cljs.core.count.call(null,c__5632__auto___10965); var G__10969 = 0; seq__9062_10954 = G__10966; chunk__9063_10955 = G__10967; count__9064_10956 = G__10968; i__9065_10957 = G__10969; continue; } } else {var arg__7510__auto___10970 = cljs.core.first.call(null,seq__9062_10964__$1);a__7509__auto__.push(arg__7510__auto___10970); { var G__10971 = cljs.core.next.call(null,seq__9062_10964__$1); var G__10972 = null; var G__10973 = 0; var G__10974 = 0; seq__9062_10954 = G__10971; chunk__9063_10955 = G__10972; count__9064_10956 = G__10973; i__9065_10957 = G__10974; continue; } } } else {} } break; } return React.DOM.object.apply(null,a__7509__auto__); }; var object = function (var_args){ var args__7508__auto__ = null;if (arguments.length > 0) { args__7508__auto__ = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0),0);} return object__delegate.call(this,args__7508__auto__);}; object.cljs$lang$maxFixedArity = 0; object.cljs$lang$applyTo = (function (arglist__10975){ var args__7508__auto__ = cljs.core.seq(arglist__10975); return object__delegate(args__7508__auto__); }); object.cljs$core$IFn$_invoke$arity$variadic = object__delegate; return object; })() ; /** * @param {...*} var_args */ quiescent.dom.ol = (function() { var ol__delegate = function (args__7508__auto__){var a__7509__auto__ = [];a__7509__auto__.push(quiescent.js_props.call(null,cljs.core.first.call(null,args__7508__auto__))); var seq__9070_10976 = cljs.core.seq.call(null,cljs.core.rest.call(null,args__7508__auto__));var chunk__9071_10977 = null;var count__9072_10978 = 0;var i__9073_10979 = 0;while(true){ if((i__9073_10979 < count__9072_10978)) {var arg__7510__auto___10980 = cljs.core._nth.call(null,chunk__9071_10977,i__9073_10979);a__7509__auto__.push(arg__7510__auto___10980); { var G__10981 = seq__9070_10976; var G__10982 = chunk__9071_10977; var G__10983 = count__9072_10978; var G__10984 = (i__9073_10979 + 1); seq__9070_10976 = G__10981; chunk__9071_10977 = G__10982; count__9072_10978 = G__10983; i__9073_10979 = G__10984; continue; } } else {var temp__4092__auto___10985 = cljs.core.seq.call(null,seq__9070_10976);if(temp__4092__auto___10985) {var seq__9070_10986__$1 = temp__4092__auto___10985;if(cljs.core.chunked_seq_QMARK_.call(null,seq__9070_10986__$1)) {var c__5632__auto___10987 = cljs.core.chunk_first.call(null,seq__9070_10986__$1);{ var G__10988 = cljs.core.chunk_rest.call(null,seq__9070_10986__$1); var G__10989 = c__5632__auto___10987; var G__10990 = cljs.core.count.call(null,c__5632__auto___10987); var G__10991 = 0; seq__9070_10976 = G__10988; chunk__9071_10977 = G__10989; count__9072_10978 = G__10990; i__9073_10979 = G__10991; continue; } } else {var arg__7510__auto___10992 = cljs.core.first.call(null,seq__9070_10986__$1);a__7509__auto__.push(arg__7510__auto___10992); { var G__10993 = cljs.core.next.call(null,seq__9070_10986__$1); var G__10994 = null; var G__10995 = 0; var G__10996 = 0; seq__9070_10976 = G__10993; chunk__9071_10977 = G__10994; count__9072_10978 = G__10995; i__9073_10979 = G__10996; continue; } } } else {} } break; } return React.DOM.ol.apply(null,a__7509__auto__); }; var ol = function (var_args){ var args__7508__auto__ = null;if (arguments.length > 0) { args__7508__auto__ = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0),0);} return ol__delegate.call(this,args__7508__auto__);}; ol.cljs$lang$maxFixedArity = 0; ol.cljs$lang$applyTo = (function (arglist__10997){ var args__7508__auto__ = cljs.core.seq(arglist__10997); return ol__delegate(args__7508__auto__); }); ol.cljs$core$IFn$_invoke$arity$variadic = ol__delegate; return ol; })() ; /** * @param {...*} var_args */ quiescent.dom.optgroup = (function() { var optgroup__delegate = function (args__7508__auto__){var a__7509__auto__ = [];a__7509__auto__.push(quiescent.js_props.call(null,cljs.core.first.call(null,args__7508__auto__))); var seq__9078_10998 = cljs.core.seq.call(null,cljs.core.rest.call(null,args__7508__auto__));var chunk__9079_10999 = null;var count__9080_11000 = 0;var i__9081_11001 = 0;while(true){ if((i__9081_11001 < count__9080_11000)) {var arg__7510__auto___11002 = cljs.core._nth.call(null,chunk__9079_10999,i__9081_11001);a__7509__auto__.push(arg__7510__auto___11002); { var G__11003 = seq__9078_10998; var G__11004 = chunk__9079_10999; var G__11005 = count__9080_11000; var G__11006 = (i__9081_11001 + 1); seq__9078_10998 = G__11003; chunk__9079_10999 = G__11004; count__9080_11000 = G__11005; i__9081_11001 = G__11006; continue; } } else {var temp__4092__auto___11007 = cljs.core.seq.call(null,seq__9078_10998);if(temp__4092__auto___11007) {var seq__9078_11008__$1 = temp__4092__auto___11007;if(cljs.core.chunked_seq_QMARK_.call(null,seq__9078_11008__$1)) {var c__5632__auto___11009 = cljs.core.chunk_first.call(null,seq__9078_11008__$1);{ var G__11010 = cljs.core.chunk_rest.call(null,seq__9078_11008__$1); var G__11011 = c__5632__auto___11009; var G__11012 = cljs.core.count.call(null,c__5632__auto___11009); var G__11013 = 0; seq__9078_10998 = G__11010; chunk__9079_10999 = G__11011; count__9080_11000 = G__11012; i__9081_11001 = G__11013; continue; } } else {var arg__7510__auto___11014 = cljs.core.first.call(null,seq__9078_11008__$1);a__7509__auto__.push(arg__7510__auto___11014); { var G__11015 = cljs.core.next.call(null,seq__9078_11008__$1); var G__11016 = null; var G__11017 = 0; var G__11018 = 0; seq__9078_10998 = G__11015; chunk__9079_10999 = G__11016; count__9080_11000 = G__11017; i__9081_11001 = G__11018; continue; } } } else {} } break; } return React.DOM.optgroup.apply(null,a__7509__auto__); }; var optgroup = function (var_args){ var args__7508__auto__ = null;if (arguments.length > 0) { args__7508__auto__ = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0),0);} return optgroup__delegate.call(this,args__7508__auto__);}; optgroup.cljs$lang$maxFixedArity = 0; optgroup.cljs$lang$applyTo = (function (arglist__11019){ var args__7508__auto__ = cljs.core.seq(arglist__11019); return optgroup__delegate(args__7508__auto__); }); optgroup.cljs$core$IFn$_invoke$arity$variadic = optgroup__delegate; return optgroup; })() ; /** * @param {...*} var_args */ quiescent.dom.option = (function() { var option__delegate = function (args__7508__auto__){var a__7509__auto__ = [];a__7509__auto__.push(quiescent.js_props.call(null,cljs.core.first.call(null,args__7508__auto__))); var seq__9086_11020 = cljs.core.seq.call(null,cljs.core.rest.call(null,args__7508__auto__));var chunk__9087_11021 = null;var count__9088_11022 = 0;var i__9089_11023 = 0;while(true){ if((i__9089_11023 < count__9088_11022)) {var arg__7510__auto___11024 = cljs.core._nth.call(null,chunk__9087_11021,i__9089_11023);a__7509__auto__.push(arg__7510__auto___11024); { var G__11025 = seq__9086_11020; var G__11026 = chunk__9087_11021; var G__11027 = count__9088_11022; var G__11028 = (i__9089_11023 + 1); seq__9086_11020 = G__11025; chunk__9087_11021 = G__11026; count__9088_11022 = G__11027; i__9089_11023 = G__11028; continue; } } else {var temp__4092__auto___11029 = cljs.core.seq.call(null,seq__9086_11020);if(temp__4092__auto___11029) {var seq__9086_11030__$1 = temp__4092__auto___11029;if(cljs.core.chunked_seq_QMARK_.call(null,seq__9086_11030__$1)) {var c__5632__auto___11031 = cljs.core.chunk_first.call(null,seq__9086_11030__$1);{ var G__11032 = cljs.core.chunk_rest.call(null,seq__9086_11030__$1); var G__11033 = c__5632__auto___11031; var G__11034 = cljs.core.count.call(null,c__5632__auto___11031); var G__11035 = 0; seq__9086_11020 = G__11032; chunk__9087_11021 = G__11033; count__9088_11022 = G__11034; i__9089_11023 = G__11035; continue; } } else {var arg__7510__auto___11036 = cljs.core.first.call(null,seq__9086_11030__$1);a__7509__auto__.push(arg__7510__auto___11036); { var G__11037 = cljs.core.next.call(null,seq__9086_11030__$1); var G__11038 = null; var G__11039 = 0; var G__11040 = 0; seq__9086_11020 = G__11037; chunk__9087_11021 = G__11038; count__9088_11022 = G__11039; i__9089_11023 = G__11040; continue; } } } else {} } break; } return React.DOM.option.apply(null,a__7509__auto__); }; var option = function (var_args){ var args__7508__auto__ = null;if (arguments.length > 0) { args__7508__auto__ = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0),0);} return option__delegate.call(this,args__7508__auto__);}; option.cljs$lang$maxFixedArity = 0; option.cljs$lang$applyTo = (function (arglist__11041){ var args__7508__auto__ = cljs.core.seq(arglist__11041); return option__delegate(args__7508__auto__); }); option.cljs$core$IFn$_invoke$arity$variadic = option__delegate; return option; })() ; /** * @param {...*} var_args */ quiescent.dom.output = (function() { var output__delegate = function (args__7508__auto__){var a__7509__auto__ = [];a__7509__auto__.push(quiescent.js_props.call(null,cljs.core.first.call(null,args__7508__auto__))); var seq__9094_11042 = cljs.core.seq.call(null,cljs.core.rest.call(null,args__7508__auto__));var chunk__9095_11043 = null;var count__9096_11044 = 0;var i__9097_11045 = 0;while(true){ if((i__9097_11045 < count__9096_11044)) {var arg__7510__auto___11046 = cljs.core._nth.call(null,chunk__9095_11043,i__9097_11045);a__7509__auto__.push(arg__7510__auto___11046); { var G__11047 = seq__9094_11042; var G__11048 = chunk__9095_11043; var G__11049 = count__9096_11044; var G__11050 = (i__9097_11045 + 1); seq__9094_11042 = G__11047; chunk__9095_11043 = G__11048; count__9096_11044 = G__11049; i__9097_11045 = G__11050; continue; } } else {var temp__4092__auto___11051 = cljs.core.seq.call(null,seq__9094_11042);if(temp__4092__auto___11051) {var seq__9094_11052__$1 = temp__4092__auto___11051;if(cljs.core.chunked_seq_QMARK_.call(null,seq__9094_11052__$1)) {var c__5632__auto___11053 = cljs.core.chunk_first.call(null,seq__9094_11052__$1);{ var G__11054 = cljs.core.chunk_rest.call(null,seq__9094_11052__$1); var G__11055 = c__5632__auto___11053; var G__11056 = cljs.core.count.call(null,c__5632__auto___11053); var G__11057 = 0; seq__9094_11042 = G__11054; chunk__9095_11043 = G__11055; count__9096_11044 = G__11056; i__9097_11045 = G__11057; continue; } } else {var arg__7510__auto___11058 = cljs.core.first.call(null,seq__9094_11052__$1);a__7509__auto__.push(arg__7510__auto___11058); { var G__11059 = cljs.core.next.call(null,seq__9094_11052__$1); var G__11060 = null; var G__11061 = 0; var G__11062 = 0; seq__9094_11042 = G__11059; chunk__9095_11043 = G__11060; count__9096_11044 = G__11061; i__9097_11045 = G__11062; continue; } } } else {} } break; } return React.DOM.output.apply(null,a__7509__auto__); }; var output = function (var_args){ var args__7508__auto__ = null;if (arguments.length > 0) { args__7508__auto__ = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0),0);} return output__delegate.call(this,args__7508__auto__);}; output.cljs$lang$maxFixedArity = 0; output.cljs$lang$applyTo = (function (arglist__11063){ var args__7508__auto__ = cljs.core.seq(arglist__11063); return output__delegate(args__7508__auto__); }); output.cljs$core$IFn$_invoke$arity$variadic = output__delegate; return output; })() ; /** * @param {...*} var_args */ quiescent.dom.p = (function() { var p__delegate = function (args__7508__auto__){var a__7509__auto__ = [];a__7509__auto__.push(quiescent.js_props.call(null,cljs.core.first.call(null,args__7508__auto__))); var seq__9102_11064 = cljs.core.seq.call(null,cljs.core.rest.call(null,args__7508__auto__));var chunk__9103_11065 = null;var count__9104_11066 = 0;var i__9105_11067 = 0;while(true){ if((i__9105_11067 < count__9104_11066)) {var arg__7510__auto___11068 = cljs.core._nth.call(null,chunk__9103_11065,i__9105_11067);a__7509__auto__.push(arg__7510__auto___11068); { var G__11069 = seq__9102_11064; var G__11070 = chunk__9103_11065; var G__11071 = count__9104_11066; var G__11072 = (i__9105_11067 + 1); seq__9102_11064 = G__11069; chunk__9103_11065 = G__11070; count__9104_11066 = G__11071; i__9105_11067 = G__11072; continue; } } else {var temp__4092__auto___11073 = cljs.core.seq.call(null,seq__9102_11064);if(temp__4092__auto___11073) {var seq__9102_11074__$1 = temp__4092__auto___11073;if(cljs.core.chunked_seq_QMARK_.call(null,seq__9102_11074__$1)) {var c__5632__auto___11075 = cljs.core.chunk_first.call(null,seq__9102_11074__$1);{ var G__11076 = cljs.core.chunk_rest.call(null,seq__9102_11074__$1); var G__11077 = c__5632__auto___11075; var G__11078 = cljs.core.count.call(null,c__5632__auto___11075); var G__11079 = 0; seq__9102_11064 = G__11076; chunk__9103_11065 = G__11077; count__9104_11066 = G__11078; i__9105_11067 = G__11079; continue; } } else {var arg__7510__auto___11080 = cljs.core.first.call(null,seq__9102_11074__$1);a__7509__auto__.push(arg__7510__auto___11080); { var G__11081 = cljs.core.next.call(null,seq__9102_11074__$1); var G__11082 = null; var G__11083 = 0; var G__11084 = 0; seq__9102_11064 = G__11081; chunk__9103_11065 = G__11082; count__9104_11066 = G__11083; i__9105_11067 = G__11084; continue; } } } else {} } break; } return React.DOM.p.apply(null,a__7509__auto__); }; var p = function (var_args){ var args__7508__auto__ = null;if (arguments.length > 0) { args__7508__auto__ = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0),0);} return p__delegate.call(this,args__7508__auto__);}; p.cljs$lang$maxFixedArity = 0; p.cljs$lang$applyTo = (function (arglist__11085){ var args__7508__auto__ = cljs.core.seq(arglist__11085); return p__delegate(args__7508__auto__); }); p.cljs$core$IFn$_invoke$arity$variadic = p__delegate; return p; })() ; /** * @param {...*} var_args */ quiescent.dom.param = (function() { var param__delegate = function (args__7508__auto__){var a__7509__auto__ = [];a__7509__auto__.push(quiescent.js_props.call(null,cljs.core.first.call(null,args__7508__auto__))); var seq__9110_11086 = cljs.core.seq.call(null,cljs.core.rest.call(null,args__7508__auto__));var chunk__9111_11087 = null;var count__9112_11088 = 0;var i__9113_11089 = 0;while(true){ if((i__9113_11089 < count__9112_11088)) {var arg__7510__auto___11090 = cljs.core._nth.call(null,chunk__9111_11087,i__9113_11089);a__7509__auto__.push(arg__7510__auto___11090); { var G__11091 = seq__9110_11086; var G__11092 = chunk__9111_11087; var G__11093 = count__9112_11088; var G__11094 = (i__9113_11089 + 1); seq__9110_11086 = G__11091; chunk__9111_11087 = G__11092; count__9112_11088 = G__11093; i__9113_11089 = G__11094; continue; } } else {var temp__4092__auto___11095 = cljs.core.seq.call(null,seq__9110_11086);if(temp__4092__auto___11095) {var seq__9110_11096__$1 = temp__4092__auto___11095;if(cljs.core.chunked_seq_QMARK_.call(null,seq__9110_11096__$1)) {var c__5632__auto___11097 = cljs.core.chunk_first.call(null,seq__9110_11096__$1);{ var G__11098 = cljs.core.chunk_rest.call(null,seq__9110_11096__$1); var G__11099 = c__5632__auto___11097; var G__11100 = cljs.core.count.call(null,c__5632__auto___11097); var G__11101 = 0; seq__9110_11086 = G__11098; chunk__9111_11087 = G__11099; count__9112_11088 = G__11100; i__9113_11089 = G__11101; continue; } } else {var arg__7510__auto___11102 = cljs.core.first.call(null,seq__9110_11096__$1);a__7509__auto__.push(arg__7510__auto___11102); { var G__11103 = cljs.core.next.call(null,seq__9110_11096__$1); var G__11104 = null; var G__11105 = 0; var G__11106 = 0; seq__9110_11086 = G__11103; chunk__9111_11087 = G__11104; count__9112_11088 = G__11105; i__9113_11089 = G__11106; continue; } } } else {} } break; } return React.DOM.param.apply(null,a__7509__auto__); }; var param = function (var_args){ var args__7508__auto__ = null;if (arguments.length > 0) { args__7508__auto__ = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0),0);} return param__delegate.call(this,args__7508__auto__);}; param.cljs$lang$maxFixedArity = 0; param.cljs$lang$applyTo = (function (arglist__11107){ var args__7508__auto__ = cljs.core.seq(arglist__11107); return param__delegate(args__7508__auto__); }); param.cljs$core$IFn$_invoke$arity$variadic = param__delegate; return param; })() ; /** * @param {...*} var_args */ quiescent.dom.pre = (function() { var pre__delegate = function (args__7508__auto__){var a__7509__auto__ = [];a__7509__auto__.push(quiescent.js_props.call(null,cljs.core.first.call(null,args__7508__auto__))); var seq__9118_11108 = cljs.core.seq.call(null,cljs.core.rest.call(null,args__7508__auto__));var chunk__9119_11109 = null;var count__9120_11110 = 0;var i__9121_11111 = 0;while(true){ if((i__9121_11111 < count__9120_11110)) {var arg__7510__auto___11112 = cljs.core._nth.call(null,chunk__9119_11109,i__9121_11111);a__7509__auto__.push(arg__7510__auto___11112); { var G__11113 = seq__9118_11108; var G__11114 = chunk__9119_11109; var G__11115 = count__9120_11110; var G__11116 = (i__9121_11111 + 1); seq__9118_11108 = G__11113; chunk__9119_11109 = G__11114; count__9120_11110 = G__11115; i__9121_11111 = G__11116; continue; } } else {var temp__4092__auto___11117 = cljs.core.seq.call(null,seq__9118_11108);if(temp__4092__auto___11117) {var seq__9118_11118__$1 = temp__4092__auto___11117;if(cljs.core.chunked_seq_QMARK_.call(null,seq__9118_11118__$1)) {var c__5632__auto___11119 = cljs.core.chunk_first.call(null,seq__9118_11118__$1);{ var G__11120 = cljs.core.chunk_rest.call(null,seq__9118_11118__$1); var G__11121 = c__5632__auto___11119; var G__11122 = cljs.core.count.call(null,c__5632__auto___11119); var G__11123 = 0; seq__9118_11108 = G__11120; chunk__9119_11109 = G__11121; count__9120_11110 = G__11122; i__9121_11111 = G__11123; continue; } } else {var arg__7510__auto___11124 = cljs.core.first.call(null,seq__9118_11118__$1);a__7509__auto__.push(arg__7510__auto___11124); { var G__11125 = cljs.core.next.call(null,seq__9118_11118__$1); var G__11126 = null; var G__11127 = 0; var G__11128 = 0; seq__9118_11108 = G__11125; chunk__9119_11109 = G__11126; count__9120_11110 = G__11127; i__9121_11111 = G__11128; continue; } } } else {} } break; } return React.DOM.pre.apply(null,a__7509__auto__); }; var pre = function (var_args){ var args__7508__auto__ = null;if (arguments.length > 0) { args__7508__auto__ = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0),0);} return pre__delegate.call(this,args__7508__auto__);}; pre.cljs$lang$maxFixedArity = 0; pre.cljs$lang$applyTo = (function (arglist__11129){ var args__7508__auto__ = cljs.core.seq(arglist__11129); return pre__delegate(args__7508__auto__); }); pre.cljs$core$IFn$_invoke$arity$variadic = pre__delegate; return pre; })() ; /** * @param {...*} var_args */ quiescent.dom.progress = (function() { var progress__delegate = function (args__7508__auto__){var a__7509__auto__ = [];a__7509__auto__.push(quiescent.js_props.call(null,cljs.core.first.call(null,args__7508__auto__))); var seq__9126_11130 = cljs.core.seq.call(null,cljs.core.rest.call(null,args__7508__auto__));var chunk__9127_11131 = null;var count__9128_11132 = 0;var i__9129_11133 = 0;while(true){ if((i__9129_11133 < count__9128_11132)) {var arg__7510__auto___11134 = cljs.core._nth.call(null,chunk__9127_11131,i__9129_11133);a__7509__auto__.push(arg__7510__auto___11134); { var G__11135 = seq__9126_11130; var G__11136 = chunk__9127_11131; var G__11137 = count__9128_11132; var G__11138 = (i__9129_11133 + 1); seq__9126_11130 = G__11135; chunk__9127_11131 = G__11136; count__9128_11132 = G__11137; i__9129_11133 = G__11138; continue; } } else {var temp__4092__auto___11139 = cljs.core.seq.call(null,seq__9126_11130);if(temp__4092__auto___11139) {var seq__9126_11140__$1 = temp__4092__auto___11139;if(cljs.core.chunked_seq_QMARK_.call(null,seq__9126_11140__$1)) {var c__5632__auto___11141 = cljs.core.chunk_first.call(null,seq__9126_11140__$1);{ var G__11142 = cljs.core.chunk_rest.call(null,seq__9126_11140__$1); var G__11143 = c__5632__auto___11141; var G__11144 = cljs.core.count.call(null,c__5632__auto___11141); var G__11145 = 0; seq__9126_11130 = G__11142; chunk__9127_11131 = G__11143; count__9128_11132 = G__11144; i__9129_11133 = G__11145; continue; } } else {var arg__7510__auto___11146 = cljs.core.first.call(null,seq__9126_11140__$1);a__7509__auto__.push(arg__7510__auto___11146); { var G__11147 = cljs.core.next.call(null,seq__9126_11140__$1); var G__11148 = null; var G__11149 = 0; var G__11150 = 0; seq__9126_11130 = G__11147; chunk__9127_11131 = G__11148; count__9128_11132 = G__11149; i__9129_11133 = G__11150; continue; } } } else {} } break; } return React.DOM.progress.apply(null,a__7509__auto__); }; var progress = function (var_args){ var args__7508__auto__ = null;if (arguments.length > 0) { args__7508__auto__ = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0),0);} return progress__delegate.call(this,args__7508__auto__);}; progress.cljs$lang$maxFixedArity = 0; progress.cljs$lang$applyTo = (function (arglist__11151){ var args__7508__auto__ = cljs.core.seq(arglist__11151); return progress__delegate(args__7508__auto__); }); progress.cljs$core$IFn$_invoke$arity$variadic = progress__delegate; return progress; })() ; /** * @param {...*} var_args */ quiescent.dom.q = (function() { var q__delegate = function (args__7508__auto__){var a__7509__auto__ = [];a__7509__auto__.push(quiescent.js_props.call(null,cljs.core.first.call(null,args__7508__auto__))); var seq__9134_11152 = cljs.core.seq.call(null,cljs.core.rest.call(null,args__7508__auto__));var chunk__9135_11153 = null;var count__9136_11154 = 0;var i__9137_11155 = 0;while(true){ if((i__9137_11155 < count__9136_11154)) {var arg__7510__auto___11156 = cljs.core._nth.call(null,chunk__9135_11153,i__9137_11155);a__7509__auto__.push(arg__7510__auto___11156); { var G__11157 = seq__9134_11152; var G__11158 = chunk__9135_11153; var G__11159 = count__9136_11154; var G__11160 = (i__9137_11155 + 1); seq__9134_11152 = G__11157; chunk__9135_11153 = G__11158; count__9136_11154 = G__11159; i__9137_11155 = G__11160; continue; } } else {var temp__4092__auto___11161 = cljs.core.seq.call(null,seq__9134_11152);if(temp__4092__auto___11161) {var seq__9134_11162__$1 = temp__4092__auto___11161;if(cljs.core.chunked_seq_QMARK_.call(null,seq__9134_11162__$1)) {var c__5632__auto___11163 = cljs.core.chunk_first.call(null,seq__9134_11162__$1);{ var G__11164 = cljs.core.chunk_rest.call(null,seq__9134_11162__$1); var G__11165 = c__5632__auto___11163; var G__11166 = cljs.core.count.call(null,c__5632__auto___11163); var G__11167 = 0; seq__9134_11152 = G__11164; chunk__9135_11153 = G__11165; count__9136_11154 = G__11166; i__9137_11155 = G__11167; continue; } } else {var arg__7510__auto___11168 = cljs.core.first.call(null,seq__9134_11162__$1);a__7509__auto__.push(arg__7510__auto___11168); { var G__11169 = cljs.core.next.call(null,seq__9134_11162__$1); var G__11170 = null; var G__11171 = 0; var G__11172 = 0; seq__9134_11152 = G__11169; chunk__9135_11153 = G__11170; count__9136_11154 = G__11171; i__9137_11155 = G__11172; continue; } } } else {} } break; } return React.DOM.q.apply(null,a__7509__auto__); }; var q = function (var_args){ var args__7508__auto__ = null;if (arguments.length > 0) { args__7508__auto__ = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0),0);} return q__delegate.call(this,args__7508__auto__);}; q.cljs$lang$maxFixedArity = 0; q.cljs$lang$applyTo = (function (arglist__11173){ var args__7508__auto__ = cljs.core.seq(arglist__11173); return q__delegate(args__7508__auto__); }); q.cljs$core$IFn$_invoke$arity$variadic = q__delegate; return q; })() ; /** * @param {...*} var_args */ quiescent.dom.rp = (function() { var rp__delegate = function (args__7508__auto__){var a__7509__auto__ = [];a__7509__auto__.push(quiescent.js_props.call(null,cljs.core.first.call(null,args__7508__auto__))); var seq__9142_11174 = cljs.core.seq.call(null,cljs.core.rest.call(null,args__7508__auto__));var chunk__9143_11175 = null;var count__9144_11176 = 0;var i__9145_11177 = 0;while(true){ if((i__9145_11177 < count__9144_11176)) {var arg__7510__auto___11178 = cljs.core._nth.call(null,chunk__9143_11175,i__9145_11177);a__7509__auto__.push(arg__7510__auto___11178); { var G__11179 = seq__9142_11174; var G__11180 = chunk__9143_11175; var G__11181 = count__9144_11176; var G__11182 = (i__9145_11177 + 1); seq__9142_11174 = G__11179; chunk__9143_11175 = G__11180; count__9144_11176 = G__11181; i__9145_11177 = G__11182; continue; } } else {var temp__4092__auto___11183 = cljs.core.seq.call(null,seq__9142_11174);if(temp__4092__auto___11183) {var seq__9142_11184__$1 = temp__4092__auto___11183;if(cljs.core.chunked_seq_QMARK_.call(null,seq__9142_11184__$1)) {var c__5632__auto___11185 = cljs.core.chunk_first.call(null,seq__9142_11184__$1);{ var G__11186 = cljs.core.chunk_rest.call(null,seq__9142_11184__$1); var G__11187 = c__5632__auto___11185; var G__11188 = cljs.core.count.call(null,c__5632__auto___11185); var G__11189 = 0; seq__9142_11174 = G__11186; chunk__9143_11175 = G__11187; count__9144_11176 = G__11188; i__9145_11177 = G__11189; continue; } } else {var arg__7510__auto___11190 = cljs.core.first.call(null,seq__9142_11184__$1);a__7509__auto__.push(arg__7510__auto___11190); { var G__11191 = cljs.core.next.call(null,seq__9142_11184__$1); var G__11192 = null; var G__11193 = 0; var G__11194 = 0; seq__9142_11174 = G__11191; chunk__9143_11175 = G__11192; count__9144_11176 = G__11193; i__9145_11177 = G__11194; continue; } } } else {} } break; } return React.DOM.rp.apply(null,a__7509__auto__); }; var rp = function (var_args){ var args__7508__auto__ = null;if (arguments.length > 0) { args__7508__auto__ = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0),0);} return rp__delegate.call(this,args__7508__auto__);}; rp.cljs$lang$maxFixedArity = 0; rp.cljs$lang$applyTo = (function (arglist__11195){ var args__7508__auto__ = cljs.core.seq(arglist__11195); return rp__delegate(args__7508__auto__); }); rp.cljs$core$IFn$_invoke$arity$variadic = rp__delegate; return rp; })() ; /** * @param {...*} var_args */ quiescent.dom.rt = (function() { var rt__delegate = function (args__7508__auto__){var a__7509__auto__ = [];a__7509__auto__.push(quiescent.js_props.call(null,cljs.core.first.call(null,args__7508__auto__))); var seq__9150_11196 = cljs.core.seq.call(null,cljs.core.rest.call(null,args__7508__auto__));var chunk__9151_11197 = null;var count__9152_11198 = 0;var i__9153_11199 = 0;while(true){ if((i__9153_11199 < count__9152_11198)) {var arg__7510__auto___11200 = cljs.core._nth.call(null,chunk__9151_11197,i__9153_11199);a__7509__auto__.push(arg__7510__auto___11200); { var G__11201 = seq__9150_11196; var G__11202 = chunk__9151_11197; var G__11203 = count__9152_11198; var G__11204 = (i__9153_11199 + 1); seq__9150_11196 = G__11201; chunk__9151_11197 = G__11202; count__9152_11198 = G__11203; i__9153_11199 = G__11204; continue; } } else {var temp__4092__auto___11205 = cljs.core.seq.call(null,seq__9150_11196);if(temp__4092__auto___11205) {var seq__9150_11206__$1 = temp__4092__auto___11205;if(cljs.core.chunked_seq_QMARK_.call(null,seq__9150_11206__$1)) {var c__5632__auto___11207 = cljs.core.chunk_first.call(null,seq__9150_11206__$1);{ var G__11208 = cljs.core.chunk_rest.call(null,seq__9150_11206__$1); var G__11209 = c__5632__auto___11207; var G__11210 = cljs.core.count.call(null,c__5632__auto___11207); var G__11211 = 0; seq__9150_11196 = G__11208; chunk__9151_11197 = G__11209; count__9152_11198 = G__11210; i__9153_11199 = G__11211; continue; } } else {var arg__7510__auto___11212 = cljs.core.first.call(null,seq__9150_11206__$1);a__7509__auto__.push(arg__7510__auto___11212); { var G__11213 = cljs.core.next.call(null,seq__9150_11206__$1); var G__11214 = null; var G__11215 = 0; var G__11216 = 0; seq__9150_11196 = G__11213; chunk__9151_11197 = G__11214; count__9152_11198 = G__11215; i__9153_11199 = G__11216; continue; } } } else {} } break; } return React.DOM.rt.apply(null,a__7509__auto__); }; var rt = function (var_args){ var args__7508__auto__ = null;if (arguments.length > 0) { args__7508__auto__ = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0),0);} return rt__delegate.call(this,args__7508__auto__);}; rt.cljs$lang$maxFixedArity = 0; rt.cljs$lang$applyTo = (function (arglist__11217){ var args__7508__auto__ = cljs.core.seq(arglist__11217); return rt__delegate(args__7508__auto__); }); rt.cljs$core$IFn$_invoke$arity$variadic = rt__delegate; return rt; })() ; /** * @param {...*} var_args */ quiescent.dom.ruby = (function() { var ruby__delegate = function (args__7508__auto__){var a__7509__auto__ = [];a__7509__auto__.push(quiescent.js_props.call(null,cljs.core.first.call(null,args__7508__auto__))); var seq__9158_11218 = cljs.core.seq.call(null,cljs.core.rest.call(null,args__7508__auto__));var chunk__9159_11219 = null;var count__9160_11220 = 0;var i__9161_11221 = 0;while(true){ if((i__9161_11221 < count__9160_11220)) {var arg__7510__auto___11222 = cljs.core._nth.call(null,chunk__9159_11219,i__9161_11221);a__7509__auto__.push(arg__7510__auto___11222); { var G__11223 = seq__9158_11218; var G__11224 = chunk__9159_11219; var G__11225 = count__9160_11220; var G__11226 = (i__9161_11221 + 1); seq__9158_11218 = G__11223; chunk__9159_11219 = G__11224; count__9160_11220 = G__11225; i__9161_11221 = G__11226; continue; } } else {var temp__4092__auto___11227 = cljs.core.seq.call(null,seq__9158_11218);if(temp__4092__auto___11227) {var seq__9158_11228__$1 = temp__4092__auto___11227;if(cljs.core.chunked_seq_QMARK_.call(null,seq__9158_11228__$1)) {var c__5632__auto___11229 = cljs.core.chunk_first.call(null,seq__9158_11228__$1);{ var G__11230 = cljs.core.chunk_rest.call(null,seq__9158_11228__$1); var G__11231 = c__5632__auto___11229; var G__11232 = cljs.core.count.call(null,c__5632__auto___11229); var G__11233 = 0; seq__9158_11218 = G__11230; chunk__9159_11219 = G__11231; count__9160_11220 = G__11232; i__9161_11221 = G__11233; continue; } } else {var arg__7510__auto___11234 = cljs.core.first.call(null,seq__9158_11228__$1);a__7509__auto__.push(arg__7510__auto___11234); { var G__11235 = cljs.core.next.call(null,seq__9158_11228__$1); var G__11236 = null; var G__11237 = 0; var G__11238 = 0; seq__9158_11218 = G__11235; chunk__9159_11219 = G__11236; count__9160_11220 = G__11237; i__9161_11221 = G__11238; continue; } } } else {} } break; } return React.DOM.ruby.apply(null,a__7509__auto__); }; var ruby = function (var_args){ var args__7508__auto__ = null;if (arguments.length > 0) { args__7508__auto__ = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0),0);} return ruby__delegate.call(this,args__7508__auto__);}; ruby.cljs$lang$maxFixedArity = 0; ruby.cljs$lang$applyTo = (function (arglist__11239){ var args__7508__auto__ = cljs.core.seq(arglist__11239); return ruby__delegate(args__7508__auto__); }); ruby.cljs$core$IFn$_invoke$arity$variadic = ruby__delegate; return ruby; })() ; /** * @param {...*} var_args */ quiescent.dom.s = (function() { var s__delegate = function (args__7508__auto__){var a__7509__auto__ = [];a__7509__auto__.push(quiescent.js_props.call(null,cljs.core.first.call(null,args__7508__auto__))); var seq__9166_11240 = cljs.core.seq.call(null,cljs.core.rest.call(null,args__7508__auto__));var chunk__9167_11241 = null;var count__9168_11242 = 0;var i__9169_11243 = 0;while(true){ if((i__9169_11243 < count__9168_11242)) {var arg__7510__auto___11244 = cljs.core._nth.call(null,chunk__9167_11241,i__9169_11243);a__7509__auto__.push(arg__7510__auto___11244); { var G__11245 = seq__9166_11240; var G__11246 = chunk__9167_11241; var G__11247 = count__9168_11242; var G__11248 = (i__9169_11243 + 1); seq__9166_11240 = G__11245; chunk__9167_11241 = G__11246; count__9168_11242 = G__11247; i__9169_11243 = G__11248; continue; } } else {var temp__4092__auto___11249 = cljs.core.seq.call(null,seq__9166_11240);if(temp__4092__auto___11249) {var seq__9166_11250__$1 = temp__4092__auto___11249;if(cljs.core.chunked_seq_QMARK_.call(null,seq__9166_11250__$1)) {var c__5632__auto___11251 = cljs.core.chunk_first.call(null,seq__9166_11250__$1);{ var G__11252 = cljs.core.chunk_rest.call(null,seq__9166_11250__$1); var G__11253 = c__5632__auto___11251; var G__11254 = cljs.core.count.call(null,c__5632__auto___11251); var G__11255 = 0; seq__9166_11240 = G__11252; chunk__9167_11241 = G__11253; count__9168_11242 = G__11254; i__9169_11243 = G__11255; continue; } } else {var arg__7510__auto___11256 = cljs.core.first.call(null,seq__9166_11250__$1);a__7509__auto__.push(arg__7510__auto___11256); { var G__11257 = cljs.core.next.call(null,seq__9166_11250__$1); var G__11258 = null; var G__11259 = 0; var G__11260 = 0; seq__9166_11240 = G__11257; chunk__9167_11241 = G__11258; count__9168_11242 = G__11259; i__9169_11243 = G__11260; continue; } } } else {} } break; } return React.DOM.s.apply(null,a__7509__auto__); }; var s = function (var_args){ var args__7508__auto__ = null;if (arguments.length > 0) { args__7508__auto__ = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0),0);} return s__delegate.call(this,args__7508__auto__);}; s.cljs$lang$maxFixedArity = 0; s.cljs$lang$applyTo = (function (arglist__11261){ var args__7508__auto__ = cljs.core.seq(arglist__11261); return s__delegate(args__7508__auto__); }); s.cljs$core$IFn$_invoke$arity$variadic = s__delegate; return s; })() ; /** * @param {...*} var_args */ quiescent.dom.samp = (function() { var samp__delegate = function (args__7508__auto__){var a__7509__auto__ = [];a__7509__auto__.push(quiescent.js_props.call(null,cljs.core.first.call(null,args__7508__auto__))); var seq__9174_11262 = cljs.core.seq.call(null,cljs.core.rest.call(null,args__7508__auto__));var chunk__9175_11263 = null;var count__9176_11264 = 0;var i__9177_11265 = 0;while(true){ if((i__9177_11265 < count__9176_11264)) {var arg__7510__auto___11266 = cljs.core._nth.call(null,chunk__9175_11263,i__9177_11265);a__7509__auto__.push(arg__7510__auto___11266); { var G__11267 = seq__9174_11262; var G__11268 = chunk__9175_11263; var G__11269 = count__9176_11264; var G__11270 = (i__9177_11265 + 1); seq__9174_11262 = G__11267; chunk__9175_11263 = G__11268; count__9176_11264 = G__11269; i__9177_11265 = G__11270; continue; } } else {var temp__4092__auto___11271 = cljs.core.seq.call(null,seq__9174_11262);if(temp__4092__auto___11271) {var seq__9174_11272__$1 = temp__4092__auto___11271;if(cljs.core.chunked_seq_QMARK_.call(null,seq__9174_11272__$1)) {var c__5632__auto___11273 = cljs.core.chunk_first.call(null,seq__9174_11272__$1);{ var G__11274 = cljs.core.chunk_rest.call(null,seq__9174_11272__$1); var G__11275 = c__5632__auto___11273; var G__11276 = cljs.core.count.call(null,c__5632__auto___11273); var G__11277 = 0; seq__9174_11262 = G__11274; chunk__9175_11263 = G__11275; count__9176_11264 = G__11276; i__9177_11265 = G__11277; continue; } } else {var arg__7510__auto___11278 = cljs.core.first.call(null,seq__9174_11272__$1);a__7509__auto__.push(arg__7510__auto___11278); { var G__11279 = cljs.core.next.call(null,seq__9174_11272__$1); var G__11280 = null; var G__11281 = 0; var G__11282 = 0; seq__9174_11262 = G__11279; chunk__9175_11263 = G__11280; count__9176_11264 = G__11281; i__9177_11265 = G__11282; continue; } } } else {} } break; } return React.DOM.samp.apply(null,a__7509__auto__); }; var samp = function (var_args){ var args__7508__auto__ = null;if (arguments.length > 0) { args__7508__auto__ = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0),0);} return samp__delegate.call(this,args__7508__auto__);}; samp.cljs$lang$maxFixedArity = 0; samp.cljs$lang$applyTo = (function (arglist__11283){ var args__7508__auto__ = cljs.core.seq(arglist__11283); return samp__delegate(args__7508__auto__); }); samp.cljs$core$IFn$_invoke$arity$variadic = samp__delegate; return samp; })() ; /** * @param {...*} var_args */ quiescent.dom.script = (function() { var script__delegate = function (args__7508__auto__){var a__7509__auto__ = [];a__7509__auto__.push(quiescent.js_props.call(null,cljs.core.first.call(null,args__7508__auto__))); var seq__9182_11284 = cljs.core.seq.call(null,cljs.core.rest.call(null,args__7508__auto__));var chunk__9183_11285 = null;var count__9184_11286 = 0;var i__9185_11287 = 0;while(true){ if((i__9185_11287 < count__9184_11286)) {var arg__7510__auto___11288 = cljs.core._nth.call(null,chunk__9183_11285,i__9185_11287);a__7509__auto__.push(arg__7510__auto___11288); { var G__11289 = seq__9182_11284; var G__11290 = chunk__9183_11285; var G__11291 = count__9184_11286; var G__11292 = (i__9185_11287 + 1); seq__9182_11284 = G__11289; chunk__9183_11285 = G__11290; count__9184_11286 = G__11291; i__9185_11287 = G__11292; continue; } } else {var temp__4092__auto___11293 = cljs.core.seq.call(null,seq__9182_11284);if(temp__4092__auto___11293) {var seq__9182_11294__$1 = temp__4092__auto___11293;if(cljs.core.chunked_seq_QMARK_.call(null,seq__9182_11294__$1)) {var c__5632__auto___11295 = cljs.core.chunk_first.call(null,seq__9182_11294__$1);{ var G__11296 = cljs.core.chunk_rest.call(null,seq__9182_11294__$1); var G__11297 = c__5632__auto___11295; var G__11298 = cljs.core.count.call(null,c__5632__auto___11295); var G__11299 = 0; seq__9182_11284 = G__11296; chunk__9183_11285 = G__11297; count__9184_11286 = G__11298; i__9185_11287 = G__11299; continue; } } else {var arg__7510__auto___11300 = cljs.core.first.call(null,seq__9182_11294__$1);a__7509__auto__.push(arg__7510__auto___11300); { var G__11301 = cljs.core.next.call(null,seq__9182_11294__$1); var G__11302 = null; var G__11303 = 0; var G__11304 = 0; seq__9182_11284 = G__11301; chunk__9183_11285 = G__11302; count__9184_11286 = G__11303; i__9185_11287 = G__11304; continue; } } } else {} } break; } return React.DOM.script.apply(null,a__7509__auto__); }; var script = function (var_args){ var args__7508__auto__ = null;if (arguments.length > 0) { args__7508__auto__ = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0),0);} return script__delegate.call(this,args__7508__auto__);}; script.cljs$lang$maxFixedArity = 0; script.cljs$lang$applyTo = (function (arglist__11305){ var args__7508__auto__ = cljs.core.seq(arglist__11305); return script__delegate(args__7508__auto__); }); script.cljs$core$IFn$_invoke$arity$variadic = script__delegate; return script; })() ; /** * @param {...*} var_args */ quiescent.dom.section = (function() { var section__delegate = function (args__7508__auto__){var a__7509__auto__ = [];a__7509__auto__.push(quiescent.js_props.call(null,cljs.core.first.call(null,args__7508__auto__))); var seq__9190_11306 = cljs.core.seq.call(null,cljs.core.rest.call(null,args__7508__auto__));var chunk__9191_11307 = null;var count__9192_11308 = 0;var i__9193_11309 = 0;while(true){ if((i__9193_11309 < count__9192_11308)) {var arg__7510__auto___11310 = cljs.core._nth.call(null,chunk__9191_11307,i__9193_11309);a__7509__auto__.push(arg__7510__auto___11310); { var G__11311 = seq__9190_11306; var G__11312 = chunk__9191_11307; var G__11313 = count__9192_11308; var G__11314 = (i__9193_11309 + 1); seq__9190_11306 = G__11311; chunk__9191_11307 = G__11312; count__9192_11308 = G__11313; i__9193_11309 = G__11314; continue; } } else {var temp__4092__auto___11315 = cljs.core.seq.call(null,seq__9190_11306);if(temp__4092__auto___11315) {var seq__9190_11316__$1 = temp__4092__auto___11315;if(cljs.core.chunked_seq_QMARK_.call(null,seq__9190_11316__$1)) {var c__5632__auto___11317 = cljs.core.chunk_first.call(null,seq__9190_11316__$1);{ var G__11318 = cljs.core.chunk_rest.call(null,seq__9190_11316__$1); var G__11319 = c__5632__auto___11317; var G__11320 = cljs.core.count.call(null,c__5632__auto___11317); var G__11321 = 0; seq__9190_11306 = G__11318; chunk__9191_11307 = G__11319; count__9192_11308 = G__11320; i__9193_11309 = G__11321; continue; } } else {var arg__7510__auto___11322 = cljs.core.first.call(null,seq__9190_11316__$1);a__7509__auto__.push(arg__7510__auto___11322); { var G__11323 = cljs.core.next.call(null,seq__9190_11316__$1); var G__11324 = null; var G__11325 = 0; var G__11326 = 0; seq__9190_11306 = G__11323; chunk__9191_11307 = G__11324; count__9192_11308 = G__11325; i__9193_11309 = G__11326; continue; } } } else {} } break; } return React.DOM.section.apply(null,a__7509__auto__); }; var section = function (var_args){ var args__7508__auto__ = null;if (arguments.length > 0) { args__7508__auto__ = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0),0);} return section__delegate.call(this,args__7508__auto__);}; section.cljs$lang$maxFixedArity = 0; section.cljs$lang$applyTo = (function (arglist__11327){ var args__7508__auto__ = cljs.core.seq(arglist__11327); return section__delegate(args__7508__auto__); }); section.cljs$core$IFn$_invoke$arity$variadic = section__delegate; return section; })() ; /** * @param {...*} var_args */ quiescent.dom.select = (function() { var select__delegate = function (args__7508__auto__){var a__7509__auto__ = [];a__7509__auto__.push(quiescent.js_props.call(null,cljs.core.first.call(null,args__7508__auto__))); var seq__9198_11328 = cljs.core.seq.call(null,cljs.core.rest.call(null,args__7508__auto__));var chunk__9199_11329 = null;var count__9200_11330 = 0;var i__9201_11331 = 0;while(true){ if((i__9201_11331 < count__9200_11330)) {var arg__7510__auto___11332 = cljs.core._nth.call(null,chunk__9199_11329,i__9201_11331);a__7509__auto__.push(arg__7510__auto___11332); { var G__11333 = seq__9198_11328; var G__11334 = chunk__9199_11329; var G__11335 = count__9200_11330; var G__11336 = (i__9201_11331 + 1); seq__9198_11328 = G__11333; chunk__9199_11329 = G__11334; count__9200_11330 = G__11335; i__9201_11331 = G__11336; continue; } } else {var temp__4092__auto___11337 = cljs.core.seq.call(null,seq__9198_11328);if(temp__4092__auto___11337) {var seq__9198_11338__$1 = temp__4092__auto___11337;if(cljs.core.chunked_seq_QMARK_.call(null,seq__9198_11338__$1)) {var c__5632__auto___11339 = cljs.core.chunk_first.call(null,seq__9198_11338__$1);{ var G__11340 = cljs.core.chunk_rest.call(null,seq__9198_11338__$1); var G__11341 = c__5632__auto___11339; var G__11342 = cljs.core.count.call(null,c__5632__auto___11339); var G__11343 = 0; seq__9198_11328 = G__11340; chunk__9199_11329 = G__11341; count__9200_11330 = G__11342; i__9201_11331 = G__11343; continue; } } else {var arg__7510__auto___11344 = cljs.core.first.call(null,seq__9198_11338__$1);a__7509__auto__.push(arg__7510__auto___11344); { var G__11345 = cljs.core.next.call(null,seq__9198_11338__$1); var G__11346 = null; var G__11347 = 0; var G__11348 = 0; seq__9198_11328 = G__11345; chunk__9199_11329 = G__11346; count__9200_11330 = G__11347; i__9201_11331 = G__11348; continue; } } } else {} } break; } return React.DOM.select.apply(null,a__7509__auto__); }; var select = function (var_args){ var args__7508__auto__ = null;if (arguments.length > 0) { args__7508__auto__ = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0),0);} return select__delegate.call(this,args__7508__auto__);}; select.cljs$lang$maxFixedArity = 0; select.cljs$lang$applyTo = (function (arglist__11349){ var args__7508__auto__ = cljs.core.seq(arglist__11349); return select__delegate(args__7508__auto__); }); select.cljs$core$IFn$_invoke$arity$variadic = select__delegate; return select; })() ; /** * @param {...*} var_args */ quiescent.dom.small = (function() { var small__delegate = function (args__7508__auto__){var a__7509__auto__ = [];a__7509__auto__.push(quiescent.js_props.call(null,cljs.core.first.call(null,args__7508__auto__))); var seq__9206_11350 = cljs.core.seq.call(null,cljs.core.rest.call(null,args__7508__auto__));var chunk__9207_11351 = null;var count__9208_11352 = 0;var i__9209_11353 = 0;while(true){ if((i__9209_11353 < count__9208_11352)) {var arg__7510__auto___11354 = cljs.core._nth.call(null,chunk__9207_11351,i__9209_11353);a__7509__auto__.push(arg__7510__auto___11354); { var G__11355 = seq__9206_11350; var G__11356 = chunk__9207_11351; var G__11357 = count__9208_11352; var G__11358 = (i__9209_11353 + 1); seq__9206_11350 = G__11355; chunk__9207_11351 = G__11356; count__9208_11352 = G__11357; i__9209_11353 = G__11358; continue; } } else {var temp__4092__auto___11359 = cljs.core.seq.call(null,seq__9206_11350);if(temp__4092__auto___11359) {var seq__9206_11360__$1 = temp__4092__auto___11359;if(cljs.core.chunked_seq_QMARK_.call(null,seq__9206_11360__$1)) {var c__5632__auto___11361 = cljs.core.chunk_first.call(null,seq__9206_11360__$1);{ var G__11362 = cljs.core.chunk_rest.call(null,seq__9206_11360__$1); var G__11363 = c__5632__auto___11361; var G__11364 = cljs.core.count.call(null,c__5632__auto___11361); var G__11365 = 0; seq__9206_11350 = G__11362; chunk__9207_11351 = G__11363; count__9208_11352 = G__11364; i__9209_11353 = G__11365; continue; } } else {var arg__7510__auto___11366 = cljs.core.first.call(null,seq__9206_11360__$1);a__7509__auto__.push(arg__7510__auto___11366); { var G__11367 = cljs.core.next.call(null,seq__9206_11360__$1); var G__11368 = null; var G__11369 = 0; var G__11370 = 0; seq__9206_11350 = G__11367; chunk__9207_11351 = G__11368; count__9208_11352 = G__11369; i__9209_11353 = G__11370; continue; } } } else {} } break; } return React.DOM.small.apply(null,a__7509__auto__); }; var small = function (var_args){ var args__7508__auto__ = null;if (arguments.length > 0) { args__7508__auto__ = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0),0);} return small__delegate.call(this,args__7508__auto__);}; small.cljs$lang$maxFixedArity = 0; small.cljs$lang$applyTo = (function (arglist__11371){ var args__7508__auto__ = cljs.core.seq(arglist__11371); return small__delegate(args__7508__auto__); }); small.cljs$core$IFn$_invoke$arity$variadic = small__delegate; return small; })() ; /** * @param {...*} var_args */ quiescent.dom.source = (function() { var source__delegate = function (args__7508__auto__){var a__7509__auto__ = [];a__7509__auto__.push(quiescent.js_props.call(null,cljs.core.first.call(null,args__7508__auto__))); var seq__9214_11372 = cljs.core.seq.call(null,cljs.core.rest.call(null,args__7508__auto__));var chunk__9215_11373 = null;var count__9216_11374 = 0;var i__9217_11375 = 0;while(true){ if((i__9217_11375 < count__9216_11374)) {var arg__7510__auto___11376 = cljs.core._nth.call(null,chunk__9215_11373,i__9217_11375);a__7509__auto__.push(arg__7510__auto___11376); { var G__11377 = seq__9214_11372; var G__11378 = chunk__9215_11373; var G__11379 = count__9216_11374; var G__11380 = (i__9217_11375 + 1); seq__9214_11372 = G__11377; chunk__9215_11373 = G__11378; count__9216_11374 = G__11379; i__9217_11375 = G__11380; continue; } } else {var temp__4092__auto___11381 = cljs.core.seq.call(null,seq__9214_11372);if(temp__4092__auto___11381) {var seq__9214_11382__$1 = temp__4092__auto___11381;if(cljs.core.chunked_seq_QMARK_.call(null,seq__9214_11382__$1)) {var c__5632__auto___11383 = cljs.core.chunk_first.call(null,seq__9214_11382__$1);{ var G__11384 = cljs.core.chunk_rest.call(null,seq__9214_11382__$1); var G__11385 = c__5632__auto___11383; var G__11386 = cljs.core.count.call(null,c__5632__auto___11383); var G__11387 = 0; seq__9214_11372 = G__11384; chunk__9215_11373 = G__11385; count__9216_11374 = G__11386; i__9217_11375 = G__11387; continue; } } else {var arg__7510__auto___11388 = cljs.core.first.call(null,seq__9214_11382__$1);a__7509__auto__.push(arg__7510__auto___11388); { var G__11389 = cljs.core.next.call(null,seq__9214_11382__$1); var G__11390 = null; var G__11391 = 0; var G__11392 = 0; seq__9214_11372 = G__11389; chunk__9215_11373 = G__11390; count__9216_11374 = G__11391; i__9217_11375 = G__11392; continue; } } } else {} } break; } return React.DOM.source.apply(null,a__7509__auto__); }; var source = function (var_args){ var args__7508__auto__ = null;if (arguments.length > 0) { args__7508__auto__ = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0),0);} return source__delegate.call(this,args__7508__auto__);}; source.cljs$lang$maxFixedArity = 0; source.cljs$lang$applyTo = (function (arglist__11393){ var args__7508__auto__ = cljs.core.seq(arglist__11393); return source__delegate(args__7508__auto__); }); source.cljs$core$IFn$_invoke$arity$variadic = source__delegate; return source; })() ; /** * @param {...*} var_args */ quiescent.dom.span = (function() { var span__delegate = function (args__7508__auto__){var a__7509__auto__ = [];a__7509__auto__.push(quiescent.js_props.call(null,cljs.core.first.call(null,args__7508__auto__))); var seq__9222_11394 = cljs.core.seq.call(null,cljs.core.rest.call(null,args__7508__auto__));var chunk__9223_11395 = null;var count__9224_11396 = 0;var i__9225_11397 = 0;while(true){ if((i__9225_11397 < count__9224_11396)) {var arg__7510__auto___11398 = cljs.core._nth.call(null,chunk__9223_11395,i__9225_11397);a__7509__auto__.push(arg__7510__auto___11398); { var G__11399 = seq__9222_11394; var G__11400 = chunk__9223_11395; var G__11401 = count__9224_11396; var G__11402 = (i__9225_11397 + 1); seq__9222_11394 = G__11399; chunk__9223_11395 = G__11400; count__9224_11396 = G__11401; i__9225_11397 = G__11402; continue; } } else {var temp__4092__auto___11403 = cljs.core.seq.call(null,seq__9222_11394);if(temp__4092__auto___11403) {var seq__9222_11404__$1 = temp__4092__auto___11403;if(cljs.core.chunked_seq_QMARK_.call(null,seq__9222_11404__$1)) {var c__5632__auto___11405 = cljs.core.chunk_first.call(null,seq__9222_11404__$1);{ var G__11406 = cljs.core.chunk_rest.call(null,seq__9222_11404__$1); var G__11407 = c__5632__auto___11405; var G__11408 = cljs.core.count.call(null,c__5632__auto___11405); var G__11409 = 0; seq__9222_11394 = G__11406; chunk__9223_11395 = G__11407; count__9224_11396 = G__11408; i__9225_11397 = G__11409; continue; } } else {var arg__7510__auto___11410 = cljs.core.first.call(null,seq__9222_11404__$1);a__7509__auto__.push(arg__7510__auto___11410); { var G__11411 = cljs.core.next.call(null,seq__9222_11404__$1); var G__11412 = null; var G__11413 = 0; var G__11414 = 0; seq__9222_11394 = G__11411; chunk__9223_11395 = G__11412; count__9224_11396 = G__11413; i__9225_11397 = G__11414; continue; } } } else {} } break; } return React.DOM.span.apply(null,a__7509__auto__); }; var span = function (var_args){ var args__7508__auto__ = null;if (arguments.length > 0) { args__7508__auto__ = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0),0);} return span__delegate.call(this,args__7508__auto__);}; span.cljs$lang$maxFixedArity = 0; span.cljs$lang$applyTo = (function (arglist__11415){ var args__7508__auto__ = cljs.core.seq(arglist__11415); return span__delegate(args__7508__auto__); }); span.cljs$core$IFn$_invoke$arity$variadic = span__delegate; return span; })() ; /** * @param {...*} var_args */ quiescent.dom.strong = (function() { var strong__delegate = function (args__7508__auto__){var a__7509__auto__ = [];a__7509__auto__.push(quiescent.js_props.call(null,cljs.core.first.call(null,args__7508__auto__))); var seq__9230_11416 = cljs.core.seq.call(null,cljs.core.rest.call(null,args__7508__auto__));var chunk__9231_11417 = null;var count__9232_11418 = 0;var i__9233_11419 = 0;while(true){ if((i__9233_11419 < count__9232_11418)) {var arg__7510__auto___11420 = cljs.core._nth.call(null,chunk__9231_11417,i__9233_11419);a__7509__auto__.push(arg__7510__auto___11420); { var G__11421 = seq__9230_11416; var G__11422 = chunk__9231_11417; var G__11423 = count__9232_11418; var G__11424 = (i__9233_11419 + 1); seq__9230_11416 = G__11421; chunk__9231_11417 = G__11422; count__9232_11418 = G__11423; i__9233_11419 = G__11424; continue; } } else {var temp__4092__auto___11425 = cljs.core.seq.call(null,seq__9230_11416);if(temp__4092__auto___11425) {var seq__9230_11426__$1 = temp__4092__auto___11425;if(cljs.core.chunked_seq_QMARK_.call(null,seq__9230_11426__$1)) {var c__5632__auto___11427 = cljs.core.chunk_first.call(null,seq__9230_11426__$1);{ var G__11428 = cljs.core.chunk_rest.call(null,seq__9230_11426__$1); var G__11429 = c__5632__auto___11427; var G__11430 = cljs.core.count.call(null,c__5632__auto___11427); var G__11431 = 0; seq__9230_11416 = G__11428; chunk__9231_11417 = G__11429; count__9232_11418 = G__11430; i__9233_11419 = G__11431; continue; } } else {var arg__7510__auto___11432 = cljs.core.first.call(null,seq__9230_11426__$1);a__7509__auto__.push(arg__7510__auto___11432); { var G__11433 = cljs.core.next.call(null,seq__9230_11426__$1); var G__11434 = null; var G__11435 = 0; var G__11436 = 0; seq__9230_11416 = G__11433; chunk__9231_11417 = G__11434; count__9232_11418 = G__11435; i__9233_11419 = G__11436; continue; } } } else {} } break; } return React.DOM.strong.apply(null,a__7509__auto__); }; var strong = function (var_args){ var args__7508__auto__ = null;if (arguments.length > 0) { args__7508__auto__ = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0),0);} return strong__delegate.call(this,args__7508__auto__);}; strong.cljs$lang$maxFixedArity = 0; strong.cljs$lang$applyTo = (function (arglist__11437){ var args__7508__auto__ = cljs.core.seq(arglist__11437); return strong__delegate(args__7508__auto__); }); strong.cljs$core$IFn$_invoke$arity$variadic = strong__delegate; return strong; })() ; /** * @param {...*} var_args */ quiescent.dom.style = (function() { var style__delegate = function (args__7508__auto__){var a__7509__auto__ = [];a__7509__auto__.push(quiescent.js_props.call(null,cljs.core.first.call(null,args__7508__auto__))); var seq__9238_11438 = cljs.core.seq.call(null,cljs.core.rest.call(null,args__7508__auto__));var chunk__9239_11439 = null;var count__9240_11440 = 0;var i__9241_11441 = 0;while(true){ if((i__9241_11441 < count__9240_11440)) {var arg__7510__auto___11442 = cljs.core._nth.call(null,chunk__9239_11439,i__9241_11441);a__7509__auto__.push(arg__7510__auto___11442); { var G__11443 = seq__9238_11438; var G__11444 = chunk__9239_11439; var G__11445 = count__9240_11440; var G__11446 = (i__9241_11441 + 1); seq__9238_11438 = G__11443; chunk__9239_11439 = G__11444; count__9240_11440 = G__11445; i__9241_11441 = G__11446; continue; } } else {var temp__4092__auto___11447 = cljs.core.seq.call(null,seq__9238_11438);if(temp__4092__auto___11447) {var seq__9238_11448__$1 = temp__4092__auto___11447;if(cljs.core.chunked_seq_QMARK_.call(null,seq__9238_11448__$1)) {var c__5632__auto___11449 = cljs.core.chunk_first.call(null,seq__9238_11448__$1);{ var G__11450 = cljs.core.chunk_rest.call(null,seq__9238_11448__$1); var G__11451 = c__5632__auto___11449; var G__11452 = cljs.core.count.call(null,c__5632__auto___11449); var G__11453 = 0; seq__9238_11438 = G__11450; chunk__9239_11439 = G__11451; count__9240_11440 = G__11452; i__9241_11441 = G__11453; continue; } } else {var arg__7510__auto___11454 = cljs.core.first.call(null,seq__9238_11448__$1);a__7509__auto__.push(arg__7510__auto___11454); { var G__11455 = cljs.core.next.call(null,seq__9238_11448__$1); var G__11456 = null; var G__11457 = 0; var G__11458 = 0; seq__9238_11438 = G__11455; chunk__9239_11439 = G__11456; count__9240_11440 = G__11457; i__9241_11441 = G__11458; continue; } } } else {} } break; } return React.DOM.style.apply(null,a__7509__auto__); }; var style = function (var_args){ var args__7508__auto__ = null;if (arguments.length > 0) { args__7508__auto__ = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0),0);} return style__delegate.call(this,args__7508__auto__);}; style.cljs$lang$maxFixedArity = 0; style.cljs$lang$applyTo = (function (arglist__11459){ var args__7508__auto__ = cljs.core.seq(arglist__11459); return style__delegate(args__7508__auto__); }); style.cljs$core$IFn$_invoke$arity$variadic = style__delegate; return style; })() ; /** * @param {...*} var_args */ quiescent.dom.sub = (function() { var sub__delegate = function (args__7508__auto__){var a__7509__auto__ = [];a__7509__auto__.push(quiescent.js_props.call(null,cljs.core.first.call(null,args__7508__auto__))); var seq__9246_11460 = cljs.core.seq.call(null,cljs.core.rest.call(null,args__7508__auto__));var chunk__9247_11461 = null;var count__9248_11462 = 0;var i__9249_11463 = 0;while(true){ if((i__9249_11463 < count__9248_11462)) {var arg__7510__auto___11464 = cljs.core._nth.call(null,chunk__9247_11461,i__9249_11463);a__7509__auto__.push(arg__7510__auto___11464); { var G__11465 = seq__9246_11460; var G__11466 = chunk__9247_11461; var G__11467 = count__9248_11462; var G__11468 = (i__9249_11463 + 1); seq__9246_11460 = G__11465; chunk__9247_11461 = G__11466; count__9248_11462 = G__11467; i__9249_11463 = G__11468; continue; } } else {var temp__4092__auto___11469 = cljs.core.seq.call(null,seq__9246_11460);if(temp__4092__auto___11469) {var seq__9246_11470__$1 = temp__4092__auto___11469;if(cljs.core.chunked_seq_QMARK_.call(null,seq__9246_11470__$1)) {var c__5632__auto___11471 = cljs.core.chunk_first.call(null,seq__9246_11470__$1);{ var G__11472 = cljs.core.chunk_rest.call(null,seq__9246_11470__$1); var G__11473 = c__5632__auto___11471; var G__11474 = cljs.core.count.call(null,c__5632__auto___11471); var G__11475 = 0; seq__9246_11460 = G__11472; chunk__9247_11461 = G__11473; count__9248_11462 = G__11474; i__9249_11463 = G__11475; continue; } } else {var arg__7510__auto___11476 = cljs.core.first.call(null,seq__9246_11470__$1);a__7509__auto__.push(arg__7510__auto___11476); { var G__11477 = cljs.core.next.call(null,seq__9246_11470__$1); var G__11478 = null; var G__11479 = 0; var G__11480 = 0; seq__9246_11460 = G__11477; chunk__9247_11461 = G__11478; count__9248_11462 = G__11479; i__9249_11463 = G__11480; continue; } } } else {} } break; } return React.DOM.sub.apply(null,a__7509__auto__); }; var sub = function (var_args){ var args__7508__auto__ = null;if (arguments.length > 0) { args__7508__auto__ = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0),0);} return sub__delegate.call(this,args__7508__auto__);}; sub.cljs$lang$maxFixedArity = 0; sub.cljs$lang$applyTo = (function (arglist__11481){ var args__7508__auto__ = cljs.core.seq(arglist__11481); return sub__delegate(args__7508__auto__); }); sub.cljs$core$IFn$_invoke$arity$variadic = sub__delegate; return sub; })() ; /** * @param {...*} var_args */ quiescent.dom.summary = (function() { var summary__delegate = function (args__7508__auto__){var a__7509__auto__ = [];a__7509__auto__.push(quiescent.js_props.call(null,cljs.core.first.call(null,args__7508__auto__))); var seq__9254_11482 = cljs.core.seq.call(null,cljs.core.rest.call(null,args__7508__auto__));var chunk__9255_11483 = null;var count__9256_11484 = 0;var i__9257_11485 = 0;while(true){ if((i__9257_11485 < count__9256_11484)) {var arg__7510__auto___11486 = cljs.core._nth.call(null,chunk__9255_11483,i__9257_11485);a__7509__auto__.push(arg__7510__auto___11486); { var G__11487 = seq__9254_11482; var G__11488 = chunk__9255_11483; var G__11489 = count__9256_11484; var G__11490 = (i__9257_11485 + 1); seq__9254_11482 = G__11487; chunk__9255_11483 = G__11488; count__9256_11484 = G__11489; i__9257_11485 = G__11490; continue; } } else {var temp__4092__auto___11491 = cljs.core.seq.call(null,seq__9254_11482);if(temp__4092__auto___11491) {var seq__9254_11492__$1 = temp__4092__auto___11491;if(cljs.core.chunked_seq_QMARK_.call(null,seq__9254_11492__$1)) {var c__5632__auto___11493 = cljs.core.chunk_first.call(null,seq__9254_11492__$1);{ var G__11494 = cljs.core.chunk_rest.call(null,seq__9254_11492__$1); var G__11495 = c__5632__auto___11493; var G__11496 = cljs.core.count.call(null,c__5632__auto___11493); var G__11497 = 0; seq__9254_11482 = G__11494; chunk__9255_11483 = G__11495; count__9256_11484 = G__11496; i__9257_11485 = G__11497; continue; } } else {var arg__7510__auto___11498 = cljs.core.first.call(null,seq__9254_11492__$1);a__7509__auto__.push(arg__7510__auto___11498); { var G__11499 = cljs.core.next.call(null,seq__9254_11492__$1); var G__11500 = null; var G__11501 = 0; var G__11502 = 0; seq__9254_11482 = G__11499; chunk__9255_11483 = G__11500; count__9256_11484 = G__11501; i__9257_11485 = G__11502; continue; } } } else {} } break; } return React.DOM.summary.apply(null,a__7509__auto__); }; var summary = function (var_args){ var args__7508__auto__ = null;if (arguments.length > 0) { args__7508__auto__ = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0),0);} return summary__delegate.call(this,args__7508__auto__);}; summary.cljs$lang$maxFixedArity = 0; summary.cljs$lang$applyTo = (function (arglist__11503){ var args__7508__auto__ = cljs.core.seq(arglist__11503); return summary__delegate(args__7508__auto__); }); summary.cljs$core$IFn$_invoke$arity$variadic = summary__delegate; return summary; })() ; /** * @param {...*} var_args */ quiescent.dom.sup = (function() { var sup__delegate = function (args__7508__auto__){var a__7509__auto__ = [];a__7509__auto__.push(quiescent.js_props.call(null,cljs.core.first.call(null,args__7508__auto__))); var seq__9262_11504 = cljs.core.seq.call(null,cljs.core.rest.call(null,args__7508__auto__));var chunk__9263_11505 = null;var count__9264_11506 = 0;var i__9265_11507 = 0;while(true){ if((i__9265_11507 < count__9264_11506)) {var arg__7510__auto___11508 = cljs.core._nth.call(null,chunk__9263_11505,i__9265_11507);a__7509__auto__.push(arg__7510__auto___11508); { var G__11509 = seq__9262_11504; var G__11510 = chunk__9263_11505; var G__11511 = count__9264_11506; var G__11512 = (i__9265_11507 + 1); seq__9262_11504 = G__11509; chunk__9263_11505 = G__11510; count__9264_11506 = G__11511; i__9265_11507 = G__11512; continue; } } else {var temp__4092__auto___11513 = cljs.core.seq.call(null,seq__9262_11504);if(temp__4092__auto___11513) {var seq__9262_11514__$1 = temp__4092__auto___11513;if(cljs.core.chunked_seq_QMARK_.call(null,seq__9262_11514__$1)) {var c__5632__auto___11515 = cljs.core.chunk_first.call(null,seq__9262_11514__$1);{ var G__11516 = cljs.core.chunk_rest.call(null,seq__9262_11514__$1); var G__11517 = c__5632__auto___11515; var G__11518 = cljs.core.count.call(null,c__5632__auto___11515); var G__11519 = 0; seq__9262_11504 = G__11516; chunk__9263_11505 = G__11517; count__9264_11506 = G__11518; i__9265_11507 = G__11519; continue; } } else {var arg__7510__auto___11520 = cljs.core.first.call(null,seq__9262_11514__$1);a__7509__auto__.push(arg__7510__auto___11520); { var G__11521 = cljs.core.next.call(null,seq__9262_11514__$1); var G__11522 = null; var G__11523 = 0; var G__11524 = 0; seq__9262_11504 = G__11521; chunk__9263_11505 = G__11522; count__9264_11506 = G__11523; i__9265_11507 = G__11524; continue; } } } else {} } break; } return React.DOM.sup.apply(null,a__7509__auto__); }; var sup = function (var_args){ var args__7508__auto__ = null;if (arguments.length > 0) { args__7508__auto__ = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0),0);} return sup__delegate.call(this,args__7508__auto__);}; sup.cljs$lang$maxFixedArity = 0; sup.cljs$lang$applyTo = (function (arglist__11525){ var args__7508__auto__ = cljs.core.seq(arglist__11525); return sup__delegate(args__7508__auto__); }); sup.cljs$core$IFn$_invoke$arity$variadic = sup__delegate; return sup; })() ; /** * @param {...*} var_args */ quiescent.dom.table = (function() { var table__delegate = function (args__7508__auto__){var a__7509__auto__ = [];a__7509__auto__.push(quiescent.js_props.call(null,cljs.core.first.call(null,args__7508__auto__))); var seq__9270_11526 = cljs.core.seq.call(null,cljs.core.rest.call(null,args__7508__auto__));var chunk__9271_11527 = null;var count__9272_11528 = 0;var i__9273_11529 = 0;while(true){ if((i__9273_11529 < count__9272_11528)) {var arg__7510__auto___11530 = cljs.core._nth.call(null,chunk__9271_11527,i__9273_11529);a__7509__auto__.push(arg__7510__auto___11530); { var G__11531 = seq__9270_11526; var G__11532 = chunk__9271_11527; var G__11533 = count__9272_11528; var G__11534 = (i__9273_11529 + 1); seq__9270_11526 = G__11531; chunk__9271_11527 = G__11532; count__9272_11528 = G__11533; i__9273_11529 = G__11534; continue; } } else {var temp__4092__auto___11535 = cljs.core.seq.call(null,seq__9270_11526);if(temp__4092__auto___11535) {var seq__9270_11536__$1 = temp__4092__auto___11535;if(cljs.core.chunked_seq_QMARK_.call(null,seq__9270_11536__$1)) {var c__5632__auto___11537 = cljs.core.chunk_first.call(null,seq__9270_11536__$1);{ var G__11538 = cljs.core.chunk_rest.call(null,seq__9270_11536__$1); var G__11539 = c__5632__auto___11537; var G__11540 = cljs.core.count.call(null,c__5632__auto___11537); var G__11541 = 0; seq__9270_11526 = G__11538; chunk__9271_11527 = G__11539; count__9272_11528 = G__11540; i__9273_11529 = G__11541; continue; } } else {var arg__7510__auto___11542 = cljs.core.first.call(null,seq__9270_11536__$1);a__7509__auto__.push(arg__7510__auto___11542); { var G__11543 = cljs.core.next.call(null,seq__9270_11536__$1); var G__11544 = null; var G__11545 = 0; var G__11546 = 0; seq__9270_11526 = G__11543; chunk__9271_11527 = G__11544; count__9272_11528 = G__11545; i__9273_11529 = G__11546; continue; } } } else {} } break; } return React.DOM.table.apply(null,a__7509__auto__); }; var table = function (var_args){ var args__7508__auto__ = null;if (arguments.length > 0) { args__7508__auto__ = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0),0);} return table__delegate.call(this,args__7508__auto__);}; table.cljs$lang$maxFixedArity = 0; table.cljs$lang$applyTo = (function (arglist__11547){ var args__7508__auto__ = cljs.core.seq(arglist__11547); return table__delegate(args__7508__auto__); }); table.cljs$core$IFn$_invoke$arity$variadic = table__delegate; return table; })() ; /** * @param {...*} var_args */ quiescent.dom.tbody = (function() { var tbody__delegate = function (args__7508__auto__){var a__7509__auto__ = [];a__7509__auto__.push(quiescent.js_props.call(null,cljs.core.first.call(null,args__7508__auto__))); var seq__9278_11548 = cljs.core.seq.call(null,cljs.core.rest.call(null,args__7508__auto__));var chunk__9279_11549 = null;var count__9280_11550 = 0;var i__9281_11551 = 0;while(true){ if((i__9281_11551 < count__9280_11550)) {var arg__7510__auto___11552 = cljs.core._nth.call(null,chunk__9279_11549,i__9281_11551);a__7509__auto__.push(arg__7510__auto___11552); { var G__11553 = seq__9278_11548; var G__11554 = chunk__9279_11549; var G__11555 = count__9280_11550; var G__11556 = (i__9281_11551 + 1); seq__9278_11548 = G__11553; chunk__9279_11549 = G__11554; count__9280_11550 = G__11555; i__9281_11551 = G__11556; continue; } } else {var temp__4092__auto___11557 = cljs.core.seq.call(null,seq__9278_11548);if(temp__4092__auto___11557) {var seq__9278_11558__$1 = temp__4092__auto___11557;if(cljs.core.chunked_seq_QMARK_.call(null,seq__9278_11558__$1)) {var c__5632__auto___11559 = cljs.core.chunk_first.call(null,seq__9278_11558__$1);{ var G__11560 = cljs.core.chunk_rest.call(null,seq__9278_11558__$1); var G__11561 = c__5632__auto___11559; var G__11562 = cljs.core.count.call(null,c__5632__auto___11559); var G__11563 = 0; seq__9278_11548 = G__11560; chunk__9279_11549 = G__11561; count__9280_11550 = G__11562; i__9281_11551 = G__11563; continue; } } else {var arg__7510__auto___11564 = cljs.core.first.call(null,seq__9278_11558__$1);a__7509__auto__.push(arg__7510__auto___11564); { var G__11565 = cljs.core.next.call(null,seq__9278_11558__$1); var G__11566 = null; var G__11567 = 0; var G__11568 = 0; seq__9278_11548 = G__11565; chunk__9279_11549 = G__11566; count__9280_11550 = G__11567; i__9281_11551 = G__11568; continue; } } } else {} } break; } return React.DOM.tbody.apply(null,a__7509__auto__); }; var tbody = function (var_args){ var args__7508__auto__ = null;if (arguments.length > 0) { args__7508__auto__ = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0),0);} return tbody__delegate.call(this,args__7508__auto__);}; tbody.cljs$lang$maxFixedArity = 0; tbody.cljs$lang$applyTo = (function (arglist__11569){ var args__7508__auto__ = cljs.core.seq(arglist__11569); return tbody__delegate(args__7508__auto__); }); tbody.cljs$core$IFn$_invoke$arity$variadic = tbody__delegate; return tbody; })() ; /** * @param {...*} var_args */ quiescent.dom.td = (function() { var td__delegate = function (args__7508__auto__){var a__7509__auto__ = [];a__7509__auto__.push(quiescent.js_props.call(null,cljs.core.first.call(null,args__7508__auto__))); var seq__9286_11570 = cljs.core.seq.call(null,cljs.core.rest.call(null,args__7508__auto__));var chunk__9287_11571 = null;var count__9288_11572 = 0;var i__9289_11573 = 0;while(true){ if((i__9289_11573 < count__9288_11572)) {var arg__7510__auto___11574 = cljs.core._nth.call(null,chunk__9287_11571,i__9289_11573);a__7509__auto__.push(arg__7510__auto___11574); { var G__11575 = seq__9286_11570; var G__11576 = chunk__9287_11571; var G__11577 = count__9288_11572; var G__11578 = (i__9289_11573 + 1); seq__9286_11570 = G__11575; chunk__9287_11571 = G__11576; count__9288_11572 = G__11577; i__9289_11573 = G__11578; continue; } } else {var temp__4092__auto___11579 = cljs.core.seq.call(null,seq__9286_11570);if(temp__4092__auto___11579) {var seq__9286_11580__$1 = temp__4092__auto___11579;if(cljs.core.chunked_seq_QMARK_.call(null,seq__9286_11580__$1)) {var c__5632__auto___11581 = cljs.core.chunk_first.call(null,seq__9286_11580__$1);{ var G__11582 = cljs.core.chunk_rest.call(null,seq__9286_11580__$1); var G__11583 = c__5632__auto___11581; var G__11584 = cljs.core.count.call(null,c__5632__auto___11581); var G__11585 = 0; seq__9286_11570 = G__11582; chunk__9287_11571 = G__11583; count__9288_11572 = G__11584; i__9289_11573 = G__11585; continue; } } else {var arg__7510__auto___11586 = cljs.core.first.call(null,seq__9286_11580__$1);a__7509__auto__.push(arg__7510__auto___11586); { var G__11587 = cljs.core.next.call(null,seq__9286_11580__$1); var G__11588 = null; var G__11589 = 0; var G__11590 = 0; seq__9286_11570 = G__11587; chunk__9287_11571 = G__11588; count__9288_11572 = G__11589; i__9289_11573 = G__11590; continue; } } } else {} } break; } return React.DOM.td.apply(null,a__7509__auto__); }; var td = function (var_args){ var args__7508__auto__ = null;if (arguments.length > 0) { args__7508__auto__ = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0),0);} return td__delegate.call(this,args__7508__auto__);}; td.cljs$lang$maxFixedArity = 0; td.cljs$lang$applyTo = (function (arglist__11591){ var args__7508__auto__ = cljs.core.seq(arglist__11591); return td__delegate(args__7508__auto__); }); td.cljs$core$IFn$_invoke$arity$variadic = td__delegate; return td; })() ; /** * @param {...*} var_args */ quiescent.dom.textarea = (function() { var textarea__delegate = function (args__7508__auto__){var a__7509__auto__ = [];a__7509__auto__.push(quiescent.js_props.call(null,cljs.core.first.call(null,args__7508__auto__))); var seq__9294_11592 = cljs.core.seq.call(null,cljs.core.rest.call(null,args__7508__auto__));var chunk__9295_11593 = null;var count__9296_11594 = 0;var i__9297_11595 = 0;while(true){ if((i__9297_11595 < count__9296_11594)) {var arg__7510__auto___11596 = cljs.core._nth.call(null,chunk__9295_11593,i__9297_11595);a__7509__auto__.push(arg__7510__auto___11596); { var G__11597 = seq__9294_11592; var G__11598 = chunk__9295_11593; var G__11599 = count__9296_11594; var G__11600 = (i__9297_11595 + 1); seq__9294_11592 = G__11597; chunk__9295_11593 = G__11598; count__9296_11594 = G__11599; i__9297_11595 = G__11600; continue; } } else {var temp__4092__auto___11601 = cljs.core.seq.call(null,seq__9294_11592);if(temp__4092__auto___11601) {var seq__9294_11602__$1 = temp__4092__auto___11601;if(cljs.core.chunked_seq_QMARK_.call(null,seq__9294_11602__$1)) {var c__5632__auto___11603 = cljs.core.chunk_first.call(null,seq__9294_11602__$1);{ var G__11604 = cljs.core.chunk_rest.call(null,seq__9294_11602__$1); var G__11605 = c__5632__auto___11603; var G__11606 = cljs.core.count.call(null,c__5632__auto___11603); var G__11607 = 0; seq__9294_11592 = G__11604; chunk__9295_11593 = G__11605; count__9296_11594 = G__11606; i__9297_11595 = G__11607; continue; } } else {var arg__7510__auto___11608 = cljs.core.first.call(null,seq__9294_11602__$1);a__7509__auto__.push(arg__7510__auto___11608); { var G__11609 = cljs.core.next.call(null,seq__9294_11602__$1); var G__11610 = null; var G__11611 = 0; var G__11612 = 0; seq__9294_11592 = G__11609; chunk__9295_11593 = G__11610; count__9296_11594 = G__11611; i__9297_11595 = G__11612; continue; } } } else {} } break; } return React.DOM.textarea.apply(null,a__7509__auto__); }; var textarea = function (var_args){ var args__7508__auto__ = null;if (arguments.length > 0) { args__7508__auto__ = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0),0);} return textarea__delegate.call(this,args__7508__auto__);}; textarea.cljs$lang$maxFixedArity = 0; textarea.cljs$lang$applyTo = (function (arglist__11613){ var args__7508__auto__ = cljs.core.seq(arglist__11613); return textarea__delegate(args__7508__auto__); }); textarea.cljs$core$IFn$_invoke$arity$variadic = textarea__delegate; return textarea; })() ; /** * @param {...*} var_args */ quiescent.dom.tfoot = (function() { var tfoot__delegate = function (args__7508__auto__){var a__7509__auto__ = [];a__7509__auto__.push(quiescent.js_props.call(null,cljs.core.first.call(null,args__7508__auto__))); var seq__9302_11614 = cljs.core.seq.call(null,cljs.core.rest.call(null,args__7508__auto__));var chunk__9303_11615 = null;var count__9304_11616 = 0;var i__9305_11617 = 0;while(true){ if((i__9305_11617 < count__9304_11616)) {var arg__7510__auto___11618 = cljs.core._nth.call(null,chunk__9303_11615,i__9305_11617);a__7509__auto__.push(arg__7510__auto___11618); { var G__11619 = seq__9302_11614; var G__11620 = chunk__9303_11615; var G__11621 = count__9304_11616; var G__11622 = (i__9305_11617 + 1); seq__9302_11614 = G__11619; chunk__9303_11615 = G__11620; count__9304_11616 = G__11621; i__9305_11617 = G__11622; continue; } } else {var temp__4092__auto___11623 = cljs.core.seq.call(null,seq__9302_11614);if(temp__4092__auto___11623) {var seq__9302_11624__$1 = temp__4092__auto___11623;if(cljs.core.chunked_seq_QMARK_.call(null,seq__9302_11624__$1)) {var c__5632__auto___11625 = cljs.core.chunk_first.call(null,seq__9302_11624__$1);{ var G__11626 = cljs.core.chunk_rest.call(null,seq__9302_11624__$1); var G__11627 = c__5632__auto___11625; var G__11628 = cljs.core.count.call(null,c__5632__auto___11625); var G__11629 = 0; seq__9302_11614 = G__11626; chunk__9303_11615 = G__11627; count__9304_11616 = G__11628; i__9305_11617 = G__11629; continue; } } else {var arg__7510__auto___11630 = cljs.core.first.call(null,seq__9302_11624__$1);a__7509__auto__.push(arg__7510__auto___11630); { var G__11631 = cljs.core.next.call(null,seq__9302_11624__$1); var G__11632 = null; var G__11633 = 0; var G__11634 = 0; seq__9302_11614 = G__11631; chunk__9303_11615 = G__11632; count__9304_11616 = G__11633; i__9305_11617 = G__11634; continue; } } } else {} } break; } return React.DOM.tfoot.apply(null,a__7509__auto__); }; var tfoot = function (var_args){ var args__7508__auto__ = null;if (arguments.length > 0) { args__7508__auto__ = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0),0);} return tfoot__delegate.call(this,args__7508__auto__);}; tfoot.cljs$lang$maxFixedArity = 0; tfoot.cljs$lang$applyTo = (function (arglist__11635){ var args__7508__auto__ = cljs.core.seq(arglist__11635); return tfoot__delegate(args__7508__auto__); }); tfoot.cljs$core$IFn$_invoke$arity$variadic = tfoot__delegate; return tfoot; })() ; /** * @param {...*} var_args */ quiescent.dom.th = (function() { var th__delegate = function (args__7508__auto__){var a__7509__auto__ = [];a__7509__auto__.push(quiescent.js_props.call(null,cljs.core.first.call(null,args__7508__auto__))); var seq__9310_11636 = cljs.core.seq.call(null,cljs.core.rest.call(null,args__7508__auto__));var chunk__9311_11637 = null;var count__9312_11638 = 0;var i__9313_11639 = 0;while(true){ if((i__9313_11639 < count__9312_11638)) {var arg__7510__auto___11640 = cljs.core._nth.call(null,chunk__9311_11637,i__9313_11639);a__7509__auto__.push(arg__7510__auto___11640); { var G__11641 = seq__9310_11636; var G__11642 = chunk__9311_11637; var G__11643 = count__9312_11638; var G__11644 = (i__9313_11639 + 1); seq__9310_11636 = G__11641; chunk__9311_11637 = G__11642; count__9312_11638 = G__11643; i__9313_11639 = G__11644; continue; } } else {var temp__4092__auto___11645 = cljs.core.seq.call(null,seq__9310_11636);if(temp__4092__auto___11645) {var seq__9310_11646__$1 = temp__4092__auto___11645;if(cljs.core.chunked_seq_QMARK_.call(null,seq__9310_11646__$1)) {var c__5632__auto___11647 = cljs.core.chunk_first.call(null,seq__9310_11646__$1);{ var G__11648 = cljs.core.chunk_rest.call(null,seq__9310_11646__$1); var G__11649 = c__5632__auto___11647; var G__11650 = cljs.core.count.call(null,c__5632__auto___11647); var G__11651 = 0; seq__9310_11636 = G__11648; chunk__9311_11637 = G__11649; count__9312_11638 = G__11650; i__9313_11639 = G__11651; continue; } } else {var arg__7510__auto___11652 = cljs.core.first.call(null,seq__9310_11646__$1);a__7509__auto__.push(arg__7510__auto___11652); { var G__11653 = cljs.core.next.call(null,seq__9310_11646__$1); var G__11654 = null; var G__11655 = 0; var G__11656 = 0; seq__9310_11636 = G__11653; chunk__9311_11637 = G__11654; count__9312_11638 = G__11655; i__9313_11639 = G__11656; continue; } } } else {} } break; } return React.DOM.th.apply(null,a__7509__auto__); }; var th = function (var_args){ var args__7508__auto__ = null;if (arguments.length > 0) { args__7508__auto__ = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0),0);} return th__delegate.call(this,args__7508__auto__);}; th.cljs$lang$maxFixedArity = 0; th.cljs$lang$applyTo = (function (arglist__11657){ var args__7508__auto__ = cljs.core.seq(arglist__11657); return th__delegate(args__7508__auto__); }); th.cljs$core$IFn$_invoke$arity$variadic = th__delegate; return th; })() ; /** * @param {...*} var_args */ quiescent.dom.thead = (function() { var thead__delegate = function (args__7508__auto__){var a__7509__auto__ = [];a__7509__auto__.push(quiescent.js_props.call(null,cljs.core.first.call(null,args__7508__auto__))); var seq__9318_11658 = cljs.core.seq.call(null,cljs.core.rest.call(null,args__7508__auto__));var chunk__9319_11659 = null;var count__9320_11660 = 0;var i__9321_11661 = 0;while(true){ if((i__9321_11661 < count__9320_11660)) {var arg__7510__auto___11662 = cljs.core._nth.call(null,chunk__9319_11659,i__9321_11661);a__7509__auto__.push(arg__7510__auto___11662); { var G__11663 = seq__9318_11658; var G__11664 = chunk__9319_11659; var G__11665 = count__9320_11660; var G__11666 = (i__9321_11661 + 1); seq__9318_11658 = G__11663; chunk__9319_11659 = G__11664; count__9320_11660 = G__11665; i__9321_11661 = G__11666; continue; } } else {var temp__4092__auto___11667 = cljs.core.seq.call(null,seq__9318_11658);if(temp__4092__auto___11667) {var seq__9318_11668__$1 = temp__4092__auto___11667;if(cljs.core.chunked_seq_QMARK_.call(null,seq__9318_11668__$1)) {var c__5632__auto___11669 = cljs.core.chunk_first.call(null,seq__9318_11668__$1);{ var G__11670 = cljs.core.chunk_rest.call(null,seq__9318_11668__$1); var G__11671 = c__5632__auto___11669; var G__11672 = cljs.core.count.call(null,c__5632__auto___11669); var G__11673 = 0; seq__9318_11658 = G__11670; chunk__9319_11659 = G__11671; count__9320_11660 = G__11672; i__9321_11661 = G__11673; continue; } } else {var arg__7510__auto___11674 = cljs.core.first.call(null,seq__9318_11668__$1);a__7509__auto__.push(arg__7510__auto___11674); { var G__11675 = cljs.core.next.call(null,seq__9318_11668__$1); var G__11676 = null; var G__11677 = 0; var G__11678 = 0; seq__9318_11658 = G__11675; chunk__9319_11659 = G__11676; count__9320_11660 = G__11677; i__9321_11661 = G__11678; continue; } } } else {} } break; } return React.DOM.thead.apply(null,a__7509__auto__); }; var thead = function (var_args){ var args__7508__auto__ = null;if (arguments.length > 0) { args__7508__auto__ = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0),0);} return thead__delegate.call(this,args__7508__auto__);}; thead.cljs$lang$maxFixedArity = 0; thead.cljs$lang$applyTo = (function (arglist__11679){ var args__7508__auto__ = cljs.core.seq(arglist__11679); return thead__delegate(args__7508__auto__); }); thead.cljs$core$IFn$_invoke$arity$variadic = thead__delegate; return thead; })() ; /** * @param {...*} var_args */ quiescent.dom.time = (function() { var time__delegate = function (args__7508__auto__){var a__7509__auto__ = [];a__7509__auto__.push(quiescent.js_props.call(null,cljs.core.first.call(null,args__7508__auto__))); var seq__9326_11680 = cljs.core.seq.call(null,cljs.core.rest.call(null,args__7508__auto__));var chunk__9327_11681 = null;var count__9328_11682 = 0;var i__9329_11683 = 0;while(true){ if((i__9329_11683 < count__9328_11682)) {var arg__7510__auto___11684 = cljs.core._nth.call(null,chunk__9327_11681,i__9329_11683);a__7509__auto__.push(arg__7510__auto___11684); { var G__11685 = seq__9326_11680; var G__11686 = chunk__9327_11681; var G__11687 = count__9328_11682; var G__11688 = (i__9329_11683 + 1); seq__9326_11680 = G__11685; chunk__9327_11681 = G__11686; count__9328_11682 = G__11687; i__9329_11683 = G__11688; continue; } } else {var temp__4092__auto___11689 = cljs.core.seq.call(null,seq__9326_11680);if(temp__4092__auto___11689) {var seq__9326_11690__$1 = temp__4092__auto___11689;if(cljs.core.chunked_seq_QMARK_.call(null,seq__9326_11690__$1)) {var c__5632__auto___11691 = cljs.core.chunk_first.call(null,seq__9326_11690__$1);{ var G__11692 = cljs.core.chunk_rest.call(null,seq__9326_11690__$1); var G__11693 = c__5632__auto___11691; var G__11694 = cljs.core.count.call(null,c__5632__auto___11691); var G__11695 = 0; seq__9326_11680 = G__11692; chunk__9327_11681 = G__11693; count__9328_11682 = G__11694; i__9329_11683 = G__11695; continue; } } else {var arg__7510__auto___11696 = cljs.core.first.call(null,seq__9326_11690__$1);a__7509__auto__.push(arg__7510__auto___11696); { var G__11697 = cljs.core.next.call(null,seq__9326_11690__$1); var G__11698 = null; var G__11699 = 0; var G__11700 = 0; seq__9326_11680 = G__11697; chunk__9327_11681 = G__11698; count__9328_11682 = G__11699; i__9329_11683 = G__11700; continue; } } } else {} } break; } return React.DOM.time.apply(null,a__7509__auto__); }; var time = function (var_args){ var args__7508__auto__ = null;if (arguments.length > 0) { args__7508__auto__ = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0),0);} return time__delegate.call(this,args__7508__auto__);}; time.cljs$lang$maxFixedArity = 0; time.cljs$lang$applyTo = (function (arglist__11701){ var args__7508__auto__ = cljs.core.seq(arglist__11701); return time__delegate(args__7508__auto__); }); time.cljs$core$IFn$_invoke$arity$variadic = time__delegate; return time; })() ; /** * @param {...*} var_args */ quiescent.dom.title = (function() { var title__delegate = function (args__7508__auto__){var a__7509__auto__ = [];a__7509__auto__.push(quiescent.js_props.call(null,cljs.core.first.call(null,args__7508__auto__))); var seq__9334_11702 = cljs.core.seq.call(null,cljs.core.rest.call(null,args__7508__auto__));var chunk__9335_11703 = null;var count__9336_11704 = 0;var i__9337_11705 = 0;while(true){ if((i__9337_11705 < count__9336_11704)) {var arg__7510__auto___11706 = cljs.core._nth.call(null,chunk__9335_11703,i__9337_11705);a__7509__auto__.push(arg__7510__auto___11706); { var G__11707 = seq__9334_11702; var G__11708 = chunk__9335_11703; var G__11709 = count__9336_11704; var G__11710 = (i__9337_11705 + 1); seq__9334_11702 = G__11707; chunk__9335_11703 = G__11708; count__9336_11704 = G__11709; i__9337_11705 = G__11710; continue; } } else {var temp__4092__auto___11711 = cljs.core.seq.call(null,seq__9334_11702);if(temp__4092__auto___11711) {var seq__9334_11712__$1 = temp__4092__auto___11711;if(cljs.core.chunked_seq_QMARK_.call(null,seq__9334_11712__$1)) {var c__5632__auto___11713 = cljs.core.chunk_first.call(null,seq__9334_11712__$1);{ var G__11714 = cljs.core.chunk_rest.call(null,seq__9334_11712__$1); var G__11715 = c__5632__auto___11713; var G__11716 = cljs.core.count.call(null,c__5632__auto___11713); var G__11717 = 0; seq__9334_11702 = G__11714; chunk__9335_11703 = G__11715; count__9336_11704 = G__11716; i__9337_11705 = G__11717; continue; } } else {var arg__7510__auto___11718 = cljs.core.first.call(null,seq__9334_11712__$1);a__7509__auto__.push(arg__7510__auto___11718); { var G__11719 = cljs.core.next.call(null,seq__9334_11712__$1); var G__11720 = null; var G__11721 = 0; var G__11722 = 0; seq__9334_11702 = G__11719; chunk__9335_11703 = G__11720; count__9336_11704 = G__11721; i__9337_11705 = G__11722; continue; } } } else {} } break; } return React.DOM.title.apply(null,a__7509__auto__); }; var title = function (var_args){ var args__7508__auto__ = null;if (arguments.length > 0) { args__7508__auto__ = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0),0);} return title__delegate.call(this,args__7508__auto__);}; title.cljs$lang$maxFixedArity = 0; title.cljs$lang$applyTo = (function (arglist__11723){ var args__7508__auto__ = cljs.core.seq(arglist__11723); return title__delegate(args__7508__auto__); }); title.cljs$core$IFn$_invoke$arity$variadic = title__delegate; return title; })() ; /** * @param {...*} var_args */ quiescent.dom.tr = (function() { var tr__delegate = function (args__7508__auto__){var a__7509__auto__ = [];a__7509__auto__.push(quiescent.js_props.call(null,cljs.core.first.call(null,args__7508__auto__))); var seq__9342_11724 = cljs.core.seq.call(null,cljs.core.rest.call(null,args__7508__auto__));var chunk__9343_11725 = null;var count__9344_11726 = 0;var i__9345_11727 = 0;while(true){ if((i__9345_11727 < count__9344_11726)) {var arg__7510__auto___11728 = cljs.core._nth.call(null,chunk__9343_11725,i__9345_11727);a__7509__auto__.push(arg__7510__auto___11728); { var G__11729 = seq__9342_11724; var G__11730 = chunk__9343_11725; var G__11731 = count__9344_11726; var G__11732 = (i__9345_11727 + 1); seq__9342_11724 = G__11729; chunk__9343_11725 = G__11730; count__9344_11726 = G__11731; i__9345_11727 = G__11732; continue; } } else {var temp__4092__auto___11733 = cljs.core.seq.call(null,seq__9342_11724);if(temp__4092__auto___11733) {var seq__9342_11734__$1 = temp__4092__auto___11733;if(cljs.core.chunked_seq_QMARK_.call(null,seq__9342_11734__$1)) {var c__5632__auto___11735 = cljs.core.chunk_first.call(null,seq__9342_11734__$1);{ var G__11736 = cljs.core.chunk_rest.call(null,seq__9342_11734__$1); var G__11737 = c__5632__auto___11735; var G__11738 = cljs.core.count.call(null,c__5632__auto___11735); var G__11739 = 0; seq__9342_11724 = G__11736; chunk__9343_11725 = G__11737; count__9344_11726 = G__11738; i__9345_11727 = G__11739; continue; } } else {var arg__7510__auto___11740 = cljs.core.first.call(null,seq__9342_11734__$1);a__7509__auto__.push(arg__7510__auto___11740); { var G__11741 = cljs.core.next.call(null,seq__9342_11734__$1); var G__11742 = null; var G__11743 = 0; var G__11744 = 0; seq__9342_11724 = G__11741; chunk__9343_11725 = G__11742; count__9344_11726 = G__11743; i__9345_11727 = G__11744; continue; } } } else {} } break; } return React.DOM.tr.apply(null,a__7509__auto__); }; var tr = function (var_args){ var args__7508__auto__ = null;if (arguments.length > 0) { args__7508__auto__ = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0),0);} return tr__delegate.call(this,args__7508__auto__);}; tr.cljs$lang$maxFixedArity = 0; tr.cljs$lang$applyTo = (function (arglist__11745){ var args__7508__auto__ = cljs.core.seq(arglist__11745); return tr__delegate(args__7508__auto__); }); tr.cljs$core$IFn$_invoke$arity$variadic = tr__delegate; return tr; })() ; /** * @param {...*} var_args */ quiescent.dom.track = (function() { var track__delegate = function (args__7508__auto__){var a__7509__auto__ = [];a__7509__auto__.push(quiescent.js_props.call(null,cljs.core.first.call(null,args__7508__auto__))); var seq__9350_11746 = cljs.core.seq.call(null,cljs.core.rest.call(null,args__7508__auto__));var chunk__9351_11747 = null;var count__9352_11748 = 0;var i__9353_11749 = 0;while(true){ if((i__9353_11749 < count__9352_11748)) {var arg__7510__auto___11750 = cljs.core._nth.call(null,chunk__9351_11747,i__9353_11749);a__7509__auto__.push(arg__7510__auto___11750); { var G__11751 = seq__9350_11746; var G__11752 = chunk__9351_11747; var G__11753 = count__9352_11748; var G__11754 = (i__9353_11749 + 1); seq__9350_11746 = G__11751; chunk__9351_11747 = G__11752; count__9352_11748 = G__11753; i__9353_11749 = G__11754; continue; } } else {var temp__4092__auto___11755 = cljs.core.seq.call(null,seq__9350_11746);if(temp__4092__auto___11755) {var seq__9350_11756__$1 = temp__4092__auto___11755;if(cljs.core.chunked_seq_QMARK_.call(null,seq__9350_11756__$1)) {var c__5632__auto___11757 = cljs.core.chunk_first.call(null,seq__9350_11756__$1);{ var G__11758 = cljs.core.chunk_rest.call(null,seq__9350_11756__$1); var G__11759 = c__5632__auto___11757; var G__11760 = cljs.core.count.call(null,c__5632__auto___11757); var G__11761 = 0; seq__9350_11746 = G__11758; chunk__9351_11747 = G__11759; count__9352_11748 = G__11760; i__9353_11749 = G__11761; continue; } } else {var arg__7510__auto___11762 = cljs.core.first.call(null,seq__9350_11756__$1);a__7509__auto__.push(arg__7510__auto___11762); { var G__11763 = cljs.core.next.call(null,seq__9350_11756__$1); var G__11764 = null; var G__11765 = 0; var G__11766 = 0; seq__9350_11746 = G__11763; chunk__9351_11747 = G__11764; count__9352_11748 = G__11765; i__9353_11749 = G__11766; continue; } } } else {} } break; } return React.DOM.track.apply(null,a__7509__auto__); }; var track = function (var_args){ var args__7508__auto__ = null;if (arguments.length > 0) { args__7508__auto__ = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0),0);} return track__delegate.call(this,args__7508__auto__);}; track.cljs$lang$maxFixedArity = 0; track.cljs$lang$applyTo = (function (arglist__11767){ var args__7508__auto__ = cljs.core.seq(arglist__11767); return track__delegate(args__7508__auto__); }); track.cljs$core$IFn$_invoke$arity$variadic = track__delegate; return track; })() ; /** * @param {...*} var_args */ quiescent.dom.u = (function() { var u__delegate = function (args__7508__auto__){var a__7509__auto__ = [];a__7509__auto__.push(quiescent.js_props.call(null,cljs.core.first.call(null,args__7508__auto__))); var seq__9358_11768 = cljs.core.seq.call(null,cljs.core.rest.call(null,args__7508__auto__));var chunk__9359_11769 = null;var count__9360_11770 = 0;var i__9361_11771 = 0;while(true){ if((i__9361_11771 < count__9360_11770)) {var arg__7510__auto___11772 = cljs.core._nth.call(null,chunk__9359_11769,i__9361_11771);a__7509__auto__.push(arg__7510__auto___11772); { var G__11773 = seq__9358_11768; var G__11774 = chunk__9359_11769; var G__11775 = count__9360_11770; var G__11776 = (i__9361_11771 + 1); seq__9358_11768 = G__11773; chunk__9359_11769 = G__11774; count__9360_11770 = G__11775; i__9361_11771 = G__11776; continue; } } else {var temp__4092__auto___11777 = cljs.core.seq.call(null,seq__9358_11768);if(temp__4092__auto___11777) {var seq__9358_11778__$1 = temp__4092__auto___11777;if(cljs.core.chunked_seq_QMARK_.call(null,seq__9358_11778__$1)) {var c__5632__auto___11779 = cljs.core.chunk_first.call(null,seq__9358_11778__$1);{ var G__11780 = cljs.core.chunk_rest.call(null,seq__9358_11778__$1); var G__11781 = c__5632__auto___11779; var G__11782 = cljs.core.count.call(null,c__5632__auto___11779); var G__11783 = 0; seq__9358_11768 = G__11780; chunk__9359_11769 = G__11781; count__9360_11770 = G__11782; i__9361_11771 = G__11783; continue; } } else {var arg__7510__auto___11784 = cljs.core.first.call(null,seq__9358_11778__$1);a__7509__auto__.push(arg__7510__auto___11784); { var G__11785 = cljs.core.next.call(null,seq__9358_11778__$1); var G__11786 = null; var G__11787 = 0; var G__11788 = 0; seq__9358_11768 = G__11785; chunk__9359_11769 = G__11786; count__9360_11770 = G__11787; i__9361_11771 = G__11788; continue; } } } else {} } break; } return React.DOM.u.apply(null,a__7509__auto__); }; var u = function (var_args){ var args__7508__auto__ = null;if (arguments.length > 0) { args__7508__auto__ = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0),0);} return u__delegate.call(this,args__7508__auto__);}; u.cljs$lang$maxFixedArity = 0; u.cljs$lang$applyTo = (function (arglist__11789){ var args__7508__auto__ = cljs.core.seq(arglist__11789); return u__delegate(args__7508__auto__); }); u.cljs$core$IFn$_invoke$arity$variadic = u__delegate; return u; })() ; /** * @param {...*} var_args */ quiescent.dom.ul = (function() { var ul__delegate = function (args__7508__auto__){var a__7509__auto__ = [];a__7509__auto__.push(quiescent.js_props.call(null,cljs.core.first.call(null,args__7508__auto__))); var seq__9366_11790 = cljs.core.seq.call(null,cljs.core.rest.call(null,args__7508__auto__));var chunk__9367_11791 = null;var count__9368_11792 = 0;var i__9369_11793 = 0;while(true){ if((i__9369_11793 < count__9368_11792)) {var arg__7510__auto___11794 = cljs.core._nth.call(null,chunk__9367_11791,i__9369_11793);a__7509__auto__.push(arg__7510__auto___11794); { var G__11795 = seq__9366_11790; var G__11796 = chunk__9367_11791; var G__11797 = count__9368_11792; var G__11798 = (i__9369_11793 + 1); seq__9366_11790 = G__11795; chunk__9367_11791 = G__11796; count__9368_11792 = G__11797; i__9369_11793 = G__11798; continue; } } else {var temp__4092__auto___11799 = cljs.core.seq.call(null,seq__9366_11790);if(temp__4092__auto___11799) {var seq__9366_11800__$1 = temp__4092__auto___11799;if(cljs.core.chunked_seq_QMARK_.call(null,seq__9366_11800__$1)) {var c__5632__auto___11801 = cljs.core.chunk_first.call(null,seq__9366_11800__$1);{ var G__11802 = cljs.core.chunk_rest.call(null,seq__9366_11800__$1); var G__11803 = c__5632__auto___11801; var G__11804 = cljs.core.count.call(null,c__5632__auto___11801); var G__11805 = 0; seq__9366_11790 = G__11802; chunk__9367_11791 = G__11803; count__9368_11792 = G__11804; i__9369_11793 = G__11805; continue; } } else {var arg__7510__auto___11806 = cljs.core.first.call(null,seq__9366_11800__$1);a__7509__auto__.push(arg__7510__auto___11806); { var G__11807 = cljs.core.next.call(null,seq__9366_11800__$1); var G__11808 = null; var G__11809 = 0; var G__11810 = 0; seq__9366_11790 = G__11807; chunk__9367_11791 = G__11808; count__9368_11792 = G__11809; i__9369_11793 = G__11810; continue; } } } else {} } break; } return React.DOM.ul.apply(null,a__7509__auto__); }; var ul = function (var_args){ var args__7508__auto__ = null;if (arguments.length > 0) { args__7508__auto__ = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0),0);} return ul__delegate.call(this,args__7508__auto__);}; ul.cljs$lang$maxFixedArity = 0; ul.cljs$lang$applyTo = (function (arglist__11811){ var args__7508__auto__ = cljs.core.seq(arglist__11811); return ul__delegate(args__7508__auto__); }); ul.cljs$core$IFn$_invoke$arity$variadic = ul__delegate; return ul; })() ; /** * @param {...*} var_args */ quiescent.dom.var$ = (function() { var var$__delegate = function (args__7508__auto__){var a__7509__auto__ = [];a__7509__auto__.push(quiescent.js_props.call(null,cljs.core.first.call(null,args__7508__auto__))); var seq__9374_11812 = cljs.core.seq.call(null,cljs.core.rest.call(null,args__7508__auto__));var chunk__9375_11813 = null;var count__9376_11814 = 0;var i__9377_11815 = 0;while(true){ if((i__9377_11815 < count__9376_11814)) {var arg__7510__auto___11816 = cljs.core._nth.call(null,chunk__9375_11813,i__9377_11815);a__7509__auto__.push(arg__7510__auto___11816); { var G__11817 = seq__9374_11812; var G__11818 = chunk__9375_11813; var G__11819 = count__9376_11814; var G__11820 = (i__9377_11815 + 1); seq__9374_11812 = G__11817; chunk__9375_11813 = G__11818; count__9376_11814 = G__11819; i__9377_11815 = G__11820; continue; } } else {var temp__4092__auto___11821 = cljs.core.seq.call(null,seq__9374_11812);if(temp__4092__auto___11821) {var seq__9374_11822__$1 = temp__4092__auto___11821;if(cljs.core.chunked_seq_QMARK_.call(null,seq__9374_11822__$1)) {var c__5632__auto___11823 = cljs.core.chunk_first.call(null,seq__9374_11822__$1);{ var G__11824 = cljs.core.chunk_rest.call(null,seq__9374_11822__$1); var G__11825 = c__5632__auto___11823; var G__11826 = cljs.core.count.call(null,c__5632__auto___11823); var G__11827 = 0; seq__9374_11812 = G__11824; chunk__9375_11813 = G__11825; count__9376_11814 = G__11826; i__9377_11815 = G__11827; continue; } } else {var arg__7510__auto___11828 = cljs.core.first.call(null,seq__9374_11822__$1);a__7509__auto__.push(arg__7510__auto___11828); { var G__11829 = cljs.core.next.call(null,seq__9374_11822__$1); var G__11830 = null; var G__11831 = 0; var G__11832 = 0; seq__9374_11812 = G__11829; chunk__9375_11813 = G__11830; count__9376_11814 = G__11831; i__9377_11815 = G__11832; continue; } } } else {} } break; } return React.DOM.var$.apply(null,a__7509__auto__); }; var var$ = function (var_args){ var args__7508__auto__ = null;if (arguments.length > 0) { args__7508__auto__ = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0),0);} return var$__delegate.call(this,args__7508__auto__);}; var$.cljs$lang$maxFixedArity = 0; var$.cljs$lang$applyTo = (function (arglist__11833){ var args__7508__auto__ = cljs.core.seq(arglist__11833); return var$__delegate(args__7508__auto__); }); var$.cljs$core$IFn$_invoke$arity$variadic = var$__delegate; return var$; })() ; /** * @param {...*} var_args */ quiescent.dom.video = (function() { var video__delegate = function (args__7508__auto__){var a__7509__auto__ = [];a__7509__auto__.push(quiescent.js_props.call(null,cljs.core.first.call(null,args__7508__auto__))); var seq__9382_11834 = cljs.core.seq.call(null,cljs.core.rest.call(null,args__7508__auto__));var chunk__9383_11835 = null;var count__9384_11836 = 0;var i__9385_11837 = 0;while(true){ if((i__9385_11837 < count__9384_11836)) {var arg__7510__auto___11838 = cljs.core._nth.call(null,chunk__9383_11835,i__9385_11837);a__7509__auto__.push(arg__7510__auto___11838); { var G__11839 = seq__9382_11834; var G__11840 = chunk__9383_11835; var G__11841 = count__9384_11836; var G__11842 = (i__9385_11837 + 1); seq__9382_11834 = G__11839; chunk__9383_11835 = G__11840; count__9384_11836 = G__11841; i__9385_11837 = G__11842; continue; } } else {var temp__4092__auto___11843 = cljs.core.seq.call(null,seq__9382_11834);if(temp__4092__auto___11843) {var seq__9382_11844__$1 = temp__4092__auto___11843;if(cljs.core.chunked_seq_QMARK_.call(null,seq__9382_11844__$1)) {var c__5632__auto___11845 = cljs.core.chunk_first.call(null,seq__9382_11844__$1);{ var G__11846 = cljs.core.chunk_rest.call(null,seq__9382_11844__$1); var G__11847 = c__5632__auto___11845; var G__11848 = cljs.core.count.call(null,c__5632__auto___11845); var G__11849 = 0; seq__9382_11834 = G__11846; chunk__9383_11835 = G__11847; count__9384_11836 = G__11848; i__9385_11837 = G__11849; continue; } } else {var arg__7510__auto___11850 = cljs.core.first.call(null,seq__9382_11844__$1);a__7509__auto__.push(arg__7510__auto___11850); { var G__11851 = cljs.core.next.call(null,seq__9382_11844__$1); var G__11852 = null; var G__11853 = 0; var G__11854 = 0; seq__9382_11834 = G__11851; chunk__9383_11835 = G__11852; count__9384_11836 = G__11853; i__9385_11837 = G__11854; continue; } } } else {} } break; } return React.DOM.video.apply(null,a__7509__auto__); }; var video = function (var_args){ var args__7508__auto__ = null;if (arguments.length > 0) { args__7508__auto__ = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0),0);} return video__delegate.call(this,args__7508__auto__);}; video.cljs$lang$maxFixedArity = 0; video.cljs$lang$applyTo = (function (arglist__11855){ var args__7508__auto__ = cljs.core.seq(arglist__11855); return video__delegate(args__7508__auto__); }); video.cljs$core$IFn$_invoke$arity$variadic = video__delegate; return video; })() ; /** * @param {...*} var_args */ quiescent.dom.wbr = (function() { var wbr__delegate = function (args__7508__auto__){var a__7509__auto__ = [];a__7509__auto__.push(quiescent.js_props.call(null,cljs.core.first.call(null,args__7508__auto__))); var seq__9390_11856 = cljs.core.seq.call(null,cljs.core.rest.call(null,args__7508__auto__));var chunk__9391_11857 = null;var count__9392_11858 = 0;var i__9393_11859 = 0;while(true){ if((i__9393_11859 < count__9392_11858)) {var arg__7510__auto___11860 = cljs.core._nth.call(null,chunk__9391_11857,i__9393_11859);a__7509__auto__.push(arg__7510__auto___11860); { var G__11861 = seq__9390_11856; var G__11862 = chunk__9391_11857; var G__11863 = count__9392_11858; var G__11864 = (i__9393_11859 + 1); seq__9390_11856 = G__11861; chunk__9391_11857 = G__11862; count__9392_11858 = G__11863; i__9393_11859 = G__11864; continue; } } else {var temp__4092__auto___11865 = cljs.core.seq.call(null,seq__9390_11856);if(temp__4092__auto___11865) {var seq__9390_11866__$1 = temp__4092__auto___11865;if(cljs.core.chunked_seq_QMARK_.call(null,seq__9390_11866__$1)) {var c__5632__auto___11867 = cljs.core.chunk_first.call(null,seq__9390_11866__$1);{ var G__11868 = cljs.core.chunk_rest.call(null,seq__9390_11866__$1); var G__11869 = c__5632__auto___11867; var G__11870 = cljs.core.count.call(null,c__5632__auto___11867); var G__11871 = 0; seq__9390_11856 = G__11868; chunk__9391_11857 = G__11869; count__9392_11858 = G__11870; i__9393_11859 = G__11871; continue; } } else {var arg__7510__auto___11872 = cljs.core.first.call(null,seq__9390_11866__$1);a__7509__auto__.push(arg__7510__auto___11872); { var G__11873 = cljs.core.next.call(null,seq__9390_11866__$1); var G__11874 = null; var G__11875 = 0; var G__11876 = 0; seq__9390_11856 = G__11873; chunk__9391_11857 = G__11874; count__9392_11858 = G__11875; i__9393_11859 = G__11876; continue; } } } else {} } break; } return React.DOM.wbr.apply(null,a__7509__auto__); }; var wbr = function (var_args){ var args__7508__auto__ = null;if (arguments.length > 0) { args__7508__auto__ = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0),0);} return wbr__delegate.call(this,args__7508__auto__);}; wbr.cljs$lang$maxFixedArity = 0; wbr.cljs$lang$applyTo = (function (arglist__11877){ var args__7508__auto__ = cljs.core.seq(arglist__11877); return wbr__delegate(args__7508__auto__); }); wbr.cljs$core$IFn$_invoke$arity$variadic = wbr__delegate; return wbr; })() ; /** * @param {...*} var_args */ quiescent.dom.circle = (function() { var circle__delegate = function (args__7508__auto__){var a__7509__auto__ = [];a__7509__auto__.push(quiescent.js_props.call(null,cljs.core.first.call(null,args__7508__auto__))); var seq__9398_11878 = cljs.core.seq.call(null,cljs.core.rest.call(null,args__7508__auto__));var chunk__9399_11879 = null;var count__9400_11880 = 0;var i__9401_11881 = 0;while(true){ if((i__9401_11881 < count__9400_11880)) {var arg__7510__auto___11882 = cljs.core._nth.call(null,chunk__9399_11879,i__9401_11881);a__7509__auto__.push(arg__7510__auto___11882); { var G__11883 = seq__9398_11878; var G__11884 = chunk__9399_11879; var G__11885 = count__9400_11880; var G__11886 = (i__9401_11881 + 1); seq__9398_11878 = G__11883; chunk__9399_11879 = G__11884; count__9400_11880 = G__11885; i__9401_11881 = G__11886; continue; } } else {var temp__4092__auto___11887 = cljs.core.seq.call(null,seq__9398_11878);if(temp__4092__auto___11887) {var seq__9398_11888__$1 = temp__4092__auto___11887;if(cljs.core.chunked_seq_QMARK_.call(null,seq__9398_11888__$1)) {var c__5632__auto___11889 = cljs.core.chunk_first.call(null,seq__9398_11888__$1);{ var G__11890 = cljs.core.chunk_rest.call(null,seq__9398_11888__$1); var G__11891 = c__5632__auto___11889; var G__11892 = cljs.core.count.call(null,c__5632__auto___11889); var G__11893 = 0; seq__9398_11878 = G__11890; chunk__9399_11879 = G__11891; count__9400_11880 = G__11892; i__9401_11881 = G__11893; continue; } } else {var arg__7510__auto___11894 = cljs.core.first.call(null,seq__9398_11888__$1);a__7509__auto__.push(arg__7510__auto___11894); { var G__11895 = cljs.core.next.call(null,seq__9398_11888__$1); var G__11896 = null; var G__11897 = 0; var G__11898 = 0; seq__9398_11878 = G__11895; chunk__9399_11879 = G__11896; count__9400_11880 = G__11897; i__9401_11881 = G__11898; continue; } } } else {} } break; } return React.DOM.circle.apply(null,a__7509__auto__); }; var circle = function (var_args){ var args__7508__auto__ = null;if (arguments.length > 0) { args__7508__auto__ = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0),0);} return circle__delegate.call(this,args__7508__auto__);}; circle.cljs$lang$maxFixedArity = 0; circle.cljs$lang$applyTo = (function (arglist__11899){ var args__7508__auto__ = cljs.core.seq(arglist__11899); return circle__delegate(args__7508__auto__); }); circle.cljs$core$IFn$_invoke$arity$variadic = circle__delegate; return circle; })() ; /** * @param {...*} var_args */ quiescent.dom.g = (function() { var g__delegate = function (args__7508__auto__){var a__7509__auto__ = [];a__7509__auto__.push(quiescent.js_props.call(null,cljs.core.first.call(null,args__7508__auto__))); var seq__9406_11900 = cljs.core.seq.call(null,cljs.core.rest.call(null,args__7508__auto__));var chunk__9407_11901 = null;var count__9408_11902 = 0;var i__9409_11903 = 0;while(true){ if((i__9409_11903 < count__9408_11902)) {var arg__7510__auto___11904 = cljs.core._nth.call(null,chunk__9407_11901,i__9409_11903);a__7509__auto__.push(arg__7510__auto___11904); { var G__11905 = seq__9406_11900; var G__11906 = chunk__9407_11901; var G__11907 = count__9408_11902; var G__11908 = (i__9409_11903 + 1); seq__9406_11900 = G__11905; chunk__9407_11901 = G__11906; count__9408_11902 = G__11907; i__9409_11903 = G__11908; continue; } } else {var temp__4092__auto___11909 = cljs.core.seq.call(null,seq__9406_11900);if(temp__4092__auto___11909) {var seq__9406_11910__$1 = temp__4092__auto___11909;if(cljs.core.chunked_seq_QMARK_.call(null,seq__9406_11910__$1)) {var c__5632__auto___11911 = cljs.core.chunk_first.call(null,seq__9406_11910__$1);{ var G__11912 = cljs.core.chunk_rest.call(null,seq__9406_11910__$1); var G__11913 = c__5632__auto___11911; var G__11914 = cljs.core.count.call(null,c__5632__auto___11911); var G__11915 = 0; seq__9406_11900 = G__11912; chunk__9407_11901 = G__11913; count__9408_11902 = G__11914; i__9409_11903 = G__11915; continue; } } else {var arg__7510__auto___11916 = cljs.core.first.call(null,seq__9406_11910__$1);a__7509__auto__.push(arg__7510__auto___11916); { var G__11917 = cljs.core.next.call(null,seq__9406_11910__$1); var G__11918 = null; var G__11919 = 0; var G__11920 = 0; seq__9406_11900 = G__11917; chunk__9407_11901 = G__11918; count__9408_11902 = G__11919; i__9409_11903 = G__11920; continue; } } } else {} } break; } return React.DOM.g.apply(null,a__7509__auto__); }; var g = function (var_args){ var args__7508__auto__ = null;if (arguments.length > 0) { args__7508__auto__ = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0),0);} return g__delegate.call(this,args__7508__auto__);}; g.cljs$lang$maxFixedArity = 0; g.cljs$lang$applyTo = (function (arglist__11921){ var args__7508__auto__ = cljs.core.seq(arglist__11921); return g__delegate(args__7508__auto__); }); g.cljs$core$IFn$_invoke$arity$variadic = g__delegate; return g; })() ; /** * @param {...*} var_args */ quiescent.dom.line = (function() { var line__delegate = function (args__7508__auto__){var a__7509__auto__ = [];a__7509__auto__.push(quiescent.js_props.call(null,cljs.core.first.call(null,args__7508__auto__))); var seq__9414_11922 = cljs.core.seq.call(null,cljs.core.rest.call(null,args__7508__auto__));var chunk__9415_11923 = null;var count__9416_11924 = 0;var i__9417_11925 = 0;while(true){ if((i__9417_11925 < count__9416_11924)) {var arg__7510__auto___11926 = cljs.core._nth.call(null,chunk__9415_11923,i__9417_11925);a__7509__auto__.push(arg__7510__auto___11926); { var G__11927 = seq__9414_11922; var G__11928 = chunk__9415_11923; var G__11929 = count__9416_11924; var G__11930 = (i__9417_11925 + 1); seq__9414_11922 = G__11927; chunk__9415_11923 = G__11928; count__9416_11924 = G__11929; i__9417_11925 = G__11930; continue; } } else {var temp__4092__auto___11931 = cljs.core.seq.call(null,seq__9414_11922);if(temp__4092__auto___11931) {var seq__9414_11932__$1 = temp__4092__auto___11931;if(cljs.core.chunked_seq_QMARK_.call(null,seq__9414_11932__$1)) {var c__5632__auto___11933 = cljs.core.chunk_first.call(null,seq__9414_11932__$1);{ var G__11934 = cljs.core.chunk_rest.call(null,seq__9414_11932__$1); var G__11935 = c__5632__auto___11933; var G__11936 = cljs.core.count.call(null,c__5632__auto___11933); var G__11937 = 0; seq__9414_11922 = G__11934; chunk__9415_11923 = G__11935; count__9416_11924 = G__11936; i__9417_11925 = G__11937; continue; } } else {var arg__7510__auto___11938 = cljs.core.first.call(null,seq__9414_11932__$1);a__7509__auto__.push(arg__7510__auto___11938); { var G__11939 = cljs.core.next.call(null,seq__9414_11932__$1); var G__11940 = null; var G__11941 = 0; var G__11942 = 0; seq__9414_11922 = G__11939; chunk__9415_11923 = G__11940; count__9416_11924 = G__11941; i__9417_11925 = G__11942; continue; } } } else {} } break; } return React.DOM.line.apply(null,a__7509__auto__); }; var line = function (var_args){ var args__7508__auto__ = null;if (arguments.length > 0) { args__7508__auto__ = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0),0);} return line__delegate.call(this,args__7508__auto__);}; line.cljs$lang$maxFixedArity = 0; line.cljs$lang$applyTo = (function (arglist__11943){ var args__7508__auto__ = cljs.core.seq(arglist__11943); return line__delegate(args__7508__auto__); }); line.cljs$core$IFn$_invoke$arity$variadic = line__delegate; return line; })() ; /** * @param {...*} var_args */ quiescent.dom.path = (function() { var path__delegate = function (args__7508__auto__){var a__7509__auto__ = [];a__7509__auto__.push(quiescent.js_props.call(null,cljs.core.first.call(null,args__7508__auto__))); var seq__9422_11944 = cljs.core.seq.call(null,cljs.core.rest.call(null,args__7508__auto__));var chunk__9423_11945 = null;var count__9424_11946 = 0;var i__9425_11947 = 0;while(true){ if((i__9425_11947 < count__9424_11946)) {var arg__7510__auto___11948 = cljs.core._nth.call(null,chunk__9423_11945,i__9425_11947);a__7509__auto__.push(arg__7510__auto___11948); { var G__11949 = seq__9422_11944; var G__11950 = chunk__9423_11945; var G__11951 = count__9424_11946; var G__11952 = (i__9425_11947 + 1); seq__9422_11944 = G__11949; chunk__9423_11945 = G__11950; count__9424_11946 = G__11951; i__9425_11947 = G__11952; continue; } } else {var temp__4092__auto___11953 = cljs.core.seq.call(null,seq__9422_11944);if(temp__4092__auto___11953) {var seq__9422_11954__$1 = temp__4092__auto___11953;if(cljs.core.chunked_seq_QMARK_.call(null,seq__9422_11954__$1)) {var c__5632__auto___11955 = cljs.core.chunk_first.call(null,seq__9422_11954__$1);{ var G__11956 = cljs.core.chunk_rest.call(null,seq__9422_11954__$1); var G__11957 = c__5632__auto___11955; var G__11958 = cljs.core.count.call(null,c__5632__auto___11955); var G__11959 = 0; seq__9422_11944 = G__11956; chunk__9423_11945 = G__11957; count__9424_11946 = G__11958; i__9425_11947 = G__11959; continue; } } else {var arg__7510__auto___11960 = cljs.core.first.call(null,seq__9422_11954__$1);a__7509__auto__.push(arg__7510__auto___11960); { var G__11961 = cljs.core.next.call(null,seq__9422_11954__$1); var G__11962 = null; var G__11963 = 0; var G__11964 = 0; seq__9422_11944 = G__11961; chunk__9423_11945 = G__11962; count__9424_11946 = G__11963; i__9425_11947 = G__11964; continue; } } } else {} } break; } return React.DOM.path.apply(null,a__7509__auto__); }; var path = function (var_args){ var args__7508__auto__ = null;if (arguments.length > 0) { args__7508__auto__ = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0),0);} return path__delegate.call(this,args__7508__auto__);}; path.cljs$lang$maxFixedArity = 0; path.cljs$lang$applyTo = (function (arglist__11965){ var args__7508__auto__ = cljs.core.seq(arglist__11965); return path__delegate(args__7508__auto__); }); path.cljs$core$IFn$_invoke$arity$variadic = path__delegate; return path; })() ; /** * @param {...*} var_args */ quiescent.dom.polygon = (function() { var polygon__delegate = function (args__7508__auto__){var a__7509__auto__ = [];a__7509__auto__.push(quiescent.js_props.call(null,cljs.core.first.call(null,args__7508__auto__))); var seq__9430_11966 = cljs.core.seq.call(null,cljs.core.rest.call(null,args__7508__auto__));var chunk__9431_11967 = null;var count__9432_11968 = 0;var i__9433_11969 = 0;while(true){ if((i__9433_11969 < count__9432_11968)) {var arg__7510__auto___11970 = cljs.core._nth.call(null,chunk__9431_11967,i__9433_11969);a__7509__auto__.push(arg__7510__auto___11970); { var G__11971 = seq__9430_11966; var G__11972 = chunk__9431_11967; var G__11973 = count__9432_11968; var G__11974 = (i__9433_11969 + 1); seq__9430_11966 = G__11971; chunk__9431_11967 = G__11972; count__9432_11968 = G__11973; i__9433_11969 = G__11974; continue; } } else {var temp__4092__auto___11975 = cljs.core.seq.call(null,seq__9430_11966);if(temp__4092__auto___11975) {var seq__9430_11976__$1 = temp__4092__auto___11975;if(cljs.core.chunked_seq_QMARK_.call(null,seq__9430_11976__$1)) {var c__5632__auto___11977 = cljs.core.chunk_first.call(null,seq__9430_11976__$1);{ var G__11978 = cljs.core.chunk_rest.call(null,seq__9430_11976__$1); var G__11979 = c__5632__auto___11977; var G__11980 = cljs.core.count.call(null,c__5632__auto___11977); var G__11981 = 0; seq__9430_11966 = G__11978; chunk__9431_11967 = G__11979; count__9432_11968 = G__11980; i__9433_11969 = G__11981; continue; } } else {var arg__7510__auto___11982 = cljs.core.first.call(null,seq__9430_11976__$1);a__7509__auto__.push(arg__7510__auto___11982); { var G__11983 = cljs.core.next.call(null,seq__9430_11976__$1); var G__11984 = null; var G__11985 = 0; var G__11986 = 0; seq__9430_11966 = G__11983; chunk__9431_11967 = G__11984; count__9432_11968 = G__11985; i__9433_11969 = G__11986; continue; } } } else {} } break; } return React.DOM.polygon.apply(null,a__7509__auto__); }; var polygon = function (var_args){ var args__7508__auto__ = null;if (arguments.length > 0) { args__7508__auto__ = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0),0);} return polygon__delegate.call(this,args__7508__auto__);}; polygon.cljs$lang$maxFixedArity = 0; polygon.cljs$lang$applyTo = (function (arglist__11987){ var args__7508__auto__ = cljs.core.seq(arglist__11987); return polygon__delegate(args__7508__auto__); }); polygon.cljs$core$IFn$_invoke$arity$variadic = polygon__delegate; return polygon; })() ; /** * @param {...*} var_args */ quiescent.dom.polyline = (function() { var polyline__delegate = function (args__7508__auto__){var a__7509__auto__ = [];a__7509__auto__.push(quiescent.js_props.call(null,cljs.core.first.call(null,args__7508__auto__))); var seq__9438_11988 = cljs.core.seq.call(null,cljs.core.rest.call(null,args__7508__auto__));var chunk__9439_11989 = null;var count__9440_11990 = 0;var i__9441_11991 = 0;while(true){ if((i__9441_11991 < count__9440_11990)) {var arg__7510__auto___11992 = cljs.core._nth.call(null,chunk__9439_11989,i__9441_11991);a__7509__auto__.push(arg__7510__auto___11992); { var G__11993 = seq__9438_11988; var G__11994 = chunk__9439_11989; var G__11995 = count__9440_11990; var G__11996 = (i__9441_11991 + 1); seq__9438_11988 = G__11993; chunk__9439_11989 = G__11994; count__9440_11990 = G__11995; i__9441_11991 = G__11996; continue; } } else {var temp__4092__auto___11997 = cljs.core.seq.call(null,seq__9438_11988);if(temp__4092__auto___11997) {var seq__9438_11998__$1 = temp__4092__auto___11997;if(cljs.core.chunked_seq_QMARK_.call(null,seq__9438_11998__$1)) {var c__5632__auto___11999 = cljs.core.chunk_first.call(null,seq__9438_11998__$1);{ var G__12000 = cljs.core.chunk_rest.call(null,seq__9438_11998__$1); var G__12001 = c__5632__auto___11999; var G__12002 = cljs.core.count.call(null,c__5632__auto___11999); var G__12003 = 0; seq__9438_11988 = G__12000; chunk__9439_11989 = G__12001; count__9440_11990 = G__12002; i__9441_11991 = G__12003; continue; } } else {var arg__7510__auto___12004 = cljs.core.first.call(null,seq__9438_11998__$1);a__7509__auto__.push(arg__7510__auto___12004); { var G__12005 = cljs.core.next.call(null,seq__9438_11998__$1); var G__12006 = null; var G__12007 = 0; var G__12008 = 0; seq__9438_11988 = G__12005; chunk__9439_11989 = G__12006; count__9440_11990 = G__12007; i__9441_11991 = G__12008; continue; } } } else {} } break; } return React.DOM.polyline.apply(null,a__7509__auto__); }; var polyline = function (var_args){ var args__7508__auto__ = null;if (arguments.length > 0) { args__7508__auto__ = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0),0);} return polyline__delegate.call(this,args__7508__auto__);}; polyline.cljs$lang$maxFixedArity = 0; polyline.cljs$lang$applyTo = (function (arglist__12009){ var args__7508__auto__ = cljs.core.seq(arglist__12009); return polyline__delegate(args__7508__auto__); }); polyline.cljs$core$IFn$_invoke$arity$variadic = polyline__delegate; return polyline; })() ; /** * @param {...*} var_args */ quiescent.dom.rect = (function() { var rect__delegate = function (args__7508__auto__){var a__7509__auto__ = [];a__7509__auto__.push(quiescent.js_props.call(null,cljs.core.first.call(null,args__7508__auto__))); var seq__9446_12010 = cljs.core.seq.call(null,cljs.core.rest.call(null,args__7508__auto__));var chunk__9447_12011 = null;var count__9448_12012 = 0;var i__9449_12013 = 0;while(true){ if((i__9449_12013 < count__9448_12012)) {var arg__7510__auto___12014 = cljs.core._nth.call(null,chunk__9447_12011,i__9449_12013);a__7509__auto__.push(arg__7510__auto___12014); { var G__12015 = seq__9446_12010; var G__12016 = chunk__9447_12011; var G__12017 = count__9448_12012; var G__12018 = (i__9449_12013 + 1); seq__9446_12010 = G__12015; chunk__9447_12011 = G__12016; count__9448_12012 = G__12017; i__9449_12013 = G__12018; continue; } } else {var temp__4092__auto___12019 = cljs.core.seq.call(null,seq__9446_12010);if(temp__4092__auto___12019) {var seq__9446_12020__$1 = temp__4092__auto___12019;if(cljs.core.chunked_seq_QMARK_.call(null,seq__9446_12020__$1)) {var c__5632__auto___12021 = cljs.core.chunk_first.call(null,seq__9446_12020__$1);{ var G__12022 = cljs.core.chunk_rest.call(null,seq__9446_12020__$1); var G__12023 = c__5632__auto___12021; var G__12024 = cljs.core.count.call(null,c__5632__auto___12021); var G__12025 = 0; seq__9446_12010 = G__12022; chunk__9447_12011 = G__12023; count__9448_12012 = G__12024; i__9449_12013 = G__12025; continue; } } else {var arg__7510__auto___12026 = cljs.core.first.call(null,seq__9446_12020__$1);a__7509__auto__.push(arg__7510__auto___12026); { var G__12027 = cljs.core.next.call(null,seq__9446_12020__$1); var G__12028 = null; var G__12029 = 0; var G__12030 = 0; seq__9446_12010 = G__12027; chunk__9447_12011 = G__12028; count__9448_12012 = G__12029; i__9449_12013 = G__12030; continue; } } } else {} } break; } return React.DOM.rect.apply(null,a__7509__auto__); }; var rect = function (var_args){ var args__7508__auto__ = null;if (arguments.length > 0) { args__7508__auto__ = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0),0);} return rect__delegate.call(this,args__7508__auto__);}; rect.cljs$lang$maxFixedArity = 0; rect.cljs$lang$applyTo = (function (arglist__12031){ var args__7508__auto__ = cljs.core.seq(arglist__12031); return rect__delegate(args__7508__auto__); }); rect.cljs$core$IFn$_invoke$arity$variadic = rect__delegate; return rect; })() ; /** * @param {...*} var_args */ quiescent.dom.svg = (function() { var svg__delegate = function (args__7508__auto__){var a__7509__auto__ = [];a__7509__auto__.push(quiescent.js_props.call(null,cljs.core.first.call(null,args__7508__auto__))); var seq__9454_12032 = cljs.core.seq.call(null,cljs.core.rest.call(null,args__7508__auto__));var chunk__9455_12033 = null;var count__9456_12034 = 0;var i__9457_12035 = 0;while(true){ if((i__9457_12035 < count__9456_12034)) {var arg__7510__auto___12036 = cljs.core._nth.call(null,chunk__9455_12033,i__9457_12035);a__7509__auto__.push(arg__7510__auto___12036); { var G__12037 = seq__9454_12032; var G__12038 = chunk__9455_12033; var G__12039 = count__9456_12034; var G__12040 = (i__9457_12035 + 1); seq__9454_12032 = G__12037; chunk__9455_12033 = G__12038; count__9456_12034 = G__12039; i__9457_12035 = G__12040; continue; } } else {var temp__4092__auto___12041 = cljs.core.seq.call(null,seq__9454_12032);if(temp__4092__auto___12041) {var seq__9454_12042__$1 = temp__4092__auto___12041;if(cljs.core.chunked_seq_QMARK_.call(null,seq__9454_12042__$1)) {var c__5632__auto___12043 = cljs.core.chunk_first.call(null,seq__9454_12042__$1);{ var G__12044 = cljs.core.chunk_rest.call(null,seq__9454_12042__$1); var G__12045 = c__5632__auto___12043; var G__12046 = cljs.core.count.call(null,c__5632__auto___12043); var G__12047 = 0; seq__9454_12032 = G__12044; chunk__9455_12033 = G__12045; count__9456_12034 = G__12046; i__9457_12035 = G__12047; continue; } } else {var arg__7510__auto___12048 = cljs.core.first.call(null,seq__9454_12042__$1);a__7509__auto__.push(arg__7510__auto___12048); { var G__12049 = cljs.core.next.call(null,seq__9454_12042__$1); var G__12050 = null; var G__12051 = 0; var G__12052 = 0; seq__9454_12032 = G__12049; chunk__9455_12033 = G__12050; count__9456_12034 = G__12051; i__9457_12035 = G__12052; continue; } } } else {} } break; } return React.DOM.svg.apply(null,a__7509__auto__); }; var svg = function (var_args){ var args__7508__auto__ = null;if (arguments.length > 0) { args__7508__auto__ = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0),0);} return svg__delegate.call(this,args__7508__auto__);}; svg.cljs$lang$maxFixedArity = 0; svg.cljs$lang$applyTo = (function (arglist__12053){ var args__7508__auto__ = cljs.core.seq(arglist__12053); return svg__delegate(args__7508__auto__); }); svg.cljs$core$IFn$_invoke$arity$variadic = svg__delegate; return svg; })() ; /** * @param {...*} var_args */ quiescent.dom.text = (function() { var text__delegate = function (args__7508__auto__){var a__7509__auto__ = [];a__7509__auto__.push(quiescent.js_props.call(null,cljs.core.first.call(null,args__7508__auto__))); var seq__8766_12054 = cljs.core.seq.call(null,cljs.core.rest.call(null,args__7508__auto__));var chunk__8767_12055 = null;var count__8768_12056 = 0;var i__8769_12057 = 0;while(true){ if((i__8769_12057 < count__8768_12056)) {var arg__7510__auto___12058 = cljs.core._nth.call(null,chunk__8767_12055,i__8769_12057);a__7509__auto__.push(arg__7510__auto___12058); { var G__12059 = seq__8766_12054; var G__12060 = chunk__8767_12055; var G__12061 = count__8768_12056; var G__12062 = (i__8769_12057 + 1); seq__8766_12054 = G__12059; chunk__8767_12055 = G__12060; count__8768_12056 = G__12061; i__8769_12057 = G__12062; continue; } } else {var temp__4092__auto___12063 = cljs.core.seq.call(null,seq__8766_12054);if(temp__4092__auto___12063) {var seq__8766_12064__$1 = temp__4092__auto___12063;if(cljs.core.chunked_seq_QMARK_.call(null,seq__8766_12064__$1)) {var c__5632__auto___12065 = cljs.core.chunk_first.call(null,seq__8766_12064__$1);{ var G__12066 = cljs.core.chunk_rest.call(null,seq__8766_12064__$1); var G__12067 = c__5632__auto___12065; var G__12068 = cljs.core.count.call(null,c__5632__auto___12065); var G__12069 = 0; seq__8766_12054 = G__12066; chunk__8767_12055 = G__12067; count__8768_12056 = G__12068; i__8769_12057 = G__12069; continue; } } else {var arg__7510__auto___12070 = cljs.core.first.call(null,seq__8766_12064__$1);a__7509__auto__.push(arg__7510__auto___12070); { var G__12071 = cljs.core.next.call(null,seq__8766_12064__$1); var G__12072 = null; var G__12073 = 0; var G__12074 = 0; seq__8766_12054 = G__12071; chunk__8767_12055 = G__12072; count__8768_12056 = G__12073; i__8769_12057 = G__12074; continue; } } } else {} } break; } return React.DOM.text.apply(null,a__7509__auto__); }; var text = function (var_args){ var args__7508__auto__ = null;if (arguments.length > 0) { args__7508__auto__ = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0),0);} return text__delegate.call(this,args__7508__auto__);}; text.cljs$lang$maxFixedArity = 0; text.cljs$lang$applyTo = (function (arglist__12075){ var args__7508__auto__ = cljs.core.seq(arglist__12075); return text__delegate(args__7508__auto__); }); text.cljs$core$IFn$_invoke$arity$variadic = text__delegate; return text; })() ; quiescent.dom.defined_tags = cljs.core.PersistentHashMap.fromArrays([new cljs.core.Keyword(null,"colgroup","colgroup",4672673905),new cljs.core.Keyword(null,"path","path",1017337751),new cljs.core.Keyword(null,"menuitem","menuitem",4705729636),new cljs.core.Keyword(null,"optgroup","optgroup",933131038),new cljs.core.Keyword(null,"tbody","tbody",1124062088),new cljs.core.Keyword(null,"html","html",1017117469),new cljs.core.Keyword(null,"dfn","dfn",1014003614),new cljs.core.Keyword(null,"sub","sub",1014018482),new cljs.core.Keyword(null,"text","text",1017460895),new cljs.core.Keyword(null,"strong","strong",4416891401),new cljs.core.Keyword(null,"data","data",1016980252),new cljs.core.Keyword(null,"progress","progress",4307793311),new cljs.core.Keyword(null,"polyline","polyline",1575843122),new cljs.core.Keyword(null,"ul","ul",1013907977),new cljs.core.Keyword(null,"img","img",1014008629),new cljs.core.Keyword(null,"em","em",1013907482),new cljs.core.Keyword(null,"rt","rt",1013907892),new cljs.core.Keyword(null,"details","details",2571625908),new cljs.core.Keyword(null,"fieldset","fieldset",4379882650),new cljs.core.Keyword(null,"keygen","keygen",4174205955),new cljs.core.Keyword(null,"map","map",1014012110),new cljs.core.Keyword(null,"div","div",1014003715),new cljs.core.Keyword(null,"video","video",1126107117),new cljs.core.Keyword(null,"link","link",1017226092),new cljs.core.Keyword(null,"dt","dt",1013907458),new cljs.core.Keyword(null,"ol","ol",1013907791),new cljs.core.Keyword(null,"form","form",1017053238),new cljs.core.Keyword(null,"menu","menu",1017252049),new cljs.core.Keyword(null,"a","a",1013904339),new cljs.core.Keyword(null,"del","del",1014003581),new cljs.core.Keyword(null,"hr","hr",1013907580),new cljs.core.Keyword(null,"header","header",4087600639),new cljs.core.Keyword(null,"param","param",1120340991),new cljs.core.Keyword(null,"head","head",1017102674),new cljs.core.Keyword(null,"area","area",1016906751),new cljs.core.Keyword(null,"legend","legend",4202297215),new cljs.core.Keyword(null,"meter","meter",1117691643),new cljs.core.Keyword(null,"dl","dl",1013907450),new cljs.core.Keyword(null,"figcaption","figcaption",1313617108),new cljs.core.Keyword(null,"tfoot","tfoot",1124181588),new cljs.core.Keyword(null,"blockquote","blockquote",2317106561),new cljs.core.Keyword(null,"b","b",1013904340),new cljs.core.Keyword(null,"abbr","abbr",1016891299),new cljs.core.Keyword(null,"caption","caption",1566477656),new cljs.core.Keyword(null,"style","style",1123684643),new cljs.core.Keyword(null,"bdi","bdi",1014001625),new cljs.core.Keyword(null,"g","g",1013904345),new cljs.core.Keyword(null,"ruby","ruby",1017416012),new cljs.core.Keyword(null,"rp","rp",1013907888),new cljs.core.Keyword(null,"figure","figure",4034231894),new cljs.core.Keyword(null,"svg","svg",1014018518),new cljs.core.Keyword(null,"rect","rect",1017400662),new cljs.core.Keyword(null,"embed","embed",1110524491),new cljs.core.Keyword(null,"button","button",3931183780),new cljs.core.Keyword(null,"canvas","canvas",3941165258),new cljs.core.Keyword(null,"section","section",2984145495),new cljs.core.Keyword(null,"object","object",4285503153),new cljs.core.Keyword(null,"title","title",1124275658),new cljs.core.Keyword(null,"output","output",4303359091),new cljs.core.Keyword(null,"audio","audio",1107070792),new cljs.core.Keyword(null,"col","col",1014002930),new cljs.core.Keyword(null,"dd","dd",1013907442),new cljs.core.Keyword(null,"bdo","bdo",1014001631),new cljs.core.Keyword(null,"cite","cite",1016958153),new cljs.core.Keyword(null,"code","code",1016963423),new cljs.core.Keyword(null,"kbd","kbd",1014010207),new cljs.core.Keyword(null,"big","big",1014001778),new cljs.core.Keyword(null,"thead","thead",1124231110),new cljs.core.Keyword(null,"i","i",1013904347),new cljs.core.Keyword(null,"ins","ins",1014008672),new cljs.core.Keyword(null,"base","base",1016920643),new cljs.core.Keyword(null,"circle","circle",3948654658),new cljs.core.Keyword(null,"br","br",1013907394),new cljs.core.Keyword(null,"polygon","polygon",616384684),new cljs.core.Keyword(null,"wbr","wbr",1014021753),new cljs.core.Keyword(null,"textarea","textarea",4305627820),new cljs.core.Keyword(null,"small","small",1123453049),new cljs.core.Keyword(null,"main","main",1017248043),new cljs.core.Keyword(null,"meta","meta",1017252215),new cljs.core.Keyword(null,"aside","aside",1107015850),new cljs.core.Keyword(null,"article","article",4576493672),new cljs.core.Keyword(null,"noscript","noscript",2565455166),new cljs.core.Keyword(null,"h4","h4",1013907518),new cljs.core.Keyword(null,"h3","h3",1013907517),new cljs.core.Keyword(null,"script","script",4401185853),new cljs.core.Keyword(null,"track","track",1124525245),new cljs.core.Keyword(null,"time","time",1017464383),new cljs.core.Keyword(null,"h2","h2",1013907516),new cljs.core.Keyword(null,"mark","mark",1017248319),new cljs.core.Keyword(null,"h5","h5",1013907519),new cljs.core.Keyword(null,"span","span",1017440956),new cljs.core.Keyword(null,"input","input",1114262332),new cljs.core.Keyword(null,"sup","sup",1014018496),new cljs.core.Keyword(null,"h1","h1",1013907515),new cljs.core.Keyword(null,"table","table",1124020032),new cljs.core.Keyword(null,"th","th",1013907942),new cljs.core.Keyword(null,"label","label",1116631654),new cljs.core.Keyword(null,"h6","h6",1013907520),new cljs.core.Keyword(null,"line","line",1017226086),new cljs.core.Keyword(null,"pre","pre",1014015509),new cljs.core.Keyword(null,"nav","nav",1014013077),new cljs.core.Keyword(null,"address","address",4161179494),new cljs.core.Keyword(null,"u","u",1013904359),new cljs.core.Keyword(null,"body","body",1016933652),new cljs.core.Keyword(null,"option","option",4298734567),new cljs.core.Keyword(null,"datalist","datalist",2803674810),new cljs.core.Keyword(null,"q","q",1013904355),new cljs.core.Keyword(null,"samp","samp",1017426915),new cljs.core.Keyword(null,"source","source",4412365709),new cljs.core.Keyword(null,"summary","summary",3451231000),new cljs.core.Keyword(null,"footer","footer",4040009997),new cljs.core.Keyword(null,"select","select",4402849902),new cljs.core.Keyword(null,"var","var",1014020761),new cljs.core.Keyword(null,"td","td",1013907938),new cljs.core.Keyword(null,"li","li",1013907695),new cljs.core.Keyword(null,"p","p",1013904354),new cljs.core.Keyword(null,"tr","tr",1013907952),new cljs.core.Keyword(null,"s","s",1013904357),new cljs.core.Keyword(null,"iframe","iframe",4117657110)],[quiescent.dom.colgroup,quiescent.dom.path,quiescent.dom.menuitem,quiescent.dom.optgroup,quiescent.dom.tbody,quiescent.dom.html,quiescent.dom.dfn,quiescent.dom.sub,quiescent.dom.text,quiescent.dom.strong,quiescent.dom.data,quiescent.dom.progress,quiescent.dom.polyline,quiescent.dom.ul,quiescent.dom.img,quiescent.dom.em,quiescent.dom.rt,quiescent.dom.details,quiescent.dom.fieldset,quiescent.dom.keygen,quiescent.dom.map,quiescent.dom.div,quiescent.dom.video,quiescent.dom.link,quiescent.dom.dt,quiescent.dom.ol,quiescent.dom.form,quiescent.dom.menu,quiescent.dom.a,quiescent.dom.del,quiescent.dom.hr,quiescent.dom.header,quiescent.dom.param,quiescent.dom.head,quiescent.dom.area,quiescent.dom.legend,quiescent.dom.meter,quiescent.dom.dl,quiescent.dom.figcaption,quiescent.dom.tfoot,quiescent.dom.blockquote,quiescent.dom.b,quiescent.dom.abbr,quiescent.dom.caption,quiescent.dom.style,quiescent.dom.bdi,quiescent.dom.g,quiescent.dom.ruby,quiescent.dom.rp,quiescent.dom.figure,quiescent.dom.svg,quiescent.dom.rect,quiescent.dom.embed,quiescent.dom.button,quiescent.dom.canvas,quiescent.dom.section,quiescent.dom.object,quiescent.dom.title,quiescent.dom.output,quiescent.dom.audio,quiescent.dom.col,quiescent.dom.dd,quiescent.dom.bdo,quiescent.dom.cite,quiescent.dom.code,quiescent.dom.kbd,quiescent.dom.big,quiescent.dom.thead,quiescent.dom.i,quiescent.dom.ins,quiescent.dom.base,quiescent.dom.circle,quiescent.dom.br,quiescent.dom.polygon,quiescent.dom.wbr,quiescent.dom.textarea,quiescent.dom.small,quiescent.dom.main,quiescent.dom.meta,quiescent.dom.aside,quiescent.dom.article,quiescent.dom.noscript,quiescent.dom.h4,quiescent.dom.h3,quiescent.dom.script,quiescent.dom.track,quiescent.dom.time,quiescent.dom.h2,quiescent.dom.mark,quiescent.dom.h5,quiescent.dom.span,quiescent.dom.input,quiescent.dom.sup,quiescent.dom.h1,quiescent.dom.table,quiescent.dom.th,quiescent.dom.label,quiescent.dom.h6,quiescent.dom.line,quiescent.dom.pre,quiescent.dom.nav,quiescent.dom.address,quiescent.dom.u,quiescent.dom.body,quiescent.dom.option,quiescent.dom.datalist,quiescent.dom.q,quiescent.dom.samp,quiescent.dom.source,quiescent.dom.summary,quiescent.dom.footer,quiescent.dom.select,quiescent.dom.var$,quiescent.dom.td,quiescent.dom.li,quiescent.dom.p,quiescent.dom.tr,quiescent.dom.s,quiescent.dom.iframe]); } if(!lt.util.load.provided_QMARK_('lt.plugins.elm-light.autocompleter')) { goog.provide('lt.plugins.elm_light.autocompleter'); goog.require('cljs.core'); goog.require('quiescent.dom'); goog.require('quiescent.dom'); goog.require('quiescent'); goog.require('quiescent'); lt.plugins.elm_light.autocompleter.find_active = (function find_active(items){return cljs.core.first.call(null,cljs.core.filter.call(null,new cljs.core.Keyword(null,"active","active",3885920888),items)); }); lt.plugins.elm_light.autocompleter.handle_keypress = (function handle_keypress(p__8484,ev){var map__8487 = p__8484;var map__8487__$1 = ((cljs.core.seq_QMARK_.call(null,map__8487))?cljs.core.apply.call(null,cljs.core.hash_map,map__8487):map__8487);var props = map__8487__$1;var on_cancel = cljs.core.get.call(null,map__8487__$1,new cljs.core.Keyword(null,"on-cancel","on-cancel",600765850));var on_select = cljs.core.get.call(null,map__8487__$1,new cljs.core.Keyword(null,"on-select","on-select",1062468636));var on_down = cljs.core.get.call(null,map__8487__$1,new cljs.core.Keyword(null,"on-down","on-down",3936419650));var on_up = cljs.core.get.call(null,map__8487__$1,new cljs.core.Keyword(null,"on-up","on-up",1119739067));var kk = ev.which;var G__8488 = kk;if(cljs.core._EQ_.call(null,27,G__8488)) {ev.preventDefault(); ev.target.value = ""; return on_cancel.call(null); } else {if(cljs.core._EQ_.call(null,13,G__8488)) {ev.preventDefault(); var temp__4092__auto___8504 = lt.plugins.elm_light.autocompleter.find_active.call(null,new cljs.core.Keyword(null,"items","items",1114430258).cljs$core$IFn$_invoke$arity$1(props));if(cljs.core.truth_(temp__4092__auto___8504)) {var active_8505 = temp__4092__auto___8504;ev.target.value = new cljs.core.Keyword(null,"name","name",1017277949).cljs$core$IFn$_invoke$arity$1(active_8505); } else {} return on_select.call(null); } else {if(cljs.core._EQ_.call(null,40,G__8488)) {ev.preventDefault(); return on_down.call(null); } else {if(cljs.core._EQ_.call(null,38,G__8488)) {ev.preventDefault(); return on_up.call(null); } else {if(new cljs.core.Keyword(null,"else","else",1017020587)) {return new cljs.core.Keyword(null,"default","default",2558708147); } else {return null; } } } } } }); /** * */ lt.plugins.elm_light.autocompleter.AutoCompleteMenu = quiescent.component.call(null,(function (props){var items = new cljs.core.Keyword(null,"items","items",1114430258).cljs$core$IFn$_invoke$arity$1(props);var style = ((cljs.core.seq.call(null,items))?null:new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"display","display",2685668404),"none"], null));var item_classes = ((function (items,style){ return (function (p1__8489_SHARP_){return "autocomplete-dropdown-item row".concat((cljs.core.truth_(new cljs.core.Keyword(null,"active","active",3885920888).cljs$core$IFn$_invoke$arity$1(p1__8489_SHARP_))?" autocomplete-active":"")); });})(items,style)) ;return cljs.core.apply.call(null,quiescent.dom.div,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"onMouseDown","onMouseDown",1569008442),((function (items,style,item_classes){ return (function (e){e.preventDefault(); return e.stopPropagation(); });})(items,style,item_classes)) ,new cljs.core.Keyword(null,"className","className",1004015509),"autocomplete-dropdown-menu",new cljs.core.Keyword(null,"style","style",1123684643),style], null),cljs.core.map.call(null,((function (items,style,item_classes){ return (function (item){return quiescent.dom.div.call(null,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"className","className",1004015509),item_classes.call(null,item)], null),quiescent.dom.div.call(null,cljs.core.PersistentArrayMap.EMPTY,new cljs.core.Keyword(null,"name","name",1017277949).cljs$core$IFn$_invoke$arity$1(item))); });})(items,style,item_classes)) ,items)); })); /** * */ lt.plugins.elm_light.autocompleter.Adder = quiescent.component.call(null,(function (p__8490){var map__8491 = p__8490;var map__8491__$1 = ((cljs.core.seq_QMARK_.call(null,map__8491))?cljs.core.apply.call(null,cljs.core.hash_map,map__8491):map__8491);var props = map__8491__$1;var disabled = cljs.core.get.call(null,map__8491__$1,new cljs.core.Keyword(null,"disabled","disabled",1284845038));var on_add_package = cljs.core.get.call(null,map__8491__$1,new cljs.core.Keyword(null,"on-add-package","on-add-package",3601701790));return quiescent.dom.button.call(null,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"className","className",1004015509),"btn",new cljs.core.Keyword(null,"disabled","disabled",1284845038),disabled,new cljs.core.Keyword(null,"onClick","onClick",3956969051),((function (map__8491,map__8491__$1,props,disabled,on_add_package){ return (function (){return on_add_package.call(null); });})(map__8491,map__8491__$1,props,disabled,on_add_package)) ], null),"Add package"); })); /** * */ lt.plugins.elm_light.autocompleter.Versions = quiescent.component.call(null,(function (props){return cljs.core.apply.call(null,quiescent.dom.select,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"className","className",1004015509),"versions",new cljs.core.Keyword(null,"value","value",1125876963),new cljs.core.Keyword(null,"version","version",1365512266).cljs$core$IFn$_invoke$arity$1(props),new cljs.core.Keyword(null,"onChange","onChange",2050678241),(function (p1__8492_SHARP_){return new cljs.core.Keyword(null,"on-change-version","on-change-version",822058203).cljs$core$IFn$_invoke$arity$1(props).call(null,p1__8492_SHARP_.target.value); })], null),cljs.core.map.call(null,(function (p1__8493_SHARP_){return quiescent.dom.option.call(null,cljs.core.PersistentArrayMap.EMPTY,p1__8493_SHARP_); }),new cljs.core.Keyword(null,"versions","versions",3323818509).cljs$core$IFn$_invoke$arity$1(props))); })); /** * */ lt.plugins.elm_light.autocompleter.AutoComplete = quiescent.component.call(null,(function (props){return quiescent.dom.span.call(null,cljs.core.PersistentArrayMap.EMPTY,quiescent.dom.input.call(null,cljs.core.PersistentHashMap.fromArrays([new cljs.core.Keyword(null,"onKeyDown","onKeyDown",1534256180),new cljs.core.Keyword(null,"name","name",1017277949),new cljs.core.Keyword(null,"autoComplete","autoComplete",4535568250),new cljs.core.Keyword(null,"onBlur","onBlur",4295401048),new cljs.core.Keyword(null,"style","style",1123684643),new cljs.core.Keyword(null,"autoFocus","autoFocus",2651959259),new cljs.core.Keyword(null,"onChange","onChange",2050678241),new cljs.core.Keyword(null,"type","type",1017479852),new cljs.core.Keyword(null,"value","value",1125876963)],[cljs.core.partial.call(null,lt.plugins.elm_light.autocompleter.handle_keypress,props),"package-search","off",(function (_){return new cljs.core.Keyword(null,"on-blur","on-blur",3936357127).cljs$core$IFn$_invoke$arity$1(props).call(null); }),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"width","width",1127031096),"250px"], null),true,(function (ev){return new cljs.core.Keyword(null,"on-change","on-change",606853840).cljs$core$IFn$_invoke$arity$1(props).call(null,(ev["target"]["value"])); }),"text",new cljs.core.Keyword(null,"value","value",1125876963).cljs$core$IFn$_invoke$arity$1(props)])),lt.plugins.elm_light.autocompleter.Versions.call(null,props),lt.plugins.elm_light.autocompleter.Adder.call(null,cljs.core.assoc.call(null,props,new cljs.core.Keyword(null,"disabled","disabled",1284845038),(new cljs.core.Keyword(null,"version","version",1365512266).cljs$core$IFn$_invoke$arity$1(props) == null))),quiescent.dom.div.call(null,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"className","className",1004015509),"autocomplete-dropdown"], null),lt.plugins.elm_light.autocompleter.AutoCompleteMenu.call(null,props))); })); } if(!lt.util.load.provided_QMARK_('clojure.walk')) { goog.provide('clojure.walk'); goog.require('cljs.core'); /** * Traverses form, an arbitrary data structure. inner and outer are * functions. Applies inner to each element of form, building up a * data structure of the same type, then applies outer to the result. * Recognizes all Clojure data structures. Consumes seqs as with doall. */ clojure.walk.walk = (function walk(inner,outer,form){if(cljs.core.seq_QMARK_.call(null,form)) {return outer.call(null,cljs.core.doall.call(null,cljs.core.map.call(null,inner,form))); } else {if(cljs.core.coll_QMARK_.call(null,form)) {return outer.call(null,cljs.core.into.call(null,cljs.core.empty.call(null,form),cljs.core.map.call(null,inner,form))); } else {if(new cljs.core.Keyword(null,"else","else",1017020587)) {return outer.call(null,form); } else {return null; } } } }); /** * Performs a depth-first, post-order traversal of form. Calls f on * each sub-form, uses f's return value in place of the original. * Recognizes all Clojure data structures. Consumes seqs as with doall. */ clojure.walk.postwalk = (function postwalk(f,form){return clojure.walk.walk.call(null,cljs.core.partial.call(null,postwalk,f),f,form); }); /** * Like postwalk, but does pre-order traversal. */ clojure.walk.prewalk = (function prewalk(f,form){return clojure.walk.walk.call(null,cljs.core.partial.call(null,prewalk,f),cljs.core.identity,f.call(null,form)); }); /** * Recursively transforms all map keys from strings to keywords. */ clojure.walk.keywordize_keys = (function keywordize_keys(m){var f = (function (p__19817){var vec__19818 = p__19817;var k = cljs.core.nth.call(null,vec__19818,0,null);var v = cljs.core.nth.call(null,vec__19818,1,null);if(typeof k === 'string') {return new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.keyword.call(null,k),v], null); } else {return new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [k,v], null); } });return clojure.walk.postwalk.call(null,((function (f){ return (function (x){if(cljs.core.map_QMARK_.call(null,x)) {return cljs.core.into.call(null,cljs.core.PersistentArrayMap.EMPTY,cljs.core.map.call(null,f,x)); } else {return x; } });})(f)) ,m); }); /** * Recursively transforms all map keys from keywords to strings. */ clojure.walk.stringify_keys = (function stringify_keys(m){var f = (function (p__19821){var vec__19822 = p__19821;var k = cljs.core.nth.call(null,vec__19822,0,null);var v = cljs.core.nth.call(null,vec__19822,1,null);if((k instanceof cljs.core.Keyword)) {return new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.name.call(null,k),v], null); } else {return new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [k,v], null); } });return clojure.walk.postwalk.call(null,((function (f){ return (function (x){if(cljs.core.map_QMARK_.call(null,x)) {return cljs.core.into.call(null,cljs.core.PersistentArrayMap.EMPTY,cljs.core.map.call(null,f,x)); } else {return x; } });})(f)) ,m); }); /** * Recursively transforms form by replacing keys in smap with their * values. Like clojure/replace but works on any data structure. Does * replacement at the root of the tree first. */ clojure.walk.prewalk_replace = (function prewalk_replace(smap,form){return clojure.walk.prewalk.call(null,(function (x){if(cljs.core.contains_QMARK_.call(null,smap,x)) {return smap.call(null,x); } else {return x; } }),form); }); /** * Recursively transforms form by replacing keys in smap with their * values. Like clojure/replace but works on any data structure. Does * replacement at the leaves of the tree first. */ clojure.walk.postwalk_replace = (function postwalk_replace(smap,form){return clojure.walk.postwalk.call(null,(function (x){if(cljs.core.contains_QMARK_.call(null,smap,x)) {return smap.call(null,x); } else {return x; } }),form); }); } if(!lt.util.load.provided_QMARK_('lt.plugins.elm-light.graph')) { goog.provide('lt.plugins.elm_light.graph'); goog.require('cljs.core'); goog.require('clojure.set'); goog.require('lt.objs.files'); goog.require('lt.plugins.elm_light.utils'); goog.require('lt.util.dom'); goog.require('lt.objs.tabs'); goog.require('clojure.string'); goog.require('lt.plugins.elm_light.utils'); goog.require('lt.objs.notifos'); goog.require('lt.objs.notifos'); goog.require('lt.util.dom'); goog.require('lt.objs.editor.pool'); goog.require('lt.objs.command'); goog.require('lt.objs.files'); goog.require('clojure.string'); goog.require('lt.object'); goog.require('lt.object'); goog.require('clojure.set'); goog.require('lt.objs.console'); goog.require('lt.objs.tabs'); goog.require('lt.objs.console'); goog.require('lt.objs.editor.pool'); goog.require('lt.objs.command'); goog.require('fetch.core'); goog.require('fetch.core'); lt.plugins.elm_light.graph.dagreD3 = require(lt.objs.files.join.call(null,lt.plugins.elm_light.utils.elm_plugin_dir,"node_modules/dagre-d3")); lt.plugins.elm_light.graph.d3 = require(lt.objs.files.join.call(null,lt.plugins.elm_light.utils.elm_plugin_dir,"node_modules/d3")); lt.plugins.elm_light.graph.lower = (function lower(term){return clojure.string.lower_case.call(null,term); }); lt.plugins.elm_light.graph.find_package_by_name = (function find_package_by_name(this$,name){return cljs.core.some.call(null,(function (p1__12486_SHARP_){if(cljs.core._EQ_.call(null,lt.plugins.elm_light.graph.lower.call(null,new cljs.core.Keyword(null,"name","name",1017277949).cljs$core$IFn$_invoke$arity$1(p1__12486_SHARP_)),lt.plugins.elm_light.graph.lower.call(null,name))) {return p1__12486_SHARP_; } else {return null; } }),new cljs.core.Keyword(null,"all-packages","all-packages",1123981067).cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,this$))); }); lt.plugins.elm_light.graph.dependency_graph_ui = (function dependency_graph_ui(this$){var e__6317__auto__ = crate.core.html.call(null,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"div.graph","div.graph",2030351651),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"div.dependency-graph","div.dependency-graph",3039800187),new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"svg:svg","svg:svg",3472817088),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"width","width",1127031096),"650",new cljs.core.Keyword(null,"height","height",4087841945),"680"], null),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"svg:g","svg:g",1123725379),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"transform","transform",2066570974),"translate(20,20)"], null)], null)], null)], null)], null));var seq__12493_12544 = cljs.core.seq.call(null,cljs.core.partition.call(null,2,cljs.core.PersistentVector.EMPTY));var chunk__12494_12545 = null;var count__12495_12546 = 0;var i__12496_12547 = 0;while(true){ if((i__12496_12547 < count__12495_12546)) {var vec__12497_12548 = cljs.core._nth.call(null,chunk__12494_12545,i__12496_12547);var ev__6318__auto___12549 = cljs.core.nth.call(null,vec__12497_12548,0,null);var func__6319__auto___12550 = cljs.core.nth.call(null,vec__12497_12548,1,null);lt.util.dom.on.call(null,e__6317__auto__,ev__6318__auto___12549,func__6319__auto___12550); { var G__12551 = seq__12493_12544; var G__12552 = chunk__12494_12545; var G__12553 = count__12495_12546; var G__12554 = (i__12496_12547 + 1); seq__12493_12544 = G__12551; chunk__12494_12545 = G__12552; count__12495_12546 = G__12553; i__12496_12547 = G__12554; continue; } } else {var temp__4092__auto___12555 = cljs.core.seq.call(null,seq__12493_12544);if(temp__4092__auto___12555) {var seq__12493_12556__$1 = temp__4092__auto___12555;if(cljs.core.chunked_seq_QMARK_.call(null,seq__12493_12556__$1)) {var c__5632__auto___12557 = cljs.core.chunk_first.call(null,seq__12493_12556__$1);{ var G__12558 = cljs.core.chunk_rest.call(null,seq__12493_12556__$1); var G__12559 = c__5632__auto___12557; var G__12560 = cljs.core.count.call(null,c__5632__auto___12557); var G__12561 = 0; seq__12493_12544 = G__12558; chunk__12494_12545 = G__12559; count__12495_12546 = G__12560; i__12496_12547 = G__12561; continue; } } else {var vec__12498_12562 = cljs.core.first.call(null,seq__12493_12556__$1);var ev__6318__auto___12563 = cljs.core.nth.call(null,vec__12498_12562,0,null);var func__6319__auto___12564 = cljs.core.nth.call(null,vec__12498_12562,1,null);lt.util.dom.on.call(null,e__6317__auto__,ev__6318__auto___12563,func__6319__auto___12564); { var G__12565 = cljs.core.next.call(null,seq__12493_12556__$1); var G__12566 = null; var G__12567 = 0; var G__12568 = 0; seq__12493_12544 = G__12565; chunk__12494_12545 = G__12566; count__12495_12546 = G__12567; i__12496_12547 = G__12568; continue; } } } else {} } break; } return e__6317__auto__; }); lt.object.object_STAR_.call(null,new cljs.core.Keyword("lt.plugins.elm-light.graph","dependency-graph","lt.plugins.elm-light.graph/dependency-graph",2371711049),new cljs.core.Keyword(null,"tags","tags",1017456523),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"elm.graph.dependency","elm.graph.dependency",658564005)], null),new cljs.core.Keyword(null,"name","name",1017277949),"Dependency graph",new cljs.core.Keyword(null,"init","init",1017141378),(function (this$){lt.plugins.elm_light.utils.fetch_all_packages.call(null,(function (p1__12499_SHARP_){return lt.object.merge_BANG_.call(null,this$,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"all-packages","all-packages",1123981067),p1__12499_SHARP_], null)); })); return lt.plugins.elm_light.graph.dependency_graph_ui.call(null,this$); })); lt.plugins.elm_light.graph.__BEH__on_close_destroy = (function __BEH__on_close_destroy(this$){var temp__4092__auto___12569 = new cljs.core.Keyword("lt.objs.tabs","tabset","lt.objs.tabs/tabset",3378091779).cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,this$));if(cljs.core.truth_(temp__4092__auto___12569)) {var ts_12570 = temp__4092__auto___12569;if(cljs.core._EQ_.call(null,cljs.core.count.call(null,new cljs.core.Keyword(null,"objs","objs",1017308622).cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,ts_12570))),1)) {lt.objs.tabs.rem_tabset.call(null,ts_12570); } else {} } else {} return lt.object.raise.call(null,this$,new cljs.core.Keyword(null,"destroy","destroy",2571277164)); }); lt.object.behavior_STAR_.call(null,new cljs.core.Keyword("lt.plugins.elm-light.graph","on-close-destroy","lt.plugins.elm-light.graph/on-close-destroy",4331265958),new cljs.core.Keyword(null,"reaction","reaction",4441361819),lt.plugins.elm_light.graph.__BEH__on_close_destroy,new cljs.core.Keyword(null,"triggers","triggers",2516997421),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"close","close",1108660586),null], null), null)); lt.plugins.elm_light.graph.select_values = cljs.core.comp.call(null,cljs.core.vals,cljs.core.select_keys); lt.plugins.elm_light.graph.dep_id = (function dep_id(dep){return clojure.string.join.call(null,":",lt.plugins.elm_light.graph.select_values.call(null,dep,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"package","package",4501809080),new cljs.core.Keyword(null,"version","version",1365512266)], null))); }); lt.plugins.elm_light.graph.node_label = (function node_label(x){return {"label": [cljs.core.str("
    "),cljs.core.str(new cljs.core.Keyword(null,"package","package",4501809080).cljs$core$IFn$_invoke$arity$1(x)),cljs.core.str("
    "),cljs.core.str(new cljs.core.Keyword(null,"version","version",1365512266).cljs$core$IFn$_invoke$arity$1(x)),cljs.core.str("
    ")].join(''), "labelType": "html", "style": (cljs.core.truth_(new cljs.core.Keyword(null,"version","version",1365512266).cljs$core$IFn$_invoke$arity$1(x))?null:"fill: #73404c"), "shape": (function (){var temp__4090__auto__ = new cljs.core.Keyword(null,"shape","shape",1123304211).cljs$core$IFn$_invoke$arity$1(x);if(cljs.core.truth_(temp__4090__auto__)) {var shape = temp__4090__auto__;return shape; } else {return "rect"; } })()}; }); lt.plugins.elm_light.graph.create_graph = (function create_graph(data){var g = (new lt.plugins.elm_light.graph.dagreD3.graphlib.Graph()).setGraph({});var seq__12508_12571 = cljs.core.seq.call(null,new cljs.core.Keyword(null,"nodes","nodes",1118897699).cljs$core$IFn$_invoke$arity$1(data));var chunk__12509_12572 = null;var count__12510_12573 = 0;var i__12511_12574 = 0;while(true){ if((i__12511_12574 < count__12510_12573)) {var x_12575 = cljs.core._nth.call(null,chunk__12509_12572,i__12511_12574);g.setNode(lt.plugins.elm_light.graph.dep_id.call(null,x_12575),lt.plugins.elm_light.graph.node_label.call(null,x_12575)); { var G__12576 = seq__12508_12571; var G__12577 = chunk__12509_12572; var G__12578 = count__12510_12573; var G__12579 = (i__12511_12574 + 1); seq__12508_12571 = G__12576; chunk__12509_12572 = G__12577; count__12510_12573 = G__12578; i__12511_12574 = G__12579; continue; } } else {var temp__4092__auto___12580 = cljs.core.seq.call(null,seq__12508_12571);if(temp__4092__auto___12580) {var seq__12508_12581__$1 = temp__4092__auto___12580;if(cljs.core.chunked_seq_QMARK_.call(null,seq__12508_12581__$1)) {var c__5632__auto___12582 = cljs.core.chunk_first.call(null,seq__12508_12581__$1);{ var G__12583 = cljs.core.chunk_rest.call(null,seq__12508_12581__$1); var G__12584 = c__5632__auto___12582; var G__12585 = cljs.core.count.call(null,c__5632__auto___12582); var G__12586 = 0; seq__12508_12571 = G__12583; chunk__12509_12572 = G__12584; count__12510_12573 = G__12585; i__12511_12574 = G__12586; continue; } } else {var x_12587 = cljs.core.first.call(null,seq__12508_12581__$1);g.setNode(lt.plugins.elm_light.graph.dep_id.call(null,x_12587),lt.plugins.elm_light.graph.node_label.call(null,x_12587)); { var G__12588 = cljs.core.next.call(null,seq__12508_12581__$1); var G__12589 = null; var G__12590 = 0; var G__12591 = 0; seq__12508_12571 = G__12588; chunk__12509_12572 = G__12589; count__12510_12573 = G__12590; i__12511_12574 = G__12591; continue; } } } else {} } break; } var seq__12512_12592 = cljs.core.seq.call(null,new cljs.core.Keyword(null,"edges","edges",1110261192).cljs$core$IFn$_invoke$arity$1(data));var chunk__12513_12593 = null;var count__12514_12594 = 0;var i__12515_12595 = 0;while(true){ if((i__12515_12595 < count__12514_12594)) {var x_12596 = cljs.core._nth.call(null,chunk__12513_12593,i__12515_12595);g.setEdge(new cljs.core.Keyword(null,"a","a",1013904339).cljs$core$IFn$_invoke$arity$1(x_12596),new cljs.core.Keyword(null,"b","b",1013904340).cljs$core$IFn$_invoke$arity$1(x_12596),{"style": (cljs.core.truth_(new cljs.core.Keyword(null,"transitive","transitive",3584713111).cljs$core$IFn$_invoke$arity$1(x_12596))?"stroke-dasharray: 5, 5;":null), "label": new cljs.core.Keyword(null,"label","label",1116631654).cljs$core$IFn$_invoke$arity$1(x_12596)}); { var G__12597 = seq__12512_12592; var G__12598 = chunk__12513_12593; var G__12599 = count__12514_12594; var G__12600 = (i__12515_12595 + 1); seq__12512_12592 = G__12597; chunk__12513_12593 = G__12598; count__12514_12594 = G__12599; i__12515_12595 = G__12600; continue; } } else {var temp__4092__auto___12601 = cljs.core.seq.call(null,seq__12512_12592);if(temp__4092__auto___12601) {var seq__12512_12602__$1 = temp__4092__auto___12601;if(cljs.core.chunked_seq_QMARK_.call(null,seq__12512_12602__$1)) {var c__5632__auto___12603 = cljs.core.chunk_first.call(null,seq__12512_12602__$1);{ var G__12604 = cljs.core.chunk_rest.call(null,seq__12512_12602__$1); var G__12605 = c__5632__auto___12603; var G__12606 = cljs.core.count.call(null,c__5632__auto___12603); var G__12607 = 0; seq__12512_12592 = G__12604; chunk__12513_12593 = G__12605; count__12514_12594 = G__12606; i__12515_12595 = G__12607; continue; } } else {var x_12608 = cljs.core.first.call(null,seq__12512_12602__$1);g.setEdge(new cljs.core.Keyword(null,"a","a",1013904339).cljs$core$IFn$_invoke$arity$1(x_12608),new cljs.core.Keyword(null,"b","b",1013904340).cljs$core$IFn$_invoke$arity$1(x_12608),{"style": (cljs.core.truth_(new cljs.core.Keyword(null,"transitive","transitive",3584713111).cljs$core$IFn$_invoke$arity$1(x_12608))?"stroke-dasharray: 5, 5;":null), "label": new cljs.core.Keyword(null,"label","label",1116631654).cljs$core$IFn$_invoke$arity$1(x_12608)}); { var G__12609 = cljs.core.next.call(null,seq__12512_12602__$1); var G__12610 = null; var G__12611 = 0; var G__12612 = 0; seq__12512_12592 = G__12609; chunk__12513_12593 = G__12610; count__12514_12594 = G__12611; i__12515_12595 = G__12612; continue; } } } else {} } break; } return g; }); lt.plugins.elm_light.graph.d3_sel = (function d3_sel(selector){console.log(lt.plugins.elm_light.graph.d3.select(selector)); return lt.plugins.elm_light.graph.d3.select(selector); }); lt.plugins.elm_light.graph.dimensions = (function dimensions(this$){return new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"w","w",1013904361),new cljs.core.Keyword(null,"content","content",1965434859).cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,this$)).clientWidth,new cljs.core.Keyword(null,"h","h",1013904346),new cljs.core.Keyword(null,"content","content",1965434859).cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,this$)).clientHeight], null); }); lt.plugins.elm_light.graph.init_zoom = (function init_zoom(svg,g){var zoom = lt.plugins.elm_light.graph.d3.behavior.zoom().on("zoom",(function (){return g.attr("transform",[cljs.core.str("translate("),cljs.core.str(lt.plugins.elm_light.graph.d3.event.translate),cljs.core.str(")"),cljs.core.str("scale("),cljs.core.str(lt.plugins.elm_light.graph.d3.event.scale),cljs.core.str(")")].join('')); }));return svg.call(zoom); }); lt.plugins.elm_light.graph.resize_graph = (function resize_graph(this$,svg){var dim = lt.plugins.elm_light.graph.dimensions.call(null,this$);svg.attr("width",(new cljs.core.Keyword(null,"w","w",1013904361).cljs$core$IFn$_invoke$arity$1(dim) + 20)); return svg.attr("height",(new cljs.core.Keyword(null,"h","h",1013904346).cljs$core$IFn$_invoke$arity$1(dim) + 20)); }); lt.plugins.elm_light.graph.__BEH__on_render = (function __BEH__on_render(this$){var svg = lt.plugins.elm_light.graph.d3.select("svg");var g = svg.select("g");var renderer = lt.plugins.elm_light.graph.dagreD3.render();renderer.call(null,g,lt.plugins.elm_light.graph.create_graph.call(null,new cljs.core.Keyword(null,"data","data",1016980252).cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,this$)))); lt.plugins.elm_light.graph.init_zoom.call(null,svg,g); return lt.plugins.elm_light.graph.resize_graph.call(null,this$,svg); }); lt.object.behavior_STAR_.call(null,new cljs.core.Keyword("lt.plugins.elm-light.graph","on-render","lt.plugins.elm-light.graph/on-render",4390043473),new cljs.core.Keyword(null,"reaction","reaction",4441361819),lt.plugins.elm_light.graph.__BEH__on_render,new cljs.core.Keyword(null,"desc","desc",1016984067),"Elm render dependencies",new cljs.core.Keyword(null,"triggers","triggers",2516997421),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"elm.graph.render","elm.graph.render",2076182000),null], null), null)); lt.plugins.elm_light.graph.get_package_json = (function get_package_json(dep,callback){var url = [cljs.core.str("http://package.elm-lang.org/packages/"),cljs.core.str(new cljs.core.Keyword(null,"package","package",4501809080).cljs$core$IFn$_invoke$arity$1(dep)),cljs.core.str("/"),cljs.core.str(new cljs.core.Keyword(null,"version","version",1365512266).cljs$core$IFn$_invoke$arity$1(dep)),cljs.core.str("/"),cljs.core.str("elm-package.json")].join('');return fetch.core.xhr.call(null,url,cljs.core.PersistentArrayMap.EMPTY,((function (url){ return (function (data){return callback.call(null,cljs.core.js__GT_clj.call(null,JSON.parse(data),new cljs.core.Keyword(null,"keywordize-keys","keywordize-keys",4191781672),true)); });})(url)) ); }); lt.plugins.elm_light.graph.add_edges_for_dep = (function add_edges_for_dep(this$,origin,pkg_json){var temp__4092__auto__ = cljs.core.seq.call(null,cljs.core.map.call(null,(function (dep){return new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,"a","a",1013904339),lt.plugins.elm_light.graph.dep_id.call(null,origin),new cljs.core.Keyword(null,"b","b",1013904340),lt.plugins.elm_light.graph.dep_id.call(null,dep),new cljs.core.Keyword(null,"transitive","transitive",3584713111),true,new cljs.core.Keyword(null,"label","label",1116631654),new cljs.core.Keyword(null,"range","range",1122184367).cljs$core$IFn$_invoke$arity$1(dep)], null); }),cljs.core.map.call(null,(function (p__12520){var vec__12521 = p__12520;var k = cljs.core.nth.call(null,vec__12521,0,null);var v = cljs.core.nth.call(null,vec__12521,1,null);return cljs.core.PersistentHashMap.fromArrays.call(null,[new cljs.core.Keyword(null,"package","package",4501809080),new cljs.core.Keyword(null,"range","range",1122184367),new cljs.core.Keyword(null,"version","version",1365512266)],[lt.plugins.elm_light.utils.nskw__GT_name.call(null,k),v,new cljs.core.Keyword(null,"version","version",1365512266).cljs$core$IFn$_invoke$arity$1(cljs.core.some.call(null,((function (vec__12521,k,v){ return (function (p1__12516_SHARP_){if(cljs.core._EQ_.call(null,lt.plugins.elm_light.utils.nskw__GT_name.call(null,k),new cljs.core.Keyword(null,"package","package",4501809080).cljs$core$IFn$_invoke$arity$1(p1__12516_SHARP_))) {return p1__12516_SHARP_; } else {return null; } });})(vec__12521,k,v)) ,new cljs.core.Keyword(null,"packages","packages",1764771935).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"data","data",1016980252).cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,this$)))))]); }),new cljs.core.Keyword(null,"dependencies","dependencies",1517678747).cljs$core$IFn$_invoke$arity$1(pkg_json))));if(temp__4092__auto__) {var edges = temp__4092__auto__;lt.object.update_BANG_.call(null,this$,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"data","data",1016980252),new cljs.core.Keyword(null,"edges","edges",1110261192)], null),((function (edges,temp__4092__auto__){ return (function (p1__12517_SHARP_){return cljs.core.concat.call(null,p1__12517_SHARP_,edges); });})(edges,temp__4092__auto__)) ); return lt.object.raise.call(null,this$,new cljs.core.Keyword(null,"elm.graph.render","elm.graph.render",2076182000)); } else {return null; } }); lt.plugins.elm_light.graph.__BEH__on_get_transitives = (function __BEH__on_get_transitives(this$){var transitives = cljs.core.remove.call(null,new cljs.core.Keyword(null,"range","range",1122184367),new cljs.core.Keyword(null,"packages","packages",1764771935).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"data","data",1016980252).cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,this$))));lt.object.update_BANG_.call(null,this$,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"data","data",1016980252),new cljs.core.Keyword(null,"nodes","nodes",1118897699)], null),((function (transitives){ return (function (p1__12522_SHARP_){return cljs.core.concat.call(null,p1__12522_SHARP_,transitives); });})(transitives)) ); lt.object.raise.call(null,this$,new cljs.core.Keyword(null,"elm.graph.render","elm.graph.render",2076182000)); var seq__12527 = cljs.core.seq.call(null,cljs.core.filter.call(null,new cljs.core.Keyword(null,"version","version",1365512266),new cljs.core.Keyword(null,"packages","packages",1764771935).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"data","data",1016980252).cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,this$)))));var chunk__12528 = null;var count__12529 = 0;var i__12530 = 0;while(true){ if((i__12530 < count__12529)) {var x = cljs.core._nth.call(null,chunk__12528,i__12530);lt.plugins.elm_light.graph.get_package_json.call(null,x,cljs.core.partial.call(null,lt.plugins.elm_light.graph.add_edges_for_dep,this$,x)); { var G__12613 = seq__12527; var G__12614 = chunk__12528; var G__12615 = count__12529; var G__12616 = (i__12530 + 1); seq__12527 = G__12613; chunk__12528 = G__12614; count__12529 = G__12615; i__12530 = G__12616; continue; } } else {var temp__4092__auto__ = cljs.core.seq.call(null,seq__12527);if(temp__4092__auto__) {var seq__12527__$1 = temp__4092__auto__;if(cljs.core.chunked_seq_QMARK_.call(null,seq__12527__$1)) {var c__5632__auto__ = cljs.core.chunk_first.call(null,seq__12527__$1);{ var G__12617 = cljs.core.chunk_rest.call(null,seq__12527__$1); var G__12618 = c__5632__auto__; var G__12619 = cljs.core.count.call(null,c__5632__auto__); var G__12620 = 0; seq__12527 = G__12617; chunk__12528 = G__12618; count__12529 = G__12619; i__12530 = G__12620; continue; } } else {var x = cljs.core.first.call(null,seq__12527__$1);lt.plugins.elm_light.graph.get_package_json.call(null,x,cljs.core.partial.call(null,lt.plugins.elm_light.graph.add_edges_for_dep,this$,x)); { var G__12621 = cljs.core.next.call(null,seq__12527__$1); var G__12622 = null; var G__12623 = 0; var G__12624 = 0; seq__12527 = G__12621; chunk__12528 = G__12622; count__12529 = G__12623; i__12530 = G__12624; continue; } } } else {return null; } } break; } }); lt.object.behavior_STAR_.call(null,new cljs.core.Keyword("lt.plugins.elm-light.graph","on-get-transitives","lt.plugins.elm-light.graph/on-get-transitives",3355428108),new cljs.core.Keyword(null,"reaction","reaction",4441361819),lt.plugins.elm_light.graph.__BEH__on_get_transitives,new cljs.core.Keyword(null,"desc","desc",1016984067),"Elm get 1.st level transitive dependencies",new cljs.core.Keyword(null,"triggers","triggers",2516997421),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"elm.graph.get-transitives","elm.graph.get-transitives",689262209),null], null), null)); lt.plugins.elm_light.graph.get_dependency_data = (function get_dependency_data(project_path){var pkgs = cljs.core.map.call(null,(function (p1__12532_SHARP_){return cljs.core.assoc.call(null,p1__12532_SHARP_,new cljs.core.Keyword(null,"summary","summary",3451231000),new cljs.core.Keyword(null,"summary","summary",3451231000).cljs$core$IFn$_invoke$arity$1(lt.plugins.elm_light.graph.find_package_by_name.call(null,lt.plugins.elm_light.graph.dependency_graph,new cljs.core.Keyword(null,"package","package",4501809080).cljs$core$IFn$_invoke$arity$1(p1__12532_SHARP_)))); }),cljs.core.map.call(null,(function (p1__12531_SHARP_){return clojure.set.rename_keys.call(null,p1__12531_SHARP_,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"exact","exact",1110851185),new cljs.core.Keyword(null,"version","version",1365512266)], null)); }),lt.plugins.elm_light.utils.get_project_deps.call(null,project_path)));var direct = cljs.core.filter.call(null,new cljs.core.Keyword(null,"range","range",1122184367),pkgs);var rootVersion = new cljs.core.Keyword(null,"version","version",1365512266).cljs$core$IFn$_invoke$arity$1(lt.plugins.elm_light.utils.parse_json_file.call(null,lt.objs.files.join.call(null,project_path,"elm-package.json")));var root = new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"package","package",4501809080),lt.objs.files.basename.call(null,project_path),new cljs.core.Keyword(null,"version","version",1365512266),rootVersion,new cljs.core.Keyword(null,"shape","shape",1123304211),"ellipse"], null);return new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"packages","packages",1764771935),pkgs,new cljs.core.Keyword(null,"nodes","nodes",1118897699),cljs.core.conj.call(null,direct,root),new cljs.core.Keyword(null,"edges","edges",1110261192),cljs.core.map.call(null,((function (pkgs,direct,rootVersion,root){ return (function (p1__12533_SHARP_){return cljs.core.PersistentHashMap.fromArrays.call(null,[new cljs.core.Keyword(null,"a","a",1013904339),new cljs.core.Keyword(null,"b","b",1013904340),new cljs.core.Keyword(null,"label","label",1116631654)],[lt.plugins.elm_light.graph.dep_id.call(null,root),lt.plugins.elm_light.graph.dep_id.call(null,p1__12533_SHARP_),new cljs.core.Keyword(null,"range","range",1122184367).cljs$core$IFn$_invoke$arity$1(p1__12533_SHARP_)]); });})(pkgs,direct,rootVersion,root)) ,direct)], null); }); lt.plugins.elm_light.graph.__BEH__on_get_data = (function __BEH__on_get_data(this$){var data = lt.plugins.elm_light.graph.get_dependency_data.call(null,new cljs.core.Keyword(null,"project-path","project-path",1907176907).cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,this$)));lt.object.assoc_in_BANG_.call(null,this$,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"data","data",1016980252)], null),data); lt.object.raise.call(null,this$,new cljs.core.Keyword(null,"elm.graph.render","elm.graph.render",2076182000)); return lt.object.raise.call(null,this$,new cljs.core.Keyword(null,"elm.graph.get-transitives","elm.graph.get-transitives",689262209)); }); lt.object.behavior_STAR_.call(null,new cljs.core.Keyword("lt.plugins.elm-light.graph","on-get-data","lt.plugins.elm-light.graph/on-get-data",4501730286),new cljs.core.Keyword(null,"reaction","reaction",4441361819),lt.plugins.elm_light.graph.__BEH__on_get_data,new cljs.core.Keyword(null,"desc","desc",1016984067),"Elm retrieve dependency data for project",new cljs.core.Keyword(null,"triggers","triggers",2516997421),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"elm.graph.get-data","elm.graph.get-data",2085474843),null], null), null)); lt.plugins.elm_light.graph.__BEH__on_show_dependencies = (function __BEH__on_show_dependencies(this$,project_path,focus_tab_QMARK_){if(cljs.core.truth_(focus_tab_QMARK_)) {lt.objs.tabs.add_or_focus_BANG_.call(null,this$); } else {} lt.object.assoc_in_BANG_.call(null,this$,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"project-path","project-path",1907176907)], null),project_path); lt.object.assoc_in_BANG_.call(null,this$,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"data","data",1016980252)], null),cljs.core.PersistentArrayMap.EMPTY); return lt.object.raise.call(null,this$,new cljs.core.Keyword(null,"elm.graph.get-data","elm.graph.get-data",2085474843)); }); lt.object.behavior_STAR_.call(null,new cljs.core.Keyword("lt.plugins.elm-light.graph","on-show-dependencies","lt.plugins.elm-light.graph/on-show-dependencies",928753546),new cljs.core.Keyword(null,"reaction","reaction",4441361819),lt.plugins.elm_light.graph.__BEH__on_show_dependencies,new cljs.core.Keyword(null,"desc","desc",1016984067),"Elm show dependency graph",new cljs.core.Keyword(null,"triggers","triggers",2516997421),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"elm.graph.show-dependencies","elm.graph.show-dependencies",3464547203),null], null), null)); lt.plugins.elm_light.graph.__BEH__on_tab_resized = (function __BEH__on_tab_resized(_){var svg = lt.plugins.elm_light.graph.d3.select("svg");return lt.plugins.elm_light.graph.resize_graph.call(null,lt.plugins.elm_light.graph.dependency_graph,svg); }); lt.object.behavior_STAR_.call(null,new cljs.core.Keyword("lt.plugins.elm-light.graph","on-tab-resized","lt.plugins.elm-light.graph/on-tab-resized",4543261451),new cljs.core.Keyword(null,"reaction","reaction",4441361819),lt.plugins.elm_light.graph.__BEH__on_tab_resized,new cljs.core.Keyword(null,"triggers","triggers",2516997421),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"end-drag","end-drag",2692811352),null], null), null)); lt.plugins.elm_light.graph.dependency_graph = lt.object.create.call(null,new cljs.core.Keyword("lt.plugins.elm-light.graph","dependency-graph","lt.plugins.elm-light.graph/dependency-graph",2371711049)); lt.objs.command.command.call(null,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"command","command",1964298941),new cljs.core.Keyword(null,"show-elm-dep-graph","show-elm-dep-graph",2736186955),new cljs.core.Keyword(null,"desc","desc",1016984067),"Elm: Show dependency graph",new cljs.core.Keyword(null,"exec","exec",1017031683),(function (){var temp__4092__auto__ = lt.objs.editor.pool.last_active.call(null);if(cljs.core.truth_(temp__4092__auto__)) {var ed = temp__4092__auto__;var temp__4092__auto____$1 = lt.plugins.elm_light.utils.project_path.call(null,new cljs.core.Keyword(null,"path","path",1017337751).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"info","info",1017141280).cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,ed))));if(cljs.core.truth_(temp__4092__auto____$1)) {var path = temp__4092__auto____$1;return lt.object.raise.call(null,lt.plugins.elm_light.graph.dependency_graph,new cljs.core.Keyword(null,"elm.graph.show-dependencies","elm.graph.show-dependencies",3464547203),path,true); } else {return null; } } else {return null; } })], null)); } if(!lt.util.load.provided_QMARK_('lt.plugins.elm-light.packages')) { goog.provide('lt.plugins.elm_light.packages'); goog.require('cljs.core'); goog.require('clojure.walk'); goog.require('lt.objs.files'); goog.require('lt.plugins.elm_light.graph'); goog.require('lt.plugins.elm_light.autocompleter'); goog.require('lt.plugins.elm_light.utils'); goog.require('lt.util.dom'); goog.require('lt.plugins.elm_light.graph'); goog.require('quiescent'); goog.require('lt.objs.tabs'); goog.require('clojure.string'); goog.require('lt.plugins.elm_light.utils'); goog.require('lt.objs.notifos'); goog.require('quiescent.dom'); goog.require('lt.objs.browser'); goog.require('lt.objs.notifos'); goog.require('lt.util.dom'); goog.require('lt.objs.editor.pool'); goog.require('clojure.walk'); goog.require('lt.objs.command'); goog.require('lt.objs.files'); goog.require('clojure.string'); goog.require('quiescent'); goog.require('lt.objs.browser'); goog.require('quiescent.dom'); goog.require('lt.object'); goog.require('lt.object'); goog.require('lt.objs.console'); goog.require('lt.objs.tabs'); goog.require('lt.objs.console'); goog.require('lt.plugins.elm_light.autocompleter'); goog.require('lt.objs.editor.pool'); goog.require('lt.objs.command'); lt.plugins.elm_light.packages.remove_pkg = (function remove_pkg(path,pkg){var pkg_file = lt.objs.files.join.call(null,path,"elm-package.json");return cljs.core.partial.call(null,lt.objs.files.save,pkg_file).call(null,lt.plugins.elm_light.utils.pretty_json.call(null,cljs.core.update_in.call(null,lt.plugins.elm_light.utils.parse_json_file.call(null,pkg_file),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"dependencies","dependencies",1517678747)], null),((function (pkg_file){ return (function (deps){return cljs.core.dissoc.call(null,cljs.core.into.call(null,cljs.core.PersistentArrayMap.EMPTY,cljs.core.map.call(null,((function (pkg_file){ return (function (p__19754){var vec__19755 = p__19754;var k = cljs.core.nth.call(null,vec__19755,0,null);var v = cljs.core.nth.call(null,vec__19755,1,null);return new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [lt.plugins.elm_light.utils.nskw__GT_name.call(null,k),v], null); });})(pkg_file)) ,deps)),pkg); });})(pkg_file)) ))); }); lt.plugins.elm_light.packages.project_wrapper = (function project_wrapper(this$){var e__6317__auto__ = crate.core.html.call(null,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"div.elm","div.elm",2686466363),new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"div","div",1014003715),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"id","id",1013907597),"project-packages-wrapper"], null),"Retrieving project package info..."], null)], null));var seq__19762_19787 = cljs.core.seq.call(null,cljs.core.partition.call(null,2,cljs.core.PersistentVector.EMPTY));var chunk__19763_19788 = null;var count__19764_19789 = 0;var i__19765_19790 = 0;while(true){ if((i__19765_19790 < count__19764_19789)) {var vec__19766_19791 = cljs.core._nth.call(null,chunk__19763_19788,i__19765_19790);var ev__6318__auto___19792 = cljs.core.nth.call(null,vec__19766_19791,0,null);var func__6319__auto___19793 = cljs.core.nth.call(null,vec__19766_19791,1,null);lt.util.dom.on.call(null,e__6317__auto__,ev__6318__auto___19792,func__6319__auto___19793); { var G__19794 = seq__19762_19787; var G__19795 = chunk__19763_19788; var G__19796 = count__19764_19789; var G__19797 = (i__19765_19790 + 1); seq__19762_19787 = G__19794; chunk__19763_19788 = G__19795; count__19764_19789 = G__19796; i__19765_19790 = G__19797; continue; } } else {var temp__4092__auto___19798 = cljs.core.seq.call(null,seq__19762_19787);if(temp__4092__auto___19798) {var seq__19762_19799__$1 = temp__4092__auto___19798;if(cljs.core.chunked_seq_QMARK_.call(null,seq__19762_19799__$1)) {var c__5632__auto___19800 = cljs.core.chunk_first.call(null,seq__19762_19799__$1);{ var G__19801 = cljs.core.chunk_rest.call(null,seq__19762_19799__$1); var G__19802 = c__5632__auto___19800; var G__19803 = cljs.core.count.call(null,c__5632__auto___19800); var G__19804 = 0; seq__19762_19787 = G__19801; chunk__19763_19788 = G__19802; count__19764_19789 = G__19803; i__19765_19790 = G__19804; continue; } } else {var vec__19767_19805 = cljs.core.first.call(null,seq__19762_19799__$1);var ev__6318__auto___19806 = cljs.core.nth.call(null,vec__19767_19805,0,null);var func__6319__auto___19807 = cljs.core.nth.call(null,vec__19767_19805,1,null);lt.util.dom.on.call(null,e__6317__auto__,ev__6318__auto___19806,func__6319__auto___19807); { var G__19808 = cljs.core.next.call(null,seq__19762_19799__$1); var G__19809 = null; var G__19810 = 0; var G__19811 = 0; seq__19762_19787 = G__19808; chunk__19763_19788 = G__19809; count__19764_19789 = G__19810; i__19765_19790 = G__19811; continue; } } } else {} } break; } return e__6317__auto__; }); lt.object.object_STAR_.call(null,new cljs.core.Keyword("lt.plugins.elm-light.packages","elm-packages","lt.plugins.elm-light.packages/elm-packages",4552372902),new cljs.core.Keyword(null,"tags","tags",1017456523),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"elm.packages","elm.packages",3931311271),null], null), null),new cljs.core.Keyword(null,"label","label",1116631654),"Elm project packages",new cljs.core.Keyword(null,"name","name",1017277949),"Elm project packages",new cljs.core.Keyword(null,"init","init",1017141378),(function (this$){lt.plugins.elm_light.utils.fetch_all_packages.call(null,(function (p1__19768_SHARP_){return lt.object.merge_BANG_.call(null,this$,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"all-packages","all-packages",1123981067),p1__19768_SHARP_], null)); })); return lt.plugins.elm_light.packages.project_wrapper.call(null,this$); })); lt.plugins.elm_light.packages.ensure_visible = (function ensure_visible(this$){var list = lt.util.dom.$.call(null,".autocomplete-dropdown-menu",lt.object.__GT_content.call(null,this$));var elem = lt.util.dom.$.call(null,".autocomplete-active",list);if((elem.offsetTop < list.scrollTop)) {return list.scrollTop = (elem.offsetTop - 15); } else {if(((elem.offsetTop + elem.offsetHeight) > (list.scrollTop + list.clientHeight))) {return list.scrollTop = (((elem.offsetTop + elem.offsetHeight) + 15) - list.clientHeight); } else {if(new cljs.core.Keyword(null,"else","else",1017020587)) {return null; } else {return null; } } } }); lt.plugins.elm_light.packages.filter_packages = (function filter_packages(token,pkgs){return cljs.core.vec.call(null,cljs.core.filter.call(null,(function (pkg){return (clojure.string.lower_case.call(null,new cljs.core.Keyword(null,"name","name",1017277949).cljs$core$IFn$_invoke$arity$1(pkg)).indexOf(clojure.string.lower_case.call(null,token)) > -1); }),pkgs)); }); lt.plugins.elm_light.packages.idx_active = (function idx_active(items){return cljs.core.first.call(null,cljs.core.keep_indexed.call(null,(function (p1__19770_SHARP_,p2__19769_SHARP_){if(cljs.core.truth_(new cljs.core.Keyword(null,"active","active",3885920888).cljs$core$IFn$_invoke$arity$1(p2__19769_SHARP_))) {return p1__19770_SHARP_; } else {return null; } }),items)); }); lt.plugins.elm_light.packages.move_down = (function move_down(items){if(cljs.core.empty_QMARK_.call(null,items)) {return null; } else {return cljs.core.assoc_in.call(null,cljs.core.assoc_in.call(null,items,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [lt.plugins.elm_light.packages.idx_active.call(null,items),new cljs.core.Keyword(null,"active","active",3885920888)], null),false),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [(function (){var x__5198__auto__ = (cljs.core.count.call(null,items) - 1);var y__5199__auto__ = (lt.plugins.elm_light.packages.idx_active.call(null,items) + 1);return ((x__5198__auto__ < y__5199__auto__) ? x__5198__auto__ : y__5199__auto__); })(),new cljs.core.Keyword(null,"active","active",3885920888)], null),true); } }); lt.plugins.elm_light.packages.move_up = (function move_up(items){if(cljs.core.empty_QMARK_.call(null,items)) {return null; } else {return cljs.core.assoc_in.call(null,cljs.core.assoc_in.call(null,items,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [lt.plugins.elm_light.packages.idx_active.call(null,items),new cljs.core.Keyword(null,"active","active",3885920888)], null),false),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [(function (){var x__5191__auto__ = 0;var y__5192__auto__ = (lt.plugins.elm_light.packages.idx_active.call(null,items) - 1);return ((x__5191__auto__ > y__5192__auto__) ? x__5191__auto__ : y__5192__auto__); })(),new cljs.core.Keyword(null,"active","active",3885920888)], null),true); } }); lt.plugins.elm_light.packages.on_pkg_down = (function on_pkg_down(){lt.object.update_BANG_.call(null,lt.plugins.elm_light.packages.elm_packages,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"ac-packages","ac-packages",1548109226)], null),lt.plugins.elm_light.packages.move_down); lt.plugins.elm_light.packages.render.call(null,cljs.core.PersistentArrayMap.EMPTY); return lt.plugins.elm_light.packages.ensure_visible.call(null,lt.plugins.elm_light.packages.elm_packages); }); lt.plugins.elm_light.packages.on_pkg_up = (function on_pkg_up(){lt.object.update_BANG_.call(null,lt.plugins.elm_light.packages.elm_packages,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"ac-packages","ac-packages",1548109226)], null),lt.plugins.elm_light.packages.move_up); lt.plugins.elm_light.packages.render.call(null,cljs.core.PersistentArrayMap.EMPTY); return lt.plugins.elm_light.packages.ensure_visible.call(null,lt.plugins.elm_light.packages.elm_packages); }); lt.plugins.elm_light.packages.on_pkg_sel = (function on_pkg_sel(){var items_19812 = new cljs.core.Keyword(null,"ac-packages","ac-packages",1548109226).cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,lt.plugins.elm_light.packages.elm_packages));var temp__4090__auto___19813 = lt.plugins.elm_light.packages.idx_active.call(null,items_19812);if(cljs.core.truth_(temp__4090__auto___19813)) {var idx_19814 = temp__4090__auto___19813;lt.object.assoc_in_BANG_.call(null,lt.plugins.elm_light.packages.elm_packages,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"ac-versions","ac-versions",3107155800)], null),new cljs.core.Keyword(null,"versions","versions",3323818509).cljs$core$IFn$_invoke$arity$1(cljs.core.nth.call(null,items_19812,idx_19814))); lt.object.assoc_in_BANG_.call(null,lt.plugins.elm_light.packages.elm_packages,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"ac-version","ac-version",2051259807)], null),cljs.core.first.call(null,new cljs.core.Keyword(null,"versions","versions",3323818509).cljs$core$IFn$_invoke$arity$1(cljs.core.nth.call(null,items_19812,idx_19814)))); lt.object.assoc_in_BANG_.call(null,lt.plugins.elm_light.packages.elm_packages,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"ac-package","ac-package",892589325)], null),new cljs.core.Keyword(null,"name","name",1017277949).cljs$core$IFn$_invoke$arity$1(cljs.core.nth.call(null,items_19812,idx_19814))); } else {lt.object.assoc_in_BANG_.call(null,lt.plugins.elm_light.packages.elm_packages,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"ac-versions","ac-versions",3107155800)], null),cljs.core.PersistentVector.EMPTY); } lt.object.merge_BANG_.call(null,lt.plugins.elm_light.packages.elm_packages,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"ac-packages","ac-packages",1548109226),null], null)); return lt.plugins.elm_light.packages.render.call(null,cljs.core.PersistentArrayMap.EMPTY); }); lt.plugins.elm_light.packages.on_pkg_cancel = (function on_pkg_cancel(){lt.object.merge_BANG_.call(null,lt.plugins.elm_light.packages.elm_packages,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"ac-packages","ac-packages",1548109226),null,new cljs.core.Keyword(null,"ac-versions","ac-versions",3107155800),cljs.core.PersistentVector.EMPTY], null)); return lt.plugins.elm_light.packages.render.call(null,cljs.core.PersistentArrayMap.EMPTY); }); lt.plugins.elm_light.packages.on_pkg_blur = (function on_pkg_blur(){lt.object.merge_BANG_.call(null,lt.plugins.elm_light.packages.elm_packages,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"ac-packages","ac-packages",1548109226),null], null)); return lt.plugins.elm_light.packages.render.call(null,cljs.core.PersistentArrayMap.EMPTY); }); lt.plugins.elm_light.packages.on_pkg_change = (function on_pkg_change(v){var items = lt.plugins.elm_light.packages.filter_packages.call(null,v,new cljs.core.Keyword(null,"all-packages","all-packages",1123981067).cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,lt.plugins.elm_light.packages.elm_packages)));lt.object.merge_BANG_.call(null,lt.plugins.elm_light.packages.elm_packages,new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,"ac-packages","ac-packages",1548109226),items,new cljs.core.Keyword(null,"ac-package","ac-package",892589325),v,new cljs.core.Keyword(null,"ac-versions","ac-versions",3107155800),cljs.core.PersistentVector.EMPTY,new cljs.core.Keyword(null,"ac-version","ac-version",2051259807),null], null)); if(cljs.core.empty_QMARK_.call(null,items)) {} else {lt.object.assoc_in_BANG_.call(null,lt.plugins.elm_light.packages.elm_packages,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"ac-packages","ac-packages",1548109226),0,new cljs.core.Keyword(null,"active","active",3885920888)], null),true); } return lt.plugins.elm_light.packages.render.call(null,cljs.core.PersistentArrayMap.EMPTY); }); lt.plugins.elm_light.packages.pkg_install = (function pkg_install(pkg,v){var args = cljs.core.concat.call(null,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, ["install","--yes"], null),(cljs.core.truth_(pkg)?new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [pkg,v], null):cljs.core.PersistentVector.EMPTY));lt.objs.notifos.working.call(null,clojure.string.join.call(null," ",cljs.core.cons.call(null,"elm-package",args))); var proc = require("child_process").spawn("elm-package",cljs.core.clj__GT_js.call(null,args),{"cwd": new cljs.core.Keyword(null,"path","path",1017337751).cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,lt.plugins.elm_light.packages.elm_packages))});proc.on("exit",((function (proc,args){ return (function (p1__19771_SHARP_){if(cljs.core._EQ_.call(null,p1__19771_SHARP_,0)) {lt.objs.notifos.done_working.call(null); } else {lt.objs.notifos.set_msg_BANG_.call(null,"Error installing elm package",new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"class","class",1108647146),"error",new cljs.core.Keyword(null,"timeout","timeout",3994960083),5000], null)); } lt.object.raise.call(null,lt.plugins.elm_light.packages.elm_packages,new cljs.core.Keyword(null,"elm.show.project.packages","elm.show.project.packages",3385102109),new cljs.core.Keyword(null,"path","path",1017337751).cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,lt.plugins.elm_light.packages.elm_packages))); return lt.object.raise.call(null,lt.plugins.elm_light.graph.dependency_graph,new cljs.core.Keyword(null,"elm.graph.show-dependencies","elm.graph.show-dependencies",3464547203),new cljs.core.Keyword(null,"path","path",1017337751).cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,lt.plugins.elm_light.packages.elm_packages)),false); });})(proc,args)) ); proc.stdout.on("data",((function (proc,args){ return (function (p1__19772_SHARP_){return lt.objs.notifos.msg_STAR_.call(null,[cljs.core.str("Package install: "),cljs.core.str(p1__19772_SHARP_)].join(''),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"timeout","timeout",3994960083),5000], null)); });})(proc,args)) ); return proc.stderr.on("data",((function (proc,args){ return (function (p1__19773_SHARP_){return lt.objs.console.error.call(null,[cljs.core.str(p1__19773_SHARP_)].join('')); });})(proc,args)) ); }); lt.plugins.elm_light.packages.on_add_package = (function on_add_package(){return lt.plugins.elm_light.packages.pkg_install.call(null,new cljs.core.Keyword(null,"ac-package","ac-package",892589325).cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,lt.plugins.elm_light.packages.elm_packages)),new cljs.core.Keyword(null,"ac-version","ac-version",2051259807).cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,lt.plugins.elm_light.packages.elm_packages))); }); lt.plugins.elm_light.packages.on_pkg_refresh = (function on_pkg_refresh(){return lt.plugins.elm_light.packages.pkg_install.call(null,null,null); }); lt.plugins.elm_light.packages.on_remove_pkg = (function on_remove_pkg(pkg){lt.plugins.elm_light.packages.remove_pkg.call(null,new cljs.core.Keyword(null,"path","path",1017337751).cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,lt.plugins.elm_light.packages.elm_packages)),pkg); return lt.plugins.elm_light.packages.pkg_install.call(null,null,null); }); lt.plugins.elm_light.packages.on_change_version = (function on_change_version(v){lt.object.assoc_in_BANG_.call(null,lt.plugins.elm_light.packages.elm_packages,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"ac-version","ac-version",2051259807)], null),v); return lt.plugins.elm_light.packages.render.call(null,cljs.core.PersistentArrayMap.EMPTY); }); lt.plugins.elm_light.packages.on_pkg_browse = (function on_pkg_browse(pkg,version){var url = [cljs.core.str("http://package.elm-lang.org/packages/"),cljs.core.str(pkg),cljs.core.str("/"),cljs.core.str(version)].join('');var b = (function (){var or__4884__auto__ = cljs.core.first.call(null,lt.object.by_tag.call(null,new cljs.core.Keyword(null,"browser","browser",1164844698)));if(cljs.core.truth_(or__4884__auto__)) {return or__4884__auto__; } else {return lt.objs.browser.add.call(null); } })();lt.objs.tabs.add_or_focus_BANG_.call(null,b); return lt.object.raise.call(null,b,new cljs.core.Keyword(null,"navigate!","navigate!",1766726722),url); }); lt.plugins.elm_light.packages.on_show_graph = (function on_show_graph(){return lt.object.raise.call(null,lt.plugins.elm_light.graph.dependency_graph,new cljs.core.Keyword(null,"elm.graph.show-dependencies","elm.graph.show-dependencies",3464547203),new cljs.core.Keyword(null,"path","path",1017337751).cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,lt.plugins.elm_light.packages.elm_packages)),true); }); /** * */ lt.plugins.elm_light.packages.AddPackageForm = quiescent.component.call(null,(function (props){return quiescent.dom.div.call(null,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"className","className",1004015509),"add-package"], null),quiescent.dom.h3.call(null,cljs.core.PersistentArrayMap.EMPTY,"Add package:"),lt.plugins.elm_light.autocompleter.AutoComplete.call(null,new cljs.core.Keyword(null,"ac-props","ac-props",1626585975).cljs$core$IFn$_invoke$arity$1(props))); })); /** * */ lt.plugins.elm_light.packages.PackageRow = quiescent.component.call(null,(function (p__19774){var map__19775 = p__19774;var map__19775__$1 = ((cljs.core.seq_QMARK_.call(null,map__19775))?cljs.core.apply.call(null,cljs.core.hash_map,map__19775):map__19775);var on_browse = cljs.core.get.call(null,map__19775__$1,new cljs.core.Keyword(null,"on-browse","on-browse",587885994));var on_remove = cljs.core.get.call(null,map__19775__$1,new cljs.core.Keyword(null,"on-remove","on-remove",1033879460));var exact = cljs.core.get.call(null,map__19775__$1,new cljs.core.Keyword(null,"exact","exact",1110851185));var range = cljs.core.get.call(null,map__19775__$1,new cljs.core.Keyword(null,"range","range",1122184367));var package$ = cljs.core.get.call(null,map__19775__$1,new cljs.core.Keyword(null,"package","package",4501809080));return quiescent.dom.tr.call(null,cljs.core.PersistentArrayMap.EMPTY,quiescent.dom.td.call(null,cljs.core.PersistentArrayMap.EMPTY,(cljs.core.truth_((function (){var and__4872__auto__ = package$;if(cljs.core.truth_(and__4872__auto__)) {return exact; } else {return and__4872__auto__; } })())?quiescent.dom.span.call(null,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"className","className",1004015509),"link",new cljs.core.Keyword(null,"onClick","onClick",3956969051),((function (map__19775,map__19775__$1,on_browse,on_remove,exact,range,package$){ return (function (){return on_browse.call(null,package$,exact); });})(map__19775,map__19775__$1,on_browse,on_remove,exact,range,package$)) ], null),package$):package$)),quiescent.dom.td.call(null,cljs.core.PersistentArrayMap.EMPTY,range),quiescent.dom.td.call(null,cljs.core.PersistentArrayMap.EMPTY,exact),quiescent.dom.td.call(null,cljs.core.PersistentArrayMap.EMPTY,(cljs.core.truth_(range)?quiescent.dom.button.call(null,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"onClick","onClick",3956969051),((function (map__19775,map__19775__$1,on_browse,on_remove,exact,range,package$){ return (function (){return on_remove.call(null,package$); });})(map__19775,map__19775__$1,on_browse,on_remove,exact,range,package$)) ], null),"remove"):null))); })); /** * */ lt.plugins.elm_light.packages.PackageTable = quiescent.component.call(null,(function (props){return quiescent.dom.table.call(null,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"className","className",1004015509),"package-table"], null),quiescent.dom.thead.call(null,cljs.core.PersistentArrayMap.EMPTY,quiescent.dom.tr.call(null,cljs.core.PersistentArrayMap.EMPTY,quiescent.dom.th.call(null,cljs.core.PersistentArrayMap.EMPTY,"Package"),quiescent.dom.th.call(null,cljs.core.PersistentArrayMap.EMPTY,"Range"),quiescent.dom.th.call(null,cljs.core.PersistentArrayMap.EMPTY,"Exact"),quiescent.dom.th.call(null,cljs.core.PersistentArrayMap.EMPTY,""))),cljs.core.apply.call(null,quiescent.dom.tbody,cljs.core.PersistentArrayMap.EMPTY,cljs.core.map.call(null,(function (p1__19776_SHARP_){return lt.plugins.elm_light.packages.PackageRow.call(null,cljs.core.assoc.call(null,p1__19776_SHARP_,new cljs.core.Keyword(null,"on-remove","on-remove",1033879460),new cljs.core.Keyword(null,"on-remove","on-remove",1033879460).cljs$core$IFn$_invoke$arity$1(props),new cljs.core.Keyword(null,"on-browse","on-browse",587885994),new cljs.core.Keyword(null,"on-browse","on-browse",587885994).cljs$core$IFn$_invoke$arity$1(props))); }),new cljs.core.Keyword(null,"packages","packages",1764771935).cljs$core$IFn$_invoke$arity$1(props)))); })); /** * */ lt.plugins.elm_light.packages.ProjectPackages = quiescent.component.call(null,(function (props){return quiescent.dom.div.call(null,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"className","className",1004015509),"project-packages"], null),quiescent.dom.h1.call(null,cljs.core.PersistentArrayMap.EMPTY,[cljs.core.str(lt.objs.files.basename.call(null,new cljs.core.Keyword(null,"path","path",1017337751).cljs$core$IFn$_invoke$arity$1(props))),cljs.core.str(" - packages")].join('')),lt.plugins.elm_light.packages.PackageTable.call(null,props),quiescent.dom.button.call(null,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"onClick","onClick",3956969051),(function (){return new cljs.core.Keyword(null,"on-pkg-refresh","on-pkg-refresh",1806751838).cljs$core$IFn$_invoke$arity$1(props).call(null); })], null),"Refresh packages"),quiescent.dom.button.call(null,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"onClick","onClick",3956969051),(function (){return new cljs.core.Keyword(null,"on-show-graph","on-show-graph",4544855710).cljs$core$IFn$_invoke$arity$1(props).call(null); }),new cljs.core.Keyword(null,"style","style",1123684643),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"marginLeft","marginLeft",2984838727),"10px"], null)], null),"Show dependency graph"),lt.plugins.elm_light.packages.AddPackageForm.call(null,props)); })); lt.plugins.elm_light.packages.render = (function render(props){return quiescent.render.call(null,lt.plugins.elm_light.packages.ProjectPackages.call(null,cljs.core.merge.call(null,props,new cljs.core.PersistentArrayMap(null, 8, [new cljs.core.Keyword(null,"path","path",1017337751),new cljs.core.Keyword(null,"path","path",1017337751).cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,lt.plugins.elm_light.packages.elm_packages)),new cljs.core.Keyword(null,"packages","packages",1764771935),new cljs.core.Keyword(null,"packages","packages",1764771935).cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,lt.plugins.elm_light.packages.elm_packages)),new cljs.core.Keyword(null,"on-pkg-refresh","on-pkg-refresh",1806751838),lt.plugins.elm_light.packages.on_pkg_refresh,new cljs.core.Keyword(null,"on-remove","on-remove",1033879460),lt.plugins.elm_light.packages.on_remove_pkg,new cljs.core.Keyword(null,"on-browse","on-browse",587885994),lt.plugins.elm_light.packages.on_pkg_browse,new cljs.core.Keyword(null,"on-show-graph","on-show-graph",4544855710),lt.plugins.elm_light.packages.on_show_graph,new cljs.core.Keyword(null,"ac-props","ac-props",1626585975),cljs.core.PersistentHashMap.fromArrays([new cljs.core.Keyword(null,"on-add-package","on-add-package",3601701790),new cljs.core.Keyword(null,"on-select","on-select",1062468636),new cljs.core.Keyword(null,"items","items",1114430258),new cljs.core.Keyword(null,"on-cancel","on-cancel",600765850),new cljs.core.Keyword(null,"on-blur","on-blur",3936357127),new cljs.core.Keyword(null,"on-change","on-change",606853840),new cljs.core.Keyword(null,"version","version",1365512266),new cljs.core.Keyword(null,"on-change-version","on-change-version",822058203),new cljs.core.Keyword(null,"on-down","on-down",3936419650),new cljs.core.Keyword(null,"on-up","on-up",1119739067),new cljs.core.Keyword(null,"versions","versions",3323818509),new cljs.core.Keyword(null,"value","value",1125876963)],[lt.plugins.elm_light.packages.on_add_package,lt.plugins.elm_light.packages.on_pkg_sel,new cljs.core.Keyword(null,"ac-packages","ac-packages",1548109226).cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,lt.plugins.elm_light.packages.elm_packages)),lt.plugins.elm_light.packages.on_pkg_cancel,lt.plugins.elm_light.packages.on_pkg_blur,lt.plugins.elm_light.packages.on_pkg_change,new cljs.core.Keyword(null,"ac-version","ac-version",2051259807).cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,lt.plugins.elm_light.packages.elm_packages)),lt.plugins.elm_light.packages.on_change_version,lt.plugins.elm_light.packages.on_pkg_down,lt.plugins.elm_light.packages.on_pkg_up,new cljs.core.Keyword(null,"ac-versions","ac-versions",3107155800).cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,lt.plugins.elm_light.packages.elm_packages)),new cljs.core.Keyword(null,"ac-package","ac-package",892589325).cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,lt.plugins.elm_light.packages.elm_packages))]),new cljs.core.Keyword(null,"all-packages","all-packages",1123981067),new cljs.core.Keyword(null,"all-packages","all-packages",1123981067).cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,lt.plugins.elm_light.packages.elm_packages))], null))),document.getElementById("project-packages-wrapper")); }); lt.plugins.elm_light.packages.__BEH__on_close_project_packages = (function __BEH__on_close_project_packages(this$){return lt.objs.tabs.rem_BANG_.call(null,this$); }); lt.object.behavior_STAR_.call(null,new cljs.core.Keyword("lt.plugins.elm-light.packages","on-close-project-packages","lt.plugins.elm-light.packages/on-close-project-packages",801429622),new cljs.core.Keyword(null,"reaction","reaction",4441361819),lt.plugins.elm_light.packages.__BEH__on_close_project_packages,new cljs.core.Keyword(null,"triggers","triggers",2516997421),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"close","close",1108660586),null], null), null)); lt.plugins.elm_light.packages.__BEH__show_project_packages = (function __BEH__show_project_packages(this$,path){lt.objs.tabs.add_or_focus_BANG_.call(null,lt.plugins.elm_light.packages.elm_packages); lt.object.assoc_in_BANG_.call(null,lt.plugins.elm_light.packages.elm_packages,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"ac-packages","ac-packages",1548109226)], null),null); lt.object.assoc_in_BANG_.call(null,lt.plugins.elm_light.packages.elm_packages,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"ac-package","ac-package",892589325)], null),null); lt.object.assoc_in_BANG_.call(null,lt.plugins.elm_light.packages.elm_packages,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"ac-versions","ac-versions",3107155800)], null),cljs.core.PersistentVector.EMPTY); lt.object.assoc_in_BANG_.call(null,lt.plugins.elm_light.packages.elm_packages,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"ac-version","ac-version",2051259807)], null),null); lt.object.assoc_in_BANG_.call(null,lt.plugins.elm_light.packages.elm_packages,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"path","path",1017337751)], null),path); lt.object.assoc_in_BANG_.call(null,lt.plugins.elm_light.packages.elm_packages,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"packages","packages",1764771935)], null),lt.plugins.elm_light.utils.get_project_deps.call(null,path)); return lt.plugins.elm_light.packages.render.call(null,cljs.core.PersistentArrayMap.EMPTY); }); lt.object.behavior_STAR_.call(null,new cljs.core.Keyword("lt.plugins.elm-light.packages","show-project-packages","lt.plugins.elm-light.packages/show-project-packages",999583331),new cljs.core.Keyword(null,"reaction","reaction",4441361819),lt.plugins.elm_light.packages.__BEH__show_project_packages,new cljs.core.Keyword(null,"triggers","triggers",2516997421),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"elm.show.project.packages","elm.show.project.packages",3385102109),null], null), null)); lt.plugins.elm_light.packages.elm_packages = lt.object.create.call(null,new cljs.core.Keyword("lt.plugins.elm-light.packages","elm-packages","lt.plugins.elm-light.packages/elm-packages",4552372902)); lt.objs.command.command.call(null,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"command","command",1964298941),new cljs.core.Keyword(null,"show-elm-project-packages","show-elm-project-packages",3767469994),new cljs.core.Keyword(null,"desc","desc",1016984067),"Elm: Show project packages",new cljs.core.Keyword(null,"exec","exec",1017031683),(function (){var temp__4092__auto__ = lt.objs.editor.pool.last_active.call(null);if(cljs.core.truth_(temp__4092__auto__)) {var ed = temp__4092__auto__;var temp__4092__auto____$1 = lt.plugins.elm_light.utils.project_path.call(null,new cljs.core.Keyword(null,"path","path",1017337751).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"info","info",1017141280).cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,ed))));if(cljs.core.truth_(temp__4092__auto____$1)) {var path = temp__4092__auto____$1;return lt.object.raise.call(null,lt.plugins.elm_light.packages.elm_packages,new cljs.core.Keyword(null,"elm.show.project.packages","elm.show.project.packages",3385102109),path); } else {return null; } } else {return null; } })], null)); } if(!lt.util.load.provided_QMARK_('lt.plugins.elm-light.inline-doc')) { goog.provide('lt.plugins.elm_light.inline_doc'); goog.require('cljs.core'); goog.require('lt.objs.files'); goog.require('lt.plugins.elm_light.utils'); goog.require('lt.util.dom'); goog.require('lt.plugins.elm_light.utils'); goog.require('lt.objs.browser'); goog.require('lt.util.dom'); goog.require('lt.objs.files'); goog.require('lt.objs.browser'); goog.require('lt.objs.editor'); goog.require('lt.object'); goog.require('lt.object'); goog.require('lt.objs.editor'); lt.plugins.elm_light.inline_doc.marked = require(lt.objs.files.join.call(null,lt.plugins.elm_light.utils.elm_plugin_dir,"node_modules","marked")); lt.plugins.elm_light.inline_doc.doc_ui_header = (function doc_ui_header(doc){var e__6317__auto__ = crate.core.html.call(null,new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"div.inline-doc","div.inline-doc",3323486451),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"h1","h1",1013907515),new cljs.core.Keyword(null,"name","name",1017277949).cljs$core$IFn$_invoke$arity$1(doc)], null),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"h2","h2",1013907516),new cljs.core.Keyword(null,"ns","ns",1013907767).cljs$core$IFn$_invoke$arity$1(doc)], null),(cljs.core.truth_((function (){var and__4872__auto__ = new cljs.core.Keyword(null,"args","args",1016906831).cljs$core$IFn$_invoke$arity$1(doc);if(cljs.core.truth_(and__4872__auto__)) {return cljs.core.not_EQ_.call(null,new cljs.core.Keyword(null,"args","args",1016906831).cljs$core$IFn$_invoke$arity$1(doc),"nil"); } else {return and__4872__auto__; } })())?new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"h3","h3",1013907517),new cljs.core.Keyword(null,"args","args",1016906831).cljs$core$IFn$_invoke$arity$1(doc)], null):null)], null));var seq__19041_19073 = cljs.core.seq.call(null,cljs.core.partition.call(null,2,cljs.core.PersistentVector.EMPTY));var chunk__19042_19074 = null;var count__19043_19075 = 0;var i__19044_19076 = 0;while(true){ if((i__19044_19076 < count__19043_19075)) {var vec__19045_19077 = cljs.core._nth.call(null,chunk__19042_19074,i__19044_19076);var ev__6318__auto___19078 = cljs.core.nth.call(null,vec__19045_19077,0,null);var func__6319__auto___19079 = cljs.core.nth.call(null,vec__19045_19077,1,null);lt.util.dom.on.call(null,e__6317__auto__,ev__6318__auto___19078,func__6319__auto___19079); { var G__19080 = seq__19041_19073; var G__19081 = chunk__19042_19074; var G__19082 = count__19043_19075; var G__19083 = (i__19044_19076 + 1); seq__19041_19073 = G__19080; chunk__19042_19074 = G__19081; count__19043_19075 = G__19082; i__19044_19076 = G__19083; continue; } } else {var temp__4092__auto___19084 = cljs.core.seq.call(null,seq__19041_19073);if(temp__4092__auto___19084) {var seq__19041_19085__$1 = temp__4092__auto___19084;if(cljs.core.chunked_seq_QMARK_.call(null,seq__19041_19085__$1)) {var c__5632__auto___19086 = cljs.core.chunk_first.call(null,seq__19041_19085__$1);{ var G__19087 = cljs.core.chunk_rest.call(null,seq__19041_19085__$1); var G__19088 = c__5632__auto___19086; var G__19089 = cljs.core.count.call(null,c__5632__auto___19086); var G__19090 = 0; seq__19041_19073 = G__19087; chunk__19042_19074 = G__19088; count__19043_19075 = G__19089; i__19044_19076 = G__19090; continue; } } else {var vec__19046_19091 = cljs.core.first.call(null,seq__19041_19085__$1);var ev__6318__auto___19092 = cljs.core.nth.call(null,vec__19046_19091,0,null);var func__6319__auto___19093 = cljs.core.nth.call(null,vec__19046_19091,1,null);lt.util.dom.on.call(null,e__6317__auto__,ev__6318__auto___19092,func__6319__auto___19093); { var G__19094 = cljs.core.next.call(null,seq__19041_19085__$1); var G__19095 = null; var G__19096 = 0; var G__19097 = 0; seq__19041_19073 = G__19094; chunk__19042_19074 = G__19095; count__19043_19075 = G__19096; i__19044_19076 = G__19097; continue; } } } else {} } break; } return e__6317__auto__; }); lt.plugins.elm_light.inline_doc.marked_doc = (function marked_doc(md_doc){var elem = document.createElement("div");lt.util.dom.add_class.call(null,elem,"elm-inline-doc"); elem.innerHTML = lt.plugins.elm_light.inline_doc.marked.call(null,md_doc,cljs.core.clj__GT_js.call(null,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"sanitize","sanitize",3011877851),false], null))); return elem; }); lt.plugins.elm_light.inline_doc.maybe_append_marked_doc = (function maybe_append_marked_doc(elem,doc){var temp__4090__auto__ = new cljs.core.Keyword(null,"doc","doc",1014003882).cljs$core$IFn$_invoke$arity$1(doc);if(cljs.core.truth_(temp__4090__auto__)) {var md_str = temp__4090__auto__;lt.util.dom.append.call(null,elem,lt.plugins.elm_light.inline_doc.marked_doc.call(null,md_str)); return elem; } else {return elem; } }); lt.plugins.elm_light.inline_doc.highlight_code = (function highlight_code(container_elem){var seq__19051 = cljs.core.seq.call(null,lt.util.dom.$$.call(null,"pre > code",container_elem));var chunk__19052 = null;var count__19053 = 0;var i__19054 = 0;while(true){ if((i__19054 < count__19053)) {var code = cljs.core._nth.call(null,chunk__19052,i__19054);hljs.highlightBlock(code); { var G__19098 = seq__19051; var G__19099 = chunk__19052; var G__19100 = count__19053; var G__19101 = (i__19054 + 1); seq__19051 = G__19098; chunk__19052 = G__19099; count__19053 = G__19100; i__19054 = G__19101; continue; } } else {var temp__4092__auto__ = cljs.core.seq.call(null,seq__19051);if(temp__4092__auto__) {var seq__19051__$1 = temp__4092__auto__;if(cljs.core.chunked_seq_QMARK_.call(null,seq__19051__$1)) {var c__5632__auto__ = cljs.core.chunk_first.call(null,seq__19051__$1);{ var G__19102 = cljs.core.chunk_rest.call(null,seq__19051__$1); var G__19103 = c__5632__auto__; var G__19104 = cljs.core.count.call(null,c__5632__auto__); var G__19105 = 0; seq__19051 = G__19102; chunk__19052 = G__19103; count__19053 = G__19104; i__19054 = G__19105; continue; } } else {var code = cljs.core.first.call(null,seq__19051__$1);hljs.highlightBlock(code); { var G__19106 = cljs.core.next.call(null,seq__19051__$1); var G__19107 = null; var G__19108 = 0; var G__19109 = 0; seq__19051 = G__19106; chunk__19052 = G__19107; count__19053 = G__19108; i__19054 = G__19109; continue; } } } else {return null; } } break; } }); lt.plugins.elm_light.inline_doc.handle_url_click = (function handle_url_click(url){var b = (function (){var or__4884__auto__ = cljs.core.first.call(null,lt.object.by_tag.call(null,new cljs.core.Keyword(null,"browser","browser",1164844698)));if(cljs.core.truth_(or__4884__auto__)) {return or__4884__auto__; } else {return lt.objs.browser.add.call(null); } })();return lt.object.raise.call(null,b,new cljs.core.Keyword(null,"navigate!","navigate!",1766726722),url); }); lt.plugins.elm_light.inline_doc.add_click_handlers = (function add_click_handlers(elem){var seq__19059 = cljs.core.seq.call(null,lt.util.dom.$$.call(null,"a",elem));var chunk__19060 = null;var count__19061 = 0;var i__19062 = 0;while(true){ if((i__19062 < count__19061)) {var link = cljs.core._nth.call(null,chunk__19060,i__19062);lt.util.dom.on.call(null,link,"click",((function (seq__19059,chunk__19060,count__19061,i__19062,link){ return (function (){return lt.plugins.elm_light.inline_doc.handle_url_click.call(null,lt.util.dom.attr.call(null,link,new cljs.core.Keyword(null,"href","href",1017115293))); });})(seq__19059,chunk__19060,count__19061,i__19062,link)) ); { var G__19110 = seq__19059; var G__19111 = chunk__19060; var G__19112 = count__19061; var G__19113 = (i__19062 + 1); seq__19059 = G__19110; chunk__19060 = G__19111; count__19061 = G__19112; i__19062 = G__19113; continue; } } else {var temp__4092__auto__ = cljs.core.seq.call(null,seq__19059);if(temp__4092__auto__) {var seq__19059__$1 = temp__4092__auto__;if(cljs.core.chunked_seq_QMARK_.call(null,seq__19059__$1)) {var c__5632__auto__ = cljs.core.chunk_first.call(null,seq__19059__$1);{ var G__19114 = cljs.core.chunk_rest.call(null,seq__19059__$1); var G__19115 = c__5632__auto__; var G__19116 = cljs.core.count.call(null,c__5632__auto__); var G__19117 = 0; seq__19059 = G__19114; chunk__19060 = G__19115; count__19061 = G__19116; i__19062 = G__19117; continue; } } else {var link = cljs.core.first.call(null,seq__19059__$1);lt.util.dom.on.call(null,link,"click",((function (seq__19059,chunk__19060,count__19061,i__19062,link,seq__19059__$1,temp__4092__auto__){ return (function (){return lt.plugins.elm_light.inline_doc.handle_url_click.call(null,lt.util.dom.attr.call(null,link,new cljs.core.Keyword(null,"href","href",1017115293))); });})(seq__19059,chunk__19060,count__19061,i__19062,link,seq__19059__$1,temp__4092__auto__)) ); { var G__19118 = cljs.core.next.call(null,seq__19059__$1); var G__19119 = null; var G__19120 = 0; var G__19121 = 0; seq__19059 = G__19118; chunk__19060 = G__19119; count__19061 = G__19120; i__19062 = G__19121; continue; } } } else {return null; } } break; } }); lt.plugins.elm_light.inline_doc.__BEH__editor__DOT__elm__DOT__doc__DOT__show_BANG_ = (function __BEH__editor__DOT__elm__DOT__doc__DOT__show_BANG_(ed,doc){if(cljs.core.not_EQ_.call(null,new cljs.core.Keyword(null,"name","name",1017277949).cljs$core$IFn$_invoke$arity$1(doc),"")) {var doc_elem = lt.plugins.elm_light.inline_doc.maybe_append_marked_doc.call(null,lt.plugins.elm_light.inline_doc.doc_ui_header.call(null,doc),doc);lt.plugins.elm_light.inline_doc.inline_doc.call(null,ed,doc_elem,new cljs.core.Keyword(null,"loc","loc",1014011570).cljs$core$IFn$_invoke$arity$1(doc)); lt.plugins.elm_light.inline_doc.highlight_code.call(null,doc_elem); return lt.plugins.elm_light.inline_doc.add_click_handlers.call(null,doc_elem); } else {return null; } }); lt.object.behavior_STAR_.call(null,new cljs.core.Keyword("lt.plugins.elm-light.inline-doc","editor.elm.doc.show!","lt.plugins.elm-light.inline-doc/editor.elm.doc.show!",1579757949),new cljs.core.Keyword(null,"reaction","reaction",4441361819),lt.plugins.elm_light.inline_doc.__BEH__editor__DOT__elm__DOT__doc__DOT__show_BANG_,new cljs.core.Keyword(null,"triggers","triggers",2516997421),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"editor.elm.doc.show!","editor.elm.doc.show!",3977559543),null], null), null)); lt.plugins.elm_light.inline_doc.inline_doc = (function inline_doc(this$,doc_elem,loc){var ed = new cljs.core.Keyword(null,"ed","ed",1013907473).cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,this$));var type = new cljs.core.Keyword(null,"underline","underline",4281907774);var line = lt.objs.editor.line_handle.call(null,ed,new cljs.core.Keyword(null,"line","line",1017226086).cljs$core$IFn$_invoke$arity$1(loc));var res_obj = lt.object.create.call(null,new cljs.core.Keyword("lt.objs.eval","underline-result","lt.objs.eval/underline-result",1485297066),new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,"ed","ed",1013907473),this$,new cljs.core.Keyword(null,"class","class",1108647146),"underline",new cljs.core.Keyword(null,"opts","opts",1017322386),cljs.core.PersistentArrayMap.EMPTY,new cljs.core.Keyword(null,"result","result",4374444943),doc_elem,new cljs.core.Keyword(null,"loc","loc",1014011570),loc,new cljs.core.Keyword(null,"line","line",1017226086),line], null));lt.object.add_tags.call(null,res_obj,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"inline.doc","inline.doc",1790840789)], null)); lt.object.update_BANG_.call(null,this$,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"widgets","widgets",2354242081)], null),cljs.core.assoc,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [line,new cljs.core.Keyword(null,"underline","underline",4281907774)], null),res_obj); return res_obj; }); } if(!lt.util.load.provided_QMARK_('lt.plugins.elm-light.autocompleter.core')) { goog.provide('lt.plugins.elm_light.autocompleter.core'); goog.require('cljs.core'); goog.require('cljs.core.async'); goog.require('lt.util.js'); goog.require('lt.util.js'); goog.require('lt.util.dom'); goog.require('cljs.core.async'); goog.require('lt.objs.context'); goog.require('lt.objs.context'); goog.require('lt.util.dom'); goog.require('lt.objs.editor.pool'); goog.require('lt.objs.command'); goog.require('lt.objs.keyboard'); goog.require('lt.objs.editor'); goog.require('lt.object'); goog.require('lt.object'); goog.require('lt.objs.editor'); goog.require('cljs.core.async'); goog.require('lt.objs.editor.pool'); goog.require('lt.objs.command'); goog.require('lt.objs.keyboard'); lt.plugins.elm_light.autocompleter.core.curr_time = (function curr_time(){return (new Date()).getTime(); }); lt.plugins.elm_light.autocompleter.core.elapsed = (function elapsed(start){return [cljs.core.str((lt.plugins.elm_light.autocompleter.core.curr_time.call(null) - start)),cljs.core.str(" ms")].join(''); }); lt.plugins.elm_light.autocompleter.core.default_options = new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,"async","async",1107031534),true,new cljs.core.Keyword(null,"completeSingle","completeSingle",2100037203),false,new cljs.core.Keyword(null,"supportsSelection","supportsSelection",3475218138),true,new cljs.core.Keyword(null,"closeOnUnfocus","closeOnUnfocus",2215570266),true,new cljs.core.Keyword(null,"customKeys","customKeys",3726901367),new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,"Up","Up",1013906989),(function (p1__20624_SHARP_,p2__20623_SHARP_){return p2__20623_SHARP_.moveFocus.call(null,-1); }),new cljs.core.Keyword(null,"Down","Down",1016040500),(function (p1__20626_SHARP_,p2__20625_SHARP_){return p2__20625_SHARP_.moveFocus.call(null,1); }),new cljs.core.Keyword(null,"Enter","Enter",1081018922),(function (a,b){return b.pick(); }),new cljs.core.Keyword(null,"Tab","Tab",1013988071),(function (a,b){return b.pick(); }),new cljs.core.Keyword(null,"Esc","Esc",1013974215),(function (p1__20628_SHARP_,p2__20627_SHARP_){return p2__20627_SHARP_.close.call(null); })], null)], null); lt.plugins.elm_light.autocompleter.core.distinct_completions = (function distinct_completions(hints){var seen = {};return cljs.core.filter.call(null,((function (seen){ return (function (hint){if((seen[[cljs.core.str(new cljs.core.Keyword(null,"moduleName","moduleName",4438520457).cljs$core$IFn$_invoke$arity$1(hint)),cljs.core.str("_"),cljs.core.str(new cljs.core.Keyword(null,"text","text",1017460895).cljs$core$IFn$_invoke$arity$1(hint))].join('')]) === true) {return false; } else {return (seen[[cljs.core.str(new cljs.core.Keyword(null,"moduleName","moduleName",4438520457).cljs$core$IFn$_invoke$arity$1(hint)),cljs.core.str("_"),cljs.core.str(new cljs.core.Keyword(null,"text","text",1017460895).cljs$core$IFn$_invoke$arity$1(hint))].join('')] = true); } });})(seen)) ,hints); }); /** * Prepare found hints for display through CM showHint */ lt.plugins.elm_light.autocompleter.core.process_hint_results = (function process_hint_results(hints){if(cljs.core.seq.call(null,hints)) {return cljs.core.clj__GT_js.call(null,(function (p1__20630_SHARP_){var fst = cljs.core.first.call(null,new cljs.core.Keyword(null,"list","list",1017226256).cljs$core$IFn$_invoke$arity$1(p1__20630_SHARP_));return cljs.core.assoc.call(null,p1__20630_SHARP_,new cljs.core.Keyword(null,"from","from",1017056028),new cljs.core.Keyword(null,"from","from",1017056028).cljs$core$IFn$_invoke$arity$1(fst),new cljs.core.Keyword(null,"to","to",1013907949),new cljs.core.Keyword(null,"to","to",1013907949).cljs$core$IFn$_invoke$arity$1(fst)); }).call(null,cljs.core.PersistentHashMap.fromArrays.call(null,[new cljs.core.Keyword(null,"list","list",1017226256)],[cljs.core.take.call(null,25,lt.plugins.elm_light.autocompleter.core.distinct_completions.call(null,cljs.core.filter.call(null,(function (p1__20629_SHARP_){return (new cljs.core.Keyword(null,"displayText","displayText",2728236161).cljs$core$IFn$_invoke$arity$1(p1__20629_SHARP_).length < 1000); }),hints)))]))); } else {return null; } }); /** * Listen for hint results from all given channels * Will raise a behavior to show results when all channels have delivered a result * or alternatively the specified timeout has elapsed */ lt.plugins.elm_light.autocompleter.core.listen_for_hint_results = (function listen_for_hint_results(ed,channels,hinter_ch){var t = cljs.core.async.timeout.call(null,500);var c__13951__auto__ = cljs.core.async.chan.call(null,1);cljs.core.async.impl.dispatch.run.call(null,((function (c__13951__auto__,t){ return (function (){var f__13952__auto__ = (function (){var switch__13881__auto__ = ((function (c__13951__auto__,t){ return (function (state_20716){var state_val_20717 = (state_20716[1]);if((state_val_20717 === 1)) {var inst_20685 = cljs.core.conj.call(null,channels,t);var inst_20686 = cljs.core.PersistentVector.EMPTY;var inst_20687 = inst_20685;var state_20716__$1 = (function (){var statearr_20718 = state_20716;(statearr_20718[7] = inst_20686); (statearr_20718[8] = inst_20687); return statearr_20718; })();var statearr_20719_20777 = state_20716__$1;(statearr_20719_20777[2] = null); (statearr_20719_20777[1] = 2); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_20717 === 2)) {var inst_20687 = (state_20716[8]);var inst_20689 = cljs.core.count.call(null,inst_20687);var inst_20690 = cljs.core._EQ_.call(null,1,inst_20689);var state_20716__$1 = state_20716;if(inst_20690) {var statearr_20720_20778 = state_20716__$1;(statearr_20720_20778[1] = 4); } else {var statearr_20721_20779 = state_20716__$1;(statearr_20721_20779[1] = 5); } return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_20717 === 3)) {var inst_20714 = (state_20716[2]);var state_20716__$1 = state_20716;return cljs.core.async.impl.ioc_helpers.return_chan.call(null,state_20716__$1,inst_20714); } else {if((state_val_20717 === 4)) {var inst_20686 = (state_20716[7]);var inst_20692 = cljs.core.async.put_BANG_.call(null,hinter_ch,inst_20686);var state_20716__$1 = state_20716;var statearr_20722_20780 = state_20716__$1;(statearr_20722_20780[2] = inst_20692); (statearr_20722_20780[1] = 6); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_20717 === 5)) {var inst_20687 = (state_20716[8]);var state_20716__$1 = state_20716;return cljs.core.async.impl.ioc_helpers.ioc_alts_BANG_.call(null,state_20716__$1,7,inst_20687); } else {if((state_val_20717 === 6)) {var inst_20712 = (state_20716[2]);var state_20716__$1 = state_20716;var statearr_20723_20781 = state_20716__$1;(statearr_20723_20781[2] = inst_20712); (statearr_20723_20781[1] = 3); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_20717 === 7)) {var inst_20698 = (state_20716[9]);var inst_20696 = (state_20716[2]);var inst_20697 = cljs.core.nth.call(null,inst_20696,0,null);var inst_20698__$1 = cljs.core.nth.call(null,inst_20696,1,null);var inst_20699 = (inst_20698__$1 === t);var state_20716__$1 = (function (){var statearr_20724 = state_20716;(statearr_20724[10] = inst_20697); (statearr_20724[9] = inst_20698__$1); return statearr_20724; })();if(cljs.core.truth_(inst_20699)) {var statearr_20725_20782 = state_20716__$1;(statearr_20725_20782[1] = 8); } else {var statearr_20726_20783 = state_20716__$1;(statearr_20726_20783[1] = 9); } return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_20717 === 8)) {var inst_20686 = (state_20716[7]);var inst_20701 = cljs.core.println.call(null,"WARNING: Timeout waiting for hinter provider channel results");var inst_20702 = cljs.core.async.put_BANG_.call(null,hinter_ch,inst_20686);var state_20716__$1 = (function (){var statearr_20727 = state_20716;(statearr_20727[11] = inst_20701); return statearr_20727; })();var statearr_20728_20784 = state_20716__$1;(statearr_20728_20784[2] = inst_20702); (statearr_20728_20784[1] = 10); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_20717 === 9)) {var inst_20686 = (state_20716[7]);var inst_20687 = (state_20716[8]);var inst_20697 = (state_20716[10]);var inst_20698 = (state_20716[9]);var inst_20704 = cljs.core.into.call(null,inst_20686,inst_20697);var inst_20705 = [inst_20698];var inst_20706 = cljs.core.PersistentHashSet.fromArray.call(null,inst_20705,true);var inst_20707 = cljs.core.remove.call(null,inst_20706,inst_20687);var inst_20686__$1 = inst_20704;var inst_20687__$1 = inst_20707;var state_20716__$1 = (function (){var statearr_20729 = state_20716;(statearr_20729[7] = inst_20686__$1); (statearr_20729[8] = inst_20687__$1); return statearr_20729; })();var statearr_20730_20785 = state_20716__$1;(statearr_20730_20785[2] = null); (statearr_20730_20785[1] = 2); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if((state_val_20717 === 10)) {var inst_20710 = (state_20716[2]);var state_20716__$1 = state_20716;var statearr_20731_20786 = state_20716__$1;(statearr_20731_20786[2] = inst_20710); (statearr_20731_20786[1] = 6); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {return null; } } } } } } } } } } });})(c__13951__auto__,t)) ;return ((function (switch__13881__auto__,c__13951__auto__,t){ return (function() { var state_machine__13882__auto__ = null; var state_machine__13882__auto____0 = (function (){var statearr_20735 = [null,null,null,null,null,null,null,null,null,null,null,null];(statearr_20735[0] = state_machine__13882__auto__); (statearr_20735[1] = 1); return statearr_20735; }); var state_machine__13882__auto____1 = (function (state_20716){while(true){ var ret_value__13883__auto__ = (function (){try{while(true){ var result__13884__auto__ = switch__13881__auto__.call(null,state_20716);if(cljs.core.keyword_identical_QMARK_.call(null,result__13884__auto__,new cljs.core.Keyword(null,"recur","recur",1122293407))) {{ continue; } } else {return result__13884__auto__; } break; } }catch (e20736){if((e20736 instanceof Object)) {var ex__13885__auto__ = e20736;var statearr_20737_20787 = state_20716;(statearr_20737_20787[5] = ex__13885__auto__); cljs.core.async.impl.ioc_helpers.process_exception.call(null,state_20716); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if(new cljs.core.Keyword(null,"else","else",1017020587)) {throw e20736; } else {return null; } } }})();if(cljs.core.keyword_identical_QMARK_.call(null,ret_value__13883__auto__,new cljs.core.Keyword(null,"recur","recur",1122293407))) {{ var G__20788 = state_20716; state_20716 = G__20788; continue; } } else {return ret_value__13883__auto__; } break; } }); state_machine__13882__auto__ = function(state_20716){ switch(arguments.length){ case 0: return state_machine__13882__auto____0.call(this); case 1: return state_machine__13882__auto____1.call(this,state_20716); } throw(new Error('Invalid arity: ' + arguments.length)); }; state_machine__13882__auto__.cljs$core$IFn$_invoke$arity$0 = state_machine__13882__auto____0; state_machine__13882__auto__.cljs$core$IFn$_invoke$arity$1 = state_machine__13882__auto____1; return state_machine__13882__auto__; })() ;})(switch__13881__auto__,c__13951__auto__,t)) })();var state__13953__auto__ = (function (){var statearr_20738 = f__13952__auto__.call(null);(statearr_20738[cljs.core.async.impl.ioc_helpers.USER_START_IDX] = c__13951__auto__); return statearr_20738; })();return cljs.core.async.impl.ioc_helpers.run_state_machine_wrapped.call(null,state__13953__auto__); });})(c__13951__auto__,t)) ); return c__13951__auto__; }); lt.plugins.elm_light.autocompleter.core.completion_active_QMARK_ = (function completion_active_QMARK_(ed){return lt.objs.editor.__GT_cm_ed.call(null,ed).state.completionActive; }); lt.plugins.elm_light.autocompleter.core.maybe_close_hinter = (function maybe_close_hinter(ed){var temp__4092__auto__ = lt.plugins.elm_light.autocompleter.core.completion_active_QMARK_.call(null,ed);if(cljs.core.truth_(temp__4092__auto__)) {var state = temp__4092__auto__;return state.close(); } else {return null; } }); lt.plugins.elm_light.autocompleter.core.on_line_change = (function on_line_change(line,ch){var ed = lt.objs.editor.pool.last_active.call(null);if(cljs.core.not.call(null,lt.plugins.elm_light.autocompleter.core.completion_active_QMARK_.call(null,ed))) {return CodeMirror.off(line,"change",on_line_change); } else {if(cljs.core._EQ_.call(null,"+delete",ch.origin)) {return lt.object.raise.call(null,ed,new cljs.core.Keyword(null,"start-hinting","start-hinting",3115741442)); } else {return null; } } }); /** * Creates a channel for writing results that are to be popped up with the hinter ui * Displays hint results async by calling the showHint plugin callback when * results are received on the channel */ lt.plugins.elm_light.autocompleter.core.init_show_hint_ch = (function init_show_hint_ch(ed){var ch = cljs.core.async.chan.call(null);CodeMirror.showHint(lt.objs.editor.__GT_cm_ed.call(null,ed),((function (ch){ return (function (_,cb){var chs = lt.object.raise_reduce.call(null,ed,new cljs.core.Keyword(null,"init-hints","init-hints",4468593473),cljs.core.PersistentVector.EMPTY);if(cljs.core.seq.call(null,chs)) {var c__13951__auto___20789 = cljs.core.async.chan.call(null,1);cljs.core.async.impl.dispatch.run.call(null,((function (c__13951__auto___20789,chs,ch){ return (function (){var f__13952__auto__ = (function (){var switch__13881__auto__ = ((function (c__13951__auto___20789,chs,ch){ return (function (state_20758){var state_val_20759 = (state_20758[1]);if((state_val_20759 === 2)) {var inst_20754 = (state_20758[2]);var inst_20755 = lt.plugins.elm_light.autocompleter.core.process_hint_results.call(null,inst_20754);var inst_20756 = cb.call(null,inst_20755);var state_20758__$1 = state_20758;return cljs.core.async.impl.ioc_helpers.return_chan.call(null,state_20758__$1,inst_20756); } else {if((state_val_20759 === 1)) {var state_20758__$1 = state_20758;return cljs.core.async.impl.ioc_helpers.take_BANG_.call(null,state_20758__$1,2,ch); } else {return null; } } });})(c__13951__auto___20789,chs,ch)) ;return ((function (switch__13881__auto__,c__13951__auto___20789,chs,ch){ return (function() { var state_machine__13882__auto__ = null; var state_machine__13882__auto____0 = (function (){var statearr_20763 = [null,null,null,null,null,null,null];(statearr_20763[0] = state_machine__13882__auto__); (statearr_20763[1] = 1); return statearr_20763; }); var state_machine__13882__auto____1 = (function (state_20758){while(true){ var ret_value__13883__auto__ = (function (){try{while(true){ var result__13884__auto__ = switch__13881__auto__.call(null,state_20758);if(cljs.core.keyword_identical_QMARK_.call(null,result__13884__auto__,new cljs.core.Keyword(null,"recur","recur",1122293407))) {{ continue; } } else {return result__13884__auto__; } break; } }catch (e20764){if((e20764 instanceof Object)) {var ex__13885__auto__ = e20764;var statearr_20765_20790 = state_20758;(statearr_20765_20790[5] = ex__13885__auto__); cljs.core.async.impl.ioc_helpers.process_exception.call(null,state_20758); return new cljs.core.Keyword(null,"recur","recur",1122293407); } else {if(new cljs.core.Keyword(null,"else","else",1017020587)) {throw e20764; } else {return null; } } }})();if(cljs.core.keyword_identical_QMARK_.call(null,ret_value__13883__auto__,new cljs.core.Keyword(null,"recur","recur",1122293407))) {{ var G__20791 = state_20758; state_20758 = G__20791; continue; } } else {return ret_value__13883__auto__; } break; } }); state_machine__13882__auto__ = function(state_20758){ switch(arguments.length){ case 0: return state_machine__13882__auto____0.call(this); case 1: return state_machine__13882__auto____1.call(this,state_20758); } throw(new Error('Invalid arity: ' + arguments.length)); }; state_machine__13882__auto__.cljs$core$IFn$_invoke$arity$0 = state_machine__13882__auto____0; state_machine__13882__auto__.cljs$core$IFn$_invoke$arity$1 = state_machine__13882__auto____1; return state_machine__13882__auto__; })() ;})(switch__13881__auto__,c__13951__auto___20789,chs,ch)) })();var state__13953__auto__ = (function (){var statearr_20766 = f__13952__auto__.call(null);(statearr_20766[cljs.core.async.impl.ioc_helpers.USER_START_IDX] = c__13951__auto___20789); return statearr_20766; })();return cljs.core.async.impl.ioc_helpers.run_state_machine_wrapped.call(null,state__13953__auto__); });})(c__13951__auto___20789,chs,ch)) ); return lt.plugins.elm_light.autocompleter.core.listen_for_hint_results.call(null,ed,chs,ch); } else {return null; } });})(ch)) ,cljs.core.clj__GT_js.call(null,lt.plugins.elm_light.autocompleter.core.default_options)); return ch; }); lt.plugins.elm_light.autocompleter.core.__BEH__start_hinting = (function __BEH__start_hinting(ed){var pos = lt.objs.editor.__GT_cursor.call(null,ed);var line_handle = lt.objs.editor.line_handle.call(null,ed,new cljs.core.Keyword(null,"line","line",1017226086).cljs$core$IFn$_invoke$arity$1(pos));if(cljs.core.truth_(lt.plugins.elm_light.autocompleter.core.completion_active_QMARK_.call(null,ed))) {return null; } else {return lt.plugins.elm_light.autocompleter.core.init_show_hint_ch.call(null,ed); } }); lt.object.behavior_STAR_.call(null,new cljs.core.Keyword("lt.plugins.elm-light.autocompleter.core","start-hinting","lt.plugins.elm-light.autocompleter.core/start-hinting",540241633),new cljs.core.Keyword(null,"reaction","reaction",4441361819),lt.plugins.elm_light.autocompleter.core.__BEH__start_hinting,new cljs.core.Keyword(null,"desc","desc",1016984067),"Autocompleter: Start hinting",new cljs.core.Keyword(null,"triggers","triggers",2516997421),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"start-hinting","start-hinting",3115741442),null], null), null)); lt.plugins.elm_light.autocompleter.core.__BEH__auto_show_on_input = (function __BEH__auto_show_on_input(ed,_,ch){return lt.object.raise.call(null,ed,new cljs.core.Keyword(null,"start-hinting","start-hinting",3115741442)); }); lt.object.behavior_STAR_.call(null,new cljs.core.Keyword("lt.plugins.elm-light.autocompleter.core","auto-show-on-input","lt.plugins.elm-light.autocompleter.core/auto-show-on-input",3970467043),new cljs.core.Keyword(null,"reaction","reaction",4441361819),lt.plugins.elm_light.autocompleter.core.__BEH__auto_show_on_input,new cljs.core.Keyword(null,"desc","desc",1016984067),"Autocompleter: Show on change",new cljs.core.Keyword(null,"triggers","triggers",2516997421),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"input","input",1114262332),null], null), null),new cljs.core.Keyword(null,"debounce","debounce",1556599227),10); } if(!lt.util.load.provided_QMARK_('lt.plugins.elm-light.selection')) { goog.provide('lt.plugins.elm_light.selection'); goog.require('cljs.core'); goog.require('lt.objs.editor'); goog.require('lt.objs.editor'); lt.plugins.elm_light.selection.indented_QMARK_ = (function indented_QMARK_(s){return (cljs.core.count.call(null,cljs.core.re_find.call(null,/\s*/,s)) > 0); }); lt.plugins.elm_light.selection.comment_line_QMARK_ = (function comment_line_QMARK_(ed,l){return cljs.core._EQ_.call(null,"comment",new cljs.core.Keyword(null,"type","type",1017479852).cljs$core$IFn$_invoke$arity$1(lt.objs.editor.__GT_token.call(null,ed,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"line","line",1017226086),l,new cljs.core.Keyword(null,"ch","ch",1013907415),1], null)))); }); lt.plugins.elm_light.selection.no_content_line_QMARK_ = (function no_content_line_QMARK_(s){return (!((s == null))) && (cljs.core._EQ_.call(null,0,cljs.core.count.call(null,s.trim()))); }); lt.plugins.elm_light.selection.top_level_line_QMARK_ = (function top_level_line_QMARK_(ed,l){var line_str = lt.objs.editor.line.call(null,ed,l);return (!(lt.plugins.elm_light.selection.indented_QMARK_.call(null,line_str))) && (!(lt.plugins.elm_light.selection.no_content_line_QMARK_.call(null,line_str))) && (!(lt.plugins.elm_light.selection.comment_line_QMARK_.call(null,ed,l))); }); lt.plugins.elm_light.selection.get_top_level_line_back = (function get_top_level_line_back(ed,pos){var line = new cljs.core.Keyword(null,"line","line",1017226086).cljs$core$IFn$_invoke$arity$1(pos);while(true){ if(lt.plugins.elm_light.selection.top_level_line_QMARK_.call(null,ed,line)) {return line; } else {if(cljs.core._EQ_.call(null,0,line)) {return null; } else {if(new cljs.core.Keyword(null,"else","else",1017020587)) {{ var G__19823 = (line - 1); line = G__19823; continue; } } else {return null; } } } break; } }); lt.plugins.elm_light.selection.get_top_level_line_down = (function get_top_level_line_down(ed,start_line){var last_line = lt.objs.editor.last_line.call(null,ed);var line = start_line;while(true){ if(lt.plugins.elm_light.selection.top_level_line_QMARK_.call(null,ed,line)) {return line; } else {if(cljs.core._EQ_.call(null,line,last_line)) {return null; } else {if(new cljs.core.Keyword(null,"else","else",1017020587)) {{ var G__19824 = (line + 1); line = G__19824; continue; } } else {return null; } } } break; } }); lt.plugins.elm_light.selection.maybe_backup = (function maybe_backup(ed,l){var line = l;while(true){ if((lt.plugins.elm_light.selection.no_content_line_QMARK_.call(null,lt.objs.editor.line.call(null,ed,line))) || (lt.plugins.elm_light.selection.comment_line_QMARK_.call(null,ed,line))) {{ var G__19825 = (line - 1); line = G__19825; continue; } } else {return line; } break; } }); lt.plugins.elm_light.selection.get_top_level_expr = (function get_top_level_expr(ed,pos){var temp__4092__auto__ = lt.plugins.elm_light.selection.get_top_level_line_back.call(null,ed,pos);if(cljs.core.truth_(temp__4092__auto__)) {var start_line = temp__4092__auto__;var last_line = lt.objs.editor.last_line.call(null,ed);var end_line = lt.plugins.elm_light.selection.maybe_backup.call(null,ed,((cljs.core._EQ_.call(null,last_line,start_line))?start_line:(function (){var temp__4090__auto__ = lt.plugins.elm_light.selection.get_top_level_line_down.call(null,ed,(start_line + 1));if(cljs.core.truth_(temp__4090__auto__)) {var l = temp__4090__auto__;return (l - 1); } else {return last_line; } })()));return new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"from","from",1017056028),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"line","line",1017226086),start_line,new cljs.core.Keyword(null,"ch","ch",1013907415),0], null),new cljs.core.Keyword(null,"to","to",1013907949),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"line","line",1017226086),end_line,new cljs.core.Keyword(null,"ch","ch",1013907415),lt.objs.editor.line_length.call(null,ed,end_line)], null)], null); } else {return null; } }); } if(!lt.util.load.provided_QMARK_('lt.plugins.elm-light.clients')) { goog.provide('lt.plugins.elm_light.clients'); goog.require('cljs.core'); goog.require('lt.objs.files'); goog.require('lt.plugins.elm_light.utils'); goog.require('lt.objs.clients'); goog.require('lt.objs.platform'); goog.require('clojure.string'); goog.require('lt.plugins.elm_light.utils'); goog.require('lt.objs.popup'); goog.require('lt.objs.dialogs'); goog.require('lt.objs.popup'); goog.require('lt.objs.notifos'); goog.require('lt.objs.proc'); goog.require('lt.objs.notifos'); goog.require('lt.objs.editor.pool'); goog.require('lt.objs.platform'); goog.require('lt.objs.files'); goog.require('lt.objs.sidebar.clients'); goog.require('lt.objs.eval'); goog.require('clojure.string'); goog.require('lt.object'); goog.require('lt.object'); goog.require('lt.objs.dialogs'); goog.require('lt.objs.console'); goog.require('lt.objs.proc'); goog.require('lt.objs.console'); goog.require('lt.plugins.elm_light.elm_ast'); goog.require('lt.plugins.elm_light.elm_ast'); goog.require('lt.objs.eval'); goog.require('lt.objs.clients'); goog.require('lt.objs.editor.pool'); goog.require('lt.objs.sidebar.clients'); lt.plugins.elm_light.clients.cp = require("child_process"); lt.plugins.elm_light.clients.os = require("os"); lt.plugins.elm_light.clients.elm_client_path = lt.objs.files.join.call(null,lt.plugins.elm_light.utils.elm_plugin_dir,"node/elm-client.js"); lt.plugins.elm_light.clients.elm_node_path = lt.objs.files.join.call(null,lt.plugins.elm_light.utils.elm_plugin_dir,"node_modules"); lt.plugins.elm_light.clients.shelljs = require(lt.objs.files.join.call(null,lt.plugins.elm_light.clients.elm_node_path,"shelljs")); lt.plugins.elm_light.clients.harbor = require(lt.objs.files.join.call(null,lt.plugins.elm_light.clients.elm_node_path,"harbor")).call(null,3000,4000); lt.plugins.elm_light.clients.claim_reactor_port = (function claim_reactor_port(path,cb){return lt.plugins.elm_light.clients.harbor.claim(path,cb); }); lt.plugins.elm_light.clients.release_reactor_port = (function release_reactor_port(path){return lt.plugins.elm_light.clients.harbor.release(path); }); lt.plugins.elm_light.clients.on_exit = (function on_exit(client){lt.plugins.elm_light.elm_ast.delete_project_ast_BANG_.call(null,new cljs.core.Keyword(null,"dir","dir",1014003711).cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,client))); var seq__12133_12174 = cljs.core.seq.call(null,lt.objs.editor.pool.containing_path.call(null,new cljs.core.Keyword(null,"dir","dir",1014003711).cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,client))));var chunk__12134_12175 = null;var count__12135_12176 = 0;var i__12136_12177 = 0;while(true){ if((i__12136_12177 < count__12135_12176)) {var ed_12178 = cljs.core._nth.call(null,chunk__12134_12175,i__12136_12177);lt.object.raise.call(null,ed_12178,new cljs.core.Keyword(null,"project-disconnected","project-disconnected",2085293025)); { var G__12179 = seq__12133_12174; var G__12180 = chunk__12134_12175; var G__12181 = count__12135_12176; var G__12182 = (i__12136_12177 + 1); seq__12133_12174 = G__12179; chunk__12134_12175 = G__12180; count__12135_12176 = G__12181; i__12136_12177 = G__12182; continue; } } else {var temp__4092__auto___12183 = cljs.core.seq.call(null,seq__12133_12174);if(temp__4092__auto___12183) {var seq__12133_12184__$1 = temp__4092__auto___12183;if(cljs.core.chunked_seq_QMARK_.call(null,seq__12133_12184__$1)) {var c__5632__auto___12185 = cljs.core.chunk_first.call(null,seq__12133_12184__$1);{ var G__12186 = cljs.core.chunk_rest.call(null,seq__12133_12184__$1); var G__12187 = c__5632__auto___12185; var G__12188 = cljs.core.count.call(null,c__5632__auto___12185); var G__12189 = 0; seq__12133_12174 = G__12186; chunk__12134_12175 = G__12187; count__12135_12176 = G__12188; i__12136_12177 = G__12189; continue; } } else {var ed_12190 = cljs.core.first.call(null,seq__12133_12184__$1);lt.object.raise.call(null,ed_12190,new cljs.core.Keyword(null,"project-disconnected","project-disconnected",2085293025)); { var G__12191 = cljs.core.next.call(null,seq__12133_12184__$1); var G__12192 = null; var G__12193 = 0; var G__12194 = 0; seq__12133_12174 = G__12191; chunk__12134_12175 = G__12192; count__12135_12176 = G__12193; i__12136_12177 = G__12194; continue; } } } else {} } break; } lt.plugins.elm_light.clients.release_reactor_port.call(null,new cljs.core.Keyword(null,"dir","dir",1014003711).cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,client))); return lt.objs.clients.rem_BANG_.call(null,client); }); lt.plugins.elm_light.clients.on_elm_message = (function on_elm_message(client,data){var msg = lt.plugins.elm_light.utils.mod_js__GT_clj.call(null,data,new cljs.core.Keyword(null,"keywordize-keys","keywordize-keys",4191781672),true);var logTime = (new Date());var logPrefix = [cljs.core.str(logTime.getSeconds()),cljs.core.str(":"),cljs.core.str(logTime.getMilliseconds()),cljs.core.str(" >>")].join('');if(cljs.core._EQ_.call(null,cljs.core.second.call(null,msg),"elm.client.connected")) {lt.objs.notifos.done_working.call(null,[cljs.core.str("Project connected: "),cljs.core.str(new cljs.core.Keyword(null,"dir","dir",1014003711).cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,client)))].join('')); lt.object.raise.call(null,client,new cljs.core.Keyword(null,"connect","connect",1965255772)); lt.object.raise.call(null,lt.objs.clients.clients,new cljs.core.Keyword(null,"connect","connect",1965255772),client); var seq__12143 = cljs.core.seq.call(null,lt.objs.editor.pool.containing_path.call(null,new cljs.core.Keyword(null,"dir","dir",1014003711).cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,client))));var chunk__12144 = null;var count__12145 = 0;var i__12146 = 0;while(true){ if((i__12146 < count__12145)) {var ed = cljs.core._nth.call(null,chunk__12144,i__12146);lt.object.raise.call(null,ed,new cljs.core.Keyword(null,"project-connected","project-connected",3474311367)); { var G__12195 = seq__12143; var G__12196 = chunk__12144; var G__12197 = count__12145; var G__12198 = (i__12146 + 1); seq__12143 = G__12195; chunk__12144 = G__12196; count__12145 = G__12197; i__12146 = G__12198; continue; } } else {var temp__4092__auto__ = cljs.core.seq.call(null,seq__12143);if(temp__4092__auto__) {var seq__12143__$1 = temp__4092__auto__;if(cljs.core.chunked_seq_QMARK_.call(null,seq__12143__$1)) {var c__5632__auto__ = cljs.core.chunk_first.call(null,seq__12143__$1);{ var G__12199 = cljs.core.chunk_rest.call(null,seq__12143__$1); var G__12200 = c__5632__auto__; var G__12201 = cljs.core.count.call(null,c__5632__auto__); var G__12202 = 0; seq__12143 = G__12199; chunk__12144 = G__12200; count__12145 = G__12201; i__12146 = G__12202; continue; } } else {var ed = cljs.core.first.call(null,seq__12143__$1);lt.object.raise.call(null,ed,new cljs.core.Keyword(null,"project-connected","project-connected",3474311367)); { var G__12203 = cljs.core.next.call(null,seq__12143__$1); var G__12204 = null; var G__12205 = 0; var G__12206 = 0; seq__12143 = G__12203; chunk__12144 = G__12204; count__12145 = G__12205; i__12146 = G__12206; continue; } } } else {return null; } } break; } } else {if(cljs.core._EQ_.call(null,cljs.core.second.call(null,msg),"elm.ast.update")) {var map__12147 = cljs.core.last.call(null,msg);var map__12147__$1 = ((cljs.core.seq_QMARK_.call(null,map__12147))?cljs.core.apply.call(null,cljs.core.hash_map,map__12147):map__12147);var package$ = cljs.core.get.call(null,map__12147__$1,new cljs.core.Keyword(null,"package","package",4501809080));var error = cljs.core.get.call(null,map__12147__$1,new cljs.core.Keyword(null,"error","error",1110689146));var ast = cljs.core.get.call(null,map__12147__$1,new cljs.core.Keyword(null,"ast","ast",1014001140));var type = cljs.core.get.call(null,map__12147__$1,new cljs.core.Keyword(null,"type","type",1017479852));var file = cljs.core.get.call(null,map__12147__$1,new cljs.core.Keyword(null,"file","file",1017047278));var G__12148 = type;if(cljs.core._EQ_.call(null,"packagesDeleted",G__12148)) {lt.plugins.elm_light.elm_ast.delete_package_asts_BANG_.call(null,new cljs.core.Keyword(null,"dir","dir",1014003711).cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,client))); return lt.objs.notifos.set_msg_BANG_.call(null,[cljs.core.str("Elm stuff for "),cljs.core.str(new cljs.core.Keyword(null,"dir","dir",1014003711).cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,client))),cljs.core.str(" was nuked, all package ASTs are lost. Do a package install or lint to get them back !")].join(''),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"class","class",1108647146),"error"], null)); } else {if(cljs.core._EQ_.call(null,"deleted",G__12148)) {return lt.plugins.elm_light.elm_ast.delete_ast_BANG_.call(null,new cljs.core.Keyword(null,"dir","dir",1014003711).cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,client)),file); } else {if(cljs.core._EQ_.call(null,"parsed",G__12148)) {return lt.plugins.elm_light.elm_ast.upsert_ast_BANG_.call(null,new cljs.core.Keyword(null,"dir","dir",1014003711).cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,client)),new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"file","file",1017047278),file,new cljs.core.Keyword(null,"ast","ast",1014001140),ast,new cljs.core.Keyword(null,"package","package",4501809080),package$], null)); } else {if(cljs.core._EQ_.call(null,"parseError",G__12148)) {return lt.objs.console.error.call(null,[cljs.core.str(file),cljs.core.str("\n"),cljs.core.str(error)].join('')); } else {if(new cljs.core.Keyword(null,"else","else",1017020587)) {return cljs.core.println.call(null,"Unhandled ast event:",type,file); } else {return null; } } } } } } else {if(cljs.core._EQ_.call(null,cljs.core.second.call(null,msg),"doc.search.results")) {return lt.object.raise.call(null,lt.plugins.elm_light.clients.elm,new cljs.core.Keyword(null,"elm.doc.search.results","elm.doc.search.results",3225944800),cljs.core.assoc_in.call(null,msg,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [2,new cljs.core.Keyword(null,"project-dir","project-dir",4367844171)], null),new cljs.core.Keyword(null,"dir","dir",1014003711).cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,client)))); } else {if(new cljs.core.Keyword(null,"else","else",1017020587)) {return lt.object.raise.call(null,lt.objs.clients.clients,new cljs.core.Keyword(null,"message","message",1968829305),msg); } else {return null; } } } } }); lt.plugins.elm_light.clients.start_elm_worker = (function start_elm_worker(path,port,client){var worker = lt.plugins.elm_light.clients.cp.fork(lt.plugins.elm_light.clients.elm_client_path,[port],cljs.core.clj__GT_js.call(null,new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,"execPath","execPath",3055801288),process.executable,new cljs.core.Keyword(null,"cwd","cwd",1014003170),path,new cljs.core.Keyword(null,"silent","silent",4406544327),true,new cljs.core.Keyword(null,"env","env",1014004831),((cljs.core._EQ_.call(null,lt.plugins.elm_light.clients.os.platform(),"win32"))?new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"NODE_PATH","NODE_PATH",4295742388),lt.plugins.elm_light.clients.elm_node_path], null):lt.objs.proc.merge_env.call(null,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"NODE_PATH","NODE_PATH",4295742388),lt.plugins.elm_light.clients.elm_node_path], null)))], null)));worker.stdout.on("data",((function (worker){ return (function (msg){return cljs.core.println.call(null,[cljs.core.str("out: "),cljs.core.str(msg)].join('')); });})(worker)) ); worker.stderr.on("data",((function (worker){ return (function (err){lt.objs.notifos.set_msg_BANG_.call(null,[cljs.core.str("Elm error: "),cljs.core.str(err)].join(''),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"class","class",1108647146),"error"], null)); return lt.objs.console.error.call(null,err); });})(worker)) ); worker.on("message",((function (worker){ return (function (p1__12149_SHARP_){return lt.plugins.elm_light.clients.on_elm_message.call(null,client,p1__12149_SHARP_); });})(worker)) ); worker.on("exit",((function (worker){ return (function (){return lt.plugins.elm_light.clients.on_exit.call(null,client); });})(worker)) ); return worker; }); lt.plugins.elm_light.clients.__BEH__send_BANG_ = (function __BEH__send_BANG_(client,msg){return new cljs.core.Keyword(null,"worker","worker",4526786288).cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,client)).send(cljs.core.clj__GT_js.call(null,msg)); }); lt.object.behavior_STAR_.call(null,new cljs.core.Keyword("lt.plugins.elm-light.clients","send!","lt.plugins.elm-light.clients/send!",867013595),new cljs.core.Keyword(null,"reaction","reaction",4441361819),lt.plugins.elm_light.clients.__BEH__send_BANG_,new cljs.core.Keyword(null,"triggers","triggers",2516997421),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"send!","send!",1123226891),null], null), null)); lt.plugins.elm_light.clients.start_elm_client = (function start_elm_client(p__12150){var map__12152 = p__12150;var map__12152__$1 = ((cljs.core.seq_QMARK_.call(null,map__12152))?cljs.core.apply.call(null,cljs.core.hash_map,map__12152):map__12152);var props = map__12152__$1;var client = cljs.core.get.call(null,map__12152__$1,new cljs.core.Keyword(null,"client","client",3951159101));var proj_path = cljs.core.get.call(null,map__12152__$1,new cljs.core.Keyword(null,"proj-path","proj-path",4362692615));var path = cljs.core.get.call(null,map__12152__$1,new cljs.core.Keyword(null,"path","path",1017337751));lt.objs.notifos.working.call(null,"Connecting.."); return lt.plugins.elm_light.clients.claim_reactor_port.call(null,proj_path,((function (map__12152,map__12152__$1,props,client,proj_path,path){ return (function (_,port){var worker = lt.plugins.elm_light.clients.start_elm_worker.call(null,proj_path,port,client);lt.object.merge_BANG_.call(null,client,new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,"name","name",1017277949),lt.objs.files.basename.call(null,proj_path),new cljs.core.Keyword(null,"dir","dir",1014003711),proj_path,new cljs.core.Keyword(null,"reactor-port","reactor-port",4649590590),port,new cljs.core.Keyword(null,"worker","worker",4526786288),worker,new cljs.core.Keyword(null,"commands","commands",4706336250),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 13, [new cljs.core.Keyword(null,"editor.elm.lint","editor.elm.lint",1086056222),null,new cljs.core.Keyword(null,"editor.elm.make","editor.elm.make",1086078217),null,new cljs.core.Keyword(null,"editor.elm.ast.passthrough","editor.elm.ast.passthrough",3082755153),null,new cljs.core.Keyword(null,"editor.eval.elm","editor.eval.elm",1083015975),null,new cljs.core.Keyword(null,"elm.test","elm.test",1176854604),null,new cljs.core.Keyword(null,"editor.elm.hint","editor.elm.hint",1085937058),null,new cljs.core.Keyword(null,"elm.test.suite","elm.test.suite",666703958),null,new cljs.core.Keyword(null,"elm.repl.restart","elm.repl.restart",2931654218),null,new cljs.core.Keyword(null,"editor.elm.ast.parsetext","editor.elm.ast.parsetext",1992138717),null,new cljs.core.Keyword(null,"docs.elm.search","docs.elm.search",737241333),null,new cljs.core.Keyword(null,"editor.elm.doc","editor.elm.doc",1570413537),null,new cljs.core.Keyword(null,"editor.elm.gendoc","editor.elm.gendoc",1485628611),null,new cljs.core.Keyword(null,"elm.reload.ast","elm.reload.ast",3046520423),null], null), null)], null)); return lt.object.add_behavior_BANG_.call(null,client,new cljs.core.Keyword("lt.plugins.elm-light.clients","send!","lt.plugins.elm-light.clients/send!",867013595)); });})(map__12152,map__12152__$1,props,client,proj_path,path)) ); }); lt.plugins.elm_light.clients.handle_no_elm = (function handle_no_elm(){lt.objs.notifos.done_working.call(null); lt.objs.console.log.call(null,process.env.PATH); return lt.objs.popup.popup_BANG_.call(null,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"header","header",4087600639),"We couldn't find Elm (elm-make) in your path",new cljs.core.Keyword(null,"body","body",1016933652),[cljs.core.str("In order to use elm-light, Elm must be installed and on your system PATH."),cljs.core.str("(Check the console for PATH as seen from Light Table")].join(''),new cljs.core.Keyword(null,"buttons","buttons",1255256819),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"label","label",1116631654),"Install Elm",new cljs.core.Keyword(null,"action","action",3885920680),(function (){return lt.objs.platform.open.call(null,"https://guide.elm-lang.org/install.html"); })], null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"label","label",1116631654),"ok"], null)], null)], null)); }); lt.plugins.elm_light.clients.check_elm = (function check_elm(){return lt.plugins.elm_light.clients.shelljs.which("elm-make"); }); lt.plugins.elm_light.clients.try_connect = (function try_connect(p__12153){var map__12156 = p__12153;var map__12156__$1 = ((cljs.core.seq_QMARK_.call(null,map__12156))?cljs.core.apply.call(null,cljs.core.hash_map,map__12156):map__12156);var props = map__12156__$1;var command = cljs.core.get.call(null,map__12156__$1,new cljs.core.Keyword(null,"command","command",1964298941));var info = cljs.core.get.call(null,map__12156__$1,new cljs.core.Keyword(null,"info","info",1017141280));var path = new cljs.core.Keyword(null,"path","path",1017337751).cljs$core$IFn$_invoke$arity$1(info);var proj_path = lt.plugins.elm_light.utils.project_path.call(null,path);var client = lt.objs.clients.client_BANG_.call(null,new cljs.core.Keyword(null,"elm-client","elm-client",1622336068));if(cljs.core.not.call(null,cljs.core.seq.call(null,proj_path))) {lt.objs.notifos.done_working.call(null); lt.objs.notifos.set_msg_BANG_.call(null,[cljs.core.str("Couldn't find a elm-package.json in any parent of path: "),cljs.core.str(path)].join(''),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"class","class",1108647146),"error"], null)); lt.objs.clients.rem_BANG_.call(null,client); } else {if(cljs.core.not.call(null,lt.plugins.elm_light.clients.check_elm.call(null))) {lt.plugins.elm_light.clients.handle_no_elm.call(null); lt.objs.clients.rem_BANG_.call(null,client); } else {if(new cljs.core.Keyword(null,"else","else",1017020587)) {var vec__12157_12207 = lt.plugins.elm_light.utils.valid_project_elm_version.call(null,proj_path);var ok_QMARK__12208 = cljs.core.nth.call(null,vec__12157_12207,0,null);var msg_12209 = cljs.core.nth.call(null,vec__12157_12207,1,null);if(cljs.core.truth_(ok_QMARK__12208)) {lt.plugins.elm_light.clients.start_elm_client.call(null,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"path","path",1017337751),path,new cljs.core.Keyword(null,"proj-path","proj-path",4362692615),proj_path,new cljs.core.Keyword(null,"client","client",3951159101),client], null)); } else {lt.objs.notifos.done_working.call(null); lt.objs.console.error.call(null,msg_12209); lt.objs.notifos.set_msg_BANG_.call(null,msg_12209,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"class","class",1108647146),"error"], null)); lt.objs.clients.rem_BANG_.call(null,client); } } else {} } } return client; }); lt.plugins.elm_light.clients.find_client = (function find_client(p__12158){var map__12164 = p__12158;var map__12164__$1 = ((cljs.core.seq_QMARK_.call(null,map__12164))?cljs.core.apply.call(null,cljs.core.hash_map,map__12164):map__12164);var opts = map__12164__$1;var create = cljs.core.get.call(null,map__12164__$1,new cljs.core.Keyword(null,"create","create",3956577390));var info = cljs.core.get.call(null,map__12164__$1,new cljs.core.Keyword(null,"info","info",1017141280));var command = cljs.core.get.call(null,map__12164__$1,new cljs.core.Keyword(null,"command","command",1964298941));var origin = cljs.core.get.call(null,map__12164__$1,new cljs.core.Keyword(null,"origin","origin",4300251800));var proj_path = lt.plugins.elm_light.utils.project_path.call(null,new cljs.core.Keyword(null,"path","path",1017337751).cljs$core$IFn$_invoke$arity$1(info));var vec__12165 = lt.objs.clients.discover.call(null,command,info);var result = cljs.core.nth.call(null,vec__12165,0,null);var client = cljs.core.nth.call(null,vec__12165,1,null);var pred__12166 = cljs.core._EQ_;var expr__12167 = result;if(cljs.core.truth_(pred__12166.call(null,new cljs.core.Keyword(null,"none","none",1017291434),expr__12167))) {if(cljs.core.truth_(create)) {return create.call(null,opts); } else {lt.objs.notifos.done_working.call(null); lt.object.raise.call(null,lt.objs.eval.evaler,new cljs.core.Keyword(null,"no-client","no-client",4161042633),opts); return lt.objs.clients.placeholder.call(null); } } else {if(cljs.core.truth_(pred__12166.call(null,new cljs.core.Keyword(null,"found","found",1111526132),expr__12167))) {if(cljs.core._EQ_.call(null,new cljs.core.Keyword(null,"dir","dir",1014003711).cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,client)),proj_path)) {return client; } else {return create.call(null,opts); } } else {if(cljs.core.truth_(pred__12166.call(null,new cljs.core.Keyword(null,"select","select",4402849902),expr__12167))) {lt.object.raise.call(null,lt.objs.eval.evaler,new cljs.core.Keyword(null,"select-client","select-client",4292921646),client,((function (pred__12166,expr__12167,proj_path,vec__12165,result,client,map__12164,map__12164__$1,opts,create,info,command,origin){ return (function (client__$1){lt.objs.clients.swap_client_BANG_.call(null,new cljs.core.Keyword(null,"default","default",2558708147).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"client","client",3951159101).cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,origin))),client__$1); return lt.object.update_BANG_.call(null,origin,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"client","client",3951159101)], null),cljs.core.assoc,new cljs.core.Keyword(null,"default","default",2558708147),client__$1); });})(pred__12166,expr__12167,proj_path,vec__12165,result,client,map__12164,map__12164__$1,opts,create,info,command,origin)) ); return lt.objs.clients.placeholder.call(null); } else {throw (new Error([cljs.core.str("No matching clause: "),cljs.core.str(expr__12167)].join(''))); } } } }); /** * Helper method to get eval client for a given editor and command * If none found it will try to connect */ lt.plugins.elm_light.clients.get_eval_client = (function() { var get_eval_client = null; var get_eval_client__2 = (function (ed,cmd){return get_eval_client.call(null,ed,cmd,lt.plugins.elm_light.clients.try_connect); }); var get_eval_client__3 = (function (ed,cmd,create){var cur = new cljs.core.Keyword(null,"default","default",2558708147).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"client","client",3951159101).cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,ed)));if(cljs.core.truth_((function (){var and__4872__auto__ = cur;if(cljs.core.truth_(and__4872__auto__)) {return lt.objs.clients.available_QMARK_.call(null,cur); } else {return and__4872__auto__; } })())) {return cur; } else {var neue = lt.plugins.elm_light.clients.find_client.call(null,new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,"command","command",1964298941),cmd,new cljs.core.Keyword(null,"origin","origin",4300251800),ed,new cljs.core.Keyword(null,"info","info",1017141280),new cljs.core.Keyword(null,"info","info",1017141280).cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,ed)),new cljs.core.Keyword(null,"create","create",3956577390),create], null));lt.object.update_BANG_.call(null,ed,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"client","client",3951159101)], null),cljs.core.assoc,new cljs.core.Keyword(null,"default","default",2558708147),neue); lt.object.raise.call(null,ed,new cljs.core.Keyword(null,"set-client","set-client",2248164104),neue); return neue; } }); get_eval_client = function(ed,cmd,create){ switch(arguments.length){ case 2: return get_eval_client__2.call(this,ed,cmd); case 3: return get_eval_client__3.call(this,ed,cmd,create); } throw(new Error('Invalid arity: ' + arguments.length)); }; get_eval_client.cljs$core$IFn$_invoke$arity$2 = get_eval_client__2; get_eval_client.cljs$core$IFn$_invoke$arity$3 = get_eval_client__3; return get_eval_client; })() ; /** * Helper method to get eval client for a given editor and command */ lt.plugins.elm_light.clients.get_eval_client_if_connected = (function get_eval_client_if_connected(ed,cmd){return lt.plugins.elm_light.clients.get_eval_client.call(null,ed,cmd,(function (opts){lt.objs.notifos.done_working.call(null,""); return null; })); }); lt.plugins.elm_light.clients.__BEH__elm_doc_search_results = (function __BEH__elm_doc_search_results(_,p__12169){var vec__12171 = p__12169;var client_id = cljs.core.nth.call(null,vec__12171,0,null);var command = cljs.core.nth.call(null,vec__12171,1,null);var msg = cljs.core.nth.call(null,vec__12171,2,null);return lt.object.raise.call(null,lt.objs.clients.clients,new cljs.core.Keyword(null,"message","message",1968829305),new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [client_id,command,lt.plugins.elm_light.elm_ast.search_docs.call(null,new cljs.core.Keyword(null,"search","search",4402534682).cljs$core$IFn$_invoke$arity$1(msg),new cljs.core.Keyword(null,"project-dir","project-dir",4367844171).cljs$core$IFn$_invoke$arity$1(msg))], null)); }); lt.object.behavior_STAR_.call(null,new cljs.core.Keyword("lt.plugins.elm-light.clients","elm-doc-search-results","lt.plugins.elm-light.clients/elm-doc-search-results",565676279),new cljs.core.Keyword(null,"reaction","reaction",4441361819),lt.plugins.elm_light.clients.__BEH__elm_doc_search_results,new cljs.core.Keyword(null,"desc","desc",1016984067),"Workaround behavior for showing doc search results in sidebar",new cljs.core.Keyword(null,"triggers","triggers",2516997421),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"elm.doc.search.results","elm.doc.search.results",3225944800),null], null), null)); lt.plugins.elm_light.clients.__BEH__eval_BANG_ = (function __BEH__eval_BANG_(this$,event){var map__12173 = event;var map__12173__$1 = ((cljs.core.seq_QMARK_.call(null,map__12173))?cljs.core.apply.call(null,cljs.core.hash_map,map__12173):map__12173);var origin = cljs.core.get.call(null,map__12173__$1,new cljs.core.Keyword(null,"origin","origin",4300251800));var info = cljs.core.get.call(null,map__12173__$1,new cljs.core.Keyword(null,"info","info",1017141280));lt.objs.notifos.working.call(null,"Evaluating elm..."); return lt.objs.clients.send.call(null,lt.objs.eval.get_client_BANG_.call(null,new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,"command","command",1964298941),new cljs.core.Keyword(null,"editor.eval.elm","editor.eval.elm",1083015975),new cljs.core.Keyword(null,"origin","origin",4300251800),origin,new cljs.core.Keyword(null,"info","info",1017141280),info,new cljs.core.Keyword(null,"create","create",3956577390),lt.plugins.elm_light.clients.try_connect], null)),new cljs.core.Keyword(null,"editor.eval.elm","editor.eval.elm",1083015975),info,new cljs.core.Keyword(null,"only","only",1017320222),origin); }); lt.object.behavior_STAR_.call(null,new cljs.core.Keyword("lt.plugins.elm-light.clients","eval!","lt.plugins.elm-light.clients/eval!",845960815),new cljs.core.Keyword(null,"reaction","reaction",4441361819),lt.plugins.elm_light.clients.__BEH__eval_BANG_,new cljs.core.Keyword(null,"triggers","triggers",2516997421),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"eval!","eval!",1110791799),null], null), null)); lt.plugins.elm_light.clients.__BEH__connect = (function __BEH__connect(this$,path){return lt.plugins.elm_light.clients.try_connect.call(null,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"info","info",1017141280),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"path","path",1017337751),path], null)], null)); }); lt.object.behavior_STAR_.call(null,new cljs.core.Keyword("lt.plugins.elm-light.clients","connect","lt.plugins.elm-light.clients/connect",3850263638),new cljs.core.Keyword(null,"reaction","reaction",4441361819),lt.plugins.elm_light.clients.__BEH__connect,new cljs.core.Keyword(null,"triggers","triggers",2516997421),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"connect","connect",1965255772),null], null), null)); lt.object.object_STAR_.call(null,new cljs.core.Keyword("lt.plugins.elm-light.clients","elm-lang","lt.plugins.elm-light.clients/elm-lang",4404942079),new cljs.core.Keyword(null,"tags","tags",1017456523),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"elm.lang","elm.lang",1176612264),null], null), null)); lt.plugins.elm_light.clients.elm = lt.object.create.call(null,new cljs.core.Keyword("lt.plugins.elm-light.clients","elm-lang","lt.plugins.elm-light.clients/elm-lang",4404942079)); lt.objs.sidebar.clients.add_connector.call(null,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"name","name",1017277949),"Elm",new cljs.core.Keyword(null,"desc","desc",1016984067),"Select a directory to serve as the root of your elm project.",new cljs.core.Keyword(null,"connect","connect",1965255772),(function (){return lt.objs.dialogs.dir.call(null,lt.plugins.elm_light.clients.elm,new cljs.core.Keyword(null,"connect","connect",1965255772)); })], null)); } if(!lt.util.load.provided_QMARK_('lt.plugins.elm-light.docpreview')) { goog.provide('lt.plugins.elm_light.docpreview'); goog.require('cljs.core'); goog.require('lt.plugins.elm_light.clients'); goog.require('lt.plugins.elm_light.utils'); goog.require('lt.objs.files'); goog.require('lt.util.js'); goog.require('lt.util.dom'); goog.require('lt.objs.tabs'); goog.require('lt.plugins.elm_light.utils'); goog.require('lt.objs.notifos'); goog.require('lt.plugins.elm_light.clients'); goog.require('lt.objs.notifos'); goog.require('lt.util.dom'); goog.require('lt.objs.editor.pool'); goog.require('lt.objs.command'); goog.require('lt.objs.files'); goog.require('lt.objs.eval'); goog.require('lt.objs.clients'); goog.require('lt.objs.editor'); goog.require('lt.object'); goog.require('lt.object'); goog.require('lt.util.load'); goog.require('lt.objs.tabs'); goog.require('lt.objs.editor'); goog.require('lt.util.load'); goog.require('lt.plugins.elm_light.elm_ast'); goog.require('lt.plugins.elm_light.elm_ast'); goog.require('lt.objs.eval'); goog.require('lt.objs.clients'); goog.require('lt.objs.editor.pool'); goog.require('lt.util.js'); goog.require('lt.objs.command'); lt.plugins.elm_light.docpreview.highlight_js = lt.objs.files.join.call(null,lt.plugins.elm_light.utils.elm_plugin_dir,"js","highlight.pack.js"); lt.plugins.elm_light.docpreview.preview_skeleton = (function preview_skeleton(this$){var e__6317__auto__ = crate.core.html.call(null,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"div","div",1014003715),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"class","class",1108647146),"elm-doc-preview"], null),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"h1","h1",1013907515),"Generating elm docs, please wait a little..."], null)], null));var seq__12216_12240 = cljs.core.seq.call(null,cljs.core.partition.call(null,2,cljs.core.PersistentVector.EMPTY));var chunk__12217_12241 = null;var count__12218_12242 = 0;var i__12219_12243 = 0;while(true){ if((i__12219_12243 < count__12218_12242)) {var vec__12220_12244 = cljs.core._nth.call(null,chunk__12217_12241,i__12219_12243);var ev__6318__auto___12245 = cljs.core.nth.call(null,vec__12220_12244,0,null);var func__6319__auto___12246 = cljs.core.nth.call(null,vec__12220_12244,1,null);lt.util.dom.on.call(null,e__6317__auto__,ev__6318__auto___12245,func__6319__auto___12246); { var G__12247 = seq__12216_12240; var G__12248 = chunk__12217_12241; var G__12249 = count__12218_12242; var G__12250 = (i__12219_12243 + 1); seq__12216_12240 = G__12247; chunk__12217_12241 = G__12248; count__12218_12242 = G__12249; i__12219_12243 = G__12250; continue; } } else {var temp__4092__auto___12251 = cljs.core.seq.call(null,seq__12216_12240);if(temp__4092__auto___12251) {var seq__12216_12252__$1 = temp__4092__auto___12251;if(cljs.core.chunked_seq_QMARK_.call(null,seq__12216_12252__$1)) {var c__5632__auto___12253 = cljs.core.chunk_first.call(null,seq__12216_12252__$1);{ var G__12254 = cljs.core.chunk_rest.call(null,seq__12216_12252__$1); var G__12255 = c__5632__auto___12253; var G__12256 = cljs.core.count.call(null,c__5632__auto___12253); var G__12257 = 0; seq__12216_12240 = G__12254; chunk__12217_12241 = G__12255; count__12218_12242 = G__12256; i__12219_12243 = G__12257; continue; } } else {var vec__12221_12258 = cljs.core.first.call(null,seq__12216_12252__$1);var ev__6318__auto___12259 = cljs.core.nth.call(null,vec__12221_12258,0,null);var func__6319__auto___12260 = cljs.core.nth.call(null,vec__12221_12258,1,null);lt.util.dom.on.call(null,e__6317__auto__,ev__6318__auto___12259,func__6319__auto___12260); { var G__12261 = cljs.core.next.call(null,seq__12216_12252__$1); var G__12262 = null; var G__12263 = 0; var G__12264 = 0; seq__12216_12240 = G__12261; chunk__12217_12241 = G__12262; count__12218_12242 = G__12263; i__12219_12243 = G__12264; continue; } } } else {} } break; } return e__6317__auto__; }); lt.object.object_STAR_.call(null,new cljs.core.Keyword("lt.plugins.elm-light.docpreview","elmdoc","lt.plugins.elm-light.docpreview/elmdoc",1597859033),new cljs.core.Keyword(null,"tags","tags",1017456523),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"elmdoc","elmdoc",4008535620)], null),new cljs.core.Keyword(null,"name","name",1017277949),"elmdoc",new cljs.core.Keyword(null,"behaviors","behaviors",607554515),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword("lt.plugins.elm-light.docpreview","on-close-destroy","lt.plugins.elm-light.docpreview/on-close-destroy",906178052)], null),new cljs.core.Keyword(null,"init","init",1017141378),(function (this$,filename){lt.object.update_BANG_.call(null,this$,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"name","name",1017277949)], null),cljs.core.constantly.call(null,[cljs.core.str(filename),cljs.core.str(" - Live")].join(''))); return lt.plugins.elm_light.docpreview.preview_skeleton.call(null,this$); })); lt.plugins.elm_light.docpreview.__BEH__on_close_destroy = (function __BEH__on_close_destroy(this$){var temp__4092__auto___12265 = new cljs.core.Keyword("lt.objs.tabs","tabset","lt.objs.tabs/tabset",3378091779).cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,this$));if(cljs.core.truth_(temp__4092__auto___12265)) {var ts_12266 = temp__4092__auto___12265;if(cljs.core._EQ_.call(null,cljs.core.count.call(null,new cljs.core.Keyword(null,"objs","objs",1017308622).cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,ts_12266))),1)) {lt.objs.tabs.rem_tabset.call(null,ts_12266); } else {} } else {} var temp__4092__auto___12267 = new cljs.core.Keyword(null,"owner-ed","owner-ed",2677003627).cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,this$));if(cljs.core.truth_(temp__4092__auto___12267)) {var ed_12268 = temp__4092__auto___12267;lt.object.assoc_in_BANG_.call(null,ed_12268,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"elmdoc","elmdoc",4008535620)], null),null); } else {} return lt.object.destroy_BANG_.call(null,this$); }); lt.object.behavior_STAR_.call(null,new cljs.core.Keyword("lt.plugins.elm-light.docpreview","on-close-destroy","lt.plugins.elm-light.docpreview/on-close-destroy",906178052),new cljs.core.Keyword(null,"reaction","reaction",4441361819),lt.plugins.elm_light.docpreview.__BEH__on_close_destroy,new cljs.core.Keyword(null,"triggers","triggers",2516997421),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"close","close",1108660586),null], null), null)); lt.plugins.elm_light.docpreview.__BEH__gendoc = (function __BEH__gendoc(ed){var info = new cljs.core.Keyword(null,"info","info",1017141280).cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,ed));var cl = lt.objs.eval.get_client_BANG_.call(null,new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,"command","command",1964298941),new cljs.core.Keyword(null,"editor.elm.gendoc","editor.elm.gendoc",1485628611),new cljs.core.Keyword(null,"origin","origin",4300251800),ed,new cljs.core.Keyword(null,"info","info",1017141280),info,new cljs.core.Keyword(null,"create","create",3956577390),lt.plugins.elm_light.clients.try_connect], null));lt.objs.notifos.working.call(null,[cljs.core.str("Starting elm doc generation for: "),cljs.core.str(new cljs.core.Keyword(null,"path","path",1017337751).cljs$core$IFn$_invoke$arity$1(info))].join('')); return lt.objs.clients.send.call(null,cl,new cljs.core.Keyword(null,"editor.elm.gendoc","editor.elm.gendoc",1485628611),cljs.core.assoc.call(null,info,new cljs.core.Keyword(null,"project-path","project-path",1907176907),lt.plugins.elm_light.utils.project_path.call(null,new cljs.core.Keyword(null,"path","path",1017337751).cljs$core$IFn$_invoke$arity$1(info))),new cljs.core.Keyword(null,"only","only",1017320222),ed); }); lt.object.behavior_STAR_.call(null,new cljs.core.Keyword("lt.plugins.elm-light.docpreview","gendoc","lt.plugins.elm-light.docpreview/gendoc",1698030579),new cljs.core.Keyword(null,"reaction","reaction",4441361819),lt.plugins.elm_light.docpreview.__BEH__gendoc,new cljs.core.Keyword(null,"triggers","triggers",2516997421),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"gendoc","gendoc",4059359066),null], null), null),new cljs.core.Keyword(null,"description","description",3584325486),"Preview package doc for a given Elm file"); lt.plugins.elm_light.docpreview.maybe_create_elm_preview = (function maybe_create_elm_preview(elmdoc){var temp__4090__auto__ = new cljs.core.Keyword(null,"preview","preview",695719738).cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,elmdoc));if(cljs.core.truth_(temp__4090__auto__)) {var preview = temp__4090__auto__;return preview; } else {var el = lt.object.__GT_content.call(null,elmdoc);var preview = Elm.embed(Elm.DocPreview,el,cljs.core.clj__GT_js.call(null,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"modules","modules",2241338105),"[]",new cljs.core.Keyword(null,"selectModule","selectModule",2877951482),""], null)));lt.object.assoc_in_BANG_.call(null,elmdoc,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"preview","preview",695719738)], null),preview); return preview; } }); lt.plugins.elm_light.docpreview.__BEH__elm_gendoc_res = (function __BEH__elm_gendoc_res(ed,res){lt.objs.notifos.done_working.call(null,"Elm doc generated"); var temp__4092__auto__ = new cljs.core.Keyword(null,"elmdoc","elmdoc",4008535620).cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,ed));if(cljs.core.truth_(temp__4092__auto__)) {var elmdoc = temp__4092__auto__;var preview = lt.plugins.elm_light.docpreview.maybe_create_elm_preview.call(null,elmdoc);var path = new cljs.core.Keyword(null,"path","path",1017337751).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"info","info",1017141280).cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,ed)));var module_name = lt.plugins.elm_light.elm_ast.get_module_name.call(null,lt.plugins.elm_light.elm_ast.get_module_ast.call(null,lt.plugins.elm_light.utils.project_path.call(null,path),path));preview.ports.modules.send(res); preview.ports.selectModule.send(module_name); return window.requestAnimationFrame(((function (preview,path,module_name,elmdoc,temp__4092__auto__){ return (function (){var seq__12226 = cljs.core.seq.call(null,lt.util.dom.$$.call(null,"pre > code",lt.object.__GT_content.call(null,elmdoc)));var chunk__12227 = null;var count__12228 = 0;var i__12229 = 0;while(true){ if((i__12229 < count__12228)) {var block = cljs.core._nth.call(null,chunk__12227,i__12229);hljs.highlightBlock(block); { var G__12269 = seq__12226; var G__12270 = chunk__12227; var G__12271 = count__12228; var G__12272 = (i__12229 + 1); seq__12226 = G__12269; chunk__12227 = G__12270; count__12228 = G__12271; i__12229 = G__12272; continue; } } else {var temp__4092__auto____$1 = cljs.core.seq.call(null,seq__12226);if(temp__4092__auto____$1) {var seq__12226__$1 = temp__4092__auto____$1;if(cljs.core.chunked_seq_QMARK_.call(null,seq__12226__$1)) {var c__5632__auto__ = cljs.core.chunk_first.call(null,seq__12226__$1);{ var G__12273 = cljs.core.chunk_rest.call(null,seq__12226__$1); var G__12274 = c__5632__auto__; var G__12275 = cljs.core.count.call(null,c__5632__auto__); var G__12276 = 0; seq__12226 = G__12273; chunk__12227 = G__12274; count__12228 = G__12275; i__12229 = G__12276; continue; } } else {var block = cljs.core.first.call(null,seq__12226__$1);hljs.highlightBlock(block); { var G__12277 = cljs.core.next.call(null,seq__12226__$1); var G__12278 = null; var G__12279 = 0; var G__12280 = 0; seq__12226 = G__12277; chunk__12227 = G__12278; count__12228 = G__12279; i__12229 = G__12280; continue; } } } else {return null; } } break; } });})(preview,path,module_name,elmdoc,temp__4092__auto__)) ); } else {return null; } }); lt.object.behavior_STAR_.call(null,new cljs.core.Keyword("lt.plugins.elm-light.docpreview","elm-gendoc-res","lt.plugins.elm-light.docpreview/elm-gendoc-res",871221001),new cljs.core.Keyword(null,"reaction","reaction",4441361819),lt.plugins.elm_light.docpreview.__BEH__elm_gendoc_res,new cljs.core.Keyword(null,"triggers","triggers",2516997421),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"elm.gendoc.res","elm.gendoc.res",3626116948),null], null), null)); lt.plugins.elm_light.docpreview.__BEH__gen_on_save = (function __BEH__gen_on_save(ed){return lt.object.raise.call(null,ed,new cljs.core.Keyword(null,"gendoc","gendoc",4059359066)); }); lt.object.behavior_STAR_.call(null,new cljs.core.Keyword("lt.plugins.elm-light.docpreview","gen-on-save","lt.plugins.elm-light.docpreview/gen-on-save",713063605),new cljs.core.Keyword(null,"reaction","reaction",4441361819),lt.plugins.elm_light.docpreview.__BEH__gen_on_save,new cljs.core.Keyword(null,"triggers","triggers",2516997421),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"save","save",1017427183),null], null), null)); lt.plugins.elm_light.docpreview.__BEH__elm_docpreview = (function __BEH__elm_docpreview(ed){var path = new cljs.core.Keyword(null,"path","path",1017337751).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"info","info",1017141280).cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,ed)));var elmdoc_obj = (function (){var or__4884__auto__ = new cljs.core.Keyword(null,"elmdoc","elmdoc",4008535620).cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,ed));if(cljs.core.truth_(or__4884__auto__)) {return or__4884__auto__; } else {return lt.object.create.call(null,new cljs.core.Keyword("lt.plugins.elm-light.docpreview","elmdoc","lt.plugins.elm-light.docpreview/elmdoc",1597859033),path); } })();lt.util.load.js.call(null,lt.plugins.elm_light.docpreview.highlight_js,new cljs.core.Keyword(null,"sync","sync",1017449997)); lt.objs.tabs.add_or_focus_BANG_.call(null,elmdoc_obj); lt.object.assoc_in_BANG_.call(null,ed,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"elmdoc","elmdoc",4008535620)], null),elmdoc_obj); lt.object.assoc_in_BANG_.call(null,elmdoc_obj,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"owner-ed","owner-ed",2677003627)], null),ed); lt.object.add_behavior_BANG_.call(null,ed,new cljs.core.Keyword("lt.plugins.elm-light.docpreview","gen-on-save","lt.plugins.elm-light.docpreview/gen-on-save",713063605)); return lt.object.raise.call(null,ed,new cljs.core.Keyword(null,"gendoc","gendoc",4059359066)); }); lt.object.behavior_STAR_.call(null,new cljs.core.Keyword("lt.plugins.elm-light.docpreview","elm-docpreview","lt.plugins.elm-light.docpreview/elm-docpreview",1000581284),new cljs.core.Keyword(null,"reaction","reaction",4441361819),lt.plugins.elm_light.docpreview.__BEH__elm_docpreview,new cljs.core.Keyword(null,"triggers","triggers",2516997421),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"elm.docpreview","elm.docpreview",3479917898),null], null), null)); lt.objs.command.command.call(null,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"command","command",1964298941),new cljs.core.Keyword(null,"elm.docpreview","elm.docpreview",3479917898),new cljs.core.Keyword(null,"desc","desc",1016984067),"Elm: Preview doc for selected file",new cljs.core.Keyword(null,"exec","exec",1017031683),(function (){var temp__4092__auto__ = lt.objs.editor.pool.last_active.call(null);if(cljs.core.truth_(temp__4092__auto__)) {var ed = temp__4092__auto__;return lt.object.raise.call(null,ed,new cljs.core.Keyword(null,"elm.docpreview","elm.docpreview",3479917898)); } else {return null; } })], null)); } if(!lt.util.load.provided_QMARK_('lt.plugins.elm-light.modulebrowser')) { goog.provide('lt.plugins.elm_light.modulebrowser'); goog.require('cljs.core'); goog.require('lt.objs.sidebar.command'); goog.require('lt.objs.files'); goog.require('lt.objs.sidebar.command'); goog.require('lt.plugins.elm_light.utils'); goog.require('lt.util.dom'); goog.require('lt.objs.sidebar'); goog.require('clojure.string'); goog.require('lt.plugins.elm_light.utils'); goog.require('lt.objs.notifos'); goog.require('lt.objs.notifos'); goog.require('lt.util.dom'); goog.require('lt.objs.sidebar'); goog.require('lt.objs.editor.pool'); goog.require('lt.objs.command'); goog.require('lt.objs.files'); goog.require('clojure.string'); goog.require('lt.object'); goog.require('lt.object'); goog.require('lt.objs.editor.pool'); goog.require('lt.objs.command'); lt.plugins.elm_light.modulebrowser.resolve_module_file = (function resolve_module_file(project_path,pck_json,package$,module,version){return cljs.core.some.call(null,(function (p1__19691_SHARP_){if(cljs.core.truth_(lt.objs.files.exists_QMARK_.call(null,p1__19691_SHARP_))) {return p1__19691_SHARP_; } else {return null; } }),cljs.core.map.call(null,(function (p1__19690_SHARP_){return lt.objs.files.join.call(null,project_path,"elm-stuff/packages",package$,version,p1__19690_SHARP_,[cljs.core.str(clojure.string.replace.call(null,module,".",lt.objs.files.separator)),cljs.core.str(".elm")].join('')); }),new cljs.core.Keyword(null,"source-directories","source-directories",4475397259).cljs$core$IFn$_invoke$arity$1(pck_json))); }); lt.plugins.elm_light.modulebrowser.get_exposed_modules = (function get_exposed_modules(project_path,p__19692){var map__19694 = p__19692;var map__19694__$1 = ((cljs.core.seq_QMARK_.call(null,map__19694))?cljs.core.apply.call(null,cljs.core.hash_map,map__19694):map__19694);var exact = cljs.core.get.call(null,map__19694__$1,new cljs.core.Keyword(null,"exact","exact",1110851185));var package$ = cljs.core.get.call(null,map__19694__$1,new cljs.core.Keyword(null,"package","package",4501809080));var pck_json = lt.plugins.elm_light.utils.parse_json_file.call(null,lt.objs.files.join.call(null,project_path,"elm-stuff/packages",package$,exact,"elm-package.json"));return cljs.core.map.call(null,((function (pck_json,map__19694,map__19694__$1,exact,package$){ return (function (x){return new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,"name","name",1017277949),x,new cljs.core.Keyword(null,"packageName","packageName",1922663267),package$,new cljs.core.Keyword(null,"version","version",1365512266),exact,new cljs.core.Keyword(null,"file","file",1017047278),lt.plugins.elm_light.modulebrowser.resolve_module_file.call(null,project_path,pck_json,package$,x,exact)], null); });})(pck_json,map__19694,map__19694__$1,exact,package$)) ,new cljs.core.Keyword(null,"exposed-modules","exposed-modules",4185867084).cljs$core$IFn$_invoke$arity$1(pck_json)); }); lt.plugins.elm_light.modulebrowser.get_package_modules = (function get_package_modules(project_path){return cljs.core.sort_by.call(null,new cljs.core.Keyword(null,"name","name",1017277949),cljs.core.mapcat.call(null,cljs.core.partial.call(null,lt.plugins.elm_light.modulebrowser.get_exposed_modules,project_path),cljs.core.filter.call(null,new cljs.core.Keyword(null,"exact","exact",1110851185),lt.plugins.elm_light.utils.get_project_deps.call(null,project_path)))); }); lt.plugins.elm_light.modulebrowser.deduce_module_name = (function deduce_module_name(root_path,elm_file_path){return clojure.string.replace.call(null,clojure.string.replace.call(null,clojure.string.replace.call(null,clojure.string.replace.call(null,elm_file_path,root_path,""),".elm",""),/^\//,""),lt.objs.files.separator,"."); }); lt.plugins.elm_light.modulebrowser.get_project_modules = (function get_project_modules(project_path){var pck_json = lt.plugins.elm_light.utils.parse_json_file.call(null,lt.objs.files.join.call(null,project_path,"elm-package.json"));return cljs.core.sort_by.call(null,new cljs.core.Keyword(null,"name","name",1017277949),cljs.core.map.call(null,((function (pck_json){ return (function (m){return cljs.core.assoc.call(null,m,new cljs.core.Keyword(null,"packageName","packageName",1922663267),lt.objs.files.basename.call(null,project_path),new cljs.core.Keyword(null,"version","version",1365512266),new cljs.core.Keyword(null,"version","version",1365512266).cljs$core$IFn$_invoke$arity$1(pck_json)); });})(pck_json)) ,cljs.core.mapcat.call(null,((function (pck_json){ return (function (dir){if(cljs.core._EQ_.call(null,dir,".")) {return cljs.core.map.call(null,((function (pck_json){ return (function (x){return new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"name","name",1017277949),lt.plugins.elm_light.modulebrowser.deduce_module_name.call(null,"",x),new cljs.core.Keyword(null,"file","file",1017047278),lt.objs.files.join.call(null,project_path,x)], null); });})(pck_json)) ,cljs.core.filter.call(null,((function (pck_json){ return (function (p1__19695_SHARP_){return cljs.core._EQ_.call(null,lt.objs.files.ext.call(null,p1__19695_SHARP_),"elm"); });})(pck_json)) ,lt.objs.files.ls.call(null,project_path))); } else {return cljs.core.map.call(null,((function (pck_json){ return (function (x){return new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"name","name",1017277949),lt.plugins.elm_light.modulebrowser.deduce_module_name.call(null,lt.objs.files.join.call(null,project_path,dir),x),new cljs.core.Keyword(null,"file","file",1017047278),x], null); });})(pck_json)) ,lt.objs.files.filter_walk.call(null,((function (pck_json){ return (function (p1__19696_SHARP_){return cljs.core._EQ_.call(null,lt.objs.files.ext.call(null,p1__19696_SHARP_),"elm"); });})(pck_json)) ,lt.objs.files.join.call(null,project_path,dir))); } });})(pck_json)) ,new cljs.core.Keyword(null,"source-directories","source-directories",4475397259).cljs$core$IFn$_invoke$arity$1(pck_json)))); }); lt.plugins.elm_light.modulebrowser.get_all_modules = (function get_all_modules(project_path){return cljs.core.concat.call(null,lt.plugins.elm_light.modulebrowser.get_project_modules.call(null,project_path),lt.plugins.elm_light.modulebrowser.get_package_modules.call(null,project_path)); }); lt.plugins.elm_light.modulebrowser.wrapper = (function wrapper(this$){var e__6317__auto__ = crate.core.html.call(null,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"div","div",1014003715),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"id","id",1013907597),"elm-module-browser"], null),"Retrieving modules..."], null));var seq__19703_19719 = cljs.core.seq.call(null,cljs.core.partition.call(null,2,cljs.core.PersistentVector.EMPTY));var chunk__19704_19720 = null;var count__19705_19721 = 0;var i__19706_19722 = 0;while(true){ if((i__19706_19722 < count__19705_19721)) {var vec__19707_19723 = cljs.core._nth.call(null,chunk__19704_19720,i__19706_19722);var ev__6318__auto___19724 = cljs.core.nth.call(null,vec__19707_19723,0,null);var func__6319__auto___19725 = cljs.core.nth.call(null,vec__19707_19723,1,null);lt.util.dom.on.call(null,e__6317__auto__,ev__6318__auto___19724,func__6319__auto___19725); { var G__19726 = seq__19703_19719; var G__19727 = chunk__19704_19720; var G__19728 = count__19705_19721; var G__19729 = (i__19706_19722 + 1); seq__19703_19719 = G__19726; chunk__19704_19720 = G__19727; count__19705_19721 = G__19728; i__19706_19722 = G__19729; continue; } } else {var temp__4092__auto___19730 = cljs.core.seq.call(null,seq__19703_19719);if(temp__4092__auto___19730) {var seq__19703_19731__$1 = temp__4092__auto___19730;if(cljs.core.chunked_seq_QMARK_.call(null,seq__19703_19731__$1)) {var c__5632__auto___19732 = cljs.core.chunk_first.call(null,seq__19703_19731__$1);{ var G__19733 = cljs.core.chunk_rest.call(null,seq__19703_19731__$1); var G__19734 = c__5632__auto___19732; var G__19735 = cljs.core.count.call(null,c__5632__auto___19732); var G__19736 = 0; seq__19703_19719 = G__19733; chunk__19704_19720 = G__19734; count__19705_19721 = G__19735; i__19706_19722 = G__19736; continue; } } else {var vec__19708_19737 = cljs.core.first.call(null,seq__19703_19731__$1);var ev__6318__auto___19738 = cljs.core.nth.call(null,vec__19708_19737,0,null);var func__6319__auto___19739 = cljs.core.nth.call(null,vec__19708_19737,1,null);lt.util.dom.on.call(null,e__6317__auto__,ev__6318__auto___19738,func__6319__auto___19739); { var G__19740 = cljs.core.next.call(null,seq__19703_19731__$1); var G__19741 = null; var G__19742 = 0; var G__19743 = 0; seq__19703_19719 = G__19740; chunk__19704_19720 = G__19741; count__19705_19721 = G__19742; i__19706_19722 = G__19743; continue; } } } else {} } break; } return e__6317__auto__; }); lt.plugins.elm_light.modulebrowser.__BEH__clear_BANG_ = (function __BEH__clear_BANG_(this$){return lt.objs.command.exec_BANG_.call(null,new cljs.core.Keyword(null,"close-sidebar","close-sidebar",1108494329)); }); lt.object.behavior_STAR_.call(null,new cljs.core.Keyword("lt.plugins.elm-light.modulebrowser","clear!","lt.plugins.elm-light.modulebrowser/clear!",830826271),new cljs.core.Keyword(null,"reaction","reaction",4441361819),lt.plugins.elm_light.modulebrowser.__BEH__clear_BANG_,new cljs.core.Keyword(null,"triggers","triggers",2516997421),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"clear!","clear!",3951036134),null], null), null)); lt.plugins.elm_light.modulebrowser.__BEH__focus_BANG_ = (function __BEH__focus_BANG_(this$){var input = lt.util.dom.$.call(null,"#elm-module-browser input");return input.focus(); }); lt.object.behavior_STAR_.call(null,new cljs.core.Keyword("lt.plugins.elm-light.modulebrowser","focus!","lt.plugins.elm-light.modulebrowser/focus!",876390918),new cljs.core.Keyword(null,"reaction","reaction",4441361819),lt.plugins.elm_light.modulebrowser.__BEH__focus_BANG_,new cljs.core.Keyword(null,"triggers","triggers",2516997421),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"focus!","focus!",4039653819),null], null), null)); lt.plugins.elm_light.modulebrowser.__BEH__ensure_visible = (function __BEH__ensure_visible(this$){return lt.objs.sidebar.command.ensure_visible.call(null,this$); }); lt.object.behavior_STAR_.call(null,new cljs.core.Keyword("lt.plugins.elm-light.modulebrowser","ensure-visible","lt.plugins.elm-light.modulebrowser/ensure-visible",547005840),new cljs.core.Keyword(null,"reaction","reaction",4441361819),lt.plugins.elm_light.modulebrowser.__BEH__ensure_visible,new cljs.core.Keyword(null,"triggers","triggers",2516997421),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"ensure-visible","ensure-visible",4239017301),null], null), null)); lt.plugins.elm_light.modulebrowser.__BEH__show_project_modules = (function __BEH__show_project_modules(this$,prj_path){var modules = lt.plugins.elm_light.modulebrowser.get_all_modules.call(null,prj_path);var el = lt.util.dom.$.call(null,"#elm-module-browser");var mod_browser = Elm.embed(Elm.ModuleBrowser,el,cljs.core.clj__GT_js.call(null,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"modzPort","modzPort",4708408779),cljs.core.PersistentVector.EMPTY], null)));mod_browser.ports.modzPort.send(cljs.core.clj__GT_js.call(null,modules)); mod_browser.ports.changeSelection.subscribe(((function (modules,el,mod_browser){ return (function (){return lt.object.raise.call(null,this$,new cljs.core.Keyword(null,"ensure-visible","ensure-visible",4239017301)); });})(modules,el,mod_browser)) ); mod_browser.ports.select.subscribe(((function (modules,el,mod_browser){ return (function (file){lt.objs.command.exec_BANG_.call(null,new cljs.core.Keyword(null,"open-path","open-path",2513940794),file); return lt.object.raise.call(null,this$,new cljs.core.Keyword(null,"clear!","clear!",3951036134)); });})(modules,el,mod_browser)) ); mod_browser.ports.close.subscribe(((function (modules,el,mod_browser){ return (function (){return lt.object.raise.call(null,this$,new cljs.core.Keyword(null,"clear!","clear!",3951036134)); });})(modules,el,mod_browser)) ); return lt.object.raise.call(null,this$,new cljs.core.Keyword(null,"focus!","focus!",4039653819)); }); lt.object.behavior_STAR_.call(null,new cljs.core.Keyword("lt.plugins.elm-light.modulebrowser","show-project-modules","lt.plugins.elm-light.modulebrowser/show-project-modules",4239249840),new cljs.core.Keyword(null,"reaction","reaction",4441361819),lt.plugins.elm_light.modulebrowser.__BEH__show_project_modules,new cljs.core.Keyword(null,"triggers","triggers",2516997421),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"show-project-modules","show-project-modules",2830590325),null], null), null)); lt.object.object_STAR_.call(null,new cljs.core.Keyword("lt.plugins.elm-light.modulebrowser","modulebrowser","lt.plugins.elm-light.modulebrowser/modulebrowser",2756314871),new cljs.core.Keyword(null,"tags","tags",1017456523),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"elm.modulebrowser","elm.modulebrowser",1437552486),null], null), null),new cljs.core.Keyword(null,"label","label",1116631654),"Elm module browser",new cljs.core.Keyword(null,"order","order",1119910592),2,new cljs.core.Keyword(null,"init","init",1017141378),(function (this$){return lt.plugins.elm_light.modulebrowser.wrapper.call(null,this$); })); lt.plugins.elm_light.modulebrowser.module_bar = lt.object.create.call(null,new cljs.core.Keyword("lt.plugins.elm-light.modulebrowser","modulebrowser","lt.plugins.elm-light.modulebrowser/modulebrowser",2756314871)); lt.objs.sidebar.add_item.call(null,lt.objs.sidebar.rightbar,lt.plugins.elm_light.modulebrowser.module_bar); lt.plugins.elm_light.modulebrowser.__BEH__list_modules = (function __BEH__list_modules(ed){var temp__4092__auto__ = lt.plugins.elm_light.utils.project_path.call(null,new cljs.core.Keyword(null,"path","path",1017337751).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"info","info",1017141280).cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,ed))));if(cljs.core.truth_(temp__4092__auto__)) {var prj_path = temp__4092__auto__;lt.object.raise.call(null,lt.objs.sidebar.rightbar,new cljs.core.Keyword(null,"toggle","toggle",4440567494),lt.plugins.elm_light.modulebrowser.module_bar); return lt.object.raise.call(null,lt.plugins.elm_light.modulebrowser.module_bar,new cljs.core.Keyword(null,"show-project-modules","show-project-modules",2830590325),prj_path); } else {return null; } }); lt.object.behavior_STAR_.call(null,new cljs.core.Keyword("lt.plugins.elm-light.modulebrowser","list-modules","lt.plugins.elm-light.modulebrowser/list-modules",1482195219),new cljs.core.Keyword(null,"reaction","reaction",4441361819),lt.plugins.elm_light.modulebrowser.__BEH__list_modules,new cljs.core.Keyword(null,"triggers","triggers",2516997421),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"editor.elm.list-modules","editor.elm.list-modules",4718639987),null], null), null)); lt.objs.command.command.call(null,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"command","command",1964298941),new cljs.core.Keyword(null,"show-modulebrowser","show-modulebrowser",3667882974),new cljs.core.Keyword(null,"desc","desc",1016984067),"Elm: Show module-browser",new cljs.core.Keyword(null,"exec","exec",1017031683),(function (){var temp__4092__auto__ = lt.objs.editor.pool.last_active.call(null);if(cljs.core.truth_(temp__4092__auto__)) {var ed = temp__4092__auto__;return lt.object.raise.call(null,ed,new cljs.core.Keyword(null,"editor.elm.list-modules","editor.elm.list-modules",4718639987)); } else {return null; } })], null)); } if(!lt.util.load.provided_QMARK_('lt.plugins.elm-light.usages')) { goog.provide('lt.plugins.elm_light.usages'); goog.require('cljs.core'); goog.require('lt.objs.files'); goog.require('lt.util.dom'); goog.require('lt.objs.context'); goog.require('lt.objs.tabs'); goog.require('clojure.string'); goog.require('lt.plugins.elm_light.utils'); goog.require('crate.core'); goog.require('lt.objs.context'); goog.require('lt.objs.notifos'); goog.require('lt.plugins.elm_light.clients'); goog.require('lt.objs.jump_stack'); goog.require('lt.objs.notifos'); goog.require('lt.util.dom'); goog.require('lt.objs.editor.pool'); goog.require('lt.objs.command'); goog.require('lt.objs.files'); goog.require('lt.objs.clients'); goog.require('clojure.string'); goog.require('lt.objs.jump_stack'); goog.require('lt.objs.editor'); goog.require('lt.object'); goog.require('lt.object'); goog.require('lt.objs.console'); goog.require('lt.objs.tabs'); goog.require('lt.objs.editor'); goog.require('lt.objs.console'); goog.require('crate.core'); goog.require('lt.plugins.elm_light.utils'); goog.require('lt.plugins.elm_light.elm_ast'); goog.require('lt.plugins.elm_light.elm_ast'); goog.require('lt.objs.clients'); goog.require('lt.objs.editor.pool'); goog.require('lt.objs.command'); goog.require('lt.plugins.elm_light.clients'); lt.plugins.elm_light.usages.wrapper = (function wrapper(this$){var e__6317__auto__ = crate.core.html.call(null,new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"div","div",1014003715),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"class","class",1108647146),"search-results elm-usages"], null),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"ul.res","ul.res",4464738363)], null),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"div.searcher","div.searcher",3267271812),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"p","p",1013904354),""], null)], null)], null));var seq__20307_20409 = cljs.core.seq.call(null,cljs.core.partition.call(null,2,cljs.core.PersistentVector.EMPTY));var chunk__20308_20410 = null;var count__20309_20411 = 0;var i__20310_20412 = 0;while(true){ if((i__20310_20412 < count__20309_20411)) {var vec__20311_20413 = cljs.core._nth.call(null,chunk__20308_20410,i__20310_20412);var ev__6318__auto___20414 = cljs.core.nth.call(null,vec__20311_20413,0,null);var func__6319__auto___20415 = cljs.core.nth.call(null,vec__20311_20413,1,null);lt.util.dom.on.call(null,e__6317__auto__,ev__6318__auto___20414,func__6319__auto___20415); { var G__20416 = seq__20307_20409; var G__20417 = chunk__20308_20410; var G__20418 = count__20309_20411; var G__20419 = (i__20310_20412 + 1); seq__20307_20409 = G__20416; chunk__20308_20410 = G__20417; count__20309_20411 = G__20418; i__20310_20412 = G__20419; continue; } } else {var temp__4092__auto___20420 = cljs.core.seq.call(null,seq__20307_20409);if(temp__4092__auto___20420) {var seq__20307_20421__$1 = temp__4092__auto___20420;if(cljs.core.chunked_seq_QMARK_.call(null,seq__20307_20421__$1)) {var c__5632__auto___20422 = cljs.core.chunk_first.call(null,seq__20307_20421__$1);{ var G__20423 = cljs.core.chunk_rest.call(null,seq__20307_20421__$1); var G__20424 = c__5632__auto___20422; var G__20425 = cljs.core.count.call(null,c__5632__auto___20422); var G__20426 = 0; seq__20307_20409 = G__20423; chunk__20308_20410 = G__20424; count__20309_20411 = G__20425; i__20310_20412 = G__20426; continue; } } else {var vec__20312_20427 = cljs.core.first.call(null,seq__20307_20421__$1);var ev__6318__auto___20428 = cljs.core.nth.call(null,vec__20312_20427,0,null);var func__6319__auto___20429 = cljs.core.nth.call(null,vec__20312_20427,1,null);lt.util.dom.on.call(null,e__6317__auto__,ev__6318__auto___20428,func__6319__auto___20429); { var G__20430 = cljs.core.next.call(null,seq__20307_20421__$1); var G__20431 = null; var G__20432 = 0; var G__20433 = 0; seq__20307_20409 = G__20430; chunk__20308_20410 = G__20431; count__20309_20411 = G__20432; i__20310_20412 = G__20433; continue; } } } else {} } break; } return e__6317__auto__; }); lt.plugins.elm_light.usages.loader = (function loader(){var e__6317__auto__ = crate.core.html.call(null,new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"div.bubblingG","div.bubblingG",1068758387),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"span","span",1017440956),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"id","id",1013907597),"bubblingG_1"], null)], null),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"span","span",1017440956),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"id","id",1013907597),"bubblingG_2"], null)], null),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"span","span",1017440956),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"id","id",1013907597),"bubblingG_3"], null)], null)], null));var seq__20319_20434 = cljs.core.seq.call(null,cljs.core.partition.call(null,2,cljs.core.PersistentVector.EMPTY));var chunk__20320_20435 = null;var count__20321_20436 = 0;var i__20322_20437 = 0;while(true){ if((i__20322_20437 < count__20321_20436)) {var vec__20323_20438 = cljs.core._nth.call(null,chunk__20320_20435,i__20322_20437);var ev__6318__auto___20439 = cljs.core.nth.call(null,vec__20323_20438,0,null);var func__6319__auto___20440 = cljs.core.nth.call(null,vec__20323_20438,1,null);lt.util.dom.on.call(null,e__6317__auto__,ev__6318__auto___20439,func__6319__auto___20440); { var G__20441 = seq__20319_20434; var G__20442 = chunk__20320_20435; var G__20443 = count__20321_20436; var G__20444 = (i__20322_20437 + 1); seq__20319_20434 = G__20441; chunk__20320_20435 = G__20442; count__20321_20436 = G__20443; i__20322_20437 = G__20444; continue; } } else {var temp__4092__auto___20445 = cljs.core.seq.call(null,seq__20319_20434);if(temp__4092__auto___20445) {var seq__20319_20446__$1 = temp__4092__auto___20445;if(cljs.core.chunked_seq_QMARK_.call(null,seq__20319_20446__$1)) {var c__5632__auto___20447 = cljs.core.chunk_first.call(null,seq__20319_20446__$1);{ var G__20448 = cljs.core.chunk_rest.call(null,seq__20319_20446__$1); var G__20449 = c__5632__auto___20447; var G__20450 = cljs.core.count.call(null,c__5632__auto___20447); var G__20451 = 0; seq__20319_20434 = G__20448; chunk__20320_20435 = G__20449; count__20321_20436 = G__20450; i__20322_20437 = G__20451; continue; } } else {var vec__20324_20452 = cljs.core.first.call(null,seq__20319_20446__$1);var ev__6318__auto___20453 = cljs.core.nth.call(null,vec__20324_20452,0,null);var func__6319__auto___20454 = cljs.core.nth.call(null,vec__20324_20452,1,null);lt.util.dom.on.call(null,e__6317__auto__,ev__6318__auto___20453,func__6319__auto___20454); { var G__20455 = cljs.core.next.call(null,seq__20319_20446__$1); var G__20456 = null; var G__20457 = 0; var G__20458 = 0; seq__20319_20434 = G__20455; chunk__20320_20435 = G__20456; count__20321_20436 = G__20457; i__20322_20437 = G__20458; continue; } } } else {} } break; } return e__6317__auto__; }); lt.plugins.elm_light.usages.highlight = (function highlight(line,sym){return clojure.string.replace.call(null,line,cljs.core.re_pattern.call(null,[cljs.core.str("\\b"),cljs.core.str(sym),cljs.core.str("\\b")].join('')),[cljs.core.str(""),cljs.core.str(sym),cljs.core.str("")].join('')).substring(0,150); }); lt.plugins.elm_light.usages.open_hit = (function open_hit(file,hit){lt.objs.command.exec_BANG_.call(null,new cljs.core.Keyword(null,"open-path","open-path",2513940794),file); var ed = lt.objs.editor.pool.last_active.call(null);return lt.objs.editor.move_cursor.call(null,ed,new cljs.core.Keyword(null,"start","start",1123661780).cljs$core$IFn$_invoke$arity$1(hit)); }); lt.plugins.elm_light.usages.hit_entry = (function hit_entry(sym,file,hit){var e__6317__auto__ = crate.core.html.call(null,new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"p","p",1013904354),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"class","class",1108647146),"entry"], null),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"span.line","span.line",4619821962),[cljs.core.str(new cljs.core.Keyword(null,"line","line",1017226086).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"start","start",1123661780).cljs$core$IFn$_invoke$arity$1(hit))),cljs.core.str(","),cljs.core.str(new cljs.core.Keyword(null,"ch","ch",1013907415).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"start","start",1123661780).cljs$core$IFn$_invoke$arity$1(hit)))].join('')], null),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"pre","pre",1014015509),crate.core.raw.call(null,lt.plugins.elm_light.usages.highlight.call(null,new cljs.core.Keyword(null,"line","line",1017226086).cljs$core$IFn$_invoke$arity$1(hit),sym))], null)], null));var seq__20331_20459 = cljs.core.seq.call(null,cljs.core.partition.call(null,2,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"click","click",1108654330),((function (e__6317__auto__){ return (function (){return lt.plugins.elm_light.usages.open_hit.call(null,file,hit); });})(e__6317__auto__)) ], null)));var chunk__20332_20460 = null;var count__20333_20461 = 0;var i__20334_20462 = 0;while(true){ if((i__20334_20462 < count__20333_20461)) {var vec__20335_20463 = cljs.core._nth.call(null,chunk__20332_20460,i__20334_20462);var ev__6318__auto___20464 = cljs.core.nth.call(null,vec__20335_20463,0,null);var func__6319__auto___20465 = cljs.core.nth.call(null,vec__20335_20463,1,null);lt.util.dom.on.call(null,e__6317__auto__,ev__6318__auto___20464,func__6319__auto___20465); { var G__20466 = seq__20331_20459; var G__20467 = chunk__20332_20460; var G__20468 = count__20333_20461; var G__20469 = (i__20334_20462 + 1); seq__20331_20459 = G__20466; chunk__20332_20460 = G__20467; count__20333_20461 = G__20468; i__20334_20462 = G__20469; continue; } } else {var temp__4092__auto___20470 = cljs.core.seq.call(null,seq__20331_20459);if(temp__4092__auto___20470) {var seq__20331_20471__$1 = temp__4092__auto___20470;if(cljs.core.chunked_seq_QMARK_.call(null,seq__20331_20471__$1)) {var c__5632__auto___20472 = cljs.core.chunk_first.call(null,seq__20331_20471__$1);{ var G__20473 = cljs.core.chunk_rest.call(null,seq__20331_20471__$1); var G__20474 = c__5632__auto___20472; var G__20475 = cljs.core.count.call(null,c__5632__auto___20472); var G__20476 = 0; seq__20331_20459 = G__20473; chunk__20332_20460 = G__20474; count__20333_20461 = G__20475; i__20334_20462 = G__20476; continue; } } else {var vec__20336_20477 = cljs.core.first.call(null,seq__20331_20471__$1);var ev__6318__auto___20478 = cljs.core.nth.call(null,vec__20336_20477,0,null);var func__6319__auto___20479 = cljs.core.nth.call(null,vec__20336_20477,1,null);lt.util.dom.on.call(null,e__6317__auto__,ev__6318__auto___20478,func__6319__auto___20479); { var G__20480 = cljs.core.next.call(null,seq__20331_20471__$1); var G__20481 = null; var G__20482 = 0; var G__20483 = 0; seq__20331_20459 = G__20480; chunk__20332_20460 = G__20481; count__20333_20461 = G__20482; i__20334_20462 = G__20483; continue; } } } else {} } break; } return e__6317__auto__; }); lt.plugins.elm_light.usages.module_item = (function module_item(sym,p__20338){var map__20346 = p__20338;var map__20346__$1 = ((cljs.core.seq_QMARK_.call(null,map__20346))?cljs.core.apply.call(null,cljs.core.hash_map,map__20346):map__20346);var module = map__20346__$1;var file = cljs.core.get.call(null,map__20346__$1,new cljs.core.Keyword(null,"file","file",1017047278));var e__6317__auto__ = crate.core.html.call(null,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"li","li",1013907695),new cljs.core.PersistentVector(null, 5, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"p.path","p.path",4266284629),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"span.file","span.file",4619643154),lt.objs.files.basename.call(null,file)], null),"(",lt.objs.files.parent.call(null,file),")"], null),cljs.core.map.call(null,((function (map__20346,map__20346__$1,module,file){ return (function (p1__20337_SHARP_){return lt.plugins.elm_light.usages.hit_entry.call(null,sym,file,p1__20337_SHARP_); });})(map__20346,map__20346__$1,module,file)) ,new cljs.core.Keyword(null,"hits","hits",1017107122).cljs$core$IFn$_invoke$arity$1(module))], null));var seq__20347_20484 = cljs.core.seq.call(null,cljs.core.partition.call(null,2,cljs.core.PersistentVector.EMPTY));var chunk__20348_20485 = null;var count__20349_20486 = 0;var i__20350_20487 = 0;while(true){ if((i__20350_20487 < count__20349_20486)) {var vec__20351_20488 = cljs.core._nth.call(null,chunk__20348_20485,i__20350_20487);var ev__6318__auto___20489 = cljs.core.nth.call(null,vec__20351_20488,0,null);var func__6319__auto___20490 = cljs.core.nth.call(null,vec__20351_20488,1,null);lt.util.dom.on.call(null,e__6317__auto__,ev__6318__auto___20489,func__6319__auto___20490); { var G__20491 = seq__20347_20484; var G__20492 = chunk__20348_20485; var G__20493 = count__20349_20486; var G__20494 = (i__20350_20487 + 1); seq__20347_20484 = G__20491; chunk__20348_20485 = G__20492; count__20349_20486 = G__20493; i__20350_20487 = G__20494; continue; } } else {var temp__4092__auto___20495 = cljs.core.seq.call(null,seq__20347_20484);if(temp__4092__auto___20495) {var seq__20347_20496__$1 = temp__4092__auto___20495;if(cljs.core.chunked_seq_QMARK_.call(null,seq__20347_20496__$1)) {var c__5632__auto___20497 = cljs.core.chunk_first.call(null,seq__20347_20496__$1);{ var G__20498 = cljs.core.chunk_rest.call(null,seq__20347_20496__$1); var G__20499 = c__5632__auto___20497; var G__20500 = cljs.core.count.call(null,c__5632__auto___20497); var G__20501 = 0; seq__20347_20484 = G__20498; chunk__20348_20485 = G__20499; count__20349_20486 = G__20500; i__20350_20487 = G__20501; continue; } } else {var vec__20352_20502 = cljs.core.first.call(null,seq__20347_20496__$1);var ev__6318__auto___20503 = cljs.core.nth.call(null,vec__20352_20502,0,null);var func__6319__auto___20504 = cljs.core.nth.call(null,vec__20352_20502,1,null);lt.util.dom.on.call(null,e__6317__auto__,ev__6318__auto___20503,func__6319__auto___20504); { var G__20505 = cljs.core.next.call(null,seq__20347_20496__$1); var G__20506 = null; var G__20507 = 0; var G__20508 = 0; seq__20347_20484 = G__20505; chunk__20348_20485 = G__20506; count__20349_20486 = G__20507; i__20350_20487 = G__20508; continue; } } } else {} } break; } return e__6317__auto__; }); lt.plugins.elm_light.usages.search_results = (function search_results(p__20354){var map__20362 = p__20354;var map__20362__$1 = ((cljs.core.seq_QMARK_.call(null,map__20362))?cljs.core.apply.call(null,cljs.core.hash_map,map__20362):map__20362);var candidate = cljs.core.get.call(null,map__20362__$1,new cljs.core.Keyword(null,"candidate","candidate",1522567413));var usages_per_module = cljs.core.get.call(null,map__20362__$1,new cljs.core.Keyword(null,"usages-per-module","usages-per-module",3285520969));var e__6317__auto__ = crate.core.html.call(null,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"ul.res","ul.res",4464738363),cljs.core.map.call(null,((function (map__20362,map__20362__$1,candidate,usages_per_module){ return (function (p1__20353_SHARP_){return lt.plugins.elm_light.usages.module_item.call(null,new cljs.core.Keyword(null,"value","value",1125876963).cljs$core$IFn$_invoke$arity$1(candidate),p1__20353_SHARP_); });})(map__20362,map__20362__$1,candidate,usages_per_module)) ,usages_per_module)], null));var seq__20363_20509 = cljs.core.seq.call(null,cljs.core.partition.call(null,2,cljs.core.PersistentVector.EMPTY));var chunk__20364_20510 = null;var count__20365_20511 = 0;var i__20366_20512 = 0;while(true){ if((i__20366_20512 < count__20365_20511)) {var vec__20367_20513 = cljs.core._nth.call(null,chunk__20364_20510,i__20366_20512);var ev__6318__auto___20514 = cljs.core.nth.call(null,vec__20367_20513,0,null);var func__6319__auto___20515 = cljs.core.nth.call(null,vec__20367_20513,1,null);lt.util.dom.on.call(null,e__6317__auto__,ev__6318__auto___20514,func__6319__auto___20515); { var G__20516 = seq__20363_20509; var G__20517 = chunk__20364_20510; var G__20518 = count__20365_20511; var G__20519 = (i__20366_20512 + 1); seq__20363_20509 = G__20516; chunk__20364_20510 = G__20517; count__20365_20511 = G__20518; i__20366_20512 = G__20519; continue; } } else {var temp__4092__auto___20520 = cljs.core.seq.call(null,seq__20363_20509);if(temp__4092__auto___20520) {var seq__20363_20521__$1 = temp__4092__auto___20520;if(cljs.core.chunked_seq_QMARK_.call(null,seq__20363_20521__$1)) {var c__5632__auto___20522 = cljs.core.chunk_first.call(null,seq__20363_20521__$1);{ var G__20523 = cljs.core.chunk_rest.call(null,seq__20363_20521__$1); var G__20524 = c__5632__auto___20522; var G__20525 = cljs.core.count.call(null,c__5632__auto___20522); var G__20526 = 0; seq__20363_20509 = G__20523; chunk__20364_20510 = G__20524; count__20365_20511 = G__20525; i__20366_20512 = G__20526; continue; } } else {var vec__20368_20527 = cljs.core.first.call(null,seq__20363_20521__$1);var ev__6318__auto___20528 = cljs.core.nth.call(null,vec__20368_20527,0,null);var func__6319__auto___20529 = cljs.core.nth.call(null,vec__20368_20527,1,null);lt.util.dom.on.call(null,e__6317__auto__,ev__6318__auto___20528,func__6319__auto___20529); { var G__20530 = cljs.core.next.call(null,seq__20363_20521__$1); var G__20531 = null; var G__20532 = 0; var G__20533 = 0; seq__20363_20509 = G__20530; chunk__20364_20510 = G__20531; count__20365_20511 = G__20532; i__20366_20512 = G__20533; continue; } } } else {} } break; } return e__6317__auto__; }); lt.plugins.elm_light.usages.count_hits = (function count_hits(mods){return cljs.core.count.call(null,cljs.core.mapcat.call(null,new cljs.core.Keyword(null,"hits","hits",1017107122),mods)); }); lt.plugins.elm_light.usages.candidate_link = (function candidate_link(candidate){var e__6317__auto__ = crate.core.html.call(null,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"span.link","span.link",4619821968),[cljs.core.str(new cljs.core.Keyword(null,"value","value",1125876963).cljs$core$IFn$_invoke$arity$1(candidate)),cljs.core.str(" ("),cljs.core.str(new cljs.core.Keyword(null,"module-name","module-name",4067691710).cljs$core$IFn$_invoke$arity$1(candidate)),cljs.core.str(")")].join('')], null));var seq__20375_20534 = cljs.core.seq.call(null,cljs.core.partition.call(null,2,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"click","click",1108654330),((function (e__6317__auto__){ return (function (){lt.objs.command.exec_BANG_.call(null,new cljs.core.Keyword(null,"open-path","open-path",2513940794),new cljs.core.Keyword(null,"file","file",1017047278).cljs$core$IFn$_invoke$arity$1(candidate)); var ed = lt.objs.editor.pool.last_active.call(null);return lt.objs.editor.move_cursor.call(null,ed,new cljs.core.Keyword(null,"start","start",1123661780).cljs$core$IFn$_invoke$arity$1(lt.plugins.elm_light.elm_ast.__GT_range.call(null,new cljs.core.Keyword(null,"location","location",2914947879).cljs$core$IFn$_invoke$arity$1(candidate)))); });})(e__6317__auto__)) ], null)));var chunk__20376_20535 = null;var count__20377_20536 = 0;var i__20378_20537 = 0;while(true){ if((i__20378_20537 < count__20377_20536)) {var vec__20379_20538 = cljs.core._nth.call(null,chunk__20376_20535,i__20378_20537);var ev__6318__auto___20539 = cljs.core.nth.call(null,vec__20379_20538,0,null);var func__6319__auto___20540 = cljs.core.nth.call(null,vec__20379_20538,1,null);lt.util.dom.on.call(null,e__6317__auto__,ev__6318__auto___20539,func__6319__auto___20540); { var G__20541 = seq__20375_20534; var G__20542 = chunk__20376_20535; var G__20543 = count__20377_20536; var G__20544 = (i__20378_20537 + 1); seq__20375_20534 = G__20541; chunk__20376_20535 = G__20542; count__20377_20536 = G__20543; i__20378_20537 = G__20544; continue; } } else {var temp__4092__auto___20545 = cljs.core.seq.call(null,seq__20375_20534);if(temp__4092__auto___20545) {var seq__20375_20546__$1 = temp__4092__auto___20545;if(cljs.core.chunked_seq_QMARK_.call(null,seq__20375_20546__$1)) {var c__5632__auto___20547 = cljs.core.chunk_first.call(null,seq__20375_20546__$1);{ var G__20548 = cljs.core.chunk_rest.call(null,seq__20375_20546__$1); var G__20549 = c__5632__auto___20547; var G__20550 = cljs.core.count.call(null,c__5632__auto___20547); var G__20551 = 0; seq__20375_20534 = G__20548; chunk__20376_20535 = G__20549; count__20377_20536 = G__20550; i__20378_20537 = G__20551; continue; } } else {var vec__20380_20552 = cljs.core.first.call(null,seq__20375_20546__$1);var ev__6318__auto___20553 = cljs.core.nth.call(null,vec__20380_20552,0,null);var func__6319__auto___20554 = cljs.core.nth.call(null,vec__20380_20552,1,null);lt.util.dom.on.call(null,e__6317__auto__,ev__6318__auto___20553,func__6319__auto___20554); { var G__20555 = cljs.core.next.call(null,seq__20375_20546__$1); var G__20556 = null; var G__20557 = 0; var G__20558 = 0; seq__20375_20534 = G__20555; chunk__20376_20535 = G__20556; count__20377_20536 = G__20557; i__20378_20537 = G__20558; continue; } } } else {} } break; } return e__6317__auto__; }); lt.plugins.elm_light.usages.searcher = (function searcher(p__20381){var map__20389 = p__20381;var map__20389__$1 = ((cljs.core.seq_QMARK_.call(null,map__20389))?cljs.core.apply.call(null,cljs.core.hash_map,map__20389):map__20389);var token = cljs.core.get.call(null,map__20389__$1,new cljs.core.Keyword(null,"token","token",1124445547));var candidate = cljs.core.get.call(null,map__20389__$1,new cljs.core.Keyword(null,"candidate","candidate",1522567413));var usages_per_module = cljs.core.get.call(null,map__20389__$1,new cljs.core.Keyword(null,"usages-per-module","usages-per-module",3285520969));var e__6317__auto__ = crate.core.html.call(null,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"div.searcher","div.searcher",3267271812),new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"p","p",1013904354),crate.core.raw.call(null,[cljs.core.str("Found "),cljs.core.str(lt.plugins.elm_light.usages.count_hits.call(null,usages_per_module)),cljs.core.str(" usages for ")].join('')),(cljs.core.truth_(candidate)?lt.plugins.elm_light.usages.candidate_link.call(null,candidate):new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"span","span",1017440956),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"strong","strong",4416891401),token], null)], null))], null),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"div.signature","div.signature",1444193037),(function (){var or__4884__auto__ = new cljs.core.Keyword(null,"signatureRaw","signatureRaw",3837738946).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"annotation","annotation",3753828001).cljs$core$IFn$_invoke$arity$1(candidate));if(cljs.core.truth_(or__4884__auto__)) {return or__4884__auto__; } else {var or__4884__auto____$1 = new cljs.core.Keyword(null,"signatureRaw","signatureRaw",3837738946).cljs$core$IFn$_invoke$arity$1(candidate);if(cljs.core.truth_(or__4884__auto____$1)) {return or__4884__auto____$1; } else {return new cljs.core.Keyword(null,"paramsRaw","paramsRaw",2968749108).cljs$core$IFn$_invoke$arity$1(candidate); } } })()], null)], null));var seq__20390_20559 = cljs.core.seq.call(null,cljs.core.partition.call(null,2,cljs.core.PersistentVector.EMPTY));var chunk__20391_20560 = null;var count__20392_20561 = 0;var i__20393_20562 = 0;while(true){ if((i__20393_20562 < count__20392_20561)) {var vec__20394_20563 = cljs.core._nth.call(null,chunk__20391_20560,i__20393_20562);var ev__6318__auto___20564 = cljs.core.nth.call(null,vec__20394_20563,0,null);var func__6319__auto___20565 = cljs.core.nth.call(null,vec__20394_20563,1,null);lt.util.dom.on.call(null,e__6317__auto__,ev__6318__auto___20564,func__6319__auto___20565); { var G__20566 = seq__20390_20559; var G__20567 = chunk__20391_20560; var G__20568 = count__20392_20561; var G__20569 = (i__20393_20562 + 1); seq__20390_20559 = G__20566; chunk__20391_20560 = G__20567; count__20392_20561 = G__20568; i__20393_20562 = G__20569; continue; } } else {var temp__4092__auto___20570 = cljs.core.seq.call(null,seq__20390_20559);if(temp__4092__auto___20570) {var seq__20390_20571__$1 = temp__4092__auto___20570;if(cljs.core.chunked_seq_QMARK_.call(null,seq__20390_20571__$1)) {var c__5632__auto___20572 = cljs.core.chunk_first.call(null,seq__20390_20571__$1);{ var G__20573 = cljs.core.chunk_rest.call(null,seq__20390_20571__$1); var G__20574 = c__5632__auto___20572; var G__20575 = cljs.core.count.call(null,c__5632__auto___20572); var G__20576 = 0; seq__20390_20559 = G__20573; chunk__20391_20560 = G__20574; count__20392_20561 = G__20575; i__20393_20562 = G__20576; continue; } } else {var vec__20395_20577 = cljs.core.first.call(null,seq__20390_20571__$1);var ev__6318__auto___20578 = cljs.core.nth.call(null,vec__20395_20577,0,null);var func__6319__auto___20579 = cljs.core.nth.call(null,vec__20395_20577,1,null);lt.util.dom.on.call(null,e__6317__auto__,ev__6318__auto___20578,func__6319__auto___20579); { var G__20580 = cljs.core.next.call(null,seq__20390_20571__$1); var G__20581 = null; var G__20582 = 0; var G__20583 = 0; seq__20390_20559 = G__20580; chunk__20391_20560 = G__20581; count__20392_20561 = G__20582; i__20393_20562 = G__20583; continue; } } } else {} } break; } return e__6317__auto__; }); lt.plugins.elm_light.usages.show_results = (function show_results(this$,res){var container = lt.object.__GT_content.call(null,this$);var results_ul = lt.util.dom.$.call(null,new cljs.core.Keyword(null,"ul.res","ul.res",4464738363),container);var searcher_ui = lt.util.dom.$.call(null,new cljs.core.Keyword(null,"div.searcher","div.searcher",3267271812),container);lt.util.dom.replace_with.call(null,results_ul,lt.plugins.elm_light.usages.search_results.call(null,res)); return lt.util.dom.replace_with.call(null,searcher_ui,lt.plugins.elm_light.usages.searcher.call(null,res)); }); lt.plugins.elm_light.usages.add_or_focus_BANG_ = (function add_or_focus_BANG_(obj){var next_ts = lt.objs.tabs.next_tabset.call(null,lt.objs.context.__GT_obj.call(null,new cljs.core.Keyword(null,"tabset","tabset",4427500575)));var prev_ts = lt.objs.tabs.prev_tabset.call(null,lt.objs.context.__GT_obj.call(null,new cljs.core.Keyword(null,"tabset","tabset",4427500575)));if(cljs.core.truth_(lt.objs.tabs.in_tab_QMARK_.call(null,obj))) {} else {if(cljs.core.truth_(next_ts)) {lt.objs.tabs.add_BANG_.call(null,obj,next_ts); } else {if(cljs.core.truth_(prev_ts)) {lt.objs.tabs.add_BANG_.call(null,obj,prev_ts); } else {if(new cljs.core.Keyword(null,"else","else",1017020587)) {var ts_20584 = lt.objs.tabs.spawn_tabset.call(null);lt.objs.tabs.equalize_tabset_widths.call(null); lt.objs.tabs.add_BANG_.call(null,obj,ts_20584); } else {} } } } return lt.objs.tabs.active_BANG_.call(null,obj); }); lt.plugins.elm_light.usages.ast_pass_through = (function ast_pass_through(this$,ed,msg){return lt.objs.clients.send.call(null,lt.plugins.elm_light.clients.get_eval_client.call(null,ed,new cljs.core.Keyword(null,"editor.elm.ast.passthrough","editor.elm.ast.passthrough",3082755153)),new cljs.core.Keyword(null,"editor.elm.ast.passthrough","editor.elm.ast.passthrough",3082755153),msg,new cljs.core.Keyword(null,"only","only",1017320222),this$); }); lt.plugins.elm_light.usages.__BEH__elm__DOT__find_usages__DOT__complete = (function __BEH__elm__DOT__find_usages__DOT__complete(this$,p__20396){var map__20398 = p__20396;var map__20398__$1 = ((cljs.core.seq_QMARK_.call(null,map__20398))?cljs.core.apply.call(null,cljs.core.hash_map,map__20398):map__20398);var project_path = cljs.core.get.call(null,map__20398__$1,new cljs.core.Keyword(null,"project-path","project-path",1907176907));var path = cljs.core.get.call(null,map__20398__$1,new cljs.core.Keyword(null,"path","path",1017337751));var token = cljs.core.get.call(null,map__20398__$1,new cljs.core.Keyword(null,"token","token",1124445547));lt.plugins.elm_light.usages.show_results.call(null,this$,lt.plugins.elm_light.elm_ast.find_usages.call(null,token,project_path,path)); return lt.objs.notifos.done_working.call(null); }); lt.object.behavior_STAR_.call(null,new cljs.core.Keyword("lt.plugins.elm-light.usages","elm.find-usages.complete","lt.plugins.elm-light.usages/elm.find-usages.complete",4127058703),new cljs.core.Keyword(null,"reaction","reaction",4441361819),lt.plugins.elm_light.usages.__BEH__elm__DOT__find_usages__DOT__complete,new cljs.core.Keyword(null,"triggers","triggers",2516997421),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"elm.find-usages.complete","elm.find-usages.complete",3242363995),null], null), null)); lt.plugins.elm_light.usages.__BEH__elm__DOT__find_usages = (function __BEH__elm__DOT__find_usages(this$,ed,token){lt.objs.notifos.working.call(null,[cljs.core.str("Finding usages for "),cljs.core.str(token)].join('')); var path = new cljs.core.Keyword(null,"path","path",1017337751).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"info","info",1017141280).cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,ed)));lt.plugins.elm_light.usages.add_or_focus_BANG_.call(null,lt.plugins.elm_light.usages.elm_usages); lt.object.raise.call(null,this$,new cljs.core.Keyword(null,"clear!","clear!",3951036134)); return lt.plugins.elm_light.usages.ast_pass_through.call(null,this$,ed,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"target","target",4427965699),new cljs.core.Keyword(null,"elm.find-usages.complete","elm.find-usages.complete",3242363995),new cljs.core.Keyword(null,"data","data",1016980252),new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"token","token",1124445547),token,new cljs.core.Keyword(null,"path","path",1017337751),path,new cljs.core.Keyword(null,"project-path","project-path",1907176907),lt.plugins.elm_light.utils.project_path.call(null,path)], null)], null)); }); lt.object.behavior_STAR_.call(null,new cljs.core.Keyword("lt.plugins.elm-light.usages","elm.find-usages","lt.plugins.elm-light.usages/elm.find-usages",4366307814),new cljs.core.Keyword(null,"reaction","reaction",4441361819),lt.plugins.elm_light.usages.__BEH__elm__DOT__find_usages,new cljs.core.Keyword(null,"triggers","triggers",2516997421),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"elm.find-usages","elm.find-usages",3531858864),null], null), null)); lt.plugins.elm_light.usages.__BEH__on_close = (function __BEH__on_close(this$){return lt.objs.tabs.rem_BANG_.call(null,this$); }); lt.object.behavior_STAR_.call(null,new cljs.core.Keyword("lt.plugins.elm-light.usages","on-close","lt.plugins.elm-light.usages/on-close",2200537002),new cljs.core.Keyword(null,"reaction","reaction",4441361819),lt.plugins.elm_light.usages.__BEH__on_close,new cljs.core.Keyword(null,"triggers","triggers",2516997421),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"close","close",1108660586),null], null), null)); lt.plugins.elm_light.usages.__BEH__clear_BANG_ = (function __BEH__clear_BANG_(this$){lt.util.dom.empty.call(null,lt.util.dom.$.call(null,new cljs.core.Keyword(null,"ul.res","ul.res",4464738363),lt.object.__GT_content.call(null,this$))); lt.util.dom.empty.call(null,lt.util.dom.$.call(null,new cljs.core.Keyword(null,"div.searcher","div.searcher",3267271812),lt.object.__GT_content.call(null,this$))); return lt.util.dom.append.call(null,lt.util.dom.$.call(null,new cljs.core.Keyword(null,"div.searcher","div.searcher",3267271812),lt.object.__GT_content.call(null,this$)),lt.plugins.elm_light.usages.loader.call(null)); }); lt.object.behavior_STAR_.call(null,new cljs.core.Keyword("lt.plugins.elm-light.usages","clear!","lt.plugins.elm-light.usages/clear!",4751978132),new cljs.core.Keyword(null,"reaction","reaction",4441361819),lt.plugins.elm_light.usages.__BEH__clear_BANG_,new cljs.core.Keyword(null,"triggers","triggers",2516997421),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"clear!","clear!",3951036134),null], null), null)); lt.object.object_STAR_.call(null,new cljs.core.Keyword("lt.plugins.elm-light.usages","elm-usages","lt.plugins.elm-light.usages/elm-usages",797200415),new cljs.core.Keyword(null,"tags","tags",1017456523),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"elm.usages","elm.usages",3031392428),null], null), null),new cljs.core.Keyword(null,"label","label",1116631654),"Elm usages",new cljs.core.Keyword(null,"name","name",1017277949),"Elm usages",new cljs.core.Keyword(null,"init","init",1017141378),(function (this$){return lt.plugins.elm_light.usages.wrapper.call(null,this$); })); lt.plugins.elm_light.usages.elm_usages = lt.object.create.call(null,new cljs.core.Keyword("lt.plugins.elm-light.usages","elm-usages","lt.plugins.elm-light.usages/elm-usages",797200415)); lt.objs.command.command.call(null,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"command","command",1964298941),new cljs.core.Keyword(null,"elm-find-usages","elm-find-usages",3402776145),new cljs.core.Keyword(null,"desc","desc",1016984067),"Elm: Find usages of symbol at cursor",new cljs.core.Keyword(null,"exec","exec",1017031683),(function (){var temp__4092__auto__ = lt.objs.editor.pool.last_active.call(null);if(cljs.core.truth_(temp__4092__auto__)) {var ed = temp__4092__auto__;var temp__4092__auto____$1 = lt.plugins.elm_light.utils.find_symbol.call(null,ed,lt.objs.editor.__GT_cursor.call(null,ed));if(cljs.core.truth_(temp__4092__auto____$1)) {var token = temp__4092__auto____$1;return lt.object.raise.call(null,lt.plugins.elm_light.usages.elm_usages,new cljs.core.Keyword(null,"elm.find-usages","elm.find-usages",3531858864),ed,token); } else {return null; } } else {return null; } })], null)); } if(!lt.util.load.provided_QMARK_('lt.plugins.elm-light.hinter')) { goog.provide('lt.plugins.elm_light.hinter'); goog.require('cljs.core'); goog.require('lt.plugins.elm_light.utils'); goog.require('cljs.core.async'); goog.require('lt.util.dom'); goog.require('cljs.core.async'); goog.require('clojure.string'); goog.require('lt.plugins.elm_light.utils'); goog.require('lt.util.dom'); goog.require('lt.objs.clients'); goog.require('clojure.string'); goog.require('lt.plugins.elm_light.utils'); goog.require('lt.objs.editor'); goog.require('lt.object'); goog.require('lt.object'); goog.require('lt.objs.editor'); goog.require('cljs.core.async'); goog.require('lt.plugins.elm_light.elm_ast'); goog.require('lt.plugins.elm_light.elm_ast'); goog.require('lt.objs.clients'); lt.plugins.elm_light.hinter.curr_time = (function curr_time(){return (new Date()).getTime(); }); lt.plugins.elm_light.hinter.chan_id = (function chan_id(ch){return (lt.plugins.elm_light.hinter.curr_time.call(null) + cljs.core.hash.call(null,ch)); }); lt.plugins.elm_light.hinter.store_ch = (function store_ch(ed,ch){var chs = (function (){var or__4884__auto__ = new cljs.core.Keyword(null,"elm-async-channels","elm-async-channels",3712460666).cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,ed));if(cljs.core.truth_(or__4884__auto__)) {return or__4884__auto__; } else {return cljs.core.PersistentArrayMap.EMPTY; } })();var ch_id = lt.plugins.elm_light.hinter.chan_id.call(null,ch);lt.object.assoc_in_BANG_.call(null,ed,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"elm-async-channels","elm-async-channels",3712460666)], null),cljs.core.assoc.call(null,chs,ch_id,ch)); return ch_id; }); lt.plugins.elm_light.hinter.get_ch = (function get_ch(ed,ch_id){return cljs.core.get_in.call(null,cljs.core.deref.call(null,ed),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"elm-async-channels","elm-async-channels",3712460666),ch_id], null)); }); lt.plugins.elm_light.hinter.remove_ch = (function remove_ch(ed,ch_id){var chs = (function (){var or__4884__auto__ = new cljs.core.Keyword(null,"elm-async-channels","elm-async-channels",3712460666).cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,ed));if(cljs.core.truth_(or__4884__auto__)) {return or__4884__auto__; } else {return cljs.core.PersistentArrayMap.EMPTY; } })();return lt.object.assoc_in_BANG_.call(null,ed,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"elm-async-channels","elm-async-channels",3712460666)], null),cljs.core.dissoc.call(null,chs,ch_id)); }); lt.plugins.elm_light.hinter.get_token = (function get_token(ed){var pos = lt.objs.editor.__GT_cursor.call(null,ed);var sym = lt.plugins.elm_light.utils.find_symbol.call(null,ed,pos);if(cljs.core.truth_((function (){var and__4872__auto__ = sym;if(cljs.core.truth_(and__4872__auto__)) {return cljs.core.seq.call(null,sym); } else {return and__4872__auto__; } })())) {return new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,"string","string",4416885635),sym,new cljs.core.Keyword(null,"start","start",1123661780),(new cljs.core.Keyword(null,"ch","ch",1013907415).cljs$core$IFn$_invoke$arity$1(pos) - cljs.core.count.call(null,sym)),new cljs.core.Keyword(null,"end","end",1014004813),new cljs.core.Keyword(null,"ch","ch",1013907415).cljs$core$IFn$_invoke$arity$1(pos),new cljs.core.Keyword(null,"line","line",1017226086),new cljs.core.Keyword(null,"line","line",1017226086).cljs$core$IFn$_invoke$arity$1(pos)], null); } else {return null; } }); lt.plugins.elm_light.hinter.trunc_str = (function trunc_str(v,max_length){if((100 > cljs.core.count.call(null,v))) {return lt.plugins.elm_light.hinter.sig; } else {return [cljs.core.str(v.substring(0,lt.plugins.elm_light.hinter.max_lenght)),cljs.core.str("...")].join(''); } }); lt.plugins.elm_light.hinter.display_text_elem = (function display_text_elem(token,completion){var elem = document.createElement("div");lt.util.dom.add_class.call(null,elem,"display-text"); lt.util.dom.html.call(null,elem,wrapMatch(completion.text,{"matched": new cljs.core.Keyword(null,"string","string",4416885635).cljs$core$IFn$_invoke$arity$1(token)})); return elem; }); lt.plugins.elm_light.hinter.module_elem = (function module_elem(completion){var elem = document.createElement("div");lt.util.dom.add_class.call(null,elem,"module"); lt.util.dom.html.call(null,elem,completion.moduleName); return elem; }); lt.plugins.elm_light.hinter.item_wrapper = (function item_wrapper(){var e__6317__auto__ = crate.core.html.call(null,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"div","div",1014003715),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"div.elm-completion","div.elm-completion",1209841106),""], null)], null));var seq__16261_16283 = cljs.core.seq.call(null,cljs.core.partition.call(null,2,cljs.core.PersistentVector.EMPTY));var chunk__16262_16284 = null;var count__16263_16285 = 0;var i__16264_16286 = 0;while(true){ if((i__16264_16286 < count__16263_16285)) {var vec__16265_16287 = cljs.core._nth.call(null,chunk__16262_16284,i__16264_16286);var ev__6318__auto___16288 = cljs.core.nth.call(null,vec__16265_16287,0,null);var func__6319__auto___16289 = cljs.core.nth.call(null,vec__16265_16287,1,null);lt.util.dom.on.call(null,e__6317__auto__,ev__6318__auto___16288,func__6319__auto___16289); { var G__16290 = seq__16261_16283; var G__16291 = chunk__16262_16284; var G__16292 = count__16263_16285; var G__16293 = (i__16264_16286 + 1); seq__16261_16283 = G__16290; chunk__16262_16284 = G__16291; count__16263_16285 = G__16292; i__16264_16286 = G__16293; continue; } } else {var temp__4092__auto___16294 = cljs.core.seq.call(null,seq__16261_16283);if(temp__4092__auto___16294) {var seq__16261_16295__$1 = temp__4092__auto___16294;if(cljs.core.chunked_seq_QMARK_.call(null,seq__16261_16295__$1)) {var c__5632__auto___16296 = cljs.core.chunk_first.call(null,seq__16261_16295__$1);{ var G__16297 = cljs.core.chunk_rest.call(null,seq__16261_16295__$1); var G__16298 = c__5632__auto___16296; var G__16299 = cljs.core.count.call(null,c__5632__auto___16296); var G__16300 = 0; seq__16261_16283 = G__16297; chunk__16262_16284 = G__16298; count__16263_16285 = G__16299; i__16264_16286 = G__16300; continue; } } else {var vec__16266_16301 = cljs.core.first.call(null,seq__16261_16295__$1);var ev__6318__auto___16302 = cljs.core.nth.call(null,vec__16266_16301,0,null);var func__6319__auto___16303 = cljs.core.nth.call(null,vec__16266_16301,1,null);lt.util.dom.on.call(null,e__6317__auto__,ev__6318__auto___16302,func__6319__auto___16303); { var G__16304 = cljs.core.next.call(null,seq__16261_16295__$1); var G__16305 = null; var G__16306 = 0; var G__16307 = 0; seq__16261_16283 = G__16304; chunk__16262_16284 = G__16305; count__16263_16285 = G__16306; i__16264_16286 = G__16307; continue; } } } else {} } break; } return e__6317__auto__; }); lt.plugins.elm_light.hinter.item_ui = (function item_ui(token,completion){var item_wrapper = lt.plugins.elm_light.hinter.item_wrapper.call(null);var wrapper = lt.util.dom.$.call(null,"div.elm-completion",item_wrapper);lt.util.dom.append.call(null,wrapper,lt.plugins.elm_light.hinter.display_text_elem.call(null,token,completion)); lt.util.dom.append.call(null,wrapper,lt.plugins.elm_light.hinter.module_elem.call(null,completion)); return item_wrapper; }); lt.plugins.elm_light.hinter.__GT_hints = (function __GT_hints(token,completions){return cljs.core.map.call(null,(function (p1__16267_SHARP_){return cljs.core.PersistentHashMap.fromArrays.call(null,[new cljs.core.Keyword(null,"text","text",1017460895),new cljs.core.Keyword(null,"displayText","displayText",2728236161),new cljs.core.Keyword(null,"moduleName","moduleName",4438520457),new cljs.core.Keyword(null,"signature","signature",2087488554),new cljs.core.Keyword(null,"render","render",4374279432),new cljs.core.Keyword(null,"from","from",1017056028),new cljs.core.Keyword(null,"to","to",1013907949)],[new cljs.core.Keyword(null,"candidate","candidate",1522567413).cljs$core$IFn$_invoke$arity$1(p1__16267_SHARP_),new cljs.core.Keyword(null,"candidate","candidate",1522567413).cljs$core$IFn$_invoke$arity$1(p1__16267_SHARP_),new cljs.core.Keyword(null,"module-name","module-name",4067691710).cljs$core$IFn$_invoke$arity$1(p1__16267_SHARP_),new cljs.core.Keyword(null,"signature","signature",2087488554).cljs$core$IFn$_invoke$arity$1(p1__16267_SHARP_),(function (el,self,data){return lt.util.dom.html.call(null,el,lt.util.dom.html.call(null,lt.plugins.elm_light.hinter.item_ui.call(null,token,data))); }),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"ch","ch",1013907415),new cljs.core.Keyword(null,"start","start",1123661780).cljs$core$IFn$_invoke$arity$1(token),new cljs.core.Keyword(null,"line","line",1017226086),new cljs.core.Keyword(null,"line","line",1017226086).cljs$core$IFn$_invoke$arity$1(token)], null),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"ch","ch",1013907415),new cljs.core.Keyword(null,"end","end",1014004813).cljs$core$IFn$_invoke$arity$1(token),new cljs.core.Keyword(null,"line","line",1017226086),new cljs.core.Keyword(null,"line","line",1017226086).cljs$core$IFn$_invoke$arity$1(token)], null)]); }),completions); }); lt.plugins.elm_light.hinter.connected_QMARK_ = (function connected_QMARK_(ed){var temp__4092__auto__ = new cljs.core.Keyword(null,"default","default",2558708147).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"client","client",3951159101).cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,ed)));if(cljs.core.truth_(temp__4092__auto__)) {var default_client = temp__4092__auto__;if(cljs.core.truth_(cljs.core.deref.call(null,default_client))) {return true; } else {return null; } } else {return null; } }); lt.plugins.elm_light.hinter.bg_parser = lt.objs.thread.thread_STAR_.call(null,(function tfun16268(){var orig__6390__auto__ = argsArray(arguments);var msg__6391__auto__ = orig__6390__auto__.shift();var args__6392__auto__ = orig__6390__auto__.map(cljs.reader.read_string);var raise = ((function (orig__6390__auto__,msg__6391__auto__,args__6392__auto__){ return (function (obj__6393__auto__,k__6394__auto__,v__6395__auto__){return _send(obj__6393__auto__,k__6394__auto__,cljs.core.pr_str.call(null,v__6395__auto__),"clj"); });})(orig__6390__auto__,msg__6391__auto__,args__6392__auto__)) ;args__6392__auto__.unshift(msg__6391__auto__.obj); return ((function (orig__6390__auto__,msg__6391__auto__,args__6392__auto__,raise){ return (function (obj_id,ch_id,elm_parser_path,elm_code){var parser = require(elm_parser_path);try{var res = parser.parse.call(null,elm_code,{"startRule": "headerOnly"});return _send(obj_id,new cljs.core.Keyword(null,"elm.hints.parser.results","elm.hints.parser.results",1182545987),{"module": res, "ch-id": ch_id, "status": "ok"}); }catch (e16270){var e = e16270;return _send(obj_id,new cljs.core.Keyword(null,"elm.hints.parser.results","elm.hints.parser.results",1182545987),{"error": e, "ch-id": ch_id, "status": "fail"}); }});})(orig__6390__auto__,msg__6391__auto__,args__6392__auto__,raise)) .apply(null,args__6392__auto__); })); lt.plugins.elm_light.hinter.__BEH__elm_hints_parser_results = (function __BEH__elm_hints_parser_results(ed,res){var pos = lt.objs.editor.__GT_cursor.call(null,ed);var token = lt.plugins.elm_light.hinter.get_token.call(null,ed);var path = new cljs.core.Keyword(null,"path","path",1017337751).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"info","info",1017141280).cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,ed)));var map__16272 = lt.plugins.elm_light.utils.mod_js__GT_clj.call(null,res,new cljs.core.Keyword(null,"keywordize-keys","keywordize-keys",4191781672),true);var map__16272__$1 = ((cljs.core.seq_QMARK_.call(null,map__16272))?cljs.core.apply.call(null,cljs.core.hash_map,map__16272):map__16272);var error = cljs.core.get.call(null,map__16272__$1,new cljs.core.Keyword(null,"error","error",1110689146));var status = cljs.core.get.call(null,map__16272__$1,new cljs.core.Keyword(null,"status","status",4416389988));var module = cljs.core.get.call(null,map__16272__$1,new cljs.core.Keyword(null,"module","module",4240087518));var ch_id = cljs.core.get.call(null,map__16272__$1,new cljs.core.Keyword(null,"ch-id","ch-id",1108477685));var ch = lt.plugins.elm_light.hinter.get_ch.call(null,ed,ch_id);var get_hints = cljs.core.partial.call(null,lt.plugins.elm_light.elm_ast.get_hints,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"token","token",1124445547),new cljs.core.Keyword(null,"string","string",4416885635).cljs$core$IFn$_invoke$arity$1(token),new cljs.core.Keyword(null,"pos","pos",1014015430),pos,new cljs.core.Keyword(null,"ed","ed",1013907473),ed], null),path,lt.plugins.elm_light.utils.project_path.call(null,path));if(cljs.core._EQ_.call(null,"ok",status)) {cljs.core.async.put_BANG_.call(null,ch,lt.plugins.elm_light.hinter.__GT_hints.call(null,token,get_hints.call(null,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"ast","ast",1014001140),module,new cljs.core.Keyword(null,"file","file",1017047278),path], null)))); } else {cljs.core.async.put_BANG_.call(null,ch,lt.plugins.elm_light.hinter.__GT_hints.call(null,token,get_hints.call(null))); } return lt.plugins.elm_light.hinter.remove_ch.call(null,ed,ch_id); }); lt.object.behavior_STAR_.call(null,new cljs.core.Keyword("lt.plugins.elm-light.hinter","elm-hints-parser-results","lt.plugins.elm-light.hinter/elm-hints-parser-results",3539628406),new cljs.core.Keyword(null,"reaction","reaction",4441361819),lt.plugins.elm_light.hinter.__BEH__elm_hints_parser_results,new cljs.core.Keyword(null,"desc","desc",1016984067),"Trigger hints after parsing relevant parts of editor for hinting",new cljs.core.Keyword(null,"triggers","triggers",2516997421),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"elm.hints.parser.results","elm.hints.parser.results",1182545987),null], null), null)); lt.plugins.elm_light.hinter.__BEH__elm_hints = (function __BEH__elm_hints(ed,channels){var pos = lt.objs.editor.__GT_cursor.call(null,ed);var token = lt.plugins.elm_light.hinter.get_token.call(null,ed);var ch = cljs.core.async.chan.call(null);var path = new cljs.core.Keyword(null,"path","path",1017337751).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"info","info",1017141280).cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,ed)));if(cljs.core.truth_((function (){var and__4872__auto__ = token;if(cljs.core.truth_(and__4872__auto__)) {return lt.plugins.elm_light.hinter.connected_QMARK_.call(null,ed); } else {return and__4872__auto__; } })())) {if(cljs.core.truth_(lt.plugins.elm_light.elm_ast.find_top_level_declaration_by_pos.call(null,pos,lt.plugins.elm_light.utils.project_path.call(null,path),path))) {cljs.core.async.put_BANG_.call(null,ch,lt.plugins.elm_light.hinter.__GT_hints.call(null,token,lt.plugins.elm_light.elm_ast.get_hints.call(null,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"token","token",1124445547),new cljs.core.Keyword(null,"string","string",4416885635).cljs$core$IFn$_invoke$arity$1(token),new cljs.core.Keyword(null,"pos","pos",1014015430),pos,new cljs.core.Keyword(null,"ed","ed",1013907473),ed], null),path,lt.plugins.elm_light.utils.project_path.call(null,path)))); return cljs.core.conj.call(null,channels,ch); } else {var ch_id = lt.plugins.elm_light.hinter.store_ch.call(null,ed,ch);lt.plugins.elm_light.hinter.bg_parser.call(null,ed,ch_id,lt.plugins.elm_light.elm_ast.elm_parser_path,lt.objs.editor.__GT_val.call(null,ed)); return cljs.core.conj.call(null,channels,ch); } } else {return channels; } }); lt.object.behavior_STAR_.call(null,new cljs.core.Keyword("lt.plugins.elm-light.hinter","elm-hints","lt.plugins.elm-light.hinter/elm-hints",3388910241),new cljs.core.Keyword(null,"reaction","reaction",4441361819),lt.plugins.elm_light.hinter.__BEH__elm_hints,new cljs.core.Keyword(null,"desc","desc",1016984067),"Provide Elm hints for current cursor position",new cljs.core.Keyword(null,"triggers","triggers",2516997421),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"init-hints","init-hints",4468593473),null], null), null)); } if(!lt.util.load.provided_QMARK_('lt.plugins.elm-light.linter')) { goog.provide('lt.plugins.elm_light.linter'); goog.require('cljs.core'); goog.require('crate.binding'); goog.require('lt.objs.statusbar'); goog.require('lt.util.dom'); goog.require('lt.util.dom'); goog.require('lt.objs.editor.pool'); goog.require('lt.objs.command'); goog.require('lt.objs.statusbar'); goog.require('crate.binding'); goog.require('lt.objs.editor'); goog.require('lt.object'); goog.require('lt.object'); goog.require('lt.objs.editor'); goog.require('lt.objs.editor.pool'); goog.require('lt.objs.command'); lt.plugins.elm_light.linter.status_class = (function status_class(p__19122){var map__19124 = p__19122;var map__19124__$1 = ((cljs.core.seq_QMARK_.call(null,map__19124))?cljs.core.apply.call(null,cljs.core.hash_map,map__19124):map__19124);var warnings = cljs.core.get.call(null,map__19124__$1,new cljs.core.Keyword(null,"warnings","warnings",1511995337));var errors = cljs.core.get.call(null,map__19124__$1,new cljs.core.Keyword(null,"errors","errors",4014236381));if((errors > 0)) {return "error"; } else {if((warnings > 0)) {return "warning"; } else {if(new cljs.core.Keyword(null,"else","else",1017020587)) {return ""; } else {return null; } } } }); lt.plugins.elm_light.linter.status_text = (function status_text(p__19125){var map__19127 = p__19125;var map__19127__$1 = ((cljs.core.seq_QMARK_.call(null,map__19127))?cljs.core.apply.call(null,cljs.core.hash_map,map__19127):map__19127);var warnings = cljs.core.get.call(null,map__19127__$1,new cljs.core.Keyword(null,"warnings","warnings",1511995337));var errors = cljs.core.get.call(null,map__19127__$1,new cljs.core.Keyword(null,"errors","errors",4014236381));return [cljs.core.str("Lint status: "),cljs.core.str(errors),cljs.core.str("/"),cljs.core.str(warnings)].join(''); }); lt.plugins.elm_light.linter.__GT_status_ui = (function __GT_status_ui(p__19128){var map__19130 = p__19128;var map__19130__$1 = ((cljs.core.seq_QMARK_.call(null,map__19130))?cljs.core.apply.call(null,cljs.core.hash_map,map__19130):map__19130);var lint_summary = cljs.core.get.call(null,map__19130__$1,new cljs.core.Keyword(null,"lint-summary","lint-summary",2275048270));return new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"span","span",1017440956),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"class","class",1108647146),[cljs.core.str("lint-status "),cljs.core.str(lt.plugins.elm_light.linter.status_class.call(null,lint_summary))].join('')], null),lt.plugins.elm_light.linter.status_text.call(null,lint_summary)], null); }); lt.plugins.elm_light.linter.__BEH__update_lint_status = (function __BEH__update_lint_status(this$,f){return lt.object.update_BANG_.call(null,this$,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"lint-summary","lint-summary",2275048270)], null),f); }); lt.object.behavior_STAR_.call(null,new cljs.core.Keyword("lt.plugins.elm-light.linter","update-lint-status","lt.plugins.elm-light.linter/update-lint-status",1465899355),new cljs.core.Keyword(null,"reaction","reaction",4441361819),lt.plugins.elm_light.linter.__BEH__update_lint_status,new cljs.core.Keyword(null,"triggers","triggers",2516997421),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"update!","update!",779473898),null], null), null)); lt.object.object_STAR_.call(null,new cljs.core.Keyword("lt.plugins.elm-light.linter","statusbar.lint-status","lt.plugins.elm-light.linter/statusbar.lint-status",2197520852),new cljs.core.Keyword(null,"triggers","triggers",2516997421),cljs.core.PersistentHashSet.EMPTY,new cljs.core.Keyword(null,"behaviors","behaviors",607554515),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword("lt.plugins.elm-light.linter","update-lint-status","lt.plugins.elm-light.linter/update-lint-status",1465899355),null], null), null),new cljs.core.Keyword(null,"lint-summary","lint-summary",2275048270),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"errors","errors",4014236381),0,new cljs.core.Keyword(null,"warnings","warnings",1511995337),0], null),new cljs.core.Keyword(null,"init","init",1017141378),(function (this$){return lt.objs.statusbar.statusbar_item.call(null,crate.binding.bound.call(null,this$,lt.plugins.elm_light.linter.__GT_status_ui),""); })); lt.plugins.elm_light.linter.statusbar_lint_summary = lt.object.create.call(null,new cljs.core.Keyword("lt.plugins.elm-light.linter","statusbar.lint-status","lt.plugins.elm-light.linter/statusbar.lint-status",2197520852)); lt.objs.statusbar.add_statusbar_item.call(null,lt.plugins.elm_light.linter.statusbar_lint_summary); lt.plugins.elm_light.linter.grouped_lint_count = (function grouped_lint_count(ed){var temp__4090__auto__ = new cljs.core.Keyword(null,"linter-results","linter-results",4482067083).cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,ed));if(cljs.core.truth_(temp__4090__auto__)) {var results = temp__4090__auto__;return cljs.core.into.call(null,cljs.core.PersistentArrayMap.EMPTY,cljs.core.map.call(null,((function (results,temp__4090__auto__){ return (function (p__19133){var vec__19134 = p__19133;var k = cljs.core.nth.call(null,vec__19134,0,null);var v = cljs.core.nth.call(null,vec__19134,1,null);return new cljs.core.PersistentArrayMap.fromArray([k,cljs.core.count.call(null,v)], true, false); });})(results,temp__4090__auto__)) ,cljs.core.group_by.call(null,new cljs.core.Keyword(null,"category","category",1064415344),cljs.core.map.call(null,new cljs.core.Keyword(null,"result","result",4374444943),cljs.core.vals.call(null,results))))); } else {return new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"error","error",1110689146),0,new cljs.core.Keyword(null,"warning","warning",2138350350),0], null); } }); lt.plugins.elm_light.linter.update_status_for_editor = (function update_status_for_editor(ed){var map__19137 = lt.plugins.elm_light.linter.grouped_lint_count.call(null,ed);var map__19137__$1 = ((cljs.core.seq_QMARK_.call(null,map__19137))?cljs.core.apply.call(null,cljs.core.hash_map,map__19137):map__19137);var warning = cljs.core.get.call(null,map__19137__$1,new cljs.core.Keyword(null,"warning","warning",2138350350));var error = cljs.core.get.call(null,map__19137__$1,new cljs.core.Keyword(null,"error","error",1110689146));return lt.object.raise.call(null,lt.plugins.elm_light.linter.statusbar_lint_summary,new cljs.core.Keyword(null,"update!","update!",779473898),((function (map__19137,map__19137__$1,warning,error){ return (function (p1__19135_SHARP_){return cljs.core.assoc.call(null,p1__19135_SHARP_,new cljs.core.Keyword(null,"warnings","warnings",1511995337),(function (){var or__4884__auto__ = warning;if(cljs.core.truth_(or__4884__auto__)) {return or__4884__auto__; } else {return 0; } })(),new cljs.core.Keyword(null,"errors","errors",4014236381),(function (){var or__4884__auto__ = error;if(cljs.core.truth_(or__4884__auto__)) {return or__4884__auto__; } else {return 0; } })()); });})(map__19137,map__19137__$1,warning,error)) ); }); lt.plugins.elm_light.linter.__BEH__update_linter_on_editor_change = (function __BEH__update_linter_on_editor_change(ed){return lt.plugins.elm_light.linter.update_status_for_editor.call(null,ed); }); lt.object.behavior_STAR_.call(null,new cljs.core.Keyword("lt.plugins.elm-light.linter","update-linter-on-editor-change","lt.plugins.elm-light.linter/update-linter-on-editor-change",2858337088),new cljs.core.Keyword(null,"reaction","reaction",4441361819),lt.plugins.elm_light.linter.__BEH__update_linter_on_editor_change,new cljs.core.Keyword(null,"triggers","triggers",2516997421),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"focus","focus",1111509066),null], null), null)); lt.plugins.elm_light.linter.remove_widget = (function remove_widget(ed,el){try{lt.util.dom.remove.call(null,el); }catch (e19139){var e_19204 = e19139;}return lt.objs.editor.focus.call(null,ed); }); lt.plugins.elm_light.linter.remove_res = (function remove_res(ed,res_id){var map__19141_19205 = cljs.core.get_in.call(null,cljs.core.deref.call(null,ed),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"linter-results","linter-results",4482067083),res_id], null));var map__19141_19206__$1 = ((cljs.core.seq_QMARK_.call(null,map__19141_19205))?cljs.core.apply.call(null,cljs.core.hash_map,map__19141_19205):map__19141_19205);var dill_19207 = map__19141_19206__$1;var result_19208 = cljs.core.get.call(null,map__19141_19206__$1,new cljs.core.Keyword(null,"result","result",4374444943));var mark_19209 = cljs.core.get.call(null,map__19141_19206__$1,new cljs.core.Keyword(null,"mark","mark",1017248319));if(cljs.core.truth_(mark_19209)) {mark_19209.clear(); } else {} lt.object.update_BANG_.call(null,ed,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"linter-results","linter-results",4482067083)], null),cljs.core.dissoc,res_id); return lt.objs.editor.focus.call(null,ed); }); lt.plugins.elm_light.linter.current_range = (function current_range(ed,mark){var rng = mark.find();var from = rng.from;var to = rng.to;return new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"from","from",1017056028),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"ch","ch",1013907415),from.ch,new cljs.core.Keyword(null,"line","line",1017226086),from.line], null),new cljs.core.Keyword(null,"to","to",1013907949),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"ch","ch",1013907415),to.ch,new cljs.core.Keyword(null,"line","line",1017226086),to.line], null)], null); }); lt.plugins.elm_light.linter.execute_action = (function execute_action(ed,res_id,action_fn,res){var map__19143 = cljs.core.get_in.call(null,cljs.core.deref.call(null,ed),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"linter-results","linter-results",4482067083),res_id], null));var map__19143__$1 = ((cljs.core.seq_QMARK_.call(null,map__19143))?cljs.core.apply.call(null,cljs.core.hash_map,map__19143):map__19143);var mark = cljs.core.get.call(null,map__19143__$1,new cljs.core.Keyword(null,"mark","mark",1017248319));action_fn.call(null,res,lt.plugins.elm_light.linter.current_range.call(null,ed,mark)); return lt.plugins.elm_light.linter.remove_res.call(null,ed,res_id); }); lt.plugins.elm_light.linter.action_ui = (function action_ui(ed,action,res_id,res){var e__6317__auto__ = crate.core.html.call(null,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"span.button","span.button",4282180040),[cljs.core.str(new cljs.core.Keyword(null,"text","text",1017460895).cljs$core$IFn$_invoke$arity$1(action))].join('')], null));var seq__19150_19210 = cljs.core.seq.call(null,cljs.core.partition.call(null,2,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"click","click",1108654330),((function (e__6317__auto__){ return (function (){return lt.plugins.elm_light.linter.execute_action.call(null,ed,res_id,new cljs.core.Keyword(null,"action","action",3885920680).cljs$core$IFn$_invoke$arity$1(action),res); });})(e__6317__auto__)) ], null)));var chunk__19151_19211 = null;var count__19152_19212 = 0;var i__19153_19213 = 0;while(true){ if((i__19153_19213 < count__19152_19212)) {var vec__19154_19214 = cljs.core._nth.call(null,chunk__19151_19211,i__19153_19213);var ev__6318__auto___19215 = cljs.core.nth.call(null,vec__19154_19214,0,null);var func__6319__auto___19216 = cljs.core.nth.call(null,vec__19154_19214,1,null);lt.util.dom.on.call(null,e__6317__auto__,ev__6318__auto___19215,func__6319__auto___19216); { var G__19217 = seq__19150_19210; var G__19218 = chunk__19151_19211; var G__19219 = count__19152_19212; var G__19220 = (i__19153_19213 + 1); seq__19150_19210 = G__19217; chunk__19151_19211 = G__19218; count__19152_19212 = G__19219; i__19153_19213 = G__19220; continue; } } else {var temp__4092__auto___19221 = cljs.core.seq.call(null,seq__19150_19210);if(temp__4092__auto___19221) {var seq__19150_19222__$1 = temp__4092__auto___19221;if(cljs.core.chunked_seq_QMARK_.call(null,seq__19150_19222__$1)) {var c__5632__auto___19223 = cljs.core.chunk_first.call(null,seq__19150_19222__$1);{ var G__19224 = cljs.core.chunk_rest.call(null,seq__19150_19222__$1); var G__19225 = c__5632__auto___19223; var G__19226 = cljs.core.count.call(null,c__5632__auto___19223); var G__19227 = 0; seq__19150_19210 = G__19224; chunk__19151_19211 = G__19225; count__19152_19212 = G__19226; i__19153_19213 = G__19227; continue; } } else {var vec__19155_19228 = cljs.core.first.call(null,seq__19150_19222__$1);var ev__6318__auto___19229 = cljs.core.nth.call(null,vec__19155_19228,0,null);var func__6319__auto___19230 = cljs.core.nth.call(null,vec__19155_19228,1,null);lt.util.dom.on.call(null,e__6317__auto__,ev__6318__auto___19229,func__6319__auto___19230); { var G__19231 = cljs.core.next.call(null,seq__19150_19222__$1); var G__19232 = null; var G__19233 = 0; var G__19234 = 0; seq__19150_19210 = G__19231; chunk__19151_19211 = G__19232; count__19152_19212 = G__19233; i__19153_19213 = G__19234; continue; } } } else {} } break; } return e__6317__auto__; }); lt.plugins.elm_light.linter.inline_ui = (function inline_ui(ed,res_id,p__19159){var map__19167 = p__19159;var map__19167__$1 = ((cljs.core.seq_QMARK_.call(null,map__19167))?cljs.core.apply.call(null,cljs.core.hash_map,map__19167):map__19167);var res = map__19167__$1;var actions = cljs.core.get.call(null,map__19167__$1,new cljs.core.Keyword(null,"actions","actions",4147068015));var category = cljs.core.get.call(null,map__19167__$1,new cljs.core.Keyword(null,"category","category",1064415344));var details = cljs.core.get.call(null,map__19167__$1,new cljs.core.Keyword(null,"details","details",2571625908));var title = cljs.core.get.call(null,map__19167__$1,new cljs.core.Keyword(null,"title","title",1124275658));var e__6317__auto__ = crate.core.html.call(null,new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"div","div",1014003715),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"tabindex","tabindex",4410954191),-1,new cljs.core.Keyword(null,"class","class",1108647146),[cljs.core.str("linter-res "),cljs.core.str((function (){var or__4884__auto__ = cljs.core.name.call(null,category);if(cljs.core.truth_(or__4884__auto__)) {return or__4884__auto__; } else {return "error"; } })())].join('')], null),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"p.title","p.title",3057381068),title], null),new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"div.details","div.details",4139669847),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"pre","pre",1014015509),details], null),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"div","div",1014003715),cljs.core.map.call(null,((function (map__19167,map__19167__$1,res,actions,category,details,title){ return (function (p1__19156_SHARP_){return lt.plugins.elm_light.linter.action_ui.call(null,ed,p1__19156_SHARP_,res_id,res); });})(map__19167,map__19167__$1,res,actions,category,details,title)) ,actions)], null)], null)], null));var seq__19168_19235 = cljs.core.seq.call(null,cljs.core.partition.call(null,2,new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"blur","blur",1016931289),((function (e__6317__auto__,map__19167,map__19167__$1,res,actions,category,details,title){ return (function (p1__19157_SHARP_){return lt.plugins.elm_light.linter.remove_widget.call(null,ed,p1__19157_SHARP_.target); });})(e__6317__auto__,map__19167,map__19167__$1,res,actions,category,details,title)) ,new cljs.core.Keyword(null,"keydown","keydown",4493897459),((function (e__6317__auto__,map__19167,map__19167__$1,res,actions,category,details,title){ return (function (p1__19158_SHARP_){var kc = p1__19158_SHARP_.keyCode;if(cljs.core._EQ_.call(null,kc,27)) {lt.plugins.elm_light.linter.remove_widget.call(null,ed,p1__19158_SHARP_.target); } else {} if((cljs.core._EQ_.call(null,kc,13)) && (cljs.core.seq.call(null,actions))) {p1__19158_SHARP_.preventDefault(); p1__19158_SHARP_.stopPropagation(); return lt.plugins.elm_light.linter.execute_action.call(null,ed,res_id,new cljs.core.Keyword(null,"action","action",3885920680).cljs$core$IFn$_invoke$arity$1(cljs.core.first.call(null,actions)),res); } else {return null; } });})(e__6317__auto__,map__19167,map__19167__$1,res,actions,category,details,title)) ], null)));var chunk__19169_19236 = null;var count__19170_19237 = 0;var i__19171_19238 = 0;while(true){ if((i__19171_19238 < count__19170_19237)) {var vec__19172_19239 = cljs.core._nth.call(null,chunk__19169_19236,i__19171_19238);var ev__6318__auto___19240 = cljs.core.nth.call(null,vec__19172_19239,0,null);var func__6319__auto___19241 = cljs.core.nth.call(null,vec__19172_19239,1,null);lt.util.dom.on.call(null,e__6317__auto__,ev__6318__auto___19240,func__6319__auto___19241); { var G__19242 = seq__19168_19235; var G__19243 = chunk__19169_19236; var G__19244 = count__19170_19237; var G__19245 = (i__19171_19238 + 1); seq__19168_19235 = G__19242; chunk__19169_19236 = G__19243; count__19170_19237 = G__19244; i__19171_19238 = G__19245; continue; } } else {var temp__4092__auto___19246 = cljs.core.seq.call(null,seq__19168_19235);if(temp__4092__auto___19246) {var seq__19168_19247__$1 = temp__4092__auto___19246;if(cljs.core.chunked_seq_QMARK_.call(null,seq__19168_19247__$1)) {var c__5632__auto___19248 = cljs.core.chunk_first.call(null,seq__19168_19247__$1);{ var G__19249 = cljs.core.chunk_rest.call(null,seq__19168_19247__$1); var G__19250 = c__5632__auto___19248; var G__19251 = cljs.core.count.call(null,c__5632__auto___19248); var G__19252 = 0; seq__19168_19235 = G__19249; chunk__19169_19236 = G__19250; count__19170_19237 = G__19251; i__19171_19238 = G__19252; continue; } } else {var vec__19173_19253 = cljs.core.first.call(null,seq__19168_19247__$1);var ev__6318__auto___19254 = cljs.core.nth.call(null,vec__19173_19253,0,null);var func__6319__auto___19255 = cljs.core.nth.call(null,vec__19173_19253,1,null);lt.util.dom.on.call(null,e__6317__auto__,ev__6318__auto___19254,func__6319__auto___19255); { var G__19256 = cljs.core.next.call(null,seq__19168_19247__$1); var G__19257 = null; var G__19258 = 0; var G__19259 = 0; seq__19168_19235 = G__19256; chunk__19169_19236 = G__19257; count__19170_19237 = G__19258; i__19171_19238 = G__19259; continue; } } } else {} } break; } return e__6317__auto__; }); lt.plugins.elm_light.linter.add_widget = (function add_widget(ed,res_id){var map__19175 = cljs.core.get_in.call(null,cljs.core.deref.call(null,ed),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"linter-results","linter-results",4482067083),res_id], null));var map__19175__$1 = ((cljs.core.seq_QMARK_.call(null,map__19175))?cljs.core.apply.call(null,cljs.core.hash_map,map__19175):map__19175);var result = cljs.core.get.call(null,map__19175__$1,new cljs.core.Keyword(null,"result","result",4374444943));var mark = cljs.core.get.call(null,map__19175__$1,new cljs.core.Keyword(null,"mark","mark",1017248319));var ui = lt.plugins.elm_light.linter.inline_ui.call(null,ed,res_id,result);var from = mark.find().from;lt.objs.editor.__GT_cm_ed.call(null,ed).addWidget(from,ui,{"scrollIntoView": true}); return lt.util.dom.focus.call(null,ui); }); lt.plugins.elm_light.linter.mark_range = (function mark_range(ed,p__19176){var map__19178 = p__19176;var map__19178__$1 = ((cljs.core.seq_QMARK_.call(null,map__19178))?cljs.core.apply.call(null,cljs.core.hash_map,map__19178):map__19178);var code_range = map__19178__$1;var to = cljs.core.get.call(null,map__19178__$1,new cljs.core.Keyword(null,"to","to",1013907949));var from = cljs.core.get.call(null,map__19178__$1,new cljs.core.Keyword(null,"from","from",1017056028));if(!(cljs.core._EQ_.call(null,from,to))) {return code_range; } else {return new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"from","from",1017056028),cljs.core.assoc.call(null,from,new cljs.core.Keyword(null,"ch","ch",1013907415),0),new cljs.core.Keyword(null,"to","to",1013907949),cljs.core.assoc.call(null,to,new cljs.core.Keyword(null,"ch","ch",1013907415),lt.objs.editor.line_length.call(null,ed,new cljs.core.Keyword(null,"line","line",1017226086).cljs$core$IFn$_invoke$arity$1(from)))], null); } }); lt.plugins.elm_light.linter.create_mark = (function create_mark(ed,p__19179){var map__19182 = p__19179;var map__19182__$1 = ((cljs.core.seq_QMARK_.call(null,map__19182))?cljs.core.apply.call(null,cljs.core.hash_map,map__19182):map__19182);var code_range = cljs.core.get.call(null,map__19182__$1,new cljs.core.Keyword(null,"code-range","code-range",3297446095));var category = cljs.core.get.call(null,map__19182__$1,new cljs.core.Keyword(null,"category","category",1064415344));var map__19183 = lt.plugins.elm_light.linter.mark_range.call(null,ed,code_range);var map__19183__$1 = ((cljs.core.seq_QMARK_.call(null,map__19183))?cljs.core.apply.call(null,cljs.core.hash_map,map__19183):map__19183);var to = cljs.core.get.call(null,map__19183__$1,new cljs.core.Keyword(null,"to","to",1013907949));var from = cljs.core.get.call(null,map__19183__$1,new cljs.core.Keyword(null,"from","from",1017056028));return lt.objs.editor.mark.call(null,ed,from,to,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"className","className",1004015509),[cljs.core.str("lint-"),cljs.core.str((function (){var or__4884__auto__ = cljs.core.name.call(null,category);if(cljs.core.truth_(or__4884__auto__)) {return or__4884__auto__; } else {return "error"; } })())].join(''),new cljs.core.Keyword(null,"inclusiveLeft","inclusiveLeft",4040813445),false,new cljs.core.Keyword(null,"inclusiveRight","inclusiveRight",4659437314),false], null)); }); lt.plugins.elm_light.linter.__BEH__linter_result_BANG_ = (function __BEH__linter_result_BANG_(ed,res){var id = [cljs.core.str(cljs.core.gensym.call(null,"linter-res"))].join('');var mark = lt.plugins.elm_light.linter.create_mark.call(null,ed,res);mark.ltlintid = id; mark.lttype = new cljs.core.Keyword(null,"linter","linter",4206213986); lt.object.update_BANG_.call(null,ed,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"linter-results","linter-results",4482067083)], null),cljs.core.assoc,id,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"mark","mark",1017248319),mark,new cljs.core.Keyword(null,"result","result",4374444943),res], null)); return lt.plugins.elm_light.linter.update_status_for_editor.call(null,ed); }); lt.object.behavior_STAR_.call(null,new cljs.core.Keyword("lt.plugins.elm-light.linter","linter-result!","lt.plugins.elm-light.linter/linter-result!",4030814380),new cljs.core.Keyword(null,"reaction","reaction",4441361819),lt.plugins.elm_light.linter.__BEH__linter_result_BANG_,new cljs.core.Keyword(null,"triggers","triggers",2516997421),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"linter-result!","linter-result!",4482067001),null], null), null)); lt.plugins.elm_light.linter.__BEH__clear_linter_results_BANG_ = (function __BEH__clear_linter_results_BANG_(ed){var seq__19190_19260 = cljs.core.seq.call(null,new cljs.core.Keyword(null,"linter-results","linter-results",4482067083).cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,ed)));var chunk__19191_19261 = null;var count__19192_19262 = 0;var i__19193_19263 = 0;while(true){ if((i__19193_19263 < count__19192_19262)) {var vec__19194_19264 = cljs.core._nth.call(null,chunk__19191_19261,i__19193_19263);var id_19265 = cljs.core.nth.call(null,vec__19194_19264,0,null);var res_19266 = cljs.core.nth.call(null,vec__19194_19264,1,null);var temp__4092__auto___19267 = new cljs.core.Keyword(null,"mark","mark",1017248319).cljs$core$IFn$_invoke$arity$1(res_19266);if(cljs.core.truth_(temp__4092__auto___19267)) {var m_19268 = temp__4092__auto___19267;m_19268.clear(); } else {} var temp__4092__auto___19269 = new cljs.core.Keyword(null,"widget","widget",4520824246).cljs$core$IFn$_invoke$arity$1(res_19266);if(cljs.core.truth_(temp__4092__auto___19269)) {var w_19270 = temp__4092__auto___19269;lt.util.dom.remove.call(null,w_19270); } else {} { var G__19271 = seq__19190_19260; var G__19272 = chunk__19191_19261; var G__19273 = count__19192_19262; var G__19274 = (i__19193_19263 + 1); seq__19190_19260 = G__19271; chunk__19191_19261 = G__19272; count__19192_19262 = G__19273; i__19193_19263 = G__19274; continue; } } else {var temp__4092__auto___19275 = cljs.core.seq.call(null,seq__19190_19260);if(temp__4092__auto___19275) {var seq__19190_19276__$1 = temp__4092__auto___19275;if(cljs.core.chunked_seq_QMARK_.call(null,seq__19190_19276__$1)) {var c__5632__auto___19277 = cljs.core.chunk_first.call(null,seq__19190_19276__$1);{ var G__19278 = cljs.core.chunk_rest.call(null,seq__19190_19276__$1); var G__19279 = c__5632__auto___19277; var G__19280 = cljs.core.count.call(null,c__5632__auto___19277); var G__19281 = 0; seq__19190_19260 = G__19278; chunk__19191_19261 = G__19279; count__19192_19262 = G__19280; i__19193_19263 = G__19281; continue; } } else {var vec__19195_19282 = cljs.core.first.call(null,seq__19190_19276__$1);var id_19283 = cljs.core.nth.call(null,vec__19195_19282,0,null);var res_19284 = cljs.core.nth.call(null,vec__19195_19282,1,null);var temp__4092__auto___19285__$1 = new cljs.core.Keyword(null,"mark","mark",1017248319).cljs$core$IFn$_invoke$arity$1(res_19284);if(cljs.core.truth_(temp__4092__auto___19285__$1)) {var m_19286 = temp__4092__auto___19285__$1;m_19286.clear(); } else {} var temp__4092__auto___19287__$1 = new cljs.core.Keyword(null,"widget","widget",4520824246).cljs$core$IFn$_invoke$arity$1(res_19284);if(cljs.core.truth_(temp__4092__auto___19287__$1)) {var w_19288 = temp__4092__auto___19287__$1;lt.util.dom.remove.call(null,w_19288); } else {} { var G__19289 = cljs.core.next.call(null,seq__19190_19276__$1); var G__19290 = null; var G__19291 = 0; var G__19292 = 0; seq__19190_19260 = G__19289; chunk__19191_19261 = G__19290; count__19192_19262 = G__19291; i__19193_19263 = G__19292; continue; } } } else {} } break; } lt.object.assoc_in_BANG_.call(null,ed,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"linter-results","linter-results",4482067083)], null),null); return lt.plugins.elm_light.linter.update_status_for_editor.call(null,ed); }); lt.object.behavior_STAR_.call(null,new cljs.core.Keyword("lt.plugins.elm-light.linter","clear-linter-results!","lt.plugins.elm-light.linter/clear-linter-results!",4126992011),new cljs.core.Keyword(null,"reaction","reaction",4441361819),lt.plugins.elm_light.linter.__BEH__clear_linter_results_BANG_,new cljs.core.Keyword(null,"triggers","triggers",2516997421),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"clear-linter-results!","clear-linter-results!",4528495642),null], null), null)); lt.objs.command.command.call(null,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"command","command",1964298941),new cljs.core.Keyword(null,"editor.linter.remove-all","editor.linter.remove-all",3899267783),new cljs.core.Keyword(null,"desc","desc",1016984067),"Editor: Clear all lint results",new cljs.core.Keyword(null,"exec","exec",1017031683),(function (){var temp__4092__auto__ = lt.objs.editor.pool.last_active.call(null);if(cljs.core.truth_(temp__4092__auto__)) {var ed = temp__4092__auto__;return lt.object.raise.call(null,ed,new cljs.core.Keyword(null,"clear-linter-results!","clear-linter-results!",4528495642)); } else {return null; } })], null)); lt.plugins.elm_light.linter.find_current_lint_mark = (function find_current_lint_mark(ed){return cljs.core.first.call(null,cljs.core.filter.call(null,(function (p1__19196_SHARP_){return cljs.core._EQ_.call(null,new cljs.core.Keyword(null,"linter","linter",4206213986),p1__19196_SHARP_.lttype); }),lt.objs.editor.find_marks.call(null,ed,lt.objs.editor.__GT_cursor.call(null,ed)))); }); lt.plugins.elm_light.linter.get_widget_by_mark = (function get_widget_by_mark(ed,mark){return cljs.core.get_in.call(null,cljs.core.deref.call(null,ed),new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"linter-results","linter-results",4482067083),mark.ltlintid,new cljs.core.Keyword(null,"widget","widget",4520824246)], null)); }); lt.plugins.elm_light.linter.mark__GT_pos = (function mark__GT_pos(mark){var cm_pos = mark.find().from;return new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"ch","ch",1013907415),cm_pos.ch,new cljs.core.Keyword(null,"line","line",1017226086),cm_pos.line], null); }); lt.plugins.elm_light.linter.get_all_lint_marks = (function get_all_lint_marks(ed){return cljs.core.sort_by.call(null,(function (p1__19198_SHARP_){return cljs.core.juxt.call(null,new cljs.core.Keyword(null,"line","line",1017226086),new cljs.core.Keyword(null,"ch","ch",1013907415)).call(null,lt.plugins.elm_light.linter.mark__GT_pos.call(null,p1__19198_SHARP_)); }),cljs.core.filter.call(null,(function (p1__19197_SHARP_){return cljs.core._EQ_.call(null,new cljs.core.Keyword(null,"linter","linter",4206213986),p1__19197_SHARP_.lttype); }),lt.objs.editor.__GT_cm_ed.call(null,ed).getAllMarks())); }); lt.plugins.elm_light.linter.split_with_mark = (function split_with_mark(ed){var all_marks = lt.plugins.elm_light.linter.get_all_lint_marks.call(null,ed);var curr_mark = lt.plugins.elm_light.linter.find_current_lint_mark.call(null,ed);return cljs.core.split_with.call(null,((function (all_marks,curr_mark){ return (function (p1__19199_SHARP_){return !(cljs.core._EQ_.call(null,(cljs.core.truth_(curr_mark)?curr_mark.ltlintid:null),p1__19199_SHARP_.ltlintid)); });})(all_marks,curr_mark)) ,all_marks); }); lt.plugins.elm_light.linter.find_next_mark = (function find_next_mark(ed){var vec__19201 = lt.plugins.elm_light.linter.split_with_mark.call(null,ed);var ms1 = cljs.core.nth.call(null,vec__19201,0,null);var ms2 = cljs.core.nth.call(null,vec__19201,1,null);return cljs.core.first.call(null,cljs.core.into.call(null,cljs.core.vec.call(null,cljs.core.drop.call(null,1,ms2)),ms1)); }); lt.plugins.elm_light.linter.find_prev_mark = (function find_prev_mark(ed){var vec__19203 = lt.plugins.elm_light.linter.split_with_mark.call(null,ed);var ms1 = cljs.core.nth.call(null,vec__19203,0,null);var ms2 = cljs.core.nth.call(null,vec__19203,1,null);return cljs.core.first.call(null,cljs.core.into.call(null,cljs.core.reverse.call(null,cljs.core.drop.call(null,1,ms2)),ms1)); }); lt.objs.command.command.call(null,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"command","command",1964298941),new cljs.core.Keyword(null,"editor.linter.details","editor.linter.details",4312538199),new cljs.core.Keyword(null,"desc","desc",1016984067),"Linter: Show details at cursor",new cljs.core.Keyword(null,"exec","exec",1017031683),(function (){var temp__4092__auto__ = lt.objs.editor.pool.last_active.call(null);if(cljs.core.truth_(temp__4092__auto__)) {var ed = temp__4092__auto__;var temp__4092__auto____$1 = lt.plugins.elm_light.linter.find_current_lint_mark.call(null,ed);if(cljs.core.truth_(temp__4092__auto____$1)) {var mark = temp__4092__auto____$1;return lt.plugins.elm_light.linter.add_widget.call(null,ed,mark.ltlintid); } else {return null; } } else {return null; } })], null)); lt.objs.command.command.call(null,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"command","command",1964298941),new cljs.core.Keyword(null,"editor.next.lint-result","editor.next.lint-result",4143748223),new cljs.core.Keyword(null,"desc","desc",1016984067),"Linter: Move to next result",new cljs.core.Keyword(null,"exec","exec",1017031683),(function (){var temp__4092__auto__ = lt.objs.editor.pool.last_active.call(null);if(cljs.core.truth_(temp__4092__auto__)) {var ed = temp__4092__auto__;var temp__4092__auto____$1 = lt.plugins.elm_light.linter.find_next_mark.call(null,ed);if(cljs.core.truth_(temp__4092__auto____$1)) {var next_mark = temp__4092__auto____$1;return lt.objs.editor.move_cursor.call(null,ed,lt.plugins.elm_light.linter.mark__GT_pos.call(null,next_mark)); } else {return null; } } else {return null; } })], null)); lt.objs.command.command.call(null,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"command","command",1964298941),new cljs.core.Keyword(null,"editor.prev.lint-result","editor.prev.lint-result",1674890175),new cljs.core.Keyword(null,"desc","desc",1016984067),"Linter: Move to previous result",new cljs.core.Keyword(null,"exec","exec",1017031683),(function (){var temp__4092__auto__ = lt.objs.editor.pool.last_active.call(null);if(cljs.core.truth_(temp__4092__auto__)) {var ed = temp__4092__auto__;var temp__4092__auto____$1 = lt.plugins.elm_light.linter.find_prev_mark.call(null,ed);if(cljs.core.truth_(temp__4092__auto____$1)) {var prev_mark = temp__4092__auto____$1;return lt.objs.editor.move_cursor.call(null,ed,lt.plugins.elm_light.linter.mark__GT_pos.call(null,lt.plugins.elm_light.linter.next_mark)); } else {return null; } } else {return null; } })], null)); } if(!lt.util.load.provided_QMARK_('lt.plugins.elm-light')) { goog.provide('lt.plugins.elm_light'); goog.require('cljs.core'); goog.require('lt.plugins.elm_light.utils'); goog.require('lt.plugins.elm_light.clients'); goog.require('lt.objs.files'); goog.require('lt.util.js'); goog.require('lt.plugins.elm_light.gutter'); goog.require('lt.plugins.elm_light.linter'); goog.require('lt.objs.tabs'); goog.require('clojure.string'); goog.require('lt.plugins.elm_light.utils'); goog.require('lt.objs.popup'); goog.require('lt.objs.popup'); goog.require('lt.plugins.elm_light.linter'); goog.require('lt.objs.notifos'); goog.require('lt.plugins.elm_light.clients'); goog.require('lt.objs.browser'); goog.require('lt.objs.notifos'); goog.require('lt.objs.editor.pool'); goog.require('lt.plugins.elm_light.widgets.selector'); goog.require('lt.objs.command'); goog.require('lt.objs.files'); goog.require('lt.objs.sidebar.clients'); goog.require('lt.objs.eval'); goog.require('lt.objs.clients'); goog.require('clojure.string'); goog.require('lt.plugins.elm_light.elm_ast'); goog.require('lt.objs.browser'); goog.require('lt.plugins.elm_light.selection'); goog.require('lt.plugins.elm_light.selection'); goog.require('lt.objs.editor'); goog.require('lt.object'); goog.require('lt.object'); goog.require('lt.objs.console'); goog.require('lt.objs.tabs'); goog.require('lt.objs.editor'); goog.require('lt.objs.console'); goog.require('lt.plugins.elm_light.gutter'); goog.require('lt.plugins.elm_light.repl'); goog.require('lt.plugins.elm_light.elm_ast'); goog.require('lt.plugins.elm_light.widgets.selector'); goog.require('lt.objs.eval'); goog.require('lt.objs.clients'); goog.require('lt.objs.editor.pool'); goog.require('lt.util.js'); goog.require('lt.objs.sidebar.clients'); goog.require('lt.objs.command'); lt.plugins.elm_light.__BEH__elm_unsupported = (function __BEH__elm_unsupported(_,res){lt.objs.notifos.done_working.call(null); return lt.objs.notifos.set_msg_BANG_.call(null,new cljs.core.Keyword(null,"err","err",1014004951).cljs$core$IFn$_invoke$arity$1(res),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"class","class",1108647146),"error"], null)); }); lt.object.behavior_STAR_.call(null,new cljs.core.Keyword("lt.plugins.elm-light","elm-unsupported","lt.plugins.elm-light/elm-unsupported",2702653399),new cljs.core.Keyword(null,"reaction","reaction",4441361819),lt.plugins.elm_light.__BEH__elm_unsupported,new cljs.core.Keyword(null,"triggers","triggers",2516997421),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"elm.unsupported","elm.unsupported",3962342495),null], null), null)); lt.plugins.elm_light.colorize_msg = (function colorize_msg(msg){return clojure.string.replace.call(null,clojure.string.replace.call(null,msg,/\[\d+m/,""),/\[0m/,""); }); lt.plugins.elm_light.__GT_lt_range = (function __GT_lt_range(p__6726){var map__6728 = p__6726;var map__6728__$1 = ((cljs.core.seq_QMARK_.call(null,map__6728))?cljs.core.apply.call(null,cljs.core.hash_map,map__6728):map__6728);var end = cljs.core.get.call(null,map__6728__$1,new cljs.core.Keyword(null,"end","end",1014004813));var start = cljs.core.get.call(null,map__6728__$1,new cljs.core.Keyword(null,"start","start",1123661780));return new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"from","from",1017056028),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"ch","ch",1013907415),(new cljs.core.Keyword(null,"column","column",3954034376).cljs$core$IFn$_invoke$arity$1(start) - 1),new cljs.core.Keyword(null,"line","line",1017226086),(new cljs.core.Keyword(null,"line","line",1017226086).cljs$core$IFn$_invoke$arity$1(start) - 1)], null),new cljs.core.Keyword(null,"to","to",1013907949),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"ch","ch",1013907415),(new cljs.core.Keyword(null,"column","column",3954034376).cljs$core$IFn$_invoke$arity$1(end) - 1),new cljs.core.Keyword(null,"line","line",1017226086),(new cljs.core.Keyword(null,"line","line",1017226086).cljs$core$IFn$_invoke$arity$1(end) - 1)], null)], null); }); lt.plugins.elm_light.maybe_trim = (function maybe_trim(ss){if(cljs.core.truth_(ss)) {return clojure.string.trim.call(null,ss); } else {return null; } }); lt.plugins.elm_light.str_contains_QMARK_ = (function str_contains_QMARK_(source,target){if(cljs.core.truth_((function (){var and__4872__auto__ = source;if(cljs.core.truth_(and__4872__auto__)) {return target; } else {return and__4872__auto__; } })())) {return (-1 < source.indexOf(target)); } else {return null; } }); lt.plugins.elm_light.maybe_strip_hint = (function maybe_strip_hint(source){if(cljs.core.truth_(source)) {if(cljs.core.truth_(lt.plugins.elm_light.str_contains_QMARK_.call(null,source,"Hint:"))) {return clojure.string.trim.call(null,cljs.core.first.call(null,cljs.core.re_find.call(null,/([\s\S]*?(?=Hint:))/m,source))); } else {return source; } } else {return null; } }); lt.plugins.elm_light.linter_action = (function linter_action(ed,row){var G__6740 = new cljs.core.Keyword(null,"tag","tag",1014018828).cljs$core$IFn$_invoke$arity$1(row);if(cljs.core._EQ_.call(null,"TYPE MISMATCH",G__6740)) {var ann = lt.plugins.elm_light.maybe_strip_hint.call(null,lt.plugins.elm_light.maybe_trim.call(null,cljs.core.second.call(null,cljs.core.re_find.call(null,/But I am inferring that the definition has this type:([\s\S]*$)/m,new cljs.core.Keyword(null,"details","details",2571625908).cljs$core$IFn$_invoke$arity$1(row)))));if(cljs.core.truth_((function (){var and__4872__auto__ = ann;if(cljs.core.truth_(and__4872__auto__)) {return cljs.core.not.call(null,lt.plugins.elm_light.str_contains_QMARK_.call(null,ann,"...")); } else {return and__4872__auto__; } })())) {return new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"text","text",1017460895),"Fix annotation",new cljs.core.Keyword(null,"action","action",3885920680),((function (ann,G__6740){ return (function (_,p__6741){var map__6742 = p__6741;var map__6742__$1 = ((cljs.core.seq_QMARK_.call(null,map__6742))?cljs.core.apply.call(null,cljs.core.hash_map,map__6742):map__6742);var to = cljs.core.get.call(null,map__6742__$1,new cljs.core.Keyword(null,"to","to",1013907949));var from = cljs.core.get.call(null,map__6742__$1,new cljs.core.Keyword(null,"from","from",1017056028));return lt.objs.editor.replace.call(null,ed,from,to,ann); });})(ann,G__6740)) ], null)], null); } else {return cljs.core.PersistentVector.EMPTY; } } else {if(cljs.core._EQ_.call(null,"NAMING ERROR",G__6740)) {var fixes = cljs.core.filter.call(null,cljs.core.seq,cljs.core.map.call(null,clojure.string.trim,clojure.string.split_lines.call(null,cljs.core.second.call(null,cljs.core.re_find.call(null,/Maybe you want one of the following\?(:?[\s\S]*$)/m,new cljs.core.Keyword(null,"details","details",2571625908).cljs$core$IFn$_invoke$arity$1(row))))));return cljs.core.map.call(null,((function (fixes,G__6740){ return (function (suggestion){return new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"text","text",1017460895),suggestion,new cljs.core.Keyword(null,"action","action",3885920680),((function (fixes,G__6740){ return (function (_,p__6743){var map__6744 = p__6743;var map__6744__$1 = ((cljs.core.seq_QMARK_.call(null,map__6744))?cljs.core.apply.call(null,cljs.core.hash_map,map__6744):map__6744);var to = cljs.core.get.call(null,map__6744__$1,new cljs.core.Keyword(null,"to","to",1013907949));var from = cljs.core.get.call(null,map__6744__$1,new cljs.core.Keyword(null,"from","from",1017056028));return lt.objs.editor.replace.call(null,ed,from,to,suggestion); });})(fixes,G__6740)) ], null); });})(fixes,G__6740)) ,fixes); } else {if(cljs.core._EQ_.call(null,"missing type annotation",G__6740)) {return new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"text","text",1017460895),"Add",new cljs.core.Keyword(null,"action","action",3885920680),((function (G__6740){ return (function (p__6745,p__6746){var map__6747 = p__6745;var map__6747__$1 = ((cljs.core.seq_QMARK_.call(null,map__6747))?cljs.core.apply.call(null,cljs.core.hash_map,map__6747):map__6747);var details = cljs.core.get.call(null,map__6747__$1,new cljs.core.Keyword(null,"details","details",2571625908));var map__6748 = p__6746;var map__6748__$1 = ((cljs.core.seq_QMARK_.call(null,map__6748))?cljs.core.apply.call(null,cljs.core.hash_map,map__6748):map__6748);var from = cljs.core.get.call(null,map__6748__$1,new cljs.core.Keyword(null,"from","from",1017056028));var ann = [cljs.core.str(clojure.string.trim.call(null,cljs.core.second.call(null,cljs.core.re_find.call(null,/I inferred the type annotation so you can copy it into your code:([\s\S]*$)/m,details)))),cljs.core.str("\n")].join('');return lt.objs.editor.replace.call(null,ed,from,ann); });})(G__6740)) ], null)], null); } else {if(cljs.core._EQ_.call(null,"unused import",G__6740)) {return new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"text","text",1017460895),"Remove",new cljs.core.Keyword(null,"action","action",3885920680),((function (G__6740){ return (function (_,p__6749){var map__6750 = p__6749;var map__6750__$1 = ((cljs.core.seq_QMARK_.call(null,map__6750))?cljs.core.apply.call(null,cljs.core.hash_map,map__6750):map__6750);var to = cljs.core.get.call(null,map__6750__$1,new cljs.core.Keyword(null,"to","to",1013907949));var from = cljs.core.get.call(null,map__6750__$1,new cljs.core.Keyword(null,"from","from",1017056028));lt.objs.editor.replace.call(null,ed,from,to,""); return CodeMirror.commands.deleteLine(lt.objs.editor.__GT_cm_ed.call(null,ed)); });})(G__6740)) ], null)], null); } else {if(new cljs.core.Keyword(null,"else","else",1017020587)) {return cljs.core.PersistentVector.EMPTY; } else {return null; } } } } } }); lt.plugins.elm_light.display_make_results = (function display_make_results(ed,res,path){lt.object.raise.call(null,ed,new cljs.core.Keyword(null,"clear-linter-results!","clear-linter-results!",4528495642)); if(cljs.core.seq.call(null,cljs.core.filter.call(null,(function (p1__6751_SHARP_){return cljs.core._EQ_.call(null,"error",new cljs.core.Keyword(null,"type","type",1017479852).cljs$core$IFn$_invoke$arity$1(p1__6751_SHARP_)); }),res))) {lt.objs.notifos.set_msg_BANG_.call(null,"Elm make returned errors; check you editor or the console for details",new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"class","class",1108647146),"error"], null)); } else {} var seq__6758 = cljs.core.seq.call(null,res);var chunk__6759 = null;var count__6760 = 0;var i__6761 = 0;while(true){ if((i__6761 < count__6760)) {var map__6762 = cljs.core._nth.call(null,chunk__6759,i__6761);var map__6762__$1 = ((cljs.core.seq_QMARK_.call(null,map__6762))?cljs.core.apply.call(null,cljs.core.hash_map,map__6762):map__6762);var row = map__6762__$1;var tag = cljs.core.get.call(null,map__6762__$1,new cljs.core.Keyword(null,"tag","tag",1014018828));var subregion = cljs.core.get.call(null,map__6762__$1,new cljs.core.Keyword(null,"subregion","subregion",1501636774));var region = cljs.core.get.call(null,map__6762__$1,new cljs.core.Keyword(null,"region","region",4374076006));var details = cljs.core.get.call(null,map__6762__$1,new cljs.core.Keyword(null,"details","details",2571625908));var overview = cljs.core.get.call(null,map__6762__$1,new cljs.core.Keyword(null,"overview","overview",1544020203));var type = cljs.core.get.call(null,map__6762__$1,new cljs.core.Keyword(null,"type","type",1017479852));var file = cljs.core.get.call(null,map__6762__$1,new cljs.core.Keyword(null,"file","file",1017047278));var msg_6791 = [cljs.core.str(overview),cljs.core.str("\n"),cljs.core.str(lt.plugins.elm_light.colorize_msg.call(null,details))].join('');if(cljs.core.truth_((function (){var and__4872__auto__ = cljs.core._EQ_.call(null,path,file);if(and__4872__auto__) {return cljs.core.some.call(null,new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 2, ["error",null,"warning",null], null), null),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [type], null)); } else {return and__4872__auto__; } })())) {lt.object.raise.call(null,ed,new cljs.core.Keyword(null,"linter-result!","linter-result!",4482067001),new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,"title","title",1124275658),tag,new cljs.core.Keyword(null,"details","details",2571625908),msg_6791,new cljs.core.Keyword(null,"category","category",1064415344),cljs.core.keyword.call(null,type),new cljs.core.Keyword(null,"actions","actions",4147068015),lt.plugins.elm_light.linter_action.call(null,ed,row),new cljs.core.Keyword(null,"code-range","code-range",3297446095),lt.plugins.elm_light.__GT_lt_range.call(null,(function (){var or__4884__auto__ = subregion;if(cljs.core.truth_(or__4884__auto__)) {return or__4884__auto__; } else {return region; } })())], null)); } else {if(new cljs.core.Keyword(null,"else","else",1017020587)) {lt.objs.console.verbatim.call(null,cljs.core._conj.call(null,cljs.core._conj.call(null,cljs.core._conj.call(null,cljs.core._conj.call(null,cljs.core.List.EMPTY,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"pre","pre",1014015509),overview], null)),": "),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"em.line","em.line",3623844076),"[Elm error]"], null)),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"em.file","em.file",3623665268),file], null)),"error"); } else {} } { var G__6792 = seq__6758; var G__6793 = chunk__6759; var G__6794 = count__6760; var G__6795 = (i__6761 + 1); seq__6758 = G__6792; chunk__6759 = G__6793; count__6760 = G__6794; i__6761 = G__6795; continue; } } else {var temp__4092__auto__ = cljs.core.seq.call(null,seq__6758);if(temp__4092__auto__) {var seq__6758__$1 = temp__4092__auto__;if(cljs.core.chunked_seq_QMARK_.call(null,seq__6758__$1)) {var c__5632__auto__ = cljs.core.chunk_first.call(null,seq__6758__$1);{ var G__6796 = cljs.core.chunk_rest.call(null,seq__6758__$1); var G__6797 = c__5632__auto__; var G__6798 = cljs.core.count.call(null,c__5632__auto__); var G__6799 = 0; seq__6758 = G__6796; chunk__6759 = G__6797; count__6760 = G__6798; i__6761 = G__6799; continue; } } else {var map__6763 = cljs.core.first.call(null,seq__6758__$1);var map__6763__$1 = ((cljs.core.seq_QMARK_.call(null,map__6763))?cljs.core.apply.call(null,cljs.core.hash_map,map__6763):map__6763);var row = map__6763__$1;var tag = cljs.core.get.call(null,map__6763__$1,new cljs.core.Keyword(null,"tag","tag",1014018828));var subregion = cljs.core.get.call(null,map__6763__$1,new cljs.core.Keyword(null,"subregion","subregion",1501636774));var region = cljs.core.get.call(null,map__6763__$1,new cljs.core.Keyword(null,"region","region",4374076006));var details = cljs.core.get.call(null,map__6763__$1,new cljs.core.Keyword(null,"details","details",2571625908));var overview = cljs.core.get.call(null,map__6763__$1,new cljs.core.Keyword(null,"overview","overview",1544020203));var type = cljs.core.get.call(null,map__6763__$1,new cljs.core.Keyword(null,"type","type",1017479852));var file = cljs.core.get.call(null,map__6763__$1,new cljs.core.Keyword(null,"file","file",1017047278));var msg_6800 = [cljs.core.str(overview),cljs.core.str("\n"),cljs.core.str(lt.plugins.elm_light.colorize_msg.call(null,details))].join('');if(cljs.core.truth_((function (){var and__4872__auto__ = cljs.core._EQ_.call(null,path,file);if(and__4872__auto__) {return cljs.core.some.call(null,new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 2, ["error",null,"warning",null], null), null),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [type], null)); } else {return and__4872__auto__; } })())) {lt.object.raise.call(null,ed,new cljs.core.Keyword(null,"linter-result!","linter-result!",4482067001),new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,"title","title",1124275658),tag,new cljs.core.Keyword(null,"details","details",2571625908),msg_6800,new cljs.core.Keyword(null,"category","category",1064415344),cljs.core.keyword.call(null,type),new cljs.core.Keyword(null,"actions","actions",4147068015),lt.plugins.elm_light.linter_action.call(null,ed,row),new cljs.core.Keyword(null,"code-range","code-range",3297446095),lt.plugins.elm_light.__GT_lt_range.call(null,(function (){var or__4884__auto__ = subregion;if(cljs.core.truth_(or__4884__auto__)) {return or__4884__auto__; } else {return region; } })())], null)); } else {if(new cljs.core.Keyword(null,"else","else",1017020587)) {lt.objs.console.verbatim.call(null,cljs.core._conj.call(null,cljs.core._conj.call(null,cljs.core._conj.call(null,cljs.core._conj.call(null,cljs.core.List.EMPTY,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"pre","pre",1014015509),overview], null)),": "),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"em.line","em.line",3623844076),"[Elm error]"], null)),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"em.file","em.file",3623665268),file], null)),"error"); } else {} } { var G__6801 = cljs.core.next.call(null,seq__6758__$1); var G__6802 = null; var G__6803 = 0; var G__6804 = 0; seq__6758 = G__6801; chunk__6759 = G__6802; count__6760 = G__6803; i__6761 = G__6804; continue; } } } else {return null; } } break; } }); lt.plugins.elm_light.__BEH__lint = (function __BEH__lint(ed,result_handler_trigger){var info = new cljs.core.Keyword(null,"info","info",1017141280).cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,ed));lt.objs.notifos.working.call(null,[cljs.core.str("Starting elm linting of: "),cljs.core.str(new cljs.core.Keyword(null,"path","path",1017337751).cljs$core$IFn$_invoke$arity$1(info))].join('')); return lt.objs.clients.send.call(null,lt.plugins.elm_light.clients.get_eval_client.call(null,ed,new cljs.core.Keyword(null,"editor.elm.lint","editor.elm.lint",1086056222)),new cljs.core.Keyword(null,"editor.elm.lint","editor.elm.lint",1086056222),cljs.core.assoc.call(null,info,new cljs.core.Keyword(null,"project-path","project-path",1907176907),lt.plugins.elm_light.utils.project_path.call(null,new cljs.core.Keyword(null,"path","path",1017337751).cljs$core$IFn$_invoke$arity$1(info)),new cljs.core.Keyword(null,"handler","handler",1706707644),cljs.core.name.call(null,result_handler_trigger)),new cljs.core.Keyword(null,"only","only",1017320222),ed); }); lt.object.behavior_STAR_.call(null,new cljs.core.Keyword("lt.plugins.elm-light","lint","lt.plugins.elm-light/lint",1497250906),new cljs.core.Keyword(null,"reaction","reaction",4441361819),lt.plugins.elm_light.__BEH__lint,new cljs.core.Keyword(null,"triggers","triggers",2516997421),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"lint","lint",1017226101),null], null), null),new cljs.core.Keyword(null,"description","description",3584325486),"Lint (/make) a given elm file"); lt.plugins.elm_light.__BEH__elm_lint_res = (function __BEH__elm_lint_res(ed,res){var path = new cljs.core.Keyword(null,"path","path",1017337751).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"info","info",1017141280).cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,ed)));lt.objs.notifos.done_working.call(null,"Elm linted"); return lt.plugins.elm_light.display_make_results.call(null,ed,res,path); }); lt.object.behavior_STAR_.call(null,new cljs.core.Keyword("lt.plugins.elm-light","elm-lint-res","lt.plugins.elm-light/elm-lint-res",2508500808),new cljs.core.Keyword(null,"reaction","reaction",4441361819),lt.plugins.elm_light.__BEH__elm_lint_res,new cljs.core.Keyword(null,"triggers","triggers",2516997421),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"elm.lint.res","elm.lint.res",4381822959),null], null), null)); lt.plugins.elm_light.__BEH__make = (function __BEH__make(ed){var info = new cljs.core.Keyword(null,"info","info",1017141280).cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,ed));var cl = lt.plugins.elm_light.clients.get_eval_client.call(null,ed,new cljs.core.Keyword(null,"editor.elm.make","editor.elm.make",1086078217));lt.objs.notifos.working.call(null,[cljs.core.str("Starting elm make for: "),cljs.core.str(new cljs.core.Keyword(null,"path","path",1017337751).cljs$core$IFn$_invoke$arity$1(info))].join('')); return lt.objs.clients.send.call(null,cl,new cljs.core.Keyword(null,"editor.elm.make","editor.elm.make",1086078217),cljs.core.assoc.call(null,info,new cljs.core.Keyword(null,"project-path","project-path",1907176907),lt.plugins.elm_light.utils.project_path.call(null,new cljs.core.Keyword(null,"path","path",1017337751).cljs$core$IFn$_invoke$arity$1(info))),new cljs.core.Keyword(null,"only","only",1017320222),ed); }); lt.object.behavior_STAR_.call(null,new cljs.core.Keyword("lt.plugins.elm-light","make","lt.plugins.elm-light/make",1497244279),new cljs.core.Keyword(null,"reaction","reaction",4441361819),lt.plugins.elm_light.__BEH__make,new cljs.core.Keyword(null,"triggers","triggers",2516997421),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"elm.make","elm.make",1176641960),null], null), null),new cljs.core.Keyword(null,"description","description",3584325486),"Make (to js) a given elm file"); lt.plugins.elm_light.missing_make_info_popup = (function missing_make_info_popup(){return lt.objs.popup.popup_BANG_.call(null,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"header","header",4087600639),"You need to configure make info for your project",new cljs.core.Keyword(null,"body","body",1016933652),[cljs.core.str("You configure a key \"make-info\" in your elm-package.json\n Example:\n \"make-info\": {\"main\": \"src/Main.elm\", \"out\": \"dist/main.js\"}")].join(''),new cljs.core.Keyword(null,"buttons","buttons",1255256819),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"label","label",1116631654),"Ok"], null)], null)], null)); }); lt.plugins.elm_light.__BEH__make_project = (function __BEH__make_project(ed){var info = new cljs.core.Keyword(null,"info","info",1017141280).cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,ed));var project_path = lt.plugins.elm_light.utils.project_path.call(null,new cljs.core.Keyword(null,"path","path",1017337751).cljs$core$IFn$_invoke$arity$1(info));var map__6765 = new cljs.core.Keyword(null,"make-info","make-info",2233727135).cljs$core$IFn$_invoke$arity$1(lt.plugins.elm_light.utils.parse_json_file.call(null,lt.objs.files.join.call(null,project_path,"elm-package.json")));var map__6765__$1 = ((cljs.core.seq_QMARK_.call(null,map__6765))?cljs.core.apply.call(null,cljs.core.hash_map,map__6765):map__6765);var out = cljs.core.get.call(null,map__6765__$1,new cljs.core.Keyword(null,"out","out",1014014656));var main = cljs.core.get.call(null,map__6765__$1,new cljs.core.Keyword(null,"main","main",1017248043));if(cljs.core.truth_((function (){var and__4872__auto__ = main;if(cljs.core.truth_(and__4872__auto__)) {return out; } else {return and__4872__auto__; } })())) {lt.objs.notifos.working.call(null,[cljs.core.str("Starting elm make for project: "),cljs.core.str(project_path)].join('')); return lt.objs.clients.send.call(null,lt.plugins.elm_light.clients.get_eval_client.call(null,ed,new cljs.core.Keyword(null,"editor.elm.make","editor.elm.make",1086078217)),new cljs.core.Keyword(null,"editor.elm.make","editor.elm.make",1086078217),cljs.core.assoc.call(null,info,new cljs.core.Keyword(null,"project-path","project-path",1907176907),project_path,new cljs.core.Keyword(null,"path","path",1017337751),lt.objs.files.join.call(null,project_path,main),new cljs.core.Keyword(null,"outputFile","outputFile",4034596239),lt.objs.files.join.call(null,project_path,out)),new cljs.core.Keyword(null,"only","only",1017320222),ed); } else {return lt.plugins.elm_light.missing_make_info_popup.call(null); } }); lt.object.behavior_STAR_.call(null,new cljs.core.Keyword("lt.plugins.elm-light","make-project","lt.plugins.elm-light/make-project",3492644131),new cljs.core.Keyword(null,"reaction","reaction",4441361819),lt.plugins.elm_light.__BEH__make_project,new cljs.core.Keyword(null,"triggers","triggers",2516997421),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"elm.make-project","elm.make-project",2779298292),null], null), null),new cljs.core.Keyword(null,"description","description",3584325486),"Make Elm Project"); lt.plugins.elm_light.__BEH__elm_make_res = (function __BEH__elm_make_res(ed,p__6766){var map__6768 = p__6766;var map__6768__$1 = ((cljs.core.seq_QMARK_.call(null,map__6768))?cljs.core.apply.call(null,cljs.core.hash_map,map__6768):map__6768);var res = cljs.core.get.call(null,map__6768__$1,new cljs.core.Keyword(null,"res","res",1014017042));var outputFile = cljs.core.get.call(null,map__6768__$1,new cljs.core.Keyword(null,"outputFile","outputFile",4034596239));lt.objs.notifos.done_working.call(null,[cljs.core.str("Elm make compiled to: "),cljs.core.str(outputFile)].join('')); return lt.plugins.elm_light.display_make_results.call(null,ed,res,lt.plugins.elm_light.path); }); lt.object.behavior_STAR_.call(null,new cljs.core.Keyword("lt.plugins.elm-light","elm-make-res","lt.plugins.elm-light/elm-make-res",3896116701),new cljs.core.Keyword(null,"reaction","reaction",4441361819),lt.plugins.elm_light.__BEH__elm_make_res,new cljs.core.Keyword(null,"triggers","triggers",2516997421),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"elm.make.res","elm.make.res",3219830874),null], null), null)); lt.plugins.elm_light.__BEH__elm_make_err = (function __BEH__elm_make_err(ed,res){var path = new cljs.core.Keyword(null,"path","path",1017337751).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"info","info",1017141280).cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,ed)));lt.objs.notifos.done_working.call(null,""); lt.objs.notifos.set_msg_BANG_.call(null,[cljs.core.str("Elm make error: "),cljs.core.str(res)].join(''),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"class","class",1108647146),"error"], null)); return lt.objs.console.error.call(null,res); }); lt.object.behavior_STAR_.call(null,new cljs.core.Keyword("lt.plugins.elm-light","elm-make-err","lt.plugins.elm-light/elm-make-err",3896146200),new cljs.core.Keyword(null,"reaction","reaction",4441361819),lt.plugins.elm_light.__BEH__elm_make_err,new cljs.core.Keyword(null,"triggers","triggers",2516997421),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"elm.make.err","elm.make.err",3219818783),null], null), null)); lt.plugins.elm_light.__BEH__on_eval__DOT__one = (function __BEH__on_eval__DOT__one(ed){var pos = lt.objs.editor.__GT_cursor.call(null,ed);var info = cljs.core.conj.call(null,new cljs.core.Keyword(null,"info","info",1017141280).cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,ed)),(cljs.core.truth_(lt.objs.editor.selection_QMARK_.call(null,ed))?new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"code","code",1016963423),lt.objs.editor.selection.call(null,ed),new cljs.core.Keyword(null,"meta","meta",1017252215),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"start","start",1123661780),new cljs.core.Keyword(null,"line","line",1017226086).cljs$core$IFn$_invoke$arity$1(lt.objs.editor.__GT_cursor.call(null,ed,"start")),new cljs.core.Keyword(null,"end","end",1014004813),new cljs.core.Keyword(null,"line","line",1017226086).cljs$core$IFn$_invoke$arity$1(lt.objs.editor.__GT_cursor.call(null,ed,"end"))], null)], null):(function (){var temp__4090__auto__ = lt.plugins.elm_light.selection.get_top_level_expr.call(null,ed,pos);if(cljs.core.truth_(temp__4090__auto__)) {var rng = temp__4090__auto__;return new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"pos","pos",1014015430),pos,new cljs.core.Keyword(null,"code","code",1016963423),lt.objs.editor.range.call(null,ed,new cljs.core.Keyword(null,"from","from",1017056028).cljs$core$IFn$_invoke$arity$1(rng),new cljs.core.Keyword(null,"to","to",1013907949).cljs$core$IFn$_invoke$arity$1(rng)),new cljs.core.Keyword(null,"meta","meta",1017252215),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"start","start",1123661780),new cljs.core.Keyword(null,"line","line",1017226086).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"from","from",1017056028).cljs$core$IFn$_invoke$arity$1(rng)),new cljs.core.Keyword(null,"end","end",1014004813),new cljs.core.Keyword(null,"line","line",1017226086).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"end","end",1014004813).cljs$core$IFn$_invoke$arity$1(rng))], null)], null); } else {return new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"pos","pos",1014015430),pos,new cljs.core.Keyword(null,"code","code",1016963423),lt.objs.editor.line.call(null,ed,new cljs.core.Keyword(null,"line","line",1017226086).cljs$core$IFn$_invoke$arity$1(pos)),new cljs.core.Keyword(null,"meta","meta",1017252215),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"start","start",1123661780),new cljs.core.Keyword(null,"line","line",1017226086).cljs$core$IFn$_invoke$arity$1(pos),new cljs.core.Keyword(null,"end","end",1014004813),new cljs.core.Keyword(null,"line","line",1017226086).cljs$core$IFn$_invoke$arity$1(pos)], null)], null); } })()));return lt.object.raise.call(null,lt.plugins.elm_light.clients.elm,new cljs.core.Keyword(null,"eval!","eval!",1110791799),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"origin","origin",4300251800),ed,new cljs.core.Keyword(null,"info","info",1017141280),info], null)); }); lt.object.behavior_STAR_.call(null,new cljs.core.Keyword("lt.plugins.elm-light","on-eval.one","lt.plugins.elm-light/on-eval.one",3108499739),new cljs.core.Keyword(null,"reaction","reaction",4441361819),lt.plugins.elm_light.__BEH__on_eval__DOT__one,new cljs.core.Keyword(null,"desc","desc",1016984067),"Elm repl: Eval current selection",new cljs.core.Keyword(null,"triggers","triggers",2516997421),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"eval.one","eval.one",1173589382),null], null), null)); lt.plugins.elm_light.__BEH__eval_result = (function __BEH__eval_result(ed,res){lt.objs.notifos.done_working.call(null,"Elm evaluated"); return lt.object.raise.call(null,ed,new cljs.core.Keyword(null,"editor.result","editor.result",4030217008),new cljs.core.Keyword(null,"result","result",4374444943).cljs$core$IFn$_invoke$arity$1(res),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"line","line",1017226086),new cljs.core.Keyword(null,"start","start",1123661780).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"meta","meta",1017252215).cljs$core$IFn$_invoke$arity$1(res))], null)); }); lt.object.behavior_STAR_.call(null,new cljs.core.Keyword("lt.plugins.elm-light","eval-result","lt.plugins.elm-light/eval-result",1791693047),new cljs.core.Keyword(null,"reaction","reaction",4441361819),lt.plugins.elm_light.__BEH__eval_result,new cljs.core.Keyword(null,"desc","desc",1016984067),"Elm repl: Eval result",new cljs.core.Keyword(null,"triggers","triggers",2516997421),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"editor.elm.eval.res","editor.elm.eval.res",1719787241),null], null), null)); lt.plugins.elm_light.__BEH__eval_err = (function __BEH__eval_err(ed,res){lt.objs.notifos.done_working.call(null); lt.objs.notifos.set_msg_BANG_.call(null,"Elm eval reported errors.",new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"class","class",1108647146),"error"], null)); return lt.object.raise.call(null,ed,new cljs.core.Keyword(null,"editor.exception","editor.exception",3983021184),new cljs.core.Keyword(null,"result","result",4374444943).cljs$core$IFn$_invoke$arity$1(res),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"line","line",1017226086),new cljs.core.Keyword(null,"start","start",1123661780).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"meta","meta",1017252215).cljs$core$IFn$_invoke$arity$1(res))], null)); }); lt.object.behavior_STAR_.call(null,new cljs.core.Keyword("lt.plugins.elm-light","eval-err","lt.plugins.elm-light/eval-err",1049569193),new cljs.core.Keyword(null,"reaction","reaction",4441361819),lt.plugins.elm_light.__BEH__eval_err,new cljs.core.Keyword(null,"desc","desc",1016984067),"Elm repl: Eval error",new cljs.core.Keyword(null,"triggers","triggers",2516997421),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"editor.elm.eval.err","editor.elm.eval.err",1719775150),null], null), null)); lt.plugins.elm_light.__BEH__repl_restart_BANG_ = (function __BEH__repl_restart_BANG_(p__6769){var map__6771 = p__6769;var map__6771__$1 = ((cljs.core.seq_QMARK_.call(null,map__6771))?cljs.core.apply.call(null,cljs.core.hash_map,map__6771):map__6771);var ed = map__6771__$1;var info = cljs.core.get.call(null,map__6771__$1,new cljs.core.Keyword(null,"info","info",1017141280));var temp__4092__auto__ = new cljs.core.Keyword(null,"default","default",2558708147).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"client","client",3951159101).cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,ed)));if(cljs.core.truth_(temp__4092__auto__)) {var default_client = temp__4092__auto__;if(cljs.core.truth_(cljs.core.deref.call(null,default_client))) {lt.objs.notifos.working.call(null,"Restaring elm-repl..."); return lt.objs.clients.send.call(null,default_client,new cljs.core.Keyword(null,"elm.repl.restart","elm.repl.restart",2931654218),info,new cljs.core.Keyword(null,"only","only",1017320222),ed); } else {return null; } } else {return null; } }); lt.object.behavior_STAR_.call(null,new cljs.core.Keyword("lt.plugins.elm-light","repl-restart!","lt.plugins.elm-light/repl-restart!",1802858197),new cljs.core.Keyword(null,"reaction","reaction",4441361819),lt.plugins.elm_light.__BEH__repl_restart_BANG_,new cljs.core.Keyword(null,"triggers","triggers",2516997421),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"elm.repl.restart","elm.repl.restart",2931654218),null], null), null)); lt.plugins.elm_light.__BEH__repl_restart_res = (function __BEH__repl_restart_res(ed,res){return lt.objs.notifos.done_working.call(null,"Elm Repl restarted"); }); lt.object.behavior_STAR_.call(null,new cljs.core.Keyword("lt.plugins.elm-light","repl-restart-res","lt.plugins.elm-light/repl-restart-res",4193190105),new cljs.core.Keyword(null,"reaction","reaction",4441361819),lt.plugins.elm_light.__BEH__repl_restart_res,new cljs.core.Keyword(null,"triggers","triggers",2516997421),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"elm.repl.restart.res","elm.repl.restart.res",2086859772),null], null), null)); lt.plugins.elm_light.__BEH__elm_browse_BANG_ = (function __BEH__elm_browse_BANG_(ed,debug_QMARK_){var path = lt.plugins.elm_light.utils.reactor_path.call(null,new cljs.core.Keyword(null,"path","path",1017337751).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"info","info",1017141280).cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,ed))));var client = lt.plugins.elm_light.clients.get_eval_client.call(null,ed,new cljs.core.Keyword(null,"editor.eval.elm","editor.eval.elm",1083015975));if(cljs.core.truth_((function (){var and__4872__auto__ = client;if(cljs.core.truth_(and__4872__auto__)) {return path; } else {return and__4872__auto__; } })())) {lt.objs.notifos.working.call(null,"Opening elm file in browser"); var b_6805 = (function (){var or__4884__auto__ = cljs.core.first.call(null,lt.object.by_tag.call(null,new cljs.core.Keyword(null,"browser","browser",1164844698)));if(cljs.core.truth_(or__4884__auto__)) {return or__4884__auto__; } else {return lt.objs.browser.add.call(null); } })();var get_url_6806 = ((function (b_6805,path,client){ return (function (){return [cljs.core.str("http://localhost:"),cljs.core.str(new cljs.core.Keyword(null,"reactor-port","reactor-port",4649590590).cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,client))),cljs.core.str(path),cljs.core.str((cljs.core.truth_(debug_QMARK_)?"?debug":""))].join(''); });})(b_6805,path,client)) ;if(cljs.core.truth_(new cljs.core.Keyword(null,"connected","connected",4729661051).cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,client)))) {lt.object.raise.call(null,b_6805,new cljs.core.Keyword(null,"navigate!","navigate!",1766726722),get_url_6806.call(null)); } else {lt.util.js.wait.call(null,100,((function (b_6805,get_url_6806,path,client){ return (function (){return lt.object.raise.call(null,b_6805,new cljs.core.Keyword(null,"navigate!","navigate!",1766726722),get_url_6806.call(null)); });})(b_6805,get_url_6806,path,client)) ); } return lt.objs.notifos.done_working.call(null); } else {return null; } }); lt.object.behavior_STAR_.call(null,new cljs.core.Keyword("lt.plugins.elm-light","elm-browse!","lt.plugins.elm-light/elm-browse!",2398181301),new cljs.core.Keyword(null,"reaction","reaction",4441361819),lt.plugins.elm_light.__BEH__elm_browse_BANG_,new cljs.core.Keyword(null,"triggers","triggers",2516997421),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"elm.browse","elm.browse",2486947908),null], null), null)); lt.plugins.elm_light.__BEH__elm_doc_search = (function __BEH__elm_doc_search(this$,cur){return cljs.core.conj.call(null,cur,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"label","label",1116631654),"elm",new cljs.core.Keyword(null,"trigger","trigger",4248979754),new cljs.core.Keyword(null,"docs.elm.search","docs.elm.search",737241333),new cljs.core.Keyword(null,"file-types","file-types",1727875162),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, ["elm",null], null), null)], null)); }); lt.object.behavior_STAR_.call(null,new cljs.core.Keyword("lt.plugins.elm-light","elm-doc-search","lt.plugins.elm-light/elm-doc-search",546131961),new cljs.core.Keyword(null,"reaction","reaction",4441361819),lt.plugins.elm_light.__BEH__elm_doc_search,new cljs.core.Keyword(null,"triggers","triggers",2516997421),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"types+","types+",4450069060),null], null), null)); lt.plugins.elm_light.get_editor_client = (function get_editor_client(ed){var temp__4092__auto__ = new cljs.core.Keyword(null,"default","default",2558708147).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"client","client",3951159101).cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,ed)));if(cljs.core.truth_(temp__4092__auto__)) {var default_client = temp__4092__auto__;if(cljs.core.truth_(cljs.core.deref.call(null,default_client))) {return default_client; } else {return null; } } else {return null; } }); lt.plugins.elm_light.location__GT_pos = (function location__GT_pos(loc){return new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"line","line",1017226086),(new cljs.core.Keyword(null,"line","line",1017226086).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"start","start",1123661780).cljs$core$IFn$_invoke$arity$1(loc)) - 1),new cljs.core.Keyword(null,"ch","ch",1013907415),(new cljs.core.Keyword(null,"column","column",3954034376).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"start","start",1123661780).cljs$core$IFn$_invoke$arity$1(loc)) - 1)], null); }); lt.plugins.elm_light.ast_pass_through = (function ast_pass_through(ed,msg){return lt.objs.clients.send.call(null,lt.plugins.elm_light.clients.get_eval_client.call(null,ed,new cljs.core.Keyword(null,"editor.elm.ast.passthrough","editor.elm.ast.passthrough",3082755153)),new cljs.core.Keyword(null,"editor.elm.ast.passthrough","editor.elm.ast.passthrough",3082755153),msg,new cljs.core.Keyword(null,"only","only",1017320222),ed); }); lt.plugins.elm_light.__BEH__elm_reload_ast = (function __BEH__elm_reload_ast(ed){var project = lt.plugins.elm_light.utils.project_path.call(null,new cljs.core.Keyword(null,"path","path",1017337751).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"info","info",1017141280).cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,ed))));lt.objs.notifos.working.call(null,[cljs.core.str("Init reload of ast for project: "),cljs.core.str(project)].join('')); lt.plugins.elm_light.elm_ast.delete_project_ast_BANG_.call(null,project); return lt.objs.clients.send.call(null,lt.plugins.elm_light.clients.get_eval_client.call(null,ed,new cljs.core.Keyword(null,"elm.reload.ast","elm.reload.ast",3046520423)),new cljs.core.Keyword(null,"elm.reload.ast","elm.reload.ast",3046520423),cljs.core.PersistentArrayMap.EMPTY,new cljs.core.Keyword(null,"only","only",1017320222),ed); }); lt.object.behavior_STAR_.call(null,new cljs.core.Keyword("lt.plugins.elm-light","elm-reload-ast","lt.plugins.elm-light/elm-reload-ast",3847082128),new cljs.core.Keyword(null,"reaction","reaction",4441361819),lt.plugins.elm_light.__BEH__elm_reload_ast,new cljs.core.Keyword(null,"triggers","triggers",2516997421),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"elm.reload-ast","elm.reload-ast",3046490632),null], null), null)); lt.plugins.elm_light.__BEH__elm_reload_ast_started = (function __BEH__elm_reload_ast_started(ed){return lt.objs.notifos.done_working.call(null,"Parsing ast started"); }); lt.object.behavior_STAR_.call(null,new cljs.core.Keyword("lt.plugins.elm-light","elm-reload-ast-started","lt.plugins.elm-light/elm-reload-ast-started",3781906644),new cljs.core.Keyword(null,"reaction","reaction",4441361819),lt.plugins.elm_light.__BEH__elm_reload_ast_started,new cljs.core.Keyword(null,"triggers","triggers",2516997421),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"elm.ast.reload.started","elm.ast.reload.started",2010853330),null], null), null)); lt.plugins.elm_light.__BEH__elm_jump_to_definition_start = (function __BEH__elm_jump_to_definition_start(ed){lt.objs.notifos.working.call(null,[cljs.core.str("Initiate jump to definition")].join('')); var temp__4090__auto__ = lt.plugins.elm_light.get_editor_client.call(null,ed);if(cljs.core.truth_(temp__4090__auto__)) {var default_client = temp__4090__auto__;return lt.object.raise.call(null,ed,new cljs.core.Keyword(null,"editor.elm.jump-to-definition","editor.elm.jump-to-definition",1945362401),cljs.core.PersistentArrayMap.EMPTY); } else {return lt.plugins.elm_light.ast_pass_through.call(null,ed,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"target","target",4427965699),new cljs.core.Keyword(null,"editor.elm.jump-to-definition","editor.elm.jump-to-definition",1945362401),new cljs.core.Keyword(null,"data","data",1016980252),cljs.core.PersistentArrayMap.EMPTY], null)); } }); lt.object.behavior_STAR_.call(null,new cljs.core.Keyword("lt.plugins.elm-light","elm-jump-to-definition-start","lt.plugins.elm-light/elm-jump-to-definition-start",3920864187),new cljs.core.Keyword(null,"reaction","reaction",4441361819),lt.plugins.elm_light.__BEH__elm_jump_to_definition_start,new cljs.core.Keyword(null,"triggers","triggers",2516997421),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"editor.jump-to-definition-at-cursor!","editor.jump-to-definition-at-cursor!",4501637705),null], null), null)); lt.plugins.elm_light.__BEH__elm_jump_to_definition = (function __BEH__elm_jump_to_definition(ed,data){lt.objs.notifos.done_working.call(null,""); var pos = lt.objs.editor.__GT_cursor.call(null,ed);var token = lt.plugins.elm_light.utils.find_symbol.call(null,ed,pos);var path = new cljs.core.Keyword(null,"path","path",1017337751).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"info","info",1017141280).cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,ed)));if(cljs.core.truth_(token)) {var temp__4092__auto__ = lt.plugins.elm_light.elm_ast.get_jump_to_definition.call(null,token,pos,path,lt.plugins.elm_light.utils.project_path.call(null,path));if(cljs.core.truth_(temp__4092__auto__)) {var target = temp__4092__auto__;if(cljs.core.truth_(new cljs.core.Keyword(null,"file","file",1017047278).cljs$core$IFn$_invoke$arity$1(target))) {return lt.object.raise.call(null,lt.objs.jump_stack.jump_stack,new cljs.core.Keyword(null,"jump-stack.push!","jump-stack.push!",4063822260),ed,new cljs.core.Keyword(null,"file","file",1017047278).cljs$core$IFn$_invoke$arity$1(target),lt.plugins.elm_light.location__GT_pos.call(null,new cljs.core.Keyword(null,"location","location",2914947879).cljs$core$IFn$_invoke$arity$1(target))); } else {return null; } } else {return null; } } else {return null; } }); lt.object.behavior_STAR_.call(null,new cljs.core.Keyword("lt.plugins.elm-light","elm-jump-to-definition","lt.plugins.elm-light/elm-jump-to-definition",4117986136),new cljs.core.Keyword(null,"reaction","reaction",4441361819),lt.plugins.elm_light.__BEH__elm_jump_to_definition,new cljs.core.Keyword(null,"triggers","triggers",2516997421),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"editor.elm.jump-to-definition","editor.elm.jump-to-definition",1945362401),null], null), null)); lt.plugins.elm_light.__BEH__elm_doc_start = (function __BEH__elm_doc_start(ed){lt.objs.notifos.working.call(null,[cljs.core.str("Initiate show doc")].join('')); var temp__4090__auto__ = lt.plugins.elm_light.get_editor_client.call(null,ed);if(cljs.core.truth_(temp__4090__auto__)) {var default_client = temp__4090__auto__;return lt.object.raise.call(null,ed,new cljs.core.Keyword(null,"editor.elm.doc","editor.elm.doc",1570413537),cljs.core.PersistentArrayMap.EMPTY); } else {return lt.plugins.elm_light.ast_pass_through.call(null,ed,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"target","target",4427965699),new cljs.core.Keyword(null,"editor.elm.doc","editor.elm.doc",1570413537),new cljs.core.Keyword(null,"data","data",1016980252),cljs.core.PersistentArrayMap.EMPTY], null)); } }); lt.object.behavior_STAR_.call(null,new cljs.core.Keyword("lt.plugins.elm-light","elm-doc-start","lt.plugins.elm-light/elm-doc-start",1839924543),new cljs.core.Keyword(null,"reaction","reaction",4441361819),lt.plugins.elm_light.__BEH__elm_doc_start,new cljs.core.Keyword(null,"triggers","triggers",2516997421),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"editor.doc","editor.doc",3751347369),null], null), null)); lt.plugins.elm_light.__BEH__elm_doc = (function __BEH__elm_doc(ed){var pos = lt.objs.editor.__GT_cursor.call(null,ed);var token = lt.plugins.elm_light.utils.find_symbol.call(null,ed,pos);var path = new cljs.core.Keyword(null,"path","path",1017337751).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"info","info",1017141280).cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,ed)));if(cljs.core.truth_(token)) {lt.objs.notifos.done_working.call(null,""); } else {} var temp__4092__auto__ = lt.plugins.elm_light.elm_ast.get_jump_to_definition.call(null,token,pos,path,lt.plugins.elm_light.utils.project_path.call(null,path));if(cljs.core.truth_(temp__4092__auto__)) {var target = temp__4092__auto__;return lt.object.raise.call(null,ed,new cljs.core.Keyword(null,"editor.elm.doc.show!","editor.elm.doc.show!",3977559543),new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,"name","name",1017277949),[cljs.core.str(new cljs.core.Keyword(null,"module-name","module-name",4067691710).cljs$core$IFn$_invoke$arity$1(target)),cljs.core.str((cljs.core.truth_(new cljs.core.Keyword(null,"module-name","module-name",4067691710).cljs$core$IFn$_invoke$arity$1(target))?".":null)),cljs.core.str(new cljs.core.Keyword(null,"value","value",1125876963).cljs$core$IFn$_invoke$arity$1(target)),cljs.core.str((function (){var temp__4092__auto____$1 = new cljs.core.Keyword(null,"package","package",4501809080).cljs$core$IFn$_invoke$arity$1(target);if(cljs.core.truth_(temp__4092__auto____$1)) {var pck = temp__4092__auto____$1;return [cljs.core.str(" ("),cljs.core.str(new cljs.core.Keyword(null,"name","name",1017277949).cljs$core$IFn$_invoke$arity$1(pck)),cljs.core.str(" "),cljs.core.str(new cljs.core.Keyword(null,"version","version",1365512266).cljs$core$IFn$_invoke$arity$1(pck)),cljs.core.str(")")].join(''); } else {return null; } })())].join(''),new cljs.core.Keyword(null,"args","args",1016906831),(function (){var or__4884__auto__ = new cljs.core.Keyword(null,"signatureRaw","signatureRaw",3837738946).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"annotation","annotation",3753828001).cljs$core$IFn$_invoke$arity$1(target));if(cljs.core.truth_(or__4884__auto__)) {return or__4884__auto__; } else {var or__4884__auto____$1 = new cljs.core.Keyword(null,"signatureRaw","signatureRaw",3837738946).cljs$core$IFn$_invoke$arity$1(target);if(cljs.core.truth_(or__4884__auto____$1)) {return or__4884__auto____$1; } else {return new cljs.core.Keyword(null,"paramsRaw","paramsRaw",2968749108).cljs$core$IFn$_invoke$arity$1(target); } } })(),new cljs.core.Keyword(null,"doc","doc",1014003882),(function (){var temp__4092__auto____$1 = new cljs.core.Keyword(null,"doc","doc",1014003882).cljs$core$IFn$_invoke$arity$1(target);if(cljs.core.truth_(temp__4092__auto____$1)) {var doc = temp__4092__auto____$1;return doc.trim(); } else {return null; } })(),new cljs.core.Keyword(null,"loc","loc",1014011570),pos], null)); } else {return null; } }); lt.object.behavior_STAR_.call(null,new cljs.core.Keyword("lt.plugins.elm-light","elm-doc","lt.plugins.elm-light/elm-doc",3124390860),new cljs.core.Keyword(null,"reaction","reaction",4441361819),lt.plugins.elm_light.__BEH__elm_doc,new cljs.core.Keyword(null,"triggers","triggers",2516997421),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"editor.elm.doc","editor.elm.doc",1570413537),null], null), null)); lt.plugins.elm_light.__BEH__elm_parse_editor_on_change = (function __BEH__elm_parse_editor_on_change(ed){return lt.object.raise.call(null,ed,new cljs.core.Keyword(null,"elm.parse.editor","elm.parse.editor",2241470658)); }); lt.object.behavior_STAR_.call(null,new cljs.core.Keyword("lt.plugins.elm-light","elm-parse-editor-on-change","lt.plugins.elm-light/elm-parse-editor-on-change",1092931718),new cljs.core.Keyword(null,"reaction","reaction",4441361819),lt.plugins.elm_light.__BEH__elm_parse_editor_on_change,new cljs.core.Keyword(null,"desc","desc",1016984067),"Parse a connected elm editor on content change",new cljs.core.Keyword(null,"triggers","triggers",2516997421),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"change","change",3947235106),null], null), null),new cljs.core.Keyword(null,"debounce","debounce",1556599227),300); lt.plugins.elm_light.__BEH__elm_parse_editor = (function __BEH__elm_parse_editor(ed){if(!(lt.plugins.elm_light.utils.str_contains.call(null,new cljs.core.Keyword(null,"path","path",1017337751).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"info","info",1017141280).cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,ed))),"elm-stuff"))) {var client = lt.plugins.elm_light.clients.get_eval_client_if_connected.call(null,ed,new cljs.core.Keyword(null,"editor.elm.ast.parsetext","editor.elm.ast.parsetext",1992138717));var path = new cljs.core.Keyword(null,"path","path",1017337751).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"info","info",1017141280).cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,ed)));if(cljs.core.truth_((function (){var and__4872__auto__ = client;if(cljs.core.truth_(and__4872__auto__)) {return (cljs.core._EQ_.call(null,lt.objs.editor.pool.last_active.call(null),ed)) && (!(lt.plugins.elm_light.utils.str_contains.call(null,path,"elm-stuff"))); } else {return and__4872__auto__; } })())) {return lt.objs.clients.send.call(null,client,new cljs.core.Keyword(null,"editor.elm.ast.parsetext","editor.elm.ast.parsetext",1992138717),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"code","code",1016963423),lt.objs.editor.__GT_val.call(null,ed)], null),new cljs.core.Keyword(null,"only","only",1017320222),ed); } else {return null; } } else {return null; } }); lt.object.behavior_STAR_.call(null,new cljs.core.Keyword("lt.plugins.elm-light","elm-parse-editor","lt.plugins.elm-light/elm-parse-editor",583860183),new cljs.core.Keyword(null,"reaction","reaction",4441361819),lt.plugins.elm_light.__BEH__elm_parse_editor,new cljs.core.Keyword(null,"desc","desc",1016984067),"Initiate parsing of the content/elm code of the given editor",new cljs.core.Keyword(null,"triggers","triggers",2516997421),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"focus","focus",1111509066),null,new cljs.core.Keyword(null,"project-connected","project-connected",3474311367),null,new cljs.core.Keyword(null,"elm.parse.editor","elm.parse.editor",2241470658),null], null), null)); lt.plugins.elm_light.__BEH__elm_editor_disconnected = (function __BEH__elm_editor_disconnected(ed){lt.object.raise.call(null,ed,new cljs.core.Keyword(null,"clear-linter-results!","clear-linter-results!",4528495642)); lt.object.update_BANG_.call(null,ed,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"ast-status","ast-status",2421112079)], null),cljs.core.assoc,new cljs.core.Keyword(null,"status","status",4416389988),null,new cljs.core.Keyword(null,"error","error",1110689146),null); lt.plugins.elm_light.elm_ast.update_status_for_editor.call(null,ed); return lt.object.raise.call(null,ed,new cljs.core.Keyword(null,"elm.gutter.exposeds.mark","elm.gutter.exposeds.mark",3035248815)); }); lt.object.behavior_STAR_.call(null,new cljs.core.Keyword("lt.plugins.elm-light","elm-editor-disconnected","lt.plugins.elm-light/elm-editor-disconnected",3526187369),new cljs.core.Keyword(null,"reaction","reaction",4441361819),lt.plugins.elm_light.__BEH__elm_editor_disconnected,new cljs.core.Keyword(null,"desc","desc",1016984067),"Clean up state when project connection for an editor has been disconnected",new cljs.core.Keyword(null,"triggers","triggers",2516997421),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"project-disconnected","project-disconnected",2085293025),null], null), null)); lt.plugins.elm_light.__BEH__elm_parse_editor_result = (function __BEH__elm_parse_editor_result(ed,res){var temp__4090__auto___6807 = new cljs.core.Keyword(null,"error","error",1110689146).cljs$core$IFn$_invoke$arity$1(res);if(cljs.core.truth_(temp__4090__auto___6807)) {var error_6808 = temp__4090__auto___6807;lt.object.update_BANG_.call(null,ed,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"ast-status","ast-status",2421112079)], null),cljs.core.assoc,new cljs.core.Keyword(null,"status","status",4416389988),new cljs.core.Keyword(null,"error","error",1110689146),new cljs.core.Keyword(null,"error","error",1110689146),error_6808); lt.object.raise.call(null,ed,new cljs.core.Keyword(null,"elm.gutter.refresh","elm.gutter.refresh",722016962)); } else {var path_6809 = new cljs.core.Keyword(null,"path","path",1017337751).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"info","info",1017141280).cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,ed)));lt.object.update_BANG_.call(null,ed,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"ast-status","ast-status",2421112079)], null),cljs.core.assoc,new cljs.core.Keyword(null,"status","status",4416389988),new cljs.core.Keyword(null,"ok","ok",1013907790),new cljs.core.Keyword(null,"error","error",1110689146),null); lt.plugins.elm_light.elm_ast.upsert_ast_BANG_.call(null,new cljs.core.Keyword(null,"dir","dir",1014003711).cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,lt.plugins.elm_light.get_editor_client.call(null,ed))),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"file","file",1017047278),path_6809,new cljs.core.Keyword(null,"ast","ast",1014001140),new cljs.core.Keyword(null,"ast","ast",1014001140).cljs$core$IFn$_invoke$arity$1(res)], null)); lt.object.raise.call(null,ed,new cljs.core.Keyword(null,"elm.gutter.exposeds.mark","elm.gutter.exposeds.mark",3035248815)); } return lt.plugins.elm_light.elm_ast.update_status_for_editor.call(null,ed); }); lt.object.behavior_STAR_.call(null,new cljs.core.Keyword("lt.plugins.elm-light","elm-parse-editor-result","lt.plugins.elm-light/elm-parse-editor-result",3556794401),new cljs.core.Keyword(null,"reaction","reaction",4441361819),lt.plugins.elm_light.__BEH__elm_parse_editor_result,new cljs.core.Keyword(null,"desc","desc",1016984067),"Handle parse results for a parsed editors content",new cljs.core.Keyword(null,"triggers","triggers",2516997421),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"editor.elm.ast.parsetext.result","editor.elm.ast.parsetext.result",1834022514),null], null), null)); lt.plugins.elm_light.cm_pos__GT_pos = (function cm_pos__GT_pos(cm_pos){return new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"ch","ch",1013907415),cm_pos.ch,new cljs.core.Keyword(null,"line","line",1017226086),cm_pos.line], null); }); lt.plugins.elm_light.safe_move_cursor = (function safe_move_cursor(ed,bm,pos){var temp__4090__auto__ = bm.find();if(cljs.core.truth_(temp__4090__auto__)) {var bm_pos = temp__4090__auto__;return lt.objs.editor.move_cursor.call(null,ed,lt.plugins.elm_light.cm_pos__GT_pos.call(null,bm_pos)); } else {return lt.objs.editor.move_cursor.call(null,ed,pos); } }); lt.plugins.elm_light.__BEH__elm_expose_top_level = (function __BEH__elm_expose_top_level(ed){var path = new cljs.core.Keyword(null,"path","path",1017337751).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"info","info",1017141280).cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,ed)));var prj_path = lt.plugins.elm_light.utils.project_path.call(null,path);var module = lt.plugins.elm_light.elm_ast.get_module_ast.call(null,prj_path,path);var exposing = new cljs.core.Keyword(null,"exposing","exposing",3382854387).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"moduleDeclaration","moduleDeclaration",1240624864).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"ast","ast",1014001140).cljs$core$IFn$_invoke$arity$1(module)));if(cljs.core.truth_(exposing)) {var temp__4092__auto__ = lt.plugins.elm_light.elm_ast.find_top_level_declaration_by_pos.call(null,lt.objs.editor.__GT_cursor.call(null,ed),module);if(cljs.core.truth_(temp__4092__auto__)) {var decl = temp__4092__auto__;if(lt.plugins.elm_light.elm_ast.exposed_by_module_QMARK_.call(null,module,new cljs.core.Keyword(null,"value","value",1125876963).cljs$core$IFn$_invoke$arity$1(decl))) {return null; } else {var map__6773 = lt.plugins.elm_light.elm_ast.__GT_range.call(null,new cljs.core.Keyword(null,"location","location",2914947879).cljs$core$IFn$_invoke$arity$1(exposing));var map__6773__$1 = ((cljs.core.seq_QMARK_.call(null,map__6773))?cljs.core.apply.call(null,cljs.core.hash_map,map__6773):map__6773);var end = cljs.core.get.call(null,map__6773__$1,new cljs.core.Keyword(null,"end","end",1014004813));var start = cljs.core.get.call(null,map__6773__$1,new cljs.core.Keyword(null,"start","start",1123661780));var upd_exp = lt.plugins.elm_light.elm_ast.expose_decl.call(null,decl,exposing);var pos = lt.objs.editor.__GT_cursor.call(null,ed);var bm = lt.objs.editor.bookmark.call(null,ed,pos);lt.objs.editor.replace.call(null,ed,start,end,lt.plugins.elm_light.elm_ast.print_exposing.call(null,upd_exp)); return lt.plugins.elm_light.safe_move_cursor.call(null,ed,bm,pos); } } else {return null; } } else {return null; } }); lt.object.behavior_STAR_.call(null,new cljs.core.Keyword("lt.plugins.elm-light","elm-expose-top-level","lt.plugins.elm-light/elm-expose-top-level",2519767763),new cljs.core.Keyword(null,"reaction","reaction",4441361819),lt.plugins.elm_light.__BEH__elm_expose_top_level,new cljs.core.Keyword(null,"desc","desc",1016984067),"Behavior to expose top level Elm declaration",new cljs.core.Keyword(null,"triggers","triggers",2516997421),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"elm.expose.top.level","elm.expose.top.level",3091507131),null], null), null)); lt.plugins.elm_light.__BEH__elm_unexpose_top_level = (function __BEH__elm_unexpose_top_level(ed){var path = new cljs.core.Keyword(null,"path","path",1017337751).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"info","info",1017141280).cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,ed)));var prj_path = lt.plugins.elm_light.utils.project_path.call(null,path);var module = lt.plugins.elm_light.elm_ast.get_module_ast.call(null,prj_path,path);var exposing = new cljs.core.Keyword(null,"exposing","exposing",3382854387).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"moduleDeclaration","moduleDeclaration",1240624864).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"ast","ast",1014001140).cljs$core$IFn$_invoke$arity$1(module)));if(cljs.core.truth_(exposing)) {var temp__4092__auto__ = lt.plugins.elm_light.elm_ast.find_top_level_declaration_by_pos.call(null,lt.objs.editor.__GT_cursor.call(null,ed),module);if(cljs.core.truth_(temp__4092__auto__)) {var decl = temp__4092__auto__;if((lt.plugins.elm_light.elm_ast.exposed_by_module_QMARK_.call(null,module,new cljs.core.Keyword(null,"value","value",1125876963).cljs$core$IFn$_invoke$arity$1(decl))) && (!(lt.plugins.elm_light.elm_ast.exposeAll_QMARK_.call(null,exposing)))) {var map__6775 = lt.plugins.elm_light.elm_ast.__GT_range.call(null,new cljs.core.Keyword(null,"location","location",2914947879).cljs$core$IFn$_invoke$arity$1(exposing));var map__6775__$1 = ((cljs.core.seq_QMARK_.call(null,map__6775))?cljs.core.apply.call(null,cljs.core.hash_map,map__6775):map__6775);var end = cljs.core.get.call(null,map__6775__$1,new cljs.core.Keyword(null,"end","end",1014004813));var start = cljs.core.get.call(null,map__6775__$1,new cljs.core.Keyword(null,"start","start",1123661780));var upd_exp = lt.plugins.elm_light.elm_ast.unexpose_decl.call(null,decl,exposing);var pos = lt.objs.editor.__GT_cursor.call(null,ed);var bm = lt.objs.editor.bookmark.call(null,ed,pos);lt.objs.editor.replace.call(null,ed,start,end,lt.plugins.elm_light.elm_ast.print_exposing.call(null,upd_exp)); return lt.plugins.elm_light.safe_move_cursor.call(null,ed,bm,pos); } else {return null; } } else {return null; } } else {return null; } }); lt.object.behavior_STAR_.call(null,new cljs.core.Keyword("lt.plugins.elm-light","elm-unexpose-top-level","lt.plugins.elm-light/elm-unexpose-top-level",4048820218),new cljs.core.Keyword(null,"reaction","reaction",4441361819),lt.plugins.elm_light.__BEH__elm_unexpose_top_level,new cljs.core.Keyword(null,"desc","desc",1016984067),"Behavior to unexpose top level Elm declaration",new cljs.core.Keyword(null,"triggers","triggers",2516997421),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"elm.unexpose.top.level","elm.unexpose.top.level",3630199380),null], null), null)); lt.plugins.elm_light.__BEH__elm_sort_imports = (function __BEH__elm_sort_imports(ed){var path = new cljs.core.Keyword(null,"path","path",1017337751).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"info","info",1017141280).cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,ed)));var prj_path = lt.plugins.elm_light.utils.project_path.call(null,path);var module = lt.plugins.elm_light.elm_ast.get_module_ast.call(null,prj_path,path);var imports = new cljs.core.Keyword(null,"imports","imports",2939942112).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"imports","imports",2939942112).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"ast","ast",1014001140).cljs$core$IFn$_invoke$arity$1(module)));var location = new cljs.core.Keyword(null,"location","location",2914947879).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"imports","imports",2939942112).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"ast","ast",1014001140).cljs$core$IFn$_invoke$arity$1(module)));if(cljs.core.seq.call(null,imports)) {var map__6777 = lt.plugins.elm_light.elm_ast.__GT_range.call(null,location);var map__6777__$1 = ((cljs.core.seq_QMARK_.call(null,map__6777))?cljs.core.apply.call(null,cljs.core.hash_map,map__6777):map__6777);var end = cljs.core.get.call(null,map__6777__$1,new cljs.core.Keyword(null,"end","end",1014004813));var start = cljs.core.get.call(null,map__6777__$1,new cljs.core.Keyword(null,"start","start",1123661780));var pos = lt.objs.editor.__GT_cursor.call(null,ed);var bm = lt.objs.editor.bookmark.call(null,ed,lt.objs.editor.__GT_cursor.call(null,ed));lt.objs.editor.replace.call(null,ed,start,end,lt.plugins.elm_light.elm_ast.print_imports.call(null,cljs.core.partial.call(null,lt.plugins.elm_light.elm_ast.sort_imports_default,prj_path),imports)); return lt.plugins.elm_light.safe_move_cursor.call(null,ed,bm,pos); } else {return null; } }); lt.object.behavior_STAR_.call(null,new cljs.core.Keyword("lt.plugins.elm-light","elm-sort-imports","lt.plugins.elm-light/elm-sort-imports",2846847583),new cljs.core.Keyword(null,"reaction","reaction",4441361819),lt.plugins.elm_light.__BEH__elm_sort_imports,new cljs.core.Keyword(null,"desc","desc",1016984067),"Behavior to sort import declarations for given Elm editor",new cljs.core.Keyword(null,"triggers","triggers",2516997421),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"elm.sort.imports","elm.sort.imports",1131863256),null], null), null)); lt.plugins.elm_light.__BEH__elm_autoimport_module_selected = (function __BEH__elm_autoimport_module_selected(ed,item){var path = new cljs.core.Keyword(null,"path","path",1017337751).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"info","info",1017141280).cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,ed)));var prj_path = lt.plugins.elm_light.utils.project_path.call(null,path);var pos = lt.objs.editor.__GT_cursor.call(null,ed);var bm = lt.objs.editor.bookmark.call(null,ed,pos);var token = lt.plugins.elm_light.utils.find_symbol.call(null,ed,pos);var aliaz = cljs.core.first.call(null,clojure.string.split.call(null,token,/\./));var module = lt.plugins.elm_light.elm_ast.get_module_ast.call(null,prj_path,path);var imports = new cljs.core.Keyword(null,"imports","imports",2939942112).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"imports","imports",2939942112).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"ast","ast",1014001140).cljs$core$IFn$_invoke$arity$1(module)));var map__6779 = lt.plugins.elm_light.elm_ast.__GT_range.call(null,new cljs.core.Keyword(null,"location","location",2914947879).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"imports","imports",2939942112).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"ast","ast",1014001140).cljs$core$IFn$_invoke$arity$1(module))));var map__6779__$1 = ((cljs.core.seq_QMARK_.call(null,map__6779))?cljs.core.apply.call(null,cljs.core.hash_map,map__6779):map__6779);var end = cljs.core.get.call(null,map__6779__$1,new cljs.core.Keyword(null,"end","end",1014004813));var start = cljs.core.get.call(null,map__6779__$1,new cljs.core.Keyword(null,"start","start",1123661780));var upd_imports = lt.plugins.elm_light.elm_ast.upsert_imports.call(null,new cljs.core.Keyword(null,"module-name","module-name",4067691710).cljs$core$IFn$_invoke$arity$1(item),aliaz,imports);lt.objs.editor.replace.call(null,ed,start,end,lt.plugins.elm_light.elm_ast.print_imports.call(null,cljs.core.partial.call(null,lt.plugins.elm_light.elm_ast.sort_imports_default,prj_path),upd_imports)); lt.plugins.elm_light.safe_move_cursor.call(null,ed,bm,pos); return lt.objs.editor.focus.call(null,ed); }); lt.object.behavior_STAR_.call(null,new cljs.core.Keyword("lt.plugins.elm-light","elm-autoimport-module-selected","lt.plugins.elm-light/elm-autoimport-module-selected",1551172531),new cljs.core.Keyword(null,"reaction","reaction",4441361819),lt.plugins.elm_light.__BEH__elm_autoimport_module_selected,new cljs.core.Keyword(null,"desc","desc",1016984067),"Behaviour triggered when user selects a module in select for autoimport suggestions",new cljs.core.Keyword(null,"triggers","triggers",2516997421),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"elm.autoimport.module.selected","elm.autoimport.module.selected",3875550653),null], null), null)); lt.plugins.elm_light.__BEH__elm_autoimport_module_init = (function __BEH__elm_autoimport_module_init(ed){var path = new cljs.core.Keyword(null,"path","path",1017337751).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"info","info",1017141280).cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,ed)));var pos = lt.objs.editor.__GT_cursor.call(null,ed);var token = lt.plugins.elm_light.utils.find_symbol.call(null,ed,pos);var token_parts = (cljs.core.truth_(token)?clojure.string.split.call(null,token,/\./):cljs.core.PersistentVector.EMPTY);if(cljs.core.truth_((function (){var and__4872__auto__ = cljs.core._EQ_.call(null,2,cljs.core.count.call(null,token_parts));if(and__4872__auto__) {return cljs.core.re_find.call(null,/[A-Z].*/,cljs.core.first.call(null,token_parts)); } else {return and__4872__auto__; } })())) {var candidates = cljs.core.map.call(null,((function (path,pos,token,token_parts){ return (function (p1__6780_SHARP_){return cljs.core.assoc.call(null,p1__6780_SHARP_,new cljs.core.Keyword(null,"label","label",1116631654),[cljs.core.str(new cljs.core.Keyword(null,"module-name","module-name",4067691710).cljs$core$IFn$_invoke$arity$1(p1__6780_SHARP_)),cljs.core.str((function (){var temp__4092__auto__ = new cljs.core.Keyword(null,"package","package",4501809080).cljs$core$IFn$_invoke$arity$1(p1__6780_SHARP_);if(cljs.core.truth_(temp__4092__auto__)) {var pck = temp__4092__auto__;return [cljs.core.str(" ("),cljs.core.str(new cljs.core.Keyword(null,"name","name",1017277949).cljs$core$IFn$_invoke$arity$1(pck)),cljs.core.str(")")].join(''); } else {return null; } })())].join('')); });})(path,pos,token,token_parts)) ,lt.plugins.elm_light.elm_ast.get_autoimport_candidates.call(null,cljs.core.first.call(null,token_parts),cljs.core.second.call(null,token_parts),path,lt.plugins.elm_light.utils.project_path.call(null,path)));if(cljs.core._EQ_.call(null,1,cljs.core.count.call(null,candidates))) {return lt.object.raise.call(null,ed,new cljs.core.Keyword(null,"elm.autoimport.module.selected","elm.autoimport.module.selected",3875550653),cljs.core.first.call(null,candidates)); } else {if((0 < cljs.core.count.call(null,candidates))) {return lt.plugins.elm_light.widgets.selector.make.call(null,new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,"ed","ed",1013907473),ed,new cljs.core.Keyword(null,"pos","pos",1014015430),pos,new cljs.core.Keyword(null,"behavior","behavior",2524816836),new cljs.core.Keyword(null,"elm.autoimport.module.selected","elm.autoimport.module.selected",3875550653),new cljs.core.Keyword(null,"items","items",1114430258),candidates], null)); } else {if(new cljs.core.Keyword(null,"else","else",1017020587)) {return null; } else {return null; } } } } else {return null; } }); lt.object.behavior_STAR_.call(null,new cljs.core.Keyword("lt.plugins.elm-light","elm-autoimport-module-init","lt.plugins.elm-light/elm-autoimport-module-init",1053455558),new cljs.core.Keyword(null,"reaction","reaction",4441361819),lt.plugins.elm_light.__BEH__elm_autoimport_module_init,new cljs.core.Keyword(null,"desc","desc",1016984067),"Behaviour triggered when user tries to autoimport module for an aliased declaration",new cljs.core.Keyword(null,"triggers","triggers",2516997421),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"elm.autoimport.module.init","elm.autoimport.module.init",2552692786),null], null), null)); lt.objs.command.command.call(null,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"command","command",1964298941),new cljs.core.Keyword(null,"elm.reload.ast","elm.reload.ast",3046520423),new cljs.core.Keyword(null,"desc","desc",1016984067),"Elm: Load/Reload project AST",new cljs.core.Keyword(null,"exec","exec",1017031683),(function (){var temp__4092__auto__ = lt.objs.editor.pool.last_active.call(null);if(cljs.core.truth_(temp__4092__auto__)) {var ed = temp__4092__auto__;return lt.object.raise.call(null,ed,new cljs.core.Keyword(null,"elm.reload-ast","elm.reload-ast",3046490632)); } else {return null; } })], null)); lt.objs.command.command.call(null,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"command","command",1964298941),new cljs.core.Keyword(null,"elm.lint","elm.lint",1176619965),new cljs.core.Keyword(null,"desc","desc",1016984067),"Elm: Lint selected file",new cljs.core.Keyword(null,"exec","exec",1017031683),(function (){var temp__4092__auto__ = lt.objs.editor.pool.last_active.call(null);if(cljs.core.truth_(temp__4092__auto__)) {var ed = temp__4092__auto__;return lt.object.raise.call(null,ed,new cljs.core.Keyword(null,"lint","lint",1017226101),new cljs.core.Keyword(null,"elm.lint.res","elm.lint.res",4381822959)); } else {return null; } })], null)); lt.objs.command.command.call(null,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"command","command",1964298941),new cljs.core.Keyword(null,"elm.make","elm.make",1176641960),new cljs.core.Keyword(null,"desc","desc",1016984067),"Elm: Make selected file",new cljs.core.Keyword(null,"exec","exec",1017031683),(function (){var temp__4092__auto__ = lt.objs.editor.pool.last_active.call(null);if(cljs.core.truth_(temp__4092__auto__)) {var ed = temp__4092__auto__;return lt.object.raise.call(null,ed,new cljs.core.Keyword(null,"elm.make","elm.make",1176641960)); } else {return null; } })], null)); lt.objs.command.command.call(null,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"command","command",1964298941),new cljs.core.Keyword(null,"elm.make-project","elm.make-project",2779298292),new cljs.core.Keyword(null,"desc","desc",1016984067),"Elm: Make current project",new cljs.core.Keyword(null,"exec","exec",1017031683),(function (){var temp__4092__auto__ = lt.objs.editor.pool.last_active.call(null);if(cljs.core.truth_(temp__4092__auto__)) {var ed = temp__4092__auto__;return lt.object.raise.call(null,ed,new cljs.core.Keyword(null,"elm.make-project","elm.make-project",2779298292)); } else {return null; } })], null)); lt.objs.command.command.call(null,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"command","command",1964298941),new cljs.core.Keyword(null,"elm.browse","elm.browse",2486947908),new cljs.core.Keyword(null,"desc","desc",1016984067),"Elm: View current elm file in browser (elm-reactor)",new cljs.core.Keyword(null,"exec","exec",1017031683),(function (){var temp__4092__auto__ = lt.objs.editor.pool.last_active.call(null);if(cljs.core.truth_(temp__4092__auto__)) {var ed = temp__4092__auto__;return lt.object.raise.call(null,ed,new cljs.core.Keyword(null,"elm.browse","elm.browse",2486947908),false); } else {return null; } })], null)); lt.objs.command.command.call(null,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"command","command",1964298941),new cljs.core.Keyword(null,"elm.restart-repl","elm.restart-repl",4116096039),new cljs.core.Keyword(null,"desc","desc",1016984067),"Elm: Restart repl for current project",new cljs.core.Keyword(null,"exec","exec",1017031683),(function (){var temp__4092__auto__ = lt.objs.editor.pool.last_active.call(null);if(cljs.core.truth_(temp__4092__auto__)) {var ed = temp__4092__auto__;return lt.object.raise.call(null,ed,new cljs.core.Keyword(null,"elm.repl.restart","elm.repl.restart",2931654218)); } else {return null; } })], null)); lt.objs.command.command.call(null,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"command","command",1964298941),new cljs.core.Keyword(null,"elm.expose-top-level","elm.expose-top-level",3259391485),new cljs.core.Keyword(null,"desc","desc",1016984067),"Elm: Expose top level definition",new cljs.core.Keyword(null,"exec","exec",1017031683),(function (){var temp__4092__auto__ = lt.objs.editor.pool.last_active.call(null);if(cljs.core.truth_(temp__4092__auto__)) {var ed = temp__4092__auto__;return lt.object.raise.call(null,ed,new cljs.core.Keyword(null,"elm.expose.top.level","elm.expose.top.level",3091507131)); } else {return null; } })], null)); lt.objs.command.command.call(null,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"command","command",1964298941),new cljs.core.Keyword(null,"elm.unexpose-top-level","elm.unexpose-top-level",3798083734),new cljs.core.Keyword(null,"desc","desc",1016984067),"Elm: Un-expose top level definition",new cljs.core.Keyword(null,"exec","exec",1017031683),(function (){var temp__4092__auto__ = lt.objs.editor.pool.last_active.call(null);if(cljs.core.truth_(temp__4092__auto__)) {var ed = temp__4092__auto__;return lt.object.raise.call(null,ed,new cljs.core.Keyword(null,"elm.unexpose.top.level","elm.unexpose.top.level",3630199380)); } else {return null; } })], null)); lt.objs.command.command.call(null,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"command","command",1964298941),new cljs.core.Keyword(null,"elm.autoimport.module","elm.autoimport.module",2749496240),new cljs.core.Keyword(null,"desc","desc",1016984067),"Elm: Autoimport module",new cljs.core.Keyword(null,"exec","exec",1017031683),(function (){var temp__4092__auto__ = lt.objs.editor.pool.last_active.call(null);if(cljs.core.truth_(temp__4092__auto__)) {var ed = temp__4092__auto__;return lt.object.raise.call(null,ed,new cljs.core.Keyword(null,"elm.autoimport.module.init","elm.autoimport.module.init",2552692786)); } else {return null; } })], null)); lt.objs.command.command.call(null,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"command","command",1964298941),new cljs.core.Keyword(null,"elm.sort.imports","elm.sort.imports",1131863256),new cljs.core.Keyword(null,"desc","desc",1016984067),"Elm: Sort imports",new cljs.core.Keyword(null,"exec","exec",1017031683),(function (){var temp__4092__auto__ = lt.objs.editor.pool.last_active.call(null);if(cljs.core.truth_(temp__4092__auto__)) {var ed = temp__4092__auto__;return lt.object.raise.call(null,ed,new cljs.core.Keyword(null,"elm.sort.imports","elm.sort.imports",1131863256)); } else {return null; } })], null)); lt.objs.command.command.call(null,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"command","command",1964298941),new cljs.core.Keyword(null,"elm.help","elm.help",1176496891),new cljs.core.Keyword(null,"desc","desc",1016984067),"Elm: Help !",new cljs.core.Keyword(null,"exec","exec",1017031683),(function (){var temp__4092__auto__ = lt.objs.editor.pool.last_active.call(null);if(cljs.core.truth_(temp__4092__auto__)) {var ed = temp__4092__auto__;var b = lt.objs.browser.add.call(null);return lt.object.raise.call(null,b,new cljs.core.Keyword(null,"navigate!","navigate!",1766726722),"https://rundis.gitbooks.io/elm-light-guide/content/"); } else {return null; } })], null)); lt.objs.command.command.call(null,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"command","command",1964298941),new cljs.core.Keyword(null,"elm.select.top.level","elm.select.top.level",3366757107),new cljs.core.Keyword(null,"desc","desc",1016984067),"Elm: Select top level expression from current cursor position",new cljs.core.Keyword(null,"exec","exec",1017031683),(function (){var temp__4092__auto__ = lt.objs.editor.pool.last_active.call(null);if(cljs.core.truth_(temp__4092__auto__)) {var ed = temp__4092__auto__;var temp__4092__auto____$1 = lt.plugins.elm_light.selection.get_top_level_expr.call(null,ed,lt.objs.editor.__GT_cursor.call(null,ed));if(cljs.core.truth_(temp__4092__auto____$1)) {var rng = temp__4092__auto____$1;return lt.objs.editor.set_selection.call(null,ed,new cljs.core.Keyword(null,"from","from",1017056028).cljs$core$IFn$_invoke$arity$1(rng),new cljs.core.Keyword(null,"to","to",1013907949).cljs$core$IFn$_invoke$arity$1(rng)); } else {return null; } } else {return null; } })], null)); } if(!lt.util.load.provided_QMARK_('lt.plugins.elm-light.module-graph')) { goog.provide('lt.plugins.elm_light.module_graph'); goog.require('cljs.core'); goog.require('clojure.set'); goog.require('lt.objs.files'); goog.require('lt.plugins.elm_light.utils'); goog.require('lt.util.js'); goog.require('lt.util.dom'); goog.require('lt.objs.tabs'); goog.require('clojure.string'); goog.require('lt.plugins.elm_light.utils'); goog.require('lt.objs.notifos'); goog.require('lt.objs.notifos'); goog.require('lt.util.dom'); goog.require('lt.objs.editor.pool'); goog.require('lt.objs.command'); goog.require('lt.objs.files'); goog.require('clojure.string'); goog.require('lt.plugins.elm_light.elm_ast'); goog.require('lt.object'); goog.require('lt.object'); goog.require('clojure.set'); goog.require('lt.objs.console'); goog.require('lt.objs.tabs'); goog.require('lt.objs.console'); goog.require('lt.plugins.elm_light.elm_ast'); goog.require('lt.objs.editor.pool'); goog.require('lt.util.js'); goog.require('lt.objs.command'); lt.plugins.elm_light.module_graph.dagreD3 = require(lt.objs.files.join.call(null,lt.plugins.elm_light.utils.elm_plugin_dir,"node_modules/dagre-d3")); lt.plugins.elm_light.module_graph.d3 = require(lt.objs.files.join.call(null,lt.plugins.elm_light.utils.elm_plugin_dir,"node_modules/d3")); lt.plugins.elm_light.module_graph.module_graph_ui = (function module_graph_ui(this$){var e__6317__auto__ = crate.core.html.call(null,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"div.graph","div.graph",2030351651),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"div.filters","div.filters",1727400720),"Add filters here !"], null),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"div.module-graph","div.module-graph",913393756),new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"svg:svg","svg:svg",3472817088),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"width","width",1127031096),"650",new cljs.core.Keyword(null,"height","height",4087841945),"680"], null),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"svg:g","svg:g",1123725379),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"transform","transform",2066570974),"translate(20,20)"], null)], null)], null)], null)], null));var seq__19299_19425 = cljs.core.seq.call(null,cljs.core.partition.call(null,2,cljs.core.PersistentVector.EMPTY));var chunk__19300_19426 = null;var count__19301_19427 = 0;var i__19302_19428 = 0;while(true){ if((i__19302_19428 < count__19301_19427)) {var vec__19303_19429 = cljs.core._nth.call(null,chunk__19300_19426,i__19302_19428);var ev__6318__auto___19430 = cljs.core.nth.call(null,vec__19303_19429,0,null);var func__6319__auto___19431 = cljs.core.nth.call(null,vec__19303_19429,1,null);lt.util.dom.on.call(null,e__6317__auto__,ev__6318__auto___19430,func__6319__auto___19431); { var G__19432 = seq__19299_19425; var G__19433 = chunk__19300_19426; var G__19434 = count__19301_19427; var G__19435 = (i__19302_19428 + 1); seq__19299_19425 = G__19432; chunk__19300_19426 = G__19433; count__19301_19427 = G__19434; i__19302_19428 = G__19435; continue; } } else {var temp__4092__auto___19436 = cljs.core.seq.call(null,seq__19299_19425);if(temp__4092__auto___19436) {var seq__19299_19437__$1 = temp__4092__auto___19436;if(cljs.core.chunked_seq_QMARK_.call(null,seq__19299_19437__$1)) {var c__5632__auto___19438 = cljs.core.chunk_first.call(null,seq__19299_19437__$1);{ var G__19439 = cljs.core.chunk_rest.call(null,seq__19299_19437__$1); var G__19440 = c__5632__auto___19438; var G__19441 = cljs.core.count.call(null,c__5632__auto___19438); var G__19442 = 0; seq__19299_19425 = G__19439; chunk__19300_19426 = G__19440; count__19301_19427 = G__19441; i__19302_19428 = G__19442; continue; } } else {var vec__19304_19443 = cljs.core.first.call(null,seq__19299_19437__$1);var ev__6318__auto___19444 = cljs.core.nth.call(null,vec__19304_19443,0,null);var func__6319__auto___19445 = cljs.core.nth.call(null,vec__19304_19443,1,null);lt.util.dom.on.call(null,e__6317__auto__,ev__6318__auto___19444,func__6319__auto___19445); { var G__19446 = cljs.core.next.call(null,seq__19299_19437__$1); var G__19447 = null; var G__19448 = 0; var G__19449 = 0; seq__19299_19425 = G__19446; chunk__19300_19426 = G__19447; count__19301_19427 = G__19448; i__19302_19428 = G__19449; continue; } } } else {} } break; } return e__6317__auto__; }); lt.plugins.elm_light.module_graph.exposeds_filter_ui = (function exposeds_filter_ui(this$){var e__6317__auto__ = crate.core.html.call(null,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"span.filter.checkbox","span.filter.checkbox",4381384263),new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"label","label",1116631654),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"input","input",1114262332),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"type","type",1017479852),"checkbox"], null)], null),"Show module exposeds"], null)], null));var seq__19311_19450 = cljs.core.seq.call(null,cljs.core.partition.call(null,2,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"change","change",3947235106),((function (e__6317__auto__){ return (function (ev){return lt.plugins.elm_light.module_graph.toggle_exposeds_filter_BANG_.call(null,this$,ev.target.checked); });})(e__6317__auto__)) ], null)));var chunk__19312_19451 = null;var count__19313_19452 = 0;var i__19314_19453 = 0;while(true){ if((i__19314_19453 < count__19313_19452)) {var vec__19315_19454 = cljs.core._nth.call(null,chunk__19312_19451,i__19314_19453);var ev__6318__auto___19455 = cljs.core.nth.call(null,vec__19315_19454,0,null);var func__6319__auto___19456 = cljs.core.nth.call(null,vec__19315_19454,1,null);lt.util.dom.on.call(null,e__6317__auto__,ev__6318__auto___19455,func__6319__auto___19456); { var G__19457 = seq__19311_19450; var G__19458 = chunk__19312_19451; var G__19459 = count__19313_19452; var G__19460 = (i__19314_19453 + 1); seq__19311_19450 = G__19457; chunk__19312_19451 = G__19458; count__19313_19452 = G__19459; i__19314_19453 = G__19460; continue; } } else {var temp__4092__auto___19461 = cljs.core.seq.call(null,seq__19311_19450);if(temp__4092__auto___19461) {var seq__19311_19462__$1 = temp__4092__auto___19461;if(cljs.core.chunked_seq_QMARK_.call(null,seq__19311_19462__$1)) {var c__5632__auto___19463 = cljs.core.chunk_first.call(null,seq__19311_19462__$1);{ var G__19464 = cljs.core.chunk_rest.call(null,seq__19311_19462__$1); var G__19465 = c__5632__auto___19463; var G__19466 = cljs.core.count.call(null,c__5632__auto___19463); var G__19467 = 0; seq__19311_19450 = G__19464; chunk__19312_19451 = G__19465; count__19313_19452 = G__19466; i__19314_19453 = G__19467; continue; } } else {var vec__19316_19468 = cljs.core.first.call(null,seq__19311_19462__$1);var ev__6318__auto___19469 = cljs.core.nth.call(null,vec__19316_19468,0,null);var func__6319__auto___19470 = cljs.core.nth.call(null,vec__19316_19468,1,null);lt.util.dom.on.call(null,e__6317__auto__,ev__6318__auto___19469,func__6319__auto___19470); { var G__19471 = cljs.core.next.call(null,seq__19311_19462__$1); var G__19472 = null; var G__19473 = 0; var G__19474 = 0; seq__19311_19450 = G__19471; chunk__19312_19451 = G__19472; count__19313_19452 = G__19473; i__19314_19453 = G__19474; continue; } } } else {} } break; } return e__6317__auto__; }); lt.plugins.elm_light.module_graph.module_filter_option_ui = (function module_filter_option_ui(this$,module){var e__6317__auto__ = crate.core.html.call(null,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"option","option",4298734567),new cljs.core.Keyword(null,"name","name",1017277949).cljs$core$IFn$_invoke$arity$1(module)], null));var seq__19323_19475 = cljs.core.seq.call(null,cljs.core.partition.call(null,2,cljs.core.PersistentVector.EMPTY));var chunk__19324_19476 = null;var count__19325_19477 = 0;var i__19326_19478 = 0;while(true){ if((i__19326_19478 < count__19325_19477)) {var vec__19327_19479 = cljs.core._nth.call(null,chunk__19324_19476,i__19326_19478);var ev__6318__auto___19480 = cljs.core.nth.call(null,vec__19327_19479,0,null);var func__6319__auto___19481 = cljs.core.nth.call(null,vec__19327_19479,1,null);lt.util.dom.on.call(null,e__6317__auto__,ev__6318__auto___19480,func__6319__auto___19481); { var G__19482 = seq__19323_19475; var G__19483 = chunk__19324_19476; var G__19484 = count__19325_19477; var G__19485 = (i__19326_19478 + 1); seq__19323_19475 = G__19482; chunk__19324_19476 = G__19483; count__19325_19477 = G__19484; i__19326_19478 = G__19485; continue; } } else {var temp__4092__auto___19486 = cljs.core.seq.call(null,seq__19323_19475);if(temp__4092__auto___19486) {var seq__19323_19487__$1 = temp__4092__auto___19486;if(cljs.core.chunked_seq_QMARK_.call(null,seq__19323_19487__$1)) {var c__5632__auto___19488 = cljs.core.chunk_first.call(null,seq__19323_19487__$1);{ var G__19489 = cljs.core.chunk_rest.call(null,seq__19323_19487__$1); var G__19490 = c__5632__auto___19488; var G__19491 = cljs.core.count.call(null,c__5632__auto___19488); var G__19492 = 0; seq__19323_19475 = G__19489; chunk__19324_19476 = G__19490; count__19325_19477 = G__19491; i__19326_19478 = G__19492; continue; } } else {var vec__19328_19493 = cljs.core.first.call(null,seq__19323_19487__$1);var ev__6318__auto___19494 = cljs.core.nth.call(null,vec__19328_19493,0,null);var func__6319__auto___19495 = cljs.core.nth.call(null,vec__19328_19493,1,null);lt.util.dom.on.call(null,e__6317__auto__,ev__6318__auto___19494,func__6319__auto___19495); { var G__19496 = cljs.core.next.call(null,seq__19323_19487__$1); var G__19497 = null; var G__19498 = 0; var G__19499 = 0; seq__19323_19475 = G__19496; chunk__19324_19476 = G__19497; count__19325_19477 = G__19498; i__19326_19478 = G__19499; continue; } } } else {} } break; } return e__6317__auto__; }); lt.plugins.elm_light.module_graph.module_filter_ui = (function module_filter_ui(this$,modules){var e__6317__auto__ = crate.core.html.call(null,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"span.filter","span.filter",4385375758),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"label","label",1116631654),"Module: "], null),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"select","select",4402849902),cljs.core.map.call(null,cljs.core.partial.call(null,lt.plugins.elm_light.module_graph.module_filter_option_ui,this$),cljs.core.cons.call(null,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"name","name",1017277949),""], null),modules))], null)], null));var seq__19335_19500 = cljs.core.seq.call(null,cljs.core.partition.call(null,2,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"change","change",3947235106),((function (e__6317__auto__){ return (function (ev){return lt.plugins.elm_light.module_graph.set_module_filter_BANG_.call(null,this$,ev.target.value); });})(e__6317__auto__)) ], null)));var chunk__19336_19501 = null;var count__19337_19502 = 0;var i__19338_19503 = 0;while(true){ if((i__19338_19503 < count__19337_19502)) {var vec__19339_19504 = cljs.core._nth.call(null,chunk__19336_19501,i__19338_19503);var ev__6318__auto___19505 = cljs.core.nth.call(null,vec__19339_19504,0,null);var func__6319__auto___19506 = cljs.core.nth.call(null,vec__19339_19504,1,null);lt.util.dom.on.call(null,e__6317__auto__,ev__6318__auto___19505,func__6319__auto___19506); { var G__19507 = seq__19335_19500; var G__19508 = chunk__19336_19501; var G__19509 = count__19337_19502; var G__19510 = (i__19338_19503 + 1); seq__19335_19500 = G__19507; chunk__19336_19501 = G__19508; count__19337_19502 = G__19509; i__19338_19503 = G__19510; continue; } } else {var temp__4092__auto___19511 = cljs.core.seq.call(null,seq__19335_19500);if(temp__4092__auto___19511) {var seq__19335_19512__$1 = temp__4092__auto___19511;if(cljs.core.chunked_seq_QMARK_.call(null,seq__19335_19512__$1)) {var c__5632__auto___19513 = cljs.core.chunk_first.call(null,seq__19335_19512__$1);{ var G__19514 = cljs.core.chunk_rest.call(null,seq__19335_19512__$1); var G__19515 = c__5632__auto___19513; var G__19516 = cljs.core.count.call(null,c__5632__auto___19513); var G__19517 = 0; seq__19335_19500 = G__19514; chunk__19336_19501 = G__19515; count__19337_19502 = G__19516; i__19338_19503 = G__19517; continue; } } else {var vec__19340_19518 = cljs.core.first.call(null,seq__19335_19512__$1);var ev__6318__auto___19519 = cljs.core.nth.call(null,vec__19340_19518,0,null);var func__6319__auto___19520 = cljs.core.nth.call(null,vec__19340_19518,1,null);lt.util.dom.on.call(null,e__6317__auto__,ev__6318__auto___19519,func__6319__auto___19520); { var G__19521 = cljs.core.next.call(null,seq__19335_19512__$1); var G__19522 = null; var G__19523 = 0; var G__19524 = 0; seq__19335_19500 = G__19521; chunk__19336_19501 = G__19522; count__19337_19502 = G__19523; i__19338_19503 = G__19524; continue; } } } else {} } break; } return e__6317__auto__; }); lt.plugins.elm_light.module_graph.group_filter_option_ui = (function group_filter_option_ui(this$,group){var e__6317__auto__ = crate.core.html.call(null,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"option","option",4298734567),new cljs.core.Keyword(null,"name","name",1017277949).cljs$core$IFn$_invoke$arity$1(group)], null));var seq__19347_19525 = cljs.core.seq.call(null,cljs.core.partition.call(null,2,cljs.core.PersistentVector.EMPTY));var chunk__19348_19526 = null;var count__19349_19527 = 0;var i__19350_19528 = 0;while(true){ if((i__19350_19528 < count__19349_19527)) {var vec__19351_19529 = cljs.core._nth.call(null,chunk__19348_19526,i__19350_19528);var ev__6318__auto___19530 = cljs.core.nth.call(null,vec__19351_19529,0,null);var func__6319__auto___19531 = cljs.core.nth.call(null,vec__19351_19529,1,null);lt.util.dom.on.call(null,e__6317__auto__,ev__6318__auto___19530,func__6319__auto___19531); { var G__19532 = seq__19347_19525; var G__19533 = chunk__19348_19526; var G__19534 = count__19349_19527; var G__19535 = (i__19350_19528 + 1); seq__19347_19525 = G__19532; chunk__19348_19526 = G__19533; count__19349_19527 = G__19534; i__19350_19528 = G__19535; continue; } } else {var temp__4092__auto___19536 = cljs.core.seq.call(null,seq__19347_19525);if(temp__4092__auto___19536) {var seq__19347_19537__$1 = temp__4092__auto___19536;if(cljs.core.chunked_seq_QMARK_.call(null,seq__19347_19537__$1)) {var c__5632__auto___19538 = cljs.core.chunk_first.call(null,seq__19347_19537__$1);{ var G__19539 = cljs.core.chunk_rest.call(null,seq__19347_19537__$1); var G__19540 = c__5632__auto___19538; var G__19541 = cljs.core.count.call(null,c__5632__auto___19538); var G__19542 = 0; seq__19347_19525 = G__19539; chunk__19348_19526 = G__19540; count__19349_19527 = G__19541; i__19350_19528 = G__19542; continue; } } else {var vec__19352_19543 = cljs.core.first.call(null,seq__19347_19537__$1);var ev__6318__auto___19544 = cljs.core.nth.call(null,vec__19352_19543,0,null);var func__6319__auto___19545 = cljs.core.nth.call(null,vec__19352_19543,1,null);lt.util.dom.on.call(null,e__6317__auto__,ev__6318__auto___19544,func__6319__auto___19545); { var G__19546 = cljs.core.next.call(null,seq__19347_19537__$1); var G__19547 = null; var G__19548 = 0; var G__19549 = 0; seq__19347_19525 = G__19546; chunk__19348_19526 = G__19547; count__19349_19527 = G__19548; i__19350_19528 = G__19549; continue; } } } else {} } break; } return e__6317__auto__; }); lt.plugins.elm_light.module_graph.group_filter_ui = (function group_filter_ui(this$,groups){var e__6317__auto__ = crate.core.html.call(null,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"span.filter","span.filter",4385375758),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"label","label",1116631654),"Group: "], null),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"select","select",4402849902),cljs.core.map.call(null,cljs.core.partial.call(null,lt.plugins.elm_light.module_graph.group_filter_option_ui,this$),cljs.core.cons.call(null,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"name","name",1017277949),""], null),groups))], null)], null));var seq__19359_19550 = cljs.core.seq.call(null,cljs.core.partition.call(null,2,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"change","change",3947235106),((function (e__6317__auto__){ return (function (ev){return lt.plugins.elm_light.module_graph.set_group_filter_BANG_.call(null,this$,ev.target.value); });})(e__6317__auto__)) ], null)));var chunk__19360_19551 = null;var count__19361_19552 = 0;var i__19362_19553 = 0;while(true){ if((i__19362_19553 < count__19361_19552)) {var vec__19363_19554 = cljs.core._nth.call(null,chunk__19360_19551,i__19362_19553);var ev__6318__auto___19555 = cljs.core.nth.call(null,vec__19363_19554,0,null);var func__6319__auto___19556 = cljs.core.nth.call(null,vec__19363_19554,1,null);lt.util.dom.on.call(null,e__6317__auto__,ev__6318__auto___19555,func__6319__auto___19556); { var G__19557 = seq__19359_19550; var G__19558 = chunk__19360_19551; var G__19559 = count__19361_19552; var G__19560 = (i__19362_19553 + 1); seq__19359_19550 = G__19557; chunk__19360_19551 = G__19558; count__19361_19552 = G__19559; i__19362_19553 = G__19560; continue; } } else {var temp__4092__auto___19561 = cljs.core.seq.call(null,seq__19359_19550);if(temp__4092__auto___19561) {var seq__19359_19562__$1 = temp__4092__auto___19561;if(cljs.core.chunked_seq_QMARK_.call(null,seq__19359_19562__$1)) {var c__5632__auto___19563 = cljs.core.chunk_first.call(null,seq__19359_19562__$1);{ var G__19564 = cljs.core.chunk_rest.call(null,seq__19359_19562__$1); var G__19565 = c__5632__auto___19563; var G__19566 = cljs.core.count.call(null,c__5632__auto___19563); var G__19567 = 0; seq__19359_19550 = G__19564; chunk__19360_19551 = G__19565; count__19361_19552 = G__19566; i__19362_19553 = G__19567; continue; } } else {var vec__19364_19568 = cljs.core.first.call(null,seq__19359_19562__$1);var ev__6318__auto___19569 = cljs.core.nth.call(null,vec__19364_19568,0,null);var func__6319__auto___19570 = cljs.core.nth.call(null,vec__19364_19568,1,null);lt.util.dom.on.call(null,e__6317__auto__,ev__6318__auto___19569,func__6319__auto___19570); { var G__19571 = cljs.core.next.call(null,seq__19359_19562__$1); var G__19572 = null; var G__19573 = 0; var G__19574 = 0; seq__19359_19550 = G__19571; chunk__19360_19551 = G__19572; count__19361_19552 = G__19573; i__19362_19553 = G__19574; continue; } } } else {} } break; } return e__6317__auto__; }); lt.plugins.elm_light.module_graph.filters_ui = (function filters_ui(this$,filters){var e__6317__auto__ = crate.core.html.call(null,new cljs.core.PersistentVector(null, 5, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"div.filters","div.filters",1727400720),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"h1","h1",1013907515),lt.objs.files.basename.call(null,new cljs.core.Keyword(null,"project-path","project-path",1907176907).cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,this$)))], null),lt.plugins.elm_light.module_graph.group_filter_ui.call(null,this$,new cljs.core.Keyword(null,"groups","groups",4071411014).cljs$core$IFn$_invoke$arity$1(filters)),lt.plugins.elm_light.module_graph.module_filter_ui.call(null,this$,new cljs.core.Keyword(null,"modules","modules",2241338105).cljs$core$IFn$_invoke$arity$1(filters)),lt.plugins.elm_light.module_graph.exposeds_filter_ui.call(null,this$)], null));var seq__19371_19575 = cljs.core.seq.call(null,cljs.core.partition.call(null,2,cljs.core.PersistentVector.EMPTY));var chunk__19372_19576 = null;var count__19373_19577 = 0;var i__19374_19578 = 0;while(true){ if((i__19374_19578 < count__19373_19577)) {var vec__19375_19579 = cljs.core._nth.call(null,chunk__19372_19576,i__19374_19578);var ev__6318__auto___19580 = cljs.core.nth.call(null,vec__19375_19579,0,null);var func__6319__auto___19581 = cljs.core.nth.call(null,vec__19375_19579,1,null);lt.util.dom.on.call(null,e__6317__auto__,ev__6318__auto___19580,func__6319__auto___19581); { var G__19582 = seq__19371_19575; var G__19583 = chunk__19372_19576; var G__19584 = count__19373_19577; var G__19585 = (i__19374_19578 + 1); seq__19371_19575 = G__19582; chunk__19372_19576 = G__19583; count__19373_19577 = G__19584; i__19374_19578 = G__19585; continue; } } else {var temp__4092__auto___19586 = cljs.core.seq.call(null,seq__19371_19575);if(temp__4092__auto___19586) {var seq__19371_19587__$1 = temp__4092__auto___19586;if(cljs.core.chunked_seq_QMARK_.call(null,seq__19371_19587__$1)) {var c__5632__auto___19588 = cljs.core.chunk_first.call(null,seq__19371_19587__$1);{ var G__19589 = cljs.core.chunk_rest.call(null,seq__19371_19587__$1); var G__19590 = c__5632__auto___19588; var G__19591 = cljs.core.count.call(null,c__5632__auto___19588); var G__19592 = 0; seq__19371_19575 = G__19589; chunk__19372_19576 = G__19590; count__19373_19577 = G__19591; i__19374_19578 = G__19592; continue; } } else {var vec__19376_19593 = cljs.core.first.call(null,seq__19371_19587__$1);var ev__6318__auto___19594 = cljs.core.nth.call(null,vec__19376_19593,0,null);var func__6319__auto___19595 = cljs.core.nth.call(null,vec__19376_19593,1,null);lt.util.dom.on.call(null,e__6317__auto__,ev__6318__auto___19594,func__6319__auto___19595); { var G__19596 = cljs.core.next.call(null,seq__19371_19587__$1); var G__19597 = null; var G__19598 = 0; var G__19599 = 0; seq__19371_19575 = G__19596; chunk__19372_19576 = G__19597; count__19373_19577 = G__19598; i__19374_19578 = G__19599; continue; } } } else {} } break; } return e__6317__auto__; }); lt.plugins.elm_light.module_graph.render_filters = (function render_filters(this$,filters){var container = lt.object.__GT_content.call(null,this$);var curr_filters = lt.util.dom.$.call(null,new cljs.core.Keyword(null,"div.filters","div.filters",1727400720),container);return lt.util.dom.replace_with.call(null,curr_filters,lt.plugins.elm_light.module_graph.filters_ui.call(null,this$,filters)); }); lt.object.object_STAR_.call(null,new cljs.core.Keyword("lt.plugins.elm-light.module-graph","module-graph","lt.plugins.elm-light.module-graph/module-graph",2992764911),new cljs.core.Keyword(null,"tags","tags",1017456523),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"elm.graph.module","elm.graph.module",1941990086)], null),new cljs.core.Keyword(null,"name","name",1017277949),"Module graph",new cljs.core.Keyword(null,"init","init",1017141378),(function (this$){return lt.plugins.elm_light.module_graph.module_graph_ui.call(null,this$); })); lt.plugins.elm_light.module_graph.__BEH__on_close_destroy = (function __BEH__on_close_destroy(this$){var temp__4092__auto___19600 = new cljs.core.Keyword("lt.objs.tabs","tabset","lt.objs.tabs/tabset",3378091779).cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,this$));if(cljs.core.truth_(temp__4092__auto___19600)) {var ts_19601 = temp__4092__auto___19600;if(cljs.core._EQ_.call(null,cljs.core.count.call(null,new cljs.core.Keyword(null,"objs","objs",1017308622).cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,ts_19601))),1)) {lt.objs.tabs.rem_tabset.call(null,ts_19601); } else {} } else {} return lt.object.raise.call(null,this$,new cljs.core.Keyword(null,"destroy","destroy",2571277164)); }); lt.object.behavior_STAR_.call(null,new cljs.core.Keyword("lt.plugins.elm-light.module-graph","on-close-destroy","lt.plugins.elm-light.module-graph/on-close-destroy",3099505529),new cljs.core.Keyword(null,"reaction","reaction",4441361819),lt.plugins.elm_light.module_graph.__BEH__on_close_destroy,new cljs.core.Keyword(null,"triggers","triggers",2516997421),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"close","close",1108660586),null], null), null)); lt.plugins.elm_light.module_graph.node_id = (function node_id(x){return new cljs.core.Keyword(null,"name","name",1017277949).cljs$core$IFn$_invoke$arity$1(x); }); lt.plugins.elm_light.module_graph.exposeds_html = (function exposeds_html(exposeds){return [cljs.core.str("
      "),cljs.core.str(clojure.string.join.call(null,cljs.core.map.call(null,(function (exp){return [cljs.core.str("
    • "),cljs.core.str(exp),cljs.core.str("
    • ")].join(''); }),exposeds))),cljs.core.str("
    ")].join(''); }); lt.plugins.elm_light.module_graph.node_label = (function node_label(this$,x){return {"label": [cljs.core.str("
    "),cljs.core.str(""),cljs.core.str(new cljs.core.Keyword(null,"name","name",1017277949).cljs$core$IFn$_invoke$arity$1(x)),cljs.core.str(""),cljs.core.str((cljs.core.truth_(new cljs.core.Keyword(null,"show-exposeds?","show-exposeds?",784237550).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"filters","filters",4454324077).cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,this$))))?lt.plugins.elm_light.module_graph.exposeds_html.call(null,new cljs.core.Keyword(null,"exposeds","exposeds",3382850245).cljs$core$IFn$_invoke$arity$1(x)):null)),cljs.core.str("
    ")].join(''), "style": ((cljs.core._EQ_.call(null,new cljs.core.Keyword(null,"name","name",1017277949).cljs$core$IFn$_invoke$arity$1(x),new cljs.core.Keyword(null,"current-module","current-module",2268519602).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"filters","filters",4454324077).cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,this$)))))?"fill: #FFF8DC":null), "labelType": "html", "shape": (function (){var temp__4090__auto__ = new cljs.core.Keyword(null,"shape","shape",1123304211).cljs$core$IFn$_invoke$arity$1(x);if(cljs.core.truth_(temp__4090__auto__)) {var shape = temp__4090__auto__;return shape; } else {return "rect"; } })()}; }); lt.plugins.elm_light.module_graph.level_styles = new cljs.core.PersistentArrayMap(null, 5, [1,"fill: #474747",2,"fill: #6D686E",3,"fill: #7E7880",4,"fill: #807A78",5,"fill: #919394"], null); lt.plugins.elm_light.module_graph.group_label = (function group_label(x){return {"label": [cljs.core.str("
    "),cljs.core.str(new cljs.core.Keyword(null,"name","name",1017277949).cljs$core$IFn$_invoke$arity$1(x)),cljs.core.str("
    ")].join(''), "clusterLabelPos": "top", "class": "level-class", "style": cljs.core.get.call(null,lt.plugins.elm_light.module_graph.level_styles,new cljs.core.Keyword(null,"level","level",1116770038).cljs$core$IFn$_invoke$arity$1(x)), "labelType": "html", "shape": (function (){var temp__4090__auto__ = new cljs.core.Keyword(null,"shape","shape",1123304211).cljs$core$IFn$_invoke$arity$1(x);if(cljs.core.truth_(temp__4090__auto__)) {var shape = temp__4090__auto__;return shape; } else {return "rect"; } })()}; }); lt.plugins.elm_light.module_graph.create_graph = (function create_graph(this$,data){var g = (new lt.plugins.elm_light.module_graph.dagreD3.graphlib.Graph({"compound": true})).setGraph({});var seq__19393_19602 = cljs.core.seq.call(null,new cljs.core.Keyword(null,"groups","groups",4071411014).cljs$core$IFn$_invoke$arity$1(data));var chunk__19394_19603 = null;var count__19395_19604 = 0;var i__19396_19605 = 0;while(true){ if((i__19396_19605 < count__19395_19604)) {var x_19606 = cljs.core._nth.call(null,chunk__19394_19603,i__19396_19605);g.setNode(new cljs.core.Keyword(null,"group","group",1112533489).cljs$core$IFn$_invoke$arity$1(x_19606),lt.plugins.elm_light.module_graph.group_label.call(null,x_19606)); { var G__19607 = seq__19393_19602; var G__19608 = chunk__19394_19603; var G__19609 = count__19395_19604; var G__19610 = (i__19396_19605 + 1); seq__19393_19602 = G__19607; chunk__19394_19603 = G__19608; count__19395_19604 = G__19609; i__19396_19605 = G__19610; continue; } } else {var temp__4092__auto___19611 = cljs.core.seq.call(null,seq__19393_19602);if(temp__4092__auto___19611) {var seq__19393_19612__$1 = temp__4092__auto___19611;if(cljs.core.chunked_seq_QMARK_.call(null,seq__19393_19612__$1)) {var c__5632__auto___19613 = cljs.core.chunk_first.call(null,seq__19393_19612__$1);{ var G__19614 = cljs.core.chunk_rest.call(null,seq__19393_19612__$1); var G__19615 = c__5632__auto___19613; var G__19616 = cljs.core.count.call(null,c__5632__auto___19613); var G__19617 = 0; seq__19393_19602 = G__19614; chunk__19394_19603 = G__19615; count__19395_19604 = G__19616; i__19396_19605 = G__19617; continue; } } else {var x_19618 = cljs.core.first.call(null,seq__19393_19612__$1);g.setNode(new cljs.core.Keyword(null,"group","group",1112533489).cljs$core$IFn$_invoke$arity$1(x_19618),lt.plugins.elm_light.module_graph.group_label.call(null,x_19618)); { var G__19619 = cljs.core.next.call(null,seq__19393_19612__$1); var G__19620 = null; var G__19621 = 0; var G__19622 = 0; seq__19393_19602 = G__19619; chunk__19394_19603 = G__19620; count__19395_19604 = G__19621; i__19396_19605 = G__19622; continue; } } } else {} } break; } var seq__19397_19623 = cljs.core.seq.call(null,new cljs.core.Keyword(null,"nodes","nodes",1118897699).cljs$core$IFn$_invoke$arity$1(data));var chunk__19398_19624 = null;var count__19399_19625 = 0;var i__19400_19626 = 0;while(true){ if((i__19400_19626 < count__19399_19625)) {var x_19627 = cljs.core._nth.call(null,chunk__19398_19624,i__19400_19626);g.setNode(lt.plugins.elm_light.module_graph.node_id.call(null,x_19627),lt.plugins.elm_light.module_graph.node_label.call(null,this$,x_19627)); var temp__4092__auto___19628 = new cljs.core.Keyword(null,"parent","parent",4313447452).cljs$core$IFn$_invoke$arity$1(x_19627);if(cljs.core.truth_(temp__4092__auto___19628)) {var parent_19629 = temp__4092__auto___19628;g.setParent(lt.plugins.elm_light.module_graph.node_id.call(null,x_19627),parent_19629); } else {} { var G__19630 = seq__19397_19623; var G__19631 = chunk__19398_19624; var G__19632 = count__19399_19625; var G__19633 = (i__19400_19626 + 1); seq__19397_19623 = G__19630; chunk__19398_19624 = G__19631; count__19399_19625 = G__19632; i__19400_19626 = G__19633; continue; } } else {var temp__4092__auto___19634 = cljs.core.seq.call(null,seq__19397_19623);if(temp__4092__auto___19634) {var seq__19397_19635__$1 = temp__4092__auto___19634;if(cljs.core.chunked_seq_QMARK_.call(null,seq__19397_19635__$1)) {var c__5632__auto___19636 = cljs.core.chunk_first.call(null,seq__19397_19635__$1);{ var G__19637 = cljs.core.chunk_rest.call(null,seq__19397_19635__$1); var G__19638 = c__5632__auto___19636; var G__19639 = cljs.core.count.call(null,c__5632__auto___19636); var G__19640 = 0; seq__19397_19623 = G__19637; chunk__19398_19624 = G__19638; count__19399_19625 = G__19639; i__19400_19626 = G__19640; continue; } } else {var x_19641 = cljs.core.first.call(null,seq__19397_19635__$1);g.setNode(lt.plugins.elm_light.module_graph.node_id.call(null,x_19641),lt.plugins.elm_light.module_graph.node_label.call(null,this$,x_19641)); var temp__4092__auto___19642__$1 = new cljs.core.Keyword(null,"parent","parent",4313447452).cljs$core$IFn$_invoke$arity$1(x_19641);if(cljs.core.truth_(temp__4092__auto___19642__$1)) {var parent_19643 = temp__4092__auto___19642__$1;g.setParent(lt.plugins.elm_light.module_graph.node_id.call(null,x_19641),parent_19643); } else {} { var G__19644 = cljs.core.next.call(null,seq__19397_19635__$1); var G__19645 = null; var G__19646 = 0; var G__19647 = 0; seq__19397_19623 = G__19644; chunk__19398_19624 = G__19645; count__19399_19625 = G__19646; i__19400_19626 = G__19647; continue; } } } else {} } break; } var seq__19401_19648 = cljs.core.seq.call(null,cljs.core.filter.call(null,new cljs.core.Keyword(null,"parent","parent",4313447452),new cljs.core.Keyword(null,"groups","groups",4071411014).cljs$core$IFn$_invoke$arity$1(data)));var chunk__19402_19649 = null;var count__19403_19650 = 0;var i__19404_19651 = 0;while(true){ if((i__19404_19651 < count__19403_19650)) {var x_19652 = cljs.core._nth.call(null,chunk__19402_19649,i__19404_19651);g.setParent(new cljs.core.Keyword(null,"group","group",1112533489).cljs$core$IFn$_invoke$arity$1(x_19652),new cljs.core.Keyword(null,"parent","parent",4313447452).cljs$core$IFn$_invoke$arity$1(x_19652)); { var G__19653 = seq__19401_19648; var G__19654 = chunk__19402_19649; var G__19655 = count__19403_19650; var G__19656 = (i__19404_19651 + 1); seq__19401_19648 = G__19653; chunk__19402_19649 = G__19654; count__19403_19650 = G__19655; i__19404_19651 = G__19656; continue; } } else {var temp__4092__auto___19657 = cljs.core.seq.call(null,seq__19401_19648);if(temp__4092__auto___19657) {var seq__19401_19658__$1 = temp__4092__auto___19657;if(cljs.core.chunked_seq_QMARK_.call(null,seq__19401_19658__$1)) {var c__5632__auto___19659 = cljs.core.chunk_first.call(null,seq__19401_19658__$1);{ var G__19660 = cljs.core.chunk_rest.call(null,seq__19401_19658__$1); var G__19661 = c__5632__auto___19659; var G__19662 = cljs.core.count.call(null,c__5632__auto___19659); var G__19663 = 0; seq__19401_19648 = G__19660; chunk__19402_19649 = G__19661; count__19403_19650 = G__19662; i__19404_19651 = G__19663; continue; } } else {var x_19664 = cljs.core.first.call(null,seq__19401_19658__$1);g.setParent(new cljs.core.Keyword(null,"group","group",1112533489).cljs$core$IFn$_invoke$arity$1(x_19664),new cljs.core.Keyword(null,"parent","parent",4313447452).cljs$core$IFn$_invoke$arity$1(x_19664)); { var G__19665 = cljs.core.next.call(null,seq__19401_19658__$1); var G__19666 = null; var G__19667 = 0; var G__19668 = 0; seq__19401_19648 = G__19665; chunk__19402_19649 = G__19666; count__19403_19650 = G__19667; i__19404_19651 = G__19668; continue; } } } else {} } break; } var seq__19405_19669 = cljs.core.seq.call(null,new cljs.core.Keyword(null,"edges","edges",1110261192).cljs$core$IFn$_invoke$arity$1(data));var chunk__19406_19670 = null;var count__19407_19671 = 0;var i__19408_19672 = 0;while(true){ if((i__19408_19672 < count__19407_19671)) {var x_19673 = cljs.core._nth.call(null,chunk__19406_19670,i__19408_19672);g.setEdge(new cljs.core.Keyword(null,"a","a",1013904339).cljs$core$IFn$_invoke$arity$1(x_19673),new cljs.core.Keyword(null,"b","b",1013904340).cljs$core$IFn$_invoke$arity$1(x_19673),{"label": new cljs.core.Keyword(null,"label","label",1116631654).cljs$core$IFn$_invoke$arity$1(x_19673)}); { var G__19674 = seq__19405_19669; var G__19675 = chunk__19406_19670; var G__19676 = count__19407_19671; var G__19677 = (i__19408_19672 + 1); seq__19405_19669 = G__19674; chunk__19406_19670 = G__19675; count__19407_19671 = G__19676; i__19408_19672 = G__19677; continue; } } else {var temp__4092__auto___19678 = cljs.core.seq.call(null,seq__19405_19669);if(temp__4092__auto___19678) {var seq__19405_19679__$1 = temp__4092__auto___19678;if(cljs.core.chunked_seq_QMARK_.call(null,seq__19405_19679__$1)) {var c__5632__auto___19680 = cljs.core.chunk_first.call(null,seq__19405_19679__$1);{ var G__19681 = cljs.core.chunk_rest.call(null,seq__19405_19679__$1); var G__19682 = c__5632__auto___19680; var G__19683 = cljs.core.count.call(null,c__5632__auto___19680); var G__19684 = 0; seq__19405_19669 = G__19681; chunk__19406_19670 = G__19682; count__19407_19671 = G__19683; i__19408_19672 = G__19684; continue; } } else {var x_19685 = cljs.core.first.call(null,seq__19405_19679__$1);g.setEdge(new cljs.core.Keyword(null,"a","a",1013904339).cljs$core$IFn$_invoke$arity$1(x_19685),new cljs.core.Keyword(null,"b","b",1013904340).cljs$core$IFn$_invoke$arity$1(x_19685),{"label": new cljs.core.Keyword(null,"label","label",1116631654).cljs$core$IFn$_invoke$arity$1(x_19685)}); { var G__19686 = cljs.core.next.call(null,seq__19405_19679__$1); var G__19687 = null; var G__19688 = 0; var G__19689 = 0; seq__19405_19669 = G__19686; chunk__19406_19670 = G__19687; count__19407_19671 = G__19688; i__19408_19672 = G__19689; continue; } } } else {} } break; } return g; }); lt.plugins.elm_light.module_graph.d3_sel = (function d3_sel(selector){return lt.plugins.elm_light.module_graph.d3.select(selector); }); lt.plugins.elm_light.module_graph.dimensions = (function dimensions(this$){return new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"w","w",1013904361),new cljs.core.Keyword(null,"content","content",1965434859).cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,this$)).clientWidth,new cljs.core.Keyword(null,"h","h",1013904346),new cljs.core.Keyword(null,"content","content",1965434859).cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,this$)).clientHeight], null); }); lt.plugins.elm_light.module_graph.init_zoom = (function init_zoom(svg,g){var zoom = lt.plugins.elm_light.module_graph.d3.behavior.zoom().on("zoom",(function (){return g.attr("transform",[cljs.core.str("translate("),cljs.core.str(lt.plugins.elm_light.module_graph.d3.event.translate),cljs.core.str(")"),cljs.core.str("scale("),cljs.core.str(lt.plugins.elm_light.module_graph.d3.event.scale),cljs.core.str(")")].join('')); }));return svg.call(zoom); }); lt.plugins.elm_light.module_graph.resize_graph = (function resize_graph(this$,svg){var dim = lt.plugins.elm_light.module_graph.dimensions.call(null,this$);svg.attr("width",(new cljs.core.Keyword(null,"w","w",1013904361).cljs$core$IFn$_invoke$arity$1(dim) + 20)); return svg.attr("height",(new cljs.core.Keyword(null,"h","h",1013904346).cljs$core$IFn$_invoke$arity$1(dim) + 20)); }); lt.plugins.elm_light.module_graph.__BEH__on_render = (function __BEH__on_render(this$,data){var svg = lt.plugins.elm_light.module_graph.d3.select("svg");var g = svg.select("g");var renderer = lt.plugins.elm_light.module_graph.dagreD3.render();renderer.call(null,g,lt.plugins.elm_light.module_graph.create_graph.call(null,this$,data)); lt.plugins.elm_light.module_graph.init_zoom.call(null,svg,g); return lt.util.js.wait.call(null,200,((function (svg,g,renderer){ return (function (){return lt.plugins.elm_light.module_graph.resize_graph.call(null,this$,svg); });})(svg,g,renderer)) ); }); lt.object.behavior_STAR_.call(null,new cljs.core.Keyword("lt.plugins.elm-light.module-graph","on-render","lt.plugins.elm-light.module-graph/on-render",3178205958),new cljs.core.Keyword(null,"reaction","reaction",4441361819),lt.plugins.elm_light.module_graph.__BEH__on_render,new cljs.core.Keyword(null,"desc","desc",1016984067),"Elm render project modules",new cljs.core.Keyword(null,"triggers","triggers",2516997421),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"elm.module-graph.render","elm.module-graph.render",3905237537),null], null), null)); lt.plugins.elm_light.module_graph.get_project_modules = (function get_project_modules(project_path){return cljs.core.remove.call(null,new cljs.core.Keyword(null,"package","package",4501809080),new cljs.core.Keyword(null,"file-asts","file-asts",3945857876).cljs$core$IFn$_invoke$arity$1(lt.plugins.elm_light.elm_ast.get_project.call(null,project_path))); }); lt.plugins.elm_light.module_graph.get_group_names = (function get_group_names(module_names){return cljs.core.sort.call(null,cljs.core.set.call(null,cljs.core.mapcat.call(null,(function (parts){return cljs.core.reduce.call(null,(function (a,b){var group_name = [cljs.core.str(new cljs.core.Keyword(null,"name","name",1017277949).cljs$core$IFn$_invoke$arity$1(cljs.core.last.call(null,a))),cljs.core.str(((cljs.core.seq.call(null,a))?".":null)),cljs.core.str(b)].join('');return cljs.core.conj.call(null,a,new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,"group","group",1112533489),[cljs.core.str("g-"),cljs.core.str(group_name)].join(''),new cljs.core.Keyword(null,"name","name",1017277949),group_name,new cljs.core.Keyword(null,"level","level",1116770038),(cljs.core.count.call(null,a) + 1),new cljs.core.Keyword(null,"parent","parent",4313447452),new cljs.core.Keyword(null,"group","group",1112533489).cljs$core$IFn$_invoke$arity$1(cljs.core.last.call(null,a))], null)); }),cljs.core.PersistentVector.EMPTY,parts); }),cljs.core.map.call(null,cljs.core.drop_last,cljs.core.filter.call(null,(function (p1__19410_SHARP_){return (1 < cljs.core.count.call(null,p1__19410_SHARP_)); }),cljs.core.map.call(null,(function (p1__19409_SHARP_){return clojure.string.split.call(null,p1__19409_SHARP_,/\./); }),module_names)))))); }); lt.plugins.elm_light.module_graph.get_exposeds_names = (function get_exposeds_names(module){return cljs.core.map.call(null,new cljs.core.Keyword(null,"value","value",1125876963),cljs.core.remove.call(null,(function (p1__19411_SHARP_){return cljs.core._EQ_.call(null,"adtDef",new cljs.core.Keyword(null,"type","type",1017479852).cljs$core$IFn$_invoke$arity$1(p1__19411_SHARP_)); }),lt.plugins.elm_light.elm_ast.get_exposed_declarations_memo.call(null,module))); }); lt.plugins.elm_light.module_graph.create_graph_data = (function create_graph_data(modules){var module_names = cljs.core.set.call(null,cljs.core.map.call(null,lt.plugins.elm_light.elm_ast.get_module_name,modules));return new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"groups","groups",4071411014),lt.plugins.elm_light.module_graph.get_group_names.call(null,module_names),new cljs.core.Keyword(null,"nodes","nodes",1118897699),cljs.core.map.call(null,((function (module_names){ return (function (module){var mod_name = lt.plugins.elm_light.elm_ast.get_module_name.call(null,module);return new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,"name","name",1017277949),lt.plugins.elm_light.elm_ast.get_module_name.call(null,module),new cljs.core.Keyword(null,"parent","parent",4313447452),(((-1 < mod_name.indexOf(".")))?[cljs.core.str("g-"),cljs.core.str(clojure.string.join.call(null,".",cljs.core.drop_last.call(null,clojure.string.split.call(null,mod_name,/\./))))].join(''):null),new cljs.core.Keyword(null,"exposeds","exposeds",3382850245),lt.plugins.elm_light.module_graph.get_exposeds_names.call(null,module),new cljs.core.Keyword(null,"file","file",1017047278),new cljs.core.Keyword(null,"file","file",1017047278).cljs$core$IFn$_invoke$arity$1(module)], null); });})(module_names)) ,modules),new cljs.core.Keyword(null,"edges","edges",1110261192),cljs.core.mapcat.call(null,((function (module_names){ return (function (module){return cljs.core.map.call(null,((function (module_names){ return (function (imp){return new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"a","a",1013904339),lt.plugins.elm_light.elm_ast.get_module_name.call(null,module),new cljs.core.Keyword(null,"b","b",1013904340),new cljs.core.Keyword(null,"value","value",1125876963).cljs$core$IFn$_invoke$arity$1(imp),new cljs.core.Keyword(null,"label","label",1116631654),""], null); });})(module_names)) ,cljs.core.filter.call(null,((function (module_names){ return (function (p1__19412_SHARP_){return cljs.core.contains_QMARK_.call(null,module_names,new cljs.core.Keyword(null,"value","value",1125876963).cljs$core$IFn$_invoke$arity$1(p1__19412_SHARP_)); });})(module_names)) ,new cljs.core.Keyword(null,"imports","imports",2939942112).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"imports","imports",2939942112).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"ast","ast",1014001140).cljs$core$IFn$_invoke$arity$1(module))))); });})(module_names)) ,modules)], null); }); lt.plugins.elm_light.module_graph.get_module_import_names = (function get_module_import_names(module){return cljs.core.set.call(null,cljs.core.map.call(null,new cljs.core.Keyword(null,"value","value",1125876963),new cljs.core.Keyword(null,"imports","imports",2939942112).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"imports","imports",2939942112).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"ast","ast",1014001140).cljs$core$IFn$_invoke$arity$1(module))))); }); lt.plugins.elm_light.module_graph.maybe_filter_by_group = (function maybe_filter_by_group(current_group,modules){if(cljs.core.not.call(null,clojure.string.blank_QMARK_.call(null,current_group))) {return cljs.core.filter.call(null,(function (p1__19413_SHARP_){return lt.plugins.elm_light.elm_ast.get_module_name.call(null,p1__19413_SHARP_).startsWith(current_group); }),modules); } else {return modules; } }); lt.plugins.elm_light.module_graph.maybe_filter_by_module = (function maybe_filter_by_module(current_module,modules){if(cljs.core.not.call(null,clojure.string.blank_QMARK_.call(null,current_module))) {var module = cljs.core.first.call(null,cljs.core.filter.call(null,(function (p1__19414_SHARP_){return cljs.core._EQ_.call(null,current_module,lt.plugins.elm_light.elm_ast.get_module_name.call(null,p1__19414_SHARP_)); }),modules));var module_import_names = lt.plugins.elm_light.module_graph.get_module_import_names.call(null,module);return cljs.core.filter.call(null,((function (module,module_import_names){ return (function (m){return (cljs.core._EQ_.call(null,module,m)) || (cljs.core.contains_QMARK_.call(null,module_import_names,lt.plugins.elm_light.elm_ast.get_module_name.call(null,m))) || (cljs.core.contains_QMARK_.call(null,lt.plugins.elm_light.module_graph.get_module_import_names.call(null,m),current_module)); });})(module,module_import_names)) ,modules); } else {return modules; } }); lt.plugins.elm_light.module_graph.refresh_graph = (function refresh_graph(this$){var modules = lt.plugins.elm_light.module_graph.maybe_filter_by_module.call(null,new cljs.core.Keyword(null,"current-module","current-module",2268519602).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"filters","filters",4454324077).cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,this$))),lt.plugins.elm_light.module_graph.maybe_filter_by_group.call(null,new cljs.core.Keyword(null,"current-group","current-group",2157313181).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"filters","filters",4454324077).cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,this$))),lt.plugins.elm_light.module_graph.get_project_modules.call(null,new cljs.core.Keyword(null,"project-path","project-path",1907176907).cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,this$)))));return lt.object.raise.call(null,this$,new cljs.core.Keyword(null,"elm.module-graph.render","elm.module-graph.render",3905237537),lt.plugins.elm_light.module_graph.create_graph_data.call(null,modules)); }); lt.plugins.elm_light.module_graph.set_group_filter_BANG_ = (function set_group_filter_BANG_(this$,group_name){lt.object.assoc_in_BANG_.call(null,this$,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"filters","filters",4454324077),new cljs.core.Keyword(null,"current-group","current-group",2157313181)], null),group_name); return lt.plugins.elm_light.module_graph.refresh_graph.call(null,this$); }); lt.plugins.elm_light.module_graph.set_module_filter_BANG_ = (function set_module_filter_BANG_(this$,module_name){lt.object.assoc_in_BANG_.call(null,this$,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"filters","filters",4454324077),new cljs.core.Keyword(null,"current-module","current-module",2268519602)], null),module_name); return lt.plugins.elm_light.module_graph.refresh_graph.call(null,this$); }); lt.plugins.elm_light.module_graph.toggle_exposeds_filter_BANG_ = (function toggle_exposeds_filter_BANG_(this$,v){lt.object.assoc_in_BANG_.call(null,this$,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"filters","filters",4454324077),new cljs.core.Keyword(null,"show-exposeds?","show-exposeds?",784237550)], null),v); return lt.plugins.elm_light.module_graph.refresh_graph.call(null,this$); }); lt.plugins.elm_light.module_graph.__BEH__on_show_modules = (function __BEH__on_show_modules(this$,project_path){lt.objs.tabs.add_or_focus_BANG_.call(null,this$); var modules = lt.plugins.elm_light.module_graph.get_project_modules.call(null,project_path);var groups = lt.plugins.elm_light.module_graph.get_group_names.call(null,cljs.core.set.call(null,cljs.core.map.call(null,lt.plugins.elm_light.elm_ast.get_module_name,modules)));lt.object.merge_BANG_.call(null,this$,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"filters","filters",4454324077),cljs.core.PersistentArrayMap.EMPTY,new cljs.core.Keyword(null,"project-path","project-path",1907176907),project_path], null)); lt.object.raise.call(null,this$,new cljs.core.Keyword(null,"elm.module-graph.render","elm.module-graph.render",3905237537),lt.plugins.elm_light.module_graph.create_graph_data.call(null,modules)); return lt.plugins.elm_light.module_graph.render_filters.call(null,this$,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"groups","groups",4071411014),groups,new cljs.core.Keyword(null,"modules","modules",2241338105),cljs.core.map.call(null,((function (modules,groups){ return (function (module){return new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"name","name",1017277949),lt.plugins.elm_light.elm_ast.get_module_name.call(null,module)], null); });})(modules,groups)) ,modules)], null)); }); lt.object.behavior_STAR_.call(null,new cljs.core.Keyword("lt.plugins.elm-light.module-graph","on-show-modules","lt.plugins.elm-light.module-graph/on-show-modules",4191379367),new cljs.core.Keyword(null,"reaction","reaction",4441361819),lt.plugins.elm_light.module_graph.__BEH__on_show_modules,new cljs.core.Keyword(null,"desc","desc",1016984067),"Elm show module graph",new cljs.core.Keyword(null,"triggers","triggers",2516997421),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"elm.module-graph.show","elm.module-graph.show",2773368264),null], null), null)); lt.plugins.elm_light.module_graph.__BEH__on_tab_resized = (function __BEH__on_tab_resized(_){var svg = lt.plugins.elm_light.module_graph.d3.select("svg");return lt.plugins.elm_light.module_graph.resize_graph.call(null,lt.plugins.elm_light.module_graph.module_graph,svg); }); lt.object.behavior_STAR_.call(null,new cljs.core.Keyword("lt.plugins.elm-light.module-graph","on-tab-resized","lt.plugins.elm-light.module-graph/on-tab-resized",4489178700),new cljs.core.Keyword(null,"reaction","reaction",4441361819),lt.plugins.elm_light.module_graph.__BEH__on_tab_resized,new cljs.core.Keyword(null,"triggers","triggers",2516997421),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"end-drag","end-drag",2692811352),null], null), null)); lt.plugins.elm_light.module_graph.__BEH__on_move = (function __BEH__on_move(this$){var svg = lt.plugins.elm_light.module_graph.d3.select("svg");return lt.plugins.elm_light.module_graph.resize_graph.call(null,this$,svg); }); lt.object.behavior_STAR_.call(null,new cljs.core.Keyword("lt.plugins.elm-light.module-graph","on-move","lt.plugins.elm-light.module-graph/on-move",2390003777),new cljs.core.Keyword(null,"reaction","reaction",4441361819),lt.plugins.elm_light.module_graph.__BEH__on_move,new cljs.core.Keyword(null,"triggers","triggers",2516997421),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"move","move",1017261891),null], null), null)); lt.plugins.elm_light.module_graph.module_graph = lt.object.create.call(null,new cljs.core.Keyword("lt.plugins.elm-light.module-graph","module-graph","lt.plugins.elm-light.module-graph/module-graph",2992764911)); lt.objs.command.command.call(null,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"command","command",1964298941),new cljs.core.Keyword(null,"show-elm-module-graph","show-elm-module-graph",3276287158),new cljs.core.Keyword(null,"desc","desc",1016984067),"Elm: Show module graph",new cljs.core.Keyword(null,"exec","exec",1017031683),(function (){var temp__4092__auto__ = lt.objs.editor.pool.last_active.call(null);if(cljs.core.truth_(temp__4092__auto__)) {var ed = temp__4092__auto__;var temp__4092__auto____$1 = lt.plugins.elm_light.utils.project_path.call(null,new cljs.core.Keyword(null,"path","path",1017337751).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"info","info",1017141280).cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,ed))));if(cljs.core.truth_(temp__4092__auto____$1)) {var path = temp__4092__auto____$1;return lt.object.raise.call(null,lt.plugins.elm_light.module_graph.module_graph,new cljs.core.Keyword(null,"elm.module-graph.show","elm.module-graph.show",2773368264),path); } else {return null; } } else {return null; } })], null)); } if(!lt.util.load.provided_QMARK_('clojure.zip')) { goog.provide('clojure.zip'); goog.require('cljs.core'); /** * Creates a new zipper structure. * * branch? is a fn that, given a node, returns true if can have * children, even if it currently doesn't. * * children is a fn that, given a branch node, returns a seq of its * children. * * make-node is a fn that, given an existing node and a seq of * children, returns a new branch node with the supplied children. * root is the root node. */ clojure.zip.zipper = (function zipper(branch_QMARK_,children,make_node,root){return cljs.core.with_meta(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [root,null], null),new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword("zip","make-node","zip/make-node",2241612572),make_node,new cljs.core.Keyword("zip","children","zip/children",2681289882),children,new cljs.core.Keyword("zip","branch?","zip/branch?",1159334776),branch_QMARK_], null)); }); /** * Returns a zipper for nested sequences, given a root sequence */ clojure.zip.seq_zip = (function seq_zip(root){return clojure.zip.zipper.call(null,cljs.core.seq_QMARK_,cljs.core.identity,(function (node,children){return cljs.core.with_meta.call(null,children,cljs.core.meta.call(null,node)); }),root); }); /** * Returns a zipper for nested vectors, given a root vector */ clojure.zip.vector_zip = (function vector_zip(root){return clojure.zip.zipper.call(null,cljs.core.vector_QMARK_,cljs.core.seq,(function (node,children){return cljs.core.with_meta.call(null,cljs.core.vec.call(null,children),cljs.core.meta.call(null,node)); }),root); }); /** * Returns a zipper for xml elements (as from xml/parse), * given a root element */ clojure.zip.xml_zip = (function xml_zip(root){return clojure.zip.zipper.call(null,cljs.core.complement.call(null,cljs.core.string_QMARK_),cljs.core.comp.call(null,cljs.core.seq,new cljs.core.Keyword(null,"content","content",1965434859)),(function (node,children){return cljs.core.assoc.call(null,node,new cljs.core.Keyword(null,"content","content",1965434859),(function (){var and__4872__auto__ = children;if(cljs.core.truth_(and__4872__auto__)) {return cljs.core.apply.call(null,cljs.core.vector,children); } else {return and__4872__auto__; } })()); }),root); }); /** * Returns the node at loc */ clojure.zip.node = (function node(loc){return loc.call(null,0); }); /** * Returns true if the node at loc is a branch */ clojure.zip.branch_QMARK_ = (function branch_QMARK_(loc){return new cljs.core.Keyword("zip","branch?","zip/branch?",1159334776).cljs$core$IFn$_invoke$arity$1(cljs.core.meta.call(null,loc)).call(null,clojure.zip.node.call(null,loc)); }); /** * Returns a seq of the children of node at loc, which must be a branch */ clojure.zip.children = (function children(loc){if(cljs.core.truth_(clojure.zip.branch_QMARK_.call(null,loc))) {return new cljs.core.Keyword("zip","children","zip/children",2681289882).cljs$core$IFn$_invoke$arity$1(cljs.core.meta.call(null,loc)).call(null,clojure.zip.node.call(null,loc)); } else {throw "called children on a leaf node"; } }); /** * Returns a new branch node, given an existing node and new * children. The loc is only used to supply the constructor. */ clojure.zip.make_node = (function make_node(loc,node,children){return new cljs.core.Keyword("zip","make-node","zip/make-node",2241612572).cljs$core$IFn$_invoke$arity$1(cljs.core.meta.call(null,loc)).call(null,node,children); }); /** * Returns a seq of nodes leading to this loc */ clojure.zip.path = (function path(loc){return new cljs.core.Keyword(null,"pnodes","pnodes",4325362611).cljs$core$IFn$_invoke$arity$1(loc.call(null,1)); }); /** * Returns a seq of the left siblings of this loc */ clojure.zip.lefts = (function lefts(loc){return cljs.core.seq.call(null,new cljs.core.Keyword(null,"l","l",1013904350).cljs$core$IFn$_invoke$arity$1(loc.call(null,1))); }); /** * Returns a seq of the right siblings of this loc */ clojure.zip.rights = (function rights(loc){return new cljs.core.Keyword(null,"r","r",1013904356).cljs$core$IFn$_invoke$arity$1(loc.call(null,1)); }); /** * Returns the loc of the leftmost child of the node at this loc, or * nil if no children */ clojure.zip.down = (function down(loc){if(cljs.core.truth_(clojure.zip.branch_QMARK_.call(null,loc))) {var vec__20258 = loc;var node = cljs.core.nth.call(null,vec__20258,0,null);var path = cljs.core.nth.call(null,vec__20258,1,null);var vec__20259 = clojure.zip.children.call(null,loc);var c = cljs.core.nth.call(null,vec__20259,0,null);var cnext = cljs.core.nthnext.call(null,vec__20259,1);var cs = vec__20259;if(cljs.core.truth_(cs)) {return cljs.core.with_meta.call(null,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [c,new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,"l","l",1013904350),cljs.core.PersistentVector.EMPTY,new cljs.core.Keyword(null,"pnodes","pnodes",4325362611),(cljs.core.truth_(path)?cljs.core.conj.call(null,new cljs.core.Keyword(null,"pnodes","pnodes",4325362611).cljs$core$IFn$_invoke$arity$1(path),node):new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [node], null)),new cljs.core.Keyword(null,"ppath","ppath",1120772103),path,new cljs.core.Keyword(null,"r","r",1013904356),cnext], null)], null),cljs.core.meta.call(null,loc)); } else {return null; } } else {return null; } }); /** * Returns the loc of the parent of the node at this loc, or nil if at * the top */ clojure.zip.up = (function up(loc){var vec__20262 = loc;var node = cljs.core.nth.call(null,vec__20262,0,null);var map__20263 = cljs.core.nth.call(null,vec__20262,1,null);var map__20263__$1 = ((cljs.core.seq_QMARK_.call(null,map__20263))?cljs.core.apply.call(null,cljs.core.hash_map,map__20263):map__20263);var path = map__20263__$1;var l = cljs.core.get.call(null,map__20263__$1,new cljs.core.Keyword(null,"l","l",1013904350));var ppath = cljs.core.get.call(null,map__20263__$1,new cljs.core.Keyword(null,"ppath","ppath",1120772103));var pnodes = cljs.core.get.call(null,map__20263__$1,new cljs.core.Keyword(null,"pnodes","pnodes",4325362611));var r = cljs.core.get.call(null,map__20263__$1,new cljs.core.Keyword(null,"r","r",1013904356));var changed_QMARK_ = cljs.core.get.call(null,map__20263__$1,new cljs.core.Keyword(null,"changed?","changed?",2446321533));if(cljs.core.truth_(pnodes)) {var pnode = cljs.core.peek.call(null,pnodes);return cljs.core.with_meta.call(null,(cljs.core.truth_(changed_QMARK_)?new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [clojure.zip.make_node.call(null,loc,pnode,cljs.core.concat.call(null,l,cljs.core.cons.call(null,node,r))),(function (){var and__4872__auto__ = ppath;if(cljs.core.truth_(and__4872__auto__)) {return cljs.core.assoc.call(null,ppath,new cljs.core.Keyword(null,"changed?","changed?",2446321533),true); } else {return and__4872__auto__; } })()], null):new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [pnode,ppath], null)),cljs.core.meta.call(null,loc)); } else {return null; } }); /** * zips all the way up and returns the root node, reflecting any * changes. */ clojure.zip.root = (function root(loc){while(true){ if(cljs.core._EQ_.call(null,new cljs.core.Keyword(null,"end","end",1014004813),loc.call(null,1))) {return clojure.zip.node.call(null,loc); } else {var p = clojure.zip.up.call(null,loc);if(cljs.core.truth_(p)) {{ var G__20296 = p; loc = G__20296; continue; } } else {return clojure.zip.node.call(null,loc); } } break; } }); /** * Returns the loc of the right sibling of the node at this loc, or nil */ clojure.zip.right = (function right(loc){var vec__20267 = loc;var node = cljs.core.nth.call(null,vec__20267,0,null);var map__20268 = cljs.core.nth.call(null,vec__20267,1,null);var map__20268__$1 = ((cljs.core.seq_QMARK_.call(null,map__20268))?cljs.core.apply.call(null,cljs.core.hash_map,map__20268):map__20268);var path = map__20268__$1;var l = cljs.core.get.call(null,map__20268__$1,new cljs.core.Keyword(null,"l","l",1013904350));var vec__20269 = cljs.core.get.call(null,map__20268__$1,new cljs.core.Keyword(null,"r","r",1013904356));var r = cljs.core.nth.call(null,vec__20269,0,null);var rnext = cljs.core.nthnext.call(null,vec__20269,1);var rs = vec__20269;if(cljs.core.truth_((function (){var and__4872__auto__ = path;if(cljs.core.truth_(and__4872__auto__)) {return rs; } else {return and__4872__auto__; } })())) {return cljs.core.with_meta.call(null,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [r,cljs.core.assoc.call(null,path,new cljs.core.Keyword(null,"l","l",1013904350),cljs.core.conj.call(null,l,node),new cljs.core.Keyword(null,"r","r",1013904356),rnext)], null),cljs.core.meta.call(null,loc)); } else {return null; } }); /** * Returns the loc of the rightmost sibling of the node at this loc, or self */ clojure.zip.rightmost = (function rightmost(loc){var vec__20272 = loc;var node = cljs.core.nth.call(null,vec__20272,0,null);var map__20273 = cljs.core.nth.call(null,vec__20272,1,null);var map__20273__$1 = ((cljs.core.seq_QMARK_.call(null,map__20273))?cljs.core.apply.call(null,cljs.core.hash_map,map__20273):map__20273);var path = map__20273__$1;var l = cljs.core.get.call(null,map__20273__$1,new cljs.core.Keyword(null,"l","l",1013904350));var r = cljs.core.get.call(null,map__20273__$1,new cljs.core.Keyword(null,"r","r",1013904356));if(cljs.core.truth_((function (){var and__4872__auto__ = path;if(cljs.core.truth_(and__4872__auto__)) {return r; } else {return and__4872__auto__; } })())) {return cljs.core.with_meta.call(null,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.last.call(null,r),cljs.core.assoc.call(null,path,new cljs.core.Keyword(null,"l","l",1013904350),cljs.core.apply.call(null,cljs.core.conj,l,node,cljs.core.butlast.call(null,r)),new cljs.core.Keyword(null,"r","r",1013904356),null)], null),cljs.core.meta.call(null,loc)); } else {return loc; } }); /** * Returns the loc of the left sibling of the node at this loc, or nil */ clojure.zip.left = (function left(loc){var vec__20276 = loc;var node = cljs.core.nth.call(null,vec__20276,0,null);var map__20277 = cljs.core.nth.call(null,vec__20276,1,null);var map__20277__$1 = ((cljs.core.seq_QMARK_.call(null,map__20277))?cljs.core.apply.call(null,cljs.core.hash_map,map__20277):map__20277);var path = map__20277__$1;var l = cljs.core.get.call(null,map__20277__$1,new cljs.core.Keyword(null,"l","l",1013904350));var r = cljs.core.get.call(null,map__20277__$1,new cljs.core.Keyword(null,"r","r",1013904356));if(cljs.core.truth_((function (){var and__4872__auto__ = path;if(cljs.core.truth_(and__4872__auto__)) {return cljs.core.seq.call(null,l); } else {return and__4872__auto__; } })())) {return cljs.core.with_meta.call(null,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.peek.call(null,l),cljs.core.assoc.call(null,path,new cljs.core.Keyword(null,"l","l",1013904350),cljs.core.pop.call(null,l),new cljs.core.Keyword(null,"r","r",1013904356),cljs.core.cons.call(null,node,r))], null),cljs.core.meta.call(null,loc)); } else {return null; } }); /** * Returns the loc of the leftmost sibling of the node at this loc, or self */ clojure.zip.leftmost = (function leftmost(loc){var vec__20280 = loc;var node = cljs.core.nth.call(null,vec__20280,0,null);var map__20281 = cljs.core.nth.call(null,vec__20280,1,null);var map__20281__$1 = ((cljs.core.seq_QMARK_.call(null,map__20281))?cljs.core.apply.call(null,cljs.core.hash_map,map__20281):map__20281);var path = map__20281__$1;var l = cljs.core.get.call(null,map__20281__$1,new cljs.core.Keyword(null,"l","l",1013904350));var r = cljs.core.get.call(null,map__20281__$1,new cljs.core.Keyword(null,"r","r",1013904356));if(cljs.core.truth_((function (){var and__4872__auto__ = path;if(cljs.core.truth_(and__4872__auto__)) {return cljs.core.seq.call(null,l); } else {return and__4872__auto__; } })())) {return cljs.core.with_meta.call(null,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.first.call(null,l),cljs.core.assoc.call(null,path,new cljs.core.Keyword(null,"l","l",1013904350),cljs.core.PersistentVector.EMPTY,new cljs.core.Keyword(null,"r","r",1013904356),cljs.core.concat.call(null,cljs.core.rest.call(null,l),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [node], null),r))], null),cljs.core.meta.call(null,loc)); } else {return loc; } }); /** * Inserts the item as the left sibling of the node at this loc, * without moving */ clojure.zip.insert_left = (function insert_left(loc,item){var vec__20284 = loc;var node = cljs.core.nth.call(null,vec__20284,0,null);var map__20285 = cljs.core.nth.call(null,vec__20284,1,null);var map__20285__$1 = ((cljs.core.seq_QMARK_.call(null,map__20285))?cljs.core.apply.call(null,cljs.core.hash_map,map__20285):map__20285);var path = map__20285__$1;var l = cljs.core.get.call(null,map__20285__$1,new cljs.core.Keyword(null,"l","l",1013904350));if((path == null)) {throw "Insert at top"; } else {return cljs.core.with_meta.call(null,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [node,cljs.core.assoc.call(null,path,new cljs.core.Keyword(null,"l","l",1013904350),cljs.core.conj.call(null,l,item),new cljs.core.Keyword(null,"changed?","changed?",2446321533),true)], null),cljs.core.meta.call(null,loc)); } }); /** * Inserts the item as the right sibling of the node at this loc, * without moving */ clojure.zip.insert_right = (function insert_right(loc,item){var vec__20288 = loc;var node = cljs.core.nth.call(null,vec__20288,0,null);var map__20289 = cljs.core.nth.call(null,vec__20288,1,null);var map__20289__$1 = ((cljs.core.seq_QMARK_.call(null,map__20289))?cljs.core.apply.call(null,cljs.core.hash_map,map__20289):map__20289);var path = map__20289__$1;var r = cljs.core.get.call(null,map__20289__$1,new cljs.core.Keyword(null,"r","r",1013904356));if((path == null)) {throw "Insert at top"; } else {return cljs.core.with_meta.call(null,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [node,cljs.core.assoc.call(null,path,new cljs.core.Keyword(null,"r","r",1013904356),cljs.core.cons.call(null,item,r),new cljs.core.Keyword(null,"changed?","changed?",2446321533),true)], null),cljs.core.meta.call(null,loc)); } }); /** * Replaces the node at this loc, without moving */ clojure.zip.replace = (function replace(loc,node){var vec__20291 = loc;var _ = cljs.core.nth.call(null,vec__20291,0,null);var path = cljs.core.nth.call(null,vec__20291,1,null);return cljs.core.with_meta.call(null,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [node,cljs.core.assoc.call(null,path,new cljs.core.Keyword(null,"changed?","changed?",2446321533),true)], null),cljs.core.meta.call(null,loc)); }); /** * Replaces the node at this loc with the value of (f node args) * @param {...*} var_args */ clojure.zip.edit = (function() { var edit__delegate = function (loc,f,args){return clojure.zip.replace.call(null,loc,cljs.core.apply.call(null,f,clojure.zip.node.call(null,loc),args)); }; var edit = function (loc,f,var_args){ var args = null;if (arguments.length > 2) { args = cljs.core.array_seq(Array.prototype.slice.call(arguments, 2),0);} return edit__delegate.call(this,loc,f,args);}; edit.cljs$lang$maxFixedArity = 2; edit.cljs$lang$applyTo = (function (arglist__20297){ var loc = cljs.core.first(arglist__20297); arglist__20297 = cljs.core.next(arglist__20297); var f = cljs.core.first(arglist__20297); var args = cljs.core.rest(arglist__20297); return edit__delegate(loc,f,args); }); edit.cljs$core$IFn$_invoke$arity$variadic = edit__delegate; return edit; })() ; /** * Inserts the item as the leftmost child of the node at this loc, * without moving */ clojure.zip.insert_child = (function insert_child(loc,item){return clojure.zip.replace.call(null,loc,clojure.zip.make_node.call(null,loc,clojure.zip.node.call(null,loc),cljs.core.cons.call(null,item,clojure.zip.children.call(null,loc)))); }); /** * Inserts the item as the rightmost child of the node at this loc, * without moving */ clojure.zip.append_child = (function append_child(loc,item){return clojure.zip.replace.call(null,loc,clojure.zip.make_node.call(null,loc,clojure.zip.node.call(null,loc),cljs.core.concat.call(null,clojure.zip.children.call(null,loc),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [item], null)))); }); /** * Moves to the next loc in the hierarchy, depth-first. When reaching * the end, returns a distinguished loc detectable via end?. If already * at the end, stays there. */ clojure.zip.next = (function next(loc){if(cljs.core._EQ_.call(null,new cljs.core.Keyword(null,"end","end",1014004813),loc.call(null,1))) {return loc; } else {var or__4884__auto__ = (function (){var and__4872__auto__ = clojure.zip.branch_QMARK_.call(null,loc);if(cljs.core.truth_(and__4872__auto__)) {return clojure.zip.down.call(null,loc); } else {return and__4872__auto__; } })();if(cljs.core.truth_(or__4884__auto__)) {return or__4884__auto__; } else {var or__4884__auto____$1 = clojure.zip.right.call(null,loc);if(cljs.core.truth_(or__4884__auto____$1)) {return or__4884__auto____$1; } else {var p = loc;while(true){ if(cljs.core.truth_(clojure.zip.up.call(null,p))) {var or__4884__auto____$2 = clojure.zip.right.call(null,clojure.zip.up.call(null,p));if(cljs.core.truth_(or__4884__auto____$2)) {return or__4884__auto____$2; } else {{ var G__20298 = clojure.zip.up.call(null,p); p = G__20298; continue; } } } else {return new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [clojure.zip.node.call(null,p),new cljs.core.Keyword(null,"end","end",1014004813)], null); } break; } } } } }); /** * Moves to the previous loc in the hierarchy, depth-first. If already * at the root, returns nil. */ clojure.zip.prev = (function prev(loc){var temp__4090__auto__ = clojure.zip.left.call(null,loc);if(cljs.core.truth_(temp__4090__auto__)) {var lloc = temp__4090__auto__;var loc__$1 = lloc;while(true){ var temp__4090__auto____$1 = (function (){var and__4872__auto__ = clojure.zip.branch_QMARK_.call(null,loc__$1);if(cljs.core.truth_(and__4872__auto__)) {return clojure.zip.down.call(null,loc__$1); } else {return and__4872__auto__; } })();if(cljs.core.truth_(temp__4090__auto____$1)) {var child = temp__4090__auto____$1;{ var G__20299 = clojure.zip.rightmost.call(null,child); loc__$1 = G__20299; continue; } } else {return loc__$1; } break; } } else {return clojure.zip.up.call(null,loc); } }); /** * Returns true if loc represents the end of a depth-first walk */ clojure.zip.end_QMARK_ = (function end_QMARK_(loc){return cljs.core._EQ_.call(null,new cljs.core.Keyword(null,"end","end",1014004813),loc.call(null,1)); }); /** * Removes the node at loc, returning the loc that would have preceded * it in a depth-first walk. */ clojure.zip.remove = (function remove(loc){var vec__20294 = loc;var node = cljs.core.nth.call(null,vec__20294,0,null);var map__20295 = cljs.core.nth.call(null,vec__20294,1,null);var map__20295__$1 = ((cljs.core.seq_QMARK_.call(null,map__20295))?cljs.core.apply.call(null,cljs.core.hash_map,map__20295):map__20295);var path = map__20295__$1;var l = cljs.core.get.call(null,map__20295__$1,new cljs.core.Keyword(null,"l","l",1013904350));var ppath = cljs.core.get.call(null,map__20295__$1,new cljs.core.Keyword(null,"ppath","ppath",1120772103));var pnodes = cljs.core.get.call(null,map__20295__$1,new cljs.core.Keyword(null,"pnodes","pnodes",4325362611));var rs = cljs.core.get.call(null,map__20295__$1,new cljs.core.Keyword(null,"r","r",1013904356));if((path == null)) {throw "Remove at top"; } else {if((cljs.core.count.call(null,l) > 0)) {var loc__$1 = cljs.core.with_meta.call(null,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.peek.call(null,l),cljs.core.assoc.call(null,path,new cljs.core.Keyword(null,"l","l",1013904350),cljs.core.pop.call(null,l),new cljs.core.Keyword(null,"changed?","changed?",2446321533),true)], null),cljs.core.meta.call(null,loc));while(true){ var temp__4090__auto__ = (function (){var and__4872__auto__ = clojure.zip.branch_QMARK_.call(null,loc__$1);if(cljs.core.truth_(and__4872__auto__)) {return clojure.zip.down.call(null,loc__$1); } else {return and__4872__auto__; } })();if(cljs.core.truth_(temp__4090__auto__)) {var child = temp__4090__auto__;{ var G__20300 = clojure.zip.rightmost.call(null,child); loc__$1 = G__20300; continue; } } else {return loc__$1; } break; } } else {return cljs.core.with_meta.call(null,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [clojure.zip.make_node.call(null,loc,cljs.core.peek.call(null,pnodes),rs),(function (){var and__4872__auto__ = ppath;if(cljs.core.truth_(and__4872__auto__)) {return cljs.core.assoc.call(null,ppath,new cljs.core.Keyword(null,"changed?","changed?",2446321533),true); } else {return and__4872__auto__; } })()], null),cljs.core.meta.call(null,loc)); } } }); } if(!lt.util.load.provided_QMARK_('lt.plugins.elm-light.test')) { goog.provide('lt.plugins.elm_light.test'); goog.require('cljs.core'); goog.require('clojure.zip'); goog.require('lt.objs.files'); goog.require('lt.objs.statusbar'); goog.require('lt.util.dom'); goog.require('lt.objs.tabs'); goog.require('clojure.string'); goog.require('lt.plugins.elm_light.utils'); goog.require('clojure.zip'); goog.require('lt.objs.notifos'); goog.require('lt.plugins.elm_light.clients'); goog.require('lt.objs.notifos'); goog.require('lt.util.dom'); goog.require('lt.objs.editor.pool'); goog.require('lt.objs.command'); goog.require('lt.objs.files'); goog.require('lt.plugins.elm_light.clients'); goog.require('lt.objs.statusbar'); goog.require('lt.objs.clients'); goog.require('clojure.string'); goog.require('lt.plugins.elm_light.elm_ast'); goog.require('lt.objs.editor'); goog.require('lt.object'); goog.require('lt.object'); goog.require('lt.objs.console'); goog.require('lt.objs.tabs'); goog.require('lt.objs.editor'); goog.require('lt.objs.console'); goog.require('lt.plugins.elm_light.utils'); goog.require('lt.plugins.elm_light.elm_ast'); goog.require('lt.objs.clients'); goog.require('lt.objs.editor.pool'); goog.require('lt.objs.command'); lt.plugins.elm_light.test.default_test_deps = new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword("elm-community","elm-test","elm-community/elm-test",3717467561),"3.0.0 <= v < 4.0.0",new cljs.core.Keyword("rtfeldman","node-test-runner","rtfeldman/node-test-runner",1294875377),"3.0.0 <= v < 4.0.0"], null); lt.plugins.elm_light.test.__GT_test_src_dir = (function __GT_test_src_dir(src_dir){if(cljs.core._EQ_.call(null,src_dir,".")) {return "../"; } else {return [cljs.core.str("../"),cljs.core.str(src_dir)].join(''); } }); lt.plugins.elm_light.test.__GT_test_src_dirs = (function __GT_test_src_dirs(src_dirs){return cljs.core.conj.call(null,cljs.core.mapv.call(null,lt.plugins.elm_light.test.__GT_test_src_dir,src_dirs),"."); }); lt.plugins.elm_light.test.deps__GT_named = (function deps__GT_named(deps){return cljs.core.into.call(null,cljs.core.PersistentArrayMap.EMPTY,cljs.core.map.call(null,(function (p__19868){var vec__19869 = p__19868;var k = cljs.core.nth.call(null,vec__19869,0,null);var v = cljs.core.nth.call(null,vec__19869,1,null);return new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [lt.plugins.elm_light.utils.nskw__GT_name.call(null,k),v], null); }),deps)); }); lt.plugins.elm_light.test.__GT_test_config = (function __GT_test_config(project_cfg){return cljs.core.update_in.call(null,cljs.core.update_in.call(null,cljs.core.assoc.call(null,cljs.core.update_in.call(null,project_cfg,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"source-directories","source-directories",4475397259)], null),lt.plugins.elm_light.test.__GT_test_src_dirs),new cljs.core.Keyword(null,"exposed-modules","exposed-modules",4185867084),cljs.core.PersistentVector.EMPTY),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"dependencies","dependencies",1517678747)], null),(function (p1__19870_SHARP_){return cljs.core.merge.call(null,p1__19870_SHARP_,lt.plugins.elm_light.test.default_test_deps); })),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"dependencies","dependencies",1517678747)], null),lt.plugins.elm_light.test.deps__GT_named); }); lt.plugins.elm_light.test.parse_project_cfg = (function parse_project_cfg(project_path){return lt.plugins.elm_light.utils.parse_json_file.call(null,lt.objs.files.join.call(null,project_path,"elm-package.json")); }); lt.plugins.elm_light.test.save_test_cfg_BANG_ = (function save_test_cfg_BANG_(path,test_cfg){return lt.objs.files.save.call(null,path,lt.plugins.elm_light.utils.pretty_json.call(null,test_cfg)); }); lt.plugins.elm_light.test.maybe_create_test_path_BANG_ = (function maybe_create_test_path_BANG_(project_path){var test_path = lt.objs.files.join.call(null,project_path,"tests");if(cljs.core.truth_(lt.objs.files.exists_QMARK_.call(null,test_path))) {} else {lt.objs.files.mkdir.call(null,test_path); } return test_path; }); lt.plugins.elm_light.test.install_packages_BANG_ = (function install_packages_BANG_(test_path){var args = new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, ["install","--yes"], null);var proc = require("child_process").spawn("elm-package",cljs.core.clj__GT_js.call(null,args),{"cwd": test_path});proc.stdout.on("data",((function (args,proc){ return (function (p1__19871_SHARP_){return cljs.core.println.call(null,[cljs.core.str("Test package install: "),cljs.core.str(p1__19871_SHARP_)].join('')); });})(args,proc)) ); proc.stderr.on("data",((function (args,proc){ return (function (p1__19872_SHARP_){return lt.objs.console.error.call(null,[cljs.core.str(p1__19872_SHARP_)].join('')); });})(args,proc)) ); proc.on("exit",((function (args,proc){ return (function (p1__19873_SHARP_){if(cljs.core._EQ_.call(null,p1__19873_SHARP_,0)) {return lt.objs.notifos.done_working.call(null,"Successfully configured elm test"); } else {return lt.objs.notifos.set_msg_BANG_.call(null,"Error installing test elm packages",new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"class","class",1108647146),"error",new cljs.core.Keyword(null,"timeout","timeout",3994960083),5000], null)); } });})(args,proc)) ); return null; }); lt.plugins.elm_light.test.maybe_add_templates = (function maybe_add_templates(test_path){var templ_dir = lt.objs.files.join.call(null,lt.plugins.elm_light.utils.elm_plugin_dir,"templates/test");var runner = lt.objs.files.join.call(null,templ_dir,"Main.elm");var tests = lt.objs.files.join.call(null,templ_dir,"Tests.elm");if(cljs.core.truth_(lt.objs.files.exists_QMARK_.call(null,lt.objs.files.join.call(null,test_path,"Main.elm")))) {} else {lt.objs.files.copy.call(null,runner,lt.objs.files.join.call(null,test_path,"Main.elm")); } if(cljs.core.truth_(lt.objs.files.exists_QMARK_.call(null,lt.objs.files.join.call(null,test_path,"Tests.elm")))) {return null; } else {return lt.objs.files.copy.call(null,tests,lt.objs.files.join.call(null,test_path,"Tests.elm")); } }); lt.plugins.elm_light.test.setup_test = (function setup_test(project_path){var temp__4092__auto__ = lt.plugins.elm_light.test.parse_project_cfg.call(null,project_path);if(cljs.core.truth_(temp__4092__auto__)) {var project_cfg = temp__4092__auto__;lt.objs.notifos.working.call(null,"Init elm test config"); var test_path = lt.plugins.elm_light.test.maybe_create_test_path_BANG_.call(null,project_path);var test_cfg_path = lt.objs.files.join.call(null,test_path,"elm-package.json");lt.plugins.elm_light.test.maybe_add_templates.call(null,test_path); lt.plugins.elm_light.test.save_test_cfg_BANG_.call(null,test_cfg_path,lt.plugins.elm_light.test.__GT_test_config.call(null,project_cfg)); return lt.plugins.elm_light.test.install_packages_BANG_.call(null,test_path); } else {return null; } }); lt.plugins.elm_light.test.z_top = (function z_top(zloc){return cljs.core.last.call(null,cljs.core.take_while.call(null,cljs.core.identity,cljs.core.iterate.call(null,clojure.zip.up,zloc))); }); lt.plugins.elm_light.test.z_find_by_label = (function z_find_by_label(label,zloc){return cljs.core.first.call(null,cljs.core.filter.call(null,(function (p1__19874_SHARP_){return cljs.core._EQ_.call(null,label,clojure.zip.node.call(null,p1__19874_SHARP_)); }),cljs.core.take_while.call(null,cljs.core.complement.call(null,clojure.zip.end_QMARK_),cljs.core.take_while.call(null,cljs.core.identity,cljs.core.iterate.call(null,clojure.zip.next,zloc))))); }); lt.plugins.elm_light.test.suitify_test = (function suitify_test(p__19875){var map__19878 = p__19875;var map__19878__$1 = ((cljs.core.seq_QMARK_.call(null,map__19878))?cljs.core.apply.call(null,cljs.core.hash_map,map__19878):map__19878);var failures = cljs.core.get.call(null,map__19878__$1,new cljs.core.Keyword(null,"failures","failures",1689842587));var labels = cljs.core.get.call(null,map__19878__$1,new cljs.core.Keyword(null,"labels","labels",4198454129));var vec__19879 = labels;var head = cljs.core.nth.call(null,vec__19879,0,null);var tail = cljs.core.nthnext.call(null,vec__19879,1);var root = clojure.zip.vector_zip.call(null,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [head], null));return lt.plugins.elm_light.test.z_top.call(null,clojure.zip.append_child.call(null,cljs.core.reduce.call(null,((function (vec__19879,head,tail,root,map__19878,map__19878__$1,failures,labels){ return (function (zloc,label){return clojure.zip.right.call(null,clojure.zip.down.call(null,clojure.zip.append_child.call(null,zloc,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [label], null)))); });})(vec__19879,head,tail,root,map__19878,map__19878__$1,failures,labels)) ,root,tail),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"failures","failures",1689842587),failures], null))); }); lt.plugins.elm_light.test.add_test_to_suite = (function add_test_to_suite(p__19880,p__19881){var map__19885 = p__19880;var map__19885__$1 = ((cljs.core.seq_QMARK_.call(null,map__19885))?cljs.core.apply.call(null,cljs.core.hash_map,map__19885):map__19885);var labels = cljs.core.get.call(null,map__19885__$1,new cljs.core.Keyword(null,"labels","labels",4198454129));var zloc = cljs.core.get.call(null,map__19885__$1,new cljs.core.Keyword(null,"zloc","zloc",1017646072));var map__19886 = p__19881;var map__19886__$1 = ((cljs.core.seq_QMARK_.call(null,map__19886))?cljs.core.apply.call(null,cljs.core.hash_map,map__19886):map__19886);var failures = cljs.core.get.call(null,map__19886__$1,new cljs.core.Keyword(null,"failures","failures",1689842587));var vec__19887 = labels;var head = cljs.core.nth.call(null,vec__19887,0,null);var tail = cljs.core.nthnext.call(null,vec__19887,1);var root = ((cljs.core.seq.call(null,labels))?clojure.zip.right.call(null,clojure.zip.insert_right.call(null,clojure.zip.rightmost.call(null,zloc),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [head], null))):null);if(cljs.core.seq.call(null,labels)) {return lt.plugins.elm_light.test.z_top.call(null,clojure.zip.append_child.call(null,cljs.core.reduce.call(null,((function (vec__19887,head,tail,root,map__19885,map__19885__$1,labels,zloc,map__19886,map__19886__$1,failures){ return (function (zl,label){return clojure.zip.right.call(null,clojure.zip.down.call(null,clojure.zip.append_child.call(null,zl,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [label], null)))); });})(vec__19887,head,tail,root,map__19885,map__19885__$1,labels,zloc,map__19886,map__19886__$1,failures)) ,root,tail),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"failures","failures",1689842587),failures], null))); } else {var z_failures = clojure.zip.right.call(null,zloc);var curr_fails = new cljs.core.Keyword(null,"failures","failures",1689842587).cljs$core$IFn$_invoke$arity$1(clojure.zip.node.call(null,z_failures));return lt.plugins.elm_light.test.z_top.call(null,clojure.zip.replace.call(null,z_failures,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"failures","failures",1689842587),cljs.core.concat.call(null,curr_fails,failures)], null))); } }); lt.plugins.elm_light.test.find_branch = (function find_branch(zloc_suite,labels){var zloc = zloc_suite;var lbls = labels;while(true){ var branch = lt.plugins.elm_light.test.z_find_by_label.call(null,cljs.core.first.call(null,lbls),zloc);if(cljs.core.truth_((function (){var and__4872__auto__ = branch;if(cljs.core.truth_(and__4872__auto__)) {var or__4884__auto__ = cljs.core.not.call(null,cljs.core.second.call(null,lbls));if(or__4884__auto__) {return or__4884__auto__; } else {var and__4872__auto____$1 = cljs.core.second.call(null,lbls);if(cljs.core.truth_(and__4872__auto____$1)) {return (lt.plugins.elm_light.test.z_find_by_label.call(null,cljs.core.second.call(null,lbls),branch) == null); } else {return and__4872__auto____$1; } } } else {return and__4872__auto__; } })())) {return new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"zloc","zloc",1017646072),branch,new cljs.core.Keyword(null,"labels","labels",4198454129),cljs.core.drop.call(null,1,lbls)], null); } else {if((branch == null)) {return null; } else {if(cljs.core.truth_(branch)) {{ var G__20037 = branch; var G__20038 = cljs.core.drop.call(null,1,lbls); zloc = G__20037; lbls = G__20038; continue; } } else {return null; } } } break; } }); lt.plugins.elm_light.test.group_tests = (function group_tests(tests){return cljs.core.reduce.call(null,(function (acc,t){var prev = cljs.core.last.call(null,acc);if(cljs.core.not.call(null,prev)) {return cljs.core.conj.call(null,acc,lt.plugins.elm_light.test.suitify_test.call(null,t)); } else {var temp__4090__auto__ = lt.plugins.elm_light.test.find_branch.call(null,prev,new cljs.core.Keyword(null,"labels","labels",4198454129).cljs$core$IFn$_invoke$arity$1(t));if(cljs.core.truth_(temp__4090__auto__)) {var branch = temp__4090__auto__;return cljs.core.conj.call(null,cljs.core.vec.call(null,cljs.core.drop_last.call(null,acc)),lt.plugins.elm_light.test.add_test_to_suite.call(null,branch,t)); } else {return cljs.core.conj.call(null,acc,lt.plugins.elm_light.test.suitify_test.call(null,t)); } } }),cljs.core.PersistentVector.EMPTY,tests); }); lt.plugins.elm_light.test.get_status_count = (function get_status_count(status,items){return cljs.core.count.call(null,cljs.core.filter.call(null,(function (p1__19888_SHARP_){return cljs.core._EQ_.call(null,status,new cljs.core.Keyword(null,"status","status",4416389988).cljs$core$IFn$_invoke$arity$1(p1__19888_SHARP_)); }),items)); }); lt.plugins.elm_light.test.wrapper = (function wrapper(){var e__6317__auto__ = crate.core.html.call(null,new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"div.elmtest-dashboard","div.elmtest-dashboard",2556225684),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"h1.title","h1.title",3842872421),"Elm Test Dashboard"], null),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"div.project-container","div.project-container",3841828386),"Project stuff here"], null),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"div.result-container","div.result-container",4736622080),"Placeholder for results"], null)], null));var seq__19895_20039 = cljs.core.seq.call(null,cljs.core.partition.call(null,2,cljs.core.PersistentVector.EMPTY));var chunk__19896_20040 = null;var count__19897_20041 = 0;var i__19898_20042 = 0;while(true){ if((i__19898_20042 < count__19897_20041)) {var vec__19899_20043 = cljs.core._nth.call(null,chunk__19896_20040,i__19898_20042);var ev__6318__auto___20044 = cljs.core.nth.call(null,vec__19899_20043,0,null);var func__6319__auto___20045 = cljs.core.nth.call(null,vec__19899_20043,1,null);lt.util.dom.on.call(null,e__6317__auto__,ev__6318__auto___20044,func__6319__auto___20045); { var G__20046 = seq__19895_20039; var G__20047 = chunk__19896_20040; var G__20048 = count__19897_20041; var G__20049 = (i__19898_20042 + 1); seq__19895_20039 = G__20046; chunk__19896_20040 = G__20047; count__19897_20041 = G__20048; i__19898_20042 = G__20049; continue; } } else {var temp__4092__auto___20050 = cljs.core.seq.call(null,seq__19895_20039);if(temp__4092__auto___20050) {var seq__19895_20051__$1 = temp__4092__auto___20050;if(cljs.core.chunked_seq_QMARK_.call(null,seq__19895_20051__$1)) {var c__5632__auto___20052 = cljs.core.chunk_first.call(null,seq__19895_20051__$1);{ var G__20053 = cljs.core.chunk_rest.call(null,seq__19895_20051__$1); var G__20054 = c__5632__auto___20052; var G__20055 = cljs.core.count.call(null,c__5632__auto___20052); var G__20056 = 0; seq__19895_20039 = G__20053; chunk__19896_20040 = G__20054; count__19897_20041 = G__20055; i__19898_20042 = G__20056; continue; } } else {var vec__19900_20057 = cljs.core.first.call(null,seq__19895_20051__$1);var ev__6318__auto___20058 = cljs.core.nth.call(null,vec__19900_20057,0,null);var func__6319__auto___20059 = cljs.core.nth.call(null,vec__19900_20057,1,null);lt.util.dom.on.call(null,e__6317__auto__,ev__6318__auto___20058,func__6319__auto___20059); { var G__20060 = cljs.core.next.call(null,seq__19895_20051__$1); var G__20061 = null; var G__20062 = 0; var G__20063 = 0; seq__19895_20039 = G__20060; chunk__19896_20040 = G__20061; count__19897_20041 = G__20062; i__19898_20042 = G__20063; continue; } } } else {} } break; } return e__6317__auto__; }); lt.plugins.elm_light.test.loader = (function loader(){var e__6317__auto__ = crate.core.html.call(null,new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"div.bubblingG","div.bubblingG",1068758387),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"span","span",1017440956),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"id","id",1013907597),"bubblingG_1"], null)], null),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"span","span",1017440956),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"id","id",1013907597),"bubblingG_2"], null)], null),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"span","span",1017440956),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"id","id",1013907597),"bubblingG_3"], null)], null)], null));var seq__19907_20064 = cljs.core.seq.call(null,cljs.core.partition.call(null,2,cljs.core.PersistentVector.EMPTY));var chunk__19908_20065 = null;var count__19909_20066 = 0;var i__19910_20067 = 0;while(true){ if((i__19910_20067 < count__19909_20066)) {var vec__19911_20068 = cljs.core._nth.call(null,chunk__19908_20065,i__19910_20067);var ev__6318__auto___20069 = cljs.core.nth.call(null,vec__19911_20068,0,null);var func__6319__auto___20070 = cljs.core.nth.call(null,vec__19911_20068,1,null);lt.util.dom.on.call(null,e__6317__auto__,ev__6318__auto___20069,func__6319__auto___20070); { var G__20071 = seq__19907_20064; var G__20072 = chunk__19908_20065; var G__20073 = count__19909_20066; var G__20074 = (i__19910_20067 + 1); seq__19907_20064 = G__20071; chunk__19908_20065 = G__20072; count__19909_20066 = G__20073; i__19910_20067 = G__20074; continue; } } else {var temp__4092__auto___20075 = cljs.core.seq.call(null,seq__19907_20064);if(temp__4092__auto___20075) {var seq__19907_20076__$1 = temp__4092__auto___20075;if(cljs.core.chunked_seq_QMARK_.call(null,seq__19907_20076__$1)) {var c__5632__auto___20077 = cljs.core.chunk_first.call(null,seq__19907_20076__$1);{ var G__20078 = cljs.core.chunk_rest.call(null,seq__19907_20076__$1); var G__20079 = c__5632__auto___20077; var G__20080 = cljs.core.count.call(null,c__5632__auto___20077); var G__20081 = 0; seq__19907_20064 = G__20078; chunk__19908_20065 = G__20079; count__19909_20066 = G__20080; i__19910_20067 = G__20081; continue; } } else {var vec__19912_20082 = cljs.core.first.call(null,seq__19907_20076__$1);var ev__6318__auto___20083 = cljs.core.nth.call(null,vec__19912_20082,0,null);var func__6319__auto___20084 = cljs.core.nth.call(null,vec__19912_20082,1,null);lt.util.dom.on.call(null,e__6317__auto__,ev__6318__auto___20083,func__6319__auto___20084); { var G__20085 = cljs.core.next.call(null,seq__19907_20076__$1); var G__20086 = null; var G__20087 = 0; var G__20088 = 0; seq__19907_20064 = G__20085; chunk__19908_20065 = G__20086; count__19909_20066 = G__20087; i__19910_20067 = G__20088; continue; } } } else {} } break; } return e__6317__auto__; }); lt.plugins.elm_light.test.testprogress_ui = (function testprogress_ui(this$,p__19914){var map__19922 = p__19914;var map__19922__$1 = ((cljs.core.seq_QMARK_.call(null,map__19922))?cljs.core.apply.call(null,cljs.core.hash_map,map__19922):map__19922);var evt = map__19922__$1;var status = cljs.core.get.call(null,map__19922__$1,new cljs.core.Keyword(null,"status","status",4416389988));var labels = cljs.core.get.call(null,map__19922__$1,new cljs.core.Keyword(null,"labels","labels",4198454129));var e__6317__auto__ = crate.core.html.call(null,(function (){var testCount = (function (){var or__4884__auto__ = new cljs.core.Keyword(null,"testCount","testCount",4102757135).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"start","start",1123661780).cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,this$)));if(cljs.core.truth_(or__4884__auto__)) {return or__4884__auto__; } else {return 0; } })();var progress = [cljs.core.str(cljs.core.count.call(null,new cljs.core.Keyword(null,"tests","tests",1124155795).cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,this$)))),cljs.core.str("/"),cljs.core.str(testCount)].join('');var test_name = clojure.string.join.call(null," -> ",labels);var clazz = (cljs.core.truth_(new cljs.core.Keyword(null,"failures?","failures?",4788123816).cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,this$)))?"error":"ok");var failed = lt.plugins.elm_light.test.get_status_count.call(null,"fail",new cljs.core.Keyword(null,"tests","tests",1124155795).cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,this$)));var passed = lt.plugins.elm_light.test.get_status_count.call(null,"pass",new cljs.core.Keyword(null,"tests","tests",1124155795).cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,this$)));var duration = ((cljs.core._EQ_.call(null,"runComplete",new cljs.core.Keyword(null,"event","event",1110795788).cljs$core$IFn$_invoke$arity$1(evt)))?new cljs.core.Keyword(null,"duration","duration",3316859142).cljs$core$IFn$_invoke$arity$1(evt):cljs.core.reduce.call(null,cljs.core._PLUS_,cljs.core.map.call(null,((function (testCount,progress,test_name,clazz,failed,passed,map__19922,map__19922__$1,evt,status,labels){ return (function (p1__19913_SHARP_){return (new cljs.core.Keyword(null,"duration","duration",3316859142).cljs$core$IFn$_invoke$arity$1(p1__19913_SHARP_) | 0); });})(testCount,progress,test_name,clazz,failed,passed,map__19922,map__19922__$1,evt,status,labels)) ,new cljs.core.Keyword(null,"tests","tests",1124155795).cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,this$)))));return new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"div.test-progress","div.test-progress",3379553757),new cljs.core.PersistentVector(null, 6, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"div.summary","div.summary",724307643),new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"div.summary-item","div.summary-item",2380798601),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"label","label",1116631654),"Runs:"], null),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"span","span",1017440956),progress], null)], null),new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"div.summary-item","div.summary-item",2380798601),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"label","label",1116631654),"Passed:"], null),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"span","span",1017440956),passed], null)], null),new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"div.summary-item","div.summary-item",2380798601),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"label","label",1116631654),"Failed:"], null),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"span","span",1017440956),failed], null)], null),new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"div.summary-item","div.summary-item",2380798601),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"label","label",1116631654),"Seed:"], null),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"span","span",1017440956),new cljs.core.Keyword(null,"initialSeed","initialSeed",2247248711).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"start","start",1123661780).cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,this$)))], null)], null),new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"div.summary-item","div.summary-item",2380798601),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"label","label",1116631654),"Duration:"], null),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"span","span",1017440956),[cljs.core.str(duration),cljs.core.str(" ms")].join('')], null)], null)], null),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"div.progress","div.progress",1377547868),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"progress","progress",4307793311),new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"value","value",1125876963),cljs.core.count.call(null,new cljs.core.Keyword(null,"tests","tests",1124155795).cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,this$))),new cljs.core.Keyword(null,"max","max",1014012118),testCount,new cljs.core.Keyword(null,"class","class",1108647146),clazz], null)], null)], null),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"p.curr-test","p.curr-test",1775184577),(cljs.core.truth_(clojure.string.blank_QMARK_.call(null,test_name))?null:[cljs.core.str("("),cljs.core.str(test_name),cljs.core.str(")")].join(''))], null)], null); })());var seq__19923_20089 = cljs.core.seq.call(null,cljs.core.partition.call(null,2,cljs.core.PersistentVector.EMPTY));var chunk__19924_20090 = null;var count__19925_20091 = 0;var i__19926_20092 = 0;while(true){ if((i__19926_20092 < count__19925_20091)) {var vec__19927_20093 = cljs.core._nth.call(null,chunk__19924_20090,i__19926_20092);var ev__6318__auto___20094 = cljs.core.nth.call(null,vec__19927_20093,0,null);var func__6319__auto___20095 = cljs.core.nth.call(null,vec__19927_20093,1,null);lt.util.dom.on.call(null,e__6317__auto__,ev__6318__auto___20094,func__6319__auto___20095); { var G__20096 = seq__19923_20089; var G__20097 = chunk__19924_20090; var G__20098 = count__19925_20091; var G__20099 = (i__19926_20092 + 1); seq__19923_20089 = G__20096; chunk__19924_20090 = G__20097; count__19925_20091 = G__20098; i__19926_20092 = G__20099; continue; } } else {var temp__4092__auto___20100 = cljs.core.seq.call(null,seq__19923_20089);if(temp__4092__auto___20100) {var seq__19923_20101__$1 = temp__4092__auto___20100;if(cljs.core.chunked_seq_QMARK_.call(null,seq__19923_20101__$1)) {var c__5632__auto___20102 = cljs.core.chunk_first.call(null,seq__19923_20101__$1);{ var G__20103 = cljs.core.chunk_rest.call(null,seq__19923_20101__$1); var G__20104 = c__5632__auto___20102; var G__20105 = cljs.core.count.call(null,c__5632__auto___20102); var G__20106 = 0; seq__19923_20089 = G__20103; chunk__19924_20090 = G__20104; count__19925_20091 = G__20105; i__19926_20092 = G__20106; continue; } } else {var vec__19928_20107 = cljs.core.first.call(null,seq__19923_20101__$1);var ev__6318__auto___20108 = cljs.core.nth.call(null,vec__19928_20107,0,null);var func__6319__auto___20109 = cljs.core.nth.call(null,vec__19928_20107,1,null);lt.util.dom.on.call(null,e__6317__auto__,ev__6318__auto___20108,func__6319__auto___20109); { var G__20110 = cljs.core.next.call(null,seq__19923_20101__$1); var G__20111 = null; var G__20112 = 0; var G__20113 = 0; seq__19923_20089 = G__20110; chunk__19924_20090 = G__20111; count__19925_20091 = G__20112; i__19926_20092 = G__20113; continue; } } } else {} } break; } return e__6317__auto__; }); lt.plugins.elm_light.test.failure_item = (function failure_item(p__19929){var map__19937 = p__19929;var map__19937__$1 = ((cljs.core.seq_QMARK_.call(null,map__19937))?cljs.core.apply.call(null,cljs.core.hash_map,map__19937):map__19937);var failure = map__19937__$1;var actual = cljs.core.get.call(null,map__19937__$1,new cljs.core.Keyword(null,"actual","actual",3885931776));var given = cljs.core.get.call(null,map__19937__$1,new cljs.core.Keyword(null,"given","given",1112271599));var e__6317__auto__ = crate.core.html.call(null,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"div","div",1014003715),(cljs.core.truth_(clojure.string.blank_QMARK_.call(null,given))?null:new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"div.given","div.given",2030103378),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"label","label",1116631654),"Given: "], null),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"span","span",1017440956),given], null)], null)),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"pre","pre",1014015509),actual], null)], null));var seq__19938_20114 = cljs.core.seq.call(null,cljs.core.partition.call(null,2,cljs.core.PersistentVector.EMPTY));var chunk__19939_20115 = null;var count__19940_20116 = 0;var i__19941_20117 = 0;while(true){ if((i__19941_20117 < count__19940_20116)) {var vec__19942_20118 = cljs.core._nth.call(null,chunk__19939_20115,i__19941_20117);var ev__6318__auto___20119 = cljs.core.nth.call(null,vec__19942_20118,0,null);var func__6319__auto___20120 = cljs.core.nth.call(null,vec__19942_20118,1,null);lt.util.dom.on.call(null,e__6317__auto__,ev__6318__auto___20119,func__6319__auto___20120); { var G__20121 = seq__19938_20114; var G__20122 = chunk__19939_20115; var G__20123 = count__19940_20116; var G__20124 = (i__19941_20117 + 1); seq__19938_20114 = G__20121; chunk__19939_20115 = G__20122; count__19940_20116 = G__20123; i__19941_20117 = G__20124; continue; } } else {var temp__4092__auto___20125 = cljs.core.seq.call(null,seq__19938_20114);if(temp__4092__auto___20125) {var seq__19938_20126__$1 = temp__4092__auto___20125;if(cljs.core.chunked_seq_QMARK_.call(null,seq__19938_20126__$1)) {var c__5632__auto___20127 = cljs.core.chunk_first.call(null,seq__19938_20126__$1);{ var G__20128 = cljs.core.chunk_rest.call(null,seq__19938_20126__$1); var G__20129 = c__5632__auto___20127; var G__20130 = cljs.core.count.call(null,c__5632__auto___20127); var G__20131 = 0; seq__19938_20114 = G__20128; chunk__19939_20115 = G__20129; count__19940_20116 = G__20130; i__19941_20117 = G__20131; continue; } } else {var vec__19943_20132 = cljs.core.first.call(null,seq__19938_20126__$1);var ev__6318__auto___20133 = cljs.core.nth.call(null,vec__19943_20132,0,null);var func__6319__auto___20134 = cljs.core.nth.call(null,vec__19943_20132,1,null);lt.util.dom.on.call(null,e__6317__auto__,ev__6318__auto___20133,func__6319__auto___20134); { var G__20135 = cljs.core.next.call(null,seq__19938_20126__$1); var G__20136 = null; var G__20137 = 0; var G__20138 = 0; seq__19938_20114 = G__20135; chunk__19939_20115 = G__20136; count__19940_20116 = G__20137; i__19941_20117 = G__20138; continue; } } } else {} } break; } return e__6317__auto__; }); lt.plugins.elm_light.test.dufus_ui = (function dufus_ui(nd){var e__6317__auto__ = crate.core.html.call(null,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"ul","ul",1013907977),new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"li","li",1013907695),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"span.test-label","span.test-label",4291111567),[cljs.core.str(cljs.core.first.call(null,nd))].join('')], null),((cljs.core.map_QMARK_.call(null,cljs.core.second.call(null,nd)))?cljs.core.map.call(null,lt.plugins.elm_light.test.failure_item,new cljs.core.Keyword(null,"failures","failures",1689842587).cljs$core$IFn$_invoke$arity$1(cljs.core.second.call(null,nd))):cljs.core.map.call(null,dufus_ui,cljs.core.drop.call(null,1,nd)))], null)], null));var seq__19950_20139 = cljs.core.seq.call(null,cljs.core.partition.call(null,2,cljs.core.PersistentVector.EMPTY));var chunk__19951_20140 = null;var count__19952_20141 = 0;var i__19953_20142 = 0;while(true){ if((i__19953_20142 < count__19952_20141)) {var vec__19954_20143 = cljs.core._nth.call(null,chunk__19951_20140,i__19953_20142);var ev__6318__auto___20144 = cljs.core.nth.call(null,vec__19954_20143,0,null);var func__6319__auto___20145 = cljs.core.nth.call(null,vec__19954_20143,1,null);lt.util.dom.on.call(null,e__6317__auto__,ev__6318__auto___20144,func__6319__auto___20145); { var G__20146 = seq__19950_20139; var G__20147 = chunk__19951_20140; var G__20148 = count__19952_20141; var G__20149 = (i__19953_20142 + 1); seq__19950_20139 = G__20146; chunk__19951_20140 = G__20147; count__19952_20141 = G__20148; i__19953_20142 = G__20149; continue; } } else {var temp__4092__auto___20150 = cljs.core.seq.call(null,seq__19950_20139);if(temp__4092__auto___20150) {var seq__19950_20151__$1 = temp__4092__auto___20150;if(cljs.core.chunked_seq_QMARK_.call(null,seq__19950_20151__$1)) {var c__5632__auto___20152 = cljs.core.chunk_first.call(null,seq__19950_20151__$1);{ var G__20153 = cljs.core.chunk_rest.call(null,seq__19950_20151__$1); var G__20154 = c__5632__auto___20152; var G__20155 = cljs.core.count.call(null,c__5632__auto___20152); var G__20156 = 0; seq__19950_20139 = G__20153; chunk__19951_20140 = G__20154; count__19952_20141 = G__20155; i__19953_20142 = G__20156; continue; } } else {var vec__19955_20157 = cljs.core.first.call(null,seq__19950_20151__$1);var ev__6318__auto___20158 = cljs.core.nth.call(null,vec__19955_20157,0,null);var func__6319__auto___20159 = cljs.core.nth.call(null,vec__19955_20157,1,null);lt.util.dom.on.call(null,e__6317__auto__,ev__6318__auto___20158,func__6319__auto___20159); { var G__20160 = cljs.core.next.call(null,seq__19950_20151__$1); var G__20161 = null; var G__20162 = 0; var G__20163 = 0; seq__19950_20139 = G__20160; chunk__19951_20140 = G__20161; count__19952_20141 = G__20162; i__19953_20142 = G__20163; continue; } } } else {} } break; } return e__6317__auto__; }); lt.plugins.elm_light.test.failed_test_ui = (function failed_test_ui(z_failed_test){var e__6317__auto__ = crate.core.html.call(null,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"li","li",1013907695),lt.plugins.elm_light.test.dufus_ui.call(null,clojure.zip.node.call(null,z_failed_test))], null));var seq__19962_20164 = cljs.core.seq.call(null,cljs.core.partition.call(null,2,cljs.core.PersistentVector.EMPTY));var chunk__19963_20165 = null;var count__19964_20166 = 0;var i__19965_20167 = 0;while(true){ if((i__19965_20167 < count__19964_20166)) {var vec__19966_20168 = cljs.core._nth.call(null,chunk__19963_20165,i__19965_20167);var ev__6318__auto___20169 = cljs.core.nth.call(null,vec__19966_20168,0,null);var func__6319__auto___20170 = cljs.core.nth.call(null,vec__19966_20168,1,null);lt.util.dom.on.call(null,e__6317__auto__,ev__6318__auto___20169,func__6319__auto___20170); { var G__20171 = seq__19962_20164; var G__20172 = chunk__19963_20165; var G__20173 = count__19964_20166; var G__20174 = (i__19965_20167 + 1); seq__19962_20164 = G__20171; chunk__19963_20165 = G__20172; count__19964_20166 = G__20173; i__19965_20167 = G__20174; continue; } } else {var temp__4092__auto___20175 = cljs.core.seq.call(null,seq__19962_20164);if(temp__4092__auto___20175) {var seq__19962_20176__$1 = temp__4092__auto___20175;if(cljs.core.chunked_seq_QMARK_.call(null,seq__19962_20176__$1)) {var c__5632__auto___20177 = cljs.core.chunk_first.call(null,seq__19962_20176__$1);{ var G__20178 = cljs.core.chunk_rest.call(null,seq__19962_20176__$1); var G__20179 = c__5632__auto___20177; var G__20180 = cljs.core.count.call(null,c__5632__auto___20177); var G__20181 = 0; seq__19962_20164 = G__20178; chunk__19963_20165 = G__20179; count__19964_20166 = G__20180; i__19965_20167 = G__20181; continue; } } else {var vec__19967_20182 = cljs.core.first.call(null,seq__19962_20176__$1);var ev__6318__auto___20183 = cljs.core.nth.call(null,vec__19967_20182,0,null);var func__6319__auto___20184 = cljs.core.nth.call(null,vec__19967_20182,1,null);lt.util.dom.on.call(null,e__6317__auto__,ev__6318__auto___20183,func__6319__auto___20184); { var G__20185 = cljs.core.next.call(null,seq__19962_20176__$1); var G__20186 = null; var G__20187 = 0; var G__20188 = 0; seq__19962_20164 = G__20185; chunk__19963_20165 = G__20186; count__19964_20166 = G__20187; i__19965_20167 = G__20188; continue; } } } else {} } break; } return e__6317__auto__; }); /** * @param {...*} var_args */ lt.plugins.elm_light.test.failed_tests_ui = (function() { var failed_tests_ui__delegate = function (failed_tests,ldr){var e__6317__auto__ = crate.core.html.call(null,(function (){var grouped = lt.plugins.elm_light.test.group_tests.call(null,failed_tests);return new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"div.test-failures","div.test-failures",761603033),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"h2","h2",1013907516),"Test Failures"], null),new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"ul","ul",1013907977),(cljs.core.truth_(ldr)?ldr:null),cljs.core.map.call(null,lt.plugins.elm_light.test.failed_test_ui,grouped)], null)], null); })());var seq__19974_20189 = cljs.core.seq.call(null,cljs.core.partition.call(null,2,cljs.core.PersistentVector.EMPTY));var chunk__19975_20190 = null;var count__19976_20191 = 0;var i__19977_20192 = 0;while(true){ if((i__19977_20192 < count__19976_20191)) {var vec__19978_20193 = cljs.core._nth.call(null,chunk__19975_20190,i__19977_20192);var ev__6318__auto___20194 = cljs.core.nth.call(null,vec__19978_20193,0,null);var func__6319__auto___20195 = cljs.core.nth.call(null,vec__19978_20193,1,null);lt.util.dom.on.call(null,e__6317__auto__,ev__6318__auto___20194,func__6319__auto___20195); { var G__20196 = seq__19974_20189; var G__20197 = chunk__19975_20190; var G__20198 = count__19976_20191; var G__20199 = (i__19977_20192 + 1); seq__19974_20189 = G__20196; chunk__19975_20190 = G__20197; count__19976_20191 = G__20198; i__19977_20192 = G__20199; continue; } } else {var temp__4092__auto___20200 = cljs.core.seq.call(null,seq__19974_20189);if(temp__4092__auto___20200) {var seq__19974_20201__$1 = temp__4092__auto___20200;if(cljs.core.chunked_seq_QMARK_.call(null,seq__19974_20201__$1)) {var c__5632__auto___20202 = cljs.core.chunk_first.call(null,seq__19974_20201__$1);{ var G__20203 = cljs.core.chunk_rest.call(null,seq__19974_20201__$1); var G__20204 = c__5632__auto___20202; var G__20205 = cljs.core.count.call(null,c__5632__auto___20202); var G__20206 = 0; seq__19974_20189 = G__20203; chunk__19975_20190 = G__20204; count__19976_20191 = G__20205; i__19977_20192 = G__20206; continue; } } else {var vec__19979_20207 = cljs.core.first.call(null,seq__19974_20201__$1);var ev__6318__auto___20208 = cljs.core.nth.call(null,vec__19979_20207,0,null);var func__6319__auto___20209 = cljs.core.nth.call(null,vec__19979_20207,1,null);lt.util.dom.on.call(null,e__6317__auto__,ev__6318__auto___20208,func__6319__auto___20209); { var G__20210 = cljs.core.next.call(null,seq__19974_20201__$1); var G__20211 = null; var G__20212 = 0; var G__20213 = 0; seq__19974_20189 = G__20210; chunk__19975_20190 = G__20211; count__19976_20191 = G__20212; i__19977_20192 = G__20213; continue; } } } else {} } break; } return e__6317__auto__; }; var failed_tests_ui = function (failed_tests,var_args){ var ldr = null;if (arguments.length > 1) { ldr = cljs.core.array_seq(Array.prototype.slice.call(arguments, 1),0);} return failed_tests_ui__delegate.call(this,failed_tests,ldr);}; failed_tests_ui.cljs$lang$maxFixedArity = 1; failed_tests_ui.cljs$lang$applyTo = (function (arglist__20214){ var failed_tests = cljs.core.first(arglist__20214); var ldr = cljs.core.rest(arglist__20214); return failed_tests_ui__delegate(failed_tests,ldr); }); failed_tests_ui.cljs$core$IFn$_invoke$arity$variadic = failed_tests_ui__delegate; return failed_tests_ui; })() ; lt.plugins.elm_light.test.project_ui = (function project_ui(this$){var e__6317__auto__ = crate.core.html.call(null,(function (){var proj_path = lt.plugins.elm_light.utils.project_path.call(null,new cljs.core.Keyword(null,"file","file",1017047278).cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,this$)));var proj_name = [cljs.core.str(cljs.core.last.call(null,lt.objs.files.path_segs.call(null,proj_path))),cljs.core.str(lt.objs.files.basename.call(null,proj_path))].join('');return new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"div.project-container","div.project-container",3841828386),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"h1","h1",1013907515),proj_name], null)], null); })());var seq__19986_20215 = cljs.core.seq.call(null,cljs.core.partition.call(null,2,cljs.core.PersistentVector.EMPTY));var chunk__19987_20216 = null;var count__19988_20217 = 0;var i__19989_20218 = 0;while(true){ if((i__19989_20218 < count__19988_20217)) {var vec__19990_20219 = cljs.core._nth.call(null,chunk__19987_20216,i__19989_20218);var ev__6318__auto___20220 = cljs.core.nth.call(null,vec__19990_20219,0,null);var func__6319__auto___20221 = cljs.core.nth.call(null,vec__19990_20219,1,null);lt.util.dom.on.call(null,e__6317__auto__,ev__6318__auto___20220,func__6319__auto___20221); { var G__20222 = seq__19986_20215; var G__20223 = chunk__19987_20216; var G__20224 = count__19988_20217; var G__20225 = (i__19989_20218 + 1); seq__19986_20215 = G__20222; chunk__19987_20216 = G__20223; count__19988_20217 = G__20224; i__19989_20218 = G__20225; continue; } } else {var temp__4092__auto___20226 = cljs.core.seq.call(null,seq__19986_20215);if(temp__4092__auto___20226) {var seq__19986_20227__$1 = temp__4092__auto___20226;if(cljs.core.chunked_seq_QMARK_.call(null,seq__19986_20227__$1)) {var c__5632__auto___20228 = cljs.core.chunk_first.call(null,seq__19986_20227__$1);{ var G__20229 = cljs.core.chunk_rest.call(null,seq__19986_20227__$1); var G__20230 = c__5632__auto___20228; var G__20231 = cljs.core.count.call(null,c__5632__auto___20228); var G__20232 = 0; seq__19986_20215 = G__20229; chunk__19987_20216 = G__20230; count__19988_20217 = G__20231; i__19989_20218 = G__20232; continue; } } else {var vec__19991_20233 = cljs.core.first.call(null,seq__19986_20227__$1);var ev__6318__auto___20234 = cljs.core.nth.call(null,vec__19991_20233,0,null);var func__6319__auto___20235 = cljs.core.nth.call(null,vec__19991_20233,1,null);lt.util.dom.on.call(null,e__6317__auto__,ev__6318__auto___20234,func__6319__auto___20235); { var G__20236 = cljs.core.next.call(null,seq__19986_20227__$1); var G__20237 = null; var G__20238 = 0; var G__20239 = 0; seq__19986_20215 = G__20236; chunk__19987_20216 = G__20237; count__19988_20217 = G__20238; i__19989_20218 = G__20239; continue; } } } else {} } break; } return e__6317__auto__; }); lt.plugins.elm_light.test.__BEH__on_close_destroy = (function __BEH__on_close_destroy(this$){var temp__4092__auto___20240 = new cljs.core.Keyword("lt.objs.tabs","tabset","lt.objs.tabs/tabset",3378091779).cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,this$));if(cljs.core.truth_(temp__4092__auto___20240)) {var ts_20241 = temp__4092__auto___20240;if(cljs.core._EQ_.call(null,cljs.core.count.call(null,new cljs.core.Keyword(null,"objs","objs",1017308622).cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,ts_20241))),1)) {lt.objs.tabs.rem_tabset.call(null,ts_20241); } else {} } else {} return lt.object.raise.call(null,this$,new cljs.core.Keyword(null,"destroy","destroy",2571277164)); }); lt.object.behavior_STAR_.call(null,new cljs.core.Keyword("lt.plugins.elm-light.test","on-close-destroy","lt.plugins.elm-light.test/on-close-destroy",4267233941),new cljs.core.Keyword(null,"reaction","reaction",4441361819),lt.plugins.elm_light.test.__BEH__on_close_destroy,new cljs.core.Keyword(null,"triggers","triggers",2516997421),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"close","close",1108660586),null], null), null)); lt.plugins.elm_light.test.__BEH__on_testrun_init = (function __BEH__on_testrun_init(this$,path){var result_container = lt.util.dom.$.call(null,new cljs.core.Keyword(null,"div.result-container","div.result-container",4736622080),new cljs.core.Keyword(null,"content","content",1965434859).cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,this$)));var proj_container = lt.util.dom.$.call(null,new cljs.core.Keyword(null,"div.project-container","div.project-container",3841828386),new cljs.core.Keyword(null,"content","content",1965434859).cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,this$)));lt.object.assoc_in_BANG_.call(null,this$,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"start","start",1123661780)], null),null); lt.object.assoc_in_BANG_.call(null,this$,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"tests","tests",1124155795)], null),cljs.core.PersistentVector.EMPTY); lt.object.assoc_in_BANG_.call(null,this$,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"failures?","failures?",4788123816)], null),null); lt.object.assoc_in_BANG_.call(null,this$,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"file","file",1017047278)], null),path); lt.util.dom.replace_with.call(null,proj_container,lt.plugins.elm_light.test.project_ui.call(null,this$)); lt.util.dom.empty.call(null,result_container); lt.util.dom.append.call(null,result_container,lt.plugins.elm_light.test.testprogress_ui.call(null,this$,cljs.core.PersistentArrayMap.EMPTY)); return lt.util.dom.append.call(null,result_container,lt.plugins.elm_light.test.failed_tests_ui.call(null,cljs.core.PersistentVector.EMPTY,lt.plugins.elm_light.test.loader.call(null))); }); lt.object.behavior_STAR_.call(null,new cljs.core.Keyword("lt.plugins.elm-light.test","on-testrun-init","lt.plugins.elm-light.test/on-testrun-init",3317249002),new cljs.core.Keyword(null,"reaction","reaction",4441361819),lt.plugins.elm_light.test.__BEH__on_testrun_init,new cljs.core.Keyword(null,"triggers","triggers",2516997421),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"elm.test.init","elm.test.init",2526420246),null], null), null)); lt.plugins.elm_light.test.log_end = (function log_end(failures_QMARK_,p__19992){var map__19994 = p__19992;var map__19994__$1 = ((cljs.core.seq_QMARK_.call(null,map__19994))?cljs.core.apply.call(null,cljs.core.hash_map,map__19994):map__19994);var evt = map__19994__$1;var duration = cljs.core.get.call(null,map__19994__$1,new cljs.core.Keyword(null,"duration","duration",3316859142));var failed = cljs.core.get.call(null,map__19994__$1,new cljs.core.Keyword(null,"failed","failed",4026894255));var passed = cljs.core.get.call(null,map__19994__$1,new cljs.core.Keyword(null,"passed","passed",4313490402));var summary = [cljs.core.str("Test run completed in "),cljs.core.str(duration),cljs.core.str("ms. Results: "),cljs.core.str(passed),cljs.core.str(" passed, "),cljs.core.str(failed),cljs.core.str(" failed")].join('');lt.objs.console.log.call(null,summary,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"class","class",1108647146),"error"], null)); return lt.objs.notifos.msg_STAR_.call(null,summary,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"class","class",1108647146),(cljs.core.truth_(failures_QMARK_)?"error":""),new cljs.core.Keyword(null,"timeout","timeout",3994960083),5000], null)); }); lt.plugins.elm_light.test.handle_end = (function handle_end(this$,p__19995){var map__19997 = p__19995;var map__19997__$1 = ((cljs.core.seq_QMARK_.call(null,map__19997))?cljs.core.apply.call(null,cljs.core.hash_map,map__19997):map__19997);var evt = map__19997__$1;var duration = cljs.core.get.call(null,map__19997__$1,new cljs.core.Keyword(null,"duration","duration",3316859142));var failed = cljs.core.get.call(null,map__19997__$1,new cljs.core.Keyword(null,"failed","failed",4026894255));var passed = cljs.core.get.call(null,map__19997__$1,new cljs.core.Keyword(null,"passed","passed",4313490402));lt.util.dom.replace_with.call(null,lt.util.dom.$.call(null,new cljs.core.Keyword(null,"div.test-progress","div.test-progress",3379553757),new cljs.core.Keyword(null,"content","content",1965434859).cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,this$))),lt.plugins.elm_light.test.testprogress_ui.call(null,this$,evt)); return lt.plugins.elm_light.test.log_end.call(null,new cljs.core.Keyword(null,"failures?","failures?",4788123816).cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,this$)),evt); }); lt.plugins.elm_light.test.log_test_failures = (function log_test_failures(failures_QMARK_,p__19998){var map__20004 = p__19998;var map__20004__$1 = ((cljs.core.seq_QMARK_.call(null,map__20004))?cljs.core.apply.call(null,cljs.core.hash_map,map__20004):map__20004);var failures = cljs.core.get.call(null,map__20004__$1,new cljs.core.Keyword(null,"failures","failures",1689842587));var labels = cljs.core.get.call(null,map__20004__$1,new cljs.core.Keyword(null,"labels","labels",4198454129));var test_name = clojure.string.join.call(null," -> ",labels);lt.objs.notifos.msg_STAR_.call(null,test_name,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"class","class",1108647146),(cljs.core.truth_(failures)?"error":"")], null)); lt.objs.console.log.call(null,test_name,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"class","class",1108647146),"error"], null)); var seq__20005 = cljs.core.seq.call(null,failures);var chunk__20006 = null;var count__20007 = 0;var i__20008 = 0;while(true){ if((i__20008 < count__20007)) {var failure = cljs.core._nth.call(null,chunk__20006,i__20008);if(cljs.core.truth_(clojure.string.blank_QMARK_.call(null,new cljs.core.Keyword(null,"given","given",1112271599).cljs$core$IFn$_invoke$arity$1(failure)))) {} else {lt.objs.console.log.call(null,[cljs.core.str("Given: "),cljs.core.str(new cljs.core.Keyword(null,"given","given",1112271599).cljs$core$IFn$_invoke$arity$1(failure))].join('')); } lt.objs.console.log.call(null,[cljs.core.str(new cljs.core.Keyword(null,"actual","actual",3885931776).cljs$core$IFn$_invoke$arity$1(failure)),cljs.core.str("\n\n")].join(''),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"class","class",1108647146),"error"], null)); { var G__20242 = seq__20005; var G__20243 = chunk__20006; var G__20244 = count__20007; var G__20245 = (i__20008 + 1); seq__20005 = G__20242; chunk__20006 = G__20243; count__20007 = G__20244; i__20008 = G__20245; continue; } } else {var temp__4092__auto__ = cljs.core.seq.call(null,seq__20005);if(temp__4092__auto__) {var seq__20005__$1 = temp__4092__auto__;if(cljs.core.chunked_seq_QMARK_.call(null,seq__20005__$1)) {var c__5632__auto__ = cljs.core.chunk_first.call(null,seq__20005__$1);{ var G__20246 = cljs.core.chunk_rest.call(null,seq__20005__$1); var G__20247 = c__5632__auto__; var G__20248 = cljs.core.count.call(null,c__5632__auto__); var G__20249 = 0; seq__20005 = G__20246; chunk__20006 = G__20247; count__20007 = G__20248; i__20008 = G__20249; continue; } } else {var failure = cljs.core.first.call(null,seq__20005__$1);if(cljs.core.truth_(clojure.string.blank_QMARK_.call(null,new cljs.core.Keyword(null,"given","given",1112271599).cljs$core$IFn$_invoke$arity$1(failure)))) {} else {lt.objs.console.log.call(null,[cljs.core.str("Given: "),cljs.core.str(new cljs.core.Keyword(null,"given","given",1112271599).cljs$core$IFn$_invoke$arity$1(failure))].join('')); } lt.objs.console.log.call(null,[cljs.core.str(new cljs.core.Keyword(null,"actual","actual",3885931776).cljs$core$IFn$_invoke$arity$1(failure)),cljs.core.str("\n\n")].join(''),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"class","class",1108647146),"error"], null)); { var G__20250 = cljs.core.next.call(null,seq__20005__$1); var G__20251 = null; var G__20252 = 0; var G__20253 = 0; seq__20005 = G__20250; chunk__20006 = G__20251; count__20007 = G__20252; i__20008 = G__20253; continue; } } } else {return null; } } break; } }); lt.plugins.elm_light.test.handle_test_result = (function handle_test_result(this$,p__20010){var map__20012 = p__20010;var map__20012__$1 = ((cljs.core.seq_QMARK_.call(null,map__20012))?cljs.core.apply.call(null,cljs.core.hash_map,map__20012):map__20012);var evt = map__20012__$1;var failures = cljs.core.get.call(null,map__20012__$1,new cljs.core.Keyword(null,"failures","failures",1689842587));var status = cljs.core.get.call(null,map__20012__$1,new cljs.core.Keyword(null,"status","status",4416389988));var labels = cljs.core.get.call(null,map__20012__$1,new cljs.core.Keyword(null,"labels","labels",4198454129));lt.object.update_BANG_.call(null,this$,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"tests","tests",1124155795)], null),cljs.core.conj,evt); if(cljs.core._EQ_.call(null,"fail",status)) {lt.object.assoc_in_BANG_.call(null,this$,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"failures?","failures?",4788123816)], null),true); lt.plugins.elm_light.test.log_test_failures.call(null,new cljs.core.Keyword(null,"failures?","failures?",4788123816).cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,this$)),evt); } else {} var container = lt.util.dom.$.call(null,new cljs.core.Keyword(null,"div.result-container","div.result-container",4736622080),new cljs.core.Keyword(null,"content","content",1965434859).cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,this$)));var failed_tests = cljs.core.filter.call(null,((function (container,map__20012,map__20012__$1,evt,failures,status,labels){ return (function (p1__20009_SHARP_){return cljs.core._EQ_.call(null,"fail",new cljs.core.Keyword(null,"status","status",4416389988).cljs$core$IFn$_invoke$arity$1(p1__20009_SHARP_)); });})(container,map__20012,map__20012__$1,evt,failures,status,labels)) ,new cljs.core.Keyword(null,"tests","tests",1124155795).cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,this$)));lt.util.dom.empty.call(null,container); lt.util.dom.append.call(null,container,lt.plugins.elm_light.test.testprogress_ui.call(null,this$,evt)); return lt.util.dom.append.call(null,container,lt.plugins.elm_light.test.failed_tests_ui.call(null,failed_tests)); }); lt.plugins.elm_light.test.log_start = (function log_start(evt){return lt.objs.notifos.set_msg_BANG_.call(null,"About to run ".call(null,new cljs.core.Keyword(null,"testCount","testCount",4102757135).cljs$core$IFn$_invoke$arity$1(evt)," Elm tests")); }); lt.plugins.elm_light.test.handle_start = (function handle_start(this$,evt){var container = lt.util.dom.$.call(null,new cljs.core.Keyword(null,"div.result-container","div.result-container",4736622080),new cljs.core.Keyword(null,"content","content",1965434859).cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,this$)));lt.util.dom.empty.call(null,container); lt.util.dom.append.call(null,container,lt.plugins.elm_light.test.testprogress_ui.call(null,this$,evt)); lt.util.dom.append.call(null,container,lt.plugins.elm_light.test.failed_tests_ui.call(null,cljs.core.PersistentVector.EMPTY,lt.plugins.elm_light.test.loader.call(null))); lt.object.assoc_in_BANG_.call(null,this$,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"start","start",1123661780)], null),evt); return lt.plugins.elm_light.test.log_start.call(null,evt); }); /** * Create a test suite on the fly for running elm tests */ lt.plugins.elm_light.test.create_suite = (function create_suite(suite_name,project_tests){var imports = [cljs.core.str("import "),cljs.core.str(clojure.string.join.call(null,"\nimport ",cljs.core.set.call(null,cljs.core.map.call(null,new cljs.core.Keyword(null,"module-name","module-name",4067691710),project_tests))))].join('');var tests = clojure.string.join.call(null,",",cljs.core.map.call(null,((function (imports){ return (function (p1__20013_SHARP_){return [cljs.core.str(new cljs.core.Keyword(null,"module-name","module-name",4067691710).cljs$core$IFn$_invoke$arity$1(p1__20013_SHARP_)),cljs.core.str("."),cljs.core.str(new cljs.core.Keyword(null,"value","value",1125876963).cljs$core$IFn$_invoke$arity$1(p1__20013_SHARP_))].join(''); });})(imports)) ,project_tests));return [cljs.core.str("port module "),cljs.core.str(suite_name),cljs.core.str(" exposing (..)\n\nimport Test.Runner.Node exposing (run)\nimport Json.Encode exposing (Value)\nimport Test"),cljs.core.str("\n"),cljs.core.str(imports),cljs.core.str("\n"),cljs.core.str("main : Test.Runner.Node.TestProgram\nmain =\n run emit <| Test.concat ["),cljs.core.str(tests),cljs.core.str("]\n\nport emit : ( String, Value ) -> Cmd msg")].join(''); }); lt.plugins.elm_light.test.__BEH__elm_test_result = (function __BEH__elm_test_result(this$,res){var G__20015 = new cljs.core.Keyword(null,"event","event",1110795788).cljs$core$IFn$_invoke$arity$1(res);if(cljs.core._EQ_.call(null,"runComplete",G__20015)) {return lt.plugins.elm_light.test.handle_end.call(null,this$,res); } else {if(cljs.core._EQ_.call(null,"testCompleted",G__20015)) {return lt.plugins.elm_light.test.handle_test_result.call(null,this$,res); } else {if(cljs.core._EQ_.call(null,"runStart",G__20015)) {return lt.plugins.elm_light.test.handle_start.call(null,this$,res); } else {if(new cljs.core.Keyword(null,"else","else",1017020587)) {return cljs.core.println.call(null,"Unknown messsage: ",res); } else {return null; } } } } }); lt.object.behavior_STAR_.call(null,new cljs.core.Keyword("lt.plugins.elm-light.test","elm-test-result","lt.plugins.elm-light.test/elm-test-result",3684004911),new cljs.core.Keyword(null,"reaction","reaction",4441361819),lt.plugins.elm_light.test.__BEH__elm_test_result,new cljs.core.Keyword(null,"desc","desc",1016984067),"Elm test result event",new cljs.core.Keyword(null,"triggers","triggers",2516997421),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"elm.test.result","elm.test.result",3092491043),null], null), null)); lt.plugins.elm_light.test.__BEH__elm_test_error = (function __BEH__elm_test_error(this$,err){var container_20254 = lt.util.dom.$.call(null,new cljs.core.Keyword(null,"div.result-container","div.result-container",4736622080),new cljs.core.Keyword(null,"content","content",1965434859).cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,this$)));lt.util.dom.empty.call(null,container_20254); lt.util.dom.append.call(null,container_20254,lt.plugins.elm_light.test.testprogress_ui.call(null,this$,cljs.core.PersistentArrayMap.EMPTY)); lt.util.dom.append.call(null,container_20254,lt.plugins.elm_light.test.failed_tests_ui.call(null,cljs.core.PersistentVector.EMPTY)); return lt.objs.console.error.call(null,new cljs.core.Keyword(null,"message","message",1968829305).cljs$core$IFn$_invoke$arity$1(err)); }); lt.object.behavior_STAR_.call(null,new cljs.core.Keyword("lt.plugins.elm-light.test","elm-test-error","lt.plugins.elm-light.test/elm-test-error",2939564972),new cljs.core.Keyword(null,"reaction","reaction",4441361819),lt.plugins.elm_light.test.__BEH__elm_test_error,new cljs.core.Keyword(null,"desc","desc",1016984067),"Elm test error",new cljs.core.Keyword(null,"triggers","triggers",2516997421),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"elm.test.error","elm.test.error",653693798),null], null), null)); lt.object.object_STAR_.call(null,new cljs.core.Keyword("lt.plugins.elm-light.test","dashboard","lt.plugins.elm-light.test/dashboard",1095963052),new cljs.core.Keyword(null,"tags","tags",1017456523),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"elm.test.dashboard","elm.test.dashboard",4421572082),null], null), null),new cljs.core.Keyword(null,"name","name",1017277949),"Elm Test Dashboard",new cljs.core.Keyword(null,"label","label",1116631654),"Elm Test Dashboard",new cljs.core.Keyword(null,"init","init",1017141378),(function (this$){return lt.plugins.elm_light.test.wrapper.call(null); })); lt.plugins.elm_light.test.dashboard = lt.object.create.call(null,new cljs.core.Keyword("lt.plugins.elm-light.test","dashboard","lt.plugins.elm-light.test/dashboard",1095963052)); lt.plugins.elm_light.test.__BEH__elm_test = (function __BEH__elm_test(ed){var map__20017 = cljs.core.deref.call(null,ed);var map__20017__$1 = ((cljs.core.seq_QMARK_.call(null,map__20017))?cljs.core.apply.call(null,cljs.core.hash_map,map__20017):map__20017);var info = cljs.core.get.call(null,map__20017__$1,new cljs.core.Keyword(null,"info","info",1017141280));lt.objs.tabs.add_or_focus_BANG_.call(null,lt.plugins.elm_light.test.dashboard); lt.object.raise.call(null,lt.plugins.elm_light.test.dashboard,new cljs.core.Keyword(null,"elm.test.init","elm.test.init",2526420246),new cljs.core.Keyword(null,"path","path",1017337751).cljs$core$IFn$_invoke$arity$1(info)); return lt.objs.clients.send.call(null,lt.plugins.elm_light.clients.get_eval_client.call(null,ed,new cljs.core.Keyword(null,"elm.test","elm.test",1176854604)),new cljs.core.Keyword(null,"elm.test","elm.test",1176854604),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"file","file",1017047278),new cljs.core.Keyword(null,"path","path",1017337751).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"info","info",1017141280).cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,ed)))], null),new cljs.core.Keyword(null,"only","only",1017320222),lt.plugins.elm_light.test.dashboard); }); lt.object.behavior_STAR_.call(null,new cljs.core.Keyword("lt.plugins.elm-light.test","elm-test","lt.plugins.elm-light.test/elm-test",4453364343),new cljs.core.Keyword(null,"reaction","reaction",4441361819),lt.plugins.elm_light.test.__BEH__elm_test,new cljs.core.Keyword(null,"desc","desc",1016984067),"Run all Elm tests in your test project",new cljs.core.Keyword(null,"triggers","triggers",2516997421),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"elm.test","elm.test",1176854604),null], null), null)); lt.plugins.elm_light.test.get_applicable_tests = (function get_applicable_tests(p__20018){var map__20021 = p__20018;var map__20021__$1 = ((cljs.core.seq_QMARK_.call(null,map__20021))?cljs.core.apply.call(null,cljs.core.hash_map,map__20021):map__20021);var suite_type = cljs.core.get.call(null,map__20021__$1,new cljs.core.Keyword(null,"suite-type","suite-type",4285261921));var path = cljs.core.get.call(null,map__20021__$1,new cljs.core.Keyword(null,"path","path",1017337751));var pos = cljs.core.get.call(null,map__20021__$1,new cljs.core.Keyword(null,"pos","pos",1014015430));var project_path = lt.plugins.elm_light.utils.project_path.call(null,path);var G__20022 = cljs.core.keyword.call(null,suite_type);if(cljs.core._EQ_.call(null,new cljs.core.Keyword(null,"module","module",4240087518),G__20022)) {return lt.plugins.elm_light.elm_ast.get_module_tests.call(null,project_path,path); } else {if(cljs.core._EQ_.call(null,new cljs.core.Keyword(null,"single","single",4406605754),G__20022)) {return lt.plugins.elm_light.elm_ast.get_test_by_pos.call(null,pos,project_path,path); } else {if(cljs.core._EQ_.call(null,new cljs.core.Keyword(null,"all","all",1014000915),G__20022)) {return lt.plugins.elm_light.elm_ast.get_project_tests.call(null,project_path); } else {if(new cljs.core.Keyword(null,"else","else",1017020587)) {return cljs.core.PersistentVector.EMPTY; } else {return null; } } } } }); lt.plugins.elm_light.test.__BEH__elm_test_suite = (function __BEH__elm_test_suite(ed,msg){var project_path = lt.plugins.elm_light.utils.project_path.call(null,new cljs.core.Keyword(null,"path","path",1017337751).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"info","info",1017141280).cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,ed))));var project_tests = lt.plugins.elm_light.test.get_applicable_tests.call(null,msg);var suite_name = [cljs.core.str("ElmTempTestSuite"),cljs.core.str(cljs.core.rand_int.call(null,1000000))].join('');if(cljs.core.seq.call(null,project_tests)) {return lt.objs.clients.send.call(null,lt.plugins.elm_light.clients.get_eval_client.call(null,ed,new cljs.core.Keyword(null,"elm.test.suite","elm.test.suite",666703958)),new cljs.core.Keyword(null,"elm.test.suite","elm.test.suite",666703958),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"module","module",4240087518),suite_name,new cljs.core.Keyword(null,"suite","suite",1123699306),lt.plugins.elm_light.test.create_suite.call(null,suite_name,project_tests)], null),new cljs.core.Keyword(null,"only","only",1017320222),lt.plugins.elm_light.test.dashboard); } else {var container_20255 = lt.util.dom.$.call(null,new cljs.core.Keyword(null,"div.result-container","div.result-container",4736622080),new cljs.core.Keyword(null,"content","content",1965434859).cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,lt.plugins.elm_light.test.dashboard)));lt.util.dom.empty.call(null,container_20255); lt.util.dom.append.call(null,container_20255,lt.plugins.elm_light.test.testprogress_ui.call(null,lt.plugins.elm_light.test.dashboard,cljs.core.PersistentArrayMap.EMPTY)); lt.util.dom.append.call(null,container_20255,lt.plugins.elm_light.test.failed_tests_ui.call(null,cljs.core.PersistentVector.EMPTY)); return lt.objs.notifos.set_msg_BANG_.call(null,"No tests found for project / given selection"); } }); lt.object.behavior_STAR_.call(null,new cljs.core.Keyword("lt.plugins.elm-light.test","elm-test-suite","lt.plugins.elm-light.test/elm-test-suite",2925305500),new cljs.core.Keyword(null,"reaction","reaction",4441361819),lt.plugins.elm_light.test.__BEH__elm_test_suite,new cljs.core.Keyword(null,"desc","desc",1016984067),"Start test suite, now that project is connected",new cljs.core.Keyword(null,"triggers","triggers",2516997421),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"elm.test.suite.start","elm.test.suite.start",3349712458),null], null), null)); lt.plugins.elm_light.test.ast_pass_through = (function ast_pass_through(this$,ed,msg){return lt.objs.clients.send.call(null,lt.plugins.elm_light.clients.get_eval_client.call(null,ed,new cljs.core.Keyword(null,"editor.elm.ast.passthrough","editor.elm.ast.passthrough",3082755153)),new cljs.core.Keyword(null,"editor.elm.ast.passthrough","editor.elm.ast.passthrough",3082755153),msg,new cljs.core.Keyword(null,"only","only",1017320222),this$); }); lt.plugins.elm_light.test.check_elm_version = (function check_elm_version(proj_path){var elm_v = lt.plugins.elm_light.utils.get_elm_version.call(null);if(!(lt.plugins.elm_light.utils.ver_LTE_QMARK_.call(null,"0.18.0",elm_v))) {lt.objs.console.error.call(null,[cljs.core.str("Test feature requires elm 0.18.0, but current elm version is: "),cljs.core.str(elm_v)].join('')); lt.objs.notifos.set_msg_BANG_.call(null,[cljs.core.str("Test feature requires elm 0.18.0, but current elm version is: "),cljs.core.str(elm_v)].join(''),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"class","class",1108647146),"error"], null)); return false; } else {var vec__20024 = lt.plugins.elm_light.utils.project_satisfies_version_QMARK_.call(null,"0.18.0",proj_path);var ok_QMARK_ = cljs.core.nth.call(null,vec__20024,0,null);var bounds = cljs.core.nth.call(null,vec__20024,1,null);if(cljs.core.truth_(ok_QMARK_)) {return true; } else {lt.objs.console.error.call(null,[cljs.core.str("Elm test requires elm version 0.18.0 or higher but project has: "),cljs.core.str(bounds)].join('')); lt.objs.notifos.set_msg_BANG_.call(null,[cljs.core.str("Elm test requires elm version 0.18.0 or higher but project has: "),cljs.core.str(bounds)].join(''),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"class","class",1108647146),"error"], null)); return false; } } }); lt.plugins.elm_light.test.__BEH__elm_test_suite__DOT__init = (function __BEH__elm_test_suite__DOT__init(ed,suite_type){var temp__4092__auto__ = lt.plugins.elm_light.utils.project_path.call(null,new cljs.core.Keyword(null,"path","path",1017337751).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"info","info",1017141280).cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,ed))));if(cljs.core.truth_(temp__4092__auto__)) {var proj_path = temp__4092__auto__;if(lt.plugins.elm_light.test.check_elm_version.call(null,proj_path)) {var map__20026 = cljs.core.deref.call(null,ed);var map__20026__$1 = ((cljs.core.seq_QMARK_.call(null,map__20026))?cljs.core.apply.call(null,cljs.core.hash_map,map__20026):map__20026);var info = cljs.core.get.call(null,map__20026__$1,new cljs.core.Keyword(null,"info","info",1017141280));var pos = lt.objs.editor.__GT_cursor.call(null,ed);lt.objs.tabs.add_or_focus_BANG_.call(null,lt.plugins.elm_light.test.dashboard); lt.object.raise.call(null,lt.plugins.elm_light.test.dashboard,new cljs.core.Keyword(null,"elm.test.init","elm.test.init",2526420246),new cljs.core.Keyword(null,"path","path",1017337751).cljs$core$IFn$_invoke$arity$1(info)); return lt.plugins.elm_light.test.ast_pass_through.call(null,ed,ed,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"target","target",4427965699),new cljs.core.Keyword(null,"elm.test.suite.start","elm.test.suite.start",3349712458),new cljs.core.Keyword(null,"data","data",1016980252),new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"pos","pos",1014015430),pos,new cljs.core.Keyword(null,"path","path",1017337751),new cljs.core.Keyword(null,"path","path",1017337751).cljs$core$IFn$_invoke$arity$1(info),new cljs.core.Keyword(null,"suite-type","suite-type",4285261921),suite_type], null)], null)); } else {return null; } } else {return null; } }); lt.object.behavior_STAR_.call(null,new cljs.core.Keyword("lt.plugins.elm-light.test","elm-test-suite.init","lt.plugins.elm-light.test/elm-test-suite.init",2514809874),new cljs.core.Keyword(null,"reaction","reaction",4441361819),lt.plugins.elm_light.test.__BEH__elm_test_suite__DOT__init,new cljs.core.Keyword(null,"desc","desc",1016984067),"Initialize run of test suite",new cljs.core.Keyword(null,"triggers","triggers",2516997421),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"elm.test.suite.init","elm.test.suite.init",673307468),null], null), null)); lt.plugins.elm_light.test.__BEH__elm_test_setup = (function __BEH__elm_test_setup(ed){var temp__4092__auto__ = lt.plugins.elm_light.utils.project_path.call(null,new cljs.core.Keyword(null,"path","path",1017337751).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"info","info",1017141280).cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,ed))));if(cljs.core.truth_(temp__4092__auto__)) {var prj_path = temp__4092__auto__;if(lt.plugins.elm_light.test.check_elm_version.call(null,prj_path)) {return lt.plugins.elm_light.test.setup_test.call(null,prj_path); } else {return null; } } else {return null; } }); lt.object.behavior_STAR_.call(null,new cljs.core.Keyword("lt.plugins.elm-light.test","elm-test-setup","lt.plugins.elm-light.test/elm-test-setup",2926934567),new cljs.core.Keyword(null,"reaction","reaction",4441361819),lt.plugins.elm_light.test.__BEH__elm_test_setup,new cljs.core.Keyword(null,"triggers","triggers",2516997421),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"elm.test.setup","elm.test.setup",666237915),null], null), null)); lt.objs.command.command.call(null,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"command","command",1964298941),new cljs.core.Keyword(null,"elm.test.suite","elm.test.suite",666703958),new cljs.core.Keyword(null,"desc","desc",1016984067),"Elm: Test All",new cljs.core.Keyword(null,"exec","exec",1017031683),(function (){var temp__4092__auto__ = lt.objs.editor.pool.last_active.call(null);if(cljs.core.truth_(temp__4092__auto__)) {var ed = temp__4092__auto__;return lt.object.raise.call(null,ed,new cljs.core.Keyword(null,"elm.test.suite.init","elm.test.suite.init",673307468),new cljs.core.Keyword(null,"all","all",1014000915)); } else {return null; } })], null)); lt.objs.command.command.call(null,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"command","command",1964298941),new cljs.core.Keyword(null,"elm.test.module","elm.test.module",2958133618),new cljs.core.Keyword(null,"desc","desc",1016984067),"Elm: Test Module",new cljs.core.Keyword(null,"exec","exec",1017031683),(function (){var temp__4092__auto__ = lt.objs.editor.pool.last_active.call(null);if(cljs.core.truth_(temp__4092__auto__)) {var ed = temp__4092__auto__;return lt.object.raise.call(null,ed,new cljs.core.Keyword(null,"elm.test.suite.init","elm.test.suite.init",673307468),new cljs.core.Keyword(null,"module","module",4240087518)); } else {return null; } })], null)); lt.objs.command.command.call(null,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"command","command",1964298941),new cljs.core.Keyword(null,"elm.test.single","elm.test.single",3124651854),new cljs.core.Keyword(null,"desc","desc",1016984067),"Elm: Test Current",new cljs.core.Keyword(null,"exec","exec",1017031683),(function (){var temp__4092__auto__ = lt.objs.editor.pool.last_active.call(null);if(cljs.core.truth_(temp__4092__auto__)) {var ed = temp__4092__auto__;return lt.object.raise.call(null,ed,new cljs.core.Keyword(null,"elm.test.suite.init","elm.test.suite.init",673307468),new cljs.core.Keyword(null,"single","single",4406605754)); } else {return null; } })], null)); lt.objs.command.command.call(null,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"command","command",1964298941),new cljs.core.Keyword(null,"elm.test.setup","elm.test.setup",666237915),new cljs.core.Keyword(null,"desc","desc",1016984067),"Elm: Test Setup",new cljs.core.Keyword(null,"exec","exec",1017031683),(function (){var temp__4092__auto__ = lt.objs.editor.pool.last_active.call(null);if(cljs.core.truth_(temp__4092__auto__)) {var ed = temp__4092__auto__;return lt.object.raise.call(null,ed,new cljs.core.Keyword(null,"elm.test.setup","elm.test.setup",666237915)); } else {return null; } })], null)); } if(!lt.util.load.provided_QMARK_('lt.plugins.elm-light.format')) { goog.provide('lt.plugins.elm_light.format'); goog.require('cljs.core'); goog.require('lt.plugins.elm_light.utils'); goog.require('lt.objs.platform'); goog.require('clojure.string'); goog.require('lt.plugins.elm_light.utils'); goog.require('lt.objs.popup'); goog.require('lt.objs.popup'); goog.require('lt.objs.notifos'); goog.require('lt.plugins.elm_light.clients'); goog.require('lt.objs.notifos'); goog.require('lt.objs.editor.pool'); goog.require('lt.objs.command'); goog.require('lt.objs.platform'); goog.require('lt.plugins.elm_light.clients'); goog.require('clojure.string'); goog.require('lt.plugins.elm_light.selection'); goog.require('lt.plugins.elm_light.selection'); goog.require('lt.objs.editor'); goog.require('lt.object'); goog.require('lt.object'); goog.require('lt.objs.console'); goog.require('lt.objs.editor'); goog.require('lt.objs.console'); goog.require('lt.objs.editor.pool'); goog.require('lt.objs.command'); lt.plugins.elm_light.format.handle_no_elm_format = (function handle_no_elm_format(){lt.objs.notifos.done_working.call(null); lt.objs.console.log.call(null,process.env.PATH); return lt.objs.popup.popup_BANG_.call(null,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"header","header",4087600639),"We couldn't find elm-format in your path",new cljs.core.Keyword(null,"body","body",1016933652),[cljs.core.str("In order to formatting related commands, elm-format must be installed and on your system PATH."),cljs.core.str("(Check the console for PATH as seen from Light Table")].join(''),new cljs.core.Keyword(null,"buttons","buttons",1255256819),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"label","label",1116631654),"Install elm-format",new cljs.core.Keyword(null,"action","action",3885920680),(function (){return lt.objs.platform.open.call(null,"https://github.com/avh4/elm-format#installation-"); })], null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"label","label",1116631654),"ok"], null)], null)], null)); }); lt.plugins.elm_light.format.verify_installed = (function verify_installed(){if(cljs.core.truth_(lt.plugins.elm_light.clients.shelljs.which("elm-format"))) {return true; } else {lt.plugins.elm_light.format.handle_no_elm_format.call(null); return null; } }); /** * Format string input using elm-format. * If successful returns [true result] * If errors returns [false err] */ lt.plugins.elm_light.format.format_input = (function format_input(cwd,input){try{return new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [true,require("child_process").execSync("elm-format --stdin",cljs.core.clj__GT_js.call(null,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"cwd","cwd",1014003170),cwd,new cljs.core.Keyword(null,"input","input",1114262332),input,new cljs.core.Keyword(null,"stdio","stdio",1123664379),"pipe"], null))).toString()], null); }catch (e12443){var e = e12443;return new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [false,e.message], null); }}); /** * Format file or all elm files in dir using elm-format. * If successful returns [true nil] * If errors returns [false err] */ lt.plugins.elm_light.format.format_path = (function format_path(cwd,path){try{require("child_process").execSync([cljs.core.str("elm-format --yes "),cljs.core.str(path)].join(''),cljs.core.clj__GT_js.call(null,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"cwd","cwd",1014003170),cwd,new cljs.core.Keyword(null,"stdio","stdio",1123664379),"pipe"], null))); return new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [true,null], null); }catch (e12445){var e = e12445;return new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [false,e.message], null); }}); lt.plugins.elm_light.format.handle_format_error = (function handle_format_error(err){lt.objs.notifos.set_msg_BANG_.call(null,"Elm format reported errors. See console for details",new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"class","class",1108647146),"error",new cljs.core.Keyword(null,"timeout","timeout",3994960083),5000], null)); return lt.objs.console.error.call(null,err); }); lt.plugins.elm_light.format.__BEH__elm_format = (function __BEH__elm_format(ed){if(cljs.core.truth_(lt.plugins.elm_light.format.verify_installed.call(null))) {var temp__4092__auto__ = new cljs.core.Keyword(null,"path","path",1017337751).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"info","info",1017141280).cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,ed)));if(cljs.core.truth_(temp__4092__auto__)) {var path = temp__4092__auto__;var pos = lt.objs.editor.__GT_cursor.call(null,ed);var vec__12447 = lt.plugins.elm_light.format.format_path.call(null,lt.plugins.elm_light.utils.project_path.call(null,path),path);var ok_QMARK_ = cljs.core.nth.call(null,vec__12447,0,null);var res = cljs.core.nth.call(null,vec__12447,1,null);if(cljs.core.truth_(ok_QMARK_)) {lt.objs.editor.pool.reload.call(null,ed); } else {lt.plugins.elm_light.format.handle_format_error.call(null,res); } lt.objs.editor.move_cursor.call(null,ed,pos); return lt.objs.editor.center_cursor.call(null,ed); } else {return null; } } else {return null; } }); lt.object.behavior_STAR_.call(null,new cljs.core.Keyword("lt.plugins.elm-light.format","elm-format","lt.plugins.elm-light.format/elm-format",4432445084),new cljs.core.Keyword(null,"reaction","reaction",4441361819),lt.plugins.elm_light.format.__BEH__elm_format,new cljs.core.Keyword(null,"triggers","triggers",2516997421),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"elm.format","elm.format",2598773169),null], null), null)); lt.plugins.elm_light.format.strip_module = (function strip_module(expr){return clojure.string.join.call(null,"\n",cljs.core.drop.call(null,3,clojure.string.split_lines.call(null,expr))); }); lt.plugins.elm_light.format.__BEH__elm_format_expression = (function __BEH__elm_format_expression(ed){if(cljs.core.truth_(lt.plugins.elm_light.format.verify_installed.call(null))) {var pos = lt.objs.editor.__GT_cursor.call(null,ed);var cwd = lt.plugins.elm_light.utils.project_path.call(null,new cljs.core.Keyword(null,"path","path",1017337751).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"info","info",1017141280).cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,ed))));var temp__4092__auto__ = lt.plugins.elm_light.selection.get_top_level_expr.call(null,ed,pos);if(cljs.core.truth_(temp__4092__auto__)) {var map__12450 = temp__4092__auto__;var map__12450__$1 = ((cljs.core.seq_QMARK_.call(null,map__12450))?cljs.core.apply.call(null,cljs.core.hash_map,map__12450):map__12450);var to = cljs.core.get.call(null,map__12450__$1,new cljs.core.Keyword(null,"to","to",1013907949));var from = cljs.core.get.call(null,map__12450__$1,new cljs.core.Keyword(null,"from","from",1017056028));var vec__12451 = lt.plugins.elm_light.format.format_input.call(null,cwd,lt.objs.editor.range.call(null,ed,from,to));var ok_QMARK_ = cljs.core.nth.call(null,vec__12451,0,null);var res = cljs.core.nth.call(null,vec__12451,1,null);if(cljs.core.truth_(ok_QMARK_)) {lt.objs.editor.replace.call(null,ed,from,to,lt.plugins.elm_light.format.strip_module.call(null,res)); } else {lt.plugins.elm_light.format.handle_format_error.call(null,res); } return lt.objs.editor.move_cursor.call(null,ed,pos); } else {return null; } } else {return null; } }); lt.object.behavior_STAR_.call(null,new cljs.core.Keyword("lt.plugins.elm-light.format","elm-format-expression","lt.plugins.elm-light.format/elm-format-expression",731246833),new cljs.core.Keyword(null,"reaction","reaction",4441361819),lt.plugins.elm_light.format.__BEH__elm_format_expression,new cljs.core.Keyword(null,"triggers","triggers",2516997421),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"elm.format-expression","elm.format-expression",2402661976),null], null), null)); lt.plugins.elm_light.format.__BEH__elm_format_buffer = (function __BEH__elm_format_buffer(ed){if(cljs.core.truth_(lt.plugins.elm_light.format.verify_installed.call(null))) {var pos = lt.objs.editor.__GT_cursor.call(null,ed);var vec__12453 = lt.plugins.elm_light.format.format_input.call(null,lt.plugins.elm_light.utils.project_path.call(null,new cljs.core.Keyword(null,"path","path",1017337751).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"info","info",1017141280).cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,ed)))),lt.objs.editor.__GT_val.call(null,ed));var ok_QMARK_ = cljs.core.nth.call(null,vec__12453,0,null);var res = cljs.core.nth.call(null,vec__12453,1,null);if(cljs.core.truth_(ok_QMARK_)) {lt.objs.editor.set_val_and_keep_cursor.call(null,ed,res); return lt.objs.editor.center_cursor.call(null,ed); } else {return lt.plugins.elm_light.format.handle_format_error.call(null,res); } } else {return null; } }); lt.object.behavior_STAR_.call(null,new cljs.core.Keyword("lt.plugins.elm-light.format","elm-format-buffer","lt.plugins.elm-light.format/elm-format-buffer",2032820105),new cljs.core.Keyword(null,"reaction","reaction",4441361819),lt.plugins.elm_light.format.__BEH__elm_format_buffer,new cljs.core.Keyword(null,"triggers","triggers",2516997421),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"elm.format-buffer","elm.format-buffer",4209381120),null], null), null)); lt.objs.command.command.call(null,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"command","command",1964298941),new cljs.core.Keyword(null,"elm-format","elm-format",1711269488),new cljs.core.Keyword(null,"desc","desc",1016984067),"Elm: Format file",new cljs.core.Keyword(null,"exec","exec",1017031683),(function (){var temp__4092__auto__ = lt.objs.editor.pool.last_active.call(null);if(cljs.core.truth_(temp__4092__auto__)) {var ed = temp__4092__auto__;return lt.object.raise.call(null,ed,new cljs.core.Keyword(null,"elm.format","elm.format",2598773169)); } else {return null; } })], null)); lt.objs.command.command.call(null,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"command","command",1964298941),new cljs.core.Keyword(null,"elm-format-buffer","elm-format-buffer",4714939745),new cljs.core.Keyword(null,"desc","desc",1016984067),"Elm: Format editor contents",new cljs.core.Keyword(null,"exec","exec",1017031683),(function (){var temp__4092__auto__ = lt.objs.editor.pool.last_active.call(null);if(cljs.core.truth_(temp__4092__auto__)) {var ed = temp__4092__auto__;return lt.object.raise.call(null,ed,new cljs.core.Keyword(null,"elm.format-buffer","elm.format-buffer",4209381120)); } else {return null; } })], null)); lt.objs.command.command.call(null,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"command","command",1964298941),new cljs.core.Keyword(null,"elm-format-expression","elm-format-expression",3399734329),new cljs.core.Keyword(null,"desc","desc",1016984067),"Elm: Format top level expression at point",new cljs.core.Keyword(null,"exec","exec",1017031683),(function (){var temp__4092__auto__ = lt.objs.editor.pool.last_active.call(null);if(cljs.core.truth_(temp__4092__auto__)) {var ed = temp__4092__auto__;return lt.object.raise.call(null,ed,new cljs.core.Keyword(null,"elm.format-expression","elm.format-expression",2402661976)); } else {return null; } })], null)); } if(!lt.util.load.provided_QMARK_('')) { } //# sourceMappingURL=elm-light_compiled.js.map ================================================ FILE: elm.keymap ================================================ [ [:editor.keys.normal.elm "tab" :passthrough] ] ================================================ FILE: js/highlight.pack.js ================================================ !function(e){"undefined"!=typeof exports?e(exports):(window.hljs=e({}),"function"==typeof define&&define.amd&&define("hljs",[],function(){return window.hljs}))}(function(e){function n(e){return e.replace(/&/gm,"&").replace(//gm,">")}function t(e){return e.nodeName.toLowerCase()}function r(e,n){var t=e&&e.exec(n);return t&&0==t.index}function a(e){return/^(no-?highlight|plain|text)$/i.test(e)}function i(e){var n,t,r,i=e.className+" ";if(i+=e.parentNode?e.parentNode.className:"",t=/\blang(?:uage)?-([\w-]+)\b/i.exec(i))return w(t[1])?t[1]:"no-highlight";for(i=i.split(/\s+/),n=0,r=i.length;r>n;n++)if(w(i[n])||a(i[n]))return i[n]}function o(e,n){var t,r={};for(t in e)r[t]=e[t];if(n)for(t in n)r[t]=n[t];return r}function u(e){var n=[];return function r(e,a){for(var i=e.firstChild;i;i=i.nextSibling)3==i.nodeType?a+=i.nodeValue.length:1==i.nodeType&&(n.push({event:"start",offset:a,node:i}),a=r(i,a),t(i).match(/br|hr|img|input/)||n.push({event:"stop",offset:a,node:i}));return a}(e,0),n}function c(e,r,a){function i(){return e.length&&r.length?e[0].offset!=r[0].offset?e[0].offset"}function u(e){f+=""}function c(e){("start"==e.event?o:u)(e.node)}for(var s=0,f="",l=[];e.length||r.length;){var g=i();if(f+=n(a.substr(s,g[0].offset-s)),s=g[0].offset,g==e){l.reverse().forEach(u);do c(g.splice(0,1)[0]),g=i();while(g==e&&g.length&&g[0].offset==s);l.reverse().forEach(o)}else"start"==g[0].event?l.push(g[0].node):l.pop(),c(g.splice(0,1)[0])}return f+n(a.substr(s))}function s(e){function n(e){return e&&e.source||e}function t(t,r){return new RegExp(n(t),"m"+(e.cI?"i":"")+(r?"g":""))}function r(a,i){if(!a.compiled){if(a.compiled=!0,a.k=a.k||a.bK,a.k){var u={},c=function(n,t){e.cI&&(t=t.toLowerCase()),t.split(" ").forEach(function(e){var t=e.split("|");u[t[0]]=[n,t[1]?Number(t[1]):1]})};"string"==typeof a.k?c("keyword",a.k):Object.keys(a.k).forEach(function(e){c(e,a.k[e])}),a.k=u}a.lR=t(a.l||/\b\w+\b/,!0),i&&(a.bK&&(a.b="\\b("+a.bK.split(" ").join("|")+")\\b"),a.b||(a.b=/\B|\b/),a.bR=t(a.b),a.e||a.eW||(a.e=/\B|\b/),a.e&&(a.eR=t(a.e)),a.tE=n(a.e)||"",a.eW&&i.tE&&(a.tE+=(a.e?"|":"")+i.tE)),a.i&&(a.iR=t(a.i)),void 0===a.r&&(a.r=1),a.c||(a.c=[]);var s=[];a.c.forEach(function(e){e.v?e.v.forEach(function(n){s.push(o(e,n))}):s.push("self"==e?a:e)}),a.c=s,a.c.forEach(function(e){r(e,a)}),a.starts&&r(a.starts,i);var f=a.c.map(function(e){return e.bK?"\\.?("+e.b+")\\.?":e.b}).concat([a.tE,a.i]).map(n).filter(Boolean);a.t=f.length?t(f.join("|"),!0):{exec:function(){return null}}}}r(e)}function f(e,t,a,i){function o(e,n){for(var t=0;t";return i+=e+'">',i+n+o}function p(){if(!L.k)return n(y);var e="",t=0;L.lR.lastIndex=0;for(var r=L.lR.exec(y);r;){e+=n(y.substr(t,r.index-t));var a=g(L,r);a?(B+=a[1],e+=h(a[0],n(r[0]))):e+=n(r[0]),t=L.lR.lastIndex,r=L.lR.exec(y)}return e+n(y.substr(t))}function d(){var e="string"==typeof L.sL;if(e&&!x[L.sL])return n(y);var t=e?f(L.sL,y,!0,M[L.sL]):l(y,L.sL.length?L.sL:void 0);return L.r>0&&(B+=t.r),e&&(M[L.sL]=t.top),h(t.language,t.value,!1,!0)}function b(){return void 0!==L.sL?d():p()}function v(e,t){var r=e.cN?h(e.cN,"",!0):"";e.rB?(k+=r,y=""):e.eB?(k+=n(t)+r,y=""):(k+=r,y=t),L=Object.create(e,{parent:{value:L}})}function m(e,t){if(y+=e,void 0===t)return k+=b(),0;var r=o(t,L);if(r)return k+=b(),v(r,t),r.rB?0:t.length;var a=u(L,t);if(a){var i=L;i.rE||i.eE||(y+=t),k+=b();do L.cN&&(k+=""),B+=L.r,L=L.parent;while(L!=a.parent);return i.eE&&(k+=n(t)),y="",a.starts&&v(a.starts,""),i.rE?0:t.length}if(c(t,L))throw new Error('Illegal lexeme "'+t+'" for mode "'+(L.cN||"")+'"');return y+=t,t.length||1}var N=w(e);if(!N)throw new Error('Unknown language: "'+e+'"');s(N);var R,L=i||N,M={},k="";for(R=L;R!=N;R=R.parent)R.cN&&(k=h(R.cN,"",!0)+k);var y="",B=0;try{for(var C,j,I=0;;){if(L.t.lastIndex=I,C=L.t.exec(t),!C)break;j=m(t.substr(I,C.index-I),C[0]),I=C.index+j}for(m(t.substr(I)),R=L;R.parent;R=R.parent)R.cN&&(k+="");return{r:B,value:k,language:e,top:L}}catch(O){if(-1!=O.message.indexOf("Illegal"))return{r:0,value:n(t)};throw O}}function l(e,t){t=t||E.languages||Object.keys(x);var r={r:0,value:n(e)},a=r;return t.forEach(function(n){if(w(n)){var t=f(n,e,!1);t.language=n,t.r>a.r&&(a=t),t.r>r.r&&(a=r,r=t)}}),a.language&&(r.second_best=a),r}function g(e){return E.tabReplace&&(e=e.replace(/^((<[^>]+>|\t)+)/gm,function(e,n){return n.replace(/\t/g,E.tabReplace)})),E.useBR&&(e=e.replace(/\n/g,"
    ")),e}function h(e,n,t){var r=n?R[n]:t,a=[e.trim()];return e.match(/\bhljs\b/)||a.push("hljs"),-1===e.indexOf(r)&&a.push(r),a.join(" ").trim()}function p(e){var n=i(e);if(!a(n)){var t;E.useBR?(t=document.createElementNS("http://www.w3.org/1999/xhtml","div"),t.innerHTML=e.innerHTML.replace(/\n/g,"").replace(//g,"\n")):t=e;var r=t.textContent,o=n?f(n,r,!0):l(r),s=u(t);if(s.length){var p=document.createElementNS("http://www.w3.org/1999/xhtml","div");p.innerHTML=o.value,o.value=c(s,u(p),r)}o.value=g(o.value),e.innerHTML=o.value,e.className=h(e.className,n,o.language),e.result={language:o.language,re:o.r},o.second_best&&(e.second_best={language:o.second_best.language,re:o.second_best.r})}}function d(e){E=o(E,e)}function b(){if(!b.called){b.called=!0;var e=document.querySelectorAll("pre code");Array.prototype.forEach.call(e,p)}}function v(){addEventListener("DOMContentLoaded",b,!1),addEventListener("load",b,!1)}function m(n,t){var r=x[n]=t(e);r.aliases&&r.aliases.forEach(function(e){R[e]=n})}function N(){return Object.keys(x)}function w(e){return e=e.toLowerCase(),x[e]||x[R[e]]}var E={classPrefix:"hljs-",tabReplace:null,useBR:!1,languages:void 0},x={},R={};return e.highlight=f,e.highlightAuto=l,e.fixMarkup=g,e.highlightBlock=p,e.configure=d,e.initHighlighting=b,e.initHighlightingOnLoad=v,e.registerLanguage=m,e.listLanguages=N,e.getLanguage=w,e.inherit=o,e.IR="[a-zA-Z]\\w*",e.UIR="[a-zA-Z_]\\w*",e.NR="\\b\\d+(\\.\\d+)?",e.CNR="(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",e.BNR="\\b(0b[01]+)",e.RSR="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",e.BE={b:"\\\\[\\s\\S]",r:0},e.ASM={cN:"string",b:"'",e:"'",i:"\\n",c:[e.BE]},e.QSM={cN:"string",b:'"',e:'"',i:"\\n",c:[e.BE]},e.PWM={b:/\b(a|an|the|are|I|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such)\b/},e.C=function(n,t,r){var a=e.inherit({cN:"comment",b:n,e:t,c:[]},r||{});return a.c.push(e.PWM),a.c.push({cN:"doctag",b:"(?:TODO|FIXME|NOTE|BUG|XXX):",r:0}),a},e.CLCM=e.C("//","$"),e.CBCM=e.C("/\\*","\\*/"),e.HCM=e.C("#","$"),e.NM={cN:"number",b:e.NR,r:0},e.CNM={cN:"number",b:e.CNR,r:0},e.BNM={cN:"number",b:e.BNR,r:0},e.CSSNM={cN:"number",b:e.NR+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",r:0},e.RM={cN:"regexp",b:/\//,e:/\/[gimuy]*/,i:/\n/,c:[e.BE,{b:/\[/,e:/\]/,r:0,c:[e.BE]}]},e.TM={cN:"title",b:e.IR,r:0},e.UTM={cN:"title",b:e.UIR,r:0},e});hljs.registerLanguage("bash",function(e){var t={cN:"variable",v:[{b:/\$[\w\d#@][\w\d_]*/},{b:/\$\{(.*?)}/}]},s={cN:"string",b:/"/,e:/"/,c:[e.BE,t,{cN:"variable",b:/\$\(/,e:/\)/,c:[e.BE]}]},a={cN:"string",b:/'/,e:/'/};return{aliases:["sh","zsh"],l:/-?[a-z\.]+/,k:{keyword:"if then else elif fi for while in do done case esac function",literal:"true false",built_in:"break cd continue eval exec exit export getopts hash pwd readonly return shift test times trap umask unset alias bind builtin caller command declare echo enable help let local logout mapfile printf read readarray source type typeset ulimit unalias set shopt autoload bg bindkey bye cap chdir clone comparguments compcall compctl compdescribe compfiles compgroups compquote comptags comptry compvalues dirs disable disown echotc echoti emulate fc fg float functions getcap getln history integer jobs kill limit log noglob popd print pushd pushln rehash sched setcap setopt stat suspend ttyctl unfunction unhash unlimit unsetopt vared wait whence where which zcompile zformat zftp zle zmodload zparseopts zprof zpty zregexparse zsocket zstyle ztcp",operator:"-ne -eq -lt -gt -f -d -e -s -l -a"},c:[{cN:"shebang",b:/^#![^\n]+sh\s*$/,r:10},{cN:"function",b:/\w[\w\d_]*\s*\(\s*\)\s*\{/,rB:!0,c:[e.inherit(e.TM,{b:/\w[\w\d_]*/})],r:0},e.HCM,e.NM,s,a,t]}});hljs.registerLanguage("css",function(e){var c="[a-zA-Z-][a-zA-Z0-9_-]*",a={cN:"function",b:c+"\\(",rB:!0,eE:!0,e:"\\("},r={cN:"rule",b:/[A-Z\_\.\-]+\s*:/,rB:!0,e:";",eW:!0,c:[{cN:"attribute",b:/\S/,e:":",eE:!0,starts:{cN:"value",eW:!0,eE:!0,c:[a,e.CSSNM,e.QSM,e.ASM,e.CBCM,{cN:"hexcolor",b:"#[0-9A-Fa-f]+"},{cN:"important",b:"!important"}]}}]};return{cI:!0,i:/[=\/|'\$]/,c:[e.CBCM,r,{cN:"id",b:/\#[A-Za-z0-9_-]+/},{cN:"class",b:/\.[A-Za-z0-9_-]+/},{cN:"attr_selector",b:/\[/,e:/\]/,i:"$"},{cN:"pseudo",b:/:(:)?[a-zA-Z0-9\_\-\+\(\)"']+/},{cN:"at_rule",b:"@(font-face|page)",l:"[a-z-]+",k:"font-face page"},{cN:"at_rule",b:"@",e:"[{;]",c:[{cN:"keyword",b:/\S+/},{b:/\s/,eW:!0,eE:!0,r:0,c:[a,e.ASM,e.QSM,e.CSSNM]}]},{cN:"tag",b:c,r:0},{cN:"rules",b:"{",e:"}",i:/\S/,c:[e.CBCM,r]}]}});hljs.registerLanguage("elm",function(e){var c=[e.C("--","$"),e.C("{-","-}",{c:["self"]})],i={cN:"type",b:"\\b[A-Z][\\w']*",r:0},n={cN:"container",b:"\\(",e:"\\)",i:'"',c:[{cN:"type",b:"\\b[A-Z][\\w]*(\\((\\.\\.|,|\\w+)\\))?"}].concat(c)},t={cN:"container",b:"{",e:"}",c:n.c};return{k:"let in if then else case of where module import exposing type alias as infix infixl infixr port",c:[{cN:"module",b:"\\bmodule\\b",e:"where",k:"module where",c:[n].concat(c),i:"\\W\\.|;"},{cN:"import",b:"\\bimport\\b",e:"$",k:"import|0 as exposing",c:[n].concat(c),i:"\\W\\.|;"},{cN:"typedef",b:"\\btype\\b",e:"$",k:"type alias",c:[i,n,t].concat(c)},{cN:"infix",bK:"infix infixl infixr",e:"$",c:[e.CNM].concat(c)},{cN:"foreign",b:"\\bport\\b",e:"$",k:"port",c:c},e.QSM,e.CNM,i,e.inherit(e.TM,{b:"^[_a-z][\\w']*"}),{b:"->|<-"}].concat(c)}});hljs.registerLanguage("json",function(e){var t={literal:"true false null"},i=[e.QSM,e.CNM],l={cN:"value",e:",",eW:!0,eE:!0,c:i,k:t},c={b:"{",e:"}",c:[{cN:"attribute",b:'\\s*"',e:'"\\s*:\\s*',eB:!0,eE:!0,c:[e.BE],i:"\\n",starts:l}],i:"\\S"},n={b:"\\[",e:"\\]",c:[e.inherit(l,{cN:null})],i:"\\S"};return i.splice(i.length,0,c,n),{c:i,k:t,i:"\\S"}});hljs.registerLanguage("javascript",function(e){return{aliases:["js"],k:{keyword:"in of if for while finally var new function do return void else break catch instanceof with throw case default try this switch continue typeof delete let yield const export super debugger as async await",literal:"true false null undefined NaN Infinity",built_in:"eval isFinite isNaN parseFloat parseInt decodeURI decodeURIComponent encodeURI encodeURIComponent escape unescape Object Function Boolean Error EvalError InternalError RangeError ReferenceError StopIteration SyntaxError TypeError URIError Number Math Date String RegExp Array Float32Array Float64Array Int16Array Int32Array Int8Array Uint16Array Uint32Array Uint8Array Uint8ClampedArray ArrayBuffer DataView JSON Intl arguments require module console window document Symbol Set Map WeakSet WeakMap Proxy Reflect Promise"},c:[{cN:"pi",r:10,b:/^\s*['"]use (strict|asm)['"]/},e.ASM,e.QSM,{cN:"string",b:"`",e:"`",c:[e.BE,{cN:"subst",b:"\\$\\{",e:"\\}"}]},e.CLCM,e.CBCM,{cN:"number",v:[{b:"\\b(0[bB][01]+)"},{b:"\\b(0[oO][0-7]+)"},{b:e.CNR}],r:0},{b:"("+e.RSR+"|\\b(case|return|throw)\\b)\\s*",k:"return throw case",c:[e.CLCM,e.CBCM,e.RM,{b:/\s*[);\]]/,r:0,sL:"xml"}],r:0},{cN:"function",bK:"function",e:/\{/,eE:!0,c:[e.inherit(e.TM,{b:/[A-Za-z$_][0-9A-Za-z$_]*/}),{cN:"params",b:/\(/,e:/\)/,eB:!0,eE:!0,c:[e.CLCM,e.CBCM]}],i:/\[|%/},{b:/\$[(.]/},{b:"\\."+e.IR,r:0},{bK:"import",e:"[;$]",k:"import from as",c:[e.ASM,e.QSM]},{cN:"class",bK:"class",e:/[{;=]/,eE:!0,i:/[:"\[\]]/,c:[{bK:"extends"},e.UTM]}],i:/#/}});hljs.registerLanguage("xml",function(t){var s="[A-Za-z0-9\\._:-]+",c={b:/<\?(php)?(?!\w)/,e:/\?>/,sL:"php"},e={eW:!0,i:/]+/}]}]}]};return{aliases:["html","xhtml","rss","atom","xsl","plist"],cI:!0,c:[{cN:"doctype",b:"",r:10,c:[{b:"\\[",e:"\\]"}]},t.C("",{r:10}),{cN:"cdata",b:"<\\!\\[CDATA\\[",e:"\\]\\]>",r:10},{cN:"tag",b:"|$)",e:">",k:{title:"style"},c:[e],starts:{e:"",rE:!0,sL:"css"}},{cN:"tag",b:"|$)",e:">",k:{title:"script"},c:[e],starts:{e:"",rE:!0,sL:["actionscript","javascript","handlebars"]}},c,{cN:"pi",b:/<\?\w+/,e:/\?>/,r:10},{cN:"tag",b:"",c:[{cN:"title",b:/[^ \/><\n\t]+/,r:0},e]}]}}); ================================================ FILE: js/show-hint.js ================================================ // CodeMirror, copyright (c) by Marijn Haverbeke and others // Distributed under an MIT license: http://codemirror.net/LICENSE (function(mod) { if (typeof exports == "object" && typeof module == "object") // CommonJS mod(require("../../lib/codemirror")); else if (typeof define == "function" && define.amd) // AMD define(["../../lib/codemirror"], mod); else // Plain browser env mod(CodeMirror); })(function(CodeMirror) { "use strict"; var HINT_ELEMENT_CLASS = "CodeMirror-hint"; var ACTIVE_HINT_ELEMENT_CLASS = "CodeMirror-hint-active"; // This is the old interface, kept around for now to stay // backwards-compatible. CodeMirror.showHint = function(cm, getHints, options) { if (!getHints) return cm.showHint(options); if (options && options.async) getHints.async = true; var newOpts = {hint: getHints}; if (options) for (var prop in options) newOpts[prop] = options[prop]; return cm.showHint(newOpts); }; CodeMirror.defineExtension("showHint", function(options) { options = parseOptions(this, this.getCursor("start"), options); var selections = this.listSelections() if (selections.length > 1) return; // By default, don't allow completion when something is selected. // A hint function can have a `supportsSelection` property to // indicate that it can handle selections. if (this.somethingSelected()) { if (!options.hint.supportsSelection) return; // Don't try with cross-line selections for (var i = 0; i < selections.length; i++) if (selections[i].head.line != selections[i].anchor.line) return; } if (this.state.completionActive) this.state.completionActive.close(); var completion = this.state.completionActive = new Completion(this, options); if (!completion.options.hint) return; CodeMirror.signal(this, "startCompletion", this); completion.update(true); }); function Completion(cm, options) { this.cm = cm; this.options = options; this.widget = null; this.debounce = 0; this.tick = 0; this.startPos = this.cm.getCursor("start"); this.startLen = this.cm.getLine(this.startPos.line).length - this.cm.getSelection().length; var self = this; cm.on("cursorActivity", this.activityFunc = function() { self.cursorActivity(); }); } var requestAnimationFrame = window.requestAnimationFrame || function(fn) { return setTimeout(fn, 1000/60); }; var cancelAnimationFrame = window.cancelAnimationFrame || clearTimeout; Completion.prototype = { close: function() { if (!this.active()) return; this.cm.state.completionActive = null; this.tick = null; this.cm.off("cursorActivity", this.activityFunc); if (this.widget && this.data) CodeMirror.signal(this.data, "close"); if (this.widget) this.widget.close(); CodeMirror.signal(this.cm, "endCompletion", this.cm); }, active: function() { return this.cm.state.completionActive == this; }, pick: function(data, i) { var completion = data.list[i]; if (completion.hint) completion.hint(this.cm, data, completion); else this.cm.replaceRange(getText(completion), completion.from || data.from, completion.to || data.to, "complete"); CodeMirror.signal(data, "pick", completion); this.close(); }, cursorActivity: function() { if (this.debounce) { cancelAnimationFrame(this.debounce); this.debounce = 0; } var pos = this.cm.getCursor(), line = this.cm.getLine(pos.line); if (pos.line != this.startPos.line || line.length - pos.ch != this.startLen - this.startPos.ch || pos.ch < this.startPos.ch || this.cm.somethingSelected() || (pos.ch && this.options.closeCharacters.test(line.charAt(pos.ch - 1)))) { this.close(); } else { var self = this; this.debounce = requestAnimationFrame(function() {self.update();}); if (this.widget) this.widget.disable(); } }, update: function(first) { if (this.tick == null) return var self = this, myTick = ++this.tick fetchHints(this.options.hint, this.cm, this.options, function(data) { if (self.tick == myTick) self.finishUpdate(data, first) }) }, finishUpdate: function(data, first) { if (this.data) CodeMirror.signal(this.data, "update"); var picked = (this.widget && this.widget.picked) || (first && this.options.completeSingle); if (this.widget) this.widget.close(); if (data && this.data && isNewCompletion(this.data, data)) return; this.data = data; if (data && data.list.length) { if (picked && data.list.length == 1) { this.pick(data, 0); } else { this.widget = new Widget(this, data); CodeMirror.signal(data, "shown"); } } } }; function isNewCompletion(old, nw) { var moved = CodeMirror.cmpPos(nw.from, old.from) return moved > 0 && old.to.ch - old.from.ch != nw.to.ch - nw.from.ch } function parseOptions(cm, pos, options) { var editor = cm.options.hintOptions; var out = {}; for (var prop in defaultOptions) out[prop] = defaultOptions[prop]; if (editor) for (var prop in editor) if (editor[prop] !== undefined) out[prop] = editor[prop]; if (options) for (var prop in options) if (options[prop] !== undefined) out[prop] = options[prop]; if (out.hint.resolve) out.hint = out.hint.resolve(cm, pos) return out; } function getText(completion) { if (typeof completion == "string") return completion; else return completion.text; } function buildKeyMap(completion, handle) { var baseMap = { Up: function() {handle.moveFocus(-1);}, Down: function() {handle.moveFocus(1);}, PageUp: function() {handle.moveFocus(-handle.menuSize() + 1, true);}, PageDown: function() {handle.moveFocus(handle.menuSize() - 1, true);}, Home: function() {handle.setFocus(0);}, End: function() {handle.setFocus(handle.length - 1);}, Enter: handle.pick, Tab: handle.pick, Esc: handle.close }; var custom = completion.options.customKeys; var ourMap = custom ? {} : baseMap; function addBinding(key, val) { var bound; if (typeof val != "string") bound = function(cm) { return val(cm, handle); }; // This mechanism is deprecated else if (baseMap.hasOwnProperty(val)) bound = baseMap[val]; else bound = val; ourMap[key] = bound; } if (custom) for (var key in custom) if (custom.hasOwnProperty(key)) addBinding(key, custom[key]); var extra = completion.options.extraKeys; if (extra) for (var key in extra) if (extra.hasOwnProperty(key)) addBinding(key, extra[key]); return ourMap; } function getHintElement(hintsElement, el) { while (el && el != hintsElement) { if (el.nodeName.toUpperCase() === "LI" && el.parentNode == hintsElement) return el; el = el.parentNode; } } function Widget(completion, data) { this.completion = completion; this.data = data; this.picked = false; var widget = this, cm = completion.cm; var hints = this.hints = document.createElement("ul"); hints.className = "CodeMirror-hints"; this.selectedHint = data.selectedHint || 0; var completions = data.list; for (var i = 0; i < completions.length; ++i) { var elt = hints.appendChild(document.createElement("li")), cur = completions[i]; var className = HINT_ELEMENT_CLASS + (i != this.selectedHint ? "" : " " + ACTIVE_HINT_ELEMENT_CLASS); if (cur.className != null) className = cur.className + " " + className; elt.className = className; if (cur.render) cur.render(elt, data, cur); else elt.appendChild(document.createTextNode(cur.displayText || getText(cur))); elt.hintId = i; } var pos = cm.cursorCoords(completion.options.alignWithWord ? data.from : null); var left = pos.left, top = pos.bottom, below = true; hints.style.left = left + "px"; hints.style.top = top + "px"; // If we're at the edge of the screen, then we want the menu to appear on the left of the cursor. var winW = window.innerWidth || Math.max(document.body.offsetWidth, document.documentElement.offsetWidth); var winH = window.innerHeight || Math.max(document.body.offsetHeight, document.documentElement.offsetHeight); (completion.options.container || document.body).appendChild(hints); var box = hints.getBoundingClientRect(), overlapY = box.bottom - winH; if (overlapY > 0) { var height = box.bottom - box.top, curTop = pos.top - (pos.bottom - box.top); if (curTop - height > 0) { // Fits above cursor hints.style.top = (top = pos.top - height) + "px"; below = false; } else if (height > winH) { hints.style.height = (winH - 5) + "px"; hints.style.top = (top = pos.bottom - box.top) + "px"; var cursor = cm.getCursor(); if (data.from.ch != cursor.ch) { pos = cm.cursorCoords(cursor); hints.style.left = (left = pos.left) + "px"; box = hints.getBoundingClientRect(); } } } var overlapX = box.right - winW; if (overlapX > 0) { if (box.right - box.left > winW) { hints.style.width = (winW - 5) + "px"; overlapX -= (box.right - box.left) - winW; } hints.style.left = (left = pos.left - overlapX) + "px"; } cm.addKeyMap(this.keyMap = buildKeyMap(completion, { moveFocus: function(n, avoidWrap) { widget.changeActive(widget.selectedHint + n, avoidWrap); }, setFocus: function(n) { widget.changeActive(n); }, menuSize: function() { return widget.screenAmount(); }, length: completions.length, close: function() { completion.close(); }, pick: function() { widget.pick(); }, data: data })); if (completion.options.closeOnUnfocus) { var closingOnBlur; cm.on("blur", this.onBlur = function() { closingOnBlur = setTimeout(function() { completion.close(); }, 100); }); cm.on("focus", this.onFocus = function() { clearTimeout(closingOnBlur); }); } var startScroll = cm.getScrollInfo(); cm.on("scroll", this.onScroll = function() { var curScroll = cm.getScrollInfo(), editor = cm.getWrapperElement().getBoundingClientRect(); var newTop = top + startScroll.top - curScroll.top; var point = newTop - (window.pageYOffset || (document.documentElement || document.body).scrollTop); if (!below) point += hints.offsetHeight; if (point <= editor.top || point >= editor.bottom) return completion.close(); hints.style.top = newTop + "px"; hints.style.left = (left + startScroll.left - curScroll.left) + "px"; }); CodeMirror.on(hints, "dblclick", function(e) { var t = getHintElement(hints, e.target || e.srcElement); if (t && t.hintId != null) {widget.changeActive(t.hintId); widget.pick();} }); CodeMirror.on(hints, "click", function(e) { var t = getHintElement(hints, e.target || e.srcElement); if (t && t.hintId != null) { widget.changeActive(t.hintId); if (completion.options.completeOnSingleClick) widget.pick(); } }); CodeMirror.on(hints, "mousedown", function() { setTimeout(function(){cm.focus();}, 20); }); CodeMirror.signal(data, "select", completions[0], hints.firstChild); return true; } Widget.prototype = { close: function() { if (this.completion.widget != this) return; this.completion.widget = null; this.hints.parentNode.removeChild(this.hints); this.completion.cm.removeKeyMap(this.keyMap); var cm = this.completion.cm; if (this.completion.options.closeOnUnfocus) { cm.off("blur", this.onBlur); cm.off("focus", this.onFocus); } cm.off("scroll", this.onScroll); }, disable: function() { this.completion.cm.removeKeyMap(this.keyMap); var widget = this; this.keyMap = {Enter: function() { widget.picked = true; }}; this.completion.cm.addKeyMap(this.keyMap); }, pick: function() { this.completion.pick(this.data, this.selectedHint); }, changeActive: function(i, avoidWrap) { if (i >= this.data.list.length) i = avoidWrap ? this.data.list.length - 1 : 0; else if (i < 0) i = avoidWrap ? 0 : this.data.list.length - 1; if (this.selectedHint == i) return; var node = this.hints.childNodes[this.selectedHint]; node.className = node.className.replace(" " + ACTIVE_HINT_ELEMENT_CLASS, ""); node = this.hints.childNodes[this.selectedHint = i]; node.className += " " + ACTIVE_HINT_ELEMENT_CLASS; if (node.offsetTop < this.hints.scrollTop) this.hints.scrollTop = node.offsetTop - 3; else if (node.offsetTop + node.offsetHeight > this.hints.scrollTop + this.hints.clientHeight) this.hints.scrollTop = node.offsetTop + node.offsetHeight - this.hints.clientHeight + 3; CodeMirror.signal(this.data, "select", this.data.list[this.selectedHint], node); }, screenAmount: function() { return Math.floor(this.hints.clientHeight / this.hints.firstChild.offsetHeight) || 1; } }; function applicableHelpers(cm, helpers) { if (!cm.somethingSelected()) return helpers var result = [] for (var i = 0; i < helpers.length; i++) if (helpers[i].supportsSelection) result.push(helpers[i]) return result } function fetchHints(hint, cm, options, callback) { if (hint.async) { hint(cm, callback, options) } else { var result = hint(cm, options) if (result && result.then) result.then(callback) else callback(result) } } function resolveAutoHints(cm, pos) { var helpers = cm.getHelpers(pos, "hint"), words if (helpers.length) { var resolved = function(cm, callback, options) { var app = applicableHelpers(cm, helpers); function run(i) { if (i == app.length) return callback(null) fetchHints(app[i], cm, options, function(result) { if (result && result.list.length > 0) callback(result) else run(i + 1) }) } run(0) } resolved.async = true resolved.supportsSelection = true return resolved } else if (words = cm.getHelper(cm.getCursor(), "hintWords")) { return function(cm) { return CodeMirror.hint.fromList(cm, {words: words}) } } else if (CodeMirror.hint.anyword) { return function(cm, options) { return CodeMirror.hint.anyword(cm, options) } } else { return function() {} } } CodeMirror.registerHelper("hint", "auto", { resolve: resolveAutoHints }); CodeMirror.registerHelper("hint", "fromList", function(cm, options) { var cur = cm.getCursor(), token = cm.getTokenAt(cur); var to = CodeMirror.Pos(cur.line, token.end); if (token.string && /\w/.test(token.string[token.string.length - 1])) { var term = token.string, from = CodeMirror.Pos(cur.line, token.start); } else { var term = "", from = to; } var found = []; for (var i = 0; i < options.words.length; i++) { var word = options.words[i]; if (word.slice(0, term.length) == term) found.push(word); } if (found.length) return {list: found, from: from, to: to}; }); CodeMirror.commands.autocomplete = CodeMirror.showHint; var defaultOptions = { hint: CodeMirror.hint.auto, completeSingle: true, alignWithWord: true, closeCharacters: /[\s()\[\]{};:>,]/, closeOnUnfocus: true, completeOnSingleClick: true, container: null, customKeys: null, extraKeys: null }; CodeMirror.defineOption("hintOptions", null); }); ================================================ FILE: js/show-hint2.js ================================================ // CodeMirror, copyright (c) by Marijn Haverbeke and others // Distributed under an MIT license: http://codemirror.net/LICENSE (function(mod) { if (typeof exports == "object" && typeof module == "object") // CommonJS mod(require("../../lib/codemirror")); else if (typeof define == "function" && define.amd) // AMD define(["../../lib/codemirror"], mod); else // Plain browser env mod(CodeMirror); })(function(CodeMirror) { "use strict"; var HINT_ELEMENT_CLASS = "CodeMirror-hint"; var ACTIVE_HINT_ELEMENT_CLASS = "CodeMirror-hint-active"; // This is the old interface, kept around for now to stay // backwards-compatible. CodeMirror.showHint = function(cm, getHints, options) { if (!getHints) return cm.showHint(options); if (options && options.async) getHints.async = true; var newOpts = {hint: getHints}; if (options) for (var prop in options) newOpts[prop] = options[prop]; return cm.showHint(newOpts); }; CodeMirror.defineExtension("showHint", function(options) { options = parseOptions(this, this.getCursor("start"), options); var selections = this.listSelections() if (selections.length > 1) return; // By default, don't allow completion when something is selected. // A hint function can have a `supportsSelection` property to // indicate that it can handle selections. if (this.somethingSelected()) { if (!options.hint.supportsSelection) return; // Don't try with cross-line selections for (var i = 0; i < selections.length; i++) if (selections[i].head.line != selections[i].anchor.line) return; } if (this.state.completionActive) { this.state.completionActive.close(); } var completion = this.state.completionActive = new Completion(this, options); if (!completion.options.hint) return; CodeMirror.signal(this, "startCompletion", this); completion.update(true); }); function Completion(cm, options) { this.cm = cm; this.options = options; this.widget = null; this.debounce = 0; this.tick = 0; this.startPos = this.cm.getCursor("start"); this.startLen = this.cm.getLine(this.startPos.line).length - this.cm.getSelection().length; var self = this; cm.on("cursorActivity", this.activityFunc = function() { self.cursorActivity(); }); } var requestAnimationFrame = window.requestAnimationFrame || function(fn) { return setTimeout(fn, 1000/60); }; var cancelAnimationFrame = window.cancelAnimationFrame || clearTimeout; Completion.prototype = { close: function() { if (!this.active()) return; this.cm.state.completionActive = null; this.tick = null; this.cm.off("cursorActivity", this.activityFunc); if (this.widget && this.data) CodeMirror.signal(this.data, "close"); if (this.widget) this.widget.close(); CodeMirror.signal(this.cm, "endCompletion", this.cm); }, active: function() { return this.cm.state.completionActive == this; }, pick: function(data, i) { var completion = data.list[i]; if (completion.hint) completion.hint(this.cm, data, completion); else this.cm.replaceRange(getText(completion), completion.from || data.from, completion.to || data.to, "complete"); CodeMirror.signal(data, "pick", completion); this.close(); }, cursorActivity: function() { if (this.debounce) { cancelAnimationFrame(this.debounce); this.debounce = 0; } var pos = this.cm.getCursor(), line = this.cm.getLine(pos.line); if (pos.line != this.startPos.line || line.length - pos.ch != this.startLen - this.startPos.ch || pos.ch < this.startPos.ch || this.cm.somethingSelected() || (pos.ch && this.options.closeCharacters.test(line.charAt(pos.ch - 1)))) { this.close(); } else { var self = this; this.debounce = requestAnimationFrame(function() {self.update();}); if (this.widget) this.widget.disable(); } }, update: function(first) { if (this.tick == null) return var self = this, myTick = ++this.tick fetchHints(this.options.hint, this.cm, this.options, function(data) { if (self.tick == myTick) self.finishUpdate(data, first) }) }, finishUpdate: function(data, first) { if (this.data) CodeMirror.signal(this.data, "update"); var picked = (this.widget && this.widget.picked) || (first && this.options.completeSingle); if (this.widget) { this.widget.close(); } if (data && this.data && isNewCompletion(this.data, data)) return; this.data = data; if (data && data.list.length) { if (picked && data.list.length == 1) { this.pick(data, 0); } else { this.widget = new Widget(this, data); CodeMirror.signal(data, "shown"); } } } }; function isNewCompletion(old, nw) { var moved = CodeMirror.cmpPos(nw.from, old.from) return moved > 0 && old.to.ch - old.from.ch != nw.to.ch - nw.from.ch } function parseOptions(cm, pos, options) { var editor = cm.options.hintOptions; var out = {}; for (var prop in defaultOptions) out[prop] = defaultOptions[prop]; if (editor) for (var prop in editor) if (editor[prop] !== undefined) out[prop] = editor[prop]; if (options) for (var prop in options) if (options[prop] !== undefined) out[prop] = options[prop]; if (out.hint.resolve) out.hint = out.hint.resolve(cm, pos) return out; } function getText(completion) { if (typeof completion == "string") return completion; else return completion.text; } function buildKeyMap(completion, handle) { var baseMap = { Up: function() {handle.moveFocus(-1);}, Down: function() {handle.moveFocus(1);}, PageUp: function() {handle.moveFocus(-handle.menuSize() + 1, true);}, PageDown: function() {handle.moveFocus(handle.menuSize() - 1, true);}, Home: function() {handle.setFocus(0);}, End: function() {handle.setFocus(handle.length - 1);}, Enter: handle.pick, Tab: handle.pick, Esc: handle.close }; var custom = completion.options.customKeys; var ourMap = custom ? {} : baseMap; function addBinding(key, val) { var bound; if (typeof val != "string") bound = function(cm) { return val(cm, handle); }; // This mechanism is deprecated else if (baseMap.hasOwnProperty(val)) bound = baseMap[val]; else bound = val; ourMap[key] = bound; } if (custom) for (var key in custom) if (custom.hasOwnProperty(key)) addBinding(key, custom[key]); var extra = completion.options.extraKeys; if (extra) for (var key in extra) if (extra.hasOwnProperty(key)) addBinding(key, extra[key]); return ourMap; } function getHintElement(hintsElement, el) { while (el && el != hintsElement) { if (el.nodeName.toUpperCase() === "LI" && el.parentNode == hintsElement) return el; el = el.parentNode; } } function Widget(completion, data) { this.completion = completion; this.data = data; this.picked = false; var widget = this, cm = completion.cm; var hints = this.hints = document.createElement("ul"); hints.className = "CodeMirror-hints"; this.selectedHint = data.selectedHint || 0; var completions = data.list; for (var i = 0; i < completions.length; ++i) { var elt = hints.appendChild(document.createElement("li")), cur = completions[i]; var className = HINT_ELEMENT_CLASS + (i != this.selectedHint ? "" : " " + ACTIVE_HINT_ELEMENT_CLASS); if (cur.className != null) className = cur.className + " " + className; elt.className = className; if (cur.render) cur.render(elt, data, cur); else elt.appendChild(document.createTextNode(cur.displayText || getText(cur))); elt.hintId = i; } var pos = cm.cursorCoords(completion.options.alignWithWord ? data.from : null); var left = pos.left, top = pos.bottom, below = true; hints.style.left = left + "px"; hints.style.top = top + "px"; // If we're at the edge of the screen, then we want the menu to appear on the left of the cursor. var winW = window.innerWidth || Math.max(document.body.offsetWidth, document.documentElement.offsetWidth); var winH = window.innerHeight || Math.max(document.body.offsetHeight, document.documentElement.offsetHeight); (completion.options.container || document.body).appendChild(hints); var box = hints.getBoundingClientRect(), overlapY = box.bottom - winH; var scrolls = hints.scrollHeight > hints.clientHeight + 1 var startScroll = cm.getScrollInfo(); if (overlapY > 0) { var height = box.bottom - box.top, curTop = pos.top - (pos.bottom - box.top); if (curTop - height > 0) { // Fits above cursor hints.style.top = (top = pos.top - height) + "px"; below = false; } else if (height > winH) { hints.style.height = (winH - 5) + "px"; hints.style.top = (top = pos.bottom - box.top) + "px"; var cursor = cm.getCursor(); if (data.from.ch != cursor.ch) { pos = cm.cursorCoords(cursor); hints.style.left = (left = pos.left) + "px"; box = hints.getBoundingClientRect(); } } } var overlapX = box.right - winW; if (overlapX > 0) { if (box.right - box.left > winW) { hints.style.width = (winW - 5) + "px"; overlapX -= (box.right - box.left) - winW; } hints.style.left = (left = pos.left - overlapX) + "px"; } if (scrolls) for (var node = hints.firstChild; node; node = node.nextSibling) node.style.paddingRight = cm.display.nativeBarWidth + "px" cm.addKeyMap(this.keyMap = buildKeyMap(completion, { moveFocus: function(n, avoidWrap) { widget.changeActive(widget.selectedHint + n, avoidWrap); }, setFocus: function(n) { widget.changeActive(n); }, menuSize: function() { return widget.screenAmount(); }, length: completions.length, close: function() { completion.close(); }, pick: function() { widget.pick(); }, data: data })); if (completion.options.closeOnUnfocus) { var closingOnBlur; cm.on("blur", this.onBlur = function() { closingOnBlur = setTimeout(function() { completion.close(); }, 100); }); cm.on("focus", this.onFocus = function() { clearTimeout(closingOnBlur); }); } cm.on("scroll", this.onScroll = function() { var curScroll = cm.getScrollInfo(), editor = cm.getWrapperElement().getBoundingClientRect(); var newTop = top + startScroll.top - curScroll.top; var point = newTop - (window.pageYOffset || (document.documentElement || document.body).scrollTop); if (!below) point += hints.offsetHeight; if (point <= editor.top || point >= editor.bottom) { return completion.close(); } hints.style.top = newTop + "px"; hints.style.left = (left + startScroll.left - curScroll.left) + "px"; }); CodeMirror.on(hints, "dblclick", function(e) { var t = getHintElement(hints, e.target || e.srcElement); if (t && t.hintId != null) {widget.changeActive(t.hintId); widget.pick();} }); CodeMirror.on(hints, "click", function(e) { var t = getHintElement(hints, e.target || e.srcElement); if (t && t.hintId != null) { widget.changeActive(t.hintId); if (completion.options.completeOnSingleClick) widget.pick(); } }); CodeMirror.on(hints, "mousedown", function() { setTimeout(function(){cm.focus();}, 20); }); CodeMirror.signal(data, "select", completions[0], hints.firstChild); return true; } Widget.prototype = { close: function() { if (this.completion.widget != this) return; this.completion.widget = null; this.hints.parentNode.removeChild(this.hints); this.completion.cm.removeKeyMap(this.keyMap); var cm = this.completion.cm; if (this.completion.options.closeOnUnfocus) { cm.off("blur", this.onBlur); cm.off("focus", this.onFocus); } cm.off("scroll", this.onScroll); }, disable: function() { this.completion.cm.removeKeyMap(this.keyMap); var widget = this; this.keyMap = {Enter: function() { widget.picked = true; }}; this.completion.cm.addKeyMap(this.keyMap); }, pick: function() { this.completion.pick(this.data, this.selectedHint); }, changeActive: function(i, avoidWrap) { if (i >= this.data.list.length) i = avoidWrap ? this.data.list.length - 1 : 0; else if (i < 0) i = avoidWrap ? 0 : this.data.list.length - 1; if (this.selectedHint == i) return; var node = this.hints.childNodes[this.selectedHint]; node.className = node.className.replace(" " + ACTIVE_HINT_ELEMENT_CLASS, ""); node = this.hints.childNodes[this.selectedHint = i]; node.className += " " + ACTIVE_HINT_ELEMENT_CLASS; if (node.offsetTop < this.hints.scrollTop) this.hints.scrollTop = node.offsetTop - 3; else if (node.offsetTop + node.offsetHeight > this.hints.scrollTop + this.hints.clientHeight) this.hints.scrollTop = node.offsetTop + node.offsetHeight - this.hints.clientHeight + 3; CodeMirror.signal(this.data, "select", this.data.list[this.selectedHint], node); }, screenAmount: function() { return Math.floor(this.hints.clientHeight / this.hints.firstChild.offsetHeight) || 1; } }; function applicableHelpers(cm, helpers) { if (!cm.somethingSelected()) return helpers var result = [] for (var i = 0; i < helpers.length; i++) if (helpers[i].supportsSelection) result.push(helpers[i]) return result } function fetchHints(hint, cm, options, callback) { if (hint.async) { hint(cm, callback, options) } else if (options.async) { hint(cm, callback, options); // Added by Magnus ! } else { var result = hint(cm, options) if (result && result.then) result.then(callback) else callback(result) } } function resolveAutoHints(cm, pos) { var helpers = cm.getHelpers(pos, "hint"), words if (helpers.length) { var resolved = function(cm, callback, options) { var app = applicableHelpers(cm, helpers); function run(i) { if (i == app.length) return callback(null) fetchHints(app[i], cm, options, function(result) { if (result && result.list.length > 0) callback(result) else run(i + 1) }) } run(0) } resolved.async = true resolved.supportsSelection = true return resolved } else if (words = cm.getHelper(cm.getCursor(), "hintWords")) { return function(cm) { return CodeMirror.hint.fromList(cm, {words: words}) } } else if (CodeMirror.hint.anyword) { return function(cm, options) { return CodeMirror.hint.anyword(cm, options) } } else { return function() {} } } CodeMirror.registerHelper("hint", "auto", { resolve: resolveAutoHints }); CodeMirror.registerHelper("hint", "fromList", function(cm, options) { var cur = cm.getCursor(), token = cm.getTokenAt(cur); var to = CodeMirror.Pos(cur.line, token.end); if (token.string && /\w/.test(token.string[token.string.length - 1])) { var term = token.string, from = CodeMirror.Pos(cur.line, token.start); } else { var term = "", from = to; } var found = []; for (var i = 0; i < options.words.length; i++) { var word = options.words[i]; if (word.slice(0, term.length) == term) found.push(word); } if (found.length) return {list: found, from: from, to: to}; }); CodeMirror.commands.autocomplete = CodeMirror.showHint; var defaultOptions = { hint: CodeMirror.hint.auto, completeSingle: true, alignWithWord: true, closeCharacters: /[\s()\[\]{};:>,]/, closeOnUnfocus: true, completeOnSingleClick: true, container: null, customKeys: null, extraKeys: null }; CodeMirror.defineOption("hintOptions", null); }); ================================================ FILE: mode/elm.js ================================================ // CodeMirror, copyright (c) by Marijn Haverbeke and others // Distributed under an MIT license: http://codemirror.net/LICENSE (function(mod) { if (typeof exports == "object" && typeof module == "object") // CommonJS mod(require("../../lib/codemirror")); else if (typeof define == "function" && define.amd) // AMD define(["../../lib/codemirror"], mod); else // Plain browser env mod(CodeMirror); })(function(CodeMirror) { "use strict"; CodeMirror.defineMode("elm", function() { function switchState(source, setState, f) { setState(f); return f(source, setState); } // These should all be Unicode extended, as per the Haskell 2010 report var smallRE = /[a-z_]/; var largeRE = /[A-Z]/; var digitRE = /[0-9]/; var hexitRE = /[0-9A-Fa-f]/; var octitRE = /[0-7]/; var idRE = /[a-z_A-Z0-9\']/; var symbolRE = /[-!#$%&*+.\/<=>?@\\^|~:\u03BB\u2192]/; var specialRE = /[(),;[\]`{}]/; var whiteCharRE = /[ \t\v\f]/; // newlines are handled in tokenizer function normal() { return function (source, setState) { if (source.eatWhile(whiteCharRE)) { return null; } var ch = source.next(); if (specialRE.test(ch)) { if (ch == '{' && source.eat('-')) { var t = "comment"; if (source.eat('#')) t = "meta"; return switchState(source, setState, ncomment(t, 1)); } return null; } if (ch == '\'') { if (source.eat('\\')) source.next(); // should handle other escapes here else source.next(); if (source.eat('\'')) return "string"; return "string"; // "error"; } if (ch == '"') { if(source.match('""')) { return switchState(source, setState, nstring(1)); } else { return switchState(source, setState, stringLiteral); } } if (largeRE.test(ch)) { source.eatWhile(idRE); if (source.eat('.')) return "qualifier"; return "variable-2"; } if (smallRE.test(ch)) { var isDef = source.pos === 1; source.eatWhile(idRE); return isDef ? "def" : "variable"; } if (digitRE.test(ch)) { if (ch == '0') { if (source.eat(/[xX]/)) { source.eatWhile(hexitRE); // should require at least 1 return "integer"; } if (source.eat(/[oO]/)) { source.eatWhile(octitRE); // should require at least 1 return "number"; } } source.eatWhile(digitRE); var t = "number"; if (source.eat('.')) { t = "number"; source.eatWhile(digitRE); // should require at least 1 } if (source.eat(/[eE]/)) { t = "number"; source.eat(/[-+]/); source.eatWhile(digitRE); // should require at least 1 } return t; } if (symbolRE.test(ch)) { if (ch == '-' && source.eat(/-/)) { source.eatWhile(/-/); if (!source.eat(symbolRE)) { source.skipToEnd(); return "comment"; } } source.eatWhile(symbolRE); return "builtin"; } return "error"; } } function ncomment(type, nest) { if (nest === 0) { return normal(); } return function(source, setState) { var currNest = nest; while (!source.eol()) { var ch = source.next(); if (ch == '{' && source.eat('-')) { ++currNest; } else if (ch == '-' && source.eat('}')) { --currNest; if (currNest === 0) { setState(normal()); return type; } } } setState(ncomment(type, currNest)); return type; } } function nstring(nest) { if (nest == 0) { return normal(); } return function(source, setState) { var currNest = nest; while (!source.eol()) { var ch = source.next(); if(ch == '"' && source.match('""')) { --currNest if(currNest == 0) { setState(normal()); return "string"; } } } setState(nstring(currNest)); return "string"; } } function stringLiteral(source, setState) { while (!source.eol()) { var ch = source.next(); if (ch == '"') { setState(normal()); return "string"; } if (ch == '\\') { if (source.eol() || source.eat(whiteCharRE)) { setState(stringGap); return "string"; } if (!source.eat('&')) source.next(); // should handle other escapes here } } setState(normal()); return "string"; // "error"; } function stringGap(source, setState) { if (source.eat('\\')) { return switchState(source, setState, stringLiteral); } source.next(); setState(normal()); return "string"; //"error"; } var wellKnownWords = (function() { var wkw = {}; var keywords = [ "case", "of", "as", "if", "then", "else", "let", "in", "infix", "infixl", "infixr", "type", "alias", "foreign", "port", "effect", "module", "where", "import", "exposing", "_", "..", "|", ":", "=", "\\", "->", "<-" // "\"", ]; for (var i = keywords.length; i--;) wkw[keywords[i]] = "keyword"; return wkw; })(); return { startState: function () { return { f: normal() }; }, copyState: function (s) { return { f: s.f }; }, token: function(stream, state) { var t = state.f(stream, function(s) { state.f = s; }); var w = stream.current(); return (wellKnownWords.hasOwnProperty(w)) ? wellKnownWords[w] : t; }, lineComment: "--", blockCommentStart: "{-", blockCommentEnd: "-}", fold: "indent" }; }); CodeMirror.defineMIME("text/x-elm", "elm"); }); ================================================ FILE: node/elm-client.js ================================================ var path = require("path"); var fs = require("fs"); var net = require("net"); var psTree = require("ps-tree"); var cp = require("child_process"); var wrench = require("wrench"); var os = require("os"); var chokidar = require("chokidar") var walker = require('fs-walk'); var temp = require("temp").track(); var spawn = require('cross-spawn'); var elmParser = require("./elmparser"); process.setMaxListeners(100); var elmGlobals = { repl: null, reactor: null, watcher: null }; /* Some polyfills */ if (!String.prototype.endsWith) { String.prototype.endsWith = function(searchString, position) { var subjectString = this.toString(); if (typeof position !== 'number' || !isFinite(position) || Math.floor(position) !== position || position > subjectString.length) { position = subjectString.length; } position -= searchString.length; var lastIndex = subjectString.lastIndexOf(searchString, position); return lastIndex !== -1 && lastIndex === position; }; } /* ----------- START CLIENT / BOOTSTRAP --------- */ // Not much useful can be done without packages, might as well try to insall by default // If already installed the overhead is neglible // Also elm-repl will delete elm-stuff on exit if not created before it's started ! doPackageInstall(); // Start parsing as early as possible startWatcher(); parseSourceFiles(); parseAllPackageSources(); startRepl( function (err) { console.error(err); handleClose(); }, function (out) { elmGlobals.repl.stdout.removeAllListeners("data"); elmGlobals.repl.stderr.removeAllListeners("data"); startReactor( function (err) { console.error (err); handleClose(); }, function (out) { elmGlobals.reactor.stderr.removeAllListeners("data"); elmGlobals.reactor.stdout.removeAllListeners("data"); startMessageListener(); }, process.cwd(), parseInt(process.argv[2]) ); }, process.cwd() ); function doPackageInstall() { try { cp.execSync("elm-package install --yes", {cwd: process.cwd()}); } catch (e) { console.error("Error running package install" + e); } } function startRepl(error, success, projectPath) { elmGlobals.repl = spawn("elm-repl", ["--interpreter", process.execPath ], {cwd: projectPath}); var outBuffer = ""; elmGlobals.repl.stdout.on("data", function(out) { outBuffer += out; if(outBuffer.indexOf(":help") > -1) { success(outBuffer); } }); elmGlobals.repl.stderr.on("data", function(err) { error(err.toString()); }); elmGlobals.repl.on("error", function(err) { console.log("error starting repl"); console.log(err); }); } function startReactor(error, success, projectPath, port) { elmGlobals.reactor = spawn("elm-reactor", ["--port=" + port], {cwd: projectPath}); var errBuff = ""; elmGlobals.reactor.stdout.on("data", function(out) { console.log("Reactor out: " + out); }); elmGlobals.reactor.stderr.on("data", function(err) { errBuff += err; if(errBuff.indexOf("Listening") > -1) { success(errBuff); } if(errBuff.indexOf("Error on startup") > -1) { error(errBuff); } }); elmGlobals.reactor.on("error", function(err) { console.error("Reactor err event: " + err); }); } function startMessageListener() { send([1, "elm.client.connected", []]); // notify lt we`re ready to receive messages process.on("message", function (msg) { var cb = msg.cb; var cmd = msg.command; var data = msg.data; try { switch (cmd) { case "client.close": handleClose(); break; case "editor.elm.ast.passthrough": handleAstPassThrough(cb, data); break; case "elm.reload.ast": handleReloadAst(cb); break; case "editor.elm.ast.parsetext": handleParseEditorText(cb, data); break; case "editor.elm.lint": handleLint(cb, data); break; case "editor.elm.make": handleMake(cb, data); break; case "editor.elm.gendoc": handleGendoc(cb, data); break; case "editor.eval.elm": handleEval(cb, data); break; case "elm.repl.restart": handleReplRestart(cb); break; case "docs.elm.search": handleDocsSearch(cb, data); break; case "elm.test": handleTest(cb, data); break; case "elm.test.suite": handleTestSuite(cb, data); break; } } catch (ex) { console.error("Error in elm client message listener for command: " + cmd); console.error(ex); handleClose(); } }); } function startWatcher() { var watcher = chokidar.watch(['elm-package.json', 'elm-stuff/exact-dependencies.json', '**/*.elm'], { cwd: process.cwd(), persistent: true, ignoreInitial: false, //ignored: ['elm-stuff/**'], // need to find a robust way to handle these ! followSymlinks: false, atomic: false }); /* concers to handle - Package deleted -> Just report a delete event (on .elm files) and let client deal with it. - Package added -> Only listen for moved directory under elm-stuff, parse package.json and only parse src directories for that package - if not under elm-stuff, check if source file (remember to use latest elm-package.json) - if source file and event moved, need to stat if file is present or not to decide if add or remove ! - On directory move stat if exists to notify of directory delete or directory add (on add parse all elm files... not very efficient though) */ watcher.on("raw", function(event, file, details) { var relFile = file ? path.relative(process.cwd(), file) : null; var sourceDirs = getSourceDirs(process.cwd()); // chokidar or whatever it's using underneath seems to get this wrong. if (file && event === "modified" && !fileExists(file)) { return; // phony change event when } if(relFile === "elm-stuff/exact-dependencies.json") { if ( event === "modified") { parseAllPackageSources(); } if (event === "deleted" && !fileExists(file)) { sendAstMsg({ type: "packagesDeleted" }); } } if (file && isSourceFile(sourceDirs, file) && event === "modified") { parseAndSend(file); } if (file && isSourceFile(sourceDirs, file) && event === "deleted") { sendAstMsg({ file: file, type: "deleted" }); } if (file && isSourceFile(sourceDirs, file) && event === "moved") { if(fileExists(file)) { parseAndSend(file); } else { sendAstMsg({ file: file, type: "deleted" }); } } }); elmGlobals.watcher = watcher; } function parseSourceFiles() { var sourceDirs = getSourceDirs(process.cwd()); sourceDirs.forEach(function (d) { walker.files(path.join(process.cwd(), d), function (basedir, filename, stat, next) { if (path.extname(filename) === ".elm" && !(basedir.startsWith(path.join(process.cwd(), "elm-stuff"))) && !(basedir.startsWith(path.join(process.cwd(), "test"))) //(basedir.toString().indexOf("elm-stuff") === -1) ) { parseAndSend(path.join(basedir, filename)); } next(); }); }); } function parseAllPackageSources() { var deps = getProjectDeps(process.cwd()); deps.forEach(function (dep) { var packageDir = path.join(process.cwd(), "elm-stuff/packages", dep.name, dep.version); parsePackageSources({ packageDir: packageDir, name: dep.name, version: dep.version }); }); } function parsePackageSources(package) { var sourceDirs = getSourceDirs(package.packageDir); sourceDirs.forEach(function (d) { walker.files(path.join(package.packageDir, d), function (basedir, filename, stat, next) { if (path.extname(filename) === ".elm") { parseAndSendPackageSource(package, path.join(basedir, filename)); } next(); }); }); } function getProjectDeps(projectDir) { var packages = []; try { var depsPath = path.join(projectDir, "elm-stuff/exact-dependencies.json"); var deps = JSON.parse(fs.readFileSync(depsPath).toString()); var packageJsonPath = path.join(projectDir, "elm-package.json"); var packageJson = JSON.parse(fs.readFileSync(packageJsonPath).toString()); var exposedPackages = Object.keys(packageJson["dependencies"]); packages = Object.keys(deps).map(function(packageName) { return { name: packageName, version: deps[packageName] }; }).filter(function(pck) { return exposedPackages.indexOf(pck.name) > -1; }); } catch (e) { console.log("Failed to get projectDeps: " + e.toString()); } return packages; } function parseAndSend(file) { try { var code = fs.readFileSync(file).toString(); var start = new Date().getTime(); if (code.length > 0) { var ast = elmParser.parse(code); // console.log("Parsed sourcefile (" + ((new Date().getTime()) - start) + " ms) - " + file ); sendAstMsg({ file: file, type: "parsed", ast: ast }); } } catch (e) { sendAstMsg({ file: file, type: "parseError", error: e }); } } function parseAndSendPackageSource(package, file) { try { var exposedModules = getExposedModules(package.packageDir); var shouldParse = exposedModules.map (function (mod) { return mod.replace(/\./g, path.sep) + ".elm"; }).find(function (v) { return file.endsWith(v); }); if(shouldParse) { var ast = elmParser.parse(fs.readFileSync(file).toString()); sendAstMsg({ file: file, type: "parsed", ast: ast, package: package }); } } catch(e) { console.error("ERROR parsing package source: " + file + "\n" + e.toString()); } } function sendAstMsg(msg) { send([1, "elm.ast.update", msg]); } function getSourceDirs (projectDir) { var jsonPath = path.join(projectDir, "elm-package.json"); var sourceDirs = []; try { var json = JSON.parse(fs.readFileSync(jsonPath).toString()); sourceDirs = json["source-directories"]; } catch(e) { console.error("ERROR getting sourcedirs for: " + jsonPath + "\n" + e.toString()); } return sourceDirs; } function getExposedModules (projectDir) { var jsonPath = path.join(projectDir, "elm-package.json"); var modules = []; try { var json = JSON.parse(fs.readFileSync(jsonPath).toString()); modules = json["exposed-modules"]; } catch(e) { console.log("ERROR getting exposed modules for: " + jsonPath + "\n" + e.toString()); } return modules; } function fileExists(file) { var stat = null; try { stat = fs.statSync(file); } catch (e) {} return stat ? true : false; } function isSourceFile(sourceDirs, file) { if (path.extname(file) !== ".elm") { return false; } var hits = sourceDirs.map(function(dir) { return path.resolve(process.cwd(), dir); }).filter(function (d) { return file.startsWith(d); }); return hits.length > 0; } /* ----------- HANDLER RELATED FUNCTIONS --------- */ // For ast operations that executes right after connecting // NoOp, just passes back and trigger appropriate behavior function handleAstPassThrough(clientId, msg) { send([clientId, msg.target, msg.data]); } function handleReloadAst(clientId) { doPackageInstall(); parseSourceFiles(); parseAllPackageSources(); send([clientId, "elm.ast.reload.started", null]); } function handleParseEditorText(clientId, msg) { try { var start = new Date().getTime(); var ast = elmParser.parse(msg.code); // console.log("Parsed editor contents in (" + ((new Date().getTime()) - start) + " ms) "); send([clientId, "editor.elm.ast.parsetext.result", {ast: ast}]); } catch(e) { send([clientId, "editor.elm.ast.parsetext.result", {error: e}]); } } function handleReplRestart(clientId) { elmGlobals.repl.stdout.removeAllListeners("data"); elmGlobals.repl.stderr.removeAllListeners("data"); elmGlobals.repl.kill(); startRepl( function (err) { console.error(err); handleClose(); }, function (out) { send([clientId, "elm.repl.restart.res", "hopefully ok..."]); }, process.cwd() ); } function idxReplTerminator(x) { return x.lastIndexOf(os.EOL + ">"); } function maybeRemoveLastLine (x) { var idx = idxReplTerminator(x); if( idx > -1) { return x.substring(0, idx); } else { return x; } } function stripReplNewLines(x) { var arr = x.split(" "); var idx = arr.findIndex(function(v, i, a) { return v !== "" && v !== "|"; }); return idx > -1 ? arr.slice(idx).join(" ") : ""; } function handleEval(clientId, msg) { var meta = msg.meta; var errBuff = ""; var outBuff = ""; var onOut = function(data) { if(errBuff.length > 0) { send([clientId, "editor.elm.eval.err", {result: errBuff, meta: meta}]); return; } outBuff += stripReplNewLines(data.toString()); if (outBuff.trim() === ">") { send([clientId, "editor.elm.eval.res", {result: "✓", meta: meta}]); return; } var idx = idxReplTerminator(outBuff); if (idx >= 0) { var res = maybeRemoveLastLine(outBuff); if (res.length > 0) { send([clientId, "editor.elm.eval.res", {result: res, meta: meta}]); } else { send([clientId, "editor.elm.eval.res", {result: "✓", meta: meta}]); } } }; var onErr = function(data) { errBuff += data.toString(); }; elmGlobals.repl.stdout.removeAllListeners("data"); elmGlobals.repl.stderr.removeAllListeners("data"); elmGlobals.repl.stdout.on("data", onOut); elmGlobals.repl.stderr.on("data", onErr); elmGlobals.repl.stdin.write(msg.code.replace(/\n/g, "\\\n") + "\n"); } function parseMakeResults(data) { var results = data.split("\n") .filter(function(s) { return s.indexOf("[{") === 0;}) .map(function (item) { return JSON.parse(item); }) if (results.length > 0) { results = results.reduce(function(a, b) {return a.concat(b);}); } return results; } function send(msg) { process.send(msg); } function handleLint(clientId, msg) { var res = spawn.sync("elm-make", [msg.path, "--warn", "--yes", "--report=json", "--output=/dev/null"], {cwd: process.cwd()}); var err = res.output[2] + ""; if (err) { send([clientId, "elm.make.err", err]); } else { var lintResults = parseMakeResults(res.output[1].toString()); send([clientId, msg.handler, lintResults]); } } function lowerFirstLetter(str) { return str.charAt(0).toLowerCase() + str.slice(1); } function inferOutputFile(filePath) { var parsed = path.parse(filePath); parsed.ext = "js"; parsed.base = lowerFirstLetter(parsed.name) + ".js"; parsed.name = lowerFirstLetter(parsed.name); return path.format(parsed); } function handleMake(clientId, msg) { if(!msg.path) { send([clientId, "elm.make.res", []]); return; } var outputFile = msg.outputFile || inferOutputFile(msg.path); var res = spawn.sync("elm-make", [msg.path, "--warn", "--yes", "--report=json", "--output=" + outputFile], {cwd: process.cwd()}); var err = res.output[2] + ""; if (err.length > 1) { send([clientId, "elm.make.err", err]); } else { var results = { outputFile: outputFile, res: parseMakeResults(res.output[1].toString()) }; send([clientId, "elm.make.res", results]); } } function handleGendoc(clientId, msg) { var res = spawn.sync("elm-make", [msg.path, "--yes", "--docs=elm-stuff/docs.json", "--output=/dev/null"], {cwd: process.cwd()}); var err = res.output[2] + ""; if (err) { send([clientId, "elm.make.err", err]); } else { var docFile = path.join(process.cwd(), "elm-stuff", "docs.json"); var docResults = fs.readFileSync(docFile, "utf-8"); //var docResults = res.output[1].toString(); send([clientId, "elm.gendoc.res", docResults]); } } function handleDocsSearch(clientId, msg) { // workaround, just pass the msg back, will perform search client side send([clientId, "doc.search.results", msg]) } function handleTest(clientId, msg) { var elmTest = cp.fork("/Users/mrundberget/projects/node-test-runner/bin/elm-test", [msg.file, "--report=json"], {cwd: process.cwd(), silent: true}); elmTest.stdout.on("data", function(out) { //console.log("Test out: " + out); try { var rawMessages = out.toString().split("\n").filter(function(s) { return s.indexOf("{\"event") === 0;}); rawMessages.forEach (function (rawMessage) { var testMsg = JSON.parse(rawMessage); send([clientId, "elm.test.result", testMsg]) }); } catch (e) { console.error("Error parsing: " + out); console.error(e); } }); elmTest.stderr.on("data", function(err) { console.error("Error stuff: " + err) }); elmTest.on("error", function(err) { console.log("Elm test error event: "); console.log(err); }); elmTest.on("exit", function(exitCode) { console.log("Exit test process with exitCode: " + exitCode); }); } function handleTestSuite(clientId, msg) { var testModuleName = msg.module; var suite = msg.suite; var suiteFile = path.join(process.cwd(), "temp-" + testModuleName + ".elm"); var seed = msg.seed ? msg.seed : null; var evalElmCode = function (compiledCode, finishedCb) { var Elm = function(module) { eval(compiledCode); return module.exports; }({}); // TODO: hnndle case if Elm is undefined var testModule = Elm[testModuleName]; // Apply Node polyfills as necessary. var window = {Date: Date, addEventListener: function() {}, removeEventListener: function() {}}; var document = {body: {}, createTextNode: function() {}}; if (typeof XMLHttpRequest === 'undefined') { XMLHttpRequest = function() { return { addEventListener: function() {}, open: function() {}, send: function() {} }; }; } if (typeof FormData === 'undefined') { FormData = function () { this._data = []; }; FormData.prototype.append = function () { this._data.push(Array.prototype.slice.call(arguments)); }; } var app = testModule.worker({seed: seed, report: "json"}); app.ports.emit.subscribe(function(msg) { var msgType = msg[0]; var data = msg[1]; send([clientId, "elm.test.result", data.message]); if(msgType === "FINISHED") { finishedCb() } }); }; var cleanUp = function() { fs.unlink(suiteFile, function(err) { if (err) { console.error("Error deleting temp test suite file: " + suiteFile + " Error: " + err); } }); }; fs.writeFileSync(suiteFile, suite, {encoding: "utf8"}); // TODO: Error handling temp.open({prefix: 'elm_test_', suffix: '.js'}, function (err, info) { var res = spawn.sync("elm-make", [suiteFile, "--yes", "--output=" + info.path], {cwd: process.cwd()}); var err = res.output[2] + ""; if(err.length > 0) { send([clientId, "elm.test.error", {category: "compile", message: err.toString()}]) console.error("Error from elm-make: " + err); cleanUp(); } else { evalElmCode(fs.readFileSync(info.path, {encoding: "utf8"}), cleanUp); } }); } /* Kill any externaly spawned children Useful mostly for OS/X (reactor process) */ function killExternalChildren(pid, cb) { var callback = cb || function () {}; psTree(pid, function (err, children) { [pid].concat( children.map(function (p) { return p.PID; }) ).forEach(function (tpid) { try { process.kill(tpid, "SIGKILL") } catch (ex) { } }); callback(); }); } function handleClose() { if(elmGlobals.watcher) { elmGlobals.watcher.close(); } if(os.platform() !== "darwin") { process.exit(0); } else { if (elmGlobals.reactor) { killExternalChildren(elmGlobals.reactor.pid, null); // Ugly, but couldn`t figure out a better way to ensure child killing completed before exit setTimeout(function () { process.exit(0); }, 100); } else { process.exit(0); } } } process.on('uncaughtException', function(err) { console.error("Unhandled error in elm-light project node process: " + err); }); //setTimeout(function() {handleClose();}, 30000); ================================================ FILE: node/elmparser.js ================================================ module.exports = (function() { "use strict"; /* * Generated by PEG.js 0.9.0. * * http://pegjs.org/ */ function peg$subclass(child, parent) { function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); } function peg$SyntaxError(message, expected, found, location) { this.message = message; this.expected = expected; this.found = found; this.location = location; this.name = "SyntaxError"; if (typeof Error.captureStackTrace === "function") { Error.captureStackTrace(this, peg$SyntaxError); } } peg$subclass(peg$SyntaxError, Error); function peg$parse(input) { var options = arguments.length > 1 ? arguments[1] : {}, parser = this, peg$FAILED = {}, peg$startRuleFunctions = { start: peg$parsestart, headerOnly: peg$parseheaderOnly }, peg$startRuleFunction = peg$parsestart, peg$c0 = function(module) { return module; }, peg$c1 = function(declaration, d) { return d}, peg$c2 = function(declaration) {return null}, peg$c3 = function(declaration, moduleDoc, imports, toplevel) { return { moduleDeclaration: declaration ? declaration[0] : null, doc: moduleDoc, imports: imports || [], declarations: toplevel || [] } }, peg$c4 = { type: "any", description: "any character" }, peg$c5 = function(declaration, moduleDoc, imports) { return { moduleDeclaration: declaration, doc: moduleDoc, imports: imports || [] } }, peg$c6 = "effect", peg$c7 = { type: "literal", value: "effect", description: "\"effect\"" }, peg$c8 = "port", peg$c9 = { type: "literal", value: "port", description: "\"port\"" }, peg$c10 = function(type) { return type; }, peg$c11 = "module", peg$c12 = { type: "literal", value: "module", description: "\"module\"" }, peg$c13 = function(type, name, exposing) { return { type: (type || "") + " module".trim(), value: name, exposing: exposing, location: location() }; }, peg$c14 = "where", peg$c15 = { type: "literal", value: "where", description: "\"where\"" }, peg$c16 = "{", peg$c17 = { type: "literal", value: "{", description: "\"{\"" }, peg$c18 = "}", peg$c19 = { type: "literal", value: "}", description: "\"}\"" }, peg$c20 = function(first, imp) {return imp}, peg$c21 = function(first, rest) { var imps = [first].concat(rest); var start = first.location.start; var end = imps[imps.length - 1].location.end; return { type: "imports", imports: imps, location: {start: start, end: end} } }, peg$c22 = "import", peg$c23 = { type: "literal", value: "import", description: "\"import\"" }, peg$c24 = "as", peg$c25 = { type: "literal", value: "as", description: "\"as\"" }, peg$c26 = function(module, id) { return id}, peg$c27 = function(module, alias, exp) {return exp;}, peg$c28 = function(module, alias, exposing) { return { type: "import", value: module, alias: alias, exposing: exposing, location: location() }; }, peg$c29 = "exposing", peg$c30 = { type: "literal", value: "exposing", description: "\"exposing\"" }, peg$c31 = "(", peg$c32 = { type: "literal", value: "(", description: "\"(\"" }, peg$c33 = ")", peg$c34 = { type: "literal", value: ")", description: "\")\"" }, peg$c35 = function(exports) { return { type: "exposing", exports: exports, location: location() }; }, peg$c36 = "..", peg$c37 = { type: "literal", value: "..", description: "\"..\"" }, peg$c38 = function() { return { type: "exports", exports:[{ type: "exposeAll"}], location: location() }; }, peg$c39 = ",", peg$c40 = { type: "literal", value: ",", description: "\",\"" }, peg$c41 = function(first, e) {return e}, peg$c42 = function(first, rest) { return { type: "exports", exports: [first].concat(rest), location: location(), } }, peg$c43 = function(name, exps) {return exps;}, peg$c44 = function(name, subexps) { return { type: "adt", value: name, exports: subexps } }, peg$c45 = function(expAll) { return expAll; }, peg$c46 = function(first, s) {return s}, peg$c47 = function(first, rest) { return { type: "exports", exports: [first].concat(rest), location: location() } }, peg$c48 = function(name) { return { type: "adtsub", value: name } }, peg$c49 = function(doc, decl) {var retVal=decl; retVal["doc"] = doc; return retVal }, peg$c50 = function(first, doc, decl) {var retVal=decl; retVal["doc"] = doc; return retVal }, peg$c51 = function(first, rest) { return [first].concat(rest); }, peg$c52 = function(decl) { decl.location = location() return decl; }, peg$c53 = function(d) { return d}, peg$c54 = function() {return null}, peg$c55 = "type", peg$c56 = { type: "literal", value: "type", description: "\"type\"" }, peg$c57 = "alias", peg$c58 = { type: "literal", value: "alias", description: "\"alias\"" }, peg$c59 = function(name, p) {return p; }, peg$c60 = "=", peg$c61 = { type: "literal", value: "=", description: "\"=\"" }, peg$c62 = function(name, params, type) { return { type: "typeAliasDecl", value: name, params: params, tipe : type //expr: exp } }, peg$c63 = function(name, params, type, tail) { return { type: "typeAliasDecl", value: name, params: params, tipe : { type : "typeFun", signature: [type].concat(tail.signature) } } }, peg$c64 = function(name, params, adtDefs) { return { type: "typeDecl", value: name, params: params, adtDefs: adtDefs //expr: expr } }, peg$c65 = "|", peg$c66 = { type: "literal", value: "|", description: "\"|\"" }, peg$c67 = function(first, a) {return a;}, peg$c68 = function(first, rest) { return [first].concat(rest); }, peg$c69 = function(name, t) {return t}, peg$c70 = function(name, first, t) {return t;}, peg$c71 = function(name, first, rest) { return { type: "adtDef", value: name, params: first ? [first].concat(rest) : [], paramsRaw: first ? name + " : " + text().replace(name, "").trim() : "", location: location() } }, peg$c72 = function(ann, val) { val["annotation"] = ann; return val; }, peg$c73 = function(val) { val["annotation"] = null; return val; }, peg$c74 = function(id, first, p) { return p}, peg$c75 = function(id, first, rest) {return [first].concat(rest); }, peg$c76 = function(id, patterns, expr) { return { type: "nameDef", value: id, patterns: patterns || [] //expr: expr } }, peg$c77 = function(binOp, first, p) {return p}, peg$c78 = function(binOp, first, rest) {return [first].concat(rest); }, peg$c79 = function(binOp, patterns, expr) { return { type: "binOpDef", value: binOp.value, patterns: patterns || [] //expr: expr } }, peg$c80 = ":", peg$c81 = { type: "literal", value: ":", description: "\":\"" }, peg$c82 = "->", peg$c83 = { type: "literal", value: "->", description: "\"->\"" }, peg$c84 = function(ref, first, t) { return t;}, peg$c85 = function(ref, first, rest) {return {raw: text(), signature: [first].concat(rest) }}, peg$c86 = function(ref, sig) { var tipe = ref.type === "binOpRef" ? "binOpDef" : "nameDef"; return { type: tipe, value: ref.value, signature: sig.signature, signatureRaw: text(), signatureRawSansName: sig.raw, location: location() } }, peg$c87 = "infixr", peg$c88 = { type: "literal", value: "infixr", description: "\"infixr\"" }, peg$c89 = "infixl", peg$c90 = { type: "literal", value: "infixl", description: "\"infixl\"" }, peg$c91 = "infix", peg$c92 = { type: "literal", value: "infix", description: "\"infix\"" }, peg$c93 = function(fix, fixity, op) { return { type: "infixDef", value: fix, fixity: fixity, op: op } }, peg$c94 = "`", peg$c95 = { type: "literal", value: "`", description: "\"`\"" }, peg$c96 = function(op) { return { type: "infixOp", value: op } }, peg$c97 = function(ann) { return { type: "portDef", value: ann.value, signature: ann.signature, signatureRaw: text(), signatureRawSansName: ann.signatureRawSansName } }, peg$c98 = function(first, t) { return t; }, peg$c99 = function(first, rest) { return { type: "typeTuple", elements: [first].concat(rest) } }, peg$c100 = function(first, tail) { return { type: "typeFun", signature: [first].concat(tail.signature) } }, peg$c101 = function(t) { return t; }, peg$c102 = function(value) { return { type: "typeBracket", element: value } }, peg$c103 = function(first, t) { return t;}, peg$c104 = function(first, rest) { return { type: "funTail", signature: [first].concat(rest) } }, peg$c105 = function() { return { type: "unit" } }, peg$c106 = function(val, first, t) {return t}, peg$c107 = function(val, first, rest) {return [first].concat(rest); }, peg$c108 = function(val, params) { return { type: "typeAdt", value: val, params: params || [] } }, peg$c109 = function(val) { return { type: "typeVar", value: val } }, peg$c110 = function(first, r) { return r; }, peg$c111 = function(first, rest) { return [first].concat(rest) }, peg$c112 = function(rs) { return { type: "typeRec", fieldDefs: rs || [], location: location(), signatureRaw: text() } }, peg$c113 = function(id, first, r) { return r; }, peg$c114 = function(id, first, rest) { return [first].concat(rest) }, peg$c115 = function(id, rs) { return { type: "typeRecExt", param: id, fieldDefs: rs || [] } }, peg$c116 = function(id, first, tail) { var fun = { type: "typeFun", signature: [first].concat(tail.signature) } return { type: "typeRecBind", name: id, tipe: fun, location: location(), signatureRaw: text() }; }, peg$c117 = function(id, type) { return { type: "typeRecBind", name: id, tipe: type, location: location(), signatureRaw: text() } }, peg$c118 = function(value) { return { type: "patternBracket", pattern: value } }, peg$c119 = function(first, p) { return p; }, peg$c120 = function(first, rest) { return { type: "patternTuple", patterns: [first].concat(rest) } }, peg$c121 = function(p, alias) { return { type: "patternTupleElem", value: p, alias: alias } }, peg$c122 = function(p, alias) { return { type: "pattern", value: p, alias: alias } }, peg$c123 = function(id) {return id}, peg$c124 = "[", peg$c125 = { type: "literal", value: "[", description: "\"[\"" }, peg$c126 = "]", peg$c127 = { type: "literal", value: "]", description: "\"]\"" }, peg$c128 = function(first, rest) { return { type: "patternList", patterns: [first].concat(rest) } }, peg$c129 = function(ps) { return { type: "patternRec", patterns: ps || [] } }, peg$c130 = function(id) { return { type: "variable", value: id } }, peg$c131 = function(adt, p) {return p}, peg$c132 = function(adt, vars) { return { type: "patternAdt", value: adt, variables: vars } }, peg$c133 = "_", peg$c134 = { type: "literal", value: "_", description: "\"_\"" }, peg$c135 = function() {return {type: "unnamed"}}, peg$c136 = "--", peg$c137 = { type: "literal", value: "--", description: "\"--\"" }, peg$c138 = function(dill) {return text()}, peg$c139 = function(id) { return { type: "ref", value: id } }, peg$c140 = ".", peg$c141 = { type: "literal", value: ".", description: "\".\"" }, peg$c142 = function(first, rest) { return first + rest.map(function (sub) { return sub.join(""); }).join(""); }, peg$c143 = function(first, rest) { return first + rest.join(""); }, peg$c144 = function(up, id) { return { type: "prefixedId", prefix: up, id: id } }, peg$c145 = function(a) {return a}, peg$c146 = { type: "other", description: "comment" }, peg$c147 = "{-|", peg$c148 = { type: "literal", value: "{-|", description: "\"{-|\"" }, peg$c149 = "-}", peg$c150 = { type: "literal", value: "-}", description: "\"-}\"" }, peg$c151 = function(d) {return "{-" + d + "-}"}, peg$c152 = function(m) {return m}, peg$c153 = function(s) {return s}, peg$c154 = function(char) {return char;}, peg$c155 = function(commentChars) {return commentChars.join("");}, peg$c156 = "{-", peg$c157 = { type: "literal", value: "{-", description: "\"{-\"" }, peg$c158 = function(d) {return d}, peg$c159 = function(h) {return h}, peg$c160 = function(chars) {return "{-" + chars.join("") + "}"}, peg$c161 = "\"\"\"", peg$c162 = { type: "literal", value: "\"\"\"", description: "\"\\\"\\\"\\\"\"" }, peg$c163 = "if", peg$c164 = { type: "literal", value: "if", description: "\"if\"" }, peg$c165 = "then", peg$c166 = { type: "literal", value: "then", description: "\"then\"" }, peg$c167 = "else", peg$c168 = { type: "literal", value: "else", description: "\"else\"" }, peg$c169 = "let", peg$c170 = { type: "literal", value: "let", description: "\"let\"" }, peg$c171 = "in", peg$c172 = { type: "literal", value: "in", description: "\"in\"" }, peg$c173 = "case", peg$c174 = { type: "literal", value: "case", description: "\"case\"" }, peg$c175 = "of", peg$c176 = { type: "literal", value: "of", description: "\"of\"" }, peg$c177 = "'", peg$c178 = { type: "literal", value: "'", description: "\"'\"" }, peg$c179 = /^[A-Z]/, peg$c180 = { type: "class", value: "[A-Z]", description: "[A-Z]" }, peg$c181 = /^[a-z]/, peg$c182 = { type: "class", value: "[a-z]", description: "[a-z]" }, peg$c183 = /^[0-9]/, peg$c184 = { type: "class", value: "[0-9]", description: "[0-9]" }, peg$c185 = function(binOp) { return { type: "binOpRef", value: binOp.value } }, peg$c186 = function(first, rest) { var binOp = first + rest.join(""); validateBinOp(binOp); return { type: "binOp", value: binOp } }, peg$c187 = "+", peg$c188 = { type: "literal", value: "+", description: "\"+\"" }, peg$c189 = "-", peg$c190 = { type: "literal", value: "-", description: "\"-\"" }, peg$c191 = "*", peg$c192 = { type: "literal", value: "*", description: "\"*\"" }, peg$c193 = "&", peg$c194 = { type: "literal", value: "&", description: "\"&\"" }, peg$c195 = "%", peg$c196 = { type: "literal", value: "%", description: "\"%\"" }, peg$c197 = "^", peg$c198 = { type: "literal", value: "^", description: "\"^\"" }, peg$c199 = "<", peg$c200 = { type: "literal", value: "<", description: "\"<\"" }, peg$c201 = ">", peg$c202 = { type: "literal", value: ">", description: "\">\"" }, peg$c203 = "$", peg$c204 = { type: "literal", value: "$", description: "\"$\"" }, peg$c205 = "@", peg$c206 = { type: "literal", value: "@", description: "\"@\"" }, peg$c207 = "#", peg$c208 = { type: "literal", value: "#", description: "\"#\"" }, peg$c209 = "/", peg$c210 = { type: "literal", value: "/", description: "\"/\"" }, peg$c211 = "?", peg$c212 = { type: "literal", value: "?", description: "\"?\"" }, peg$c213 = "~", peg$c214 = { type: "literal", value: "~", description: "\"~\"" }, peg$c215 = "!", peg$c216 = { type: "literal", value: "!", description: "\"!\"" }, peg$c217 = /^[\n\r\u2028\u2029]/, peg$c218 = { type: "class", value: "[\\n\\r\\u2028\\u2029]", description: "[\\n\\r\\u2028\\u2029]" }, peg$c219 = { type: "other", description: "end of line" }, peg$c220 = "\n", peg$c221 = { type: "literal", value: "\n", description: "\"\\n\"" }, peg$c222 = "\r\n", peg$c223 = { type: "literal", value: "\r\n", description: "\"\\r\\n\"" }, peg$c224 = "\r", peg$c225 = { type: "literal", value: "\r", description: "\"\\r\"" }, peg$c226 = "\u2028", peg$c227 = { type: "literal", value: "\u2028", description: "\"\\u2028\"" }, peg$c228 = "\u2029", peg$c229 = { type: "literal", value: "\u2029", description: "\"\\u2029\"" }, peg$c230 = { type: "other", description: "newline" }, peg$c231 = { type: "other", description: "whitespace" }, peg$c232 = "\t", peg$c233 = { type: "literal", value: "\t", description: "\"\\t\"" }, peg$c234 = "\x0B", peg$c235 = { type: "literal", value: "\x0B", description: "\"\\x0B\"" }, peg$c236 = "\f", peg$c237 = { type: "literal", value: "\f", description: "\"\\f\"" }, peg$c238 = " ", peg$c239 = { type: "literal", value: " ", description: "\" \"" }, peg$c240 = "\xA0", peg$c241 = { type: "literal", value: "\xA0", description: "\"\\xA0\"" }, peg$c242 = "\uFEFF", peg$c243 = { type: "literal", value: "\uFEFF", description: "\"\\uFEFF\"" }, peg$currPos = 0, peg$savedPos = 0, peg$posDetailsCache = [{ line: 1, column: 1, seenCR: false }], peg$maxFailPos = 0, peg$maxFailExpected = [], peg$silentFails = 0, peg$result; if ("startRule" in options) { if (!(options.startRule in peg$startRuleFunctions)) { throw new Error("Can't start parsing from rule \"" + options.startRule + "\"."); } peg$startRuleFunction = peg$startRuleFunctions[options.startRule]; } function text() { return input.substring(peg$savedPos, peg$currPos); } function location() { return peg$computeLocation(peg$savedPos, peg$currPos); } function expected(description) { throw peg$buildException( null, [{ type: "other", description: description }], input.substring(peg$savedPos, peg$currPos), peg$computeLocation(peg$savedPos, peg$currPos) ); } function error(message) { throw peg$buildException( message, null, input.substring(peg$savedPos, peg$currPos), peg$computeLocation(peg$savedPos, peg$currPos) ); } function peg$computePosDetails(pos) { var details = peg$posDetailsCache[pos], p, ch; if (details) { return details; } else { p = pos - 1; while (!peg$posDetailsCache[p]) { p--; } details = peg$posDetailsCache[p]; details = { line: details.line, column: details.column, seenCR: details.seenCR }; while (p < pos) { ch = input.charAt(p); if (ch === "\n") { if (!details.seenCR) { details.line++; } details.column = 1; details.seenCR = false; } else if (ch === "\r" || ch === "\u2028" || ch === "\u2029") { details.line++; details.column = 1; details.seenCR = true; } else { details.column++; details.seenCR = false; } p++; } peg$posDetailsCache[pos] = details; return details; } } function peg$computeLocation(startPos, endPos) { var startPosDetails = peg$computePosDetails(startPos), endPosDetails = peg$computePosDetails(endPos); return { start: { offset: startPos, line: startPosDetails.line, column: startPosDetails.column }, end: { offset: endPos, line: endPosDetails.line, column: endPosDetails.column } }; } function peg$fail(expected) { if (peg$currPos < peg$maxFailPos) { return; } if (peg$currPos > peg$maxFailPos) { peg$maxFailPos = peg$currPos; peg$maxFailExpected = []; } peg$maxFailExpected.push(expected); } function peg$buildException(message, expected, found, location) { function cleanupExpected(expected) { var i = 1; expected.sort(function(a, b) { if (a.description < b.description) { return -1; } else if (a.description > b.description) { return 1; } else { return 0; } }); while (i < expected.length) { if (expected[i - 1] === expected[i]) { expected.splice(i, 1); } else { i++; } } } function buildMessage(expected, found) { function stringEscape(s) { function hex(ch) { return ch.charCodeAt(0).toString(16).toUpperCase(); } return s .replace(/\\/g, '\\\\') .replace(/"/g, '\\"') .replace(/\x08/g, '\\b') .replace(/\t/g, '\\t') .replace(/\n/g, '\\n') .replace(/\f/g, '\\f') .replace(/\r/g, '\\r') .replace(/[\x00-\x07\x0B\x0E\x0F]/g, function(ch) { return '\\x0' + hex(ch); }) .replace(/[\x10-\x1F\x80-\xFF]/g, function(ch) { return '\\x' + hex(ch); }) .replace(/[\u0100-\u0FFF]/g, function(ch) { return '\\u0' + hex(ch); }) .replace(/[\u1000-\uFFFF]/g, function(ch) { return '\\u' + hex(ch); }); } var expectedDescs = new Array(expected.length), expectedDesc, foundDesc, i; for (i = 0; i < expected.length; i++) { expectedDescs[i] = expected[i].description; } expectedDesc = expected.length > 1 ? expectedDescs.slice(0, -1).join(", ") + " or " + expectedDescs[expected.length - 1] : expectedDescs[0]; foundDesc = found ? "\"" + stringEscape(found) + "\"" : "end of input"; return "Expected " + expectedDesc + " but " + foundDesc + " found."; } if (expected !== null) { cleanupExpected(expected); } return new peg$SyntaxError( message !== null ? message : buildMessage(expected, found), expected, found, location ); } function peg$parsestart() { var s0, s1; s0 = peg$currPos; s1 = peg$parsemodule(); if (s1 !== peg$FAILED) { peg$savedPos = s0; s1 = peg$c0(s1); } s0 = s1; return s0; } function peg$parsemodule() { var s0, s1, s2, s3, s4, s5, s6; s0 = peg$currPos; s1 = peg$currPos; s2 = peg$parsemoduleDeclaration(); if (s2 !== peg$FAILED) { s3 = peg$parseEOS(); if (s3 !== peg$FAILED) { s2 = [s2, s3]; s1 = s2; } else { peg$currPos = s1; s1 = peg$FAILED; } } else { peg$currPos = s1; s1 = peg$FAILED; } if (s1 === peg$FAILED) { s1 = null; } if (s1 !== peg$FAILED) { s2 = peg$currPos; s3 = peg$parseMANDATORY_LAYOUT(); if (s3 !== peg$FAILED) { s4 = peg$parseDocComment(); if (s4 !== peg$FAILED) { s5 = peg$currPos; peg$silentFails++; s6 = peg$parseMANDATORY_LAYOUT(); peg$silentFails--; if (s6 !== peg$FAILED) { peg$currPos = s5; s5 = void 0; } else { s5 = peg$FAILED; } if (s5 !== peg$FAILED) { peg$savedPos = s2; s3 = peg$c1(s1, s4); s2 = s3; } else { peg$currPos = s2; s2 = peg$FAILED; } } else { peg$currPos = s2; s2 = peg$FAILED; } } else { peg$currPos = s2; s2 = peg$FAILED; } if (s2 === peg$FAILED) { s2 = peg$currPos; s3 = peg$parseLAYOUT(); if (s3 !== peg$FAILED) { peg$savedPos = s2; s3 = peg$c2(s1); } s2 = s3; } if (s2 !== peg$FAILED) { s3 = peg$parseimports(); if (s3 === peg$FAILED) { s3 = null; } if (s3 !== peg$FAILED) { s4 = peg$parsetopLevelDeclarations(); if (s4 === peg$FAILED) { s4 = null; } if (s4 !== peg$FAILED) { s5 = []; s6 = peg$parseComment(); if (s6 === peg$FAILED) { s6 = peg$parseNewLine(); if (s6 === peg$FAILED) { s6 = peg$parseWhiteSpace(); } } while (s6 !== peg$FAILED) { s5.push(s6); s6 = peg$parseComment(); if (s6 === peg$FAILED) { s6 = peg$parseNewLine(); if (s6 === peg$FAILED) { s6 = peg$parseWhiteSpace(); } } } if (s5 !== peg$FAILED) { peg$savedPos = s0; s1 = peg$c3(s1, s2, s3, s4); s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseheaderOnly() { var s0, s1, s2, s3, s4, s5, s6, s7; s0 = peg$currPos; s1 = peg$parsemoduleDeclaration(); if (s1 !== peg$FAILED) { s2 = peg$parseEOS(); if (s2 !== peg$FAILED) { s3 = peg$currPos; s4 = peg$parseMANDATORY_LAYOUT(); if (s4 !== peg$FAILED) { s5 = peg$parseDocComment(); if (s5 !== peg$FAILED) { s6 = peg$currPos; peg$silentFails++; s7 = peg$parseMANDATORY_LAYOUT(); peg$silentFails--; if (s7 !== peg$FAILED) { peg$currPos = s6; s6 = void 0; } else { s6 = peg$FAILED; } if (s6 !== peg$FAILED) { peg$savedPos = s3; s4 = peg$c1(s1, s5); s3 = s4; } else { peg$currPos = s3; s3 = peg$FAILED; } } else { peg$currPos = s3; s3 = peg$FAILED; } } else { peg$currPos = s3; s3 = peg$FAILED; } if (s3 === peg$FAILED) { s3 = peg$currPos; s4 = peg$parseLAYOUT(); if (s4 !== peg$FAILED) { peg$savedPos = s3; s4 = peg$c2(s1); } s3 = s4; } if (s3 !== peg$FAILED) { s4 = peg$parseimports(); if (s4 === peg$FAILED) { s4 = null; } if (s4 !== peg$FAILED) { s5 = []; if (input.length > peg$currPos) { s6 = input.charAt(peg$currPos); peg$currPos++; } else { s6 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c4); } } while (s6 !== peg$FAILED) { s5.push(s6); if (input.length > peg$currPos) { s6 = input.charAt(peg$currPos); peg$currPos++; } else { s6 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c4); } } } if (s5 !== peg$FAILED) { peg$savedPos = s0; s1 = peg$c5(s1, s3, s4); s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parsemoduleDeclaration() { var s0, s1, s2, s3, s4, s5, s6, s7, s8; s0 = peg$currPos; s1 = peg$currPos; if (input.substr(peg$currPos, 6) === peg$c6) { s2 = peg$c6; peg$currPos += 6; } else { s2 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c7); } } if (s2 === peg$FAILED) { if (input.substr(peg$currPos, 4) === peg$c8) { s2 = peg$c8; peg$currPos += 4; } else { s2 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c9); } } } if (s2 !== peg$FAILED) { s3 = peg$parse__(); if (s3 !== peg$FAILED) { peg$savedPos = s1; s2 = peg$c10(s2); s1 = s2; } else { peg$currPos = s1; s1 = peg$FAILED; } } else { peg$currPos = s1; s1 = peg$FAILED; } if (s1 === peg$FAILED) { s1 = null; } if (s1 !== peg$FAILED) { if (input.substr(peg$currPos, 6) === peg$c11) { s2 = peg$c11; peg$currPos += 6; } else { s2 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c12); } } if (s2 !== peg$FAILED) { s3 = peg$parse__(); if (s3 !== peg$FAILED) { s4 = peg$parseupperIds(); if (s4 !== peg$FAILED) { s5 = peg$parse__(); if (s5 !== peg$FAILED) { s6 = peg$currPos; s7 = peg$parseeffectWhere(); if (s7 !== peg$FAILED) { s8 = peg$parse__(); if (s8 !== peg$FAILED) { s7 = [s7, s8]; s6 = s7; } else { peg$currPos = s6; s6 = peg$FAILED; } } else { peg$currPos = s6; s6 = peg$FAILED; } if (s6 === peg$FAILED) { s6 = null; } if (s6 !== peg$FAILED) { s7 = peg$parseexposing(); if (s7 !== peg$FAILED) { peg$savedPos = s0; s1 = peg$c13(s1, s4, s7); s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseeffectWhere() { var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9; s0 = peg$currPos; if (input.substr(peg$currPos, 5) === peg$c14) { s1 = peg$c14; peg$currPos += 5; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c15); } } if (s1 !== peg$FAILED) { s2 = peg$parse_(); if (s2 !== peg$FAILED) { if (input.charCodeAt(peg$currPos) === 123) { s3 = peg$c16; peg$currPos++; } else { s3 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c17); } } if (s3 !== peg$FAILED) { s4 = peg$parse_(); if (s4 !== peg$FAILED) { s5 = peg$currPos; s6 = []; s7 = peg$currPos; s8 = peg$currPos; peg$silentFails++; if (input.charCodeAt(peg$currPos) === 125) { s9 = peg$c18; peg$currPos++; } else { s9 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c19); } } peg$silentFails--; if (s9 === peg$FAILED) { s8 = void 0; } else { peg$currPos = s8; s8 = peg$FAILED; } if (s8 !== peg$FAILED) { s9 = peg$parseSourceCharacter(); if (s9 !== peg$FAILED) { s8 = [s8, s9]; s7 = s8; } else { peg$currPos = s7; s7 = peg$FAILED; } } else { peg$currPos = s7; s7 = peg$FAILED; } while (s7 !== peg$FAILED) { s6.push(s7); s7 = peg$currPos; s8 = peg$currPos; peg$silentFails++; if (input.charCodeAt(peg$currPos) === 125) { s9 = peg$c18; peg$currPos++; } else { s9 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c19); } } peg$silentFails--; if (s9 === peg$FAILED) { s8 = void 0; } else { peg$currPos = s8; s8 = peg$FAILED; } if (s8 !== peg$FAILED) { s9 = peg$parseSourceCharacter(); if (s9 !== peg$FAILED) { s8 = [s8, s9]; s7 = s8; } else { peg$currPos = s7; s7 = peg$FAILED; } } else { peg$currPos = s7; s7 = peg$FAILED; } } if (s6 !== peg$FAILED) { s7 = peg$parse_(); if (s7 !== peg$FAILED) { if (input.charCodeAt(peg$currPos) === 125) { s8 = peg$c18; peg$currPos++; } else { s8 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c19); } } if (s8 !== peg$FAILED) { s6 = [s6, s7, s8]; s5 = s6; } else { peg$currPos = s5; s5 = peg$FAILED; } } else { peg$currPos = s5; s5 = peg$FAILED; } } else { peg$currPos = s5; s5 = peg$FAILED; } if (s5 !== peg$FAILED) { s1 = [s1, s2, s3, s4, s5]; s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseimports() { var s0, s1, s2, s3, s4, s5, s6; s0 = peg$currPos; s1 = peg$parseLAYOUT(); if (s1 !== peg$FAILED) { s2 = peg$parseimport(); if (s2 !== peg$FAILED) { s3 = []; s4 = peg$currPos; s5 = peg$parseLAYOUT(); if (s5 !== peg$FAILED) { s6 = peg$parseimport(); if (s6 !== peg$FAILED) { peg$savedPos = s4; s5 = peg$c20(s2, s6); s4 = s5; } else { peg$currPos = s4; s4 = peg$FAILED; } } else { peg$currPos = s4; s4 = peg$FAILED; } while (s4 !== peg$FAILED) { s3.push(s4); s4 = peg$currPos; s5 = peg$parseLAYOUT(); if (s5 !== peg$FAILED) { s6 = peg$parseimport(); if (s6 !== peg$FAILED) { peg$savedPos = s4; s5 = peg$c20(s2, s6); s4 = s5; } else { peg$currPos = s4; s4 = peg$FAILED; } } else { peg$currPos = s4; s4 = peg$FAILED; } } if (s3 !== peg$FAILED) { peg$savedPos = s0; s1 = peg$c21(s2, s3); s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseimport() { var s0, s1, s2, s3, s4, s5, s6, s7, s8; s0 = peg$currPos; if (input.substr(peg$currPos, 6) === peg$c22) { s1 = peg$c22; peg$currPos += 6; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c23); } } if (s1 !== peg$FAILED) { s2 = peg$parse__(); if (s2 !== peg$FAILED) { s3 = peg$parseupperIds(); if (s3 !== peg$FAILED) { s4 = peg$currPos; s5 = peg$parse__(); if (s5 !== peg$FAILED) { if (input.substr(peg$currPos, 2) === peg$c24) { s6 = peg$c24; peg$currPos += 2; } else { s6 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c25); } } if (s6 !== peg$FAILED) { s7 = peg$parse__(); if (s7 !== peg$FAILED) { s8 = peg$parseupperId(); if (s8 !== peg$FAILED) { peg$savedPos = s4; s5 = peg$c26(s3, s8); s4 = s5; } else { peg$currPos = s4; s4 = peg$FAILED; } } else { peg$currPos = s4; s4 = peg$FAILED; } } else { peg$currPos = s4; s4 = peg$FAILED; } } else { peg$currPos = s4; s4 = peg$FAILED; } if (s4 === peg$FAILED) { s4 = null; } if (s4 !== peg$FAILED) { s5 = peg$currPos; s6 = peg$parse_(); if (s6 !== peg$FAILED) { s7 = peg$parseexposing(); if (s7 !== peg$FAILED) { peg$savedPos = s5; s6 = peg$c27(s3, s4, s7); s5 = s6; } else { peg$currPos = s5; s5 = peg$FAILED; } } else { peg$currPos = s5; s5 = peg$FAILED; } if (s5 === peg$FAILED) { s5 = null; } if (s5 !== peg$FAILED) { s6 = peg$parseEOS(); if (s6 !== peg$FAILED) { peg$savedPos = s0; s1 = peg$c28(s3, s4, s5); s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseexposing() { var s0, s1, s2, s3, s4, s5, s6, s7; s0 = peg$currPos; if (input.substr(peg$currPos, 8) === peg$c29) { s1 = peg$c29; peg$currPos += 8; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c30); } } if (s1 !== peg$FAILED) { s2 = peg$parse_(); if (s2 !== peg$FAILED) { if (input.charCodeAt(peg$currPos) === 40) { s3 = peg$c31; peg$currPos++; } else { s3 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c32); } } if (s3 !== peg$FAILED) { s4 = peg$parse_(); if (s4 !== peg$FAILED) { s5 = peg$parseexposeAll(); if (s5 === peg$FAILED) { s5 = peg$parseexports(); } if (s5 !== peg$FAILED) { s6 = peg$parse_(); if (s6 !== peg$FAILED) { if (input.charCodeAt(peg$currPos) === 41) { s7 = peg$c33; peg$currPos++; } else { s7 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c34); } } if (s7 !== peg$FAILED) { peg$savedPos = s0; s1 = peg$c35(s5); s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseexposeAll() { var s0, s1; s0 = peg$currPos; if (input.substr(peg$currPos, 2) === peg$c36) { s1 = peg$c36; peg$currPos += 2; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c37); } } if (s1 !== peg$FAILED) { peg$savedPos = s0; s1 = peg$c38(); } s0 = s1; return s0; } function peg$parseexports() { var s0, s1, s2, s3, s4, s5, s6, s7; s0 = peg$currPos; s1 = peg$parseexport(); if (s1 !== peg$FAILED) { s2 = []; s3 = peg$currPos; s4 = peg$parse_(); if (s4 !== peg$FAILED) { if (input.charCodeAt(peg$currPos) === 44) { s5 = peg$c39; peg$currPos++; } else { s5 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c40); } } if (s5 !== peg$FAILED) { s6 = peg$parse_(); if (s6 !== peg$FAILED) { s7 = peg$parseexport(); if (s7 !== peg$FAILED) { peg$savedPos = s3; s4 = peg$c41(s1, s7); s3 = s4; } else { peg$currPos = s3; s3 = peg$FAILED; } } else { peg$currPos = s3; s3 = peg$FAILED; } } else { peg$currPos = s3; s3 = peg$FAILED; } } else { peg$currPos = s3; s3 = peg$FAILED; } while (s3 !== peg$FAILED) { s2.push(s3); s3 = peg$currPos; s4 = peg$parse_(); if (s4 !== peg$FAILED) { if (input.charCodeAt(peg$currPos) === 44) { s5 = peg$c39; peg$currPos++; } else { s5 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c40); } } if (s5 !== peg$FAILED) { s6 = peg$parse_(); if (s6 !== peg$FAILED) { s7 = peg$parseexport(); if (s7 !== peg$FAILED) { peg$savedPos = s3; s4 = peg$c41(s1, s7); s3 = s4; } else { peg$currPos = s3; s3 = peg$FAILED; } } else { peg$currPos = s3; s3 = peg$FAILED; } } else { peg$currPos = s3; s3 = peg$FAILED; } } else { peg$currPos = s3; s3 = peg$FAILED; } } if (s2 !== peg$FAILED) { peg$savedPos = s0; s1 = peg$c42(s1, s2); s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseexport() { var s0; s0 = peg$parseref(); if (s0 === peg$FAILED) { s0 = peg$parseadtExport(); } return s0; } function peg$parseadtExport() { var s0, s1, s2, s3, s4, s5, s6, s7, s8; s0 = peg$currPos; s1 = peg$parseupperId(); if (s1 !== peg$FAILED) { s2 = peg$currPos; s3 = peg$parse_(); if (s3 !== peg$FAILED) { if (input.charCodeAt(peg$currPos) === 40) { s4 = peg$c31; peg$currPos++; } else { s4 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c32); } } if (s4 !== peg$FAILED) { s5 = peg$parse_(); if (s5 !== peg$FAILED) { s6 = peg$parseadtSubExports(); if (s6 !== peg$FAILED) { s7 = peg$parse_(); if (s7 !== peg$FAILED) { if (input.charCodeAt(peg$currPos) === 41) { s8 = peg$c33; peg$currPos++; } else { s8 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c34); } } if (s8 !== peg$FAILED) { peg$savedPos = s2; s3 = peg$c43(s1, s6); s2 = s3; } else { peg$currPos = s2; s2 = peg$FAILED; } } else { peg$currPos = s2; s2 = peg$FAILED; } } else { peg$currPos = s2; s2 = peg$FAILED; } } else { peg$currPos = s2; s2 = peg$FAILED; } } else { peg$currPos = s2; s2 = peg$FAILED; } } else { peg$currPos = s2; s2 = peg$FAILED; } if (s2 === peg$FAILED) { s2 = null; } if (s2 !== peg$FAILED) { peg$savedPos = s0; s1 = peg$c44(s1, s2); s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseadtSubExports() { var s0, s1, s2, s3, s4, s5, s6, s7; s0 = peg$currPos; s1 = peg$parseexposeAll(); if (s1 !== peg$FAILED) { peg$savedPos = s0; s1 = peg$c45(s1); } s0 = s1; if (s0 === peg$FAILED) { s0 = peg$currPos; s1 = peg$parseadtSubExport(); if (s1 !== peg$FAILED) { s2 = []; s3 = peg$currPos; s4 = peg$parse_(); if (s4 !== peg$FAILED) { if (input.charCodeAt(peg$currPos) === 44) { s5 = peg$c39; peg$currPos++; } else { s5 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c40); } } if (s5 !== peg$FAILED) { s6 = peg$parse_(); if (s6 !== peg$FAILED) { s7 = peg$parseadtSubExport(); if (s7 !== peg$FAILED) { peg$savedPos = s3; s4 = peg$c46(s1, s7); s3 = s4; } else { peg$currPos = s3; s3 = peg$FAILED; } } else { peg$currPos = s3; s3 = peg$FAILED; } } else { peg$currPos = s3; s3 = peg$FAILED; } } else { peg$currPos = s3; s3 = peg$FAILED; } while (s3 !== peg$FAILED) { s2.push(s3); s3 = peg$currPos; s4 = peg$parse_(); if (s4 !== peg$FAILED) { if (input.charCodeAt(peg$currPos) === 44) { s5 = peg$c39; peg$currPos++; } else { s5 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c40); } } if (s5 !== peg$FAILED) { s6 = peg$parse_(); if (s6 !== peg$FAILED) { s7 = peg$parseadtSubExport(); if (s7 !== peg$FAILED) { peg$savedPos = s3; s4 = peg$c46(s1, s7); s3 = s4; } else { peg$currPos = s3; s3 = peg$FAILED; } } else { peg$currPos = s3; s3 = peg$FAILED; } } else { peg$currPos = s3; s3 = peg$FAILED; } } else { peg$currPos = s3; s3 = peg$FAILED; } } if (s2 !== peg$FAILED) { peg$savedPos = s0; s1 = peg$c47(s1, s2); s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } return s0; } function peg$parseadtSubExport() { var s0, s1; s0 = peg$currPos; s1 = peg$parseupperId(); if (s1 !== peg$FAILED) { peg$savedPos = s0; s1 = peg$c48(s1); } s0 = s1; return s0; } function peg$parsetopLevelDeclarations() { var s0, s1, s2, s3, s4, s5; s0 = peg$currPos; s1 = peg$currPos; s2 = peg$parsetopLevelDoc(); if (s2 !== peg$FAILED) { s3 = peg$parsetopLevelDeclaration(); if (s3 !== peg$FAILED) { peg$savedPos = s1; s2 = peg$c49(s2, s3); s1 = s2; } else { peg$currPos = s1; s1 = peg$FAILED; } } else { peg$currPos = s1; s1 = peg$FAILED; } if (s1 !== peg$FAILED) { s2 = []; s3 = peg$currPos; s4 = peg$parsetopLevelDoc(); if (s4 !== peg$FAILED) { s5 = peg$parsetopLevelDeclaration(); if (s5 !== peg$FAILED) { peg$savedPos = s3; s4 = peg$c50(s1, s4, s5); s3 = s4; } else { peg$currPos = s3; s3 = peg$FAILED; } } else { peg$currPos = s3; s3 = peg$FAILED; } while (s3 !== peg$FAILED) { s2.push(s3); s3 = peg$currPos; s4 = peg$parsetopLevelDoc(); if (s4 !== peg$FAILED) { s5 = peg$parsetopLevelDeclaration(); if (s5 !== peg$FAILED) { peg$savedPos = s3; s4 = peg$c50(s1, s4, s5); s3 = s4; } else { peg$currPos = s3; s3 = peg$FAILED; } } else { peg$currPos = s3; s3 = peg$FAILED; } } if (s2 !== peg$FAILED) { peg$savedPos = s0; s1 = peg$c51(s1, s2); s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parsetopLevelDeclaration() { var s0, s1; s0 = peg$currPos; s1 = peg$parsetypeAliasFunDecl(); if (s1 === peg$FAILED) { s1 = peg$parsetypeAliasDecl(); if (s1 === peg$FAILED) { s1 = peg$parsetypeDecl(); if (s1 === peg$FAILED) { s1 = peg$parsedef(); if (s1 === peg$FAILED) { s1 = peg$parseinfixDef(); if (s1 === peg$FAILED) { s1 = peg$parseportDef(); } } } } } if (s1 !== peg$FAILED) { peg$savedPos = s0; s1 = peg$c52(s1); } s0 = s1; return s0; } function peg$parsetopLevelDoc() { var s0, s1, s2, s3; s0 = peg$currPos; s1 = peg$parseMANDATORY_LAYOUT(); if (s1 !== peg$FAILED) { s2 = peg$parseDocComment(); if (s2 !== peg$FAILED) { s3 = peg$parseMANDATORY_LAYOUT(); if (s3 !== peg$FAILED) { peg$savedPos = s0; s1 = peg$c53(s2); s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } if (s0 === peg$FAILED) { s0 = peg$currPos; s1 = peg$parseLAYOUT(); if (s1 !== peg$FAILED) { peg$savedPos = s0; s1 = peg$c54(); } s0 = s1; } return s0; } function peg$parsetypeAliasDecl() { var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10; s0 = peg$currPos; if (input.substr(peg$currPos, 4) === peg$c55) { s1 = peg$c55; peg$currPos += 4; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c56); } } if (s1 !== peg$FAILED) { s2 = peg$parse__(); if (s2 !== peg$FAILED) { if (input.substr(peg$currPos, 5) === peg$c57) { s3 = peg$c57; peg$currPos += 5; } else { s3 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c58); } } if (s3 !== peg$FAILED) { s4 = peg$parse__(); if (s4 !== peg$FAILED) { s5 = peg$parseupperId(); if (s5 !== peg$FAILED) { s6 = []; s7 = peg$currPos; s8 = peg$parse__(); if (s8 !== peg$FAILED) { s9 = peg$parsevariable(); if (s9 !== peg$FAILED) { peg$savedPos = s7; s8 = peg$c59(s5, s9); s7 = s8; } else { peg$currPos = s7; s7 = peg$FAILED; } } else { peg$currPos = s7; s7 = peg$FAILED; } while (s7 !== peg$FAILED) { s6.push(s7); s7 = peg$currPos; s8 = peg$parse__(); if (s8 !== peg$FAILED) { s9 = peg$parsevariable(); if (s9 !== peg$FAILED) { peg$savedPos = s7; s8 = peg$c59(s5, s9); s7 = s8; } else { peg$currPos = s7; s7 = peg$FAILED; } } else { peg$currPos = s7; s7 = peg$FAILED; } } if (s6 !== peg$FAILED) { s7 = peg$parse_(); if (s7 !== peg$FAILED) { if (input.charCodeAt(peg$currPos) === 61) { s8 = peg$c60; peg$currPos++; } else { s8 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c61); } } if (s8 !== peg$FAILED) { s9 = peg$parse_(); if (s9 !== peg$FAILED) { s10 = peg$parsetype(); if (s10 !== peg$FAILED) { peg$savedPos = s0; s1 = peg$c62(s5, s6, s10); s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parsetypeAliasFunDecl() { var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12; s0 = peg$currPos; if (input.substr(peg$currPos, 4) === peg$c55) { s1 = peg$c55; peg$currPos += 4; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c56); } } if (s1 !== peg$FAILED) { s2 = peg$parse__(); if (s2 !== peg$FAILED) { if (input.substr(peg$currPos, 5) === peg$c57) { s3 = peg$c57; peg$currPos += 5; } else { s3 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c58); } } if (s3 !== peg$FAILED) { s4 = peg$parse__(); if (s4 !== peg$FAILED) { s5 = peg$parseupperId(); if (s5 !== peg$FAILED) { s6 = []; s7 = peg$currPos; s8 = peg$parse__(); if (s8 !== peg$FAILED) { s9 = peg$parsevariable(); if (s9 !== peg$FAILED) { peg$savedPos = s7; s8 = peg$c59(s5, s9); s7 = s8; } else { peg$currPos = s7; s7 = peg$FAILED; } } else { peg$currPos = s7; s7 = peg$FAILED; } while (s7 !== peg$FAILED) { s6.push(s7); s7 = peg$currPos; s8 = peg$parse__(); if (s8 !== peg$FAILED) { s9 = peg$parsevariable(); if (s9 !== peg$FAILED) { peg$savedPos = s7; s8 = peg$c59(s5, s9); s7 = s8; } else { peg$currPos = s7; s7 = peg$FAILED; } } else { peg$currPos = s7; s7 = peg$FAILED; } } if (s6 !== peg$FAILED) { s7 = peg$parse_(); if (s7 !== peg$FAILED) { if (input.charCodeAt(peg$currPos) === 61) { s8 = peg$c60; peg$currPos++; } else { s8 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c61); } } if (s8 !== peg$FAILED) { s9 = peg$parse_(); if (s9 !== peg$FAILED) { s10 = peg$parsetype(); if (s10 !== peg$FAILED) { s11 = peg$parse_(); if (s11 !== peg$FAILED) { s12 = peg$parsetypeFunTail(); if (s12 !== peg$FAILED) { peg$savedPos = s0; s1 = peg$c63(s5, s6, s10, s12); s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parsetypeDecl() { var s0, s1, s2, s3, s4, s5, s6, s7, s8; s0 = peg$currPos; if (input.substr(peg$currPos, 4) === peg$c55) { s1 = peg$c55; peg$currPos += 4; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c56); } } if (s1 !== peg$FAILED) { s2 = peg$parse__(); if (s2 !== peg$FAILED) { s3 = peg$parseupperId(); if (s3 !== peg$FAILED) { s4 = []; s5 = peg$currPos; s6 = peg$parse__(); if (s6 !== peg$FAILED) { s7 = peg$parsevariable(); if (s7 !== peg$FAILED) { peg$savedPos = s5; s6 = peg$c59(s3, s7); s5 = s6; } else { peg$currPos = s5; s5 = peg$FAILED; } } else { peg$currPos = s5; s5 = peg$FAILED; } while (s5 !== peg$FAILED) { s4.push(s5); s5 = peg$currPos; s6 = peg$parse__(); if (s6 !== peg$FAILED) { s7 = peg$parsevariable(); if (s7 !== peg$FAILED) { peg$savedPos = s5; s6 = peg$c59(s3, s7); s5 = s6; } else { peg$currPos = s5; s5 = peg$FAILED; } } else { peg$currPos = s5; s5 = peg$FAILED; } } if (s4 !== peg$FAILED) { s5 = peg$parse_(); if (s5 !== peg$FAILED) { if (input.charCodeAt(peg$currPos) === 61) { s6 = peg$c60; peg$currPos++; } else { s6 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c61); } } if (s6 !== peg$FAILED) { s7 = peg$parse_(); if (s7 !== peg$FAILED) { s8 = peg$parseadtDefs(); if (s8 !== peg$FAILED) { peg$savedPos = s0; s1 = peg$c64(s3, s4, s8); s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseadtDefs() { var s0, s1, s2, s3, s4, s5, s6, s7; s0 = peg$currPos; s1 = peg$parseadtDef(); if (s1 !== peg$FAILED) { s2 = []; s3 = peg$currPos; s4 = peg$parse_(); if (s4 !== peg$FAILED) { if (input.charCodeAt(peg$currPos) === 124) { s5 = peg$c65; peg$currPos++; } else { s5 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c66); } } if (s5 !== peg$FAILED) { s6 = peg$parse_(); if (s6 !== peg$FAILED) { s7 = peg$parseadtDef(); if (s7 !== peg$FAILED) { peg$savedPos = s3; s4 = peg$c67(s1, s7); s3 = s4; } else { peg$currPos = s3; s3 = peg$FAILED; } } else { peg$currPos = s3; s3 = peg$FAILED; } } else { peg$currPos = s3; s3 = peg$FAILED; } } else { peg$currPos = s3; s3 = peg$FAILED; } while (s3 !== peg$FAILED) { s2.push(s3); s3 = peg$currPos; s4 = peg$parse_(); if (s4 !== peg$FAILED) { if (input.charCodeAt(peg$currPos) === 124) { s5 = peg$c65; peg$currPos++; } else { s5 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c66); } } if (s5 !== peg$FAILED) { s6 = peg$parse_(); if (s6 !== peg$FAILED) { s7 = peg$parseadtDef(); if (s7 !== peg$FAILED) { peg$savedPos = s3; s4 = peg$c67(s1, s7); s3 = s4; } else { peg$currPos = s3; s3 = peg$FAILED; } } else { peg$currPos = s3; s3 = peg$FAILED; } } else { peg$currPos = s3; s3 = peg$FAILED; } } else { peg$currPos = s3; s3 = peg$FAILED; } } if (s2 !== peg$FAILED) { peg$savedPos = s0; s1 = peg$c68(s1, s2); s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseadtDef() { var s0, s1, s2, s3, s4, s5, s6; s0 = peg$currPos; s1 = peg$parseupperId(); if (s1 !== peg$FAILED) { s2 = peg$currPos; s3 = peg$parse__(); if (s3 !== peg$FAILED) { s4 = peg$parsetype(); if (s4 !== peg$FAILED) { peg$savedPos = s2; s3 = peg$c69(s1, s4); s2 = s3; } else { peg$currPos = s2; s2 = peg$FAILED; } } else { peg$currPos = s2; s2 = peg$FAILED; } if (s2 === peg$FAILED) { s2 = null; } if (s2 !== peg$FAILED) { s3 = []; s4 = peg$currPos; s5 = peg$parse__(); if (s5 !== peg$FAILED) { s6 = peg$parsetype(); if (s6 !== peg$FAILED) { peg$savedPos = s4; s5 = peg$c70(s1, s2, s6); s4 = s5; } else { peg$currPos = s4; s4 = peg$FAILED; } } else { peg$currPos = s4; s4 = peg$FAILED; } while (s4 !== peg$FAILED) { s3.push(s4); s4 = peg$currPos; s5 = peg$parse__(); if (s5 !== peg$FAILED) { s6 = peg$parsetype(); if (s6 !== peg$FAILED) { peg$savedPos = s4; s5 = peg$c70(s1, s2, s6); s4 = s5; } else { peg$currPos = s4; s4 = peg$FAILED; } } else { peg$currPos = s4; s4 = peg$FAILED; } } if (s3 !== peg$FAILED) { peg$savedPos = s0; s1 = peg$c71(s1, s2, s3); s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parsedef() { var s0, s1, s2, s3; s0 = peg$currPos; s1 = peg$parseannotation(); if (s1 !== peg$FAILED) { s2 = peg$parseLAYOUT(); if (s2 !== peg$FAILED) { s3 = peg$parsevalueDef(); if (s3 !== peg$FAILED) { peg$savedPos = s0; s1 = peg$c72(s1, s3); s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } if (s0 === peg$FAILED) { s0 = peg$currPos; s1 = peg$parsevalueDef(); if (s1 !== peg$FAILED) { peg$savedPos = s0; s1 = peg$c73(s1); } s0 = s1; } return s0; } function peg$parsevalueDef() { var s0; s0 = peg$parsenameDef(); if (s0 === peg$FAILED) { s0 = peg$parsebinOpDef(); } return s0; } function peg$parsenameDef() { var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9; s0 = peg$currPos; s1 = peg$parseid(); if (s1 !== peg$FAILED) { s2 = peg$parse_(); if (s2 !== peg$FAILED) { s3 = peg$currPos; s4 = peg$parsepattern(); if (s4 !== peg$FAILED) { s5 = peg$parse__(); if (s5 !== peg$FAILED) { s6 = []; s7 = peg$currPos; s8 = peg$parse_(); if (s8 !== peg$FAILED) { s9 = peg$parsepattern(); if (s9 !== peg$FAILED) { peg$savedPos = s7; s8 = peg$c74(s1, s4, s9); s7 = s8; } else { peg$currPos = s7; s7 = peg$FAILED; } } else { peg$currPos = s7; s7 = peg$FAILED; } while (s7 !== peg$FAILED) { s6.push(s7); s7 = peg$currPos; s8 = peg$parse_(); if (s8 !== peg$FAILED) { s9 = peg$parsepattern(); if (s9 !== peg$FAILED) { peg$savedPos = s7; s8 = peg$c74(s1, s4, s9); s7 = s8; } else { peg$currPos = s7; s7 = peg$FAILED; } } else { peg$currPos = s7; s7 = peg$FAILED; } } if (s6 !== peg$FAILED) { peg$savedPos = s3; s4 = peg$c75(s1, s4, s6); s3 = s4; } else { peg$currPos = s3; s3 = peg$FAILED; } } else { peg$currPos = s3; s3 = peg$FAILED; } } else { peg$currPos = s3; s3 = peg$FAILED; } if (s3 === peg$FAILED) { s3 = null; } if (s3 !== peg$FAILED) { s4 = peg$parse_(); if (s4 !== peg$FAILED) { if (input.charCodeAt(peg$currPos) === 61) { s5 = peg$c60; peg$currPos++; } else { s5 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c61); } } if (s5 !== peg$FAILED) { s6 = peg$parseexpr(); if (s6 !== peg$FAILED) { peg$savedPos = s0; s1 = peg$c76(s1, s3, s6); s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parsebinOpDef() { var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9; s0 = peg$currPos; s1 = peg$parsebinOpRef(); if (s1 !== peg$FAILED) { s2 = peg$parse_(); if (s2 !== peg$FAILED) { s3 = peg$currPos; s4 = peg$parsepattern(); if (s4 !== peg$FAILED) { s5 = peg$parse__(); if (s5 !== peg$FAILED) { s6 = []; s7 = peg$currPos; s8 = peg$parse_(); if (s8 !== peg$FAILED) { s9 = peg$parsepattern(); if (s9 !== peg$FAILED) { peg$savedPos = s7; s8 = peg$c77(s1, s4, s9); s7 = s8; } else { peg$currPos = s7; s7 = peg$FAILED; } } else { peg$currPos = s7; s7 = peg$FAILED; } while (s7 !== peg$FAILED) { s6.push(s7); s7 = peg$currPos; s8 = peg$parse_(); if (s8 !== peg$FAILED) { s9 = peg$parsepattern(); if (s9 !== peg$FAILED) { peg$savedPos = s7; s8 = peg$c77(s1, s4, s9); s7 = s8; } else { peg$currPos = s7; s7 = peg$FAILED; } } else { peg$currPos = s7; s7 = peg$FAILED; } } if (s6 !== peg$FAILED) { peg$savedPos = s3; s4 = peg$c78(s1, s4, s6); s3 = s4; } else { peg$currPos = s3; s3 = peg$FAILED; } } else { peg$currPos = s3; s3 = peg$FAILED; } } else { peg$currPos = s3; s3 = peg$FAILED; } if (s3 === peg$FAILED) { s3 = null; } if (s3 !== peg$FAILED) { s4 = peg$parse_(); if (s4 !== peg$FAILED) { if (input.charCodeAt(peg$currPos) === 61) { s5 = peg$c60; peg$currPos++; } else { s5 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c61); } } if (s5 !== peg$FAILED) { s6 = peg$parseexpr(); if (s6 !== peg$FAILED) { peg$savedPos = s0; s1 = peg$c79(s1, s3, s6); s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseannotation() { var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12; s0 = peg$currPos; s1 = peg$parseref(); if (s1 !== peg$FAILED) { s2 = peg$parse_(); if (s2 !== peg$FAILED) { if (input.charCodeAt(peg$currPos) === 58) { s3 = peg$c80; peg$currPos++; } else { s3 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c81); } } if (s3 !== peg$FAILED) { s4 = peg$parse_(); if (s4 !== peg$FAILED) { s5 = peg$currPos; s6 = peg$parsetype(); if (s6 !== peg$FAILED) { s7 = []; s8 = peg$currPos; s9 = peg$parse_(); if (s9 !== peg$FAILED) { if (input.substr(peg$currPos, 2) === peg$c82) { s10 = peg$c82; peg$currPos += 2; } else { s10 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c83); } } if (s10 !== peg$FAILED) { s11 = peg$parse_(); if (s11 !== peg$FAILED) { s12 = peg$parsetype(); if (s12 !== peg$FAILED) { peg$savedPos = s8; s9 = peg$c84(s1, s6, s12); s8 = s9; } else { peg$currPos = s8; s8 = peg$FAILED; } } else { peg$currPos = s8; s8 = peg$FAILED; } } else { peg$currPos = s8; s8 = peg$FAILED; } } else { peg$currPos = s8; s8 = peg$FAILED; } while (s8 !== peg$FAILED) { s7.push(s8); s8 = peg$currPos; s9 = peg$parse_(); if (s9 !== peg$FAILED) { if (input.substr(peg$currPos, 2) === peg$c82) { s10 = peg$c82; peg$currPos += 2; } else { s10 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c83); } } if (s10 !== peg$FAILED) { s11 = peg$parse_(); if (s11 !== peg$FAILED) { s12 = peg$parsetype(); if (s12 !== peg$FAILED) { peg$savedPos = s8; s9 = peg$c84(s1, s6, s12); s8 = s9; } else { peg$currPos = s8; s8 = peg$FAILED; } } else { peg$currPos = s8; s8 = peg$FAILED; } } else { peg$currPos = s8; s8 = peg$FAILED; } } else { peg$currPos = s8; s8 = peg$FAILED; } } if (s7 !== peg$FAILED) { peg$savedPos = s5; s6 = peg$c85(s1, s6, s7); s5 = s6; } else { peg$currPos = s5; s5 = peg$FAILED; } } else { peg$currPos = s5; s5 = peg$FAILED; } if (s5 !== peg$FAILED) { peg$savedPos = s0; s1 = peg$c86(s1, s5); s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseinfixDef() { var s0, s1, s2, s3, s4, s5; s0 = peg$currPos; if (input.substr(peg$currPos, 6) === peg$c87) { s1 = peg$c87; peg$currPos += 6; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c88); } } if (s1 === peg$FAILED) { if (input.substr(peg$currPos, 6) === peg$c89) { s1 = peg$c89; peg$currPos += 6; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c90); } } if (s1 === peg$FAILED) { if (input.substr(peg$currPos, 5) === peg$c91) { s1 = peg$c91; peg$currPos += 5; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c92); } } } } if (s1 !== peg$FAILED) { s2 = peg$parse__(); if (s2 !== peg$FAILED) { s3 = peg$parsenumber(); if (s3 !== peg$FAILED) { s4 = peg$parse__(); if (s4 !== peg$FAILED) { s5 = peg$parsebinOp(); if (s5 === peg$FAILED) { s5 = peg$parseinfixOp(); } if (s5 !== peg$FAILED) { peg$savedPos = s0; s1 = peg$c93(s1, s3, s5); s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseinfixOp() { var s0, s1, s2, s3; s0 = peg$currPos; if (input.charCodeAt(peg$currPos) === 96) { s1 = peg$c94; peg$currPos++; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c95); } } if (s1 !== peg$FAILED) { s2 = peg$parseid(); if (s2 === peg$FAILED) { s2 = peg$parseprefixedId(); } if (s2 !== peg$FAILED) { if (input.charCodeAt(peg$currPos) === 96) { s3 = peg$c94; peg$currPos++; } else { s3 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c95); } } if (s3 !== peg$FAILED) { peg$savedPos = s0; s1 = peg$c96(s2); s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseportDef() { var s0, s1, s2, s3; s0 = peg$currPos; if (input.substr(peg$currPos, 4) === peg$c8) { s1 = peg$c8; peg$currPos += 4; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c9); } } if (s1 !== peg$FAILED) { s2 = peg$parse_(); if (s2 !== peg$FAILED) { s3 = peg$parseannotation(); if (s3 !== peg$FAILED) { peg$savedPos = s0; s1 = peg$c97(s3); s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parsetype() { var s0; s0 = peg$parsetypeBracket(); if (s0 === peg$FAILED) { s0 = peg$parseunit(); if (s0 === peg$FAILED) { s0 = peg$parsetypeTuple(); if (s0 === peg$FAILED) { s0 = peg$parsetypeAdt(); if (s0 === peg$FAILED) { s0 = peg$parsetypeVar(); if (s0 === peg$FAILED) { s0 = peg$parsetypeRec(); if (s0 === peg$FAILED) { s0 = peg$parsetypeRecExt(); } } } } } } return s0; } function peg$parsetypeTuple() { var s0, s1, s2, s3, s4, s5; s0 = peg$currPos; s1 = peg$parsetupleFirst(); if (s1 !== peg$FAILED) { s2 = []; s3 = peg$currPos; s4 = peg$parse_(); if (s4 !== peg$FAILED) { s5 = peg$parsetupleRem(); if (s5 !== peg$FAILED) { peg$savedPos = s3; s4 = peg$c98(s1, s5); s3 = s4; } else { peg$currPos = s3; s3 = peg$FAILED; } } else { peg$currPos = s3; s3 = peg$FAILED; } if (s3 !== peg$FAILED) { while (s3 !== peg$FAILED) { s2.push(s3); s3 = peg$currPos; s4 = peg$parse_(); if (s4 !== peg$FAILED) { s5 = peg$parsetupleRem(); if (s5 !== peg$FAILED) { peg$savedPos = s3; s4 = peg$c98(s1, s5); s3 = s4; } else { peg$currPos = s3; s3 = peg$FAILED; } } else { peg$currPos = s3; s3 = peg$FAILED; } } } else { s2 = peg$FAILED; } if (s2 !== peg$FAILED) { s3 = peg$parse_(); if (s3 !== peg$FAILED) { if (input.charCodeAt(peg$currPos) === 41) { s4 = peg$c33; peg$currPos++; } else { s4 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c34); } } if (s4 !== peg$FAILED) { peg$savedPos = s0; s1 = peg$c99(s1, s2); s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parsetupleFirst() { var s0, s1, s2, s3, s4, s5; s0 = peg$currPos; if (input.charCodeAt(peg$currPos) === 40) { s1 = peg$c31; peg$currPos++; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c32); } } if (s1 !== peg$FAILED) { s2 = peg$parse_(); if (s2 !== peg$FAILED) { s3 = peg$parsetype(); if (s3 !== peg$FAILED) { s4 = peg$parse_(); if (s4 !== peg$FAILED) { s5 = peg$parsetypeFunTail(); if (s5 !== peg$FAILED) { peg$savedPos = s0; s1 = peg$c100(s3, s5); s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } if (s0 === peg$FAILED) { s0 = peg$currPos; if (input.charCodeAt(peg$currPos) === 40) { s1 = peg$c31; peg$currPos++; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c32); } } if (s1 !== peg$FAILED) { s2 = peg$parse_(); if (s2 !== peg$FAILED) { s3 = peg$parsetype(); if (s3 !== peg$FAILED) { peg$savedPos = s0; s1 = peg$c101(s3); s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } return s0; } function peg$parsetupleRem() { var s0, s1, s2, s3, s4, s5; s0 = peg$currPos; if (input.charCodeAt(peg$currPos) === 44) { s1 = peg$c39; peg$currPos++; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c40); } } if (s1 !== peg$FAILED) { s2 = peg$parse_(); if (s2 !== peg$FAILED) { s3 = peg$parsetype(); if (s3 !== peg$FAILED) { s4 = peg$parse_(); if (s4 !== peg$FAILED) { s5 = peg$parsetypeFunTail(); if (s5 !== peg$FAILED) { peg$savedPos = s0; s1 = peg$c100(s3, s5); s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } if (s0 === peg$FAILED) { s0 = peg$currPos; if (input.charCodeAt(peg$currPos) === 44) { s1 = peg$c39; peg$currPos++; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c40); } } if (s1 !== peg$FAILED) { s2 = peg$parse_(); if (s2 !== peg$FAILED) { s3 = peg$parsetype(); if (s3 !== peg$FAILED) { peg$savedPos = s0; s1 = peg$c101(s3); s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } return s0; } function peg$parsetypeBracket() { var s0, s1, s2, s3; s0 = peg$currPos; s1 = peg$parsetupleFirst(); if (s1 !== peg$FAILED) { s2 = peg$parse_(); if (s2 !== peg$FAILED) { if (input.charCodeAt(peg$currPos) === 41) { s3 = peg$c33; peg$currPos++; } else { s3 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c34); } } if (s3 !== peg$FAILED) { peg$savedPos = s0; s1 = peg$c102(s1); s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parsetypeFunTail() { var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10; s0 = peg$currPos; if (input.substr(peg$currPos, 2) === peg$c82) { s1 = peg$c82; peg$currPos += 2; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c83); } } if (s1 !== peg$FAILED) { s2 = peg$parse_(); if (s2 !== peg$FAILED) { s3 = peg$parsetype(); if (s3 !== peg$FAILED) { s4 = peg$parse_(); if (s4 !== peg$FAILED) { s5 = []; s6 = peg$currPos; s7 = peg$parse_(); if (s7 !== peg$FAILED) { if (input.substr(peg$currPos, 2) === peg$c82) { s8 = peg$c82; peg$currPos += 2; } else { s8 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c83); } } if (s8 !== peg$FAILED) { s9 = peg$parse_(); if (s9 !== peg$FAILED) { s10 = peg$parsetype(); if (s10 !== peg$FAILED) { peg$savedPos = s6; s7 = peg$c103(s3, s10); s6 = s7; } else { peg$currPos = s6; s6 = peg$FAILED; } } else { peg$currPos = s6; s6 = peg$FAILED; } } else { peg$currPos = s6; s6 = peg$FAILED; } } else { peg$currPos = s6; s6 = peg$FAILED; } while (s6 !== peg$FAILED) { s5.push(s6); s6 = peg$currPos; s7 = peg$parse_(); if (s7 !== peg$FAILED) { if (input.substr(peg$currPos, 2) === peg$c82) { s8 = peg$c82; peg$currPos += 2; } else { s8 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c83); } } if (s8 !== peg$FAILED) { s9 = peg$parse_(); if (s9 !== peg$FAILED) { s10 = peg$parsetype(); if (s10 !== peg$FAILED) { peg$savedPos = s6; s7 = peg$c103(s3, s10); s6 = s7; } else { peg$currPos = s6; s6 = peg$FAILED; } } else { peg$currPos = s6; s6 = peg$FAILED; } } else { peg$currPos = s6; s6 = peg$FAILED; } } else { peg$currPos = s6; s6 = peg$FAILED; } } if (s5 !== peg$FAILED) { peg$savedPos = s0; s1 = peg$c104(s3, s5); s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseunit() { var s0, s1, s2, s3; s0 = peg$currPos; if (input.charCodeAt(peg$currPos) === 40) { s1 = peg$c31; peg$currPos++; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c32); } } if (s1 !== peg$FAILED) { s2 = peg$parse_(); if (s2 !== peg$FAILED) { if (input.charCodeAt(peg$currPos) === 41) { s3 = peg$c33; peg$currPos++; } else { s3 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c34); } } if (s3 !== peg$FAILED) { peg$savedPos = s0; s1 = peg$c105(); s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parsetypeAdt() { var s0, s1, s2, s3, s4, s5, s6, s7, s8; s0 = peg$currPos; s1 = peg$parseupperIds(); if (s1 !== peg$FAILED) { s2 = peg$currPos; s3 = peg$parse__(); if (s3 !== peg$FAILED) { s4 = peg$parsetype(); if (s4 !== peg$FAILED) { s5 = []; s6 = peg$currPos; s7 = peg$parse__(); if (s7 !== peg$FAILED) { s8 = peg$parsetype(); if (s8 !== peg$FAILED) { peg$savedPos = s6; s7 = peg$c106(s1, s4, s8); s6 = s7; } else { peg$currPos = s6; s6 = peg$FAILED; } } else { peg$currPos = s6; s6 = peg$FAILED; } while (s6 !== peg$FAILED) { s5.push(s6); s6 = peg$currPos; s7 = peg$parse__(); if (s7 !== peg$FAILED) { s8 = peg$parsetype(); if (s8 !== peg$FAILED) { peg$savedPos = s6; s7 = peg$c106(s1, s4, s8); s6 = s7; } else { peg$currPos = s6; s6 = peg$FAILED; } } else { peg$currPos = s6; s6 = peg$FAILED; } } if (s5 !== peg$FAILED) { peg$savedPos = s2; s3 = peg$c107(s1, s4, s5); s2 = s3; } else { peg$currPos = s2; s2 = peg$FAILED; } } else { peg$currPos = s2; s2 = peg$FAILED; } } else { peg$currPos = s2; s2 = peg$FAILED; } if (s2 === peg$FAILED) { s2 = null; } if (s2 !== peg$FAILED) { peg$savedPos = s0; s1 = peg$c108(s1, s2); s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parsetypeVar() { var s0, s1; s0 = peg$currPos; s1 = peg$parseid(); if (s1 !== peg$FAILED) { peg$savedPos = s0; s1 = peg$c109(s1); } s0 = s1; return s0; } function peg$parsetypeRec() { var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10; s0 = peg$currPos; if (input.charCodeAt(peg$currPos) === 123) { s1 = peg$c16; peg$currPos++; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c17); } } if (s1 !== peg$FAILED) { s2 = peg$parse_(); if (s2 !== peg$FAILED) { s3 = peg$currPos; s4 = peg$parsetypeRecBind(); if (s4 !== peg$FAILED) { s5 = []; s6 = peg$currPos; s7 = peg$parse_(); if (s7 !== peg$FAILED) { if (input.charCodeAt(peg$currPos) === 44) { s8 = peg$c39; peg$currPos++; } else { s8 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c40); } } if (s8 !== peg$FAILED) { s9 = peg$parse_(); if (s9 !== peg$FAILED) { s10 = peg$parsetypeRecBind(); if (s10 !== peg$FAILED) { peg$savedPos = s6; s7 = peg$c110(s4, s10); s6 = s7; } else { peg$currPos = s6; s6 = peg$FAILED; } } else { peg$currPos = s6; s6 = peg$FAILED; } } else { peg$currPos = s6; s6 = peg$FAILED; } } else { peg$currPos = s6; s6 = peg$FAILED; } while (s6 !== peg$FAILED) { s5.push(s6); s6 = peg$currPos; s7 = peg$parse_(); if (s7 !== peg$FAILED) { if (input.charCodeAt(peg$currPos) === 44) { s8 = peg$c39; peg$currPos++; } else { s8 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c40); } } if (s8 !== peg$FAILED) { s9 = peg$parse_(); if (s9 !== peg$FAILED) { s10 = peg$parsetypeRecBind(); if (s10 !== peg$FAILED) { peg$savedPos = s6; s7 = peg$c110(s4, s10); s6 = s7; } else { peg$currPos = s6; s6 = peg$FAILED; } } else { peg$currPos = s6; s6 = peg$FAILED; } } else { peg$currPos = s6; s6 = peg$FAILED; } } else { peg$currPos = s6; s6 = peg$FAILED; } } if (s5 !== peg$FAILED) { peg$savedPos = s3; s4 = peg$c111(s4, s5); s3 = s4; } else { peg$currPos = s3; s3 = peg$FAILED; } } else { peg$currPos = s3; s3 = peg$FAILED; } if (s3 === peg$FAILED) { s3 = null; } if (s3 !== peg$FAILED) { s4 = peg$parse_(); if (s4 !== peg$FAILED) { if (input.charCodeAt(peg$currPos) === 125) { s5 = peg$c18; peg$currPos++; } else { s5 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c19); } } if (s5 !== peg$FAILED) { peg$savedPos = s0; s1 = peg$c112(s3); s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parsetypeRecExt() { var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, s13, s14; s0 = peg$currPos; if (input.charCodeAt(peg$currPos) === 123) { s1 = peg$c16; peg$currPos++; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c17); } } if (s1 !== peg$FAILED) { s2 = peg$parse_(); if (s2 !== peg$FAILED) { s3 = peg$parseid(); if (s3 !== peg$FAILED) { s4 = peg$parse_(); if (s4 !== peg$FAILED) { if (input.charCodeAt(peg$currPos) === 124) { s5 = peg$c65; peg$currPos++; } else { s5 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c66); } } if (s5 !== peg$FAILED) { s6 = peg$parse_(); if (s6 !== peg$FAILED) { s7 = peg$currPos; s8 = peg$parsetypeRecBind(); if (s8 !== peg$FAILED) { s9 = []; s10 = peg$currPos; s11 = peg$parse_(); if (s11 !== peg$FAILED) { if (input.charCodeAt(peg$currPos) === 44) { s12 = peg$c39; peg$currPos++; } else { s12 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c40); } } if (s12 !== peg$FAILED) { s13 = peg$parse_(); if (s13 !== peg$FAILED) { s14 = peg$parsetypeRecBind(); if (s14 !== peg$FAILED) { peg$savedPos = s10; s11 = peg$c113(s3, s8, s14); s10 = s11; } else { peg$currPos = s10; s10 = peg$FAILED; } } else { peg$currPos = s10; s10 = peg$FAILED; } } else { peg$currPos = s10; s10 = peg$FAILED; } } else { peg$currPos = s10; s10 = peg$FAILED; } while (s10 !== peg$FAILED) { s9.push(s10); s10 = peg$currPos; s11 = peg$parse_(); if (s11 !== peg$FAILED) { if (input.charCodeAt(peg$currPos) === 44) { s12 = peg$c39; peg$currPos++; } else { s12 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c40); } } if (s12 !== peg$FAILED) { s13 = peg$parse_(); if (s13 !== peg$FAILED) { s14 = peg$parsetypeRecBind(); if (s14 !== peg$FAILED) { peg$savedPos = s10; s11 = peg$c113(s3, s8, s14); s10 = s11; } else { peg$currPos = s10; s10 = peg$FAILED; } } else { peg$currPos = s10; s10 = peg$FAILED; } } else { peg$currPos = s10; s10 = peg$FAILED; } } else { peg$currPos = s10; s10 = peg$FAILED; } } if (s9 !== peg$FAILED) { peg$savedPos = s7; s8 = peg$c114(s3, s8, s9); s7 = s8; } else { peg$currPos = s7; s7 = peg$FAILED; } } else { peg$currPos = s7; s7 = peg$FAILED; } if (s7 === peg$FAILED) { s7 = null; } if (s7 !== peg$FAILED) { s8 = peg$parse_(); if (s8 !== peg$FAILED) { if (input.charCodeAt(peg$currPos) === 125) { s9 = peg$c18; peg$currPos++; } else { s9 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c19); } } if (s9 !== peg$FAILED) { peg$savedPos = s0; s1 = peg$c115(s3, s7); s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parsetypeRecBind() { var s0, s1, s2, s3, s4, s5, s6, s7; s0 = peg$currPos; s1 = peg$parseid(); if (s1 !== peg$FAILED) { s2 = peg$parse_(); if (s2 !== peg$FAILED) { if (input.charCodeAt(peg$currPos) === 58) { s3 = peg$c80; peg$currPos++; } else { s3 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c81); } } if (s3 !== peg$FAILED) { s4 = peg$parse_(); if (s4 !== peg$FAILED) { s5 = peg$parsetype(); if (s5 !== peg$FAILED) { s6 = peg$parse_(); if (s6 !== peg$FAILED) { s7 = peg$parsetypeFunTail(); if (s7 !== peg$FAILED) { peg$savedPos = s0; s1 = peg$c116(s1, s5, s7); s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } if (s0 === peg$FAILED) { s0 = peg$currPos; s1 = peg$parseid(); if (s1 !== peg$FAILED) { s2 = peg$parse_(); if (s2 !== peg$FAILED) { if (input.charCodeAt(peg$currPos) === 58) { s3 = peg$c80; peg$currPos++; } else { s3 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c81); } } if (s3 !== peg$FAILED) { s4 = peg$parse_(); if (s4 !== peg$FAILED) { s5 = peg$parsetype(); if (s5 !== peg$FAILED) { peg$savedPos = s0; s1 = peg$c117(s1, s5); s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } return s0; } function peg$parsepattern() { var s0; s0 = peg$parsepatternBracket(); if (s0 === peg$FAILED) { s0 = peg$parsepatternTuple(); if (s0 === peg$FAILED) { s0 = peg$parsepatternList(); if (s0 === peg$FAILED) { s0 = peg$parsepatternRec(); if (s0 === peg$FAILED) { s0 = peg$parseunit(); if (s0 === peg$FAILED) { s0 = peg$parsevariable(); if (s0 === peg$FAILED) { s0 = peg$parsepatternAdt(); if (s0 === peg$FAILED) { s0 = peg$parseunnamed(); } } } } } } } return s0; } function peg$parsepatternBracket() { var s0, s1, s2, s3; s0 = peg$currPos; s1 = peg$parsepatternTupleFst(); if (s1 !== peg$FAILED) { s2 = peg$parse_(); if (s2 !== peg$FAILED) { if (input.charCodeAt(peg$currPos) === 41) { s3 = peg$c33; peg$currPos++; } else { s3 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c34); } } if (s3 !== peg$FAILED) { peg$savedPos = s0; s1 = peg$c118(s1); s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parsepatternTuple() { var s0, s1, s2, s3, s4; s0 = peg$currPos; s1 = peg$parsepatternTupleFst(); if (s1 !== peg$FAILED) { s2 = []; s3 = peg$currPos; s4 = peg$parsepatternTupleRem(); if (s4 !== peg$FAILED) { peg$savedPos = s3; s4 = peg$c119(s1, s4); } s3 = s4; if (s3 !== peg$FAILED) { while (s3 !== peg$FAILED) { s2.push(s3); s3 = peg$currPos; s4 = peg$parsepatternTupleRem(); if (s4 !== peg$FAILED) { peg$savedPos = s3; s4 = peg$c119(s1, s4); } s3 = s4; } } else { s2 = peg$FAILED; } if (s2 !== peg$FAILED) { s3 = peg$parse_(); if (s3 !== peg$FAILED) { if (input.charCodeAt(peg$currPos) === 41) { s4 = peg$c33; peg$currPos++; } else { s4 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c34); } } if (s4 !== peg$FAILED) { peg$savedPos = s0; s1 = peg$c120(s1, s2); s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parsepatternTupleFst() { var s0, s1, s2, s3, s4; s0 = peg$currPos; if (input.charCodeAt(peg$currPos) === 40) { s1 = peg$c31; peg$currPos++; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c32); } } if (s1 !== peg$FAILED) { s2 = peg$parse_(); if (s2 !== peg$FAILED) { s3 = peg$parsepattern(); if (s3 !== peg$FAILED) { s4 = peg$parsepatternAlias(); if (s4 === peg$FAILED) { s4 = null; } if (s4 !== peg$FAILED) { peg$savedPos = s0; s1 = peg$c121(s3, s4); s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parsepatternTupleRem() { var s0, s1, s2, s3, s4, s5; s0 = peg$currPos; s1 = peg$parse_(); if (s1 !== peg$FAILED) { if (input.charCodeAt(peg$currPos) === 44) { s2 = peg$c39; peg$currPos++; } else { s2 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c40); } } if (s2 !== peg$FAILED) { s3 = peg$parse_(); if (s3 !== peg$FAILED) { s4 = peg$parsepattern(); if (s4 !== peg$FAILED) { s5 = peg$parsepatternAlias(); if (s5 === peg$FAILED) { s5 = null; } if (s5 !== peg$FAILED) { peg$savedPos = s0; s1 = peg$c122(s4, s5); s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parsepatternAlias() { var s0, s1, s2, s3, s4; s0 = peg$currPos; s1 = peg$parse__(); if (s1 !== peg$FAILED) { if (input.substr(peg$currPos, 2) === peg$c24) { s2 = peg$c24; peg$currPos += 2; } else { s2 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c25); } } if (s2 !== peg$FAILED) { s3 = peg$parse__(); if (s3 !== peg$FAILED) { s4 = peg$parseid(); if (s4 !== peg$FAILED) { peg$savedPos = s0; s1 = peg$c123(s4); s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parsepatternList() { var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10; s0 = peg$currPos; if (input.charCodeAt(peg$currPos) === 91) { s1 = peg$c124; peg$currPos++; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c125); } } if (s1 !== peg$FAILED) { s2 = peg$parse_(); if (s2 !== peg$FAILED) { s3 = peg$parsepattern(); if (s3 !== peg$FAILED) { s4 = peg$parse_(); if (s4 !== peg$FAILED) { s5 = []; s6 = peg$currPos; s7 = peg$parse_(); if (s7 !== peg$FAILED) { if (input.charCodeAt(peg$currPos) === 44) { s8 = peg$c39; peg$currPos++; } else { s8 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c40); } } if (s8 !== peg$FAILED) { s9 = peg$parse_(); if (s9 !== peg$FAILED) { s10 = peg$parsepattern(); if (s10 !== peg$FAILED) { peg$savedPos = s6; s7 = peg$c119(s3, s10); s6 = s7; } else { peg$currPos = s6; s6 = peg$FAILED; } } else { peg$currPos = s6; s6 = peg$FAILED; } } else { peg$currPos = s6; s6 = peg$FAILED; } } else { peg$currPos = s6; s6 = peg$FAILED; } while (s6 !== peg$FAILED) { s5.push(s6); s6 = peg$currPos; s7 = peg$parse_(); if (s7 !== peg$FAILED) { if (input.charCodeAt(peg$currPos) === 44) { s8 = peg$c39; peg$currPos++; } else { s8 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c40); } } if (s8 !== peg$FAILED) { s9 = peg$parse_(); if (s9 !== peg$FAILED) { s10 = peg$parsepattern(); if (s10 !== peg$FAILED) { peg$savedPos = s6; s7 = peg$c119(s3, s10); s6 = s7; } else { peg$currPos = s6; s6 = peg$FAILED; } } else { peg$currPos = s6; s6 = peg$FAILED; } } else { peg$currPos = s6; s6 = peg$FAILED; } } else { peg$currPos = s6; s6 = peg$FAILED; } } if (s5 !== peg$FAILED) { s6 = peg$parse_(); if (s6 !== peg$FAILED) { if (input.charCodeAt(peg$currPos) === 93) { s7 = peg$c126; peg$currPos++; } else { s7 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c127); } } if (s7 !== peg$FAILED) { peg$savedPos = s0; s1 = peg$c128(s3, s5); s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parsepatternRec() { var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10; s0 = peg$currPos; if (input.charCodeAt(peg$currPos) === 123) { s1 = peg$c16; peg$currPos++; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c17); } } if (s1 !== peg$FAILED) { s2 = peg$parse_(); if (s2 !== peg$FAILED) { s3 = peg$currPos; s4 = peg$parsepattern(); if (s4 !== peg$FAILED) { s5 = []; s6 = peg$currPos; s7 = peg$parse_(); if (s7 !== peg$FAILED) { if (input.charCodeAt(peg$currPos) === 44) { s8 = peg$c39; peg$currPos++; } else { s8 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c40); } } if (s8 !== peg$FAILED) { s9 = peg$parse_(); if (s9 !== peg$FAILED) { s10 = peg$parsepattern(); if (s10 !== peg$FAILED) { peg$savedPos = s6; s7 = peg$c119(s4, s10); s6 = s7; } else { peg$currPos = s6; s6 = peg$FAILED; } } else { peg$currPos = s6; s6 = peg$FAILED; } } else { peg$currPos = s6; s6 = peg$FAILED; } } else { peg$currPos = s6; s6 = peg$FAILED; } while (s6 !== peg$FAILED) { s5.push(s6); s6 = peg$currPos; s7 = peg$parse_(); if (s7 !== peg$FAILED) { if (input.charCodeAt(peg$currPos) === 44) { s8 = peg$c39; peg$currPos++; } else { s8 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c40); } } if (s8 !== peg$FAILED) { s9 = peg$parse_(); if (s9 !== peg$FAILED) { s10 = peg$parsepattern(); if (s10 !== peg$FAILED) { peg$savedPos = s6; s7 = peg$c119(s4, s10); s6 = s7; } else { peg$currPos = s6; s6 = peg$FAILED; } } else { peg$currPos = s6; s6 = peg$FAILED; } } else { peg$currPos = s6; s6 = peg$FAILED; } } else { peg$currPos = s6; s6 = peg$FAILED; } } if (s5 !== peg$FAILED) { peg$savedPos = s3; s4 = peg$c111(s4, s5); s3 = s4; } else { peg$currPos = s3; s3 = peg$FAILED; } } else { peg$currPos = s3; s3 = peg$FAILED; } if (s3 === peg$FAILED) { s3 = null; } if (s3 !== peg$FAILED) { s4 = peg$parse_(); if (s4 !== peg$FAILED) { if (input.charCodeAt(peg$currPos) === 125) { s5 = peg$c18; peg$currPos++; } else { s5 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c19); } } if (s5 !== peg$FAILED) { peg$savedPos = s0; s1 = peg$c129(s3); s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parsevariable() { var s0, s1; s0 = peg$currPos; s1 = peg$parseid(); if (s1 !== peg$FAILED) { peg$savedPos = s0; s1 = peg$c130(s1); } s0 = s1; return s0; } function peg$parsepatternAdt() { var s0, s1, s2, s3, s4, s5; s0 = peg$currPos; s1 = peg$parseupperIds(); if (s1 !== peg$FAILED) { s2 = []; s3 = peg$currPos; s4 = peg$parse_(); if (s4 !== peg$FAILED) { s5 = peg$parsepattern(); if (s5 !== peg$FAILED) { peg$savedPos = s3; s4 = peg$c131(s1, s5); s3 = s4; } else { peg$currPos = s3; s3 = peg$FAILED; } } else { peg$currPos = s3; s3 = peg$FAILED; } while (s3 !== peg$FAILED) { s2.push(s3); s3 = peg$currPos; s4 = peg$parse_(); if (s4 !== peg$FAILED) { s5 = peg$parsepattern(); if (s5 !== peg$FAILED) { peg$savedPos = s3; s4 = peg$c131(s1, s5); s3 = s4; } else { peg$currPos = s3; s3 = peg$FAILED; } } else { peg$currPos = s3; s3 = peg$FAILED; } } if (s2 !== peg$FAILED) { peg$savedPos = s0; s1 = peg$c132(s1, s2); s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseunnamed() { var s0, s1; s0 = peg$currPos; if (input.charCodeAt(peg$currPos) === 95) { s1 = peg$c133; peg$currPos++; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c134); } } if (s1 !== peg$FAILED) { peg$savedPos = s0; s1 = peg$c135(); } s0 = s1; return s0; } function peg$parseexpr() { var s0, s1, s2, s3, s4, s5, s6, s7, s8; s0 = peg$currPos; s1 = []; s2 = peg$currPos; s3 = peg$currPos; peg$silentFails++; s4 = peg$currPos; s5 = peg$parseNewLine(); if (s5 !== peg$FAILED) { s6 = peg$parseDocComment(); if (s6 === peg$FAILED) { s6 = peg$parseidchar(); if (s6 === peg$FAILED) { s6 = peg$currPos; s7 = peg$currPos; peg$silentFails++; if (input.substr(peg$currPos, 2) === peg$c136) { s8 = peg$c136; peg$currPos += 2; } else { s8 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c137); } } peg$silentFails--; if (s8 === peg$FAILED) { s7 = void 0; } else { peg$currPos = s7; s7 = peg$FAILED; } if (s7 !== peg$FAILED) { s8 = peg$parsebinOpChar(); if (s8 !== peg$FAILED) { s7 = [s7, s8]; s6 = s7; } else { peg$currPos = s6; s6 = peg$FAILED; } } else { peg$currPos = s6; s6 = peg$FAILED; } if (s6 === peg$FAILED) { s6 = peg$parsebinOpDef(); } } } if (s6 !== peg$FAILED) { s5 = [s5, s6]; s4 = s5; } else { peg$currPos = s4; s4 = peg$FAILED; } } else { peg$currPos = s4; s4 = peg$FAILED; } peg$silentFails--; if (s4 === peg$FAILED) { s3 = void 0; } else { peg$currPos = s3; s3 = peg$FAILED; } if (s3 !== peg$FAILED) { s4 = peg$parseMultiLineComment(); if (s4 === peg$FAILED) { s4 = peg$parseMultiLineString(); if (s4 === peg$FAILED) { s4 = peg$parseSourceCharacter(); } } if (s4 !== peg$FAILED) { s3 = [s3, s4]; s2 = s3; } else { peg$currPos = s2; s2 = peg$FAILED; } } else { peg$currPos = s2; s2 = peg$FAILED; } while (s2 !== peg$FAILED) { s1.push(s2); s2 = peg$currPos; s3 = peg$currPos; peg$silentFails++; s4 = peg$currPos; s5 = peg$parseNewLine(); if (s5 !== peg$FAILED) { s6 = peg$parseDocComment(); if (s6 === peg$FAILED) { s6 = peg$parseidchar(); if (s6 === peg$FAILED) { s6 = peg$currPos; s7 = peg$currPos; peg$silentFails++; if (input.substr(peg$currPos, 2) === peg$c136) { s8 = peg$c136; peg$currPos += 2; } else { s8 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c137); } } peg$silentFails--; if (s8 === peg$FAILED) { s7 = void 0; } else { peg$currPos = s7; s7 = peg$FAILED; } if (s7 !== peg$FAILED) { s8 = peg$parsebinOpChar(); if (s8 !== peg$FAILED) { s7 = [s7, s8]; s6 = s7; } else { peg$currPos = s6; s6 = peg$FAILED; } } else { peg$currPos = s6; s6 = peg$FAILED; } if (s6 === peg$FAILED) { s6 = peg$parsebinOpDef(); } } } if (s6 !== peg$FAILED) { s5 = [s5, s6]; s4 = s5; } else { peg$currPos = s4; s4 = peg$FAILED; } } else { peg$currPos = s4; s4 = peg$FAILED; } peg$silentFails--; if (s4 === peg$FAILED) { s3 = void 0; } else { peg$currPos = s3; s3 = peg$FAILED; } if (s3 !== peg$FAILED) { s4 = peg$parseMultiLineComment(); if (s4 === peg$FAILED) { s4 = peg$parseMultiLineString(); if (s4 === peg$FAILED) { s4 = peg$parseSourceCharacter(); } } if (s4 !== peg$FAILED) { s3 = [s3, s4]; s2 = s3; } else { peg$currPos = s2; s2 = peg$FAILED; } } else { peg$currPos = s2; s2 = peg$FAILED; } } if (s1 !== peg$FAILED) { peg$savedPos = s0; s1 = peg$c138(s1); } s0 = s1; return s0; } function peg$parseref() { var s0, s1; s0 = peg$currPos; s1 = peg$parseid(); if (s1 !== peg$FAILED) { peg$savedPos = s0; s1 = peg$c139(s1); } s0 = s1; if (s0 === peg$FAILED) { s0 = peg$parsebinOpRef(); } return s0; } function peg$parseupperIds() { var s0, s1, s2, s3, s4, s5; s0 = peg$currPos; s1 = peg$parseupperId(); if (s1 !== peg$FAILED) { s2 = []; s3 = peg$currPos; if (input.charCodeAt(peg$currPos) === 46) { s4 = peg$c140; peg$currPos++; } else { s4 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c141); } } if (s4 !== peg$FAILED) { s5 = peg$parseupperId(); if (s5 !== peg$FAILED) { s4 = [s4, s5]; s3 = s4; } else { peg$currPos = s3; s3 = peg$FAILED; } } else { peg$currPos = s3; s3 = peg$FAILED; } while (s3 !== peg$FAILED) { s2.push(s3); s3 = peg$currPos; if (input.charCodeAt(peg$currPos) === 46) { s4 = peg$c140; peg$currPos++; } else { s4 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c141); } } if (s4 !== peg$FAILED) { s5 = peg$parseupperId(); if (s5 !== peg$FAILED) { s4 = [s4, s5]; s3 = s4; } else { peg$currPos = s3; s3 = peg$FAILED; } } else { peg$currPos = s3; s3 = peg$FAILED; } } if (s2 !== peg$FAILED) { peg$savedPos = s0; s1 = peg$c142(s1, s2); s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseupperId() { var s0, s1, s2, s3; s0 = peg$currPos; s1 = peg$parseupper(); if (s1 !== peg$FAILED) { s2 = []; s3 = peg$parseidchar(); while (s3 !== peg$FAILED) { s2.push(s3); s3 = peg$parseidchar(); } if (s2 !== peg$FAILED) { peg$savedPos = s0; s1 = peg$c143(s1, s2); s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseprefixedId() { var s0, s1, s2, s3; s0 = peg$currPos; s1 = peg$parseupperIds(); if (s1 !== peg$FAILED) { if (input.charCodeAt(peg$currPos) === 46) { s2 = peg$c140; peg$currPos++; } else { s2 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c141); } } if (s2 !== peg$FAILED) { s3 = peg$parseidName(); if (s3 !== peg$FAILED) { peg$savedPos = s0; s1 = peg$c144(s1, s3); s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseid() { var s0, s1, s2; s0 = peg$currPos; s1 = peg$currPos; peg$silentFails++; s2 = peg$parsereserved(); peg$silentFails--; if (s2 === peg$FAILED) { s1 = void 0; } else { peg$currPos = s1; s1 = peg$FAILED; } if (s1 !== peg$FAILED) { s2 = peg$parseidName(); if (s2 !== peg$FAILED) { peg$savedPos = s0; s1 = peg$c145(s2); s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseidName() { var s0, s1, s2, s3; s0 = peg$currPos; s1 = peg$parselower(); if (s1 !== peg$FAILED) { s2 = []; s3 = peg$parseidchar(); while (s3 !== peg$FAILED) { s2.push(s3); s3 = peg$parseidchar(); } if (s2 !== peg$FAILED) { peg$savedPos = s0; s1 = peg$c143(s1, s2); s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseComment() { var s0, s1; peg$silentFails++; s0 = peg$parseMultiLineComment(); if (s0 === peg$FAILED) { s0 = peg$parseSingleLineComment(); } peg$silentFails--; if (s0 === peg$FAILED) { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c146); } } return s0; } function peg$parseDocComment() { var s0, s1, s2, s3, s4, s5, s6; s0 = peg$currPos; if (input.substr(peg$currPos, 3) === peg$c147) { s1 = peg$c147; peg$currPos += 3; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c148); } } if (s1 !== peg$FAILED) { s2 = []; s3 = peg$currPos; s4 = peg$currPos; peg$silentFails++; if (input.substr(peg$currPos, 2) === peg$c149) { s5 = peg$c149; peg$currPos += 2; } else { s5 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c150); } } peg$silentFails--; if (s5 === peg$FAILED) { s4 = void 0; } else { peg$currPos = s4; s4 = peg$FAILED; } if (s4 !== peg$FAILED) { s5 = peg$currPos; s6 = peg$parseDocComment(); if (s6 !== peg$FAILED) { peg$savedPos = s5; s6 = peg$c151(s6); } s5 = s6; if (s5 === peg$FAILED) { s5 = peg$currPos; s6 = peg$parseMultiLineComment(); if (s6 !== peg$FAILED) { peg$savedPos = s5; s6 = peg$c152(s6); } s5 = s6; if (s5 === peg$FAILED) { s5 = peg$currPos; s6 = peg$parseSourceCharacter(); if (s6 !== peg$FAILED) { peg$savedPos = s5; s6 = peg$c153(s6); } s5 = s6; } } if (s5 !== peg$FAILED) { peg$savedPos = s3; s4 = peg$c154(s5); s3 = s4; } else { peg$currPos = s3; s3 = peg$FAILED; } } else { peg$currPos = s3; s3 = peg$FAILED; } while (s3 !== peg$FAILED) { s2.push(s3); s3 = peg$currPos; s4 = peg$currPos; peg$silentFails++; if (input.substr(peg$currPos, 2) === peg$c149) { s5 = peg$c149; peg$currPos += 2; } else { s5 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c150); } } peg$silentFails--; if (s5 === peg$FAILED) { s4 = void 0; } else { peg$currPos = s4; s4 = peg$FAILED; } if (s4 !== peg$FAILED) { s5 = peg$currPos; s6 = peg$parseDocComment(); if (s6 !== peg$FAILED) { peg$savedPos = s5; s6 = peg$c151(s6); } s5 = s6; if (s5 === peg$FAILED) { s5 = peg$currPos; s6 = peg$parseMultiLineComment(); if (s6 !== peg$FAILED) { peg$savedPos = s5; s6 = peg$c152(s6); } s5 = s6; if (s5 === peg$FAILED) { s5 = peg$currPos; s6 = peg$parseSourceCharacter(); if (s6 !== peg$FAILED) { peg$savedPos = s5; s6 = peg$c153(s6); } s5 = s6; } } if (s5 !== peg$FAILED) { peg$savedPos = s3; s4 = peg$c154(s5); s3 = s4; } else { peg$currPos = s3; s3 = peg$FAILED; } } else { peg$currPos = s3; s3 = peg$FAILED; } } if (s2 !== peg$FAILED) { if (input.substr(peg$currPos, 2) === peg$c149) { s3 = peg$c149; peg$currPos += 2; } else { s3 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c150); } } if (s3 !== peg$FAILED) { peg$savedPos = s0; s1 = peg$c155(s2); s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseMultiLineComment() { var s0, s1, s2, s3, s4, s5, s6, s7; s0 = peg$currPos; if (input.substr(peg$currPos, 2) === peg$c156) { s1 = peg$c156; peg$currPos += 2; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c157); } } if (s1 !== peg$FAILED) { s2 = peg$currPos; peg$silentFails++; if (input.charCodeAt(peg$currPos) === 124) { s3 = peg$c65; peg$currPos++; } else { s3 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c66); } } peg$silentFails--; if (s3 === peg$FAILED) { s2 = void 0; } else { peg$currPos = s2; s2 = peg$FAILED; } if (s2 !== peg$FAILED) { s3 = []; s4 = peg$currPos; s5 = peg$currPos; peg$silentFails++; if (input.substr(peg$currPos, 2) === peg$c149) { s6 = peg$c149; peg$currPos += 2; } else { s6 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c150); } } peg$silentFails--; if (s6 === peg$FAILED) { s5 = void 0; } else { peg$currPos = s5; s5 = peg$FAILED; } if (s5 !== peg$FAILED) { s6 = peg$currPos; s7 = peg$parseDocComment(); if (s7 !== peg$FAILED) { peg$savedPos = s6; s7 = peg$c158(s7); } s6 = s7; if (s6 === peg$FAILED) { s6 = peg$currPos; s7 = peg$parseMultiLineComment(); if (s7 !== peg$FAILED) { peg$savedPos = s6; s7 = peg$c152(s7); } s6 = s7; if (s6 === peg$FAILED) { s6 = peg$currPos; s7 = peg$parseSourceCharacter(); if (s7 !== peg$FAILED) { peg$savedPos = s6; s7 = peg$c153(s7); } s6 = s7; } } if (s6 !== peg$FAILED) { peg$savedPos = s4; s5 = peg$c159(s6); s4 = s5; } else { peg$currPos = s4; s4 = peg$FAILED; } } else { peg$currPos = s4; s4 = peg$FAILED; } while (s4 !== peg$FAILED) { s3.push(s4); s4 = peg$currPos; s5 = peg$currPos; peg$silentFails++; if (input.substr(peg$currPos, 2) === peg$c149) { s6 = peg$c149; peg$currPos += 2; } else { s6 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c150); } } peg$silentFails--; if (s6 === peg$FAILED) { s5 = void 0; } else { peg$currPos = s5; s5 = peg$FAILED; } if (s5 !== peg$FAILED) { s6 = peg$currPos; s7 = peg$parseDocComment(); if (s7 !== peg$FAILED) { peg$savedPos = s6; s7 = peg$c158(s7); } s6 = s7; if (s6 === peg$FAILED) { s6 = peg$currPos; s7 = peg$parseMultiLineComment(); if (s7 !== peg$FAILED) { peg$savedPos = s6; s7 = peg$c152(s7); } s6 = s7; if (s6 === peg$FAILED) { s6 = peg$currPos; s7 = peg$parseSourceCharacter(); if (s7 !== peg$FAILED) { peg$savedPos = s6; s7 = peg$c153(s7); } s6 = s7; } } if (s6 !== peg$FAILED) { peg$savedPos = s4; s5 = peg$c159(s6); s4 = s5; } else { peg$currPos = s4; s4 = peg$FAILED; } } else { peg$currPos = s4; s4 = peg$FAILED; } } if (s3 !== peg$FAILED) { if (input.substr(peg$currPos, 2) === peg$c149) { s4 = peg$c149; peg$currPos += 2; } else { s4 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c150); } } if (s4 !== peg$FAILED) { peg$savedPos = s0; s1 = peg$c160(s3); s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseMultiLineCommentNoLineTerminator() { var s0, s1, s2, s3, s4, s5; s0 = peg$currPos; if (input.substr(peg$currPos, 2) === peg$c156) { s1 = peg$c156; peg$currPos += 2; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c157); } } if (s1 !== peg$FAILED) { s2 = []; s3 = peg$currPos; s4 = peg$currPos; peg$silentFails++; if (input.substr(peg$currPos, 2) === peg$c149) { s5 = peg$c149; peg$currPos += 2; } else { s5 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c150); } } if (s5 === peg$FAILED) { s5 = peg$parseLineTerminator(); } peg$silentFails--; if (s5 === peg$FAILED) { s4 = void 0; } else { peg$currPos = s4; s4 = peg$FAILED; } if (s4 !== peg$FAILED) { s5 = peg$parseSourceCharacter(); if (s5 !== peg$FAILED) { s4 = [s4, s5]; s3 = s4; } else { peg$currPos = s3; s3 = peg$FAILED; } } else { peg$currPos = s3; s3 = peg$FAILED; } while (s3 !== peg$FAILED) { s2.push(s3); s3 = peg$currPos; s4 = peg$currPos; peg$silentFails++; if (input.substr(peg$currPos, 2) === peg$c149) { s5 = peg$c149; peg$currPos += 2; } else { s5 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c150); } } if (s5 === peg$FAILED) { s5 = peg$parseLineTerminator(); } peg$silentFails--; if (s5 === peg$FAILED) { s4 = void 0; } else { peg$currPos = s4; s4 = peg$FAILED; } if (s4 !== peg$FAILED) { s5 = peg$parseSourceCharacter(); if (s5 !== peg$FAILED) { s4 = [s4, s5]; s3 = s4; } else { peg$currPos = s3; s3 = peg$FAILED; } } else { peg$currPos = s3; s3 = peg$FAILED; } } if (s2 !== peg$FAILED) { if (input.substr(peg$currPos, 2) === peg$c149) { s3 = peg$c149; peg$currPos += 2; } else { s3 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c150); } } if (s3 !== peg$FAILED) { s1 = [s1, s2, s3]; s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseSingleLineComment() { var s0, s1, s2, s3, s4, s5; s0 = peg$currPos; if (input.substr(peg$currPos, 2) === peg$c136) { s1 = peg$c136; peg$currPos += 2; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c137); } } if (s1 !== peg$FAILED) { s2 = []; s3 = peg$currPos; s4 = peg$currPos; peg$silentFails++; s5 = peg$parseLineTerminator(); peg$silentFails--; if (s5 === peg$FAILED) { s4 = void 0; } else { peg$currPos = s4; s4 = peg$FAILED; } if (s4 !== peg$FAILED) { s5 = peg$parseSourceCharacter(); if (s5 !== peg$FAILED) { s4 = [s4, s5]; s3 = s4; } else { peg$currPos = s3; s3 = peg$FAILED; } } else { peg$currPos = s3; s3 = peg$FAILED; } while (s3 !== peg$FAILED) { s2.push(s3); s3 = peg$currPos; s4 = peg$currPos; peg$silentFails++; s5 = peg$parseLineTerminator(); peg$silentFails--; if (s5 === peg$FAILED) { s4 = void 0; } else { peg$currPos = s4; s4 = peg$FAILED; } if (s4 !== peg$FAILED) { s5 = peg$parseSourceCharacter(); if (s5 !== peg$FAILED) { s4 = [s4, s5]; s3 = s4; } else { peg$currPos = s3; s3 = peg$FAILED; } } else { peg$currPos = s3; s3 = peg$FAILED; } } if (s2 !== peg$FAILED) { s1 = [s1, s2]; s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseMultiLineString() { var s0, s1, s2, s3, s4, s5; s0 = peg$currPos; if (input.substr(peg$currPos, 3) === peg$c161) { s1 = peg$c161; peg$currPos += 3; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c162); } } if (s1 !== peg$FAILED) { s2 = []; s3 = peg$currPos; s4 = peg$currPos; peg$silentFails++; if (input.substr(peg$currPos, 3) === peg$c161) { s5 = peg$c161; peg$currPos += 3; } else { s5 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c162); } } peg$silentFails--; if (s5 === peg$FAILED) { s4 = void 0; } else { peg$currPos = s4; s4 = peg$FAILED; } if (s4 !== peg$FAILED) { s5 = peg$parseSourceCharacter(); if (s5 !== peg$FAILED) { s4 = [s4, s5]; s3 = s4; } else { peg$currPos = s3; s3 = peg$FAILED; } } else { peg$currPos = s3; s3 = peg$FAILED; } while (s3 !== peg$FAILED) { s2.push(s3); s3 = peg$currPos; s4 = peg$currPos; peg$silentFails++; if (input.substr(peg$currPos, 3) === peg$c161) { s5 = peg$c161; peg$currPos += 3; } else { s5 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c162); } } peg$silentFails--; if (s5 === peg$FAILED) { s4 = void 0; } else { peg$currPos = s4; s4 = peg$FAILED; } if (s4 !== peg$FAILED) { s5 = peg$parseSourceCharacter(); if (s5 !== peg$FAILED) { s4 = [s4, s5]; s3 = s4; } else { peg$currPos = s3; s3 = peg$FAILED; } } else { peg$currPos = s3; s3 = peg$FAILED; } } if (s2 !== peg$FAILED) { if (input.substr(peg$currPos, 3) === peg$c161) { s3 = peg$c161; peg$currPos += 3; } else { s3 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c162); } } if (s3 !== peg$FAILED) { s1 = [s1, s2, s3]; s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parsereserved() { var s0, s1, s2, s3; s0 = peg$currPos; if (input.substr(peg$currPos, 6) === peg$c11) { s1 = peg$c11; peg$currPos += 6; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c12); } } if (s1 === peg$FAILED) { if (input.substr(peg$currPos, 4) === peg$c55) { s1 = peg$c55; peg$currPos += 4; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c56); } } if (s1 === peg$FAILED) { if (input.substr(peg$currPos, 8) === peg$c29) { s1 = peg$c29; peg$currPos += 8; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c30); } } if (s1 === peg$FAILED) { if (input.substr(peg$currPos, 6) === peg$c22) { s1 = peg$c22; peg$currPos += 6; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c23); } } if (s1 === peg$FAILED) { if (input.substr(peg$currPos, 4) === peg$c8) { s1 = peg$c8; peg$currPos += 4; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c9); } } if (s1 === peg$FAILED) { if (input.substr(peg$currPos, 2) === peg$c163) { s1 = peg$c163; peg$currPos += 2; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c164); } } if (s1 === peg$FAILED) { if (input.substr(peg$currPos, 4) === peg$c165) { s1 = peg$c165; peg$currPos += 4; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c166); } } if (s1 === peg$FAILED) { if (input.substr(peg$currPos, 4) === peg$c167) { s1 = peg$c167; peg$currPos += 4; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c168); } } if (s1 === peg$FAILED) { if (input.substr(peg$currPos, 3) === peg$c169) { s1 = peg$c169; peg$currPos += 3; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c170); } } if (s1 === peg$FAILED) { if (input.substr(peg$currPos, 2) === peg$c171) { s1 = peg$c171; peg$currPos += 2; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c172); } } if (s1 === peg$FAILED) { if (input.substr(peg$currPos, 4) === peg$c173) { s1 = peg$c173; peg$currPos += 4; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c174); } } if (s1 === peg$FAILED) { if (input.substr(peg$currPos, 2) === peg$c175) { s1 = peg$c175; peg$currPos += 2; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c176); } } if (s1 === peg$FAILED) { if (input.substr(peg$currPos, 2) === peg$c24) { s1 = peg$c24; peg$currPos += 2; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c25); } } if (s1 === peg$FAILED) { if (input.substr(peg$currPos, 5) === peg$c91) { s1 = peg$c91; peg$currPos += 5; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c92); } } if (s1 === peg$FAILED) { if (input.substr(peg$currPos, 6) === peg$c89) { s1 = peg$c89; peg$currPos += 6; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c90); } } if (s1 === peg$FAILED) { if (input.substr(peg$currPos, 6) === peg$c87) { s1 = peg$c87; peg$currPos += 6; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c88); } } } } } } } } } } } } } } } } } if (s1 !== peg$FAILED) { s2 = peg$currPos; peg$silentFails++; s3 = peg$parseidchar(); peg$silentFails--; if (s3 === peg$FAILED) { s2 = void 0; } else { peg$currPos = s2; s2 = peg$FAILED; } if (s2 !== peg$FAILED) { s1 = [s1, s2]; s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseidchar() { var s0; s0 = peg$parseupper(); if (s0 === peg$FAILED) { s0 = peg$parselower(); if (s0 === peg$FAILED) { s0 = peg$parsenumber(); if (s0 === peg$FAILED) { if (input.charCodeAt(peg$currPos) === 95) { s0 = peg$c133; peg$currPos++; } else { s0 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c134); } } if (s0 === peg$FAILED) { if (input.charCodeAt(peg$currPos) === 39) { s0 = peg$c177; peg$currPos++; } else { s0 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c178); } } } } } } return s0; } function peg$parseupper() { var s0; if (peg$c179.test(input.charAt(peg$currPos))) { s0 = input.charAt(peg$currPos); peg$currPos++; } else { s0 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c180); } } return s0; } function peg$parselower() { var s0; if (peg$c181.test(input.charAt(peg$currPos))) { s0 = input.charAt(peg$currPos); peg$currPos++; } else { s0 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c182); } } return s0; } function peg$parsenumber() { var s0; if (peg$c183.test(input.charAt(peg$currPos))) { s0 = input.charAt(peg$currPos); peg$currPos++; } else { s0 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c184); } } return s0; } function peg$parsebinOpRef() { var s0, s1, s2, s3, s4, s5; s0 = peg$currPos; if (input.charCodeAt(peg$currPos) === 40) { s1 = peg$c31; peg$currPos++; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c32); } } if (s1 !== peg$FAILED) { s2 = peg$parse_(); if (s2 !== peg$FAILED) { s3 = peg$parsebinOp(); if (s3 !== peg$FAILED) { s4 = peg$parse_(); if (s4 !== peg$FAILED) { if (input.charCodeAt(peg$currPos) === 41) { s5 = peg$c33; peg$currPos++; } else { s5 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c34); } } if (s5 !== peg$FAILED) { peg$savedPos = s0; s1 = peg$c185(s3); s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parsebinOp() { var s0, s1, s2, s3; s0 = peg$currPos; s1 = peg$parsebinOpChar(); if (s1 !== peg$FAILED) { s2 = []; s3 = peg$parsebinOpChar(); while (s3 !== peg$FAILED) { s2.push(s3); s3 = peg$parsebinOpChar(); } if (s2 !== peg$FAILED) { peg$savedPos = s0; s1 = peg$c186(s1, s2); s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parsebinOpChar() { var s0; if (input.charCodeAt(peg$currPos) === 43) { s0 = peg$c187; peg$currPos++; } else { s0 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c188); } } if (s0 === peg$FAILED) { if (input.charCodeAt(peg$currPos) === 45) { s0 = peg$c189; peg$currPos++; } else { s0 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c190); } } if (s0 === peg$FAILED) { if (input.charCodeAt(peg$currPos) === 42) { s0 = peg$c191; peg$currPos++; } else { s0 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c192); } } if (s0 === peg$FAILED) { if (input.charCodeAt(peg$currPos) === 38) { s0 = peg$c193; peg$currPos++; } else { s0 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c194); } } if (s0 === peg$FAILED) { if (input.charCodeAt(peg$currPos) === 37) { s0 = peg$c195; peg$currPos++; } else { s0 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c196); } } if (s0 === peg$FAILED) { if (input.charCodeAt(peg$currPos) === 94) { s0 = peg$c197; peg$currPos++; } else { s0 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c198); } } if (s0 === peg$FAILED) { if (input.charCodeAt(peg$currPos) === 60) { s0 = peg$c199; peg$currPos++; } else { s0 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c200); } } if (s0 === peg$FAILED) { if (input.charCodeAt(peg$currPos) === 62) { s0 = peg$c201; peg$currPos++; } else { s0 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c202); } } if (s0 === peg$FAILED) { if (input.charCodeAt(peg$currPos) === 124) { s0 = peg$c65; peg$currPos++; } else { s0 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c66); } } if (s0 === peg$FAILED) { if (input.charCodeAt(peg$currPos) === 61) { s0 = peg$c60; peg$currPos++; } else { s0 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c61); } } if (s0 === peg$FAILED) { if (input.charCodeAt(peg$currPos) === 36) { s0 = peg$c203; peg$currPos++; } else { s0 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c204); } } if (s0 === peg$FAILED) { if (input.charCodeAt(peg$currPos) === 64) { s0 = peg$c205; peg$currPos++; } else { s0 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c206); } } if (s0 === peg$FAILED) { if (input.charCodeAt(peg$currPos) === 35) { s0 = peg$c207; peg$currPos++; } else { s0 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c208); } } if (s0 === peg$FAILED) { if (input.charCodeAt(peg$currPos) === 47) { s0 = peg$c209; peg$currPos++; } else { s0 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c210); } } if (s0 === peg$FAILED) { if (input.charCodeAt(peg$currPos) === 58) { s0 = peg$c80; peg$currPos++; } else { s0 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c81); } } if (s0 === peg$FAILED) { if (input.charCodeAt(peg$currPos) === 63) { s0 = peg$c211; peg$currPos++; } else { s0 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c212); } } if (s0 === peg$FAILED) { if (input.charCodeAt(peg$currPos) === 126) { s0 = peg$c213; peg$currPos++; } else { s0 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c214); } } if (s0 === peg$FAILED) { if (input.charCodeAt(peg$currPos) === 33) { s0 = peg$c215; peg$currPos++; } else { s0 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c216); } } if (s0 === peg$FAILED) { if (input.charCodeAt(peg$currPos) === 46) { s0 = peg$c140; peg$currPos++; } else { s0 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c141); } } } } } } } } } } } } } } } } } } } } return s0; } function peg$parseLineTerminator() { var s0; if (peg$c217.test(input.charAt(peg$currPos))) { s0 = input.charAt(peg$currPos); peg$currPos++; } else { s0 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c218); } } return s0; } function peg$parseLineTerminatorSequence() { var s0, s1; peg$silentFails++; if (input.charCodeAt(peg$currPos) === 10) { s0 = peg$c220; peg$currPos++; } else { s0 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c221); } } if (s0 === peg$FAILED) { if (input.substr(peg$currPos, 2) === peg$c222) { s0 = peg$c222; peg$currPos += 2; } else { s0 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c223); } } if (s0 === peg$FAILED) { if (input.charCodeAt(peg$currPos) === 13) { s0 = peg$c224; peg$currPos++; } else { s0 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c225); } } if (s0 === peg$FAILED) { if (input.charCodeAt(peg$currPos) === 8232) { s0 = peg$c226; peg$currPos++; } else { s0 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c227); } } if (s0 === peg$FAILED) { if (input.charCodeAt(peg$currPos) === 8233) { s0 = peg$c228; peg$currPos++; } else { s0 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c229); } } } } } } peg$silentFails--; if (s0 === peg$FAILED) { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c219); } } return s0; } function peg$parseMANDATORY_LAYOUT() { var s0, s1, s2, s3, s4; s0 = []; s1 = peg$parseNewLine(); if (s1 === peg$FAILED) { s1 = peg$currPos; s2 = peg$parseMultiLineComment(); if (s2 !== peg$FAILED) { s3 = peg$parseEOS(); if (s3 !== peg$FAILED) { s4 = peg$parseNewLine(); if (s4 !== peg$FAILED) { s2 = [s2, s3, s4]; s1 = s2; } else { peg$currPos = s1; s1 = peg$FAILED; } } else { peg$currPos = s1; s1 = peg$FAILED; } } else { peg$currPos = s1; s1 = peg$FAILED; } if (s1 === peg$FAILED) { s1 = peg$currPos; s2 = peg$parseEOS(); if (s2 !== peg$FAILED) { s3 = peg$parseNewLine(); if (s3 !== peg$FAILED) { s2 = [s2, s3]; s1 = s2; } else { peg$currPos = s1; s1 = peg$FAILED; } } else { peg$currPos = s1; s1 = peg$FAILED; } } } if (s1 !== peg$FAILED) { while (s1 !== peg$FAILED) { s0.push(s1); s1 = peg$parseNewLine(); if (s1 === peg$FAILED) { s1 = peg$currPos; s2 = peg$parseMultiLineComment(); if (s2 !== peg$FAILED) { s3 = peg$parseEOS(); if (s3 !== peg$FAILED) { s4 = peg$parseNewLine(); if (s4 !== peg$FAILED) { s2 = [s2, s3, s4]; s1 = s2; } else { peg$currPos = s1; s1 = peg$FAILED; } } else { peg$currPos = s1; s1 = peg$FAILED; } } else { peg$currPos = s1; s1 = peg$FAILED; } if (s1 === peg$FAILED) { s1 = peg$currPos; s2 = peg$parseEOS(); if (s2 !== peg$FAILED) { s3 = peg$parseNewLine(); if (s3 !== peg$FAILED) { s2 = [s2, s3]; s1 = s2; } else { peg$currPos = s1; s1 = peg$FAILED; } } else { peg$currPos = s1; s1 = peg$FAILED; } } } } } else { s0 = peg$FAILED; } return s0; } function peg$parseLAYOUT() { var s0, s1, s2, s3, s4; s0 = []; s1 = peg$parseNewLine(); if (s1 === peg$FAILED) { s1 = peg$currPos; s2 = peg$parseMultiLineComment(); if (s2 !== peg$FAILED) { s3 = peg$parseEOS(); if (s3 !== peg$FAILED) { s4 = peg$parseNewLine(); if (s4 !== peg$FAILED) { s2 = [s2, s3, s4]; s1 = s2; } else { peg$currPos = s1; s1 = peg$FAILED; } } else { peg$currPos = s1; s1 = peg$FAILED; } } else { peg$currPos = s1; s1 = peg$FAILED; } if (s1 === peg$FAILED) { s1 = peg$currPos; s2 = peg$parseEOS(); if (s2 !== peg$FAILED) { s3 = peg$parseNewLine(); if (s3 !== peg$FAILED) { s2 = [s2, s3]; s1 = s2; } else { peg$currPos = s1; s1 = peg$FAILED; } } else { peg$currPos = s1; s1 = peg$FAILED; } } } while (s1 !== peg$FAILED) { s0.push(s1); s1 = peg$parseNewLine(); if (s1 === peg$FAILED) { s1 = peg$currPos; s2 = peg$parseMultiLineComment(); if (s2 !== peg$FAILED) { s3 = peg$parseEOS(); if (s3 !== peg$FAILED) { s4 = peg$parseNewLine(); if (s4 !== peg$FAILED) { s2 = [s2, s3, s4]; s1 = s2; } else { peg$currPos = s1; s1 = peg$FAILED; } } else { peg$currPos = s1; s1 = peg$FAILED; } } else { peg$currPos = s1; s1 = peg$FAILED; } if (s1 === peg$FAILED) { s1 = peg$currPos; s2 = peg$parseEOS(); if (s2 !== peg$FAILED) { s3 = peg$parseNewLine(); if (s3 !== peg$FAILED) { s2 = [s2, s3]; s1 = s2; } else { peg$currPos = s1; s1 = peg$FAILED; } } else { peg$currPos = s1; s1 = peg$FAILED; } } } } return s0; } function peg$parseEOS() { var s0, s1, s2; s0 = peg$currPos; s1 = []; s2 = peg$parseWhiteSpace(); if (s2 === peg$FAILED) { s2 = peg$parseMultiLineComment(); } while (s2 !== peg$FAILED) { s1.push(s2); s2 = peg$parseWhiteSpace(); if (s2 === peg$FAILED) { s2 = peg$parseMultiLineComment(); } } if (s1 !== peg$FAILED) { s2 = peg$parseSingleLineComment(); if (s2 === peg$FAILED) { s2 = null; } if (s2 !== peg$FAILED) { s1 = [s1, s2]; s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseEOF() { var s0, s1; s0 = peg$currPos; peg$silentFails++; if (input.length > peg$currPos) { s1 = input.charAt(peg$currPos); peg$currPos++; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c4); } } peg$silentFails--; if (s1 === peg$FAILED) { s0 = void 0; } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseNewLine() { var s0, s1; peg$silentFails++; if (input.charCodeAt(peg$currPos) === 10) { s0 = peg$c220; peg$currPos++; } else { s0 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c221); } } if (s0 === peg$FAILED) { if (input.substr(peg$currPos, 2) === peg$c222) { s0 = peg$c222; peg$currPos += 2; } else { s0 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c223); } } } peg$silentFails--; if (s0 === peg$FAILED) { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c230); } } return s0; } function peg$parse__() { var s0, s1; s0 = []; s1 = peg$parsews_ignores(); if (s1 !== peg$FAILED) { while (s1 !== peg$FAILED) { s0.push(s1); s1 = peg$parsews_ignores(); } } else { s0 = peg$FAILED; } return s0; } function peg$parse_() { var s0, s1; s0 = []; s1 = peg$parsews_ignores(); while (s1 !== peg$FAILED) { s0.push(s1); s1 = peg$parsews_ignores(); } return s0; } function peg$parsews_ignores() { var s0, s1, s2, s3; s0 = peg$parseWhiteSpace(); if (s0 === peg$FAILED) { s0 = peg$parseMultiLineComment(); if (s0 === peg$FAILED) { s0 = peg$currPos; s1 = peg$parseSingleLineComment(); if (s1 !== peg$FAILED) { s2 = peg$currPos; peg$silentFails++; s3 = peg$parseNewLine(); peg$silentFails--; if (s3 !== peg$FAILED) { peg$currPos = s2; s2 = void 0; } else { s2 = peg$FAILED; } if (s2 !== peg$FAILED) { s1 = [s1, s2]; s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } if (s0 === peg$FAILED) { s0 = peg$currPos; s1 = peg$parseNewLine(); if (s1 !== peg$FAILED) { s2 = peg$currPos; peg$silentFails++; s3 = peg$parseNewLine(); if (s3 === peg$FAILED) { s3 = peg$parseMultiLineComment(); if (s3 === peg$FAILED) { s3 = peg$parseSingleLineComment(); if (s3 === peg$FAILED) { s3 = peg$parseWhiteSpace(); } } } peg$silentFails--; if (s3 !== peg$FAILED) { peg$currPos = s2; s2 = void 0; } else { s2 = peg$FAILED; } if (s2 !== peg$FAILED) { s1 = [s1, s2]; s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } } } return s0; } function peg$parseWhiteSpace() { var s0, s1; peg$silentFails++; if (input.charCodeAt(peg$currPos) === 9) { s0 = peg$c232; peg$currPos++; } else { s0 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c233); } } if (s0 === peg$FAILED) { if (input.charCodeAt(peg$currPos) === 11) { s0 = peg$c234; peg$currPos++; } else { s0 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c235); } } if (s0 === peg$FAILED) { if (input.charCodeAt(peg$currPos) === 12) { s0 = peg$c236; peg$currPos++; } else { s0 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c237); } } if (s0 === peg$FAILED) { if (input.charCodeAt(peg$currPos) === 32) { s0 = peg$c238; peg$currPos++; } else { s0 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c239); } } if (s0 === peg$FAILED) { if (input.charCodeAt(peg$currPos) === 160) { s0 = peg$c240; peg$currPos++; } else { s0 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c241); } } if (s0 === peg$FAILED) { if (input.charCodeAt(peg$currPos) === 65279) { s0 = peg$c242; peg$currPos++; } else { s0 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c243); } } } } } } } peg$silentFails--; if (s0 === peg$FAILED) { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c231); } } return s0; } function peg$parseSourceCharacter() { var s0; if (input.length > peg$currPos) { s0 = input.charAt(peg$currPos); peg$currPos++; } else { s0 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c4); } } return s0; } function placeholder() { } function validateBinOp(binOp) { if (["|", "->", "--", "=", ":", ".."].indexOf(binOp) > -1) { error(binOp + " is an illegal binop"); } } peg$result = peg$startRuleFunction(); if (peg$result !== peg$FAILED && peg$currPos === input.length) { return peg$result; } else { if (peg$result !== peg$FAILED && peg$currPos < input.length) { peg$fail({ type: "end", description: "end of input" }); } throw peg$buildException( null, peg$maxFailExpected, peg$maxFailPos < input.length ? input.charAt(peg$maxFailPos) : null, peg$maxFailPos < input.length ? peg$computeLocation(peg$maxFailPos, peg$maxFailPos + 1) : peg$computeLocation(peg$maxFailPos, peg$maxFailPos) ); } } return { SyntaxError: peg$SyntaxError, parse: peg$parse }; })(); ================================================ FILE: package.json ================================================ { "name": "elm-light", "preferGlobal": true, "version": "0.0.1", "author": "Magnus Rundberge ", "description": "Set up of node deps for Light Table elm-light plugin", "license": "MIT", "engines": { "node": ">=0.10" }, "dependencies": { "d3": "~3.5.12", "dagre-d3": "~0.4.11", "fs-walk": "~0.0.1", "harbor": "~0.3.0", "marked": "~0.3.6", "ps-tree": "~1.0.1", "wrench": "~1.5.8", "temp": "0.8.3", "cross-spawn" : "5.0.1", "shelljs" : "0.7.5" } } ================================================ FILE: plugin.edn ================================================ {:name "elm-light" :version "0.5.1" :author "Magnus Rundberget" :source "https://github.com/rundis/elm-light" :desc "Elm language plugin for Light Table" :behaviors "elm-light.behaviors"} ================================================ FILE: project.clj ================================================ (defproject elm-light "0.5.1" :dependencies [[org.clojure/clojure "1.5.1"] [quiescent "0.1.4"] [org.clojure/core.async "0.1.267.0-0d7780-alpha"]]) ================================================ FILE: src/lt/plugins/elm_light/autocompleter/core.cljs ================================================ (ns lt.plugins.elm-light.autocompleter.core "Basis for generic autocompleter for LT" (:require [lt.objs.editor :as editor] [lt.objs.editor.pool :as pool] [lt.objs.command :as cmd] [lt.object :as object] [lt.util.js :as jsutil] [lt.util.dom :as dom] [lt.objs.context :as ctx] [lt.objs.keyboard :as keyboard] [cljs.core.async :as async :refer [> hints (filter #(< (.-length (:displayText %)) 1000)) distinct-completions (take 25) (hash-map :list) (#(let [fst (-> % :list first)] (assoc % :from (:from fst) :to (:to fst)))) ;; allthough we've enforced from-to on each item, CM insists on having this props at root level to clj->js))) (defn- listen-for-hint-results "Listen for hint results from all given channels Will raise a behavior to show results when all channels have delivered a result or alternatively the specified timeout has elapsed" [ed channels hinter-ch] (let [t (timeout 500)] ;; should be configurable ? (go-loop [all-results [] chs (conj channels t)] (if (= 1 (count chs)) (put! hinter-ch all-results) (let [[res source] (async/alts! chs)] (if (identical? source t) (do (println "WARNING: Timeout waiting for hinter provider channel results") (put! hinter-ch all-results)) (recur (into all-results res) (remove #{source} chs)))))))) (defn- completion-active? [ed] (.-completionActive (.-state (editor/->cm-ed ed)))) (defn- maybe-close-hinter [ed] (when-let [state (completion-active? ed)] (.close state))) (defn- on-line-change [line ch] (let [ed (pool/last-active)] (if-not (completion-active? ed) (js/CodeMirror.off line "change" on-line-change) (when (= "+delete" (.-origin ch)) ;; TODO: should probably handle paste and other things to (object/raise ed :start-hinting))))) (defn- init-show-hint-ch "Creates a channel for writing results that are to be popped up with the hinter ui Displays hint results async by calling the showHint plugin callback when results are received on the channel" [ed] (let [ch (chan)] (js/CodeMirror.showHint (editor/->cm-ed ed) (fn [_ cb] (let [chs (object/raise-reduce ed :init-hints [])] (when (seq chs) (go (let [hints (js default-options)) ch)) (behavior ::start-hinting :triggers #{:start-hinting} :desc "Autocompleter: Start hinting" :reaction (fn [ed] (let [pos (editor/->cursor ed) line-handle (editor/line-handle ed (:line pos))] (when-not (completion-active? ed) (init-show-hint-ch ed))))) (behavior ::auto-show-on-input :triggers #{:input} :debounce 10 :desc "Autocompleter: Show on change" :reaction (fn [ed _ ch] (object/raise ed :start-hinting))) ================================================ FILE: src/lt/plugins/elm_light/autocompleter.cljs ================================================ (ns lt.plugins.elm-light.autocompleter (:require [quiescent :as q :include-macros true] [quiescent.dom :as d])) (defn find-active [items] (first (filter :active items))) (defn- handle-keypress [{:keys [on-up on-down on-select on-cancel] :as props} ev] (let [kk (.-which ev)] (case kk 38 (do (.preventDefault ev) (on-up)) 40 (do (.preventDefault ev) (on-down)) 13 (do (.preventDefault ev) (when-let [active (find-active (:items props))] (set! (.-value (.-target ev)) (:name active))) (on-select)) 27 (do (.preventDefault ev) (set! (.-value (.-target ev)) "") (on-cancel)) :default))) (q/defcomponent AutoCompleteMenu [props] (let [items (:items props) style (when-not (seq items) {:display "none"}) item-classes #(.concat "autocomplete-dropdown-item row" (if (:active %) " autocomplete-active" ""))] (apply d/div {:onMouseDown (fn [e] (.preventDefault e) (.stopPropagation e)) :className "autocomplete-dropdown-menu" :style style} (map (fn [item] (d/div {:className (item-classes item)} (d/div {} (:name item)))) items)))) (q/defcomponent Adder [{:keys [on-add-package disabled] :as props}] (d/button {:className "btn" :disabled disabled :onClick #(on-add-package)} "Add package")) (q/defcomponent Versions [props] (apply d/select {:className "versions" :value (:version props) :onChange #((:on-change-version props) (.-value (.-target %)))} (map #(d/option {} %) (:versions props)))) (q/defcomponent AutoComplete [props] (d/span {} (d/input {:value (:value props) :style {:width "250px"} :name "package-search" :autoComplete "off" :autoFocus true :type "text" :onKeyDown (partial handle-keypress props) :onBlur (fn [_] ((:on-blur props))) :onChange (fn [ev] ((:on-change props) (aget ev "target" "value")))}) (Versions props) (Adder (assoc props :disabled (nil? (:version props)))) (d/div {:className "autocomplete-dropdown"} (AutoCompleteMenu props)))) ================================================ FILE: src/lt/plugins/elm_light/clients.cljs ================================================ (ns lt.plugins.elm-light.clients (:require [lt.plugins.elm-light.utils :as u] [lt.plugins.elm-light.elm-ast :as ast] [lt.objs.files :as files] [lt.object :as object] [lt.objs.console :as console] [lt.objs.notifos :as notifos] [lt.objs.clients :as cs] [lt.objs.proc :as proc] [lt.objs.eval :as eval] [lt.objs.editor.pool :as pool] [lt.objs.dialogs :as dialogs] [lt.objs.sidebar.clients :as scl] [lt.objs.popup :as popup] [lt.objs.platform :as platform] [clojure.string :as s]) (:require-macros [lt.macros :refer [behavior]])) (def cp (js/require "child_process")) (def os (js/require "os")) (def elm-client-path (files/join u/elm-plugin-dir "node/elm-client.js")) (def elm-node-path (files/join u/elm-plugin-dir "node_modules")) (def shelljs (js/require (files/join elm-node-path "shelljs"))) (declare elm) (def harbor ((js/require (files/join elm-node-path "harbor")) 3000, 4000)) (defn claim-reactor-port [path cb] (.claim harbor path cb)) (defn release-reactor-port [path] (.release harbor path)) (defn on-exit [client] (ast/delete-project-ast! (:dir @client)) (doseq [ed (pool/containing-path (:dir @client))] (object/raise ed :project-disconnected)) (release-reactor-port (:dir @client)) (cs/rem! client)) (defn on-elm-message [client data] (let [msg (u/mod-js->clj data :keywordize-keys true) logTime (js/Date.) logPrefix (str (.getSeconds logTime) ":" (.getMilliseconds logTime) " >>")] (cond (= (second msg) "elm.client.connected") (do (notifos/done-working (str "Project connected: " (:dir @client))) (object/raise client :connect) (object/raise cs/clients :connect client) (doseq [ed (pool/containing-path (:dir @client))] ;(println "Raise connected : " (-> @ed :info :path)) (object/raise ed :project-connected))) (= (second msg) "elm.ast.update") (let [{:keys [file type ast error package]} (last msg)] (case type "parseError" (console/error (str file "\n" error)) "parsed" (ast/upsert-ast! (:dir @client) {:file file :ast ast :package package}) "deleted" (ast/delete-ast! (:dir @client) file) "packagesDeleted" (do (ast/delete-package-asts! (:dir @client)) (notifos/set-msg! (str "Elm stuff for " (:dir @client) " was nuked, all package ASTs are lost. Do a package install or lint to get them back !") {:class "error"})) (do (println "Unhandled ast event:" type file)))) (= (second msg) "doc.search.results") (object/raise elm :elm.doc.search.results (assoc-in msg [2 :project-dir] (:dir @client))) :else (object/raise cs/clients :message msg)))) (defn start-elm-worker [path port client] (let [worker (.fork cp elm-client-path #js [port] (clj->js {:execPath (.-executable js/process) :cwd path :silent true :env (if (= (.platform os) "win32") {:NODE_PATH elm-node-path} (proc/merge-env {:NODE_PATH elm-node-path}))}))] (.on (.-stdout worker) "data" (fn [msg] (println (str "out: " msg)))) (.on (.-stderr worker) "data" (fn [err] (notifos/set-msg! (str "Elm error: " err) {:class "error"}) (console/error err))) (.on worker "message" #(on-elm-message client %)) (.on worker "exit" #(on-exit client)) worker)) (behavior ::send! :triggers #{:send!} :reaction (fn [client msg] (.send (:worker @client) (clj->js msg)))) (defn start-elm-client [{:keys [path proj-path client] :as props}] (notifos/working "Connecting..") (claim-reactor-port proj-path (fn [_ port] (let [worker (start-elm-worker proj-path port client)] (object/merge! client {:name (files/basename proj-path) :dir proj-path :reactor-port port :worker worker :commands #{:editor.elm.lint :editor.eval.elm :editor.elm.make :editor.elm.ast.passthrough :elm.reload.ast :editor.elm.ast.parsetext :editor.elm.hint :docs.elm.search :editor.elm.doc :elm.repl.restart :editor.elm.gendoc :elm.test :elm.test.suite}}) (object/add-behavior! client ::send!))))) (defn handle-no-elm [] (notifos/done-working) (console/log (.-PATH (.-env js/process))) (popup/popup! {:header "We couldn't find Elm (elm-make) in your path" :body (str "In order to use elm-light, Elm must be installed and on your system PATH." "(Check the console for PATH as seen from Light Table") :buttons [{:label "Install Elm" :action (fn [] (platform/open "https://guide.elm-lang.org/install.html"))} {:label "ok"}]})) (defn check-elm [] (.which shelljs "elm-make")) (defn try-connect [{:keys [info command] :as props}] (let [path (:path info) proj-path (u/project-path path) client (cs/client! :elm-client)] (cond (not (seq proj-path)) (do (notifos/done-working) (notifos/set-msg! (str "Couldn't find a elm-package.json in any parent of path: " path) {:class "error"}) (cs/rem! client)) (not (check-elm)) (do (handle-no-elm) (cs/rem! client)) :else (let [[ok? msg] (u/valid-project-elm-version proj-path)] (if ok? (start-elm-client {:path path :proj-path proj-path :client client}) (do (notifos/done-working) (console/error msg) (notifos/set-msg! msg {:class "error"}) (cs/rem! client))))) client)) (defn find-client [{:keys [origin command info create] :as opts}] (let [proj-path (u/project-path (:path info)) [result client] (cs/discover command info)] (condp = result :none (if create (create opts) (do (notifos/done-working) (object/raise eval/evaler :no-client opts) (cs/placeholder))) :found (if (= (:dir @client) proj-path) client (create opts)) :select (do (object/raise eval/evaler :select-client client (fn [client] (cs/swap-client! (-> @origin :client :default) client) (object/update! origin [:client] assoc :default client))) (cs/placeholder))))) (defn get-eval-client "Helper method to get eval client for a given editor and command If none found it will try to connect" ([ed cmd] (get-eval-client ed cmd try-connect)) ([ed cmd create] (let [cur (-> @ed :client :default)] (if (and cur (cs/available? cur)) cur (let [neue (find-client {:command cmd :origin ed :info (:info @ed) :create create})] (object/update! ed [:client] assoc :default neue) (object/raise ed :set-client neue) neue))))) (defn get-eval-client-if-connected "Helper method to get eval client for a given editor and command" [ed cmd] (get-eval-client ed cmd (fn [opts] (notifos/done-working "") nil))) ;; TODO : Need to have this here for now, because behaviour must be defined before Elm object is created (behavior ::elm-doc-search-results :desc "Workaround behavior for showing doc search results in sidebar" :triggers #{:elm.doc.search.results} :reaction (fn [_ [client-id command msg]] (object/raise cs/clients :message [client-id command (ast/search-docs (:search msg) (:project-dir msg))]))) (behavior ::eval! :triggers #{:eval!} :reaction (fn [this event] (let [{:keys [info origin]} event] (notifos/working "Evaluating elm...") (cs/send (eval/get-client! {:command :editor.eval.elm :origin origin :info info :create try-connect}) :editor.eval.elm info :only origin)))) ;;**************************************************** ;; LT Connection stuff ;;**************************************************** (behavior ::connect :triggers #{:connect} :reaction (fn [this path] (try-connect {:info {:path path}}))) (object/object* ::elm-lang :tags #{:elm.lang}) (def elm (object/create ::elm-lang)) (scl/add-connector {:name "Elm" :desc "Select a directory to serve as the root of your elm project." :connect (fn [] (dialogs/dir elm :connect))}) ================================================ FILE: src/lt/plugins/elm_light/docpreview.cljs ================================================ (ns lt.plugins.elm-light.docpreview (:require [lt.plugins.elm-light.clients :refer [try-connect]] [lt.plugins.elm-light.utils :refer [project-path elm-plugin-dir]] [lt.plugins.elm-light.elm-ast :as ast] [lt.object :as object] [lt.objs.eval :as eval] [lt.objs.clients :as clients] [lt.objs.command :as cmd] [lt.objs.editor.pool :as pool] [lt.objs.editor :as editor] [lt.objs.notifos :as notifos] [lt.objs.tabs :as tabs] [lt.util.dom :as dom] [lt.util.js :as js-util] [lt.util.load :as loadz] [lt.objs.files :as files]) (:require-macros [lt.macros :refer [defui behavior]])) (def highlight-js (files/join elm-plugin-dir "js" "highlight.pack.js")) (defui preview-skeleton [this] [:div {:class "elm-doc-preview"} [:h1 "Generating elm docs, please wait a little..."]]) (object/object* ::elmdoc :tags [:elmdoc] :name "elmdoc" :behaviors [::on-close-destroy] :init (fn [this filename] (object/update! this [:name] (constantly (str filename " - Live"))) (preview-skeleton this))) (behavior ::on-close-destroy :triggers #{:close} :reaction (fn [this] (when-let [ts (:lt.objs.tabs/tabset @this)] (when (= (count (:objs @ts)) 1) (tabs/rem-tabset ts))) (when-let [ed (:owner-ed @this)] (object/assoc-in! ed [:elmdoc] nil)) (object/destroy! this))) ;; (doseq [x (object/by-tag :elmdoc)] ;; (println "Found one") ;; (object/destroy! x)) (behavior ::gendoc :description "Preview package doc for a given Elm file" :triggers #{:gendoc} :reaction (fn [ed] (let [info (:info @ed) cl (eval/get-client! {:command :editor.elm.gendoc :origin ed :info info :create try-connect})] (notifos/working (str "Starting elm doc generation for: " (:path info))) (clients/send cl :editor.elm.gendoc (assoc info :project-path (project-path (:path info))) :only ed)))) (defn- maybe-create-elm-preview [elmdoc] (if-let [preview (:preview @elmdoc)] preview (let [el (object/->content elmdoc) preview (.embed js/Elm js/Elm.DocPreview el (clj->js {:modules "[]" :selectModule ""}))] (object/assoc-in! elmdoc [:preview] preview) preview))) (behavior ::elm-gendoc-res :triggers #{:elm.gendoc.res} :reaction (fn [ed res] (notifos/done-working "Elm doc generated") (when-let [elmdoc (:elmdoc @ed)] (let [preview (maybe-create-elm-preview elmdoc) path (-> @ed :info :path) module-name (-> (ast/get-module-ast (project-path path) path) ast/get-module-name)] (.send (.-modules (.-ports preview)) res) (.send (.-selectModule (.-ports preview)) module-name) ;; Hack, when kittens go to die (: (.requestAnimationFrame js/window #(doseq [block (dom/$$ "pre > code" (object/->content elmdoc))] (.highlightBlock js/hljs block))) ;; (js-util/wait 50 ;; #(doseq [block (dom/$$ "pre > code" (object/->content elmdoc))] ;; (.highlightBlock js/hljs block))) )))) (behavior ::gen-on-save :triggers #{:save} :reaction (fn [ed] (object/raise ed :gendoc))) (behavior ::elm-docpreview :triggers #{:elm.docpreview} :reaction (fn [ed] (let [path (-> @ed :info :path) elmdoc-obj (or (:elmdoc @ed) (object/create ::elmdoc path))] (loadz/js highlight-js :sync) (tabs/add-or-focus! elmdoc-obj) (object/assoc-in! ed [:elmdoc] elmdoc-obj) (object/assoc-in! elmdoc-obj [:owner-ed] ed) (object/add-behavior! ed ::gen-on-save) (object/raise ed :gendoc)))) (cmd/command {:command :elm.docpreview :desc "Elm: Preview doc for selected file" :exec (fn [] (when-let [ed (pool/last-active)] (object/raise ed :elm.docpreview)))}) ================================================ FILE: src/lt/plugins/elm_light/elm_ast.cljs ================================================ (ns lt.plugins.elm-light.elm-ast (:require [lt.plugins.elm-light.utils :as util] [lt.objs.console :as console] [lt.object :as object] [lt.objs.editor :as editor] [lt.objs.editor.pool :as pool] [lt.objs.statusbar :as statusbar] [lt.objs.files :as files] [crate.binding :refer [bound]] [clojure.string :as s]) (:require-macros [lt.macros :refer [defui behavior background]])) (def elm-parser-path (files/join util/elm-plugin-dir "node" "elmparser")) (def elm-parser (js/require elm-parser-path)) (defn- start-with? [the-str fragment] (when (and the-str fragment) (= 0 (.indexOf the-str fragment)))) (defn idx-of [pred coll] (first (keep-indexed (fn [idx x] (when (pred x) idx)) coll))) ;; High level desc of ast structure (comment [{:project "/somedir/another/projectDir" :file-asts [{:file "/somedir/another/projectDir/src/MyModule.elm" :ast {:moduleDeclaration {} :doc "some module doc" :imports [] :declarations []}} {:file "/somedir/another/projectDir/elm-stuff/packages/elm-lang/core/4.0.5/src/Array.elm" :ast {:moduleDeclaration {} :doc "some module doc" :imports [] :declarations []} :package {:name "elm-lang/core" :version "4.0.5"}}]} {:project "/somedir/another/projectDir2" :file-asts [{:file "/somedir/another/projectDir2/src/MyModule2.elm" :ast {:moduleDeclaration {} :doc "some module doc2" :imports [] :declarations []}} {:file "/somedir/another/projectDir2/elm-stuff/packages/elm-lang/core/4.0.5/src/Array.elm" :ast {:moduleDeclaration {} :doc "some module doc2" :imports [] :declarations []} :package {:name "elm-lang/core" :version "4.0.5"}}]}]) (defonce project-asts (atom [])) ;; AST Mutants (defn upsert-ast! [project file-ast] (let [prj-idx (idx-of #(= project (:project %)) @project-asts)] (if prj-idx (swap! project-asts update-in [prj-idx :file-asts] (fn [file-asts] (-> (filterv #(not= (:file file-ast) (:file %)) file-asts) (conj file-ast)))) (swap! project-asts conj {:project project :file-asts [file-ast]})))) (defn delete-ast! [project file] (when-let [prj-idx (idx-of #(= project (:project %)) @project-asts)] (swap! project-asts update-in [prj-idx :file-asts] (fn [file-asts] (filterv #(not= file (:file %)) file-asts))))) (defn delete-package-asts! [project] (when-let [prj-idx (idx-of #(= project (:project %)) @project-asts)] (swap! project-asts update-in [prj-idx :file-asts] (fn [file-asts] (vec (remove :package file-asts)))))) (defn delete-project-ast! [project] (swap! project-asts (fn [prjs] (filterv #(not= project (:project %)) prjs)))) (defn reset-asts! [] (reset! project-asts [])) ;; AST Queries (defn get-project [project] (->> @project-asts (filter #(= project (:project %))) first)) (defn get-module-ast [project module-file] (when-let [prj (get-project project)] (->> prj :file-asts (filter #(= module-file (:file %))) first))) (defn get-module-by-name [project module-name] (when-let [prj (get-project project)] (->> prj :file-asts (filter #(= module-name (-> % :ast :moduleDeclaration :value))) first))) (defn parse-editor-sync [ed] (try (let [res (.parse elm-parser (editor/->val ed))] {:file (-> @ed :info :path) :ast (util/mod-js->clj res :keywordize-keys true)}) (catch :default e (println "Parse editor contents failed" e) nil))) (defn parse-editor-header-sync [ed] (try (let [res (.parse elm-parser (editor/->val ed) #js {:startRule "headerOnly"})] {:file (-> @ed :info :path) :ast (js->clj res :keywordize-keys true)}) (catch :default e (println "Parse editor header block failed" e) nil))) (def parse-editor-async (background (fn [obj-id parser-path callback-behavior elm-code] (time (let [parser (js/require parser-path)] (try (let [res (parser/parse elm-code)] (js/_send obj-id callback-behavior #js {:status "ok" :module res})) (catch :default e (js/_send obj-id callback-behavior #js {:status "fail" :error e})))))))) ;; Helpers (defn get-module-name [module] (-> module :ast :moduleDeclaration :value)) (defn exposeAll? [exposing] (= "exposeAll" (-> exposing :exports :exports first :type))) (defn package-import? [modules import] (->> (filter :package modules) (some #(= (:value import) (-> % :ast :moduleDeclaration :value))))) (defn extract-exports [exposing] (->> exposing :exports :exports (map :value))) (defn exposed-by-module? [module candidate] (let [exposing (-> module :ast :moduleDeclaration :exposing)] (if (exposeAll? exposing) true (-> (extract-exports exposing) set (contains? candidate))))) (defn find-type-exposing [module-exposing type-name] (->> module-exposing :exports :exports (filter #(= type-name (:value %))) first)) (defn find-import-type-exposing [imp owning-type-name type-name] (->> imp :exposing :exports :exports (filter #(= owning-type-name (:value %))) first)) (defn enrich-type-declarations [module-exposing exp-all? module-name package file type-decl ] (let [type-exposing (find-type-exposing module-exposing (:value type-decl)) exp-all-type? (exposeAll? type-exposing) exports-type (set (extract-exports type-exposing)) exp-by-mod? #(or exp-all? exp-all-type? (contains? exports-type %))] (->> (:adtDefs type-decl) (map #(assoc % :exposed? (exp-by-mod? (:value %)) :owning-type-name (:value type-decl) :file file :module-name module-name :package package))))) (defn enrich-module-declarations [module] (let [exposing (-> module :ast :moduleDeclaration :exposing) expAll? (exposeAll? exposing) exports (-> (extract-exports exposing) set) exp-by-mod? #(or expAll? (contains? exports %)) file (:file module) module-name (get-module-name module) package (:package module)] (->> (-> module :ast :declarations) (map #(assoc % :exposed? (exp-by-mod? (:value %)) :file file :module-name module-name :package package)) (mapcat (fn [decl] (case (:type decl) "typeDecl" (conj (enrich-type-declarations exposing expAll? module-name package file decl) decl) [decl])))))) (defn get-exposed-declarations [module] (->> (enrich-module-declarations module) (filter :exposed?))) (def get-exposed-declarations-memo (memoize (fn [module] (get-exposed-declarations module)))) (defn get-import-candidate-tokens [imp imp-module-name imp-alias imp-exported-names imp-exports-all? exposed-declaration] (let [decl-name (:value exposed-declaration) type-exposing (when (= "adtDef" (:type exposed-declaration)) (find-import-type-exposing imp (:owning-type-name exposed-declaration) (:value exposed-declaration))) exp-all-type? (exposeAll? type-exposing) exports-type (set (extract-exports type-exposing))] (-> #{(if imp-alias (str imp-alias "." decl-name) (str imp-module-name "." decl-name )) (when (or imp-exports-all? exp-all-type? (contains? imp-exported-names decl-name) (contains? exports-type decl-name)) decl-name)} (disj nil)))) (defn get-external-exposed-modules [curr-module-name imported-mod-names modules] (->> modules (filter #(and (not= curr-module-name (get-module-name %)) (contains? imported-mod-names (get-module-name %)))) (mapcat #(get-exposed-declarations-memo %)) (group-by :module-name))) (defn get-external-candidates [module modules] (let [imports (-> module :ast :imports :imports) imported-mod-names (->> imports (map :value) set) external-exposed (get-external-exposed-modules (get-module-name module) imported-mod-names modules)] (->> imports (mapcat (fn [imp] (let [imp-exported-names (-> (:exposing imp) -> extract-exports set) imp-exports-all? (exposeAll? (:exposing imp))] (->> (get external-exposed (:value imp)) (map #(assoc % :candidate-tokens (get-import-candidate-tokens imp (:value imp) (:alias imp) imp-exported-names imp-exports-all? %)))))))))) (defn get-core-modules [all-modules] (->> (filter #(= "elm-lang/core" (-> % :package :name)) all-modules) (group-by #(-> % :ast :moduleDeclaration :value)))) (defn- elm-18? [version] (and version (<= 5 (js/parseInt (first version))))) ;; TODO: Could potentially be memoized... (defn get-default-candidates "Get candidates for Elm default imports as per https://github.com/elm-lang/core" [modules] (->> (concat (->> (get modules "Basics") (mapcat get-exposed-declarations) (map #(assoc % :candidate-tokens #{(:value %)}) )) (->> (get modules "Debug") (mapcat get-exposed-declarations) (map #(assoc % :candidate-tokens #{(str "Debug." (:value %))}) )) (->> (get modules "Maybe") (mapcat get-exposed-declarations) (map #(assoc % :candidate-tokens (if (contains? #{"Just" "Nothing"} (:value %)) #{(:value %) (str "Maybe." (:value %))} #{(str "Maybe." (:value %))})) )) (->> (get modules "Result") (mapcat get-exposed-declarations) (map #(assoc % :candidate-tokens (if (contains? #{"Ok" "Err"} (:value %) ) #{(:value %) (str "Result." (:value %))} #{(str "Result." (:value %))})) )) (->> (get modules "Platform") (mapcat get-exposed-declarations) (map #(assoc % :candidate-tokens (if (= (:value %) "Program") #{"Program"} #{(str "Platform." (:value %))})))) (->> (get modules "Platfrom.Cmd") (mapcat get-exposed-declarations) (map #(assoc % :candidate-tokens (case (:value %) "Cmd" #{"Cmd"} "!" #{"!"} #{(str "Platform.Cmd." (:value %)) (str "Cmd." (:value %))})))) (->> (get modules "Platform.Sub") (mapcat get-exposed-declarations) (map #(assoc % :candidate-tokens (if (= (:value %) "Sub") #{"Sub"} #{(str "Platform.Sub." (:value %)) (str "Sub." (:value %))})))) (->> (get modules "List") (mapcat get-exposed-declarations) (map #(assoc % :candidate-tokens (if (= "::" (:value %)) #{"::"} #{(str "List." (:value %))})))) ;; 0.18 specific (->> (get modules "Tuple") (mapcat get-exposed-declarations) (map #(assoc % :candidate-tokens #{(str "Tuple." (:value %))}) )) (when (-> (get modules "String") first :package :version elm-18?) (->> (get modules "String") (mapcat get-exposed-declarations) (map #(assoc % :candidate-tokens #{(str "String." (:value %))}) )))) (map #(assoc % :default-candidate? true)))) (def get-default-candidates-memo (memoize (fn [core-modules] (get-default-candidates core-modules)))) (defn get-current-module-candidates [module] (let [mod-name (get-module-name module)] (->> (enrich-module-declarations module) (map #(assoc % :candidate-tokens #{(:value %)}))))) (defn get-jump-to-candidates [module modules] (concat (get-current-module-candidates module) (get-external-candidates module modules) (get-default-candidates (get-core-modules modules)))) (defn get-candidate-by-token [token module modules] (->> (get-jump-to-candidates module modules) (filter #(contains? (:candidate-tokens % ) token)) first)) (defn- create-param-candidate [param candidate] {:value (:value candidate) :candidate (:value param) :location (:location candidate) :package (:package candidate) :file (:file candidate) :doc (:doc candidate) :module-name (:module-name candidate)}) (defn- create-typealias-rec-candidates [param candidate] (concat [(create-param-candidate param candidate)] (map #(hash-map :value (str (:value candidate) "." (:name %)) :candidate (str (:value param) "." (:name %)) :package (:package candidate) :location (:location %) :signatureRaw (:signatureRaw %) :file (:file candidate) :module-name (:module-name candidate)) (-> candidate :tipe :fieldDefs)))) (defn- create-destructured-type-alias-candidates [param candidate] (let [get-field-def #(->> candidate :tipe :fieldDefs (filter (fn [x] (= % (:name x)))) first)] (map (fn [field] (let [{:keys [location doc signatureRaw]} (get-field-def (:value field)) ] {:value (str (:value candidate) "." (:value field)) :candidate (:value field) :package (:package candidate) :file (:file candidate) :doc signatureRaw :location location :module-name (:module-name candidate)})) (:patterns param)))) (defn- create-bracketed-type-alias-candidates [param candidate] (let [aliaz (-> param :pattern :alias) get-field-def #(->> candidate :tipe :fieldDefs (filter (fn [x] (= % (:name x)))) first)] (concat (when aliaz (concat [(-> (create-param-candidate param candidate) (assoc :candidate aliaz))] (map #(hash-map :value (str (:value candidate ) "." (:name %)) :candidate (str aliaz "." (:name %)) :location (:location %) :doc (:signatureRaw %) :package (:package candidate) :file (:file candidate) :module-name (:module-name candidate)) (-> candidate :tipe :fieldDefs)))) (->> (map (fn [field] (when-let [field-def (get-field-def (:value field))] {:value (str (:value candidate) "." (:value field)) :candidate (:value field) :location (:location field-def) :package (:package candidate) :file (:file candidate) :doc (:signatureRaw field-def) :module-name (:module-name candidate)})) (-> param :pattern :value :patterns)) (filter identity))))) (defn- print-rec [rec] (str "{ " (->> (map :signatureRaw (:fieldDefs rec)) (s/join "\n, ")) "\n}")) (defn- create-bracketed-adt-candidates [param candidate module modules] (let [adtType (-> candidate :adtDefs first) adtPattern (:pattern param) fst-destruct-variable (-> param :pattern :value :variables first)] (concat [{:value (str (:value candidate) "." (:value adtType)) :candidate (:value adtType) :location (:location adtType) :package (:package candidate) :file (:file candidate) :doc (:paramsRaw adtType) :module-name (:module-name candidate)}] (when-let [aliaz (:alias adtPattern)] [(-> (create-param-candidate param candidate) (assoc :candidate aliaz))]) (when (= "variable" (:type fst-destruct-variable)) (let [adtParam (-> adtType :params first) adtCandidate (get-candidate-by-token (:value adtParam) module modules) ] (concat (when adtCandidate [{:value (:value adtCandidate) :candidate (:value fst-destruct-variable) :location (:location adtCandidate) :package (:package adtCandidate) :file (:file adtCandidate) :doc (:doc adtCandidate) :module-name (:module-name adtCandidate)}]) (when (= "typeRec" (:type adtParam)) (concat [{:value (str (:value candidate) "." (:value adtType) ".") :candidate (:value fst-destruct-variable) :location (:location adtParam) :doc (print-rec adtParam) :package (:package candidate) :file (:file candidate) :module-name (:module-name candidate)}]) (map #(hash-map :value (str (:value candidate) "." (:value adtType) ".." (:name %)) :candidate (str (:value fst-destruct-variable) "." (:name %)) :location (:location %) :doc (:signatureRaw %) :package (:package candidate) :file (:file candidate) :module-name (:module-name candidate)) (:fieldDefs adtParam)))))) (when [(= "patternRec" (:type fst-destruct-variable))] (let [adtParam (-> adtType :params first) adtCandidate (get-candidate-by-token (:value adtParam) module modules) get-field-def #(->> adtCandidate :tipe :fieldDefs (filter (fn [x] (= % (:name x)))) first)] (concat (when (= "typeAliasDecl" (:type adtCandidate)) (concat (when-let [aliaz (-> fst-destruct-variable :pattern :alias)] (concat [(create-param-candidate {:value aliaz} adtCandidate)] (map #(hash-map :value (str (:value adtCandidate) "." (:name %)) :candidate (str aliaz "." (:name %)) :file (:file adtCandidate) :package (:package adtCandidate) :doc (:signatureRaw %) :location (:location %) :module-name (:module-name adtCandidate)) (-> adtCandidate :tipe :fieldDefs)))) (when (= "patternRec" (:type fst-destruct-variable)) (map (fn [field] (when (get-field-def (:value field)) (let [{:keys [location doc signatureRaw]} (get-field-def (:value field)) ] {:value (str (:value adtCandidate) "." (:value field)) :candidate (:value field) :package (:package adtCandidate) :file (:file adtCandidate) :doc signatureRaw :location location :module-name (:module-name adtCandidate)}))) (-> fst-destruct-variable :patterns))) (when (= "patternBracket" (:type fst-destruct-variable)) (map (fn [field] (when (get-field-def (:value field)) (let [{:keys [location doc signatureRaw]} (get-field-def (:value field)) ] {:value (str (:value adtCandidate) "." (:value field)) :candidate (:value field) :package (:package adtCandidate) :file (:file adtCandidate) :doc signatureRaw :location location :module-name (:module-name adtCandidate)}))) (-> fst-destruct-variable :pattern :value :patterns))))) (when (= "typeRec" (-> adtType :params first :type)) (concat (when-let [aliaz (-> fst-destruct-variable :pattern :alias)] (concat [{:value (str (:value candidate) "." (:value adtType) ".") :candidate aliaz :file (:file candidate) :package (:package candidate) :location (-> adtType :params first :location) :doc (-> adtType :params first print-rec) ;(-> adtType :params first :signatureRaw) :module-name (:module-name candidate)}] (map #(hash-map :value (str (:value candidate) "." (:value adtType) "." (:name %)) :candidate (str aliaz "." (:name %)) :file (:file candidate) :package (:package candidate) :doc (:signatureRaw %) :location (:location %) :module-name (:module-name candidate)) (-> adtType :params first :fieldDefs)))) (map (fn [field] {:value (str (:value candidate) "." (:value adtType) "." (:name field)) :candidate (:name field) :package (:package candidate) :file (:file candidate) :doc (:signatureRaw field) :location (:location field) :module-name (:module-name candidate)}) (-> adtType :params first :fieldDefs)))))))))) (defn- get-candidate-by-token-loc-aware [token pos module modules] (let [jump-to-candidates (get-jump-to-candidates module modules) decl (find-top-level-declaration-by-pos pos module)] (if (and (= "nameDef" (:type decl)) (-> decl :annotation :signature)) (->> (mapcat (fn [param {:keys [candidate] :as ann}] (cond (and (= "variable" (:type param)) (= "typeAliasDecl" (:type candidate))) (create-typealias-rec-candidates param candidate) (and (= "variable" (:type param)) (= "typeDecl" (:type candidate))) [(create-param-candidate param candidate)] (and (= "patternRec" (:type param)) (= "typeAliasDecl" (:type candidate))) (create-destructured-type-alias-candidates param candidate) (and (= "patternBracket" (:type param)) (= "typeAliasDecl" (:type candidate))) (create-bracketed-type-alias-candidates param candidate) (and (= "patternBracket" (:type param)) (= "typeDecl" (:type candidate)) (= 1 (-> candidate :adtDefs count)) (not (in-range? pos (-> decl :annotation)))) (create-bracketed-adt-candidates param candidate module modules) :else [])) (:patterns decl) (-> decl (enrich-top-level-declaration jump-to-candidates) :annotation :signature)) (filter #(= token (:candidate %))) first ((fn [x] (or x (get-candidate-by-token token module modules))))) ;; fallback to default (get-candidate-by-token token module modules)))) (defn ->pos [ast-pos] {:line (-> ast-pos :line dec) :ch (-> ast-pos :column dec)}) (defn ->range [location] {:start (->pos (:start location)) :end (->pos (:end location))}) (defn- in-range? [{:keys [ch line]} decl] (let [{:keys [start end]} (->range (:location decl))] (cond (or (< line (:line start) ) (> line (:line end) )) false (or (and (= (:line start) line) (< ch (:ch start) )) (and (= (:line end) line) (> ch (:ch end) ))) false :else true))) (defn find-top-level-declaration-by-pos ([pos module] (->> (:ast module) :declarations (filter #(in-range? pos %)) first)) ([pos project-dir module-file] (find-top-level-declaration-by-pos pos (get-module-ast project-dir module-file)))) (defn find-import-by-pos ([pos module] (->> (:ast module) :imports :imports (filter #(in-range? pos %)) first)) ([pos project-dir module-file] (find-import-by-pos pos (get-module-ast project-dir module-file)))) (defn enrich-top-level-declaration "For annotated definitions it tries to add extended information about types for each parameter (ie union types and type aliases)" [decl jump-to-candidates] (let [get-cand (fn [token] (->> jump-to-candidates (filter #(contains? (:candidate-tokens % ) token)) first))] (update-in decl [:annotation :signature] (fn [items] (map (fn [item] (if (= "typeAdt" (:type item)) (assoc item :candidate (get-cand (:value item))) item)) items))))) ;; FEATURES ;; JUMP TO DEFINITION (defn get-jump-to-definition [token pos module-file project-file] (when-let [module (get-module-ast project-file module-file)] (get-candidate-by-token-loc-aware token pos module (:file-asts (get-project project-file))))) ;; Autocompleter hints (defn- to-hint [curr-module-name candidate] (map (fn [c-tok] {:type (:type candidate) ; TODO: one of #{:type :definition :module} etc :candidate c-tok :module-name (when (not= curr-module-name (:module-name candidate)) (:module-name candidate)) :signature (-> candidate :annotation :signatureRawSansName)}) (:candidate-tokens candidate))) (def dot-ex (js/RegExp "\\." "g")) (defn- compare-dots [a b] (let [num-dots #(count (.match % dot-ex))] (compare (num-dots a) (num-dots b)))) (defn- declaration-param-hint-items [pos module jump-to-candidates] (let [decl (find-top-level-declaration-by-pos pos module) m-name #(when-not (= (get-module-name module) (:module-name %)) (str "(" (:value %) ") " (:module-name %))) get-jump-to-by-token (fn [tok] (first (filter #(contains? (:candidate-tokens %) tok) jump-to-candidates))) mod-name (when-not (= (:module-name %) (get-module-name module)) (str "(" (:value %) ") " (:module-name %) ))] (if (and (= "nameDef" (:type decl)) (-> decl :annotation :signature)) (mapcat (fn [param {:keys [candidate] :as ann}] (cond (and (= "variable" (:type param)) (= "typeRec" (:type ann))) (->> (map #(hash-map :candidate (str (:value param) "." (:name %))) (:fieldDefs ann)) (cons {:candidate (:value param)})) (and (= "patternRec" (:type param)) (= "typeRec" (:type ann))) (map #(hash-map :candidate (:value %)) (:patterns param)) (and (= "patternBracket" (:type param)) (= "typeRec" (:type ann))) (concat (when-let [aliaz (-> param :pattern :alias)] (concat [{:candidate aliaz}] (map #(hash-map :candidate (str aliaz "." (:name %))) (:fieldDefs ann)))) (map #(hash-map :candidate (:value %)) (-> param :pattern :value :patterns))) (and (= "variable" (:type param)) (= "typeAliasDecl" (:type candidate))) (->> (map #(hash-map :candidate (str (:value param) "." (:name %)) :module-name (mod-name candidate)) (-> candidate :tipe :fieldDefs)) (cons {:candidate (:value param) :module-name (mod-name candidate)})) (and (= "patternRec" (:type param)) (= "typeAliasDecl" (:type candidate))) (map (fn [pattern] {:candidate (:value pattern) :module-name (mod-name candidate)}) (:patterns param) ) (and (= "patternBracket" (:type param)) (= "typeAliasDecl" (:type candidate))) (let [aliaz (-> param :pattern :alias)] (concat (when aliaz (concat [{:candidate aliaz :module-name (mod-name candidate)}] (map #(hash-map :candidate (str aliaz "." (:name %)) :module-name (mod-name candidate)) (-> candidate :tipe :fieldDefs)))) (map #(hash-map :candidate (:value %) :module-name (mod-name candidate)) (-> param :pattern :value :patterns)))) (and (= "patternBracket" (:type param)) (= "typeDecl" (:type candidate)) (= 1 (-> candidate :adtDefs count)) (not (in-range? pos (-> decl :annotation)))) (let [pattern-param (-> param :pattern :value :variables first) adtType (-> candidate :adtDefs first) adtPattern (:pattern param) adtParam (-> adtType :params first) adtCandidate (get-jump-to-by-token (:value adtParam))] (concat (when-let [aliaz (:alias adtPattern)] [{:candidate aliaz :module-name (mod-name candidate)}]) (when (and (= "variable" (:type pattern-param)) (nil? (:type adtCandidate))) [{:candidate (:value pattern-param)}]) (when (and (= "variable" (:type pattern-param)) (= "typeRec" (:type adtParam))) (map #(hash-map :candidate (str (:value pattern-param) "." (:name %)) :module-name (mod-name candidate)) (:fieldDefs adtParam))) (when (and (= "variable" (:type pattern-param)) (= "typeAliasDecl" (:type adtCandidate))) (map #(hash-map :candidate (str (:value pattern-param) "." (:name %)) :module-name (mod-name candidate)) (-> adtCandidate :tipe :fieldDefs))) (when (= "patternRec" (:type pattern-param)) (map #(hash-map :candidate (:value %) :module-name (mod-name candidate)) (:patterns pattern-param))) (when (= "patternBracket" (:type pattern-param)) (when (= "patternRec" (-> pattern-param :pattern :value :type)) (concat (when-let [aliaz (-> pattern-param :pattern :alias)] (concat [{:candidate aliaz :module-name (when adtCandidate (mod-name adtCandidate))}] (when adtCandidate (map #(hash-map :candidate (str aliaz "." (:name %)) :module-name (mod-name adtCandidate)) (-> adtCandidate :tipe :fieldDefs))) (when (= "typeRec" (:type adtParam)) (map #(hash-map :candidate (str aliaz "." (:name %)) :module-name (mod-name candidate)) (:fieldDefs adtParam))))) (map #(hash-map :candidate (:value %)) (-> pattern-param :pattern :value :patterns))))))) (= "variable" (:type param)) [{:candidate (:value param) :module-name (m-name candidate)}] :else [])) (:patterns decl) (-> decl (enrich-top-level-declaration jump-to-candidates) :annotation :signature)) []))) (defn- declarations-hints [{:keys [token pos]} module modules] (let [jump-to-candidates (get-jump-to-candidates module modules)] (->> jump-to-candidates (filter (fn [decl] (some #(= 0 (.indexOf % token)) (:candidate-tokens decl)))) (mapcat (partial to-hint (get-module-name module))) (concat (declaration-param-hint-items pos module jump-to-candidates)) (filter #(= 0 (.indexOf (:candidate %) token))) (sort (fn [a b] (let [mod-sort (compare-dots (:candidate a) (:candidate b))] (if (= 0 mod-sort) (.localeCompare (:candidate a) (:candidate b)) mod-sort))))))) (defn- import-hints [{:keys [token pos]} imp mod-header modules] (let [curr-exports (->> imp :exposing :exports :exports (map :value) set) existing-import-names (->> mod-header :ast :imports :imports (map :value) set)] (cond ;; Return Modules Completions (and (not (:alias imp)) (not (seq (-> imp :exposing :exports)))) (->> modules (map #(-> % :ast :moduleDeclaration)) (filter identity) (filter #(and (= 0 (.indexOf (:value %) token)) (not (= (get-module-name mod-header) (:value %))) (not (contains? existing-import-names (:value %))))) (map #(hash-map :candidate (:value %) )) (sort-by :candidate)) ;; Return completions for exposing for given import (and (seq (-> imp :exposing :exports)) (or (in-range? pos (-> imp :exposing :exports)) ;; (in-range? (update-in pos [:ch] #(- % (count token))) ;; (-> imp :exposing :exports)) )) (->> (filter #(= (:value imp) (-> % :ast :moduleDeclaration :value)) modules) first get-exposed-declarations (map :value) (filter #(and (= 0 (.indexOf % token)) (or (= token %) ;; TODO: Need to be a little more clever here (try on for Html.Events!) (not (contains? curr-exports %))))) sort (map #(hash-map :candidate %))) :else []))) (defn- module-header-hints "Provides hints when cursor inside exposing parens. Pls note that mod-header is the latest and greatest (if current editor content parses ok)" [{:keys [token pos]} mod-header module] (let [exposing (-> mod-header :ast :moduleDeclaration :exposing) exports-container (:exports exposing) curr-exports (-> (extract-exports exposing) set) decls (-> module :ast :declarations)] (cond (in-range? pos exports-container) (->> (map :value decls) (filter #(and (= 0 (.indexOf % token)) (not (contains? curr-exports %)))) sort (map #(hash-map :candidate %))) :else []))) (defn reserved-words-hints [token] (->> ["import" "type" "type alias" "type" "port"] (filter #(= 0 (.indexOf % token))) sort (map #(hash-map :candidate %)))) (defn get-hints "Return hints for a given module file and project. The context parameter provides additional info to filter results and to help make the results context aware to provide better more relevant results TODO: Only token is used and only toplevel declarations currently TBI" ([ctx module-file project-dir] (get-hints ctx module-file project-dir nil)) ([{:keys [pos token ed] :as ctx} module-file project-dir module-header] (let [ed-tok (editor/->token ed pos) module (get-module-ast project-dir module-file) top-level-decl? (find-top-level-declaration-by-pos pos module) mod-header (or module-header module) ;; to cater for invalid ast modules (-> (get-project project-dir) :file-asts) imp (find-import-by-pos {:line (:line pos) :ch 0} mod-header)] (when module (cond (= 0 (:start ed-tok)) (reserved-words-hints token) imp (import-hints ctx imp mod-header modules) (in-range? pos (-> mod-header :ast :moduleDeclaration)) (module-header-hints ctx mod-header module) :else (declarations-hints ctx module modules)))))) (defn- find-all-occs [line tok] (let [pattern (re-pattern (str "\\b" tok "\\b(?!\\.)"))] (loop [s line items [] curr-idx 0] (let [idx (.search s pattern) act-idx (+ curr-idx idx)] (if (= -1 idx) items (recur (subs s (+ idx (count tok) 1)) (conj items act-idx) (+ act-idx (count tok) 1))))))) (defn- get-usage-editor [file] (if-let [ed (first (pool/by-path file))] {:ed ed :close-fn #()} (let [content (-> (files/open-sync file) :content) ed (pool/create {:mime "text/x-elm" :content content})] {:ed ed :close-fn #(object/destroy! ed)}))) (defn- find-usage-hits [candidate-module] (let [{:keys [ed close-fn]} (get-usage-editor (:file candidate-module)) line-count (editor/line-count ed)] (->> (mapcat (fn [l] (let [line (editor/line ed l)] (mapcat (fn [token] (map #(hash-map :start {:ch % :line l} :end {:ch (+ % (count token)) :line l} :token token :line line) (find-all-occs line token))) (:candidate-tokens candidate-module)))) (range 0 line-count)) (filter seq) (group-by #(str (-> % :end :line) "-" (-> % :end :ch))) (map (fn [[_ v]] (->> (sort-by #(count (:token %)) v) first))) (sort-by #(-> % :start :line)) ((fn [xs] (close-fn) (assoc candidate-module :hits xs)))))) (defn find-usages [token project-file module-file] (let [modules (:file-asts (get-project project-file)) candidate (get-jump-to-definition token {} module-file project-file) candidate-module (get-module-ast project-file (:file candidate)) cand-mods (->> (get-project project-file) :file-asts (remove :package) (filter (fn [mod] (or (:default-candidate? candidate) (contains? (->> mod :ast :imports :imports (map :value) set) (:module-name candidate))))) (concat [(when-not (:package candidate-module) candidate-module)]) (filter identity) (sort-by #(-> % :ast :moduleDeclaration :value)))] (->> cand-mods (mapcat (fn [mod] (->> (get-jump-to-candidates mod modules) (map #(assoc % :candidate-module-file (:file mod))) (filter #(or false (and (= (:module-name candidate) (:module-name %)) (= (:value candidate) (:value %)))))))) (map #(hash-map :file (:candidate-module-file %) :candidate-tokens (:candidate-tokens %))) (map find-usage-hits) (filter #(seq (:hits %))) ((fn [mod-usages] {:candidate candidate :usages-per-module mod-usages :token token}))))) ;; Sidebar doc search (defn search-docs [sym project-dir] "Search all top level declarations for a given project. Currently just implements starts-with for name or qualified name" (let [qualified-name #(str (:module-name %) "." (:value %))] (when-let [prj (get-project project-dir)] (->> (:file-asts prj) (mapcat get-exposed-declarations) (filter (fn [decl] (or (start-with? (:value decl) sym) (start-with? (qualified-name decl) sym)))) (map (fn [decl] {:name (:value decl) :ns (:module-name decl) :args (or (-> decl :annotation :signatureRaw) (-> decl :signatureRaw)) :doc (:doc decl) :value (:value decl) :module-name (:module-name decl)})) (sort-by (juxt :value :module-name)))))) ;; Get gutter marker info for a given module (defn get-gutter-exposeds [module-file project-file] (when-let [module (get-module-ast project-file module-file)] (->> (get-exposed-declarations module) (remove #(= "adtDef" (:type %)))))) ;; *********** REFACTORINGS !!! *************************************** (declare print-exports) (defn- print-export [export] (str (if (= "binOpRef" (:type export)) (str "(" (:value export) ")") (:value export)) (cond (not (seq (:exports export))) "" :else (str " (" (print-exports (-> export :exports)) ")" )))) (defn- print-exports [exports] (cond (not (seq exports)) "" (= "exposeAll" (-> exports :exports first :type)) ".." :else (->> (map print-export (:exports exports)) (s/join ", ")))) (defn print-exposing [{:keys [exports] :as exposing}] (if-not (seq exports) "" (str "exposing (" (print-exports exports) ")"))) (defn print-import [imp] (str "import " (:value imp) (when-let [aliaz (:alias imp)] (str " as " aliaz)) (when (seq (:exposing imp)) (str " " (print-exposing (:exposing imp)))))) (defn print-imports ([imports] (print-imports identity imports)) ([sort-fn imports] (->> (sort-fn imports) (map print-import) (s/join "\n")))) (defn sort-imports-default [project-dir imports] (let [modules (-> (get-project project-dir) :file-asts)] (sort-by (juxt (partial package-import? modules) :value) imports))) (defn sym-exposed? [sym project-dir module-file] (-> (get-module-ast project-dir module-file) (exposed-by-module? sym))) (defn expose-decl "Adds an export to exposing node NOTE: Does not check if exposeAll or already exposed." [decl exposing] (let [value (:value decl)] (update-in exposing [:exports :exports] (fn [exports] (conj exports (case (:type decl) "typeAliasDecl" {:type "adt" :value value} "typeDecl" {:type "adt" :value value} "binOpDef" {:type "binOpRef" :value value} {:type "ref" :value value})))))) (defn unexpose-decl "Removes an export from and exposing node. Ignored if exposed through exposeAll (..)" [decl exposing] (let [value (:value decl)] (update-in exposing [:exports :exports] (fn [exports] (remove #(= value (:value %)) exports))))) ;; Autoimport feature (defn get-autoimport-candidates "Find applicable import candidates based on token for a given module" [aliaz token module-file project-dir] (when-let [module (get-module-ast project-dir module-file)] (let [modules (-> (get-project project-dir) :file-asts)] (->> (filter #(not= module-file (:file %)) modules) (mapcat get-exposed-declarations) (concat (get-default-candidates (get-core-modules modules))) (filter (fn [candidate] (and (= token (:value candidate)) (not (some #(and (:alias %) (= (:module-name candidate) (:value %))) (-> module :ast :imports :imports)))))))))) (defn upsert-imports "Add import with alias or update an existing import with given alias" [module-name aliaz imports] (if-let [idx (idx-of #(= module-name (:value %)) imports)] (assoc-in (vec imports) [idx :alias] aliaz) (conj imports {:value module-name :type "import" :alias aliaz :exposing []}))) ;;********************************************************** ;; Elm Test related ;;********************************************************** (defn- test-module-candidate? [module] (let [imp-names (->> module :ast :imports :imports (map :value) set)] (contains? imp-names "Test"))) (defn- ignore-test? [decl] (when (:doc decl) (-> decl :doc (util/str-contains "@ltignore")))) (defn- get-test-decls [module] (->> (get-exposed-declarations-memo module) (filter #(and (not (ignore-test? %)) (= "Test" (-> (:annotation %) :signature first :value)))))) (defn- ->suite-tests [module] (->> (get-test-decls module) (map #(select-keys % [:value :module-name])))) (defn get-project-tests [project-path] (let [project (get-project project-path)] (->> (:file-asts project) (filter (fn [module] (when-not (:package module) (test-module-candidate? module)))) (mapcat ->suite-tests)))) (defn get-module-tests [project-path module-file] (let [module (get-module-ast project-path module-file)] (if (test-module-candidate? module) (->suite-tests module) []))) (defn get-test-by-pos [pos project-path module-file] (let [module (get-module-ast project-path module-file) decl (find-top-level-declaration-by-pos pos module)] (if (and (test-module-candidate? module) (exposed-by-module? module (:value decl)) (= "Test" (-> (:annotation decl) :signature first :value)) (not (ignore-test? decl))) [{:value (:value decl) :module-name (get-module-name module)}] []))) ;;********************************************************** ;; AST status shown in statusbar ;;********************************************************** (defn- status-class [{:keys [status]}] (case status :error "error" :ok "ok" "")) (defn- status-text [{:keys [status error]}] (str "AST: " (case status :ok "Ok" :error "Error" "Not connected"))) (defn ->status-ui [{:keys [ast-summary]}] [:span {:class (str "ast-status " (status-class ast-summary))} (status-text ast-summary)]) (behavior ::update-ast-status :triggers #{:update!} :reaction (fn [this f] (object/update! this [:ast-summary] f))) (object/object* ::statusbar.ast-status :triggers #{} :behaviors #{::update-ast-status} :ast-summary {:status ""} :init (fn [this] (statusbar/statusbar-item (bound this ->status-ui) ""))) (def statusbar-ast-summary (object/create ::statusbar.ast-status)) (statusbar/add-statusbar-item statusbar-ast-summary) (defn update-status-for-editor [ed] (let [{:keys [status error]} (:ast-status @ed)] (object/raise statusbar-ast-summary :update! #(assoc % :status status :error error)))) (behavior ::update-ast-status-on-editor-change :triggers #{:focus} :reaction (fn [ed] (update-status-for-editor ed))) ================================================ FILE: src/lt/plugins/elm_light/format.cljs ================================================ (ns lt.plugins.elm-light.format (:require [lt.plugins.elm-light.utils :as u] [lt.plugins.elm-light.selection :as sel] [lt.plugins.elm-light.clients :as clients] [lt.objs.console :as console] [lt.objs.notifos :as notifos] [lt.object :as object] [lt.objs.command :as cmd] [lt.objs.editor.pool :as pool] [lt.objs.editor :as editor] [lt.objs.popup :as popup] [lt.objs.platform :as platform] [clojure.string :as s]) (:require-macros [lt.macros :refer [behavior]])) (defn handle-no-elm-format [] (notifos/done-working) (console/log (.-PATH (.-env js/process))) (popup/popup! {:header "We couldn't find elm-format in your path" :body (str "In order to formatting related commands, elm-format must be installed and on your system PATH." "(Check the console for PATH as seen from Light Table") :buttons [{:label "Install elm-format" :action (fn [] (platform/open "https://github.com/avh4/elm-format#installation-"))} {:label "ok"}]})) (defn verify-installed [] (if (.which clients/shelljs "elm-format") true (do (handle-no-elm-format) nil))) (defn format-input "Format string input using elm-format. If successful returns [true result] If errors returns [false err]" [cwd input] (try [true (.toString (.execSync (js/require "child_process") "elm-format --stdin" (clj->js {:cwd cwd :input input :stdio "pipe"})))] (catch :default e [false (.-message e)]))) (defn format-path "Format file or all elm files in dir using elm-format. If successful returns [true nil] If errors returns [false err]" [cwd path] (try (do (.execSync (js/require "child_process") (str "elm-format --yes " path) (clj->js {:cwd cwd :stdio "pipe"})) [true nil]) (catch :default e [false (.-message e)]))) (defn- handle-format-error [err] (notifos/set-msg! "Elm format reported errors. See console for details" {:class "error" :timeout 5000}) (console/error err)) ;; **************************************************** ;; Elm format ;; **************************************************** (behavior ::elm-format :triggers #{:elm.format} :reaction (fn [ed] (when (verify-installed) (when-let [path (-> @ed :info :path)] (let [pos (editor/->cursor ed) [ok? res] (format-path (u/project-path path) path)] (if ok? (pool/reload ed) (handle-format-error res)) (editor/move-cursor ed pos) (editor/center-cursor ed)))))) (defn- strip-module [expr] (->> (s/split-lines expr) (drop 3) (s/join "\n"))) (behavior ::elm-format-expression :triggers #{:elm.format-expression} :reaction (fn [ed] (when (verify-installed) (let [pos (editor/->cursor ed) cwd (-> @ed :info :path u/project-path)] (when-let [{:keys [from to]} (sel/get-top-level-expr ed pos)] (let [[ok? res] (format-input cwd (editor/range ed from to))] (if ok? (editor/replace ed from to (strip-module res)) (handle-format-error res)) (editor/move-cursor ed pos))))))) (behavior ::elm-format-buffer :triggers #{:elm.format-buffer} :reaction (fn [ed] (when (verify-installed) (let [pos (editor/->cursor ed) [ok? res] (format-input (-> @ed :info :path u/project-path) (editor/->val ed))] (if ok? (do (editor/set-val-and-keep-cursor ed res) (editor/center-cursor ed)) (handle-format-error res)))))) (cmd/command {:command :elm-format :desc "Elm: Format file" :exec (fn [] (when-let [ed (pool/last-active)] (object/raise ed :elm.format)))}) (cmd/command {:command :elm-format-buffer :desc "Elm: Format editor contents" :exec (fn [] (when-let [ed (pool/last-active)] (object/raise ed :elm.format-buffer)))}) (cmd/command {:command :elm-format-expression :desc "Elm: Format top level expression at point" :exec (fn [] (when-let [ed (pool/last-active)] (object/raise ed :elm.format-expression)))}) ================================================ FILE: src/lt/plugins/elm_light/graph.cljs ================================================ (ns lt.plugins.elm-light.graph (:require [lt.plugins.elm-light.utils :as u] [lt.objs.files :as files] [lt.objs.tabs :as tabs] [lt.object :as object] [lt.objs.command :as cmd] [lt.objs.editor.pool :as pool] [lt.objs.console :as console] [lt.objs.notifos :as notifos] [lt.util.dom :as dom] [fetch.core :as fetch] [clojure.set :refer [rename-keys]] [clojure.string :as s]) (:require-macros [lt.macros :refer [defui behavior]])) (def dagreD3 (js/require (files/join u/elm-plugin-dir "node_modules/dagre-d3"))) (def d3 (js/require (files/join u/elm-plugin-dir "node_modules/d3"))) (defn lower [term] (s/lower-case term)) (defn find-package-by-name [this name] (some #(when (= (lower (:name %)) (lower name)) %) (:all-packages @this))) (defui dependency-graph-ui [this] [:div.graph [:div.dependency-graph [:svg:svg {:width "650" :height "680"} [:svg:g {:transform "translate(20,20)"}]]]]) (object/object* ::dependency-graph :tags [:elm.graph.dependency] :name "Dependency graph" :init (fn [this] (u/fetch-all-packages #(object/merge! this {:all-packages %})) (dependency-graph-ui this))) (declare dependency-graph) (behavior ::on-close-destroy :triggers #{:close} :reaction (fn [this] (when-let [ts (:lt.objs.tabs/tabset @this)] (when (= (count (:objs @ts)) 1) (tabs/rem-tabset ts))) (object/raise this :destroy))) (def select-values (comp vals select-keys)) (defn dep-id [dep] (s/join ":" (select-values dep [:package :version]))) (defn node-label [x] #js {:shape (if-let [shape (:shape x)] shape "rect") :style (when-not (:version x) "fill: #73404c") :labelType "html" :label (str "
    " (:package x) "
    " (:version x) "
    ")}) (defn create-graph [data] (let [g (.setGraph (new dagreD3.graphlib.Graph) #js {})] (doseq [x (:nodes data)] (.setNode g (dep-id x) (node-label x))) (doseq [x (:edges data)] (.setEdge g (:a x) (:b x) #js {:label (:label x) :style (when (:transitive x) "stroke-dasharray: 5, 5;")})) g)) (defn d3-sel [selector] (.log js/console (.select d3 selector)) (.select d3 selector)) (defn dimensions [this] {:w (.-clientWidth (:content @this)) :h (.-clientHeight (:content @this))}) (defn init-zoom [svg g] (let [zoom (.on (.zoom (.-behavior d3)) "zoom" #(.attr g "transform" (str "translate(" (.-translate (.-event d3)) ")" "scale(" (.-scale (.-event d3)) ")")))] (.call svg zoom))) (defn resize-graph [this svg] (let [dim (dimensions this)] (.attr svg "width" (+ (:w dim) 20)) (.attr svg "height" (+ (:h dim) 20)))) (behavior ::on-render :desc "Elm render dependencies" :triggers #{:elm.graph.render} :reaction (fn [this] (let [svg (.select d3 "svg") g (.select svg "g") renderer (.render dagreD3)] (renderer g (create-graph (:data @this))) (init-zoom svg g) (resize-graph this svg)))) (defn get-package-json [dep callback] (let [url (str "http://package.elm-lang.org/packages/" (:package dep) "/" (:version dep) "/" "elm-package.json")] (fetch/xhr url {} (fn [data] (callback (js->clj (.parse js/JSON data) :keywordize-keys true)))))) (defn add-edges-for-dep [this origin pkg-json] (when-let [edges (->> (:dependencies pkg-json) (map (fn [[k v]] (hash-map :package (u/nskw->name k) :range v :version (-> (some #(when ( = (u/nskw->name k) (:package %)) %) (-> @this :data :packages)) :version)))) (map (fn [dep] {:a (dep-id origin) :b (dep-id dep) :transitive true :label (:range dep)})) seq)] (object/update! this [:data :edges] #(concat % edges)) (object/raise this :elm.graph.render))) (behavior ::on-get-transitives :desc "Elm get 1.st level transitive dependencies" :triggers #{:elm.graph.get-transitives} :reaction (fn [this] (let [transitives (remove :range (-> @this :data :packages))] (object/update! this [:data :nodes] #(concat % transitives)) (object/raise this :elm.graph.render) (doseq [x (filter :version (-> @this :data :packages))] (get-package-json x (partial add-edges-for-dep this x)))))) (defn get-dependency-data [project-path] (let [pkgs (->> (u/get-project-deps project-path) (map #(rename-keys % {:exact :version})) (map #(assoc % :summary (-> (find-package-by-name dependency-graph (:package %)) :summary)))) direct (filter :range pkgs) rootVersion (-> (u/parse-json-file (files/join project-path "elm-package.json")) :version) root {:package (files/basename project-path) :version rootVersion :shape "ellipse"}] {:packages pkgs :nodes (conj direct root ) :edges (map #(hash-map :a (dep-id root) :b (dep-id %) :label (:range %)) direct)})) (behavior ::on-get-data :desc "Elm retrieve dependency data for project" :triggers #{:elm.graph.get-data} :reaction (fn [this] (let [data (get-dependency-data (:project-path @this))] (object/assoc-in! this [:data] data) (object/raise this :elm.graph.render) (object/raise this :elm.graph.get-transitives)))) (behavior ::on-show-dependencies :desc "Elm show dependency graph" :triggers #{:elm.graph.show-dependencies} :reaction (fn [this project-path focus-tab?] (when focus-tab? (tabs/add-or-focus! this)) (object/assoc-in! this [:project-path] project-path) (object/assoc-in! this [:data] {}) (object/raise this :elm.graph.get-data))) (behavior ::on-tab-resized :triggers #{:end-drag} :reaction (fn [_] (let [svg (.select d3 "svg")] (resize-graph dependency-graph svg)))) (def dependency-graph (object/create ::dependency-graph)) ;; (doseq [obj (object/by-tag :elm.graph.dependency)] ;; (println "Destroying") ;; (object/destroy! obj)) (cmd/command {:command :show-elm-dep-graph :desc "Elm: Show dependency graph" :exec (fn [] (when-let [ed (pool/last-active)] (when-let [path (-> @ed :info :path u/project-path)] (object/raise dependency-graph :elm.graph.show-dependencies path true))))}) ================================================ FILE: src/lt/plugins/elm_light/gutter.cljs ================================================ (ns lt.plugins.elm-light.gutter (:require [lt.plugins.elm-light.elm-ast :as ast] [lt.plugins.elm-light.utils :as utils] [lt.object :as object] [lt.objs.editor :as editor] [lt.objs.files :as files] [lt.util.dom :as dom]) (:require-macros [lt.macros :refer [behavior defui]])) (def icon-url (files/join utils/elm-plugin-dir "css" "export.svg")) (def marker-templ (let [elem (.createElement js/document "div")] (dom/html elem "@") (dom/add-class elem "elm-gutter-marker") elem)) (defn gutter-marker-exposed [] (.cloneNode marker-templ true)) (behavior ::show-elm-gutter :triggers #{:object.instant} :type "user" :desc "Editor Elm: Display elm gutter" :reaction (fn [ed] (when-not (:elm-gutter @ed) (editor/add-gutter ed "elm-gutter" 15) (object/assoc-in! ed [:elm-gutter] true)))) (behavior ::elm-gutter-exposeds :triggers #{:elm.gutter.refresh} :reaction (fn [ed] (let [cm-ed (editor/->cm-ed ed)] (editor/operation cm-ed (fn [] (.clearGutter cm-ed "elm-gutter") (doseq [bm (-> @ed :elm-exposeds-bookmarks)] (when-let [pos (.find bm)] (when-let [line (.-line pos)] (.setGutterMarker cm-ed line "elm-gutter" (gutter-marker-exposed)))))))))) (behavior ::elm-gutter-exposeds-mark :triggers #{:elm.gutter.exposeds.mark} :reaction (fn [ed] (let [path (-> @ed :info :path) exposeds (ast/get-gutter-exposeds path (utils/project-path path)) cm-ed (editor/->cm-ed ed)] (editor/operation cm-ed (fn [] (doseq [bm (-> @ed :elm-exposeds-bookmarks)] (.clear bm)) (->> (map (fn [exposed] (.setBookmark cm-ed #js {:ch 1 :line (-> exposed :location :start :line dec)})) exposeds) (object/assoc-in! ed [:elm-exposeds-bookmarks])))) (object/raise ed :elm.gutter.refresh)))) ================================================ FILE: src/lt/plugins/elm_light/hinter.cljs ================================================ (ns lt.plugins.elm-light.hinter "Hinter implementation for Elm" (:require [lt.plugins.elm-light.utils :as utils] [lt.plugins.elm-light.elm-ast :as ast] [lt.plugins.elm-light.utils :refer [find-symbol project-path]] [lt.objs.editor :as editor] [lt.object :as object] [lt.util.dom :as dom] [lt.objs.clients :as clients] [cljs.core.async :as async :refer [put! chan]] [clojure.string :as s]) (:require-macros [lt.macros :refer [behavior defui background]])) (defn- curr-time [] (.getTime (js/Date.))) ;; TODO: not exactly uid quality... (defn- chan-id [ch] (+ (curr-time) (hash ch))) (defn- store-ch [ed ch] (let [chs (or (:elm-async-channels @ed) {}) ch-id (chan-id ch)] (object/assoc-in! ed [:elm-async-channels] (assoc chs ch-id ch)) ch-id)) (defn- get-ch [ed ch-id] (get-in @ed [:elm-async-channels ch-id])) (defn- remove-ch [ed ch-id] (let [chs (or (:elm-async-channels @ed) {})] (object/assoc-in! ed [:elm-async-channels] (dissoc chs ch-id )))) (defn- get-token [ed] (let [pos (editor/->cursor ed) sym (find-symbol ed pos)] (when (and sym (seq sym)) {:string sym :start (- (:ch pos) (count sym)) :end (:ch pos) :line (:line pos)}))) (defn- trunc-str [v max-length] (if (> 100 (count v)) sig (str (.substring v 0 max-lenght) "..."))) (defn- display-text-elem [token completion] (let [elem (.createElement js/document "div")] (dom/add-class elem "display-text") (dom/html elem (js/wrapMatch (.-text completion) #js {:matched (:string token)})) elem)) (defn- module-elem [completion] (let [elem (.createElement js/document "div")] (dom/add-class elem "module") (dom/html elem (.-moduleName completion)) elem)) (defui item-wrapper [] [:div [:div.elm-completion ""]]) (defn item-ui [token completion] (let [item-wrapper (item-wrapper) wrapper (dom/$ "div.elm-completion" item-wrapper)] (dom/append wrapper (display-text-elem token completion)) (dom/append wrapper (module-elem completion)) item-wrapper)) (defn- ->hints [token completions] (map #(hash-map :text (:candidate %) :displayText (:candidate %) :moduleName (:module-name %) :signature (:signature %) :render (fn [el self data] (dom/html el (dom/html (item-ui token data)))) :from {:ch (:start token) :line (:line token)} :to {:ch (:end token) :line (:line token)}) completions)) (defn- connected? [ed] (when-let [default-client (-> @ed :client :default)] ;; dont if not already connected (when @default-client true))) (def bg-parser (background (fn [obj-id ch-id elm-parser-path elm-code] (let [parser (js/require elm-parser-path)] (try (let [res (parser/parse elm-code #js {:startRule "headerOnly"})] (js/_send obj-id :elm.hints.parser.results #js {:status "ok" :ch-id ch-id :module res})) (catch :default e (js/_send obj-id :elm.hints.parser.results #js {:status "fail" :ch-id ch-id :error e}))))))) (behavior ::elm-hints-parser-results :triggers #{:elm.hints.parser.results} :desc "Trigger hints after parsing relevant parts of editor for hinting" :reaction (fn [ed res] (let [pos (editor/->cursor ed) token (get-token ed) path (-> @ed :info :path) {:keys [ch-id module status error]} (utils/mod-js->clj res :keywordize-keys true) ch (get-ch ed ch-id) get-hints (partial ast/get-hints {:token (:string token) :pos pos :ed ed} path (project-path path))] (if (= "ok" status) (->> (get-hints {:ast module :file path}) (->hints token) (put! ch)) (->> (get-hints) (->hints token) (put! ch))) (remove-ch ed ch-id)))) (behavior ::elm-hints :triggers #{:init-hints} :desc "Provide Elm hints for current cursor position" :reaction (fn [ed channels] (let [pos (editor/->cursor ed) token (get-token ed) ch (chan) path (-> @ed :info :path)] (if (and token (connected? ed)) (if (ast/find-top-level-declaration-by-pos pos (project-path path) path) (do ; don't need to parse module header for this scenario (->> (ast/get-hints {:token (:string token) :pos pos :ed ed} path (project-path path)) (->hints token) (put! ch)) (conj channels ch)) (let [ch-id (store-ch ed ch)] (bg-parser ed ch-id ast/elm-parser-path (editor/->val ed)) (conj channels ch))) channels)))) ================================================ FILE: src/lt/plugins/elm_light/inline-doc.cljs ================================================ (ns lt.plugins.elm-light.inline-doc (:require [lt.plugins.elm-light.utils :as u] [lt.util.dom :as dom] [lt.objs.files :as files] [lt.object :as object] [lt.objs.editor :as editor] [lt.objs.browser :as browser]) (:require-macros [lt.macros :refer [defui behavior]])) (def marked (js/require (files/join u/elm-plugin-dir "node_modules" "marked"))) (defui doc-ui-header [doc] [:div.inline-doc [:h1 (:name doc)] [:h2 (:ns doc)] (when (and (:args doc) (not= (:args doc) "nil")) [:h3 (:args doc)])]) (defn marked-doc [md-doc] (let [elem (.createElement js/document "div")] (dom/add-class elem "elm-inline-doc") (set! (.-innerHTML elem) (marked md-doc (clj->js {:sanitize false}))) elem)) (defn maybe-append-marked-doc [elem doc] (if-let [md-str (:doc doc)] (do (dom/append elem (marked-doc md-str)) elem) elem)) (defn highlight-code [container-elem] (doseq [code (dom/$$ "pre > code" container-elem)] (.highlightBlock js/hljs code))) (defn handle-url-click [url] (let [b (or (first (object/by-tag :browser)) (browser/add))] (object/raise b :navigate! url))) (defn add-click-handlers [elem] (doseq [link (dom/$$ "a" elem)] (dom/on link "click" #(handle-url-click (dom/attr link :href))))) (behavior ::editor.elm.doc.show! :triggers #{:editor.elm.doc.show!} :reaction (fn [ed doc] (when (not= (:name doc) "") (let [doc-elem (-> (doc-ui-header doc) (maybe-append-marked-doc doc))] (inline-doc ed doc-elem (:loc doc)) (highlight-code doc-elem) (add-click-handlers doc-elem))))) (defn inline-doc [this doc-elem loc] (let [ed (:ed @this) type :underline line (editor/line-handle ed (:line loc)) res-obj (object/create :lt.objs.eval/underline-result {:ed this :class "underline" :opts {} :result doc-elem :loc loc :line line})] (object/add-tags res-obj [:inline.doc]) (object/update! this [:widgets] assoc [line :underline] res-obj) res-obj)) ================================================ FILE: src/lt/plugins/elm_light/linter.cljs ================================================ (ns lt.plugins.elm-light.linter "Generic linter for highlighting errors/warnings and providing context sensitive actions" (:require [lt.object :as object] [lt.objs.command :as cmd] [lt.objs.editor :as editor] [lt.objs.editor.pool :as pool] [lt.util.dom :as dom] [lt.objs.statusbar :as statusbar] [crate.binding :refer [bound]]) (:require-macros [lt.macros :refer [defui behavior]])) ;;********************************************************** ;; Lint summary shown in statusbar ;;********************************************************** (defn- status-class [{:keys [errors warnings]}] (cond (> errors 0) "error" (> warnings 0) "warning" :else "")) (defn- status-text [{:keys [errors warnings]}] (str "Lint status: " errors "/" warnings)) (defn ->status-ui [{:keys [lint-summary]}] [:span {:class (str "lint-status " (status-class lint-summary))} (status-text lint-summary)]) (behavior ::update-lint-status :triggers #{:update!} :reaction (fn [this f] (object/update! this [:lint-summary] f))) (object/object* ::statusbar.lint-status :triggers #{} :behaviors #{::update-lint-status} :lint-summary {:errors 0 :warnings 0} :init (fn [this] (statusbar/statusbar-item (bound this ->status-ui) ""))) (def statusbar-lint-summary (object/create ::statusbar.lint-status)) (statusbar/add-statusbar-item statusbar-lint-summary) (defn- grouped-lint-count [ed] (if-let [results (:linter-results @ed)] (->> (vals results) (map :result) (group-by :category) (map (fn [[k v]] {k (count v)})) (into {})) {:error 0 :warning 0})) (defn update-status-for-editor [ed] (let [{:keys [error warning]} (grouped-lint-count ed)] (object/raise statusbar-lint-summary :update! #(assoc % :warnings (or warning 0) :errors (or error 0))))) (behavior ::update-linter-on-editor-change :triggers #{:focus} :reaction (fn [ed] (update-status-for-editor ed))) ;;********************************************************** ;; In editor display of lint results ;;********************************************************** (defn- remove-widget [ed el] (try (dom/remove el) (catch :default e nil)) (editor/focus ed)) (defn- remove-res [ed res-id ] (let [{:keys [mark result] :as dill} (get-in @ed [:linter-results res-id ])] (when mark (.clear mark)) (object/update! ed [:linter-results] dissoc res-id)) (editor/focus ed)) (defn- current-range [ed mark] (let [rng (.find mark) from (.-from rng) to (.-to rng)] {:from {:ch (.-ch from) :line (.-line from)} :to {:ch (.-ch to) :line (.-line to)}})) (defn- execute-action [ed res-id action-fn res] (let [{:keys [mark]} (get-in @ed [:linter-results res-id ])] (action-fn res (current-range ed mark)) (remove-res ed res-id))) (defui action-ui [ed action res-id res] [:span.button (str (:text action))] :click #(execute-action ed res-id (:action action) res)) (defui inline-ui [ed res-id {:keys [title details category actions] :as res}] [:div {:tabindex -1 :class (str "linter-res " (or (name category) "error"))} [:p.title title] [:div.details [:pre details] [:div (map #(action-ui ed % res-id res) actions)]]] :blur #(remove-widget ed (.-target %)) :keydown #(let [kc (.-keyCode %)] (when (= kc 27) (remove-widget ed (.-target %))) (when (and (= kc 13) (seq actions)) (.preventDefault %) (.stopPropagation %) (execute-action ed res-id (-> actions first :action) res)))) (defn add-widget [ed res-id] (let [{:keys [mark result]} (get-in @ed [:linter-results res-id ]) ui (inline-ui ed res-id result) from (.-from (.find mark))] (.addWidget (editor/->cm-ed ed) from ui #js {:scrollIntoView true}) (dom/focus ui))) (defn- mark-range [ed {:keys [from to] :as code-range}] (if-not (= from to ) code-range {:from (assoc from :ch 0) :to (assoc to :ch (editor/line-length ed (:line from)))})) (defn create-mark [ed {:keys [category code-range]}] (let [{:keys [from to]} (mark-range ed code-range)] (editor/mark ed from to {:className (str "lint-" (or (name category) "error")) :inclusiveLeft false :inclusiveRight false}))) ;; Expected format of a lint result (comment {:category :error :code-range {:from {:ch 1 :line 1} :to {:ch 10 :line 13}} :title "Syntax error" :details "Something went really bad" :actions [{:text "Change to xyz" :on-select #(println "this was selected")}]}) (behavior ::linter-result! :triggers #{:linter-result!} :reaction (fn [ed res] (let [id (-> (gensym "linter-res") str) mark (create-mark ed res)] (set! (.-ltlintid mark) id) (set! (.-lttype mark) :linter) (object/update! ed [:linter-results] assoc id {:mark mark :result res}) (update-status-for-editor ed)))) (behavior ::clear-linter-results! :triggers #{:clear-linter-results!} :reaction (fn [ed] (doseq [[id res] (:linter-results @ed)] (when-let [m (:mark res)] (.clear m)) (when-let [w (:widget res)] (dom/remove w))) (object/assoc-in! ed [:linter-results] nil) (update-status-for-editor ed))) (cmd/command {:command :editor.linter.remove-all :desc "Editor: Clear all lint results" :exec (fn [] (when-let [ed (pool/last-active)] (object/raise ed :clear-linter-results!)))}) (defn find-current-lint-mark [ed] (->> (editor/find-marks ed (editor/->cursor ed)) (filter #(= :linter (.-lttype %))) first)) (defn get-widget-by-mark [ed mark] (get-in @ed [:linter-results (.-ltlintid mark) :widget])) (defn mark->pos [mark] (let [cm-pos (.-from (.find mark))] {:ch (.-ch cm-pos) :line (.-line cm-pos)})) (defn get-all-lint-marks [ed] (->> (.getAllMarks (editor/->cm-ed ed)) (filter #(= :linter (.-lttype %))) (sort-by #((juxt :line :ch) (mark->pos %))))) (defn split-with-mark [ed] (let [all-marks (get-all-lint-marks ed) curr-mark (find-current-lint-mark ed)] (split-with #(not (= (when curr-mark (.-ltlintid curr-mark)) (.-ltlintid %))) all-marks))) (defn find-next-mark [ed] (let [[ms1 ms2] (split-with-mark ed)] (first (into (vec (drop 1 ms2)) ms1)))) (defn find-prev-mark [ed] (let [[ms1 ms2] (split-with-mark ed)] (first (into (reverse (drop 1 ms2)) ms1)))) (cmd/command {:command :editor.linter.details :desc "Linter: Show details at cursor" :exec (fn [] (when-let [ed (pool/last-active)] (when-let [mark (find-current-lint-mark ed)] (add-widget ed (.-ltlintid mark)))))}) (cmd/command {:command :editor.next.lint-result :desc "Linter: Move to next result" :exec (fn [] (when-let [ed (pool/last-active)] (when-let [next-mark (find-next-mark ed)] (editor/move-cursor ed (mark->pos next-mark)))))}) (cmd/command {:command :editor.prev.lint-result :desc "Linter: Move to previous result" :exec (fn [] (when-let [ed (pool/last-active)] (when-let [prev-mark (find-prev-mark ed)] (editor/move-cursor ed (mark->pos next-mark)))))}) ================================================ FILE: src/lt/plugins/elm_light/make.cljs ================================================ ================================================ FILE: src/lt/plugins/elm_light/module_graph.cljs ================================================ (ns lt.plugins.elm-light.module-graph (:require [lt.plugins.elm-light.utils :as u] [lt.plugins.elm-light.elm-ast :as elm-ast] [lt.objs.files :as files] [lt.objs.tabs :as tabs] [lt.object :as object] [lt.objs.command :as cmd] [lt.objs.editor.pool :as pool] [lt.objs.console :as console] [lt.objs.notifos :as notifos] [lt.util.dom :as dom] [lt.util.js :as js-util] [clojure.set :refer [rename-keys]] [clojure.string :as s]) (:require-macros [lt.macros :refer [defui behavior]])) (def dagreD3 (js/require (files/join u/elm-plugin-dir "node_modules/dagre-d3"))) (def d3 (js/require (files/join u/elm-plugin-dir "node_modules/d3"))) (declare set-group-filter!) (declare set-module-filter!) (declare toggle-exposeds-filter!) (defui module-graph-ui [this] [:div.graph [:div.filters "Add filters here !"] [:div.module-graph [:svg:svg {:width "650" :height "680"} [:svg:g {:transform "translate(20,20)"}]]]]) (defui exposeds-filter-ui [this] [:span.filter.checkbox [:label [:input {:type "checkbox"}] "Show module exposeds"]] :change (fn [ev] (toggle-exposeds-filter! this (.-checked (.-target ev))))) (defui module-filter-option-ui [this module] [:option (:name module)]) (defui module-filter-ui [this modules] [:span.filter [:label "Module: "] [:select (map (partial module-filter-option-ui this) (cons {:name ""} modules))]] :change (fn [ev] (set-module-filter! this (.-value (.-target ev))))) (defui group-filter-option-ui [this group] [:option (:name group)]) (defui group-filter-ui [this groups] [:span.filter [:label "Group: "] [:select (map (partial group-filter-option-ui this) (cons {:name ""} groups))]] :change (fn [ev] (set-group-filter! this (.-value (.-target ev))))) (defui filters-ui [this filters] [:div.filters [:h1 (files/basename (:project-path @this))] (group-filter-ui this (:groups filters)) (module-filter-ui this (:modules filters)) (exposeds-filter-ui this)]) (defn render-filters [this filters] (let [container (object/->content this) curr-filters (dom/$ :div.filters container)] (dom/replace-with curr-filters (filters-ui this filters)))) (object/object* ::module-graph :tags [:elm.graph.module] :name "Module graph" :init (fn [this] (module-graph-ui this))) (declare module-graph) (behavior ::on-close-destroy :triggers #{:close} :reaction (fn [this] (when-let [ts (:lt.objs.tabs/tabset @this)] (when (= (count (:objs @ts)) 1) (tabs/rem-tabset ts))) (object/raise this :destroy))) (defn node-id [x] (:name x)) ;; (defn exposeds-html [exposeds] (str "
      " (->> (map (fn [exp] (str "
    • " exp "
    • ")) exposeds) s/join) "
    ")) (defn node-label [this x] #js {:shape (if-let [shape (:shape x)] shape "rect") :labelType "html" :style (when (= (:name x) (-> @this :filters :current-module)) "fill: #FFF8DC") :label (str "
    " "" (:name x) "" (when (-> @this :filters :show-exposeds?) (exposeds-html (:exposeds x))) "
    ")}) (def level-styles {1 "fill: #474747" 2 "fill: #6D686E" 3 "fill: #7E7880" 4 "fill: #807A78" 5 "fill: #919394"}) (defn group-label [x] #js {:shape (if-let [shape (:shape x)] shape "rect") :labelType "html" :style (get level-styles (:level x) ) :class "level-class" :clusterLabelPos "top" :label (str "
    " (:name x) "
    ")}) (defn create-graph [this data] (let [g (.setGraph (new dagreD3.graphlib.Graph #js {:compound true}) #js {})] (doseq [x (:groups data)] (.setNode g (:group x) (group-label x))) (doseq [x (:nodes data)] (.setNode g (node-id x) (node-label this x)) (when-let [parent (:parent x)] (.setParent g (node-id x) parent))) (doseq [x (filter :parent (:groups data))] (.setParent g (:group x) (:parent x))) (doseq [x (:edges data)] (.setEdge g (:a x) (:b x) #js {:label (:label x)})) g)) (defn d3-sel [selector] (.select d3 selector)) (defn dimensions [this] {:w (.-clientWidth (:content @this)) :h (.-clientHeight (:content @this))}) (defn init-zoom [svg g] (let [zoom (.on (.zoom (.-behavior d3)) "zoom" #(.attr g "transform" (str "translate(" (.-translate (.-event d3)) ")" "scale(" (.-scale (.-event d3)) ")")))] (.call svg zoom))) (defn resize-graph [this svg] (let [dim (dimensions this)] (.attr svg "width" (+ (:w dim) 20)) (.attr svg "height" (+ (:h dim) 20)))) (behavior ::on-render :desc "Elm render project modules" :triggers #{:elm.module-graph.render} :reaction (fn [this data] (let [svg (.select d3 "svg") g (.select svg "g") renderer (.render dagreD3)] (renderer g (create-graph this data)) (init-zoom svg g) (js-util/wait 200 #(resize-graph this svg))))) (defn get-project-modules [project-path] (->> (elm-ast/get-project project-path) :file-asts (remove :package))) (defn get-group-names [module-names] (->> module-names (map #(s/split % #"\.")) (filter #(< 1 (count %))) (map drop-last) (mapcat (fn [parts] (reduce (fn [a b] (let [group-name (str (:name (last a)) (when (seq a) ".") b)] (conj a {:group (str "g-" group-name) :name group-name :level (inc (count a)) :parent (:group (last a))})) ) [] parts))) set sort)) (defn- get-exposeds-names [module] (->> (elm-ast/get-exposed-declarations-memo module) (remove #(= "adtDef" (:type %))) (map :value))) (defn create-graph-data [modules] (let [module-names (set (map elm-ast/get-module-name modules)) ] {:groups (get-group-names module-names) :nodes (map (fn [module] (let [mod-name (elm-ast/get-module-name module)] {:name (elm-ast/get-module-name module) :parent (when (< -1 (.indexOf mod-name ".")) (->> (s/split mod-name #"\.") drop-last (s/join ".") (str "g-"))) :exposeds (get-exposeds-names module) :file (:file module)})) modules) :edges (mapcat (fn [module] (map (fn [imp] {:a (elm-ast/get-module-name module) :b (:value imp) :label ""}) (->> (-> module :ast :imports :imports) (filter #(contains? module-names (:value %)))))) modules)})) ;; todo : move to elm-ast (defn- get-module-import-names [module] (->> module :ast :imports :imports (map :value) set)) (defn- maybe-filter-by-group [current-group modules] (if-not (s/blank? current-group) (filter #(.startsWith (elm-ast/get-module-name %) current-group) modules) modules)) (defn- maybe-filter-by-module [current-module modules] (if-not (s/blank? current-module) (let [module (-> (filter #(= current-module (elm-ast/get-module-name %)) modules) first) module-import-names (get-module-import-names module)] (filter (fn [m] (or (= module m) (contains? module-import-names (elm-ast/get-module-name m)) (contains? (get-module-import-names m) current-module))) modules)) modules)) (defn refresh-graph [this] (let [modules (->> (get-project-modules (:project-path @this)) (maybe-filter-by-group (-> @this :filters :current-group)) (maybe-filter-by-module (-> @this :filters :current-module)))] (object/raise this :elm.module-graph.render (create-graph-data modules)))) (defn- set-group-filter! [this group-name] (object/assoc-in! this [:filters :current-group] group-name) (refresh-graph this)) (defn- set-module-filter! [this module-name] (object/assoc-in! this [:filters :current-module] module-name) (refresh-graph this)) (defn- toggle-exposeds-filter! [this v] (object/assoc-in! this [:filters :show-exposeds?] v) (refresh-graph this)) (behavior ::on-show-modules :desc "Elm show module graph" :triggers #{:elm.module-graph.show} :reaction (fn [this project-path ] (tabs/add-or-focus! this) (let [modules (get-project-modules project-path) groups (get-group-names (set (map elm-ast/get-module-name modules)))] (object/merge! this {:filters {} :project-path project-path}) (object/raise this :elm.module-graph.render (create-graph-data modules)) (render-filters this {:groups groups :modules (map (fn [module] {:name (elm-ast/get-module-name module)}) modules)})))) (behavior ::on-tab-resized :triggers #{:end-drag} :reaction (fn [_] (let [svg (.select d3 "svg")] (resize-graph module-graph svg)))) (behavior ::on-move :triggers #{:move} :reaction (fn [this] (let [svg (.select d3 "svg")] (resize-graph this svg)))) (def module-graph (object/create ::module-graph)) ;; (doseq [obj (object/by-tag :elm.graph.module)] ;; (println "Destroying !") ;; (object/destroy! obj)) (cmd/command {:command :show-elm-module-graph :desc "Elm: Show module graph" :exec (fn [] (when-let [ed (pool/last-active)] (when-let [path (-> @ed :info :path u/project-path)] (object/raise module-graph :elm.module-graph.show path ))))}) ================================================ FILE: src/lt/plugins/elm_light/modulebrowser.cljs ================================================ (ns lt.plugins.elm-light.modulebrowser (:require [lt.plugins.elm-light.utils :as u] [lt.objs.files :as files] [lt.object :as object] [lt.objs.sidebar :as sidebar] [lt.objs.sidebar.command :as sidebar-cmd] [lt.objs.command :as cmd] [lt.objs.editor.pool :as pool] [lt.objs.notifos :as notifos] [lt.util.dom :as dom] [clojure.string :as s]) (:require-macros [lt.macros :refer [defui behavior]])) (defn- resolve-module-file [project-path pck-json package module version] (->> pck-json :source-directories (map #(files/join project-path "elm-stuff/packages" package version % (str (s/replace module "." files/separator) ".elm"))) (some #(if (files/exists? %) % nil)))) (defn- get-exposed-modules [project-path {:keys [package exact]}] (let [pck-json (u/parse-json-file (files/join project-path "elm-stuff/packages" package exact "elm-package.json"))] (->> pck-json :exposed-modules (map (fn [x] {:name x :packageName package :version exact :file (resolve-module-file project-path pck-json package x exact)}))))) (defn- get-package-modules [project-path] (->> (u/get-project-deps project-path) (filter :exact) (mapcat (partial get-exposed-modules project-path)) (sort-by :name))) (defn- deduce-module-name [root-path elm-file-path] (-> elm-file-path (s/replace root-path "") (s/replace ".elm" "") (s/replace #"^/" "") (s/replace files/separator "."))) (defn- get-project-modules [project-path] (let [pck-json (u/parse-json-file (files/join project-path "elm-package.json"))] (->> (:source-directories pck-json) (mapcat (fn [dir] (if (= dir ".") (->> (files/ls project-path) ;; fixme: no nesting allowed to avoid elm-stuff etc (filter #(= (files/ext %) "elm")) (map (fn [x] {:name (deduce-module-name "" x) :file (files/join project-path x)}))) (->> (files/filter-walk #(= (files/ext %) "elm") (files/join project-path dir)) (map (fn [x] {:name (deduce-module-name (files/join project-path dir) x) :file x})))))) (map (fn [m] (assoc m :packageName (files/basename project-path) :version (:version pck-json)))) (sort-by :name)))) (defn get-all-modules [project-path] (concat (get-project-modules project-path) (get-package-modules project-path))) ;(println (u/pretty-json (get-all-modules "/Users/mrundberget/projects/albums/frontend"))) (defui wrapper [this] [:div {:id "elm-module-browser"} "Retrieving modules..."]) (behavior ::clear! :triggers #{:clear!} :reaction (fn [this] (cmd/exec! :close-sidebar))) (behavior ::focus! :triggers #{:focus!} :reaction (fn [this] (let [input (dom/$ "#elm-module-browser input")] (.focus input)))) (behavior ::ensure-visible :triggers #{:ensure-visible} :reaction (fn [this] (sidebar-cmd/ensure-visible this))) (behavior ::show-project-modules :triggers #{:show-project-modules} :reaction (fn [this prj-path] (let [modules (get-all-modules prj-path) el (dom/$ "#elm-module-browser") mod-browser (.embed js/Elm js/Elm.ModuleBrowser el (clj->js {:modzPort []}))] (.send (.-modzPort (.-ports mod-browser)) (clj->js modules)) ;; set up port subscriptions (.subscribe (.-changeSelection (.-ports mod-browser)) (fn [] (object/raise this :ensure-visible))) (.subscribe (.-select (.-ports mod-browser)) (fn [file] (cmd/exec! :open-path file) (object/raise this :clear!))) (.subscribe (.-close (.-ports mod-browser)) (fn [] (object/raise this :clear!))) (object/raise this :focus!)))) (object/object* ::modulebrowser :tags #{:elm.modulebrowser} :label "Elm module browser" :order 2 :init (fn [this] (wrapper this))) (def module-bar (object/create ::modulebrowser)) (sidebar/add-item sidebar/rightbar module-bar) (behavior ::list-modules :triggers #{:editor.elm.list-modules} :reaction (fn [ed] (when-let [prj-path (u/project-path (-> @ed :info :path))] (do (object/raise sidebar/rightbar :toggle module-bar) (object/raise module-bar :show-project-modules prj-path))))) (cmd/command {:command :show-modulebrowser :desc "Elm: Show module-browser" :exec (fn [] (when-let [ed (pool/last-active)] (object/raise ed :editor.elm.list-modules)))}) ================================================ FILE: src/lt/plugins/elm_light/packages.cljs ================================================ (ns lt.plugins.elm-light.packages (:require [lt.plugins.elm-light.utils :as u] [lt.plugins.elm-light.graph :as graph] [lt.plugins.elm-light.autocompleter :as ac] [lt.objs.files :as files] [lt.objs.tabs :as tabs] [lt.object :as object] [lt.objs.command :as cmd] [lt.objs.editor.pool :as pool] [lt.objs.console :as console] [lt.objs.notifos :as notifos] [lt.objs.browser :as browser] [lt.util.dom :as dom] [quiescent :as q :include-macros true] [quiescent.dom :as d] [clojure.string :as s] [clojure.walk :refer [keywordize-keys]]) (:require-macros [lt.macros :refer [defui behavior]])) (defn remove-pkg [path pkg] (let [pkg-file (files/join path "elm-package.json")] (-> (u/parse-json-file pkg-file) (update-in [:dependencies] (fn [deps] (-> (into {} (map (fn [[k v]] [(u/nskw->name k) v]) deps)) (dissoc pkg)))) u/pretty-json ((partial files/save pkg-file))))) (defui project-wrapper [this] [:div.elm [:div {:id "project-packages-wrapper"} "Retrieving project package info..."]]) (object/object* ::elm-packages :tags #{:elm.packages} :label "Elm project packages" :name "Elm project packages" :init (fn [this] (u/fetch-all-packages #(object/merge! this {:all-packages %})) (project-wrapper this))) (declare elm-packages) ;; react rendering (declare render) (defn ensure-visible [this] (let [list (dom/$ ".autocomplete-dropdown-menu" (object/->content this)) elem (dom/$ ".autocomplete-active" list)] (cond (< (.-offsetTop elem) (.-scrollTop list)) (set! (.-scrollTop list) (- (.-offsetTop elem) 15)) (> (+ (.-offsetTop elem) (.-offsetHeight elem)) (+ (.-scrollTop list) (.-clientHeight list))) (set! (.-scrollTop list) (- (+ (.-offsetTop elem) (.-offsetHeight elem) 15) (.-clientHeight list))) :else nil))) ;; stateless joy ! (defn filter-packages [token pkgs] (vec (filter (fn [pkg] (> (.indexOf (s/lower-case (:name pkg)) (s/lower-case token)) -1)) pkgs))) (defn idx-active [items] (first (keep-indexed #(when (:active %2) %1) items))) (defn move-down [items] (when-not (empty? items) (-> (assoc-in items [(idx-active items) :active] false) (assoc-in [(min (dec (count items)) (inc (idx-active items))) :active] true)))) (defn move-up [items] (when-not (empty? items) (-> (assoc-in items [(idx-active items) :active] false) (assoc-in [(max 0 (dec (idx-active items))) :active] true)))) ;; Warning - Mutants ahead ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (defn on-pkg-down [] (object/update! elm-packages [:ac-packages] move-down) (render {}) (ensure-visible elm-packages)) (defn on-pkg-up [] (object/update! elm-packages [:ac-packages] move-up) (render {}) (ensure-visible elm-packages)) (defn on-pkg-sel [] (let [items (:ac-packages @elm-packages)] (if-let [idx (idx-active items)] (do (object/assoc-in! elm-packages [:ac-versions] (:versions (nth items idx))) (object/assoc-in! elm-packages [:ac-version] (first (:versions (nth items idx)))) (object/assoc-in! elm-packages [:ac-package] (:name (nth items idx)))) (object/assoc-in! elm-packages [:ac-versions] []))) (object/merge! elm-packages {:ac-packages nil}) (render {})) (defn on-pkg-cancel [] (object/merge! elm-packages {:ac-packages nil :ac-versions []}) (render {})) (defn on-pkg-blur [] (object/merge! elm-packages {:ac-packages nil}) (render {})) (defn on-pkg-change [v] (let [items (filter-packages v (:all-packages @elm-packages))] (object/merge! elm-packages {:ac-packages items :ac-package v :ac-versions [] :ac-version nil}) (when-not (empty? items) (object/assoc-in! elm-packages [:ac-packages 0 :active] true)) (render {}))) (defn pkg-install [pkg v] (let [args (concat ["install" "--yes"] (if pkg [pkg v] []))] (notifos/working (s/join " " (cons "elm-package" args))) (let [proc (.spawn (js/require "child_process") "elm-package" (clj->js args) #js {:cwd (:path @elm-packages)})] (.on proc "exit" #(do (if (= % 0 ) (notifos/done-working) (notifos/set-msg! "Error installing elm package" {:class "error" :timeout 5000})) (object/raise elm-packages :elm.show.project.packages (:path @elm-packages)) (object/raise graph/dependency-graph :elm.graph.show-dependencies (:path @elm-packages) false))) (.stdout.on proc "data" #(notifos/msg* (str "Package install: " %) {:timeout 5000})) (.stderr.on proc "data" #(console/error (str %)))))) (defn on-add-package [] (pkg-install (:ac-package @elm-packages) (:ac-version @elm-packages))) (defn on-pkg-refresh [] (pkg-install nil nil)) (defn on-remove-pkg [pkg] (remove-pkg (:path @elm-packages) pkg) (pkg-install nil nil)) (defn on-change-version [v] (object/assoc-in! elm-packages [:ac-version] v) (render {})) (defn on-pkg-browse [pkg version] (let [url (str "http://package.elm-lang.org/packages/" pkg "/" version) b (or (first (object/by-tag :browser)) (browser/add))] (tabs/add-or-focus! b) (object/raise b :navigate! url))) (defn on-show-graph [] (object/raise graph/dependency-graph :elm.graph.show-dependencies (:path @elm-packages) true)) ;; React view components ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (q/defcomponent AddPackageForm [props] (d/div {:className "add-package"} (d/h3 {} "Add package:") (ac/AutoComplete (:ac-props props)))) (q/defcomponent PackageRow [{:keys [package range exact on-remove on-browse]}] (d/tr {} (d/td {} (if (and package exact) (d/span {:className "link" :onClick #(on-browse package exact)} package) package) ) (d/td {} range) (d/td {} exact) (d/td {} (when range (d/button {:onClick #(on-remove package)} "remove"))))) (q/defcomponent PackageTable [props] (d/table {:className "package-table"} (d/thead {} (d/tr {} (d/th {} "Package") (d/th {} "Range") (d/th {} "Exact") (d/th {} ""))) (apply d/tbody {} (map #(PackageRow (assoc % :on-remove (:on-remove props) :on-browse (:on-browse props))) (:packages props))))) (q/defcomponent ProjectPackages [props] (d/div {:className "project-packages"} (d/h1 {} (str (files/basename (:path props)) " - packages")) (PackageTable props) (d/button {:onClick #((:on-pkg-refresh props))} "Refresh packages") (d/button {:onClick #((:on-show-graph props)) :style {:marginLeft "10px"}} "Show dependency graph") (AddPackageForm props))) (defn render [props] (q/render (ProjectPackages (merge props {:path (:path @elm-packages) :packages (:packages @elm-packages) :on-pkg-refresh on-pkg-refresh :on-remove on-remove-pkg :on-browse on-pkg-browse :on-show-graph on-show-graph :ac-props {:items (:ac-packages @elm-packages) :value (:ac-package @elm-packages) :versions (:ac-versions @elm-packages) :version (:ac-version @elm-packages) :on-change on-pkg-change :on-up on-pkg-up :on-down on-pkg-down :on-select on-pkg-sel :on-blur on-pkg-blur :on-cancel on-pkg-cancel :on-change-version on-change-version :on-add-package on-add-package} :all-packages (:all-packages @elm-packages)})) (.getElementById js/document "project-packages-wrapper"))) ;; Behaviours and commands ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (behavior ::on-close-project-packages :triggers #{:close} :reaction (fn [this] (tabs/rem! this))) (behavior ::show-project-packages :triggers #{:elm.show.project.packages} :reaction (fn [this path] (tabs/add-or-focus! elm-packages) (object/assoc-in! elm-packages [:ac-packages] nil) (object/assoc-in! elm-packages [:ac-package] nil) (object/assoc-in! elm-packages [:ac-versions] []) (object/assoc-in! elm-packages [:ac-version] nil) (object/assoc-in! elm-packages [:path] path) (object/assoc-in! elm-packages [:packages] (u/get-project-deps path)) (render {}))) (def elm-packages (object/create ::elm-packages)) ;; (doseq [obj (object/by-tag :elm.packages)] ;; (println "Destroying") ;; (object/destroy! obj)) (cmd/command {:command :show-elm-project-packages :desc "Elm: Show project packages" :exec (fn [] (when-let [ed (pool/last-active)] (when-let [path (-> @ed :info :path u/project-path)] (object/raise elm-packages :elm.show.project.packages path))))}) ================================================ FILE: src/lt/plugins/elm_light/repl.cljs ================================================ (ns lt.plugins.elm-light.repl "Implementation of anyonymous Elm Repl Tab" (:require [lt.object :as object] [lt.objs.command :as cmd] [lt.objs.editor :as editor] [lt.objs.editor.pool :as pool] [lt.objs.tabs :as tabs]) (:require-macros [lt.macros :refer [behavior]])) (behavior ::on-focus-repl-ed :triggers #{:focus!} :reaction (fn [this] (when (:main @this) (object/raise (:main @this) :focus!)))) (behavior ::repl-destroy-on-close :triggers #{:close} :reaction (fn [this] (object/raise (:main @this) :close) (object/destroy! this))) (behavior ::repl-close-parent :triggers #{:destroy} :reaction (fn [this] (object/destroy! (:frame @this)))) (behavior ::on-show-repl-refresh-eds :triggers #{:show} :reaction (fn [this] (when (:main @this) (object/raise (:main @this) :show) (object/raise (:main @this) :refresh!) (editor/focus (:main @this))))) (object/object* ::elmrepl :tags #{:elmrepl} :name "elmrepl" :live true :init (fn [this] (let [main (-> (pool/create {:mime "text/x-elm" :content "" :ns "user"}) (object/remove-tags [:editor.elm]) (object/add-tags [:editor.elm.repl :editor.transient]))] (object/merge! main {:frame this}) (editor/clear-history main) (object/merge! main {:dirty false :editor.generation (editor/->generation main)}) (object/merge! this {:main main :dirty false}) (editor/+class main :main) (editor/move-cursor main {:line 0 :ch 0}) [:div.elmrepl (object/->content main)]))) (defn add-repl [] (let [elmrepl (object/create ::elmrepl)] (tabs/add! elmrepl) (tabs/active! elmrepl) elmrepl)) (cmd/command {:command :elmrepl :desc "Elm repl: Open a elm repl" :exec (fn [] (add-repl))}) ================================================ FILE: src/lt/plugins/elm_light/selection.cljs ================================================ (ns lt.plugins.elm-light.selection (:require [lt.objs.editor :as editor])) (defn indented? [s] (> (count (re-find #"\s*" s)) 0)) (defn comment-line? [ed l] (= "comment" (:type (editor/->token ed {:line l :ch 1})))) (defn no-content-line? [s] (and (not (nil? s)) (= 0 (count (.trim s))))) (defn top-level-line? [ed l] (let [line-str (editor/line ed l)] (and (not (indented? line-str)) (not (no-content-line? line-str)) (not (comment-line? ed l))))) (defn get-top-level-line-back [ed pos] (loop [line (:line pos)] (cond (top-level-line? ed line) line (= 0 line) nil :else (recur (dec line))))) (defn get-top-level-line-down [ed start-line] (let [last-line (editor/last-line ed)] (loop [line start-line] (cond (top-level-line? ed line) line (= line last-line) nil :else (recur (inc line)))))) (defn maybe-backup [ed l] (loop [line l] (if (or (no-content-line? (editor/line ed line)) (comment-line? ed line)) (recur (dec line)) line))) (defn get-top-level-expr [ed pos] (when-let [start-line (get-top-level-line-back ed pos)] (let [last-line (editor/last-line ed) end-line (maybe-backup ed (if (= last-line start-line) start-line (if-let [l (get-top-level-line-down ed (inc start-line))] (dec l) last-line)))] {:from {:line start-line :ch 0} :to {:line end-line :ch (editor/line-length ed end-line)}}))) ================================================ FILE: src/lt/plugins/elm_light/test.cljs ================================================ (ns lt.plugins.elm-light.test (:require [lt.plugins.elm-light.utils :as util] [lt.plugins.elm-light.clients :as elm-clients] [lt.plugins.elm-light.elm-ast :as elm-ast] [lt.objs.console :as console] [lt.objs.notifos :as notifos] [lt.object :as object] [lt.objs.command :as cmd] [lt.objs.clients :as clients] [lt.objs.editor :as editor] [lt.objs.editor.pool :as pool] [lt.objs.tabs :as tabs] [lt.objs.statusbar :as statusbar] [lt.objs.files :as files] [lt.util.dom :as dom] [clojure.string :as s] [clojure.zip :as zip]) (:require-macros [lt.macros :refer [behavior defui]])) ; Setup tests (def default-test-deps {:elm-community/elm-test "3.0.0 <= v < 4.0.0" :rtfeldman/node-test-runner "3.0.0 <= v < 4.0.0"}) (defn ->test-src-dir [src-dir] (if (= src-dir ".") "../" (str "../" src-dir))) (defn ->test-src-dirs [src-dirs] (conj (mapv ->test-src-dir src-dirs) ".")) (defn deps->named [deps] (into {} (map (fn [[k v]] [(util/nskw->name k) v]) deps))) (defn ->test-config [project-cfg] (-> project-cfg (update-in [:source-directories] ->test-src-dirs) (assoc :exposed-modules []) (update-in [:dependencies] #(merge % default-test-deps)) (update-in [:dependencies] deps->named))) (defn parse-project-cfg [project-path] (util/parse-json-file (files/join project-path "elm-package.json"))) (defn save-test-cfg! [path test-cfg] (->> (util/pretty-json test-cfg) (files/save path))) (defn maybe-create-test-path! [project-path] (let [test-path (files/join project-path "tests")] (when-not (files/exists? test-path) (files/mkdir test-path)) test-path)) (defn install-packages! [test-path] (let [args ["install" "--yes"] proc (.spawn (js/require "child_process") "elm-package" (clj->js args) #js {:cwd test-path})] (.stdout.on proc "data" #(println (str "Test package install: " %))) (.stderr.on proc "data" #(console/error (str %))) (.on proc "exit" #(if (= % 0 ) (notifos/done-working "Successfully configured elm test") (notifos/set-msg! "Error installing test elm packages" {:class "error" :timeout 5000}))) nil)) (defn maybe-add-templates [test-path] (let [templ-dir (files/join util/elm-plugin-dir "templates/test") runner (files/join templ-dir "Main.elm") tests (files/join templ-dir "Tests.elm")] (when-not (files/exists? (files/join test-path "Main.elm")) (files/copy runner (files/join test-path "Main.elm"))) (when-not (files/exists? (files/join test-path "Tests.elm")) (files/copy tests (files/join test-path "Tests.elm"))))) (defn setup-test [project-path] (when-let [project-cfg (parse-project-cfg project-path)] (notifos/working "Init elm test config") (let [test-path (maybe-create-test-path! project-path) test-cfg-path (files/join test-path "elm-package.json")] (maybe-add-templates test-path) (->> (->test-config project-cfg) (save-test-cfg! test-cfg-path)) (install-packages! test-path)))) ; --- ZIPPERS FOR GROUPING TESTS (defn- z-top [zloc] (->> (iterate zip/up zloc) (take-while identity) last)) (defn- z-find-by-label [label zloc] (->> (iterate zip/next zloc) (take-while identity) (take-while (complement zip/end?)) (filter #(= label (zip/node %))) first)) (defn- suitify-test [{:keys [labels failures]}] (let [[head & tail] labels root (zip/vector-zip [head])] (-> (reduce (fn [zloc label] (-> (zip/append-child zloc [label]) zip/down zip/right)) root tail) (zip/append-child {:failures failures}) z-top))) (defn- add-test-to-suite [{:keys [zloc labels]} {:keys [failures]}] (let [[head & tail] labels root (when (seq labels) (-> (zip/rightmost zloc) (zip/insert-right [head]) zip/right)) ] (if (seq labels) (-> (reduce (fn [zl label] (-> (zip/append-child zl [label]) zip/down zip/right)) root tail) (zip/append-child {:failures failures}) z-top) ;; Just append the failures all labels are similar to get here... (let [z-failures (zip/right zloc) curr-fails (-> (zip/node z-failures) :failures)] (->> {:failures (concat curr-fails failures)} (zip/replace z-failures) z-top))))) (defn- find-branch [zloc-suite labels] (loop [zloc zloc-suite lbls labels] (let [branch (z-find-by-label (first lbls) zloc)] (cond (and branch (or (not (second lbls)) (and (second lbls) (nil? (z-find-by-label (second lbls) branch))))) {:zloc branch :labels (drop 1 lbls)} (nil? branch) nil branch (recur branch (drop 1 lbls)))))) (defn group-tests [tests] (reduce (fn [acc t] (let [prev (last acc)] (if-not prev (conj acc (suitify-test t)) (if-let [branch (find-branch prev (:labels t))] (-> (drop-last acc) vec (conj (add-test-to-suite branch t))) (conj acc (suitify-test t)))))) [] tests)) ;; (let [sample1 {:labels ["oxfordify" "given a sentence with multiple items" "returns an oxford-style sentence"] :failures ["failure 1"]} ;; sample2 {:labels ["oxfordify" "given a sentence with multiple items" "returns an oxford-style sentence"] :failures ["failure 2"]}] ;; (let [suite1 (suitify-test sample1)] ;; (add-test-to-suite (find-branch suite1 (:labels sample2)) ;; sample2))) (declare dashboard) (defn- get-status-count [status items] (->> (filter #(= status (:status %)) items) count)) (defui wrapper [] [:div.elmtest-dashboard [:h1.title "Elm Test Dashboard"] [:div.project-container "Project stuff here"] [:div.result-container "Placeholder for results"]]) (defui loader [] [:div.bubblingG [:span {:id "bubblingG_1"}] [:span {:id "bubblingG_2"}] [:span {:id "bubblingG_3"}]]) (defui testprogress-ui [this {:keys [labels status] :as evt}] (let [testCount (or (-> @this :start :testCount) 0) progress (str (count (:tests @this)) "/" testCount) test-name (s/join " -> " labels) clazz (if (:failures? @this) "error" "ok") failed (get-status-count "fail" (:tests @this)) passed (get-status-count "pass" (:tests @this)) duration (if (= "runComplete" (:event evt)) (:duration evt) (->> (map #(-> (:duration %) int) (-> @this :tests)) (reduce +)))] [:div.test-progress [:div.summary [:div.summary-item [:label "Runs:"] [:span progress]] [:div.summary-item [:label "Passed:"] [:span passed]] [:div.summary-item [:label "Failed:"] [:span failed]] [:div.summary-item [:label "Seed:"] [:span (-> @this :start :initialSeed)]] [:div.summary-item [:label "Duration:"] [:span (str duration " ms")]]] [:div.progress [:progress {:value (count (:tests @this)) :max testCount :class clazz}]] [:p.curr-test (when-not (s/blank? test-name) (str "(" test-name ")"))]])) (defui failure-item [{:keys [given actual] :as failure}] [:div (when-not (s/blank? given) [:div.given [:label "Given: "] [:span given]]) [:pre actual]]) (defui dufus-ui [nd] [:ul [:li [:span.test-label (str (first nd))] (if (map? (second nd)) (map failure-item (:failures (second nd))) (map dufus-ui (drop 1 nd)) ) ]]) (defui failed-test-ui [z-failed-test] [:li (dufus-ui (zip/node z-failed-test))]) (defui failed-tests-ui [failed-tests & ldr] (let [grouped (group-tests failed-tests)] [:div.test-failures [:h2 "Test Failures"] [:ul (when ldr ldr) (map failed-test-ui grouped)]])) (defui project-ui [this] (let [proj-path (util/project-path (:file @this)) proj-name (str (last (files/path-segs proj-path)) (files/basename proj-path))] [:div.project-container [:h1 proj-name]])) (behavior ::on-close-destroy :triggers #{:close} :reaction (fn [this] (when-let [ts (:lt.objs.tabs/tabset @this)] (when (= (count (:objs @ts)) 1) (tabs/rem-tabset ts))) (object/raise this :destroy))) (behavior ::on-testrun-init :triggers #{:elm.test.init} :reaction (fn [this path] (let [result-container (dom/$ :div.result-container (:content @this)) proj-container (dom/$ :div.project-container (:content @this))] (object/assoc-in! this [:start] nil) (object/assoc-in! this [:tests] []) (object/assoc-in! this [:failures?] nil) (object/assoc-in! this [:file] path) (dom/replace-with proj-container (project-ui this)) (dom/empty result-container) (dom/append result-container (testprogress-ui this {})) (dom/append result-container (failed-tests-ui [] (loader))) ;; TODO: Show some initial message, maybe which file is used ? ))) (defn- log-end [failures? {:keys [passed failed duration] :as evt}] (let [summary (str "Test run completed in " duration "ms. Results: " passed " passed, " failed " failed")] (console/log summary {:class "error"}) (notifos/msg* summary {:class (if failures? "error" "") :timeout 5000}))) (defn handle-end [this {:keys [passed failed duration] :as evt}] (dom/replace-with (dom/$ :div.test-progress (:content @this)) (testprogress-ui this evt )) (log-end (:failures? @this) evt)) (defn- log-test-failures [failures? {:keys [labels failures]}] (let [test-name (s/join " -> " labels)] (notifos/msg* test-name {:class (if failures "error" "")}) (console/log test-name {:class "error"}) (doseq [failure failures] (when-not (s/blank? (:given failure)) (console/log (str "Given: " (:given failure)))) (console/log (str (:actual failure) "\n\n") {:class "error"})))) (defn- handle-test-result [this {:keys [labels status failures] :as evt}] (object/update! this [:tests] conj evt) (when (= "fail" status) (object/assoc-in! this [:failures?] true) (log-test-failures (:failures? @this) evt)) (let [container (dom/$ :div.result-container (:content @this)) failed-tests (->> (:tests @this) (filter #(= "fail" (:status %))))] ;(println "Failed tests: " failed-tests) (dom/empty container) (dom/append container (testprogress-ui this evt)) (dom/append container (failed-tests-ui failed-tests)))) (defn- log-start [evt] (notifos/set-msg! ("About to run " (:testCount evt) " Elm tests"))) (defn- handle-start [this evt] (let [container (dom/$ :div.result-container (:content @this))] (dom/empty container) (dom/append container (testprogress-ui this evt)) (dom/append container (failed-tests-ui [] (loader))) (object/assoc-in! this [:start] evt) (log-start evt) ;(dom/append container (testinit-ui)) )) (defn create-suite "Create a test suite on the fly for running elm tests" [suite-name project-tests] (let [imports (->> (map :module-name project-tests) set (s/join "\nimport ") (str "import ")) tests (->> (map #(str (:module-name %) "." (:value %)) project-tests) (s/join ","))] (str "port module " suite-name " exposing (..) import Test.Runner.Node exposing (run) import Json.Encode exposing (Value) import Test" "\n" imports "\n" "main : Test.Runner.Node.TestProgram main = run emit <| Test.concat [" tests "] port emit : ( String, Value ) -> Cmd msg"))) (behavior ::elm-test-result :triggers #{:elm.test.result} :desc "Elm test result event" :reaction (fn [this res] (case (:event res) "runStart" (handle-start this res) "testCompleted" (handle-test-result this res) "runComplete" (handle-end this res) (println "Unknown messsage: " res)))) (behavior ::elm-test-error :triggers #{:elm.test.error} :desc "Elm test error" :reaction (fn [this err] (let [container (dom/$ :div.result-container (:content @this))] (dom/empty container) (dom/append container (testprogress-ui this {})) (dom/append container (failed-tests-ui []))) (console/error (:message err)))) (object/object* ::dashboard :tags #{:elm.test.dashboard} :name "Elm Test Dashboard" :label "Elm Test Dashboard" :init (fn [this] (wrapper))) (def dashboard (object/create ::dashboard)) ;; (doseq [obj (object/by-tag :elm.test.dashboard)] ;; (println "Destroying") ;; (object/destroy! obj)) (behavior ::elm-test :triggers #{:elm.test} :desc "Run all Elm tests in your test project" :reaction (fn [ed] (let [{:keys [info]} @ed] ; (notifos/working "Initiate elm tests...") (tabs/add-or-focus! dashboard) (object/raise dashboard :elm.test.init (:path info)) (clients/send (elm-clients/get-eval-client ed :elm.test) :elm.test {:file (-> @ed :info :path)} :only dashboard)))) (defn- get-applicable-tests [{:keys [pos path suite-type]}] (let [project-path (util/project-path path)] (case (keyword suite-type) :all (elm-ast/get-project-tests project-path) :single (elm-ast/get-test-by-pos pos project-path path) :module (elm-ast/get-module-tests project-path path) []))) (behavior ::elm-test-suite :triggers #{:elm.test.suite.start} :desc "Start test suite, now that project is connected" :reaction (fn [ed msg] (let [project-path (util/project-path (-> @ed :info :path)) project-tests (get-applicable-tests msg) suite-name (str "ElmTempTestSuite" (rand-int 1000000))] (if (seq project-tests) (clients/send (elm-clients/get-eval-client ed :elm.test.suite) :elm.test.suite {:module suite-name :suite (create-suite suite-name project-tests)} :only dashboard) (do (let [container (dom/$ :div.result-container (:content @dashboard))] (dom/empty container) (dom/append container (testprogress-ui dashboard {})) (dom/append container (failed-tests-ui []))) (notifos/set-msg! "No tests found for project / given selection")))))) (defn- ast-pass-through [this ed msg] (clients/send (elm-clients/get-eval-client ed :editor.elm.ast.passthrough) :editor.elm.ast.passthrough msg :only this)) (defn- check-elm-version [proj-path] (let [elm-v (util/get-elm-version)] (if-not (util/ver-LTE? "0.18.0" elm-v) (do (console/error (str "Test feature requires elm 0.18.0, but current elm version is: " elm-v)) (notifos/set-msg! (str "Test feature requires elm 0.18.0, but current elm version is: " elm-v) {:class "error"}) false) (let [[ok? bounds] (util/project-satisfies-version? "0.18.0" proj-path)] (if ok? true (do (console/error (str "Elm test requires elm version 0.18.0 or higher but project has: " bounds)) (notifos/set-msg! (str "Elm test requires elm version 0.18.0 or higher but project has: " bounds) {:class "error"}) false)))))) ;(check-elm-version) (behavior ::elm-test-suite.init :triggers #{:elm.test.suite.init} :desc "Initialize run of test suite" :reaction (fn [ed suite-type] (when-let [proj-path (util/project-path (-> @ed :info :path))] (when (check-elm-version proj-path) (let [{:keys [info]} @ed pos (editor/->cursor ed)] ; (notifos/working "Initiate elm tests...") (tabs/add-or-focus! dashboard) (object/raise dashboard :elm.test.init (:path info)) (ast-pass-through ed ed {:target :elm.test.suite.start :data {:pos pos :path (:path info) :suite-type suite-type}})))))) (behavior ::elm-test-setup :triggers #{:elm.test.setup} :reaction (fn [ed] (when-let [prj-path (util/project-path (-> @ed :info :path))] (when (check-elm-version prj-path) (setup-test prj-path))))) (cmd/command {:command :elm.test.suite :desc "Elm: Test All" :exec (fn [] (when-let [ed (pool/last-active)] (object/raise ed :elm.test.suite.init :all)))}) (cmd/command {:command :elm.test.module :desc "Elm: Test Module" :exec (fn [] (when-let [ed (pool/last-active)] (object/raise ed :elm.test.suite.init :module)))}) (cmd/command {:command :elm.test.single :desc "Elm: Test Current" :exec (fn [] (when-let [ed (pool/last-active)] (object/raise ed :elm.test.suite.init :single)))}) (cmd/command {:command :elm.test.setup :desc "Elm: Test Setup" :exec (fn [] (when-let [ed (pool/last-active)] (object/raise ed :elm.test.setup)))}) ================================================ FILE: src/lt/plugins/elm_light/usages.cljs ================================================ (ns lt.plugins.elm-light.usages (:require [lt.plugins.elm-light.elm-ast :as ast] [lt.plugins.elm-light.utils :as util] [lt.plugins.elm-light.clients :as elm-client] [lt.objs.clients :as clients] [lt.objs.console :as console] [lt.objs.notifos :as notifos] [lt.object :as object] [lt.objs.tabs :as tabs] [lt.objs.editor :as editor] [lt.objs.editor.pool :as pool] [lt.objs.files :as files] [lt.util.dom :as dom] [crate.core :as crate] [lt.objs.command :as cmd] [lt.objs.jump-stack :as jumper] [lt.objs.context :as ctx] [clojure.string :as s]) (:require-macros [lt.macros :refer [defui behavior]])) (declare elm-usages) (defui wrapper [this] [:div {:class "search-results elm-usages"} [:ul.res ] [:div.searcher [:p ""]]]) (defui loader [] [:div.bubblingG [:span {:id "bubblingG_1"}] [:span {:id "bubblingG_2"}] [:span {:id "bubblingG_3"}]]) (defn- highlight [line sym] (-> line (s/replace (re-pattern (str "\\b" sym "\\b")) (str "" sym "")) (.substring 0 150))) (defn open-hit [file hit] (cmd/exec! :open-path file) (let [ed (pool/last-active)] (editor/move-cursor ed (:start hit)))) (defui hit-entry [sym file hit] [:p {:class "entry"} [:span.line (str (-> hit :start :line) "," (-> hit :start :ch))] [:pre (crate/raw (highlight (:line hit) sym))]] :click (fn [] (open-hit file hit))) (defui module-item [sym {:keys [file] :as module}] [:li [:p.path [:span.file (files/basename file)] "(" (files/parent file) ")"] (map #(hit-entry sym file %) (:hits module))]) (defui search-results [{:keys [usages-per-module candidate]}] [:ul.res (map #(module-item (:value candidate) %) usages-per-module)]) (defn- count-hits [mods] (->> (mapcat :hits mods) count)) (defui candidate-link [candidate] [:span.link (str (:value candidate) " (" (:module-name candidate) ")")] :click (fn [] (cmd/exec! :open-path (:file candidate)) (let [ed (pool/last-active)] (editor/move-cursor ed (-> candidate :location ast/->range :start))))) (defui searcher [{:keys [usages-per-module candidate token]}] [:div.searcher [:p (crate/raw (str "Found " (count-hits usages-per-module) " usages for ")) (if candidate (candidate-link candidate) [:span [:strong token]])] [:div.signature (or (-> candidate :annotation :signatureRaw) (-> candidate :signatureRaw) (-> candidate :paramsRaw))]]) (defn show-results [this res] (let [container (object/->content this) results-ul (dom/$ :ul.res container) searcher-ui (dom/$ :div.searcher container)] (dom/replace-with results-ul (search-results res)) (dom/replace-with searcher-ui (searcher res)))) (defn add-or-focus! [obj] (let [next-ts (tabs/next-tabset (ctx/->obj :tabset)) prev-ts (tabs/prev-tabset (ctx/->obj :tabset))] (when-not (tabs/in-tab? obj) (cond next-ts (tabs/add! obj next-ts) prev-ts (tabs/add! obj prev-ts) :else (let [ts (tabs/spawn-tabset)] (tabs/equalize-tabset-widths) (tabs/add! obj ts)))) (tabs/active! obj))) (defn- ast-pass-through [this ed msg] (clients/send (elm-client/get-eval-client ed :editor.elm.ast.passthrough) :editor.elm.ast.passthrough msg :only this)) (behavior ::elm.find-usages.complete :triggers #{:elm.find-usages.complete} :reaction (fn [this {:keys [token path project-path]}] (show-results this (ast/find-usages token project-path path)) (notifos/done-working))) (behavior ::elm.find-usages :triggers #{:elm.find-usages} :reaction (fn [this ed token] (notifos/working (str "Finding usages for " token) ) (let [path (-> @ed :info :path)] (add-or-focus! elm-usages) (object/raise this :clear!) (ast-pass-through this ed {:target :elm.find-usages.complete :data {:token token :path path :project-path (util/project-path path)}})))) (behavior ::on-close :triggers #{:close} :reaction (fn [this] (tabs/rem! this))) (behavior ::clear! :triggers #{:clear!} :reaction (fn [this] (dom/empty (dom/$ :ul.res (object/->content this))) (dom/empty (dom/$ :div.searcher (object/->content this))) (dom/append (dom/$ :div.searcher (object/->content this)) (loader)))) (object/object* ::elm-usages :tags #{:elm.usages} :label "Elm usages" :name "Elm usages" :init (fn [this] (wrapper this))) (def elm-usages (object/create ::elm-usages)) ;; (doseq [obj (object/by-tag :elm.usages)] ;; (println "Destroying") ;; (object/destroy! obj)) (cmd/command {:command :elm-find-usages :desc "Elm: Find usages of symbol at cursor" :exec (fn [] (when-let [ed (pool/last-active)] (when-let [token (util/find-symbol ed (editor/->cursor ed))] (object/raise elm-usages :elm.find-usages ed token))))}) ================================================ FILE: src/lt/plugins/elm_light/utils.cljs ================================================ (ns lt.plugins.elm-light.utils (:require [lt.objs.files :as files] [lt.objs.editor :as editor] [lt.objs.editor.pool :as pool] [lt.objs.plugins :as plugins] [lt.object :as object] [fetch.core :as fetch] [lt.util.dom :as dom] [clojure.string :as s])) (def elm-plugin-dir (plugins/find-plugin "elm-light")) (def cp (js/require "child_process")) (def marked (js/require (files/join elm-plugin-dir "node_modules" "marked"))) (def pattern #"^(\d+)\.(\d+)\.(\d+)(?:-([0-9A-Za-z-]+(?:\.[0-9A-Za-z-]+)*))?(?:\+([0-9A-Za-z-]+(?:\.[0-9A-Za-z-]+)*))?$") (defn get-elm-version [] (try (s/trim (.toString (.execSync cp "elm --version" #js {:stdio "pipe"}))) (catch :default e (console/error "elm command not found in path") nil))) (defn try-parse-int [o] (try (js/parseInt o) (catch :default e o))) (defn parse-version [s] (let [[[_ major minor patch pre-release build]] (re-seq pattern s)] {:major (try-parse-int major) :minor (try-parse-int minor) :patch (try-parse-int patch) :pre-release pre-release :build build})) (defn compare-versions [a b] (let [key-for-ident #(when % (into [] (map try-parse-int (s/split % #"\.")))) kay (juxt :major :minor :patch #(nil? (% :pre-release)) #(key-for-ident (:pre-release %)) #(key-for-ident (:build %)))] (compare (kay (parse-version a)) (kay (parse-version b))))) (defn ver-GT? [a b] (pos? (compare-versions a b))) (defn ver-LT? [a b] (neg? (compare-versions a b))) (defn ver-EQ? [a b] (zero? (compare-versions a b))) (defn ver-LTE? [a b] (or (ver-LT? a b) (ver-EQ? a b))) (defn parse-bounds-op [op] (if (= "<" op) ver-LT? ver-LTE?)) (defn parse-version-bounds [bounds-str] (let [[lower lower-op _ upper-op upper] (s/split bounds-str " ")] {:lower lower :lower-op (parse-bounds-op lower-op) :upper upper :upper-op (parse-bounds-op upper-op)})) (defn satisfies-version [v-str bounds-str] (let [{:keys [lower lower-op upper upper-op]} (parse-version-bounds bounds-str)] (and (lower-op lower v-str) (upper-op v-str upper)))) (defn str-contains [s v] (> (.indexOf s v) -1)) (defn find-symbol [ed pos] (let [curr-tok (editor/->token ed pos)] (case (:type curr-tok) "def" (str (find-symbol ed (assoc pos :ch (:start curr-tok))) (:string curr-tok)) "keyword" (str (find-symbol ed (assoc pos :ch (:start curr-tok))) (:string curr-tok)) "qualifier" (str (find-symbol ed (assoc pos :ch (:start curr-tok))) (:string curr-tok)) "variable" (str (find-symbol ed (assoc pos :ch (:start curr-tok))) (:string curr-tok)) "variable-2" (str (find-symbol ed (assoc pos :ch (:start curr-tok))) (:string curr-tok)) "variable-3" (str (find-symbol ed (assoc pos :ch (:start curr-tok))) (:string curr-tok)) "builtin" (str (find-symbol ed (assoc pos :ch (:start curr-tok))) (:string curr-tok)) ""))) (defn project-path [path] (if (files/dir? path) path (if-let [pkg-json (files/walk-up-find path "elm-package.json")] (files/parent pkg-json) nil ;(files/parent path) ))) (defn reactor-path [path] (let [root (project-path path)] (when (= (.indexOf path root) 0) (subs path (count root))))) (defn parse-json-file [json-file] (when (files/exists? json-file) (-> (->> (files/open-sync json-file) :content (.parse js/JSON)) (js->clj :keywordize-keys true)))) (defn pretty-json [data] (.stringify js/JSON (clj->js data) null 4)) (defn nskw->name [kw] (str (namespace kw) "/" (name kw))) (defn get-project-deps [project-path] (let [pkg-json (files/join project-path "elm-package.json") deps-json (files/join project-path "elm-stuff" "exact-dependencies.json")] (->> (parse-json-file pkg-json) :dependencies (mapv (fn [[k v]] {:package (nskw->name k) :range v})) (concat (->> (parse-json-file deps-json) (mapv (fn [[k v]] {:package (nskw->name k) :exact v})))) (group-by :package) (mapv (fn [[_ vs]] (apply merge vs)))))) (defn valid-project-elm-version [project-path] (let [elm (get-elm-version) json (parse-json-file (files/join project-path "elm-package.json")) v-bounds (:elm-version json)] (if (and elm json v-bounds) (if (satisfies-version elm v-bounds) [true nil] [false (str "Invalid elm-version for project: " v-bounds ", but currently installed elm platform is in version: " elm)]) [false "Error checking elm version constraint"]))) (defn project-satisfies-version? [version project-path] (let [json (parse-json-file (files/join project-path "elm-package.json")) v-bounds (:elm-version json)] (if (and version json v-bounds) (if (satisfies-version version v-bounds) [true nil] [false v-bounds]) (do (console/error "Error checking elm version constraints.") [false v-bounds])))) ;(project-satisfies-version? "0.19.0" "/Users/mrundberget/projects/elm-docker-cloud") ;(valid-project-elm-version "/Users/mrundberget/projects/elm-docker-cloud") (defn fetch-all-packages "Fetch all packages from package.elm-lang.org" [callback] (fetch/xhr (str "http://package.elm-lang.org/all-packages?date=" (.getTime (new js/Date))) {} (fn [data] (let [pkgs (js->clj (.parse js/JSON data) :keywordize-keys true)] (callback pkgs))))) (defn mod-js->clj "Recursively transforms JavaScript arrays into ClojureScript vectors, and JavaScript objects into ClojureScript maps. With option ':keywordize-keys true' will convert object fields from strings to keywords." ([x] (mod-js->clj3 x {:keywordize-keys false})) ([x & opts] (cond (satisfies? IEncodeClojure x) (-js->clj x (apply array-map opts)) (seq opts) (let [{:keys [keywordize-keys]} opts keyfn (if keywordize-keys keyword str) f (fn thisfn [x] (cond (seq? x) (doall (map thisfn x)) (coll? x) (into (empty x) (map thisfn x)) (array? x) (persistent! (reduce #(conj! %1 (thisfn %2)) (transient []) x)) (identical? (type x) js/Object) (persistent! (reduce (fn [r k] (assoc! r (keyfn k) (thisfn (aget x k)))) (transient {}) (js-keys x))) :else x))] (f x))))) ================================================ FILE: src/lt/plugins/elm_light/widgets/selector.cljs ================================================ (ns lt.plugins.elm-light.widgets.selector "Drop down select widget positioned absolutely in editor at given line/ch" (:require [lt.object :as object] [lt.objs.command :as cmd] [lt.objs.editor.pool :as pool] [lt.objs.editor :as editor] [lt.objs.files :as files] [lt.util.dom :as dom] [clojure.string :as s]) (:require-macros [lt.macros :refer [defui behavior]])) (defn remove-form [this] ;;"Hacky solution to try and address race conflict between keydown and blur" (when-not (:deleted @this) (object/merge! this {:deleted true}) (object/destroy! this))) (defui select-item [this idx item] [:option {:value idx :selected (= idx 0)} (if (map? item) (:label item) item)]) (defui select-form [this items] [:div.elm-select [:select {:size (count items)} (map-indexed (partial select-item this) items)]]) (defn on-keydown [this ed ev] (let [kc (.-keyCode ev) el (.-target ev)] (cond (or (= 13 kc) (= 9 kc)) (do (dom/stop-propagation ev) (dom/prevent ev) (let [idx (.-value (dom/$ "option:checked" el)) item (nth (vec (:items @this)) idx) the-ed (:ed @this) beh (:behavior @this)] (object/raise the-ed beh item) (remove-form this))) (= 27 kc) (do (dom/stop-propagation ev) (dom/prevent ev) (remove-form this) (editor/focus ed))))) (object/object* ::elm-selector :triggers #{:click :clear!} :tags #{:inline :inline.elm.selector} :init (fn [this info] (when-let [ed (editor/->cm-ed (:ed info))] (object/merge! this info) (let [content (select-form this (:items info))] (dom/on (dom/$ :select content) "blur" (fn [] ;(println "Remove from blur") (remove-form this))) (dom/on content "keydown" (partial on-keydown this ed)) (dom/val (dom/$ :option content) 0) (js/CodeMirror.positionHint ed content (:line (:pos info))) (dom/focus (dom/$ :select content)) content)))) (defn make "Create a selector. It expects a map with the following keys :ed - the editor the selector is used by :pos - Where to position the selector :Items - List of items , if item is a map it must have a :label key used for display in the dropdown :behavior - The behavior to be raise when an item is selected. It will pass the item back" [info] (object/create ::elm-selector info)) ================================================ FILE: src/lt/plugins/elm_light.cljs ================================================ (ns lt.plugins.elm-light (:require [lt.plugins.elm-light.selection :as elm-sel] [lt.plugins.elm-light.utils :refer [find-symbol project-path reactor-path parse-json-file str-contains]] [lt.plugins.elm-light.clients :refer [try-connect get-eval-client get-eval-client-if-connected elm]] [lt.plugins.elm-light.elm-ast :as elm-ast] [lt.plugins.elm-light.linter :as linter] [lt.plugins.elm-light.gutter :as gutter] [lt.plugins.elm-light.widgets.selector :as selector] [lt.plugins.elm-light.repl] [lt.object :as object] [lt.objs.command :as cmd] [lt.objs.editor.pool :as pool] [lt.objs.editor :as editor] [lt.objs.tabs :as tabs] [lt.objs.notifos :as notifos] [lt.objs.console :as console] [lt.objs.clients :as clients] [lt.objs.popup :as popup] [lt.objs.files :as files] [lt.objs.browser :as browser] [lt.objs.eval :as eval] [lt.objs.sidebar.clients :as scl] [lt.util.js :as js-util] [clojure.string :as s]) (:require-macros [lt.macros :refer [behavior]])) (behavior ::elm-unsupported :triggers #{:elm.unsupported} :reaction (fn [_ res] (notifos/done-working) (notifos/set-msg! (:err res) {:class "error"}))) (defn colorize-msg [msg] (-> msg (s/replace #"\[\d+m" "") (s/replace #"\[0m" ""))) (defn ->lt-range [{:keys [start end]}] {:from {:ch (dec (:column start)) :line (dec (:line start))} :to {:ch (dec (:column end)) :line (dec (:line end))}}) (defn- maybe-trim [ss] (when ss (s/trim ss))) (defn- str-contains? [source target] (when (and source target) (< -1 (.indexOf source target)))) (defn- maybe-strip-hint [source] (when source (if (str-contains? source "Hint:") (-> (re-find #"(?m)([\s\S]*?(?=Hint:))" source) first s/trim) source))) (defn linter-action [ed row] (case (:tag row) "unused import" [{:text "Remove" :action (fn [_ {:keys [from to]}] (editor/replace ed from to "") (js/CodeMirror.commands.deleteLine (editor/->cm-ed ed)))}] "missing type annotation" [{:text "Add" :action (fn [{:keys [details]} {:keys [from]}] (let [ann (-> (re-find #"(?m)I inferred the type annotation so you can copy it into your code:([\s\S]*$)" details) second s/trim (str "\n"))] (editor/replace ed from ann)))}] "NAMING ERROR" (let [fixes (->> (re-find #"(?m)Maybe you want one of the following\?(:?[\s\S]*$)" (:details row)) second (s/split-lines) (map s/trim) (filter seq))] (map (fn [suggestion] {:text suggestion :action (fn [_ {:keys [from to]}] (editor/replace ed from to suggestion))}) fixes)) "TYPE MISMATCH" (let [ann (-> (re-find #"(?m)But I am inferring that the definition has this type:([\s\S]*$)" (:details row)) second maybe-trim maybe-strip-hint)] (if (and ann (not (str-contains? ann "..."))) [{:text "Fix annotation" :action (fn [_ {:keys [from to]}] (editor/replace ed from to ann))}] ;; TODO: Could potentially handle typo's in records here too, but need to reliably find what the annotation belogs too (: [])) [])) (defn display-make-results [ed res path] (object/raise ed :clear-linter-results!) (when (seq (filter #(= "error" (:type %)) res)) (notifos/set-msg! "Elm make returned errors; check you editor or the console for details" {:class "error"})) (doseq [{:keys [file type overview details region subregion tag] :as row} res] (let [msg (str overview "\n" (colorize-msg details))] (cond (and (= path file) (some #{"warning" "error"} [type])) (object/raise ed :linter-result! {:title tag :details msg :category (keyword type) :actions (linter-action ed row) :code-range (->lt-range (or subregion region))}) :else (console/verbatim (list [:em.file file] [:em.line "[Elm error]"] ": " [:pre overview]) "error"))))) (behavior ::lint :description "Lint (/make) a given elm file" :triggers #{:lint} :reaction (fn [ed result-handler-trigger] (let [info (:info @ed) ] (notifos/working (str "Starting elm linting of: " (:path info))) (clients/send (get-eval-client ed :editor.elm.lint) :editor.elm.lint (assoc info :project-path (project-path (:path info)) :handler (name result-handler-trigger)) :only ed)))) (behavior ::elm-lint-res :triggers #{:elm.lint.res} :reaction (fn [ed res] (let [path (-> @ed :info :path)] (notifos/done-working "Elm linted") (display-make-results ed res path)))) (behavior ::make :description "Make (to js) a given elm file" :triggers #{:elm.make} :reaction (fn [ed] (let [info (:info @ed) cl (get-eval-client ed :editor.elm.make)] (notifos/working (str "Starting elm make for: " (:path info))) (clients/send cl :editor.elm.make (assoc info :project-path (project-path (:path info))) :only ed)))) (defn missing-make-info-popup [] (popup/popup! {:header "You need to configure make info for your project" :body (str "You configure a key \"make-info\" in your elm-package.json Example: \"make-info\": {\"main\": \"src/Main.elm\", \"out\": \"dist/main.js\"}") :buttons [{:label "Ok"}]})) (behavior ::make-project :description "Make Elm Project" :triggers #{:elm.make-project} :reaction (fn [ed] (let [info (:info @ed) project-path (project-path (:path info)) {:keys [main out]} (-> project-path (files/join "elm-package.json") parse-json-file :make-info)] (if (and main out) (do (notifos/working (str "Starting elm make for project: " project-path)) (clients/send (get-eval-client ed :editor.elm.make) :editor.elm.make (assoc info :project-path project-path :path (files/join project-path main) :outputFile (files/join project-path out)) :only ed)) (missing-make-info-popup))))) (behavior ::elm-make-res :triggers #{:elm.make.res} :reaction (fn [ed {:keys [outputFile res]}] (notifos/done-working (str "Elm make compiled to: " outputFile)) (display-make-results ed res path))) (behavior ::elm-make-err :triggers #{:elm.make.err} :reaction (fn [ed res] (let [path (-> @ed :info :path)] (notifos/done-working "") (notifos/set-msg! (str "Elm make error: " res) {:class "error"}) (console/error res)))) ;;**************************************************** ;; Eval ;;**************************************************** (behavior ::on-eval.one :desc "Elm repl: Eval current selection" :triggers #{:eval.one} :reaction (fn [ed] (let [pos (editor/->cursor ed) info (conj (:info @ed) (if (editor/selection? ed) {:code (editor/selection ed) :meta {:start (-> (editor/->cursor ed "start") :line) :end (-> (editor/->cursor ed "end") :line)}} (if-let [rng (elm-sel/get-top-level-expr ed pos)] {:pos pos :code (editor/range ed (:from rng) (:to rng)) :meta {:start (-> rng :from :line) :end (-> rng :end :line)}} {:pos pos :code (editor/line ed (:line pos)) :meta {:start (:line pos) :end (:line pos)}})))] (object/raise elm :eval! {:origin ed :info info})))) (behavior ::eval-result :desc "Elm repl: Eval result" :triggers #{:editor.elm.eval.res} :reaction (fn [ed res] (notifos/done-working "Elm evaluated") (object/raise ed :editor.result (:result res) {:line (-> res :meta :start)}))) (behavior ::eval-err :desc "Elm repl: Eval error" :triggers #{:editor.elm.eval.err} :reaction (fn [ed res] (notifos/done-working) (notifos/set-msg! "Elm eval reported errors." {:class "error"}) (object/raise ed :editor.exception (:result res) {:line (-> res :meta :start)}))) (behavior ::repl-restart! :triggers #{:elm.repl.restart} :reaction (fn [{:keys [info] :as ed}] (when-let [default-client (-> @ed :client :default)] ;; dont if not already connected (when @default-client (notifos/working "Restaring elm-repl...") (clients/send default-client :elm.repl.restart info :only ed))))) (behavior ::repl-restart-res :triggers #{:elm.repl.restart.res} :reaction (fn [ed res] (notifos/done-working "Elm Repl restarted"))) ;TODO : Make debug optional ! (behavior ::elm-browse! :triggers #{:elm.browse} :reaction (fn [ed debug?] (let [path (reactor-path (-> @ed :info :path)) client (get-eval-client ed :editor.eval.elm)] (when (and client path) (notifos/working "Opening elm file in browser") (let [b (or (first (object/by-tag :browser)) (browser/add)) get-url #(str "http://localhost:" (:reactor-port @client) path (if debug? "?debug" ""))] (if (:connected @client) (object/raise b :navigate! (get-url)) (js-util/wait 100 #(object/raise b :navigate! (get-url))))) (notifos/done-working))))) ;;**************************************************** ;; DOCS ;;**************************************************** (behavior ::elm-doc-search :triggers #{:types+} :reaction (fn [this cur] (conj cur {:label "elm" :trigger :docs.elm.search :file-types #{"elm"}}))) ;;**************************************************** ;; NEW AST Based features ;;**************************************************** (defn- get-editor-client [ed] (when-let [default-client (-> @ed :client :default)] (when @default-client default-client))) (defn- location->pos [loc] {:line (-> loc :start :line dec) :ch (-> loc :start :column dec)}) (defn- ast-pass-through [ed msg] (clients/send (get-eval-client ed :editor.elm.ast.passthrough) :editor.elm.ast.passthrough msg :only ed)) (behavior ::elm-reload-ast :triggers #{:elm.reload-ast} :reaction (fn [ed] (let [project (project-path (-> @ed :info :path))] (notifos/working (str "Init reload of ast for project: " project)) (elm-ast/delete-project-ast! project) (clients/send (get-eval-client ed :elm.reload.ast) :elm.reload.ast {} :only ed)))) (behavior ::elm-reload-ast-started :triggers #{:elm.ast.reload.started} :reaction (fn [ed] (notifos/done-working "Parsing ast started"))) (behavior ::elm-jump-to-definition-start :triggers #{:editor.jump-to-definition-at-cursor!} :reaction (fn [ed] (notifos/working (str "Initiate jump to definition")) (if-let [default-client (get-editor-client ed)] (object/raise ed :editor.elm.jump-to-definition {}) (ast-pass-through ed {:target :editor.elm.jump-to-definition :data {}})))) (behavior ::elm-jump-to-definition :triggers #{:editor.elm.jump-to-definition} :reaction (fn [ed data] (notifos/done-working "") (let [pos (editor/->cursor ed) token (find-symbol ed pos) path (-> @ed :info :path)] (when token (when-let [target (elm-ast/get-jump-to-definition token pos path (project-path path))] (when (:file target) (object/raise lt.objs.jump-stack/jump-stack :jump-stack.push! ed (:file target) (location->pos (:location target))))))))) (behavior ::elm-doc-start :triggers #{:editor.doc} :reaction (fn [ed] (notifos/working (str "Initiate show doc")) (if-let [default-client (get-editor-client ed)] (object/raise ed :editor.elm.doc {}) (ast-pass-through ed {:target :editor.elm.doc :data {}})))) (behavior ::elm-doc :triggers #{:editor.elm.doc} :reaction (fn [ed] (let [pos (editor/->cursor ed) token (find-symbol ed pos) path (-> @ed :info :path)] (when token (notifos/done-working "")) (when-let [target (elm-ast/get-jump-to-definition token pos path (project-path path))] (object/raise ed :editor.elm.doc.show! {:name (str (:module-name target) (when (:module-name target) ".") (:value target) (when-let [pck (:package target)] (str " (" (:name pck) " " (:version pck) ")"))) :args (or (-> target :annotation :signatureRaw) (-> target :signatureRaw) (-> target :paramsRaw)) :doc (when-let [doc (:doc target)] (.trim doc)) :loc pos}))))) (behavior ::elm-parse-editor-on-change :desc "Parse a connected elm editor on content change" :triggers #{:change} :debounce 300 :reaction (fn [ed] (object/raise ed :elm.parse.editor))) (behavior ::elm-parse-editor :desc "Initiate parsing of the content/elm code of the given editor" :triggers #{:elm.parse.editor :focus :project-connected } :reaction (fn [ed] (when (not (str-contains (-> @ed :info :path) "elm-stuff")) (let [client (get-eval-client-if-connected ed :editor.elm.ast.parsetext) path (-> @ed :info :path)] (when (and client (= (pool/last-active) ed) (not (str-contains path "elm-stuff"))) (clients/send client :editor.elm.ast.parsetext {:code (editor/->val ed)} :only ed)))))) (behavior ::elm-editor-disconnected :desc "Clean up state when project connection for an editor has been disconnected" :triggers #{:project-disconnected} :reaction (fn [ed] (do (object/raise ed :clear-linter-results!) (object/update! ed [:ast-status] assoc :status nil :error nil) (elm-ast/update-status-for-editor ed) (object/raise ed :elm.gutter.exposeds.mark)))) (behavior ::elm-parse-editor-result :desc "Handle parse results for a parsed editors content" :triggers #{:editor.elm.ast.parsetext.result} :reaction (fn [ed res] (if-let [error (:error res)] (do (object/update! ed [:ast-status] assoc :status :error :error error) (object/raise ed :elm.gutter.refresh)) (let [path (-> @ed :info :path)] (object/update! ed [:ast-status] assoc :status :ok :error nil) ;; Is this really safe to do ?! (elm-ast/upsert-ast! (-> (get-editor-client ed) deref :dir) {:file path :ast (:ast res)}) (object/raise ed :elm.gutter.exposeds.mark))) (elm-ast/update-status-for-editor ed))) ;;************ Refactoring behaviors **************** (defn- cm-pos->pos [cm-pos] {:ch (.-ch cm-pos) :line (.-line cm-pos)}) (defn- safe-move-cursor [ed bm pos] (if-let [bm-pos (.find bm)] (editor/move-cursor ed (cm-pos->pos bm-pos)) (editor/move-cursor ed pos))) (behavior ::elm-expose-top-level :desc "Behavior to expose top level Elm declaration" :triggers #{:elm.expose.top.level} :reaction (fn [ed] (let [path (-> @ed :info :path) prj-path (project-path path) module (elm-ast/get-module-ast prj-path path) exposing (-> module :ast :moduleDeclaration :exposing)] (when exposing (when-let [decl (elm-ast/find-top-level-declaration-by-pos (editor/->cursor ed) module)] (when-not (elm-ast/exposed-by-module? module (:value decl)) (let [{:keys [start end]} (elm-ast/->range (:location exposing)) upd-exp (elm-ast/expose-decl decl exposing) pos (editor/->cursor ed) bm (editor/bookmark ed pos)] (editor/replace ed start end (elm-ast/print-exposing upd-exp)) (safe-move-cursor ed bm pos)))))))) (behavior ::elm-unexpose-top-level :desc "Behavior to unexpose top level Elm declaration" :triggers #{:elm.unexpose.top.level} :reaction (fn [ed] (let [path (-> @ed :info :path) prj-path (project-path path) module (elm-ast/get-module-ast prj-path path) exposing (-> module :ast :moduleDeclaration :exposing)] (when exposing (when-let [decl (elm-ast/find-top-level-declaration-by-pos (editor/->cursor ed) module)] (when (and (elm-ast/exposed-by-module? module (:value decl)) (not (elm-ast/exposeAll? exposing))) (let [{:keys [start end]} (elm-ast/->range (:location exposing)) upd-exp (elm-ast/unexpose-decl decl exposing) pos (editor/->cursor ed) bm (editor/bookmark ed pos)] (editor/replace ed start end (elm-ast/print-exposing upd-exp)) (safe-move-cursor ed bm pos)))))))) (behavior ::elm-sort-imports :desc "Behavior to sort import declarations for given Elm editor" :triggers #{:elm.sort.imports} :reaction (fn [ed] (let [path (-> @ed :info :path) prj-path (project-path path) module (elm-ast/get-module-ast prj-path path) imports (-> module :ast :imports :imports) location (-> module :ast :imports :location)] (when (seq imports) (let [{:keys [start end]} (elm-ast/->range location) pos (editor/->cursor ed) bm (editor/bookmark ed (editor/->cursor ed))] (editor/replace ed start end (elm-ast/print-imports (partial elm-ast/sort-imports-default prj-path) imports)) (safe-move-cursor ed bm pos)))))) (behavior ::elm-autoimport-module-selected :desc "Behaviour triggered when user selects a module in select for autoimport suggestions" :triggers #{:elm.autoimport.module.selected} :reaction (fn [ed item] (let [path (-> @ed :info :path) prj-path (project-path path) pos (editor/->cursor ed) bm (editor/bookmark ed pos) token (find-symbol ed pos) aliaz (-> (s/split token #"\.") first) module (elm-ast/get-module-ast prj-path path) imports (-> module :ast :imports :imports) {:keys [start end]} (-> module :ast :imports :location elm-ast/->range)] (let [upd-imports (elm-ast/upsert-imports (:module-name item) aliaz imports)] (editor/replace ed start end (elm-ast/print-imports (partial elm-ast/sort-imports-default prj-path) upd-imports)) (safe-move-cursor ed bm pos) (editor/focus ed))))) (behavior ::elm-autoimport-module-init :desc "Behaviour triggered when user tries to autoimport module for an aliased declaration" :triggers #{:elm.autoimport.module.init} :reaction (fn [ed] (let [path (-> @ed :info :path) pos (editor/->cursor ed) token (find-symbol ed pos) token-parts (if token (s/split token #"\.") [])] (when (and (= 2 (count token-parts)) (re-find #"[A-Z].*" (first token-parts))) (let [candidates (->> (elm-ast/get-autoimport-candidates (first token-parts) (second token-parts) path (project-path path)) (map #(assoc % :label (str (:module-name %) (when-let [pck (:package %)] (str " (" (:name pck) ")"))))))] (cond (= 1 (count candidates)) (object/raise ed :elm.autoimport.module.selected (first candidates)) (< 0 (count candidates)) (selector/make {:ed ed :pos pos :behavior :elm.autoimport.module.selected :items candidates}) :else nil)))))) ;; Commands (cmd/command {:command :elm.reload.ast :desc "Elm: Load/Reload project AST" :exec (fn [] (when-let [ed (pool/last-active)] (object/raise ed :elm.reload-ast)))}) (cmd/command {:command :elm.lint :desc "Elm: Lint selected file" :exec (fn [] (when-let [ed (pool/last-active)] (object/raise ed :lint :elm.lint.res)))}) (cmd/command {:command :elm.make :desc "Elm: Make selected file" :exec (fn [] (when-let [ed (pool/last-active)] (object/raise ed :elm.make)))}) (cmd/command {:command :elm.make-project :desc "Elm: Make current project" :exec (fn [] (when-let [ed (pool/last-active)] (object/raise ed :elm.make-project)))}) (cmd/command {:command :elm.browse :desc "Elm: View current elm file in browser (elm-reactor)" :exec (fn [] (when-let [ed (pool/last-active)] (object/raise ed :elm.browse false)))}) (cmd/command {:command :elm.restart-repl :desc "Elm: Restart repl for current project" :exec (fn [] (when-let [ed (pool/last-active)] (object/raise ed :elm.repl.restart)))}) (cmd/command {:command :elm.expose-top-level :desc "Elm: Expose top level definition" :exec (fn [] (when-let [ed (pool/last-active)] (object/raise ed :elm.expose.top.level)))}) (cmd/command {:command :elm.unexpose-top-level :desc "Elm: Un-expose top level definition" :exec (fn [] (when-let [ed (pool/last-active)] (object/raise ed :elm.unexpose.top.level)))}) (cmd/command {:command :elm.autoimport.module :desc "Elm: Autoimport module" :exec (fn [] (when-let [ed (pool/last-active)] (object/raise ed :elm.autoimport.module.init)))}) (cmd/command {:command :elm.sort.imports :desc "Elm: Sort imports" :exec (fn [] (when-let [ed (pool/last-active)] (object/raise ed :elm.sort.imports)))}) (cmd/command {:command :elm.help :desc "Elm: Help !" :exec (fn [] (when-let [ed (pool/last-active)] (let [b (browser/add)] (object/raise b :navigate! "https://rundis.gitbooks.io/elm-light-guide/content/"))))}) (cmd/command {:command :elm.select.top.level :desc "Elm: Select top level expression from current cursor position" :exec (fn [] (when-let [ed (pool/last-active)] (when-let [rng (elm-sel/get-top-level-expr ed (editor/->cursor ed))] (editor/set-selection ed (:from rng) (:to rng)))))}) ================================================ FILE: templates/test/Main.elm ================================================ port module Main exposing (..) import Tests import Test.Runner.Node exposing (run, TestProgram) import Json.Encode exposing (Value) main : TestProgram main = run emit Tests.all port emit : ( String, Value ) -> Cmd msg ================================================ FILE: templates/test/Tests.elm ================================================ module Tests exposing (..) import Test exposing (..) import Expect import Fuzz exposing (list, int, tuple, string) import String all : Test all = describe "Sample Test Suite" [ describe "Unit test examples" [ test "Addition" <| \() -> Expect.equal (3 + 7) 10 , test "String.left" <| \() -> Expect.equal "a" (String.left 1 "abcdefg") , test "This test should fail - you should remove it" <| \() -> Expect.fail "Failed as expected!" ] , describe "Fuzz test examples, using randomly generated input" [ fuzz (list int) "Lists always have positive length" <| \aList -> List.length aList |> Expect.atLeast 0 , fuzz (list int) "Sorting a list does not change its length" <| \aList -> List.sort aList |> List.length |> Expect.equal (List.length aList) , fuzzWith { runs = 1000 } int "List.member will find an integer in a list containing it" <| \i -> List.member i [ i ] |> Expect.true "If you see this, List.member returned False!" , fuzz2 string string "The length of a string equals the sum of its substrings' lengths" <| \s1 s2 -> s1 ++ s2 |> String.length |> Expect.equal (String.length s1 + String.length s2) ] ]