diff --git a/kitchen-sink-ios/jade/autocomplete.jade b/kitchen-sink-ios/jade/autocomplete.jade
new file mode 100644
index 0000000000..bfc3893d22
--- /dev/null
+++ b/kitchen-sink-ios/jade/autocomplete.jade
@@ -0,0 +1,90 @@
+.navbar
+ .navbar-inner
+ .left.sliding
+ a(href="index.html").back.link
+ i.icon.icon-back
+ span Back
+ .center.sliding Autocomplete
+ .right
+ a(href="#").open-panel.link.icon-only
+ i.icon.icon-bars
+.pages.navbar-through
+ .page(data-page="autocomplete")
+ .page-content
+ .content-block-title Dropdown Autocomplete
+ .content-block
+ p Dropdown autocomplete is good to use as a quick and simple solution to provide more options in addition to free-type value.
+ .content-block-title Simple Dropdown Autocomplete
+ .list-block
+ ul
+ li.item-content
+ .item-title.label Fruit
+ .item-input
+ input(type="text", placeholder="Fruit")#autocomplete-dropdown
+ .content-block-title Dropdown With Input Expand
+ .list-block
+ ul
+ li.item-content
+ .item-title.label Fruit
+ .item-input
+ input(type="text", placeholder="Fruit")#autocomplete-dropdown-expand
+ .content-block-title Dropdown With All Values
+ .list-block
+ ul
+ li.item-content
+ .item-title.label Fruit
+ .item-input
+ input(type="text", placeholder="Fruit")#autocomplete-dropdown-all
+ .content-block-title Dropdown With Placeholder
+ .list-block
+ ul
+ li.item-content
+ .item-title.label Fruit
+ .item-input
+ input(type="text", placeholder="Fruit")#autocomplete-dropdown-placeholder
+ .content-block-title Dropdown With Ajax-Data
+ .list-block
+ ul
+ li.item-content
+ .item-title.label Language
+ .item-input
+ input(type="text", placeholder="Language")#autocomplete-dropdown-ajax
+ .content-block-title Standalone Autocomplete
+ .content-block
+ p Standalone autocomplete provides better mobile UX by opening it in a new page or popup. Good to use when you need to get strict values without allowing free-type values.
+ .content-block-title Simple Standalone Autocomplete
+ .list-block
+ ul
+ li
+ a(href="#").item-link.item-content.autocomplete-opener#autocomplete-standalone
+ input(type="hidden")
+ .item-inner
+ .item-title Favorite Fruite
+ .item-after
+ .content-block-title Popup Standalone Autocomplete
+ .list-block
+ ul
+ li
+ a(href="#").item-link.item-content.autocomplete-opener#autocomplete-standalone-popup
+ input(type="hidden")
+ .item-inner
+ .item-title Favorite Fruite
+ .item-after
+ .content-block-title Multiple Values Standalone Autocomplete
+ .list-block
+ ul
+ li
+ a(href="#").item-link.item-content.autocomplete-opener#autocomplete-standalone-multiple
+ input(type="hidden")
+ .item-inner
+ .item-title Favorite Fruite
+ .item-after
+ .content-block-title Standalone With Ajax-Data
+ .list-block
+ ul
+ li
+ a(href="#").item-link.item-content.autocomplete-opener#autocomplete-standalone-ajax
+ input(type="hidden")
+ .item-inner
+ .item-title Language
+ .item-after
\ No newline at end of file
diff --git a/kitchen-sink-ios/jade/index.jade b/kitchen-sink-ios/jade/index.jade
index 85b565ec13..5efd722a95 100644
--- a/kitchen-sink-ios/jade/index.jade
+++ b/kitchen-sink-ios/jade/index.jade
@@ -150,6 +150,15 @@ html
i.icon.icon-f7
.item-inner
.item-title Accordion
+ li
+ a(href="autocomplete.html").item-link
+ .item-content
+ .item-media
+ i.icon.icon-f7
+ .item-inner
+ .item-title Autocomplete
+ .item-after
+ span.badge.bg-green NEW
li
a(href="calendar.html").item-link
.item-content
diff --git a/kitchen-sink-ios/js/autocomplete-languages.json b/kitchen-sink-ios/js/autocomplete-languages.json
new file mode 100644
index 0000000000..e3b4912fdd
--- /dev/null
+++ b/kitchen-sink-ios/js/autocomplete-languages.json
@@ -0,0 +1,2806 @@
+[
+ {
+ "id": 0,
+ "name": "A# .NET"
+ },
+ {
+ "id": 1,
+ "name": "A# (Axiom)"
+ },
+ {
+ "id": 2,
+ "name": "A-0 System"
+ },
+ {
+ "id": 3,
+ "name": "A+"
+ },
+ {
+ "id": 4,
+ "name": "A++"
+ },
+ {
+ "id": 5,
+ "name": "ABAP"
+ },
+ {
+ "id": 6,
+ "name": "ABC"
+ },
+ {
+ "id": 7,
+ "name": "ABC ALGOL"
+ },
+ {
+ "id": 8,
+ "name": "ABLE"
+ },
+ {
+ "id": 9,
+ "name": "ABSET"
+ },
+ {
+ "id": 10,
+ "name": "ABSYS"
+ },
+ {
+ "id": 11,
+ "name": "ACC"
+ },
+ {
+ "id": 12,
+ "name": "Accent"
+ },
+ {
+ "id": 13,
+ "name": "Ace DASL"
+ },
+ {
+ "id": 14,
+ "name": "ACL2"
+ },
+ {
+ "id": 15,
+ "name": "ACT-III"
+ },
+ {
+ "id": 16,
+ "name": "Action!"
+ },
+ {
+ "id": 17,
+ "name": "ActionScript"
+ },
+ {
+ "id": 18,
+ "name": "Ada"
+ },
+ {
+ "id": 19,
+ "name": "Adenine"
+ },
+ {
+ "id": 20,
+ "name": "Agda"
+ },
+ {
+ "id": 21,
+ "name": "Agilent VEE"
+ },
+ {
+ "id": 22,
+ "name": "Agora"
+ },
+ {
+ "id": 23,
+ "name": "AIMMS"
+ },
+ {
+ "id": 24,
+ "name": "Alef"
+ },
+ {
+ "id": 25,
+ "name": "ALF"
+ },
+ {
+ "id": 26,
+ "name": "ALGOL 58"
+ },
+ {
+ "id": 27,
+ "name": "ALGOL 60"
+ },
+ {
+ "id": 28,
+ "name": "ALGOL 68"
+ },
+ {
+ "id": 29,
+ "name": "ALGOL W"
+ },
+ {
+ "id": 30,
+ "name": "Alice"
+ },
+ {
+ "id": 31,
+ "name": "Alma-0"
+ },
+ {
+ "id": 32,
+ "name": "AmbientTalk"
+ },
+ {
+ "id": 33,
+ "name": "Amiga E"
+ },
+ {
+ "id": 34,
+ "name": "AMOS"
+ },
+ {
+ "id": 35,
+ "name": "AMPL"
+ },
+ {
+ "id": 36,
+ "name": "Apex"
+ },
+ {
+ "id": 37,
+ "name": "APL"
+ },
+ {
+ "id": 38,
+ "name": "App Inventor for Android's visual block language"
+ },
+ {
+ "id": 39,
+ "name": "AppleScript"
+ },
+ {
+ "id": 40,
+ "name": "Arc"
+ },
+ {
+ "id": 41,
+ "name": "ARexx"
+ },
+ {
+ "id": 42,
+ "name": "Argus"
+ },
+ {
+ "id": 43,
+ "name": "AspectJ"
+ },
+ {
+ "id": 44,
+ "name": "Assembly language"
+ },
+ {
+ "id": 45,
+ "name": "ATS"
+ },
+ {
+ "id": 46,
+ "name": "Ateji PX"
+ },
+ {
+ "id": 47,
+ "name": "AutoHotkey"
+ },
+ {
+ "id": 48,
+ "name": "Autocoder"
+ },
+ {
+ "id": 49,
+ "name": "AutoIt"
+ },
+ {
+ "id": 50,
+ "name": "AutoLISP / Visual LISP"
+ },
+ {
+ "id": 51,
+ "name": "Averest"
+ },
+ {
+ "id": 52,
+ "name": "AWK"
+ },
+ {
+ "id": 53,
+ "name": "Axum"
+ },
+ {
+ "id": 54,
+ "name": "B"
+ },
+ {
+ "id": 55,
+ "name": "Babbage"
+ },
+ {
+ "id": 56,
+ "name": "Bash"
+ },
+ {
+ "id": 57,
+ "name": "BASIC"
+ },
+ {
+ "id": 58,
+ "name": "bc"
+ },
+ {
+ "id": 59,
+ "name": "BCPL"
+ },
+ {
+ "id": 60,
+ "name": "BeanShell"
+ },
+ {
+ "id": 61,
+ "name": "Batch (Windows/Dos)"
+ },
+ {
+ "id": 62,
+ "name": "Bertrand"
+ },
+ {
+ "id": 63,
+ "name": "BETA"
+ },
+ {
+ "id": 64,
+ "name": "Bigwig"
+ },
+ {
+ "id": 65,
+ "name": "Bistro"
+ },
+ {
+ "id": 66,
+ "name": "BitC"
+ },
+ {
+ "id": 67,
+ "name": "BLISS"
+ },
+ {
+ "id": 68,
+ "name": "Blue"
+ },
+ {
+ "id": 69,
+ "name": "Boo"
+ },
+ {
+ "id": 70,
+ "name": "Boomerang"
+ },
+ {
+ "id": 71,
+ "name": "Bourne shell"
+ },
+ {
+ "id": 72,
+ "name": "bash"
+ },
+ {
+ "id": 73,
+ "name": "ksh"
+ },
+ {
+ "id": 74,
+ "name": "BREW"
+ },
+ {
+ "id": 75,
+ "name": "BPEL"
+ },
+ {
+ "id": 76,
+ "name": "C"
+ },
+ {
+ "id": 77,
+ "name": "C--"
+ },
+ {
+ "id": 78,
+ "name": "C++"
+ },
+ {
+ "id": 79,
+ "name": "C#"
+ },
+ {
+ "id": 80,
+ "name": "C/AL"
+ },
+ {
+ "id": 81,
+ "name": "Caché ObjectScript"
+ },
+ {
+ "id": 82,
+ "name": "C Shell"
+ },
+ {
+ "id": 83,
+ "name": "Caml"
+ },
+ {
+ "id": 84,
+ "name": "Cayenne"
+ },
+ {
+ "id": 85,
+ "name": "CDuce"
+ },
+ {
+ "id": 86,
+ "name": "Cecil"
+ },
+ {
+ "id": 87,
+ "name": "Cel"
+ },
+ {
+ "id": 88,
+ "name": "Cesil"
+ },
+ {
+ "id": 89,
+ "name": "Ceylon"
+ },
+ {
+ "id": 90,
+ "name": "CFEngine"
+ },
+ {
+ "id": 91,
+ "name": "CFML"
+ },
+ {
+ "id": 92,
+ "name": "Cg"
+ },
+ {
+ "id": 93,
+ "name": "Ch"
+ },
+ {
+ "id": 94,
+ "name": "Chapel"
+ },
+ {
+ "id": 95,
+ "name": "CHAIN"
+ },
+ {
+ "id": 96,
+ "name": "Charity"
+ },
+ {
+ "id": 97,
+ "name": "Charm"
+ },
+ {
+ "id": 98,
+ "name": "Chef"
+ },
+ {
+ "id": 99,
+ "name": "CHILL"
+ },
+ {
+ "id": 100,
+ "name": "CHIP-8"
+ },
+ {
+ "id": 101,
+ "name": "chomski"
+ },
+ {
+ "id": 102,
+ "name": "ChucK"
+ },
+ {
+ "id": 103,
+ "name": "CICS"
+ },
+ {
+ "id": 104,
+ "name": "Cilk"
+ },
+ {
+ "id": 105,
+ "name": "CL"
+ },
+ {
+ "id": 106,
+ "name": "Claire"
+ },
+ {
+ "id": 107,
+ "name": "Clarion"
+ },
+ {
+ "id": 108,
+ "name": "Clean"
+ },
+ {
+ "id": 109,
+ "name": "Clipper"
+ },
+ {
+ "id": 110,
+ "name": "CLIST"
+ },
+ {
+ "id": 111,
+ "name": "Clojure"
+ },
+ {
+ "id": 112,
+ "name": "CLU"
+ },
+ {
+ "id": 113,
+ "name": "CMS-2"
+ },
+ {
+ "id": 114,
+ "name": "COBOL"
+ },
+ {
+ "id": 115,
+ "name": "Cobra"
+ },
+ {
+ "id": 116,
+ "name": "CODE"
+ },
+ {
+ "id": 117,
+ "name": "CoffeeScript"
+ },
+ {
+ "id": 118,
+ "name": "Cola"
+ },
+ {
+ "id": 119,
+ "name": "ColdC"
+ },
+ {
+ "id": 120,
+ "name": "ColdFusion"
+ },
+ {
+ "id": 121,
+ "name": "COMAL"
+ },
+ {
+ "id": 122,
+ "name": "Combined Programming Language"
+ },
+ {
+ "id": 123,
+ "name": "COMIT"
+ },
+ {
+ "id": 124,
+ "name": "Common Intermediate Language"
+ },
+ {
+ "id": 125,
+ "name": "Common Lisp"
+ },
+ {
+ "id": 126,
+ "name": "COMPASS"
+ },
+ {
+ "id": 127,
+ "name": "Component Pascal"
+ },
+ {
+ "id": 128,
+ "name": "Constraint Handling Rules"
+ },
+ {
+ "id": 129,
+ "name": "Converge"
+ },
+ {
+ "id": 130,
+ "name": "Cool"
+ },
+ {
+ "id": 131,
+ "name": "Coq"
+ },
+ {
+ "id": 132,
+ "name": "Coral 66"
+ },
+ {
+ "id": 133,
+ "name": "Corn"
+ },
+ {
+ "id": 134,
+ "name": "CorVision"
+ },
+ {
+ "id": 135,
+ "name": "COWSEL"
+ },
+ {
+ "id": 136,
+ "name": "CPL"
+ },
+ {
+ "id": 137,
+ "name": "csh"
+ },
+ {
+ "id": 138,
+ "name": "CSP"
+ },
+ {
+ "id": 139,
+ "name": "Cryptol"
+ },
+ {
+ "id": 140,
+ "name": "Csound"
+ },
+ {
+ "id": 141,
+ "name": "CUDA"
+ },
+ {
+ "id": 142,
+ "name": "Curl"
+ },
+ {
+ "id": 143,
+ "name": "Curry"
+ },
+ {
+ "id": 144,
+ "name": "Cyclone"
+ },
+ {
+ "id": 145,
+ "name": "Cython"
+ },
+ {
+ "id": 146,
+ "name": "D"
+ },
+ {
+ "id": 147,
+ "name": "DASL"
+ },
+ {
+ "id": 148,
+ "name": "DASL"
+ },
+ {
+ "id": 149,
+ "name": "Dart"
+ },
+ {
+ "id": 150,
+ "name": "DataFlex"
+ },
+ {
+ "id": 151,
+ "name": "Datalog"
+ },
+ {
+ "id": 152,
+ "name": "DATATRIEVE"
+ },
+ {
+ "id": 153,
+ "name": "dBase"
+ },
+ {
+ "id": 154,
+ "name": "dc"
+ },
+ {
+ "id": 155,
+ "name": "DCL"
+ },
+ {
+ "id": 156,
+ "name": "Deesel"
+ },
+ {
+ "id": 157,
+ "name": "Delphi"
+ },
+ {
+ "id": 158,
+ "name": "DinkC"
+ },
+ {
+ "id": 159,
+ "name": "DIBOL"
+ },
+ {
+ "id": 160,
+ "name": "Dog"
+ },
+ {
+ "id": 161,
+ "name": "Draco"
+ },
+ {
+ "id": 162,
+ "name": "DRAKON"
+ },
+ {
+ "id": 163,
+ "name": "Dylan"
+ },
+ {
+ "id": 164,
+ "name": "DYNAMO"
+ },
+ {
+ "id": 165,
+ "name": "E"
+ },
+ {
+ "id": 166,
+ "name": "E#"
+ },
+ {
+ "id": 167,
+ "name": "Ease"
+ },
+ {
+ "id": 168,
+ "name": "Easy PL/I"
+ },
+ {
+ "id": 169,
+ "name": "Easy Programming Language"
+ },
+ {
+ "id": 170,
+ "name": "EASYTRIEVE PLUS"
+ },
+ {
+ "id": 171,
+ "name": "ECMAScript"
+ },
+ {
+ "id": 172,
+ "name": "Edinburgh IMP"
+ },
+ {
+ "id": 173,
+ "name": "EGL"
+ },
+ {
+ "id": 174,
+ "name": "Eiffel"
+ },
+ {
+ "id": 175,
+ "name": "ELAN"
+ },
+ {
+ "id": 176,
+ "name": "Elixir"
+ },
+ {
+ "id": 177,
+ "name": "Elm"
+ },
+ {
+ "id": 178,
+ "name": "Emacs Lisp"
+ },
+ {
+ "id": 179,
+ "name": "Emerald"
+ },
+ {
+ "id": 180,
+ "name": "Epigram"
+ },
+ {
+ "id": 181,
+ "name": "EPL"
+ },
+ {
+ "id": 182,
+ "name": "Erlang"
+ },
+ {
+ "id": 183,
+ "name": "es"
+ },
+ {
+ "id": 184,
+ "name": "Escher"
+ },
+ {
+ "id": 185,
+ "name": "ESPOL"
+ },
+ {
+ "id": 186,
+ "name": "Esterel"
+ },
+ {
+ "id": 187,
+ "name": "Etoys"
+ },
+ {
+ "id": 188,
+ "name": "Euclid"
+ },
+ {
+ "id": 189,
+ "name": "Euler"
+ },
+ {
+ "id": 190,
+ "name": "Euphoria"
+ },
+ {
+ "id": 191,
+ "name": "EusLisp Robot Programming Language"
+ },
+ {
+ "id": 192,
+ "name": "CMS EXEC"
+ },
+ {
+ "id": 193,
+ "name": "EXEC 2"
+ },
+ {
+ "id": 194,
+ "name": "Executable UML"
+ },
+ {
+ "id": 195,
+ "name": "F"
+ },
+ {
+ "id": 196,
+ "name": "F#"
+ },
+ {
+ "id": 197,
+ "name": "Factor"
+ },
+ {
+ "id": 198,
+ "name": "Falcon"
+ },
+ {
+ "id": 199,
+ "name": "Fantom"
+ },
+ {
+ "id": 200,
+ "name": "FAUST"
+ },
+ {
+ "id": 201,
+ "name": "FFP"
+ },
+ {
+ "id": 202,
+ "name": "Fjölnir"
+ },
+ {
+ "id": 203,
+ "name": "FL"
+ },
+ {
+ "id": 204,
+ "name": "Flavors"
+ },
+ {
+ "id": 205,
+ "name": "Flex"
+ },
+ {
+ "id": 206,
+ "name": "FLOW-MATIC"
+ },
+ {
+ "id": 207,
+ "name": "FOCAL"
+ },
+ {
+ "id": 208,
+ "name": "FOCUS"
+ },
+ {
+ "id": 209,
+ "name": "FOIL"
+ },
+ {
+ "id": 210,
+ "name": "FORMAC"
+ },
+ {
+ "id": 211,
+ "name": "@Formula"
+ },
+ {
+ "id": 212,
+ "name": "Forth"
+ },
+ {
+ "id": 213,
+ "name": "Fortran"
+ },
+ {
+ "id": 214,
+ "name": "Fortress"
+ },
+ {
+ "id": 215,
+ "name": "FoxBase"
+ },
+ {
+ "id": 216,
+ "name": "FoxPro"
+ },
+ {
+ "id": 217,
+ "name": "FP"
+ },
+ {
+ "id": 218,
+ "name": "FPr"
+ },
+ {
+ "id": 219,
+ "name": "Franz Lisp"
+ },
+ {
+ "id": 220,
+ "name": "Frege"
+ },
+ {
+ "id": 221,
+ "name": "F-Script"
+ },
+ {
+ "id": 222,
+ "name": "G"
+ },
+ {
+ "id": 223,
+ "name": "Google Apps Script"
+ },
+ {
+ "id": 224,
+ "name": "Game Maker Language"
+ },
+ {
+ "id": 225,
+ "name": "GameMonkey Script"
+ },
+ {
+ "id": 226,
+ "name": "GAMS"
+ },
+ {
+ "id": 227,
+ "name": "GAP"
+ },
+ {
+ "id": 228,
+ "name": "G-code"
+ },
+ {
+ "id": 229,
+ "name": "Genie"
+ },
+ {
+ "id": 230,
+ "name": "GDL"
+ },
+ {
+ "id": 231,
+ "name": "GJ"
+ },
+ {
+ "id": 232,
+ "name": "GEORGE"
+ },
+ {
+ "id": 233,
+ "name": "GLSL"
+ },
+ {
+ "id": 234,
+ "name": "GNU E"
+ },
+ {
+ "id": 235,
+ "name": "GM"
+ },
+ {
+ "id": 236,
+ "name": "Go"
+ },
+ {
+ "id": 237,
+ "name": "Go!"
+ },
+ {
+ "id": 238,
+ "name": "GOAL"
+ },
+ {
+ "id": 239,
+ "name": "Gödel"
+ },
+ {
+ "id": 240,
+ "name": "Godiva"
+ },
+ {
+ "id": 241,
+ "name": "GOM (Good Old Mad)"
+ },
+ {
+ "id": 242,
+ "name": "Goo"
+ },
+ {
+ "id": 243,
+ "name": "Gosu"
+ },
+ {
+ "id": 244,
+ "name": "GOTRAN"
+ },
+ {
+ "id": 245,
+ "name": "GPSS"
+ },
+ {
+ "id": 246,
+ "name": "GraphTalk"
+ },
+ {
+ "id": 247,
+ "name": "GRASS"
+ },
+ {
+ "id": 248,
+ "name": "Groovy"
+ },
+ {
+ "id": 249,
+ "name": "Hack"
+ },
+ {
+ "id": 250,
+ "name": "HAL/S"
+ },
+ {
+ "id": 251,
+ "name": "Hamilton C shell"
+ },
+ {
+ "id": 252,
+ "name": "Harbour"
+ },
+ {
+ "id": 253,
+ "name": "Hartmann pipelines"
+ },
+ {
+ "id": 254,
+ "name": "Haskell"
+ },
+ {
+ "id": 255,
+ "name": "Haxe"
+ },
+ {
+ "id": 256,
+ "name": "High Level Assembly"
+ },
+ {
+ "id": 257,
+ "name": "HLSL"
+ },
+ {
+ "id": 258,
+ "name": "Hop"
+ },
+ {
+ "id": 259,
+ "name": "Hope"
+ },
+ {
+ "id": 260,
+ "name": "Hugo"
+ },
+ {
+ "id": 261,
+ "name": "Hume"
+ },
+ {
+ "id": 262,
+ "name": "HyperTalk"
+ },
+ {
+ "id": 263,
+ "name": "IBM Basic assembly language"
+ },
+ {
+ "id": 264,
+ "name": "IBM HAScript"
+ },
+ {
+ "id": 265,
+ "name": "IBM Informix-4GL"
+ },
+ {
+ "id": 266,
+ "name": "IBM RPG"
+ },
+ {
+ "id": 267,
+ "name": "ICI"
+ },
+ {
+ "id": 268,
+ "name": "Icon"
+ },
+ {
+ "id": 269,
+ "name": "Id"
+ },
+ {
+ "id": 270,
+ "name": "IDL"
+ },
+ {
+ "id": 271,
+ "name": "Idris"
+ },
+ {
+ "id": 272,
+ "name": "IMP"
+ },
+ {
+ "id": 273,
+ "name": "Inform"
+ },
+ {
+ "id": 274,
+ "name": "Io"
+ },
+ {
+ "id": 275,
+ "name": "Ioke"
+ },
+ {
+ "id": 276,
+ "name": "IPL"
+ },
+ {
+ "id": 277,
+ "name": "IPTSCRAE"
+ },
+ {
+ "id": 278,
+ "name": "ISLISP"
+ },
+ {
+ "id": 279,
+ "name": "ISPF"
+ },
+ {
+ "id": 280,
+ "name": "ISWIM"
+ },
+ {
+ "id": 281,
+ "name": "J"
+ },
+ {
+ "id": 282,
+ "name": "J#"
+ },
+ {
+ "id": 283,
+ "name": "J++"
+ },
+ {
+ "id": 284,
+ "name": "JADE"
+ },
+ {
+ "id": 285,
+ "name": "Jako"
+ },
+ {
+ "id": 286,
+ "name": "JAL"
+ },
+ {
+ "id": 287,
+ "name": "Janus"
+ },
+ {
+ "id": 288,
+ "name": "JASS"
+ },
+ {
+ "id": 289,
+ "name": "Java"
+ },
+ {
+ "id": 290,
+ "name": "JavaScript"
+ },
+ {
+ "id": 291,
+ "name": "JCL"
+ },
+ {
+ "id": 292,
+ "name": "JEAN"
+ },
+ {
+ "id": 293,
+ "name": "Join Java"
+ },
+ {
+ "id": 294,
+ "name": "JOSS"
+ },
+ {
+ "id": 295,
+ "name": "Joule"
+ },
+ {
+ "id": 296,
+ "name": "JOVIAL"
+ },
+ {
+ "id": 297,
+ "name": "Joy"
+ },
+ {
+ "id": 298,
+ "name": "JScript"
+ },
+ {
+ "id": 299,
+ "name": "JScript .NET"
+ },
+ {
+ "id": 300,
+ "name": "JavaFX Script"
+ },
+ {
+ "id": 301,
+ "name": "Julia"
+ },
+ {
+ "id": 302,
+ "name": "Jython"
+ },
+ {
+ "id": 303,
+ "name": "K"
+ },
+ {
+ "id": 304,
+ "name": "Kaleidoscope"
+ },
+ {
+ "id": 305,
+ "name": "Karel"
+ },
+ {
+ "id": 306,
+ "name": "Karel++"
+ },
+ {
+ "id": 307,
+ "name": "KEE"
+ },
+ {
+ "id": 308,
+ "name": "Kixtart"
+ },
+ {
+ "id": 309,
+ "name": "Klerer-May System"
+ },
+ {
+ "id": 310,
+ "name": "KIF"
+ },
+ {
+ "id": 311,
+ "name": "Kojo"
+ },
+ {
+ "id": 312,
+ "name": "Kotlin"
+ },
+ {
+ "id": 313,
+ "name": "KRC"
+ },
+ {
+ "id": 314,
+ "name": "KRL"
+ },
+ {
+ "id": 315,
+ "name": "KUKA"
+ },
+ {
+ "id": 316,
+ "name": "KRYPTON"
+ },
+ {
+ "id": 317,
+ "name": "ksh"
+ },
+ {
+ "id": 318,
+ "name": "L"
+ },
+ {
+ "id": 319,
+ "name": "L# .NET"
+ },
+ {
+ "id": 320,
+ "name": "LabVIEW"
+ },
+ {
+ "id": 321,
+ "name": "Ladder"
+ },
+ {
+ "id": 322,
+ "name": "Lagoona"
+ },
+ {
+ "id": 323,
+ "name": "LANSA"
+ },
+ {
+ "id": 324,
+ "name": "Lasso"
+ },
+ {
+ "id": 325,
+ "name": "LaTeX"
+ },
+ {
+ "id": 326,
+ "name": "Lava"
+ },
+ {
+ "id": 327,
+ "name": "LC-3"
+ },
+ {
+ "id": 328,
+ "name": "Leda"
+ },
+ {
+ "id": 329,
+ "name": "Legoscript"
+ },
+ {
+ "id": 330,
+ "name": "LIL"
+ },
+ {
+ "id": 331,
+ "name": "LilyPond"
+ },
+ {
+ "id": 332,
+ "name": "Limbo"
+ },
+ {
+ "id": 333,
+ "name": "Limnor"
+ },
+ {
+ "id": 334,
+ "name": "LINC"
+ },
+ {
+ "id": 335,
+ "name": "Lingo"
+ },
+ {
+ "id": 336,
+ "name": "Linoleum"
+ },
+ {
+ "id": 337,
+ "name": "LIS"
+ },
+ {
+ "id": 338,
+ "name": "LISA"
+ },
+ {
+ "id": 339,
+ "name": "Lisaac"
+ },
+ {
+ "id": 340,
+ "name": "Lisp"
+ },
+ {
+ "id": 341,
+ "name": "Lite-C"
+ },
+ {
+ "id": 342,
+ "name": "Lithe"
+ },
+ {
+ "id": 343,
+ "name": "Little b"
+ },
+ {
+ "id": 344,
+ "name": "Logo"
+ },
+ {
+ "id": 345,
+ "name": "Logtalk"
+ },
+ {
+ "id": 346,
+ "name": "LotusScript"
+ },
+ {
+ "id": 347,
+ "name": "LPC"
+ },
+ {
+ "id": 348,
+ "name": "LSE"
+ },
+ {
+ "id": 349,
+ "name": "LSL"
+ },
+ {
+ "id": 350,
+ "name": "LiveCode"
+ },
+ {
+ "id": 351,
+ "name": "LiveScript"
+ },
+ {
+ "id": 352,
+ "name": "Lua"
+ },
+ {
+ "id": 353,
+ "name": "Lucid"
+ },
+ {
+ "id": 354,
+ "name": "Lustre"
+ },
+ {
+ "id": 355,
+ "name": "LYaPAS"
+ },
+ {
+ "id": 356,
+ "name": "Lynx"
+ },
+ {
+ "id": 357,
+ "name": "M2001"
+ },
+ {
+ "id": 358,
+ "name": "M4"
+ },
+ {
+ "id": 359,
+ "name": "M#"
+ },
+ {
+ "id": 360,
+ "name": "Machine code"
+ },
+ {
+ "id": 361,
+ "name": "MAD"
+ },
+ {
+ "id": 362,
+ "name": "MAD/I"
+ },
+ {
+ "id": 363,
+ "name": "Magik"
+ },
+ {
+ "id": 364,
+ "name": "Magma"
+ },
+ {
+ "id": 365,
+ "name": "make"
+ },
+ {
+ "id": 366,
+ "name": "Maple"
+ },
+ {
+ "id": 367,
+ "name": "MAPPER"
+ },
+ {
+ "id": 368,
+ "name": "MARK-IV"
+ },
+ {
+ "id": 369,
+ "name": "Mary"
+ },
+ {
+ "id": 370,
+ "name": "MASM Microsoft Assembly x86"
+ },
+ {
+ "id": 371,
+ "name": "Mathematica"
+ },
+ {
+ "id": 372,
+ "name": "MATLAB"
+ },
+ {
+ "id": 373,
+ "name": "Maxima"
+ },
+ {
+ "id": 374,
+ "name": "Macsyma"
+ },
+ {
+ "id": 375,
+ "name": "Max"
+ },
+ {
+ "id": 376,
+ "name": "MaxScript"
+ },
+ {
+ "id": 377,
+ "name": "Maya (MEL)"
+ },
+ {
+ "id": 378,
+ "name": "MDL"
+ },
+ {
+ "id": 379,
+ "name": "Mercury"
+ },
+ {
+ "id": 380,
+ "name": "Mesa"
+ },
+ {
+ "id": 381,
+ "name": "Metacard"
+ },
+ {
+ "id": 382,
+ "name": "Metafont"
+ },
+ {
+ "id": 383,
+ "name": "Microcode"
+ },
+ {
+ "id": 384,
+ "name": "MicroScript"
+ },
+ {
+ "id": 385,
+ "name": "MIIS"
+ },
+ {
+ "id": 386,
+ "name": "MillScript"
+ },
+ {
+ "id": 387,
+ "name": "MIMIC"
+ },
+ {
+ "id": 388,
+ "name": "Mirah"
+ },
+ {
+ "id": 389,
+ "name": "Miranda"
+ },
+ {
+ "id": 390,
+ "name": "MIVA Script"
+ },
+ {
+ "id": 391,
+ "name": "ML"
+ },
+ {
+ "id": 392,
+ "name": "Moby"
+ },
+ {
+ "id": 393,
+ "name": "Model 204"
+ },
+ {
+ "id": 394,
+ "name": "Modelica"
+ },
+ {
+ "id": 395,
+ "name": "Modula"
+ },
+ {
+ "id": 396,
+ "name": "Modula-2"
+ },
+ {
+ "id": 397,
+ "name": "Modula-3"
+ },
+ {
+ "id": 398,
+ "name": "Mohol"
+ },
+ {
+ "id": 399,
+ "name": "MOO"
+ },
+ {
+ "id": 400,
+ "name": "Mortran"
+ },
+ {
+ "id": 401,
+ "name": "Mouse"
+ },
+ {
+ "id": 402,
+ "name": "MPD"
+ },
+ {
+ "id": 403,
+ "name": "CIL"
+ },
+ {
+ "id": 404,
+ "name": "MSL"
+ },
+ {
+ "id": 405,
+ "name": "MUMPS"
+ },
+ {
+ "id": 406,
+ "name": "Mystic Programming Language"
+ },
+ {
+ "id": 407,
+ "name": "NASM"
+ },
+ {
+ "id": 408,
+ "name": "NATURAL"
+ },
+ {
+ "id": 409,
+ "name": "Napier88"
+ },
+ {
+ "id": 410,
+ "name": "Neko"
+ },
+ {
+ "id": 411,
+ "name": "Nemerle"
+ },
+ {
+ "id": 412,
+ "name": "nesC"
+ },
+ {
+ "id": 413,
+ "name": "NESL"
+ },
+ {
+ "id": 414,
+ "name": "Net.Data"
+ },
+ {
+ "id": 415,
+ "name": "NetLogo"
+ },
+ {
+ "id": 416,
+ "name": "NetRexx"
+ },
+ {
+ "id": 417,
+ "name": "NewLISP"
+ },
+ {
+ "id": 418,
+ "name": "NEWP"
+ },
+ {
+ "id": 419,
+ "name": "Newspeak"
+ },
+ {
+ "id": 420,
+ "name": "NewtonScript"
+ },
+ {
+ "id": 421,
+ "name": "NGL"
+ },
+ {
+ "id": 422,
+ "name": "Nial"
+ },
+ {
+ "id": 423,
+ "name": "Nice"
+ },
+ {
+ "id": 424,
+ "name": "Nickle"
+ },
+ {
+ "id": 425,
+ "name": "Nim"
+ },
+ {
+ "id": 426,
+ "name": "NPL"
+ },
+ {
+ "id": 427,
+ "name": "Not eXactly C"
+ },
+ {
+ "id": 428,
+ "name": "Not Quite C"
+ },
+ {
+ "id": 429,
+ "name": "NSIS"
+ },
+ {
+ "id": 430,
+ "name": "Nu"
+ },
+ {
+ "id": 431,
+ "name": "NWScript"
+ },
+ {
+ "id": 432,
+ "name": "NXT-G"
+ },
+ {
+ "id": 433,
+ "name": "o:XML"
+ },
+ {
+ "id": 434,
+ "name": "Oak"
+ },
+ {
+ "id": 435,
+ "name": "Oberon"
+ },
+ {
+ "id": 436,
+ "name": "OBJ2"
+ },
+ {
+ "id": 437,
+ "name": "Object Lisp"
+ },
+ {
+ "id": 438,
+ "name": "ObjectLOGO"
+ },
+ {
+ "id": 439,
+ "name": "Object REXX"
+ },
+ {
+ "id": 440,
+ "name": "Object Pascal"
+ },
+ {
+ "id": 441,
+ "name": "Objective-C"
+ },
+ {
+ "id": 442,
+ "name": "Objective-J"
+ },
+ {
+ "id": 443,
+ "name": "Obliq"
+ },
+ {
+ "id": 444,
+ "name": "OCaml"
+ },
+ {
+ "id": 445,
+ "name": "occam"
+ },
+ {
+ "id": 446,
+ "name": "occam-π"
+ },
+ {
+ "id": 447,
+ "name": "Octave"
+ },
+ {
+ "id": 448,
+ "name": "OmniMark"
+ },
+ {
+ "id": 449,
+ "name": "Onyx"
+ },
+ {
+ "id": 450,
+ "name": "Opa"
+ },
+ {
+ "id": 451,
+ "name": "Opal"
+ },
+ {
+ "id": 452,
+ "name": "OpenCL"
+ },
+ {
+ "id": 453,
+ "name": "OpenEdge ABL"
+ },
+ {
+ "id": 454,
+ "name": "OPL"
+ },
+ {
+ "id": 455,
+ "name": "OPS5"
+ },
+ {
+ "id": 456,
+ "name": "OptimJ"
+ },
+ {
+ "id": 457,
+ "name": "Orc"
+ },
+ {
+ "id": 458,
+ "name": "ORCA/Modula-2"
+ },
+ {
+ "id": 459,
+ "name": "Oriel"
+ },
+ {
+ "id": 460,
+ "name": "Orwell"
+ },
+ {
+ "id": 461,
+ "name": "Oxygene"
+ },
+ {
+ "id": 462,
+ "name": "Oz"
+ },
+ {
+ "id": 463,
+ "name": "P′′"
+ },
+ {
+ "id": 464,
+ "name": "P#"
+ },
+ {
+ "id": 465,
+ "name": "ParaSail (programming language)"
+ },
+ {
+ "id": 466,
+ "name": "PARI/GP"
+ },
+ {
+ "id": 467,
+ "name": "Pascal"
+ },
+ {
+ "id": 468,
+ "name": "PCASTL"
+ },
+ {
+ "id": 469,
+ "name": "PCF"
+ },
+ {
+ "id": 470,
+ "name": "PEARL"
+ },
+ {
+ "id": 471,
+ "name": "PeopleCode"
+ },
+ {
+ "id": 472,
+ "name": "Perl"
+ },
+ {
+ "id": 473,
+ "name": "PDL"
+ },
+ {
+ "id": 474,
+ "name": "Perl6"
+ },
+ {
+ "id": 475,
+ "name": "PHP"
+ },
+ {
+ "id": 476,
+ "name": "Phrogram"
+ },
+ {
+ "id": 477,
+ "name": "Pico"
+ },
+ {
+ "id": 478,
+ "name": "Picolisp"
+ },
+ {
+ "id": 479,
+ "name": "Pict"
+ },
+ {
+ "id": 480,
+ "name": "Pike"
+ },
+ {
+ "id": 481,
+ "name": "PIKT"
+ },
+ {
+ "id": 482,
+ "name": "PILOT"
+ },
+ {
+ "id": 483,
+ "name": "Pipelines"
+ },
+ {
+ "id": 484,
+ "name": "Pizza"
+ },
+ {
+ "id": 485,
+ "name": "PL-11"
+ },
+ {
+ "id": 486,
+ "name": "PL/0"
+ },
+ {
+ "id": 487,
+ "name": "PL/B"
+ },
+ {
+ "id": 488,
+ "name": "PL/C"
+ },
+ {
+ "id": 489,
+ "name": "PL/I"
+ },
+ {
+ "id": 490,
+ "name": "PL/M"
+ },
+ {
+ "id": 491,
+ "name": "PL/P"
+ },
+ {
+ "id": 492,
+ "name": "PL/SQL"
+ },
+ {
+ "id": 493,
+ "name": "PL360"
+ },
+ {
+ "id": 494,
+ "name": "PLANC"
+ },
+ {
+ "id": 495,
+ "name": "Plankalkül"
+ },
+ {
+ "id": 496,
+ "name": "Planner"
+ },
+ {
+ "id": 497,
+ "name": "PLEX"
+ },
+ {
+ "id": 498,
+ "name": "PLEXIL"
+ },
+ {
+ "id": 499,
+ "name": "Plus"
+ },
+ {
+ "id": 500,
+ "name": "POP-11"
+ },
+ {
+ "id": 501,
+ "name": "PostScript"
+ },
+ {
+ "id": 502,
+ "name": "PortablE"
+ },
+ {
+ "id": 503,
+ "name": "Powerhouse"
+ },
+ {
+ "id": 504,
+ "name": "PowerBuilder"
+ },
+ {
+ "id": 505,
+ "name": "PowerShell"
+ },
+ {
+ "id": 506,
+ "name": "PPL"
+ },
+ {
+ "id": 507,
+ "name": "Processing"
+ },
+ {
+ "id": 508,
+ "name": "Processing.js"
+ },
+ {
+ "id": 509,
+ "name": "Prograph"
+ },
+ {
+ "id": 510,
+ "name": "PROIV"
+ },
+ {
+ "id": 511,
+ "name": "Prolog"
+ },
+ {
+ "id": 512,
+ "name": "PROMAL"
+ },
+ {
+ "id": 513,
+ "name": "Promela"
+ },
+ {
+ "id": 514,
+ "name": "PROSE modeling language"
+ },
+ {
+ "id": 515,
+ "name": "PROTEL"
+ },
+ {
+ "id": 516,
+ "name": "ProvideX"
+ },
+ {
+ "id": 517,
+ "name": "Pro*C"
+ },
+ {
+ "id": 518,
+ "name": "Pure"
+ },
+ {
+ "id": 519,
+ "name": "Python"
+ },
+ {
+ "id": 520,
+ "name": "Q (equational programming language)"
+ },
+ {
+ "id": 521,
+ "name": "Q (programming language from Kx Systems)"
+ },
+ {
+ "id": 522,
+ "name": "Qalb"
+ },
+ {
+ "id": 523,
+ "name": "QtScript"
+ },
+ {
+ "id": 524,
+ "name": "QuakeC"
+ },
+ {
+ "id": 525,
+ "name": "QPL"
+ },
+ {
+ "id": 526,
+ "name": "R"
+ },
+ {
+ "id": 527,
+ "name": "R++"
+ },
+ {
+ "id": 528,
+ "name": "Racket"
+ },
+ {
+ "id": 529,
+ "name": "RAPID"
+ },
+ {
+ "id": 530,
+ "name": "Rapira"
+ },
+ {
+ "id": 531,
+ "name": "Ratfiv"
+ },
+ {
+ "id": 532,
+ "name": "Ratfor"
+ },
+ {
+ "id": 533,
+ "name": "rc"
+ },
+ {
+ "id": 534,
+ "name": "REBOL"
+ },
+ {
+ "id": 535,
+ "name": "Red"
+ },
+ {
+ "id": 536,
+ "name": "Redcode"
+ },
+ {
+ "id": 537,
+ "name": "REFAL"
+ },
+ {
+ "id": 538,
+ "name": "Reia"
+ },
+ {
+ "id": 539,
+ "name": "Revolution"
+ },
+ {
+ "id": 540,
+ "name": "rex"
+ },
+ {
+ "id": 541,
+ "name": "REXX"
+ },
+ {
+ "id": 542,
+ "name": "Rlab"
+ },
+ {
+ "id": 543,
+ "name": "ROOP"
+ },
+ {
+ "id": 544,
+ "name": "RPG"
+ },
+ {
+ "id": 545,
+ "name": "RPL"
+ },
+ {
+ "id": 546,
+ "name": "RSL"
+ },
+ {
+ "id": 547,
+ "name": "RTL/2"
+ },
+ {
+ "id": 548,
+ "name": "Ruby"
+ },
+ {
+ "id": 549,
+ "name": "RuneScript"
+ },
+ {
+ "id": 550,
+ "name": "Rust"
+ },
+ {
+ "id": 551,
+ "name": "S"
+ },
+ {
+ "id": 552,
+ "name": "S2"
+ },
+ {
+ "id": 553,
+ "name": "S3"
+ },
+ {
+ "id": 554,
+ "name": "S-Lang"
+ },
+ {
+ "id": 555,
+ "name": "S-PLUS"
+ },
+ {
+ "id": 556,
+ "name": "SA-C"
+ },
+ {
+ "id": 557,
+ "name": "SabreTalk"
+ },
+ {
+ "id": 558,
+ "name": "SAIL"
+ },
+ {
+ "id": 559,
+ "name": "SALSA"
+ },
+ {
+ "id": 560,
+ "name": "SAM76"
+ },
+ {
+ "id": 561,
+ "name": "SAS"
+ },
+ {
+ "id": 562,
+ "name": "SASL"
+ },
+ {
+ "id": 563,
+ "name": "Sather"
+ },
+ {
+ "id": 564,
+ "name": "Sawzall"
+ },
+ {
+ "id": 565,
+ "name": "SBL"
+ },
+ {
+ "id": 566,
+ "name": "Scala"
+ },
+ {
+ "id": 567,
+ "name": "Scheme"
+ },
+ {
+ "id": 568,
+ "name": "Scilab"
+ },
+ {
+ "id": 569,
+ "name": "Scratch"
+ },
+ {
+ "id": 570,
+ "name": "Script.NET"
+ },
+ {
+ "id": 571,
+ "name": "Sed"
+ },
+ {
+ "id": 572,
+ "name": "Seed7"
+ },
+ {
+ "id": 573,
+ "name": "Self"
+ },
+ {
+ "id": 574,
+ "name": "SenseTalk"
+ },
+ {
+ "id": 575,
+ "name": "SequenceL"
+ },
+ {
+ "id": 576,
+ "name": "SETL"
+ },
+ {
+ "id": 577,
+ "name": "SIMPOL"
+ },
+ {
+ "id": 578,
+ "name": "SIGNAL"
+ },
+ {
+ "id": 579,
+ "name": "SiMPLE"
+ },
+ {
+ "id": 580,
+ "name": "SIMSCRIPT"
+ },
+ {
+ "id": 581,
+ "name": "Simula"
+ },
+ {
+ "id": 582,
+ "name": "Simulink"
+ },
+ {
+ "id": 583,
+ "name": "SISAL"
+ },
+ {
+ "id": 584,
+ "name": "SLIP"
+ },
+ {
+ "id": 585,
+ "name": "SMALL"
+ },
+ {
+ "id": 586,
+ "name": "Smalltalk"
+ },
+ {
+ "id": 587,
+ "name": "Small Basic"
+ },
+ {
+ "id": 588,
+ "name": "SML"
+ },
+ {
+ "id": 589,
+ "name": "Snap!"
+ },
+ {
+ "id": 590,
+ "name": "SNOBOL"
+ },
+ {
+ "id": 591,
+ "name": "SPITBOL"
+ },
+ {
+ "id": 592,
+ "name": "Snowball"
+ },
+ {
+ "id": 593,
+ "name": "SOL"
+ },
+ {
+ "id": 594,
+ "name": "Span"
+ },
+ {
+ "id": 595,
+ "name": "SPARK"
+ },
+ {
+ "id": 596,
+ "name": "Speedcode"
+ },
+ {
+ "id": 597,
+ "name": "SPIN"
+ },
+ {
+ "id": 598,
+ "name": "SP/k"
+ },
+ {
+ "id": 599,
+ "name": "SPS"
+ },
+ {
+ "id": 600,
+ "name": "SQR"
+ },
+ {
+ "id": 601,
+ "name": "Squeak"
+ },
+ {
+ "id": 602,
+ "name": "Squirrel"
+ },
+ {
+ "id": 603,
+ "name": "SR"
+ },
+ {
+ "id": 604,
+ "name": "S/SL"
+ },
+ {
+ "id": 605,
+ "name": "Stackless Python"
+ },
+ {
+ "id": 606,
+ "name": "Starlogo"
+ },
+ {
+ "id": 607,
+ "name": "Strand"
+ },
+ {
+ "id": 608,
+ "name": "Stata"
+ },
+ {
+ "id": 609,
+ "name": "Stateflow"
+ },
+ {
+ "id": 610,
+ "name": "Subtext"
+ },
+ {
+ "id": 611,
+ "name": "SuperCollider"
+ },
+ {
+ "id": 612,
+ "name": "SuperTalk"
+ },
+ {
+ "id": 613,
+ "name": "Swift (Apple programming language)"
+ },
+ {
+ "id": 614,
+ "name": "Swift (parallel scripting language)"
+ },
+ {
+ "id": 615,
+ "name": "SYMPL"
+ },
+ {
+ "id": 616,
+ "name": "SyncCharts"
+ },
+ {
+ "id": 617,
+ "name": "SystemVerilog"
+ },
+ {
+ "id": 618,
+ "name": "T"
+ },
+ {
+ "id": 619,
+ "name": "TACL"
+ },
+ {
+ "id": 620,
+ "name": "TACPOL"
+ },
+ {
+ "id": 621,
+ "name": "TADS"
+ },
+ {
+ "id": 622,
+ "name": "TAL"
+ },
+ {
+ "id": 623,
+ "name": "Tcl"
+ },
+ {
+ "id": 624,
+ "name": "Tea"
+ },
+ {
+ "id": 625,
+ "name": "TECO"
+ },
+ {
+ "id": 626,
+ "name": "TELCOMP"
+ },
+ {
+ "id": 627,
+ "name": "TeX"
+ },
+ {
+ "id": 628,
+ "name": "TEX"
+ },
+ {
+ "id": 629,
+ "name": "TIE"
+ },
+ {
+ "id": 630,
+ "name": "Timber"
+ },
+ {
+ "id": 631,
+ "name": "TMG"
+ },
+ {
+ "id": 632,
+ "name": "Tom"
+ },
+ {
+ "id": 633,
+ "name": "TOM"
+ },
+ {
+ "id": 634,
+ "name": "TouchDevelop"
+ },
+ {
+ "id": 635,
+ "name": "Topspeed"
+ },
+ {
+ "id": 636,
+ "name": "TPU"
+ },
+ {
+ "id": 637,
+ "name": "Trac"
+ },
+ {
+ "id": 638,
+ "name": "TTM"
+ },
+ {
+ "id": 639,
+ "name": "T-SQL"
+ },
+ {
+ "id": 640,
+ "name": "TTCN"
+ },
+ {
+ "id": 641,
+ "name": "Turing"
+ },
+ {
+ "id": 642,
+ "name": "TUTOR"
+ },
+ {
+ "id": 643,
+ "name": "TXL"
+ },
+ {
+ "id": 644,
+ "name": "TypeScript"
+ },
+ {
+ "id": 645,
+ "name": "Turbo C++"
+ },
+ {
+ "id": 646,
+ "name": "Ubercode"
+ },
+ {
+ "id": 647,
+ "name": "UCSD Pascal"
+ },
+ {
+ "id": 648,
+ "name": "Umple"
+ },
+ {
+ "id": 649,
+ "name": "Unicon"
+ },
+ {
+ "id": 650,
+ "name": "Uniface"
+ },
+ {
+ "id": 651,
+ "name": "UNITY"
+ },
+ {
+ "id": 652,
+ "name": "Unix shell"
+ },
+ {
+ "id": 653,
+ "name": "UnrealScript"
+ },
+ {
+ "id": 654,
+ "name": "Vala"
+ },
+ {
+ "id": 655,
+ "name": "VBA"
+ },
+ {
+ "id": 656,
+ "name": "VBScript"
+ },
+ {
+ "id": 657,
+ "name": "Verilog"
+ },
+ {
+ "id": 658,
+ "name": "VHDL"
+ },
+ {
+ "id": 659,
+ "name": "Visual Basic"
+ },
+ {
+ "id": 660,
+ "name": "Visual Basic .NET"
+ },
+ {
+ "id": 661,
+ "name": "Visual DataFlex"
+ },
+ {
+ "id": 662,
+ "name": "Visual DialogScript"
+ },
+ {
+ "id": 663,
+ "name": "Visual Fortran"
+ },
+ {
+ "id": 664,
+ "name": "Visual FoxPro"
+ },
+ {
+ "id": 665,
+ "name": "Visual J++"
+ },
+ {
+ "id": 666,
+ "name": "Visual J#"
+ },
+ {
+ "id": 667,
+ "name": "Visual Objects"
+ },
+ {
+ "id": 668,
+ "name": "Visual Prolog"
+ },
+ {
+ "id": 669,
+ "name": "VSXu"
+ },
+ {
+ "id": 670,
+ "name": "vvvv"
+ },
+ {
+ "id": 671,
+ "name": "WATFIV, WATFOR"
+ },
+ {
+ "id": 672,
+ "name": "WebDNA"
+ },
+ {
+ "id": 673,
+ "name": "WebQL"
+ },
+ {
+ "id": 674,
+ "name": "Windows PowerShell"
+ },
+ {
+ "id": 675,
+ "name": "Winbatch"
+ },
+ {
+ "id": 676,
+ "name": "Wolfram Language"
+ },
+ {
+ "id": 677,
+ "name": "Wyvern"
+ },
+ {
+ "id": 678,
+ "name": "X++"
+ },
+ {
+ "id": 679,
+ "name": "X#"
+ },
+ {
+ "id": 680,
+ "name": "X10"
+ },
+ {
+ "id": 681,
+ "name": "XBL"
+ },
+ {
+ "id": 682,
+ "name": "XC"
+ },
+ {
+ "id": 683,
+ "name": "XMOS architecture"
+ },
+ {
+ "id": 684,
+ "name": "xHarbour"
+ },
+ {
+ "id": 685,
+ "name": "XL"
+ },
+ {
+ "id": 686,
+ "name": "Xojo"
+ },
+ {
+ "id": 687,
+ "name": "XOTcl"
+ },
+ {
+ "id": 688,
+ "name": "XPL"
+ },
+ {
+ "id": 689,
+ "name": "XPL0"
+ },
+ {
+ "id": 690,
+ "name": "XQuery"
+ },
+ {
+ "id": 691,
+ "name": "XSB"
+ },
+ {
+ "id": 692,
+ "name": "XSLT"
+ },
+ {
+ "id": 693,
+ "name": "XPath"
+ },
+ {
+ "id": 694,
+ "name": "Xtend"
+ },
+ {
+ "id": 695,
+ "name": "Yorick"
+ },
+ {
+ "id": 696,
+ "name": "YQL"
+ },
+ {
+ "id": 697,
+ "name": "Z notation"
+ },
+ {
+ "id": 698,
+ "name": "Zeno"
+ },
+ {
+ "id": 699,
+ "name": "ZOPL"
+ },
+ {
+ "id": 700,
+ "name": "ZPL"
+ }
+]
\ No newline at end of file
diff --git a/kitchen-sink-ios/js/kitchen-sink.js b/kitchen-sink-ios/js/kitchen-sink.js
index 414bf98676..29a81e7df7 100644
--- a/kitchen-sink-ios/js/kitchen-sink.js
+++ b/kitchen-sink-ios/js/kitchen-sink.js
@@ -20,9 +20,17 @@ var rightView = myApp.addView('.view-right', {
// Show/hide preloader for remote ajax loaded pages
// Probably should be removed on a production/local app
$$(document).on('ajaxStart', function (e) {
+ if (e.detail.xhr.requestUrl.indexOf('autocomplete-languages.json') >= 0) {
+ // Don't show preloader for autocomplete demo requests
+ return;
+ }
myApp.showIndicator();
});
-$$(document).on('ajaxComplete', function () {
+$$(document).on('ajaxComplete', function (e) {
+ if (e.detail.xhr.requestUrl.indexOf('autocomplete-languages.json') >= 0) {
+ // Don't show preloader for autocomplete demo requests
+ return;
+ }
myApp.hideIndicator();
});
@@ -783,6 +791,257 @@ myApp.onPageInit('progressbar', function (page) {
});
});
+/* ===== Autocomplete ===== */
+myApp.onPageInit('autocomplete', function (page) {
+ // Fruits data demo array
+ var fruits = ('Apple Apricot Avocado Banana Melon Orange Peach Pear Pineapple').split(' ');
+
+ // Simple Dropdown
+ var autocompleteDropdownSimple = myApp.autocomplete({
+ input: '#autocomplete-dropdown',
+ openIn: 'dropdown',
+ source: function (autocomplete, query, render) {
+ var results = [];
+ if (query.length === 0) {
+ render(results);
+ return;
+ }
+ // Find matched items
+ for (var i = 0; i < fruits.length; i++) {
+ if (fruits[i].toLowerCase().indexOf(query.toLowerCase()) >= 0) results.push(fruits[i]);
+ }
+ // Render items by passing array with result items
+ render(results);
+ }
+ });
+
+ // Dropdown with input expand
+ var autocompleteDropdownExpand = myApp.autocomplete({
+ input: '#autocomplete-dropdown-expand',
+ openIn: 'dropdown',
+ expandInput: true, // expand input
+ source: function (autocomplete, query, render) {
+ var results = [];
+ if (query.length === 0) {
+ render(results);
+ return;
+ }
+ // Find matched items
+ for (var i = 0; i < fruits.length; i++) {
+ if (fruits[i].toLowerCase().indexOf(query.toLowerCase()) >= 0) results.push(fruits[i]);
+ }
+ // Render items by passing array with result items
+ render(results);
+ }
+ });
+
+ // Dropdown with all values
+ var autocompleteDropdownAll = myApp.autocomplete({
+ input: '#autocomplete-dropdown-all',
+ openIn: 'dropdown',
+ source: function (autocomplete, query, render) {
+ var results = [];
+ // Find matched items
+ for (var i = 0; i < fruits.length; i++) {
+ if (fruits[i].toLowerCase().indexOf(query.toLowerCase()) >= 0) results.push(fruits[i]);
+ }
+ // Render items by passing array with result items
+ render(results);
+ }
+ });
+
+ // Dropdown with placeholder
+ var autocompleteDropdownPlaceholder = myApp.autocomplete({
+ input: '#autocomplete-dropdown-placeholder',
+ openIn: 'dropdown',
+ dropdownPlaceholderText: 'Try to type "Apple"',
+ source: function (autocomplete, query, render) {
+ var results = [];
+ if (query.length === 0) {
+ render(results);
+ return;
+ }
+ // Find matched items
+ for (var i = 0; i < fruits.length; i++) {
+ if (fruits[i].toLowerCase().indexOf(query.toLowerCase()) >= 0) results.push(fruits[i]);
+ }
+ // Render items by passing array with result items
+ render(results);
+ }
+ });
+
+ // Dropdown with ajax data
+ var autocompleteDropdownAjax = myApp.autocomplete({
+ input: '#autocomplete-dropdown-ajax',
+ openIn: 'dropdown',
+ preloader: true, //enable preloader
+ valueProperty: 'id', //object's "value" property name
+ textProperty: 'name', //object's "text" property name
+ limit: 20, //limit to 20 results
+ dropdownPlaceholderText: 'Try "JavaScript"',
+ expandInput: true, // expand input
+ source: function (autocomplete, query, render) {
+ var results = [];
+ if (query.length === 0) {
+ render(results);
+ return;
+ }
+ // Show Preloader
+ autocomplete.showPreloader();
+ // Do Ajax request to Autocomplete data
+ $$.ajax({
+ url: 'js/autocomplete-languages.json',
+ method: 'GET',
+ dataType: 'json',
+ //send "query" to server. Useful in case you generate response dynamically
+ data: {
+ query: query
+ },
+ success: function (data) {
+ // Find matched items
+ for (var i = 0; i < data.length; i++) {
+ if (data[i].name.toLowerCase().indexOf(query.toLowerCase()) >= 0) results.push(data[i]);
+ }
+ // Hide Preoloader
+ autocomplete.hidePreloader();
+ // Render items by passing array with result items
+ render(results);
+ }
+ });
+ }
+ });
+
+ // Simple Standalone
+ var autocompleteStandaloneSimple = myApp.autocomplete({
+ openIn: 'page', //open in page
+ opener: $$('#autocomplete-standalone'), //link that opens autocomplete
+ backOnSelect: true, //go back after we select something
+ source: function (autocomplete, query, render) {
+ var results = [];
+ if (query.length === 0) {
+ render(results);
+ return;
+ }
+ // Find matched items
+ for (var i = 0; i < fruits.length; i++) {
+ if (fruits[i].toLowerCase().indexOf(query.toLowerCase()) >= 0) results.push(fruits[i]);
+ }
+ // Render items by passing array with result items
+ render(results);
+ },
+ onChange: function (autocomplete, value) {
+ // Add item text value to item-after
+ $$('#autocomplete-standalone').find('.item-after').text(value[0]);
+ // Add item value to input value
+ $$('#autocomplete-standalone').find('input').val(value[0]);
+ }
+ });
+
+ // Standalone Popup
+ var autocompleteStandalonePopup = myApp.autocomplete({
+ openIn: 'popup', //open in page
+ opener: $$('#autocomplete-standalone-popup'), //link that opens autocomplete
+ backOnSelect: true, //go back after we select something
+ source: function (autocomplete, query, render) {
+ var results = [];
+ if (query.length === 0) {
+ render(results);
+ return;
+ }
+ // Find matched items
+ for (var i = 0; i < fruits.length; i++) {
+ if (fruits[i].toLowerCase().indexOf(query.toLowerCase()) >= 0) results.push(fruits[i]);
+ }
+ // Render items by passing array with result items
+ render(results);
+ },
+ onChange: function (autocomplete, value) {
+ // Add item text value to item-after
+ $$('#autocomplete-standalone-popup').find('.item-after').text(value[0]);
+ // Add item value to input value
+ $$('#autocomplete-standalone-popup').find('input').val(value[0]);
+ }
+ });
+
+ // Multiple Standalone
+ var autocompleteStandaloneMultiple = myApp.autocomplete({
+ openIn: 'page', //open in page
+ opener: $$('#autocomplete-standalone-multiple'), //link that opens autocomplete
+ multiple: true, //allow multiple values
+ source: function (autocomplete, query, render) {
+ var results = [];
+ if (query.length === 0) {
+ render(results);
+ return;
+ }
+ // Find matched items
+ for (var i = 0; i < fruits.length; i++) {
+ if (fruits[i].toLowerCase().indexOf(query.toLowerCase()) >= 0) results.push(fruits[i]);
+ }
+ // Render items by passing array with result items
+ render(results);
+ },
+ onChange: function (autocomplete, value) {
+ // Add item text value to item-after
+ $$('#autocomplete-standalone-multiple').find('.item-after').text(value.join(', '));
+ // Add item value to input value
+ $$('#autocomplete-standalone-multiple').find('input').val(value.join(', '));
+ }
+ });
+
+ // Standalone With Ajax
+ var autocompleteStandaloneAjax = myApp.autocomplete({
+ openIn: 'page', //open in page
+ opener: $$('#autocomplete-standalone-ajax'), //link that opens autocomplete
+ multiple: true, //allow multiple values
+ valueProperty: 'id', //object's "value" property name
+ textProperty: 'name', //object's "text" property name
+ limit: 50,
+ preloader: true, //enable preloader
+ source: function (autocomplete, query, render) {
+ var results = [];
+ if (query.length === 0) {
+ render(results);
+ return;
+ }
+ // Show Preloader
+ autocomplete.showPreloader();
+ // Do Ajax request to Autocomplete data
+ $$.ajax({
+ url: 'js/autocomplete-languages.json',
+ method: 'GET',
+ dataType: 'json',
+ //send "query" to server. Useful in case you generate response dynamically
+ data: {
+ query: query
+ },
+ success: function (data) {
+ // Find matched items
+ for (var i = 0; i < data.length; i++) {
+ if (data[i].name.toLowerCase().indexOf(query.toLowerCase()) >= 0) results.push(data[i]);
+ }
+ // Hide Preoloader
+ autocomplete.hidePreloader();
+ // Render items by passing array with result items
+ render(results);
+ }
+ });
+ },
+ onChange: function (autocomplete, value) {
+ var itemText = [],
+ inputValue = [];
+ for (var i = 0; i < value.length; i++) {
+ itemText.push(value[i].name);
+ inputValue.push(value[i].id);
+ }
+ // Add item text value to item-after
+ $$('#autocomplete-standalone-ajax').find('.item-after').text(itemText.join(', '));
+ // Add item value to input value
+ $$('#autocomplete-standalone-ajax').find('input').val(inputValue.join(', '));
+ }
+ });
+});
+
/* ===== Change statusbar bg when panel opened/closed ===== */
$$('.panel-left').on('open', function () {
$$('.statusbar-overlay').addClass('with-panel-left');
diff --git a/kitchen-sink-material/autocomplete.html b/kitchen-sink-material/autocomplete.html
new file mode 100644
index 0000000000..b6693ecdc6
--- /dev/null
+++ b/kitchen-sink-material/autocomplete.html
@@ -0,0 +1,116 @@
+
+
+
+
+
Dropdown Autocomplete
+
+
Dropdown autocomplete is good to use as a quick and simple solution to provide more options in addition to free-type value.
+
+
Simple Dropdown Autocomplete
+
+
Dropdown With All Values
+
+
Dropdown With Placeholder
+
+
Dropdown With Ajax-Data
+
+
+
+
+
Programming Language
+
+
+
+
+
+
+
+
Standalone Autocomplete
+
+
Standalone autocomplete provides better mobile UX by opening it in a new page or popup. Good to use when you need to get strict values without allowing free-type values.
+
+
Simple Standalone Autocomplete
+
+
Popup Standalone Autocomplete
+
+
Multiple Values Standalone Autocomplete
+
+
Standalone With Ajax-Data
+
+
+
\ No newline at end of file
diff --git a/kitchen-sink-material/index.html b/kitchen-sink-material/index.html
index 669462cb46..15d792170e 100644
--- a/kitchen-sink-material/index.html
+++ b/kitchen-sink-material/index.html
@@ -170,6 +170,14 @@
Accordion