lanes 0.1.9.5 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (304) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +1 -0
  3. data/Rakefile +1 -1
  4. data/client/lanes/Boot.cjsx +3 -3
  5. data/client/lanes/Config.coffee +38 -3
  6. data/client/lanes/access/Extension.coffee +1 -1
  7. data/client/lanes/access/LoginDialog.cjsx +57 -47
  8. data/client/lanes/access/Roles.coffee +2 -2
  9. data/client/lanes/access/User.coffee +4 -3
  10. data/client/lanes/access/screens/user-management/UserManagement.cjsx +12 -11
  11. data/client/lanes/components/calendar/Calendar.cjsx +16 -0
  12. data/client/lanes/components/calendar/index.js +3 -0
  13. data/client/lanes/components/calendar/styles.scss +3 -0
  14. data/client/lanes/components/grid/Body.cjsx +86 -0
  15. data/client/lanes/components/grid/CellStyles.coffee +20 -0
  16. data/client/lanes/components/grid/EditingMixin.cjsx +84 -24
  17. data/client/lanes/components/grid/Editor.cjsx +45 -0
  18. data/client/lanes/components/grid/Grid.cjsx +62 -104
  19. data/client/lanes/components/grid/Header.cjsx +35 -0
  20. data/client/lanes/components/grid/PopOverMixin.cjsx +19 -9
  21. data/client/lanes/components/grid/PopoverEditor.cjsx +7 -1
  22. data/client/lanes/components/grid/RowEditor.cjsx +1 -1
  23. data/client/lanes/components/grid/Selections.cjsx +39 -0
  24. data/client/lanes/components/grid/Toolbar.cjsx +24 -5
  25. data/client/lanes/components/grid/editors.scss +22 -50
  26. data/client/lanes/components/grid/index.js +0 -1
  27. data/client/lanes/components/grid/row-editor.scss +68 -0
  28. data/client/lanes/components/grid/styles.scss +79 -3
  29. data/client/lanes/components/modal/Modal.cjsx +64 -24
  30. data/client/lanes/components/modal/styles.scss +12 -0
  31. data/client/lanes/components/record-finder/Clause.cjsx +11 -4
  32. data/client/lanes/components/record-finder/Dialog.cjsx +23 -24
  33. data/client/lanes/components/record-finder/RecordFinder.cjsx +45 -14
  34. data/client/lanes/components/record-finder/styles.scss +9 -6
  35. data/client/lanes/components/select-field/SelectField.cjsx +108 -53
  36. data/client/lanes/components/select-field/styles.scss +19 -0
  37. data/client/lanes/components/shared/ControlLabel.cjsx +45 -0
  38. data/client/lanes/components/shared/DateTime.cjsx +48 -0
  39. data/client/lanes/components/shared/DisplayValue.cjsx +16 -0
  40. data/client/lanes/components/shared/FieldMixin.cjsx +54 -23
  41. data/client/lanes/components/shared/FieldSet.cjsx +12 -35
  42. data/client/lanes/components/shared/FieldWrapper.cjsx +13 -0
  43. data/client/lanes/components/shared/FormGroup.cjsx +37 -0
  44. data/client/lanes/components/shared/Icon.cjsx +20 -0
  45. data/client/lanes/components/shared/ImageSaver.cjsx +33 -0
  46. data/client/lanes/components/shared/Input.cjsx +19 -0
  47. data/client/lanes/components/shared/InputFieldMixin.cjsx +48 -0
  48. data/client/lanes/components/shared/JobProgress.cjsx +27 -0
  49. data/client/lanes/components/shared/NetworkActivityOverlay.cjsx +58 -0
  50. data/client/lanes/components/shared/NumberInput.cjsx +29 -0
  51. data/client/lanes/components/shared/ResizeSensor.cjsx +11 -0
  52. data/client/lanes/components/shared/ScreenWrapper.cjsx +13 -0
  53. data/client/lanes/components/shared/Throbber.cjsx +3 -0
  54. data/client/lanes/components/shared/ToggleField.cjsx +33 -0
  55. data/client/lanes/components/shared/Tooltip.cjsx +2 -2
  56. data/client/lanes/components/shared/fields.scss +75 -13
  57. data/client/lanes/components/shared/fieldset.scss +3 -5
  58. data/client/lanes/components/shared/image-saver.scss +38 -0
  59. data/client/lanes/components/shared/index.js +2 -0
  60. data/client/lanes/{styles/plugins → components/shared}/overlay.scss +17 -4
  61. data/client/lanes/components/shared/resize-sensor.scss +30 -0
  62. data/client/lanes/components/shared/styles.scss +13 -0
  63. data/client/lanes/components/shared/throbber.scss +53 -0
  64. data/client/lanes/components/toolbar/RemoteChangeSets.cjsx +21 -48
  65. data/client/lanes/components/toolbar/SaveButton.cjsx +24 -0
  66. data/client/lanes/components/toolbar/Toolbar.cjsx +24 -37
  67. data/client/lanes/components/toolbar/changes-notification.scss +10 -6
  68. data/client/lanes/components/toolbar/styles.scss +29 -9
  69. data/client/lanes/extension/Base.coffee +4 -5
  70. data/client/lanes/index.js +0 -1
  71. data/client/lanes/index.scss.erb +10 -1
  72. data/client/lanes/lib/HotReload.coffee +13 -15
  73. data/client/lanes/lib/MakeBaseClass.coffee +6 -1
  74. data/client/lanes/lib/development.coffee +2 -0
  75. data/client/lanes/lib/dom-polyfills.coffee +5 -0
  76. data/client/lanes/lib/dom.coffee +38 -9
  77. data/client/lanes/lib/format.coffee +11 -0
  78. data/client/lanes/lib/index.js.erb +2 -0
  79. data/client/lanes/lib/production.coffee +6 -0
  80. data/client/lanes/lib/utilFunctions.coffee +50 -15
  81. data/client/lanes/models/AssociationMap.coffee +122 -46
  82. data/client/lanes/models/AssociationProxy.coffee +147 -0
  83. data/client/lanes/models/Base.coffee +97 -85
  84. data/client/lanes/models/ChangeMonitor.coffee +7 -3
  85. data/client/lanes/models/ChangeSet.coffee +2 -2
  86. data/client/lanes/models/Collection.coffee +49 -6
  87. data/client/lanes/models/JobStatus.coffee +32 -0
  88. data/client/lanes/models/PubSub.coffee +7 -5
  89. data/client/lanes/models/Query.coffee +115 -34
  90. data/client/lanes/models/ServerCache.coffee +67 -52
  91. data/client/lanes/models/State.coffee +97 -0
  92. data/client/lanes/models/Sync.coffee +18 -13
  93. data/client/lanes/models/SystemSettings.coffee +0 -0
  94. data/client/lanes/models/index.js +1 -0
  95. data/client/lanes/models/mixins/FileSupport.coffee +60 -0
  96. data/client/lanes/models/mixins/HasCodeField.coffee +13 -6
  97. data/client/lanes/models/query/ArrayResult.coffee +188 -0
  98. data/client/lanes/models/query/CollectionResult.coffee +71 -0
  99. data/client/lanes/models/query/Result.coffee +9 -0
  100. data/client/lanes/react/Component.coffee +7 -3
  101. data/client/lanes/react/PubSub.coffee +7 -7
  102. data/client/lanes/react/Root.cjsx +1 -4
  103. data/client/lanes/react/Screen.coffee +1 -0
  104. data/client/lanes/react/TypeValidators.coffee +3 -3
  105. data/client/lanes/react/Viewport.coffee +41 -7
  106. data/client/lanes/react/index.js +0 -1
  107. data/client/lanes/react/mixins/Access.coffee +4 -1
  108. data/client/lanes/react/mixins/Data.coffee +40 -25
  109. data/client/lanes/react/mixins/FieldErrors.coffee +27 -0
  110. data/client/lanes/react/mixins/RelayEditingState.coffee +4 -0
  111. data/client/lanes/react/mixins/Screen.coffee +14 -0
  112. data/client/lanes/react/mixins/Viewport.coffee +9 -3
  113. data/client/lanes/screens/ChangeListener.coffee +3 -3
  114. data/client/lanes/screens/Commands.coffee +14 -7
  115. data/client/lanes/screens/CommonComponents.cjsx +20 -0
  116. data/client/lanes/screens/Definitions.coffee +64 -20
  117. data/client/lanes/screens/SystemSettings.cjsx +56 -0
  118. data/client/lanes/screens/UserPreferences.cjsx +38 -0
  119. data/client/lanes/screens/index.js +3 -0
  120. data/client/lanes/screens/styles.scss +2 -1
  121. data/client/lanes/styles/fonts.scss +1 -0
  122. data/client/lanes/styles/global.scss +2 -1
  123. data/client/lanes/styles/global/flexbox.scss +16 -0
  124. data/client/lanes/styles/global/styles.scss +1 -0
  125. data/client/lanes/styles/mixins/_dropdown.scss +21 -0
  126. data/client/lanes/styles/mixins/_flexbox.scss +394 -0
  127. data/client/lanes/styles/mixins/all.scss +2 -0
  128. data/client/lanes/styles/variables.scss +28 -0
  129. data/client/lanes/testing/BeforeEach.coffee +15 -14
  130. data/client/lanes/testing/Helpers.coffee +14 -5
  131. data/client/lanes/testing/TestObjects.coffee +10 -2
  132. data/client/lanes/testing/index.js +1 -0
  133. data/client/lanes/testing/jasmine-react.js +125 -0
  134. data/client/lanes/vendor/base.js +56049 -74987
  135. data/client/lanes/vendor/calendar.js +17301 -0
  136. data/client/lanes/vendor/calendar.scss +303 -0
  137. data/client/lanes/vendor/commons.js +14990 -15847
  138. data/client/lanes/vendor/development.js +4912 -1952
  139. data/client/lanes/vendor/grid.js +14246 -5551
  140. data/client/lanes/vendor/grid.scss +876 -335
  141. data/client/lanes/vendor/index.js +1 -0
  142. data/client/lanes/vendor/message-bus-ajax.js +44 -0
  143. data/client/lanes/vendor/message-bus.js +414 -0
  144. data/client/lanes/vendor/rw-widgets.eot +0 -0
  145. data/client/lanes/vendor/rw-widgets.svg +18 -0
  146. data/client/lanes/vendor/rw-widgets.ttf +0 -0
  147. data/client/lanes/vendor/rw-widgets.woff +0 -0
  148. data/client/lanes/vendor/toggle.js +345 -0
  149. data/client/lanes/vendor/toggle.scss +138 -0
  150. data/client/lanes/vendor/widgets.js +21245 -6839
  151. data/client/lanes/vendor/widgets.scss +83 -67
  152. data/client/lanes/workspace/Layout.cjsx +18 -8
  153. data/client/lanes/workspace/Modal.cjsx +47 -0
  154. data/client/lanes/workspace/Navbar.cjsx +16 -2
  155. data/client/lanes/workspace/ScreenView.cjsx +10 -3
  156. data/client/lanes/workspace/ScreensMenu.cjsx +23 -7
  157. data/client/lanes/workspace/Tabs.cjsx +55 -0
  158. data/client/lanes/workspace/UIState.coffee +7 -8
  159. data/client/lanes/workspace/index.js +2 -1
  160. data/client/lanes/workspace/mixin.coffee +11 -0
  161. data/client/lanes/workspace/mixins/UIState.coffee +8 -0
  162. data/client/lanes/workspace/mixins/index.js +3 -0
  163. data/client/lanes/workspace/styles.scss +2 -1
  164. data/client/lanes/workspace/styles/header.scss +23 -1
  165. data/client/lanes/workspace/styles/layout.scss +26 -24
  166. data/client/lanes/workspace/styles/screens.scss +0 -4
  167. data/client/lanes/workspace/styles/tabs.scss +3 -10
  168. data/config/routes.rb +10 -4
  169. data/config/screens.rb +25 -0
  170. data/db/migrate/01_create_system_settings.rb +10 -0
  171. data/docs/todo-example-part-1.md +18 -20
  172. data/lanes.gemspec +15 -6
  173. data/lib/lanes.rb +4 -2
  174. data/lib/lanes/access/config/routes.rb +5 -3
  175. data/lib/lanes/access/config/screens.rb +1 -0
  176. data/lib/lanes/access/db/migrate/20140615031600_create_lanes_users.rb +1 -1
  177. data/lib/lanes/access/user.rb +1 -1
  178. data/lib/lanes/api.rb +2 -1
  179. data/lib/lanes/api/controller.rb +32 -71
  180. data/lib/lanes/api/default_routes.rb +10 -8
  181. data/lib/lanes/api/formatted_reply.rb +53 -0
  182. data/lib/lanes/api/handlers/file.rb +26 -0
  183. data/lib/lanes/api/helper_methods.rb +29 -5
  184. data/lib/lanes/api/javascript_processor.rb +36 -17
  185. data/lib/lanes/api/pub_sub.rb +6 -9
  186. data/lib/lanes/api/request_wrapper.rb +1 -2
  187. data/lib/lanes/api/root.rb +11 -43
  188. data/lib/lanes/api/routing.rb +63 -0
  189. data/lib/lanes/api/sprockets_extension.rb +15 -7
  190. data/lib/lanes/api/updates.rb +1 -2
  191. data/lib/lanes/command.rb +0 -1
  192. data/lib/lanes/command/app.rb +6 -5
  193. data/lib/lanes/command/console.rb +1 -0
  194. data/lib/lanes/command/generate.rb +3 -0
  195. data/lib/lanes/command/generate_migration.rb +33 -0
  196. data/lib/lanes/command/generate_model.rb +4 -26
  197. data/lib/lanes/command/migration_support.rb +29 -0
  198. data/lib/lanes/command/update_model.rb +14 -5
  199. data/lib/lanes/concerns/all.rb +2 -0
  200. data/lib/lanes/concerns/api_path.rb +4 -2
  201. data/lib/lanes/concerns/association_extensions.rb +1 -1
  202. data/lib/lanes/concerns/attr_accessor_with_default.rb +3 -1
  203. data/lib/lanes/concerns/code_identifier.rb +1 -1
  204. data/lib/lanes/concerns/image_uploader.rb +42 -0
  205. data/lib/lanes/concerns/pub_sub.rb +0 -1
  206. data/lib/lanes/concerns/queries.rb +2 -2
  207. data/lib/lanes/concerns/set_attribute_data.rb +4 -13
  208. data/lib/lanes/concerns/sorting_expressions.rb +34 -0
  209. data/lib/lanes/configuration.rb +48 -9
  210. data/lib/lanes/extension.rb +16 -7
  211. data/lib/lanes/extension/definition.rb +8 -2
  212. data/lib/lanes/job.rb +78 -0
  213. data/lib/lanes/job/failure_logger.rb +33 -0
  214. data/lib/lanes/model.rb +4 -0
  215. data/lib/lanes/rake_tasks.rb +6 -0
  216. data/lib/lanes/redis.rb +13 -0
  217. data/lib/lanes/screen.rb +34 -18
  218. data/lib/lanes/system_settings.rb +66 -0
  219. data/lib/lanes/version.rb +1 -1
  220. data/lib/lanes/workspace/extension.rb +1 -1
  221. data/npm-build/base.js +10 -3
  222. data/npm-build/calendar.js +6 -0
  223. data/npm-build/development.js +4 -5
  224. data/npm-build/grid.js +3 -5
  225. data/npm-build/package.json +40 -29
  226. data/npm-build/react-toggle.js +5 -0
  227. data/npm-build/react-widgets.js +6 -0
  228. data/npm-build/update-dayz +14 -0
  229. data/npm-build/webpack.config.js +5 -2
  230. data/spec/command-reference-files/initial/Gemfile +1 -1
  231. data/spec/command-reference-files/initial/config/routes.rb +2 -0
  232. data/spec/command-reference-files/initial/lib/appy-app.rb +4 -0
  233. data/spec/command-reference-files/initial/lib/appy-app/extension.rb +2 -0
  234. data/spec/command-reference-files/initial/spec/server/{spec_helpers.rb → spec_helper.rb} +0 -0
  235. data/spec/command-reference-files/model/config/routes.rb +2 -0
  236. data/spec/command-reference-files/model/spec/server/test_test_spec.rb +1 -1
  237. data/spec/command-reference-files/screen/client/appy-app/screens/ready-set-go/ReadySetGo.cjsx +6 -4
  238. data/spec/command-reference-files/screen/client/appy-app/screens/ready-set-go/index.scss +4 -3
  239. data/spec/command-reference-files/screen/config/screens.rb +4 -2
  240. data/spec/command-reference-files/screen/spec/appy-app/screens/ready-set-go/ReadySetGoSpec.coffee +1 -1
  241. data/spec/fixtures/system_settings.yml +1 -0
  242. data/spec/lanes/components/grid/GridSpec.coffee +56 -31
  243. data/spec/lanes/components/grid/RowEditorSpec.coffee +96 -0
  244. data/spec/lanes/components/select-field/SelectFieldSpec.coffee +99 -0
  245. data/spec/lanes/components/shared/NetworkActivityOverlaySpec.coffee +34 -0
  246. data/spec/lanes/models/AssociationMapSpec.coffee +36 -2
  247. data/spec/lanes/models/AssociationProxySpec.coffee +77 -0
  248. data/spec/lanes/models/BaseSpec.coffee +37 -4
  249. data/spec/lanes/models/CollectionSpec.coffee +11 -17
  250. data/spec/lanes/models/PubSubSpec.coffee +1 -1
  251. data/spec/lanes/models/ServerCacheSpec.coffee +65 -0
  252. data/spec/server/api/coffeescript_processor_spec.rb +1 -1
  253. data/spec/server/concerns/pub_sub_spec.rb +9 -10
  254. data/spec/server/concerns/sorting_expressions_spec.rb +34 -0
  255. data/spec/server/configuration_spec.rb +3 -3
  256. data/spec/server/job_spec.rb +54 -0
  257. data/spec/server/spec_helper.rb +0 -5
  258. data/spec/server/system_settings_spec.rb +23 -0
  259. data/templates/client/screens/Screen.cjsx +6 -4
  260. data/templates/client/screens/styles.scss +4 -3
  261. data/templates/config/routes.rb +2 -0
  262. data/templates/config/screen.rb +4 -2
  263. data/templates/lib/namespace.rb +4 -0
  264. data/templates/lib/namespace/extension.rb +2 -0
  265. data/templates/spec/client/Screen.coffee +1 -1
  266. data/templates/spec/server/model_spec.rb +1 -1
  267. data/templates/spec/server/{spec_helpers.rb → spec_helper.rb} +0 -0
  268. data/views/lanes_root_view.erb +70 -0
  269. data/views/specs.erb +2 -2
  270. metadata +207 -68
  271. data/client/images/lanes/dataTables/Sorting icons.psd +0 -0
  272. data/client/images/lanes/dataTables/back_disabled.png +0 -0
  273. data/client/images/lanes/dataTables/back_enabled.png +0 -0
  274. data/client/images/lanes/dataTables/back_enabled_hover.png +0 -0
  275. data/client/images/lanes/dataTables/favicon.ico +0 -0
  276. data/client/images/lanes/dataTables/forward_disabled.png +0 -0
  277. data/client/images/lanes/dataTables/forward_enabled.png +0 -0
  278. data/client/images/lanes/dataTables/forward_enabled_hover.png +0 -0
  279. data/client/images/lanes/dataTables/loading-background.png +0 -0
  280. data/client/images/lanes/dataTables/sort_asc.png +0 -0
  281. data/client/images/lanes/dataTables/sort_asc_disabled.png +0 -0
  282. data/client/images/lanes/dataTables/sort_both.png +0 -0
  283. data/client/images/lanes/dataTables/sort_desc.png +0 -0
  284. data/client/images/lanes/dataTables/sort_desc_disabled.png +0 -0
  285. data/client/lanes/components/shared/Resize.cjsx +0 -152
  286. data/client/lanes/components/shared/TextArea.cjsx +0 -19
  287. data/client/lanes/components/shared/TextField.cjsx +0 -25
  288. data/client/lanes/models/Bootstrap.coffee +0 -5
  289. data/client/lanes/models/QueryResults.coffee +0 -93
  290. data/client/lanes/react/FormBindings.coffee +0 -103
  291. data/client/lanes/react/Router.cjsx +0 -18
  292. data/client/lanes/styles/dataTables.scss +0 -4
  293. data/client/lanes/styles/plugins/all.scss +0 -2
  294. data/client/lanes/styles/plugins/resize-sensor.scss +0 -24
  295. data/client/lanes/vendor/jquery-2.js +0 -9190
  296. data/client/lanes/vendor/jquery.tap.js +0 -401
  297. data/client/lanes/vendor/magicsuggest.js +0 -1565
  298. data/client/lanes/vendor/message-bus.coffee +0 -264
  299. data/client/lanes/workspace/ActiveScreenSwitcher.cjsx +0 -38
  300. data/client/lanes/workspace/styles/toolbar.scss +0 -4
  301. data/lib/lanes/api/eco.js +0 -516
  302. data/lib/lanes/api/sprockets_compressor.rb +0 -39
  303. data/spec/command-reference-files/model/lib/appy-app.rb +0 -11
  304. data/views/index.erb +0 -19
Binary file
@@ -0,0 +1,18 @@
1
+ <?xml version="1.0" standalone="no"?>
2
+ <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
3
+ <svg xmlns="http://www.w3.org/2000/svg">
4
+ <metadata>Copyright (C) 2015 by original authors @ fontello.com</metadata>
5
+ <defs>
6
+ <font id="rw-widgets" horiz-adv-x="1000" >
7
+ <font-face font-family="rw-widgets" font-weight="400" font-stretch="normal" units-per-em="1000" ascent="850" descent="-150" />
8
+ <missing-glyph horiz-adv-x="1000" />
9
+ <glyph glyph-name="up-dir" unicode="&#xe800;" d="m571 171q0-14-10-25t-25-10h-500q-15 0-25 10t-11 25 11 26l250 250q10 10 25 10t25-10l250-250q10-11 10-26z" horiz-adv-x="571.4" />
10
+ <glyph glyph-name="left-dir" unicode="&#xe801;" d="m357 600v-500q0-14-10-25t-26-11-25 11l-250 250q-10 11-10 25t10 25l250 250q11 11 25 11t26-11 10-25z" horiz-adv-x="357.1" />
11
+ <glyph glyph-name="right-dir" unicode="&#xe802;" d="m321 350q0-14-10-25l-250-250q-11-11-25-11t-25 11-11 25v500q0 15 11 25t25 11 25-11l250-250q10-10 10-25z" horiz-adv-x="357.1" />
12
+ <glyph glyph-name="down-dir" unicode="&#xe803;" d="m571 457q0-14-10-25l-250-250q-11-11-25-11t-25 11l-250 250q-11 11-11 25t11 25 25 11h500q14 0 25-11t10-25z" horiz-adv-x="571.4" />
13
+ <glyph glyph-name="calendar" unicode="&#xe804;" d="m71-79h161v161h-161v-161z m197 0h178v161h-178v-161z m-197 197h161v178h-161v-178z m197 0h178v178h-178v-178z m-197 214h161v161h-161v-161z m411-411h179v161h-179v-161z m-214 411h178v161h-178v-161z m428-411h161v161h-161v-161z m-214 197h179v178h-179v-178z m-196 482v161q0 7-6 12t-12 6h-36q-7 0-12-6t-6-12v-161q0-7 6-13t12-5h36q7 0 12 5t6 13z m410-482h161v178h-161v-178z m-214 214h179v161h-179v-161z m214 0h161v161h-161v-161z m18 268v161q0 7-5 12t-13 6h-35q-8 0-13-6t-5-12v-161q0-7 5-13t13-5h35q8 0 13 5t5 13z m215 36v-715q0-29-22-50t-50-21h-786q-29 0-50 21t-21 50v715q0 29 21 50t50 21h72v54q0 36 26 63t63 26h36q37 0 63-26t26-63v-54h214v54q0 36 27 63t63 26h35q37 0 63-26t27-63v-54h71q29 0 50-21t22-50z" horiz-adv-x="928.6" />
14
+ <glyph glyph-name="clock" unicode="&#xe805;" d="m500 546v-250q0-7-5-12t-13-5h-178q-8 0-13 5t-5 12v36q0 8 5 13t13 5h125v196q0 8 5 13t12 5h36q8 0 13-5t5-13z m232-196q0 83-41 152t-110 111-152 41-153-41-110-111-41-152 41-152 110-111 153-41 152 41 110 111 41 152z m125 0q0-117-57-215t-156-156-215-58-216 58-155 156-58 215 58 215 155 156 216 58 215-58 156-156 57-215z" horiz-adv-x="857.1" />
15
+ <glyph glyph-name="search" unicode="&#xe806;" d="m643 386q0 103-74 176t-176 74-177-74-73-176 73-177 177-73 176 73 74 177z m286-465q0-29-22-50t-50-21q-30 0-50 21l-191 191q-100-69-223-69-80 0-153 31t-125 84-84 125-31 153 31 152 84 126 125 84 153 31 152-31 126-84 84-126 31-152q0-123-69-223l191-191q21-21 21-51z" horiz-adv-x="928.6" />
16
+ </font>
17
+ </defs>
18
+ </svg>
Binary file
Binary file
@@ -0,0 +1,345 @@
1
+ webpackJsonp([3],{
2
+
3
+ /***/ 0:
4
+ /***/ function(module, exports, __webpack_require__) {
5
+
6
+ /* WEBPACK VAR INJECTION */(function(global) {var Lanes = ( global.Lanes || (global.Lanes = {}) );
7
+ Lanes.Vendor = ( Lanes.Vendor || {} );
8
+
9
+ Lanes.Vendor.ReactToggle = __webpack_require__(1474)
10
+ __webpack_require__(1481);
11
+
12
+ /* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }())))
13
+
14
+ /***/ },
15
+
16
+ /***/ 67:
17
+ /***/ function(module, exports, __webpack_require__) {
18
+
19
+ 'use strict';
20
+
21
+ module.exports = __webpack_require__(68);
22
+
23
+
24
+ /***/ },
25
+
26
+ /***/ 1474:
27
+ /***/ function(module, exports, __webpack_require__) {
28
+
29
+ "use strict";
30
+
31
+ var _interopRequire = function (obj) { return obj && obj.__esModule ? obj["default"] : obj; };
32
+
33
+ var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
34
+
35
+ var React = _interopRequire(__webpack_require__(67));
36
+
37
+ var classNames = _interopRequire(__webpack_require__(1475));
38
+
39
+ var Check = _interopRequire(__webpack_require__(1476));
40
+
41
+ var X = _interopRequire(__webpack_require__(1477));
42
+
43
+ var PureRenderMixin = _interopRequire(__webpack_require__(1478));
44
+
45
+ module.exports = React.createClass({
46
+ mixins: [PureRenderMixin],
47
+
48
+ displayName: "Toggle",
49
+
50
+ propTypes: {
51
+ checked: React.PropTypes.bool,
52
+ defaultChecked: React.PropTypes.bool,
53
+ onChange: React.PropTypes.func,
54
+ name: React.PropTypes.string,
55
+ value: React.PropTypes.string,
56
+ id: React.PropTypes.string,
57
+ "aria-labelledby": React.PropTypes.string,
58
+ "aria-label": React.PropTypes.string
59
+ },
60
+
61
+ getInitialState: function getInitialState() {
62
+ var checked = false;
63
+ if ("checked" in this.props) {
64
+ checked = this.props.checked;
65
+ } else if ("defaultChecked" in this.props) {
66
+ checked = this.props.defaultChecked;
67
+ }
68
+ return {
69
+ checked: !!checked,
70
+ hasFocus: false
71
+ };
72
+ },
73
+
74
+ componentWillReceiveProps: function componentWillReceiveProps(nextProps) {
75
+ if ("checked" in nextProps) {
76
+ this.setState({ checked: !!nextProps.checked });
77
+ }
78
+ },
79
+
80
+ handleClick: function handleClick(event) {
81
+ var checkbox = this.refs.input;
82
+ if (event.target !== checkbox) {
83
+ event.preventDefault();
84
+ checkbox.focus();
85
+ checkbox.click();
86
+ return;
87
+ }
88
+
89
+ if (!("checked" in this.props)) {
90
+ this.setState({ checked: checkbox.checked });
91
+ }
92
+ },
93
+
94
+ handleFocus: function handleFocus() {
95
+ this.setState({ hasFocus: true });
96
+ },
97
+
98
+ handleBlur: function handleBlur() {
99
+ this.setState({ hasFocus: false });
100
+ },
101
+
102
+ render: function render() {
103
+ var classes = classNames("react-toggle", {
104
+ "react-toggle--checked": this.state.checked,
105
+ "react-toggle--focus": this.state.hasFocus,
106
+ "react-toggle--disabled": this.props.disabled
107
+ });
108
+
109
+ return React.createElement(
110
+ "div",
111
+ { className: classes, onClick: this.handleClick },
112
+ React.createElement(
113
+ "div",
114
+ { className: "react-toggle-track" },
115
+ React.createElement(
116
+ "div",
117
+ { className: "react-toggle-track-check" },
118
+ React.createElement(Check, null)
119
+ ),
120
+ React.createElement(
121
+ "div",
122
+ { className: "react-toggle-track-x" },
123
+ React.createElement(X, null)
124
+ )
125
+ ),
126
+ React.createElement("div", { className: "react-toggle-thumb" }),
127
+ React.createElement("input", _extends({
128
+ ref: "input",
129
+ onFocus: this.handleFocus,
130
+ onBlur: this.handleBlur,
131
+ className: "react-toggle-screenreader-only",
132
+ type: "checkbox"
133
+ }, this.props))
134
+ );
135
+ }
136
+ });
137
+
138
+
139
+ /***/ },
140
+
141
+ /***/ 1475:
142
+ /***/ function(module, exports, __webpack_require__) {
143
+
144
+ var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!
145
+ Copyright (c) 2015 Jed Watson.
146
+ Licensed under the MIT License (MIT), see
147
+ http://jedwatson.github.io/classnames
148
+ */
149
+
150
+ function classNames() {
151
+ var classes = '';
152
+ var arg;
153
+
154
+ for (var i = 0; i < arguments.length; i++) {
155
+ arg = arguments[i];
156
+ if (!arg) {
157
+ continue;
158
+ }
159
+
160
+ if ('string' === typeof arg || 'number' === typeof arg) {
161
+ classes += ' ' + arg;
162
+ } else if (Object.prototype.toString.call(arg) === '[object Array]') {
163
+ classes += ' ' + classNames.apply(null, arg);
164
+ } else if ('object' === typeof arg) {
165
+ for (var key in arg) {
166
+ if (!arg.hasOwnProperty(key) || !arg[key]) {
167
+ continue;
168
+ }
169
+ classes += ' ' + key;
170
+ }
171
+ }
172
+ }
173
+ return classes.substr(1);
174
+ }
175
+
176
+ // safely export classNames for node / browserify
177
+ if (typeof module !== 'undefined' && module.exports) {
178
+ module.exports = classNames;
179
+ }
180
+
181
+ // safely export classNames for RequireJS
182
+ if (true) {
183
+ !(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = function() {
184
+ return classNames;
185
+ }.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
186
+ }
187
+
188
+
189
+ /***/ },
190
+
191
+ /***/ 1476:
192
+ /***/ function(module, exports, __webpack_require__) {
193
+
194
+ "use strict";
195
+
196
+ var _interopRequire = function (obj) { return obj && obj.__esModule ? obj["default"] : obj; };
197
+
198
+ var React = _interopRequire(__webpack_require__(67));
199
+
200
+ module.exports = React.createClass({
201
+ displayName: "check.es6",
202
+
203
+ render: function render() {
204
+ return React.createElement(
205
+ "svg",
206
+ { width: "14", height: "11", viewBox: "0 0 14 11", xmlns: "http://www.w3.org/2000/svg" },
207
+ React.createElement(
208
+ "title",
209
+ null,
210
+ "switch-check"
211
+ ),
212
+ React.createElement("path", { d: "M11.264 0L5.26 6.004 2.103 2.847 0 4.95l5.26 5.26 8.108-8.107L11.264 0", fill: "#fff", "fill-rule": "evenodd" })
213
+ );
214
+ }
215
+ });
216
+
217
+
218
+ /***/ },
219
+
220
+ /***/ 1477:
221
+ /***/ function(module, exports, __webpack_require__) {
222
+
223
+ "use strict";
224
+
225
+ var _interopRequire = function (obj) { return obj && obj.__esModule ? obj["default"] : obj; };
226
+
227
+ var React = _interopRequire(__webpack_require__(67));
228
+
229
+ module.exports = React.createClass({
230
+ displayName: "x.es6",
231
+
232
+ render: function render() {
233
+ return React.createElement(
234
+ "svg",
235
+ { width: "10", height: "10", viewBox: "0 0 10 10", xmlns: "http://www.w3.org/2000/svg" },
236
+ React.createElement(
237
+ "title",
238
+ null,
239
+ "switch-x"
240
+ ),
241
+ React.createElement("path", { d: "M9.9 2.12L7.78 0 4.95 2.828 2.12 0 0 2.12l2.83 2.83L0 7.776 2.123 9.9 4.95 7.07 7.78 9.9 9.9 7.776 7.072 4.95 9.9 2.12", fill: "#fff", "fill-rule": "evenodd" })
242
+ );
243
+ }
244
+ });
245
+
246
+
247
+ /***/ },
248
+
249
+ /***/ 1478:
250
+ /***/ function(module, exports, __webpack_require__) {
251
+
252
+ module.exports = __webpack_require__(1479);
253
+
254
+ /***/ },
255
+
256
+ /***/ 1479:
257
+ /***/ function(module, exports, __webpack_require__) {
258
+
259
+ /**
260
+ * Copyright 2013-2015, Facebook, Inc.
261
+ * All rights reserved.
262
+ *
263
+ * This source code is licensed under the BSD-style license found in the
264
+ * LICENSE file in the root directory of this source tree. An additional grant
265
+ * of patent rights can be found in the PATENTS file in the same directory.
266
+ *
267
+ * @providesModule ReactComponentWithPureRenderMixin
268
+ */
269
+
270
+ 'use strict';
271
+
272
+ var shallowCompare = __webpack_require__(1480);
273
+
274
+ /**
275
+ * If your React component's render function is "pure", e.g. it will render the
276
+ * same result given the same props and state, provide this Mixin for a
277
+ * considerable performance boost.
278
+ *
279
+ * Most React components have pure render functions.
280
+ *
281
+ * Example:
282
+ *
283
+ * var ReactComponentWithPureRenderMixin =
284
+ * require('ReactComponentWithPureRenderMixin');
285
+ * React.createClass({
286
+ * mixins: [ReactComponentWithPureRenderMixin],
287
+ *
288
+ * render: function() {
289
+ * return <div className={this.props.className}>foo</div>;
290
+ * }
291
+ * });
292
+ *
293
+ * Note: This only checks shallow equality for props and state. If these contain
294
+ * complex data structures this mixin may have false-negatives for deeper
295
+ * differences. Only mixin to components which have simple props and state, or
296
+ * use `forceUpdate()` when you know deep data structures have changed.
297
+ */
298
+ var ReactComponentWithPureRenderMixin = {
299
+ shouldComponentUpdate: function (nextProps, nextState) {
300
+ return shallowCompare(this, nextProps, nextState);
301
+ }
302
+ };
303
+
304
+ module.exports = ReactComponentWithPureRenderMixin;
305
+
306
+ /***/ },
307
+
308
+ /***/ 1480:
309
+ /***/ function(module, exports, __webpack_require__) {
310
+
311
+ /**
312
+ * Copyright 2013-2015, Facebook, Inc.
313
+ * All rights reserved.
314
+ *
315
+ * This source code is licensed under the BSD-style license found in the
316
+ * LICENSE file in the root directory of this source tree. An additional grant
317
+ * of patent rights can be found in the PATENTS file in the same directory.
318
+ *
319
+ * @providesModule shallowCompare
320
+ */
321
+
322
+ 'use strict';
323
+
324
+ var shallowEqual = __webpack_require__(183);
325
+
326
+ /**
327
+ * Does a shallow comparison for props and state.
328
+ * See ReactComponentWithPureRenderMixin
329
+ */
330
+ function shallowCompare(instance, nextProps, nextState) {
331
+ return !shallowEqual(instance.props, nextProps) || !shallowEqual(instance.state, nextState);
332
+ }
333
+
334
+ module.exports = shallowCompare;
335
+
336
+ /***/ },
337
+
338
+ /***/ 1481:
339
+ /***/ function(module, exports) {
340
+
341
+ // removed by extract-text-webpack-plugin
342
+
343
+ /***/ }
344
+
345
+ });
@@ -0,0 +1,138 @@
1
+ .react-toggle {
2
+ display: inline-block;
3
+ position: relative;
4
+ cursor: pointer;
5
+ background-color: transparent;
6
+ border: 0;
7
+ padding: 0;
8
+
9
+ -webkit-touch-callout: none;
10
+ -webkit-user-select: none;
11
+ -khtml-user-select: none;
12
+ -moz-user-select: none;
13
+ -ms-user-select: none;
14
+ user-select: none;
15
+
16
+ -webkit-tap-highlight-color: rgba(0,0,0,0);
17
+ -webkit-tap-highlight-color: transparent;
18
+ }
19
+
20
+ .react-toggle-screenreader-only {
21
+ border: 0;
22
+ clip: rect(0 0 0 0);
23
+ height: 1px;
24
+ margin: -1px;
25
+ overflow: hidden;
26
+ padding: 0;
27
+ position: absolute;
28
+ width: 1px;
29
+ }
30
+
31
+ .react-toggle--disabled {
32
+ opacity: 0.5;
33
+ -webkit-transition: opacity 0.25s;
34
+ transition: opacity 0.25s;
35
+ }
36
+
37
+ .react-toggle-track {
38
+ width: 50px;
39
+ height: 24px;
40
+ padding: 0;
41
+ border-radius: 30px;
42
+ background-color: #4D4D4D;
43
+ -webkit-transition: all 0.2s ease;
44
+ -moz-transition: all 0.2s ease;
45
+ transition: all 0.2s ease;
46
+ }
47
+
48
+ .react-toggle:hover .react-toggle-track {
49
+ background-color: #000000;
50
+ }
51
+
52
+ .react-toggle--checked .react-toggle-track {
53
+ background-color: #19AB27;
54
+ }
55
+
56
+ .react-toggle.react-toggle--checked:hover .react-toggle-track {
57
+ background-color: #128D15;
58
+ }
59
+
60
+ .react-toggle-track-check {
61
+ position: absolute;
62
+ width: 14px;
63
+ height: 10px;
64
+ top: 0px;
65
+ bottom: 0px;
66
+ margin-top: auto;
67
+ margin-bottom: auto;
68
+ line-height: 0;
69
+ left: 8px;
70
+ opacity: 0;
71
+ -webkit-transition: opacity 0.25s ease;
72
+ -moz-transition: opacity 0.25s ease;
73
+ transition: opacity 0.25s ease;
74
+ }
75
+
76
+ .react-toggle--checked .react-toggle-track-check {
77
+ opacity: 1;
78
+ -webkit-transition: opacity 0.25s ease;
79
+ -moz-transition: opacity 0.25s ease;
80
+ transition: opacity 0.25s ease;
81
+ }
82
+
83
+ .react-toggle-track-x {
84
+ position: absolute;
85
+ width: 10px;
86
+ height: 10px;
87
+ top: 0px;
88
+ bottom: 0px;
89
+ margin-top: auto;
90
+ margin-bottom: auto;
91
+ line-height: 0;
92
+ right: 10px;
93
+ opacity: 1;
94
+ -webkit-transition: opacity 0.25s ease;
95
+ -moz-transition: opacity 0.25s ease;
96
+ transition: opacity 0.25s ease;
97
+ }
98
+
99
+ .react-toggle--checked .react-toggle-track-x {
100
+ opacity: 0;
101
+ }
102
+
103
+ .react-toggle-thumb {
104
+ transition: all 0.5s cubic-bezier(0.23, 1, 0.32, 1) 0ms;
105
+ position: absolute;
106
+ top: 1px;
107
+ left: 1px;
108
+ width: 22px;
109
+ height: 22px;
110
+ border: 1px solid #4D4D4D;
111
+ border-radius: 50%;
112
+ background-color: #FAFAFA;
113
+
114
+ -webkit-box-sizing: border-box;
115
+ -moz-box-sizing: border-box;
116
+ box-sizing: border-box;
117
+
118
+ -webkit-transition: all 0.25s ease;
119
+ -moz-transition: all 0.25s ease;
120
+ transition: all 0.25s ease;
121
+ }
122
+
123
+ .react-toggle--checked .react-toggle-thumb {
124
+ left: 27px;
125
+ border-color: #19AB27;
126
+ }
127
+
128
+ .react-toggle--focus .react-toggle-thumb {
129
+ -webkit-box-shadow: 0px 0px 3px 2px #0099E0;
130
+ -moz-box-shadow: 0px 0px 3px 2px #0099E0;
131
+ box-shadow: 0px 0px 2px 3px #0099E0;
132
+ }
133
+
134
+ .react-toggle:active .react-toggle-thumb {
135
+ -webkit-box-shadow: 0px 0px 5px 5px #0099E0;
136
+ -moz-box-shadow: 0px 0px 5px 5px #0099E0;
137
+ box-shadow: 0px 0px 5px 5px #0099E0;
138
+ }