upjs-rails 0.1.0 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +1 -1
- data/Gemfile +8 -0
- data/Gemfile.lock +42 -0
- data/{LICENSE.txt → LICENSE} +1 -1
- data/Rakefile +38 -0
- data/dist/up.css +70 -0
- data/dist/up.js +2552 -0
- data/dist/up.min.css +1 -0
- data/dist/up.min.js +1 -0
- data/doc/theme/Gruntfile.js +25 -0
- data/doc/theme/README.md +29 -0
- data/doc/theme/api/.keep +0 -0
- data/doc/theme/assets/css/external-small.png +0 -0
- data/doc/theme/assets/css/logo.png +0 -0
- data/doc/theme/assets/css/main.css +859 -0
- data/doc/theme/assets/css/main.less +897 -0
- data/doc/theme/assets/favicon.png +0 -0
- data/doc/theme/assets/img/bgscreen.png +0 -0
- data/doc/theme/assets/img/spinner.gif +0 -0
- data/doc/theme/assets/index.html +10 -0
- data/doc/theme/assets/js/api-filter.js +52 -0
- data/doc/theme/assets/js/api-list.js +251 -0
- data/doc/theme/assets/js/api-search.js +98 -0
- data/doc/theme/assets/js/apidocs.js +369 -0
- data/doc/theme/assets/js/yui-prettify.js +17 -0
- data/doc/theme/assets/vendor/prettify/CHANGES.html +130 -0
- data/doc/theme/assets/vendor/prettify/COPYING +202 -0
- data/doc/theme/assets/vendor/prettify/README.html +203 -0
- data/doc/theme/assets/vendor/prettify/prettify-min.css +1 -0
- data/doc/theme/assets/vendor/prettify/prettify-min.js +1 -0
- data/doc/theme/layouts/main.handlebars +54 -0
- data/doc/theme/layouts/xhr.handlebars +7 -0
- data/doc/theme/package.json +53 -0
- data/doc/theme/partials/attrs.handlebars +141 -0
- data/doc/theme/partials/classes.handlebars +210 -0
- data/doc/theme/partials/events.handlebars +145 -0
- data/doc/theme/partials/exampleurl.handlebars +8 -0
- data/doc/theme/partials/files.handlebars +7 -0
- data/doc/theme/partials/index.handlebars +18 -0
- data/doc/theme/partials/method.handlebars +201 -0
- data/doc/theme/partials/module.handlebars +92 -0
- data/doc/theme/partials/options.handlebars +23 -0
- data/doc/theme/partials/props.handlebars +128 -0
- data/doc/theme/partials/sidebar.handlebars +27 -0
- data/doc/theme/theme.json +4 -0
- data/doc/yuidoc-helpers.js +0 -0
- data/doc/yuidoc.json +15 -0
- data/lib/assets/javascripts/up/browser.js.coffee +11 -0
- data/lib/assets/javascripts/up/bus.js.coffee +37 -9
- data/lib/assets/javascripts/up/flow.js.coffee +131 -58
- data/lib/assets/javascripts/up/form.js.coffee +70 -35
- data/lib/assets/javascripts/up/history.js.coffee +31 -9
- data/lib/assets/javascripts/up/link.js.coffee +122 -27
- data/lib/assets/javascripts/up/magic.js.coffee +87 -21
- data/lib/assets/javascripts/up/marker.js.coffee +37 -0
- data/lib/assets/javascripts/up/modal.js.coffee +183 -42
- data/lib/assets/javascripts/up/motion.js.coffee +65 -43
- data/lib/assets/javascripts/up/navigation.js.coffee +29 -11
- data/lib/assets/javascripts/up/popup.js.coffee +104 -29
- data/lib/assets/javascripts/up/tooltip.js.coffee +93 -0
- data/lib/assets/javascripts/up/util.js.coffee +139 -14
- data/lib/assets/javascripts/up.js.coffee +19 -0
- data/lib/assets/stylesheets/up/close.css.sass +2 -0
- data/lib/assets/stylesheets/up/modal.css.sass +23 -26
- data/lib/assets/stylesheets/up/popup.css.sass +4 -0
- data/lib/assets/stylesheets/up/tooltip.css.sass +17 -0
- data/lib/assets/stylesheets/{up/index.css → up.css} +0 -0
- data/lib/upjs/rails/version.rb +1 -1
- data/spec_app/Bowerfile +3 -0
- data/spec_app/Gemfile +6 -0
- data/spec_app/Gemfile.lock +11 -1
- data/spec_app/app/assets/javascripts/application.js +3 -0
- data/spec_app/config/initializers/bower_rails.rb +16 -0
- data/spec_app/config/routes.rb +1 -0
- data/spec_app/spec/javascripts/helpers/index.js.coffee +1 -0
- data/spec_app/spec/javascripts/helpers/reset_path.js.coffee +7 -0
- data/spec_app/spec/javascripts/helpers/reset_up.js.coffee +4 -0
- data/spec_app/spec/javascripts/support/jasmine.yml +50 -0
- data/spec_app/spec/javascripts/up/flow_spec.js.coffee +75 -0
- data/spec_app/spec/javascripts/up/marker_spec.js.coffee +14 -0
- data/spec_app/spec/javascripts/up/navigation_spec.js.coffee +27 -0
- data/spec_app/spec/javascripts/up/util_spec.js.coffee +27 -0
- data/spec_app/vendor/assets/.bowerrc +3 -0
- data/spec_app/vendor/assets/bower.json +8 -0
- data/spec_app/vendor/assets/bower_components/jasmine/.bower.json +14 -0
- data/spec_app/vendor/assets/bower_components/jasmine/.gitignore +24 -0
- data/spec_app/vendor/assets/bower_components/jasmine/.gitmodules +3 -0
- data/spec_app/vendor/assets/bower_components/jasmine/.jshintrc +9 -0
- data/spec_app/vendor/assets/bower_components/jasmine/.npmignore +21 -0
- data/spec_app/vendor/assets/bower_components/jasmine/.rspec +1 -0
- data/spec_app/vendor/assets/bower_components/jasmine/.travis.yml +51 -0
- data/spec_app/vendor/assets/bower_components/jasmine/CONTRIBUTING.md +121 -0
- data/spec_app/vendor/assets/bower_components/jasmine/GOALS_2.0.md +64 -0
- data/spec_app/vendor/assets/bower_components/jasmine/Gemfile +12 -0
- data/spec_app/vendor/assets/bower_components/jasmine/Gruntfile.js +53 -0
- data/spec_app/vendor/assets/bower_components/jasmine/MANIFEST.in +5 -0
- data/spec_app/vendor/assets/bower_components/jasmine/MIT.LICENSE +20 -0
- data/spec_app/vendor/assets/bower_components/jasmine/README.md +64 -0
- data/spec_app/vendor/assets/bower_components/jasmine/RELEASE.md +63 -0
- data/spec_app/vendor/assets/bower_components/jasmine/Rakefile +18 -0
- data/spec_app/vendor/assets/bower_components/jasmine/dist/jasmine-standalone-1.0.0.zip +0 -0
- data/spec_app/vendor/assets/bower_components/jasmine/dist/jasmine-standalone-1.1.0.zip +0 -0
- data/spec_app/vendor/assets/bower_components/jasmine/dist/jasmine-standalone-1.2.0.zip +0 -0
- data/spec_app/vendor/assets/bower_components/jasmine/dist/jasmine-standalone-1.3.0.zip +0 -0
- data/spec_app/vendor/assets/bower_components/jasmine/dist/jasmine-standalone-1.3.1.zip +0 -0
- data/spec_app/vendor/assets/bower_components/jasmine/dist/jasmine-standalone-2.0.0.zip +0 -0
- data/spec_app/vendor/assets/bower_components/jasmine/dist/jasmine-standalone-2.0.1.zip +0 -0
- data/spec_app/vendor/assets/bower_components/jasmine/dist/jasmine-standalone-2.0.2.zip +0 -0
- data/spec_app/vendor/assets/bower_components/jasmine/dist/jasmine-standalone-2.0.3.zip +0 -0
- data/spec_app/vendor/assets/bower_components/jasmine/grunt/config/compass.js +10 -0
- data/spec_app/vendor/assets/bower_components/jasmine/grunt/config/compress.js +66 -0
- data/spec_app/vendor/assets/bower_components/jasmine/grunt/config/concat.js +61 -0
- data/spec_app/vendor/assets/bower_components/jasmine/grunt/config/jshint.js +11 -0
- data/spec_app/vendor/assets/bower_components/jasmine/grunt/tasks/build_standalone.js +31 -0
- data/spec_app/vendor/assets/bower_components/jasmine/grunt/tasks/version.js +14 -0
- data/spec_app/vendor/assets/bower_components/jasmine/grunt/templates/SpecRunner.html.jst +26 -0
- data/spec_app/vendor/assets/bower_components/jasmine/grunt/templates/licenseBanner.js.jst +22 -0
- data/spec_app/vendor/assets/bower_components/jasmine/grunt/templates/version.rb.jst +9 -0
- data/spec_app/vendor/assets/bower_components/jasmine/images/__init__.py +0 -0
- data/spec_app/vendor/assets/bower_components/jasmine/images/jasmine-horizontal.png +0 -0
- data/spec_app/vendor/assets/bower_components/jasmine/images/jasmine-horizontal.svg +102 -0
- data/spec_app/vendor/assets/bower_components/jasmine/images/jasmine_favicon.png +0 -0
- data/spec_app/vendor/assets/bower_components/jasmine/jasmine-core.gemspec +23 -0
- data/spec_app/vendor/assets/bower_components/jasmine/lib/console/console.js +166 -0
- data/spec_app/vendor/assets/bower_components/jasmine/lib/jasmine-core/__init__.py +1 -0
- data/spec_app/vendor/assets/bower_components/jasmine/lib/jasmine-core/boot/boot.js +120 -0
- data/spec_app/vendor/assets/bower_components/jasmine/lib/jasmine-core/boot/node_boot.js +19 -0
- data/spec_app/vendor/assets/bower_components/jasmine/lib/jasmine-core/boot.js +142 -0
- data/spec_app/vendor/assets/bower_components/jasmine/lib/jasmine-core/core.py +60 -0
- data/spec_app/vendor/assets/bower_components/jasmine/lib/jasmine-core/example/node_example/spec/PlayerSpec.js +60 -0
- data/spec_app/vendor/assets/bower_components/jasmine/lib/jasmine-core/example/node_example/spec/SpecHelper.js +15 -0
- data/spec_app/vendor/assets/bower_components/jasmine/lib/jasmine-core/example/node_example/src/Player.js +24 -0
- data/spec_app/vendor/assets/bower_components/jasmine/lib/jasmine-core/example/node_example/src/Song.js +9 -0
- data/spec_app/vendor/assets/bower_components/jasmine/lib/jasmine-core/example/spec/PlayerSpec.js +58 -0
- data/spec_app/vendor/assets/bower_components/jasmine/lib/jasmine-core/example/spec/SpecHelper.js +15 -0
- data/spec_app/vendor/assets/bower_components/jasmine/lib/jasmine-core/example/src/Player.js +22 -0
- data/spec_app/vendor/assets/bower_components/jasmine/lib/jasmine-core/example/src/Song.js +7 -0
- data/spec_app/vendor/assets/bower_components/jasmine/lib/jasmine-core/jasmine-html.js +390 -0
- data/spec_app/vendor/assets/bower_components/jasmine/lib/jasmine-core/jasmine.css +61 -0
- data/spec_app/vendor/assets/bower_components/jasmine/lib/jasmine-core/jasmine.js +2593 -0
- data/spec_app/vendor/assets/bower_components/jasmine/lib/jasmine-core/json2.js +478 -0
- data/spec_app/vendor/assets/bower_components/jasmine/lib/jasmine-core/node_boot.js +41 -0
- data/spec_app/vendor/assets/bower_components/jasmine/lib/jasmine-core/version.rb +9 -0
- data/spec_app/vendor/assets/bower_components/jasmine/lib/jasmine-core.js +39 -0
- data/spec_app/vendor/assets/bower_components/jasmine/lib/jasmine-core.rb +53 -0
- data/spec_app/vendor/assets/bower_components/jasmine/package.json +23 -0
- data/spec_app/vendor/assets/bower_components/jasmine/release_notes/2.0.1.md +70 -0
- data/spec_app/vendor/assets/bower_components/jasmine/release_notes/2.0.2.md +25 -0
- data/spec_app/vendor/assets/bower_components/jasmine/release_notes/20.md +179 -0
- data/spec_app/vendor/assets/bower_components/jasmine/requirements.txt +1 -0
- data/spec_app/vendor/assets/bower_components/jasmine/setup.py +47 -0
- data/spec_app/vendor/assets/bower_components/jasmine/spec/console/ConsoleReporterSpec.js +239 -0
- data/spec_app/vendor/assets/bower_components/jasmine/spec/core/AnySpec.js +46 -0
- data/spec_app/vendor/assets/bower_components/jasmine/spec/core/CallTrackerSpec.js +105 -0
- data/spec_app/vendor/assets/bower_components/jasmine/spec/core/ClockSpec.js +445 -0
- data/spec_app/vendor/assets/bower_components/jasmine/spec/core/DelayedFunctionSchedulerSpec.js +246 -0
- data/spec_app/vendor/assets/bower_components/jasmine/spec/core/EnvSpec.js +85 -0
- data/spec_app/vendor/assets/bower_components/jasmine/spec/core/ExceptionFormatterSpec.js +63 -0
- data/spec_app/vendor/assets/bower_components/jasmine/spec/core/ExceptionsSpec.js +68 -0
- data/spec_app/vendor/assets/bower_components/jasmine/spec/core/ExpectationResultSpec.js +61 -0
- data/spec_app/vendor/assets/bower_components/jasmine/spec/core/ExpectationSpec.js +427 -0
- data/spec_app/vendor/assets/bower_components/jasmine/spec/core/JsApiReporterSpec.js +214 -0
- data/spec_app/vendor/assets/bower_components/jasmine/spec/core/MockDateSpec.js +199 -0
- data/spec_app/vendor/assets/bower_components/jasmine/spec/core/ObjectContainingSpec.js +70 -0
- data/spec_app/vendor/assets/bower_components/jasmine/spec/core/PrettyPrintSpec.js +156 -0
- data/spec_app/vendor/assets/bower_components/jasmine/spec/core/QueueRunnerSpec.js +271 -0
- data/spec_app/vendor/assets/bower_components/jasmine/spec/core/ReportDispatcherSpec.js +40 -0
- data/spec_app/vendor/assets/bower_components/jasmine/spec/core/SpecSpec.js +260 -0
- data/spec_app/vendor/assets/bower_components/jasmine/spec/core/SpySpec.js +67 -0
- data/spec_app/vendor/assets/bower_components/jasmine/spec/core/SpyStrategySpec.js +111 -0
- data/spec_app/vendor/assets/bower_components/jasmine/spec/core/SuiteSpec.js +216 -0
- data/spec_app/vendor/assets/bower_components/jasmine/spec/core/TimerSpec.js +31 -0
- data/spec_app/vendor/assets/bower_components/jasmine/spec/core/UtilSpec.js +28 -0
- data/spec_app/vendor/assets/bower_components/jasmine/spec/core/integration/CustomMatchersSpec.js +149 -0
- data/spec_app/vendor/assets/bower_components/jasmine/spec/core/integration/EnvSpec.js +506 -0
- data/spec_app/vendor/assets/bower_components/jasmine/spec/core/integration/SpecRunningSpec.js +306 -0
- data/spec_app/vendor/assets/bower_components/jasmine/spec/core/matchers/matchersUtilSpec.js +239 -0
- data/spec_app/vendor/assets/bower_components/jasmine/spec/core/matchers/toBeCloseToSpec.js +51 -0
- data/spec_app/vendor/assets/bower_components/jasmine/spec/core/matchers/toBeDefinedSpec.js +18 -0
- data/spec_app/vendor/assets/bower_components/jasmine/spec/core/matchers/toBeFalsySpec.js +38 -0
- data/spec_app/vendor/assets/bower_components/jasmine/spec/core/matchers/toBeGreaterThanSpec.js +20 -0
- data/spec_app/vendor/assets/bower_components/jasmine/spec/core/matchers/toBeLessThanSpec.js +20 -0
- data/spec_app/vendor/assets/bower_components/jasmine/spec/core/matchers/toBeNaNSpec.js +37 -0
- data/spec_app/vendor/assets/bower_components/jasmine/spec/core/matchers/toBeNullSpec.js +17 -0
- data/spec_app/vendor/assets/bower_components/jasmine/spec/core/matchers/toBeSpec.js +17 -0
- data/spec_app/vendor/assets/bower_components/jasmine/spec/core/matchers/toBeTruthySpec.js +38 -0
- data/spec_app/vendor/assets/bower_components/jasmine/spec/core/matchers/toBeUndefinedSpec.js +18 -0
- data/spec_app/vendor/assets/bower_components/jasmine/spec/core/matchers/toContainSpec.js +26 -0
- data/spec_app/vendor/assets/bower_components/jasmine/spec/core/matchers/toEqualSpec.js +28 -0
- data/spec_app/vendor/assets/bower_components/jasmine/spec/core/matchers/toHaveBeenCalledSpec.js +47 -0
- data/spec_app/vendor/assets/bower_components/jasmine/spec/core/matchers/toHaveBeenCalledWithSpec.js +66 -0
- data/spec_app/vendor/assets/bower_components/jasmine/spec/core/matchers/toMatchSpec.js +34 -0
- data/spec_app/vendor/assets/bower_components/jasmine/spec/core/matchers/toThrowErrorSpec.js +280 -0
- data/spec_app/vendor/assets/bower_components/jasmine/spec/core/matchers/toThrowSpec.js +99 -0
- data/spec_app/vendor/assets/bower_components/jasmine/spec/helpers/BrowserFlags.js +23 -0
- data/spec_app/vendor/assets/bower_components/jasmine/spec/helpers/defineJasmineUnderTest.js +7 -0
- data/spec_app/vendor/assets/bower_components/jasmine/spec/helpers/nodeDefineJasmineUnderTest.js +33 -0
- data/spec_app/vendor/assets/bower_components/jasmine/spec/html/HtmlReporterSpec.js +616 -0
- data/spec_app/vendor/assets/bower_components/jasmine/spec/html/HtmlSpecFilterSpec.js +18 -0
- data/spec_app/vendor/assets/bower_components/jasmine/spec/html/MatchersHtmlSpec.js +37 -0
- data/spec_app/vendor/assets/bower_components/jasmine/spec/html/PrettyPrintHtmlSpec.js +15 -0
- data/spec_app/vendor/assets/bower_components/jasmine/spec/html/QueryStringSpec.js +43 -0
- data/spec_app/vendor/assets/bower_components/jasmine/spec/html/ResultsNodeSpec.js +62 -0
- data/spec_app/vendor/assets/bower_components/jasmine/spec/javascripts/support/jasmine_selenium_runner.yml +16 -0
- data/spec_app/vendor/assets/bower_components/jasmine/spec/performance/large_object_test.js +36 -0
- data/spec_app/vendor/assets/bower_components/jasmine/spec/performance/performance_test.js +10 -0
- data/spec_app/vendor/assets/bower_components/jasmine/spec/support/jasmine-performance.json +9 -0
- data/spec_app/vendor/assets/bower_components/jasmine/spec/support/jasmine-performance.yml +9 -0
- data/spec_app/vendor/assets/bower_components/jasmine/spec/support/jasmine.json +10 -0
- data/spec_app/vendor/assets/bower_components/jasmine/spec/support/jasmine.yml +25 -0
- data/spec_app/vendor/assets/bower_components/jasmine/src/console/ConsoleReporter.js +131 -0
- data/spec_app/vendor/assets/bower_components/jasmine/src/console/requireConsole.js +12 -0
- data/spec_app/vendor/assets/bower_components/jasmine/src/core/Any.js +36 -0
- data/spec_app/vendor/assets/bower_components/jasmine/src/core/CallTracker.js +50 -0
- data/spec_app/vendor/assets/bower_components/jasmine/src/core/Clock.js +113 -0
- data/spec_app/vendor/assets/bower_components/jasmine/src/core/DelayedFunctionScheduler.js +145 -0
- data/spec_app/vendor/assets/bower_components/jasmine/src/core/Env.js +341 -0
- data/spec_app/vendor/assets/bower_components/jasmine/src/core/ExceptionFormatter.js +29 -0
- data/spec_app/vendor/assets/bower_components/jasmine/src/core/Expectation.js +107 -0
- data/spec_app/vendor/assets/bower_components/jasmine/src/core/ExpectationResult.js +45 -0
- data/spec_app/vendor/assets/bower_components/jasmine/src/core/JsApiReporter.js +73 -0
- data/spec_app/vendor/assets/bower_components/jasmine/src/core/MockDate.js +81 -0
- data/spec_app/vendor/assets/bower_components/jasmine/src/core/ObjectContaining.js +34 -0
- data/spec_app/vendor/assets/bower_components/jasmine/src/core/PrettyPrinter.js +137 -0
- data/spec_app/vendor/assets/bower_components/jasmine/src/core/QueueRunner.js +92 -0
- data/spec_app/vendor/assets/bower_components/jasmine/src/core/ReportDispatcher.js +35 -0
- data/spec_app/vendor/assets/bower_components/jasmine/src/core/Spec.js +126 -0
- data/spec_app/vendor/assets/bower_components/jasmine/src/core/SpyStrategy.js +51 -0
- data/spec_app/vendor/assets/bower_components/jasmine/src/core/Suite.js +92 -0
- data/spec_app/vendor/assets/bower_components/jasmine/src/core/Timer.js +22 -0
- data/spec_app/vendor/assets/bower_components/jasmine/src/core/base.js +102 -0
- data/spec_app/vendor/assets/bower_components/jasmine/src/core/matchers/matchersUtil.js +181 -0
- data/spec_app/vendor/assets/bower_components/jasmine/src/core/matchers/requireMatchers.js +29 -0
- data/spec_app/vendor/assets/bower_components/jasmine/src/core/matchers/toBe.js +13 -0
- data/spec_app/vendor/assets/bower_components/jasmine/src/core/matchers/toBeCloseTo.js +18 -0
- data/spec_app/vendor/assets/bower_components/jasmine/src/core/matchers/toBeDefined.js +13 -0
- data/spec_app/vendor/assets/bower_components/jasmine/src/core/matchers/toBeFalsy.js +13 -0
- data/spec_app/vendor/assets/bower_components/jasmine/src/core/matchers/toBeGreaterThan.js +15 -0
- data/spec_app/vendor/assets/bower_components/jasmine/src/core/matchers/toBeLessThan.js +14 -0
- data/spec_app/vendor/assets/bower_components/jasmine/src/core/matchers/toBeNaN.js +22 -0
- data/spec_app/vendor/assets/bower_components/jasmine/src/core/matchers/toBeNull.js +14 -0
- data/spec_app/vendor/assets/bower_components/jasmine/src/core/matchers/toBeTruthy.js +14 -0
- data/spec_app/vendor/assets/bower_components/jasmine/src/core/matchers/toBeUndefined.js +14 -0
- data/spec_app/vendor/assets/bower_components/jasmine/src/core/matchers/toContain.js +16 -0
- data/spec_app/vendor/assets/bower_components/jasmine/src/core/matchers/toEqual.js +20 -0
- data/spec_app/vendor/assets/bower_components/jasmine/src/core/matchers/toHaveBeenCalled.js +28 -0
- data/spec_app/vendor/assets/bower_components/jasmine/src/core/matchers/toHaveBeenCalledWith.js +33 -0
- data/spec_app/vendor/assets/bower_components/jasmine/src/core/matchers/toMatch.js +16 -0
- data/spec_app/vendor/assets/bower_components/jasmine/src/core/matchers/toThrow.js +46 -0
- data/spec_app/vendor/assets/bower_components/jasmine/src/core/matchers/toThrowError.js +156 -0
- data/spec_app/vendor/assets/bower_components/jasmine/src/core/requireCore.js +39 -0
- data/spec_app/vendor/assets/bower_components/jasmine/src/core/requireInterface.js +59 -0
- data/spec_app/vendor/assets/bower_components/jasmine/src/core/util.js +44 -0
- data/spec_app/vendor/assets/bower_components/jasmine/src/html/HtmlReporter.js +280 -0
- data/spec_app/vendor/assets/bower_components/jasmine/src/html/HtmlSpecFilter.js +12 -0
- data/spec_app/vendor/assets/bower_components/jasmine/src/html/QueryString.js +47 -0
- data/spec_app/vendor/assets/bower_components/jasmine/src/html/ResultsNode.js +19 -0
- data/spec_app/vendor/assets/bower_components/jasmine/src/html/_HTMLReporter.scss +355 -0
- data/spec_app/vendor/assets/bower_components/jasmine/src/html/jasmine.scss +1 -0
- data/spec_app/vendor/assets/bower_components/jasmine/src/html/requireHtml.js +6 -0
- data/spec_app/vendor/assets/bower_components/jasmine/src/templates/example_project_jasmine_tags.html.erb +3 -0
- data/spec_app/vendor/assets/bower_components/jasmine/src/templates/version.js.erb +7 -0
- data/spec_app/vendor/assets/bower_components/jasmine/src/templates/version.rb.erb +6 -0
- data/spec_app/vendor/assets/bower_components/jasmine/src/version.js +3 -0
- data/spec_app/vendor/assets/bower_components/jasmine/travis-core-script.sh +14 -0
- data/spec_app/vendor/assets/bower_components/jasmine/travis-docs-script.sh +5 -0
- data/spec_app/vendor/assets/bower_components/jasmine/travis-node-script.sh +6 -0
- data/spec_app/vendor/assets/bower_components/jasmine-ajax/.bower.json +45 -0
- data/spec_app/vendor/assets/bower_components/jasmine-ajax/Gruntfile.js +63 -0
- data/spec_app/vendor/assets/bower_components/jasmine-ajax/MIT.LICENSE +20 -0
- data/spec_app/vendor/assets/bower_components/jasmine-ajax/README.markdown +216 -0
- data/spec_app/vendor/assets/bower_components/jasmine-ajax/bower.json +36 -0
- data/spec_app/vendor/assets/bower_components/jasmine-ajax/lib/mock-ajax.js +542 -0
- data/spec_app/vendor/assets/bower_components/jasmine-ajax/package.json +21 -0
- data/spec_app/vendor/assets/bower_components/jasmine-ajax/src/boot.js +11 -0
- data/spec_app/vendor/assets/bower_components/jasmine-ajax/src/fakeRequest.js +262 -0
- data/spec_app/vendor/assets/bower_components/jasmine-ajax/src/mockAjax.js +45 -0
- data/spec_app/vendor/assets/bower_components/jasmine-ajax/src/paramParser.js +56 -0
- data/spec_app/vendor/assets/bower_components/jasmine-ajax/src/requestStub.js +42 -0
- data/spec_app/vendor/assets/bower_components/jasmine-ajax/src/requestTracker.js +51 -0
- data/spec_app/vendor/assets/bower_components/jasmine-ajax/src/requireAjax.js +44 -0
- data/spec_app/vendor/assets/bower_components/jasmine-ajax/src/stubTracker.js +24 -0
- data/spec_app/vendor/assets/bower_components/jasmine-fixture/.bower.json +27 -0
- data/spec_app/vendor/assets/bower_components/jasmine-fixture/.gitignore +8 -0
- data/spec_app/vendor/assets/bower_components/jasmine-fixture/.npmignore +8 -0
- data/spec_app/vendor/assets/bower_components/jasmine-fixture/LICENSE.txt +24 -0
- data/spec_app/vendor/assets/bower_components/jasmine-fixture/README.md +118 -0
- data/spec_app/vendor/assets/bower_components/jasmine-fixture/bower.json +17 -0
- data/spec_app/vendor/assets/bower_components/jasmine-fixture/dist/jasmine-fixture.js +433 -0
- data/spec_app/vendor/assets/bower_components/jasmine-fixture/dist/jasmine-fixture.min.js +5 -0
- data/spec_app/vendor/assets/bower_components/jasmine-fixture/spec-e2e/basic-usage-spec.coffee +14 -0
- data/spec_app/vendor/assets/bower_components/jasmine-fixture/spec-e2e/helpers/invariants.coffee +17 -0
- data/spec_app/vendor/assets/bower_components/jasmine-fixture/spec-e2e/helpers/spec-within-a-spec.coffee +24 -0
- data/spec_app/vendor/assets/bower_components/jasmine-fixture/spec-e2e/helpers/tmp-files.coffee +8 -0
- data/spec_app/vendor/assets/bower_components/jasmine-fixture/spec-e2e/support/jasmine1-testem-config.json +11 -0
- data/spec_app/vendor/assets/bower_components/jasmine-fixture/spec-e2e/support/jasmine2-testem-config.json +11 -0
- data/spec_app/vendor/assets/bower_components/jasmine-fixture/vendor/js/jquery-1.11.0.js +10337 -0
- data/spec_app/vendor/assets/bower_components/jasmine-fixture/vendor/js/jquery-1.8.3.js +9472 -0
- data/spec_app/vendor/assets/bower_components/jasmine-fixture/vendor/js/jquery-2.1.0.js +9111 -0
- data/spec_app/vendor/assets/bower_components/jasmine-jquery/.bower.json +26 -0
- data/spec_app/vendor/assets/bower_components/jasmine-jquery/CONTRIBUTING.md +28 -0
- data/spec_app/vendor/assets/bower_components/jasmine-jquery/Gruntfile.js +33 -0
- data/spec_app/vendor/assets/bower_components/jasmine-jquery/MIT.LICENSE +20 -0
- data/spec_app/vendor/assets/bower_components/jasmine-jquery/README.md +362 -0
- data/spec_app/vendor/assets/bower_components/jasmine-jquery/bower.json +16 -0
- data/spec_app/vendor/assets/bower_components/jasmine-jquery/lib/jasmine-jquery.js +813 -0
- data/spec_app/vendor/assets/bower_components/jasmine-jquery/package.json +26 -0
- data/spec_app/vendor/assets/bower_components/jasmine-jquery/spec/fixtures/fixture_with_javascript.html +1 -0
- data/spec_app/vendor/assets/bower_components/jasmine-jquery/spec/fixtures/fixture_with_javascript_block.html +1 -0
- data/spec_app/vendor/assets/bower_components/jasmine-jquery/spec/fixtures/javascripts/jasmine_javascript_click.js +1 -0
- data/spec_app/vendor/assets/bower_components/jasmine-jquery/spec/fixtures/javascripts/jasmine_javascript_hover.js +1 -0
- data/spec_app/vendor/assets/bower_components/jasmine-jquery/spec/fixtures/json/jasmine_json_test.json +1 -0
- data/spec_app/vendor/assets/bower_components/jasmine-jquery/spec/fixtures/real_non_mocked_fixture.html +1 -0
- data/spec_app/vendor/assets/bower_components/jasmine-jquery/spec/fixtures/real_non_mocked_fixture_style.css +1 -0
- data/spec_app/vendor/assets/bower_components/jasmine-jquery/spec/suites/jasmine-jquery-spec.js +1782 -0
- data/spec_app/vendor/assets/bower_components/jquery/.bower.json +37 -0
- data/spec_app/vendor/assets/bower_components/jquery/MIT-LICENSE.txt +21 -0
- data/spec_app/vendor/assets/bower_components/jquery/bower.json +27 -0
- data/spec_app/vendor/assets/bower_components/jquery/dist/jquery.js +9205 -0
- data/spec_app/vendor/assets/bower_components/jquery/dist/jquery.min.js +5 -0
- data/spec_app/vendor/assets/bower_components/jquery/dist/jquery.min.map +1 -0
- data/spec_app/vendor/assets/bower_components/jquery/src/ajax/jsonp.js +89 -0
- data/spec_app/vendor/assets/bower_components/jquery/src/ajax/load.js +75 -0
- data/spec_app/vendor/assets/bower_components/jquery/src/ajax/parseJSON.js +13 -0
- data/spec_app/vendor/assets/bower_components/jquery/src/ajax/parseXML.js +28 -0
- data/spec_app/vendor/assets/bower_components/jquery/src/ajax/script.js +64 -0
- data/spec_app/vendor/assets/bower_components/jquery/src/ajax/var/nonce.js +5 -0
- data/spec_app/vendor/assets/bower_components/jquery/src/ajax/var/rquery.js +3 -0
- data/spec_app/vendor/assets/bower_components/jquery/src/ajax/xhr.js +136 -0
- data/spec_app/vendor/assets/bower_components/jquery/src/ajax.js +786 -0
- data/spec_app/vendor/assets/bower_components/jquery/src/attributes/attr.js +141 -0
- data/spec_app/vendor/assets/bower_components/jquery/src/attributes/classes.js +158 -0
- data/spec_app/vendor/assets/bower_components/jquery/src/attributes/prop.js +94 -0
- data/spec_app/vendor/assets/bower_components/jquery/src/attributes/support.js +35 -0
- data/spec_app/vendor/assets/bower_components/jquery/src/attributes/val.js +161 -0
- data/spec_app/vendor/assets/bower_components/jquery/src/attributes.js +11 -0
- data/spec_app/vendor/assets/bower_components/jquery/src/callbacks.js +205 -0
- data/spec_app/vendor/assets/bower_components/jquery/src/core/access.js +60 -0
- data/spec_app/vendor/assets/bower_components/jquery/src/core/init.js +123 -0
- data/spec_app/vendor/assets/bower_components/jquery/src/core/parseHTML.js +39 -0
- data/spec_app/vendor/assets/bower_components/jquery/src/core/ready.js +97 -0
- data/spec_app/vendor/assets/bower_components/jquery/src/core/var/rsingleTag.js +4 -0
- data/spec_app/vendor/assets/bower_components/jquery/src/core.js +497 -0
- data/spec_app/vendor/assets/bower_components/jquery/src/css/addGetHookIf.js +22 -0
- data/spec_app/vendor/assets/bower_components/jquery/src/css/curCSS.js +57 -0
- data/spec_app/vendor/assets/bower_components/jquery/src/css/defaultDisplay.js +70 -0
- data/spec_app/vendor/assets/bower_components/jquery/src/css/hiddenVisibleSelectors.js +15 -0
- data/spec_app/vendor/assets/bower_components/jquery/src/css/support.js +96 -0
- data/spec_app/vendor/assets/bower_components/jquery/src/css/swap.js +28 -0
- data/spec_app/vendor/assets/bower_components/jquery/src/css/var/cssExpand.js +3 -0
- data/spec_app/vendor/assets/bower_components/jquery/src/css/var/getStyles.js +12 -0
- data/spec_app/vendor/assets/bower_components/jquery/src/css/var/isHidden.js +13 -0
- data/spec_app/vendor/assets/bower_components/jquery/src/css/var/rmargin.js +3 -0
- data/spec_app/vendor/assets/bower_components/jquery/src/css/var/rnumnonpx.js +5 -0
- data/spec_app/vendor/assets/bower_components/jquery/src/css.js +450 -0
- data/spec_app/vendor/assets/bower_components/jquery/src/data/Data.js +181 -0
- data/spec_app/vendor/assets/bower_components/jquery/src/data/accepts.js +20 -0
- data/spec_app/vendor/assets/bower_components/jquery/src/data/var/data_priv.js +5 -0
- data/spec_app/vendor/assets/bower_components/jquery/src/data/var/data_user.js +5 -0
- data/spec_app/vendor/assets/bower_components/jquery/src/data.js +178 -0
- data/spec_app/vendor/assets/bower_components/jquery/src/deferred.js +149 -0
- data/spec_app/vendor/assets/bower_components/jquery/src/deprecated.js +13 -0
- data/spec_app/vendor/assets/bower_components/jquery/src/dimensions.js +50 -0
- data/spec_app/vendor/assets/bower_components/jquery/src/effects/Tween.js +114 -0
- data/spec_app/vendor/assets/bower_components/jquery/src/effects/animatedSelector.js +13 -0
- data/spec_app/vendor/assets/bower_components/jquery/src/effects.js +648 -0
- data/spec_app/vendor/assets/bower_components/jquery/src/event/ajax.js +13 -0
- data/spec_app/vendor/assets/bower_components/jquery/src/event/alias.js +39 -0
- data/spec_app/vendor/assets/bower_components/jquery/src/event/support.js +9 -0
- data/spec_app/vendor/assets/bower_components/jquery/src/event.js +868 -0
- data/spec_app/vendor/assets/bower_components/jquery/src/exports/amd.js +24 -0
- data/spec_app/vendor/assets/bower_components/jquery/src/exports/global.js +32 -0
- data/spec_app/vendor/assets/bower_components/jquery/src/intro.js +44 -0
- data/spec_app/vendor/assets/bower_components/jquery/src/jquery.js +37 -0
- data/spec_app/vendor/assets/bower_components/jquery/src/manipulation/_evalUrl.js +18 -0
- data/spec_app/vendor/assets/bower_components/jquery/src/manipulation/support.js +32 -0
- data/spec_app/vendor/assets/bower_components/jquery/src/manipulation/var/rcheckableType.js +3 -0
- data/spec_app/vendor/assets/bower_components/jquery/src/manipulation.js +580 -0
- data/spec_app/vendor/assets/bower_components/jquery/src/offset.js +207 -0
- data/spec_app/vendor/assets/bower_components/jquery/src/outro.js +1 -0
- data/spec_app/vendor/assets/bower_components/jquery/src/queue/delay.js +22 -0
- data/spec_app/vendor/assets/bower_components/jquery/src/queue.js +142 -0
- data/spec_app/vendor/assets/bower_components/jquery/src/selector-native.js +172 -0
- data/spec_app/vendor/assets/bower_components/jquery/src/selector-sizzle.js +14 -0
- data/spec_app/vendor/assets/bower_components/jquery/src/selector.js +1 -0
- data/spec_app/vendor/assets/bower_components/jquery/src/serialize.js +111 -0
- data/spec_app/vendor/assets/bower_components/jquery/src/sizzle/dist/sizzle.js +2067 -0
- data/spec_app/vendor/assets/bower_components/jquery/src/sizzle/dist/sizzle.min.js +3 -0
- data/spec_app/vendor/assets/bower_components/jquery/src/sizzle/dist/sizzle.min.map +1 -0
- data/spec_app/vendor/assets/bower_components/jquery/src/traversing/findFilter.js +100 -0
- data/spec_app/vendor/assets/bower_components/jquery/src/traversing/var/rneedsContext.js +6 -0
- data/spec_app/vendor/assets/bower_components/jquery/src/traversing.js +199 -0
- data/spec_app/vendor/assets/bower_components/jquery/src/var/arr.js +3 -0
- data/spec_app/vendor/assets/bower_components/jquery/src/var/class2type.js +4 -0
- data/spec_app/vendor/assets/bower_components/jquery/src/var/concat.js +5 -0
- data/spec_app/vendor/assets/bower_components/jquery/src/var/hasOwn.js +5 -0
- data/spec_app/vendor/assets/bower_components/jquery/src/var/indexOf.js +5 -0
- data/spec_app/vendor/assets/bower_components/jquery/src/var/pnum.js +3 -0
- data/spec_app/vendor/assets/bower_components/jquery/src/var/push.js +5 -0
- data/spec_app/vendor/assets/bower_components/jquery/src/var/rnotwhite.js +3 -0
- data/spec_app/vendor/assets/bower_components/jquery/src/var/slice.js +5 -0
- data/spec_app/vendor/assets/bower_components/jquery/src/var/strundefined.js +3 -0
- data/spec_app/vendor/assets/bower_components/jquery/src/var/support.js +4 -0
- data/spec_app/vendor/assets/bower_components/jquery/src/var/toString.js +5 -0
- data/spec_app/vendor/assets/bower_components/jquery/src/wrap.js +79 -0
- metadata +386 -6
- data/lib/assets/javascripts/up/index.js +0 -13
- data/spec_app/app/assets/stylesheets/blocks/field_with_errors.css.sass +0 -5
@@ -1,19 +1,25 @@
|
|
1
1
|
###*
|
2
|
-
Animation and
|
2
|
+
Animation and transitions
|
3
|
+
=========================
|
4
|
+
|
5
|
+
TODO: Write some documentation.
|
3
6
|
|
4
7
|
@class up.motion
|
5
8
|
###
|
6
9
|
up.motion = (->
|
7
10
|
|
11
|
+
u = up.util
|
12
|
+
|
8
13
|
defaultOptions =
|
9
14
|
duration: 300
|
15
|
+
delay: 0
|
10
16
|
easing: 'ease'
|
11
17
|
|
12
18
|
animations = {}
|
19
|
+
defaultAnimations = {}
|
13
20
|
transitions = {}
|
14
|
-
|
15
|
-
|
16
|
-
|
21
|
+
defaultTransitions = {}
|
22
|
+
|
17
23
|
###*
|
18
24
|
Animates an element.
|
19
25
|
|
@@ -33,52 +39,56 @@ up.motion = (->
|
|
33
39
|
|
34
40
|
@method up.animate
|
35
41
|
@param {Element|jQuery|String} elementOrSelector
|
36
|
-
@param {String|Function}
|
42
|
+
@param {String|Function|Object} animation
|
37
43
|
@param {Number} [options.duration]
|
38
44
|
@param {String} [options.easing]
|
45
|
+
@param {Number} [options.delay]
|
39
46
|
@return {Promise}
|
40
47
|
A promise for the animation's end.
|
41
48
|
###
|
42
|
-
animate = (elementOrSelector,
|
49
|
+
animate = (elementOrSelector, animation, options) ->
|
43
50
|
$element = $(elementOrSelector)
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
51
|
+
options = u.options(options, defaultOptions)
|
52
|
+
if u.isFunction(animation)
|
53
|
+
assertIsPromise(
|
54
|
+
animation($element, options),
|
55
|
+
["Animation did not return a Promise", animation]
|
56
|
+
)
|
57
|
+
else if u.isString(animation)
|
58
|
+
animate($element, findAnimation(animation), options)
|
59
|
+
else if u.isHash(animation)
|
60
|
+
u.cssAnimate($element, animation, options)
|
48
61
|
else
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
)
|
62
|
+
u.error("Unknown animation type", animation)
|
63
|
+
|
64
|
+
findAnimation = (name) ->
|
65
|
+
animations[name] or u.error("Unknown animation", animation)
|
54
66
|
|
55
67
|
withGhosts = ($old, $new, block) ->
|
56
68
|
$oldGhost = null
|
57
69
|
$newGhost = null
|
58
|
-
|
59
|
-
$oldGhost =
|
60
|
-
|
61
|
-
$newGhost =
|
70
|
+
u.temporaryCss $new, display: 'none', ->
|
71
|
+
$oldGhost = u.prependGhost($old).addClass('up-destroying')
|
72
|
+
u.temporaryCss $old, display: 'none', ->
|
73
|
+
$newGhost = u.prependGhost($new)
|
62
74
|
# $old should take up space in the page flow until the transition ends
|
63
75
|
$old.css(visibility: 'hidden')
|
64
|
-
|
76
|
+
|
77
|
+
newCssMemo = u.temporaryCss($new, display: 'none')
|
65
78
|
promise = block($oldGhost, $newGhost)
|
66
79
|
promise.then ->
|
67
80
|
$oldGhost.remove()
|
68
81
|
$newGhost.remove()
|
69
82
|
# Now that the transition is over we show $new again.
|
70
|
-
# Since we expect $old to be removed in a
|
83
|
+
# Since we expect $old to be removed in a heartbeat,
|
71
84
|
# $new should take up space
|
72
85
|
$old.css(display: 'none')
|
73
86
|
newCssMemo()
|
74
87
|
|
75
88
|
assertIsPromise = (object, messageParts) ->
|
76
|
-
|
89
|
+
u.isPromise(object) or u.error(messageParts...)
|
77
90
|
object
|
78
91
|
|
79
|
-
|
80
|
-
|
81
|
-
|
82
92
|
###*
|
83
93
|
Performs a transition between two elements.
|
84
94
|
|
@@ -103,14 +113,15 @@ up.motion = (->
|
|
103
113
|
@param {Function|String} transitionOrName
|
104
114
|
@param {Number} [options.duration]
|
105
115
|
@param {String} [options.easing]
|
116
|
+
@param {Number} [options.delay]
|
106
117
|
@return {Promise}
|
107
118
|
A promise for the transition's end.
|
108
119
|
###
|
109
120
|
morph = (source, target, transitionOrName, options) ->
|
110
|
-
options =
|
121
|
+
options = u.options(defaultOptions)
|
111
122
|
$old = $(source)
|
112
123
|
$new = $(target)
|
113
|
-
transition =
|
124
|
+
transition = u.presence(transitionOrName, u.isFunction) || transitions[transitionOrName]
|
114
125
|
if transition
|
115
126
|
withGhosts $old, $new, ($oldGhost, $newGhost) ->
|
116
127
|
assertIsPromise(
|
@@ -120,7 +131,7 @@ up.motion = (->
|
|
120
131
|
else if animation = animations[transitionOrName]
|
121
132
|
$old.hide()
|
122
133
|
animate($new, animation, options)
|
123
|
-
else if
|
134
|
+
else if u.isString(transitionOrName) && transitionOrName.indexOf('/') >= 0
|
124
135
|
parts = transitionOrName.split('/')
|
125
136
|
transition = ($old, $new, options) ->
|
126
137
|
$.when(
|
@@ -129,7 +140,7 @@ up.motion = (->
|
|
129
140
|
)
|
130
141
|
morph($old, $new, transition, options)
|
131
142
|
else
|
132
|
-
|
143
|
+
u.error("Unknown transition: #{transitionOrName}")
|
133
144
|
|
134
145
|
###*
|
135
146
|
Defines a named transition.
|
@@ -150,6 +161,14 @@ up.motion = (->
|
|
150
161
|
###
|
151
162
|
animation = (name, animation) ->
|
152
163
|
animations[name] = animation
|
164
|
+
|
165
|
+
snapshot = ->
|
166
|
+
defaultAnimations = u.copy(animations)
|
167
|
+
defaultTransitions = u.copy(transitions)
|
168
|
+
|
169
|
+
reset = ->
|
170
|
+
animations = u.copy(defaultAnimations)
|
171
|
+
transitions = u.copy(defaultTransitions)
|
153
172
|
|
154
173
|
###*
|
155
174
|
Returns a no-op animation or transition which has no visual effects
|
@@ -168,61 +187,61 @@ up.motion = (->
|
|
168
187
|
|
169
188
|
animation('fade-in', ($ghost, options) ->
|
170
189
|
$ghost.css(opacity: 0)
|
171
|
-
|
190
|
+
animate($ghost, { opacity: 1 }, options)
|
172
191
|
)
|
173
192
|
|
174
193
|
animation('fade-out', ($ghost, options) ->
|
175
194
|
$ghost.css(opacity: 1)
|
176
|
-
|
195
|
+
animate($ghost, { opacity: 0 }, options)
|
177
196
|
)
|
178
197
|
|
179
198
|
animation('move-to-top', ($ghost, options) ->
|
180
199
|
$ghost.css('margin-top': '0%')
|
181
|
-
|
200
|
+
animate($ghost, { 'margin-top': '-100%' }, options)
|
182
201
|
)
|
183
202
|
|
184
203
|
animation('move-from-top', ($ghost, options) ->
|
185
204
|
$ghost.css('margin-top': '-100%')
|
186
|
-
|
205
|
+
animate($ghost, { 'margin-top': '0%' }, options)
|
187
206
|
)
|
188
207
|
|
189
208
|
animation('move-to-bottom', ($ghost, options) ->
|
190
209
|
$ghost.css('margin-top': '0%')
|
191
|
-
|
210
|
+
animate($ghost, { 'margin-top': '100%' }, options)
|
192
211
|
)
|
193
212
|
|
194
213
|
animation('move-from-bottom', ($ghost, options) ->
|
195
214
|
$ghost.css('margin-top': '100%')
|
196
|
-
|
215
|
+
animate($ghost, { 'margin-top': '0%' }, options)
|
197
216
|
)
|
198
217
|
|
199
218
|
animation('move-to-left', ($ghost, options) ->
|
200
219
|
$ghost.css('margin-left': '0%')
|
201
|
-
|
220
|
+
animate($ghost, { 'margin-left': '-100%' }, options)
|
202
221
|
)
|
203
222
|
|
204
223
|
animation('move-from-left', ($ghost, options) ->
|
205
224
|
$ghost.css('margin-left': '-100%')
|
206
|
-
|
225
|
+
animate($ghost, { 'margin-left': '0%' }, options)
|
207
226
|
)
|
208
227
|
|
209
228
|
animation('move-to-right', ($ghost, options) ->
|
210
229
|
$ghost.css('margin-left': '0%')
|
211
|
-
|
230
|
+
animate($ghost, { 'margin-left': '100%' }, options)
|
212
231
|
)
|
213
232
|
|
214
233
|
animation('move-from-right', ($ghost, options) ->
|
215
234
|
$ghost.css('margin-left': '100%')
|
216
|
-
|
235
|
+
animate($ghost, { 'margin-left': '0%' }, options)
|
217
236
|
)
|
218
237
|
|
219
238
|
animation('roll-down', ($ghost, options) ->
|
220
239
|
fullHeight = $ghost.height()
|
221
|
-
styleMemo =
|
240
|
+
styleMemo = u.temporaryCss($ghost,
|
222
241
|
height: '0px'
|
223
242
|
overflow: 'hidden'
|
224
243
|
)
|
225
|
-
|
244
|
+
animate($ghost, { height: "#{fullHeight}px" }, options).then(styleMemo)
|
226
245
|
)
|
227
246
|
|
228
247
|
transition('none', none)
|
@@ -241,14 +260,14 @@ up.motion = (->
|
|
241
260
|
)
|
242
261
|
)
|
243
262
|
|
244
|
-
transition('move-
|
263
|
+
transition('move-up', ($old, $new, options) ->
|
245
264
|
$.when(
|
246
265
|
animate($old, 'move-to-top', options),
|
247
266
|
animate($new, 'move-from-bottom', options)
|
248
267
|
)
|
249
268
|
)
|
250
269
|
|
251
|
-
transition('move-
|
270
|
+
transition('move-down', ($old, $new, options) ->
|
252
271
|
$.when(
|
253
272
|
animate($old, 'move-to-bottom', options),
|
254
273
|
animate($new, 'move-from-top', options)
|
@@ -261,6 +280,9 @@ up.motion = (->
|
|
261
280
|
animate($new, 'fade-in', options)
|
262
281
|
)
|
263
282
|
)
|
283
|
+
|
284
|
+
up.bus.on 'framework:ready', snapshot
|
285
|
+
up.bus.on 'framework:reset', reset
|
264
286
|
|
265
287
|
morph: morph
|
266
288
|
animate: animate
|
@@ -1,15 +1,27 @@
|
|
1
1
|
###*
|
2
|
+
Fast interaction feedback
|
3
|
+
=========================
|
4
|
+
|
2
5
|
This module marks up link elements with classes indicating that
|
3
6
|
they are currently loading (class `up-active`) or linking
|
4
7
|
to the current location (class `up-current`).
|
5
|
-
|
6
|
-
|
8
|
+
|
9
|
+
This dramatically improves the perceived speed of your user interface
|
10
|
+
by providing instant feedback for user interactions.
|
11
|
+
|
12
|
+
The classes are added and removed automatically whenever
|
13
|
+
a page fragment is added, changed or destroyed through Up.js.
|
14
|
+
|
15
|
+
How Up.js computes the current location
|
16
|
+
---------------------------------------
|
17
|
+
|
18
|
+
From Up's point of view the "current" location is either:
|
7
19
|
|
8
20
|
- the URL displayed in the browser window's location bar
|
9
|
-
- the source URL of a currently opened
|
10
|
-
- the source URL of a currently opened
|
11
|
-
|
12
|
-
@class up.navigation
|
21
|
+
- the source URL of a currently opened [modal dialog](/up.modal)
|
22
|
+
- the source URL of a currently opened [popup overlay](/up.popup)
|
23
|
+
|
24
|
+
@class up.navigation
|
13
25
|
###
|
14
26
|
up.navigation = (->
|
15
27
|
|
@@ -19,7 +31,7 @@ up.navigation = (->
|
|
19
31
|
SELECTOR_ACTIVE = ".#{CLASS_ACTIVE}"
|
20
32
|
|
21
33
|
locationChanged = ->
|
22
|
-
windowLocation = up.util.normalizeUrl(
|
34
|
+
windowLocation = up.util.normalizeUrl(up.browser.url(), search: false)
|
23
35
|
modalLocation = up.modal.source()
|
24
36
|
popupLocation = up.popup.source()
|
25
37
|
|
@@ -48,15 +60,21 @@ up.navigation = (->
|
|
48
60
|
up.on 'click', SELECTOR_SECTION, (event, $section) ->
|
49
61
|
sectionClicked($section)
|
50
62
|
|
51
|
-
#
|
52
|
-
#
|
63
|
+
# When a fragment is ready it might either have brought a location change
|
64
|
+
# with it, or it might have opened a modal / popup which we consider
|
65
|
+
# to be secondary location sources (the primary being the browser's
|
66
|
+
# location bar.
|
53
67
|
up.bus.on 'fragment:ready', ->
|
54
68
|
unmarkActive()
|
69
|
+
# If a new fragment is inserted, it's likely to be the result
|
70
|
+
# to the active action. So we can remove the active marker.
|
55
71
|
locationChanged()
|
56
72
|
|
57
|
-
# If the destroyed fragment is a modal or popup container
|
58
|
-
# this changes which URLs we consider currents.
|
59
73
|
up.bus.on 'fragment:destroy', ($fragment) ->
|
74
|
+
# If the destroyed fragment is a modal or popup container
|
75
|
+
# this changes which URLs we consider currents.
|
76
|
+
# Also modals and popups restore their previous history
|
77
|
+
# once they close.
|
60
78
|
if $fragment.is('.up-modal, .up-popup')
|
61
79
|
locationChanged()
|
62
80
|
|
@@ -1,14 +1,30 @@
|
|
1
1
|
###*
|
2
|
-
Pop-up overlays
|
2
|
+
Pop-up overlays
|
3
|
+
===============
|
3
4
|
|
4
|
-
For modal dialogs see
|
5
|
+
For modal dialogs see [up.modal](/up.modal).
|
5
6
|
|
6
|
-
@class up.popup
|
7
|
+
@class up.popup
|
7
8
|
###
|
8
9
|
up.popup = (->
|
10
|
+
|
11
|
+
u = up.util
|
12
|
+
|
13
|
+
config =
|
14
|
+
openAnimation: 'fade-in'
|
15
|
+
closeAnimation: 'fade-out'
|
16
|
+
origin: 'bottom-right'
|
17
|
+
|
18
|
+
###*
|
19
|
+
@method up.popup.defaults
|
20
|
+
@param {String} options.animation
|
21
|
+
@param {String} options.origin
|
22
|
+
###
|
23
|
+
defaults = (options) ->
|
24
|
+
u.extend(config, options)
|
9
25
|
|
10
26
|
position = ($link, $popup, origin) ->
|
11
|
-
linkBox =
|
27
|
+
linkBox = u.measure($link, full: true)
|
12
28
|
css = switch origin
|
13
29
|
when "bottom-right"
|
14
30
|
right: linkBox.right
|
@@ -23,16 +39,45 @@ up.popup = (->
|
|
23
39
|
left: linkBox.left
|
24
40
|
bottom: linkBox.top
|
25
41
|
else
|
26
|
-
|
27
|
-
|
28
|
-
# css[key] = Math.max(value, 0)
|
42
|
+
u.error("Unknown origin", origin)
|
43
|
+
$popup.attr('up-origin', origin)
|
29
44
|
$popup.css(css)
|
45
|
+
ensureInViewport($popup)
|
46
|
+
|
47
|
+
ensureInViewport = ($popup) ->
|
48
|
+
box = u.measure($popup, full: true)
|
49
|
+
errorX = null
|
50
|
+
errorY = null
|
51
|
+
if box.right < 0
|
52
|
+
errorX = -box.right # errorX is positive
|
53
|
+
if box.bottom < 0
|
54
|
+
errorY = -box.bottom # errorY is positive
|
55
|
+
if box.left < 0
|
56
|
+
errorX = box.left # errorX is negative
|
57
|
+
if box.top < 0
|
58
|
+
errorY = box.top # errorY is negative
|
59
|
+
if errorX
|
60
|
+
# We use parseInt to:
|
61
|
+
# 1) convert "50px" to 50
|
62
|
+
# 2) convert "auto" to NaN
|
63
|
+
if left = parseInt($popup.css('left'))
|
64
|
+
$popup.css('left', left - errorX)
|
65
|
+
else if right = parseInt($popup.css('right'))
|
66
|
+
$popup.css('right', right + errorX)
|
67
|
+
if errorY
|
68
|
+
if top = parseInt($popup.css('top'))
|
69
|
+
$popup.css('top', top - errorY)
|
70
|
+
else if bottom = parseInt($popup.css('bottom'))
|
71
|
+
$popup.css('bottom', bottom + errorY)
|
72
|
+
|
30
73
|
|
31
74
|
createHiddenPopup = ($link, selector, sticky) ->
|
32
|
-
$popup =
|
75
|
+
$popup = u.$createElementFromSelector('.up-popup')
|
33
76
|
$popup.attr('up-sticky', '') if sticky
|
34
|
-
$
|
35
|
-
$
|
77
|
+
$popup.attr('up-previous-url', up.browser.url())
|
78
|
+
$popup.attr('up-previous-title', document.title)
|
79
|
+
$placeholder = u.$createElementFromSelector(selector)
|
80
|
+
$placeholder.appendTo($popup)
|
36
81
|
$popup.appendTo(document.body)
|
37
82
|
$popup.hide()
|
38
83
|
$popup
|
@@ -53,20 +98,17 @@ up.popup = (->
|
|
53
98
|
If set to `true`, the popup remains
|
54
99
|
open even if the page changes in the background.
|
55
100
|
@param {Object} [options.history=false]
|
56
|
-
@example
|
57
|
-
<a href="/decks" up-popup=".deck_list">Switch deck</a>
|
58
|
-
@example
|
59
|
-
<a href="/settings" up-popup=".options" up-popup-sticky>Settings</a>
|
60
101
|
###
|
61
|
-
open = (linkOrSelector, options
|
102
|
+
open = (linkOrSelector, options) ->
|
62
103
|
$link = $(linkOrSelector)
|
63
104
|
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
105
|
+
options = u.options(options)
|
106
|
+
url = u.option($link.attr('href'))
|
107
|
+
selector = u.option(options.target, $link.attr('up-popup'), 'body')
|
108
|
+
origin = u.option(options.origin, $link.attr('up-origin'), config.origin)
|
109
|
+
animation = u.option(options.animation, $link.attr('up-animation'), config.openAnimation)
|
110
|
+
sticky = u.option(options.sticky, $link.is('[up-sticky]'))
|
111
|
+
history = u.option(options.history, $link.attr('up-history'), false)
|
70
112
|
|
71
113
|
close()
|
72
114
|
$popup = createHiddenPopup($link, selector, sticky)
|
@@ -75,7 +117,7 @@ up.popup = (->
|
|
75
117
|
|
76
118
|
up.replace(selector, url,
|
77
119
|
history: history
|
78
|
-
source: true
|
120
|
+
# source: true
|
79
121
|
insert: -> updated($link, $popup, origin, animation)
|
80
122
|
)
|
81
123
|
|
@@ -98,27 +140,50 @@ up.popup = (->
|
|
98
140
|
Does nothing if no popup is currently open.
|
99
141
|
|
100
142
|
@method up.popup.close
|
101
|
-
@param
|
143
|
+
@param {Object} options
|
144
|
+
See options for [`up.animate`](/up.motion#up.animate).
|
102
145
|
###
|
103
146
|
close = (options) ->
|
104
|
-
options = up.util.options(options, animation: 'fade-out')
|
105
147
|
$popup = $('.up-popup')
|
106
148
|
if $popup.length
|
107
|
-
|
149
|
+
options = u.options(options,
|
150
|
+
animation: config.closeAnimation,
|
151
|
+
url: $popup.attr('up-previous-url'),
|
152
|
+
title: $popup.attr('up-previous-title')
|
153
|
+
)
|
154
|
+
up.destroy($popup, options)
|
108
155
|
|
109
156
|
autoclose = ->
|
110
157
|
unless $('.up-popup').is('[up-sticky]')
|
111
158
|
close()
|
112
159
|
|
160
|
+
###*
|
161
|
+
Opens the target of this link in a popup overlay:
|
162
|
+
|
163
|
+
<a href="/decks" up-modal=".deck_list">Switch deck</a>
|
113
164
|
|
114
|
-
|
165
|
+
If the `up-sticky` attribute is set, the dialog does not auto-close
|
166
|
+
if a page fragment below the popup overlay updates:
|
167
|
+
|
168
|
+
<a href="/decks" up-popup=".deck_list">Switch deck</a>
|
169
|
+
<a href="/settings" up-popup=".options" up-sticky>Settings</a>
|
170
|
+
|
171
|
+
@method a[up-popup]
|
172
|
+
@ujs
|
173
|
+
@param up-target
|
174
|
+
@param [up-sticky]
|
175
|
+
@param [up-origin]
|
176
|
+
###
|
177
|
+
up.on('click', 'a[up-popup]', (event, $link) ->
|
115
178
|
event.preventDefault()
|
116
179
|
if $link.is('.up-current')
|
117
180
|
close()
|
118
181
|
else
|
119
182
|
open($link)
|
120
183
|
)
|
121
|
-
|
184
|
+
|
185
|
+
# Close the popup when someone clicks outside the popup
|
186
|
+
# (but not on a popup opener).
|
122
187
|
up.on('click', 'body', (event, $body) ->
|
123
188
|
$target = $(event.target)
|
124
189
|
unless $target.closest('.up-popup').length || $target.closest('[up-popup]').length
|
@@ -131,13 +196,23 @@ up.popup = (->
|
|
131
196
|
)
|
132
197
|
|
133
198
|
# Close the pop-up overlay when the user presses ESC.
|
134
|
-
|
135
|
-
|
199
|
+
up.magic.onEscape(-> close())
|
200
|
+
|
201
|
+
###*
|
202
|
+
When an element with this attribute is clicked,
|
203
|
+
a currently open popup is closed.
|
204
|
+
|
205
|
+
@method [up-close]
|
206
|
+
@ujs
|
207
|
+
###
|
208
|
+
up.on('click', '[up-close]', (event, $element) ->
|
209
|
+
if $element.closest('.up-popup')
|
136
210
|
close()
|
137
211
|
)
|
138
212
|
|
139
213
|
open: open
|
140
214
|
close: close
|
141
215
|
source: source
|
216
|
+
defaults: defaults
|
142
217
|
|
143
218
|
)()
|
@@ -0,0 +1,93 @@
|
|
1
|
+
###*
|
2
|
+
Tooltips
|
3
|
+
========
|
4
|
+
|
5
|
+
TODO: Write some documentation.
|
6
|
+
|
7
|
+
@class up.tooltip
|
8
|
+
###
|
9
|
+
up.tooltip = (->
|
10
|
+
|
11
|
+
u = up.util
|
12
|
+
|
13
|
+
position = ($link, $tooltip, origin) ->
|
14
|
+
linkBox = u.measure($link)
|
15
|
+
tooltipBox = u.measure($tooltip)
|
16
|
+
css = switch origin
|
17
|
+
when "top"
|
18
|
+
left: linkBox.left + 0.5 * (linkBox.width - tooltipBox.width)
|
19
|
+
top: linkBox.top - tooltipBox.height
|
20
|
+
when "bottom"
|
21
|
+
left: linkBox.left + 0.5 * (linkBox.width - tooltipBox.width)
|
22
|
+
top: linkBox.top + linkBox.height
|
23
|
+
else
|
24
|
+
u.error("Unknown origin", origin)
|
25
|
+
$tooltip.attr('up-origin', origin)
|
26
|
+
$tooltip.css(css)
|
27
|
+
|
28
|
+
createElement = (html) ->
|
29
|
+
u.$createElementFromSelector('.up-tooltip')
|
30
|
+
.html(html)
|
31
|
+
.appendTo(document.body)
|
32
|
+
|
33
|
+
###*
|
34
|
+
Opens a tooltip.
|
35
|
+
|
36
|
+
@method up.tooltip.open
|
37
|
+
@param {Element|jQuery|String} elementOrSelector
|
38
|
+
@param {String} html
|
39
|
+
@param {String} [options.origin='top']
|
40
|
+
@param {String} [options.animation]
|
41
|
+
###
|
42
|
+
open = (linkOrSelector, options = {}) ->
|
43
|
+
$link = $(linkOrSelector)
|
44
|
+
html = u.option(options.html, $link.attr('up-tooltip'))
|
45
|
+
origin = u.option(options.origin, $link.attr('up-origin'), 'top')
|
46
|
+
animation = u.option(options.animation, $link.attr('up-animation'), 'fade-in')
|
47
|
+
close()
|
48
|
+
$tooltip = createElement(html)
|
49
|
+
position($link, $tooltip, origin)
|
50
|
+
up.animate($tooltip, animation, options)
|
51
|
+
|
52
|
+
###*
|
53
|
+
Closes a currently shown tooltip.
|
54
|
+
Does nothing if no tooltip is currently shown.
|
55
|
+
|
56
|
+
@method up.tooltip.close
|
57
|
+
@param {Object} options
|
58
|
+
See options for See options for [`up.animate`](/up.motion#up.animate).
|
59
|
+
###
|
60
|
+
close = (options) ->
|
61
|
+
$tooltip = $('.up-tooltip')
|
62
|
+
if $tooltip.length
|
63
|
+
options = u.options(options, animation: 'fade-out')
|
64
|
+
up.destroy($tooltip, options)
|
65
|
+
|
66
|
+
|
67
|
+
###*
|
68
|
+
Displays a tooltip when hovering the mouse over this element:
|
69
|
+
|
70
|
+
<a href="/decks" up-tooltip="Show all decks">Decks</a>
|
71
|
+
|
72
|
+
@method [up-tooltip]
|
73
|
+
@ujs
|
74
|
+
###
|
75
|
+
up.awaken('[up-tooltip]', ($link) ->
|
76
|
+
# Don't register these events on document since *every*
|
77
|
+
# mouse move interaction bubbles up to the document.
|
78
|
+
$link.on('mouseover', -> open($link))
|
79
|
+
$link.on('mouseout', -> close())
|
80
|
+
)
|
81
|
+
|
82
|
+
# Close the tooltip when someone clicks anywhere.
|
83
|
+
up.on('click', 'body', (event, $body) ->
|
84
|
+
close()
|
85
|
+
)
|
86
|
+
|
87
|
+
# Close the tooltip when the user presses ESC.
|
88
|
+
up.magic.onEscape(-> close())
|
89
|
+
|
90
|
+
open: open
|
91
|
+
close: close
|
92
|
+
|
93
|
+
)()
|