From 5e3902fbb11a74060a67e25075a7268bf4669034 Mon Sep 17 00:00:00 2001 From: frne Date: Sat, 11 Feb 2017 21:00:42 +0100 Subject: [PATCH 1/7] Improved readme --- README.md | 4 +++- version.sbt | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 58960a8..908c486 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,9 @@ OrientDB Scala DSL **It's a Scala DSL for OrientDb...** [![Build Status](https://travis-ci.org/acme-software/orientdb-scala-dsl.svg?branch=master)](https://travis-ci.org/acme-software/orientdb-scala-dsl) - +[![MIT licensed](https://img.shields.io/badge/license-MIT-blue.svg)](https://raw.githubusercontent.com/acme-software/orientdb-scala-dsl/master/LICENSE) +![Scala 2.11](https://img.shields.io/badge/scala-2.11-lightgrey.svg) +![Scala 2.12](https://img.shields.io/badge/scala-2.12-lightgrey.svg) *Disclaimer:* *Neiher this code, documentation nor any part of this repository is officially connected/related to diff --git a/version.sbt b/version.sbt index 9845ac5..2c9556a 100644 --- a/version.sbt +++ b/version.sbt @@ -1 +1 @@ -version := "0.1.0" +version := "0.2.0-SNAPSHOT" From 98a6e45b21429118eee4c19cd5c6746a3224b7bc Mon Sep 17 00:00:00 2001 From: frne Date: Sat, 11 Feb 2017 21:31:21 +0100 Subject: [PATCH 2/7] Added apidoc --- bin/sync-apidoc.sh | 7 + docs/README.md | 8 + .../OrientGraphDsl$VerticlesFilterQuery.html | 553 ++ .../orientDbScalaDsl/OrientGraphDsl.html | 596 ++ .../OrientVertexTypeDsl$.html | 504 ++ .../orientDbScalaDsl/OrientVertexTypeDsl.html | 556 ++ .../orientDbScalaDsl/VertexDsl$.html | 504 ++ .../orientDbScalaDsl/VertexDsl.html | 539 ++ .../package$$OrientGraphNoTxWrapper.html | 519 ++ .../package$$OrientGraphWrapper.html | 519 ++ .../package$$OrientVertexTypeWrapper.html | 519 ++ .../package$$VertexWrapper.html | 519 ++ .../orientDbScalaDsl/package.html | 287 + docs/api/2.11/ch/acmesoftware/package.html | 119 + docs/api/2.11/ch/package.html | 118 + docs/api/2.11/index.html | 52 + docs/api/2.11/index.js | 1 + docs/api/2.11/index/index-a.html | 23 + docs/api/2.11/index/index-c.html | 20 + docs/api/2.11/index/index-d.html | 17 + docs/api/2.11/index/index-f.html | 20 + docs/api/2.11/index/index-g.html | 17 + docs/api/2.11/index/index-o.html | 32 + docs/api/2.11/index/index-p.html | 20 + docs/api/2.11/index/index-u.html | 17 + docs/api/2.11/index/index-v.html | 23 + docs/api/2.11/index/index-w.html | 17 + docs/api/2.11/lib/arrow-down.png | Bin 0 -> 6232 bytes docs/api/2.11/lib/arrow-right.png | Bin 0 -> 6220 bytes docs/api/2.11/lib/class.png | Bin 0 -> 3357 bytes docs/api/2.11/lib/class_big.png | Bin 0 -> 7516 bytes docs/api/2.11/lib/class_diagram.png | Bin 0 -> 3910 bytes docs/api/2.11/lib/class_to_object_big.png | Bin 0 -> 9006 bytes docs/api/2.11/lib/constructorsbg.gif | Bin 0 -> 1206 bytes docs/api/2.11/lib/conversionbg.gif | Bin 0 -> 167 bytes docs/api/2.11/lib/defbg-blue.gif | Bin 0 -> 1544 bytes docs/api/2.11/lib/defbg-green.gif | Bin 0 -> 1341 bytes docs/api/2.11/lib/diagrams.css | 143 + docs/api/2.11/lib/diagrams.js | 324 + docs/api/2.11/lib/filter_box_left.png | Bin 0 -> 1692 bytes docs/api/2.11/lib/filter_box_left2.gif | Bin 0 -> 1462 bytes docs/api/2.11/lib/filter_box_right.png | Bin 0 -> 1803 bytes docs/api/2.11/lib/filterbg.gif | Bin 0 -> 1324 bytes docs/api/2.11/lib/filterboxbarbg.gif | Bin 0 -> 1104 bytes docs/api/2.11/lib/filterboxbarbg.png | Bin 0 -> 965 bytes docs/api/2.11/lib/filterboxbg.gif | Bin 0 -> 1366 bytes docs/api/2.11/lib/fullcommenttopbg.gif | Bin 0 -> 1115 bytes docs/api/2.11/lib/index.css | 339 + docs/api/2.11/lib/index.js | 577 ++ docs/api/2.11/lib/jquery-ui.js | 6 + docs/api/2.11/lib/jquery.js | 2 + docs/api/2.11/lib/jquery.layout.js | 5486 +++++++++++++++++ docs/api/2.11/lib/modernizr.custom.js | 4 + docs/api/2.11/lib/navigation-li-a.png | Bin 0 -> 1198 bytes docs/api/2.11/lib/navigation-li.png | Bin 0 -> 2441 bytes docs/api/2.11/lib/object.png | Bin 0 -> 3356 bytes docs/api/2.11/lib/object_big.png | Bin 0 -> 7653 bytes docs/api/2.11/lib/object_diagram.png | Bin 0 -> 3903 bytes docs/api/2.11/lib/object_to_class_big.png | Bin 0 -> 9158 bytes docs/api/2.11/lib/object_to_trait_big.png | Bin 0 -> 9200 bytes docs/api/2.11/lib/object_to_type_big.png | Bin 0 -> 9158 bytes docs/api/2.11/lib/ownderbg2.gif | Bin 0 -> 1145 bytes docs/api/2.11/lib/ownerbg.gif | Bin 0 -> 1118 bytes docs/api/2.11/lib/ownerbg2.gif | Bin 0 -> 1145 bytes docs/api/2.11/lib/package.png | Bin 0 -> 3335 bytes docs/api/2.11/lib/package_big.png | Bin 0 -> 7312 bytes docs/api/2.11/lib/packagesbg.gif | Bin 0 -> 1201 bytes docs/api/2.11/lib/permalink.png | Bin 0 -> 943 bytes docs/api/2.11/lib/ref-index.css | 30 + docs/api/2.11/lib/remove.png | Bin 0 -> 3186 bytes docs/api/2.11/lib/scheduler.js | 71 + docs/api/2.11/lib/selected-implicits.png | Bin 0 -> 1150 bytes .../api/2.11/lib/selected-right-implicits.png | Bin 0 -> 646 bytes docs/api/2.11/lib/selected-right.png | Bin 0 -> 1380 bytes docs/api/2.11/lib/selected.png | Bin 0 -> 1864 bytes docs/api/2.11/lib/selected2-right.png | Bin 0 -> 1434 bytes docs/api/2.11/lib/selected2.png | Bin 0 -> 1965 bytes docs/api/2.11/lib/signaturebg.gif | Bin 0 -> 1214 bytes docs/api/2.11/lib/signaturebg2.gif | Bin 0 -> 1209 bytes docs/api/2.11/lib/template.css | 893 +++ docs/api/2.11/lib/template.js | 500 ++ docs/api/2.11/lib/tools.tooltip.js | 14 + docs/api/2.11/lib/trait.png | Bin 0 -> 3374 bytes docs/api/2.11/lib/trait_big.png | Bin 0 -> 7410 bytes docs/api/2.11/lib/trait_diagram.png | Bin 0 -> 3882 bytes docs/api/2.11/lib/trait_to_object_big.png | Bin 0 -> 8967 bytes docs/api/2.11/lib/type.png | Bin 0 -> 1445 bytes docs/api/2.11/lib/type_big.png | Bin 0 -> 4236 bytes docs/api/2.11/lib/type_diagram.png | Bin 0 -> 1841 bytes docs/api/2.11/lib/type_to_object_big.png | Bin 0 -> 4969 bytes docs/api/2.11/lib/typebg.gif | Bin 0 -> 1206 bytes docs/api/2.11/lib/unselected.png | Bin 0 -> 1879 bytes docs/api/2.11/lib/valuemembersbg.gif | Bin 0 -> 1206 bytes docs/api/2.11/package.html | 118 + docs/api/2.12/ch/acmesoftware/index.html | 197 + .../OrientGraphDsl$VerticlesFilterQuery.html | 675 ++ .../orientDbScalaDsl/OrientGraphDsl.html | 736 +++ .../OrientVertexTypeDsl$.html | 646 ++ .../orientDbScalaDsl/OrientVertexTypeDsl.html | 695 +++ .../orientDbScalaDsl/VertexDsl$.html | 646 ++ .../orientDbScalaDsl/VertexDsl.html | 679 ++ .../acmesoftware/orientDbScalaDsl/index.html | 458 ++ .../package$$OrientGraphNoTxWrapper.html | 660 ++ .../package$$OrientGraphWrapper.html | 660 ++ .../package$$OrientVertexTypeWrapper.html | 660 ++ .../package$$VertexWrapper.html | 660 ++ docs/api/2.12/ch/index.html | 178 + docs/api/2.12/index.html | 160 + docs/api/2.12/index.js | 1 + docs/api/2.12/lib/MaterialIcons-Regular.eot | Bin 0 -> 137002 bytes docs/api/2.12/lib/MaterialIcons-Regular.ttf | Bin 0 -> 122640 bytes docs/api/2.12/lib/MaterialIcons-Regular.woff | Bin 0 -> 56792 bytes docs/api/2.12/lib/abstract_type.svg | 54 + docs/api/2.12/lib/class.svg | 54 + docs/api/2.12/lib/class_comp.svg | 57 + docs/api/2.12/lib/class_diagram.png | Bin 0 -> 3910 bytes docs/api/2.12/lib/diagrams.css | 203 + docs/api/2.12/lib/diagrams.js | 240 + docs/api/2.12/lib/index.css | 873 +++ docs/api/2.12/lib/index.js | 604 ++ docs/api/2.12/lib/jquery.js | 2 + docs/api/2.12/lib/jquery.mousewheel.min.js | 8 + docs/api/2.12/lib/jquery.panzoom.min.js | 9 + docs/api/2.12/lib/lato-v11-latin-100.eot | Bin 0 -> 30159 bytes docs/api/2.12/lib/lato-v11-latin-100.ttf | Bin 0 -> 76144 bytes docs/api/2.12/lib/lato-v11-latin-100.woff | Bin 0 -> 33288 bytes docs/api/2.12/lib/lato-v11-latin-regular.eot | Bin 0 -> 34943 bytes docs/api/2.12/lib/lato-v11-latin-regular.ttf | Bin 0 -> 81980 bytes docs/api/2.12/lib/lato-v11-latin-regular.woff | Bin 0 -> 35700 bytes docs/api/2.12/lib/modernizr.custom.js | 4 + docs/api/2.12/lib/object.svg | 54 + docs/api/2.12/lib/object_comp.svg | 57 + docs/api/2.12/lib/object_comp_trait.svg | 57 + docs/api/2.12/lib/object_diagram.png | Bin 0 -> 3903 bytes .../2.12/lib/open-sans-v13-latin-regular.eot | Bin 0 -> 18233 bytes .../2.12/lib/open-sans-v13-latin-regular.ttf | Bin 0 -> 34156 bytes .../2.12/lib/open-sans-v13-latin-regular.woff | Bin 0 -> 20248 bytes docs/api/2.12/lib/ownderbg2.gif | Bin 0 -> 1145 bytes docs/api/2.12/lib/ownerbg.gif | Bin 0 -> 1118 bytes docs/api/2.12/lib/ownerbg2.gif | Bin 0 -> 1145 bytes docs/api/2.12/lib/package.svg | 54 + docs/api/2.12/lib/ref-index.css | 56 + docs/api/2.12/lib/scheduler.js | 108 + .../2.12/lib/source-code-pro-v6-latin-700.eot | Bin 0 -> 13750 bytes .../2.12/lib/source-code-pro-v6-latin-700.ttf | Bin 0 -> 27696 bytes .../lib/source-code-pro-v6-latin-700.woff | Bin 0 -> 15336 bytes .../lib/source-code-pro-v6-latin-regular.eot | Bin 0 -> 14004 bytes .../lib/source-code-pro-v6-latin-regular.ttf | Bin 0 -> 27916 bytes .../lib/source-code-pro-v6-latin-regular.woff | Bin 0 -> 15636 bytes docs/api/2.12/lib/template.css | 1175 ++++ docs/api/2.12/lib/template.js | 548 ++ docs/api/2.12/lib/tools.tooltip.js | 14 + docs/api/2.12/lib/trait.svg | 54 + docs/api/2.12/lib/trait_comp.svg | 57 + docs/api/2.12/lib/trait_diagram.png | Bin 0 -> 3882 bytes docs/api/2.12/lib/type_diagram.png | Bin 0 -> 1841 bytes .../$acacc012d2ccdc72095b$.class | Bin 0 -> 1217 bytes .../$acacc012d2ccdc72095b.cache | 1 + .../$acacc012d2ccdc72095b.class | Bin 0 -> 645 bytes 159 files changed, 26687 insertions(+) create mode 100755 bin/sync-apidoc.sh create mode 100644 docs/README.md create mode 100644 docs/api/2.11/ch/acmesoftware/orientDbScalaDsl/OrientGraphDsl$VerticlesFilterQuery.html create mode 100644 docs/api/2.11/ch/acmesoftware/orientDbScalaDsl/OrientGraphDsl.html create mode 100644 docs/api/2.11/ch/acmesoftware/orientDbScalaDsl/OrientVertexTypeDsl$.html create mode 100644 docs/api/2.11/ch/acmesoftware/orientDbScalaDsl/OrientVertexTypeDsl.html create mode 100644 docs/api/2.11/ch/acmesoftware/orientDbScalaDsl/VertexDsl$.html create mode 100644 docs/api/2.11/ch/acmesoftware/orientDbScalaDsl/VertexDsl.html create mode 100644 docs/api/2.11/ch/acmesoftware/orientDbScalaDsl/package$$OrientGraphNoTxWrapper.html create mode 100644 docs/api/2.11/ch/acmesoftware/orientDbScalaDsl/package$$OrientGraphWrapper.html create mode 100644 docs/api/2.11/ch/acmesoftware/orientDbScalaDsl/package$$OrientVertexTypeWrapper.html create mode 100644 docs/api/2.11/ch/acmesoftware/orientDbScalaDsl/package$$VertexWrapper.html create mode 100644 docs/api/2.11/ch/acmesoftware/orientDbScalaDsl/package.html create mode 100644 docs/api/2.11/ch/acmesoftware/package.html create mode 100644 docs/api/2.11/ch/package.html create mode 100644 docs/api/2.11/index.html create mode 100644 docs/api/2.11/index.js create mode 100644 docs/api/2.11/index/index-a.html create mode 100644 docs/api/2.11/index/index-c.html create mode 100644 docs/api/2.11/index/index-d.html create mode 100644 docs/api/2.11/index/index-f.html create mode 100644 docs/api/2.11/index/index-g.html create mode 100644 docs/api/2.11/index/index-o.html create mode 100644 docs/api/2.11/index/index-p.html create mode 100644 docs/api/2.11/index/index-u.html create mode 100644 docs/api/2.11/index/index-v.html create mode 100644 docs/api/2.11/index/index-w.html create mode 100644 docs/api/2.11/lib/arrow-down.png create mode 100644 docs/api/2.11/lib/arrow-right.png create mode 100644 docs/api/2.11/lib/class.png create mode 100644 docs/api/2.11/lib/class_big.png create mode 100644 docs/api/2.11/lib/class_diagram.png create mode 100644 docs/api/2.11/lib/class_to_object_big.png create mode 100644 docs/api/2.11/lib/constructorsbg.gif create mode 100644 docs/api/2.11/lib/conversionbg.gif create mode 100644 docs/api/2.11/lib/defbg-blue.gif create mode 100644 docs/api/2.11/lib/defbg-green.gif create mode 100644 docs/api/2.11/lib/diagrams.css create mode 100644 docs/api/2.11/lib/diagrams.js create mode 100644 docs/api/2.11/lib/filter_box_left.png create mode 100644 docs/api/2.11/lib/filter_box_left2.gif create mode 100644 docs/api/2.11/lib/filter_box_right.png create mode 100644 docs/api/2.11/lib/filterbg.gif create mode 100644 docs/api/2.11/lib/filterboxbarbg.gif create mode 100644 docs/api/2.11/lib/filterboxbarbg.png create mode 100644 docs/api/2.11/lib/filterboxbg.gif create mode 100644 docs/api/2.11/lib/fullcommenttopbg.gif create mode 100644 docs/api/2.11/lib/index.css create mode 100644 docs/api/2.11/lib/index.js create mode 100644 docs/api/2.11/lib/jquery-ui.js create mode 100644 docs/api/2.11/lib/jquery.js create mode 100644 docs/api/2.11/lib/jquery.layout.js create mode 100644 docs/api/2.11/lib/modernizr.custom.js create mode 100644 docs/api/2.11/lib/navigation-li-a.png create mode 100644 docs/api/2.11/lib/navigation-li.png create mode 100644 docs/api/2.11/lib/object.png create mode 100644 docs/api/2.11/lib/object_big.png create mode 100644 docs/api/2.11/lib/object_diagram.png create mode 100644 docs/api/2.11/lib/object_to_class_big.png create mode 100644 docs/api/2.11/lib/object_to_trait_big.png create mode 100644 docs/api/2.11/lib/object_to_type_big.png create mode 100644 docs/api/2.11/lib/ownderbg2.gif create mode 100644 docs/api/2.11/lib/ownerbg.gif create mode 100644 docs/api/2.11/lib/ownerbg2.gif create mode 100644 docs/api/2.11/lib/package.png create mode 100644 docs/api/2.11/lib/package_big.png create mode 100644 docs/api/2.11/lib/packagesbg.gif create mode 100644 docs/api/2.11/lib/permalink.png create mode 100644 docs/api/2.11/lib/ref-index.css create mode 100644 docs/api/2.11/lib/remove.png create mode 100644 docs/api/2.11/lib/scheduler.js create mode 100644 docs/api/2.11/lib/selected-implicits.png create mode 100644 docs/api/2.11/lib/selected-right-implicits.png create mode 100644 docs/api/2.11/lib/selected-right.png create mode 100644 docs/api/2.11/lib/selected.png create mode 100644 docs/api/2.11/lib/selected2-right.png create mode 100644 docs/api/2.11/lib/selected2.png create mode 100644 docs/api/2.11/lib/signaturebg.gif create mode 100644 docs/api/2.11/lib/signaturebg2.gif create mode 100644 docs/api/2.11/lib/template.css create mode 100644 docs/api/2.11/lib/template.js create mode 100644 docs/api/2.11/lib/tools.tooltip.js create mode 100644 docs/api/2.11/lib/trait.png create mode 100644 docs/api/2.11/lib/trait_big.png create mode 100644 docs/api/2.11/lib/trait_diagram.png create mode 100644 docs/api/2.11/lib/trait_to_object_big.png create mode 100644 docs/api/2.11/lib/type.png create mode 100644 docs/api/2.11/lib/type_big.png create mode 100644 docs/api/2.11/lib/type_diagram.png create mode 100644 docs/api/2.11/lib/type_to_object_big.png create mode 100644 docs/api/2.11/lib/typebg.gif create mode 100644 docs/api/2.11/lib/unselected.png create mode 100644 docs/api/2.11/lib/valuemembersbg.gif create mode 100644 docs/api/2.11/package.html create mode 100644 docs/api/2.12/ch/acmesoftware/index.html create mode 100644 docs/api/2.12/ch/acmesoftware/orientDbScalaDsl/OrientGraphDsl$VerticlesFilterQuery.html create mode 100644 docs/api/2.12/ch/acmesoftware/orientDbScalaDsl/OrientGraphDsl.html create mode 100644 docs/api/2.12/ch/acmesoftware/orientDbScalaDsl/OrientVertexTypeDsl$.html create mode 100644 docs/api/2.12/ch/acmesoftware/orientDbScalaDsl/OrientVertexTypeDsl.html create mode 100644 docs/api/2.12/ch/acmesoftware/orientDbScalaDsl/VertexDsl$.html create mode 100644 docs/api/2.12/ch/acmesoftware/orientDbScalaDsl/VertexDsl.html create mode 100644 docs/api/2.12/ch/acmesoftware/orientDbScalaDsl/index.html create mode 100644 docs/api/2.12/ch/acmesoftware/orientDbScalaDsl/package$$OrientGraphNoTxWrapper.html create mode 100644 docs/api/2.12/ch/acmesoftware/orientDbScalaDsl/package$$OrientGraphWrapper.html create mode 100644 docs/api/2.12/ch/acmesoftware/orientDbScalaDsl/package$$OrientVertexTypeWrapper.html create mode 100644 docs/api/2.12/ch/acmesoftware/orientDbScalaDsl/package$$VertexWrapper.html create mode 100644 docs/api/2.12/ch/index.html create mode 100644 docs/api/2.12/index.html create mode 100644 docs/api/2.12/index.js create mode 100644 docs/api/2.12/lib/MaterialIcons-Regular.eot create mode 100644 docs/api/2.12/lib/MaterialIcons-Regular.ttf create mode 100644 docs/api/2.12/lib/MaterialIcons-Regular.woff create mode 100644 docs/api/2.12/lib/abstract_type.svg create mode 100644 docs/api/2.12/lib/class.svg create mode 100644 docs/api/2.12/lib/class_comp.svg create mode 100644 docs/api/2.12/lib/class_diagram.png create mode 100644 docs/api/2.12/lib/diagrams.css create mode 100644 docs/api/2.12/lib/diagrams.js create mode 100644 docs/api/2.12/lib/index.css create mode 100644 docs/api/2.12/lib/index.js create mode 100644 docs/api/2.12/lib/jquery.js create mode 100644 docs/api/2.12/lib/jquery.mousewheel.min.js create mode 100644 docs/api/2.12/lib/jquery.panzoom.min.js create mode 100644 docs/api/2.12/lib/lato-v11-latin-100.eot create mode 100644 docs/api/2.12/lib/lato-v11-latin-100.ttf create mode 100644 docs/api/2.12/lib/lato-v11-latin-100.woff create mode 100644 docs/api/2.12/lib/lato-v11-latin-regular.eot create mode 100644 docs/api/2.12/lib/lato-v11-latin-regular.ttf create mode 100644 docs/api/2.12/lib/lato-v11-latin-regular.woff create mode 100644 docs/api/2.12/lib/modernizr.custom.js create mode 100644 docs/api/2.12/lib/object.svg create mode 100644 docs/api/2.12/lib/object_comp.svg create mode 100644 docs/api/2.12/lib/object_comp_trait.svg create mode 100644 docs/api/2.12/lib/object_diagram.png create mode 100644 docs/api/2.12/lib/open-sans-v13-latin-regular.eot create mode 100644 docs/api/2.12/lib/open-sans-v13-latin-regular.ttf create mode 100644 docs/api/2.12/lib/open-sans-v13-latin-regular.woff create mode 100644 docs/api/2.12/lib/ownderbg2.gif create mode 100644 docs/api/2.12/lib/ownerbg.gif create mode 100644 docs/api/2.12/lib/ownerbg2.gif create mode 100644 docs/api/2.12/lib/package.svg create mode 100644 docs/api/2.12/lib/ref-index.css create mode 100644 docs/api/2.12/lib/scheduler.js create mode 100644 docs/api/2.12/lib/source-code-pro-v6-latin-700.eot create mode 100644 docs/api/2.12/lib/source-code-pro-v6-latin-700.ttf create mode 100644 docs/api/2.12/lib/source-code-pro-v6-latin-700.woff create mode 100644 docs/api/2.12/lib/source-code-pro-v6-latin-regular.eot create mode 100644 docs/api/2.12/lib/source-code-pro-v6-latin-regular.ttf create mode 100644 docs/api/2.12/lib/source-code-pro-v6-latin-regular.woff create mode 100644 docs/api/2.12/lib/template.css create mode 100644 docs/api/2.12/lib/template.js create mode 100644 docs/api/2.12/lib/tools.tooltip.js create mode 100644 docs/api/2.12/lib/trait.svg create mode 100644 docs/api/2.12/lib/trait_comp.svg create mode 100644 docs/api/2.12/lib/trait_diagram.png create mode 100644 docs/api/2.12/lib/type_diagram.png create mode 100644 project/project/target/config-classes/$acacc012d2ccdc72095b$.class create mode 100644 project/project/target/config-classes/$acacc012d2ccdc72095b.cache create mode 100644 project/project/target/config-classes/$acacc012d2ccdc72095b.class diff --git a/bin/sync-apidoc.sh b/bin/sync-apidoc.sh new file mode 100755 index 0000000..b62bbcd --- /dev/null +++ b/bin/sync-apidoc.sh @@ -0,0 +1,7 @@ +#!/usr/bin/env bash + +rm -rf docs/api +mkdir -p docs/api/2.11 +mkdir -p docs/api/2.12 +cp -R target/scala-2.11/api/* docs/api/2.11 +cp -R target/scala-2.12/api/* docs/api/2.12 diff --git a/docs/README.md b/docs/README.md new file mode 100644 index 0000000..921f072 --- /dev/null +++ b/docs/README.md @@ -0,0 +1,8 @@ +OrinteDn Scala DSL - Documentation +================================= + +API Doc +------- + +**[Scala 2.11](api/2.11/index.html)** +**[Scala 2.12](api/2.12/index.html)** diff --git a/docs/api/2.11/ch/acmesoftware/orientDbScalaDsl/OrientGraphDsl$VerticlesFilterQuery.html b/docs/api/2.11/ch/acmesoftware/orientDbScalaDsl/OrientGraphDsl$VerticlesFilterQuery.html new file mode 100644 index 0000000..efbbfaa --- /dev/null +++ b/docs/api/2.11/ch/acmesoftware/orientDbScalaDsl/OrientGraphDsl$VerticlesFilterQuery.html @@ -0,0 +1,553 @@ + + + + VerticlesFilterQuery - ch.acmesoftware.orientDbScalaDsl.OrientGraphDsl.VerticlesFilterQuery + + + + + + + + + + + + + + + +
+ Class +

ch.acmesoftware.orientDbScalaDsl.OrientGraphDsl

+

VerticlesFilterQuery

Related Doc: + package OrientGraphDsl +

+ + Permalink + + +
+ +

+ + + class + + + VerticlesFilterQuery extends AnyRef + +

+ +
+ Linear Supertypes +
AnyRef, Any
+
+ + +
+
+
+ Ordering +
    + +
  1. Alphabetic
  2. +
  3. By Inheritance
  4. +
+
+
+ Inherited
+
+
    +
  1. VerticlesFilterQuery
  2. AnyRef
  3. Any
  4. +
+
+ +
    +
  1. Hide All
  2. +
  3. Show All
  4. +
+
+
+ Visibility +
  1. Public
  2. All
+
+
+ +
+
+
+

Instance Constructors

+
  1. + + +

    + + + new + + + VerticlesFilterQuery(label: String, fieldFilters: Seq[(String, AnyRef)] = Nil) + +

    + + Permalink + + + +
+
+ + + + + +
+

Value Members

+
  1. + + +

    + + final + def + + + !=(arg0: Any): Boolean + +

    + + Permalink + + +
    Definition Classes
    AnyRef → Any
    +
  2. + + +

    + + final + def + + + ##(): Int + +

    + + Permalink + + +
    Definition Classes
    AnyRef → Any
    +
  3. + + +

    + + final + def + + + ==(arg0: Any): Boolean + +

    + + Permalink + + +
    Definition Classes
    AnyRef → Any
    +
  4. + + +

    + + final + def + + + asInstanceOf[T0]: T0 + +

    + + Permalink + + +
    Definition Classes
    Any
    +
  5. + + +

    + + + def + + + clone(): AnyRef + +

    + + Permalink + + +
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    + @throws( + + ... + ) + +
    +
  6. + + +

    + + final + def + + + eq(arg0: AnyRef): Boolean + +

    + + Permalink + + +
    Definition Classes
    AnyRef
    +
  7. + + +

    + + + def + + + equals(arg0: Any): Boolean + +

    + + Permalink + + +
    Definition Classes
    AnyRef → Any
    +
  8. + + +

    + + + def + + + filter(filters: Seq[(String, AnyRef)]): VerticlesFilterQuery + +

    + + Permalink + + + +
  9. + + +

    + + + def + + + filter(filter: (String, AnyRef)): VerticlesFilterQuery + +

    + + Permalink + + + +
  10. + + +

    + + + def + + + finalize(): Unit + +

    + + Permalink + + +
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    + @throws( + + classOf[java.lang.Throwable] + ) + +
    +
  11. + + +

    + + + def + + + get(): Iterable[Vertex] + +

    + + Permalink + + + +
  12. + + +

    + + final + def + + + getClass(): Class[_] + +

    + + Permalink + + +
    Definition Classes
    AnyRef → Any
    +
  13. + + +

    + + + def + + + hashCode(): Int + +

    + + Permalink + + +
    Definition Classes
    AnyRef → Any
    +
  14. + + +

    + + final + def + + + isInstanceOf[T0]: Boolean + +

    + + Permalink + + +
    Definition Classes
    Any
    +
  15. + + +

    + + final + def + + + ne(arg0: AnyRef): Boolean + +

    + + Permalink + + +
    Definition Classes
    AnyRef
    +
  16. + + +

    + + final + def + + + notify(): Unit + +

    + + Permalink + + +
    Definition Classes
    AnyRef
    +
  17. + + +

    + + final + def + + + notifyAll(): Unit + +

    + + Permalink + + +
    Definition Classes
    AnyRef
    +
  18. + + +

    + + final + def + + + synchronized[T0](arg0: ⇒ T0): T0 + +

    + + Permalink + + +
    Definition Classes
    AnyRef
    +
  19. + + +

    + + + def + + + toString(): String + +

    + + Permalink + + +
    Definition Classes
    AnyRef → Any
    +
  20. + + +

    + + final + def + + + wait(): Unit + +

    + + Permalink + + +
    Definition Classes
    AnyRef
    Annotations
    + @throws( + + ... + ) + +
    +
  21. + + +

    + + final + def + + + wait(arg0: Long, arg1: Int): Unit + +

    + + Permalink + + +
    Definition Classes
    AnyRef
    Annotations
    + @throws( + + ... + ) + +
    +
  22. + + +

    + + final + def + + + wait(arg0: Long): Unit + +

    + + Permalink + + +
    Definition Classes
    AnyRef
    Annotations
    + @throws( + + ... + ) + +
    +
+
+ + + + +
+ +
+
+

Inherited from AnyRef

+
+

Inherited from Any

+
+ +
+ +
+
+

Ungrouped

+ +
+
+ +
+ +
+ + + + + + diff --git a/docs/api/2.11/ch/acmesoftware/orientDbScalaDsl/OrientGraphDsl.html b/docs/api/2.11/ch/acmesoftware/orientDbScalaDsl/OrientGraphDsl.html new file mode 100644 index 0000000..8fff534 --- /dev/null +++ b/docs/api/2.11/ch/acmesoftware/orientDbScalaDsl/OrientGraphDsl.html @@ -0,0 +1,596 @@ + + + + OrientGraphDsl - ch.acmesoftware.orientDbScalaDsl.OrientGraphDsl + + + + + + + + + + + + + + + +
+ Class +

ch.acmesoftware.orientDbScalaDsl

+

OrientGraphDsl

Related Doc: + package orientDbScalaDsl +

+ + Permalink + + +
+ +

+ + + class + + + OrientGraphDsl extends AnyRef + +

+ +

DSL extension for the OrientBaseGraph class

See methods for detailed API and examples... +

+ Linear Supertypes +
AnyRef, Any
+
+ + +
+
+
+ Ordering +
    + +
  1. Alphabetic
  2. +
  3. By Inheritance
  4. +
+
+
+ Inherited
+
+
    +
  1. OrientGraphDsl
  2. AnyRef
  3. Any
  4. +
+
+ +
    +
  1. Hide All
  2. +
  3. Show All
  4. +
+
+
+ Visibility +
  1. Public
  2. All
+
+
+ +
+
+
+

Instance Constructors

+
  1. + + +

    + + + new + + + OrientGraphDsl(g: OrientBaseGraph) + +

    + + Permalink + + +

    g

    The original Java instance to wrap

    +
+
+ +
+

Type Members

+
  1. + + +

    + + + class + + + VerticlesFilterQuery extends AnyRef + +

    + + Permalink + + + +
+
+ + + +
+

Value Members

+
  1. + + +

    + + final + def + + + !=(arg0: Any): Boolean + +

    + + Permalink + + +
    Definition Classes
    AnyRef → Any
    +
  2. + + +

    + + final + def + + + ##(): Int + +

    + + Permalink + + +
    Definition Classes
    AnyRef → Any
    +
  3. + + +

    + + final + def + + + ==(arg0: Any): Boolean + +

    + + Permalink + + +
    Definition Classes
    AnyRef → Any
    +
  4. + + +

    + + + def + + + addVertex(label: String): VertexDsl + +

    + + Permalink + + +

    Adds a vertex to graph

    Adds a vertex to graph

    Example

    // add vertex
    +g.dsl addVertex "Person" withProperty "name" -> "Frank"
    +g.dsl addVertex "Customer" withProperty "name" -> "ACME" and "active" -> true
    +
  5. + + +

    + + final + def + + + asInstanceOf[T0]: T0 + +

    + + Permalink + + +
    Definition Classes
    Any
    +
  6. + + +

    + + + def + + + clone(): AnyRef + +

    + + Permalink + + +
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    + @throws( + + ... + ) + +
    +
  7. + + +

    + + + def + + + createVertexType(label: String): OrientVertexTypeDsl + +

    + + Permalink + + +

    Creates a new vertex type (sometimes refered to as "class)

    Creates a new vertex type (sometimes refered to as "class)

    Example

    g.dsl createVertexType "SomeLabel"
    +
    +// ...with properties
    +g.dsl createVertexType "Person" withProperty "name" -> STRING
    +g.dsl createVertexType "User" withProperty "name" -> STRING and "active" -> BOOLEAN
    +
    +// ...and indexes
    +g.dsl createVertexType "City" withProperty "name" -> STRING and "zip" -> INTEGER unique "name" unique "zip"
    +
    +// edit existing vertex type
    +g.getVertexType("Person").dsl withProperty "age" -> INTEGER
    label

    The lable of the vertex type to create

    returns

    An OrientVertexTypeDsl instance

    +
  8. + + +

    + + final + def + + + eq(arg0: AnyRef): Boolean + +

    + + Permalink + + +
    Definition Classes
    AnyRef
    +
  9. + + +

    + + + def + + + equals(arg0: Any): Boolean + +

    + + Permalink + + +
    Definition Classes
    AnyRef → Any
    +
  10. + + +

    + + + def + + + finalize(): Unit + +

    + + Permalink + + +
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    + @throws( + + classOf[java.lang.Throwable] + ) + +
    +
  11. + + +

    + + + def + + + findVertices(label: String): VerticlesFilterQuery + +

    + + Permalink + + +

    Creates a by-label filter query

    Creates a by-label filter query

    Example

    g.findVertices("Person").get
    +
    +g.findVertices("Person")
    +.filter("name" -> "Frank")
    +.filter("age" -> 28)
    +.filter("active" -> true)
    +.get
    +
    +g.findVertices("Person")
    +.filter("name" -> "Frank", "age" -> 28, "active" -> true)
    +.get
    label

    The label to filter by

    returns

    A by-label filter wuery

    +
  12. + + +

    + + final + def + + + getClass(): Class[_] + +

    + + Permalink + + +
    Definition Classes
    AnyRef → Any
    +
  13. + + +

    + + + def + + + hashCode(): Int + +

    + + Permalink + + +
    Definition Classes
    AnyRef → Any
    +
  14. + + +

    + + final + def + + + isInstanceOf[T0]: Boolean + +

    + + Permalink + + +
    Definition Classes
    Any
    +
  15. + + +

    + + final + def + + + ne(arg0: AnyRef): Boolean + +

    + + Permalink + + +
    Definition Classes
    AnyRef
    +
  16. + + +

    + + final + def + + + notify(): Unit + +

    + + Permalink + + +
    Definition Classes
    AnyRef
    +
  17. + + +

    + + final + def + + + notifyAll(): Unit + +

    + + Permalink + + +
    Definition Classes
    AnyRef
    +
  18. + + +

    + + final + def + + + synchronized[T0](arg0: ⇒ T0): T0 + +

    + + Permalink + + +
    Definition Classes
    AnyRef
    +
  19. + + +

    + + + def + + + toString(): String + +

    + + Permalink + + +
    Definition Classes
    AnyRef → Any
    +
  20. + + +

    + + final + def + + + wait(): Unit + +

    + + Permalink + + +
    Definition Classes
    AnyRef
    Annotations
    + @throws( + + ... + ) + +
    +
  21. + + +

    + + final + def + + + wait(arg0: Long, arg1: Int): Unit + +

    + + Permalink + + +
    Definition Classes
    AnyRef
    Annotations
    + @throws( + + ... + ) + +
    +
  22. + + +

    + + final + def + + + wait(arg0: Long): Unit + +

    + + Permalink + + +
    Definition Classes
    AnyRef
    Annotations
    + @throws( + + ... + ) + +
    +
+
+ + + + +
+ +
+
+

Inherited from AnyRef

+
+

Inherited from Any

+
+ +
+ +
+
+

Ungrouped

+ +
+
+ +
+ +
+ + + + + + diff --git a/docs/api/2.11/ch/acmesoftware/orientDbScalaDsl/OrientVertexTypeDsl$.html b/docs/api/2.11/ch/acmesoftware/orientDbScalaDsl/OrientVertexTypeDsl$.html new file mode 100644 index 0000000..90b96bc --- /dev/null +++ b/docs/api/2.11/ch/acmesoftware/orientDbScalaDsl/OrientVertexTypeDsl$.html @@ -0,0 +1,504 @@ + + + + OrientVertexTypeDsl - ch.acmesoftware.orientDbScalaDsl.OrientVertexTypeDsl + + + + + + + + + + + + + + + + + +

+ + + object + + + OrientVertexTypeDsl + +

+ +
+ Linear Supertypes +
AnyRef, Any
+
+ + +
+
+
+ Ordering +
    + +
  1. Alphabetic
  2. +
  3. By Inheritance
  4. +
+
+
+ Inherited
+
+
    +
  1. OrientVertexTypeDsl
  2. AnyRef
  3. Any
  4. +
+
+ +
    +
  1. Hide All
  2. +
  3. Show All
  4. +
+
+
+ Visibility +
  1. Public
  2. All
+
+
+ +
+
+ + +
+

Type Members

+
  1. + + +

    + + + type + + + PropertyDefinition = (String, OType) + +

    + + Permalink + + + +
+
+ + + +
+

Value Members

+
  1. + + +

    + + final + def + + + !=(arg0: Any): Boolean + +

    + + Permalink + + +
    Definition Classes
    AnyRef → Any
    +
  2. + + +

    + + final + def + + + ##(): Int + +

    + + Permalink + + +
    Definition Classes
    AnyRef → Any
    +
  3. + + +

    + + final + def + + + ==(arg0: Any): Boolean + +

    + + Permalink + + +
    Definition Classes
    AnyRef → Any
    +
  4. + + +

    + + final + def + + + asInstanceOf[T0]: T0 + +

    + + Permalink + + +
    Definition Classes
    Any
    +
  5. + + +

    + + + def + + + clone(): AnyRef + +

    + + Permalink + + +
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    + @throws( + + ... + ) + +
    +
  6. + + +

    + + final + def + + + eq(arg0: AnyRef): Boolean + +

    + + Permalink + + +
    Definition Classes
    AnyRef
    +
  7. + + +

    + + + def + + + equals(arg0: Any): Boolean + +

    + + Permalink + + +
    Definition Classes
    AnyRef → Any
    +
  8. + + +

    + + + def + + + finalize(): Unit + +

    + + Permalink + + +
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    + @throws( + + classOf[java.lang.Throwable] + ) + +
    +
  9. + + +

    + + final + def + + + getClass(): Class[_] + +

    + + Permalink + + +
    Definition Classes
    AnyRef → Any
    +
  10. + + +

    + + + def + + + hashCode(): Int + +

    + + Permalink + + +
    Definition Classes
    AnyRef → Any
    +
  11. + + +

    + + final + def + + + isInstanceOf[T0]: Boolean + +

    + + Permalink + + +
    Definition Classes
    Any
    +
  12. + + +

    + + final + def + + + ne(arg0: AnyRef): Boolean + +

    + + Permalink + + +
    Definition Classes
    AnyRef
    +
  13. + + +

    + + final + def + + + notify(): Unit + +

    + + Permalink + + +
    Definition Classes
    AnyRef
    +
  14. + + +

    + + final + def + + + notifyAll(): Unit + +

    + + Permalink + + +
    Definition Classes
    AnyRef
    +
  15. + + +

    + + final + def + + + synchronized[T0](arg0: ⇒ T0): T0 + +

    + + Permalink + + +
    Definition Classes
    AnyRef
    +
  16. + + +

    + + + def + + + toString(): String + +

    + + Permalink + + +
    Definition Classes
    AnyRef → Any
    +
  17. + + +

    + + final + def + + + wait(): Unit + +

    + + Permalink + + +
    Definition Classes
    AnyRef
    Annotations
    + @throws( + + ... + ) + +
    +
  18. + + +

    + + final + def + + + wait(arg0: Long, arg1: Int): Unit + +

    + + Permalink + + +
    Definition Classes
    AnyRef
    Annotations
    + @throws( + + ... + ) + +
    +
  19. + + +

    + + final + def + + + wait(arg0: Long): Unit + +

    + + Permalink + + +
    Definition Classes
    AnyRef
    Annotations
    + @throws( + + ... + ) + +
    +
+
+ + + + +
+ +
+
+

Inherited from AnyRef

+
+

Inherited from Any

+
+ +
+ +
+
+

Ungrouped

+ +
+
+ +
+ +
+ + + + + + diff --git a/docs/api/2.11/ch/acmesoftware/orientDbScalaDsl/OrientVertexTypeDsl.html b/docs/api/2.11/ch/acmesoftware/orientDbScalaDsl/OrientVertexTypeDsl.html new file mode 100644 index 0000000..7e1b09c --- /dev/null +++ b/docs/api/2.11/ch/acmesoftware/orientDbScalaDsl/OrientVertexTypeDsl.html @@ -0,0 +1,556 @@ + + + + OrientVertexTypeDsl - ch.acmesoftware.orientDbScalaDsl.OrientVertexTypeDsl + + + + + + + + + + + + + + + + + +

+ + + class + + + OrientVertexTypeDsl extends AnyRef + +

+ +

DSL extension for the OrientVertexType class

See methods for detailed API and examples... +

+ Linear Supertypes +
AnyRef, Any
+
+ + +
+
+
+ Ordering +
    + +
  1. Alphabetic
  2. +
  3. By Inheritance
  4. +
+
+
+ Inherited
+
+
    +
  1. OrientVertexTypeDsl
  2. AnyRef
  3. Any
  4. +
+
+ +
    +
  1. Hide All
  2. +
  3. Show All
  4. +
+
+
+ Visibility +
  1. Public
  2. All
+
+
+ +
+
+
+

Instance Constructors

+
  1. + + +

    + + + new + + + OrientVertexTypeDsl(vt: OrientVertexType) + +

    + + Permalink + + +

    vt

    The original Java instance to wrap

    +
+
+ + + + + +
+

Value Members

+
  1. + + +

    + + final + def + + + !=(arg0: Any): Boolean + +

    + + Permalink + + +
    Definition Classes
    AnyRef → Any
    +
  2. + + +

    + + final + def + + + ##(): Int + +

    + + Permalink + + +
    Definition Classes
    AnyRef → Any
    +
  3. + + +

    + + final + def + + + ==(arg0: Any): Boolean + +

    + + Permalink + + +
    Definition Classes
    AnyRef → Any
    +
  4. + + +

    + + + def + + + and(d: PropertyDefinition): OrientVertexTypeDsl + +

    + + Permalink + + +

    Alias for ch.acmesoftware.orientDbScalaDsl.OrientVertexTypeDsl.withProperty

    +
  5. + + +

    + + final + def + + + asInstanceOf[T0]: T0 + +

    + + Permalink + + +
    Definition Classes
    Any
    +
  6. + + +

    + + + def + + + clone(): AnyRef + +

    + + Permalink + + +
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    + @throws( + + ... + ) + +
    +
  7. + + +

    + + final + def + + + eq(arg0: AnyRef): Boolean + +

    + + Permalink + + +
    Definition Classes
    AnyRef
    +
  8. + + +

    + + + def + + + equals(arg0: Any): Boolean + +

    + + Permalink + + +
    Definition Classes
    AnyRef → Any
    +
  9. + + +

    + + + def + + + finalize(): Unit + +

    + + Permalink + + +
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    + @throws( + + classOf[java.lang.Throwable] + ) + +
    +
  10. + + +

    + + final + def + + + getClass(): Class[_] + +

    + + Permalink + + +
    Definition Classes
    AnyRef → Any
    +
  11. + + +

    + + + def + + + hashCode(): Int + +

    + + Permalink + + +
    Definition Classes
    AnyRef → Any
    +
  12. + + +

    + + final + def + + + isInstanceOf[T0]: Boolean + +

    + + Permalink + + +
    Definition Classes
    Any
    +
  13. + + +

    + + final + def + + + ne(arg0: AnyRef): Boolean + +

    + + Permalink + + +
    Definition Classes
    AnyRef
    +
  14. + + +

    + + final + def + + + notify(): Unit + +

    + + Permalink + + +
    Definition Classes
    AnyRef
    +
  15. + + +

    + + final + def + + + notifyAll(): Unit + +

    + + Permalink + + +
    Definition Classes
    AnyRef
    +
  16. + + +

    + + final + def + + + synchronized[T0](arg0: ⇒ T0): T0 + +

    + + Permalink + + +
    Definition Classes
    AnyRef
    +
  17. + + +

    + + + def + + + toString(): String + +

    + + Permalink + + +
    Definition Classes
    AnyRef → Any
    +
  18. + + +

    + + + def + + + unique(fieldName: String): OrientVertexTypeDsl + +

    + + Permalink + + +

    Adds unique index to existing vertex type

    Adds unique index to existing vertex type

    Example

    g.getVertexType("Person").dsl unique "name" unique "zip"
    fieldName

    The name of the field which should be unique

    +
  19. + + +

    + + final + def + + + wait(): Unit + +

    + + Permalink + + +
    Definition Classes
    AnyRef
    Annotations
    + @throws( + + ... + ) + +
    +
  20. + + +

    + + final + def + + + wait(arg0: Long, arg1: Int): Unit + +

    + + Permalink + + +
    Definition Classes
    AnyRef
    Annotations
    + @throws( + + ... + ) + +
    +
  21. + + +

    + + final + def + + + wait(arg0: Long): Unit + +

    + + Permalink + + +
    Definition Classes
    AnyRef
    Annotations
    + @throws( + + ... + ) + +
    +
  22. + + +

    + + + def + + + withProperty(d: PropertyDefinition): OrientVertexTypeDsl + +

    + + Permalink + + +

    Adds a property to existing vertex type

    Adds a property to existing vertex type

    Example

    g.getVertexType("Person").dsl withProperty "age" -> INTEGER
    d

    The property definition to add

    +
+
+ + + + +
+ +
+
+

Inherited from AnyRef

+
+

Inherited from Any

+
+ +
+ +
+
+

Ungrouped

+ +
+
+ +
+ +
+ + + + + + diff --git a/docs/api/2.11/ch/acmesoftware/orientDbScalaDsl/VertexDsl$.html b/docs/api/2.11/ch/acmesoftware/orientDbScalaDsl/VertexDsl$.html new file mode 100644 index 0000000..100627f --- /dev/null +++ b/docs/api/2.11/ch/acmesoftware/orientDbScalaDsl/VertexDsl$.html @@ -0,0 +1,504 @@ + + + + VertexDsl - ch.acmesoftware.orientDbScalaDsl.VertexDsl + + + + + + + + + + + + + + + + + +

+ + + object + + + VertexDsl + +

+ +
+ Linear Supertypes +
AnyRef, Any
+
+ + +
+
+
+ Ordering +
    + +
  1. Alphabetic
  2. +
  3. By Inheritance
  4. +
+
+
+ Inherited
+
+
    +
  1. VertexDsl
  2. AnyRef
  3. Any
  4. +
+
+ +
    +
  1. Hide All
  2. +
  3. Show All
  4. +
+
+
+ Visibility +
  1. Public
  2. All
+
+
+ +
+
+ + +
+

Type Members

+
  1. + + +

    + + + type + + + Property = (String, Any) + +

    + + Permalink + + + +
+
+ + + +
+

Value Members

+
  1. + + +

    + + final + def + + + !=(arg0: Any): Boolean + +

    + + Permalink + + +
    Definition Classes
    AnyRef → Any
    +
  2. + + +

    + + final + def + + + ##(): Int + +

    + + Permalink + + +
    Definition Classes
    AnyRef → Any
    +
  3. + + +

    + + final + def + + + ==(arg0: Any): Boolean + +

    + + Permalink + + +
    Definition Classes
    AnyRef → Any
    +
  4. + + +

    + + final + def + + + asInstanceOf[T0]: T0 + +

    + + Permalink + + +
    Definition Classes
    Any
    +
  5. + + +

    + + + def + + + clone(): AnyRef + +

    + + Permalink + + +
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    + @throws( + + ... + ) + +
    +
  6. + + +

    + + final + def + + + eq(arg0: AnyRef): Boolean + +

    + + Permalink + + +
    Definition Classes
    AnyRef
    +
  7. + + +

    + + + def + + + equals(arg0: Any): Boolean + +

    + + Permalink + + +
    Definition Classes
    AnyRef → Any
    +
  8. + + +

    + + + def + + + finalize(): Unit + +

    + + Permalink + + +
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    + @throws( + + classOf[java.lang.Throwable] + ) + +
    +
  9. + + +

    + + final + def + + + getClass(): Class[_] + +

    + + Permalink + + +
    Definition Classes
    AnyRef → Any
    +
  10. + + +

    + + + def + + + hashCode(): Int + +

    + + Permalink + + +
    Definition Classes
    AnyRef → Any
    +
  11. + + +

    + + final + def + + + isInstanceOf[T0]: Boolean + +

    + + Permalink + + +
    Definition Classes
    Any
    +
  12. + + +

    + + final + def + + + ne(arg0: AnyRef): Boolean + +

    + + Permalink + + +
    Definition Classes
    AnyRef
    +
  13. + + +

    + + final + def + + + notify(): Unit + +

    + + Permalink + + +
    Definition Classes
    AnyRef
    +
  14. + + +

    + + final + def + + + notifyAll(): Unit + +

    + + Permalink + + +
    Definition Classes
    AnyRef
    +
  15. + + +

    + + final + def + + + synchronized[T0](arg0: ⇒ T0): T0 + +

    + + Permalink + + +
    Definition Classes
    AnyRef
    +
  16. + + +

    + + + def + + + toString(): String + +

    + + Permalink + + +
    Definition Classes
    AnyRef → Any
    +
  17. + + +

    + + final + def + + + wait(): Unit + +

    + + Permalink + + +
    Definition Classes
    AnyRef
    Annotations
    + @throws( + + ... + ) + +
    +
  18. + + +

    + + final + def + + + wait(arg0: Long, arg1: Int): Unit + +

    + + Permalink + + +
    Definition Classes
    AnyRef
    Annotations
    + @throws( + + ... + ) + +
    +
  19. + + +

    + + final + def + + + wait(arg0: Long): Unit + +

    + + Permalink + + +
    Definition Classes
    AnyRef
    Annotations
    + @throws( + + ... + ) + +
    +
+
+ + + + +
+ +
+
+

Inherited from AnyRef

+
+

Inherited from Any

+
+ +
+ +
+
+

Ungrouped

+ +
+
+ +
+ +
+ + + + + + diff --git a/docs/api/2.11/ch/acmesoftware/orientDbScalaDsl/VertexDsl.html b/docs/api/2.11/ch/acmesoftware/orientDbScalaDsl/VertexDsl.html new file mode 100644 index 0000000..a926dec --- /dev/null +++ b/docs/api/2.11/ch/acmesoftware/orientDbScalaDsl/VertexDsl.html @@ -0,0 +1,539 @@ + + + + VertexDsl - ch.acmesoftware.orientDbScalaDsl.VertexDsl + + + + + + + + + + + + + + + + + +

+ + + class + + + VertexDsl extends AnyRef + +

+ +

DSL extension for the Element class

See methods for detailed API and examples... +

+ Linear Supertypes +
AnyRef, Any
+
+ + +
+
+
+ Ordering +
    + +
  1. Alphabetic
  2. +
  3. By Inheritance
  4. +
+
+
+ Inherited
+
+
    +
  1. VertexDsl
  2. AnyRef
  3. Any
  4. +
+
+ +
    +
  1. Hide All
  2. +
  3. Show All
  4. +
+
+
+ Visibility +
  1. Public
  2. All
+
+
+ +
+
+
+

Instance Constructors

+
  1. + + +

    + + + new + + + VertexDsl(v: Element) + +

    + + Permalink + + +

    v

    The original Java instance to wrap

    +
+
+ + + + + +
+

Value Members

+
  1. + + +

    + + final + def + + + !=(arg0: Any): Boolean + +

    + + Permalink + + +
    Definition Classes
    AnyRef → Any
    +
  2. + + +

    + + final + def + + + ##(): Int + +

    + + Permalink + + +
    Definition Classes
    AnyRef → Any
    +
  3. + + +

    + + final + def + + + ==(arg0: Any): Boolean + +

    + + Permalink + + +
    Definition Classes
    AnyRef → Any
    +
  4. + + +

    + + + def + + + and(prop: Property): VertexDsl + +

    + + Permalink + + +

    Alias for VertexDsl.withProperty

    +
  5. + + +

    + + final + def + + + asInstanceOf[T0]: T0 + +

    + + Permalink + + +
    Definition Classes
    Any
    +
  6. + + +

    + + + def + + + clone(): AnyRef + +

    + + Permalink + + +
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    + @throws( + + ... + ) + +
    +
  7. + + +

    + + final + def + + + eq(arg0: AnyRef): Boolean + +

    + + Permalink + + +
    Definition Classes
    AnyRef
    +
  8. + + +

    + + + def + + + equals(arg0: Any): Boolean + +

    + + Permalink + + +
    Definition Classes
    AnyRef → Any
    +
  9. + + +

    + + + def + + + finalize(): Unit + +

    + + Permalink + + +
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    + @throws( + + classOf[java.lang.Throwable] + ) + +
    +
  10. + + +

    + + final + def + + + getClass(): Class[_] + +

    + + Permalink + + +
    Definition Classes
    AnyRef → Any
    +
  11. + + +

    + + + def + + + hashCode(): Int + +

    + + Permalink + + +
    Definition Classes
    AnyRef → Any
    +
  12. + + +

    + + final + def + + + isInstanceOf[T0]: Boolean + +

    + + Permalink + + +
    Definition Classes
    Any
    +
  13. + + +

    + + final + def + + + ne(arg0: AnyRef): Boolean + +

    + + Permalink + + +
    Definition Classes
    AnyRef
    +
  14. + + +

    + + final + def + + + notify(): Unit + +

    + + Permalink + + +
    Definition Classes
    AnyRef
    +
  15. + + +

    + + final + def + + + notifyAll(): Unit + +

    + + Permalink + + +
    Definition Classes
    AnyRef
    +
  16. + + +

    + + final + def + + + synchronized[T0](arg0: ⇒ T0): T0 + +

    + + Permalink + + +
    Definition Classes
    AnyRef
    +
  17. + + +

    + + + def + + + toString(): String + +

    + + Permalink + + +
    Definition Classes
    AnyRef → Any
    +
  18. + + +

    + + final + def + + + wait(): Unit + +

    + + Permalink + + +
    Definition Classes
    AnyRef
    Annotations
    + @throws( + + ... + ) + +
    +
  19. + + +

    + + final + def + + + wait(arg0: Long, arg1: Int): Unit + +

    + + Permalink + + +
    Definition Classes
    AnyRef
    Annotations
    + @throws( + + ... + ) + +
    +
  20. + + +

    + + final + def + + + wait(arg0: Long): Unit + +

    + + Permalink + + +
    Definition Classes
    AnyRef
    Annotations
    + @throws( + + ... + ) + +
    +
  21. + + +

    + + + def + + + withProperty(prop: Property): VertexDsl + +

    + + Permalink + + +

    Adds a property to existing vertex

    Adds a property to existing vertex

    Example

    existing.dsl withProperty "name" -> "ACME Software Solutions" and "year" -> 2017
    prop

    The property to set

    +
+
+ + + + +
+ +
+
+

Inherited from AnyRef

+
+

Inherited from Any

+
+ +
+ +
+
+

Ungrouped

+ +
+
+ +
+ +
+ + + + + + diff --git a/docs/api/2.11/ch/acmesoftware/orientDbScalaDsl/package$$OrientGraphNoTxWrapper.html b/docs/api/2.11/ch/acmesoftware/orientDbScalaDsl/package$$OrientGraphNoTxWrapper.html new file mode 100644 index 0000000..d64f715 --- /dev/null +++ b/docs/api/2.11/ch/acmesoftware/orientDbScalaDsl/package$$OrientGraphNoTxWrapper.html @@ -0,0 +1,519 @@ + + + + OrientGraphNoTxWrapper - ch.acmesoftware.orientDbScalaDsl.OrientGraphNoTxWrapper + + + + + + + + + + + + + + + +
+ Class +

ch.acmesoftware.orientDbScalaDsl

+

OrientGraphNoTxWrapper

Related Doc: + package orientDbScalaDsl +

+ + Permalink + + +
+ +

+ + implicit + class + + + OrientGraphNoTxWrapper extends AnyRef + +

+ +

Wrapper providing OrientGraphDsl

+ Linear Supertypes +
AnyRef, Any
+
+ + +
+
+
+ Ordering +
    + +
  1. Alphabetic
  2. +
  3. By Inheritance
  4. +
+
+
+ Inherited
+
+
    +
  1. OrientGraphNoTxWrapper
  2. AnyRef
  3. Any
  4. +
+
+ +
    +
  1. Hide All
  2. +
  3. Show All
  4. +
+
+
+ Visibility +
  1. Public
  2. All
+
+
+ +
+
+
+

Instance Constructors

+
  1. + + +

    + + + new + + + OrientGraphNoTxWrapper(g: OrientGraphNoTx) + +

    + + Permalink + + + +
+
+ + + + + +
+

Value Members

+
  1. + + +

    + + final + def + + + !=(arg0: Any): Boolean + +

    + + Permalink + + +
    Definition Classes
    AnyRef → Any
    +
  2. + + +

    + + final + def + + + ##(): Int + +

    + + Permalink + + +
    Definition Classes
    AnyRef → Any
    +
  3. + + +

    + + final + def + + + ==(arg0: Any): Boolean + +

    + + Permalink + + +
    Definition Classes
    AnyRef → Any
    +
  4. + + +

    + + final + def + + + asInstanceOf[T0]: T0 + +

    + + Permalink + + +
    Definition Classes
    Any
    +
  5. + + +

    + + + def + + + clone(): AnyRef + +

    + + Permalink + + +
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    + @throws( + + ... + ) + +
    +
  6. + + +

    + + + def + + + dsl: OrientGraphDsl + +

    + + Permalink + + + +
  7. + + +

    + + final + def + + + eq(arg0: AnyRef): Boolean + +

    + + Permalink + + +
    Definition Classes
    AnyRef
    +
  8. + + +

    + + + def + + + equals(arg0: Any): Boolean + +

    + + Permalink + + +
    Definition Classes
    AnyRef → Any
    +
  9. + + +

    + + + def + + + finalize(): Unit + +

    + + Permalink + + +
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    + @throws( + + classOf[java.lang.Throwable] + ) + +
    +
  10. + + +

    + + final + def + + + getClass(): Class[_] + +

    + + Permalink + + +
    Definition Classes
    AnyRef → Any
    +
  11. + + +

    + + + def + + + hashCode(): Int + +

    + + Permalink + + +
    Definition Classes
    AnyRef → Any
    +
  12. + + +

    + + final + def + + + isInstanceOf[T0]: Boolean + +

    + + Permalink + + +
    Definition Classes
    Any
    +
  13. + + +

    + + final + def + + + ne(arg0: AnyRef): Boolean + +

    + + Permalink + + +
    Definition Classes
    AnyRef
    +
  14. + + +

    + + final + def + + + notify(): Unit + +

    + + Permalink + + +
    Definition Classes
    AnyRef
    +
  15. + + +

    + + final + def + + + notifyAll(): Unit + +

    + + Permalink + + +
    Definition Classes
    AnyRef
    +
  16. + + +

    + + final + def + + + synchronized[T0](arg0: ⇒ T0): T0 + +

    + + Permalink + + +
    Definition Classes
    AnyRef
    +
  17. + + +

    + + + def + + + toString(): String + +

    + + Permalink + + +
    Definition Classes
    AnyRef → Any
    +
  18. + + +

    + + final + def + + + wait(): Unit + +

    + + Permalink + + +
    Definition Classes
    AnyRef
    Annotations
    + @throws( + + ... + ) + +
    +
  19. + + +

    + + final + def + + + wait(arg0: Long, arg1: Int): Unit + +

    + + Permalink + + +
    Definition Classes
    AnyRef
    Annotations
    + @throws( + + ... + ) + +
    +
  20. + + +

    + + final + def + + + wait(arg0: Long): Unit + +

    + + Permalink + + +
    Definition Classes
    AnyRef
    Annotations
    + @throws( + + ... + ) + +
    +
+
+ + + + +
+ +
+
+

Inherited from AnyRef

+
+

Inherited from Any

+
+ +
+ +
+
+

Ungrouped

+ +
+
+ +
+ +
+ + + + + + diff --git a/docs/api/2.11/ch/acmesoftware/orientDbScalaDsl/package$$OrientGraphWrapper.html b/docs/api/2.11/ch/acmesoftware/orientDbScalaDsl/package$$OrientGraphWrapper.html new file mode 100644 index 0000000..ce71e2c --- /dev/null +++ b/docs/api/2.11/ch/acmesoftware/orientDbScalaDsl/package$$OrientGraphWrapper.html @@ -0,0 +1,519 @@ + + + + OrientGraphWrapper - ch.acmesoftware.orientDbScalaDsl.OrientGraphWrapper + + + + + + + + + + + + + + + +
+ Class +

ch.acmesoftware.orientDbScalaDsl

+

OrientGraphWrapper

Related Doc: + package orientDbScalaDsl +

+ + Permalink + + +
+ +

+ + implicit + class + + + OrientGraphWrapper extends AnyRef + +

+ +

Wrapper providing OrientGraphDsl

+ Linear Supertypes +
AnyRef, Any
+
+ + +
+
+
+ Ordering +
    + +
  1. Alphabetic
  2. +
  3. By Inheritance
  4. +
+
+
+ Inherited
+
+
    +
  1. OrientGraphWrapper
  2. AnyRef
  3. Any
  4. +
+
+ +
    +
  1. Hide All
  2. +
  3. Show All
  4. +
+
+
+ Visibility +
  1. Public
  2. All
+
+
+ +
+
+
+

Instance Constructors

+
  1. + + +

    + + + new + + + OrientGraphWrapper(g: OrientGraph) + +

    + + Permalink + + + +
+
+ + + + + +
+

Value Members

+
  1. + + +

    + + final + def + + + !=(arg0: Any): Boolean + +

    + + Permalink + + +
    Definition Classes
    AnyRef → Any
    +
  2. + + +

    + + final + def + + + ##(): Int + +

    + + Permalink + + +
    Definition Classes
    AnyRef → Any
    +
  3. + + +

    + + final + def + + + ==(arg0: Any): Boolean + +

    + + Permalink + + +
    Definition Classes
    AnyRef → Any
    +
  4. + + +

    + + final + def + + + asInstanceOf[T0]: T0 + +

    + + Permalink + + +
    Definition Classes
    Any
    +
  5. + + +

    + + + def + + + clone(): AnyRef + +

    + + Permalink + + +
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    + @throws( + + ... + ) + +
    +
  6. + + +

    + + + def + + + dsl: OrientGraphDsl + +

    + + Permalink + + + +
  7. + + +

    + + final + def + + + eq(arg0: AnyRef): Boolean + +

    + + Permalink + + +
    Definition Classes
    AnyRef
    +
  8. + + +

    + + + def + + + equals(arg0: Any): Boolean + +

    + + Permalink + + +
    Definition Classes
    AnyRef → Any
    +
  9. + + +

    + + + def + + + finalize(): Unit + +

    + + Permalink + + +
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    + @throws( + + classOf[java.lang.Throwable] + ) + +
    +
  10. + + +

    + + final + def + + + getClass(): Class[_] + +

    + + Permalink + + +
    Definition Classes
    AnyRef → Any
    +
  11. + + +

    + + + def + + + hashCode(): Int + +

    + + Permalink + + +
    Definition Classes
    AnyRef → Any
    +
  12. + + +

    + + final + def + + + isInstanceOf[T0]: Boolean + +

    + + Permalink + + +
    Definition Classes
    Any
    +
  13. + + +

    + + final + def + + + ne(arg0: AnyRef): Boolean + +

    + + Permalink + + +
    Definition Classes
    AnyRef
    +
  14. + + +

    + + final + def + + + notify(): Unit + +

    + + Permalink + + +
    Definition Classes
    AnyRef
    +
  15. + + +

    + + final + def + + + notifyAll(): Unit + +

    + + Permalink + + +
    Definition Classes
    AnyRef
    +
  16. + + +

    + + final + def + + + synchronized[T0](arg0: ⇒ T0): T0 + +

    + + Permalink + + +
    Definition Classes
    AnyRef
    +
  17. + + +

    + + + def + + + toString(): String + +

    + + Permalink + + +
    Definition Classes
    AnyRef → Any
    +
  18. + + +

    + + final + def + + + wait(): Unit + +

    + + Permalink + + +
    Definition Classes
    AnyRef
    Annotations
    + @throws( + + ... + ) + +
    +
  19. + + +

    + + final + def + + + wait(arg0: Long, arg1: Int): Unit + +

    + + Permalink + + +
    Definition Classes
    AnyRef
    Annotations
    + @throws( + + ... + ) + +
    +
  20. + + +

    + + final + def + + + wait(arg0: Long): Unit + +

    + + Permalink + + +
    Definition Classes
    AnyRef
    Annotations
    + @throws( + + ... + ) + +
    +
+
+ + + + +
+ +
+
+

Inherited from AnyRef

+
+

Inherited from Any

+
+ +
+ +
+
+

Ungrouped

+ +
+
+ +
+ +
+ + + + + + diff --git a/docs/api/2.11/ch/acmesoftware/orientDbScalaDsl/package$$OrientVertexTypeWrapper.html b/docs/api/2.11/ch/acmesoftware/orientDbScalaDsl/package$$OrientVertexTypeWrapper.html new file mode 100644 index 0000000..491d8c0 --- /dev/null +++ b/docs/api/2.11/ch/acmesoftware/orientDbScalaDsl/package$$OrientVertexTypeWrapper.html @@ -0,0 +1,519 @@ + + + + OrientVertexTypeWrapper - ch.acmesoftware.orientDbScalaDsl.OrientVertexTypeWrapper + + + + + + + + + + + + + + + +
+ Class +

ch.acmesoftware.orientDbScalaDsl

+

OrientVertexTypeWrapper

Related Doc: + package orientDbScalaDsl +

+ + Permalink + + +
+ +

+ + implicit + class + + + OrientVertexTypeWrapper extends AnyRef + +

+ +

Wrapper providing OrientVertexTypeDsl

+ Linear Supertypes +
AnyRef, Any
+
+ + +
+
+
+ Ordering +
    + +
  1. Alphabetic
  2. +
  3. By Inheritance
  4. +
+
+
+ Inherited
+
+
    +
  1. OrientVertexTypeWrapper
  2. AnyRef
  3. Any
  4. +
+
+ +
    +
  1. Hide All
  2. +
  3. Show All
  4. +
+
+
+ Visibility +
  1. Public
  2. All
+
+
+ +
+
+
+

Instance Constructors

+
  1. + + +

    + + + new + + + OrientVertexTypeWrapper(vt: OrientVertexType) + +

    + + Permalink + + + +
+
+ + + + + +
+

Value Members

+
  1. + + +

    + + final + def + + + !=(arg0: Any): Boolean + +

    + + Permalink + + +
    Definition Classes
    AnyRef → Any
    +
  2. + + +

    + + final + def + + + ##(): Int + +

    + + Permalink + + +
    Definition Classes
    AnyRef → Any
    +
  3. + + +

    + + final + def + + + ==(arg0: Any): Boolean + +

    + + Permalink + + +
    Definition Classes
    AnyRef → Any
    +
  4. + + +

    + + final + def + + + asInstanceOf[T0]: T0 + +

    + + Permalink + + +
    Definition Classes
    Any
    +
  5. + + +

    + + + def + + + clone(): AnyRef + +

    + + Permalink + + +
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    + @throws( + + ... + ) + +
    +
  6. + + +

    + + + def + + + dsl: OrientVertexTypeDsl + +

    + + Permalink + + + +
  7. + + +

    + + final + def + + + eq(arg0: AnyRef): Boolean + +

    + + Permalink + + +
    Definition Classes
    AnyRef
    +
  8. + + +

    + + + def + + + equals(arg0: Any): Boolean + +

    + + Permalink + + +
    Definition Classes
    AnyRef → Any
    +
  9. + + +

    + + + def + + + finalize(): Unit + +

    + + Permalink + + +
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    + @throws( + + classOf[java.lang.Throwable] + ) + +
    +
  10. + + +

    + + final + def + + + getClass(): Class[_] + +

    + + Permalink + + +
    Definition Classes
    AnyRef → Any
    +
  11. + + +

    + + + def + + + hashCode(): Int + +

    + + Permalink + + +
    Definition Classes
    AnyRef → Any
    +
  12. + + +

    + + final + def + + + isInstanceOf[T0]: Boolean + +

    + + Permalink + + +
    Definition Classes
    Any
    +
  13. + + +

    + + final + def + + + ne(arg0: AnyRef): Boolean + +

    + + Permalink + + +
    Definition Classes
    AnyRef
    +
  14. + + +

    + + final + def + + + notify(): Unit + +

    + + Permalink + + +
    Definition Classes
    AnyRef
    +
  15. + + +

    + + final + def + + + notifyAll(): Unit + +

    + + Permalink + + +
    Definition Classes
    AnyRef
    +
  16. + + +

    + + final + def + + + synchronized[T0](arg0: ⇒ T0): T0 + +

    + + Permalink + + +
    Definition Classes
    AnyRef
    +
  17. + + +

    + + + def + + + toString(): String + +

    + + Permalink + + +
    Definition Classes
    AnyRef → Any
    +
  18. + + +

    + + final + def + + + wait(): Unit + +

    + + Permalink + + +
    Definition Classes
    AnyRef
    Annotations
    + @throws( + + ... + ) + +
    +
  19. + + +

    + + final + def + + + wait(arg0: Long, arg1: Int): Unit + +

    + + Permalink + + +
    Definition Classes
    AnyRef
    Annotations
    + @throws( + + ... + ) + +
    +
  20. + + +

    + + final + def + + + wait(arg0: Long): Unit + +

    + + Permalink + + +
    Definition Classes
    AnyRef
    Annotations
    + @throws( + + ... + ) + +
    +
+
+ + + + +
+ +
+
+

Inherited from AnyRef

+
+

Inherited from Any

+
+ +
+ +
+
+

Ungrouped

+ +
+
+ +
+ +
+ + + + + + diff --git a/docs/api/2.11/ch/acmesoftware/orientDbScalaDsl/package$$VertexWrapper.html b/docs/api/2.11/ch/acmesoftware/orientDbScalaDsl/package$$VertexWrapper.html new file mode 100644 index 0000000..842e401 --- /dev/null +++ b/docs/api/2.11/ch/acmesoftware/orientDbScalaDsl/package$$VertexWrapper.html @@ -0,0 +1,519 @@ + + + + VertexWrapper - ch.acmesoftware.orientDbScalaDsl.VertexWrapper + + + + + + + + + + + + + + + +
+ Class +

ch.acmesoftware.orientDbScalaDsl

+

VertexWrapper

Related Doc: + package orientDbScalaDsl +

+ + Permalink + + +
+ +

+ + implicit + class + + + VertexWrapper extends AnyRef + +

+ +

Wrapper providing VertexDsl

+ Linear Supertypes +
AnyRef, Any
+
+ + +
+
+
+ Ordering +
    + +
  1. Alphabetic
  2. +
  3. By Inheritance
  4. +
+
+
+ Inherited
+
+
    +
  1. VertexWrapper
  2. AnyRef
  3. Any
  4. +
+
+ +
    +
  1. Hide All
  2. +
  3. Show All
  4. +
+
+
+ Visibility +
  1. Public
  2. All
+
+
+ +
+
+
+

Instance Constructors

+
  1. + + +

    + + + new + + + VertexWrapper(v: Element) + +

    + + Permalink + + + +
+
+ + + + + +
+

Value Members

+
  1. + + +

    + + final + def + + + !=(arg0: Any): Boolean + +

    + + Permalink + + +
    Definition Classes
    AnyRef → Any
    +
  2. + + +

    + + final + def + + + ##(): Int + +

    + + Permalink + + +
    Definition Classes
    AnyRef → Any
    +
  3. + + +

    + + final + def + + + ==(arg0: Any): Boolean + +

    + + Permalink + + +
    Definition Classes
    AnyRef → Any
    +
  4. + + +

    + + final + def + + + asInstanceOf[T0]: T0 + +

    + + Permalink + + +
    Definition Classes
    Any
    +
  5. + + +

    + + + def + + + clone(): AnyRef + +

    + + Permalink + + +
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    + @throws( + + ... + ) + +
    +
  6. + + +

    + + + def + + + dsl: VertexDsl + +

    + + Permalink + + + +
  7. + + +

    + + final + def + + + eq(arg0: AnyRef): Boolean + +

    + + Permalink + + +
    Definition Classes
    AnyRef
    +
  8. + + +

    + + + def + + + equals(arg0: Any): Boolean + +

    + + Permalink + + +
    Definition Classes
    AnyRef → Any
    +
  9. + + +

    + + + def + + + finalize(): Unit + +

    + + Permalink + + +
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    + @throws( + + classOf[java.lang.Throwable] + ) + +
    +
  10. + + +

    + + final + def + + + getClass(): Class[_] + +

    + + Permalink + + +
    Definition Classes
    AnyRef → Any
    +
  11. + + +

    + + + def + + + hashCode(): Int + +

    + + Permalink + + +
    Definition Classes
    AnyRef → Any
    +
  12. + + +

    + + final + def + + + isInstanceOf[T0]: Boolean + +

    + + Permalink + + +
    Definition Classes
    Any
    +
  13. + + +

    + + final + def + + + ne(arg0: AnyRef): Boolean + +

    + + Permalink + + +
    Definition Classes
    AnyRef
    +
  14. + + +

    + + final + def + + + notify(): Unit + +

    + + Permalink + + +
    Definition Classes
    AnyRef
    +
  15. + + +

    + + final + def + + + notifyAll(): Unit + +

    + + Permalink + + +
    Definition Classes
    AnyRef
    +
  16. + + +

    + + final + def + + + synchronized[T0](arg0: ⇒ T0): T0 + +

    + + Permalink + + +
    Definition Classes
    AnyRef
    +
  17. + + +

    + + + def + + + toString(): String + +

    + + Permalink + + +
    Definition Classes
    AnyRef → Any
    +
  18. + + +

    + + final + def + + + wait(): Unit + +

    + + Permalink + + +
    Definition Classes
    AnyRef
    Annotations
    + @throws( + + ... + ) + +
    +
  19. + + +

    + + final + def + + + wait(arg0: Long, arg1: Int): Unit + +

    + + Permalink + + +
    Definition Classes
    AnyRef
    Annotations
    + @throws( + + ... + ) + +
    +
  20. + + +

    + + final + def + + + wait(arg0: Long): Unit + +

    + + Permalink + + +
    Definition Classes
    AnyRef
    Annotations
    + @throws( + + ... + ) + +
    +
+
+ + + + +
+ +
+
+

Inherited from AnyRef

+
+

Inherited from Any

+
+ +
+ +
+
+

Ungrouped

+ +
+
+ +
+ +
+ + + + + + diff --git a/docs/api/2.11/ch/acmesoftware/orientDbScalaDsl/package.html b/docs/api/2.11/ch/acmesoftware/orientDbScalaDsl/package.html new file mode 100644 index 0000000..1b2c621 --- /dev/null +++ b/docs/api/2.11/ch/acmesoftware/orientDbScalaDsl/package.html @@ -0,0 +1,287 @@ + + + + orientDbScalaDsl - ch.acmesoftware.orientDbScalaDsl + + + + + + + + + + + + + + + +
+ Package +

ch.acmesoftware

+

orientDbScalaDsl

+ + Permalink + + +
+ +

+ + + package + + + orientDbScalaDsl + +

+ +

Main DSL entry point

This package provides a set of implicit classes (wrappers) which can be imported

Example

import ch.acmesoftware.orientDbScalaDsl._

The above import statement decorates the OrientDB Java API with a fluid Scala DSL +

+ Linear Supertypes +
AnyRef, Any
+
+ + +
+
+
+ Ordering +
    + +
  1. Alphabetic
  2. +
  3. By Inheritance
  4. +
+
+
+ Inherited
+
+
    +
  1. orientDbScalaDsl
  2. AnyRef
  3. Any
  4. +
+
+ +
    +
  1. Hide All
  2. +
  3. Show All
  4. +
+
+
+ Visibility +
  1. Public
  2. All
+
+
+ +
+
+ + +
+

Type Members

+
  1. + + +

    + + + class + + + OrientGraphDsl extends AnyRef + +

    + + Permalink + + +

    DSL extension for the OrientBaseGraph class

    DSL extension for the OrientBaseGraph class

    See methods for detailed API and examples... +

    +
  2. + + +

    + + implicit + class + + + OrientGraphNoTxWrapper extends AnyRef + +

    + + Permalink + + +

    Wrapper providing OrientGraphDsl

    +
  3. + + +

    + + implicit + class + + + OrientGraphWrapper extends AnyRef + +

    + + Permalink + + +

    Wrapper providing OrientGraphDsl

    +
  4. + + +

    + + + class + + + OrientVertexTypeDsl extends AnyRef + +

    + + Permalink + + +

    DSL extension for the OrientVertexType class

    DSL extension for the OrientVertexType class

    See methods for detailed API and examples... +

    +
  5. + + +

    + + implicit + class + + + OrientVertexTypeWrapper extends AnyRef + +

    + + Permalink + + +

    Wrapper providing OrientVertexTypeDsl

    +
  6. + + +

    + + + class + + + VertexDsl extends AnyRef + +

    + + Permalink + + +

    DSL extension for the Element class

    DSL extension for the Element class

    See methods for detailed API and examples... +

    +
  7. + + +

    + + implicit + class + + + VertexWrapper extends AnyRef + +

    + + Permalink + + +

    Wrapper providing VertexDsl

    +
+
+ + + +
+

Value Members

+
  1. + + +

    + + + object + + + OrientVertexTypeDsl + +

    + + Permalink + + + +
  2. + + +

    + + + object + + + VertexDsl + +

    + + Permalink + + + +
+
+ + + + +
+ +
+
+

Inherited from AnyRef

+
+

Inherited from Any

+
+ +
+ +
+
+

Ungrouped

+ +
+
+ +
+ +
+ + + + + + diff --git a/docs/api/2.11/ch/acmesoftware/package.html b/docs/api/2.11/ch/acmesoftware/package.html new file mode 100644 index 0000000..a05da45 --- /dev/null +++ b/docs/api/2.11/ch/acmesoftware/package.html @@ -0,0 +1,119 @@ + + + + acmesoftware - ch.acmesoftware + + + + + + + + + + + + + + + +
+ Package +

ch

+

acmesoftware

+ + Permalink + + +
+ +

+ + + package + + + acmesoftware + +

+ +
+ + +
+
+ + +
+ Visibility +
  1. Public
  2. All
+
+
+ +
+
+ + + + + + +
+

Value Members

+
  1. + + +

    + + + package + + + orientDbScalaDsl + +

    + + Permalink + + +

    Main DSL entry point

    Main DSL entry point

    This package provides a set of implicit classes (wrappers) which can be imported

    Example

    import ch.acmesoftware.orientDbScalaDsl._

    The above import statement decorates the OrientDB Java API with a fluid Scala DSL +

    +
+
+ + + + +
+ +
+ + +
+ +
+
+

Ungrouped

+ +
+
+ +
+ +
+ + + + + + diff --git a/docs/api/2.11/ch/package.html b/docs/api/2.11/ch/package.html new file mode 100644 index 0000000..8c78687 --- /dev/null +++ b/docs/api/2.11/ch/package.html @@ -0,0 +1,118 @@ + + + + ch - ch + + + + + + + + + + + + + + + +
+ Package + +

ch

+ + Permalink + + +
+ +

+ + + package + + + ch + +

+ +
+ + +
+
+ + +
+ Visibility +
  1. Public
  2. All
+
+
+ +
+
+ + + + + + +
+

Value Members

+
  1. + + +

    + + + package + + + acmesoftware + +

    + + Permalink + + + +
+
+ + + + +
+ +
+ + +
+ +
+
+

Ungrouped

+ +
+
+ +
+ +
+ + + + + + diff --git a/docs/api/2.11/index.html b/docs/api/2.11/index.html new file mode 100644 index 0000000..62d994b --- /dev/null +++ b/docs/api/2.11/index.html @@ -0,0 +1,52 @@ + + + + + + + + + + + + + + + + + +
+ class icon + trait icon + trait icon + trait icon +
+ +
+ +
+ + diff --git a/docs/api/2.11/index.js b/docs/api/2.11/index.js new file mode 100644 index 0000000..d6c732c --- /dev/null +++ b/docs/api/2.11/index.js @@ -0,0 +1 @@ +Index.PACKAGES = {"ch" : [], "ch.acmesoftware" : [], "ch.acmesoftware.orientDbScalaDsl" : [{"class" : "ch\/acmesoftware\/orientDbScalaDsl\/OrientGraphDsl.html", "name" : "ch.acmesoftware.orientDbScalaDsl.OrientGraphDsl"}, {"class" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientGraphNoTxWrapper.html", "name" : "ch.acmesoftware.orientDbScalaDsl.OrientGraphNoTxWrapper"}, {"class" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientGraphWrapper.html", "name" : "ch.acmesoftware.orientDbScalaDsl.OrientGraphWrapper"}, {"object" : "ch\/acmesoftware\/orientDbScalaDsl\/OrientVertexTypeDsl$.html", "class" : "ch\/acmesoftware\/orientDbScalaDsl\/OrientVertexTypeDsl.html", "name" : "ch.acmesoftware.orientDbScalaDsl.OrientVertexTypeDsl"}, {"class" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientVertexTypeWrapper.html", "name" : "ch.acmesoftware.orientDbScalaDsl.OrientVertexTypeWrapper"}, {"object" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl$.html", "class" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl.html", "name" : "ch.acmesoftware.orientDbScalaDsl.VertexDsl"}, {"class" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$VertexWrapper.html", "name" : "ch.acmesoftware.orientDbScalaDsl.VertexWrapper"}]}; \ No newline at end of file diff --git a/docs/api/2.11/index/index-a.html b/docs/api/2.11/index/index-a.html new file mode 100644 index 0000000..14e892b --- /dev/null +++ b/docs/api/2.11/index/index-a.html @@ -0,0 +1,23 @@ + + + + + + + + + + + + +
+
acmesoftware
+ +
+
addVertex
+ +
+
and
+ +
+ diff --git a/docs/api/2.11/index/index-c.html b/docs/api/2.11/index/index-c.html new file mode 100644 index 0000000..7002d0f --- /dev/null +++ b/docs/api/2.11/index/index-c.html @@ -0,0 +1,20 @@ + + + + + + + + + + + + +
+
ch
+ +
+
createVertexType
+ +
+ diff --git a/docs/api/2.11/index/index-d.html b/docs/api/2.11/index/index-d.html new file mode 100644 index 0000000..6d5c7bd --- /dev/null +++ b/docs/api/2.11/index/index-d.html @@ -0,0 +1,17 @@ + + + + + + + + + + + + +
+
dsl
+ +
+ diff --git a/docs/api/2.11/index/index-f.html b/docs/api/2.11/index/index-f.html new file mode 100644 index 0000000..f6fc7be --- /dev/null +++ b/docs/api/2.11/index/index-f.html @@ -0,0 +1,20 @@ + + + + + + + + + + + + +
+
filter
+ +
+
findVertices
+ +
+ diff --git a/docs/api/2.11/index/index-g.html b/docs/api/2.11/index/index-g.html new file mode 100644 index 0000000..6322c8c --- /dev/null +++ b/docs/api/2.11/index/index-g.html @@ -0,0 +1,17 @@ + + + + + + + + + + + + +
+
get
+ +
+ diff --git a/docs/api/2.11/index/index-o.html b/docs/api/2.11/index/index-o.html new file mode 100644 index 0000000..1f3411d --- /dev/null +++ b/docs/api/2.11/index/index-o.html @@ -0,0 +1,32 @@ + + + + + + + + + + + + +
+
OrientGraphDsl
+ +
+
OrientGraphNoTxWrapper
+ +
+
OrientGraphWrapper
+ +
+
OrientVertexTypeDsl
+ +
+
OrientVertexTypeWrapper
+ +
+
orientDbScalaDsl
+ +
+ diff --git a/docs/api/2.11/index/index-p.html b/docs/api/2.11/index/index-p.html new file mode 100644 index 0000000..cbbefc4 --- /dev/null +++ b/docs/api/2.11/index/index-p.html @@ -0,0 +1,20 @@ + + + + + + + + + + + + +
+
Property
+ +
+
PropertyDefinition
+ +
+ diff --git a/docs/api/2.11/index/index-u.html b/docs/api/2.11/index/index-u.html new file mode 100644 index 0000000..8673e93 --- /dev/null +++ b/docs/api/2.11/index/index-u.html @@ -0,0 +1,17 @@ + + + + + + + + + + + + +
+
unique
+ +
+ diff --git a/docs/api/2.11/index/index-v.html b/docs/api/2.11/index/index-v.html new file mode 100644 index 0000000..f8e604e --- /dev/null +++ b/docs/api/2.11/index/index-v.html @@ -0,0 +1,23 @@ + + + + + + + + + + + + +
+
VertexDsl
+ +
+
VertexWrapper
+ +
+
VerticlesFilterQuery
+ +
+ diff --git a/docs/api/2.11/index/index-w.html b/docs/api/2.11/index/index-w.html new file mode 100644 index 0000000..a9a42e3 --- /dev/null +++ b/docs/api/2.11/index/index-w.html @@ -0,0 +1,17 @@ + + + + + + + + + + + + +
+
withProperty
+ +
+ diff --git a/docs/api/2.11/lib/arrow-down.png b/docs/api/2.11/lib/arrow-down.png new file mode 100644 index 0000000000000000000000000000000000000000..7229603ae5b30ce0e0bd09863543b260085c8f2d GIT binary patch literal 6232 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 literal 0 HcmV?d00001 diff --git a/docs/api/2.11/lib/class_big.png b/docs/api/2.11/lib/class_big.png new file mode 100644 index 0000000000000000000000000000000000000000..cb1f638a585c50456f57b73c4d043c75762ff9a5 GIT binary patch literal 7516 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
}cgT+sFDw4uMOU<91Pe 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 U==iC&s{jB107*qoM6N<$f-P8sEdT%j literal 0 HcmV?d00001 diff --git a/docs/api/2.11/lib/constructorsbg.gif b/docs/api/2.11/lib/constructorsbg.gif new file mode 100644 index 0000000000000000000000000000000000000000..2e3f5ea53025f68e2636f9c65e5115a3aa1bb581 GIT binary patch literal 1206 zcmZ?wbhEHbWMq(GIKseSZEam&UmqG8YHx4v?(P;76XWUWX=!Qc=j$685$WvY?CR?3 zAK)Jt7-V8%YG!5@8yjnDYwPIXsHUnK9v&VQ9TgWB=jiAd5*+O9?QL#hZftDKfCLo( zb4U0FD7Yk+Bm!w0`-+0ZZE`@j@w*YQzUa=n7J9^3ax%w4}1^R}1 z1|ToN6#Dw&SDKp(S6y5Zl!|aKR)dQ}DhpEegHnt0ON)|Ify$LZRuxz|7o{eaQ#zd*q`*i^wcF*!32#0RVQ^|kWMD=taQOHTE4u~h<^pqH7MVr61% z;AY@x;B0E?uBO)VrJ|N z)az`3RWB$hI zxnujbty?y4+PGo;y0vRouUffc`Ld-;7B5=3VE(+hb7s$)Ib-^?sZ%CTnmD1queYbW ztFxoMt+l1Osj;EHuC}JSsEZKEj1-MDKQ~FE;c4QDl#HG zEHorIC@{d^&)3J>%hSW%&DF)($Qx)!_Hn5)9TB4Am2f&=-p_kccyqPBfKGwUE!WRLZeY z&9_xAcF-<$)~j$)tu;5Sb~kMFG;Z}V?)EY6_cxj1Z!#mmbas&G!VuHNfk6*)|04m# ze}c|Msfi`2DGKG8B^e6tp1uJLIt)MnasUIXxWbl9$+AdMQ_qW!P0lP*Igu!GM1jSD HgTWdAVsJLn literal 0 HcmV?d00001 diff --git a/docs/api/2.11/lib/defbg-blue.gif b/docs/api/2.11/lib/defbg-blue.gif new file mode 100644 index 0000000000000000000000000000000000000000..69038337a793be5ec04430183980b7e393113ea1 GIT binary patch literal 1544 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 availableWidth) + { + // resize diagram + var height = diagramHeight / diagramWidth * availableWidth; + $(".diagram svg", this).width(availableWidth); + $(".diagram svg", this).height(height); + + // register click event on whole div + $(".diagram", this).click(function() { + diagrams.popup($(this)); + }); + $(".diagram", this).addClass("magnifying"); + } + else + { + // restore full size of diagram + $(".diagram svg", this).width(diagramWidth); + $(".diagram svg", this).height(diagramHeight); + // don't show custom cursor any more + $(".diagram", this).removeClass("magnifying"); + } + }); +}; + +/** + * Shows or hides a diagram depending on its current state. + */ +diagrams.toggle = function(container, dontAnimate) +{ + // change class of link + $(".diagram-link", container).toggleClass("open"); + // get element to show / hide + var div = $(".diagram", container); + if (div.is(':visible')) + { + $(".diagram-help", container).hide(); + div.unbind("click"); + div.removeClass("magnifying"); + div.slideUp(100); + } + else + { + diagrams.resize(); + if(dontAnimate) + div.show(); + else + div.slideDown(100); + $(".diagram-help", container).show(); + } +}; + +/** + * Opens a popup containing a copy of a diagram. + */ +diagrams.windows = {}; +diagrams.popup = function(diagram) +{ + var id = diagram.attr("id"); + if(!diagrams.windows[id] || diagrams.windows[id].closed) { + var title = $(".symbol .name", $("#signature")).text(); + // cloning from parent window to popup somehow doesn't work in IE + // therefore include the SVG as a string into the HTML + var svgIE = jQuery.browser.msie ? $("
").append(diagram.data("svg")).html() : ""; + var html = '' + + '\n' + + '\n' + + '\n' + + ' \n' + + ' ' + title + '\n' + + ' \n' + + ' \n' + + ' \n' + + ' \n' + + ' \n' + + ' \n' + + ' Close this window\n' + + ' ' + svgIE + '\n' + + ' \n' + + ''; + + var padding = 30; + var screenHeight = screen.availHeight; + var screenWidth = screen.availWidth; + var w = Math.min(screenWidth, diagram.data("width") + 2 * padding); + var h = Math.min(screenHeight, diagram.data("height") + 2 * padding); + var left = (screenWidth - w) / 2; + var top = (screenHeight - h) / 2; + var parameters = "height=" + h + ", width=" + w + ", left=" + left + ", top=" + top + ", scrollbars=yes, location=no, resizable=yes"; + var win = window.open("about:blank", "_blank", parameters); + win.document.open(); + win.document.write(html); + win.document.close(); + diagrams.windows[id] = win; + } + win.focus(); +}; + +/** + * This method is called from within the popup when a node is clicked. + */ +diagrams.redirectFromPopup = function(url) +{ + window.location = url; +}; + +/** + * Helper method that adds a class to a SVG element. + */ +diagrams.addClass = function(svgElem, newClass) { + newClass = newClass || "over"; + var classes = svgElem.attr("class"); + if ($.inArray(newClass, classes.split(/\s+/)) == -1) { + classes += (classes ? ' ' : '') + newClass; + svgElem.attr("class", classes); + } +}; + +/** + * Helper method that removes a class from a SVG element. + */ +diagrams.removeClass = function(svgElem, oldClass) { + oldClass = oldClass || "over"; + var classes = svgElem.attr("class"); + classes = $.grep(classes.split(/\s+/), function(n, i) { return n != oldClass; }).join(' '); + svgElem.attr("class", classes); +}; + diff --git a/docs/api/2.11/lib/filter_box_left.png b/docs/api/2.11/lib/filter_box_left.png new file mode 100644 index 0000000000000000000000000000000000000000..0e8c893315e7955b02474d3a544b9145aafb15b2 GIT binary patch literal 1692 zcmaJ?Yfuws6pg$rSOqBp3YKM~RV;Zz60;aJAs|tLX#yHS2bN@k3}iRiY$T*bRAg#9 zU=@FeD54a{@j+EkDTq>D1*#y5=}<;1FQtW2QWQm;)^1R+Kd|4-?)R8;&OP^jcW1wn zMQxbxvc!c#q0E;=h~?zGh0nhVLI8<$M9qZi_hoVG}vq!iJ%!WPy#m5Py=;ZL5vtw zxJE~4Fch#U!ikuX5P+o9Hz{a!GqR}RZJEe|F-)+I!J;#5DNO^V(*K8QwKHe~AxGZ% zomJQnouNY*a>RfcaTR%SNmN@X9TbWqFoEIG7?w6&MOg|)V1^V-2ZSm(fD~3~P}_bA zFO@=z7d?GMc8_g2)3)ShrtuM!>~@@N>+T&8M1C!960tDa)O{gFy2(fA zz3T<_SYuv{D)_EL=f;)y69e-Ky4|eHMud}d&8tpKdJXw|FA8wVks>d2E7RxJTpy%k& zkln?LUfbzg^RAqmv%e%NGORQBAW}-Td|p~VHijo;X8zsZ($X^6+uM6!J#g~Lon3o| z%yy6Q#l8#XZjX=8POAt4(SV9rv74$vZ!mQ7Ih=6>K^_l|jA(PbOJZ)7%FntjLr%)i zy2~xr+}{#jYpUxb&qZ$DoK;v{eCMdMAN4_|-e@%T^!4>EHE#RNqt*9tQPEOmTwHcp z8SUCPVvxz@I`!(h*bT?;AMpB?9IRY;6SepD?GM%LqlKtmzwpwk1RTGYUvT)Ehf9tw zE33A9!v5+(_aFQ91qB5O)j2tiU0q!X$!!raxvG}Ir~D;ZJ#daH$(+?g#+>uOcV@q9( zNA}J$hYc4tg?PB^X-m33JSql-TX}6aoBK0{#?8YKde>dG#XG8NY8+x>{FmgFM?ny@ z_lvcz0)e1s=k?TwO*EQAcHQALZe00KpIDBLpO!mctE_}kbiwl%FJKIFot&Jc+$f_8 z8oG+eBKkEqH`A|N(9~bzE0=fty7^4!Zl}xsijNe>*2c%iZiL<2FV|eD)ojQO;0pxH zS6iOl-NNi$#aFwY%o;pr{{mUu^Fwjf3l}ad*ZyPVIVyrIkPEX+>TMxn15Nd zav-ZrQP;=Um;C7y>q90w(zLCoZdruVQ63j}ETaFVxBMUOjizep$G*PA6TE6m?$RPx zmv)7uBXiNdkmBLz_4cmubG5#W6mXxF8k^TF<8E1SsNetIhE~5hP876f;&u1}p9{AC Ng(NIW{GBLa@4p#{lvn@& literal 0 HcmV?d00001 diff --git a/docs/api/2.11/lib/filter_box_left2.gif b/docs/api/2.11/lib/filter_box_left2.gif new file mode 100644 index 0000000000000000000000000000000000000000..b9b49076a6410112fd18b370bc661154bbab8f80 GIT binary patch literal 1462 zcmZ?wbhEHb6k!lyxN5?1>C&aRxVRrbe!P11>f*(Vt*xySCr_wV1o zw{PEm|Ni~!*RS{P-TU(8%b!1gZrr%>`t|GF+}z{Gk3W6-^z7NQ8#ZiMzkdCvPoHkz zz8w`6_44J*J9qAsmzV$k{ky2BXxFY?A3l8e`}gm(Y13k3V}U0q$LPMun}Zr!h6zgDka?cw3^9}E}>0mc8^5xxNmE{P?HK-$K>q98Fj zJGDe1DK$Ma&sORE?)^#%nJKnP;ikR@z6H*y8JQkcMXAA6ej&+K*~ykEO7?aNHWgMC zxdpkYC5Z|ZxjA{oRu#5Ni7EL>sa8NXNLXJ<0j#7X+g8aDB%uJZ(>cE=Rl!uxKsVXI z%s|1+P|wiV#N6CmN5ROz&_Lh7NZ-&%*U;R`*vQJjKmiJrfVLH-q*(>IxIyg#@@$nd zN=gc>^!0&3rdMvPmtT~wZ)j<02{OaTNEfI=x41H|B(Xv_uUHvof=g;~a#3bMNoIbY z0?5R~r2NtnTP2`NAzsKWfE$}vtOxdvUUGh}ennz|zM-B0$V)JVzP|XC=H|jx7ncO3 zBHWAB;NpiyW)Z+ZoqU2Pda%GTJ1y;^Qsfi`|MIrh5Ij~R+$jC3rFV4s>P;d@5 zRq#zr&ddYx!Rmc|tvvIJOA_;vQ$1a5m4GJbWoD*WS(v-I7@E3Rm|B{e7#g}7IJr4n zI=dQ~nOmATIhq)m!1TK0Czs}?=9R$orXciM;?xUD3b_S9n_W_iGRsm^+=}vZ6~JD$ z%Eav!Go0o@^`_uv@OxBG5|NZ^* z``6DO-@kqR^7+%p5AWZ-ee?R&%NNg|J$>@{(ZdJ#@7=v~`_|1H*RNf@a{1E53+K6ZM9qnzcEzM1h4fS=kHPuy>73F26CB;RB1^Ico zIoVm68R==MDalER3Gs2UG0{A;Cd`0selzKHgrQ9`0_gF3wJl4)%7oHr7^_ z7UpKACdNjp{}N?qO7E-ATK8?BP}HFfhW0S{OOhO#noZi%b`dsS#`djvo JU&f9M)&NKAH`@RJ literal 0 HcmV?d00001 diff --git a/docs/api/2.11/lib/filter_box_right.png b/docs/api/2.11/lib/filter_box_right.png new file mode 100644 index 0000000000000000000000000000000000000000..f127e35b48d39bd048fea2a8e98dd68fb5984601 GIT binary patch literal 1803 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 literal 0 HcmV?d00001 diff --git a/docs/api/2.11/lib/filterboxbg.gif b/docs/api/2.11/lib/filterboxbg.gif new file mode 100644 index 0000000000000000000000000000000000000000..ae2f85823bbbd77d85a28d8348bfd75a1ec626ba GIT binary patch literal 1366 zcmaJ>d0^927|&$j+)$KD(Vht+jHR17kQ|Xk~>-G7(u~=+)csLf1#pCg4G#U&J1%shPBA!%LkH;I2 z#Q-f73I+oHOga+^12g3F`2nN9zdw;s)9KX6$Vez04h4f=k2jS{`~1FiCX-OrU@#aR zj;2yc5GN9eh9hAxhK7dXaj>aIB9TBKkVqu_e!s`#Nv4u1Ku)Kj9HV5UsKr$eJ4l5D z-^wbtNKze)0=F`4EN??Hd-ftQOWTlUvkP;HcBY+O+AA@Qy~~@Z-VVx2BUOvwN;l!= zM2=BN*v)nFGU2u%BrUWu1hBPb6oE$}N{0=p);3@*rd^O2*sRBN6jqMG;It~H;$H-2Ig?S|0ygt^@t4Gz{oyTp)+ATXZA1F zw+o6Ow+kX{Z#2U$l45zyAH};|L>(_HBu_DQ4jTd#^ejsg6&9z%V0M_yRFSl4tHPt5El;t`Es*7WICCjA`bIm!qS}SlOi0oh_b}d6YC4qxSOD5Rdx!^hV z#<+CuT#PxnC`bm?4)$LMom~RmqnYDv3!L%BXL!)<5@_qZk-z@@Zk3iy3q&o^Ix_2n0zAN=goPd@(W!w=pceDB?N-X3`C%{LCb zzJK4|*Is>P&+eCBdhvzlpL_P1T~F_PYR8lP+n;#+u}8N(^6*0sK5+ki_ug~&U3YHX za>wnr-FnN-n{T>t(+wN1zwX*=uHJCf`o1gIU2*wkmtNA_&!Ej)h%7(taaFHsux!+vQ;i5tQD4W zv&o2qE2YzH_B}#`-nO=9mf!3Ja$e73rto#dFaKXdXHZg3R;GHY5gN(z}Nwo2iqz6QPp&Z!xh9#uuD!Bu`C$yM3OmMKd1b_zBX zRu#Dgxv3?I3Kh9IdBs*0wn~X9`AMl(KsHENUr7P1q$Jx`$q^)>0J76LzbI9~RL?*+ z*}%*|!OT$4(AdP>++0V&$iUD*-@r)U&`8(N+{)O<%D_MY3Y37h6{VzE1-ZCE?E>;_ zl`=|73as??%gf94%8m8%i_-NCEiElUW*8ai0#)c1SLT%@R_NvxE5l51Ni9w;$}A|! z%+FH*nV6WAUs__T1av9H3%LbwWAlpjz~0eI&d=4aNG#Ad)H48i38v837r)ZnT)67u zlAu(Cd$Af^98y`3svneEoL^d$oC;K~46>@g%DE^tu_V7JBtJg~7K#BG`6c$o&6x?nx#i>^x=oo!a#3DsBObD2IKumbD1#;jCKQ#}S+KYh6n(_a? zzkh!J`uXGgx36D5fBN|0{kyksUcY+z;`y_uPaZ#d_~8D%yLWEix_RUJwX0VyU%GhV z{JFDdPMZ`!zF{kpYlR z+RD .pre { + display: block; + position: absolute; + top: 0; + left: 0; + height: 23px; + width: 21px; + background: url("filter_box_left.png"); +} + +#textfilter > .input { + display: block; + position: absolute; + top: 0; + right: 20px; + left: 20px; +} + +#textfilter > .input > input { + height: 20px; + padding: 1px; + font-weight: bold; + color: #000000; + background: #ffffff url("filterboxbarbg.png") repeat-x bottom left; + width: 100%; +} + +#textfilter > .post { + display: block; + position: absolute; + top: 0; + right: 0; + height: 23px; + width: 21px; + background: url("filter_box_right.png"); +} + +/*#textfilter { + position: relative; + display: block; + height: 20px; + margin-bottom: 5px; +} + +#textfilter > .pre { + display: block; + position: absolute; + top: 0; + left: 0; + height: 20px; + width: 20px; + background: url("filter_box_left.png"); +} + +#textfilter > .input { + display: block; + position: absolute; + top: 0; + right: 20px; + left: 20px; +} + +#textfilter > .input > input { + height: 16px; + padding: 2px; + font-weight: bold; + color: darkblue; + background-color: white; + width: 100%; +} + +#textfilter > .post { + display: block; + position: absolute; + top: 0; + right: 0; + height: 20px; + width: 20px; + background: url("filter_box_right.png"); +}*/ + +#focusfilter { + position: relative; + text-align: center; + display: block; + padding: 5px; + background-color: #fffebd; /* light yellow*/ + text-shadow: #ffffff 0 1px 0; +} + +#focusfilter .focuscoll { + font-weight: bold; + text-shadow: #ffffff 0 1px 0; +} + +#focusfilter img { + bottom: -2px; + position: relative; +} + +#kindfilter { + position: relative; + display: block; + padding: 5px; +/* background-color: #999;*/ + text-align: center; +} + +#kindfilter > a { + color: black; +/* text-decoration: underline;*/ + text-shadow: #ffffff 0 1px 0; + +} + +#kindfilter > a:hover { + color: #4C4C4C; + text-decoration: none; + text-shadow: #ffffff 0 1px 0; +} + +#letters { + position: relative; + text-align: center; + padding-bottom: 5px; + border:1px solid #bbbbbb; + border-top:0; + border-left:0; + border-right:0; +} + +#letters > a, #letters > span { +/* font-family: monospace;*/ + color: #858484; + font-weight: bold; + font-size: 8pt; + text-shadow: #ffffff 0 1px 0; + padding-right: 2px; +} + +#letters > span { + color: #bbb; +} + +#tpl { + display: block; + position: fixed; + overflow: auto; + right: 0; + left: 0; + bottom: 0; + top: 5px; + position: absolute; + display: block; +} + +#tpl .packhide { + display: block; + float: right; + font-weight: normal; + color: white; +} + +#tpl .packfocus { + display: block; + float: right; + font-weight: normal; + color: white; +} + +#tpl .packages > ol { + background-color: #dadfe6; + /*margin-bottom: 5px;*/ +} + +/*#tpl .packages > ol > li { + margin-bottom: 1px; +}*/ + +#tpl .packages > li > a { + padding: 0px 5px; +} + +#tpl .packages > li > a.tplshow { + display: block; + color: white; + font-weight: bold; + display: block; + text-shadow: #000000 0 1px 0; +} + +#tpl ol > li.pack { + padding: 3px 5px; + background: url("packagesbg.gif"); + background-repeat:repeat-x; + min-height: 14px; + background-color: #6e808e; +} + +#tpl ol > li { + display: block; +} + +#tpl .templates > li { + padding-left: 5px; + min-height: 18px; +} + +#tpl ol > li .icon { + padding-right: 5px; + bottom: -2px; + position: relative; +} + +#tpl .templates div.placeholder { + padding-right: 5px; + width: 13px; + display: inline-block; +} + +#tpl .templates span.tplLink { + padding-left: 5px; +} + +#content { + border-left-width: 1px; + border-left-color: black; + border-left-style: white; + right: 0px; + left: 0px; + bottom: 0px; + top: 0px; + position: fixed; + margin-left: 300px; + display: block; + -webkit-overflow-scrolling: touch; +} + +#content > iframe { + display: block; + height: 100%; + width: 100%; +} + +.ui-layout-pane { + background: #FFF; + overflow: auto; +} + +.ui-layout-resizer { + background-image:url('filterbg.gif'); + background-repeat:repeat-x; + background-color: #ededee; /* light gray */ + border:1px solid #bbbbbb; + border-top:0; + border-bottom:0; + border-left: 0; +} + +.ui-layout-toggler { + background: #AAA; +} \ No newline at end of file diff --git a/docs/api/2.11/lib/index.js b/docs/api/2.11/lib/index.js new file mode 100644 index 0000000..cf81f7f --- /dev/null +++ b/docs/api/2.11/lib/index.js @@ -0,0 +1,577 @@ +// © 2009–2010 EPFL/LAMP +// code by Gilles Dubochet with contributions by Johannes Rudolph, "spiros" and Marcin Kubala + +var topLevelTemplates = undefined; +var topLevelPackages = undefined; + +var scheduler = undefined; + +var kindFilterState = undefined; +var focusFilterState = undefined; + +var title = $(document).attr('title'); + +var lastFragment = ""; + +$(document).ready(function() { + $('body').layout({ + west__size: '20%', + center__maskContents: true + }); + $('#browser').layout({ + center__paneSelector: ".ui-west-center" + //,center__initClosed:true + ,north__paneSelector: ".ui-west-north" + }); + $('iframe').bind("load", function(){ + try { + var subtitle = $(this).contents().find('title').text(); + $(document).attr('title', (title ? title + " - " : "") + subtitle); + } catch (e) { + // Chrome doesn't allow reading the iframe's contents when + // used on the local file system. + } + setUrlFragmentFromFrameSrc(); + }); + + // workaround for IE's iframe sizing lack of smartness + if($.browser.msie) { + function fixIFrame() { + $('iframe').height($(window).height() ) + } + $('iframe').bind("load",fixIFrame) + $('iframe').bind("resize",fixIFrame) + } + + scheduler = new Scheduler(); + scheduler.addLabel("init", 1); + scheduler.addLabel("focus", 2); + scheduler.addLabel("filter", 4); + + prepareEntityList(); + + configureTextFilter(); + configureKindFilter(); + configureEntityList(); + + setFrameSrcFromUrlFragment(); + + // If the url fragment changes, adjust the src of iframe "template". + $(window).bind('hashchange', function() { + if(lastFragment != window.location.hash) { + lastFragment = window.location.hash; + setFrameSrcFromUrlFragment(); + } + }); +}); + +// Set the iframe's src according to the fragment of the current url. +// fragment = "#scala.Either" => iframe url = "scala/Either.html" +// fragment = "#scala.Either@isRight:Boolean" => iframe url = "scala/Either.html#isRight:Boolean" +// fragment = "#scalaz.iteratee.package@>@>[E,A]=scalaz.iteratee.package.Iteratee[E,A]" => iframe url = "scalaz/iteratee/package.html#>@>[E,A]=scalaz.iteratee.package.Iteratee[E,A]" +function setFrameSrcFromUrlFragment() { + + function extractLoc(fragment) { + var loc = fragment.split('@')[0].replace(/\./g, "/"); + if (loc.indexOf(".html") < 0) { + loc += ".html"; + } + return loc; + } + + function extractMemberSig(fragment) { + var splitIdx = fragment.indexOf('@'); + if (splitIdx < 0) { + return; + } + return fragment.substr(splitIdx + 1); + } + + var fragment = location.hash.slice(1); + if (fragment) { + var locWithMemeberSig = extractLoc(fragment); + var memberSig = extractMemberSig(fragment); + if (memberSig) { + locWithMemeberSig += "#" + memberSig; + } + frames["template"].location.replace(location.protocol + locWithMemeberSig); + } else { + console.log("empty fragment detected"); + frames["template"].location.replace("package.html"); + } +} + +// Set the url fragment according to the src of the iframe "template". +// iframe url = "scala/Either.html" => url fragment = "#scala.Either" +// iframe url = "scala/Either.html#isRight:Boolean" => url fragment = "#scala.Either@isRight:Boolean" +// iframe url = "scalaz/iteratee/package.html#>@>[E,A]=scalaz.iteratee.package.Iteratee[E,A]" => fragment = "#scalaz.iteratee.package@>@>[E,A]=scalaz.iteratee.package.Iteratee[E,A]" +function setUrlFragmentFromFrameSrc() { + try { + var commonLength = location.pathname.lastIndexOf("/"); + var frameLocation = frames["template"].location; + var relativePath = frameLocation.pathname.slice(commonLength + 1); + + if(!relativePath || frameLocation.pathname.indexOf("/") < 0) + return; + + // Add #, remove ".html" and replace "/" with "." + fragment = "#" + relativePath.replace(/\.html$/, "").replace(/\//g, "."); + + // Add the frame's hash after an @ + if(frameLocation.hash) fragment += ("@" + frameLocation.hash.slice(1)); + + // Use replace to not add history items + lastFragment = fragment; + location.replace(fragment); + } + catch(e) { + // Chrome doesn't allow reading the iframe's location when + // used on the local file system. + } +} + +var Index = {}; + +(function (ns) { + function openLink(t, type) { + var href; + if (type == 'object') { + href = t['object']; + } else { + href = t['class'] || t['trait'] || t['case class'] || t['type']; + } + return [ + '' + ].join(''); + } + + function createPackageHeader(pack) { + return [ + '
  • ', + 'focushide', + '', + pack, + '
  • ' + ].join(''); + }; + + function createListItem(template) { + var inner = ''; + + + if (template.object) { + inner += openLink(template, 'object'); + } + + if (template['class'] || template['trait'] || template['case class'] || template['type']) { + inner += (inner == '') ? + '
    ' : ''; + inner += openLink(template, template['trait'] ? 'trait' : template['type'] ? 'type' : 'class'); + } else { + inner += '
    '; + } + + return [ + '
  • ', + inner, + '', + template.name.replace(/^.*\./, ''), + '
  • ' + ].join(''); + } + + + ns.createPackageTree = function (pack, matched, focused) { + var html = $.map(matched, function (child, i) { + return createListItem(child); + }).join(''); + + var header; + if (focused && pack == focused) { + header = ''; + } else { + header = createPackageHeader(pack); + } + + return [ + '
      ', + header, + '
        ', + html, + '
    ' + ].join(''); + } + + ns.keys = function (obj) { + var result = []; + var key; + for (key in obj) { + result.push(key); + } + return result; + } + + var hiddenPackages = {}; + + function subPackages(pack) { + return $.grep($('#tpl ol.packages'), function (element, index) { + var pack = $('li.pack > .tplshow', element).text(); + return pack.indexOf(pack + '.') == 0; + }); + } + + ns.hidePackage = function (ol) { + var selected = $('li.pack > .tplshow', ol).text(); + hiddenPackages[selected] = true; + + $('ol.templates', ol).hide(); + + $.each(subPackages(selected), function (index, element) { + $(element).hide(); + }); + } + + ns.showPackage = function (ol, state) { + var selected = $('li.pack > .tplshow', ol).text(); + hiddenPackages[selected] = false; + + $('ol.templates', ol).show(); + + $.each(subPackages(selected), function (index, element) { + $(element).show(); + + // When the filter is in "packs" state, + // we don't want to show the `.templates` + var key = $('li.pack > .tplshow', element).text(); + if (hiddenPackages[key] || state == 'packs') { + $('ol.templates', element).hide(); + } + }); + } + +})(Index); + +function configureEntityList() { + kindFilterSync(); + configureHideFilter(); + configureFocusFilter(); + textFilter(); +} + +/* Updates the list of entities (i.e. the content of the #tpl element) from the raw form generated by Scaladoc to a + form suitable for display. In particular, it adds class and object etc. icons, and it configures links to open in + the right frame. Furthermore, it sets the two reference top-level entities lists (topLevelTemplates and + topLevelPackages) to serve as reference for resetting the list when needed. + Be advised: this function should only be called once, on page load. */ +function prepareEntityList() { + var classIcon = $("#library > img.class"); + var traitIcon = $("#library > img.trait"); + var typeIcon = $("#library > img.type"); + var objectIcon = $("#library > img.object"); + var packageIcon = $("#library > img.package"); + + $('#tpl li.pack > a.tplshow').attr("target", "template"); + $('#tpl li.pack').each(function () { + $("span.class", this).each(function() { $(this).replaceWith(classIcon.clone()); }); + $("span.trait", this).each(function() { $(this).replaceWith(traitIcon.clone()); }); + $("span.type", this).each(function() { $(this).replaceWith(typeIcon.clone()); }); + $("span.object", this).each(function() { $(this).replaceWith(objectIcon.clone()); }); + $("span.package", this).each(function() { $(this).replaceWith(packageIcon.clone()); }); + }); + $('#tpl li.pack') + .prepend("hide") + .prepend("focus"); +} + +/* Handles all key presses while scrolling around with keyboard shortcuts in left panel */ +function keyboardScrolldownLeftPane() { + scheduler.add("init", function() { + $("#textfilter input").blur(); + var $items = $("#tpl li"); + $items.first().addClass('selected'); + + $(window).bind("keydown", function(e) { + var $old = $items.filter('.selected'), + $new; + + switch ( e.keyCode ) { + + case 9: // tab + $old.removeClass('selected'); + break; + + case 13: // enter + $old.removeClass('selected'); + var $url = $old.children().filter('a:last').attr('href'); + $("#template").attr("src",$url); + break; + + case 27: // escape + $old.removeClass('selected'); + $(window).unbind(e); + $("#textfilter input").focus(); + + break; + + case 38: // up + $new = $old.prev(); + + if (!$new.length) { + $new = $old.parent().prev(); + } + + if ($new.is('ol') && $new.children(':last').is('ol')) { + $new = $new.children().children(':last'); + } else if ($new.is('ol')) { + $new = $new.children(':last'); + } + + break; + + case 40: // down + $new = $old.next(); + if (!$new.length) { + $new = $old.parent().parent().next(); + } + if ($new.is('ol')) { + $new = $new.children(':first'); + } + break; + } + + if ($new.is('li')) { + $old.removeClass('selected'); + $new.addClass('selected'); + } else if (e.keyCode == 38) { + $(window).unbind(e); + $("#textfilter input").focus(); + } + }); + }); +} + +/* Configures the text filter */ +function configureTextFilter() { + scheduler.add("init", function() { + $("#textfilter").append(""); + var input = $("#textfilter input"); + resizeFilterBlock(); + input.bind('keyup', function(event) { + if (event.keyCode == 27) { // escape + input.attr("value", ""); + } + if (event.keyCode == 40) { // down arrow + $(window).unbind("keydown"); + keyboardScrolldownLeftPane(); + return false; + } + textFilter(); + }); + input.bind('keydown', function(event) { + if (event.keyCode == 9) { // tab + $("#template").contents().find("#mbrsel-input").focus(); + input.attr("value", ""); + return false; + } + textFilter(); + }); + input.focus(function(event) { input.select(); }); + }); + scheduler.add("init", function() { + $("#textfilter > .post").click(function(){ + $("#textfilter input").attr("value", ""); + textFilter(); + }); + }); +} + +function compilePattern(query) { + var escaped = query.replace(/([\.\*\+\?\|\(\)\[\]\\])/g, '\\$1'); + + if (query.toLowerCase() != query) { + // Regexp that matches CamelCase subbits: "BiSe" is + // "[a-z]*Bi[a-z]*Se" and matches "BitSet", "ABitSet", ... + return new RegExp(escaped.replace(/([A-Z])/g,"[a-z]*$1")); + } + else { // if query is all lower case make a normal case insensitive search + return new RegExp(escaped, "i"); + } +} + +// Filters all focused templates and packages. This function should be made less-blocking. +// @param query The string of the query +function textFilter() { + var query = $("#textfilter input").attr("value") || ''; + var queryRegExp = compilePattern(query); + + // if we are filtering on types, then we have to display types + // ("display packages only" is not possible when filtering) + if (query !== "") { + kindFilter("all"); + } + + // Three things trigger a reload of the left pane list: + // typeof textFilter.lastQuery === "undefined" <-- first load, there is nothing yet in the left pane + // textFilter.lastQuery !== query <-- the filter text has changed + // focusFilterState != null <-- a package has been "focused" + if ((typeof textFilter.lastQuery === "undefined") || (textFilter.lastQuery !== query) || (focusFilterState != null)) { + + textFilter.lastQuery = query; + + scheduler.clear("filter"); + + $('#tpl').html(''); + + var index = 0; + + var searchLoop = function () { + var packages = Index.keys(Index.PACKAGES).sort(); + + while (packages[index]) { + var pack = packages[index]; + var children = Index.PACKAGES[pack]; + index++; + + if (focusFilterState) { + if (pack == focusFilterState || + pack.indexOf(focusFilterState + '.') == 0) { + ; + } else { + continue; + } + } + + var matched = $.grep(children, function (child, i) { + return queryRegExp.test(child.name); + }); + + if (matched.length > 0) { + $('#tpl').append(Index.createPackageTree(pack, matched, + focusFilterState)); + scheduler.add('filter', searchLoop); + return; + } + } + + $('#tpl a.packfocus').click(function () { + focusFilter($(this).parent().parent()); + }); + configureHideFilter(); + }; + + scheduler.add('filter', searchLoop); + } +} + +/* Configures the hide tool by adding the hide link to all packages. */ +function configureHideFilter() { + $('#tpl li.pack a.packhide').click(function () { + var packhide = $(this) + var action = packhide.text(); + + var ol = $(this).parent().parent(); + + if (action == "hide") { + Index.hidePackage(ol); + packhide.text("show"); + } + else { + Index.showPackage(ol, kindFilterState); + packhide.text("hide"); + } + return false; + }); +} + +/* Configures the focus tool by adding the focus bar in the filter box (initially hidden), and by adding the focus + link to all packages. */ +function configureFocusFilter() { + scheduler.add("init", function() { + focusFilterState = null; + if ($("#focusfilter").length == 0) { + $("#filter").append("
    focused on
    "); + $("#focusfilter > .focusremove").click(function(event) { + textFilter(); + + $("#focusfilter").hide(); + $("#kindfilter").show(); + resizeFilterBlock(); + focusFilterState = null; + }); + $("#focusfilter").hide(); + resizeFilterBlock(); + } + }); + scheduler.add("init", function() { + $('#tpl li.pack a.packfocus').click(function () { + focusFilter($(this).parent()); + return false; + }); + }); +} + +/* Focuses the entity index on a specific package. To do so, it will copy the sub-templates and sub-packages of the + focuses package into the top-level templates and packages position of the index. The original top-level + @param package The
  • element that corresponds to the package in the entity index */ +function focusFilter(package) { + scheduler.clear("filter"); + + var currentFocus = $('li.pack > .tplshow', package).text(); + $("#focusfilter > .focuscoll").empty(); + $("#focusfilter > .focuscoll").append(currentFocus); + + $("#focusfilter").show(); + $("#kindfilter").hide(); + resizeFilterBlock(); + focusFilterState = currentFocus; + kindFilterSync(); + + textFilter(); +} + +function configureKindFilter() { + scheduler.add("init", function() { + kindFilterState = "all"; + $("#filter").append(""); + $("#kindfilter > a").click(function(event) { kindFilter("packs"); }); + resizeFilterBlock(); + }); +} + +function kindFilter(kind) { + if (kind == "packs") { + kindFilterState = "packs"; + kindFilterSync(); + $("#kindfilter > a").replaceWith("display all entities"); + $("#kindfilter > a").click(function(event) { kindFilter("all"); }); + } + else { + kindFilterState = "all"; + kindFilterSync(); + $("#kindfilter > a").replaceWith("display packages only"); + $("#kindfilter > a").click(function(event) { kindFilter("packs"); }); + } +} + +/* Applies the kind filter. */ +function kindFilterSync() { + if (kindFilterState == "all" || focusFilterState != null) { + $("#tpl a.packhide").text('hide'); + $("#tpl ol.templates").show(); + } else { + $("#tpl a.packhide").text('show'); + $("#tpl ol.templates").hide(); + } +} + +function resizeFilterBlock() { + $("#tpl").css("top", $("#filter").outerHeight(true)); +} diff --git a/docs/api/2.11/lib/jquery-ui.js b/docs/api/2.11/lib/jquery-ui.js new file mode 100644 index 0000000..faab0cf --- /dev/null +++ b/docs/api/2.11/lib/jquery-ui.js @@ -0,0 +1,6 @@ +/*! jQuery UI - v1.9.0 - 2012-10-05 +* http://jqueryui.com +* Includes: jquery.ui.core.js, jquery.ui.widget.js, jquery.ui.mouse.js, jquery.ui.position.js, jquery.ui.accordion.js, jquery.ui.autocomplete.js, jquery.ui.button.js, jquery.ui.datepicker.js, jquery.ui.dialog.js, jquery.ui.draggable.js, jquery.ui.droppable.js, jquery.ui.effect.js, jquery.ui.effect-blind.js, jquery.ui.effect-bounce.js, jquery.ui.effect-clip.js, jquery.ui.effect-drop.js, jquery.ui.effect-explode.js, jquery.ui.effect-fade.js, jquery.ui.effect-fold.js, jquery.ui.effect-highlight.js, jquery.ui.effect-pulsate.js, jquery.ui.effect-scale.js, jquery.ui.effect-shake.js, jquery.ui.effect-slide.js, jquery.ui.effect-transfer.js, jquery.ui.menu.js, jquery.ui.progressbar.js, jquery.ui.resizable.js, jquery.ui.selectable.js, jquery.ui.slider.js, jquery.ui.sortable.js, jquery.ui.spinner.js, jquery.ui.tabs.js, jquery.ui.tooltip.js +* Copyright (c) 2012 jQuery Foundation and other contributors Licensed MIT */ + +(function(e,t){function i(t,n){var r,i,o,u=t.nodeName.toLowerCase();return"area"===u?(r=t.parentNode,i=r.name,!t.href||!i||r.nodeName.toLowerCase()!=="map"?!1:(o=e("img[usemap=#"+i+"]")[0],!!o&&s(o))):(/input|select|textarea|button|object/.test(u)?!t.disabled:"a"===u?t.href||n:n)&&s(t)}function s(t){return!e(t).parents().andSelf().filter(function(){return e.css(this,"visibility")==="hidden"||e.expr.filters.hidden(this)}).length}var n=0,r=/^ui-id-\d+$/;e.ui=e.ui||{};if(e.ui.version)return;e.extend(e.ui,{version:"1.9.0",keyCode:{BACKSPACE:8,COMMA:188,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106,NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SPACE:32,TAB:9,UP:38}}),e.fn.extend({_focus:e.fn.focus,focus:function(t,n){return typeof t=="number"?this.each(function(){var r=this;setTimeout(function(){e(r).focus(),n&&n.call(r)},t)}):this._focus.apply(this,arguments)},scrollParent:function(){var t;return e.browser.msie&&/(static|relative)/.test(this.css("position"))||/absolute/.test(this.css("position"))?t=this.parents().filter(function(){return/(relative|absolute|fixed)/.test(e.css(this,"position"))&&/(auto|scroll)/.test(e.css(this,"overflow")+e.css(this,"overflow-y")+e.css(this,"overflow-x"))}).eq(0):t=this.parents().filter(function(){return/(auto|scroll)/.test(e.css(this,"overflow")+e.css(this,"overflow-y")+e.css(this,"overflow-x"))}).eq(0),/fixed/.test(this.css("position"))||!t.length?e(document):t},zIndex:function(n){if(n!==t)return this.css("zIndex",n);if(this.length){var r=e(this[0]),i,s;while(r.length&&r[0]!==document){i=r.css("position");if(i==="absolute"||i==="relative"||i==="fixed"){s=parseInt(r.css("zIndex"),10);if(!isNaN(s)&&s!==0)return s}r=r.parent()}}return 0},uniqueId:function(){return this.each(function(){this.id||(this.id="ui-id-"+ ++n)})},removeUniqueId:function(){return this.each(function(){r.test(this.id)&&e(this).removeAttr("id")})}}),e("").outerWidth(1).jquery||e.each(["Width","Height"],function(n,r){function u(t,n,r,s){return e.each(i,function(){n-=parseFloat(e.css(t,"padding"+this))||0,r&&(n-=parseFloat(e.css(t,"border"+this+"Width"))||0),s&&(n-=parseFloat(e.css(t,"margin"+this))||0)}),n}var i=r==="Width"?["Left","Right"]:["Top","Bottom"],s=r.toLowerCase(),o={innerWidth:e.fn.innerWidth,innerHeight:e.fn.innerHeight,outerWidth:e.fn.outerWidth,outerHeight:e.fn.outerHeight};e.fn["inner"+r]=function(n){return n===t?o["inner"+r].call(this):this.each(function(){e(this).css(s,u(this,n)+"px")})},e.fn["outer"+r]=function(t,n){return typeof t!="number"?o["outer"+r].call(this,t):this.each(function(){e(this).css(s,u(this,t,!0,n)+"px")})}}),e.extend(e.expr[":"],{data:e.expr.createPseudo?e.expr.createPseudo(function(t){return function(n){return!!e.data(n,t)}}):function(t,n,r){return!!e.data(t,r[3])},focusable:function(t){return i(t,!isNaN(e.attr(t,"tabindex")))},tabbable:function(t){var n=e.attr(t,"tabindex"),r=isNaN(n);return(r||n>=0)&&i(t,!r)}}),e(function(){var t=document.body,n=t.appendChild(n=document.createElement("div"));n.offsetHeight,e.extend(n.style,{minHeight:"100px",height:"auto",padding:0,borderWidth:0}),e.support.minHeight=n.offsetHeight===100,e.support.selectstart="onselectstart"in n,t.removeChild(n).style.display="none"}),e.fn.extend({disableSelection:function(){return this.bind((e.support.selectstart?"selectstart":"mousedown")+".ui-disableSelection",function(e){e.preventDefault()})},enableSelection:function(){return this.unbind(".ui-disableSelection")}}),e.extend(e.ui,{plugin:{add:function(t,n,r){var i,s=e.ui[t].prototype;for(i in r)s.plugins[i]=s.plugins[i]||[],s.plugins[i].push([n,r[i]])},call:function(e,t,n){var r,i=e.plugins[t];if(!i||!e.element[0].parentNode||e.element[0].parentNode.nodeType===11)return;for(r=0;r0?!0:(t[r]=1,i=t[r]>0,t[r]=0,i)},isOverAxis:function(e,t,n){return e>t&&e",options:{disabled:!1,create:null},_createWidget:function(t,r){r=e(r||this.defaultElement||this)[0],this.element=e(r),this.uuid=n++,this.eventNamespace="."+this.widgetName+this.uuid,this.options=e.widget.extend({},this.options,this._getCreateOptions(),t),this.bindings=e(),this.hoverable=e(),this.focusable=e(),r!==this&&(e.data(r,this.widgetName,this),e.data(r,this.widgetFullName,this),this._on({remove:"destroy"}),this.document=e(r.style?r.ownerDocument:r.document||r),this.window=e(this.document[0].defaultView||this.document[0].parentWindow)),this._create(),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:e.noop,_getCreateEventData:e.noop,_create:e.noop,_init:e.noop,destroy:function(){this._destroy(),this.element.unbind(this.eventNamespace).removeData(this.widgetName).removeData(this.widgetFullName).removeData(e.camelCase(this.widgetFullName)),this.widget().unbind(this.eventNamespace).removeAttr("aria-disabled").removeClass(this.widgetFullName+"-disabled "+"ui-state-disabled"),this.bindings.unbind(this.eventNamespace),this.hoverable.removeClass("ui-state-hover"),this.focusable.removeClass("ui-state-focus")},_destroy:e.noop,widget:function(){return this.element},option:function(n,r){var i=n,s,o,u;if(arguments.length===0)return e.widget.extend({},this.options);if(typeof n=="string"){i={},s=n.split("."),n=s.shift();if(s.length){o=i[n]=e.widget.extend({},this.options[n]);for(u=0;u=9||!!t.button?this._mouseStarted?(this._mouseDrag(t),t.preventDefault()):(this._mouseDistanceMet(t)&&this._mouseDelayMet(t)&&(this._mouseStarted=this._mouseStart(this._mouseDownEvent,t)!==!1,this._mouseStarted?this._mouseDrag(t):this._mouseUp(t)),!this._mouseStarted):this._mouseUp(t)},_mouseUp:function(t){return e(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate),this._mouseStarted&&(this._mouseStarted=!1,t.target===this._mouseDownEvent.target&&e.data(t.target,this.widgetName+".preventClickEvent",!0),this._mouseStop(t)),!1},_mouseDistanceMet:function(e){return Math.max(Math.abs(this._mouseDownEvent.pageX-e.pageX),Math.abs(this._mouseDownEvent.pageY-e.pageY))>=this.options.distance},_mouseDelayMet:function(e){return this.mouseDelayMet},_mouseStart:function(e){},_mouseDrag:function(e){},_mouseStop:function(e){},_mouseCapture:function(e){return!0}})})(jQuery);(function(e,t){function h(e,t,n){return[parseInt(e[0],10)*(l.test(e[0])?t/100:1),parseInt(e[1],10)*(l.test(e[1])?n/100:1)]}function p(t,n){return parseInt(e.css(t,n),10)||0}e.ui=e.ui||{};var n,r=Math.max,i=Math.abs,s=Math.round,o=/left|center|right/,u=/top|center|bottom/,a=/[\+\-]\d+%?/,f=/^\w+/,l=/%$/,c=e.fn.position;e.position={scrollbarWidth:function(){if(n!==t)return n;var r,i,s=e("
    "),o=s.children()[0];return e("body").append(s),r=o.offsetWidth,s.css("overflow","scroll"),i=o.offsetWidth,r===i&&(i=s[0].clientWidth),s.remove(),n=r-i},getScrollInfo:function(t){var n=t.isWindow?"":t.element.css("overflow-x"),r=t.isWindow?"":t.element.css("overflow-y"),i=n==="scroll"||n==="auto"&&t.width0?"right":"center",vertical:u<0?"top":o>0?"bottom":"middle"};lr(i(o),i(u))?h.important="horizontal":h.important="vertical",t.using.call(this,e,h)}),a.offset(e.extend(C,{using:u}))})},e.ui.position={fit:{left:function(e,t){var n=t.within,i=n.isWindow?n.scrollLeft:n.offset.left,s=n.width,o=e.left-t.collisionPosition.marginLeft,u=i-o,a=o+t.collisionWidth-s-i,f;t.collisionWidth>s?u>0&&a<=0?(f=e.left+u+t.collisionWidth-s-i,e.left+=u-f):a>0&&u<=0?e.left=i:u>a?e.left=i+s-t.collisionWidth:e.left=i:u>0?e.left+=u:a>0?e.left-=a:e.left=r(e.left-o,e.left)},top:function(e,t){var n=t.within,i=n.isWindow?n.scrollTop:n.offset.top,s=t.within.height,o=e.top-t.collisionPosition.marginTop,u=i-o,a=o+t.collisionHeight-s-i,f;t.collisionHeight>s?u>0&&a<=0?(f=e.top+u+t.collisionHeight-s-i,e.top+=u-f):a>0&&u<=0?e.top=i:u>a?e.top=i+s-t.collisionHeight:e.top=i:u>0?e.top+=u:a>0?e.top-=a:e.top=r(e.top-o,e.top)}},flip:{left:function(e,t){var n=t.within,r=n.offset.left+n.scrollLeft,s=n.width,o=n.isWindow?n.scrollLeft:n.offset.left,u=e.left-t.collisionPosition.marginLeft,a=u-o,f=u+t.collisionWidth-s-o,l=t.my[0]==="left"?-t.elemWidth:t.my[0]==="right"?t.elemWidth:0,c=t.at[0]==="left"?t.targetWidth:t.at[0]==="right"?-t.targetWidth:0,h=-2*t.offset[0],p,d;if(a<0){p=e.left+l+c+h+t.collisionWidth-s-r;if(p<0||p0){d=e.left-t.collisionPosition.marginLeft+l+c+h-o;if(d>0||i(d)a&&(v<0||v0&&(d=e.top-t.collisionPosition.marginTop+c+h+p-o,e.top+c+h+p>f&&(d>0||i(d)10&&i<11,t.innerHTML="",n.removeChild(t)}(),e.uiBackCompat!==!1&&function(e){var n=e.fn.position;e.fn.position=function(r){if(!r||!r.offset)return n.call(this,r);var i=r.offset.split(" "),s=r.at.split(" ");return i.length===1&&(i[1]=i[0]),/^\d/.test(i[0])&&(i[0]="+"+i[0]),/^\d/.test(i[1])&&(i[1]="+"+i[1]),s.length===1&&(/left|center|right/.test(s[0])?s[1]="center":(s[1]=s[0],s[0]="center")),n.call(this,e.extend(r,{at:s[0]+i[0]+" "+s[1]+i[1],offset:t}))}}(jQuery)})(jQuery);(function(e,t){var n=0,r={},i={};r.height=r.paddingTop=r.paddingBottom=r.borderTopWidth=r.borderBottomWidth="hide",i.height=i.paddingTop=i.paddingBottom=i.borderTopWidth=i.borderBottomWidth="show",e.widget("ui.accordion",{version:"1.9.0",options:{active:0,animate:{},collapsible:!1,event:"click",header:"> li > :first-child,> :not(li):even",heightStyle:"auto",icons:{activeHeader:"ui-icon-triangle-1-s",header:"ui-icon-triangle-1-e"},activate:null,beforeActivate:null},_create:function(){var t=this.accordionId="ui-accordion-"+(this.element.attr("id")||++n),r=this.options;this.prevShow=this.prevHide=e(),this.element.addClass("ui-accordion ui-widget ui-helper-reset"),this.headers=this.element.find(r.header).addClass("ui-accordion-header ui-helper-reset ui-state-default ui-corner-all"),this._hoverable(this.headers),this._focusable(this.headers),this.headers.next().addClass("ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom").hide(),!r.collapsible&&r.active===!1&&(r.active=0),r.active<0&&(r.active+=this.headers.length),this.active=this._findActive(r.active).addClass("ui-accordion-header-active ui-state-active").toggleClass("ui-corner-all ui-corner-top"),this.active.next().addClass("ui-accordion-content-active").show(),this._createIcons(),this.originalHeight=this.element[0].style.height,this.refresh(),this.element.attr("role","tablist"),this.headers.attr("role","tab").each(function(n){var r=e(this),i=r.attr("id"),s=r.next(),o=s.attr("id");i||(i=t+"-header-"+n,r.attr("id",i)),o||(o=t+"-panel-"+n,s.attr("id",o)),r.attr("aria-controls",o),s.attr("aria-labelledby",i)}).next().attr("role","tabpanel"),this.headers.not(this.active).attr({"aria-selected":"false",tabIndex:-1}).next().attr({"aria-expanded":"false","aria-hidden":"true"}).hide(),this.active.length?this.active.attr({"aria-selected":"true",tabIndex:0}).next().attr({"aria-expanded":"true","aria-hidden":"false"}):this.headers.eq(0).attr("tabIndex",0),this._on(this.headers,{keydown:"_keydown"}),this._on(this.headers.next(),{keydown:"_panelKeyDown"}),this._setupEvents(r.event)},_getCreateEventData:function(){return{header:this.active,content:this.active.length?this.active.next():e()}},_createIcons:function(){var t=this.options.icons;t&&(e("").addClass("ui-accordion-header-icon ui-icon "+t.header).prependTo(this.headers),this.active.children(".ui-accordion-header-icon").removeClass(t.header).addClass(t.activeHeader),this.headers.addClass("ui-accordion-icons"))},_destroyIcons:function(){this.headers.removeClass("ui-accordion-icons").children(".ui-accordion-header-icon").remove()},_destroy:function(){var e;this.element.removeClass("ui-accordion ui-widget ui-helper-reset").removeAttr("role"),this.headers.removeClass("ui-accordion-header ui-accordion-header-active ui-helper-reset ui-state-default ui-corner-all ui-state-active ui-state-disabled ui-corner-top").removeAttr("role").removeAttr("aria-selected").removeAttr("aria-controls").removeAttr("tabIndex").each(function(){/^ui-accordion/.test(this.id)&&this.removeAttribute("id")}),this._destroyIcons(),e=this.headers.next().css("display","").removeAttr("role").removeAttr("aria-expanded").removeAttr("aria-hidden").removeAttr("aria-labelledby").removeClass("ui-helper-reset ui-widget-content ui-corner-bottom ui-accordion-content ui-accordion-content-active ui-state-disabled").each(function(){/^ui-accordion/.test(this.id)&&this.removeAttribute("id")}),this.options.heightStyle!=="content"&&(this.element.css("height",this.originalHeight),e.css("height",""))},_setOption:function(e,t){if(e==="active"){this._activate(t);return}e==="event"&&(this.options.event&&this._off(this.headers,this.options.event),this._setupEvents(t)),this._super(e,t),e==="collapsible"&&!t&&this.options.active===!1&&this._activate(0),e==="icons"&&(this._destroyIcons(),t&&this._createIcons()),e==="disabled"&&this.headers.add(this.headers.next()).toggleClass("ui-state-disabled",!!t)},_keydown:function(t){if(t.altKey||t.ctrlKey)return;var n=e.ui.keyCode,r=this.headers.length,i=this.headers.index(t.target),s=!1;switch(t.keyCode){case n.RIGHT:case n.DOWN:s=this.headers[(i+1)%r];break;case n.LEFT:case n.UP:s=this.headers[(i-1+r)%r];break;case n.SPACE:case n.ENTER:this._eventHandler(t);break;case n.HOME:s=this.headers[0];break;case n.END:s=this.headers[r-1]}s&&(e(t.target).attr("tabIndex",-1),e(s).attr("tabIndex",0),s.focus(),t.preventDefault())},_panelKeyDown:function(t){t.keyCode===e.ui.keyCode.UP&&t.ctrlKey&&e(t.currentTarget).prev().focus()},refresh:function(){var t,n,r=this.options.heightStyle,i=this.element.parent();this.element.css("height",this.originalHeight),r==="fill"?(e.support.minHeight||(n=i.css("overflow"),i.css("overflow","hidden")),t=i.height(),this.element.siblings(":visible").each(function(){var n=e(this),r=n.css("position");if(r==="absolute"||r==="fixed")return;t-=n.outerHeight(!0)}),n&&i.css("overflow",n),this.headers.each(function(){t-=e(this).outerHeight(!0)}),this.headers.next().each(function(){e(this).height(Math.max(0,t-e(this).innerHeight()+e(this).height()))}).css("overflow","auto")):r==="auto"&&(t=0,this.headers.next().each(function(){t=Math.max(t,e(this).height("").height())}).height(t)),r!=="content"&&this.element.height(this.element.height())},_activate:function(t){var n=this._findActive(t)[0];if(n===this.active[0])return;n=n||this.active[0],this._eventHandler({target:n,currentTarget:n,preventDefault:e.noop})},_findActive:function(t){return typeof t=="number"?this.headers.eq(t):e()},_setupEvents:function(t){var n={};if(!t)return;e.each(t.split(" "),function(e,t){n[t]="_eventHandler"}),this._on(this.headers,n)},_eventHandler:function(t){var n=this.options,r=this.active,i=e(t.currentTarget),s=i[0]===r[0],o=s&&n.collapsible,u=o?e():i.next(),a=r.next(),f={oldHeader:r,oldPanel:a,newHeader:o?e():i,newPanel:u};t.preventDefault();if(s&&!n.collapsible||this._trigger("beforeActivate",t,f)===!1)return;n.active=o?!1:this.headers.index(i),this.active=s?e():i,this._toggle(f),r.removeClass("ui-accordion-header-active ui-state-active"),n.icons&&r.children(".ui-accordion-header-icon").removeClass(n.icons.activeHeader).addClass(n.icons.header),s||(i.removeClass("ui-corner-all").addClass("ui-accordion-header-active ui-state-active ui-corner-top"),n.icons&&i.children(".ui-accordion-header-icon").removeClass(n.icons.header).addClass(n.icons.activeHeader),i.next().addClass("ui-accordion-content-active"))},_toggle:function(t){var n=t.newPanel,r=this.prevShow.length?this.prevShow:t.oldPanel;this.prevShow.add(this.prevHide).stop(!0,!0),this.prevShow=n,this.prevHide=r,this.options.animate?this._animate(n,r,t):(r.hide(),n.show(),this._toggleComplete(t)),r.attr({"aria-expanded":"false","aria-hidden":"true"}),r.prev().attr("aria-selected","false"),n.length&&r.length?r.prev().attr("tabIndex",-1):n.length&&this.headers.filter(function(){return e(this).attr("tabIndex")===0}).attr("tabIndex",-1),n.attr({"aria-expanded":"true","aria-hidden":"false"}).prev().attr({"aria-selected":"true",tabIndex:0})},_animate:function(e,t,n){var s,o,u,a=this,f=0,l=e.length&&(!t.length||e.index()",options:{appendTo:"body",autoFocus:!1,delay:300,minLength:1,position:{my:"left top",at:"left bottom",collision:"none"},source:null,change:null,close:null,focus:null,open:null,response:null,search:null,select:null},pending:0,_create:function(){var t,n,r;this.isMultiLine=this._isMultiLine(),this.valueMethod=this.element[this.element.is("input,textarea")?"val":"text"],this.isNewMenu=!0,this.element.addClass("ui-autocomplete-input").attr("autocomplete","off"),this._on({keydown:function(i){if(this.element.prop("readOnly")){t=!0,r=!0,n=!0;return}t=!1,r=!1,n=!1;var s=e.ui.keyCode;switch(i.keyCode){case s.PAGE_UP:t=!0,this._move("previousPage",i);break;case s.PAGE_DOWN:t=!0,this._move("nextPage",i);break;case s.UP:t=!0,this._keyEvent("previous",i);break;case s.DOWN:t=!0,this._keyEvent("next",i);break;case s.ENTER:case s.NUMPAD_ENTER:this.menu.active&&(t=!0,i.preventDefault(),this.menu.select(i));break;case s.TAB:this.menu.active&&this.menu.select(i);break;case s.ESCAPE:this.menu.element.is(":visible")&&(this._value(this.term),this.close(i),i.preventDefault());break;default:n=!0,this._searchTimeout(i)}},keypress:function(r){if(t){t=!1,r.preventDefault();return}if(n)return;var i=e.ui.keyCode;switch(r.keyCode){case i.PAGE_UP:this._move("previousPage",r);break;case i.PAGE_DOWN:this._move("nextPage",r);break;case i.UP:this._keyEvent("previous",r);break;case i.DOWN:this._keyEvent("next",r)}},input:function(e){if(r){r=!1,e.preventDefault();return}this._searchTimeout(e)},focus:function(){this.selectedItem=null,this.previous=this._value()},blur:function(e){if(this.cancelBlur){delete this.cancelBlur;return}clearTimeout(this.searching),this.close(e),this._change(e)}}),this._initSource(),this.menu=e("
  • "+(o[0]>0&&I==o[1]-1?'
    ':""):""),F+=U}B+=F}return B+=x+($.browser.msie&&parseInt($.browser.version,10)<7&&!e.inline?'':""),e._keyEvent=!1,B},_generateMonthYearHeader:function(e,t,n,r,i,s,o,u){var a=this._get(e,"changeMonth"),f=this._get(e,"changeYear"),l=this._get(e,"showMonthAfterYear"),c='
    ',h="";if(s||!a)h+=''+o[t]+"";else{var p=r&&r.getFullYear()==n,d=i&&i.getFullYear()==n;h+='"}l||(c+=h+(s||!a||!f?" ":""));if(!e.yearshtml){e.yearshtml="";if(s||!f)c+=''+n+"";else{var m=this._get(e,"yearRange").split(":"),g=(new Date).getFullYear(),y=function(e){var t=e.match(/c[+-].*/)?n+parseInt(e.substring(1),10):e.match(/[+-].*/)?g+parseInt(e,10):parseInt(e,10);return isNaN(t)?g:t},b=y(m[0]),w=Math.max(b,y(m[1]||""));b=r?Math.max(b,r.getFullYear()):b,w=i?Math.min(w,i.getFullYear()):w,e.yearshtml+='",c+=e.yearshtml,e.yearshtml=null}}return c+=this._get(e,"yearSuffix"),l&&(c+=(s||!a||!f?" ":"")+h),c+="
    ",c},_adjustInstDate:function(e,t,n){var r=e.drawYear+(n=="Y"?t:0),i=e.drawMonth+(n=="M"?t:0),s=Math.min(e.selectedDay,this._getDaysInMonth(r,i))+(n=="D"?t:0),o=this._restrictMinMax(e,this._daylightSavingAdjust(new Date(r,i,s)));e.selectedDay=o.getDate(),e.drawMonth=e.selectedMonth=o.getMonth(),e.drawYear=e.selectedYear=o.getFullYear(),(n=="M"||n=="Y")&&this._notifyChange(e)},_restrictMinMax:function(e,t){var n=this._getMinMaxDate(e,"min"),r=this._getMinMaxDate(e,"max"),i=n&&tr?r:i,i},_notifyChange:function(e){var t=this._get(e,"onChangeMonthYear");t&&t.apply(e.input?e.input[0]:null,[e.selectedYear,e.selectedMonth+1,e])},_getNumberOfMonths:function(e){var t=this._get(e,"numberOfMonths");return t==null?[1,1]:typeof t=="number"?[1,t]:t},_getMinMaxDate:function(e,t){return this._determineDate(e,this._get(e,t+"Date"),null)},_getDaysInMonth:function(e,t){return 32-this._daylightSavingAdjust(new Date(e,t,32)).getDate()},_getFirstDayOfMonth:function(e,t){return(new Date(e,t,1)).getDay()},_canAdjustMonth:function(e,t,n,r){var i=this._getNumberOfMonths(e),s=this._daylightSavingAdjust(new Date(n,r+(t<0?t:i[0]*i[1]),1));return t<0&&s.setDate(this._getDaysInMonth(s.getFullYear(),s.getMonth())),this._isInRange(e,s)},_isInRange:function(e,t){var n=this._getMinMaxDate(e,"min"),r=this._getMinMaxDate(e,"max");return(!n||t.getTime()>=n.getTime())&&(!r||t.getTime()<=r.getTime())},_getFormatConfig:function(e){var t=this._get(e,"shortYearCutoff");return t=typeof t!="string"?t:(new Date).getFullYear()%100+parseInt(t,10),{shortYearCutoff:t,dayNamesShort:this._get(e,"dayNamesShort"),dayNames:this._get(e,"dayNames"),monthNamesShort:this._get(e,"monthNamesShort"),monthNames:this._get(e,"monthNames")}},_formatDate:function(e,t,n,r){t||(e.currentDay=e.selectedDay,e.currentMonth=e.selectedMonth,e.currentYear=e.selectedYear);var i=t?typeof t=="object"?t:this._daylightSavingAdjust(new Date(r,n,t)):this._daylightSavingAdjust(new Date(e.currentYear,e.currentMonth,e.currentDay));return this.formatDate(this._get(e,"dateFormat"),i,this._getFormatConfig(e))}}),$.fn.datepicker=function(e){if(!this.length)return this;$.datepicker.initialized||($(document).mousedown($.datepicker._checkExternalClick).find(document.body).append($.datepicker.dpDiv),$.datepicker.initialized=!0);var t=Array.prototype.slice.call(arguments,1);return typeof e!="string"||e!="isDisabled"&&e!="getDate"&&e!="widget"?e=="option"&&arguments.length==2&&typeof arguments[1]=="string"?$.datepicker["_"+e+"Datepicker"].apply($.datepicker,[this[0]].concat(t)):this.each(function(){typeof e=="string"?$.datepicker["_"+e+"Datepicker"].apply($.datepicker,[this].concat(t)):$.datepicker._attachDatepicker(this,e)}):$.datepicker["_"+e+"Datepicker"].apply($.datepicker,[this[0]].concat(t))},$.datepicker=new Datepicker,$.datepicker.initialized=!1,$.datepicker.uuid=(new Date).getTime(),$.datepicker.version="1.9.0",window["DP_jQuery_"+dpuuid]=$})(jQuery);(function(e,t){var n="ui-dialog ui-widget ui-widget-content ui-corner-all ",r={buttons:!0,height:!0,maxHeight:!0,maxWidth:!0,minHeight:!0,minWidth:!0,width:!0},i={maxHeight:!0,maxWidth:!0,minHeight:!0,minWidth:!0};e.widget("ui.dialog",{version:"1.9.0",options:{autoOpen:!0,buttons:{},closeOnEscape:!0,closeText:"close",dialogClass:"",draggable:!0,hide:null,height:"auto",maxHeight:!1,maxWidth:!1,minHeight:150,minWidth:150,modal:!1,position:{my:"center",at:"center",of:window,collision:"fit",using:function(t){var n=e(this).css(t).offset().top;n<0&&e(this).css("top",t.top-n)}},resizable:!0,show:null,stack:!0,title:"",width:300,zIndex:1e3},_create:function(){this.originalTitle=this.element.attr("title"),typeof this.originalTitle!="string"&&(this.originalTitle=""),this.oldPosition={parent:this.element.parent(),index:this.element.parent().children().index(this.element)},this.options.title=this.options.title||this.originalTitle;var t=this,r=this.options,i=r.title||" ",s=(this.uiDialog=e("
    ")).addClass(n+r.dialogClass).css({display:"none",outline:0,zIndex:r.zIndex}).attr("tabIndex",-1).keydown(function(n){r.closeOnEscape&&!n.isDefaultPrevented()&&n.keyCode&&n.keyCode===e.ui.keyCode.ESCAPE&&(t.close(n),n.preventDefault())}).mousedown(function(e){t.moveToTop(!1,e)}).appendTo("body"),o=this.element.show().removeAttr("title").addClass("ui-dialog-content ui-widget-content").appendTo(s),u=(this.uiDialogTitlebar=e("
    ")).addClass("ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix").prependTo(s),a=e("").addClass("ui-dialog-titlebar-close ui-corner-all").attr("role","button").click(function(e){e.preventDefault(),t.close(e)}).appendTo(u),f=(this.uiDialogTitlebarCloseText=e("")).addClass("ui-icon ui-icon-closethick").text(r.closeText).appendTo(a),l=e("").uniqueId().addClass("ui-dialog-title").html(i).prependTo(u),c=(this.uiDialogButtonPane=e("
    ")).addClass("ui-dialog-buttonpane ui-widget-content ui-helper-clearfix"),h=(this.uiButtonSet=e("
    ")).addClass("ui-dialog-buttonset").appendTo(c);s.attr({role:"dialog","aria-labelledby":l.attr("id")}),u.find("*").add(u).disableSelection(),this._hoverable(a),this._focusable(a),r.draggable&&e.fn.draggable&&this._makeDraggable(),r.resizable&&e.fn.resizable&&this._makeResizable(),this._createButtons(r.buttons),this._isOpen=!1,e.fn.bgiframe&&s.bgiframe(),this._on(s,{keydown:function(t){if(!r.modal||t.keyCode!==e.ui.keyCode.TAB)return;var n=e(":tabbable",s),i=n.filter(":first"),o=n.filter(":last");if(t.target===o[0]&&!t.shiftKey)return i.focus(1),!1;if(t.target===i[0]&&t.shiftKey)return o.focus(1),!1}})},_init:function(){this.options.autoOpen&&this.open()},_destroy:function(){var e,t=this.oldPosition;this.overlay&&this.overlay.destroy(),this.uiDialog.hide(),this.element.removeClass("ui-dialog-content ui-widget-content").hide().appendTo("body"),this.uiDialog.remove(),this.originalTitle&&this.element.attr("title",this.originalTitle),e=t.parent.children().eq(t.index),e.length&&e[0]!==this.element[0]?e.before(this.element):t.parent.append(this.element)},widget:function(){return this.uiDialog},close:function(t){var n=this,r,i;if(!this._isOpen)return;if(!1===this._trigger("beforeClose",t))return;return this._isOpen=!1,this.overlay&&this.overlay.destroy(),this.options.hide?this.uiDialog.hide(this.options.hide,function(){n._trigger("close",t)}):(this.uiDialog.hide(),this._trigger("close",t)),e.ui.dialog.overlay.resize(),this.options.modal&&(r=0,e(".ui-dialog").each(function(){this!==n.uiDialog[0]&&(i=e(this).css("z-index"),isNaN(i)||(r=Math.max(r,i)))}),e.ui.dialog.maxZ=r),this},isOpen:function(){return this._isOpen},moveToTop:function(t,n){var r=this.options,i;return r.modal&&!t||!r.stack&&!r.modal?this._trigger("focus",n):(r.zIndex>e.ui.dialog.maxZ&&(e.ui.dialog.maxZ=r.zIndex),this.overlay&&(e.ui.dialog.maxZ+=1,e.ui.dialog.overlay.maxZ=e.ui.dialog.maxZ,this.overlay.$el.css("z-index",e.ui.dialog.overlay.maxZ)),i={scrollTop:this.element.scrollTop(),scrollLeft:this.element.scrollLeft()},e.ui.dialog.maxZ+=1,this.uiDialog.css("z-index",e.ui.dialog.maxZ),this.element.attr(i),this._trigger("focus",n),this)},open:function(){if(this._isOpen)return;var t,n=this.options,r=this.uiDialog;return this._size(),this._position(n.position),r.show(n.show),this.overlay=n.modal?new e.ui.dialog.overlay(this):null,this.moveToTop(!0),t=this.element.find(":tabbable"),t.length||(t=this.uiDialogButtonPane.find(":tabbable"),t.length||(t=r)),t.eq(0).focus(),this._isOpen=!0,this._trigger("open"),this},_createButtons:function(t){var n,r,i=this,s=!1;this.uiDialogButtonPane.remove(),this.uiButtonSet.empty(),typeof t=="object"&&t!==null&&e.each(t,function(){return!(s=!0)}),s?(e.each(t,function(t,n){n=e.isFunction(n)?{click:n,text:t}:n;var r=e("
    ').css({width:this.offsetWidth+"px",height:this.offsetHeight+"px",position:"absolute",opacity:"0.001",zIndex:1e3}).css(e(this).offset()).appendTo("body")}),!0):!1)},_mouseStart:function(t){var n=this.options;return this.helper=this._createHelper(t),this.helper.addClass("ui-draggable-dragging"),this._cacheHelperProportions(),e.ui.ddmanager&&(e.ui.ddmanager.current=this),this._cacheMargins(),this.cssPosition=this.helper.css("position"),this.scrollParent=this.helper.scrollParent(),this.offset=this.positionAbs=this.element.offset(),this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left},e.extend(this.offset,{click:{left:t.pageX-this.offset.left,top:t.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()}),this.originalPosition=this.position=this._generatePosition(t),this.originalPageX=t.pageX,this.originalPageY=t.pageY,n.cursorAt&&this._adjustOffsetFromHelper(n.cursorAt),n.containment&&this._setContainment(),this._trigger("start",t)===!1?(this._clear(),!1):(this._cacheHelperProportions(),e.ui.ddmanager&&!n.dropBehaviour&&e.ui.ddmanager.prepareOffsets(this,t),this._mouseDrag(t,!0),e.ui.ddmanager&&e.ui.ddmanager.dragStart(this,t),!0)},_mouseDrag:function(t,n){this.position=this._generatePosition(t),this.positionAbs=this._convertPositionTo("absolute");if(!n){var r=this._uiHash();if(this._trigger("drag",t,r)===!1)return this._mouseUp({}),!1;this.position=r.position}if(!this.options.axis||this.options.axis!="y")this.helper[0].style.left=this.position.left+"px";if(!this.options.axis||this.options.axis!="x")this.helper[0].style.top=this.position.top+"px";return e.ui.ddmanager&&e.ui.ddmanager.drag(this,t),!1},_mouseStop:function(t){var n=!1;e.ui.ddmanager&&!this.options.dropBehaviour&&(n=e.ui.ddmanager.drop(this,t)),this.dropped&&(n=this.dropped,this.dropped=!1);var r=this.element[0],i=!1;while(r&&(r=r.parentNode))r==document&&(i=!0);if(!i&&this.options.helper==="original")return!1;if(this.options.revert=="invalid"&&!n||this.options.revert=="valid"&&n||this.options.revert===!0||e.isFunction(this.options.revert)&&this.options.revert.call(this.element,n)){var s=this;e(this.helper).animate(this.originalPosition,parseInt(this.options.revertDuration,10),function(){s._trigger("stop",t)!==!1&&s._clear()})}else this._trigger("stop",t)!==!1&&this._clear();return!1},_mouseUp:function(t){return e("div.ui-draggable-iframeFix").each(function(){this.parentNode.removeChild(this)}),e.ui.ddmanager&&e.ui.ddmanager.dragStop(this,t),e.ui.mouse.prototype._mouseUp.call(this,t)},cancel:function(){return this.helper.is(".ui-draggable-dragging")?this._mouseUp({}):this._clear(),this},_getHandle:function(t){var n=!this.options.handle||!e(this.options.handle,this.element).length?!0:!1;return e(this.options.handle,this.element).find("*").andSelf().each(function(){this==t.target&&(n=!0)}),n},_createHelper:function(t){var n=this.options,r=e.isFunction(n.helper)?e(n.helper.apply(this.element[0],[t])):n.helper=="clone"?this.element.clone().removeAttr("id"):this.element;return r.parents("body").length||r.appendTo(n.appendTo=="parent"?this.element[0].parentNode:n.appendTo),r[0]!=this.element[0]&&!/(fixed|absolute)/.test(r.css("position"))&&r.css("position","absolute"),r},_adjustOffsetFromHelper:function(t){typeof t=="string"&&(t=t.split(" ")),e.isArray(t)&&(t={left:+t[0],top:+t[1]||0}),"left"in t&&(this.offset.click.left=t.left+this.margins.left),"right"in t&&(this.offset.click.left=this.helperProportions.width-t.right+this.margins.left),"top"in t&&(this.offset.click.top=t.top+this.margins.top),"bottom"in t&&(this.offset.click.top=this.helperProportions.height-t.bottom+this.margins.top)},_getParentOffset:function(){this.offsetParent=this.helper.offsetParent();var t=this.offsetParent.offset();this.cssPosition=="absolute"&&this.scrollParent[0]!=document&&e.contains(this.scrollParent[0],this.offsetParent[0])&&(t.left+=this.scrollParent.scrollLeft(),t.top+=this.scrollParent.scrollTop());if(this.offsetParent[0]==document.body||this.offsetParent[0].tagName&&this.offsetParent[0].tagName.toLowerCase()=="html"&&e.browser.msie)t={top:0,left:0};return{top:t.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:t.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if(this.cssPosition=="relative"){var e=this.element.position();return{top:e.top-(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:e.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}return{top:0,left:0}},_cacheMargins:function(){this.margins={left:parseInt(this.element.css("marginLeft"),10)||0,top:parseInt(this.element.css("marginTop"),10)||0,right:parseInt(this.element.css("marginRight"),10)||0,bottom:parseInt(this.element.css("marginBottom"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var t=this.options;t.containment=="parent"&&(t.containment=this.helper[0].parentNode);if(t.containment=="document"||t.containment=="window")this.containment=[t.containment=="document"?0:e(window).scrollLeft()-this.offset.relative.left-this.offset.parent.left,t.containment=="document"?0:e(window).scrollTop()-this.offset.relative.top-this.offset.parent.top,(t.containment=="document"?0:e(window).scrollLeft())+e(t.containment=="document"?document:window).width()-this.helperProportions.width-this.margins.left,(t.containment=="document"?0:e(window).scrollTop())+(e(t.containment=="document"?document:window).height()||document.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top];if(!/^(document|window|parent)$/.test(t.containment)&&t.containment.constructor!=Array){var n=e(t.containment),r=n[0];if(!r)return;var i=n.offset(),s=e(r).css("overflow")!="hidden";this.containment=[(parseInt(e(r).css("borderLeftWidth"),10)||0)+(parseInt(e(r).css("paddingLeft"),10)||0),(parseInt(e(r).css("borderTopWidth"),10)||0)+(parseInt(e(r).css("paddingTop"),10)||0),(s?Math.max(r.scrollWidth,r.offsetWidth):r.offsetWidth)-(parseInt(e(r).css("borderLeftWidth"),10)||0)-(parseInt(e(r).css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left-this.margins.right,(s?Math.max(r.scrollHeight,r.offsetHeight):r.offsetHeight)-(parseInt(e(r).css("borderTopWidth"),10)||0)-(parseInt(e(r).css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top-this.margins.bottom],this.relative_container=n}else t.containment.constructor==Array&&(this.containment=t.containment)},_convertPositionTo:function(t,n){n||(n=this.position);var r=t=="absolute"?1:-1,i=this.options,s=this.cssPosition!="absolute"||this.scrollParent[0]!=document&&!!e.contains(this.scrollParent[0],this.offsetParent[0])?this.scrollParent:this.offsetParent,o=/(html|body)/i.test(s[0].tagName);return{top:n.top+this.offset.relative.top*r+this.offset.parent.top*r-(this.cssPosition=="fixed"?-this.scrollParent.scrollTop():o?0:s.scrollTop())*r,left:n.left+this.offset.relative.left*r+this.offset.parent.left*r-(this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():o?0:s.scrollLeft())*r}},_generatePosition:function(t){var n=this.options,r=this.cssPosition!="absolute"||this.scrollParent[0]!=document&&!!e.contains(this.scrollParent[0],this.offsetParent[0])?this.scrollParent:this.offsetParent,i=/(html|body)/i.test(r[0].tagName),s=t.pageX,o=t.pageY;if(this.originalPosition){var u;if(this.containment){if(this.relative_container){var a=this.relative_container.offset();u=[this.containment[0]+a.left,this.containment[1]+a.top,this.containment[2]+a.left,this.containment[3]+a.top]}else u=this.containment;t.pageX-this.offset.click.leftu[2]&&(s=u[2]+this.offset.click.left),t.pageY-this.offset.click.top>u[3]&&(o=u[3]+this.offset.click.top)}if(n.grid){var f=n.grid[1]?this.originalPageY+Math.round((o-this.originalPageY)/n.grid[1])*n.grid[1]:this.originalPageY;o=u?f-this.offset.click.topu[3]?f-this.offset.click.topu[2]?l-this.offset.click.left=0;l--){var c=r.snapElements[l].left,h=c+r.snapElements[l].width,p=r.snapElements[l].top,d=p+r.snapElements[l].height;if(!(c-s=l&&o<=c||u>=l&&u<=c||oc)&&(i>=a&&i<=f||s>=a&&s<=f||if);default:return!1}},e.ui.ddmanager={current:null,droppables:{"default":[]},prepareOffsets:function(t,n){var r=e.ui.ddmanager.droppables[t.options.scope]||[],i=n?n.type:null,s=(t.currentItem||t.element).find(":data(droppable)").andSelf();e:for(var o=0;oe?0:r.max")[0],c,h=t.each;l.style.cssText="background-color:rgba(1,1,1,.5)",f.rgba=l.style.backgroundColor.indexOf("rgba")>-1,h(u,function(e,t){t.cache="_"+e,t.props.alpha={idx:3,type:"percent",def:1}}),o.fn=t.extend(o.prototype,{parse:function(r,i,s,a){if(r===n)return this._rgba=[null,null,null,null],this;if(r.jquery||r.nodeType)r=t(r).css(i),i=n;var f=this,l=t.type(r),v=this._rgba=[],m;i!==n&&(r=[r,i,s,a],l="array");if(l==="string")return this.parse(d(r)||c._default);if(l==="array")return h(u.rgba.props,function(e,t){v[t.idx]=p(r[t.idx],t)}),this;if(l==="object")return r instanceof o?h(u,function(e,t){r[t.cache]&&(f[t.cache]=r[t.cache].slice())}):h(u,function(t,n){var i=n.cache;h(n.props,function(e,t){if(!f[i]&&n.to){if(e==="alpha"||r[e]==null)return;f[i]=n.to(f._rgba)}f[i][t.idx]=p(r[e],t,!0)}),f[i]&&e.inArray(null,f[i].slice(0,3))<0&&(f[i][3]=1,n.from&&(f._rgba=n.from(f[i])))}),this},is:function(e){var t=o(e),n=!0,r=this;return h(u,function(e,i){var s,o=t[i.cache];return o&&(s=r[i.cache]||i.to&&i.to(r._rgba)||[],h(i.props,function(e,t){if(o[t.idx]!=null)return n=o[t.idx]===s[t.idx],n})),n}),n},_space:function(){var e=[],t=this;return h(u,function(n,r){t[r.cache]&&e.push(n)}),e.pop()},transition:function(e,t){var n=o(e),r=n._space(),i=u[r],s=this.alpha()===0?o("transparent"):this,f=s[i.cache]||i.to(s._rgba),l=f.slice();return n=n[i.cache],h(i.props,function(e,r){var i=r.idx,s=f[i],o=n[i],u=a[r.type]||{};if(o===null)return;s===null?l[i]=o:(u.mod&&(o-s>u.mod/2?s+=u.mod:s-o>u.mod/2&&(s-=u.mod)),l[i]=p((o-s)*t+s,r))}),this[r](l)},blend:function(e){if(this._rgba[3]===1)return this;var n=this._rgba.slice(),r=n.pop(),i=o(e)._rgba;return o(t.map(n,function(e,t){return(1-r)*i[t]+r*e}))},toRgbaString:function(){var e="rgba(",n=t.map(this._rgba,function(e,t){return e==null?t>2?1:0:e});return n[3]===1&&(n.pop(),e="rgb("),e+n.join()+")"},toHslaString:function(){var e="hsla(",n=t.map(this.hsla(),function(e,t){return e==null&&(e=t>2?1:0),t&&t<3&&(e=Math.round(e*100)+"%"),e});return n[3]===1&&(n.pop(),e="hsl("),e+n.join()+")"},toHexString:function(e){var n=this._rgba.slice(),r=n.pop();return e&&n.push(~~(r*255)),"#"+t.map(n,function(e,t){return e=(e||0).toString(16),e.length===1?"0"+e:e}).join("")},toString:function(){return this._rgba[3]===0?"transparent":this.toRgbaString()}}),o.fn.parse.prototype=o.fn,u.hsla.to=function(e){if(e[0]==null||e[1]==null||e[2]==null)return[null,null,null,e[3]];var t=e[0]/255,n=e[1]/255,r=e[2]/255,i=e[3],s=Math.max(t,n,r),o=Math.min(t,n,r),u=s-o,a=s+o,f=a*.5,l,c;return o===s?l=0:t===s?l=60*(n-r)/u+360:n===s?l=60*(r-t)/u+120:l=60*(t-n)/u+240,f===0||f===1?c=f:f<=.5?c=u/a:c=u/(2-a),[Math.round(l)%360,c,f,i==null?1:i]},u.hsla.from=function(e){if(e[0]==null||e[1]==null||e[2]==null)return[null,null,null,e[3]];var t=e[0]/360,n=e[1],r=e[2],i=e[3],s=r<=.5?r*(1+n):r+n-r*n,o=2*r-s,u,a,f;return[Math.round(v(o,s,t+1/3)*255),Math.round(v(o,s,t)*255),Math.round(v(o,s,t-1/3)*255),i]},h(u,function(e,r){var s=r.props,u=r.cache,a=r.to,f=r.from;o.fn[e]=function(e){a&&!this[u]&&(this[u]=a(this._rgba));if(e===n)return this[u].slice();var r,i=t.type(e),l=i==="array"||i==="object"?e:arguments,c=this[u].slice();return h(s,function(e,t){var n=l[i==="object"?e:t.idx];n==null&&(n=c[t.idx]),c[t.idx]=p(n,t)}),f?(r=o(f(c)),r[u]=c,r):o(c)},h(s,function(n,r){if(o.fn[n])return;o.fn[n]=function(s){var o=t.type(s),u=n==="alpha"?this._hsla?"hsla":"rgba":e,a=this[u](),f=a[r.idx],l;return o==="undefined"?f:(o==="function"&&(s=s.call(this,f),o=t.type(s)),s==null&&r.empty?this:(o==="string"&&(l=i.exec(s),l&&(s=f+parseFloat(l[2])*(l[1]==="+"?1:-1))),a[r.idx]=s,this[u](a)))}})}),h(r,function(e,n){t.cssHooks[n]={set:function(e,r){var i,s,u="";if(t.type(r)!=="string"||(i=d(r))){r=o(i||r);if(!f.rgba&&r._rgba[3]!==1){s=n==="backgroundColor"?e.parentNode:e;while((u===""||u==="transparent")&&s&&s.style)try{u=t.css(s,"backgroundColor"),s=s.parentNode}catch(a){}r=r.blend(u&&u!=="transparent"?u:"_default")}r=r.toRgbaString()}try{e.style[n]=r}catch(r){}}},t.fx.step[n]=function(e){e.colorInit||(e.start=o(e.elem,n),e.end=o(e.end),e.colorInit=!0),t.cssHooks[n].set(e.elem,e.start.transition(e.end,e.pos))}}),t.cssHooks.borderColor={expand:function(e){var t={};return h(["Top","Right","Bottom","Left"],function(n,r){t["border"+r+"Color"]=e}),t}},c=t.Color.names={aqua:"#00ffff",black:"#000000",blue:"#0000ff",fuchsia:"#ff00ff",gray:"#808080",green:"#008000",lime:"#00ff00",maroon:"#800000",navy:"#000080",olive:"#808000",purple:"#800080",red:"#ff0000",silver:"#c0c0c0",teal:"#008080",white:"#ffffff",yellow:"#ffff00",transparent:[null,null,null,0],_default:"#ffffff"}}(jQuery),function(){function i(){var t=this.ownerDocument.defaultView?this.ownerDocument.defaultView.getComputedStyle(this,null):this.currentStyle,n={},r,i,s;if(t&&t.length&&t[0]&&t[t[0]]){s=t.length;while(s--)r=t[s],typeof t[r]=="string"&&(n[e.camelCase(r)]=t[r])}else for(r in t)typeof t[r]=="string"&&(n[r]=t[r]);return n}function s(t,n){var i={},s,o;for(s in n)o=n[s],t[s]!==o&&!r[s]&&(e.fx.step[s]||!isNaN(parseFloat(o)))&&(i[s]=o);return i}var n=["add","remove","toggle"],r={border:1,borderBottom:1,borderColor:1,borderLeft:1,borderRight:1,borderTop:1,borderWidth:1,margin:1,padding:1};e.each(["borderLeftStyle","borderRightStyle","borderBottomStyle","borderTopStyle"],function(t,n){e.fx.step[n]=function(e){if(e.end!=="none"&&!e.setAttr||e.pos===1&&!e.setAttr)jQuery.style(e.elem,n,e.end),e.setAttr=!0}}),e.effects.animateClass=function(t,r,o,u){var a=e.speed(r,o,u);return this.queue(function(){var r=e(this),o=r.attr("class")||"",u,f=a.children?r.find("*").andSelf():r;f=f.map(function(){var t=e(this);return{el:t,start:i.call(this)}}),u=function(){e.each(n,function(e,n){t[n]&&r[n+"Class"](t[n])})},u(),f=f.map(function(){return this.end=i.call(this.el[0]),this.diff=s(this.start,this.end),this}),r.attr("class",o),f=f.map(function(){var t=this,n=e.Deferred(),r=jQuery.extend({},a,{queue:!1,complete:function(){n.resolve(t)}});return this.el.animate(this.diff,r),n.promise()}),e.when.apply(e,f.get()).done(function(){u(),e.each(arguments,function(){var t=this.el;e.each(this.diff,function(e){t.css(e,"")})}),a.complete.call(r[0])})})},e.fn.extend({_addClass:e.fn.addClass,addClass:function(t,n,r,i){return n?e.effects.animateClass.call(this,{add:t},n,r,i):this._addClass(t)},_removeClass:e.fn.removeClass,removeClass:function(t,n,r,i){return n?e.effects.animateClass.call(this,{remove:t},n,r,i):this._removeClass(t)},_toggleClass:e.fn.toggleClass,toggleClass:function(n,r,i,s,o){return typeof r=="boolean"||r===t?i?e.effects.animateClass.call(this,r?{add:n}:{remove:n},i,s,o):this._toggleClass(n,r):e.effects.animateClass.call(this,{toggle:n},r,i,s)},switchClass:function(t,n,r,i,s){return e.effects.animateClass.call(this,{add:n,remove:t},r,i,s)}})}(),function(){function i(n,r,i,s){e.isPlainObject(n)&&(r=n,n=n.effect),n={effect:n},r===t&&(r={}),e.isFunction(r)&&(s=r,i=null,r={});if(typeof r=="number"||e.fx.speeds[r])s=i,i=r,r={};return e.isFunction(i)&&(s=i,i=null),r&&e.extend(n,r),i=i||r.duration,n.duration=e.fx.off?0:typeof i=="number"?i:i in e.fx.speeds?e.fx.speeds[i]:e.fx.speeds._default,n.complete=s||r.complete,n}function s(t){return!t||typeof t=="number"||e.fx.speeds[t]?!0:typeof t=="string"&&!e.effects.effect[t]?n&&e.effects[t]?!1:!0:!1}e.extend(e.effects,{version:"1.9.0",save:function(e,t){for(var n=0;n
    ").addClass("ui-effects-wrapper").css({fontSize:"100%",background:"transparent",border:"none",margin:0,padding:0}),i={width:t.width(),height:t.height()},s=document.activeElement;try{s.id}catch(o){s=document.body}return t.wrap(r),(t[0]===s||e.contains(t[0],s))&&e(s).focus(),r=t.parent(),t.css("position")==="static"?(r.css({position:"relative"}),t.css({position:"relative"})):(e.extend(n,{position:t.css("position"),zIndex:t.css("z-index")}),e.each(["top","left","bottom","right"],function(e,r){n[r]=t.css(r),isNaN(parseInt(n[r],10))&&(n[r]="auto")}),t.css({position:"relative",top:0,left:0,right:"auto",bottom:"auto"})),t.css(i),r.css(n).show()},removeWrapper:function(t){var n=document.activeElement;return t.parent().is(".ui-effects-wrapper")&&(t.parent().replaceWith(t),(t[0]===n||e.contains(t[0],n))&&e(n).focus()),t},setTransition:function(t,n,r,i){return i=i||{},e.each(n,function(e,n){var s=t.cssUnit(n);s[0]>0&&(i[n]=s[0]*r+s[1])}),i}}),e.fn.extend({effect:function(t,r,s,o){function h(t){function s(){e.isFunction(r)&&r.call(n[0]),e.isFunction(t)&&t()}var n=e(this),r=u.complete,i=u.mode;(n.is(":hidden")?i==="hide":i==="show")?s():l.call(n[0],u,s)}var u=i.apply(this,arguments),a=u.mode,f=u.queue,l=e.effects.effect[u.effect],c=!l&&n&&e.effects[u.effect];return e.fx.off||!l&&!c?a?this[a](u.duration,u.complete):this.each(function(){u.complete&&u.complete.call(this)}):l?f===!1?this.each(h):this.queue(f||"fx",h):c.call(this,{options:u,duration:u.duration,callback:u.complete,mode:u.mode})},_show:e.fn.show,show:function(e){if(s(e))return this._show.apply(this,arguments);var t=i.apply(this,arguments);return t.mode="show",this.effect.call(this,t)},_hide:e.fn.hide,hide:function(e){if(s(e))return this._hide.apply(this,arguments);var t=i.apply(this,arguments);return t.mode="hide",this.effect.call(this,t)},__toggle:e.fn.toggle,toggle:function(t){if(s(t)||typeof t=="boolean"||e.isFunction(t))return this.__toggle.apply(this,arguments);var n=i.apply(this,arguments);return n.mode="toggle",this.effect.call(this,n)},cssUnit:function(t){var n=this.css(t),r=[];return e.each(["em","px","%","pt"],function(e,t){n.indexOf(t)>0&&(r=[parseFloat(n),t])}),r}})}(),function(){var t={};e.each(["Quad","Cubic","Quart","Quint","Expo"],function(e,n){t[n]=function(t){return Math.pow(t,e+2)}}),e.extend(t,{Sine:function(e){return 1-Math.cos(e*Math.PI/2)},Circ:function(e){return 1-Math.sqrt(1-e*e)},Elastic:function(e){return e===0||e===1?e:-Math.pow(2,8*(e-1))*Math.sin(((e-1)*80-7.5)*Math.PI/15)},Back:function(e){return e*e*(3*e-2)},Bounce:function(e){var t,n=4;while(e<((t=Math.pow(2,--n))-1)/11);return 1/Math.pow(4,3-n)-7.5625*Math.pow((t*3-2)/22-e,2)}}),e.each(t,function(t,n){e.easing["easeIn"+t]=n,e.easing["easeOut"+t]=function(e){return 1-n(1-e)},e.easing["easeInOut"+t]=function(e){return e<.5?n(e*2)/2:1-n(e*-2+2)/2}})}()}(jQuery);(function(e,t){var n=/up|down|vertical/,r=/up|left|vertical|horizontal/;e.effects.effect.blind=function(t,i){var s=e(this),o=["position","top","bottom","left","right","height","width"],u=e.effects.setMode(s,t.mode||"hide"),a=t.direction||"up",f=n.test(a),l=f?"height":"width",c=f?"top":"left",h=r.test(a),p={},d=u==="show",v,m,g;s.parent().is(".ui-effects-wrapper")?e.effects.save(s.parent(),o):e.effects.save(s,o),s.show(),v=e.effects.createWrapper(s).css({overflow:"hidden"}),m=v[l](),g=parseFloat(v.css(c))||0,p[l]=d?m:0,h||(s.css(f?"bottom":"right",0).css(f?"top":"left","auto").css({position:"absolute"}),p[c]=d?g:m+g),d&&(v.css(l,0),h||v.css(c,g+m)),v.animate(p,{duration:t.duration,easing:t.easing,queue:!1,complete:function(){u==="hide"&&s.hide(),e.effects.restore(s,o),e.effects.removeWrapper(s),i()}})}})(jQuery);(function(e,t){e.effects.effect.bounce=function(t,n){var r=e(this),i=["position","top","bottom","left","right","height","width"],s=e.effects.setMode(r,t.mode||"effect"),o=s==="hide",u=s==="show",a=t.direction||"up",f=t.distance,l=t.times||5,c=l*2+(u||o?1:0),h=t.duration/c,p=t.easing,d=a==="up"||a==="down"?"top":"left",v=a==="up"||a==="left",m,g,y,b=r.queue(),w=b.length;(u||o)&&i.push("opacity"),e.effects.save(r,i),r.show(),e.effects.createWrapper(r),f||(f=r[d==="top"?"outerHeight":"outerWidth"]()/3),u&&(y={opacity:1},y[d]=0,r.css("opacity",0).css(d,v?-f*2:f*2).animate(y,h,p)),o&&(f/=Math.pow(2,l-1)),y={},y[d]=0;for(m=0;m1&&b.splice.apply(b,[1,0].concat(b.splice(w,c+1))),r.dequeue()}})(jQuery);(function(e,t){e.effects.effect.clip=function(t,n){var r=e(this),i=["position","top","bottom","left","right","height","width"],s=e.effects.setMode(r,t.mode||"hide"),o=s==="show",u=t.direction||"vertical",a=u==="vertical",f=a?"height":"width",l=a?"top":"left",c={},h,p,d;e.effects.save(r,i),r.show(),h=e.effects.createWrapper(r).css({overflow:"hidden"}),p=r[0].tagName==="IMG"?h:r,d=p[f](),o&&(p.css(f,0),p.css(l,d/2)),c[f]=o?d:0,c[l]=o?0:d/2,p.animate(c,{queue:!1,duration:t.duration,easing:t.easing,complete:function(){o||r.hide(),e.effects.restore(r,i),e.effects.removeWrapper(r),n()}})}})(jQuery);(function(e,t){e.effects.effect.drop=function(t,n){var r=e(this),i=["position","top","bottom","left","right","opacity","height","width"],s=e.effects.setMode(r,t.mode||"hide"),o=s==="show",u=t.direction||"left",a=u==="up"||u==="down"?"top":"left",f=u==="up"||u==="left"?"pos":"neg",l={opacity:o?1:0},c;e.effects.save(r,i),r.show(),e.effects.createWrapper(r),c=t.distance||r[a==="top"?"outerHeight":"outerWidth"](!0)/2,o&&r.css("opacity",0).css(a,f==="pos"?-c:c),l[a]=(o?f==="pos"?"+=":"-=":f==="pos"?"-=":"+=")+c,r.animate(l,{queue:!1,duration:t.duration,easing:t.easing,complete:function(){s==="hide"&&r.hide(),e.effects.restore(r,i),e.effects.removeWrapper(r),n()}})}})(jQuery);(function(e,t){e.effects.effect.explode=function(t,n){function y(){c.push(this),c.length===r*i&&b()}function b(){s.css({visibility:"visible"}),e(c).remove(),u||s.hide(),n()}var r=t.pieces?Math.round(Math.sqrt(t.pieces)):3,i=r,s=e(this),o=e.effects.setMode(s,t.mode||"hide"),u=o==="show",a=s.show().css("visibility","hidden").offset(),f=Math.ceil(s.outerWidth()/i),l=Math.ceil(s.outerHeight()/r),c=[],h,p,d,v,m,g;for(h=0;h
    ").css({position:"absolute",visibility:"visible",left:-p*f,top:-h*l}).parent().addClass("ui-effects-explode").css({position:"absolute",overflow:"hidden",width:f,height:l,left:d+(u?m*f:0),top:v+(u?g*l:0),opacity:u?0:1}).animate({left:d+(u?0:m*f),top:v+(u?0:g*l),opacity:u?1:0},t.duration||500,t.easing,y)}}})(jQuery);(function(e,t){e.effects.effect.fade=function(t,n){var r=e(this),i=e.effects.setMode(r,t.mode||"toggle");r.animate({opacity:i},{queue:!1,duration:t.duration,easing:t.easing,complete:n})}})(jQuery);(function(e,t){e.effects.effect.fold=function(t,n){var r=e(this),i=["position","top","bottom","left","right","height","width"],s=e.effects.setMode(r,t.mode||"hide"),o=s==="show",u=s==="hide",a=t.size||15,f=/([0-9]+)%/.exec(a),l=!!t.horizFirst,c=o!==l,h=c?["width","height"]:["height","width"],p=t.duration/2,d,v,m={},g={};e.effects.save(r,i),r.show(),d=e.effects.createWrapper(r).css({overflow:"hidden"}),v=c?[d.width(),d.height()]:[d.height(),d.width()],f&&(a=parseInt(f[1],10)/100*v[u?0:1]),o&&d.css(l?{height:0,width:a}:{height:a,width:0}),m[h[0]]=o?v[0]:a,g[h[1]]=o?v[1]:0,d.animate(m,p,t.easing).animate(g,p,t.easing,function(){u&&r.hide(),e.effects.restore(r,i),e.effects.removeWrapper(r),n()})}})(jQuery);(function(e,t){e.effects.effect.highlight=function(t,n){var r=e(this),i=["backgroundImage","backgroundColor","opacity"],s=e.effects.setMode(r,t.mode||"show"),o={backgroundColor:r.css("backgroundColor")};s==="hide"&&(o.opacity=0),e.effects.save(r,i),r.show().css({backgroundImage:"none",backgroundColor:t.color||"#ffff99"}).animate(o,{queue:!1,duration:t.duration,easing:t.easing,complete:function(){s==="hide"&&r.hide(),e.effects.restore(r,i),n()}})}})(jQuery);(function(e,t){e.effects.effect.pulsate=function(t,n){var r=e(this),i=e.effects.setMode(r,t.mode||"show"),s=i==="show",o=i==="hide",u=s||i==="hide",a=(t.times||5)*2+(u?1:0),f=t.duration/a,l=0,c=r.queue(),h=c.length,p;if(s||!r.is(":visible"))r.css("opacity",0).show(),l=1;for(p=1;p1&&c.splice.apply(c,[1,0].concat(c.splice(h,a+1))),r.dequeue()}})(jQuery);(function(e,t){e.effects.effect.puff=function(t,n){var r=e(this),i=e.effects.setMode(r,t.mode||"hide"),s=i==="hide",o=parseInt(t.percent,10)||150,u=o/100,a={height:r.height(),width:r.width()};e.extend(t,{effect:"scale",queue:!1,fade:!0,mode:i,complete:n,percent:s?o:100,from:s?a:{height:a.height*u,width:a.width*u}}),r.effect(t)},e.effects.effect.scale=function(t,n){var r=e(this),i=e.extend(!0,{},t),s=e.effects.setMode(r,t.mode||"effect"),o=parseInt(t.percent,10)||(parseInt(t.percent,10)===0?0:s==="hide"?0:100),u=t.direction||"both",a=t.origin,f={height:r.height(),width:r.width(),outerHeight:r.outerHeight(),outerWidth:r.outerWidth()},l={y:u!=="horizontal"?o/100:1,x:u!=="vertical"?o/100:1};i.effect="size",i.queue=!1,i.complete=n,s!=="effect"&&(i.origin=a||["middle","center"],i.restore=!0),i.from=t.from||(s==="show"?{height:0,width:0}:f),i.to={height:f.height*l.y,width:f.width*l.x,outerHeight:f.outerHeight*l.y,outerWidth:f.outerWidth*l.x},i.fade&&(s==="show"&&(i.from.opacity=0,i.to.opacity=1),s==="hide"&&(i.from.opacity=1,i.to.opacity=0)),r.effect(i)},e.effects.effect.size=function(t,n){var r=e(this),i=["position","top","bottom","left","right","width","height","overflow","opacity"],s=["position","top","bottom","left","right","overflow","opacity"],o=["width","height","overflow"],u=["fontSize"],a=["borderTopWidth","borderBottomWidth","paddingTop","paddingBottom"],f=["borderLeftWidth","borderRightWidth","paddingLeft","paddingRight"],l=e.effects.setMode(r,t.mode||"effect"),c=t.restore||l!=="effect",h=t.scale||"both",p=t.origin||["middle","center"],d,v,m,g=r.css("position");l==="show"&&r.show(),d={height:r.height(),width:r.width(),outerHeight:r.outerHeight(),outerWidth:r.outerWidth()},r.from=t.from||d,r.to=t.to||d,m={from:{y:r.from.height/d.height,x:r.from.width/d.width},to:{y:r.to.height/d.height,x:r.to.width/d.width}};if(h==="box"||h==="both")m.from.y!==m.to.y&&(i=i.concat(a),r.from=e.effects.setTransition(r,a,m.from.y,r.from),r.to=e.effects.setTransition(r,a,m.to.y,r.to)),m.from.x!==m.to.x&&(i=i.concat(f),r.from=e.effects.setTransition(r,f,m.from.x,r.from),r.to=e.effects.setTransition(r,f,m.to.x,r.to));(h==="content"||h==="both")&&m.from.y!==m.to.y&&(i=i.concat(u),r.from=e.effects.setTransition(r,u,m.from.y,r.from),r.to=e.effects.setTransition(r,u,m.to.y,r.to)),e.effects.save(r,c?i:s),r.show(),e.effects.createWrapper(r),r.css("overflow","hidden").css(r.from),p&&(v=e.effects.getBaseline(p,d),r.from.top=(d.outerHeight-r.outerHeight())*v.y,r.from.left=(d.outerWidth-r.outerWidth())*v.x,r.to.top=(d.outerHeight-r.to.outerHeight)*v.y,r.to.left=(d.outerWidth-r.to.outerWidth)*v.x),r.css(r.from);if(h==="content"||h==="both")a=a.concat(["marginTop","marginBottom"]).concat(u),f=f.concat(["marginLeft","marginRight"]),o=i.concat(a).concat(f),r.find("*[width]").each(function(){var n=e(this),r={height:n.height(),width:n.width()};c&&e.effects.save(n,o),n.from={height:r.height*m.from.y,width:r.width*m.from.x},n.to={height:r.height*m.to.y,width:r.width*m.to.x},m.from.y!==m.to.y&&(n.from=e.effects.setTransition(n,a,m.from.y,n.from),n.to=e.effects.setTransition(n,a,m.to.y,n.to)),m.from.x!==m.to.x&&(n.from=e.effects.setTransition(n,f,m.from.x,n.from),n.to=e.effects.setTransition(n,f,m.to.x,n.to)),n.css(n.from),n.animate(n.to,t.duration,t.easing,function(){c&&e.effects.restore(n,o)})});r.animate(r.to,{queue:!1,duration:t.duration,easing:t.easing,complete:function(){r.to.opacity===0&&r.css("opacity",r.from.opacity),l==="hide"&&r.hide(),e.effects.restore(r,c?i:s),c||(g==="static"?r.css({position:"relative",top:r.to.top,left:r.to.left}):e.each(["top","left"],function(e,t){r.css(t,function(t,n){var i=parseInt(n,10),s=e?r.to.left:r.to.top;return n==="auto"?s+"px":i+s+"px"})})),e.effects.removeWrapper(r),n()}})}})(jQuery);(function(e,t){e.effects.effect.shake=function(t,n){var r=e(this),i=["position","top","bottom","left","right","height","width"],s=e.effects.setMode(r,t.mode||"effect"),o=t.direction||"left",u=t.distance||20,a=t.times||3,f=a*2+1,l=Math.round(t.duration/f),c=o==="up"||o==="down"?"top":"left",h=o==="up"||o==="left",p={},d={},v={},m,g=r.queue(),y=g.length;e.effects.save(r,i),r.show(),e.effects.createWrapper(r),p[c]=(h?"-=":"+=")+u,d[c]=(h?"+=":"-=")+u*2,v[c]=(h?"-=":"+=")+u*2,r.animate(p,l,t.easing);for(m=1;m1&&g.splice.apply(g,[1,0].concat(g.splice(y,f+1))),r.dequeue()}})(jQuery);(function(e,t){e.effects.effect.slide=function(t,n){var r=e(this),i=["position","top","bottom","left","right","width","height"],s=e.effects.setMode(r,t.mode||"show"),o=s==="show",u=t.direction||"left",a=u==="up"||u==="down"?"top":"left",f=u==="up"||u==="left",l,c={};e.effects.save(r,i),r.show(),l=t.distance||r[a==="top"?"outerHeight":"outerWidth"](!0),e.effects.createWrapper(r).css({overflow:"hidden"}),o&&r.css(a,f?isNaN(l)?"-"+l:-l:l),c[a]=(o?f?"+=":"-=":f?"-=":"+=")+l,r.animate(c,{queue:!1,duration:t.duration,easing:t.easing,complete:function(){s==="hide"&&r.hide(),e.effects.restore(r,i),e.effects.removeWrapper(r),n()}})}})(jQuery);(function(e,t){e.effects.effect.transfer=function(t,n){var r=e(this),i=e(t.to),s=i.css("position")==="fixed",o=e("body"),u=s?o.scrollTop():0,a=s?o.scrollLeft():0,f=i.offset(),l={top:f.top-u,left:f.left-a,height:i.innerHeight(),width:i.innerWidth()},c=r.offset(),h=e('
    ').appendTo(document.body).addClass(t.className).css({top:c.top-u,left:c.left-a,height:r.innerHeight(),width:r.innerWidth(),position:s?"fixed":"absolute"}).animate(l,t.duration,t.easing,function(){h.remove(),n()})}})(jQuery);(function(e,t){var n=!1;e.widget("ui.menu",{version:"1.9.0",defaultElement:"
      ",delay:300,options:{icons:{submenu:"ui-icon-carat-1-e"},menus:"ul",position:{my:"left top",at:"right top"},role:"menu",blur:null,focus:null,select:null},_create:function(){this.activeMenu=this.element,this.element.uniqueId().addClass("ui-menu ui-widget ui-widget-content ui-corner-all").toggleClass("ui-menu-icons",!!this.element.find(".ui-icon").length).attr({role:this.options.role,tabIndex:0}).bind("click"+this.eventNamespace,e.proxy(function(e){this.options.disabled&&e.preventDefault()},this)),this.options.disabled&&this.element.addClass("ui-state-disabled").attr("aria-disabled","true"),this._on({"mousedown .ui-menu-item > a":function(e){e.preventDefault()},"click .ui-state-disabled > a":function(e){e.preventDefault()},"click .ui-menu-item:has(a)":function(t){var r=e(t.target).closest(".ui-menu-item");!n&&r.not(".ui-state-disabled").length&&(n=!0,this.select(t),r.has(".ui-menu").length?this.expand(t):this.element.is(":focus")||(this.element.trigger("focus",[!0]),this.active&&this.active.parents(".ui-menu").length===1&&clearTimeout(this.timer)))},"mouseenter .ui-menu-item":function(t){var n=e(t.currentTarget);n.siblings().children(".ui-state-active").removeClass("ui-state-active"),this.focus(t,n)},mouseleave:"collapseAll","mouseleave .ui-menu":"collapseAll",focus:function(e,t){var n=this.active||this.element.children(".ui-menu-item").eq(0);t||this.focus(e,n)},blur:function(t){this._delay(function(){e.contains(this.element[0],this.document[0].activeElement)||this.collapseAll(t)})},keydown:"_keydown"}),this.refresh(),this._on(this.document,{click:function(t){e(t.target).closest(".ui-menu").length||this.collapseAll(t),n=!1}})},_destroy:function(){this.element.removeAttr("aria-activedescendant").find(".ui-menu").andSelf().removeClass("ui-menu ui-widget ui-widget-content ui-corner-all ui-menu-icons").removeAttr("role").removeAttr("tabIndex").removeAttr("aria-labelledby").removeAttr("aria-expanded").removeAttr("aria-hidden").removeAttr("aria-disabled").removeUniqueId().show(),this.element.find(".ui-menu-item").removeClass("ui-menu-item").removeAttr("role").removeAttr("aria-disabled").children("a").removeUniqueId().removeClass("ui-corner-all ui-state-hover").removeAttr("tabIndex").removeAttr("role").removeAttr("aria-haspopup").children().each(function(){var t=e(this);t.data("ui-menu-submenu-carat")&&t.remove()}),this.element.find(".ui-menu-divider").removeClass("ui-menu-divider ui-widget-content")},_keydown:function(t){function a(e){return e.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")}var n,r,i,s,o,u=!0;switch(t.keyCode){case e.ui.keyCode.PAGE_UP:this.previousPage(t);break;case e.ui.keyCode.PAGE_DOWN:this.nextPage(t);break;case e.ui.keyCode.HOME:this._move("first","first",t);break;case e.ui.keyCode.END:this._move("last","last",t);break;case e.ui.keyCode.UP:this.previous(t);break;case e.ui.keyCode.DOWN:this.next(t);break;case e.ui.keyCode.LEFT:this.collapse(t);break;case e.ui.keyCode.RIGHT:this.active&&!this.active.is(".ui-state-disabled")&&this.expand(t);break;case e.ui.keyCode.ENTER:case e.ui.keyCode.SPACE:this._activate(t);break;case e.ui.keyCode.ESCAPE:this.collapse(t);break;default:u=!1,r=this.previousFilter||"",i=String.fromCharCode(t.keyCode),s=!1,clearTimeout(this.filterTimer),i===r?s=!0:i=r+i,o=new RegExp("^"+a(i),"i"),n=this.activeMenu.children(".ui-menu-item").filter(function(){return o.test(e(this).children("a").text())}),n=s&&n.index(this.active.next())!==-1?this.active.nextAll(".ui-menu-item"):n,n.length||(i=String.fromCharCode(t.keyCode),o=new RegExp("^"+a(i),"i"),n=this.activeMenu.children(".ui-menu-item").filter(function(){return o.test(e(this).children("a").text())})),n.length?(this.focus(t,n),n.length>1?(this.previousFilter=i,this.filterTimer=this._delay(function(){delete this.previousFilter},1e3)):delete this.previousFilter):delete this.previousFilter}u&&t.preventDefault()},_activate:function(e){this.active.is(".ui-state-disabled")||(this.active.children("a[aria-haspopup='true']").length?this.expand(e):this.select(e))},refresh:function(){var t,n=this.options.icons.submenu,r=this.element.find(this.options.menus+":not(.ui-menu)").addClass("ui-menu ui-widget ui-widget-content ui-corner-all").hide().attr({role:this.options.role,"aria-hidden":"true","aria-expanded":"false"});t=r.add(this.element),t.children(":not(.ui-menu-item):has(a)").addClass("ui-menu-item").attr("role","presentation").children("a").uniqueId().addClass("ui-corner-all").attr({tabIndex:-1,role:this._itemRole()}),t.children(":not(.ui-menu-item)").each(function(){var t=e(this);/[^\-—–\s]/.test(t.text())||t.addClass("ui-widget-content ui-menu-divider")}),t.children(".ui-state-disabled").attr("aria-disabled","true"),r.each(function(){var t=e(this),r=t.prev("a"),i=e("").addClass("ui-menu-icon ui-icon "+n).data("ui-menu-submenu-carat",!0);r.attr("aria-haspopup","true").prepend(i),t.attr("aria-labelledby",r.attr("id"))}),this.active&&!e.contains(this.element[0],this.active[0])&&this.blur()},_itemRole:function(){return{menu:"menuitem",listbox:"option"}[this.options.role]},focus:function(e,t){var n,r;this.blur(e,e&&e.type==="focus"),this._scrollIntoView(t),this.active=t.first(),r=this.active.children("a").addClass("ui-state-focus"),this.options.role&&this.element.attr("aria-activedescendant",r.attr("id")),this.active.parent().closest(".ui-menu-item").children("a:first").addClass("ui-state-active"),e&&e.type==="keydown"?this._close():this.timer=this._delay(function(){this._close()},this.delay),n=t.children(".ui-menu"),n.length&&/^mouse/.test(e.type)&&this._startOpening(n),this.activeMenu=t.parent(),this._trigger("focus",e,{item:t})},_scrollIntoView:function(t){var n,r,i,s,o,u;this._hasScroll()&&(n=parseFloat(e.css(this.activeMenu[0],"borderTopWidth"))||0,r=parseFloat(e.css(this.activeMenu[0],"paddingTop"))||0,i=t.offset().top-this.activeMenu.offset().top-n-r,s=this.activeMenu.scrollTop(),o=this.activeMenu.height(),u=t.height(),i<0?this.activeMenu.scrollTop(s+i):i+u>o&&this.activeMenu.scrollTop(s+i-o+u))},blur:function(e,t){t||clearTimeout(this.timer);if(!this.active)return;this.active.children("a").removeClass("ui-state-focus"),this.active=null,this._trigger("blur",e,{item:this.active})},_startOpening:function(e){clearTimeout(this.timer);if(e.attr("aria-hidden")!=="true")return;this.timer=this._delay(function(){this._close(),this._open(e)},this.delay)},_open:function(t){var n=e.extend({of:this.active},this.options.position);clearTimeout(this.timer),this.element.find(".ui-menu").not(t.parents(".ui-menu")).hide().attr("aria-hidden","true"),t.show().removeAttr("aria-hidden").attr("aria-expanded","true").position(n)},collapseAll:function(t,n){clearTimeout(this.timer),this.timer=this._delay(function(){var r=n?this.element:e(t&&t.target).closest(this.element.find(".ui-menu"));r.length||(r=this.element),this._close(r),this.blur(t),this.activeMenu=r},this.delay)},_close:function(e){e||(e=this.active?this.active.parent():this.element),e.find(".ui-menu").hide().attr("aria-hidden","true").attr("aria-expanded","false").end().find("a.ui-state-active").removeClass("ui-state-active")},collapse:function(e){var t=this.active&&this.active.parent().closest(".ui-menu-item",this.element);t&&t.length&&(this._close(),this.focus(e,t))},expand:function(e){var t=this.active&&this.active.children(".ui-menu ").children(".ui-menu-item").first();t&&t.length&&(this._open(t.parent()),this._delay(function(){this.focus(e,t)}))},next:function(e){this._move("next","first",e)},previous:function(e){this._move("prev","last",e)},isFirstItem:function(){return this.active&&!this.active.prevAll(".ui-menu-item").length},isLastItem:function(){return this.active&&!this.active.nextAll(".ui-menu-item").length},_move:function(e,t,n){var r;this.active&&(e==="first"||e==="last"?r=this.active[e==="first"?"prevAll":"nextAll"](".ui-menu-item").eq(-1):r=this.active[e+"All"](".ui-menu-item").eq(0));if(!r||!r.length||!this.active)r=this.activeMenu.children(".ui-menu-item")[t]();this.focus(n,r)},nextPage:function(t){var n,r,i;if(!this.active){this.next(t);return}if(this.isLastItem())return;this._hasScroll()?(r=this.active.offset().top,i=this.element.height(),this.active.nextAll(".ui-menu-item").each(function(){return n=e(this),n.offset().top-r-i<0}),this.focus(t,n)):this.focus(t,this.activeMenu.children(".ui-menu-item")[this.active?"last":"first"]())},previousPage:function(t){var n,r,i;if(!this.active){this.next(t);return}if(this.isFirstItem())return;this._hasScroll()?(r=this.active.offset().top,i=this.element.height(),this.active.prevAll(".ui-menu-item").each(function(){return n=e(this),n.offset().top-r+i>0}),this.focus(t,n)):this.focus(t,this.activeMenu.children(".ui-menu-item").first())},_hasScroll:function(){return this.element.outerHeight()
    ").appendTo(this.element),this.oldValue=this._value(),this._refreshValue()},_destroy:function(){this.element.removeClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").removeAttr("role").removeAttr("aria-valuemin").removeAttr("aria-valuemax").removeAttr("aria-valuenow"),this.valueDiv.remove()},value:function(e){return e===t?this._value():(this._setOption("value",e),this)},_setOption:function(e,t){e==="value"&&(this.options.value=t,this._refreshValue(),this._value()===this.options.max&&this._trigger("complete")),this._super(e,t)},_value:function(){var e=this.options.value;return typeof e!="number"&&(e=0),Math.min(this.options.max,Math.max(this.min,e))},_percentage:function(){return 100*this._value()/this.options.max},_refreshValue:function(){var e=this.value(),t=this._percentage();this.oldValue!==e&&(this.oldValue=e,this._trigger("change")),this.valueDiv.toggle(e>this.min).toggleClass("ui-corner-right",e===this.options.max).width(t.toFixed(0)+"%"),this.element.attr("aria-valuenow",e)}})})(jQuery);(function(e,t){e.widget("ui.resizable",e.ui.mouse,{version:"1.9.0",widgetEventPrefix:"resize",options:{alsoResize:!1,animate:!1,animateDuration:"slow",animateEasing:"swing",aspectRatio:!1,autoHide:!1,containment:!1,ghost:!1,grid:!1,handles:"e,s,se",helper:!1,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:1e3},_create:function(){var t=this,n=this.options;this.element.addClass("ui-resizable"),e.extend(this,{_aspectRatio:!!n.aspectRatio,aspectRatio:n.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:n.helper||n.ghost||n.animate?n.helper||"ui-resizable-helper":null}),this.element[0].nodeName.match(/canvas|textarea|input|select|button|img/i)&&(this.element.wrap(e('
    ').css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")})),this.element=this.element.parent().data("resizable",this.element.data("resizable")),this.elementIsWrapper=!0,this.element.css({marginLeft:this.originalElement.css("marginLeft"),marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom")}),this.originalElement.css({marginLeft:0,marginTop:0,marginRight:0,marginBottom:0}),this.originalResizeStyle=this.originalElement.css("resize"),this.originalElement.css("resize","none"),this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"})),this.originalElement.css({margin:this.originalElement.css("margin")}),this._proportionallyResize()),this.handles=n.handles||(e(".ui-resizable-handle",this.element).length?{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"}:"e,s,se");if(this.handles.constructor==String){this.handles=="all"&&(this.handles="n,e,s,w,se,sw,ne,nw");var r=this.handles.split(",");this.handles={};for(var i=0;i
    ');u.css({zIndex:n.zIndex}),"se"==s&&u.addClass("ui-icon ui-icon-gripsmall-diagonal-se"),this.handles[s]=".ui-resizable-"+s,this.element.append(u)}}this._renderAxis=function(t){t=t||this.element;for(var n in this.handles){this.handles[n].constructor==String&&(this.handles[n]=e(this.handles[n],this.element).show());if(this.elementIsWrapper&&this.originalElement[0].nodeName.match(/textarea|input|select|button/i)){var r=e(this.handles[n],this.element),i=0;i=/sw|ne|nw|se|n|s/.test(n)?r.outerHeight():r.outerWidth();var s=["padding",/ne|nw|n/.test(n)?"Top":/se|sw|s/.test(n)?"Bottom":/^e$/.test(n)?"Right":"Left"].join("");t.css(s,i),this._proportionallyResize()}if(!e(this.handles[n]).length)continue}},this._renderAxis(this.element),this._handles=e(".ui-resizable-handle",this.element).disableSelection(),this._handles.mouseover(function(){if(!t.resizing){if(this.className)var e=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i);t.axis=e&&e[1]?e[1]:"se"}}),n.autoHide&&(this._handles.hide(),e(this.element).addClass("ui-resizable-autohide").mouseenter(function(){if(n.disabled)return;e(this).removeClass("ui-resizable-autohide"),t._handles.show()}).mouseleave(function(){if(n.disabled)return;t.resizing||(e(this).addClass("ui-resizable-autohide"),t._handles.hide())})),this._mouseInit()},_destroy:function(){this._mouseDestroy();var t=function(t){e(t).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").removeData("ui-resizable").unbind(".resizable").find(".ui-resizable-handle").remove()};if(this.elementIsWrapper){t(this.element);var n=this.element;n.after(this.originalElement.css({position:n.css("position"),width:n.outerWidth(),height:n.outerHeight(),top:n.css("top"),left:n.css("left")})).remove()}return this.originalElement.css("resize",this.originalResizeStyle),t(this.originalElement),this},_mouseCapture:function(t){var n=!1;for(var r in this.handles)e(this.handles[r])[0]==t.target&&(n=!0);return!this.options.disabled&&n},_mouseStart:function(t){var r=this.options,i=this.element.position(),s=this.element;this.resizing=!0,this.documentScroll={top:e(document).scrollTop(),left:e(document).scrollLeft()},(s.is(".ui-draggable")||/absolute/.test(s.css("position")))&&s.css({position:"absolute",top:i.top,left:i.left}),this._renderProxy();var o=n(this.helper.css("left")),u=n(this.helper.css("top"));r.containment&&(o+=e(r.containment).scrollLeft()||0,u+=e(r.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:o,top:u},this.size=this._helper?{width:s.outerWidth(),height:s.outerHeight()}:{width:s.width(),height:s.height()},this.originalSize=this._helper?{width:s.outerWidth(),height:s.outerHeight()}:{width:s.width(),height:s.height()},this.originalPosition={left:o,top:u},this.sizeDiff={width:s.outerWidth()-s.width(),height:s.outerHeight()-s.height()},this.originalMousePosition={left:t.pageX,top:t.pageY},this.aspectRatio=typeof r.aspectRatio=="number"?r.aspectRatio:this.originalSize.width/this.originalSize.height||1;var a=e(".ui-resizable-"+this.axis).css("cursor");return e("body").css("cursor",a=="auto"?this.axis+"-resize":a),s.addClass("ui-resizable-resizing"),this._propagate("start",t),!0},_mouseDrag:function(e){var t=this.helper,n=this.options,r={},i=this,s=this.originalMousePosition,o=this.axis,u=e.pageX-s.left||0,a=e.pageY-s.top||0,f=this._change[o];if(!f)return!1;var l=f.apply(this,[e,u,a]);this._updateVirtualBoundaries(e.shiftKey);if(this._aspectRatio||e.shiftKey)l=this._updateRatio(l,e);return l=this._respectSize(l,e),this._propagate("resize",e),t.css({top:this.position.top+"px",left:this.position.left+"px",width:this.size.width+"px",height:this.size.height+"px"}),!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),this._updateCache(l),this._trigger("resize",e,this.ui()),!1},_mouseStop:function(t){this.resizing=!1;var n=this.options,r=this;if(this._helper){var i=this._proportionallyResizeElements,s=i.length&&/textarea/i.test(i[0].nodeName),o=s&&e.ui.hasScroll(i[0],"left")?0:r.sizeDiff.height,u=s?0:r.sizeDiff.width,a={width:r.helper.width()-u,height:r.helper.height()-o},f=parseInt(r.element.css("left"),10)+(r.position.left-r.originalPosition.left)||null,l=parseInt(r.element.css("top"),10)+(r.position.top-r.originalPosition.top)||null;n.animate||this.element.css(e.extend(a,{top:l,left:f})),r.helper.height(r.size.height),r.helper.width(r.size.width),this._helper&&!n.animate&&this._proportionallyResize()}return e("body").css("cursor","auto"),this.element.removeClass("ui-resizable-resizing"),this._propagate("stop",t),this._helper&&this.helper.remove(),!1},_updateVirtualBoundaries:function(e){var t=this.options,n,i,s,o,u;u={minWidth:r(t.minWidth)?t.minWidth:0,maxWidth:r(t.maxWidth)?t.maxWidth:Infinity,minHeight:r(t.minHeight)?t.minHeight:0,maxHeight:r(t.maxHeight)?t.maxHeight:Infinity};if(this._aspectRatio||e)n=u.minHeight*this.aspectRatio,s=u.minWidth/this.aspectRatio,i=u.maxHeight*this.aspectRatio,o=u.maxWidth/this.aspectRatio,n>u.minWidth&&(u.minWidth=n),s>u.minHeight&&(u.minHeight=s),ie.width,l=r(e.height)&&i.minHeight&&i.minHeight>e.height;f&&(e.width=i.minWidth),l&&(e.height=i.minHeight),u&&(e.width=i.maxWidth),a&&(e.height=i.maxHeight);var c=this.originalPosition.left+this.originalSize.width,h=this.position.top+this.size.height,p=/sw|nw|w/.test(o),d=/nw|ne|n/.test(o);f&&p&&(e.left=c-i.minWidth),u&&p&&(e.left=c-i.maxWidth),l&&d&&(e.top=h-i.minHeight),a&&d&&(e.top=h-i.maxHeight);var v=!e.width&&!e.height;return v&&!e.left&&e.top?e.top=null:v&&!e.top&&e.left&&(e.left=null),e},_proportionallyResize:function(){var t=this.options;if(!this._proportionallyResizeElements.length)return;var n=this.helper||this.element;for(var r=0;r
    ');var r=e.browser.msie&&e.browser.version<7,i=r?1:0,s=r?2:-1;this.helper.addClass(this._helper).css({width:this.element.outerWidth()+s,height:this.element.outerHeight()+s,position:"absolute",left:this.elementOffset.left-i+"px",top:this.elementOffset.top-i+"px",zIndex:++n.zIndex}),this.helper.appendTo("body").disableSelection()}else this.helper=this.element},_change:{e:function(e,t,n){return{width:this.originalSize.width+t}},w:function(e,t,n){var r=this.options,i=this.originalSize,s=this.originalPosition;return{left:s.left+t,width:i.width-t}},n:function(e,t,n){var r=this.options,i=this.originalSize,s=this.originalPosition;return{top:s.top+n,height:i.height-n}},s:function(e,t,n){return{height:this.originalSize.height+n}},se:function(t,n,r){return e.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[t,n,r]))},sw:function(t,n,r){return e.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[t,n,r]))},ne:function(t,n,r){return e.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[t,n,r]))},nw:function(t,n,r){return e.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[t,n,r]))}},_propagate:function(t,n){e.ui.plugin.call(this,t,[n,this.ui()]),t!="resize"&&this._trigger(t,n,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}),e.ui.plugin.add("resizable","alsoResize",{start:function(t,n){var r=e(this).data("resizable"),i=r.options,s=function(t){e(t).each(function(){var t=e(this);t.data("resizable-alsoresize",{width:parseInt(t.width(),10),height:parseInt(t.height(),10),left:parseInt(t.css("left"),10),top:parseInt(t.css("top"),10)})})};typeof i.alsoResize=="object"&&!i.alsoResize.parentNode?i.alsoResize.length?(i.alsoResize=i.alsoResize[0],s(i.alsoResize)):e.each(i.alsoResize,function(e){s(e)}):s(i.alsoResize)},resize:function(t,n){var r=e(this).data("resizable"),i=r.options,s=r.originalSize,o=r.originalPosition,u={height:r.size.height-s.height||0,width:r.size.width-s.width||0,top:r.position.top-o.top||0,left:r.position.left-o.left||0},a=function(t,r){e(t).each(function(){var t=e(this),i=e(this).data("resizable-alsoresize"),s={},o=r&&r.length?r:t.parents(n.originalElement[0]).length?["width","height"]:["width","height","top","left"];e.each(o,function(e,t){var n=(i[t]||0)+(u[t]||0);n&&n>=0&&(s[t]=n||null)}),t.css(s)})};typeof i.alsoResize=="object"&&!i.alsoResize.nodeType?e.each(i.alsoResize,function(e,t){a(e,t)}):a(i.alsoResize)},stop:function(t,n){e(this).removeData("resizable-alsoresize")}}),e.ui.plugin.add("resizable","animate",{stop:function(t,n){var r=e(this).data("resizable"),i=r.options,s=r._proportionallyResizeElements,o=s.length&&/textarea/i.test(s[0].nodeName),u=o&&e.ui.hasScroll(s[0],"left")?0:r.sizeDiff.height,a=o?0:r.sizeDiff.width,f={width:r.size.width-a,height:r.size.height-u},l=parseInt(r.element.css("left"),10)+(r.position.left-r.originalPosition.left)||null,c=parseInt(r.element.css("top"),10)+(r.position.top-r.originalPosition.top)||null;r.element.animate(e.extend(f,c&&l?{top:c,left:l}:{}),{duration:i.animateDuration,easing:i.animateEasing,step:function(){var n={width:parseInt(r.element.css("width"),10),height:parseInt(r.element.css("height"),10),top:parseInt(r.element.css("top"),10),left:parseInt(r.element.css("left"),10)};s&&s.length&&e(s[0]).css({width:n.width,height:n.height}),r._updateCache(n),r._propagate("resize",t)}})}}),e.ui.plugin.add("resizable","containment",{start:function(t,r){var i=e(this).data("resizable"),s=i.options,o=i.element,u=s.containment,a=u instanceof e?u.get(0):/parent/.test(u)?o.parent().get(0):u;if(!a)return;i.containerElement=e(a);if(/document/.test(u)||u==document)i.containerOffset={left:0,top:0},i.containerPosition={left:0,top:0},i.parentData={element:e(document),left:0,top:0,width:e(document).width(),height:e(document).height()||document.body.parentNode.scrollHeight};else{var f=e(a),l=[];e(["Top","Right","Left","Bottom"]).each(function(e,t){l[e]=n(f.css("padding"+t))}),i.containerOffset=f.offset(),i.containerPosition=f.position(),i.containerSize={height:f.innerHeight()-l[3],width:f.innerWidth()-l[1]};var c=i.containerOffset,h=i.containerSize.height,p=i.containerSize.width,d=e.ui.hasScroll(a,"left")?a.scrollWidth:p,v=e.ui.hasScroll(a)?a.scrollHeight:h;i.parentData={element:a,left:c.left,top:c.top,width:d,height:v}}},resize:function(t,n){var r=e(this).data("resizable"),i=r.options,s=r.containerSize,o=r.containerOffset,u=r.size,a=r.position,f=r._aspectRatio||t.shiftKey,l={top:0,left:0},c=r.containerElement;c[0]!=document&&/static/.test(c.css("position"))&&(l=o),a.left<(r._helper?o.left:0)&&(r.size.width=r.size.width+(r._helper?r.position.left-o.left:r.position.left-l.left),f&&(r.size.height=r.size.width/r.aspectRatio),r.position.left=i.helper?o.left:0),a.top<(r._helper?o.top:0)&&(r.size.height=r.size.height+(r._helper?r.position.top-o.top:r.position.top),f&&(r.size.width=r.size.height*r.aspectRatio),r.position.top=r._helper?o.top:0),r.offset.left=r.parentData.left+r.position.left,r.offset.top=r.parentData.top+r.position.top;var h=Math.abs((r._helper?r.offset.left-l.left:r.offset.left-l.left)+r.sizeDiff.width),p=Math.abs((r._helper?r.offset.top-l.top:r.offset.top-o.top)+r.sizeDiff.height),d=r.containerElement.get(0)==r.element.parent().get(0),v=/relative|absolute/.test(r.containerElement.css("position"));d&&v&&(h-=r.parentData.left),h+r.size.width>=r.parentData.width&&(r.size.width=r.parentData.width-h,f&&(r.size.height=r.size.width/r.aspectRatio)),p+r.size.height>=r.parentData.height&&(r.size.height=r.parentData.height-p,f&&(r.size.width=r.size.height*r.aspectRatio))},stop:function(t,n){var r=e(this).data("resizable"),i=r.options,s=r.position,o=r.containerOffset,u=r.containerPosition,a=r.containerElement,f=e(r.helper),l=f.offset(),c=f.outerWidth()-r.sizeDiff.width,h=f.outerHeight()-r.sizeDiff.height;r._helper&&!i.animate&&/relative/.test(a.css("position"))&&e(this).css({left:l.left-u.left-o.left,width:c,height:h}),r._helper&&!i.animate&&/static/.test(a.css("position"))&&e(this).css({left:l.left-u.left-o.left,width:c,height:h})}}),e.ui.plugin.add("resizable","ghost",{start:function(t,n){var r=e(this).data("resizable"),i=r.options,s=r.size;r.ghost=r.originalElement.clone(),r.ghost.css({opacity:.25,display:"block",position:"relative",height:s.height,width:s.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass(typeof i.ghost=="string"?i.ghost:""),r.ghost.appendTo(r.helper)},resize:function(t,n){var r=e(this).data("resizable"),i=r.options;r.ghost&&r.ghost.css({position:"relative",height:r.size.height,width:r.size.width})},stop:function(t,n){var r=e(this).data("resizable"),i=r.options;r.ghost&&r.helper&&r.helper.get(0).removeChild(r.ghost.get(0))}}),e.ui.plugin.add("resizable","grid",{resize:function(t,n){var r=e(this).data("resizable"),i=r.options,s=r.size,o=r.originalSize,u=r.originalPosition,a=r.axis,f=i._aspectRatio||t.shiftKey;i.grid=typeof i.grid=="number"?[i.grid,i.grid]:i.grid;var l=Math.round((s.width-o.width)/(i.grid[0]||1))*(i.grid[0]||1),c=Math.round((s.height-o.height)/(i.grid[1]||1))*(i.grid[1]||1);/^(se|s|e)$/.test(a)?(r.size.width=o.width+l,r.size.height=o.height+c):/^(ne)$/.test(a)?(r.size.width=o.width+l,r.size.height=o.height+c,r.position.top=u.top-c):/^(sw)$/.test(a)?(r.size.width=o.width+l,r.size.height=o.height+c,r.position.left=u.left-l):(r.size.width=o.width+l,r.size.height=o.height+c,r.position.top=u.top-c,r.position.left=u.left-l)}});var n=function(e){return parseInt(e,10)||0},r=function(e){return!isNaN(parseInt(e,10))}})(jQuery);(function(e,t){e.widget("ui.selectable",e.ui.mouse,{version:"1.9.0",options:{appendTo:"body",autoRefresh:!0,distance:0,filter:"*",tolerance:"touch"},_create:function(){var t=this;this.element.addClass("ui-selectable"),this.dragged=!1;var n;this.refresh=function(){n=e(t.options.filter,t.element[0]),n.addClass("ui-selectee"),n.each(function(){var t=e(this),n=t.offset();e.data(this,"selectable-item",{element:this,$element:t,left:n.left,top:n.top,right:n.left+t.outerWidth(),bottom:n.top+t.outerHeight(),startselected:!1,selected:t.hasClass("ui-selected"),selecting:t.hasClass("ui-selecting"),unselecting:t.hasClass("ui-unselecting")})})},this.refresh(),this.selectees=n.addClass("ui-selectee"),this._mouseInit(),this.helper=e("
    ")},_destroy:function(){this.selectees.removeClass("ui-selectee").removeData("selectable-item"),this.element.removeClass("ui-selectable ui-selectable-disabled"),this._mouseDestroy()},_mouseStart:function(t){var n=this;this.opos=[t.pageX,t.pageY];if(this.options.disabled)return;var r=this.options;this.selectees=e(r.filter,this.element[0]),this._trigger("start",t),e(r.appendTo).append(this.helper),this.helper.css({left:t.clientX,top:t.clientY,width:0,height:0}),r.autoRefresh&&this.refresh(),this.selectees.filter(".ui-selected").each(function(){var r=e.data(this,"selectable-item");r.startselected=!0,!t.metaKey&&!t.ctrlKey&&(r.$element.removeClass("ui-selected"),r.selected=!1,r.$element.addClass("ui-unselecting"),r.unselecting=!0,n._trigger("unselecting",t,{unselecting:r.element}))}),e(t.target).parents().andSelf().each(function(){var r=e.data(this,"selectable-item");if(r){var i=!t.metaKey&&!t.ctrlKey||!r.$element.hasClass("ui-selected");return r.$element.removeClass(i?"ui-unselecting":"ui-selected").addClass(i?"ui-selecting":"ui-unselecting"),r.unselecting=!i,r.selecting=i,r.selected=i,i?n._trigger("selecting",t,{selecting:r.element}):n._trigger("unselecting",t,{unselecting:r.element}),!1}})},_mouseDrag:function(t){var n=this;this.dragged=!0;if(this.options.disabled)return;var r=this.options,i=this.opos[0],s=this.opos[1],o=t.pageX,u=t.pageY;if(i>o){var a=o;o=i,i=a}if(s>u){var a=u;u=s,s=a}return this.helper.css({left:i,top:s,width:o-i,height:u-s}),this.selectees.each(function(){var a=e.data(this,"selectable-item");if(!a||a.element==n.element[0])return;var f=!1;r.tolerance=="touch"?f=!(a.left>o||a.rightu||a.bottomi&&a.rights&&a.bottom").appendTo(this.element).addClass("ui-slider-range ui-widget-header"+(r.range==="min"||r.range==="max"?" ui-slider-range-"+r.range:"")));for(t=i.length;tn&&(i=n,s=e(this),o=t)}),c.range===!0&&this.values(1)===c.min&&(o+=1,s=e(this.handles[o])),u=this._start(t,o),u===!1?!1:(this._mouseSliding=!0,this._handleIndex=o,s.addClass("ui-state-active").focus(),a=s.offset(),f=!e(t.target).parents().andSelf().is(".ui-slider-handle"),this._clickOffset=f?{left:0,top:0}:{left:t.pageX-a.left-s.width()/2,top:t.pageY-a.top-s.height()/2-(parseInt(s.css("borderTopWidth"),10)||0)-(parseInt(s.css("borderBottomWidth"),10)||0)+(parseInt(s.css("marginTop"),10)||0)},this.handles.hasClass("ui-state-hover")||this._slide(t,o,r),this._animateOff=!0,!0))},_mouseStart:function(e){return!0},_mouseDrag:function(e){var t={x:e.pageX,y:e.pageY},n=this._normValueFromMouse(t);return this._slide(e,this._handleIndex,n),!1},_mouseStop:function(e){return this.handles.removeClass("ui-state-active"),this._mouseSliding=!1,this._stop(e,this._handleIndex),this._change(e,this._handleIndex),this._handleIndex=null,this._clickOffset=null,this._animateOff=!1,!1},_detectOrientation:function(){this.orientation=this.options.orientation==="vertical"?"vertical":"horizontal"},_normValueFromMouse:function(e){var t,n,r,i,s;return this.orientation==="horizontal"?(t=this.elementSize.width,n=e.x-this.elementOffset.left-(this._clickOffset?this._clickOffset.left:0)):(t=this.elementSize.height,n=e.y-this.elementOffset.top-(this._clickOffset?this._clickOffset.top:0)),r=n/t,r>1&&(r=1),r<0&&(r=0),this.orientation==="vertical"&&(r=1-r),i=this._valueMax()-this._valueMin(),s=this._valueMin()+r*i,this._trimAlignValue(s)},_start:function(e,t){var n={handle:this.handles[t],value:this.value()};return this.options.values&&this.options.values.length&&(n.value=this.values(t),n.values=this.values()),this._trigger("start",e,n)},_slide:function(e,t,n){var r,i,s;this.options.values&&this.options.values.length?(r=this.values(t?0:1),this.options.values.length===2&&this.options.range===!0&&(t===0&&n>r||t===1&&n1){this.options.values[t]=this._trimAlignValue(n),this._refreshValue(),this._change(null,t);return}if(!arguments.length)return this._values();if(!e.isArray(arguments[0]))return this.options.values&&this.options.values.length?this._values(t):this.value();r=this.options.values,i=arguments[0];for(s=0;s=this._valueMax())return this._valueMax();var t=this.options.step>0?this.options.step:1,n=(e-this._valueMin())%t,r=e-n;return Math.abs(n)*2>=t&&(r+=n>0?t:-t),parseFloat(r.toFixed(5))},_valueMin:function(){return this.options.min},_valueMax:function(){return this.options.max},_refreshValue:function(){var t,n,r,i,s,o=this.options.range,u=this.options,a=this,f=this._animateOff?!1:u.animate,l={};this.options.values&&this.options.values.length?this.handles.each(function(r,i){n=(a.values(r)-a._valueMin())/(a._valueMax()-a._valueMin())*100,l[a.orientation==="horizontal"?"left":"bottom"]=n+"%",e(this).stop(1,1)[f?"animate":"css"](l,u.animate),a.options.range===!0&&(a.orientation==="horizontal"?(r===0&&a.range.stop(1,1)[f?"animate":"css"]({left:n+"%"},u.animate),r===1&&a.range[f?"animate":"css"]({width:n-t+"%"},{queue:!1,duration:u.animate})):(r===0&&a.range.stop(1,1)[f?"animate":"css"]({bottom:n+"%"},u.animate),r===1&&a.range[f?"animate":"css"]({height:n-t+"%"},{queue:!1,duration:u.animate}))),t=n}):(r=this.value(),i=this._valueMin(),s=this._valueMax(),n=s!==i?(r-i)/(s-i)*100:0,l[this.orientation==="horizontal"?"left":"bottom"]=n+"%",this.handle.stop(1,1)[f?"animate":"css"](l,u.animate),o==="min"&&this.orientation==="horizontal"&&this.range.stop(1,1)[f?"animate":"css"]({width:n+"%"},u.animate),o==="max"&&this.orientation==="horizontal"&&this.range[f?"animate":"css"]({width:100-n+"%"},{queue:!1,duration:u.animate}),o==="min"&&this.orientation==="vertical"&&this.range.stop(1,1)[f?"animate":"css"]({height:n+"%"},u.animate),o==="max"&&this.orientation==="vertical"&&this.range[f?"animate":"css"]({height:100-n+"%"},{queue:!1,duration:u.animate}))}})})(jQuery);(function(e,t){e.widget("ui.sortable",e.ui.mouse,{version:"1.9.0",widgetEventPrefix:"sort",ready:!1,options:{appendTo:"parent",axis:!1,connectWith:!1,containment:!1,cursor:"auto",cursorAt:!1,dropOnEmpty:!0,forcePlaceholderSize:!1,forceHelperSize:!1,grid:!1,handle:!1,helper:"original",items:"> *",opacity:!1,placeholder:!1,revert:!1,scroll:!0,scrollSensitivity:20,scrollSpeed:20,scope:"default",tolerance:"intersect",zIndex:1e3},_create:function(){var e=this.options;this.containerCache={},this.element.addClass("ui-sortable"),this.refresh(),this.floating=this.items.length?e.axis==="x"||/left|right/.test(this.items[0].item.css("float"))||/inline|table-cell/.test(this.items[0].item.css("display")):!1,this.offset=this.element.offset(),this._mouseInit(),this.ready=!0},_destroy:function(){this.element.removeClass("ui-sortable ui-sortable-disabled"),this._mouseDestroy();for(var e=this.items.length-1;e>=0;e--)this.items[e].item.removeData(this.widgetName+"-item");return this},_setOption:function(t,n){t==="disabled"?(this.options[t]=n,this.widget().toggleClass("ui-sortable-disabled",!!n)):e.Widget.prototype._setOption.apply(this,arguments)},_mouseCapture:function(t,n){var r=this;if(this.reverting)return!1;if(this.options.disabled||this.options.type=="static")return!1;this._refreshItems(t);var i=null,s=e(t.target).parents().each(function(){if(e.data(this,r.widgetName+"-item")==r)return i=e(this),!1});e.data(t.target,r.widgetName+"-item")==r&&(i=e(t.target));if(!i)return!1;if(this.options.handle&&!n){var o=!1;e(this.options.handle,i).find("*").andSelf().each(function(){this==t.target&&(o=!0)});if(!o)return!1}return this.currentItem=i,this._removeCurrentsFromItems(),!0},_mouseStart:function(t,n,r){var i=this.options;this.currentContainer=this,this.refreshPositions(),this.helper=this._createHelper(t),this._cacheHelperProportions(),this._cacheMargins(),this.scrollParent=this.helper.scrollParent(),this.offset=this.currentItem.offset(),this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left},e.extend(this.offset,{click:{left:t.pageX-this.offset.left,top:t.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()}),this.helper.css("position","absolute"),this.cssPosition=this.helper.css("position"),this.originalPosition=this._generatePosition(t),this.originalPageX=t.pageX,this.originalPageY=t.pageY,i.cursorAt&&this._adjustOffsetFromHelper(i.cursorAt),this.domPosition={prev:this.currentItem.prev()[0],parent:this.currentItem.parent()[0]},this.helper[0]!=this.currentItem[0]&&this.currentItem.hide(),this._createPlaceholder(),i.containment&&this._setContainment(),i.cursor&&(e("body").css("cursor")&&(this._storedCursor=e("body").css("cursor")),e("body").css("cursor",i.cursor)),i.opacity&&(this.helper.css("opacity")&&(this._storedOpacity=this.helper.css("opacity")),this.helper.css("opacity",i.opacity)),i.zIndex&&(this.helper.css("zIndex")&&(this._storedZIndex=this.helper.css("zIndex")),this.helper.css("zIndex",i.zIndex)),this.scrollParent[0]!=document&&this.scrollParent[0].tagName!="HTML"&&(this.overflowOffset=this.scrollParent.offset()),this._trigger("start",t,this._uiHash()),this._preserveHelperProportions||this._cacheHelperProportions();if(!r)for(var s=this.containers.length-1;s>=0;s--)this.containers[s]._trigger("activate",t,this._uiHash(this));return e.ui.ddmanager&&(e.ui.ddmanager.current=this),e.ui.ddmanager&&!i.dropBehaviour&&e.ui.ddmanager.prepareOffsets(this,t),this.dragging=!0,this.helper.addClass("ui-sortable-helper"),this._mouseDrag(t),!0},_mouseDrag:function(t){this.position=this._generatePosition(t),this.positionAbs=this._convertPositionTo("absolute"),this.lastPositionAbs||(this.lastPositionAbs=this.positionAbs);if(this.options.scroll){var n=this.options,r=!1;this.scrollParent[0]!=document&&this.scrollParent[0].tagName!="HTML"?(this.overflowOffset.top+this.scrollParent[0].offsetHeight-t.pageY=0;i--){var s=this.items[i],o=s.item[0],u=this._intersectsWithPointer(s);if(!u)continue;if(s.instance!==this.currentContainer)continue;if(o!=this.currentItem[0]&&this.placeholder[u==1?"next":"prev"]()[0]!=o&&!e.contains(this.placeholder[0],o)&&(this.options.type=="semi-dynamic"?!e.contains(this.element[0],o):!0)){this.direction=u==1?"down":"up";if(this.options.tolerance!="pointer"&&!this._intersectsWithSides(s))break;this._rearrange(t,s),this._trigger("change",t,this._uiHash());break}}return this._contactContainers(t),e.ui.ddmanager&&e.ui.ddmanager.drag(this,t),this._trigger("sort",t,this._uiHash()),this.lastPositionAbs=this.positionAbs,!1},_mouseStop:function(t,n){if(!t)return;e.ui.ddmanager&&!this.options.dropBehaviour&&e.ui.ddmanager.drop(this,t);if(this.options.revert){var r=this,i=this.placeholder.offset();this.reverting=!0,e(this.helper).animate({left:i.left-this.offset.parent.left-this.margins.left+(this.offsetParent[0]==document.body?0:this.offsetParent[0].scrollLeft),top:i.top-this.offset.parent.top-this.margins.top+(this.offsetParent[0]==document.body?0:this.offsetParent[0].scrollTop)},parseInt(this.options.revert,10)||500,function(){r._clear(t)})}else this._clear(t,n);return!1},cancel:function(){if(this.dragging){this._mouseUp({target:null}),this.options.helper=="original"?this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper"):this.currentItem.show();for(var t=this.containers.length-1;t>=0;t--)this.containers[t]._trigger("deactivate",null,this._uiHash(this)),this.containers[t].containerCache.over&&(this.containers[t]._trigger("out",null,this._uiHash(this)),this.containers[t].containerCache.over=0)}return this.placeholder&&(this.placeholder[0].parentNode&&this.placeholder[0].parentNode.removeChild(this.placeholder[0]),this.options.helper!="original"&&this.helper&&this.helper[0].parentNode&&this.helper.remove(),e.extend(this,{helper:null,dragging:!1,reverting:!1,_noFinalSort:null}),this.domPosition.prev?e(this.domPosition.prev).after(this.currentItem):e(this.domPosition.parent).prepend(this.currentItem)),this},serialize:function(t){var n=this._getItemsAsjQuery(t&&t.connected),r=[];return t=t||{},e(n).each(function(){var n=(e(t.item||this).attr(t.attribute||"id")||"").match(t.expression||/(.+)[-=_](.+)/);n&&r.push((t.key||n[1]+"[]")+"="+(t.key&&t.expression?n[1]:n[2]))}),!r.length&&t.key&&r.push(t.key+"="),r.join("&")},toArray:function(t){var n=this._getItemsAsjQuery(t&&t.connected),r=[];return t=t||{},n.each(function(){r.push(e(t.item||this).attr(t.attribute||"id")||"")}),r},_intersectsWith:function(e){var t=this.positionAbs.left,n=t+this.helperProportions.width,r=this.positionAbs.top,i=r+this.helperProportions.height,s=e.left,o=s+e.width,u=e.top,a=u+e.height,f=this.offset.click.top,l=this.offset.click.left,c=r+f>u&&r+fs&&t+le[this.floating?"width":"height"]?c:s0?"down":"up")},_getDragHorizontalDirection:function(){var e=this.positionAbs.left-this.lastPositionAbs.left;return e!=0&&(e>0?"right":"left")},refresh:function(e){return this._refreshItems(e),this.refreshPositions(),this},_connectWith:function(){var e=this.options;return e.connectWith.constructor==String?[e.connectWith]:e.connectWith},_getItemsAsjQuery:function(t){var n=[],r=[],i=this._connectWith();if(i&&t)for(var s=i.length-1;s>=0;s--){var o=e(i[s]);for(var u=o.length-1;u>=0;u--){var a=e.data(o[u],this.widgetName);a&&a!=this&&!a.options.disabled&&r.push([e.isFunction(a.options.items)?a.options.items.call(a.element):e(a.options.items,a.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),a])}}r.push([e.isFunction(this.options.items)?this.options.items.call(this.element,null,{options:this.options,item:this.currentItem}):e(this.options.items,this.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),this]);for(var s=r.length-1;s>=0;s--)r[s][0].each(function(){n.push(this)});return e(n)},_removeCurrentsFromItems:function(){var e=this.currentItem.find(":data("+this.widgetName+"-item)");for(var t=0;t=0;s--){var o=e(i[s]);for(var u=o.length-1;u>=0;u--){var a=e.data(o[u],this.widgetName);a&&a!=this&&!a.options.disabled&&(r.push([e.isFunction(a.options.items)?a.options.items.call(a.element[0],t,{item:this.currentItem}):e(a.options.items,a.element),a]),this.containers.push(a))}}for(var s=r.length-1;s>=0;s--){var f=r[s][1],l=r[s][0];for(var u=0,c=l.length;u=0;n--){var r=this.items[n];if(r.instance!=this.currentContainer&&this.currentContainer&&r.item[0]!=this.currentItem[0])continue;var i=this.options.toleranceElement?e(this.options.toleranceElement,r.item):r.item;t||(r.width=i.outerWidth(),r.height=i.outerHeight());var s=i.offset();r.left=s.left,r.top=s.top}if(this.options.custom&&this.options.custom.refreshContainers)this.options.custom.refreshContainers.call(this);else for(var n=this.containers.length-1;n>=0;n--){var s=this.containers[n].element.offset();this.containers[n].containerCache.left=s.left,this.containers[n].containerCache.top=s.top,this.containers[n].containerCache.width=this.containers[n].element.outerWidth(),this.containers[n].containerCache.height=this.containers[n].element.outerHeight()}return this},_createPlaceholder:function(t){t=t||this;var n=t.options;if(!n.placeholder||n.placeholder.constructor==String){var r=n.placeholder;n.placeholder={element:function(){var n=e(document.createElement(t.currentItem[0].nodeName)).addClass(r||t.currentItem[0].className+" ui-sortable-placeholder").removeClass("ui-sortable-helper")[0];return r||(n.style.visibility="hidden"),n},update:function(e,i){if(r&&!n.forcePlaceholderSize)return;i.height()||i.height(t.currentItem.innerHeight()-parseInt(t.currentItem.css("paddingTop")||0,10)-parseInt(t.currentItem.css("paddingBottom")||0,10)),i.width()||i.width(t.currentItem.innerWidth()-parseInt(t.currentItem.css("paddingLeft")||0,10)-parseInt(t.currentItem.css("paddingRight")||0,10))}}}t.placeholder=e(n.placeholder.element.call(t.element,t.currentItem)),t.currentItem.after(t.placeholder),n.placeholder.update(t,t.placeholder)},_contactContainers:function(t){var n=null,r=null;for(var i=this.containers.length-1;i>=0;i--){if(e.contains(this.currentItem[0],this.containers[i].element[0]))continue;if(this._intersectsWith(this.containers[i].containerCache)){if(n&&e.contains(this.containers[i].element[0],n.element[0]))continue;n=this.containers[i],r=i}else this.containers[i].containerCache.over&&(this.containers[i]._trigger("out",t,this._uiHash(this)),this.containers[i].containerCache.over=0)}if(!n)return;if(this.containers.length===1)this.containers[r]._trigger("over",t,this._uiHash(this)),this.containers[r].containerCache.over=1;else if(this.currentContainer!=this.containers[r]){var s=1e4,o=null,u=this.positionAbs[this.containers[r].floating?"left":"top"];for(var a=this.items.length-1;a>=0;a--){if(!e.contains(this.containers[r].element[0],this.items[a].item[0]))continue;var f=this.containers[r].floating?this.items[a].item.offset().left:this.items[a].item.offset().top;Math.abs(f-u)0?"down":"up")}if(!o&&!this.options.dropOnEmpty)return;this.currentContainer=this.containers[r],o?this._rearrange(t,o,null,!0):this._rearrange(t,null,this.containers[r].element,!0),this._trigger("change",t,this._uiHash()),this.containers[r]._trigger("change",t,this._uiHash(this)),this.options.placeholder.update(this.currentContainer,this.placeholder),this.containers[r]._trigger("over",t,this._uiHash(this)),this.containers[r].containerCache.over=1}},_createHelper:function(t){var n=this.options,r=e.isFunction(n.helper)?e(n.helper.apply(this.element[0],[t,this.currentItem])):n.helper=="clone"?this.currentItem.clone():this.currentItem;return r.parents("body").length||e(n.appendTo!="parent"?n.appendTo:this.currentItem[0].parentNode)[0].appendChild(r[0]),r[0]==this.currentItem[0]&&(this._storedCSS={width:this.currentItem[0].style.width,height:this.currentItem[0].style.height,position:this.currentItem.css("position"),top:this.currentItem.css("top"),left:this.currentItem.css("left")}),(r[0].style.width==""||n.forceHelperSize)&&r.width(this.currentItem.width()),(r[0].style.height==""||n.forceHelperSize)&&r.height(this.currentItem.height()),r},_adjustOffsetFromHelper:function(t){typeof t=="string"&&(t=t.split(" ")),e.isArray(t)&&(t={left:+t[0],top:+t[1]||0}),"left"in t&&(this.offset.click.left=t.left+this.margins.left),"right"in t&&(this.offset.click.left=this.helperProportions.width-t.right+this.margins.left),"top"in t&&(this.offset.click.top=t.top+this.margins.top),"bottom"in t&&(this.offset.click.top=this.helperProportions.height-t.bottom+this.margins.top)},_getParentOffset:function(){this.offsetParent=this.helper.offsetParent();var t=this.offsetParent.offset();this.cssPosition=="absolute"&&this.scrollParent[0]!=document&&e.contains(this.scrollParent[0],this.offsetParent[0])&&(t.left+=this.scrollParent.scrollLeft(),t.top+=this.scrollParent.scrollTop());if(this.offsetParent[0]==document.body||this.offsetParent[0].tagName&&this.offsetParent[0].tagName.toLowerCase()=="html"&&e.browser.msie)t={top:0,left:0};return{top:t.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:t.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if(this.cssPosition=="relative"){var e=this.currentItem.position();return{top:e.top-(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:e.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}return{top:0,left:0}},_cacheMargins:function(){this.margins={left:parseInt(this.currentItem.css("marginLeft"),10)||0,top:parseInt(this.currentItem.css("marginTop"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var t=this.options;t.containment=="parent"&&(t.containment=this.helper[0].parentNode);if(t.containment=="document"||t.containment=="window")this.containment=[0-this.offset.relative.left-this.offset.parent.left,0-this.offset.relative.top-this.offset.parent.top,e(t.containment=="document"?document:window).width()-this.helperProportions.width-this.margins.left,(e(t.containment=="document"?document:window).height()||document.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top];if(!/^(document|window|parent)$/.test(t.containment)){var n=e(t.containment)[0],r=e(t.containment).offset(),i=e(n).css("overflow")!="hidden";this.containment=[r.left+(parseInt(e(n).css("borderLeftWidth"),10)||0)+(parseInt(e(n).css("paddingLeft"),10)||0)-this.margins.left,r.top+(parseInt(e(n).css("borderTopWidth"),10)||0)+(parseInt(e(n).css("paddingTop"),10)||0)-this.margins.top,r.left+(i?Math.max(n.scrollWidth,n.offsetWidth):n.offsetWidth)-(parseInt(e(n).css("borderLeftWidth"),10)||0)-(parseInt(e(n).css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left,r.top+(i?Math.max(n.scrollHeight,n.offsetHeight):n.offsetHeight)-(parseInt(e(n).css("borderTopWidth"),10)||0)-(parseInt(e(n).css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top]}},_convertPositionTo:function(t,n){n||(n=this.position);var r=t=="absolute"?1:-1,i=this.options,s=this.cssPosition!="absolute"||this.scrollParent[0]!=document&&!!e.contains(this.scrollParent[0],this.offsetParent[0])?this.scrollParent:this.offsetParent,o=/(html|body)/i.test(s[0].tagName);return{top:n.top+this.offset.relative.top*r+this.offset.parent.top*r-(this.cssPosition=="fixed"?-this.scrollParent.scrollTop():o?0:s.scrollTop())*r,left:n.left+this.offset.relative.left*r+this.offset.parent.left*r-(this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():o?0:s.scrollLeft())*r}},_generatePosition:function(t){var n=this.options,r=this.cssPosition!="absolute"||this.scrollParent[0]!=document&&!!e.contains(this.scrollParent[0],this.offsetParent[0])?this.scrollParent:this.offsetParent,i=/(html|body)/i.test(r[0].tagName);this.cssPosition=="relative"&&(this.scrollParent[0]==document||this.scrollParent[0]==this.offsetParent[0])&&(this.offset.relative=this._getRelativeOffset());var s=t.pageX,o=t.pageY;if(this.originalPosition){this.containment&&(t.pageX-this.offset.click.leftthis.containment[2]&&(s=this.containment[2]+this.offset.click.left),t.pageY-this.offset.click.top>this.containment[3]&&(o=this.containment[3]+this.offset.click.top));if(n.grid){var u=this.originalPageY+Math.round((o-this.originalPageY)/n.grid[1])*n.grid[1];o=this.containment?u-this.offset.click.topthis.containment[3]?u-this.offset.click.topthis.containment[2]?a-this.offset.click.left=0;i--)n||r.push(function(e){return function(t){e._trigger("deactivate",t,this._uiHash(this))}}.call(this,this.containers[i])),this.containers[i].containerCache.over&&(r.push(function(e){return function(t){e._trigger("out",t,this._uiHash(this))}}.call(this,this.containers[i])),this.containers[i].containerCache.over=0);this._storedCursor&&e("body").css("cursor",this._storedCursor),this._storedOpacity&&this.helper.css("opacity",this._storedOpacity),this._storedZIndex&&this.helper.css("zIndex",this._storedZIndex=="auto"?"":this._storedZIndex),this.dragging=!1;if(this.cancelHelperRemoval){if(!n){this._trigger("beforeStop",t,this._uiHash());for(var i=0;i",widgetEventPrefix:"spin",options:{culture:null,icons:{down:"ui-icon-triangle-1-s",up:"ui-icon-triangle-1-n"},incremental:!0,max:null,min:null,numberFormat:null,page:10,step:1,change:null,spin:null,start:null,stop:null},_create:function(){this._setOption("max",this.options.max),this._setOption("min",this.options.min),this._setOption("step",this.options.step),this._value(this.element.val(),!0),this._draw(),this._on(this._events),this._refresh(),this._on(this.window,{beforeunload:function(){this.element.removeAttr("autocomplete")}})},_getCreateOptions:function(){var t={},n=this.element;return e.each(["min","max","step"],function(e,r){var i=n.attr(r);i!==undefined&&i.length&&(t[r]=i)}),t},_events:{keydown:function(e){this._start(e)&&this._keydown(e)&&e.preventDefault()},keyup:"_stop",focus:function(){this.uiSpinner.addClass("ui-state-active"),this.previous=this.element.val()},blur:function(e){if(this.cancelBlur){delete this.cancelBlur;return}this._refresh(),this.uiSpinner.removeClass("ui-state-active"),this.previous!==this.element.val()&&this._trigger("change",e)},mousewheel:function(e,t){if(!t)return;if(!this.spinning&&!this._start(e))return!1;this._spin((t>0?1:-1)*this.options.step,e),clearTimeout(this.mousewheelTimer),this.mousewheelTimer=this._delay(function(){this.spinning&&this._stop(e)},100),e.preventDefault()},"mousedown .ui-spinner-button":function(t){function r(){var e=this.element[0]===this.document[0].activeElement;e||(this.element.focus(),this.previous=n,this._delay(function(){this.previous=n}))}var n;n=this.element[0]===this.document[0].activeElement?this.previous:this.element.val(),t.preventDefault(),r.call(this),this.cancelBlur=!0,this._delay(function(){delete this.cancelBlur,r.call(this)});if(this._start(t)===!1)return;this._repeat(null,e(t.currentTarget).hasClass("ui-spinner-up")?1:-1,t)},"mouseup .ui-spinner-button":"_stop","mouseenter .ui-spinner-button":function(t){if(!e(t.currentTarget).hasClass("ui-state-active"))return;if(this._start(t)===!1)return!1;this._repeat(null,e(t.currentTarget).hasClass("ui-spinner-up")?1:-1,t)},"mouseleave .ui-spinner-button":"_stop"},_draw:function(){var e=this.uiSpinner=this.element.addClass("ui-spinner-input").attr("autocomplete","off").wrap(this._uiSpinnerHtml()).parent().append(this._buttonHtml());this._hoverable(e),this.element.attr("role","spinbutton"),this.buttons=e.find(".ui-spinner-button").attr("tabIndex",-1).button().removeClass("ui-corner-all"),this.buttons.height()>Math.ceil(e.height()*.5)&&e.height()>0&&e.height(e.height()),this.options.disabled&&this.disable()},_keydown:function(t){var n=this.options,r=e.ui.keyCode;switch(t.keyCode){case r.UP:return this._repeat(null,1,t),!0;case r.DOWN:return this._repeat(null,-1,t),!0;case r.PAGE_UP:return this._repeat(null,n.page,t),!0;case r.PAGE_DOWN:return this._repeat(null,-n.page,t),!0}return!1},_uiSpinnerHtml:function(){return""},_buttonHtml:function(){return""+""+""+""+""},_start:function(e){return!this.spinning&&this._trigger("start",e)===!1?!1:(this.counter||(this.counter=1),this.spinning=!0,!0)},_repeat:function(e,t,n){e=e||500,clearTimeout(this.timer),this.timer=this._delay(function(){this._repeat(40,t,n)},e),this._spin(t*this.options.step,n)},_spin:function(e,t){var n=this.value()||0;this.counter||(this.counter=1),n=this._adjustValue(n+e*this._increment(this.counter));if(!this.spinning||this._trigger("spin",t,{value:n})!==!1)this._value(n),this.counter++},_increment:function(t){var n=this.options.incremental;return n?e.isFunction(n)?n(t):Math.floor(t*t*t/5e4-t*t/500+17*t/200+1):1},_precision:function(){var e=this._precisionOf(this.options.step);return this.options.min!==null&&(e=Math.max(e,this._precisionOf(this.options.min))),e},_precisionOf:function(e){var t=e.toString(),n=t.indexOf(".");return n===-1?0:t.length-n-1},_adjustValue:function(e){var t,n,r=this.options;return t=r.min!==null?r.min:0,n=e-t,n=Math.round(n/r.step)*r.step,e=t+n,e=parseFloat(e.toFixed(this._precision())),r.max!==null&&e>r.max?r.max:r.min!==null&&e1&&e.href.replace(r,"")===location.href.replace(r,"")}var n=0,r=/#.*$/;e.widget("ui.tabs",{version:"1.9.0",delay:300,options:{active:null,collapsible:!1,event:"click",heightStyle:"content",hide:null,show:null,activate:null,beforeActivate:null,beforeLoad:null,load:null},_create:function(){var t,n=this,r=this.options,i=r.active;this.running=!1,this.element.addClass("ui-tabs ui-widget ui-widget-content ui-corner-all").toggleClass("ui-tabs-collapsible",r.collapsible).delegate(".ui-tabs-nav > li","mousedown"+this.eventNamespace,function(t){e(this).is(".ui-state-disabled")&&t.preventDefault()}).delegate(".ui-tabs-anchor","focus"+this.eventNamespace,function(){e(this).closest("li").is(".ui-state-disabled")&&this.blur()}),this._processTabs();if(i===null){location.hash&&this.anchors.each(function(e,t){if(t.hash===location.hash)return i=e,!1}),i===null&&(i=this.tabs.filter(".ui-tabs-active").index());if(i===null||i===-1)i=this.tabs.length?0:!1}i!==!1&&(i=this.tabs.index(this.tabs.eq(i)),i===-1&&(i=r.collapsible?!1:0)),r.active=i,!r.collapsible&&r.active===!1&&this.anchors.length&&(r.active=0),e.isArray(r.disabled)&&(r.disabled=e.unique(r.disabled.concat(e.map(this.tabs.filter(".ui-state-disabled"),function(e){return n.tabs.index(e)}))).sort()),this.options.active!==!1&&this.anchors.length?this.active=this._findActive(this.options.active):this.active=e(),this._refresh(),this.active.length&&this.load(r.active)},_getCreateEventData:function(){return{tab:this.active,panel:this.active.length?this._getPanelForTab(this.active):e()}},_tabKeydown:function(t){var n=e(this.document[0].activeElement).closest("li"),r=this.tabs.index(n),i=!0;if(this._handlePageNav(t))return;switch(t.keyCode){case e.ui.keyCode.RIGHT:case e.ui.keyCode.DOWN:r++;break;case e.ui.keyCode.UP:case e.ui.keyCode.LEFT:i=!1,r--;break;case e.ui.keyCode.END:r=this.anchors.length-1;break;case e.ui.keyCode.HOME:r=0;break;case e.ui.keyCode.SPACE:t.preventDefault(),clearTimeout(this.activating),this._activate(r);return;case e.ui.keyCode.ENTER:t.preventDefault(),clearTimeout(this.activating),this._activate(r===this.options.active?!1:r);return;default:return}t.preventDefault(),clearTimeout(this.activating),r=this._focusNextTab(r,i),t.ctrlKey||(n.attr("aria-selected","false"),this.tabs.eq(r).attr("aria-selected","true"),this.activating=this._delay(function(){this.option("active",r)},this.delay))},_panelKeydown:function(t){if(this._handlePageNav(t))return;t.ctrlKey&&t.keyCode===e.ui.keyCode.UP&&(t.preventDefault(),this.active.focus())},_handlePageNav:function(t){if(t.altKey&&t.keyCode===e.ui.keyCode.PAGE_UP)return this._activate(this._focusNextTab(this.options.active-1,!1)),!0;if(t.altKey&&t.keyCode===e.ui.keyCode.PAGE_DOWN)return this._activate(this._focusNextTab(this.options.active+1,!0)),!0},_findNextTab:function(t,n){function i(){return t>r&&(t=0),t<0&&(t=r),t}var r=this.tabs.length-1;while(e.inArray(i(),this.options.disabled)!==-1)t=n?t+1:t-1;return t},_focusNextTab:function(e,t){return e=this._findNextTab(e,t),this.tabs.eq(e).focus(),e},_setOption:function(e,t){if(e==="active"){this._activate(t);return}if(e==="disabled"){this._setupDisabled(t);return}this._super(e,t),e==="collapsible"&&(this.element.toggleClass("ui-tabs-collapsible",t),!t&&this.options.active===!1&&this._activate(0)),e==="event"&&this._setupEvents(t),e==="heightStyle"&&this._setupHeightStyle(t)},_tabId:function(e){return e.attr("aria-controls")||"ui-tabs-"+i()},_sanitizeSelector:function(e){return e?e.replace(/[!"$%&'()*+,.\/:;<=>?@\[\]\^`{|}~]/g,"\\$&"):""},refresh:function(){var t,n=this.options,r=this.tablist.children(":has(a[href])");n.disabled=e.map(r.filter(".ui-state-disabled"),function(e){return r.index(e)}),this._processTabs(),n.active===!1||!this.anchors.length?(n.active=!1,this.active=e()):this.active.length&&!e.contains(this.tablist[0],this.active[0])?this.tabs.length===n.disabled.length?(n.active=!1,this.active=e()):this._activate(this._findNextTab(Math.max(0,n.active-1),!1)):n.active=this.tabs.index(this.active),this._refresh()},_refresh:function(){this._setupDisabled(this.options.disabled),this._setupEvents(this.options.event),this._setupHeightStyle(this.options.heightStyle),this.tabs.not(this.active).attr({"aria-selected":"false",tabIndex:-1}),this.panels.not(this._getPanelForTab(this.active)).hide().attr({"aria-expanded":"false","aria-hidden":"true"}),this.active.length?(this.active.addClass("ui-tabs-active ui-state-active").attr({"aria-selected":"true",tabIndex:0}),this._getPanelForTab(this.active).show().attr({"aria-expanded":"true","aria-hidden":"false"})):this.tabs.eq(0).attr("tabIndex",0)},_processTabs:function(){var t=this;this.tablist=this._getList().addClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all").attr("role","tablist"),this.tabs=this.tablist.find("> li:has(a[href])").addClass("ui-state-default ui-corner-top").attr({role:"tab",tabIndex:-1}),this.anchors=this.tabs.map(function(){return e("a",this)[0]}).addClass("ui-tabs-anchor").attr({role:"presentation",tabIndex:-1}),this.panels=e(),this.anchors.each(function(n,r){var i,o,u,a=e(r).uniqueId().attr("id"),f=e(r).closest("li"),l=f.attr("aria-controls");s(r)?(i=r.hash,o=t.element.find(t._sanitizeSelector(i))):(u=t._tabId(f),i="#"+u,o=t.element.find(i),o.length||(o=t._createPanel(u),o.insertAfter(t.panels[n-1]||t.tablist)),o.attr("aria-live","polite")),o.length&&(t.panels=t.panels.add(o)),l&&f.data("ui-tabs-aria-controls",l),f.attr({"aria-controls":i.substring(1),"aria-labelledby":a}),o.attr("aria-labelledby",a)}),this.panels.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").attr("role","tabpanel")},_getList:function(){return this.element.find("ol,ul").eq(0)},_createPanel:function(t){return e("
    ").attr("id",t).addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").data("ui-tabs-destroy",!0)},_setupDisabled:function(t){e.isArray(t)&&(t.length?t.length===this.anchors.length&&(t=!0):t=!1);for(var n=0,r;r=this.tabs[n];n++)t===!0||e.inArray(n,t)!==-1?e(r).addClass("ui-state-disabled").attr("aria-disabled","true"):e(r).removeClass("ui-state-disabled").removeAttr("aria-disabled");this.options.disabled=t},_setupEvents:function(t){var n={click:function(e){e.preventDefault()}};t&&e.each(t.split(" "),function(e,t){n[t]="_eventHandler"}),this._off(this.anchors.add(this.tabs).add(this.panels)),this._on(this.anchors,n),this._on(this.tabs,{keydown:"_tabKeydown"}),this._on(this.panels,{keydown:"_panelKeydown"}),this._focusable(this.tabs),this._hoverable(this.tabs)},_setupHeightStyle:function(t){var n,r,i=this.element.parent();t==="fill"?(e.support.minHeight||(r=i.css("overflow"),i.css("overflow","hidden")),n=i.height(),this.element.siblings(":visible").each(function(){var t=e(this),r=t.css("position");if(r==="absolute"||r==="fixed")return;n-=t.outerHeight(!0)}),r&&i.css("overflow",r),this.element.children().not(this.panels).each(function(){n-=e(this).outerHeight(!0)}),this.panels.each(function(){e(this).height(Math.max(0,n-e(this).innerHeight()+e(this).height()))}).css("overflow","auto")):t==="auto"&&(n=0,this.panels.each(function(){n=Math.max(n,e(this).height("").height())}).height(n))},_eventHandler:function(t){var n=this.options,r=this.active,i=e(t.currentTarget),s=i.closest("li"),o=s[0]===r[0],u=o&&n.collapsible,a=u?e():this._getPanelForTab(s),f=r.length?this._getPanelForTab(r):e(),l={oldTab:r,oldPanel:f,newTab:u?e():s,newPanel:a};t.preventDefault();if(s.hasClass("ui-state-disabled")||s.hasClass("ui-tabs-loading")||this.running||o&&!n.collapsible||this._trigger("beforeActivate",t,l)===!1)return;n.active=u?!1:this.tabs.index(s),this.active=o?e():s,this.xhr&&this.xhr.abort(),!f.length&&!a.length&&e.error("jQuery UI Tabs: Mismatching fragment identifier."),a.length&&this.load(this.tabs.index(s),t),this._toggle(t,l)},_toggle:function(t,n){function o(){r.running=!1,r._trigger("activate",t,n)}function u(){n.newTab.closest("li").addClass("ui-tabs-active ui-state-active"),i.length&&r.options.show?r._show(i,r.options.show,o):(i.show(),o())}var r=this,i=n.newPanel,s=n.oldPanel;this.running=!0,s.length&&this.options.hide?this._hide(s,this.options.hide,function(){n.oldTab.closest("li").removeClass("ui-tabs-active ui-state-active"),u()}):(n.oldTab.closest("li").removeClass("ui-tabs-active ui-state-active"),s.hide(),u()),s.attr({"aria-expanded":"false","aria-hidden":"true"}),n.oldTab.attr("aria-selected","false"),i.length&&s.length?n.oldTab.attr("tabIndex",-1):i.length&&this.tabs.filter(function(){return e(this).attr("tabIndex")===0}).attr("tabIndex",-1),i.attr({"aria-expanded":"true","aria-hidden":"false"}),n.newTab.attr({"aria-selected":"true",tabIndex:0})},_activate:function(t){var n,r=this._findActive(t);if(r[0]===this.active[0])return;r.length||(r=this.active),n=r.find(".ui-tabs-anchor")[0],this._eventHandler({target:n,currentTarget:n,preventDefault:e.noop})},_findActive:function(t){return t===!1?e():this.tabs.eq(t)},_getIndex:function(e){return typeof e=="string"&&(e=this.anchors.index(this.anchors.filter("[href$='"+e+"']"))),e},_destroy:function(){this.xhr&&this.xhr.abort(),this.element.removeClass("ui-tabs ui-widget ui-widget-content ui-corner-all ui-tabs-collapsible"),this.tablist.removeClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all").removeAttr("role"),this.anchors.removeClass("ui-tabs-anchor").removeAttr("role").removeAttr("tabIndex").removeData("href.tabs").removeData("load.tabs").removeUniqueId(),this.tabs.add(this.panels).each(function(){e.data(this,"ui-tabs-destroy")?e(this).remove():e(this).removeClass("ui-state-default ui-state-active ui-state-disabled ui-corner-top ui-corner-bottom ui-widget-content ui-tabs-active ui-tabs-panel").removeAttr("tabIndex").removeAttr("aria-live").removeAttr("aria-busy").removeAttr("aria-selected").removeAttr("aria-labelledby").removeAttr("aria-hidden").removeAttr("aria-expanded").removeAttr("role")}),this.tabs.each(function(){var t=e(this),n=t.data("ui-tabs-aria-controls");n?t.attr("aria-controls",n):t.removeAttr("aria-controls")}),this.options.heightStyle!=="content"&&this.panels.css("height","")},enable:function(n){var r=this.options.disabled;if(r===!1)return;n===t?r=!1:(n=this._getIndex(n),e.isArray(r)?r=e.map(r,function(e){return e!==n?e:null}):r=e.map(this.tabs,function(e,t){return t!==n?t:null})),this._setupDisabled(r)},disable:function(n){var r=this.options.disabled;if(r===!0)return;if(n===t)r=!0;else{n=this._getIndex(n);if(e.inArray(n,r)!==-1)return;e.isArray(r)?r=e.merge([n],r).sort():r=[n]}this._setupDisabled(r)},load:function(t,n){t=this._getIndex(t);var r=this,i=this.tabs.eq(t),o=i.find(".ui-tabs-anchor"),u=this._getPanelForTab(i),a={tab:i,panel:u};if(s(o[0]))return;this.xhr=e.ajax(this._ajaxSettings(o,n,a)),this.xhr&&this.xhr.statusText!=="canceled"&&(i.addClass("ui-tabs-loading"),u.attr("aria-busy","true"),this.xhr.success(function(e){setTimeout(function(){u.html(e),r._trigger("load",n,a)},1)}).complete(function(e,t){setTimeout(function(){t==="abort"&&r.panels.stop(!1,!0),i.removeClass("ui-tabs-loading"),u.removeAttr("aria-busy"),e===r.xhr&&delete r.xhr},1)}))},_ajaxSettings:function(t,n,r){var i=this;return{url:t.attr("href"),beforeSend:function(t,s){return i._trigger("beforeLoad",n,e.extend({jqXHR:t,ajaxSettings:s},r))}}},_getPanelForTab:function(t){var n=e(t).attr("aria-controls");return this.element.find(this._sanitizeSelector("#"+n))}}),e.uiBackCompat!==!1&&(e.ui.tabs.prototype._ui=function(e,t){return{tab:e,panel:t,index:this.anchors.index(e)}},e.widget("ui.tabs",e.ui.tabs,{url:function(e,t){this.anchors.eq(e).attr("href",t)}}),e.widget("ui.tabs",e.ui.tabs,{options:{ajaxOptions:null,cache:!1},_create:function(){this._super();var t=this;this._on({tabsbeforeload:function(n,r){if(e.data(r.tab[0],"cache.tabs")){n.preventDefault();return}r.jqXHR.success(function(){t.options.cache&&e.data(r.tab[0],"cache.tabs",!0)})}})},_ajaxSettings:function(t,n,r){var i=this.options.ajaxOptions;return e.extend({},i,{error:function(e,t,n){try{i.error(e,t,r.tab.closest("li").index(),r.tab[0])}catch(n){}}},this._superApply(arguments))},_setOption:function(e,t){e==="cache"&&t===!1&&this.anchors.removeData("cache.tabs"),this._super(e,t)},_destroy:function(){this.anchors.removeData("cache.tabs"),this._super()},url:function(e,t){this.anchors.eq(e).removeData("cache.tabs"),this._superApply(arguments)}}),e.widget("ui.tabs",e.ui.tabs,{abort:function(){this.xhr&&this.xhr.abort()}}),e.widget("ui.tabs",e.ui.tabs,{options:{spinner:"Loading…"},_create:function(){this._super(),this._on({tabsbeforeload:function(e,t){if(e.target!==this.element[0]||!this.options.spinner)return;var n=t.tab.find("span"),r=n.html();n.html(this.options.spinner),t.jqXHR.complete(function(){n.html(r)})}})}}),e.widget("ui.tabs",e.ui.tabs,{options:{enable:null,disable:null},enable:function(t){var n=this.options,r;if(t&&n.disabled===!0||e.isArray(n.disabled)&&e.inArray(t,n.disabled)!==-1)r=!0;this._superApply(arguments),r&&this._trigger("enable",null,this._ui(this.anchors[t],this.panels[t]))},disable:function(t){var n=this.options,r;if(t&&n.disabled===!1||e.isArray(n.disabled)&&e.inArray(t,n.disabled)===-1)r=!0;this._superApply(arguments),r&&this._trigger("disable",null,this._ui(this.anchors[t],this.panels[t]))}}),e.widget("ui.tabs",e.ui.tabs,{options:{add:null,remove:null,tabTemplate:"
  • #{label}
  • "},add:function(n,r,i){i===t&&(i=this.anchors.length);var s,o,u=this.options,a=e(u.tabTemplate.replace(/#\{href\}/g,n).replace(/#\{label\}/g,r)),f=n.indexOf("#")?this._tabId(a):n.replace("#","");return a.addClass("ui-state-default ui-corner-top").data("ui-tabs-destroy",!0),a.attr("aria-controls",f),s=i>=this.tabs.length,o=this.element.find("#"+f),o.length||(o=this._createPanel(f),s?i>0?o.insertAfter(this.panels.eq(-1)):o.appendTo(this.element):o.insertBefore(this.panels[i])),o.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").hide(),s?a.appendTo(this.tablist):a.insertBefore(this.tabs[i]),u.disabled=e.map(u.disabled,function(e){return e>=i?++e:e}),this.refresh(),this.tabs.length===1&&u.active===!1&&this.option("active",0),this._trigger("add",null,this._ui(this.anchors[i],this.panels[i])),this},remove:function(t){t=this._getIndex(t);var n=this.options,r=this.tabs.eq(t).remove(),i=this._getPanelForTab(r).remove();return r.hasClass("ui-tabs-active")&&this.anchors.length>2&&this._activate(t+(t+1=t?--e:e}),this.refresh(),this._trigger("remove",null,this._ui(r.find("a")[0],i[0])),this}}),e.widget("ui.tabs",e.ui.tabs,{length:function(){return this.anchors.length}}),e.widget("ui.tabs",e.ui.tabs,{options:{idPrefix:"ui-tabs-"},_tabId:function(t){var n=t.is("li")?t.find("a[href]"):t;return n=n[0],e(n).closest("li").attr("aria-controls")||n.title&&n.title.replace(/\s/g,"_").replace(/[^\w\u00c0-\uFFFF\-]/g,"")||this.options.idPrefix+i()}}),e.widget("ui.tabs",e.ui.tabs,{options:{panelTemplate:"
    "},_createPanel:function(t){return e(this.options.panelTemplate).attr("id",t).addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").data("ui-tabs-destroy",!0)}}),e.widget("ui.tabs",e.ui.tabs,{_create:function(){var e=this.options;e.active===null&&e.selected!==t&&(e.active=e.selected===-1?!1:e.selected),this._super(),e.selected=e.active,e.selected===!1&&(e.selected=-1)},_setOption:function(e,t){if(e!=="selected")return this._super(e,t);var n=this.options;this._super("active",t===-1?!1:t),n.selected=n.active,n.selected===!1&&(n.selected=-1)},_eventHandler:function(e){this._superApply(arguments),this.options.selected=this.options.active,this.options.selected===!1&&(this.options.selected=-1)}}),e.widget("ui.tabs",e.ui.tabs,{options:{show:null,select:null},_create:function(){this._super(),this.options.active!==!1&&this._trigger("show",null,this._ui(this.active.find(".ui-tabs-anchor")[0],this._getPanelForTab(this.active)[0]))},_trigger:function(e,t,n){var r=this._superApply(arguments);return r?(e==="beforeActivate"&&n.newTab.length?r=this._super("select",t,{tab:n.newTab.find(".ui-tabs-anchor")[0],panel:n.newPanel[0],index:n.newTab.closest("li").index()}):e==="activate"&&n.newTab.length&&(r=this._super("show",t,{tab:n.newTab.find(".ui-tabs-anchor")[0],panel:n.newPanel[0],index:n.newTab.closest("li").index()})),r):!1}}),e.widget("ui.tabs",e.ui.tabs,{select:function(e){e=this._getIndex(e);if(e===-1){if(!this.options.collapsible||this.options.selected===-1)return;e=this.options.selected}this.anchors.eq(e).trigger(this.options.event+this.eventNamespace)}}),function(){var t=0;e.widget("ui.tabs",e.ui.tabs,{options:{cookie:null},_create:function(){var e=this.options,t;e.active==null&&e.cookie&&(t=parseInt(this._cookie(),10),t===-1&&(t=!1),e.active=t),this._super()},_cookie:function(n){var r=[this.cookie||(this.cookie=this.options.cookie.name||"ui-tabs-"+ ++t)];return arguments.length&&(r.push(n===!1?-1:n),r.push(this.options.cookie)),e.cookie.apply(null,r)},_refresh:function(){this._super(),this.options.cookie&&this._cookie(this.options.active,this.options.cookie)},_eventHandler:function(e){this._superApply(arguments),this.options.cookie&&this._cookie(this.options.active,this.options.cookie)},_destroy:function(){this._super(),this.options.cookie&&this._cookie(null,this.options.cookie)}})}(),e.widget("ui.tabs",e.ui.tabs,{_trigger:function(t,n,r){var i=e.extend({},r);return t==="load"&&(i.panel=i.panel[0],i.tab=i.tab.find(".ui-tabs-anchor")[0]),this._super(t,n,i)}}),e.widget("ui.tabs",e.ui.tabs,{options:{fx:null},_getFx:function(){var t,n,r=this.options.fx;return r&&(e.isArray(r)?(t=r[0],n=r[1]):t=n=r),r?{show:n,hide:t}:null},_toggle:function(e,t){function o(){n.running=!1,n._trigger("activate",e,t)}function u(){t.newTab.closest("li").addClass("ui-tabs-active ui-state-active"),r.length&&s.show?r.animate(s.show,s.show.duration,function(){o()}):(r.show(),o())}var n=this,r=t.newPanel,i=t.oldPanel,s=this._getFx();if(!s)return this._super(e,t);n.running=!0,i.length&&s.hide?i.animate(s.hide,s.hide.duration,function(){t.oldTab.closest("li").removeClass("ui-tabs-active ui-state-active"),u()}):(t.oldTab.closest("li").removeClass("ui-tabs-active ui-state-active"),i.hide(),u())}}))})(jQuery);(function(e){function n(t,n){var r=(t.attr("aria-describedby")||"").split(/\s+/);r.push(n),t.data("ui-tooltip-id",n).attr("aria-describedby",e.trim(r.join(" ")))}function r(t){var n=t.data("ui-tooltip-id"),r=(t.attr("aria-describedby")||"").split(/\s+/),i=e.inArray(n,r);i!==-1&&r.splice(i,1),t.removeData("ui-tooltip-id"),r=e.trim(r.join(" ")),r?t.attr("aria-describedby",r):t.removeAttr("aria-describedby")}var t=0;e.widget("ui.tooltip",{version:"1.9.0",options:{content:function(){return e(this).attr("title")},hide:!0,items:"[title]",position:{my:"left+15 center",at:"right center",collision:"flipfit flipfit"},show:!0,tooltipClass:null,track:!1,close:null,open:null},_create:function(){this._on({mouseover:"open",focusin:"open"}),this.tooltips={}},_setOption:function(t,n){var r=this;if(t==="disabled"){this[n?"_disable":"_enable"](),this.options[t]=n;return}this._super(t,n),t==="content"&&e.each(this.tooltips,function(e,t){r._updateContent(t)})},_disable:function(){var t=this;e.each(this.tooltips,function(n,r){var i=e.Event("blur");i.target=i.currentTarget=r[0],t.close(i,!0)}),this.element.find(this.options.items).andSelf().each(function(){var t=e(this);t.is("[title]")&&t.data("ui-tooltip-title",t.attr("title")).attr("title","")})},_enable:function(){this.element.find(this.options.items).andSelf().each(function(){var t=e(this);t.data("ui-tooltip-title")&&t.attr("title",t.data("ui-tooltip-title"))})},open:function(t){var n=e(t?t.target:this.element).closest(this.options.items);if(!n.length)return;if(this.options.track&&n.data("ui-tooltip-id")){this._find(n).position(e.extend({of:n},this.options.position)),this._off(this.document,"mousemove");return}n.attr("title")&&n.data("ui-tooltip-title",n.attr("title")),n.data("tooltip-open",!0),this._updateContent(n,t)},_updateContent:function(e,t){var n,r=this.options.content,i=this;if(typeof r=="string")return this._open(t,e,r);n=r.call(e[0],function(n){if(!e.data("tooltip-open"))return;i._delay(function(){this._open(t,e,n)})}),n&&this._open(t,e,n)},_open:function(t,r,i){function u(e){o.of=e,s.position(o)}var s,o;if(!i)return;s=this._find(r);if(s.length){s.find(".ui-tooltip-content").html(i);return}r.is("[title]")&&(t&&t.type==="mouseover"?r.attr("title",""):r.removeAttr("title")),s=this._tooltip(r),n(r,s.attr("id")),s.find(".ui-tooltip-content").html(i),this.options.track&&t&&/^mouse/.test(t.originalEvent.type)?(o=e.extend({},this.options.position),this._on(this.document,{mousemove:u}),u(t)):s.position(e.extend({of:r},this.options.position)),s.hide(),this._show(s,this.options.show),this._trigger("open",t,{tooltip:s}),this._on(r,{mouseleave:"close",focusout:"close",keyup:function(t){if(t.keyCode===e.ui.keyCode.ESCAPE){var n=e.Event(t);n.currentTarget=r[0],this.close(n,!0)}}})},close:function(t,n){var i=this,s=e(t?t.currentTarget:this.element),o=this._find(s);if(this.closing)return;if(!n&&t&&t.type!=="focusout"&&this.document[0].activeElement===s[0])return;s.data("ui-tooltip-title")&&s.attr("title",s.data("ui-tooltip-title")),r(s),o.stop(!0),this._hide(o,this.options.hide,function(){e(this).remove(),delete i.tooltips[this.id]}),s.removeData("tooltip-open"),this._off(s,"mouseleave focusout keyup"),this._off(this.document,"mousemove"),this.closing=!0,this._trigger("close",t,{tooltip:o}),this.closing=!1},_tooltip:function(n){var r="ui-tooltip-"+t++,i=e("
    ").attr({id:r,role:"tooltip"}).addClass("ui-tooltip ui-widget ui-corner-all ui-widget-content "+(this.options.tooltipClass||""));return e("
    ").addClass("ui-tooltip-content").appendTo(i),i.appendTo(this.document[0].body),e.fn.bgiframe&&i.bgiframe(),this.tooltips[r]=n,i},_find:function(t){var n=t.data("ui-tooltip-id");return n?e("#"+n):e()},_destroy:function(){var t=this;e.each(this.tooltips,function(n,r){var i=e.Event("blur");i.target=i.currentTarget=r[0],t.close(i,!0),e("#"+n).remove(),r.data("ui-tooltip-title")&&(r.attr("title",r.data("ui-tooltip-title")),r.removeData("ui-tooltip-title"))})}})})(jQuery); \ No newline at end of file diff --git a/docs/api/2.11/lib/jquery.js b/docs/api/2.11/lib/jquery.js new file mode 100644 index 0000000..bc3fbc8 --- /dev/null +++ b/docs/api/2.11/lib/jquery.js @@ -0,0 +1,2 @@ +/*! jQuery v1.8.2 jquery.com | jquery.org/license */ +(function(a,b){function G(a){var b=F[a]={};return p.each(a.split(s),function(a,c){b[c]=!0}),b}function J(a,c,d){if(d===b&&a.nodeType===1){var e="data-"+c.replace(I,"-$1").toLowerCase();d=a.getAttribute(e);if(typeof d=="string"){try{d=d==="true"?!0:d==="false"?!1:d==="null"?null:+d+""===d?+d:H.test(d)?p.parseJSON(d):d}catch(f){}p.data(a,c,d)}else d=b}return d}function K(a){var b;for(b in a){if(b==="data"&&p.isEmptyObject(a[b]))continue;if(b!=="toJSON")return!1}return!0}function ba(){return!1}function bb(){return!0}function bh(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function bi(a,b){do a=a[b];while(a&&a.nodeType!==1);return a}function bj(a,b,c){b=b||0;if(p.isFunction(b))return p.grep(a,function(a,d){var e=!!b.call(a,d,a);return e===c});if(b.nodeType)return p.grep(a,function(a,d){return a===b===c});if(typeof b=="string"){var d=p.grep(a,function(a){return a.nodeType===1});if(be.test(b))return p.filter(b,d,!c);b=p.filter(b,d)}return p.grep(a,function(a,d){return p.inArray(a,b)>=0===c})}function bk(a){var b=bl.split("|"),c=a.createDocumentFragment();if(c.createElement)while(b.length)c.createElement(b.pop());return c}function bC(a,b){return a.getElementsByTagName(b)[0]||a.appendChild(a.ownerDocument.createElement(b))}function bD(a,b){if(b.nodeType!==1||!p.hasData(a))return;var c,d,e,f=p._data(a),g=p._data(b,f),h=f.events;if(h){delete g.handle,g.events={};for(c in h)for(d=0,e=h[c].length;d").appendTo(e.body),c=b.css("display");b.remove();if(c==="none"||c===""){bI=e.body.appendChild(bI||p.extend(e.createElement("iframe"),{frameBorder:0,width:0,height:0}));if(!bJ||!bI.createElement)bJ=(bI.contentWindow||bI.contentDocument).document,bJ.write(""),bJ.close();b=bJ.body.appendChild(bJ.createElement(a)),c=bH(b,"display"),e.body.removeChild(bI)}return bS[a]=c,c}function ci(a,b,c,d){var e;if(p.isArray(b))p.each(b,function(b,e){c||ce.test(a)?d(a,e):ci(a+"["+(typeof e=="object"?b:"")+"]",e,c,d)});else if(!c&&p.type(b)==="object")for(e in b)ci(a+"["+e+"]",b[e],c,d);else d(a,b)}function cz(a){return function(b,c){typeof b!="string"&&(c=b,b="*");var d,e,f,g=b.toLowerCase().split(s),h=0,i=g.length;if(p.isFunction(c))for(;h)[^>]*$|#([\w\-]*)$)/,v=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,w=/^[\],:{}\s]*$/,x=/(?:^|:|,)(?:\s*\[)+/g,y=/\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g,z=/"[^"\\\r\n]*"|true|false|null|-?(?:\d\d*\.|)\d+(?:[eE][\-+]?\d+|)/g,A=/^-ms-/,B=/-([\da-z])/gi,C=function(a,b){return(b+"").toUpperCase()},D=function(){e.addEventListener?(e.removeEventListener("DOMContentLoaded",D,!1),p.ready()):e.readyState==="complete"&&(e.detachEvent("onreadystatechange",D),p.ready())},E={};p.fn=p.prototype={constructor:p,init:function(a,c,d){var f,g,h,i;if(!a)return this;if(a.nodeType)return this.context=this[0]=a,this.length=1,this;if(typeof a=="string"){a.charAt(0)==="<"&&a.charAt(a.length-1)===">"&&a.length>=3?f=[null,a,null]:f=u.exec(a);if(f&&(f[1]||!c)){if(f[1])return c=c instanceof p?c[0]:c,i=c&&c.nodeType?c.ownerDocument||c:e,a=p.parseHTML(f[1],i,!0),v.test(f[1])&&p.isPlainObject(c)&&this.attr.call(a,c,!0),p.merge(this,a);g=e.getElementById(f[2]);if(g&&g.parentNode){if(g.id!==f[2])return d.find(a);this.length=1,this[0]=g}return this.context=e,this.selector=a,this}return!c||c.jquery?(c||d).find(a):this.constructor(c).find(a)}return p.isFunction(a)?d.ready(a):(a.selector!==b&&(this.selector=a.selector,this.context=a.context),p.makeArray(a,this))},selector:"",jquery:"1.8.2",length:0,size:function(){return this.length},toArray:function(){return k.call(this)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var d=p.merge(this.constructor(),a);return d.prevObject=this,d.context=this.context,b==="find"?d.selector=this.selector+(this.selector?" ":"")+c:b&&(d.selector=this.selector+"."+b+"("+c+")"),d},each:function(a,b){return p.each(this,a,b)},ready:function(a){return p.ready.promise().done(a),this},eq:function(a){return a=+a,a===-1?this.slice(a):this.slice(a,a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(k.apply(this,arguments),"slice",k.call(arguments).join(","))},map:function(a){return this.pushStack(p.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:j,sort:[].sort,splice:[].splice},p.fn.init.prototype=p.fn,p.extend=p.fn.extend=function(){var a,c,d,e,f,g,h=arguments[0]||{},i=1,j=arguments.length,k=!1;typeof h=="boolean"&&(k=h,h=arguments[1]||{},i=2),typeof h!="object"&&!p.isFunction(h)&&(h={}),j===i&&(h=this,--i);for(;i0)return;d.resolveWith(e,[p]),p.fn.trigger&&p(e).trigger("ready").off("ready")},isFunction:function(a){return p.type(a)==="function"},isArray:Array.isArray||function(a){return p.type(a)==="array"},isWindow:function(a){return a!=null&&a==a.window},isNumeric:function(a){return!isNaN(parseFloat(a))&&isFinite(a)},type:function(a){return a==null?String(a):E[m.call(a)]||"object"},isPlainObject:function(a){if(!a||p.type(a)!=="object"||a.nodeType||p.isWindow(a))return!1;try{if(a.constructor&&!n.call(a,"constructor")&&!n.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}var d;for(d in a);return d===b||n.call(a,d)},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},error:function(a){throw new Error(a)},parseHTML:function(a,b,c){var d;return!a||typeof a!="string"?null:(typeof b=="boolean"&&(c=b,b=0),b=b||e,(d=v.exec(a))?[b.createElement(d[1])]:(d=p.buildFragment([a],b,c?null:[]),p.merge([],(d.cacheable?p.clone(d.fragment):d.fragment).childNodes)))},parseJSON:function(b){if(!b||typeof b!="string")return null;b=p.trim(b);if(a.JSON&&a.JSON.parse)return a.JSON.parse(b);if(w.test(b.replace(y,"@").replace(z,"]").replace(x,"")))return(new Function("return "+b))();p.error("Invalid JSON: "+b)},parseXML:function(c){var d,e;if(!c||typeof c!="string")return null;try{a.DOMParser?(e=new DOMParser,d=e.parseFromString(c,"text/xml")):(d=new ActiveXObject("Microsoft.XMLDOM"),d.async="false",d.loadXML(c))}catch(f){d=b}return(!d||!d.documentElement||d.getElementsByTagName("parsererror").length)&&p.error("Invalid XML: "+c),d},noop:function(){},globalEval:function(b){b&&r.test(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(A,"ms-").replace(B,C)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,c,d){var e,f=0,g=a.length,h=g===b||p.isFunction(a);if(d){if(h){for(e in a)if(c.apply(a[e],d)===!1)break}else for(;f0&&a[0]&&a[i-1]||i===0||p.isArray(a));if(j)for(;h-1)i.splice(c,1),e&&(c<=g&&g--,c<=h&&h--)}),this},has:function(a){return p.inArray(a,i)>-1},empty:function(){return i=[],this},disable:function(){return i=j=c=b,this},disabled:function(){return!i},lock:function(){return j=b,c||l.disable(),this},locked:function(){return!j},fireWith:function(a,b){return b=b||[],b=[a,b.slice?b.slice():b],i&&(!d||j)&&(e?j.push(b):k(b)),this},fire:function(){return l.fireWith(this,arguments),this},fired:function(){return!!d}};return l},p.extend({Deferred:function(a){var b=[["resolve","done",p.Callbacks("once memory"),"resolved"],["reject","fail",p.Callbacks("once memory"),"rejected"],["notify","progress",p.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return p.Deferred(function(c){p.each(b,function(b,d){var f=d[0],g=a[b];e[d[1]](p.isFunction(g)?function(){var a=g.apply(this,arguments);a&&p.isFunction(a.promise)?a.promise().done(c.resolve).fail(c.reject).progress(c.notify):c[f+"With"](this===e?c:this,[a])}:c[f])}),a=null}).promise()},promise:function(a){return a!=null?p.extend(a,d):d}},e={};return d.pipe=d.then,p.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&&g.add(function(){c=h},b[a^1][2].disable,b[2][2].lock),e[f[0]]=g.fire,e[f[0]+"With"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b=0,c=k.call(arguments),d=c.length,e=d!==1||a&&p.isFunction(a.promise)?d:0,f=e===1?a:p.Deferred(),g=function(a,b,c){return function(d){b[a]=this,c[a]=arguments.length>1?k.call(arguments):d,c===h?f.notifyWith(b,c):--e||f.resolveWith(b,c)}},h,i,j;if(d>1){h=new Array(d),i=new Array(d),j=new Array(d);for(;b
    a",c=n.getElementsByTagName("*"),d=n.getElementsByTagName("a")[0],d.style.cssText="top:1px;float:left;opacity:.5";if(!c||!c.length)return{};f=e.createElement("select"),g=f.appendChild(e.createElement("option")),h=n.getElementsByTagName("input")[0],b={leadingWhitespace:n.firstChild.nodeType===3,tbody:!n.getElementsByTagName("tbody").length,htmlSerialize:!!n.getElementsByTagName("link").length,style:/top/.test(d.getAttribute("style")),hrefNormalized:d.getAttribute("href")==="/a",opacity:/^0.5/.test(d.style.opacity),cssFloat:!!d.style.cssFloat,checkOn:h.value==="on",optSelected:g.selected,getSetAttribute:n.className!=="t",enctype:!!e.createElement("form").enctype,html5Clone:e.createElement("nav").cloneNode(!0).outerHTML!=="<:nav>",boxModel:e.compatMode==="CSS1Compat",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0,boxSizingReliable:!0,pixelPosition:!1},h.checked=!0,b.noCloneChecked=h.cloneNode(!0).checked,f.disabled=!0,b.optDisabled=!g.disabled;try{delete n.test}catch(o){b.deleteExpando=!1}!n.addEventListener&&n.attachEvent&&n.fireEvent&&(n.attachEvent("onclick",m=function(){b.noCloneEvent=!1}),n.cloneNode(!0).fireEvent("onclick"),n.detachEvent("onclick",m)),h=e.createElement("input"),h.value="t",h.setAttribute("type","radio"),b.radioValue=h.value==="t",h.setAttribute("checked","checked"),h.setAttribute("name","t"),n.appendChild(h),i=e.createDocumentFragment(),i.appendChild(n.lastChild),b.checkClone=i.cloneNode(!0).cloneNode(!0).lastChild.checked,b.appendChecked=h.checked,i.removeChild(h),i.appendChild(n);if(n.attachEvent)for(k in{submit:!0,change:!0,focusin:!0})j="on"+k,l=j in n,l||(n.setAttribute(j,"return;"),l=typeof n[j]=="function"),b[k+"Bubbles"]=l;return p(function(){var c,d,f,g,h="padding:0;margin:0;border:0;display:block;overflow:hidden;",i=e.getElementsByTagName("body")[0];if(!i)return;c=e.createElement("div"),c.style.cssText="visibility:hidden;border:0;width:0;height:0;position:static;top:0;margin-top:1px",i.insertBefore(c,i.firstChild),d=e.createElement("div"),c.appendChild(d),d.innerHTML="
    t
    ",f=d.getElementsByTagName("td"),f[0].style.cssText="padding:0;margin:0;border:0;display:none",l=f[0].offsetHeight===0,f[0].style.display="",f[1].style.display="none",b.reliableHiddenOffsets=l&&f[0].offsetHeight===0,d.innerHTML="",d.style.cssText="box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;",b.boxSizing=d.offsetWidth===4,b.doesNotIncludeMarginInBodyOffset=i.offsetTop!==1,a.getComputedStyle&&(b.pixelPosition=(a.getComputedStyle(d,null)||{}).top!=="1%",b.boxSizingReliable=(a.getComputedStyle(d,null)||{width:"4px"}).width==="4px",g=e.createElement("div"),g.style.cssText=d.style.cssText=h,g.style.marginRight=g.style.width="0",d.style.width="1px",d.appendChild(g),b.reliableMarginRight=!parseFloat((a.getComputedStyle(g,null)||{}).marginRight)),typeof d.style.zoom!="undefined"&&(d.innerHTML="",d.style.cssText=h+"width:1px;padding:1px;display:inline;zoom:1",b.inlineBlockNeedsLayout=d.offsetWidth===3,d.style.display="block",d.style.overflow="visible",d.innerHTML="
    ",d.firstChild.style.width="5px",b.shrinkWrapBlocks=d.offsetWidth!==3,c.style.zoom=1),i.removeChild(c),c=d=f=g=null}),i.removeChild(n),c=d=f=g=h=i=n=null,b}();var H=/(?:\{[\s\S]*\}|\[[\s\S]*\])$/,I=/([A-Z])/g;p.extend({cache:{},deletedIds:[],uuid:0,expando:"jQuery"+(p.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){return a=a.nodeType?p.cache[a[p.expando]]:a[p.expando],!!a&&!K(a)},data:function(a,c,d,e){if(!p.acceptData(a))return;var f,g,h=p.expando,i=typeof c=="string",j=a.nodeType,k=j?p.cache:a,l=j?a[h]:a[h]&&h;if((!l||!k[l]||!e&&!k[l].data)&&i&&d===b)return;l||(j?a[h]=l=p.deletedIds.pop()||p.guid++:l=h),k[l]||(k[l]={},j||(k[l].toJSON=p.noop));if(typeof c=="object"||typeof c=="function")e?k[l]=p.extend(k[l],c):k[l].data=p.extend(k[l].data,c);return f=k[l],e||(f.data||(f.data={}),f=f.data),d!==b&&(f[p.camelCase(c)]=d),i?(g=f[c],g==null&&(g=f[p.camelCase(c)])):g=f,g},removeData:function(a,b,c){if(!p.acceptData(a))return;var d,e,f,g=a.nodeType,h=g?p.cache:a,i=g?a[p.expando]:p.expando;if(!h[i])return;if(b){d=c?h[i]:h[i].data;if(d){p.isArray(b)||(b in d?b=[b]:(b=p.camelCase(b),b in d?b=[b]:b=b.split(" ")));for(e=0,f=b.length;e1,null,!1))},removeData:function(a){return this.each(function(){p.removeData(this,a)})}}),p.extend({queue:function(a,b,c){var d;if(a)return b=(b||"fx")+"queue",d=p._data(a,b),c&&(!d||p.isArray(c)?d=p._data(a,b,p.makeArray(c)):d.push(c)),d||[]},dequeue:function(a,b){b=b||"fx";var c=p.queue(a,b),d=c.length,e=c.shift(),f=p._queueHooks(a,b),g=function(){p.dequeue(a,b)};e==="inprogress"&&(e=c.shift(),d--),e&&(b==="fx"&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return p._data(a,c)||p._data(a,c,{empty:p.Callbacks("once memory").add(function(){p.removeData(a,b+"queue",!0),p.removeData(a,c,!0)})})}}),p.fn.extend({queue:function(a,c){var d=2;return typeof a!="string"&&(c=a,a="fx",d--),arguments.length1)},removeAttr:function(a){return this.each(function(){p.removeAttr(this,a)})},prop:function(a,b){return p.access(this,p.prop,a,b,arguments.length>1)},removeProp:function(a){return a=p.propFix[a]||a,this.each(function(){try{this[a]=b,delete this[a]}catch(c){}})},addClass:function(a){var b,c,d,e,f,g,h;if(p.isFunction(a))return this.each(function(b){p(this).addClass(a.call(this,b,this.className))});if(a&&typeof a=="string"){b=a.split(s);for(c=0,d=this.length;c=0)d=d.replace(" "+c[f]+" "," ");e.className=a?p.trim(d):""}}}return this},toggleClass:function(a,b){var c=typeof a,d=typeof b=="boolean";return p.isFunction(a)?this.each(function(c){p(this).toggleClass(a.call(this,c,this.className,b),b)}):this.each(function(){if(c==="string"){var e,f=0,g=p(this),h=b,i=a.split(s);while(e=i[f++])h=d?h:!g.hasClass(e),g[h?"addClass":"removeClass"](e)}else if(c==="undefined"||c==="boolean")this.className&&p._data(this,"__className__",this.className),this.className=this.className||a===!1?"":p._data(this,"__className__")||""})},hasClass:function(a){var b=" "+a+" ",c=0,d=this.length;for(;c=0)return!0;return!1},val:function(a){var c,d,e,f=this[0];if(!arguments.length){if(f)return c=p.valHooks[f.type]||p.valHooks[f.nodeName.toLowerCase()],c&&"get"in c&&(d=c.get(f,"value"))!==b?d:(d=f.value,typeof d=="string"?d.replace(P,""):d==null?"":d);return}return e=p.isFunction(a),this.each(function(d){var f,g=p(this);if(this.nodeType!==1)return;e?f=a.call(this,d,g.val()):f=a,f==null?f="":typeof f=="number"?f+="":p.isArray(f)&&(f=p.map(f,function(a){return a==null?"":a+""})),c=p.valHooks[this.type]||p.valHooks[this.nodeName.toLowerCase()];if(!c||!("set"in c)||c.set(this,f,"value")===b)this.value=f})}}),p.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!b||b.specified?a.value:a.text}},select:{get:function(a){var b,c,d,e,f=a.selectedIndex,g=[],h=a.options,i=a.type==="select-one";if(f<0)return null;c=i?f:0,d=i?f+1:h.length;for(;c=0}),c.length||(a.selectedIndex=-1),c}}},attrFn:{},attr:function(a,c,d,e){var f,g,h,i=a.nodeType;if(!a||i===3||i===8||i===2)return;if(e&&p.isFunction(p.fn[c]))return p(a)[c](d);if(typeof a.getAttribute=="undefined")return p.prop(a,c,d);h=i!==1||!p.isXMLDoc(a),h&&(c=c.toLowerCase(),g=p.attrHooks[c]||(T.test(c)?M:L));if(d!==b){if(d===null){p.removeAttr(a,c);return}return g&&"set"in g&&h&&(f=g.set(a,d,c))!==b?f:(a.setAttribute(c,d+""),d)}return g&&"get"in g&&h&&(f=g.get(a,c))!==null?f:(f=a.getAttribute(c),f===null?b:f)},removeAttr:function(a,b){var c,d,e,f,g=0;if(b&&a.nodeType===1){d=b.split(s);for(;g=0}})});var V=/^(?:textarea|input|select)$/i,W=/^([^\.]*|)(?:\.(.+)|)$/,X=/(?:^|\s)hover(\.\S+|)\b/,Y=/^key/,Z=/^(?:mouse|contextmenu)|click/,$=/^(?:focusinfocus|focusoutblur)$/,_=function(a){return p.event.special.hover?a:a.replace(X,"mouseenter$1 mouseleave$1")};p.event={add:function(a,c,d,e,f){var g,h,i,j,k,l,m,n,o,q,r;if(a.nodeType===3||a.nodeType===8||!c||!d||!(g=p._data(a)))return;d.handler&&(o=d,d=o.handler,f=o.selector),d.guid||(d.guid=p.guid++),i=g.events,i||(g.events=i={}),h=g.handle,h||(g.handle=h=function(a){return typeof p!="undefined"&&(!a||p.event.triggered!==a.type)?p.event.dispatch.apply(h.elem,arguments):b},h.elem=a),c=p.trim(_(c)).split(" ");for(j=0;j=0&&(s=s.slice(0,-1),i=!0),s.indexOf(".")>=0&&(t=s.split("."),s=t.shift(),t.sort());if((!f||p.event.customEvent[s])&&!p.event.global[s])return;c=typeof c=="object"?c[p.expando]?c:new p.Event(s,c):new p.Event(s),c.type=s,c.isTrigger=!0,c.exclusive=i,c.namespace=t.join("."),c.namespace_re=c.namespace?new RegExp("(^|\\.)"+t.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,m=s.indexOf(":")<0?"on"+s:"";if(!f){h=p.cache;for(j in h)h[j].events&&h[j].events[s]&&p.event.trigger(c,d,h[j].handle.elem,!0);return}c.result=b,c.target||(c.target=f),d=d!=null?p.makeArray(d):[],d.unshift(c),n=p.event.special[s]||{};if(n.trigger&&n.trigger.apply(f,d)===!1)return;q=[[f,n.bindType||s]];if(!g&&!n.noBubble&&!p.isWindow(f)){r=n.delegateType||s,k=$.test(r+s)?f:f.parentNode;for(l=f;k;k=k.parentNode)q.push([k,r]),l=k;l===(f.ownerDocument||e)&&q.push([l.defaultView||l.parentWindow||a,r])}for(j=0;j=0:p.find(m,this,null,[f]).length),h[m]&&j.push(l);j.length&&u.push({elem:f,matches:j})}o.length>q&&u.push({elem:this,matches:o.slice(q)});for(d=0;d0?this.on(b,null,a,c):this.trigger(b)},Y.test(b)&&(p.event.fixHooks[b]=p.event.keyHooks),Z.test(b)&&(p.event.fixHooks[b]=p.event.mouseHooks)}),function(a,b){function bc(a,b,c,d){c=c||[],b=b||r;var e,f,i,j,k=b.nodeType;if(!a||typeof a!="string")return c;if(k!==1&&k!==9)return[];i=g(b);if(!i&&!d)if(e=P.exec(a))if(j=e[1]){if(k===9){f=b.getElementById(j);if(!f||!f.parentNode)return c;if(f.id===j)return c.push(f),c}else if(b.ownerDocument&&(f=b.ownerDocument.getElementById(j))&&h(b,f)&&f.id===j)return c.push(f),c}else{if(e[2])return w.apply(c,x.call(b.getElementsByTagName(a),0)),c;if((j=e[3])&&_&&b.getElementsByClassName)return w.apply(c,x.call(b.getElementsByClassName(j),0)),c}return bp(a.replace(L,"$1"),b,c,d,i)}function bd(a){return function(b){var c=b.nodeName.toLowerCase();return c==="input"&&b.type===a}}function be(a){return function(b){var c=b.nodeName.toLowerCase();return(c==="input"||c==="button")&&b.type===a}}function bf(a){return z(function(b){return b=+b,z(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function bg(a,b,c){if(a===b)return c;var d=a.nextSibling;while(d){if(d===b)return-1;d=d.nextSibling}return 1}function bh(a,b){var c,d,f,g,h,i,j,k=C[o][a];if(k)return b?0:k.slice(0);h=a,i=[],j=e.preFilter;while(h){if(!c||(d=M.exec(h)))d&&(h=h.slice(d[0].length)),i.push(f=[]);c=!1;if(d=N.exec(h))f.push(c=new q(d.shift())),h=h.slice(c.length),c.type=d[0].replace(L," ");for(g in e.filter)(d=W[g].exec(h))&&(!j[g]||(d=j[g](d,r,!0)))&&(f.push(c=new q(d.shift())),h=h.slice(c.length),c.type=g,c.matches=d);if(!c)break}return b?h.length:h?bc.error(a):C(a,i).slice(0)}function bi(a,b,d){var e=b.dir,f=d&&b.dir==="parentNode",g=u++;return b.first?function(b,c,d){while(b=b[e])if(f||b.nodeType===1)return a(b,c,d)}:function(b,d,h){if(!h){var i,j=t+" "+g+" ",k=j+c;while(b=b[e])if(f||b.nodeType===1){if((i=b[o])===k)return b.sizset;if(typeof i=="string"&&i.indexOf(j)===0){if(b.sizset)return b}else{b[o]=k;if(a(b,d,h))return b.sizset=!0,b;b.sizset=!1}}}else while(b=b[e])if(f||b.nodeType===1)if(a(b,d,h))return b}}function bj(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function bk(a,b,c,d,e){var f,g=[],h=0,i=a.length,j=b!=null;for(;h-1},h,!0),m=[function(a,c,d){return!g&&(d||c!==l)||((b=c).nodeType?j(a,c,d):k(a,c,d))}];for(;i1&&bj(m),i>1&&a.slice(0,i-1).join("").replace(L,"$1"),c,i0,f=a.length>0,g=function(h,i,j,k,m){var n,o,p,q=[],s=0,u="0",x=h&&[],y=m!=null,z=l,A=h||f&&e.find.TAG("*",m&&i.parentNode||i),B=t+=z==null?1:Math.E;y&&(l=i!==r&&i,c=g.el);for(;(n=A[u])!=null;u++){if(f&&n){for(o=0;p=a[o];o++)if(p(n,i,j)){k.push(n);break}y&&(t=B,c=++g.el)}d&&((n=!p&&n)&&s--,h&&x.push(n))}s+=u;if(d&&u!==s){for(o=0;p=b[o];o++)p(x,q,i,j);if(h){if(s>0)while(u--)!x[u]&&!q[u]&&(q[u]=v.call(k));q=bk(q)}w.apply(k,q),y&&!h&&q.length>0&&s+b.length>1&&bc.uniqueSort(k)}return y&&(t=B,l=z),x};return g.el=0,d?z(g):g}function bo(a,b,c,d){var e=0,f=b.length;for(;e2&&(j=h[0]).type==="ID"&&b.nodeType===9&&!f&&e.relative[h[1].type]){b=e.find.ID(j.matches[0].replace(V,""),b,f)[0];if(!b)return c;a=a.slice(h.shift().length)}for(g=W.POS.test(a)?-1:h.length-1;g>=0;g--){j=h[g];if(e.relative[k=j.type])break;if(l=e.find[k])if(d=l(j.matches[0].replace(V,""),R.test(h[0].type)&&b.parentNode||b,f)){h.splice(g,1),a=d.length&&h.join("");if(!a)return w.apply(c,x.call(d,0)),c;break}}}return i(a,m)(d,b,f,c,R.test(a)),c}function bq(){}var c,d,e,f,g,h,i,j,k,l,m=!0,n="undefined",o=("sizcache"+Math.random()).replace(".",""),q=String,r=a.document,s=r.documentElement,t=0,u=0,v=[].pop,w=[].push,x=[].slice,y=[].indexOf||function(a){var b=0,c=this.length;for(;be.cacheLength&&delete a[b.shift()],a[c]=d},a)},B=A(),C=A(),D=A(),E="[\\x20\\t\\r\\n\\f]",F="(?:\\\\.|[-\\w]|[^\\x00-\\xa0])+",G=F.replace("w","w#"),H="([*^$|!~]?=)",I="\\["+E+"*("+F+")"+E+"*(?:"+H+E+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+G+")|)|)"+E+"*\\]",J=":("+F+")(?:\\((?:(['\"])((?:\\\\.|[^\\\\])*?)\\2|([^()[\\]]*|(?:(?:"+I+")|[^:]|\\\\.)*|.*))\\)|)",K=":(even|odd|eq|gt|lt|nth|first|last)(?:\\("+E+"*((?:-\\d)?\\d*)"+E+"*\\)|)(?=[^-]|$)",L=new RegExp("^"+E+"+|((?:^|[^\\\\])(?:\\\\.)*)"+E+"+$","g"),M=new RegExp("^"+E+"*,"+E+"*"),N=new RegExp("^"+E+"*([\\x20\\t\\r\\n\\f>+~])"+E+"*"),O=new RegExp(J),P=/^(?:#([\w\-]+)|(\w+)|\.([\w\-]+))$/,Q=/^:not/,R=/[\x20\t\r\n\f]*[+~]/,S=/:not\($/,T=/h\d/i,U=/input|select|textarea|button/i,V=/\\(?!\\)/g,W={ID:new RegExp("^#("+F+")"),CLASS:new RegExp("^\\.("+F+")"),NAME:new RegExp("^\\[name=['\"]?("+F+")['\"]?\\]"),TAG:new RegExp("^("+F.replace("w","w*")+")"),ATTR:new RegExp("^"+I),PSEUDO:new RegExp("^"+J),POS:new RegExp(K,"i"),CHILD:new RegExp("^:(only|nth|first|last)-child(?:\\("+E+"*(even|odd|(([+-]|)(\\d*)n|)"+E+"*(?:([+-]|)"+E+"*(\\d+)|))"+E+"*\\)|)","i"),needsContext:new RegExp("^"+E+"*[>+~]|"+K,"i")},X=function(a){var b=r.createElement("div");try{return a(b)}catch(c){return!1}finally{b=null}},Y=X(function(a){return a.appendChild(r.createComment("")),!a.getElementsByTagName("*").length}),Z=X(function(a){return a.innerHTML="",a.firstChild&&typeof a.firstChild.getAttribute!==n&&a.firstChild.getAttribute("href")==="#"}),$=X(function(a){a.innerHTML="";var b=typeof a.lastChild.getAttribute("multiple");return b!=="boolean"&&b!=="string"}),_=X(function(a){return a.innerHTML="",!a.getElementsByClassName||!a.getElementsByClassName("e").length?!1:(a.lastChild.className="e",a.getElementsByClassName("e").length===2)}),ba=X(function(a){a.id=o+0,a.innerHTML="
    ",s.insertBefore(a,s.firstChild);var b=r.getElementsByName&&r.getElementsByName(o).length===2+r.getElementsByName(o+0).length;return d=!r.getElementById(o),s.removeChild(a),b});try{x.call(s.childNodes,0)[0].nodeType}catch(bb){x=function(a){var b,c=[];for(;b=this[a];a++)c.push(b);return c}}bc.matches=function(a,b){return bc(a,null,null,b)},bc.matchesSelector=function(a,b){return bc(b,null,null,[a]).length>0},f=bc.getText=function(a){var b,c="",d=0,e=a.nodeType;if(e){if(e===1||e===9||e===11){if(typeof a.textContent=="string")return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=f(a)}else if(e===3||e===4)return a.nodeValue}else for(;b=a[d];d++)c+=f(b);return c},g=bc.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?b.nodeName!=="HTML":!1},h=bc.contains=s.contains?function(a,b){var c=a.nodeType===9?a.documentElement:a,d=b&&b.parentNode;return a===d||!!(d&&d.nodeType===1&&c.contains&&c.contains(d))}:s.compareDocumentPosition?function(a,b){return b&&!!(a.compareDocumentPosition(b)&16)}:function(a,b){while(b=b.parentNode)if(b===a)return!0;return!1},bc.attr=function(a,b){var c,d=g(a);return d||(b=b.toLowerCase()),(c=e.attrHandle[b])?c(a):d||$?a.getAttribute(b):(c=a.getAttributeNode(b),c?typeof a[b]=="boolean"?a[b]?b:null:c.specified?c.value:null:null)},e=bc.selectors={cacheLength:50,createPseudo:z,match:W,attrHandle:Z?{}:{href:function(a){return a.getAttribute("href",2)},type:function(a){return a.getAttribute("type")}},find:{ID:d?function(a,b,c){if(typeof b.getElementById!==n&&!c){var d=b.getElementById(a);return d&&d.parentNode?[d]:[]}}:function(a,c,d){if(typeof c.getElementById!==n&&!d){var e=c.getElementById(a);return e?e.id===a||typeof e.getAttributeNode!==n&&e.getAttributeNode("id").value===a?[e]:b:[]}},TAG:Y?function(a,b){if(typeof b.getElementsByTagName!==n)return b.getElementsByTagName(a)}:function(a,b){var c=b.getElementsByTagName(a);if(a==="*"){var d,e=[],f=0;for(;d=c[f];f++)d.nodeType===1&&e.push(d);return e}return c},NAME:ba&&function(a,b){if(typeof b.getElementsByName!==n)return b.getElementsByName(name)},CLASS:_&&function(a,b,c){if(typeof b.getElementsByClassName!==n&&!c)return b.getElementsByClassName(a)}},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(V,""),a[3]=(a[4]||a[5]||"").replace(V,""),a[2]==="~="&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),a[1]==="nth"?(a[2]||bc.error(a[0]),a[3]=+(a[3]?a[4]+(a[5]||1):2*(a[2]==="even"||a[2]==="odd")),a[4]=+(a[6]+a[7]||a[2]==="odd")):a[2]&&bc.error(a[0]),a},PSEUDO:function(a){var b,c;if(W.CHILD.test(a[0]))return null;if(a[3])a[2]=a[3];else if(b=a[4])O.test(b)&&(c=bh(b,!0))&&(c=b.indexOf(")",b.length-c)-b.length)&&(b=b.slice(0,c),a[0]=a[0].slice(0,c)),a[2]=b;return a.slice(0,3)}},filter:{ID:d?function(a){return a=a.replace(V,""),function(b){return b.getAttribute("id")===a}}:function(a){return a=a.replace(V,""),function(b){var c=typeof b.getAttributeNode!==n&&b.getAttributeNode("id");return c&&c.value===a}},TAG:function(a){return a==="*"?function(){return!0}:(a=a.replace(V,"").toLowerCase(),function(b){return b.nodeName&&b.nodeName.toLowerCase()===a})},CLASS:function(a){var b=B[o][a];return b||(b=B(a,new RegExp("(^|"+E+")"+a+"("+E+"|$)"))),function(a){return b.test(a.className||typeof a.getAttribute!==n&&a.getAttribute("class")||"")}},ATTR:function(a,b,c){return function(d,e){var f=bc.attr(d,a);return f==null?b==="!=":b?(f+="",b==="="?f===c:b==="!="?f!==c:b==="^="?c&&f.indexOf(c)===0:b==="*="?c&&f.indexOf(c)>-1:b==="$="?c&&f.substr(f.length-c.length)===c:b==="~="?(" "+f+" ").indexOf(c)>-1:b==="|="?f===c||f.substr(0,c.length+1)===c+"-":!1):!0}},CHILD:function(a,b,c,d){return a==="nth"?function(a){var b,e,f=a.parentNode;if(c===1&&d===0)return!0;if(f){e=0;for(b=f.firstChild;b;b=b.nextSibling)if(b.nodeType===1){e++;if(a===b)break}}return e-=d,e===c||e%c===0&&e/c>=0}:function(b){var c=b;switch(a){case"only":case"first":while(c=c.previousSibling)if(c.nodeType===1)return!1;if(a==="first")return!0;c=b;case"last":while(c=c.nextSibling)if(c.nodeType===1)return!1;return!0}}},PSEUDO:function(a,b){var c,d=e.pseudos[a]||e.setFilters[a.toLowerCase()]||bc.error("unsupported pseudo: "+a);return d[o]?d(b):d.length>1?(c=[a,a,"",b],e.setFilters.hasOwnProperty(a.toLowerCase())?z(function(a,c){var e,f=d(a,b),g=f.length;while(g--)e=y.call(a,f[g]),a[e]=!(c[e]=f[g])}):function(a){return d(a,0,c)}):d}},pseudos:{not:z(function(a){var b=[],c=[],d=i(a.replace(L,"$1"));return d[o]?z(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)if(f=g[h])a[h]=!(b[h]=f)}):function(a,e,f){return b[0]=a,d(b,null,f,c),!c.pop()}}),has:z(function(a){return function(b){return bc(a,b).length>0}}),contains:z(function(a){return function(b){return(b.textContent||b.innerText||f(b)).indexOf(a)>-1}}),enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&!!a.checked||b==="option"&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},parent:function(a){return!e.pseudos.empty(a)},empty:function(a){var b;a=a.firstChild;while(a){if(a.nodeName>"@"||(b=a.nodeType)===3||b===4)return!1;a=a.nextSibling}return!0},header:function(a){return T.test(a.nodeName)},text:function(a){var b,c;return a.nodeName.toLowerCase()==="input"&&(b=a.type)==="text"&&((c=a.getAttribute("type"))==null||c.toLowerCase()===b)},radio:bd("radio"),checkbox:bd("checkbox"),file:bd("file"),password:bd("password"),image:bd("image"),submit:be("submit"),reset:be("reset"),button:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&a.type==="button"||b==="button"},input:function(a){return U.test(a.nodeName)},focus:function(a){var b=a.ownerDocument;return a===b.activeElement&&(!b.hasFocus||b.hasFocus())&&(!!a.type||!!a.href)},active:function(a){return a===a.ownerDocument.activeElement},first:bf(function(a,b,c){return[0]}),last:bf(function(a,b,c){return[b-1]}),eq:bf(function(a,b,c){return[c<0?c+b:c]}),even:bf(function(a,b,c){for(var d=0;d=0;)a.push(d);return a}),gt:bf(function(a,b,c){for(var d=c<0?c+b:c;++d",a.querySelectorAll("[selected]").length||e.push("\\["+E+"*(?:checked|disabled|ismap|multiple|readonly|selected|value)"),a.querySelectorAll(":checked").length||e.push(":checked")}),X(function(a){a.innerHTML="

    ",a.querySelectorAll("[test^='']").length&&e.push("[*^$]="+E+"*(?:\"\"|'')"),a.innerHTML="",a.querySelectorAll(":enabled").length||e.push(":enabled",":disabled")}),e=new RegExp(e.join("|")),bp=function(a,d,f,g,h){if(!g&&!h&&(!e||!e.test(a))){var i,j,k=!0,l=o,m=d,n=d.nodeType===9&&a;if(d.nodeType===1&&d.nodeName.toLowerCase()!=="object"){i=bh(a),(k=d.getAttribute("id"))?l=k.replace(c,"\\$&"):d.setAttribute("id",l),l="[id='"+l+"'] ",j=i.length;while(j--)i[j]=l+i[j].join("");m=R.test(a)&&d.parentNode||d,n=i.join(",")}if(n)try{return w.apply(f,x.call(m.querySelectorAll(n),0)),f}catch(p){}finally{k||d.removeAttribute("id")}}return b(a,d,f,g,h)},h&&(X(function(b){a=h.call(b,"div");try{h.call(b,"[test!='']:sizzle"),f.push("!=",J)}catch(c){}}),f=new RegExp(f.join("|")),bc.matchesSelector=function(b,c){c=c.replace(d,"='$1']");if(!g(b)&&!f.test(c)&&(!e||!e.test(c)))try{var i=h.call(b,c);if(i||a||b.document&&b.document.nodeType!==11)return i}catch(j){}return bc(c,null,null,[b]).length>0})}(),e.pseudos.nth=e.pseudos.eq,e.filters=bq.prototype=e.pseudos,e.setFilters=new bq,bc.attr=p.attr,p.find=bc,p.expr=bc.selectors,p.expr[":"]=p.expr.pseudos,p.unique=bc.uniqueSort,p.text=bc.getText,p.isXMLDoc=bc.isXML,p.contains=bc.contains}(a);var bc=/Until$/,bd=/^(?:parents|prev(?:Until|All))/,be=/^.[^:#\[\.,]*$/,bf=p.expr.match.needsContext,bg={children:!0,contents:!0,next:!0,prev:!0};p.fn.extend({find:function(a){var b,c,d,e,f,g,h=this;if(typeof a!="string")return p(a).filter(function(){for(b=0,c=h.length;b0)for(e=d;e=0:p.filter(a,this).length>0:this.filter(a).length>0)},closest:function(a,b){var c,d=0,e=this.length,f=[],g=bf.test(a)||typeof a!="string"?p(a,b||this.context):0;for(;d-1:p.find.matchesSelector(c,a)){f.push(c);break}c=c.parentNode}}return f=f.length>1?p.unique(f):f,this.pushStack(f,"closest",a)},index:function(a){return a?typeof a=="string"?p.inArray(this[0],p(a)):p.inArray(a.jquery?a[0]:a,this):this[0]&&this[0].parentNode?this.prevAll().length:-1},add:function(a,b){var c=typeof a=="string"?p(a,b):p.makeArray(a&&a.nodeType?[a]:a),d=p.merge(this.get(),c);return this.pushStack(bh(c[0])||bh(d[0])?d:p.unique(d))},addBack:function(a){return this.add(a==null?this.prevObject:this.prevObject.filter(a))}}),p.fn.andSelf=p.fn.addBack,p.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return p.dir(a,"parentNode")},parentsUntil:function(a,b,c){return p.dir(a,"parentNode",c)},next:function(a){return bi(a,"nextSibling")},prev:function(a){return bi(a,"previousSibling")},nextAll:function(a){return p.dir(a,"nextSibling")},prevAll:function(a){return p.dir(a,"previousSibling")},nextUntil:function(a,b,c){return p.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return p.dir(a,"previousSibling",c)},siblings:function(a){return p.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return p.sibling(a.firstChild)},contents:function(a){return p.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:p.merge([],a.childNodes)}},function(a,b){p.fn[a]=function(c,d){var e=p.map(this,b,c);return bc.test(a)||(d=c),d&&typeof d=="string"&&(e=p.filter(d,e)),e=this.length>1&&!bg[a]?p.unique(e):e,this.length>1&&bd.test(a)&&(e=e.reverse()),this.pushStack(e,a,k.call(arguments).join(","))}}),p.extend({filter:function(a,b,c){return c&&(a=":not("+a+")"),b.length===1?p.find.matchesSelector(b[0],a)?[b[0]]:[]:p.find.matches(a,b)},dir:function(a,c,d){var e=[],f=a[c];while(f&&f.nodeType!==9&&(d===b||f.nodeType!==1||!p(f).is(d)))f.nodeType===1&&e.push(f),f=f[c];return e},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var bl="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",bm=/ jQuery\d+="(?:null|\d+)"/g,bn=/^\s+/,bo=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,bp=/<([\w:]+)/,bq=/]","i"),bv=/^(?:checkbox|radio)$/,bw=/checked\s*(?:[^=]|=\s*.checked.)/i,bx=/\/(java|ecma)script/i,by=/^\s*\s*$/g,bz={option:[1,""],legend:[1,"
    ","
    "],thead:[1,"","
    "],tr:[2,"","
    "],td:[3,"","
    "],col:[2,"","
    "],area:[1,"",""],_default:[0,"",""]},bA=bk(e),bB=bA.appendChild(e.createElement("div"));bz.optgroup=bz.option,bz.tbody=bz.tfoot=bz.colgroup=bz.caption=bz.thead,bz.th=bz.td,p.support.htmlSerialize||(bz._default=[1,"X
    ","
    "]),p.fn.extend({text:function(a){return p.access(this,function(a){return a===b?p.text(this):this.empty().append((this[0]&&this[0].ownerDocument||e).createTextNode(a))},null,a,arguments.length)},wrapAll:function(a){if(p.isFunction(a))return this.each(function(b){p(this).wrapAll(a.call(this,b))});if(this[0]){var b=p(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){return p.isFunction(a)?this.each(function(b){p(this).wrapInner(a.call(this,b))}):this.each(function(){var b=p(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=p.isFunction(a);return this.each(function(c){p(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){p.nodeName(this,"body")||p(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){(this.nodeType===1||this.nodeType===11)&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){(this.nodeType===1||this.nodeType===11)&&this.insertBefore(a,this.firstChild)})},before:function(){if(!bh(this[0]))return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=p.clean(arguments);return this.pushStack(p.merge(a,this),"before",this.selector)}},after:function(){if(!bh(this[0]))return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=p.clean(arguments);return this.pushStack(p.merge(this,a),"after",this.selector)}},remove:function(a,b){var c,d=0;for(;(c=this[d])!=null;d++)if(!a||p.filter(a,[c]).length)!b&&c.nodeType===1&&(p.cleanData(c.getElementsByTagName("*")),p.cleanData([c])),c.parentNode&&c.parentNode.removeChild(c);return this},empty:function(){var a,b=0;for(;(a=this[b])!=null;b++){a.nodeType===1&&p.cleanData(a.getElementsByTagName("*"));while(a.firstChild)a.removeChild(a.firstChild)}return this},clone:function(a,b){return a=a==null?!1:a,b=b==null?a:b,this.map(function(){return p.clone(this,a,b)})},html:function(a){return p.access(this,function(a){var c=this[0]||{},d=0,e=this.length;if(a===b)return c.nodeType===1?c.innerHTML.replace(bm,""):b;if(typeof a=="string"&&!bs.test(a)&&(p.support.htmlSerialize||!bu.test(a))&&(p.support.leadingWhitespace||!bn.test(a))&&!bz[(bp.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(bo,"<$1>");try{for(;d1&&typeof j=="string"&&bw.test(j))return this.each(function(){p(this).domManip(a,c,d)});if(p.isFunction(j))return this.each(function(e){var f=p(this);a[0]=j.call(this,e,c?f.html():b),f.domManip(a,c,d)});if(this[0]){e=p.buildFragment(a,this,k),g=e.fragment,f=g.firstChild,g.childNodes.length===1&&(g=f);if(f){c=c&&p.nodeName(f,"tr");for(h=e.cacheable||l-1;i0?this.clone(!0):this).get(),p(g[e])[b](d),f=f.concat(d);return this.pushStack(f,a,g.selector)}}),p.extend({clone:function(a,b,c){var d,e,f,g;p.support.html5Clone||p.isXMLDoc(a)||!bu.test("<"+a.nodeName+">")?g=a.cloneNode(!0):(bB.innerHTML=a.outerHTML,bB.removeChild(g=bB.firstChild));if((!p.support.noCloneEvent||!p.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!p.isXMLDoc(a)){bE(a,g),d=bF(a),e=bF(g);for(f=0;d[f];++f)e[f]&&bE(d[f],e[f])}if(b){bD(a,g);if(c){d=bF(a),e=bF(g);for(f=0;d[f];++f)bD(d[f],e[f])}}return d=e=null,g},clean:function(a,b,c,d){var f,g,h,i,j,k,l,m,n,o,q,r,s=b===e&&bA,t=[];if(!b||typeof b.createDocumentFragment=="undefined")b=e;for(f=0;(h=a[f])!=null;f++){typeof h=="number"&&(h+="");if(!h)continue;if(typeof h=="string")if(!br.test(h))h=b.createTextNode(h);else{s=s||bk(b),l=b.createElement("div"),s.appendChild(l),h=h.replace(bo,"<$1>"),i=(bp.exec(h)||["",""])[1].toLowerCase(),j=bz[i]||bz._default,k=j[0],l.innerHTML=j[1]+h+j[2];while(k--)l=l.lastChild;if(!p.support.tbody){m=bq.test(h),n=i==="table"&&!m?l.firstChild&&l.firstChild.childNodes:j[1]===""&&!m?l.childNodes:[];for(g=n.length-1;g>=0;--g)p.nodeName(n[g],"tbody")&&!n[g].childNodes.length&&n[g].parentNode.removeChild(n[g])}!p.support.leadingWhitespace&&bn.test(h)&&l.insertBefore(b.createTextNode(bn.exec(h)[0]),l.firstChild),h=l.childNodes,l.parentNode.removeChild(l)}h.nodeType?t.push(h):p.merge(t,h)}l&&(h=l=s=null);if(!p.support.appendChecked)for(f=0;(h=t[f])!=null;f++)p.nodeName(h,"input")?bG(h):typeof h.getElementsByTagName!="undefined"&&p.grep(h.getElementsByTagName("input"),bG);if(c){q=function(a){if(!a.type||bx.test(a.type))return d?d.push(a.parentNode?a.parentNode.removeChild(a):a):c.appendChild(a)};for(f=0;(h=t[f])!=null;f++)if(!p.nodeName(h,"script")||!q(h))c.appendChild(h),typeof h.getElementsByTagName!="undefined"&&(r=p.grep(p.merge([],h.getElementsByTagName("script")),q),t.splice.apply(t,[f+1,0].concat(r)),f+=r.length)}return t},cleanData:function(a,b){var c,d,e,f,g=0,h=p.expando,i=p.cache,j=p.support.deleteExpando,k=p.event.special;for(;(e=a[g])!=null;g++)if(b||p.acceptData(e)){d=e[h],c=d&&i[d];if(c){if(c.events)for(f in c.events)k[f]?p.event.remove(e,f):p.removeEvent(e,f,c.handle);i[d]&&(delete i[d],j?delete e[h]:e.removeAttribute?e.removeAttribute(h):e[h]=null,p.deletedIds.push(d))}}}}),function(){var a,b;p.uaMatch=function(a){a=a.toLowerCase();var b=/(chrome)[ \/]([\w.]+)/.exec(a)||/(webkit)[ \/]([\w.]+)/.exec(a)||/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(a)||/(msie) ([\w.]+)/.exec(a)||a.indexOf("compatible")<0&&/(mozilla)(?:.*? rv:([\w.]+)|)/.exec(a)||[];return{browser:b[1]||"",version:b[2]||"0"}},a=p.uaMatch(g.userAgent),b={},a.browser&&(b[a.browser]=!0,b.version=a.version),b.chrome?b.webkit=!0:b.webkit&&(b.safari=!0),p.browser=b,p.sub=function(){function a(b,c){return new a.fn.init(b,c)}p.extend(!0,a,this),a.superclass=this,a.fn=a.prototype=this(),a.fn.constructor=a,a.sub=this.sub,a.fn.init=function c(c,d){return d&&d instanceof p&&!(d instanceof a)&&(d=a(d)),p.fn.init.call(this,c,d,b)},a.fn.init.prototype=a.fn;var b=a(e);return a}}();var bH,bI,bJ,bK=/alpha\([^)]*\)/i,bL=/opacity=([^)]*)/,bM=/^(top|right|bottom|left)$/,bN=/^(none|table(?!-c[ea]).+)/,bO=/^margin/,bP=new RegExp("^("+q+")(.*)$","i"),bQ=new RegExp("^("+q+")(?!px)[a-z%]+$","i"),bR=new RegExp("^([-+])=("+q+")","i"),bS={},bT={position:"absolute",visibility:"hidden",display:"block"},bU={letterSpacing:0,fontWeight:400},bV=["Top","Right","Bottom","Left"],bW=["Webkit","O","Moz","ms"],bX=p.fn.toggle;p.fn.extend({css:function(a,c){return p.access(this,function(a,c,d){return d!==b?p.style(a,c,d):p.css(a,c)},a,c,arguments.length>1)},show:function(){return b$(this,!0)},hide:function(){return b$(this)},toggle:function(a,b){var c=typeof a=="boolean";return p.isFunction(a)&&p.isFunction(b)?bX.apply(this,arguments):this.each(function(){(c?a:bZ(this))?p(this).show():p(this).hide()})}}),p.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=bH(a,"opacity");return c===""?"1":c}}}},cssNumber:{fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":p.support.cssFloat?"cssFloat":"styleFloat"},style:function(a,c,d,e){if(!a||a.nodeType===3||a.nodeType===8||!a.style)return;var f,g,h,i=p.camelCase(c),j=a.style;c=p.cssProps[i]||(p.cssProps[i]=bY(j,i)),h=p.cssHooks[c]||p.cssHooks[i];if(d===b)return h&&"get"in h&&(f=h.get(a,!1,e))!==b?f:j[c];g=typeof d,g==="string"&&(f=bR.exec(d))&&(d=(f[1]+1)*f[2]+parseFloat(p.css(a,c)),g="number");if(d==null||g==="number"&&isNaN(d))return;g==="number"&&!p.cssNumber[i]&&(d+="px");if(!h||!("set"in h)||(d=h.set(a,d,e))!==b)try{j[c]=d}catch(k){}},css:function(a,c,d,e){var f,g,h,i=p.camelCase(c);return c=p.cssProps[i]||(p.cssProps[i]=bY(a.style,i)),h=p.cssHooks[c]||p.cssHooks[i],h&&"get"in h&&(f=h.get(a,!0,e)),f===b&&(f=bH(a,c)),f==="normal"&&c in bU&&(f=bU[c]),d||e!==b?(g=parseFloat(f),d||p.isNumeric(g)?g||0:f):f},swap:function(a,b,c){var d,e,f={};for(e in b)f[e]=a.style[e],a.style[e]=b[e];d=c.call(a);for(e in b)a.style[e]=f[e];return d}}),a.getComputedStyle?bH=function(b,c){var d,e,f,g,h=a.getComputedStyle(b,null),i=b.style;return h&&(d=h[c],d===""&&!p.contains(b.ownerDocument,b)&&(d=p.style(b,c)),bQ.test(d)&&bO.test(c)&&(e=i.width,f=i.minWidth,g=i.maxWidth,i.minWidth=i.maxWidth=i.width=d,d=h.width,i.width=e,i.minWidth=f,i.maxWidth=g)),d}:e.documentElement.currentStyle&&(bH=function(a,b){var c,d,e=a.currentStyle&&a.currentStyle[b],f=a.style;return e==null&&f&&f[b]&&(e=f[b]),bQ.test(e)&&!bM.test(b)&&(c=f.left,d=a.runtimeStyle&&a.runtimeStyle.left,d&&(a.runtimeStyle.left=a.currentStyle.left),f.left=b==="fontSize"?"1em":e,e=f.pixelLeft+"px",f.left=c,d&&(a.runtimeStyle.left=d)),e===""?"auto":e}),p.each(["height","width"],function(a,b){p.cssHooks[b]={get:function(a,c,d){if(c)return a.offsetWidth===0&&bN.test(bH(a,"display"))?p.swap(a,bT,function(){return cb(a,b,d)}):cb(a,b,d)},set:function(a,c,d){return b_(a,c,d?ca(a,b,d,p.support.boxSizing&&p.css(a,"boxSizing")==="border-box"):0)}}}),p.support.opacity||(p.cssHooks.opacity={get:function(a,b){return bL.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=p.isNumeric(b)?"alpha(opacity="+b*100+")":"",f=d&&d.filter||c.filter||"";c.zoom=1;if(b>=1&&p.trim(f.replace(bK,""))===""&&c.removeAttribute){c.removeAttribute("filter");if(d&&!d.filter)return}c.filter=bK.test(f)?f.replace(bK,e):f+" "+e}}),p(function(){p.support.reliableMarginRight||(p.cssHooks.marginRight={get:function(a,b){return p.swap(a,{display:"inline-block"},function(){if(b)return bH(a,"marginRight")})}}),!p.support.pixelPosition&&p.fn.position&&p.each(["top","left"],function(a,b){p.cssHooks[b]={get:function(a,c){if(c){var d=bH(a,b);return bQ.test(d)?p(a).position()[b]+"px":d}}}})}),p.expr&&p.expr.filters&&(p.expr.filters.hidden=function(a){return a.offsetWidth===0&&a.offsetHeight===0||!p.support.reliableHiddenOffsets&&(a.style&&a.style.display||bH(a,"display"))==="none"},p.expr.filters.visible=function(a){return!p.expr.filters.hidden(a)}),p.each({margin:"",padding:"",border:"Width"},function(a,b){p.cssHooks[a+b]={expand:function(c){var d,e=typeof c=="string"?c.split(" "):[c],f={};for(d=0;d<4;d++)f[a+bV[d]+b]=e[d]||e[d-2]||e[0];return f}},bO.test(a)||(p.cssHooks[a+b].set=b_)});var cd=/%20/g,ce=/\[\]$/,cf=/\r?\n/g,cg=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,ch=/^(?:select|textarea)/i;p.fn.extend({serialize:function(){return p.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?p.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||ch.test(this.nodeName)||cg.test(this.type))}).map(function(a,b){var c=p(this).val();return c==null?null:p.isArray(c)?p.map(c,function(a,c){return{name:b.name,value:a.replace(cf,"\r\n")}}):{name:b.name,value:c.replace(cf,"\r\n")}}).get()}}),p.param=function(a,c){var d,e=[],f=function(a,b){b=p.isFunction(b)?b():b==null?"":b,e[e.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=p.ajaxSettings&&p.ajaxSettings.traditional);if(p.isArray(a)||a.jquery&&!p.isPlainObject(a))p.each(a,function(){f(this.name,this.value)});else for(d in a)ci(d,a[d],c,f);return e.join("&").replace(cd,"+")};var cj,ck,cl=/#.*$/,cm=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,cn=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,co=/^(?:GET|HEAD)$/,cp=/^\/\//,cq=/\?/,cr=/)<[^<]*)*<\/script>/gi,cs=/([?&])_=[^&]*/,ct=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/,cu=p.fn.load,cv={},cw={},cx=["*/"]+["*"];try{ck=f.href}catch(cy){ck=e.createElement("a"),ck.href="",ck=ck.href}cj=ct.exec(ck.toLowerCase())||[],p.fn.load=function(a,c,d){if(typeof a!="string"&&cu)return cu.apply(this,arguments);if(!this.length)return this;var e,f,g,h=this,i=a.indexOf(" ");return i>=0&&(e=a.slice(i,a.length),a=a.slice(0,i)),p.isFunction(c)?(d=c,c=b):c&&typeof c=="object"&&(f="POST"),p.ajax({url:a,type:f,dataType:"html",data:c,complete:function(a,b){d&&h.each(d,g||[a.responseText,b,a])}}).done(function(a){g=arguments,h.html(e?p("
    ").append(a.replace(cr,"")).find(e):a)}),this},p.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){p.fn[b]=function(a){return this.on(b,a)}}),p.each(["get","post"],function(a,c){p[c]=function(a,d,e,f){return p.isFunction(d)&&(f=f||e,e=d,d=b),p.ajax({type:c,url:a,data:d,success:e,dataType:f})}}),p.extend({getScript:function(a,c){return p.get(a,b,c,"script")},getJSON:function(a,b,c){return p.get(a,b,c,"json")},ajaxSetup:function(a,b){return b?cB(a,p.ajaxSettings):(b=a,a=p.ajaxSettings),cB(a,b),a},ajaxSettings:{url:ck,isLocal:cn.test(cj[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded; charset=UTF-8",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":cx},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":p.parseJSON,"text xml":p.parseXML},flatOptions:{context:!0,url:!0}},ajaxPrefilter:cz(cv),ajaxTransport:cz(cw),ajax:function(a,c){function y(a,c,f,i){var k,s,t,u,w,y=c;if(v===2)return;v=2,h&&clearTimeout(h),g=b,e=i||"",x.readyState=a>0?4:0,f&&(u=cC(l,x,f));if(a>=200&&a<300||a===304)l.ifModified&&(w=x.getResponseHeader("Last-Modified"),w&&(p.lastModified[d]=w),w=x.getResponseHeader("Etag"),w&&(p.etag[d]=w)),a===304?(y="notmodified",k=!0):(k=cD(l,u),y=k.state,s=k.data,t=k.error,k=!t);else{t=y;if(!y||a)y="error",a<0&&(a=0)}x.status=a,x.statusText=(c||y)+"",k?o.resolveWith(m,[s,y,x]):o.rejectWith(m,[x,y,t]),x.statusCode(r),r=b,j&&n.trigger("ajax"+(k?"Success":"Error"),[x,l,k?s:t]),q.fireWith(m,[x,y]),j&&(n.trigger("ajaxComplete",[x,l]),--p.active||p.event.trigger("ajaxStop"))}typeof a=="object"&&(c=a,a=b),c=c||{};var d,e,f,g,h,i,j,k,l=p.ajaxSetup({},c),m=l.context||l,n=m!==l&&(m.nodeType||m instanceof p)?p(m):p.event,o=p.Deferred(),q=p.Callbacks("once memory"),r=l.statusCode||{},t={},u={},v=0,w="canceled",x={readyState:0,setRequestHeader:function(a,b){if(!v){var c=a.toLowerCase();a=u[c]=u[c]||a,t[a]=b}return this},getAllResponseHeaders:function(){return v===2?e:null},getResponseHeader:function(a){var c;if(v===2){if(!f){f={};while(c=cm.exec(e))f[c[1].toLowerCase()]=c[2]}c=f[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){return v||(l.mimeType=a),this},abort:function(a){return a=a||w,g&&g.abort(a),y(0,a),this}};o.promise(x),x.success=x.done,x.error=x.fail,x.complete=q.add,x.statusCode=function(a){if(a){var b;if(v<2)for(b in a)r[b]=[r[b],a[b]];else b=a[x.status],x.always(b)}return this},l.url=((a||l.url)+"").replace(cl,"").replace(cp,cj[1]+"//"),l.dataTypes=p.trim(l.dataType||"*").toLowerCase().split(s),l.crossDomain==null&&(i=ct.exec(l.url.toLowerCase())||!1,l.crossDomain=i&&i.join(":")+(i[3]?"":i[1]==="http:"?80:443)!==cj.join(":")+(cj[3]?"":cj[1]==="http:"?80:443)),l.data&&l.processData&&typeof l.data!="string"&&(l.data=p.param(l.data,l.traditional)),cA(cv,l,c,x);if(v===2)return x;j=l.global,l.type=l.type.toUpperCase(),l.hasContent=!co.test(l.type),j&&p.active++===0&&p.event.trigger("ajaxStart");if(!l.hasContent){l.data&&(l.url+=(cq.test(l.url)?"&":"?")+l.data,delete l.data),d=l.url;if(l.cache===!1){var z=p.now(),A=l.url.replace(cs,"$1_="+z);l.url=A+(A===l.url?(cq.test(l.url)?"&":"?")+"_="+z:"")}}(l.data&&l.hasContent&&l.contentType!==!1||c.contentType)&&x.setRequestHeader("Content-Type",l.contentType),l.ifModified&&(d=d||l.url,p.lastModified[d]&&x.setRequestHeader("If-Modified-Since",p.lastModified[d]),p.etag[d]&&x.setRequestHeader("If-None-Match",p.etag[d])),x.setRequestHeader("Accept",l.dataTypes[0]&&l.accepts[l.dataTypes[0]]?l.accepts[l.dataTypes[0]]+(l.dataTypes[0]!=="*"?", "+cx+"; q=0.01":""):l.accepts["*"]);for(k in l.headers)x.setRequestHeader(k,l.headers[k]);if(!l.beforeSend||l.beforeSend.call(m,x,l)!==!1&&v!==2){w="abort";for(k in{success:1,error:1,complete:1})x[k](l[k]);g=cA(cw,l,c,x);if(!g)y(-1,"No Transport");else{x.readyState=1,j&&n.trigger("ajaxSend",[x,l]),l.async&&l.timeout>0&&(h=setTimeout(function(){x.abort("timeout")},l.timeout));try{v=1,g.send(t,y)}catch(B){if(v<2)y(-1,B);else throw B}}return x}return x.abort()},active:0,lastModified:{},etag:{}});var cE=[],cF=/\?/,cG=/(=)\?(?=&|$)|\?\?/,cH=p.now();p.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var a=cE.pop()||p.expando+"_"+cH++;return this[a]=!0,a}}),p.ajaxPrefilter("json jsonp",function(c,d,e){var f,g,h,i=c.data,j=c.url,k=c.jsonp!==!1,l=k&&cG.test(j),m=k&&!l&&typeof i=="string"&&!(c.contentType||"").indexOf("application/x-www-form-urlencoded")&&cG.test(i);if(c.dataTypes[0]==="jsonp"||l||m)return f=c.jsonpCallback=p.isFunction(c.jsonpCallback)?c.jsonpCallback():c.jsonpCallback,g=a[f],l?c.url=j.replace(cG,"$1"+f):m?c.data=i.replace(cG,"$1"+f):k&&(c.url+=(cF.test(j)?"&":"?")+c.jsonp+"="+f),c.converters["script json"]=function(){return h||p.error(f+" was not called"),h[0]},c.dataTypes[0]="json",a[f]=function(){h=arguments},e.always(function(){a[f]=g,c[f]&&(c.jsonpCallback=d.jsonpCallback,cE.push(f)),h&&p.isFunction(g)&&g(h[0]),h=g=b}),"script"}),p.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){return p.globalEval(a),a}}}),p.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),p.ajaxTransport("script",function(a){if(a.crossDomain){var c,d=e.head||e.getElementsByTagName("head")[0]||e.documentElement;return{send:function(f,g){c=e.createElement("script"),c.async="async",a.scriptCharset&&(c.charset=a.scriptCharset),c.src=a.url,c.onload=c.onreadystatechange=function(a,e){if(e||!c.readyState||/loaded|complete/.test(c.readyState))c.onload=c.onreadystatechange=null,d&&c.parentNode&&d.removeChild(c),c=b,e||g(200,"success")},d.insertBefore(c,d.firstChild)},abort:function(){c&&c.onload(0,1)}}}});var cI,cJ=a.ActiveXObject?function(){for(var a in cI)cI[a](0,1)}:!1,cK=0;p.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&cL()||cM()}:cL,function(a){p.extend(p.support,{ajax:!!a,cors:!!a&&"withCredentials"in a})}(p.ajaxSettings.xhr()),p.support.ajax&&p.ajaxTransport(function(c){if(!c.crossDomain||p.support.cors){var d;return{send:function(e,f){var g,h,i=c.xhr();c.username?i.open(c.type,c.url,c.async,c.username,c.password):i.open(c.type,c.url,c.async);if(c.xhrFields)for(h in c.xhrFields)i[h]=c.xhrFields[h];c.mimeType&&i.overrideMimeType&&i.overrideMimeType(c.mimeType),!c.crossDomain&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(h in e)i.setRequestHeader(h,e[h])}catch(j){}i.send(c.hasContent&&c.data||null),d=function(a,e){var h,j,k,l,m;try{if(d&&(e||i.readyState===4)){d=b,g&&(i.onreadystatechange=p.noop,cJ&&delete cI[g]);if(e)i.readyState!==4&&i.abort();else{h=i.status,k=i.getAllResponseHeaders(),l={},m=i.responseXML,m&&m.documentElement&&(l.xml=m);try{l.text=i.responseText}catch(a){}try{j=i.statusText}catch(n){j=""}!h&&c.isLocal&&!c.crossDomain?h=l.text?200:404:h===1223&&(h=204)}}}catch(o){e||f(-1,o)}l&&f(h,j,l,k)},c.async?i.readyState===4?setTimeout(d,0):(g=++cK,cJ&&(cI||(cI={},p(a).unload(cJ)),cI[g]=d),i.onreadystatechange=d):d()},abort:function(){d&&d(0,1)}}}});var cN,cO,cP=/^(?:toggle|show|hide)$/,cQ=new RegExp("^(?:([-+])=|)("+q+")([a-z%]*)$","i"),cR=/queueHooks$/,cS=[cY],cT={"*":[function(a,b){var c,d,e=this.createTween(a,b),f=cQ.exec(b),g=e.cur(),h=+g||0,i=1,j=20;if(f){c=+f[2],d=f[3]||(p.cssNumber[a]?"":"px");if(d!=="px"&&h){h=p.css(e.elem,a,!0)||c||1;do i=i||".5",h=h/i,p.style(e.elem,a,h+d);while(i!==(i=e.cur()/g)&&i!==1&&--j)}e.unit=d,e.start=h,e.end=f[1]?h+(f[1]+1)*c:c}return e}]};p.Animation=p.extend(cW,{tweener:function(a,b){p.isFunction(a)?(b=a,a=["*"]):a=a.split(" ");var c,d=0,e=a.length;for(;d-1,j={},k={},l,m;i?(k=e.position(),l=k.top,m=k.left):(l=parseFloat(g)||0,m=parseFloat(h)||0),p.isFunction(b)&&(b=b.call(a,c,f)),b.top!=null&&(j.top=b.top-f.top+l),b.left!=null&&(j.left=b.left-f.left+m),"using"in b?b.using.call(a,j):e.css(j)}},p.fn.extend({position:function(){if(!this[0])return;var a=this[0],b=this.offsetParent(),c=this.offset(),d=c_.test(b[0].nodeName)?{top:0,left:0}:b.offset();return c.top-=parseFloat(p.css(a,"marginTop"))||0,c.left-=parseFloat(p.css(a,"marginLeft"))||0,d.top+=parseFloat(p.css(b[0],"borderTopWidth"))||0,d.left+=parseFloat(p.css(b[0],"borderLeftWidth"))||0,{top:c.top-d.top,left:c.left-d.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||e.body;while(a&&!c_.test(a.nodeName)&&p.css(a,"position")==="static")a=a.offsetParent;return a||e.body})}}),p.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(a,c){var d=/Y/.test(c);p.fn[a]=function(e){return p.access(this,function(a,e,f){var g=da(a);if(f===b)return g?c in g?g[c]:g.document.documentElement[e]:a[e];g?g.scrollTo(d?p(g).scrollLeft():f,d?f:p(g).scrollTop()):a[e]=f},a,e,arguments.length,null)}}),p.each({Height:"height",Width:"width"},function(a,c){p.each({padding:"inner"+a,content:c,"":"outer"+a},function(d,e){p.fn[e]=function(e,f){var g=arguments.length&&(d||typeof e!="boolean"),h=d||(e===!0||f===!0?"margin":"border");return p.access(this,function(c,d,e){var f;return p.isWindow(c)?c.document.documentElement["client"+a]:c.nodeType===9?(f=c.documentElement,Math.max(c.body["scroll"+a],f["scroll"+a],c.body["offset"+a],f["offset"+a],f["client"+a])):e===b?p.css(c,d,e,h):p.style(c,d,e,h)},c,g?e:b,g,null)}})}),a.jQuery=a.$=p,typeof define=="function"&&define.amd&&define.amd.jQuery&&define("jquery",[],function(){return p})})(window); \ No newline at end of file diff --git a/docs/api/2.11/lib/jquery.layout.js b/docs/api/2.11/lib/jquery.layout.js new file mode 100644 index 0000000..d5e008d --- /dev/null +++ b/docs/api/2.11/lib/jquery.layout.js @@ -0,0 +1,5486 @@ +/** + * @preserve jquery.layout 1.3.0 - Release Candidate 30.62 + * $Date: 2012-08-04 08:00:00 (Thu, 23 Aug 2012) $ + * $Rev: 303006 $ + * + * Copyright (c) 2012 + * Fabrizio Balliano (http://www.fabrizioballiano.net) + * Kevin Dalman (http://allpro.net) + * + * Dual licensed under the GPL (http://www.gnu.org/licenses/gpl.html) + * and MIT (http://www.opensource.org/licenses/mit-license.php) licenses. + * + * Changelog: http://layout.jquery-dev.net/changelog.cfm#1.3.0.rc30.62 + * NOTE: This is a short-term release to patch a couple of bugs. + * These bugs are listed as officially fixed in RC30.7, which will be released shortly. + * + * Docs: http://layout.jquery-dev.net/documentation.html + * Tips: http://layout.jquery-dev.net/tips.html + * Help: http://groups.google.com/group/jquery-ui-layout + */ + +/* JavaDoc Info: http://code.google.com/closure/compiler/docs/js-for-compiler.html + * {!Object} non-nullable type (never NULL) + * {?string} nullable type (sometimes NULL) - default for {Object} + * {number=} optional parameter + * {*} ALL types + */ + +// NOTE: For best readability, view with a fixed-width font and tabs equal to 4-chars + +;(function ($) { + +// alias Math methods - used a lot! +var min = Math.min +, max = Math.max +, round = Math.floor + +, isStr = function (v) { return $.type(v) === "string"; } + +, runPluginCallbacks = function (Instance, a_fn) { + if ($.isArray(a_fn)) + for (var i=0, c=a_fn.length; i
    ').appendTo("body"); + var d = { width: $c.width() - $c[0].clientWidth, height: $c.height() - $c[0].clientHeight }; + $c.remove(); + window.scrollbarWidth = d.width; + window.scrollbarHeight = d.height; + return dim.match(/^(width|height)$/) ? d[dim] : d; + } + + + /** + * Returns hash container 'display' and 'visibility' + * + * @see $.swap() - swaps CSS, runs callback, resets CSS + */ +, showInvisibly: function ($E, force) { + if ($E && $E.length && (force || $E.css('display') === "none")) { // only if not *already hidden* + var s = $E[0].style + // save ONLY the 'style' props because that is what we must restore + , CSS = { display: s.display || '', visibility: s.visibility || '' }; + // show element 'invisibly' so can be measured + $E.css({ display: "block", visibility: "hidden" }); + return CSS; + } + return {}; + } + + /** + * Returns data for setting size of an element (container or a pane). + * + * @see _create(), onWindowResize() for container, plus others for pane + * @return JSON Returns a hash of all dimensions: top, bottom, left, right, outerWidth, innerHeight, etc + */ +, getElementDimensions: function ($E) { + var + d = {} // dimensions hash + , x = d.css = {} // CSS hash + , i = {} // TEMP insets + , b, p // TEMP border, padding + , N = $.layout.cssNum + , off = $E.offset() + ; + d.offsetLeft = off.left; + d.offsetTop = off.top; + + $.each("Left,Right,Top,Bottom".split(","), function (idx, e) { // e = edge + b = x["border" + e] = $.layout.borderWidth($E, e); + p = x["padding"+ e] = $.layout.cssNum($E, "padding"+e); + i[e] = b + p; // total offset of content from outer side + d["inset"+ e] = p; // eg: insetLeft = paddingLeft + }); + + d.offsetWidth = $E.innerWidth(); // offsetWidth is used in calc when doing manual resize + d.offsetHeight = $E.innerHeight(); // ditto + d.outerWidth = $E.outerWidth(); + d.outerHeight = $E.outerHeight(); + d.innerWidth = max(0, d.outerWidth - i.Left - i.Right); + d.innerHeight = max(0, d.outerHeight - i.Top - i.Bottom); + + x.width = $E.width(); + x.height = $E.height(); + x.top = N($E,"top",true); + x.bottom = N($E,"bottom",true); + x.left = N($E,"left",true); + x.right = N($E,"right",true); + + //d.visible = $E.is(":visible");// && x.width > 0 && x.height > 0; + + return d; + } + +, getElementCSS: function ($E, list) { + var + CSS = {} + , style = $E[0].style + , props = list.split(",") + , sides = "Top,Bottom,Left,Right".split(",") + , attrs = "Color,Style,Width".split(",") + , p, s, a, i, j, k + ; + for (i=0; i < props.length; i++) { + p = props[i]; + if (p.match(/(border|padding|margin)$/)) + for (j=0; j < 4; j++) { + s = sides[j]; + if (p === "border") + for (k=0; k < 3; k++) { + a = attrs[k]; + CSS[p+s+a] = style[p+s+a]; + } + else + CSS[p+s] = style[p+s]; + } + else + CSS[p] = style[p]; + }; + return CSS + } + + /** + * Return the innerWidth for the current browser/doctype + * + * @see initPanes(), sizeMidPanes(), initHandles(), sizeHandles() + * @param {Array.} $E Must pass a jQuery object - first element is processed + * @param {number=} outerWidth (optional) Can pass a width, allowing calculations BEFORE element is resized + * @return {number} Returns the innerWidth of the elem by subtracting padding and borders + */ +, cssWidth: function ($E, outerWidth) { + // a 'calculated' outerHeight can be passed so borders and/or padding are removed if needed + if (outerWidth <= 0) return 0; + + if (!$.layout.browser.boxModel) return outerWidth; + + // strip border and padding from outerWidth to get CSS Width + var b = $.layout.borderWidth + , n = $.layout.cssNum + , W = outerWidth + - b($E, "Left") + - b($E, "Right") + - n($E, "paddingLeft") + - n($E, "paddingRight"); + + return max(0,W); + } + + /** + * Return the innerHeight for the current browser/doctype + * + * @see initPanes(), sizeMidPanes(), initHandles(), sizeHandles() + * @param {Array.} $E Must pass a jQuery object - first element is processed + * @param {number=} outerHeight (optional) Can pass a width, allowing calculations BEFORE element is resized + * @return {number} Returns the innerHeight of the elem by subtracting padding and borders + */ +, cssHeight: function ($E, outerHeight) { + // a 'calculated' outerHeight can be passed so borders and/or padding are removed if needed + if (outerHeight <= 0) return 0; + + if (!$.layout.browser.boxModel) return outerHeight; + + // strip border and padding from outerHeight to get CSS Height + var b = $.layout.borderWidth + , n = $.layout.cssNum + , H = outerHeight + - b($E, "Top") + - b($E, "Bottom") + - n($E, "paddingTop") + - n($E, "paddingBottom"); + + return max(0,H); + } + + /** + * Returns the 'current CSS numeric value' for a CSS property - 0 if property does not exist + * + * @see Called by many methods + * @param {Array.} $E Must pass a jQuery object - first element is processed + * @param {string} prop The name of the CSS property, eg: top, width, etc. + * @param {boolean=} [allowAuto=false] true = return 'auto' if that is value; false = return 0 + * @return {(string|number)} Usually used to get an integer value for position (top, left) or size (height, width) + */ +, cssNum: function ($E, prop, allowAuto) { + if (!$E.jquery) $E = $($E); + var CSS = $.layout.showInvisibly($E) + , p = $.css($E[0], prop, true) + , v = allowAuto && p=="auto" ? p : (parseInt(p, 10) || 0); + $E.css( CSS ); // RESET + return v; + } + +, borderWidth: function (el, side) { + if (el.jquery) el = el[0]; + var b = "border"+ side.substr(0,1).toUpperCase() + side.substr(1); // left => Left + return $.css(el, b+"Style", true) === "none" ? 0 : (parseInt($.css(el, b+"Width", true), 10) || 0); + } + + /** + * Mouse-tracking utility - FUTURE REFERENCE + * + * init: if (!window.mouse) { + * window.mouse = { x: 0, y: 0 }; + * $(document).mousemove( $.layout.trackMouse ); + * } + * + * @param {Object} evt + * +, trackMouse: function (evt) { + window.mouse = { x: evt.clientX, y: evt.clientY }; + } + */ + + /** + * SUBROUTINE for preventPrematureSlideClose option + * + * @param {Object} evt + * @param {Object=} el + */ +, isMouseOverElem: function (evt, el) { + var + $E = $(el || this) + , d = $E.offset() + , T = d.top + , L = d.left + , R = L + $E.outerWidth() + , B = T + $E.outerHeight() + , x = evt.pageX // evt.clientX ? + , y = evt.pageY // evt.clientY ? + ; + // if X & Y are < 0, probably means is over an open SELECT + return ($.layout.browser.msie && x < 0 && y < 0) || ((x >= L && x <= R) && (y >= T && y <= B)); + } + + /** + * Message/Logging Utility + * + * @example $.layout.msg("My message"); // log text + * @example $.layout.msg("My message", true); // alert text + * @example $.layout.msg({ foo: "bar" }, "Title"); // log hash-data, with custom title + * @example $.layout.msg({ foo: "bar" }, true, "Title", { sort: false }); -OR- + * @example $.layout.msg({ foo: "bar" }, "Title", { sort: false, display: true }); // alert hash-data + * + * @param {(Object|string)} info String message OR Hash/Array + * @param {(Boolean|string|Object)=} [popup=false] True means alert-box - can be skipped + * @param {(Object|string)=} [debugTitle=""] Title for Hash data - can be skipped + * @param {Object=} [debugOpts] Extra options for debug output + */ +, msg: function (info, popup, debugTitle, debugOpts) { + if ($.isPlainObject(info) && window.debugData) { + if (typeof popup === "string") { + debugOpts = debugTitle; + debugTitle = popup; + } + else if (typeof debugTitle === "object") { + debugOpts = debugTitle; + debugTitle = null; + } + var t = debugTitle || "log( )" + , o = $.extend({ sort: false, returnHTML: false, display: false }, debugOpts); + if (popup === true || o.display) + debugData( info, t, o ); + else if (window.console) + console.log(debugData( info, t, o )); + } + else if (popup) + alert(info); + else if (window.console) + console.log(info); + else { + var id = "#layoutLogger" + , $l = $(id); + if (!$l.length) + $l = createLog(); + $l.children("ul").append('
  • '+ info.replace(/\/g,">") +'
  • '); + } + + function createLog () { + var pos = $.support.fixedPosition ? 'fixed' : 'absolute' + , $e = $('
    ' + + '
    ' + + 'XLayout console.log
    ' + + '
      ' + + '
      ' + ).appendTo("body"); + $e.css('left', $(window).width() - $e.outerWidth() - 5) + if ($.ui.draggable) $e.draggable({ handle: ':first-child' }); + return $e; + }; + } + +}; + +// DEFAULT OPTIONS +$.layout.defaults = { +/* + * LAYOUT & LAYOUT-CONTAINER OPTIONS + * - none of these options are applicable to individual panes + */ + name: "" // Not required, but useful for buttons and used for the state-cookie +, containerSelector: "" // ONLY used when specifying a childOptions - to find container-element that is NOT directly-nested +, containerClass: "ui-layout-container" // layout-container element +, scrollToBookmarkOnLoad: true // after creating a layout, scroll to bookmark in URL (.../page.htm#myBookmark) +, resizeWithWindow: true // bind thisLayout.resizeAll() to the window.resize event +, resizeWithWindowDelay: 200 // delay calling resizeAll because makes window resizing very jerky +, resizeWithWindowMaxDelay: 0 // 0 = none - force resize every XX ms while window is being resized +, onresizeall_start: null // CALLBACK when resizeAll() STARTS - NOT pane-specific +, onresizeall_end: null // CALLBACK when resizeAll() ENDS - NOT pane-specific +, onload_start: null // CALLBACK when Layout inits - after options initialized, but before elements +, onload_end: null // CALLBACK when Layout inits - after EVERYTHING has been initialized +, onunload_start: null // CALLBACK when Layout is destroyed OR onWindowUnload +, onunload_end: null // CALLBACK when Layout is destroyed OR onWindowUnload +, initPanes: true // false = DO NOT initialize the panes onLoad - will init later +, showErrorMessages: true // enables fatal error messages to warn developers of common errors +, showDebugMessages: false // display console-and-alert debug msgs - IF this Layout version _has_ debugging code! +// Changing this zIndex value will cause other zIndex values to automatically change +, zIndex: null // the PANE zIndex - resizers and masks will be +1 +// DO NOT CHANGE the zIndex values below unless you clearly understand their relationships +, zIndexes: { // set _default_ z-index values here... + pane_normal: 0 // normal z-index for panes + , content_mask: 1 // applied to overlays used to mask content INSIDE panes during resizing + , resizer_normal: 2 // normal z-index for resizer-bars + , pane_sliding: 100 // applied to *BOTH* the pane and its resizer when a pane is 'slid open' + , pane_animate: 1000 // applied to the pane when being animated - not applied to the resizer + , resizer_drag: 10000 // applied to the CLONED resizer-bar when being 'dragged' + } +, errors: { + pane: "pane" // description of "layout pane element" - used only in error messages + , selector: "selector" // description of "jQuery-selector" - used only in error messages + , addButtonError: "Error Adding Button \n\nInvalid " + , containerMissing: "UI Layout Initialization Error\n\nThe specified layout-container does not exist." + , centerPaneMissing: "UI Layout Initialization Error\n\nThe center-pane element does not exist.\n\nThe center-pane is a required element." + , noContainerHeight: "UI Layout Initialization Warning\n\nThe layout-container \"CONTAINER\" has no height.\n\nTherefore the layout is 0-height and hence 'invisible'!" + , callbackError: "UI Layout Callback Error\n\nThe EVENT callback is not a valid function." + } +/* + * PANE DEFAULT SETTINGS + * - settings under the 'panes' key become the default settings for *all panes* + * - ALL pane-options can also be set specifically for each panes, which will override these 'default values' + */ +, panes: { // default options for 'all panes' - will be overridden by 'per-pane settings' + applyDemoStyles: false // NOTE: renamed from applyDefaultStyles for clarity + , closable: true // pane can open & close + , resizable: true // when open, pane can be resized + , slidable: true // when closed, pane can 'slide open' over other panes - closes on mouse-out + , initClosed: false // true = init pane as 'closed' + , initHidden: false // true = init pane as 'hidden' - no resizer-bar/spacing + // SELECTORS + //, paneSelector: "" // MUST be pane-specific - jQuery selector for pane + , contentSelector: ".ui-layout-content" // INNER div/element to auto-size so only it scrolls, not the entire pane! + , contentIgnoreSelector: ".ui-layout-ignore" // element(s) to 'ignore' when measuring 'content' + , findNestedContent: false // true = $P.find(contentSelector), false = $P.children(contentSelector) + // GENERIC ROOT-CLASSES - for auto-generated classNames + , paneClass: "ui-layout-pane" // Layout Pane + , resizerClass: "ui-layout-resizer" // Resizer Bar + , togglerClass: "ui-layout-toggler" // Toggler Button + , buttonClass: "ui-layout-button" // CUSTOM Buttons - eg: '[ui-layout-button]-toggle/-open/-close/-pin' + // ELEMENT SIZE & SPACING + //, size: 100 // MUST be pane-specific -initial size of pane + , minSize: 0 // when manually resizing a pane + , maxSize: 0 // ditto, 0 = no limit + , spacing_open: 6 // space between pane and adjacent panes - when pane is 'open' + , spacing_closed: 6 // ditto - when pane is 'closed' + , togglerLength_open: 50 // Length = WIDTH of toggler button on north/south sides - HEIGHT on east/west sides + , togglerLength_closed: 50 // 100% OR -1 means 'full height/width of resizer bar' - 0 means 'hidden' + , togglerAlign_open: "center" // top/left, bottom/right, center, OR... + , togglerAlign_closed: "center" // 1 => nn = offset from top/left, -1 => -nn == offset from bottom/right + , togglerContent_open: "" // text or HTML to put INSIDE the toggler + , togglerContent_closed: "" // ditto + // RESIZING OPTIONS + , resizerDblClickToggle: true // + , autoResize: true // IF size is 'auto' or a percentage, then recalc 'pixel size' whenever the layout resizes + , autoReopen: true // IF a pane was auto-closed due to noRoom, reopen it when there is room? False = leave it closed + , resizerDragOpacity: 1 // option for ui.draggable + //, resizerCursor: "" // MUST be pane-specific - cursor when over resizer-bar + , maskContents: false // true = add DIV-mask over-or-inside this pane so can 'drag' over IFRAMES + , maskObjects: false // true = add IFRAME-mask over-or-inside this pane to cover objects/applets - content-mask will overlay this mask + , maskZindex: null // will override zIndexes.content_mask if specified - not applicable to iframe-panes + , resizingGrid: false // grid size that the resizers will snap-to during resizing, eg: [20,20] + , livePaneResizing: false // true = LIVE Resizing as resizer is dragged + , liveContentResizing: false // true = re-measure header/footer heights as resizer is dragged + , liveResizingTolerance: 1 // how many px change before pane resizes, to control performance + // SLIDING OPTIONS + , sliderCursor: "pointer" // cursor when resizer-bar will trigger 'sliding' + , slideTrigger_open: "click" // click, dblclick, mouseenter + , slideTrigger_close: "mouseleave"// click, mouseleave + , slideDelay_open: 300 // applies only for mouseenter event - 0 = instant open + , slideDelay_close: 300 // applies only for mouseleave event (300ms is the minimum!) + , hideTogglerOnSlide: false // when pane is slid-open, should the toggler show? + , preventQuickSlideClose: $.layout.browser.webkit // Chrome triggers slideClosed as it is opening + , preventPrematureSlideClose: false // handle incorrect mouseleave trigger, like when over a SELECT-list in IE + // PANE-SPECIFIC TIPS & MESSAGES + , tips: { + Open: "Open" // eg: "Open Pane" + , Close: "Close" + , Resize: "Resize" + , Slide: "Slide Open" + , Pin: "Pin" + , Unpin: "Un-Pin" + , noRoomToOpen: "Not enough room to show this panel." // alert if user tries to open a pane that cannot + , minSizeWarning: "Panel has reached its minimum size" // displays in browser statusbar + , maxSizeWarning: "Panel has reached its maximum size" // ditto + } + // HOT-KEYS & MISC + , showOverflowOnHover: false // will bind allowOverflow() utility to pane.onMouseOver + , enableCursorHotkey: true // enabled 'cursor' hotkeys + //, customHotkey: "" // MUST be pane-specific - EITHER a charCode OR a character + , customHotkeyModifier: "SHIFT" // either 'SHIFT', 'CTRL' or 'CTRL+SHIFT' - NOT 'ALT' + // PANE ANIMATION + // NOTE: fxSss_open, fxSss_close & fxSss_size options (eg: fxName_open) are auto-generated if not passed + , fxName: "slide" // ('none' or blank), slide, drop, scale -- only relevant to 'open' & 'close', NOT 'size' + , fxSpeed: null // slow, normal, fast, 200, nnn - if passed, will OVERRIDE fxSettings.duration + , fxSettings: {} // can be passed, eg: { easing: "easeOutBounce", duration: 1500 } + , fxOpacityFix: true // tries to fix opacity in IE to restore anti-aliasing after animation + , animatePaneSizing: false // true = animate resizing after dragging resizer-bar OR sizePane() is called + /* NOTE: Action-specific FX options are auto-generated from the options above if not specifically set: + fxName_open: "slide" // 'Open' pane animation + fnName_close: "slide" // 'Close' pane animation + fxName_size: "slide" // 'Size' pane animation - when animatePaneSizing = true + fxSpeed_open: null + fxSpeed_close: null + fxSpeed_size: null + fxSettings_open: {} + fxSettings_close: {} + fxSettings_size: {} + */ + // CHILD/NESTED LAYOUTS + , childOptions: null // Layout-options for nested/child layout - even {} is valid as options + , initChildLayout: true // true = child layout will be created as soon as _this_ layout completes initialization + , destroyChildLayout: true // true = destroy child-layout if this pane is destroyed + , resizeChildLayout: true // true = trigger child-layout.resizeAll() when this pane is resized + // EVENT TRIGGERING + , triggerEventsOnLoad: false // true = trigger onopen OR onclose callbacks when layout initializes + , triggerEventsDuringLiveResize: true // true = trigger onresize callback REPEATEDLY if livePaneResizing==true + // PANE CALLBACKS + , onshow_start: null // CALLBACK when pane STARTS to Show - BEFORE onopen/onhide_start + , onshow_end: null // CALLBACK when pane ENDS being Shown - AFTER onopen/onhide_end + , onhide_start: null // CALLBACK when pane STARTS to Close - BEFORE onclose_start + , onhide_end: null // CALLBACK when pane ENDS being Closed - AFTER onclose_end + , onopen_start: null // CALLBACK when pane STARTS to Open + , onopen_end: null // CALLBACK when pane ENDS being Opened + , onclose_start: null // CALLBACK when pane STARTS to Close + , onclose_end: null // CALLBACK when pane ENDS being Closed + , onresize_start: null // CALLBACK when pane STARTS being Resized ***FOR ANY REASON*** + , onresize_end: null // CALLBACK when pane ENDS being Resized ***FOR ANY REASON*** + , onsizecontent_start: null // CALLBACK when sizing of content-element STARTS + , onsizecontent_end: null // CALLBACK when sizing of content-element ENDS + , onswap_start: null // CALLBACK when pane STARTS to Swap + , onswap_end: null // CALLBACK when pane ENDS being Swapped + , ondrag_start: null // CALLBACK when pane STARTS being ***MANUALLY*** Resized + , ondrag_end: null // CALLBACK when pane ENDS being ***MANUALLY*** Resized + } +/* + * PANE-SPECIFIC SETTINGS + * - options listed below MUST be specified per-pane - they CANNOT be set under 'panes' + * - all options under the 'panes' key can also be set specifically for any pane + * - most options under the 'panes' key apply only to 'border-panes' - NOT the center-pane + */ +, north: { + paneSelector: ".ui-layout-north" + , size: "auto" // eg: "auto", "30%", .30, 200 + , resizerCursor: "n-resize" // custom = url(myCursor.cur) + , customHotkey: "" // EITHER a charCode (43) OR a character ("o") + } +, south: { + paneSelector: ".ui-layout-south" + , size: "auto" + , resizerCursor: "s-resize" + , customHotkey: "" + } +, east: { + paneSelector: ".ui-layout-east" + , size: 200 + , resizerCursor: "e-resize" + , customHotkey: "" + } +, west: { + paneSelector: ".ui-layout-west" + , size: 200 + , resizerCursor: "w-resize" + , customHotkey: "" + } +, center: { + paneSelector: ".ui-layout-center" + , minWidth: 0 + , minHeight: 0 + } +}; + +$.layout.optionsMap = { + // layout/global options - NOT pane-options + layout: ("stateManagement,effects,zIndexes,errors," + + "name,zIndex,scrollToBookmarkOnLoad,showErrorMessages," + + "resizeWithWindow,resizeWithWindowDelay,resizeWithWindowMaxDelay," + + "onresizeall,onresizeall_start,onresizeall_end,onload,onunload").split(",") +// borderPanes: [ ALL options that are NOT specified as 'layout' ] + // default.panes options that apply to the center-pane (most options apply _only_ to border-panes) +, center: ("paneClass,contentSelector,contentIgnoreSelector,findNestedContent,applyDemoStyles,triggerEventsOnLoad," + + "showOverflowOnHover,maskContents,maskObjects,liveContentResizing," + + "childOptions,initChildLayout,resizeChildLayout,destroyChildLayout," + + "onresize,onresize_start,onresize_end,onsizecontent,onsizecontent_start,onsizecontent_end").split(",") + // options that MUST be specifically set 'per-pane' - CANNOT set in the panes (defaults) key +, noDefault: ("paneSelector,resizerCursor,customHotkey").split(",") +}; + +/** + * Processes options passed in converts flat-format data into subkey (JSON) format + * In flat-format, subkeys are _currently_ separated with 2 underscores, like north__optName + * Plugins may also call this method so they can transform their own data + * + * @param {!Object} hash Data/options passed by user - may be a single level or nested levels + * @return {Object} Returns hash of minWidth & minHeight + */ +$.layout.transformData = function (hash) { + var json = { panes: {}, center: {} } // init return object + , data, branch, optKey, keys, key, val, i, c; + + if (typeof hash !== "object") return json; // no options passed + + // convert all 'flat-keys' to 'sub-key' format + for (optKey in hash) { + branch = json; + data = $.layout.optionsMap.layout; + val = hash[ optKey ]; + keys = optKey.split("__"); // eg: west__size or north__fxSettings__duration + c = keys.length - 1; + // convert underscore-delimited to subkeys + for (i=0; i <= c; i++) { + key = keys[i]; + if (i === c) + branch[key] = val; + else if (!branch[key]) + branch[key] = {}; // create the subkey + // recurse to sub-key for next loop - if not done + branch = branch[key]; + } + } + + return json; +}; + +// INTERNAL CONFIG DATA - DO NOT CHANGE THIS! +$.layout.backwardCompatibility = { + // data used by renameOldOptions() + map: { + // OLD Option Name: NEW Option Name + applyDefaultStyles: "applyDemoStyles" + , resizeNestedLayout: "resizeChildLayout" + , resizeWhileDragging: "livePaneResizing" + , resizeContentWhileDragging: "liveContentResizing" + , triggerEventsWhileDragging: "triggerEventsDuringLiveResize" + , maskIframesOnResize: "maskContents" + , useStateCookie: "stateManagement.enabled" + , "cookie.autoLoad": "stateManagement.autoLoad" + , "cookie.autoSave": "stateManagement.autoSave" + , "cookie.keys": "stateManagement.stateKeys" + , "cookie.name": "stateManagement.cookie.name" + , "cookie.domain": "stateManagement.cookie.domain" + , "cookie.path": "stateManagement.cookie.path" + , "cookie.expires": "stateManagement.cookie.expires" + , "cookie.secure": "stateManagement.cookie.secure" + // OLD Language options + , noRoomToOpenTip: "tips.noRoomToOpen" + , togglerTip_open: "tips.Close" // open = Close + , togglerTip_closed: "tips.Open" // closed = Open + , resizerTip: "tips.Resize" + , sliderTip: "tips.Slide" + } + +/** +* @param {Object} opts +*/ +, renameOptions: function (opts) { + var map = $.layout.backwardCompatibility.map + , oldData, newData, value + ; + for (var itemPath in map) { + oldData = getBranch( itemPath ); + value = oldData.branch[ oldData.key ]; + if (value !== undefined) { + newData = getBranch( map[itemPath], true ); + newData.branch[ newData.key ] = value; + delete oldData.branch[ oldData.key ]; + } + } + + /** + * @param {string} path + * @param {boolean=} [create=false] Create path if does not exist + */ + function getBranch (path, create) { + var a = path.split(".") // split keys into array + , c = a.length - 1 + , D = { branch: opts, key: a[c] } // init branch at top & set key (last item) + , i = 0, k, undef; + for (; i 0) { + if (autoHide && $E.data('autoHidden') && $E.innerHeight() > 0) { + $E.show().data('autoHidden', false); + if (!browser.mozilla) // FireFox refreshes iframes - IE does not + // make hidden, then visible to 'refresh' display after animation + $E.css(_c.hidden).css(_c.visible); + } + } + else if (autoHide && !$E.data('autoHidden')) + $E.hide().data('autoHidden', true); + } + + /** + * @param {(string|!Object)} el + * @param {number=} outerHeight + * @param {boolean=} [autoHide=false] + */ +, setOuterHeight = function (el, outerHeight, autoHide) { + var $E = el, h; + if (isStr(el)) $E = $Ps[el]; // west + else if (!el.jquery) $E = $(el); + h = cssH($E, outerHeight); + $E.css({ height: h, visibility: "visible" }); // may have been 'hidden' by sizeContent + if (h > 0 && $E.innerWidth() > 0) { + if (autoHide && $E.data('autoHidden')) { + $E.show().data('autoHidden', false); + if (!browser.mozilla) // FireFox refreshes iframes - IE does not + $E.css(_c.hidden).css(_c.visible); + } + } + else if (autoHide && !$E.data('autoHidden')) + $E.hide().data('autoHidden', true); + } + + /** + * @param {(string|!Object)} el + * @param {number=} outerSize + * @param {boolean=} [autoHide=false] + */ +, setOuterSize = function (el, outerSize, autoHide) { + if (_c[pane].dir=="horz") // pane = north or south + setOuterHeight(el, outerSize, autoHide); + else // pane = east or west + setOuterWidth(el, outerSize, autoHide); + } + + + /** + * Converts any 'size' params to a pixel/integer size, if not already + * If 'auto' or a decimal/percentage is passed as 'size', a pixel-size is calculated + * + /** + * @param {string} pane + * @param {(string|number)=} size + * @param {string=} [dir] + * @return {number} + */ +, _parseSize = function (pane, size, dir) { + if (!dir) dir = _c[pane].dir; + + if (isStr(size) && size.match(/%/)) + size = (size === '100%') ? -1 : parseInt(size, 10) / 100; // convert % to decimal + + if (size === 0) + return 0; + else if (size >= 1) + return parseInt(size, 10); + + var o = options, avail = 0; + if (dir=="horz") // north or south or center.minHeight + avail = sC.innerHeight - ($Ps.north ? o.north.spacing_open : 0) - ($Ps.south ? o.south.spacing_open : 0); + else if (dir=="vert") // east or west or center.minWidth + avail = sC.innerWidth - ($Ps.west ? o.west.spacing_open : 0) - ($Ps.east ? o.east.spacing_open : 0); + + if (size === -1) // -1 == 100% + return avail; + else if (size > 0) // percentage, eg: .25 + return round(avail * size); + else if (pane=="center") + return 0; + else { // size < 0 || size=='auto' || size==Missing || size==Invalid + // auto-size the pane + var dim = (dir === "horz" ? "height" : "width") + , $P = $Ps[pane] + , $C = dim === 'height' ? $Cs[pane] : false + , vis = $.layout.showInvisibly($P) // show pane invisibly if hidden + , szP = $P.css(dim) // SAVE current pane size + , szC = $C ? $C.css(dim) : 0 // SAVE current content size + ; + $P.css(dim, "auto"); + if ($C) $C.css(dim, "auto"); + size = (dim === "height") ? $P.outerHeight() : $P.outerWidth(); // MEASURE + $P.css(dim, szP).css(vis); // RESET size & visibility + if ($C) $C.css(dim, szC); + return size; + } + } + + /** + * Calculates current 'size' (outer-width or outer-height) of a border-pane - optionally with 'pane-spacing' added + * + * @param {(string|!Object)} pane + * @param {boolean=} [inclSpace=false] + * @return {number} Returns EITHER Width for east/west panes OR Height for north/south panes + */ +, getPaneSize = function (pane, inclSpace) { + var + $P = $Ps[pane] + , o = options[pane] + , s = state[pane] + , oSp = (inclSpace ? o.spacing_open : 0) + , cSp = (inclSpace ? o.spacing_closed : 0) + ; + if (!$P || s.isHidden) + return 0; + else if (s.isClosed || (s.isSliding && inclSpace)) + return cSp; + else if (_c[pane].dir === "horz") + return $P.outerHeight() + oSp; + else // dir === "vert" + return $P.outerWidth() + oSp; + } + + /** + * Calculate min/max pane dimensions and limits for resizing + * + * @param {string} pane + * @param {boolean=} [slide=false] + */ +, setSizeLimits = function (pane, slide) { + if (!isInitialized()) return; + var + o = options[pane] + , s = state[pane] + , c = _c[pane] + , dir = c.dir + , side = c.side.toLowerCase() + , type = c.sizeType.toLowerCase() + , isSliding = (slide != undefined ? slide : s.isSliding) // only open() passes 'slide' param + , $P = $Ps[pane] + , paneSpacing = o.spacing_open + // measure the pane on the *opposite side* from this pane + , altPane = _c.oppositeEdge[pane] + , altS = state[altPane] + , $altP = $Ps[altPane] + , altPaneSize = (!$altP || altS.isVisible===false || altS.isSliding ? 0 : (dir=="horz" ? $altP.outerHeight() : $altP.outerWidth())) + , altPaneSpacing = ((!$altP || altS.isHidden ? 0 : options[altPane][ altS.isClosed !== false ? "spacing_closed" : "spacing_open" ]) || 0) + // limitSize prevents this pane from 'overlapping' opposite pane + , containerSize = (dir=="horz" ? sC.innerHeight : sC.innerWidth) + , minCenterDims = cssMinDims("center") + , minCenterSize = dir=="horz" ? max(options.center.minHeight, minCenterDims.minHeight) : max(options.center.minWidth, minCenterDims.minWidth) + // if pane is 'sliding', then ignore center and alt-pane sizes - because 'overlays' them + , limitSize = (containerSize - paneSpacing - (isSliding ? 0 : (_parseSize("center", minCenterSize, dir) + altPaneSize + altPaneSpacing))) + , minSize = s.minSize = max( _parseSize(pane, o.minSize), cssMinDims(pane).minSize ) + , maxSize = s.maxSize = min( (o.maxSize ? _parseSize(pane, o.maxSize) : 100000), limitSize ) + , r = s.resizerPosition = {} // used to set resizing limits + , top = sC.insetTop + , left = sC.insetLeft + , W = sC.innerWidth + , H = sC.innerHeight + , rW = o.spacing_open // subtract resizer-width to get top/left position for south/east + ; + switch (pane) { + case "north": r.min = top + minSize; + r.max = top + maxSize; + break; + case "west": r.min = left + minSize; + r.max = left + maxSize; + break; + case "south": r.min = top + H - maxSize - rW; + r.max = top + H - minSize - rW; + break; + case "east": r.min = left + W - maxSize - rW; + r.max = left + W - minSize - rW; + break; + }; + } + + /** + * Returns data for setting the size/position of center pane. Also used to set Height for east/west panes + * + * @return JSON Returns a hash of all dimensions: top, bottom, left, right, (outer) width and (outer) height + */ +, calcNewCenterPaneDims = function () { + var d = { + top: getPaneSize("north", true) // true = include 'spacing' value for pane + , bottom: getPaneSize("south", true) + , left: getPaneSize("west", true) + , right: getPaneSize("east", true) + , width: 0 + , height: 0 + }; + + // NOTE: sC = state.container + // calc center-pane outer dimensions + d.width = sC.innerWidth - d.left - d.right; // outerWidth + d.height = sC.innerHeight - d.bottom - d.top; // outerHeight + // add the 'container border/padding' to get final positions relative to the container + d.top += sC.insetTop; + d.bottom += sC.insetBottom; + d.left += sC.insetLeft; + d.right += sC.insetRight; + + return d; + } + + + /** + * @param {!Object} el + * @param {boolean=} [allStates=false] + */ +, getHoverClasses = function (el, allStates) { + var + $El = $(el) + , type = $El.data("layoutRole") + , pane = $El.data("layoutEdge") + , o = options[pane] + , root = o[type +"Class"] + , _pane = "-"+ pane // eg: "-west" + , _open = "-open" + , _closed = "-closed" + , _slide = "-sliding" + , _hover = "-hover " // NOTE the trailing space + , _state = $El.hasClass(root+_closed) ? _closed : _open + , _alt = _state === _closed ? _open : _closed + , classes = (root+_hover) + (root+_pane+_hover) + (root+_state+_hover) + (root+_pane+_state+_hover) + ; + if (allStates) // when 'removing' classes, also remove alternate-state classes + classes += (root+_alt+_hover) + (root+_pane+_alt+_hover); + + if (type=="resizer" && $El.hasClass(root+_slide)) + classes += (root+_slide+_hover) + (root+_pane+_slide+_hover); + + return $.trim(classes); + } +, addHover = function (evt, el) { + var $E = $(el || this); + if (evt && $E.data("layoutRole") === "toggler") + evt.stopPropagation(); // prevent triggering 'slide' on Resizer-bar + $E.addClass( getHoverClasses($E) ); + } +, removeHover = function (evt, el) { + var $E = $(el || this); + $E.removeClass( getHoverClasses($E, true) ); + } + +, onResizerEnter = function (evt) { // ALSO called by toggler.mouseenter + if ($.fn.disableSelection) + $("body").disableSelection(); + } +, onResizerLeave = function (evt, el) { + var + e = el || this // el is only passed when called by the timer + , pane = $(e).data("layoutEdge") + , name = pane +"ResizerLeave" + ; + timer.clear(pane+"_openSlider"); // cancel slideOpen timer, if set + timer.clear(name); // cancel enableSelection timer - may re/set below + // this method calls itself on a timer because it needs to allow + // enough time for dragging to kick-in and set the isResizing flag + // dragging has a 100ms delay set, so this delay must be >100 + if (!el) // 1st call - mouseleave event + timer.set(name, function(){ onResizerLeave(evt, e); }, 200); + // if user is resizing, then dragStop will enableSelection(), so can skip it here + else if (!state[pane].isResizing && $.fn.enableSelection) // 2nd call - by timer + $("body").enableSelection(); + } + +/* + * ########################### + * INITIALIZATION METHODS + * ########################### + */ + + /** + * Initialize the layout - called automatically whenever an instance of layout is created + * + * @see none - triggered onInit + * @return mixed true = fully initialized | false = panes not initialized (yet) | 'cancel' = abort + */ +, _create = function () { + // initialize config/options + initOptions(); + var o = options; + + // TEMP state so isInitialized returns true during init process + state.creatingLayout = true; + + // init plugins for this layout, if there are any (eg: stateManagement) + runPluginCallbacks( Instance, $.layout.onCreate ); + + // options & state have been initialized, so now run beforeLoad callback + // onload will CANCEL layout creation if it returns false + if (false === _runCallbacks("onload_start")) + return 'cancel'; + + // initialize the container element + _initContainer(); + + // bind hotkey function - keyDown - if required + initHotkeys(); + + // bind window.onunload + $(window).bind("unload."+ sID, unload); + + // init plugins for this layout, if there are any (eg: customButtons) + runPluginCallbacks( Instance, $.layout.onLoad ); + + // if layout elements are hidden, then layout WILL NOT complete initialization! + // initLayoutElements will set initialized=true and run the onload callback IF successful + if (o.initPanes) _initLayoutElements(); + + delete state.creatingLayout; + + return state.initialized; + } + + /** + * Initialize the layout IF not already + * + * @see All methods in Instance run this test + * @return boolean true = layoutElements have been initialized | false = panes are not initialized (yet) + */ +, isInitialized = function () { + if (state.initialized || state.creatingLayout) return true; // already initialized + else return _initLayoutElements(); // try to init panes NOW + } + + /** + * Initialize the layout - called automatically whenever an instance of layout is created + * + * @see _create() & isInitialized + * @return An object pointer to the instance created + */ +, _initLayoutElements = function (retry) { + // initialize config/options + var o = options; + + // CANNOT init panes inside a hidden container! + if (!$N.is(":visible")) { + // handle Chrome bug where popup window 'has no height' + // if layout is BODY element, try again in 50ms + // SEE: http://layout.jquery-dev.net/samples/test_popup_window.html + if ( !retry && browser.webkit && $N[0].tagName === "BODY" ) + setTimeout(function(){ _initLayoutElements(true); }, 50); + return false; + } + + // a center pane is required, so make sure it exists + if (!getPane("center").length) { + return _log( o.errors.centerPaneMissing ); + } + + // TEMP state so isInitialized returns true during init process + state.creatingLayout = true; + + // update Container dims + $.extend(sC, elDims( $N )); + + // initialize all layout elements + initPanes(); // size & position panes - calls initHandles() - which calls initResizable() + + if (o.scrollToBookmarkOnLoad) { + var l = self.location; + if (l.hash) l.replace( l.hash ); // scrollTo Bookmark + } + + // check to see if this layout 'nested' inside a pane + if (Instance.hasParentLayout) + o.resizeWithWindow = false; + // bind resizeAll() for 'this layout instance' to window.resize event + else if (o.resizeWithWindow) + $(window).bind("resize."+ sID, windowResize); + + delete state.creatingLayout; + state.initialized = true; + + // init plugins for this layout, if there are any + runPluginCallbacks( Instance, $.layout.onReady ); + + // now run the onload callback, if exists + _runCallbacks("onload_end"); + + return true; // elements initialized successfully + } + + /** + * Initialize nested layouts - called when _initLayoutElements completes + * + * NOT CURRENTLY USED + * + * @see _initLayoutElements + * @return An object pointer to the instance created + */ +, _initChildLayouts = function () { + $.each(_c.allPanes, function (idx, pane) { + if (options[pane].initChildLayout) + createChildLayout( pane ); + }); + } + + /** + * Initialize nested layouts for a specific pane - can optionally pass layout-options + * + * @see _initChildLayouts + * @param {string|Object} evt_or_pane The pane being opened, ie: north, south, east, or west + * @param {Object=} [opts] Layout-options - if passed, will OVERRRIDE options[pane].childOptions + * @return An object pointer to the layout instance created - or null + */ +, createChildLayout = function (evt_or_pane, opts) { + var pane = evtPane.call(this, evt_or_pane) + , $P = $Ps[pane] + , C = children + ; + if ($P) { + var $C = $Cs[pane] + , o = opts || options[pane].childOptions + , d = "layout" + // determine which element is supposed to be the 'child container' + // if pane has a 'containerSelector' OR a 'content-div', use those instead of the pane + , $Cont = o.containerSelector ? $P.find( o.containerSelector ) : ($C || $P) + , containerFound = $Cont.length + // see if a child-layout ALREADY exists on this element + , child = containerFound ? (C[pane] = $Cont.data(d) || null) : null + ; + // if no layout exists, but childOptions are set, try to create the layout now + if (!child && containerFound && o) + child = C[pane] = $Cont.eq(0).layout(o) || null; + if (child) + child.hasParentLayout = true; // set parent-flag in child + } + Instance[pane].child = C[pane]; // ALWAYS set pane-object pointer, even if null + } + +, windowResize = function () { + var delay = Number(options.resizeWithWindowDelay); + if (delay < 10) delay = 100; // MUST have a delay! + // resizing uses a delay-loop because the resize event fires repeatly - except in FF, but delay anyway + timer.clear("winResize"); // if already running + timer.set("winResize", function(){ + timer.clear("winResize"); + timer.clear("winResizeRepeater"); + var dims = elDims( $N ); + // only trigger resizeAll() if container has changed size + if (dims.innerWidth !== sC.innerWidth || dims.innerHeight !== sC.innerHeight) + resizeAll(); + }, delay); + // ALSO set fixed-delay timer, if not already running + if (!timer.data["winResizeRepeater"]) setWindowResizeRepeater(); + } + +, setWindowResizeRepeater = function () { + var delay = Number(options.resizeWithWindowMaxDelay); + if (delay > 0) + timer.set("winResizeRepeater", function(){ setWindowResizeRepeater(); resizeAll(); }, delay); + } + +, unload = function () { + var o = options; + + _runCallbacks("onunload_start"); + + // trigger plugin callabacks for this layout (eg: stateManagement) + runPluginCallbacks( Instance, $.layout.onUnload ); + + _runCallbacks("onunload_end"); + } + + /** + * Validate and initialize container CSS and events + * + * @see _create() + */ +, _initContainer = function () { + var + N = $N[0] + , tag = sC.tagName = N.tagName + , id = sC.id = N.id + , cls = sC.className = N.className + , o = options + , name = o.name + , fullPage= (tag === "BODY") + , props = "overflow,position,margin,padding,border" + , css = "layoutCSS" + , CSS = {} + , hid = "hidden" // used A LOT! + // see if this container is a 'pane' inside an outer-layout + , parent = $N.data("parentLayout") // parent-layout Instance + , pane = $N.data("layoutEdge") // pane-name in parent-layout + , isChild = parent && pane + ; + // sC -> state.container + sC.selector = $N.selector.split(".slice")[0]; + sC.ref = (o.name ? o.name +' layout / ' : '') + tag + (id ? "#"+id : cls ? '.['+cls+']' : ''); // used in messages + + $N .data({ + layout: Instance + , layoutContainer: sID // FLAG to indicate this is a layout-container - contains unique internal ID + }) + .addClass(o.containerClass) + ; + var layoutMethods = { + destroy: '' + , initPanes: '' + , resizeAll: 'resizeAll' + , resize: 'resizeAll' + }; + // loop hash and bind all methods - include layoutID namespacing + for (name in layoutMethods) { + $N.bind("layout"+ name.toLowerCase() +"."+ sID, Instance[ layoutMethods[name] || name ]); + } + + // if this container is another layout's 'pane', then set child/parent pointers + if (isChild) { + // update parent flag + Instance.hasParentLayout = true; + // set pointers to THIS child-layout (Instance) in parent-layout + // NOTE: parent.PANE.child is an ALIAS to parent.children.PANE + parent[pane].child = parent.children[pane] = $N.data("layout"); + } + + // SAVE original container CSS for use in destroy() + if (!$N.data(css)) { + // handle props like overflow different for BODY & HTML - has 'system default' values + if (fullPage) { + CSS = $.extend( elCSS($N, props), { + height: $N.css("height") + , overflow: $N.css("overflow") + , overflowX: $N.css("overflowX") + , overflowY: $N.css("overflowY") + }); + // ALSO SAVE CSS + var $H = $("html"); + $H.data(css, { + height: "auto" // FF would return a fixed px-size! + , overflow: $H.css("overflow") + , overflowX: $H.css("overflowX") + , overflowY: $H.css("overflowY") + }); + } + else // handle props normally for non-body elements + CSS = elCSS($N, props+",top,bottom,left,right,width,height,overflow,overflowX,overflowY"); + + $N.data(css, CSS); + } + + try { // format html/body if this is a full page layout + if (fullPage) { + $("html").css({ + height: "100%" + , overflow: hid + , overflowX: hid + , overflowY: hid + }); + $("body").css({ + position: "relative" + , height: "100%" + , overflow: hid + , overflowX: hid + , overflowY: hid + , margin: 0 + , padding: 0 // TODO: test whether body-padding could be handled? + , border: "none" // a body-border creates problems because it cannot be measured! + }); + + // set current layout-container dimensions + $.extend(sC, elDims( $N )); + } + else { // set required CSS for overflow and position + // ENSURE container will not 'scroll' + CSS = { overflow: hid, overflowX: hid, overflowY: hid } + var + p = $N.css("position") + , h = $N.css("height") + ; + // if this is a NESTED layout, then container/outer-pane ALREADY has position and height + if (!isChild) { + if (!p || !p.match(/fixed|absolute|relative/)) + CSS.position = "relative"; // container MUST have a 'position' + /* + if (!h || h=="auto") + CSS.height = "100%"; // container MUST have a 'height' + */ + } + $N.css( CSS ); + + // set current layout-container dimensions + if ( $N.is(":visible") ) { + $.extend(sC, elDims( $N )); + if (sC.innerHeight < 1) + _log( o.errors.noContainerHeight.replace(/CONTAINER/, sC.ref) ); + } + } + } catch (ex) {} + } + + /** + * Bind layout hotkeys - if options enabled + * + * @see _create() and addPane() + * @param {string=} [panes=""] The edge(s) to process + */ +, initHotkeys = function (panes) { + panes = panes ? panes.split(",") : _c.borderPanes; + // bind keyDown to capture hotkeys, if option enabled for ANY pane + $.each(panes, function (i, pane) { + var o = options[pane]; + if (o.enableCursorHotkey || o.customHotkey) { + $(document).bind("keydown."+ sID, keyDown); // only need to bind this ONCE + return false; // BREAK - binding was done + } + }); + } + + /** + * Build final OPTIONS data + * + * @see _create() + */ +, initOptions = function () { + var data, d, pane, key, val, i, c, o; + + // reprocess user's layout-options to have correct options sub-key structure + opts = $.layout.transformData( opts ); // panes = default subkey + + // auto-rename old options for backward compatibility + opts = $.layout.backwardCompatibility.renameAllOptions( opts ); + + // if user-options has 'panes' key (pane-defaults), clean it... + if (!$.isEmptyObject(opts.panes)) { + // REMOVE any pane-defaults that MUST be set per-pane + data = $.layout.optionsMap.noDefault; + for (i=0, c=data.length; i 0) { + z.pane_normal = zo; + z.content_mask = max(zo+1, z.content_mask); // MIN = +1 + z.resizer_normal = max(zo+2, z.resizer_normal); // MIN = +2 + } + + // DELETE 'panes' key now that we are done - values were copied to EACH pane + delete options.panes; + + + function createFxOptions ( pane ) { + var o = options[pane] + , d = options.panes; + // ensure fxSettings key to avoid errors + if (!o.fxSettings) o.fxSettings = {}; + if (!d.fxSettings) d.fxSettings = {}; + + $.each(["_open","_close","_size"], function (i,n) { + var + sName = "fxName"+ n + , sSpeed = "fxSpeed"+ n + , sSettings = "fxSettings"+ n + // recalculate fxName according to specificity rules + , fxName = o[sName] = + o[sName] // options.west.fxName_open + || d[sName] // options.panes.fxName_open + || o.fxName // options.west.fxName + || d.fxName // options.panes.fxName + || "none" // MEANS $.layout.defaults.panes.fxName == "" || false || null || 0 + ; + // validate fxName to ensure is valid effect - MUST have effect-config data in options.effects + if (fxName === "none" || !$.effects || !$.effects[fxName] || !options.effects[fxName]) + fxName = o[sName] = "none"; // effect not loaded OR unrecognized fxName + + // set vars for effects subkeys to simplify logic + var fx = options.effects[fxName] || {} // effects.slide + , fx_all = fx.all || null // effects.slide.all + , fx_pane = fx[pane] || null // effects.slide.west + ; + // create fxSpeed[_open|_close|_size] + o[sSpeed] = + o[sSpeed] // options.west.fxSpeed_open + || d[sSpeed] // options.west.fxSpeed_open + || o.fxSpeed // options.west.fxSpeed + || d.fxSpeed // options.panes.fxSpeed + || null // DEFAULT - let fxSetting.duration control speed + ; + // create fxSettings[_open|_close|_size] + o[sSettings] = $.extend( + true + , {} + , fx_all // effects.slide.all + , fx_pane // effects.slide.west + , d.fxSettings // options.panes.fxSettings + , o.fxSettings // options.west.fxSettings + , d[sSettings] // options.panes.fxSettings_open + , o[sSettings] // options.west.fxSettings_open + ); + }); + + // DONE creating action-specific-settings for this pane, + // so DELETE generic options - are no longer meaningful + delete o.fxName; + delete o.fxSpeed; + delete o.fxSettings; + } + } + + /** + * Initialize module objects, styling, size and position for all panes + * + * @see _initElements() + * @param {string} pane The pane to process + */ +, getPane = function (pane) { + var sel = options[pane].paneSelector + if (sel.substr(0,1)==="#") // ID selector + // NOTE: elements selected 'by ID' DO NOT have to be 'children' + return $N.find(sel).eq(0); + else { // class or other selector + var $P = $N.children(sel).eq(0); + // look for the pane nested inside a 'form' element + return $P.length ? $P : $N.children("form:first").children(sel).eq(0); + } + } + +, initPanes = function (evt) { + // stopPropagation if called by trigger("layoutinitpanes") - use evtPane utility + evtPane(evt); + + // NOTE: do north & south FIRST so we can measure their height - do center LAST + $.each(_c.allPanes, function (idx, pane) { + addPane( pane, true ); + }); + + // init the pane-handles NOW in case we have to hide or close the pane below + initHandles(); + + // now that all panes have been initialized and initially-sized, + // make sure there is really enough space available for each pane + $.each(_c.borderPanes, function (i, pane) { + if ($Ps[pane] && state[pane].isVisible) { // pane is OPEN + setSizeLimits(pane); + makePaneFit(pane); // pane may be Closed, Hidden or Resized by makePaneFit() + } + }); + // size center-pane AGAIN in case we 'closed' a border-pane in loop above + sizeMidPanes("center"); + + // Chrome/Webkit sometimes fires callbacks BEFORE it completes resizing! + // Before RC30.3, there was a 10ms delay here, but that caused layout + // to load asynchrously, which is BAD, so try skipping delay for now + + // process pane contents and callbacks, and init/resize child-layout if exists + $.each(_c.allPanes, function (i, pane) { + var o = options[pane]; + if ($Ps[pane]) { + if (state[pane].isVisible) { // pane is OPEN + sizeContent(pane); + // trigger pane.onResize if triggerEventsOnLoad = true + if (o.triggerEventsOnLoad) + _runCallbacks("onresize_end", pane); + else // automatic if onresize called, otherwise call it specifically + // resize child - IF inner-layout already exists (created before this layout) + resizeChildLayout(pane); + } + // init childLayout - even if pane is not visible + if (o.initChildLayout && o.childOptions) + createChildLayout(pane); + } + }); + } + + /** + * Add a pane to the layout - subroutine of initPanes() + * + * @see initPanes() + * @param {string} pane The pane to process + * @param {boolean=} [force=false] Size content after init + */ +, addPane = function (pane, force) { + if (!force && !isInitialized()) return; + var + o = options[pane] + , s = state[pane] + , c = _c[pane] + , fx = s.fx + , dir = c.dir + , spacing = o.spacing_open || 0 + , isCenter = (pane === "center") + , CSS = {} + , $P = $Ps[pane] + , size, minSize, maxSize + ; + // if pane-pointer already exists, remove the old one first + if ($P) + removePane( pane, false, true, false ); + else + $Cs[pane] = false; // init + + $P = $Ps[pane] = getPane(pane); + if (!$P.length) { + $Ps[pane] = false; // logic + return; + } + + // SAVE original Pane CSS + if (!$P.data("layoutCSS")) { + var props = "position,top,left,bottom,right,width,height,overflow,zIndex,display,backgroundColor,padding,margin,border"; + $P.data("layoutCSS", elCSS($P, props)); + } + + // create alias for pane data in Instance - initHandles will add more + Instance[pane] = { name: pane, pane: $Ps[pane], content: $Cs[pane], options: options[pane], state: state[pane], child: children[pane] }; + + // add classes, attributes & events + $P .data({ + parentLayout: Instance // pointer to Layout Instance + , layoutPane: Instance[pane] // NEW pointer to pane-alias-object + , layoutEdge: pane + , layoutRole: "pane" + }) + .css(c.cssReq).css("zIndex", options.zIndexes.pane_normal) + .css(o.applyDemoStyles ? c.cssDemo : {}) // demo styles + .addClass( o.paneClass +" "+ o.paneClass+"-"+pane ) // default = "ui-layout-pane ui-layout-pane-west" - may be a dupe of 'paneSelector' + .bind("mouseenter."+ sID, addHover ) + .bind("mouseleave."+ sID, removeHover ) + ; + var paneMethods = { + hide: '' + , show: '' + , toggle: '' + , close: '' + , open: '' + , slideOpen: '' + , slideClose: '' + , slideToggle: '' + , size: 'sizePane' + , sizePane: 'sizePane' + , sizeContent: '' + , sizeHandles: '' + , enableClosable: '' + , disableClosable: '' + , enableSlideable: '' + , disableSlideable: '' + , enableResizable: '' + , disableResizable: '' + , swapPanes: 'swapPanes' + , swap: 'swapPanes' + , move: 'swapPanes' + , removePane: 'removePane' + , remove: 'removePane' + , createChildLayout: '' + , resizeChildLayout: '' + , resizeAll: 'resizeAll' + , resizeLayout: 'resizeAll' + } + , name; + // loop hash and bind all methods - include layoutID namespacing + for (name in paneMethods) { + $P.bind("layoutpane"+ name.toLowerCase() +"."+ sID, Instance[ paneMethods[name] || name ]); + } + + // see if this pane has a 'scrolling-content element' + initContent(pane, false); // false = do NOT sizeContent() - called later + + if (!isCenter) { + // call _parseSize AFTER applying pane classes & styles - but before making visible (if hidden) + // if o.size is auto or not valid, then MEASURE the pane and use that as its 'size' + size = s.size = _parseSize(pane, o.size); + minSize = _parseSize(pane,o.minSize) || 1; + maxSize = _parseSize(pane,o.maxSize) || 100000; + if (size > 0) size = max(min(size, maxSize), minSize); + + // state for border-panes + s.isClosed = false; // true = pane is closed + s.isSliding = false; // true = pane is currently open by 'sliding' over adjacent panes + s.isResizing= false; // true = pane is in process of being resized + s.isHidden = false; // true = pane is hidden - no spacing, resizer or toggler is visible! + + // array for 'pin buttons' whose classNames are auto-updated on pane-open/-close + if (!s.pins) s.pins = []; + } + // states common to ALL panes + s.tagName = $P[0].tagName; + s.edge = pane; // useful if pane is (or about to be) 'swapped' - easy find out where it is (or is going) + s.noRoom = false; // true = pane 'automatically' hidden due to insufficient room - will unhide automatically + s.isVisible = true; // false = pane is invisible - closed OR hidden - simplify logic + + // set css-position to account for container borders & padding + switch (pane) { + case "north": CSS.top = sC.insetTop; + CSS.left = sC.insetLeft; + CSS.right = sC.insetRight; + break; + case "south": CSS.bottom = sC.insetBottom; + CSS.left = sC.insetLeft; + CSS.right = sC.insetRight; + break; + case "west": CSS.left = sC.insetLeft; // top, bottom & height set by sizeMidPanes() + break; + case "east": CSS.right = sC.insetRight; // ditto + break; + case "center": // top, left, width & height set by sizeMidPanes() + } + + if (dir === "horz") // north or south pane + CSS.height = cssH($P, size); + else if (dir === "vert") // east or west pane + CSS.width = cssW($P, size); + //else if (isCenter) {} + + $P.css(CSS); // apply size -- top, bottom & height will be set by sizeMidPanes + if (dir != "horz") sizeMidPanes(pane, true); // true = skipCallback + + // close or hide the pane if specified in settings + if (o.initClosed && o.closable && !o.initHidden) + close(pane, true, true); // true, true = force, noAnimation + else if (o.initHidden || o.initClosed) + hide(pane); // will be completely invisible - no resizer or spacing + else if (!s.noRoom) + // make the pane visible - in case was initially hidden + $P.css("display","block"); + // ELSE setAsOpen() - called later by initHandles() + + // RESET visibility now - pane will appear IF display:block + $P.css("visibility","visible"); + + // check option for auto-handling of pop-ups & drop-downs + if (o.showOverflowOnHover) + $P.hover( allowOverflow, resetOverflow ); + + // if manually adding a pane AFTER layout initialization, then... + if (state.initialized) { + initHandles( pane ); + initHotkeys( pane ); + resizeAll(); // will sizeContent if pane is visible + if (s.isVisible) { // pane is OPEN + if (o.triggerEventsOnLoad) + _runCallbacks("onresize_end", pane); + else // automatic if onresize called, otherwise call it specifically + // resize child - IF inner-layout already exists (created before this layout) + resizeChildLayout(pane); // a previously existing childLayout + } + if (o.initChildLayout && o.childOptions) + createChildLayout(pane); + } + } + + /** + * Initialize module objects, styling, size and position for all resize bars and toggler buttons + * + * @see _create() + * @param {string=} [panes=""] The edge(s) to process + */ +, initHandles = function (panes) { + panes = panes ? panes.split(",") : _c.borderPanes; + + // create toggler DIVs for each pane, and set object pointers for them, eg: $R.north = north toggler DIV + $.each(panes, function (i, pane) { + var $P = $Ps[pane]; + $Rs[pane] = false; // INIT + $Ts[pane] = false; + if (!$P) return; // pane does not exist - skip + + var + o = options[pane] + , s = state[pane] + , c = _c[pane] + , paneId = o.paneSelector.substr(0,1) === "#" ? o.paneSelector.substr(1) : "" + , rClass = o.resizerClass + , tClass = o.togglerClass + , side = c.side.toLowerCase() + , spacing = (s.isVisible ? o.spacing_open : o.spacing_closed) + , _pane = "-"+ pane // used for classNames + , _state = (s.isVisible ? "-open" : "-closed") // used for classNames + , I = Instance[pane] + // INIT RESIZER BAR + , $R = I.resizer = $Rs[pane] = $("
      ") + // INIT TOGGLER BUTTON + , $T = I.toggler = (o.closable ? $Ts[pane] = $("
      ") : false) + ; + + //if (s.isVisible && o.resizable) ... handled by initResizable + if (!s.isVisible && o.slidable) + $R.attr("title", o.tips.Slide).css("cursor", o.sliderCursor); + + $R // if paneSelector is an ID, then create a matching ID for the resizer, eg: "#paneLeft" => "paneLeft-resizer" + .attr("id", paneId ? paneId +"-resizer" : "" ) + .data({ + parentLayout: Instance + , layoutPane: Instance[pane] // NEW pointer to pane-alias-object + , layoutEdge: pane + , layoutRole: "resizer" + }) + .css(_c.resizers.cssReq).css("zIndex", options.zIndexes.resizer_normal) + .css(o.applyDemoStyles ? _c.resizers.cssDemo : {}) // add demo styles + .addClass(rClass +" "+ rClass+_pane) + .hover(addHover, removeHover) // ALWAYS add hover-classes, even if resizing is not enabled - handle with CSS instead + .hover(onResizerEnter, onResizerLeave) // ALWAYS NEED resizer.mouseleave to balance toggler.mouseenter + .appendTo($N) // append DIV to container + ; + + if ($T) { + $T // if paneSelector is an ID, then create a matching ID for the resizer, eg: "#paneLeft" => "#paneLeft-toggler" + .attr("id", paneId ? paneId +"-toggler" : "" ) + .data({ + parentLayout: Instance + , layoutPane: Instance[pane] // NEW pointer to pane-alias-object + , layoutEdge: pane + , layoutRole: "toggler" + }) + .css(_c.togglers.cssReq) // add base/required styles + .css(o.applyDemoStyles ? _c.togglers.cssDemo : {}) // add demo styles + .addClass(tClass +" "+ tClass+_pane) + .hover(addHover, removeHover) // ALWAYS add hover-classes, even if toggling is not enabled - handle with CSS instead + .bind("mouseenter", onResizerEnter) // NEED toggler.mouseenter because mouseenter MAY NOT fire on resizer + .appendTo($R) // append SPAN to resizer DIV + ; + // ADD INNER-SPANS TO TOGGLER + if (o.togglerContent_open) // ui-layout-open + $(""+ o.togglerContent_open +"") + .data({ + layoutEdge: pane + , layoutRole: "togglerContent" + }) + .data("layoutRole", "togglerContent") + .data("layoutEdge", pane) + .addClass("content content-open") + .css("display","none") + .appendTo( $T ) + //.hover( addHover, removeHover ) // use ui-layout-toggler-west-hover .content-open instead! + ; + if (o.togglerContent_closed) // ui-layout-closed + $(""+ o.togglerContent_closed +"") + .data({ + layoutEdge: pane + , layoutRole: "togglerContent" + }) + .addClass("content content-closed") + .css("display","none") + .appendTo( $T ) + //.hover( addHover, removeHover ) // use ui-layout-toggler-west-hover .content-closed instead! + ; + // ADD TOGGLER.click/.hover + enableClosable(pane); + } + + // add Draggable events + initResizable(pane); + + // ADD CLASSNAMES & SLIDE-BINDINGS - eg: class="resizer resizer-west resizer-open" + if (s.isVisible) + setAsOpen(pane); // onOpen will be called, but NOT onResize + else { + setAsClosed(pane); // onClose will be called + bindStartSlidingEvent(pane, true); // will enable events IF option is set + } + + }); + + // SET ALL HANDLE DIMENSIONS + sizeHandles(); + } + + + /** + * Initialize scrolling ui-layout-content div - if exists + * + * @see initPane() - or externally after an Ajax injection + * @param {string} [pane] The pane to process + * @param {boolean=} [resize=true] Size content after init + */ +, initContent = function (pane, resize) { + if (!isInitialized()) return; + var + o = options[pane] + , sel = o.contentSelector + , I = Instance[pane] + , $P = $Ps[pane] + , $C + ; + if (sel) $C = I.content = $Cs[pane] = (o.findNestedContent) + ? $P.find(sel).eq(0) // match 1-element only + : $P.children(sel).eq(0) + ; + if ($C && $C.length) { + $C.data("layoutRole", "content"); + // SAVE original Pane CSS + if (!$C.data("layoutCSS")) + $C.data("layoutCSS", elCSS($C, "height")); + $C.css( _c.content.cssReq ); + if (o.applyDemoStyles) { + $C.css( _c.content.cssDemo ); // add padding & overflow: auto to content-div + $P.css( _c.content.cssDemoPane ); // REMOVE padding/scrolling from pane + } + state[pane].content = {}; // init content state + if (resize !== false) sizeContent(pane); + // sizeContent() is called AFTER init of all elements + } + else + I.content = $Cs[pane] = false; + } + + + /** + * Add resize-bars to all panes that specify it in options + * -dependancy: $.fn.resizable - will skip if not found + * + * @see _create() + * @param {string=} [panes=""] The edge(s) to process + */ +, initResizable = function (panes) { + var draggingAvailable = $.layout.plugins.draggable + , side // set in start() + ; + panes = panes ? panes.split(",") : _c.borderPanes; + + $.each(panes, function (idx, pane) { + var o = options[pane]; + if (!draggingAvailable || !$Ps[pane] || !o.resizable) { + o.resizable = false; + return true; // skip to next + } + + var s = state[pane] + , z = options.zIndexes + , c = _c[pane] + , side = c.dir=="horz" ? "top" : "left" + , opEdge = _c.oppositeEdge[pane] + , masks = pane +",center,"+ opEdge + (c.dir=="horz" ? ",west,east" : "") + , $P = $Ps[pane] + , $R = $Rs[pane] + , base = o.resizerClass + , lastPos = 0 // used when live-resizing + , r, live // set in start because may change + // 'drag' classes are applied to the ORIGINAL resizer-bar while dragging is in process + , resizerClass = base+"-drag" // resizer-drag + , resizerPaneClass = base+"-"+pane+"-drag" // resizer-north-drag + // 'helper' class is applied to the CLONED resizer-bar while it is being dragged + , helperClass = base+"-dragging" // resizer-dragging + , helperPaneClass = base+"-"+pane+"-dragging" // resizer-north-dragging + , helperLimitClass = base+"-dragging-limit" // resizer-drag + , helperPaneLimitClass = base+"-"+pane+"-dragging-limit" // resizer-north-drag + , helperClassesSet = false // logic var + ; + + if (!s.isClosed) + $R.attr("title", o.tips.Resize) + .css("cursor", o.resizerCursor); // n-resize, s-resize, etc + + $R.draggable({ + containment: $N[0] // limit resizing to layout container + , axis: (c.dir=="horz" ? "y" : "x") // limit resizing to horz or vert axis + , delay: 0 + , distance: 1 + , grid: o.resizingGrid + // basic format for helper - style it using class: .ui-draggable-dragging + , helper: "clone" + , opacity: o.resizerDragOpacity + , addClasses: false // avoid ui-state-disabled class when disabled + //, iframeFix: o.draggableIframeFix // TODO: consider using when bug is fixed + , zIndex: z.resizer_drag + + , start: function (e, ui) { + // REFRESH options & state pointers in case we used swapPanes + o = options[pane]; + s = state[pane]; + // re-read options + live = o.livePaneResizing; + + // ondrag_start callback - will CANCEL hide if returns false + // TODO: dragging CANNOT be cancelled like this, so see if there is a way? + if (false === _runCallbacks("ondrag_start", pane)) return false; + + s.isResizing = true; // prevent pane from closing while resizing + timer.clear(pane+"_closeSlider"); // just in case already triggered + + // SET RESIZER LIMITS - used in drag() + setSizeLimits(pane); // update pane/resizer state + r = s.resizerPosition; + lastPos = ui.position[ side ] + + $R.addClass( resizerClass +" "+ resizerPaneClass ); // add drag classes + helperClassesSet = false; // reset logic var - see drag() + + // DISABLE TEXT SELECTION (probably already done by resizer.mouseOver) + $('body').disableSelection(); + + // MASK PANES CONTAINING IFRAMES, APPLETS OR OTHER TROUBLESOME ELEMENTS + showMasks( masks ); + } + + , drag: function (e, ui) { + if (!helperClassesSet) { // can only add classes after clone has been added to the DOM + //$(".ui-draggable-dragging") + ui.helper + .addClass( helperClass +" "+ helperPaneClass ) // add helper classes + .css({ right: "auto", bottom: "auto" }) // fix dir="rtl" issue + .children().css("visibility","hidden") // hide toggler inside dragged resizer-bar + ; + helperClassesSet = true; + // draggable bug!? RE-SET zIndex to prevent E/W resize-bar showing through N/S pane! + if (s.isSliding) $Ps[pane].css("zIndex", z.pane_sliding); + } + // CONTAIN RESIZER-BAR TO RESIZING LIMITS + var limit = 0; + if (ui.position[side] < r.min) { + ui.position[side] = r.min; + limit = -1; + } + else if (ui.position[side] > r.max) { + ui.position[side] = r.max; + limit = 1; + } + // ADD/REMOVE dragging-limit CLASS + if (limit) { + ui.helper.addClass( helperLimitClass +" "+ helperPaneLimitClass ); // at dragging-limit + window.defaultStatus = (limit>0 && pane.match(/(north|west)/)) || (limit<0 && pane.match(/(south|east)/)) ? o.tips.maxSizeWarning : o.tips.minSizeWarning; + } + else { + ui.helper.removeClass( helperLimitClass +" "+ helperPaneLimitClass ); // not at dragging-limit + window.defaultStatus = ""; + } + // DYNAMICALLY RESIZE PANES IF OPTION ENABLED + // won't trigger unless resizer has actually moved! + if (live && Math.abs(ui.position[side] - lastPos) >= o.liveResizingTolerance) { + lastPos = ui.position[side]; + resizePanes(e, ui, pane) + } + } + + , stop: function (e, ui) { + $('body').enableSelection(); // RE-ENABLE TEXT SELECTION + window.defaultStatus = ""; // clear 'resizing limit' message from statusbar + $R.removeClass( resizerClass +" "+ resizerPaneClass ); // remove drag classes from Resizer + s.isResizing = false; + resizePanes(e, ui, pane, true, masks); // true = resizingDone + } + + }); + }); + + /** + * resizePanes + * + * Sub-routine called from stop() - and drag() if livePaneResizing + * + * @param {!Object} evt + * @param {!Object} ui + * @param {string} pane + * @param {boolean=} [resizingDone=false] + */ + var resizePanes = function (evt, ui, pane, resizingDone, masks) { + var dragPos = ui.position + , c = _c[pane] + , o = options[pane] + , s = state[pane] + , resizerPos + ; + switch (pane) { + case "north": resizerPos = dragPos.top; break; + case "west": resizerPos = dragPos.left; break; + case "south": resizerPos = sC.offsetHeight - dragPos.top - o.spacing_open; break; + case "east": resizerPos = sC.offsetWidth - dragPos.left - o.spacing_open; break; + }; + // remove container margin from resizer position to get the pane size + var newSize = resizerPos - sC["inset"+ c.side]; + + // Disable OR Resize Mask(s) created in drag.start + if (!resizingDone) { + // ensure we meet liveResizingTolerance criteria + if (Math.abs(newSize - s.size) < o.liveResizingTolerance) + return; // SKIP resize this time + // resize the pane + manualSizePane(pane, newSize, false, true); // true = noAnimation + sizeMasks(); // resize all visible masks + } + else { // resizingDone + // ondrag_end callback + if (false !== _runCallbacks("ondrag_end", pane)) + manualSizePane(pane, newSize, false, true); // true = noAnimation + hideMasks(); // hide all masks, which include panes with 'content/iframe-masks' + if (s.isSliding && masks) // RE-SHOW only 'object-masks' so objects won't show through sliding pane + showMasks( masks, true ); // true = onlyForObjects + } + }; + } + + /** + * sizeMask + * + * Needed to overlay a DIV over an IFRAME-pane because mask CANNOT be *inside* the pane + * Called when mask created, and during livePaneResizing + */ +, sizeMask = function () { + var $M = $(this) + , pane = $M.data("layoutMask") // eg: "west" + , s = state[pane] + ; + // only masks over an IFRAME-pane need manual resizing + if (s.tagName == "IFRAME" && s.isVisible) // no need to mask closed/hidden panes + $M.css({ + top: s.offsetTop + , left: s.offsetLeft + , width: s.outerWidth + , height: s.outerHeight + }); + /* ALT Method... + var $P = $Ps[pane]; + $M.css( $P.position() ).css({ width: $P[0].offsetWidth, height: $P[0].offsetHeight }); + */ + } +, sizeMasks = function () { + $Ms.each( sizeMask ); // resize all 'visible' masks + } + +, showMasks = function (panes, onlyForObjects) { + var a = panes ? panes.split(",") : $.layout.config.allPanes + , z = options.zIndexes + , o, s; + $.each(a, function(i,p){ + s = state[p]; + o = options[p]; + if (s.isVisible && ( (!onlyForObjects && o.maskContents) || o.maskObjects )) { + getMasks(p).each(function(){ + sizeMask.call(this); + this.style.zIndex = s.isSliding ? z.pane_sliding+1 : z.pane_normal+1 + this.style.display = "block"; + }); + } + }); + } + +, hideMasks = function () { + // ensure no pane is resizing - could be a timing issue + var skip; + $.each( $.layout.config.borderPanes, function(i,p){ + if (state[p].isResizing) { + skip = true; + return false; // BREAK + } + }); + if (!skip) + $Ms.hide(); // hide ALL masks + } + +, getMasks = function (pane) { + var $Masks = $([]) + , $M, i = 0, c = $Ms.length + ; + for (; i CSS + if (sC.tagName === "BODY" && ($N = $("html")).data(css)) // RESET CSS + $N.css( $N.data(css) ).removeData(css); + + // trigger plugins for this layout, if there are any + runPluginCallbacks( Instance, $.layout.onDestroy ); + + // trigger state-management and onunload callback + unload(); + + // clear the Instance of everything except for container & options (so could recreate) + // RE-CREATE: myLayout = myLayout.container.layout( myLayout.options ); + for (n in Instance) + if (!n.match(/^(container|options)$/)) delete Instance[ n ]; + // add a 'destroyed' flag to make it easy to check + Instance.destroyed = true; + + // if this is a child layout, CLEAR the child-pointer in the parent + /* for now the pointer REMAINS, but with only container, options and destroyed keys + if (parentPane) { + var layout = parentPane.pane.data("parentLayout"); + parentPane.child = layout.children[ parentPane.name ] = null; + } + */ + + return Instance; // for coding convenience + } + + /** + * Remove a pane from the layout - subroutine of destroy() + * + * @see destroy() + * @param {string|Object} evt_or_pane The pane to process + * @param {boolean=} [remove=false] Remove the DOM element? + * @param {boolean=} [skipResize=false] Skip calling resizeAll()? + * @param {boolean=} [destroyChild=true] Destroy Child-layouts? If not passed, obeys options setting + */ +, removePane = function (evt_or_pane, remove, skipResize, destroyChild) { + if (!isInitialized()) return; + var pane = evtPane.call(this, evt_or_pane) + , $P = $Ps[pane] + , $C = $Cs[pane] + , $R = $Rs[pane] + , $T = $Ts[pane] + ; + // NOTE: elements can still exist even after remove() + // so check for missing data(), which is cleared by removed() + if ($P && $.isEmptyObject( $P.data() )) $P = false; + if ($C && $.isEmptyObject( $C.data() )) $C = false; + if ($R && $.isEmptyObject( $R.data() )) $R = false; + if ($T && $.isEmptyObject( $T.data() )) $T = false; + + if ($P) $P.stop(true, true); + + // check for a child layout + var o = options[pane] + , s = state[pane] + , d = "layout" + , css = "layoutCSS" + , child = children[pane] || ($P ? $P.data(d) : 0) || ($C ? $C.data(d) : 0) || null + , destroy = destroyChild !== undefined ? destroyChild : o.destroyChildLayout + ; + + // FIRST destroy the child-layout(s) + if (destroy && child && !child.destroyed) { + child.destroy(true); // tell child-layout to destroy ALL its child-layouts too + if (child.destroyed) // destroy was successful + child = null; // clear pointer for logic below + } + + if ($P && remove && !child) + $P.remove(); + else if ($P && $P[0]) { + // create list of ALL pane-classes that need to be removed + var root = o.paneClass // default="ui-layout-pane" + , pRoot = root +"-"+ pane // eg: "ui-layout-pane-west" + , _open = "-open" + , _sliding= "-sliding" + , _closed = "-closed" + , classes = [ root, root+_open, root+_closed, root+_sliding, // generic classes + pRoot, pRoot+_open, pRoot+_closed, pRoot+_sliding ] // pane-specific classes + ; + $.merge(classes, getHoverClasses($P, true)); // ADD hover-classes + // remove all Layout classes from pane-element + $P .removeClass( classes.join(" ") ) // remove ALL pane-classes + .removeData("parentLayout") + .removeData("layoutPane") + .removeData("layoutRole") + .removeData("layoutEdge") + .removeData("autoHidden") // in case set + .unbind("."+ sID) // remove ALL Layout events + // TODO: remove these extra unbind commands when jQuery is fixed + //.unbind("mouseenter"+ sID) + //.unbind("mouseleave"+ sID) + ; + // do NOT reset CSS if this pane/content is STILL the container of a nested layout! + // the nested layout will reset its 'container' CSS when/if it is destroyed + if ($C && $C.data(d)) { + // a content-div may not have a specific width, so give it one to contain the Layout + $C.width( $C.width() ); + child.resizeAll(); // now resize the Layout + } + else if ($C) + $C.css( $C.data(css) ).removeData(css).removeData("layoutRole"); + // remove pane AFTER content in case there was a nested layout + if (!$P.data(d)) + $P.css( $P.data(css) ).removeData(css); + } + + // REMOVE pane resizer and toggler elements + if ($T) $T.remove(); + if ($R) $R.remove(); + + // CLEAR all pointers and state data + Instance[pane] = $Ps[pane] = $Cs[pane] = $Rs[pane] = $Ts[pane] = children[pane] = false; + s = { removed: true }; + + if (!skipResize) + resizeAll(); + } + + +/* + * ########################### + * ACTION METHODS + * ########################### + */ + +, _hidePane = function (pane) { + var $P = $Ps[pane] + , o = options[pane] + , s = $P[0].style + ; + if (o.useOffscreenClose) { + if (!$P.data(_c.offscreenReset)) + $P.data(_c.offscreenReset, { left: s.left, right: s.right }); + $P.css( _c.offscreenCSS ); + } + else + $P.hide().removeData(_c.offscreenReset); + } + +, _showPane = function (pane) { + var $P = $Ps[pane] + , o = options[pane] + , off = _c.offscreenCSS + , old = $P.data(_c.offscreenReset) + , s = $P[0].style + ; + $P .show() // ALWAYS show, just in case + .removeData(_c.offscreenReset); + if (o.useOffscreenClose && old) { + if (s.left == off.left) + s.left = old.left; + if (s.right == off.right) + s.right = old.right; + } + } + + + /** + * Completely 'hides' a pane, including its spacing - as if it does not exist + * The pane is not actually 'removed' from the source, so can use 'show' to un-hide it + * + * @param {string|Object} evt_or_pane The pane being hidden, ie: north, south, east, or west + * @param {boolean=} [noAnimation=false] + */ +, hide = function (evt_or_pane, noAnimation) { + if (!isInitialized()) return; + var pane = evtPane.call(this, evt_or_pane) + , o = options[pane] + , s = state[pane] + , $P = $Ps[pane] + , $R = $Rs[pane] + ; + if (!$P || s.isHidden) return; // pane does not exist OR is already hidden + + // onhide_start callback - will CANCEL hide if returns false + if (state.initialized && false === _runCallbacks("onhide_start", pane)) return; + + s.isSliding = false; // just in case + + // now hide the elements + if ($R) $R.hide(); // hide resizer-bar + if (!state.initialized || s.isClosed) { + s.isClosed = true; // to trigger open-animation on show() + s.isHidden = true; + s.isVisible = false; + if (!state.initialized) + _hidePane(pane); // no animation when loading page + sizeMidPanes(_c[pane].dir === "horz" ? "" : "center"); + if (state.initialized || o.triggerEventsOnLoad) + _runCallbacks("onhide_end", pane); + } + else { + s.isHiding = true; // used by onclose + close(pane, false, noAnimation); // adjust all panes to fit + } + } + + /** + * Show a hidden pane - show as 'closed' by default unless openPane = true + * + * @param {string|Object} evt_or_pane The pane being opened, ie: north, south, east, or west + * @param {boolean=} [openPane=false] + * @param {boolean=} [noAnimation=false] + * @param {boolean=} [noAlert=false] + */ +, show = function (evt_or_pane, openPane, noAnimation, noAlert) { + if (!isInitialized()) return; + var pane = evtPane.call(this, evt_or_pane) + , o = options[pane] + , s = state[pane] + , $P = $Ps[pane] + , $R = $Rs[pane] + ; + if (!$P || !s.isHidden) return; // pane does not exist OR is not hidden + + // onshow_start callback - will CANCEL show if returns false + if (false === _runCallbacks("onshow_start", pane)) return; + + s.isSliding = false; // just in case + s.isShowing = true; // used by onopen/onclose + //s.isHidden = false; - will be set by open/close - if not cancelled + + // now show the elements + //if ($R) $R.show(); - will be shown by open/close + if (openPane === false) + close(pane, true); // true = force + else + open(pane, false, noAnimation, noAlert); // adjust all panes to fit + } + + + /** + * Toggles a pane open/closed by calling either open or close + * + * @param {string|Object} evt_or_pane The pane being toggled, ie: north, south, east, or west + * @param {boolean=} [slide=false] + */ +, toggle = function (evt_or_pane, slide) { + if (!isInitialized()) return; + var evt = evtObj(evt_or_pane) + , pane = evtPane.call(this, evt_or_pane) + , s = state[pane] + ; + if (evt) // called from to $R.dblclick OR triggerPaneEvent + evt.stopImmediatePropagation(); + if (s.isHidden) + show(pane); // will call 'open' after unhiding it + else if (s.isClosed) + open(pane, !!slide); + else + close(pane); + } + + + /** + * Utility method used during init or other auto-processes + * + * @param {string} pane The pane being closed + * @param {boolean=} [setHandles=false] + */ +, _closePane = function (pane, setHandles) { + var + $P = $Ps[pane] + , s = state[pane] + ; + _hidePane(pane); + s.isClosed = true; + s.isVisible = false; + // UNUSED: if (setHandles) setAsClosed(pane, true); // true = force + } + + /** + * Close the specified pane (animation optional), and resize all other panes as needed + * + * @param {string|Object} evt_or_pane The pane being closed, ie: north, south, east, or west + * @param {boolean=} [force=false] + * @param {boolean=} [noAnimation=false] + * @param {boolean=} [skipCallback=false] + */ +, close = function (evt_or_pane, force, noAnimation, skipCallback) { + var pane = evtPane.call(this, evt_or_pane); + // if pane has been initialized, but NOT the complete layout, close pane instantly + if (!state.initialized && $Ps[pane]) { + _closePane(pane); // INIT pane as closed + return; + } + if (!isInitialized()) return; + + var + $P = $Ps[pane] + , $R = $Rs[pane] + , $T = $Ts[pane] + , o = options[pane] + , s = state[pane] + , c = _c[pane] + , doFX, isShowing, isHiding, wasSliding; + + // QUEUE in case another action/animation is in progress + $N.queue(function( queueNext ){ + + if ( !$P + || (!o.closable && !s.isShowing && !s.isHiding) // invalid request // (!o.resizable && !o.closable) ??? + || (!force && s.isClosed && !s.isShowing) // already closed + ) return queueNext(); + + // onclose_start callback - will CANCEL hide if returns false + // SKIP if just 'showing' a hidden pane as 'closed' + var abort = !s.isShowing && false === _runCallbacks("onclose_start", pane); + + // transfer logic vars to temp vars + isShowing = s.isShowing; + isHiding = s.isHiding; + wasSliding = s.isSliding; + // now clear the logic vars (REQUIRED before aborting) + delete s.isShowing; + delete s.isHiding; + + if (abort) return queueNext(); + + doFX = !noAnimation && !s.isClosed && (o.fxName_close != "none"); + s.isMoving = true; + s.isClosed = true; + s.isVisible = false; + // update isHidden BEFORE sizing panes + if (isHiding) s.isHidden = true; + else if (isShowing) s.isHidden = false; + + if (s.isSliding) // pane is being closed, so UNBIND trigger events + bindStopSlidingEvents(pane, false); // will set isSliding=false + else // resize panes adjacent to this one + sizeMidPanes(_c[pane].dir === "horz" ? "" : "center", false); // false = NOT skipCallback + + // if this pane has a resizer bar, move it NOW - before animation + setAsClosed(pane); + + // CLOSE THE PANE + if (doFX) { // animate the close + // mask panes with objects + var masks = "center"+ (c.dir=="horz" ? ",west,east" : ""); + showMasks( masks, true ); // true = ONLY mask panes with maskObjects=true + lockPaneForFX(pane, true); // need to set left/top so animation will work + $P.hide( o.fxName_close, o.fxSettings_close, o.fxSpeed_close, function () { + lockPaneForFX(pane, false); // undo + if (s.isClosed) close_2(); + queueNext(); + }); + } + else { // hide the pane without animation + _hidePane(pane); + close_2(); + queueNext(); + }; + }); + + // SUBROUTINE + function close_2 () { + s.isMoving = false; + bindStartSlidingEvent(pane, true); // will enable if o.slidable = true + + // if opposite-pane was autoClosed, see if it can be autoOpened now + var altPane = _c.oppositeEdge[pane]; + if (state[ altPane ].noRoom) { + setSizeLimits( altPane ); + makePaneFit( altPane ); + } + + // hide any masks shown while closing + hideMasks(); + + if (!skipCallback && (state.initialized || o.triggerEventsOnLoad)) { + // onclose callback - UNLESS just 'showing' a hidden pane as 'closed' + if (!isShowing) _runCallbacks("onclose_end", pane); + // onhide OR onshow callback + if (isShowing) _runCallbacks("onshow_end", pane); + if (isHiding) _runCallbacks("onhide_end", pane); + } + } + } + + /** + * @param {string} pane The pane just closed, ie: north, south, east, or west + */ +, setAsClosed = function (pane) { + var + $P = $Ps[pane] + , $R = $Rs[pane] + , $T = $Ts[pane] + , o = options[pane] + , s = state[pane] + , side = _c[pane].side.toLowerCase() + , inset = "inset"+ _c[pane].side + , rClass = o.resizerClass + , tClass = o.togglerClass + , _pane = "-"+ pane // used for classNames + , _open = "-open" + , _sliding= "-sliding" + , _closed = "-closed" + ; + $R + .css(side, sC[inset]) // move the resizer + .removeClass( rClass+_open +" "+ rClass+_pane+_open ) + .removeClass( rClass+_sliding +" "+ rClass+_pane+_sliding ) + .addClass( rClass+_closed +" "+ rClass+_pane+_closed ) + .unbind("dblclick."+ sID) + ; + // DISABLE 'resizing' when closed - do this BEFORE bindStartSlidingEvent? + if (o.resizable && $.layout.plugins.draggable) + $R + .draggable("disable") + .removeClass("ui-state-disabled") // do NOT apply disabled styling - not suitable here + .css("cursor", "default") + .attr("title","") + ; + + // if pane has a toggler button, adjust that too + if ($T) { + $T + .removeClass( tClass+_open +" "+ tClass+_pane+_open ) + .addClass( tClass+_closed +" "+ tClass+_pane+_closed ) + .attr("title", o.tips.Open) // may be blank + ; + // toggler-content - if exists + $T.children(".content-open").hide(); + $T.children(".content-closed").css("display","block"); + } + + // sync any 'pin buttons' + syncPinBtns(pane, false); + + if (state.initialized) { + // resize 'length' and position togglers for adjacent panes + sizeHandles(); + } + } + + /** + * Open the specified pane (animation optional), and resize all other panes as needed + * + * @param {string|Object} evt_or_pane The pane being opened, ie: north, south, east, or west + * @param {boolean=} [slide=false] + * @param {boolean=} [noAnimation=false] + * @param {boolean=} [noAlert=false] + */ +, open = function (evt_or_pane, slide, noAnimation, noAlert) { + if (!isInitialized()) return; + var pane = evtPane.call(this, evt_or_pane) + , $P = $Ps[pane] + , $R = $Rs[pane] + , $T = $Ts[pane] + , o = options[pane] + , s = state[pane] + , c = _c[pane] + , doFX, isShowing + ; + // QUEUE in case another action/animation is in progress + $N.queue(function( queueNext ){ + + if ( !$P + || (!o.resizable && !o.closable && !s.isShowing) // invalid request + || (s.isVisible && !s.isSliding) // already open + ) return queueNext(); + + // pane can ALSO be unhidden by just calling show(), so handle this scenario + if (s.isHidden && !s.isShowing) { + queueNext(); // call before show() because it needs the queue free + show(pane, true); + return; + } + + if (o.autoResize && s.size != o.size) // resize pane to original size set in options + sizePane(pane, o.size, true, true, true); // true=skipCallback/forceResize/noAnimation + else + // make sure there is enough space available to open the pane + setSizeLimits(pane, slide); + + // onopen_start callback - will CANCEL open if returns false + var cbReturn = _runCallbacks("onopen_start", pane); + + if (cbReturn === "abort") + return queueNext(); + + // update pane-state again in case options were changed in onopen_start + if (cbReturn !== "NC") // NC = "No Callback" + setSizeLimits(pane, slide); + + if (s.minSize > s.maxSize) { // INSUFFICIENT ROOM FOR PANE TO OPEN! + syncPinBtns(pane, false); // make sure pin-buttons are reset + if (!noAlert && o.tips.noRoomToOpen) + alert(o.tips.noRoomToOpen); + return queueNext(); // ABORT + } + + if (slide) // START Sliding - will set isSliding=true + bindStopSlidingEvents(pane, true); // BIND trigger events to close sliding-pane + else if (s.isSliding) // PIN PANE (stop sliding) - open pane 'normally' instead + bindStopSlidingEvents(pane, false); // UNBIND trigger events - will set isSliding=false + else if (o.slidable) + bindStartSlidingEvent(pane, false); // UNBIND trigger events + + s.noRoom = false; // will be reset by makePaneFit if 'noRoom' + makePaneFit(pane); + + // transfer logic var to temp var + isShowing = s.isShowing; + // now clear the logic var + delete s.isShowing; + + doFX = !noAnimation && s.isClosed && (o.fxName_open != "none"); + s.isMoving = true; + s.isVisible = true; + s.isClosed = false; + // update isHidden BEFORE sizing panes - WHY??? Old? + if (isShowing) s.isHidden = false; + + if (doFX) { // ANIMATE + // mask panes with objects + var masks = "center"+ (c.dir=="horz" ? ",west,east" : ""); + if (s.isSliding) masks += ","+ _c.oppositeEdge[pane]; + showMasks( masks, true ); // true = ONLY mask panes with maskObjects=true + lockPaneForFX(pane, true); // need to set left/top so animation will work + $P.show( o.fxName_open, o.fxSettings_open, o.fxSpeed_open, function() { + lockPaneForFX(pane, false); // undo + if (s.isVisible) open_2(); // continue + queueNext(); + }); + } + else { // no animation + _showPane(pane);// just show pane and... + open_2(); // continue + queueNext(); + }; + }); + + // SUBROUTINE + function open_2 () { + s.isMoving = false; + + // cure iframe display issues + _fixIframe(pane); + + // NOTE: if isSliding, then other panes are NOT 'resized' + if (!s.isSliding) { // resize all panes adjacent to this one + hideMasks(); // remove any masks shown while opening + sizeMidPanes(_c[pane].dir=="vert" ? "center" : "", false); // false = NOT skipCallback + } + + // set classes, position handles and execute callbacks... + setAsOpen(pane); + }; + + } + + /** + * @param {string} pane The pane just opened, ie: north, south, east, or west + * @param {boolean=} [skipCallback=false] + */ +, setAsOpen = function (pane, skipCallback) { + var + $P = $Ps[pane] + , $R = $Rs[pane] + , $T = $Ts[pane] + , o = options[pane] + , s = state[pane] + , side = _c[pane].side.toLowerCase() + , inset = "inset"+ _c[pane].side + , rClass = o.resizerClass + , tClass = o.togglerClass + , _pane = "-"+ pane // used for classNames + , _open = "-open" + , _closed = "-closed" + , _sliding= "-sliding" + ; + $R + .css(side, sC[inset] + getPaneSize(pane)) // move the resizer + .removeClass( rClass+_closed +" "+ rClass+_pane+_closed ) + .addClass( rClass+_open +" "+ rClass+_pane+_open ) + ; + if (s.isSliding) + $R.addClass( rClass+_sliding +" "+ rClass+_pane+_sliding ) + else // in case 'was sliding' + $R.removeClass( rClass+_sliding +" "+ rClass+_pane+_sliding ) + + if (o.resizerDblClickToggle) + $R.bind("dblclick", toggle ); + removeHover( 0, $R ); // remove hover classes + if (o.resizable && $.layout.plugins.draggable) + $R .draggable("enable") + .css("cursor", o.resizerCursor) + .attr("title", o.tips.Resize); + else if (!s.isSliding) + $R.css("cursor", "default"); // n-resize, s-resize, etc + + // if pane also has a toggler button, adjust that too + if ($T) { + $T .removeClass( tClass+_closed +" "+ tClass+_pane+_closed ) + .addClass( tClass+_open +" "+ tClass+_pane+_open ) + .attr("title", o.tips.Close); // may be blank + removeHover( 0, $T ); // remove hover classes + // toggler-content - if exists + $T.children(".content-closed").hide(); + $T.children(".content-open").css("display","block"); + } + + // sync any 'pin buttons' + syncPinBtns(pane, !s.isSliding); + + // update pane-state dimensions - BEFORE resizing content + $.extend(s, elDims($P)); + + if (state.initialized) { + // resize resizer & toggler sizes for all panes + sizeHandles(); + // resize content every time pane opens - to be sure + sizeContent(pane, true); // true = remeasure headers/footers, even if 'pane.isMoving' + } + + if (!skipCallback && (state.initialized || o.triggerEventsOnLoad) && $P.is(":visible")) { + // onopen callback + _runCallbacks("onopen_end", pane); + // onshow callback - TODO: should this be here? + if (s.isShowing) _runCallbacks("onshow_end", pane); + + // ALSO call onresize because layout-size *may* have changed while pane was closed + if (state.initialized) + _runCallbacks("onresize_end", pane); + } + + // TODO: Somehow sizePane("north") is being called after this point??? + } + + + /** + * slideOpen / slideClose / slideToggle + * + * Pass-though methods for sliding + */ +, slideOpen = function (evt_or_pane) { + if (!isInitialized()) return; + var evt = evtObj(evt_or_pane) + , pane = evtPane.call(this, evt_or_pane) + , s = state[pane] + , delay = options[pane].slideDelay_open + ; + // prevent event from triggering on NEW resizer binding created below + if (evt) evt.stopImmediatePropagation(); + + if (s.isClosed && evt && evt.type === "mouseenter" && delay > 0) + // trigger = mouseenter - use a delay + timer.set(pane+"_openSlider", open_NOW, delay); + else + open_NOW(); // will unbind events if is already open + + /** + * SUBROUTINE for timed open + */ + function open_NOW () { + if (!s.isClosed) // skip if no longer closed! + bindStopSlidingEvents(pane, true); // BIND trigger events to close sliding-pane + else if (!s.isMoving) + open(pane, true); // true = slide - open() will handle binding + }; + } + +, slideClose = function (evt_or_pane) { + if (!isInitialized()) return; + var evt = evtObj(evt_or_pane) + , pane = evtPane.call(this, evt_or_pane) + , o = options[pane] + , s = state[pane] + , delay = s.isMoving ? 1000 : 300 // MINIMUM delay - option may override + ; + if (s.isClosed || s.isResizing) + return; // skip if already closed OR in process of resizing + else if (o.slideTrigger_close === "click") + close_NOW(); // close immediately onClick + else if (o.preventQuickSlideClose && s.isMoving) + return; // handle Chrome quick-close on slide-open + else if (o.preventPrematureSlideClose && evt && $.layout.isMouseOverElem(evt, $Ps[pane])) + return; // handle incorrect mouseleave trigger, like when over a SELECT-list in IE + else if (evt) // trigger = mouseleave - use a delay + // 1 sec delay if 'opening', else .3 sec + timer.set(pane+"_closeSlider", close_NOW, max(o.slideDelay_close, delay)); + else // called programically + close_NOW(); + + /** + * SUBROUTINE for timed close + */ + function close_NOW () { + if (s.isClosed) // skip 'close' if already closed! + bindStopSlidingEvents(pane, false); // UNBIND trigger events - TODO: is this needed here? + else if (!s.isMoving) + close(pane); // close will handle unbinding + }; + } + + /** + * @param {string|Object} evt_or_pane The pane being opened, ie: north, south, east, or west + */ +, slideToggle = function (evt_or_pane) { + var pane = evtPane.call(this, evt_or_pane); + toggle(pane, true); + } + + + /** + * Must set left/top on East/South panes so animation will work properly + * + * @param {string} pane The pane to lock, 'east' or 'south' - any other is ignored! + * @param {boolean} doLock true = set left/top, false = remove + */ +, lockPaneForFX = function (pane, doLock) { + var $P = $Ps[pane] + , s = state[pane] + , o = options[pane] + , z = options.zIndexes + ; + if (doLock) { + $P.css({ zIndex: z.pane_animate }); // overlay all elements during animation + if (pane=="south") + $P.css({ top: sC.insetTop + sC.innerHeight - $P.outerHeight() }); + else if (pane=="east") + $P.css({ left: sC.insetLeft + sC.innerWidth - $P.outerWidth() }); + } + else { // animation DONE - RESET CSS + // TODO: see if this can be deleted. It causes a quick-close when sliding in Chrome + $P.css({ zIndex: (s.isSliding ? z.pane_sliding : z.pane_normal) }); + if (pane=="south") + $P.css({ top: "auto" }); + // if pane is positioned 'off-screen', then DO NOT screw with it! + else if (pane=="east" && !$P.css("left").match(/\-99999/)) + $P.css({ left: "auto" }); + // fix anti-aliasing in IE - only needed for animations that change opacity + if (browser.msie && o.fxOpacityFix && o.fxName_open != "slide" && $P.css("filter") && $P.css("opacity") == 1) + $P[0].style.removeAttribute('filter'); + } + } + + + /** + * Toggle sliding functionality of a specific pane on/off by adding removing 'slide open' trigger + * + * @see open(), close() + * @param {string} pane The pane to enable/disable, 'north', 'south', etc. + * @param {boolean} enable Enable or Disable sliding? + */ +, bindStartSlidingEvent = function (pane, enable) { + var o = options[pane] + , $P = $Ps[pane] + , $R = $Rs[pane] + , evtName = o.slideTrigger_open.toLowerCase() + ; + if (!$R || (enable && !o.slidable)) return; + + // make sure we have a valid event + if (evtName.match(/mouseover/)) + evtName = o.slideTrigger_open = "mouseenter"; + else if (!evtName.match(/(click|dblclick|mouseenter)/)) + evtName = o.slideTrigger_open = "click"; + + $R + // add or remove event + [enable ? "bind" : "unbind"](evtName +'.'+ sID, slideOpen) + // set the appropriate cursor & title/tip + .css("cursor", enable ? o.sliderCursor : "default") + .attr("title", enable ? o.tips.Slide : "") + ; + } + + /** + * Add or remove 'mouseleave' events to 'slide close' when pane is 'sliding' open or closed + * Also increases zIndex when pane is sliding open + * See bindStartSlidingEvent for code to control 'slide open' + * + * @see slideOpen(), slideClose() + * @param {string} pane The pane to process, 'north', 'south', etc. + * @param {boolean} enable Enable or Disable events? + */ +, bindStopSlidingEvents = function (pane, enable) { + var o = options[pane] + , s = state[pane] + , c = _c[pane] + , z = options.zIndexes + , evtName = o.slideTrigger_close.toLowerCase() + , action = (enable ? "bind" : "unbind") + , $P = $Ps[pane] + , $R = $Rs[pane] + ; + s.isSliding = enable; // logic + timer.clear(pane+"_closeSlider"); // just in case + + // remove 'slideOpen' event from resizer + // ALSO will raise the zIndex of the pane & resizer + if (enable) bindStartSlidingEvent(pane, false); + + // RE/SET zIndex - increases when pane is sliding-open, resets to normal when not + $P.css("zIndex", enable ? z.pane_sliding : z.pane_normal); + $R.css("zIndex", enable ? z.pane_sliding+2 : z.resizer_normal); // NOTE: mask = pane_sliding+1 + + // make sure we have a valid event + if (!evtName.match(/(click|mouseleave)/)) + evtName = o.slideTrigger_close = "mouseleave"; // also catches 'mouseout' + + // add/remove slide triggers + $R[action](evtName, slideClose); // base event on resize + // need extra events for mouseleave + if (evtName === "mouseleave") { + // also close on pane.mouseleave + $P[action]("mouseleave."+ sID, slideClose); + // cancel timer when mouse moves between 'pane' and 'resizer' + $R[action]("mouseenter."+ sID, cancelMouseOut); + $P[action]("mouseenter."+ sID, cancelMouseOut); + } + + if (!enable) + timer.clear(pane+"_closeSlider"); + else if (evtName === "click" && !o.resizable) { + // IF pane is not resizable (which already has a cursor and tip) + // then set the a cursor & title/tip on resizer when sliding + $R.css("cursor", enable ? o.sliderCursor : "default"); + $R.attr("title", enable ? o.tips.Close : ""); // use Toggler-tip, eg: "Close Pane" + } + + // SUBROUTINE for mouseleave timer clearing + function cancelMouseOut (evt) { + timer.clear(pane+"_closeSlider"); + evt.stopPropagation(); + } + } + + + /** + * Hides/closes a pane if there is insufficient room - reverses this when there is room again + * MUST have already called setSizeLimits() before calling this method + * + * @param {string} pane The pane being resized + * @param {boolean=} [isOpening=false] Called from onOpen? + * @param {boolean=} [skipCallback=false] Should the onresize callback be run? + * @param {boolean=} [force=false] + */ +, makePaneFit = function (pane, isOpening, skipCallback, force) { + var + o = options[pane] + , s = state[pane] + , c = _c[pane] + , $P = $Ps[pane] + , $R = $Rs[pane] + , isSidePane = c.dir==="vert" + , hasRoom = false + ; + // special handling for center & east/west panes + if (pane === "center" || (isSidePane && s.noVerticalRoom)) { + // see if there is enough room to display the pane + // ERROR: hasRoom = s.minHeight <= s.maxHeight && (isSidePane || s.minWidth <= s.maxWidth); + hasRoom = (s.maxHeight >= 0); + if (hasRoom && s.noRoom) { // previously hidden due to noRoom, so show now + _showPane(pane); + if ($R) $R.show(); + s.isVisible = true; + s.noRoom = false; + if (isSidePane) s.noVerticalRoom = false; + _fixIframe(pane); + } + else if (!hasRoom && !s.noRoom) { // not currently hidden, so hide now + _hidePane(pane); + if ($R) $R.hide(); + s.isVisible = false; + s.noRoom = true; + } + } + + // see if there is enough room to fit the border-pane + if (pane === "center") { + // ignore center in this block + } + else if (s.minSize <= s.maxSize) { // pane CAN fit + hasRoom = true; + if (s.size > s.maxSize) // pane is too big - shrink it + sizePane(pane, s.maxSize, skipCallback, force, true); // true = noAnimation + else if (s.size < s.minSize) // pane is too small - enlarge it + sizePane(pane, s.minSize, skipCallback, force, true); + // need s.isVisible because new pseudoClose method keeps pane visible, but off-screen + else if ($R && s.isVisible && $P.is(":visible")) { + // make sure resizer-bar is positioned correctly + // handles situation where nested layout was 'hidden' when initialized + var side = c.side.toLowerCase() + , pos = s.size + sC["inset"+ c.side] + ; + if ($.layout.cssNum($R, side) != pos) $R.css( side, pos ); + } + + // if was previously hidden due to noRoom, then RESET because NOW there is room + if (s.noRoom) { + // s.noRoom state will be set by open or show + if (s.wasOpen && o.closable) { + if (o.autoReopen) + open(pane, false, true, true); // true = noAnimation, true = noAlert + else // leave the pane closed, so just update state + s.noRoom = false; + } + else + show(pane, s.wasOpen, true, true); // true = noAnimation, true = noAlert + } + } + else { // !hasRoom - pane CANNOT fit + if (!s.noRoom) { // pane not set as noRoom yet, so hide or close it now... + s.noRoom = true; // update state + s.wasOpen = !s.isClosed && !s.isSliding; + if (s.isClosed){} // SKIP + else if (o.closable) // 'close' if possible + close(pane, true, true); // true = force, true = noAnimation + else // 'hide' pane if cannot just be closed + hide(pane, true); // true = noAnimation + } + } + } + + + /** + * sizePane / manualSizePane + * sizePane is called only by internal methods whenever a pane needs to be resized + * manualSizePane is an exposed flow-through method allowing extra code when pane is 'manually resized' + * + * @param {string|Object} evt_or_pane The pane being resized + * @param {number} size The *desired* new size for this pane - will be validated + * @param {boolean=} [skipCallback=false] Should the onresize callback be run? + * @param {boolean=} [noAnimation=false] + */ +, manualSizePane = function (evt_or_pane, size, skipCallback, noAnimation) { + if (!isInitialized()) return; + var pane = evtPane.call(this, evt_or_pane) + , o = options[pane] + , s = state[pane] + // if resizing callbacks have been delayed and resizing is now DONE, force resizing to complete... + , forceResize = o.livePaneResizing && !s.isResizing + ; + // ANY call to manualSizePane disables autoResize - ie, percentage sizing + o.autoResize = false; + // flow-through... + sizePane(pane, size, skipCallback, forceResize, noAnimation); // will animate resize if option enabled + } + + /** + * @param {string|Object} evt_or_pane The pane being resized + * @param {number} size The *desired* new size for this pane - will be validated + * @param {boolean=} [skipCallback=false] Should the onresize callback be run? + * @param {boolean=} [force=false] Force resizing even if does not seem necessary + * @param {boolean=} [noAnimation=false] + */ +, sizePane = function (evt_or_pane, size, skipCallback, force, noAnimation) { + if (!isInitialized()) return; + var pane = evtPane.call(this, evt_or_pane) // probably NEVER called from event? + , o = options[pane] + , s = state[pane] + , $P = $Ps[pane] + , $R = $Rs[pane] + , side = _c[pane].side.toLowerCase() + , dimName = _c[pane].sizeType.toLowerCase() + , inset = "inset"+ _c[pane].side + , skipResizeWhileDragging = s.isResizing && !o.triggerEventsDuringLiveResize + , doFX = noAnimation !== true && o.animatePaneSizing + , oldSize, newSize + ; + // QUEUE in case another action/animation is in progress + $N.queue(function( queueNext ){ + // calculate 'current' min/max sizes + setSizeLimits(pane); // update pane-state + oldSize = s.size; + size = _parseSize(pane, size); // handle percentages & auto + size = max(size, _parseSize(pane, o.minSize)); + size = min(size, s.maxSize); + if (size < s.minSize) { // not enough room for pane! + queueNext(); // call before makePaneFit() because it needs the queue free + makePaneFit(pane, false, skipCallback); // will hide or close pane + return; + } + + // IF newSize is same as oldSize, then nothing to do - abort + if (!force && size === oldSize) + return queueNext(); + + // onresize_start callback CANNOT cancel resizing because this would break the layout! + if (!skipCallback && state.initialized && s.isVisible) + _runCallbacks("onresize_start", pane); + + // resize the pane, and make sure its visible + newSize = cssSize(pane, size); + + if (doFX && $P.is(":visible")) { // ANIMATE + var fx = $.layout.effects.size[pane] || $.layout.effects.size.all + , easing = o.fxSettings_size.easing || fx.easing + , z = options.zIndexes + , props = {}; + props[ dimName ] = newSize +'px'; + s.isMoving = true; + // overlay all elements during animation + $P.css({ zIndex: z.pane_animate }) + .show().animate( props, o.fxSpeed_size, easing, function(){ + // reset zIndex after animation + $P.css({ zIndex: (s.isSliding ? z.pane_sliding : z.pane_normal) }); + s.isMoving = false; + sizePane_2(); // continue + queueNext(); + }); + } + else { // no animation + $P.css( dimName, newSize ); // resize pane + // if pane is visible, then + if ($P.is(":visible")) + sizePane_2(); // continue + else { + // pane is NOT VISIBLE, so just update state data... + // when pane is *next opened*, it will have the new size + s.size = size; // update state.size + $.extend(s, elDims($P)); // update state dimensions + } + queueNext(); + }; + + }); + + // SUBROUTINE + function sizePane_2 () { + /* Panes are sometimes not sized precisely in some browsers!? + * This code will resize the pane up to 3 times to nudge the pane to the correct size + */ + var actual = dimName==='width' ? $P.outerWidth() : $P.outerHeight() + , tries = [{ + pane: pane + , count: 1 + , target: size + , actual: actual + , correct: (size === actual) + , attempt: size + , cssSize: newSize + }] + , lastTry = tries[0] + , thisTry = {} + , msg = 'Inaccurate size after resizing the '+ pane +'-pane.' + ; + while ( !lastTry.correct ) { + thisTry = { pane: pane, count: lastTry.count+1, target: size }; + + if (lastTry.actual > size) + thisTry.attempt = max(0, lastTry.attempt - (lastTry.actual - size)); + else // lastTry.actual < size + thisTry.attempt = max(0, lastTry.attempt + (size - lastTry.actual)); + + thisTry.cssSize = cssSize(pane, thisTry.attempt); + $P.css( dimName, thisTry.cssSize ); + + thisTry.actual = dimName=='width' ? $P.outerWidth() : $P.outerHeight(); + thisTry.correct = (size === thisTry.actual); + + // log attempts and alert the user of this *non-fatal error* (if showDebugMessages) + if ( tries.length === 1) { + _log(msg, false, true); + _log(lastTry, false, true); + } + _log(thisTry, false, true); + // after 4 tries, is as close as its gonna get! + if (tries.length > 3) break; + + tries.push( thisTry ); + lastTry = tries[ tries.length - 1 ]; + } + // END TESTING CODE + + // update pane-state dimensions + s.size = size; + $.extend(s, elDims($P)); + + if (s.isVisible && $P.is(":visible")) { + // reposition the resizer-bar + if ($R) $R.css( side, size + sC[inset] ); + // resize the content-div + sizeContent(pane); + } + + if (!skipCallback && !skipResizeWhileDragging && state.initialized && s.isVisible) + _runCallbacks("onresize_end", pane); + + // resize all the adjacent panes, and adjust their toggler buttons + // when skipCallback passed, it means the controlling method will handle 'other panes' + if (!skipCallback) { + // also no callback if live-resize is in progress and NOT triggerEventsDuringLiveResize + if (!s.isSliding) sizeMidPanes(_c[pane].dir=="horz" ? "" : "center", skipResizeWhileDragging, force); + sizeHandles(); + } + + // if opposite-pane was autoClosed, see if it can be autoOpened now + var altPane = _c.oppositeEdge[pane]; + if (size < oldSize && state[ altPane ].noRoom) { + setSizeLimits( altPane ); + makePaneFit( altPane, false, skipCallback ); + } + + // DEBUG - ALERT user/developer so they know there was a sizing problem + if (tries.length > 1) + _log(msg +'\nSee the Error Console for details.', true, true); + } + } + + /** + * @see initPanes(), sizePane(), resizeAll(), open(), close(), hide() + * @param {Array.|string} panes The pane(s) being resized, comma-delmited string + * @param {boolean=} [skipCallback=false] Should the onresize callback be run? + * @param {boolean=} [force=false] + */ +, sizeMidPanes = function (panes, skipCallback, force) { + panes = (panes ? panes : "east,west,center").split(","); + + $.each(panes, function (i, pane) { + if (!$Ps[pane]) return; // NO PANE - skip + var + o = options[pane] + , s = state[pane] + , $P = $Ps[pane] + , $R = $Rs[pane] + , isCenter= (pane=="center") + , hasRoom = true + , CSS = {} + , newCenter = calcNewCenterPaneDims() + ; + // update pane-state dimensions + $.extend(s, elDims($P)); + + if (pane === "center") { + if (!force && s.isVisible && newCenter.width === s.outerWidth && newCenter.height === s.outerHeight) + return true; // SKIP - pane already the correct size + // set state for makePaneFit() logic + $.extend(s, cssMinDims(pane), { + maxWidth: newCenter.width + , maxHeight: newCenter.height + }); + CSS = newCenter; + // convert OUTER width/height to CSS width/height + CSS.width = cssW($P, CSS.width); + // NEW - allow pane to extend 'below' visible area rather than hide it + CSS.height = cssH($P, CSS.height); + hasRoom = CSS.width >= 0 && CSS.height >= 0; // height >= 0 = ALWAYS TRUE NOW + // during layout init, try to shrink east/west panes to make room for center + if (!state.initialized && o.minWidth > s.outerWidth) { + var + reqPx = o.minWidth - s.outerWidth + , minE = options.east.minSize || 0 + , minW = options.west.minSize || 0 + , sizeE = state.east.size + , sizeW = state.west.size + , newE = sizeE + , newW = sizeW + ; + if (reqPx > 0 && state.east.isVisible && sizeE > minE) { + newE = max( sizeE-minE, sizeE-reqPx ); + reqPx -= sizeE-newE; + } + if (reqPx > 0 && state.west.isVisible && sizeW > minW) { + newW = max( sizeW-minW, sizeW-reqPx ); + reqPx -= sizeW-newW; + } + // IF we found enough extra space, then resize the border panes as calculated + if (reqPx === 0) { + if (sizeE && sizeE != minE) + sizePane('east', newE, true, force, true); // true = skipCallback/noAnimation - initPanes will handle when done + if (sizeW && sizeW != minW) + sizePane('west', newW, true, force, true); + // now start over! + sizeMidPanes('center', skipCallback, force); + return; // abort this loop + } + } + } + else { // for east and west, set only the height, which is same as center height + // set state.min/maxWidth/Height for makePaneFit() logic + if (s.isVisible && !s.noVerticalRoom) + $.extend(s, elDims($P), cssMinDims(pane)) + if (!force && !s.noVerticalRoom && newCenter.height === s.outerHeight) + return true; // SKIP - pane already the correct size + // east/west have same top, bottom & height as center + CSS.top = newCenter.top; + CSS.bottom = newCenter.bottom; + // NEW - allow pane to extend 'below' visible area rather than hide it + CSS.height = cssH($P, newCenter.height); + s.maxHeight = CSS.height; + hasRoom = (s.maxHeight >= 0); // ALWAYS TRUE NOW + if (!hasRoom) s.noVerticalRoom = true; // makePaneFit() logic + } + + if (hasRoom) { + // resizeAll passes skipCallback because it triggers callbacks after ALL panes are resized + if (!skipCallback && state.initialized) + _runCallbacks("onresize_start", pane); + + $P.css(CSS); // apply the CSS to pane + if (pane !== "center") + sizeHandles(pane); // also update resizer length + if (s.noRoom && !s.isClosed && !s.isHidden) + makePaneFit(pane); // will re-open/show auto-closed/hidden pane + if (s.isVisible) { + $.extend(s, elDims($P)); // update pane dimensions + if (state.initialized) sizeContent(pane); // also resize the contents, if exists + } + } + else if (!s.noRoom && s.isVisible) // no room for pane + makePaneFit(pane); // will hide or close pane + + if (!s.isVisible) + return true; // DONE - next pane + + /* + * Extra CSS for IE6 or IE7 in Quirks-mode - add 'width' to NORTH/SOUTH panes + * Normally these panes have only 'left' & 'right' positions so pane auto-sizes + * ALSO required when pane is an IFRAME because will NOT default to 'full width' + * TODO: Can I use width:100% for a north/south iframe? + * TODO: Sounds like a job for $P.outerWidth( sC.innerWidth ) SETTER METHOD + */ + if (pane === "center") { // finished processing midPanes + var fix = browser.isIE6 || !browser.boxModel; + if ($Ps.north && (fix || state.north.tagName=="IFRAME")) + $Ps.north.css("width", cssW($Ps.north, sC.innerWidth)); + if ($Ps.south && (fix || state.south.tagName=="IFRAME")) + $Ps.south.css("width", cssW($Ps.south, sC.innerWidth)); + } + + // resizeAll passes skipCallback because it triggers callbacks after ALL panes are resized + if (!skipCallback && state.initialized) + _runCallbacks("onresize_end", pane); + }); + } + + + /** + * @see window.onresize(), callbacks or custom code + */ +, resizeAll = function (evt) { + // stopPropagation if called by trigger("layoutdestroy") - use evtPane utility + evtPane(evt); + + if (!state.initialized) { + _initLayoutElements(); + return; // no need to resize since we just initialized! + } + var oldW = sC.innerWidth + , oldH = sC.innerHeight + ; + // cannot size layout when 'container' is hidden or collapsed + if (!$N.is(":visible") ) return; + $.extend(state.container, elDims( $N )); // UPDATE container dimensions + if (!sC.outerHeight) return; + + // onresizeall_start will CANCEL resizing if returns false + // state.container has already been set, so user can access this info for calcuations + if (false === _runCallbacks("onresizeall_start")) return false; + + var // see if container is now 'smaller' than before + shrunkH = (sC.innerHeight < oldH) + , shrunkW = (sC.innerWidth < oldW) + , $P, o, s, dir + ; + // NOTE special order for sizing: S-N-E-W + $.each(["south","north","east","west"], function (i, pane) { + if (!$Ps[pane]) return; // no pane - SKIP + s = state[pane]; + o = options[pane]; + dir = _c[pane].dir; + + if (o.autoResize && s.size != o.size) // resize pane to original size set in options + sizePane(pane, o.size, true, true, true); // true=skipCallback/forceResize/noAnimation + else { + setSizeLimits(pane); + makePaneFit(pane, false, true, true); // true=skipCallback/forceResize + } + }); + + sizeMidPanes("", true, true); // true=skipCallback, true=forceResize + sizeHandles(); // reposition the toggler elements + + // trigger all individual pane callbacks AFTER layout has finished resizing + o = options; // reuse alias + $.each(_c.allPanes, function (i, pane) { + $P = $Ps[pane]; + if (!$P) return; // SKIP + if (state[pane].isVisible) // undefined for non-existent panes + _runCallbacks("onresize_end", pane); // callback - if exists + }); + + _runCallbacks("onresizeall_end"); + //_triggerLayoutEvent(pane, 'resizeall'); + } + + /** + * Whenever a pane resizes or opens that has a nested layout, trigger resizeAll + * + * @param {string|Object} evt_or_pane The pane just resized or opened + */ +, resizeChildLayout = function (evt_or_pane) { + var pane = evtPane.call(this, evt_or_pane); + if (!options[pane].resizeChildLayout) return; + var $P = $Ps[pane] + , $C = $Cs[pane] + , d = "layout" + , P = Instance[pane] + , L = children[pane] + ; + // user may have manually set EITHER instance pointer, so handle that + if (P.child && !L) { + // have to reverse the pointers! + var el = P.child.container; + L = children[pane] = (el ? el.data(d) : 0) || null; // set pointer _directly_ to layout instance + } + + // if a layout-pointer exists, see if child has been destroyed + if (L && L.destroyed) + L = children[pane] = null; // clear child pointers + // no child layout pointer is set - see if there is a child layout NOW + if (!L) L = children[pane] = $P.data(d) || ($C ? $C.data(d) : 0) || null; // set/update child pointers + + // ALWAYS refresh the pane.child alias + P.child = children[pane]; + + if (L) L.resizeAll(); + } + + + /** + * IF pane has a content-div, then resize all elements inside pane to fit pane-height + * + * @param {string|Object} evt_or_panes The pane(s) being resized + * @param {boolean=} [remeasure=false] Should the content (header/footer) be remeasured? + */ +, sizeContent = function (evt_or_panes, remeasure) { + if (!isInitialized()) return; + + var panes = evtPane.call(this, evt_or_panes); + panes = panes ? panes.split(",") : _c.allPanes; + + $.each(panes, function (idx, pane) { + var + $P = $Ps[pane] + , $C = $Cs[pane] + , o = options[pane] + , s = state[pane] + , m = s.content // m = measurements + ; + if (!$P || !$C || !$P.is(":visible")) return true; // NOT VISIBLE - skip + + // if content-element was REMOVED, update OR remove the pointer + if (!$C.length) { + initContent(pane, false); // false = do NOT sizeContent() - already there! + if (!$C) return; // no replacement element found - pointer have been removed + } + + // onsizecontent_start will CANCEL resizing if returns false + if (false === _runCallbacks("onsizecontent_start", pane)) return; + + // skip re-measuring offsets if live-resizing + if ((!s.isMoving && !s.isResizing) || o.liveContentResizing || remeasure || m.top == undefined) { + _measure(); + // if any footers are below pane-bottom, they may not measure correctly, + // so allow pane overflow and re-measure + if (m.hiddenFooters > 0 && $P.css("overflow") === "hidden") { + $P.css("overflow", "visible"); + _measure(); // remeasure while overflowing + $P.css("overflow", "hidden"); + } + } + // NOTE: spaceAbove/Below *includes* the pane paddingTop/Bottom, but not pane.borders + var newH = s.innerHeight - (m.spaceAbove - s.css.paddingTop) - (m.spaceBelow - s.css.paddingBottom); + + if (!$C.is(":visible") || m.height != newH) { + // size the Content element to fit new pane-size - will autoHide if not enough room + setOuterHeight($C, newH, true); // true=autoHide + m.height = newH; // save new height + }; + + if (state.initialized) + _runCallbacks("onsizecontent_end", pane); + + function _below ($E) { + return max(s.css.paddingBottom, (parseInt($E.css("marginBottom"), 10) || 0)); + }; + + function _measure () { + var + ignore = options[pane].contentIgnoreSelector + , $Fs = $C.nextAll().not(ignore || ':lt(0)') // not :lt(0) = ALL + , $Fs_vis = $Fs.filter(':visible') + , $F = $Fs_vis.filter(':last') + ; + m = { + top: $C[0].offsetTop + , height: $C.outerHeight() + , numFooters: $Fs.length + , hiddenFooters: $Fs.length - $Fs_vis.length + , spaceBelow: 0 // correct if no content footer ($E) + } + m.spaceAbove = m.top; // just for state - not used in calc + m.bottom = m.top + m.height; + if ($F.length) + //spaceBelow = (LastFooter.top + LastFooter.height) [footerBottom] - Content.bottom + max(LastFooter.marginBottom, pane.paddingBotom) + m.spaceBelow = ($F[0].offsetTop + $F.outerHeight()) - m.bottom + _below($F); + else // no footer - check marginBottom on Content element itself + m.spaceBelow = _below($C); + }; + }); + } + + + /** + * Called every time a pane is opened, closed, or resized to slide the togglers to 'center' and adjust their length if necessary + * + * @see initHandles(), open(), close(), resizeAll() + * @param {string|Object} evt_or_panes The pane(s) being resized + */ +, sizeHandles = function (evt_or_panes) { + var panes = evtPane.call(this, evt_or_panes) + panes = panes ? panes.split(",") : _c.borderPanes; + + $.each(panes, function (i, pane) { + var + o = options[pane] + , s = state[pane] + , $P = $Ps[pane] + , $R = $Rs[pane] + , $T = $Ts[pane] + , $TC + ; + if (!$P || !$R) return; + + var + dir = _c[pane].dir + , _state = (s.isClosed ? "_closed" : "_open") + , spacing = o["spacing"+ _state] + , togAlign = o["togglerAlign"+ _state] + , togLen = o["togglerLength"+ _state] + , paneLen + , left + , offset + , CSS = {} + ; + + if (spacing === 0) { + $R.hide(); + return; + } + else if (!s.noRoom && !s.isHidden) // skip if resizer was hidden for any reason + $R.show(); // in case was previously hidden + + // Resizer Bar is ALWAYS same width/height of pane it is attached to + if (dir === "horz") { // north/south + //paneLen = $P.outerWidth(); // s.outerWidth || + paneLen = sC.innerWidth; // handle offscreen-panes + s.resizerLength = paneLen; + left = $.layout.cssNum($P, "left") + $R.css({ + width: cssW($R, paneLen) // account for borders & padding + , height: cssH($R, spacing) // ditto + , left: left > -9999 ? left : sC.insetLeft // handle offscreen-panes + }); + } + else { // east/west + paneLen = $P.outerHeight(); // s.outerHeight || + s.resizerLength = paneLen; + $R.css({ + height: cssH($R, paneLen) // account for borders & padding + , width: cssW($R, spacing) // ditto + , top: sC.insetTop + getPaneSize("north", true) // TODO: what if no North pane? + //, top: $.layout.cssNum($Ps["center"], "top") + }); + } + + // remove hover classes + removeHover( o, $R ); + + if ($T) { + if (togLen === 0 || (s.isSliding && o.hideTogglerOnSlide)) { + $T.hide(); // always HIDE the toggler when 'sliding' + return; + } + else + $T.show(); // in case was previously hidden + + if (!(togLen > 0) || togLen === "100%" || togLen > paneLen) { + togLen = paneLen; + offset = 0; + } + else { // calculate 'offset' based on options.PANE.togglerAlign_open/closed + if (isStr(togAlign)) { + switch (togAlign) { + case "top": + case "left": offset = 0; + break; + case "bottom": + case "right": offset = paneLen - togLen; + break; + case "middle": + case "center": + default: offset = round((paneLen - togLen) / 2); // 'default' catches typos + } + } + else { // togAlign = number + var x = parseInt(togAlign, 10); // + if (togAlign >= 0) offset = x; + else offset = paneLen - togLen + x; // NOTE: x is negative! + } + } + + if (dir === "horz") { // north/south + var width = cssW($T, togLen); + $T.css({ + width: width // account for borders & padding + , height: cssH($T, spacing) // ditto + , left: offset // TODO: VERIFY that toggler positions correctly for ALL values + , top: 0 + }); + // CENTER the toggler content SPAN + $T.children(".content").each(function(){ + $TC = $(this); + $TC.css("marginLeft", round((width-$TC.outerWidth())/2)); // could be negative + }); + } + else { // east/west + var height = cssH($T, togLen); + $T.css({ + height: height // account for borders & padding + , width: cssW($T, spacing) // ditto + , top: offset // POSITION the toggler + , left: 0 + }); + // CENTER the toggler content SPAN + $T.children(".content").each(function(){ + $TC = $(this); + $TC.css("marginTop", round((height-$TC.outerHeight())/2)); // could be negative + }); + } + + // remove ALL hover classes + removeHover( 0, $T ); + } + + // DONE measuring and sizing this resizer/toggler, so can be 'hidden' now + if (!state.initialized && (o.initHidden || s.noRoom)) { + $R.hide(); + if ($T) $T.hide(); + } + }); + } + + + /** + * @param {string|Object} evt_or_pane + */ +, enableClosable = function (evt_or_pane) { + if (!isInitialized()) return; + var pane = evtPane.call(this, evt_or_pane) + , $T = $Ts[pane] + , o = options[pane] + ; + if (!$T) return; + o.closable = true; + $T .bind("click."+ sID, function(evt){ evt.stopPropagation(); toggle(pane); }) + .css("visibility", "visible") + .css("cursor", "pointer") + .attr("title", state[pane].isClosed ? o.tips.Open : o.tips.Close) // may be blank + .show(); + } + /** + * @param {string|Object} evt_or_pane + * @param {boolean=} [hide=false] + */ +, disableClosable = function (evt_or_pane, hide) { + if (!isInitialized()) return; + var pane = evtPane.call(this, evt_or_pane) + , $T = $Ts[pane] + ; + if (!$T) return; + options[pane].closable = false; + // is closable is disable, then pane MUST be open! + if (state[pane].isClosed) open(pane, false, true); + $T .unbind("."+ sID) + .css("visibility", hide ? "hidden" : "visible") // instead of hide(), which creates logic issues + .css("cursor", "default") + .attr("title", ""); + } + + + /** + * @param {string|Object} evt_or_pane + */ +, enableSlidable = function (evt_or_pane) { + if (!isInitialized()) return; + var pane = evtPane.call(this, evt_or_pane) + , $R = $Rs[pane] + ; + if (!$R || !$R.data('draggable')) return; + options[pane].slidable = true; + if (state[pane].isClosed) + bindStartSlidingEvent(pane, true); + } + /** + * @param {string|Object} evt_or_pane + */ +, disableSlidable = function (evt_or_pane) { + if (!isInitialized()) return; + var pane = evtPane.call(this, evt_or_pane) + , $R = $Rs[pane] + ; + if (!$R) return; + options[pane].slidable = false; + if (state[pane].isSliding) + close(pane, false, true); + else { + bindStartSlidingEvent(pane, false); + $R .css("cursor", "default") + .attr("title", ""); + removeHover(null, $R[0]); // in case currently hovered + } + } + + + /** + * @param {string|Object} evt_or_pane + */ +, enableResizable = function (evt_or_pane) { + if (!isInitialized()) return; + var pane = evtPane.call(this, evt_or_pane) + , $R = $Rs[pane] + , o = options[pane] + ; + if (!$R || !$R.data('draggable')) return; + o.resizable = true; + $R.draggable("enable"); + if (!state[pane].isClosed) + $R .css("cursor", o.resizerCursor) + .attr("title", o.tips.Resize); + } + /** + * @param {string|Object} evt_or_pane + */ +, disableResizable = function (evt_or_pane) { + if (!isInitialized()) return; + var pane = evtPane.call(this, evt_or_pane) + , $R = $Rs[pane] + ; + if (!$R || !$R.data('draggable')) return; + options[pane].resizable = false; + $R .draggable("disable") + .css("cursor", "default") + .attr("title", ""); + removeHover(null, $R[0]); // in case currently hovered + } + + + /** + * Move a pane from source-side (eg, west) to target-side (eg, east) + * If pane exists on target-side, move that to source-side, ie, 'swap' the panes + * + * @param {string|Object} evt_or_pane1 The pane/edge being swapped + * @param {string} pane2 ditto + */ +, swapPanes = function (evt_or_pane1, pane2) { + if (!isInitialized()) return; + var pane1 = evtPane.call(this, evt_or_pane1); + // change state.edge NOW so callbacks can know where pane is headed... + state[pane1].edge = pane2; + state[pane2].edge = pane1; + // run these even if NOT state.initialized + if (false === _runCallbacks("onswap_start", pane1) + || false === _runCallbacks("onswap_start", pane2) + ) { + state[pane1].edge = pane1; // reset + state[pane2].edge = pane2; + return; + } + + var + oPane1 = copy( pane1 ) + , oPane2 = copy( pane2 ) + , sizes = {} + ; + sizes[pane1] = oPane1 ? oPane1.state.size : 0; + sizes[pane2] = oPane2 ? oPane2.state.size : 0; + + // clear pointers & state + $Ps[pane1] = false; + $Ps[pane2] = false; + state[pane1] = {}; + state[pane2] = {}; + + // ALWAYS remove the resizer & toggler elements + if ($Ts[pane1]) $Ts[pane1].remove(); + if ($Ts[pane2]) $Ts[pane2].remove(); + if ($Rs[pane1]) $Rs[pane1].remove(); + if ($Rs[pane2]) $Rs[pane2].remove(); + $Rs[pane1] = $Rs[pane2] = $Ts[pane1] = $Ts[pane2] = false; + + // transfer element pointers and data to NEW Layout keys + move( oPane1, pane2 ); + move( oPane2, pane1 ); + + // cleanup objects + oPane1 = oPane2 = sizes = null; + + // make panes 'visible' again + if ($Ps[pane1]) $Ps[pane1].css(_c.visible); + if ($Ps[pane2]) $Ps[pane2].css(_c.visible); + + // fix any size discrepancies caused by swap + resizeAll(); + + // run these even if NOT state.initialized + _runCallbacks("onswap_end", pane1); + _runCallbacks("onswap_end", pane2); + + return; + + function copy (n) { // n = pane + var + $P = $Ps[n] + , $C = $Cs[n] + ; + return !$P ? false : { + pane: n + , P: $P ? $P[0] : false + , C: $C ? $C[0] : false + , state: $.extend(true, {}, state[n]) + , options: $.extend(true, {}, options[n]) + } + }; + + function move (oPane, pane) { + if (!oPane) return; + var + P = oPane.P + , C = oPane.C + , oldPane = oPane.pane + , c = _c[pane] + , side = c.side.toLowerCase() + , inset = "inset"+ c.side + // save pane-options that should be retained + , s = $.extend(true, {}, state[pane]) + , o = options[pane] + // RETAIN side-specific FX Settings - more below + , fx = { resizerCursor: o.resizerCursor } + , re, size, pos + ; + $.each("fxName,fxSpeed,fxSettings".split(","), function (i, k) { + fx[k +"_open"] = o[k +"_open"]; + fx[k +"_close"] = o[k +"_close"]; + fx[k +"_size"] = o[k +"_size"]; + }); + + // update object pointers and attributes + $Ps[pane] = $(P) + .data({ + layoutPane: Instance[pane] // NEW pointer to pane-alias-object + , layoutEdge: pane + }) + .css(_c.hidden) + .css(c.cssReq) + ; + $Cs[pane] = C ? $(C) : false; + + // set options and state + options[pane] = $.extend(true, {}, oPane.options, fx); + state[pane] = $.extend(true, {}, oPane.state); + + // change classNames on the pane, eg: ui-layout-pane-east ==> ui-layout-pane-west + re = new RegExp(o.paneClass +"-"+ oldPane, "g"); + P.className = P.className.replace(re, o.paneClass +"-"+ pane); + + // ALWAYS regenerate the resizer & toggler elements + initHandles(pane); // create the required resizer & toggler + + // if moving to different orientation, then keep 'target' pane size + if (c.dir != _c[oldPane].dir) { + size = sizes[pane] || 0; + setSizeLimits(pane); // update pane-state + size = max(size, state[pane].minSize); + // use manualSizePane to disable autoResize - not useful after panes are swapped + manualSizePane(pane, size, true, true); // true/true = skipCallback/noAnimation + } + else // move the resizer here + $Rs[pane].css(side, sC[inset] + (state[pane].isVisible ? getPaneSize(pane) : 0)); + + + // ADD CLASSNAMES & SLIDE-BINDINGS + if (oPane.state.isVisible && !s.isVisible) + setAsOpen(pane, true); // true = skipCallback + else { + setAsClosed(pane); + bindStartSlidingEvent(pane, true); // will enable events IF option is set + } + + // DESTROY the object + oPane = null; + }; + } + + + /** + * INTERNAL method to sync pin-buttons when pane is opened or closed + * Unpinned means the pane is 'sliding' - ie, over-top of the adjacent panes + * + * @see open(), setAsOpen(), setAsClosed() + * @param {string} pane These are the params returned to callbacks by layout() + * @param {boolean} doPin True means set the pin 'down', False means 'up' + */ +, syncPinBtns = function (pane, doPin) { + if ($.layout.plugins.buttons) + $.each(state[pane].pins, function (i, selector) { + $.layout.buttons.setPinState(Instance, $(selector), pane, doPin); + }); + } + +; // END var DECLARATIONS + + /** + * Capture keys when enableCursorHotkey - toggle pane if hotkey pressed + * + * @see document.keydown() + */ + function keyDown (evt) { + if (!evt) return true; + var code = evt.keyCode; + if (code < 33) return true; // ignore special keys: ENTER, TAB, etc + + var + PANE = { + 38: "north" // Up Cursor - $.ui.keyCode.UP + , 40: "south" // Down Cursor - $.ui.keyCode.DOWN + , 37: "west" // Left Cursor - $.ui.keyCode.LEFT + , 39: "east" // Right Cursor - $.ui.keyCode.RIGHT + } + , ALT = evt.altKey // no worky! + , SHIFT = evt.shiftKey + , CTRL = evt.ctrlKey + , CURSOR = (CTRL && code >= 37 && code <= 40) + , o, k, m, pane + ; + + if (CURSOR && options[PANE[code]].enableCursorHotkey) // valid cursor-hotkey + pane = PANE[code]; + else if (CTRL || SHIFT) // check to see if this matches a custom-hotkey + $.each(_c.borderPanes, function (i, p) { // loop each pane to check its hotkey + o = options[p]; + k = o.customHotkey; + m = o.customHotkeyModifier; // if missing or invalid, treated as "CTRL+SHIFT" + if ((SHIFT && m=="SHIFT") || (CTRL && m=="CTRL") || (CTRL && SHIFT)) { // Modifier matches + if (k && code === (isNaN(k) || k <= 9 ? k.toUpperCase().charCodeAt(0) : k)) { // Key matches + pane = p; + return false; // BREAK + } + } + }); + + // validate pane + if (!pane || !$Ps[pane] || !options[pane].closable || state[pane].isHidden) + return true; + + toggle(pane); + + evt.stopPropagation(); + evt.returnValue = false; // CANCEL key + return false; + }; + + +/* + * ###################################### + * UTILITY METHODS + * called externally or by initButtons + * ###################################### + */ + + /** + * Change/reset a pane overflow setting & zIndex to allow popups/drop-downs to work + * + * @param {Object=} [el] (optional) Can also be 'bound' to a click, mouseOver, or other event + */ + function allowOverflow (el) { + if (!isInitialized()) return; + if (this && this.tagName) el = this; // BOUND to element + var $P; + if (isStr(el)) + $P = $Ps[el]; + else if ($(el).data("layoutRole")) + $P = $(el); + else + $(el).parents().each(function(){ + if ($(this).data("layoutRole")) { + $P = $(this); + return false; // BREAK + } + }); + if (!$P || !$P.length) return; // INVALID + + var + pane = $P.data("layoutEdge") + , s = state[pane] + ; + + // if pane is already raised, then reset it before doing it again! + // this would happen if allowOverflow is attached to BOTH the pane and an element + if (s.cssSaved) + resetOverflow(pane); // reset previous CSS before continuing + + // if pane is raised by sliding or resizing, or its closed, then abort + if (s.isSliding || s.isResizing || s.isClosed) { + s.cssSaved = false; + return; + } + + var + newCSS = { zIndex: (options.zIndexes.resizer_normal + 1) } + , curCSS = {} + , of = $P.css("overflow") + , ofX = $P.css("overflowX") + , ofY = $P.css("overflowY") + ; + // determine which, if any, overflow settings need to be changed + if (of != "visible") { + curCSS.overflow = of; + newCSS.overflow = "visible"; + } + if (ofX && !ofX.match(/(visible|auto)/)) { + curCSS.overflowX = ofX; + newCSS.overflowX = "visible"; + } + if (ofY && !ofY.match(/(visible|auto)/)) { + curCSS.overflowY = ofX; + newCSS.overflowY = "visible"; + } + + // save the current overflow settings - even if blank! + s.cssSaved = curCSS; + + // apply new CSS to raise zIndex and, if necessary, make overflow 'visible' + $P.css( newCSS ); + + // make sure the zIndex of all other panes is normal + $.each(_c.allPanes, function(i, p) { + if (p != pane) resetOverflow(p); + }); + + }; + /** + * @param {Object=} [el] (optional) Can also be 'bound' to a click, mouseOver, or other event + */ + function resetOverflow (el) { + if (!isInitialized()) return; + if (this && this.tagName) el = this; // BOUND to element + var $P; + if (isStr(el)) + $P = $Ps[el]; + else if ($(el).data("layoutRole")) + $P = $(el); + else + $(el).parents().each(function(){ + if ($(this).data("layoutRole")) { + $P = $(this); + return false; // BREAK + } + }); + if (!$P || !$P.length) return; // INVALID + + var + pane = $P.data("layoutEdge") + , s = state[pane] + , CSS = s.cssSaved || {} + ; + // reset the zIndex + if (!s.isSliding && !s.isResizing) + $P.css("zIndex", options.zIndexes.pane_normal); + + // reset Overflow - if necessary + $P.css( CSS ); + + // clear var + s.cssSaved = false; + }; + +/* + * ##################### + * CREATE/RETURN LAYOUT + * ##################### + */ + + // validate that container exists + var $N = $(this).eq(0); // FIRST matching Container element + if (!$N.length) { + return _log( options.errors.containerMissing ); + }; + + // Users retrieve Instance of a layout with: $N.layout() OR $N.data("layout") + // return the Instance-pointer if layout has already been initialized + if ($N.data("layoutContainer") && $N.data("layout")) + return $N.data("layout"); // cached pointer + + // init global vars + var + $Ps = {} // Panes x5 - set in initPanes() + , $Cs = {} // Content x5 - set in initPanes() + , $Rs = {} // Resizers x4 - set in initHandles() + , $Ts = {} // Togglers x4 - set in initHandles() + , $Ms = $([]) // Masks - up to 2 masks per pane (IFRAME + DIV) + // aliases for code brevity + , sC = state.container // alias for easy access to 'container dimensions' + , sID = state.id // alias for unique layout ID/namespace - eg: "layout435" + ; + + // create Instance object to expose data & option Properties, and primary action Methods + var Instance = { + // layout data + options: options // property - options hash + , state: state // property - dimensions hash + // object pointers + , container: $N // property - object pointers for layout container + , panes: $Ps // property - object pointers for ALL Panes: panes.north, panes.center + , contents: $Cs // property - object pointers for ALL Content: contents.north, contents.center + , resizers: $Rs // property - object pointers for ALL Resizers, eg: resizers.north + , togglers: $Ts // property - object pointers for ALL Togglers, eg: togglers.north + // border-pane open/close + , hide: hide // method - ditto + , show: show // method - ditto + , toggle: toggle // method - pass a 'pane' ("north", "west", etc) + , open: open // method - ditto + , close: close // method - ditto + , slideOpen: slideOpen // method - ditto + , slideClose: slideClose // method - ditto + , slideToggle: slideToggle // method - ditto + // pane actions + , setSizeLimits: setSizeLimits // method - pass a 'pane' - update state min/max data + , _sizePane: sizePane // method -intended for user by plugins only! + , sizePane: manualSizePane // method - pass a 'pane' AND an 'outer-size' in pixels or percent, or 'auto' + , sizeContent: sizeContent // method - pass a 'pane' + , swapPanes: swapPanes // method - pass TWO 'panes' - will swap them + , showMasks: showMasks // method - pass a 'pane' OR list of panes - default = all panes with mask option set + , hideMasks: hideMasks // method - ditto' + // pane element methods + , initContent: initContent // method - ditto + , addPane: addPane // method - pass a 'pane' + , removePane: removePane // method - pass a 'pane' to remove from layout, add 'true' to delete the pane-elem + , createChildLayout: createChildLayout// method - pass a 'pane' and (optional) layout-options (OVERRIDES options[pane].childOptions + // special pane option setting + , enableClosable: enableClosable // method - pass a 'pane' + , disableClosable: disableClosable // method - ditto + , enableSlidable: enableSlidable // method - ditto + , disableSlidable: disableSlidable // method - ditto + , enableResizable: enableResizable // method - ditto + , disableResizable: disableResizable// method - ditto + // utility methods for panes + , allowOverflow: allowOverflow // utility - pass calling element (this) + , resetOverflow: resetOverflow // utility - ditto + // layout control + , destroy: destroy // method - no parameters + , initPanes: isInitialized // method - no parameters + , resizeAll: resizeAll // method - no parameters + // callback triggering + , runCallbacks: _runCallbacks // method - pass evtName & pane (if a pane-event), eg: trigger("onopen", "west") + // alias collections of options, state and children - created in addPane and extended elsewhere + , hasParentLayout: false // set by initContainer() + , children: children // pointers to child-layouts, eg: Instance.children["west"] + , north: false // alias group: { name: pane, pane: $Ps[pane], options: options[pane], state: state[pane], child: children[pane] } + , south: false // ditto + , west: false // ditto + , east: false // ditto + , center: false // ditto + }; + + // create the border layout NOW + if (_create() === 'cancel') // onload_start callback returned false to CANCEL layout creation + return null; + else // true OR false -- if layout-elements did NOT init (hidden or do not exist), can auto-init later + return Instance; // return the Instance object + +} + + +/* OLD versions of jQuery only set $.support.boxModel after page is loaded + * so if this is IE, use support.boxModel to test for quirks-mode (ONLY IE changes boxModel). + */ +$(function(){ + var b = $.layout.browser; + if (b.msie) b.boxModel = $.support.boxModel; +}); + + +/** + * jquery.layout.state 1.0 + * $Date: 2011-07-16 08:00:00 (Sat, 16 July 2011) $ + * + * Copyright (c) 2010 + * Kevin Dalman (http://allpro.net) + * + * Dual licensed under the GPL (http://www.gnu.org/licenses/gpl.html) + * and MIT (http://www.opensource.org/licenses/mit-license.php) licenses. + * + * @dependancies: UI Layout 1.3.0.rc30.1 or higher + * @dependancies: $.ui.cookie (above) + * + * @support: http://groups.google.com/group/jquery-ui-layout + */ +/* + * State-management options stored in options.stateManagement, which includes a .cookie hash + * Default options saves ALL KEYS for ALL PANES, ie: pane.size, pane.isClosed, pane.isHidden + * + * // STATE/COOKIE OPTIONS + * @example $(el).layout({ + stateManagement: { + enabled: true + , stateKeys: "east.size,west.size,east.isClosed,west.isClosed" + , cookie: { name: "appLayout", path: "/" } + } + }) + * @example $(el).layout({ stateManagement__enabled: true }) // enable auto-state-management using cookies + * @example $(el).layout({ stateManagement__cookie: { name: "appLayout", path: "/" } }) + * @example $(el).layout({ stateManagement__cookie__name: "appLayout", stateManagement__cookie__path: "/" }) + * + * // STATE/COOKIE METHODS + * @example myLayout.saveCookie( "west.isClosed,north.size,south.isHidden", {expires: 7} ); + * @example myLayout.loadCookie(); + * @example myLayout.deleteCookie(); + * @example var JSON = myLayout.readState(); // CURRENT Layout State + * @example var JSON = myLayout.readCookie(); // SAVED Layout State (from cookie) + * @example var JSON = myLayout.state.stateData; // LAST LOADED Layout State (cookie saved in layout.state hash) + * + * CUSTOM STATE-MANAGEMENT (eg, saved in a database) + * @example var JSON = myLayout.readState( "west.isClosed,north.size,south.isHidden" ); + * @example myLayout.loadState( JSON ); + */ + +/** + * UI COOKIE UTILITY + * + * A $.cookie OR $.ui.cookie namespace *should be standard*, but until then... + * This creates $.ui.cookie so Layout does not need the cookie.jquery.js plugin + * NOTE: This utility is REQUIRED by the layout.state plugin + * + * Cookie methods in Layout are created as part of State Management + */ +if (!$.ui) $.ui = {}; +$.ui.cookie = { + + // cookieEnabled is not in DOM specs, but DOES works in all browsers,including IE6 + acceptsCookies: !!navigator.cookieEnabled + +, read: function (name) { + var + c = document.cookie + , cs = c ? c.split(';') : [] + , pair // loop var + ; + for (var i=0, n=cs.length; i < n; i++) { + pair = $.trim(cs[i]).split('='); // name=value pair + if (pair[0] == name) // found the layout cookie + return decodeURIComponent(pair[1]); + + } + return null; + } + +, write: function (name, val, cookieOpts) { + var + params = '' + , date = '' + , clear = false + , o = cookieOpts || {} + , x = o.expires + ; + if (x && x.toUTCString) + date = x; + else if (x === null || typeof x === 'number') { + date = new Date(); + if (x > 0) + date.setDate(date.getDate() + x); + else { + date.setFullYear(1970); + clear = true; + } + } + if (date) params += ';expires='+ date.toUTCString(); + if (o.path) params += ';path='+ o.path; + if (o.domain) params += ';domain='+ o.domain; + if (o.secure) params += ';secure'; + document.cookie = name +'='+ (clear ? "" : encodeURIComponent( val )) + params; // write or clear cookie + } + +, clear: function (name) { + $.ui.cookie.write(name, '', {expires: -1}); + } + +}; +// if cookie.jquery.js is not loaded, create an alias to replicate it +// this may be useful to other plugins or code dependent on that plugin +if (!$.cookie) $.cookie = function (k, v, o) { + var C = $.ui.cookie; + if (v === null) + C.clear(k); + else if (v === undefined) + return C.read(k); + else + C.write(k, v, o); +}; + + +// tell Layout that the state plugin is available +$.layout.plugins.stateManagement = true; + +// Add State-Management options to layout.defaults +$.layout.config.optionRootKeys.push("stateManagement"); +$.layout.defaults.stateManagement = { + enabled: false // true = enable state-management, even if not using cookies +, autoSave: true // Save a state-cookie when page exits? +, autoLoad: true // Load the state-cookie when Layout inits? + // List state-data to save - must be pane-specific +, stateKeys: "north.size,south.size,east.size,west.size,"+ + "north.isClosed,south.isClosed,east.isClosed,west.isClosed,"+ + "north.isHidden,south.isHidden,east.isHidden,west.isHidden" +, cookie: { + name: "" // If not specified, will use Layout.name, else just "Layout" + , domain: "" // blank = current domain + , path: "" // blank = current page, '/' = entire website + , expires: "" // 'days' to keep cookie - leave blank for 'session cookie' + , secure: false + } +}; +// Set stateManagement as a layout-option, NOT a pane-option +$.layout.optionsMap.layout.push("stateManagement"); + +/* + * State Management methods + */ +$.layout.state = { + + /** + * Get the current layout state and save it to a cookie + * + * myLayout.saveCookie( keys, cookieOpts ) + * + * @param {Object} inst + * @param {(string|Array)=} keys + * @param {Object=} cookieOpts + */ + saveCookie: function (inst, keys, cookieOpts) { + var o = inst.options + , oS = o.stateManagement + , oC = $.extend(true, {}, oS.cookie, cookieOpts || null) + , data = inst.state.stateData = inst.readState( keys || oS.stateKeys ) // read current panes-state + ; + $.ui.cookie.write( oC.name || o.name || "Layout", $.layout.state.encodeJSON(data), oC ); + return $.extend(true, {}, data); // return COPY of state.stateData data + } + + /** + * Remove the state cookie + * + * @param {Object} inst + */ +, deleteCookie: function (inst) { + var o = inst.options; + $.ui.cookie.clear( o.stateManagement.cookie.name || o.name || "Layout" ); + } + + /** + * Read & return data from the cookie - as JSON + * + * @param {Object} inst + */ +, readCookie: function (inst) { + var o = inst.options; + var c = $.ui.cookie.read( o.stateManagement.cookie.name || o.name || "Layout" ); + // convert cookie string back to a hash and return it + return c ? $.layout.state.decodeJSON(c) : {}; + } + + /** + * Get data from the cookie and USE IT to loadState + * + * @param {Object} inst + */ +, loadCookie: function (inst) { + var c = $.layout.state.readCookie(inst); // READ the cookie + if (c) { + inst.state.stateData = $.extend(true, {}, c); // SET state.stateData + inst.loadState(c); // LOAD the retrieved state + } + return c; + } + + /** + * Update layout options from the cookie, if one exists + * + * @param {Object} inst + * @param {Object=} stateData + * @param {boolean=} animate + */ +, loadState: function (inst, stateData, animate) { + stateData = $.layout.transformData( stateData ); // panes = default subkey + if ($.isEmptyObject( stateData )) return; + $.extend(true, inst.options, stateData); // update layout options + // if layout has already been initialized, then UPDATE layout state + if (inst.state.initialized) { + var pane, vis, o, s, h, c + , noAnimate = (animate===false) + ; + $.each($.layout.config.borderPanes, function (idx, pane) { + state = inst.state[pane]; + o = stateData[ pane ]; + if (typeof o != 'object') return; // no key, continue + s = o.size; + c = o.initClosed; + h = o.initHidden; + vis = state.isVisible; + // resize BEFORE opening + if (!vis) + inst.sizePane(pane, s, false, false); + if (h === true) inst.hide(pane, noAnimate); + else if (c === false) inst.open (pane, false, noAnimate); + else if (c === true) inst.close(pane, false, noAnimate); + else if (h === false) inst.show (pane, false, noAnimate); + // resize AFTER any other actions + if (vis) + inst.sizePane(pane, s, false, noAnimate); // animate resize if option passed + }); + }; + } + + /** + * Get the *current layout state* and return it as a hash + * + * @param {Object=} inst + * @param {(string|Array)=} keys + */ +, readState: function (inst, keys) { + var + data = {} + , alt = { isClosed: 'initClosed', isHidden: 'initHidden' } + , state = inst.state + , panes = $.layout.config.allPanes + , pair, pane, key, val + ; + if (!keys) keys = inst.options.stateManagement.stateKeys; // if called by user + if ($.isArray(keys)) keys = keys.join(","); + // convert keys to an array and change delimiters from '__' to '.' + keys = keys.replace(/__/g, ".").split(','); + // loop keys and create a data hash + for (var i=0, n=keys.length; i < n; i++) { + pair = keys[i].split("."); + pane = pair[0]; + key = pair[1]; + if ($.inArray(pane, panes) < 0) continue; // bad pane! + val = state[ pane ][ key ]; + if (val == undefined) continue; + if (key=="isClosed" && state[pane]["isSliding"]) + val = true; // if sliding, then *really* isClosed + ( data[pane] || (data[pane]={}) )[ alt[key] ? alt[key] : key ] = val; + } + return data; + } + + /** + * Stringify a JSON hash so can save in a cookie or db-field + */ +, encodeJSON: function (JSON) { + return parse(JSON); + function parse (h) { + var D=[], i=0, k, v, t; // k = key, v = value + for (k in h) { + v = h[k]; + t = typeof v; + if (t == 'string') // STRING - add quotes + v = '"'+ v +'"'; + else if (t == 'object') // SUB-KEY - recurse into it + v = parse(v); + D[i++] = '"'+ k +'":'+ v; + } + return '{'+ D.join(',') +'}'; + }; + } + + /** + * Convert stringified JSON back to a hash object + * @see $.parseJSON(), adding in jQuery 1.4.1 + */ +, decodeJSON: function (str) { + try { return $.parseJSON ? $.parseJSON(str) : window["eval"]("("+ str +")") || {}; } + catch (e) { return {}; } + } + + +, _create: function (inst) { + var _ = $.layout.state; + // ADD State-Management plugin methods to inst + $.extend( inst, { + // readCookie - update options from cookie - returns hash of cookie data + readCookie: function () { return _.readCookie(inst); } + // deleteCookie + , deleteCookie: function () { _.deleteCookie(inst); } + // saveCookie - optionally pass keys-list and cookie-options (hash) + , saveCookie: function (keys, cookieOpts) { return _.saveCookie(inst, keys, cookieOpts); } + // loadCookie - readCookie and use to loadState() - returns hash of cookie data + , loadCookie: function () { return _.loadCookie(inst); } + // loadState - pass a hash of state to use to update options + , loadState: function (stateData, animate) { _.loadState(inst, stateData, animate); } + // readState - returns hash of current layout-state + , readState: function (keys) { return _.readState(inst, keys); } + // add JSON utility methods too... + , encodeJSON: _.encodeJSON + , decodeJSON: _.decodeJSON + }); + + // init state.stateData key, even if plugin is initially disabled + inst.state.stateData = {}; + + // read and load cookie-data per options + var oS = inst.options.stateManagement; + if (oS.enabled) { + if (oS.autoLoad) // update the options from the cookie + inst.loadCookie(); + else // don't modify options - just store cookie data in state.stateData + inst.state.stateData = inst.readCookie(); + } + } + +, _unload: function (inst) { + var oS = inst.options.stateManagement; + if (oS.enabled) { + if (oS.autoSave) // save a state-cookie automatically + inst.saveCookie(); + else // don't save a cookie, but do store state-data in state.stateData key + inst.state.stateData = inst.readState(); + } + } + +}; + +// add state initialization method to Layout's onCreate array of functions +$.layout.onCreate.push( $.layout.state._create ); +$.layout.onUnload.push( $.layout.state._unload ); + + + + +/** + * jquery.layout.buttons 1.0 + * $Date: 2011-07-16 08:00:00 (Sat, 16 July 2011) $ + * + * Copyright (c) 2010 + * Kevin Dalman (http://allpro.net) + * + * Dual licensed under the GPL (http://www.gnu.org/licenses/gpl.html) + * and MIT (http://www.opensource.org/licenses/mit-license.php) licenses. + * + * @dependancies: UI Layout 1.3.0.rc30.1 or higher + * + * @support: http://groups.google.com/group/jquery-ui-layout + * + * Docs: [ to come ] + * Tips: [ to come ] + */ + +// tell Layout that the state plugin is available +$.layout.plugins.buttons = true; + +// Add buttons options to layout.defaults +$.layout.defaults.autoBindCustomButtons = false; +// Specify autoBindCustomButtons as a layout-option, NOT a pane-option +$.layout.optionsMap.layout.push("autoBindCustomButtons"); + +/* + * Button methods + */ +$.layout.buttons = { + + /** + * Searches for .ui-layout-button-xxx elements and auto-binds them as layout-buttons + * + * @see _create() + * + * @param {Object} inst Layout Instance object + */ + init: function (inst) { + var pre = "ui-layout-button-" + , layout = inst.options.name || "" + , name; + $.each("toggle,open,close,pin,toggle-slide,open-slide".split(","), function (i, action) { + $.each($.layout.config.borderPanes, function (ii, pane) { + $("."+pre+action+"-"+pane).each(function(){ + // if button was previously 'bound', data.layoutName was set, but is blank if layout has no 'name' + name = $(this).data("layoutName") || $(this).attr("layoutName"); + if (name == undefined || name === layout) + inst.bindButton(this, action, pane); + }); + }); + }); + } + + /** + * Helper function to validate params received by addButton utilities + * + * Two classes are added to the element, based on the buttonClass... + * The type of button is appended to create the 2nd className: + * - ui-layout-button-pin // action btnClass + * - ui-layout-button-pin-west // action btnClass + pane + * - ui-layout-button-toggle + * - ui-layout-button-open + * - ui-layout-button-close + * + * @param {Object} inst Layout Instance object + * @param {(string|!Object)} selector jQuery selector (or element) for button, eg: ".ui-layout-north .toggle-button" + * @param {string} pane Name of the pane the button is for: 'north', 'south', etc. + * + * @return {Array.} If both params valid, the element matching 'selector' in a jQuery wrapper - otherwise returns null + */ +, get: function (inst, selector, pane, action) { + var $E = $(selector) + , o = inst.options + , err = o.errors.addButtonError + ; + if (!$E.length) { // element not found + $.layout.msg(err +" "+ o.errors.selector +": "+ selector, true); + } + else if ($.inArray(pane, $.layout.config.borderPanes) < 0) { // invalid 'pane' sepecified + $.layout.msg(err +" "+ o.errors.pane +": "+ pane, true); + $E = $(""); // NO BUTTON + } + else { // VALID + var btn = o[pane].buttonClass +"-"+ action; + $E .addClass( btn +" "+ btn +"-"+ pane ) + .data("layoutName", o.name); // add layout identifier - even if blank! + } + return $E; + } + + + /** + * NEW syntax for binding layout-buttons - will eventually replace addToggle, addOpen, etc. + * + * @param {Object} inst Layout Instance object + * @param {(string|!Object)} selector jQuery selector (or element) for button, eg: ".ui-layout-north .toggle-button" + * @param {string} action + * @param {string} pane + */ +, bind: function (inst, selector, action, pane) { + var _ = $.layout.buttons; + switch (action.toLowerCase()) { + case "toggle": _.addToggle (inst, selector, pane); break; + case "open": _.addOpen (inst, selector, pane); break; + case "close": _.addClose (inst, selector, pane); break; + case "pin": _.addPin (inst, selector, pane); break; + case "toggle-slide": _.addToggle (inst, selector, pane, true); break; + case "open-slide": _.addOpen (inst, selector, pane, true); break; + } + return inst; + } + + /** + * Add a custom Toggler button for a pane + * + * @param {Object} inst Layout Instance object + * @param {(string|!Object)} selector jQuery selector (or element) for button, eg: ".ui-layout-north .toggle-button" + * @param {string} pane Name of the pane the button is for: 'north', 'south', etc. + * @param {boolean=} slide true = slide-open, false = pin-open + */ +, addToggle: function (inst, selector, pane, slide) { + $.layout.buttons.get(inst, selector, pane, "toggle") + .click(function(evt){ + inst.toggle(pane, !!slide); + evt.stopPropagation(); + }); + return inst; + } + + /** + * Add a custom Open button for a pane + * + * @param {Object} inst Layout Instance object + * @param {(string|!Object)} selector jQuery selector (or element) for button, eg: ".ui-layout-north .toggle-button" + * @param {string} pane Name of the pane the button is for: 'north', 'south', etc. + * @param {boolean=} slide true = slide-open, false = pin-open + */ +, addOpen: function (inst, selector, pane, slide) { + $.layout.buttons.get(inst, selector, pane, "open") + .attr("title", inst.options[pane].tips.Open) + .click(function (evt) { + inst.open(pane, !!slide); + evt.stopPropagation(); + }); + return inst; + } + + /** + * Add a custom Close button for a pane + * + * @param {Object} inst Layout Instance object + * @param {(string|!Object)} selector jQuery selector (or element) for button, eg: ".ui-layout-north .toggle-button" + * @param {string} pane Name of the pane the button is for: 'north', 'south', etc. + */ +, addClose: function (inst, selector, pane) { + $.layout.buttons.get(inst, selector, pane, "close") + .attr("title", inst.options[pane].tips.Close) + .click(function (evt) { + inst.close(pane); + evt.stopPropagation(); + }); + return inst; + } + + /** + * Add a custom Pin button for a pane + * + * Four classes are added to the element, based on the paneClass for the associated pane... + * Assuming the default paneClass and the pin is 'up', these classes are added for a west-pane pin: + * - ui-layout-pane-pin + * - ui-layout-pane-west-pin + * - ui-layout-pane-pin-up + * - ui-layout-pane-west-pin-up + * + * @param {Object} inst Layout Instance object + * @param {(string|!Object)} selector jQuery selector (or element) for button, eg: ".ui-layout-north .toggle-button" + * @param {string} pane Name of the pane the pin is for: 'north', 'south', etc. + */ +, addPin: function (inst, selector, pane) { + var _ = $.layout.buttons + , $E = _.get(inst, selector, pane, "pin"); + if ($E.length) { + var s = inst.state[pane]; + $E.click(function (evt) { + _.setPinState(inst, $(this), pane, (s.isSliding || s.isClosed)); + if (s.isSliding || s.isClosed) inst.open( pane ); // change from sliding to open + else inst.close( pane ); // slide-closed + evt.stopPropagation(); + }); + // add up/down pin attributes and classes + _.setPinState(inst, $E, pane, (!s.isClosed && !s.isSliding)); + // add this pin to the pane data so we can 'sync it' automatically + // PANE.pins key is an array so we can store multiple pins for each pane + s.pins.push( selector ); // just save the selector string + } + return inst; + } + + /** + * Change the class of the pin button to make it look 'up' or 'down' + * + * @see addPin(), syncPins() + * + * @param {Object} inst Layout Instance object + * @param {Array.} $Pin The pin-span element in a jQuery wrapper + * @param {string} pane These are the params returned to callbacks by layout() + * @param {boolean} doPin true = set the pin 'down', false = set it 'up' + */ +, setPinState: function (inst, $Pin, pane, doPin) { + var updown = $Pin.attr("pin"); + if (updown && doPin === (updown=="down")) return; // already in correct state + var + o = inst.options[pane] + , pin = o.buttonClass +"-pin" + , side = pin +"-"+ pane + , UP = pin +"-up "+ side +"-up" + , DN = pin +"-down "+side +"-down" + ; + $Pin + .attr("pin", doPin ? "down" : "up") // logic + .attr("title", doPin ? o.tips.Unpin : o.tips.Pin) + .removeClass( doPin ? UP : DN ) + .addClass( doPin ? DN : UP ) + ; + } + + /** + * INTERNAL function to sync 'pin buttons' when pane is opened or closed + * Unpinned means the pane is 'sliding' - ie, over-top of the adjacent panes + * + * @see open(), close() + * + * @param {Object} inst Layout Instance object + * @param {string} pane These are the params returned to callbacks by layout() + * @param {boolean} doPin True means set the pin 'down', False means 'up' + */ +, syncPinBtns: function (inst, pane, doPin) { + // REAL METHOD IS _INSIDE_ LAYOUT - THIS IS HERE JUST FOR REFERENCE + $.each(inst.state[pane].pins, function (i, selector) { + $.layout.buttons.setPinState(inst, $(selector), pane, doPin); + }); + } + + +, _load: function (inst) { + var _ = $.layout.buttons; + // ADD Button methods to Layout Instance + // Note: sel = jQuery Selector string + $.extend( inst, { + bindButton: function (sel, action, pane) { return _.bind(inst, sel, action, pane); } + // DEPRECATED METHODS + , addToggleBtn: function (sel, pane, slide) { return _.addToggle(inst, sel, pane, slide); } + , addOpenBtn: function (sel, pane, slide) { return _.addOpen(inst, sel, pane, slide); } + , addCloseBtn: function (sel, pane) { return _.addClose(inst, sel, pane); } + , addPinBtn: function (sel, pane) { return _.addPin(inst, sel, pane); } + }); + + // init state array to hold pin-buttons + for (var i=0; i<4; i++) { + var pane = $.layout.config.borderPanes[i]; + inst.state[pane].pins = []; + } + + // auto-init buttons onLoad if option is enabled + if ( inst.options.autoBindCustomButtons ) + _.init(inst); + } + +, _unload: function (inst) { + // TODO: unbind all buttons??? + } + +}; + +// add initialization method to Layout's onLoad array of functions +$.layout.onLoad.push( $.layout.buttons._load ); +//$.layout.onUnload.push( $.layout.buttons._unload ); + + + +/** + * jquery.layout.browserZoom 1.0 + * $Date: 2011-12-29 08:00:00 (Thu, 29 Dec 2011) $ + * + * Copyright (c) 2012 + * Kevin Dalman (http://allpro.net) + * + * Dual licensed under the GPL (http://www.gnu.org/licenses/gpl.html) + * and MIT (http://www.opensource.org/licenses/mit-license.php) licenses. + * + * @dependancies: UI Layout 1.3.0.rc30.1 or higher + * + * @support: http://groups.google.com/group/jquery-ui-layout + * + * @todo: Extend logic to handle other problematic zooming in browsers + * @todo: Add hotkey/mousewheel bindings to _instantly_ respond to these zoom event + */ + +// tell Layout that the plugin is available +$.layout.plugins.browserZoom = true; + +$.layout.defaults.browserZoomCheckInterval = 1000; +$.layout.optionsMap.layout.push("browserZoomCheckInterval"); + +/* + * browserZoom methods + */ +$.layout.browserZoom = { + + _init: function (inst) { + // abort if browser does not need this check + if ($.layout.browserZoom.ratio() !== false) + $.layout.browserZoom._setTimer(inst); + } + +, _setTimer: function (inst) { + // abort if layout destroyed or browser does not need this check + if (inst.destroyed) return; + var o = inst.options + , s = inst.state + // don't need check if inst has parentLayout, but check occassionally in case parent destroyed! + // MINIMUM 100ms interval, for performance + , ms = inst.hasParentLayout ? 5000 : Math.max( o.browserZoomCheckInterval, 100 ) + ; + // set the timer + setTimeout(function(){ + if (inst.destroyed || !o.resizeWithWindow) return; + var d = $.layout.browserZoom.ratio(); + if (d !== s.browserZoom) { + s.browserZoom = d; + inst.resizeAll(); + } + // set a NEW timeout + $.layout.browserZoom._setTimer(inst); + } + , ms ); + } + +, ratio: function () { + var w = window + , s = screen + , d = document + , dE = d.documentElement || d.body + , b = $.layout.browser + , v = b.version + , r, sW, cW + ; + // we can ignore all browsers that fire window.resize event onZoom + if ((b.msie && v > 8) + || !b.msie + ) return false; // don't need to track zoom + + if (s.deviceXDPI) + return calc(s.deviceXDPI, s.systemXDPI); + // everything below is just for future reference! + if (b.webkit && (r = d.body.getBoundingClientRect)) + return calc((r.left - r.right), d.body.offsetWidth); + if (b.webkit && (sW = w.outerWidth)) + return calc(sW, w.innerWidth); + if ((sW = s.width) && (cW = dE.clientWidth)) + return calc(sW, cW); + return false; // no match, so cannot - or don't need to - track zoom + + function calc (x,y) { return (parseInt(x,10) / parseInt(y,10) * 100).toFixed(); } + } + +}; +// add initialization method to Layout's onLoad array of functions +$.layout.onReady.push( $.layout.browserZoom._init ); + + + +})( jQuery ); diff --git a/docs/api/2.11/lib/modernizr.custom.js b/docs/api/2.11/lib/modernizr.custom.js new file mode 100644 index 0000000..4688d63 --- /dev/null +++ b/docs/api/2.11/lib/modernizr.custom.js @@ -0,0 +1,4 @@ +/* Modernizr 2.5.3 (Custom Build) | MIT & BSD + * Build: http://www.modernizr.com/download/#-inlinesvg + */ +;window.Modernizr=function(a,b,c){function u(a){i.cssText=a}function v(a,b){return u(prefixes.join(a+";")+(b||""))}function w(a,b){return typeof a===b}function x(a,b){return!!~(""+a).indexOf(b)}function y(a,b,d){for(var e in a){var f=b[a[e]];if(f!==c)return d===!1?a[e]:w(f,"function")?f.bind(d||b):f}return!1}var d="2.5.3",e={},f=b.documentElement,g="modernizr",h=b.createElement(g),i=h.style,j,k={}.toString,l={svg:"http://www.w3.org/2000/svg"},m={},n={},o={},p=[],q=p.slice,r,s={}.hasOwnProperty,t;!w(s,"undefined")&&!w(s.call,"undefined")?t=function(a,b){return s.call(a,b)}:t=function(a,b){return b in a&&w(a.constructor.prototype[b],"undefined")},Function.prototype.bind||(Function.prototype.bind=function(b){var c=this;if(typeof c!="function")throw new TypeError;var d=q.call(arguments,1),e=function(){if(this instanceof e){var a=function(){};a.prototype=c.prototype;var f=new a,g=c.apply(f,d.concat(q.call(arguments)));return Object(g)===g?g:f}return c.apply(b,d.concat(q.call(arguments)))};return e}),m.inlinesvg=function(){var a=b.createElement("div");return a.innerHTML="",(a.firstChild&&a.firstChild.namespaceURI)==l.svg};for(var z in m)t(m,z)&&(r=z.toLowerCase(),e[r]=m[z](),p.push((e[r]?"":"no-")+r));return u(""),h=j=null,e._version=d,e}(this,this.document); \ No newline at end of file diff --git a/docs/api/2.11/lib/navigation-li-a.png b/docs/api/2.11/lib/navigation-li-a.png new file mode 100644 index 0000000000000000000000000000000000000000..9b32288e045cd94e6aaa0e35f1382a32b66b64da GIT binary patch literal 1198 zcmV;f1X25mP)0Ed!4I%dZ`*&Mwa}$^y=pHO+G~4PFP7cgqNtZ$C@d7b6ueY6EfuxhrRxTb z)T~ya&4-y}ob2<=X3~k7NxbNd&;u{Yob#Obyyrdd`As60N+sbYO%iU{{(GSei@|cR zGuS!IGHA!t)YSc>qoYVJmkV`tbOa?y%A-GH<cUdUK5PPe5tZ@r@f1t2MrgzaZ_?1v&`X^EOYTd)E}{V5 zBrKVnoSggx-ATO$jP%fpVLd%Pujc0F5{5_@ayADsL3F#_>Dk%Yz5f3G7Z^K)6)Qpn zoJ9)q;cz%LF)?w9y#0>;RLvb1c-_vPEfnk7>VDetXch|w0?yBgaf#`E?QVv5aiCz&KRmDhNAfN^78T-K0o8c>nA1wPy%=( z5O)C7Bna^FIwN@nhG5-_N*fR(<+ zq>qj3TywAajG8nc@EFK`im!TA3)hW85RIX9A?8oY4r+x)7>pTN`NDE(b3=>*Kswq` zNUzwar=gJ9Ku*PmLY@vbr8N{X*`Qgbp%6vFqur}3(J40bgKfgu z08jxxn!Z|ES}Ii0%)Df8Z?DkT*Y{|3b@d57S1nymg#dUKQ9<9L>pLLu-{j-%q}L*f zRsa{DVTI4v*4BQbh?6UYJ3Ku6bNMgH6WG(0l@54P5=M^ M07*qoM6N<$g5>W?*#H0l literal 0 HcmV?d00001 diff --git a/docs/api/2.11/lib/navigation-li.png b/docs/api/2.11/lib/navigation-li.png new file mode 100644 index 0000000000000000000000000000000000000000..fd0ad06e819742b15f3a982a9b2e50bbaa886a1e GIT binary patch literal 2441 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 TK(qrA00000NkvXXu0mjfp!~2x literal 0 HcmV?d00001 diff --git a/docs/api/2.11/lib/object_diagram.png b/docs/api/2.11/lib/object_diagram.png new file mode 100644 index 0000000000000000000000000000000000000000..6e9f2f743f67c15e04846f14819a913713b216e4 GIT binary patch literal 3903 zcmV-F55Vw=P)KLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 zfg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=0000WV@Og>004R=004l4008;_004mL004C`008P>0026e000+nl3&F} z000DPNkl7{-6+*7me#UE47>#x^@ProacnfT6$?2}rnjjUk$FF+_!l zMvNCQibNDcLIg}ugc+D11pELBLFFnK6mSYbNEX-zW3Y8M>b7=m&pACken896;rs3X z{`36uChzk;f^FN}r7~l2y`uhVYkB9N(E<<%__XGd;J_Nq<2ni4>`x^3(^DIp+7^FS z{lnrDXX=CPVI9Mg5G4hN(?L#_#>COV8!tRNe)G_xf$M=tU$OA735Raoaj1ILCws?t z#|34#IcMSm;Cz3;AuCsJJMwYW_eEJbdAPLz zlHx&9RBX`+f`Tl|NTL9MVHk9Dv@`FqVXdp)m_8M_2q69qb8g>#c*mO0_Z4O54nlQ% zL39z-MRZHTt9kHyRV>SKBm0ikrQgK`UY0K^!!VLy z3wSd$ems38yC)K#CO0&O%9~qn;&7>$Nt=Q}0Un<+A}y}D5MseQ2QZTsnHf$V8e0g! zgJpv#Db#4Z(SxE$bauqJe6@Xy*wNXQmq-|hf`DNrDGm<6ttx5Yx!P7_SwM9u{B|*P z+iwDt7J5k-24G`a7ME=*3yNT%CwlQ~5~W2s=R~*a zJU;E=(V=KGhJZyZ+RgGcd(uL$=49(fv-o=bQ)Fj((*5^0948X##gg*&Ji6YLK7 zGY*PC*NgLKY|PZ$7>17Of}=m3<@qP!t)}DIfc?zanEx<*VOvLT@g|Ox4dYBKhs0`sM6??g->k1f9&uN zfYAR1Y~KpDwuPtG)?FV}ccmpWWv3{)CoeLrwBY>Uya7jmy8c9e4FE^5(v+8+)ye<> N002ovPDHLkV1kt{Q<4Ax literal 0 HcmV?d00001 diff --git a/docs/api/2.11/lib/object_to_class_big.png b/docs/api/2.11/lib/object_to_class_big.png new file mode 100644 index 0000000000000000000000000000000000000000..7502942eb68134f5569c5c00e84533f452093c43 GIT binary patch literal 9158 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 Qv;Y7A07*qoM6N<$f);0?GXMYp literal 0 HcmV?d00001 diff --git a/docs/api/2.11/lib/object_to_trait_big.png b/docs/api/2.11/lib/object_to_trait_big.png new file mode 100644 index 0000000000000000000000000000000000000000..c777bfce8dd0a169f484641a3f439720fd23c427 GIT binary patch literal 9200 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 Qv;Y7A07*qoM6N<$f);0?GXMYp literal 0 HcmV?d00001 diff --git a/docs/api/2.11/lib/ownderbg2.gif b/docs/api/2.11/lib/ownderbg2.gif new file mode 100644 index 0000000000000000000000000000000000000000..848dd5963a133dc18b9f055928150dc5e762dde0 GIT binary patch literal 1145 zcmZ?wbhEHbWMq(F*v!D-Kff?yQ@u%!Pt?vPr`9;D%FyV&t)7!JLsnHrA8cd50E+*) zBYXoCToOwXfwYZ%ML}Y6c4~=2Qfhi;o~_dR-TRdkGE;1o!cBb*d<&dYGcrA@ic*8C z{6dnevXd=SlxV%Qmue&kg&dz0$52&wylyQ zNJ0T*r*nQ$s)DJWfo`&anSp|tp`M|!iMhGCj)IYap@F`Ek-njkuA#Y=v5}R5fdUjL z0c|TvNwW%aaf8|g1^l#~=$>Fbx5m+O@q>*W`v>l<2HT7t|lGSUUA&@HaaD@m-- z%_~-hnc$LIoLrPyP?DLSrvNfBF)6>a#8wIDQivCF3*g4)73+b$qnDhYt6z~=pl_&W z0P+${p|3A~rMbCq)x{-2sR;LCHMlsWvLIDID784hv?w_hs9YIjRe_arQEFmIeo;t% zehw@Y12XbU@{2R_3lyA#O%;3-lQZ)`e6V_7Un|eN;*!L?t5X6BYAPL3ueX-RQWVL^UgZccVqW=48iYD#iaVnTdeY)o`iWJGvaXh?8SV1U1$uaCEv zr-!?ntBbRfql3Mjt&O#nrG>efsfn=>FiYv_>S$|eYN)HJswgWdD#**p%1BE|N{EYz ziUvE+||Kg4FF`M Bj3xj8 literal 0 HcmV?d00001 diff --git a/docs/api/2.11/lib/ownerbg.gif b/docs/api/2.11/lib/ownerbg.gif new file mode 100644 index 0000000000000000000000000000000000000000..34a04249ee9edc75662a2539fe7daa04424cbe8d GIT binary patch literal 1118 zcmZ?wbhEHbWMq(FSj50^;>3wdmoDwuvuDGG4L5JzWPkz1|J)J20SYdOC5b@V#=fE; zF*!T6L?J0PJu}Z%>HY5gN(z}Nwo2iqz6QPp&Z!xh9#uuD!Bu`C$yM3OmMKd1b_zBX zRu#Dgxv3?I3Kh9IdBs*0wn~X9`AMl(KsHENUr7P1q$Jx`$q^)>0J76LzbI9~RL?*+ z*}%*|!OT$4(AdP>++0V&$iUD*-@r)U&`8(N+{)O<%D_MY3Y37h6{VzE1-ZCE?E>;_ zl`=|73as??%gf94%8m8%i_-NCEiElUW*8ai0#)c1SLT%@R_NvxE5l51Ni9w;$}A|! z%+FH*nV6WAUs__T1av9H3%LbwWAlpjz~0eI&d=4aNG#Ad)H48i38v837r)ZnT)67u zlAu(Cd$Af^98y`3svneEoL^d$oC;K~46>@g%DE^tu_V7JBtJg~7K#BG`6cQEUIa|mjQ{`r z{qy_R&mZ5vef{$J)5j0*-@SeF`qj%9&!0Vg^7zri2lwyYy>t84%^TORUA=Po(!~qs z&z(JU`qar2$B!L7a`@1}1N-;w-Lrew&K=vgZQZhY)5ZeMTG_V zdAT{+S(zE>X{jm6Nr?&Zaj`McQIQehVWAmo_rKzE=rmCW>q^KY-Co3Z@B`F~;CMqH&FX#K^#)_>%=(Oz40}P&vZD%P=Ep@ zplwAdX;wilZcw{`JX@uVl9B=|ef{$Ca=mh6z5JqdeM3u2OOP2xM!G;1y2X`wC5aWf zdBw^w6I@b@lZ!G7N;32F6hI~>Cgqow*eU^C3h_d20o>TUVm+{T^pf*)^(zt!^bPe4 zKwg3=^!3HBG&dKny0|1L72#g21{a4^7NqJ2r55Lx7A2%-qt%$eX-RQWVL^UgZccVqW=48iYD#iaVnTdeY)o`iWJGva zXh?8SV1U1$uaCEvr-!?ntBbRfql3Mjt&KG>(#*|FO^l6zSxQe=M_Wr%LtRZ(MOjHv zL0(Q)Mp{ZzLR?H#L|8~rfS-?-hntI&gPo0)g_((wfkE*n3%I<{0g<5cg@J|3;H2kk MO(h-&o-PJ!02;c9Qvd(} literal 0 HcmV?d00001 diff --git a/docs/api/2.11/lib/package.png b/docs/api/2.11/lib/package.png new file mode 100644 index 0000000000000000000000000000000000000000..6ea17ac320ec13c02680c5549cf496d007ea6acf GIT binary patch literal 3335 zcmV+i4fyhjP)KLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 zfg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=0000WV@Og>004R=004l4008;_004mL004C`008P>0026e000+nl3&F} z0006qNklwwMUhSB#%_+|{u(Qg?SIEHRk(u4-LTI&as%$TvK)sc>0c=jYdcZ1aklK0S+=tUwY*QVL&3zN5$}JuT(!%a_dE zZb-^lS#e;vx9c9Y^}8u5$miPK0bHpzcCIgA&}Y)z>E-duPh>g+JiWSe6TP<{wPIT$ z(zmGlmRFJ#4o5YSkG@}8y6w8is@J}gJzmS@9?u#CIGud{5(L0zOQzoKVQYKK@1FaY=&ir~J~&&Yc}RpkqqKP#R5+%#Mn4x*8$VR6`P zW0+xxM-XuUk}Q8>oK~EZtN=vEhtCNGxgs;IOA~wqZ5hZI$F@ zPX^#(&ojo~y zL#Fl|IVVXP92!+c&3PSY?AFG*3u4+1VU+2V`%1s0WF#SpKLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 zfg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=0000WV@Og>004R=004l4008;_004mL004C`008P>0026e000+nl3&F} z000rYNkl7#;6!EdPGHH&_LoYEi@_!D9|iTHx0d3*Y@7Kcm8;RNeZ0@9+2f{+9b%Xs!7I#zf#a;7DK`FeV;P7Dl3REXxK2rXk4>1qg-m zV!+4VYyjQ>Rv&7C#32Ma444aCxVOD~;(P11@cu_T_~_$inp?Zrv#*CpG>K9QAx)%| zgn|LeN(!j1EN0Beawd$e=7@>I7+y1U3-BE9Ah7=b3(#YL9|PZB^8D+@Gt1s#b>mi= zcC};0EJPqcFc>616vXE<5z;_N0|496#N!sRxJ4pqk>@w4t|(&i_!`bRV+t31V;Z4Q z-ZJ1m;Ki>B=y>24v3TOVKR&vgC!c+tcUFH47?f9+QBWAhG<^u+0uw?agajl)x>tli zAUsJxDNQt%pk+@di9~|Q<0_f+^(kEb?U_`T7q0|v0akvQKyLwVy62(ix%;7IY$ARA*Bb@OoK#7q%>S)LLh|576;JoU#)0u>!PJ~A0vkq^Mea!@E=#6 zj^FQl2)GvL`67Xi2OfKO?dECM+;~54tZXDyUQTUI1qcb!^!zVlqCyxT+^Y~Npzc+8 zU^5^AJbAQ6YlRe=w)SpzG_^8iVkN)$$!yL(ZOU$s5B~N=0KEuU{L8za77G_W0yc~} ztPUYfS7>P0^b)0GM=-Rc6h{jWpsPv4@TKn&DWI;Y3L(MMa33EP z+1kv~ss@b$twZuUmipgz@`dK2G(du^2{*IWxedG?7M1litot z(=%5y9X~<1!b=k{GRz7dAfwOglskx&`5R^$w5xR=!VI9LtJ$S1Ht~aniveB+CJn|% z8y@+~ifMB%UP#5n@#KfYK$e+$zUY!qY8o!%W}C35MVDnW2}25~(i+>=*p8bln5ID> z5WqBW&0Oou6)IeSy-4UC%&bar!&jW5EJmyVlv8ud~g8U$sZDU9u8p)paUOKxI1pEd? zVLw9(^YHsk;z>nEw?$`N&NZf&%aAllo@hK)_Edh$w6 zoH6!s;FA3TEe1Mff9EEaKf8+2lk0I5UTpMO)$kEdYDUzSQ$M=OGuezer(&cK0)%AU zrZ#$d9YR5q*1b_Wx|7V9T+N9`)i8Bj8N;gzC@TpP@EP>REL!$PY24V(^4E9pk9T%c zSdd3ec?d@-wDJI>(TlYr-kDEI9>6Np%W8t?B7=W+7?e9GP;(BabGpw?ZYc4&C@1HvfDa8T5 z`}E(paQEW%e6Xp5!$uV$r9e3<9deXop|wV%&~^fJf`-+b_{~jcaqYaXH3CxyBBKgm z-p}uR3{e!uG&4Sy$zohT^Z9&qb;ol`r^-w7Y2VPw8OM!a#lsge@BGO*fdn}J^g3R; zZx$ENu4DZt9axq^8d;>2vK}uIXl*cjWF>b$`UYJ+(J8>m0|EWnbIadi%|F*rJE9V; z$ckqksd&H*!yuNla}qWhvpD9odY0TZhsvShL01oP8_8(OfHN} zs_eN8PXf3F!F6D`(Yp^VPCNMf1=$uWT?96{<)f&o& zm7~zlaf$1!2_5O%cox(P`dXqK!(QZclUbsx2` zeARk@%d&x9^w$?&C)w6PDB$yaGHVebGbtGY(=>?2ZN7?e=e0)@>9ufFcG5vw&Qv93 zm?kg0@&UkwWF?!Yz4}@svM3*=`=!`f^`gi!XN~wufXVeS`II6j|y=d+FtrQO}>RU~C3#AAtH8m2$kOwVnPj8auJrR0i)g=#ML8MAM-CJ^wkaZ4+}CAxe!}#rH53=-kstI?T$smEhgZ_PC&DfF{%cS`$Bili<+z!V9$4m3 z&`(QSH$X@N6>WRF!0$US#!o9Zr=hiG`DHyU$OzE26*ANRrafTMAn&h9wjeBXfP9t`-{ z*BRr@H9K=&v#caYLD)yqvioePPPJdO#xMl2xJ4wI@JUChaHKarAkaR$ls1vUgVlh~ zG*C)^mdXKW+MT;bg8>u2PhdML(>ctR6^$Vwkw_AWCj9c#6^zbw;k3^3TdzFo12i}L z73`m#QybCIoyZwzz;EC)1u9*GJD^fsL**&PlV5A3A!Q^#6in|-MrXRuOx1y@;+HSr z5N5j^s35@cN7m*Hw0Td2o=6laQb1GM zOew{ow>L^vc>zF70w0X89}b4mhj>!wAKAdt3#R=b_i^S)W7yNu4Ou3fN+~yd+{T5o zCor<6IOp{~*t`eZu@PE<Y+sA$t?3t9R>8; zG3B6@?JhP5Mp|&`bS^n>3Js0B=e*nqpV)DlW(3{&#!)Z%AhuG)w@lU6!<(@ zEbpq^uAs88Z41*cIA+>tfRz$>dw6YmZ0dxOw6}NlC8Tu5kaBi+x0GYMXCZ?ef4=jZ z+%W$H3_}o&SyT=UbMu0edG5Xo@C_Kp2Oe*)+fBp!%?v3p-9E23$x=plcZ88OLpWyI zSb$eeuhF~WgkvY2z4FC3khSG$;?P{iM%QxC7RPCR}xyLYu^F{4Nmkx~kUM?{`Kd=+EiFJC4ajS=w63^6KKlge?q zqit_Hb@f%8ea4Y^Pqw6iMu9(He#tE8?(G*fGHFzbzO`e!LHbJ`4?fkvl4Xt54J&rF znKo6IjFh$!IPBZj%*Ee2hEOPPE%0IgzV2-o&pDa##~x1e&OKR8=Kc(vqVg}dIks%o zCa%79DI;qN5otoSQOZWy7LIaXceHm>SW(FQxw8On9;ku6MF^g`>Dq5&wRO@rk{8$g+8og+#?;!wJc@3 zKpl%jB2J{ah5PRKA^D-a<@9^-YM>U{%@YqB{@wq%^T(sF|Is3XlgH!tnOyvOX{nnaplm?1t>HuFUUd%V%sxf~7x$OJ{0!Mn`pK1Z*6rB2r{s5c zJWB1P(HK&Cxv)qR5?MzV2dXnID^5*qm{8E zyr8d=t`9oy=iQm~zH520+{Q388$aAk{ox~6`P>}{BVJ@f>jJvya|P{gLC? zx^@#niUH0%a)7GrjPNPYb_PISU|BPj@hC4r&^A&kHm(1dU^tJz{pD5)@`JYnx9_+3 z&!y-H1p`+#ym~LEoH>)G_cjubB?fi&qVXQ8P)RQ|c^OSM_%vV-R5q(>SJU8N+etRB zUeDOEH8ifehmpf7?(($B=LHIIPdGns{;SX4$+b6JhHh(SOH&JmlsO|+j)kK#u`eA1 zwUySCd+(XAvT(E;MwCZ7yIb1W-nfzTzk523tL|m&sOsP0KGMpe0t)W4b|?L2(G^XP zE%`0u#?-Q}qh~O->yn95p77pu>5UQ24<7gwtvAk$Sqs?Fyq6)xh3WHYM1NA#>4+tTprfmY z&ZZXf%8I%4qEoqL;iXiT4|xHY4>S!%X!9Ua&lqq8@I*L2_+Ml_`H_=WwUaqS)_o5t z5s*k)>}l&jbw(%~RmGK8ozK62|7<2r7`5I@(w{z{Jf*E9fzc4)7u+|SOSzLIJA&ylgIGQS;sQ>qSL6YDO>Hi%_Eg!6+G7v@u2J(Q8dE15EJ6h|LX&k>Wx zbOSGVMe{!nMVTkQfPe5YffIn4z;vKeYl`=Ebcgq~cL!tfgsHS97zj8;g`xP6;&4we qFVF+*1=iyJgU>3U^H2))e**yLOLFu}qegT90000#8IXksP zAt^OIGtXA({qFrr3YjUkO5vuy2EGN(sTr9bRYj@6RemAKRoTgwDN6Qs3N{s16}bhu zsU?XD6}dTi#a0!zN{K1?NvT#qHb_`sNdc^+B->WW5hS4iveP-gC{@8!&po2Tt~skz|cV7z)0WFNY~KZ%Gk)tz(4^Clz_GsrKDK}xwt{?0`hE?GD=Dc ztn~HE%ggo3jrH=2()A53EiFN27#ZmTRp=I1=9MH?=;jqG!%T2VElw`VEGWs$&r<-I zn3$AbT4JjNbScCOxdm`z^NRJr-qB0W&(*I;EYLU9GXQxBrqI_HztY@Xxa#7Ppj3o= zu^L<)Qdy9yACy|0Us{x$3RJEPvZ}z!xhOTUB)=#mKR*W+iUAq(sS1ij466e|l0M;8|ZM>S zBQtYL6DLO#BNLcjm;B_?+|;}hnBEkGUSphkK}jLE0BEyIYEfocYKmJ?ey#%8%T}3K z+~R2BVq#|OVhS|R0J~ctdQ-5t1*+E!r(S)aWAs50ixkl?AzEnm@@7}(7{p#h5=g*!#dHm?%gZuaH-no72=8fyu zu3ou(>Eea+=gyuved^?i(;JWy=vu( z<;#{XS-fcBg8B32&Y3-H=8WmnrcRkWY2t+bzTTehuFj73w$_&BrpAW)y4srRs>+J; zveJ^`qQZjwyxg4Ztjvt`wA7U3q{M{yxY(HJsK|)$u+Wg;puhlsKVKhjFHaA5H&+*D zCr1Z+J6juTD@zM=GgA{|BVd-&)78<|($r8_Q&mw`QdE$ala-N{l9Uh^6BQ8_5)|O) zWFU8GbZ8()Nlj27Z*CxAAWdOomE>Pr0009DNklIjr71Q@gw&YYpv1XfCNofr*g}wO1U0RQoy<(;zApSMNoiuu-QIg1-t(UK9@xhT zA(UokXAL0FbK8Dr{|B_Nu;40{%A00(JjQs%Id?Y8va2D4#CzWZaCZZ0Hk&CxrBXR( zW*-4>IOpC6F4bzaqu%>o2qC#Eh4p&zh7iom9DtcU2ppF57H}<1(_fr(KLYo4yWO6obH%%{ z<>lox-K|Za2M}XiGqV?fO*8uz*aA{B`%}{EX7+MXx;Qa0v6bEiJCtQvD}?Y8a1ZdC z_x?f%;fR@iQFwR|n3D9AbMAv;NaukwJEmN(*GtuEwVUVpdEf+4lJsh!Yz8O;JxR~U z7%NGVoCXd7^I4XixMQ$G2xrag6`&*ORE+U*k|Y;_(mz5p9b;TelH@}1rtZCey3uH) zBO@bQw}5kVbJpMA|Dl<^U3mAdq>E+2kUR_-+jgF3Xw|AKqkYi?sq@QAp zp8)p)*Ma*bJtwJ`B+0y_>0)?^q(mD4j&rhsE+cDdW_&P+~DcJ{N`cdYZJr6so?#@{9Vg+qx? RsdWGV002ovPDHLkV1g#KLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 zfg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=0000WV@Og>004R=004l4008;_004mL004C`008P>0026e000+nl3&F} z000418jaIqFa*bBUvbAu3fkgiR5rdGB zz!id>V7Emu7S|kD2-^tS7&zg$RtRVz+%yTgDKaaPJQ(JC%=f|f-W$Vl94>GJya%p< zx4<(H0QbPRs7dJC0zLu0l=2q10%E{bI-R}+eEn`+4z;9|t$aQ&JDm=uX#!xHCa&v} z%jG1{(g&eeY9^COT-T*kD$(opFin$sy-uZ4q2KS5$z%YUz>TzR`vXuCLeOrv|L$s8 z6bc1uwHk>;f_OYm7>2A?D*?O+EgGd1gTdhJNU>Nv*R$D-#bOcBYr}DzUs^PVVKALe z&zd4stJO>TTWDKJrBXB+4Z<+wUv#@&gor%jS?C-%olbb3M=TaYDaB+mIS-Y~WjxP| zXdrZO$HU=35Ci}$mrKUuF~i{yfbDk6e!mAe0{7Ck?ML7>@NPbzlg(!FeV^TK$7ZuZ zDaB|sV!d7id;#tZ{f#UgToaJ|k0bCE_ze7%wrv9_-~spnya2C&H^39{9ry^`=|27p Y0AfCQM(Z-J8vp 0) { + var fn = scheduler.queues[idx].shift(); + } + return fn; + } + this.add = function(labelName, fn, self, args) { + var doWork = function() { + scheduler.timeout = setTimeout(function() { + var work = scheduler.nextWork(); + if (work != undefined) { + if (work.args == undefined) { work.args = new Array(0); } + work.fn.apply(work.self, work.args); + doWork(); + } + else { + scheduler.timeout = undefined; + } + }, resolution); + } + var idx = 0; + while (idx < scheduler.labels.length && scheduler.labels[idx].name != labelName) { idx = idx + 1; } + if (idx < scheduler.queues.length && scheduler.labels[idx].name == labelName) { + scheduler.queues[idx].push(new scheduler.work(fn, self, args)); + if (scheduler.timeout == undefined) doWork(); + } + else throw("queue for add is non existant"); + } + this.clear = function(labelName) { + var idx = 0; + while (idx < scheduler.labels.length && scheduler.labels[idx].name != labelName) { idx = idx + 1; } + if (idx < scheduler.queues.length && scheduler.labels[idx].name == labelName) { + scheduler.queues[idx] = new Array(); + } + } +}; diff --git a/docs/api/2.11/lib/selected-implicits.png b/docs/api/2.11/lib/selected-implicits.png new file mode 100644 index 0000000000000000000000000000000000000000..bc29efb3e60134039e702d5449e685a3bc103f06 GIT binary patch literal 1150 zcmV-^1cCdBP)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2iyb% z5H~J^JxS;Q00aI>L_t(|+U?vuZxlxy$MNqx?(E$@E}a zfjgk2pr?ZZI(iC9{1RM5N`az8f(nF?5D#);fpbJL7e%q}e0%#alfpQ%40!>*o6k0< z)o$~be)`Ys+>8hzu;10IR{^+p@16iY2d04rkO6`yI{X6A1$Kbce*=Su~m%6x<};NBO|^=w zk&&8I8D)eJLdB9s!^&AlTBkBiQk->uv$J_(rL!`)+`6oQUo`M-?(?sntUozBH8I6_ zIxd}cS_u`9v4GL=Q$k^s5ms8Mgc48JpPpKtTHbQf?P%cW>elMKv(Ak-$BSmt)JB*% z&xl4SAz&~lr34aLhuW=ft3By}IX+c#V!libhr?D})eoI+@M^s{y;vSm62A^F$)OitB>WC^wMc2_eXZ#=?IA zNtVo#TvKb>y}k`n5t#j!>IqWhwOAZQtfS?qODbc_%JAp{Bv5|M;+$+>D$O;$h+90zjvct@cD=76Um1hr9bhBs%or0LWw(j4&M0NBo?c3qpt*ILGd`+j8&ukM^WrzkZ!NckX<_?$*Qo z%j$87JsKwA!0%(gp9dfM)S(Ug1JPplRFf1Ki#3gg$o7X})F#m3e@->|7sOS0SbEhV Q8UO$Q07*qoM6N<$f{R8S_y7O^ literal 0 HcmV?d00001 diff --git a/docs/api/2.11/lib/selected-right-implicits.png b/docs/api/2.11/lib/selected-right-implicits.png new file mode 100644 index 0000000000000000000000000000000000000000..8313f4975b4e7191d18183adcd8de77659622874 GIT binary patch literal 646 zcmV;10(t$3P)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2iyb% z5H~yS;H?7y00IU{L_t(2&vlbOOIu+S#((eM`{pLzge0aSMr^2qDdNx~brL!h$3j7H z=vW-w3a;+`2(EsF7W@=C3J!%zHAAgkY^&GY>pfj!nreDpp6v(E!+Xx7MC2K81$+m7 zY;JA}!0zrYqoX!HZG4C;@vnu)3ujyHtzOXK7&rxF6g124mS1OCmYnuZ+xuVlXOgMJ zc6`SIH$XZB*WRzaisM*(@Q6t1;PXM}h@;wSWAz%)z$JjLPE>VcqCu%&tubaS2&iC#PW!0_66=%;<0xw^{i3hE^%|)B*O~&n z_No#p0t9Or59T^YDWxZ)$rSL`sPP#KDG(7o7tf`4A3h$uEr?7cOKwR6k+oR=z_!RK zib5?;EM6I9H1O7H{;seXyi77R9j3Fc?F#S)IJZhEKbk8qa%RJ9KCtw_HwGuc_mMD0-%8I-SJwdoORkUZ|94)X^T?I0M7??$cDj1@Kjbd8waHTjq5uE@07*qoM6N<$g8d5^?*IS* literal 0 HcmV?d00001 diff --git a/docs/api/2.11/lib/selected-right.png b/docs/api/2.11/lib/selected-right.png new file mode 100644 index 0000000000000000000000000000000000000000..04eda2f3071a81ada129b906e60709eb5b1c4e29 GIT binary patch literal 1380 zcmeAS@N?(olHy`uVBq!ia0vp^AhtLM8;~@ry7vP}NtU=qlmzFem6RtIr7}3C)9WTXpJp<7&;SCUwvn^&w1Gr=XbIJqdZpd>RtPXT0NVp4u- ziLDaQr4TRV7Ql_oD~1LWFu?RH5)1SV^$b8>f+_U%#ji9s7p}UvBq$Z(UaSTehg24% z>IbD3=a&{G10ya?8Dv#~m2**QVo82cNPd0}EEEGW@=NlIGx7@*oP$jjd=ry1^FVyC zdS72F&%EN2#JuEGPZwJypb2`JnJHGz78Y(MCeDVYmgbIzhOP!qZqAm@u103&mL^V) zCPpSOy)OC5rManjB{01y2)#x)^@5T@ZUN9{m(-%nveXo}qWoM1u$Qeeak|CH4X1ff zy(zfeVt`YxKF~4xpom3^XqXT%^?;c0WDDfL6MkwQFtrx}ll6<;A<7I4j5j=8978H@ z)dcU&QVNvVTm1ao`79at5FR1swyg%5$;tYPy#hCG-BSM`+EU9h|6u!#OUJxif~2?K zxN4GUe$wFaojJf9z)p z5$Ey};}0o`4QH}B9yFW z>98SDtSD?}jGxoZxo6X!U$AKQw|sQq!}8b$jjl6i(~7%3uRQeB{zzBi?B~JhyI$eR9CQS uH6MIndtb!u6IcAC@Ew*lAuIQC8Zg|Lxqpi1i6>#8a?jJ%&t;ucLK6TZv;Euv literal 0 HcmV?d00001 diff --git a/docs/api/2.11/lib/selected.png b/docs/api/2.11/lib/selected.png new file mode 100644 index 0000000000000000000000000000000000000000..c89765239e074f40ac120c7429b5d65a47dc218d GIT binary patch literal 1864 zcmaJ?c~BEq91ceTBSb(%MUFLype4yBBtTLE0s#pnDTc!!APL!pL`ZhCSs~!4NQ)J% zjYlz75elf(`(i|jO7Osgf;y;Fj)H?0s2weyqg2|B3iglEo!Ncw_vZV)-}ip+_hw7u z#fu%tZe$XP z91$o&BVnZ~rVxV@3dMnm*8Y~u#K+tpr8eFcYX>{J>3IbTC zz*H!%LNtI`QJ#sc#Q9Xh>H96H(Fs|N?n9Y~f-&@Rl)L{K0yfdh!-3YEqj zzr%|}JfTL1%QXsEDBx2G1-eQF@z`8Wa5TsX=5T|!OlA}q5go~mjA8`_aoG{!Y!-W* zD?k)0)vyL1=RzO3+)26SR#2lvW&w<;@?a<$L)5^#E%Q{9dkLIW?*kW_+)L1;Tn1r= zVLsS@9rXAT(LLtrMB5U%^S)m|2QQ!4P`HdBBOI%t8E8By$ z)tP&nmBpWMprzkM_|>^sro&sKcBBkCJasJiG9=P9#hP5QNL2+TkyCcgr_WpFbHr7_ z87m!#YYJH5*b!RP{<^=_J_~2|c=d7fAA8(7t(HqhM@QR7hK6D;&9z@F^LTl&+LYOL zUU{>=KQOIits!(3RqM9J$$Df>Q`4Hfywlrm3@To|dNr2U=+QrVeb>z4pMI4}rAnXe z*Su0wQ(?oEXC7Y0{o&u+%(Fh0o}PZBvZ5lZ@LWaJ!Gk4?)RX?H)qdpTZS_XZsax{y z_MKk#HqH@?F3d85ExWtByE8h5+2NQ~XRSrmZE49;u~@u3JtM<+b!er-?p^yG>?l!7 z)@R5TNdqW$9-&m@9!cz z)|KJ#YjcI$M2lT>D1eiHE7md=9Cb6o??`g%oXydj8XFrc(Rq-nRo~Dc92oPqc4`7jYVX4t*9L^0KwY`(Dn^c;fmUh^Z+y;JQ``m+ENO>F}JvzOG zpA_eOow0f6Rfv^j2{j}iqIq*6)BTacb1Yxm)_q06>xylb&!4}+!4jGxigiTeRX*Cn z<30Wx9WD2E4BzxN*jb#kdlW+%OtH1PfPLmI3$H$qQEoeA@M_zz(dMBx)_57yUHsNs zdvF1nVkziYxo1DV=eKeTc|*$c+^@3gOx8(~UC-Pht#*mPtJ;FH$u9Fm&%)M|KTg|f z5*U9$Nu>g6#DPS~Y)4n$4Wb>UOWwc=wp*D7L1rwgy--9rSyofByyv~cY4K+bR|b+B z((YQ6@^?+kI+3=oS=N8}mgQ8nYNyMpfy*0n{`@+ksvim5?MYSE)$MuW)=GnC(9&ES zE)MxRPw9$#K{-F$s=Aq5o>LYZb)fSRyT%9IcD!es`-6BtsJf2jWPf{YuBrE$LxQ!? zVn<`|QHj6njN1xoI7>WT>~c56r$ss7B6`$yLi+Pwn&+jdS}L$Vm@DT=KyDXF%TVr`iW&f2@9*rcCpU*G%kN@v);?Q2jJaQE~K zoxVPGny*U6lIkvBzs-GdKdhGVrt|YT^Vdn8*CU*fW}Ci*yY2_L3v1RibMA*BoY$Y4 ZNDtm_>Mc9CX5mbjz-9e{{de~$lm|} literal 0 HcmV?d00001 diff --git a/docs/api/2.11/lib/selected2-right.png b/docs/api/2.11/lib/selected2-right.png new file mode 100644 index 0000000000000000000000000000000000000000..bf984ef0bac9acacf732a22f6dbb9f648a6dc26a GIT binary patch literal 1434 zcmeAS@N?(olHy`uVBq!ia0vp^JU}eY!3HGlQ`YSVQj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS=07?_nZLn2Bde0{8v^Ko2Tt~skz|cV7z)0WFNY~KZ%Gk)tz(4^Clz_GsrKDK}xwt{?0`hE?GD=Dctn~HE z%ggo3jrH=2()A53EiFN27#ZmTRp=I1=9MH?=;jqG!%T2VElw`VEGWs$&r<-In3$Ab zT4JjNbScCOxdm`z^NOLt1Pn0!io^naLp=kKmtYEgeeo;J&4sHjE(uCSxEHIz#UYgi zsro^w#rdU0$-sz9QwCX8VC7ttnpl!w6q28x0}I7~jQo=P;*9(P1?ON>1>eNv%sdbu ztlrnx$}_LHBrz{J)zigR321^|W@d_&iKVH9n}Ml`sinE4p`ojRlbf@pv#XJrxuuDd zqlu9TOs`9Ra%paAUI|QZ3PP_bPQ9R{kXrz>*(J3ovn(~mttdZN0qkX~Oe}7(Ft;>z zbaFKYnrDICEfBpaSlj~D3-Skcz4}1M=z}5_DWYLQz|;d`!jmnK15fy=dBD_O1WeXN zFSNEXFfj3Xx;TbZ-0BJTJuQ?dve&rp{{2Ne1Xv0M^`dqN6o#(7v-^@5ry`4P^EBOC zzl3jzHSWk1W|3sw);Ue+g;U^>O>?#=UP&uCcCNM}UQqY`_d|&fD$mXQ{c(==)z@ET z6-8WsJ}cX8&(eI*ZD~+t^J3nFi-8`!Zq6JfvCFS!sWLo#9-#4MO^n|D15*n%rrdh_ z?c64vTY1}4B-qwo&yLa&V>QjXcQ{Ddg|Gg%9v?OhmP@U{K>-_Wb*=L_APe@*L{q(Jr$a~Dp z0uLUnIsEVgw zb^Gh3!#nG_`dl;Ss7o9b$omss5Haua%O~3xUd$-@yryCEjht$dO0588|FJa{;N_gy{FZdcQZ9v{BdisYp- zHJ`kr@ZNF#_2kvBmj=Bo*P0sDSkC@KndR}v2pt}MKL2LzQ)!#4?B=IGa(;02XkB+e z+UA+9e^cKCtnU1>r)$si?G5_sWsaKjKm0w#%lN*ryrD|bs&hXR4};S~mM6aHstZA- NrKhW(%Q~loCIFxO8+`x( literal 0 HcmV?d00001 diff --git a/docs/api/2.11/lib/selected2.png b/docs/api/2.11/lib/selected2.png new file mode 100644 index 0000000000000000000000000000000000000000..a790bb1169b6b54de1d51f7778ee552979f52183 GIT binary patch literal 1965 zcmeAS@N?(olHy`uVBq!ia0vp^CxBR-gAGXf88D;(DajJoh?3y^w370~qErUQl>DSr z1<%~X^wgl##FWaylc_cg49rTIArU1JzCKpT`MG+DAT@dwxdlMo3=B5*6$OdO*{LN8 zNvY|XdA3ULckfqH$V{%1*XSQL?vFu&J;D8jzb> zlBiITo0C^;Rbi_HHrEQs1_|pcDS(xfWZNo192Makpx~Tel&WB=XP}#GU}m6TW~gUq zY+`P1uA^XNU}&IkV5Dzoq-$tyWo%?+V4wg6Nh+i#(Mch>H3D2mX;thjEr=FDs+o0^GXscbn}XpVJ5hw7AF^F7L;V>=P7_pOiaoz zEwNPsx)kDt+yc06!V;*iRM zRQ;gT;{4L0WMIUlDTAykuyQU+O)SYT3dzsUfrVl~Mt(_taYlZDf^)E`f^TASW*&$S zR`2U;<(XGpl9-pA>gi&u1T;Y}Gc(1?!rao>(aF`&)Y9C-(9qSu$<5i)+11F*+|tC! z(Zt9Erq?AuximL5uLPzy1)LqEuE@a9jJa{g3^D*&Fs~}@sPg}hA3HW}*bs2zZP}lLlevA=_U-n$=5&5bna|Ro zr2Kq;ZlP0ibWR_hJ9lpWiz!uc8tF`mg%K|cGE-8Xi0*W2U!-y9WyzzY#H~@SH*>@$ zseF`8+a!0Y?a0N869Ym+-@Jd{U1771b?3>~^XAPvzD32YutZHj$X%{hPhM8G*7Ie^ z?(45b`P!X@+s~$5zT+&;Zp|_IEnicE2OmGbsk)-GK&Ok7i<02OvfcN~%FFGSFVz;w zJpHni>#DT=iM(5&U57r%J7!PHj4vV0>!_hwa)V3FU5<)V5Wtj)rUr z_x@OMhrMuthvj{s_~K>J23#ctD--tXEDh3}dGw%xx?U5Hm;SAjt|^^YCOO8>;4W(W z`B>!wi)4Fbk%f#_R5Z`wIShpf%kMrdS{am?`BMMP;)KgC^MezCb}+X!3X04>KYc=0 zR#uX=we_tFVODdWSs#%Qo55lt(Cc>b)!)p`H+`n$c~0B4YuEdQ0Un!0#W<5w8WS1> zjU#(|d+lGSYu^gc9Ub-|XBRjj>V(vLdtFNI}x@X#@rKBc({rdHG zadB}{adEJA$PLdKG5RM0gA$&|svdjvXi-LPZg17zxGkmW8{DepS^O^EzhB?FuRbCo zqQKAJ|8#0<>Y`n{qHYIXSzdKBa7IiaPpnJ@zlsD;l83n~+r%|1R@_*u>MJ6h&ct{_ z=H=_x!7m;MuX2_MXn9M_J+Cm-hTNpH>=mNsC<9kP)$a(UEUF`RJRVHGw%nH4A_E h2-=FCwErWPz_6w1NS~Nz6ep+x^>p=fS?83{1OQq_0~!DT literal 0 HcmV?d00001 diff --git a/docs/api/2.11/lib/signaturebg.gif b/docs/api/2.11/lib/signaturebg.gif new file mode 100644 index 0000000000000000000000000000000000000000..b6ac4415e4a3a3ce7e38401a476beea7b1938585 GIT binary patch literal 1214 zcmZ?wbhEHbWMoihIKsei_wL=3Cr`e6|Ni^;?>BB-U$kh^&6_u0zkc=h?b|o6U*ElR z_x}C+_wL<0ckbN#ckgfCzWw^m>zlW3y?yug<;zz$Zrr$Y=gynAZ*JYXb^ZGFckkZ4 zdiCo6|Njg~K=D6!gl~X?OJYePkhZa}C`e4sPAySLN=?tqvsHS(d%u!GW{Ry+xT&v! zZ-H}aMy5wqQEG6NUr2IQcCuxPlD(aRO@&oOZb5EpNuokUZcbjYRfVlmVoH8esuhq8 z64qBz04piUwpDTjNhpBqbj~kIRWQ{v&`mZlGf*%y)H5_TF*i5YQ7|$vG|)FN(l<2H zH8i&}HnK7>P=Ep@plwAdX;wilZcw{`JX@uVl9B=|ef{$Ca=mh6z5JqdeM3u2OOP2x zM!G;1y2X`wC5aWfdBw^w6I@b@lZ!G7N;32F6hI~>Cgqow*eU^C3h_d20o>TUVm+{T z^pf*)^(zt!^bPe4Kwg3=^!3HBG&dKny0|1L72#g21{a4^7NqJ2r55Lx7A2!(A3h{#L&>yz{$%-qt%$9UanL3(T0L?SR?iPsN6x?nx z!08r!pkwqw5sMVjFd<;-0Wsmp7RZ4o{M0;PYA*sNYsUZo{{H#>>*tT}-@bnN{ORL| z_wRsN?$yf|&!0Vg^7zri2lwyYy>t84%^TORUA=Po(!~qs&z(JU`qar2$B!L7a`@1} z1N-;w-Lrew&K=vgZQZhY)5ZeMTG_VdAT{+S(zE>X{jm6Nr?&Z zaj`McQIQehVWAmo_ zrKzE=rmCW>q^KY-Co3Z@B`F~;CMqH&FX#K^#)_>%=(Qs{t4 sPRwL~E)H9a%WR_Xoj{Yna%DYi=CroINg16w1-Ypui3%0DIeEoa6}C!=DfvmMRzNmLSYJs2tfVB{R>=`0p#ZYe zIlm}X!Bo#cH`&0({$jZP#0Sc6WwiTtM zSp~VcLG1$aY?U%fN(!v>^~=l4^~#O)@{7{-4J|D#L1q{k=>k>g7FXt#Bv$C=6)VF` za7isrF3Kz@$;{7F0GXJWlwVq6s|0i@#0$9vaAWg|^}ycIOU}>LuShJ=H`Fr#c?qV_ z*B8Ii++4Wo;*y|LgnO|XTpUtakg6Y)TAW{6l$;7wt_-rOz{ATTy({MavwGFa70Z_`U9x!5!Ugl^&7CuQ*322xr%jzQdD6rQ{e8VX-Cdm>?QN|s z%}tFB^>wv1)m4=h1nAc$w`R`@o}*+(NU2R;bEa6!9jrm z{(inb-d>&_?ryFw&Q6XF_I9>5)>f7l=4PfQ#zw#_rKhW-t);1EF>tv&&SKd&Be*V&c@2Z%*4pRp!kyoTyW@sNKkpiz$&$%l_m71iJOQf Yv$AL3W|;;C$CD p { + margin-top: 5px; +} + +#types ol li:last-child { + margin-bottom: 5px; +} + +/* +#definition { + padding: 6px 0 6px 6px; + min-height: 59px; + color: white; +} +*/ + +#definition { + display: block-inline; + padding: 5px 0px; + height: 61px; +} + +#definition > img { + float: left; + padding-right: 6px; + padding-left: 5px; +} + +#definition > a > img { + float: left; + padding-right: 6px; + padding-left: 5px; +} + +#definition p + h1 { + margin-top: 3px; +} + +#definition > h1 { +/* padding: 12px 0 12px 6px;*/ + color: white; + text-shadow: 3px black; + text-shadow: black 0px 2px 0px; + font-size: 24pt; + display: inline-block; + overflow: hidden; + margin-top: 10px; +} + +#definition h1 > a { + color: #ffffff; + font-size: 24pt; + text-shadow: black 0px 2px 0px; +/* text-shadow: black 0px 0px 0px;*/ +text-decoration: none; +} + +#definition #owner { + color: #ffffff; + margin-top: 4px; + font-size: 10pt; + overflow: hidden; +} + +#definition #owner > a { + color: #ffffff; +} + +#definition #owner > a:hover { + text-decoration: none; +} + +#signature { + background-image:url('signaturebg2.gif'); + background-color: #d7d7d7; + min-height: 18px; + background-repeat:repeat-x; + font-size: 11.5pt; +/* margin-bottom: 10px;*/ + padding: 8px; +} + +#signature > span.modifier_kind { + display: inline; + float: left; + text-align: left; + width: auto; + position: static; + text-shadow: 2px white; + text-shadow: white 0px 1px 0px; +} + +#signature > span.symbol { + text-align: left; + display: inline; + padding-left: 0.7em; + text-shadow: 2px white; + text-shadow: white 0px 1px 0px; +} + +/* Linear super types and known subclasses */ +.hiddenContent { + display: none; +} + +.toggleContainer .toggle { + cursor: pointer; + padding-left: 15px; + background: url("arrow-right.png") no-repeat 0 3px transparent; +} + +.toggleContainer .toggle.open { + background: url("arrow-down.png") no-repeat 0 3px transparent; +} + +.toggleContainer .hiddenContent { + margin-top: 5px; +} + +.value #definition { + background-color: #2C475C; /* blue */ + background-image:url('defbg-blue.gif'); + background-repeat:repeat-x; +} + +.type #definition { + background-color: #316555; /* green */ + background-image:url('defbg-green.gif'); + background-repeat:repeat-x; +} + +#template { + margin-bottom: 50px; +} + +h3 { + color: white; + padding: 5px 10px; + font-size: 12pt; + font-weight: bold; + text-shadow: black 1px 1px 0px; +} + +dl.attributes > dt { + display: block; + float: left; + font-style: italic; +} + +dl.attributes > dt.implicit { + font-weight: bold; + color: darkgreen; +} + +dl.attributes > dd { + display: block; + padding-left: 10em; + margin-bottom: 5px; + min-height: 15px; +} + +#template .values > h3 { + background: #2C475C url("valuemembersbg.gif") repeat-x bottom left; /* grayish blue */ + height: 18px; +} + +#values ol li:last-child { + margin-bottom: 5px; +} + +#template .types > h3 { + background: #316555 url("typebg.gif") repeat-x bottom left; /* green */ + height: 18px; +} + +#constructors > h3 { + background: #4f504f url("constructorsbg.gif") repeat-x bottom left; /* gray */ + height: 18px; +} + +#inheritedMembers > div.parent > h3 { + background: #dadada url("constructorsbg.gif") repeat-x bottom left; /* gray */ + height: 17px; + font-style: italic; + font-size: 12pt; +} + +#inheritedMembers > div.parent > h3 * { + color: white; +} + +#inheritedMembers > div.conversion > h3 { + background: #dadada url("conversionbg.gif") repeat-x bottom left; /* gray */ + height: 17px; + font-style: italic; + font-size: 12pt; +} + +#inheritedMembers > div.conversion > h3 * { + color: white; +} + +#groupedMembers > div.group > h3 { + background: #dadada url("typebg.gif") repeat-x bottom left; /* green */ + height: 17px; + font-size: 12pt; +} + +#groupedMembers > div.group > h3 * { + color: white; +} + + +/* Member cells */ + +div.members > ol { + background-color: white; + list-style: none +} + +div.members > ol > li { + display: block; + border-bottom: 1px solid gray; + padding: 5px 0 6px; + margin: 0 10px; + position: relative; +} + +div.members > ol > li:last-child { + border: 0; + padding: 5px 0 5px; +} + +/* Member signatures */ + +#tooltip { + background: #EFD5B5; + border: 1px solid gray; + color: black; + display: none; + padding: 5px; + position: absolute; +} + +.signature { + font-family: monospace; + font-size: 10pt; + line-height: 18px; + clear: both; + display: block; + text-shadow: 2px white; + text-shadow: white 0px 1px 0px; +} + +.signature .modifier_kind { + position: absolute; + text-align: right; + width: 14em; +} + +.signature > a > .symbol > .name { + text-decoration: underline; +} + +.signature > a:hover > .symbol > .name { + text-decoration: none; +} + +.signature > a { + text-decoration: none; +} + +.signature > .symbol { + display: block; + padding-left: 14.7em; +} + +.signature .name { + display: inline-block; + font-weight: bold; +} + +.signature .symbol > .implicit { + display: inline-block; + font-weight: bold; + text-decoration: underline; + color: darkgreen; +} + +.signature .symbol .shadowed { + color: darkseagreen; +} + +.signature .symbol .params > .implicit { + font-style: italic; +} + +.signature .symbol .deprecated { + text-decoration: line-through; +} + +.signature .symbol .params .default { + font-style: italic; +} + +#template .signature.closed { + background: url("arrow-right.png") no-repeat 0 5px transparent; + cursor: pointer; +} + +#template .signature.opened { + background: url("arrow-down.png") no-repeat 0 5px transparent; + cursor: pointer; +} + +#template .values .signature .name { + color: darkblue; +} + +#template .types .signature .name { + color: darkgreen; +} + +.full-signature-usecase h4 span { + font-size: 10pt; +} + +.full-signature-usecase > #signature { + padding-top: 0px; +} + +#template .full-signature-usecase > .signature.closed { + background: none; +} + +#template .full-signature-usecase > .signature.opened { + background: none; +} + +.full-signature-block { + padding: 5px 0 0; + border-top: 1px solid #EBEBEB; + margin-top: 5px; + margin-bottom: 5px; +} + +#definition .morelinks { + text-align: right; + position: absolute; + top: 40px; + right: 10px; + width: 450px; +} + +#definition .morelinks a { + color: #EBEBEB; +} + +#template .members li .permalink { + position: absolute; + top: 5px; + right: 5px; +} + +#definition .permalink { + position: absolute; + top: 10px; + right: 15px; +} + +#definition .permalink a { + color: #EBEBEB; +} + +#template .members li .permalink, +#definition .permalink a { + display: none; +} + +#template .members li:hover .permalink, +#definition:hover .permalink a { + display: block; +} + +#template .members li .permalink a, +#definition .permalink a { + text-decoration: none; + font-weight: bold; +} + +/* Comments text formating */ + +.cmt {} + +.cmt p { + margin: 0.7em 0; +} + +.cmt p:first-child { + margin-top: 0; +} + +.cmt p:last-child { + margin-bottom: 0; +} + +.cmt h3, +.cmt h4, +.cmt h5, +.cmt h6 { + margin-bottom: 0.7em; + margin-top: 1.4em; + display: block; + text-align: left; + font-weight: bold; +} + +.cmt h3 { + font-size: 14pt; +} + +.cmt h4 { + font-size: 13pt; +} + +.cmt h5 { + font-size: 12pt; +} + +.cmt h6 { + font-size: 11pt; +} + +.cmt pre { + padding: 5px; + border: 1px solid #ddd; + background-color: #eee; + margin: 5px 0; + display: block; + font-family: monospace; +} + +.cmt pre span.ano { + color: blue; +} + +.cmt pre span.cmt { + color: green; +} + +.cmt pre span.kw { + font-weight: bold; +} + +.cmt pre span.lit { + color: #c71585; +} + +.cmt pre span.num { + color: #1e90ff; /* dodgerblue */ +} + +.cmt pre span.std { + color: #008080; /* teal */ +} + +.cmt ul { + display: block; + list-style: circle; + padding-left: 20px; +} + +.cmt ol { + display: block; + padding-left:20px; +} + +.cmt ol.decimal { + list-style: decimal; +} + +.cmt ol.lowerAlpha { + list-style: lower-alpha; +} + +.cmt ol.upperAlpha { + list-style: upper-alpha; +} + +.cmt ol.lowerRoman { + list-style: lower-roman; +} + +.cmt ol.upperRoman { + list-style: upper-roman; +} + +.cmt li { + display: list-item; +} + +.cmt code { + font-family: monospace; +} + +.cmt a { + font-style: bold; +} + +.cmt em, .cmt i { + font-style: italic; +} + +.cmt strong, .cmt b { + font-weight: bold; +} + +/* Comments structured layout */ + +.group > div.comment { + padding-top: 5px; + padding-bottom: 5px; + padding-right: 5px; + padding-left: 5px; + border: 1px solid #ddd; + background-color: #eeeee; + margin-top:5px; + margin-bottom:5px; + margin-right:5px; + margin-left:5px; + display: block; +} + +p.comment { + display: block; + margin-left: 14.7em; + margin-top: 5px; +} + +.shortcomment { + display: block; + margin: 5px 10px; +} + +div.fullcommenttop { + padding: 10px 10px; + background-image:url('fullcommenttopbg.gif'); + background-repeat:repeat-x; +} + +div.fullcomment { + margin: 5px 10px; +} + +#template div.fullcommenttop, +#template div.fullcomment { + display:none; + margin: 5px 0 0 14.7em; +} + +#template .shortcomment { + margin: 5px 0 0 14.7em; + padding: 0; +} + +div.fullcomment .block { + padding: 5px 0 0; + border-top: 1px solid #EBEBEB; + margin-top: 5px; + overflow: hidden; +} + +div.fullcommenttop .block { + padding: 5px 0 0; + border-top: 1px solid #EBEBEB; + margin-top: 5px; + margin-bottom: 5px +} + +div.fullcomment div.block ol li p, +div.fullcomment div.block ol li { + display:inline +} + +div.fullcomment .block > h5 { + font-style: italic; + font-weight: normal; + display: inline-block; +} + +div.fullcomment .comment { + margin: 5px 0 10px; +} + +div.fullcommenttop .comment:last-child, +div.fullcomment .comment:last-child { + margin-bottom: 0; +} + +div.fullcommenttop dl.paramcmts { + margin-bottom: 0.8em; + padding-bottom: 0.8em; +} + +div.fullcommenttop dl.paramcmts > dt, +div.fullcomment dl.paramcmts > dt { + display: block; + float: left; + font-weight: bold; + min-width: 70px; +} + +div.fullcommenttop dl.paramcmts > dd, +div.fullcomment dl.paramcmts > dd { + display: block; + padding-left: 10px; + margin-bottom: 5px; + margin-left: 70px; + min-height: 15px; +} + +/* Members filter tool */ + +#textfilter { + position: relative; + display: block; + height: 20px; + margin-bottom: 5px; +} + +#textfilter > .pre { + display: block; + position: absolute; + top: 0; + left: 0; + height: 23px; + width: 21px; + background: url("filter_box_left.png"); +} + +#textfilter > .input { + display: block; + position: absolute; + top: 0; + right: 20px; + left: 20px; +} + +#textfilter > .input > input { + height: 20px; + padding: 1px; + font-weight: bold; + color: #000000; + background: #ffffff url("filterboxbarbg.png") repeat-x top left; + width: 100%; +} + +#textfilter > .post { + display: block; + position: absolute; + top: 0; + right: 0; + height: 23px; + width: 21px; + background: url("filter_box_right.png"); +} + +#mbrsel { + padding: 5px 10px; + background-color: #ededee; /* light gray */ + background-image:url('filterboxbg.gif'); + background-repeat:repeat-x; + font-size: 9.5pt; + display: block; + margin-top: 1em; +/* margin-bottom: 1em; */ +} + +#mbrsel > div { + margin-bottom: 5px; +} + +#mbrsel > div:last-child { + margin-bottom: 0; +} + +#mbrsel > div > span.filtertype { + padding: 4px; + margin-right: 5px; + float: left; + display: inline-block; + color: #000000; + font-weight: bold; + text-shadow: white 0px 1px 0px; + width: 4.5em; +} + +#mbrsel > div > ol { + display: inline-block; +} + +#mbrsel > div > a { + position:relative; + top: -8px; + font-size: 11px; + text-shadow: #ffffff 0 1px 0; +} + +#mbrsel > div > ol#linearization { + display: table; + margin-left: 70px; +} + +#mbrsel > div > ol#linearization > li.in { + text-decoration: none; + float: left; + padding-right: 10px; + margin-right: 5px; + background: url(selected-right.png) no-repeat; + background-position: right 0px; +} + +#mbrsel > div > ol#linearization > li.in > span{ + color: #404040; + float: left; + padding: 1px 0 1px 10px; + background: url(selected.png) no-repeat; + background-position: 0px 0px; + text-shadow: #ffffff 0 1px 0; +} + +#mbrsel > div > ol#implicits { + display: table; + margin-left: 70px; +} + +#mbrsel > div > ol#implicits > li.in { + text-decoration: none; + float: left; + padding-right: 10px; + margin-right: 5px; + background: url(selected-right-implicits.png) no-repeat; + background-position: right 0px; +} + +#mbrsel > div > ol#implicits > li.in > span{ + color: #404040; + float: left; + padding: 1px 0 1px 10px; + background: url(selected-implicits.png) no-repeat; + background-position: 0px 0px; + text-shadow: #ffffff 0 1px 0; +} + +#mbrsel > div > ol > li { +/* padding: 3px 10px;*/ + line-height: 16pt; + display: inline-block; + cursor: pointer; +} + +#mbrsel > div > ol > li.in { + text-decoration: none; + float: left; + padding-right: 10px; + margin-right: 5px; + background: url(selected-right.png) no-repeat; + background-position: right 0px; +} + +#mbrsel > div > ol > li.in > span{ + color: #404040; + float: left; + padding: 1px 0 1px 10px; + background: url(selected.png) no-repeat; + background-position: 0px 0px; + text-shadow: #ffffff 0 1px 0; +} + +#mbrsel > div > ol > li.out { + text-decoration: none; + float: left; + padding-right: 10px; + margin-right: 5px; +} + +#mbrsel > div > ol > li.out > span{ + color: #747474; +/* background-color: #999; */ + float: left; + padding: 1px 0 1px 10px; +/* background: url(unselected.png) no-repeat;*/ + background-position: 0px -1px; + text-shadow: #ffffff 0 1px 0; +} +/* +#mbrsel .hideall { + color: #4C4C4C; + line-height: 16px; + font-weight: bold; +} + +#mbrsel .hideall span { + color: #4C4C4C; + font-weight: bold; +} + +#mbrsel .showall { + color: #4C4C4C; + line-height: 16px; + font-weight: bold; +} + +#mbrsel .showall span { + color: #4C4C4C; + font-weight: bold; +}*/ + +.badge { + display: inline-block; + padding: 2px 4px; + font-size: 11.844px; + font-weight: bold; + line-height: 14px; + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + white-space: nowrap; + vertical-align: baseline; + background-color: #999999; + padding-right: 9px; + padding-left: 9px; + -webkit-border-radius: 9px; + -moz-border-radius: 9px; + border-radius: 9px; +} + +.badge-red { + background-color: #b94a48; +} diff --git a/docs/api/2.11/lib/template.js b/docs/api/2.11/lib/template.js new file mode 100644 index 0000000..798a2d4 --- /dev/null +++ b/docs/api/2.11/lib/template.js @@ -0,0 +1,500 @@ +// © 2009–2010 EPFL/LAMP +// code by Gilles Dubochet with contributions by Pedro Furlanetto and Marcin Kubala + +$(document).ready(function(){ + + var controls = { + visibility: { + publicOnly: $("#visbl").find("> ol > li.public"), + all: $("#visbl").find("> ol > li.all") + } + }; + + // Escapes special characters and returns a valid jQuery selector + function escapeJquery(str){ + return str.replace(/([;&,\.\+\*\~':"\!\^#$%@\[\]\(\)=<>\|])/g, '\\$1'); + } + + function toggleVisibilityFilter(ctrlToEnable, ctrToDisable) { + if (ctrlToEnable.hasClass("out")) { + ctrlToEnable.removeClass("out").addClass("in"); + ctrToDisable.removeClass("in").addClass("out"); + filter(); + } + } + + controls.visibility.publicOnly.click(function () { + toggleVisibilityFilter(controls.visibility.publicOnly, controls.visibility.all); + }); + + controls.visibility.all.click(function () { + toggleVisibilityFilter(controls.visibility.all, controls.visibility.publicOnly); + }); + + function exposeMember(jqElem) { + var jqElemParent = jqElem.parent(), + parentName = jqElemParent.attr("name"), + linearizationName = /^([^#]*)(#.*)?$/gi.exec(parentName)[1]; + + // switch visibility filter if necessary + if (jqElemParent.attr("visbl") == "prt") { + toggleVisibilityFilter(controls.visibility.all, controls.visibility.publicOnly); + } + + // toggle appropriate linearization buttons + if (linearizationName) { + $("#linearization li.out[name='" + linearizationName + "']").removeClass("out").addClass("in"); + } + + filter(); + window.scrollTo(0, 0); + jqElemParent.effect("highlight", {color: "#FFCC85"}, 3000); + $('html,body').animate({scrollTop: jqElemParent.offset().top}, 1000); + } + + var isHiddenClass = function (name) { + return name == 'scala.Any' || + name == 'scala.AnyRef'; + }; + + var isHidden = function (elem) { + return $(elem).attr("data-hidden") == 'true'; + }; + + $("#linearization li:gt(0)").filter(function(){ + return isHiddenClass($(this).attr("name")); + }).removeClass("in").addClass("out"); + + $("#implicits li").filter(function(){ + return isHidden(this); + }).removeClass("in").addClass("out"); + + // Pre-filter members + filter(); + + // Member filter box + var input = $("#textfilter input"); + input.bind("keyup", function(event) { + + switch ( event.keyCode ) { + + case 27: // escape key + input.val(""); + filter(true); + break; + + case 38: // up + input.val(""); + filter(false); + window.scrollTo(0, $("body").offset().top); + input.focus(); + break; + + case 33: //page up + input.val(""); + filter(false); + break; + + case 34: //page down + input.val(""); + filter(false); + break; + + default: + window.scrollTo(0, $("#mbrsel").offset().top); + filter(true); + break; + + } + }); + input.focus(function(event) { + input.select(); + }); + $("#textfilter > .post").click(function() { + $("#textfilter input").attr("value", ""); + filter(); + }); + $(document).keydown(function(event) { + + if (event.keyCode == 9) { // tab + $("#index-input", window.parent.document).focus(); + input.attr("value", ""); + return false; + } + }); + + $("#linearization li").click(function(){ + if ($(this).hasClass("in")) { + $(this).removeClass("in"); + $(this).addClass("out"); + } + else if ($(this).hasClass("out")) { + $(this).removeClass("out"); + $(this).addClass("in"); + } + filter(); + }); + + $("#implicits li").click(function(){ + if ($(this).hasClass("in")) { + $(this).removeClass("in"); + $(this).addClass("out"); + } + else if ($(this).hasClass("out")) { + $(this).removeClass("out"); + $(this).addClass("in"); + } + filter(); + }); + + $("#mbrsel > div[id=ancestors] > ol > li.hideall").click(function() { + $("#linearization li.in").removeClass("in").addClass("out"); + $("#linearization li:first").removeClass("out").addClass("in"); + $("#implicits li.in").removeClass("in").addClass("out"); + + if ($(this).hasClass("out") && $("#mbrsel > div[id=ancestors] > ol > li.showall").hasClass("in")) { + $(this).removeClass("out").addClass("in"); + $("#mbrsel > div[id=ancestors] > ol > li.showall").removeClass("in").addClass("out"); + } + + filter(); + }) + $("#mbrsel > div[id=ancestors] > ol > li.showall").click(function() { + var filteredLinearization = + $("#linearization li.out").filter(function() { + return ! isHiddenClass($(this).attr("name")); + }); + filteredLinearization.removeClass("out").addClass("in"); + + var filteredImplicits = + $("#implicits li.out").filter(function() { + return ! isHidden(this); + }); + filteredImplicits.removeClass("out").addClass("in"); + + if ($(this).hasClass("out") && $("#mbrsel > div[id=ancestors] > ol > li.hideall").hasClass("in")) { + $(this).removeClass("out").addClass("in"); + $("#mbrsel > div[id=ancestors] > ol > li.hideall").removeClass("in").addClass("out"); + } + + filter(); + }); + $("#order > ol > li.alpha").click(function() { + if ($(this).hasClass("out")) { + orderAlpha(); + } + }) + $("#order > ol > li.inherit").click(function() { + if ($(this).hasClass("out")) { + orderInherit(); + } + }); + $("#order > ol > li.group").click(function() { + if ($(this).hasClass("out")) { + orderGroup(); + } + }); + $("#groupedMembers").hide(); + + initInherit(); + + // Create tooltips + $(".extype").add(".defval").tooltip({ + tip: "#tooltip", + position: "top center", + predelay: 500, + onBeforeShow: function(ev) { + $(this.getTip()).text(this.getTrigger().attr("name")); + } + }); + + /* Add toggle arrows */ + //var docAllSigs = $("#template li").has(".fullcomment").find(".signature"); + // trying to speed things up a little bit + var docAllSigs = $("#template li[fullComment=yes] .signature"); + + function commentToggleFct(signature){ + var parent = signature.parent(); + var shortComment = $(".shortcomment", parent); + var fullComment = $(".fullcomment", parent); + var vis = $(":visible", fullComment); + signature.toggleClass("closed").toggleClass("opened"); + if (vis.length > 0) { + shortComment.slideDown(100); + fullComment.slideUp(100); + } + else { + shortComment.slideUp(100); + fullComment.slideDown(100); + } + }; + docAllSigs.addClass("closed"); + docAllSigs.click(function() { + commentToggleFct($(this)); + }); + + /* Linear super types and known subclasses */ + function toggleShowContentFct(e){ + e.toggleClass("open"); + var content = $(".hiddenContent", e.parent().get(0)); + if (content.is(':visible')) { + content.slideUp(100); + } + else { + content.slideDown(100); + } + }; + + $(".toggle:not(.diagram-link)").click(function() { + toggleShowContentFct($(this)); + }); + + // Set parent window title + windowTitle(); + + if ($("#order > ol > li.group").length == 1) { orderGroup(); }; + + function findElementByHash(locationHash) { + var temp = locationHash.replace('#', ''); + var memberSelector = '#' + escapeJquery(temp); + return $(memberSelector); + } + + // highlight and jump to selected member + if (window.location.hash) { + var jqElem = findElementByHash(window.location.hash); + if (jqElem.length > 0) { + exposeMember(jqElem); + } + } +}); + +function orderAlpha() { + $("#order > ol > li.alpha").removeClass("out").addClass("in"); + $("#order > ol > li.inherit").removeClass("in").addClass("out"); + $("#order > ol > li.group").removeClass("in").addClass("out"); + $("#template > div.parent").hide(); + $("#template > div.conversion").hide(); + $("#mbrsel > div[id=ancestors]").show(); + filter(); +}; + +function orderInherit() { + $("#order > ol > li.inherit").removeClass("out").addClass("in"); + $("#order > ol > li.alpha").removeClass("in").addClass("out"); + $("#order > ol > li.group").removeClass("in").addClass("out"); + $("#template > div.parent").show(); + $("#template > div.conversion").show(); + $("#mbrsel > div[id=ancestors]").hide(); + filter(); +}; + +function orderGroup() { + $("#order > ol > li.group").removeClass("out").addClass("in"); + $("#order > ol > li.alpha").removeClass("in").addClass("out"); + $("#order > ol > li.inherit").removeClass("in").addClass("out"); + $("#template > div.parent").hide(); + $("#template > div.conversion").hide(); + $("#mbrsel > div[id=ancestors]").show(); + filter(); +}; + +/** Prepares the DOM for inheritance-based display. To do so it will: + * - hide all statically-generated parents headings; + * - copy all members from the value and type members lists (flat members) to corresponding lists nested below the + * parent headings (inheritance-grouped members); + * - initialises a control variable used by the filter method to control whether filtering happens on flat members + * or on inheritance-grouped members. */ +function initInherit() { + // inheritParents is a map from fully-qualified names to the DOM node of parent headings. + var inheritParents = new Object(); + var groupParents = new Object(); + $("#inheritedMembers > div.parent").each(function(){ + inheritParents[$(this).attr("name")] = $(this); + }); + $("#inheritedMembers > div.conversion").each(function(){ + inheritParents[$(this).attr("name")] = $(this); + }); + $("#groupedMembers > div.group").each(function(){ + groupParents[$(this).attr("name")] = $(this); + }); + + $("#types > ol > li").each(function(){ + var mbr = $(this); + this.mbrText = mbr.find("> .fullcomment .cmt").text(); + var qualName = mbr.attr("name"); + var owner = qualName.slice(0, qualName.indexOf("#")); + var name = qualName.slice(qualName.indexOf("#") + 1); + var inheritParent = inheritParents[owner]; + if (inheritParent != undefined) { + var types = $("> .types > ol", inheritParent); + if (types.length == 0) { + inheritParent.append("

      Type Members

        "); + types = $("> .types > ol", inheritParent); + } + var clone = mbr.clone(); + clone[0].mbrText = this.mbrText; + types.append(clone); + } + var group = mbr.attr("group") + var groupParent = groupParents[group]; + if (groupParent != undefined) { + var types = $("> .types > ol", groupParent); + if (types.length == 0) { + groupParent.append("
          "); + types = $("> .types > ol", groupParent); + } + var clone = mbr.clone(); + clone[0].mbrText = this.mbrText; + types.append(clone); + } + }); + + $("#values > ol > li").each(function(){ + var mbr = $(this); + this.mbrText = mbr.find("> .fullcomment .cmt").text(); + var qualName = mbr.attr("name"); + var owner = qualName.slice(0, qualName.indexOf("#")); + var name = qualName.slice(qualName.indexOf("#") + 1); + var inheritParent = inheritParents[owner]; + if (inheritParent != undefined) { + var values = $("> .values > ol", inheritParent); + if (values.length == 0) { + inheritParent.append("

          Value Members

            "); + values = $("> .values > ol", inheritParent); + } + var clone = mbr.clone(); + clone[0].mbrText = this.mbrText; + values.append(clone); + } + var group = mbr.attr("group") + var groupParent = groupParents[group]; + if (groupParent != undefined) { + var values = $("> .values > ol", groupParent); + if (values.length == 0) { + groupParent.append("
              "); + values = $("> .values > ol", groupParent); + } + var clone = mbr.clone(); + clone[0].mbrText = this.mbrText; + values.append(clone); + } + }); + $("#inheritedMembers > div.parent").each(function() { + if ($("> div.members", this).length == 0) { $(this).remove(); }; + }); + $("#inheritedMembers > div.conversion").each(function() { + if ($("> div.members", this).length == 0) { $(this).remove(); }; + }); + $("#groupedMembers > div.group").each(function() { + if ($("> div.members", this).length == 0) { $(this).remove(); }; + }); +}; + +/* filter used to take boolean scrollToMember */ +function filter() { + var query = $.trim($("#textfilter input").val()).toLowerCase(); + query = query.replace(/[-[\]{}()*+?.,\\^$|#]/g, "\\$&").replace(/\s+/g, "|"); + var queryRegExp = new RegExp(query, "i"); + var privateMembersHidden = $("#visbl > ol > li.public").hasClass("in"); + var orderingAlphabetic = $("#order > ol > li.alpha").hasClass("in"); + var orderingInheritance = $("#order > ol > li.inherit").hasClass("in"); + var orderingGroups = $("#order > ol > li.group").hasClass("in"); + var hiddenSuperclassElementsLinearization = orderingInheritance ? $("#linearization > li:gt(0)") : $("#linearization > li.out"); + var hiddenSuperclassesLinearization = hiddenSuperclassElementsLinearization.map(function() { + return $(this).attr("name"); + }).get(); + var hiddenSuperclassElementsImplicits = orderingInheritance ? $("#implicits > li") : $("#implicits > li.out"); + var hiddenSuperclassesImplicits = hiddenSuperclassElementsImplicits.map(function() { + return $(this).attr("name"); + }).get(); + + var hideInheritedMembers; + + if (orderingAlphabetic) { + $("#allMembers").show(); + $("#inheritedMembers").hide(); + $("#groupedMembers").hide(); + hideInheritedMembers = true; + $("#allMembers > .members").each(filterFunc); + } else if (orderingGroups) { + $("#groupedMembers").show(); + $("#inheritedMembers").hide(); + $("#allMembers").hide(); + hideInheritedMembers = true; + $("#groupedMembers > .group > .members").each(filterFunc); + $("#groupedMembers > div.group").each(function() { + $(this).show(); + if ($("> div.members", this).not(":hidden").length == 0) { + $(this).hide(); + } else { + $(this).show(); + } + }); + } else if (orderingInheritance) { + $("#inheritedMembers").show(); + $("#groupedMembers").hide(); + $("#allMembers").hide(); + hideInheritedMembers = false; + $("#inheritedMembers > .parent > .members").each(filterFunc); + $("#inheritedMembers > .conversion > .members").each(filterFunc); + } + + + function filterFunc() { + var membersVisible = false; + var members = $(this); + members.find("> ol > li").each(function() { + var mbr = $(this); + if (privateMembersHidden && mbr.attr("visbl") == "prt") { + mbr.hide(); + return; + } + var name = mbr.attr("name"); + // Owner filtering must not happen in "inherited from" member lists + if (hideInheritedMembers) { + var ownerIndex = name.indexOf("#"); + if (ownerIndex < 0) { + ownerIndex = name.lastIndexOf("."); + } + var owner = name.slice(0, ownerIndex); + for (var i = 0; i < hiddenSuperclassesLinearization.length; i++) { + if (hiddenSuperclassesLinearization[i] == owner) { + mbr.hide(); + return; + } + }; + for (var i = 0; i < hiddenSuperclassesImplicits.length; i++) { + if (hiddenSuperclassesImplicits[i] == owner) { + mbr.hide(); + return; + } + }; + } + if (query && !(queryRegExp.test(name) || queryRegExp.test(this.mbrText))) { + mbr.hide(); + return; + } + mbr.show(); + membersVisible = true; + }); + + if (membersVisible) + members.show(); + else + members.hide(); + }; + + return false; +}; + +function windowTitle() +{ + try { + parent.document.title=document.title; + } + catch(e) { + // Chrome doesn't allow settings the parent's title when + // used on the local file system. + } +}; diff --git a/docs/api/2.11/lib/tools.tooltip.js b/docs/api/2.11/lib/tools.tooltip.js new file mode 100644 index 0000000..0af34ec --- /dev/null +++ b/docs/api/2.11/lib/tools.tooltip.js @@ -0,0 +1,14 @@ +/* + * tools.tooltip 1.1.3 - Tooltips done right. + * + * Copyright (c) 2009 Tero Piirainen + * http://flowplayer.org/tools/tooltip.html + * + * Dual licensed under MIT and GPL 2+ licenses + * http://www.opensource.org/licenses + * + * Launch : November 2008 + * Date: ${date} + * Revision: ${revision} + */ +(function(c){var d=[];c.tools=c.tools||{};c.tools.tooltip={version:"1.1.3",conf:{effect:"toggle",fadeOutSpeed:"fast",tip:null,predelay:0,delay:30,opacity:1,lazy:undefined,position:["top","center"],offset:[0,0],cancelDefault:true,relative:false,oneInstance:true,events:{def:"mouseover,mouseout",input:"focus,blur",widget:"focus mouseover,blur mouseout",tooltip:"mouseover,mouseout"},api:false},addEffect:function(e,g,f){b[e]=[g,f]}};var b={toggle:[function(e){var f=this.getConf(),g=this.getTip(),h=f.opacity;if(h<1){g.css({opacity:h})}g.show();e.call()},function(e){this.getTip().hide();e.call()}],fade:[function(e){this.getTip().fadeIn(this.getConf().fadeInSpeed,e)},function(e){this.getTip().fadeOut(this.getConf().fadeOutSpeed,e)}]};function a(f,g){var p=this,k=c(this);f.data("tooltip",p);var l=f.next();if(g.tip){l=c(g.tip);if(l.length>1){l=f.nextAll(g.tip).eq(0);if(!l.length){l=f.parent().nextAll(g.tip).eq(0)}}}function o(u){var t=g.relative?f.position().top:f.offset().top,s=g.relative?f.position().left:f.offset().left,v=g.position[0];t-=l.outerHeight()-g.offset[0];s+=f.outerWidth()+g.offset[1];var q=l.outerHeight()+f.outerHeight();if(v=="center"){t+=q/2}if(v=="bottom"){t+=q}v=g.position[1];var r=l.outerWidth()+f.outerWidth();if(v=="center"){s-=r/2}if(v=="left"){s-=r}return{top:t,left:s}}var i=f.is(":input"),e=i&&f.is(":checkbox, :radio, select, :button"),h=f.attr("type"),n=g.events[h]||g.events[i?(e?"widget":"input"):"def"];n=n.split(/,\s*/);if(n.length!=2){throw"Tooltip: bad events configuration for "+h}f.bind(n[0],function(r){if(g.oneInstance){c.each(d,function(){this.hide()})}var q=l.data("trigger");if(q&&q[0]!=this){l.hide().stop(true,true)}r.target=this;p.show(r);n=g.events.tooltip.split(/,\s*/);l.bind(n[0],function(){p.show(r)});if(n[1]){l.bind(n[1],function(){p.hide(r)})}});f.bind(n[1],function(q){p.hide(q)});if(!c.browser.msie&&!i&&!g.predelay){f.mousemove(function(){if(!p.isShown()){f.triggerHandler("mouseover")}})}if(g.opacity<1){l.css("opacity",g.opacity)}var m=0,j=f.attr("title");if(j&&g.cancelDefault){f.removeAttr("title");f.data("title",j)}c.extend(p,{show:function(r){if(r){f=c(r.target)}clearTimeout(l.data("timer"));if(l.is(":animated")||l.is(":visible")){return p}function q(){l.data("trigger",f);var t=o(r);if(g.tip&&j){l.html(f.data("title"))}r=r||c.Event();r.type="onBeforeShow";k.trigger(r,[t]);if(r.isDefaultPrevented()){return p}t=o(r);l.css({position:"absolute",top:t.top,left:t.left});var s=b[g.effect];if(!s){throw'Nonexistent effect "'+g.effect+'"'}s[0].call(p,function(){r.type="onShow";k.trigger(r)})}if(g.predelay){clearTimeout(m);m=setTimeout(q,g.predelay)}else{q()}return p},hide:function(r){clearTimeout(l.data("timer"));clearTimeout(m);if(!l.is(":visible")){return}function q(){r=r||c.Event();r.type="onBeforeHide";k.trigger(r);if(r.isDefaultPrevented()){return}b[g.effect][1].call(p,function(){r.type="onHide";k.trigger(r)})}if(g.delay&&r){l.data("timer",setTimeout(q,g.delay))}else{q()}return p},isShown:function(){return l.is(":visible, :animated")},getConf:function(){return g},getTip:function(){return l},getTrigger:function(){return f},bind:function(q,r){k.bind(q,r);return p},onHide:function(q){return this.bind("onHide",q)},onBeforeShow:function(q){return this.bind("onBeforeShow",q)},onShow:function(q){return this.bind("onShow",q)},onBeforeHide:function(q){return this.bind("onBeforeHide",q)},unbind:function(q){k.unbind(q);return p}});c.each(g,function(q,r){if(c.isFunction(r)){p.bind(q,r)}})}c.prototype.tooltip=function(e){var f=this.eq(typeof e=="number"?e:0).data("tooltip");if(f){return f}var g=c.extend(true,{},c.tools.tooltip.conf);if(c.isFunction(e)){e={onBeforeShow:e}}else{if(typeof e=="string"){e={tip:e}}}e=c.extend(true,g,e);if(typeof e.position=="string"){e.position=e.position.split(/,?\s/)}if(e.lazy!==false&&(e.lazy===true||this.length>20)){this.one("mouseover",function(h){f=new a(c(this),e);f.show(h);d.push(f)})}else{this.each(function(){f=new a(c(this),e);d.push(f)})}return e.api?f:this}})(jQuery); \ No newline at end of file diff --git a/docs/api/2.11/lib/trait.png b/docs/api/2.11/lib/trait.png new file mode 100644 index 0000000000000000000000000000000000000000..fb961a2eda3f55c9d8272a4793549e23120aec6b GIT binary patch literal 3374 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 Ef&ySVw*UYD literal 0 HcmV?d00001 diff --git a/docs/api/2.11/lib/trait_big.png b/docs/api/2.11/lib/trait_big.png new file mode 100644 index 0000000000000000000000000000000000000000..625d9251cba32d350beb988fcd072672d5f3b375 GIT binary patch literal 7410 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 literal 0 HcmV?d00001 diff --git a/docs/api/2.11/lib/trait_diagram.png b/docs/api/2.11/lib/trait_diagram.png new file mode 100644 index 0000000000000000000000000000000000000000..88983254ce3a4295951e4d3af927d50b50a3146d GIT binary patch literal 3882 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 literal 0 HcmV?d00001 diff --git a/docs/api/2.11/lib/type_diagram.png b/docs/api/2.11/lib/type_diagram.png new file mode 100644 index 0000000000000000000000000000000000000000..d8152529fdc350853f4b1e7debb0a0c8d632ff7f GIT binary patch literal 1841 zcmaJ?c~BE)99T$Lr=we%F*v^CE}IxJ--BM^o`!9R>q2MpO@j3bQT^*1$SrURFCC z2>>oM1k&PKWSh-nWFHq$`FD5iZZP_mU) z32Z{*^D%gSz6vtrXBfhbw5YjYBq1UN%rLG433H~!CL+YN*SaEd?$~D0z}FBwLri;< zlvb$*B`5}i0w$YbV2857P!5yB;|qntIUtwKVYAp=7Kh8=2t_=uh|LDyJ~T2KW=s`n zr1H11$d#C8!f~sJ#mddiW#;mjD3-?JgolSaG`L&_iD20BEVzzfSZqPV3R2i+zz{2r zpcc@fsMDj_xR^#}`lbZ4bwt);d)p?mVJt#tWpS8nM@hp#rSkuwX7dQzhHKz=`TnP{ z4a&2^EDdZ!voQmCaH&C#P*#xygLOEHK`5Fz+(oqs#Zj9HwStoQ0#Kk;ub192qxO9xI4phs&jMDLuu=8ia*d7`^PQtaB8%V%dM-8hnc zWXxx0wa@!*AHI2bF!i_Rsq(Dc+_=BBRdhN%c)_>(jM>>q_pqkTg98IJUyQoI+fvHW+Ky=RaJHK_H8<_+r@L-=`&~A@8@htuCFyo7|Ye*XR%m1bgeEg zFQ4e-O%5~QhcSJ@+e3+4u5h&TQ7=ol(Sy|%)oB~3rR9qStw?S1qbph5q z&KC1Zo}!x;7&ze>Pnnolwm_0_hq|G?I5}umOoG6-og;M~aFwb0gA-m@CB*>;j`-^fFX zREb^}yI;P1`Atbl3E!lcmDl{`I!vRPV6Uv~sjI8I^y}`yW}g)QO8e{-t(G`lzw?&2 vpS!x@6ME$tZpA+Dnp^bdh^L`1X14%ymwB@Ei@#dw_=zcGDrrOPlA?bAm}bg0 literal 0 HcmV?d00001 diff --git a/docs/api/2.11/lib/type_to_object_big.png b/docs/api/2.11/lib/type_to_object_big.png new file mode 100644 index 0000000000000000000000000000000000000000..ef2615bacc702f153594af64f60e4443ab91ea99 GIT binary patch literal 4969 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 SK}x{k>c&71H4lFd25SHaTcP{_ literal 0 HcmV?d00001 diff --git a/docs/api/2.11/lib/unselected.png b/docs/api/2.11/lib/unselected.png new file mode 100644 index 0000000000000000000000000000000000000000..d5ac639405ffe0a45fd51de2904692c7e905c5ef GIT binary patch literal 1879 zcmaJ?Yg7|Q6b|^HqG$*RJ1=z=bYV{JM(?ty?5^2v#TP* zXV}>~*-|JJJE=r0C+8;ear$C7`R*|}n8|585uzZXu~b42X<$l_3QK_jDGJSlaJAasf;LDeyc*Eo3}9c9H=gDj{Q* zj|`OIA~+3^WNF~&tne6R)&eD8#Rv=l{0#z90EGz%Frevbt-v5;yw??wYs)r^0lbG0 z3xtdhK`CUBfC$sTfDaS&Qi8r9;LB#Ry}5pVe$xRC$Oc&;hsEZ2vHb+z903Rd9|wc< zrctE|2w4^iul*#@dilU#;T0#zg zj`u%>wK17E%#y=eOs7$jg-dm_xWWY@4Ga;OCI-XO2W~Mk4I?mZ8ioU+XdgfZDG{~B zevg;Q1X8t@fYeG@Di$(G1tx;11R@?Ul*<+Q`0)LL*z6E6I8?+Jg>ZcR_}t(iE{8k7 z6=O;r3ag0$uIe+_cTldS6;Pb?EQU46LRb~5!BF6R$^vBYSiA?-`^Z%d9t(F+E{hC? zWhv~x3O%qzc8_KGsclK)Q{%&GvfDLeTemlSSw(&=%~EktjN#goZ7tzWkmK?P5!pej zcgbngf{{xfoysL(v+nXQ%V%{s8|-goFJRRzm(JR?+Cz5Dqrf!(w;eBS^2Qbbyz`?P z!dmMqkhh4rBr`&DuXwy7?8M666TRIP!-Kxd6IZT;-`w47yRIJLS&eDFPkXt3%K^K0 zxvd>{PEz7$&yN26$`x-%mz9NYMy!!sV%a`j^Hs;A+6_meQ|#(84dYrLzs#D0a-9-> zXp5TI*lAt)^L4$LtW3r!u0(7U$M3WNxbFl#Y6)sfCuM_h0Dj+_NI#oU82h zEYn8MB55VEC76D(^U%6(537s|`qy0xuZxiTBPUkw7FpA|oa|q3x&rEbad)k3?r)?p z@(*3r=L{pJ@|ua7?#u&Zb4jDw}LwD`?cl&LflP?-Dcam`y7@w(rfe&hxxzG!8Rq zd3cU-TVqO9e@jct0m#uM%YI6=c)izt$FXzkCGNCDn?3f0)m2qh)oXI)+J))tQ`J%yf$?jzi#;wb6p+pl6@I6FDcU8S@0 z2yYs0)wkxB8$U4cUAkWXYVtGH@3;Xl6o>{ z`8r;g@W#_6H@AB)wLXucXl($Gw>h+!R+r@OGB4r}H<=k5E!h!hFNAsK@*auZUlX^W z*9BWOitVMP{KWY9K4SyCd2$@CpV8szA3vS`;7CnPa`sOhN%_yZfk4XNe)i15yy{pC4X~ch)SnB{P)qSs-VcSX*DP3r<@Yyzrk~MM=TqvuBRvF tur|z~H^sL5c+!MS88ch*;^?;{KuWlJ)Eh;9cd6x9Ck+V~n}X*q`v(^B>01B* literal 0 HcmV?d00001 diff --git a/docs/api/2.11/lib/valuemembersbg.gif b/docs/api/2.11/lib/valuemembersbg.gif new file mode 100644 index 0000000000000000000000000000000000000000..2a949311d7869cb769ef7fd48a9c03a57937b60d GIT binary patch literal 1206 zcmZ?wbhEHbWMq(GIKsdnZ{h0@Uu7LxEUIN)Ic=RqSb?mWkG6ZfPfmw%K&HM|vRQDB zZ(f&YMvIb7kh)W(qIH0ZeVAK%lWR)7rb~>DTbx&Ro3x3ip?;Zqle1Gx6p~WYGxKbf-tXS8q>!0ns}yePYv5bpoSKp8QB{;0 zT;&&%T$P<{nWAKGr(jcIRgqhen_7~nP?4LHS8P>btCX0MpOk6^WP^nDl@!2AO0sR0 z96=HaAUmD&i&7O#^$c{A4a^J_%nbDmjZMtW&2GK4GRy>*)Z*l#%z~24{5%DaiHS-1r6smXK$k+ikXryZHm_I@>>a)2{9OHt!~%Uo zJp+)JUEg{v+u2}(t{7puX=A(aKG`a!A1`K3k4sX*n*AgcnUy@&(kzb(T9BiuKo0y!L2jYX(`}$gW<`tJD<|U_ky4WfKP0-8COtCUC zHgGd=G%zu>baFB@bTx2tbGCGLH8L}|G;wk?F*1Sab;(aI%}vcKf$2>_=rzTu7nBro z3xGDeq!wkCrKY$Q<>xAZy=;|<+bu>o&4cPq!R;1foO<VgsyL#pFrHdENpF4Zz^r@34jvqUEVojbN~+qz}*ri~lc zuUorj^{SOCmM>enWbvYf3+B(8J7@N+nKPzOn>uCkq=^&y`+9r2yE;4C+ge+in;IMH z>uPJNt12tX%Sua%iwXi?qaq{1!$L!Xg8~Em{d|4A zy*xeK-CSLqog5wP?QCtVtt>6f%}h;V~x zOjJZzNKk;EkC%s=i<5($jg^I&iIIUp@h1zoq|gD8pz?@;RXoAfpyR4Xuvm`MMwJ;w P0sc=M8VWO=IT)+~jV+!7 literal 0 HcmV?d00001 diff --git a/docs/api/2.11/package.html b/docs/api/2.11/package.html new file mode 100644 index 0000000..32ac351 --- /dev/null +++ b/docs/api/2.11/package.html @@ -0,0 +1,118 @@ + + + + root - _root_ + + + + + + + + + + + + + + + + + +

              + + + package + + + root + +

              + +
              + + +
              +
              + + +
              + Visibility +
              1. Public
              2. All
              +
              +
              + +
              +
              + + + + + + +
              +

              Value Members

              +
              1. + + +

                + + + package + + + ch + +

                + + Permalink + + + +
              +
              + + + + +
              + +
              + + +
              + +
              +
              +

              Ungrouped

              + +
              +
              + +
              + +
              + + + + + + diff --git a/docs/api/2.12/ch/acmesoftware/index.html b/docs/api/2.12/ch/acmesoftware/index.html new file mode 100644 index 0000000..8e88047 --- /dev/null +++ b/docs/api/2.12/ch/acmesoftware/index.html @@ -0,0 +1,197 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
              +
              +
              +
              +
              +
              +
              +
              +
              +
              +
              +
              +
              +

              Packages

              +
                +
              • + + + + + + + + + package + + + + root + + + +
                Definition Classes
                root
                +
              • + + + + + + + + + package + + + + ch + + + +
                Definition Classes
                root
                +
              • + + + + + + + + + package + + + acmesoftware + + +
                Definition Classes
                ch
                +
              • + + + + + + + + + package + + + + orientDbScalaDsl + + + +

                Main DSL entry point

                Main DSL entry point

                This package provides a set of implicit classes (wrappers) which can be imported

                Example

                import ch.acmesoftware.orientDbScalaDsl._

                The above import statement decorates the OrientDB Java API with a fluid Scala DSL +

                +
              • +
              +
              +
              +
              + +
              +
              p
              +

              ch

              +

              acmesoftware + + + +

              + +
              + +

              + + + package + + + acmesoftware + +

              + + +
              + + + + +
              +
              + + + + + + + + + + + +
              + +
              + + +
              + +
              +
              +

              Ungrouped

              + +
              +
              + +
              + +
              + + + +
              +
              +
              + + diff --git a/docs/api/2.12/ch/acmesoftware/orientDbScalaDsl/OrientGraphDsl$VerticlesFilterQuery.html b/docs/api/2.12/ch/acmesoftware/orientDbScalaDsl/OrientGraphDsl$VerticlesFilterQuery.html new file mode 100644 index 0000000..62e103a --- /dev/null +++ b/docs/api/2.12/ch/acmesoftware/orientDbScalaDsl/OrientGraphDsl$VerticlesFilterQuery.html @@ -0,0 +1,675 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
              +
              +
              +
              +
              +
              +
              +
              +
              +
              +
              +
              +
              +

              Packages

              + +
              +
              +
              + +
              +
              c
              +

              ch.acmesoftware.orientDbScalaDsl.OrientGraphDsl

              +

              VerticlesFilterQuery + + + +

              +

              +
              + +

              + + + class + + + VerticlesFilterQuery extends AnyRef + +

              + + +
              + + Linear Supertypes + +
              AnyRef, Any
              +
              + + +
              +
              +
              + + + + + +
              +
              +
              + Ordering +
                + +
              1. Alphabetic
              2. +
              3. By Inheritance
              4. +
              +
              +
              + Inherited
              +
              +
                +
              1. VerticlesFilterQuery
              2. AnyRef
              3. Any
              4. +
              +
              + +
                +
              1. Hide All
              2. +
              3. Show All
              4. +
              +
              +
              + Visibility +
              1. Public
              2. All
              +
              +
              +
              + +
              +
              +
              +

              Instance Constructors

              +
              1. + + + + + + + + + new + + + VerticlesFilterQuery(label: String, fieldFilters: Seq[(String, AnyRef)] = Nil) + + + +
              +
              + + + + + +
              +

              Value Members

              +
                +
              1. + + + + + + + + final + def + + + !=(arg0: Any): Boolean + + +
                Definition Classes
                AnyRef → Any
                +
              2. + + + + + + + + final + def + + + ##(): Int + + +
                Definition Classes
                AnyRef → Any
                +
              3. + + + + + + + + final + def + + + ==(arg0: Any): Boolean + + +
                Definition Classes
                AnyRef → Any
                +
              4. + + + + + + + + final + def + + + asInstanceOf[T0]: T0 + + +
                Definition Classes
                Any
                +
              5. + + + + + + + + + def + + + clone(): AnyRef + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              6. + + + + + + + + final + def + + + eq(arg0: AnyRef): Boolean + + +
                Definition Classes
                AnyRef
                +
              7. + + + + + + + + + def + + + equals(arg0: Any): Boolean + + +
                Definition Classes
                AnyRef → Any
                +
              8. + + + + + + + + + def + + + filter(filters: Seq[(String, AnyRef)]): VerticlesFilterQuery + + + +
              9. + + + + + + + + + def + + + filter(filter: (String, AnyRef)): VerticlesFilterQuery + + + +
              10. + + + + + + + + + def + + + finalize(): Unit + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + classOf[java.lang.Throwable] + ) + +
                +
              11. + + + + + + + + + def + + + get(): Iterable[Vertex] + + + +
              12. + + + + + + + + final + def + + + getClass(): Class[_] + + +
                Definition Classes
                AnyRef → Any
                +
              13. + + + + + + + + + def + + + hashCode(): Int + + +
                Definition Classes
                AnyRef → Any
                +
              14. + + + + + + + + final + def + + + isInstanceOf[T0]: Boolean + + +
                Definition Classes
                Any
                +
              15. + + + + + + + + final + def + + + ne(arg0: AnyRef): Boolean + + +
                Definition Classes
                AnyRef
                +
              16. + + + + + + + + final + def + + + notify(): Unit + + +
                Definition Classes
                AnyRef
                +
              17. + + + + + + + + final + def + + + notifyAll(): Unit + + +
                Definition Classes
                AnyRef
                +
              18. + + + + + + + + final + def + + + synchronized[T0](arg0: ⇒ T0): T0 + + +
                Definition Classes
                AnyRef
                +
              19. + + + + + + + + + def + + + toString(): String + + +
                Definition Classes
                AnyRef → Any
                +
              20. + + + + + + + + final + def + + + wait(): Unit + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              21. + + + + + + + + final + def + + + wait(arg0: Long, arg1: Int): Unit + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              22. + + + + + + + + final + def + + + wait(arg0: Long): Unit + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              23. +
              +
              + + + + +
              + +
              +
              +

              Inherited from AnyRef

              +
              +

              Inherited from Any

              +
              + +
              + +
              +
              +

              Ungrouped

              + +
              +
              + +
              + +
              + + + +
              +
              +
              + + diff --git a/docs/api/2.12/ch/acmesoftware/orientDbScalaDsl/OrientGraphDsl.html b/docs/api/2.12/ch/acmesoftware/orientDbScalaDsl/OrientGraphDsl.html new file mode 100644 index 0000000..d9054c8 --- /dev/null +++ b/docs/api/2.12/ch/acmesoftware/orientDbScalaDsl/OrientGraphDsl.html @@ -0,0 +1,736 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
              +
              +
              +
              +
              +
              +
              +
              +
              +
              +
              +
              +
              +

              Packages

              + +
              +
              +
              + +
              +
              c
              +

              ch.acmesoftware.orientDbScalaDsl

              +

              OrientGraphDsl + + + +

              +

              +
              + +

              + + + class + + + OrientGraphDsl extends AnyRef + +

              + + +

              DSL extension for the OrientBaseGraph class

              See methods for detailed API and examples... +

              + + Linear Supertypes + +
              AnyRef, Any
              +
              + + +
              +
              +
              + + + + + +
              +
              +
              + Ordering +
                + +
              1. Alphabetic
              2. +
              3. By Inheritance
              4. +
              +
              +
              + Inherited
              +
              +
                +
              1. OrientGraphDsl
              2. AnyRef
              3. Any
              4. +
              +
              + +
                +
              1. Hide All
              2. +
              3. Show All
              4. +
              +
              +
              + Visibility +
              1. Public
              2. All
              +
              +
              +
              + +
              +
              +
              +

              Instance Constructors

              +
              1. + + + + + + + + + new + + + OrientGraphDsl(g: OrientBaseGraph) + + +

                g

                The original Java instance to wrap

                +
              +
              + +
              +

              Type Members

              +
              1. + + + + + + + + + class + + + + VerticlesFilterQuery + extends AnyRef + + + +
              +
              + + + +
              +

              Value Members

              +
                +
              1. + + + + + + + + final + def + + + !=(arg0: Any): Boolean + + +
                Definition Classes
                AnyRef → Any
                +
              2. + + + + + + + + final + def + + + ##(): Int + + +
                Definition Classes
                AnyRef → Any
                +
              3. + + + + + + + + final + def + + + ==(arg0: Any): Boolean + + +
                Definition Classes
                AnyRef → Any
                +
              4. + + + + + + + + + def + + + addVertex(label: String): VertexDsl + + +

                Adds a vertex to graph

                Adds a vertex to graph

                Example

                // add vertex
                +g.dsl addVertex "Person" withProperty "name" -> "Frank"
                +g.dsl addVertex "Customer" withProperty "name" -> "ACME" and "active" -> true
                +
              5. + + + + + + + + final + def + + + asInstanceOf[T0]: T0 + + +
                Definition Classes
                Any
                +
              6. + + + + + + + + + def + + + clone(): AnyRef + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              7. + + + + + + + + + def + + + createVertexType(label: String): OrientVertexTypeDsl + + +

                Creates a new vertex type (sometimes refered to as "class)

                Creates a new vertex type (sometimes refered to as "class)

                Example

                g.dsl createVertexType "SomeLabel"
                +
                +// ...with properties
                +g.dsl createVertexType "Person" withProperty "name" -> STRING
                +g.dsl createVertexType "User" withProperty "name" -> STRING and "active" -> BOOLEAN
                +
                +// ...and indexes
                +g.dsl createVertexType "City" withProperty "name" -> STRING and "zip" -> INTEGER unique "name" unique "zip"
                +
                +// edit existing vertex type
                +g.getVertexType("Person").dsl withProperty "age" -> INTEGER
                label

                The lable of the vertex type to create

                returns

                An OrientVertexTypeDsl instance

                +
              8. + + + + + + + + final + def + + + eq(arg0: AnyRef): Boolean + + +
                Definition Classes
                AnyRef
                +
              9. + + + + + + + + + def + + + equals(arg0: Any): Boolean + + +
                Definition Classes
                AnyRef → Any
                +
              10. + + + + + + + + + def + + + finalize(): Unit + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + classOf[java.lang.Throwable] + ) + +
                +
              11. + + + + + + + + + def + + + findVertices(label: String): VerticlesFilterQuery + + +

                Creates a by-label filter query

                Creates a by-label filter query

                Example

                g.findVertices("Person").get
                +
                +g.findVertices("Person")
                +.filter("name" -> "Frank")
                +.filter("age" -> 28)
                +.filter("active" -> true)
                +.get
                +
                +g.findVertices("Person")
                +.filter("name" -> "Frank", "age" -> 28, "active" -> true)
                +.get
                label

                The label to filter by

                returns

                A by-label filter wuery

                +
              12. + + + + + + + + final + def + + + getClass(): Class[_] + + +
                Definition Classes
                AnyRef → Any
                +
              13. + + + + + + + + + def + + + hashCode(): Int + + +
                Definition Classes
                AnyRef → Any
                +
              14. + + + + + + + + final + def + + + isInstanceOf[T0]: Boolean + + +
                Definition Classes
                Any
                +
              15. + + + + + + + + final + def + + + ne(arg0: AnyRef): Boolean + + +
                Definition Classes
                AnyRef
                +
              16. + + + + + + + + final + def + + + notify(): Unit + + +
                Definition Classes
                AnyRef
                +
              17. + + + + + + + + final + def + + + notifyAll(): Unit + + +
                Definition Classes
                AnyRef
                +
              18. + + + + + + + + final + def + + + synchronized[T0](arg0: ⇒ T0): T0 + + +
                Definition Classes
                AnyRef
                +
              19. + + + + + + + + + def + + + toString(): String + + +
                Definition Classes
                AnyRef → Any
                +
              20. + + + + + + + + final + def + + + wait(): Unit + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              21. + + + + + + + + final + def + + + wait(arg0: Long, arg1: Int): Unit + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              22. + + + + + + + + final + def + + + wait(arg0: Long): Unit + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              23. +
              +
              + + + + +
              + +
              +
              +

              Inherited from AnyRef

              +
              +

              Inherited from Any

              +
              + +
              + +
              +
              +

              Ungrouped

              + +
              +
              + +
              + +
              + + + +
              +
              +
              + + diff --git a/docs/api/2.12/ch/acmesoftware/orientDbScalaDsl/OrientVertexTypeDsl$.html b/docs/api/2.12/ch/acmesoftware/orientDbScalaDsl/OrientVertexTypeDsl$.html new file mode 100644 index 0000000..11f1ac4 --- /dev/null +++ b/docs/api/2.12/ch/acmesoftware/orientDbScalaDsl/OrientVertexTypeDsl$.html @@ -0,0 +1,646 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
              +
              +
              +
              +
              +
              +
              +
              +
              +
              +
              +
              +
              +

              Packages

              + +
              +
              +
              + + + +

              + + + object + + + OrientVertexTypeDsl + +

              + + +
              + + Linear Supertypes + +
              AnyRef, Any
              +
              + + +
              +
              +
              + + + + + +
              +
              +
              + Ordering +
                + +
              1. Alphabetic
              2. +
              3. By Inheritance
              4. +
              +
              +
              + Inherited
              +
              +
                +
              1. OrientVertexTypeDsl
              2. AnyRef
              3. Any
              4. +
              +
              + +
                +
              1. Hide All
              2. +
              3. Show All
              4. +
              +
              +
              + Visibility +
              1. Public
              2. All
              +
              +
              +
              + +
              +
              + + +
              +

              Type Members

              +
              1. + + + + + + + + + type + + + PropertyDefinition = (String, OType) + + + +
              +
              + + + +
              +

              Value Members

              +
                +
              1. + + + + + + + + final + def + + + !=(arg0: Any): Boolean + + +
                Definition Classes
                AnyRef → Any
                +
              2. + + + + + + + + final + def + + + ##(): Int + + +
                Definition Classes
                AnyRef → Any
                +
              3. + + + + + + + + final + def + + + ==(arg0: Any): Boolean + + +
                Definition Classes
                AnyRef → Any
                +
              4. + + + + + + + + final + def + + + asInstanceOf[T0]: T0 + + +
                Definition Classes
                Any
                +
              5. + + + + + + + + + def + + + clone(): AnyRef + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              6. + + + + + + + + final + def + + + eq(arg0: AnyRef): Boolean + + +
                Definition Classes
                AnyRef
                +
              7. + + + + + + + + + def + + + equals(arg0: Any): Boolean + + +
                Definition Classes
                AnyRef → Any
                +
              8. + + + + + + + + + def + + + finalize(): Unit + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + classOf[java.lang.Throwable] + ) + +
                +
              9. + + + + + + + + final + def + + + getClass(): Class[_] + + +
                Definition Classes
                AnyRef → Any
                +
              10. + + + + + + + + + def + + + hashCode(): Int + + +
                Definition Classes
                AnyRef → Any
                +
              11. + + + + + + + + final + def + + + isInstanceOf[T0]: Boolean + + +
                Definition Classes
                Any
                +
              12. + + + + + + + + final + def + + + ne(arg0: AnyRef): Boolean + + +
                Definition Classes
                AnyRef
                +
              13. + + + + + + + + final + def + + + notify(): Unit + + +
                Definition Classes
                AnyRef
                +
              14. + + + + + + + + final + def + + + notifyAll(): Unit + + +
                Definition Classes
                AnyRef
                +
              15. + + + + + + + + final + def + + + synchronized[T0](arg0: ⇒ T0): T0 + + +
                Definition Classes
                AnyRef
                +
              16. + + + + + + + + + def + + + toString(): String + + +
                Definition Classes
                AnyRef → Any
                +
              17. + + + + + + + + final + def + + + wait(): Unit + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              18. + + + + + + + + final + def + + + wait(arg0: Long, arg1: Int): Unit + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              19. + + + + + + + + final + def + + + wait(arg0: Long): Unit + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              20. +
              +
              + + + + +
              + +
              +
              +

              Inherited from AnyRef

              +
              +

              Inherited from Any

              +
              + +
              + +
              +
              +

              Ungrouped

              + +
              +
              + +
              + +
              + + + +
              +
              +
              + + diff --git a/docs/api/2.12/ch/acmesoftware/orientDbScalaDsl/OrientVertexTypeDsl.html b/docs/api/2.12/ch/acmesoftware/orientDbScalaDsl/OrientVertexTypeDsl.html new file mode 100644 index 0000000..31581c1 --- /dev/null +++ b/docs/api/2.12/ch/acmesoftware/orientDbScalaDsl/OrientVertexTypeDsl.html @@ -0,0 +1,695 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
              +
              +
              +
              +
              +
              +
              +
              +
              +
              +
              +
              +
              +

              Packages

              + +
              +
              +
              + + + +

              + + + class + + + OrientVertexTypeDsl extends AnyRef + +

              + + +

              DSL extension for the OrientVertexType class

              See methods for detailed API and examples... +

              + + Linear Supertypes + +
              AnyRef, Any
              +
              + + +
              +
              +
              + + + + + +
              +
              +
              + Ordering +
                + +
              1. Alphabetic
              2. +
              3. By Inheritance
              4. +
              +
              +
              + Inherited
              +
              +
                +
              1. OrientVertexTypeDsl
              2. AnyRef
              3. Any
              4. +
              +
              + +
                +
              1. Hide All
              2. +
              3. Show All
              4. +
              +
              +
              + Visibility +
              1. Public
              2. All
              +
              +
              +
              + +
              +
              +
              +

              Instance Constructors

              +
              1. + + + + + + + + + new + + + OrientVertexTypeDsl(vt: OrientVertexType) + + +

                vt

                The original Java instance to wrap

                +
              +
              + + + + + +
              +

              Value Members

              +
                +
              1. + + + + + + + + final + def + + + !=(arg0: Any): Boolean + + +
                Definition Classes
                AnyRef → Any
                +
              2. + + + + + + + + final + def + + + ##(): Int + + +
                Definition Classes
                AnyRef → Any
                +
              3. + + + + + + + + final + def + + + ==(arg0: Any): Boolean + + +
                Definition Classes
                AnyRef → Any
                +
              4. + + + + + + + + + def + + + and(d: PropertyDefinition): OrientVertexTypeDsl + + +

                Alias for ch.acmesoftware.orientDbScalaDsl.OrientVertexTypeDsl.withProperty

                +
              5. + + + + + + + + final + def + + + asInstanceOf[T0]: T0 + + +
                Definition Classes
                Any
                +
              6. + + + + + + + + + def + + + clone(): AnyRef + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              7. + + + + + + + + final + def + + + eq(arg0: AnyRef): Boolean + + +
                Definition Classes
                AnyRef
                +
              8. + + + + + + + + + def + + + equals(arg0: Any): Boolean + + +
                Definition Classes
                AnyRef → Any
                +
              9. + + + + + + + + + def + + + finalize(): Unit + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + classOf[java.lang.Throwable] + ) + +
                +
              10. + + + + + + + + final + def + + + getClass(): Class[_] + + +
                Definition Classes
                AnyRef → Any
                +
              11. + + + + + + + + + def + + + hashCode(): Int + + +
                Definition Classes
                AnyRef → Any
                +
              12. + + + + + + + + final + def + + + isInstanceOf[T0]: Boolean + + +
                Definition Classes
                Any
                +
              13. + + + + + + + + final + def + + + ne(arg0: AnyRef): Boolean + + +
                Definition Classes
                AnyRef
                +
              14. + + + + + + + + final + def + + + notify(): Unit + + +
                Definition Classes
                AnyRef
                +
              15. + + + + + + + + final + def + + + notifyAll(): Unit + + +
                Definition Classes
                AnyRef
                +
              16. + + + + + + + + final + def + + + synchronized[T0](arg0: ⇒ T0): T0 + + +
                Definition Classes
                AnyRef
                +
              17. + + + + + + + + + def + + + toString(): String + + +
                Definition Classes
                AnyRef → Any
                +
              18. + + + + + + + + + def + + + unique(fieldName: String): OrientVertexTypeDsl + + +

                Adds unique index to existing vertex type

                Adds unique index to existing vertex type

                Example

                g.getVertexType("Person").dsl unique "name" unique "zip"
                fieldName

                The name of the field which should be unique

                +
              19. + + + + + + + + final + def + + + wait(): Unit + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              20. + + + + + + + + final + def + + + wait(arg0: Long, arg1: Int): Unit + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              21. + + + + + + + + final + def + + + wait(arg0: Long): Unit + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              22. + + + + + + + + + def + + + withProperty(d: PropertyDefinition): OrientVertexTypeDsl + + +

                Adds a property to existing vertex type

                Adds a property to existing vertex type

                Example

                g.getVertexType("Person").dsl withProperty "age" -> INTEGER
                d

                The property definition to add

                +
              23. +
              +
              + + + + +
              + +
              +
              +

              Inherited from AnyRef

              +
              +

              Inherited from Any

              +
              + +
              + +
              +
              +

              Ungrouped

              + +
              +
              + +
              + +
              + + + +
              +
              +
              + + diff --git a/docs/api/2.12/ch/acmesoftware/orientDbScalaDsl/VertexDsl$.html b/docs/api/2.12/ch/acmesoftware/orientDbScalaDsl/VertexDsl$.html new file mode 100644 index 0000000..3ccd96a --- /dev/null +++ b/docs/api/2.12/ch/acmesoftware/orientDbScalaDsl/VertexDsl$.html @@ -0,0 +1,646 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
              +
              +
              +
              +
              +
              +
              +
              +
              +
              +
              +
              +
              +

              Packages

              + +
              +
              +
              + + + +

              + + + object + + + VertexDsl + +

              + + +
              + + Linear Supertypes + +
              AnyRef, Any
              +
              + + +
              +
              +
              + + + + + +
              +
              +
              + Ordering +
                + +
              1. Alphabetic
              2. +
              3. By Inheritance
              4. +
              +
              +
              + Inherited
              +
              +
                +
              1. VertexDsl
              2. AnyRef
              3. Any
              4. +
              +
              + +
                +
              1. Hide All
              2. +
              3. Show All
              4. +
              +
              +
              + Visibility +
              1. Public
              2. All
              +
              +
              +
              + +
              +
              + + +
              +

              Type Members

              +
              1. + + + + + + + + + type + + + Property = (String, Any) + + + +
              +
              + + + +
              +

              Value Members

              +
                +
              1. + + + + + + + + final + def + + + !=(arg0: Any): Boolean + + +
                Definition Classes
                AnyRef → Any
                +
              2. + + + + + + + + final + def + + + ##(): Int + + +
                Definition Classes
                AnyRef → Any
                +
              3. + + + + + + + + final + def + + + ==(arg0: Any): Boolean + + +
                Definition Classes
                AnyRef → Any
                +
              4. + + + + + + + + final + def + + + asInstanceOf[T0]: T0 + + +
                Definition Classes
                Any
                +
              5. + + + + + + + + + def + + + clone(): AnyRef + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              6. + + + + + + + + final + def + + + eq(arg0: AnyRef): Boolean + + +
                Definition Classes
                AnyRef
                +
              7. + + + + + + + + + def + + + equals(arg0: Any): Boolean + + +
                Definition Classes
                AnyRef → Any
                +
              8. + + + + + + + + + def + + + finalize(): Unit + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + classOf[java.lang.Throwable] + ) + +
                +
              9. + + + + + + + + final + def + + + getClass(): Class[_] + + +
                Definition Classes
                AnyRef → Any
                +
              10. + + + + + + + + + def + + + hashCode(): Int + + +
                Definition Classes
                AnyRef → Any
                +
              11. + + + + + + + + final + def + + + isInstanceOf[T0]: Boolean + + +
                Definition Classes
                Any
                +
              12. + + + + + + + + final + def + + + ne(arg0: AnyRef): Boolean + + +
                Definition Classes
                AnyRef
                +
              13. + + + + + + + + final + def + + + notify(): Unit + + +
                Definition Classes
                AnyRef
                +
              14. + + + + + + + + final + def + + + notifyAll(): Unit + + +
                Definition Classes
                AnyRef
                +
              15. + + + + + + + + final + def + + + synchronized[T0](arg0: ⇒ T0): T0 + + +
                Definition Classes
                AnyRef
                +
              16. + + + + + + + + + def + + + toString(): String + + +
                Definition Classes
                AnyRef → Any
                +
              17. + + + + + + + + final + def + + + wait(): Unit + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              18. + + + + + + + + final + def + + + wait(arg0: Long, arg1: Int): Unit + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              19. + + + + + + + + final + def + + + wait(arg0: Long): Unit + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              20. +
              +
              + + + + +
              + +
              +
              +

              Inherited from AnyRef

              +
              +

              Inherited from Any

              +
              + +
              + +
              +
              +

              Ungrouped

              + +
              +
              + +
              + +
              + + + +
              +
              +
              + + diff --git a/docs/api/2.12/ch/acmesoftware/orientDbScalaDsl/VertexDsl.html b/docs/api/2.12/ch/acmesoftware/orientDbScalaDsl/VertexDsl.html new file mode 100644 index 0000000..8efddee --- /dev/null +++ b/docs/api/2.12/ch/acmesoftware/orientDbScalaDsl/VertexDsl.html @@ -0,0 +1,679 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
              +
              +
              +
              +
              +
              +
              +
              +
              +
              +
              +
              +
              +

              Packages

              + +
              +
              +
              + + + +

              + + + class + + + VertexDsl extends AnyRef + +

              + + +

              DSL extension for the Element class

              See methods for detailed API and examples... +

              + + Linear Supertypes + +
              AnyRef, Any
              +
              + + +
              +
              +
              + + + + + +
              +
              +
              + Ordering +
                + +
              1. Alphabetic
              2. +
              3. By Inheritance
              4. +
              +
              +
              + Inherited
              +
              +
                +
              1. VertexDsl
              2. AnyRef
              3. Any
              4. +
              +
              + +
                +
              1. Hide All
              2. +
              3. Show All
              4. +
              +
              +
              + Visibility +
              1. Public
              2. All
              +
              +
              +
              + +
              +
              +
              +

              Instance Constructors

              +
              1. + + + + + + + + + new + + + VertexDsl(v: Element) + + +

                v

                The original Java instance to wrap

                +
              +
              + + + + + +
              +

              Value Members

              +
                +
              1. + + + + + + + + final + def + + + !=(arg0: Any): Boolean + + +
                Definition Classes
                AnyRef → Any
                +
              2. + + + + + + + + final + def + + + ##(): Int + + +
                Definition Classes
                AnyRef → Any
                +
              3. + + + + + + + + final + def + + + ==(arg0: Any): Boolean + + +
                Definition Classes
                AnyRef → Any
                +
              4. + + + + + + + + + def + + + and(prop: Property): VertexDsl + + +

                Alias for VertexDsl.withProperty

                +
              5. + + + + + + + + final + def + + + asInstanceOf[T0]: T0 + + +
                Definition Classes
                Any
                +
              6. + + + + + + + + + def + + + clone(): AnyRef + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              7. + + + + + + + + final + def + + + eq(arg0: AnyRef): Boolean + + +
                Definition Classes
                AnyRef
                +
              8. + + + + + + + + + def + + + equals(arg0: Any): Boolean + + +
                Definition Classes
                AnyRef → Any
                +
              9. + + + + + + + + + def + + + finalize(): Unit + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + classOf[java.lang.Throwable] + ) + +
                +
              10. + + + + + + + + final + def + + + getClass(): Class[_] + + +
                Definition Classes
                AnyRef → Any
                +
              11. + + + + + + + + + def + + + hashCode(): Int + + +
                Definition Classes
                AnyRef → Any
                +
              12. + + + + + + + + final + def + + + isInstanceOf[T0]: Boolean + + +
                Definition Classes
                Any
                +
              13. + + + + + + + + final + def + + + ne(arg0: AnyRef): Boolean + + +
                Definition Classes
                AnyRef
                +
              14. + + + + + + + + final + def + + + notify(): Unit + + +
                Definition Classes
                AnyRef
                +
              15. + + + + + + + + final + def + + + notifyAll(): Unit + + +
                Definition Classes
                AnyRef
                +
              16. + + + + + + + + final + def + + + synchronized[T0](arg0: ⇒ T0): T0 + + +
                Definition Classes
                AnyRef
                +
              17. + + + + + + + + + def + + + toString(): String + + +
                Definition Classes
                AnyRef → Any
                +
              18. + + + + + + + + final + def + + + wait(): Unit + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              19. + + + + + + + + final + def + + + wait(arg0: Long, arg1: Int): Unit + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              20. + + + + + + + + final + def + + + wait(arg0: Long): Unit + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              21. + + + + + + + + + def + + + withProperty(prop: Property): VertexDsl + + +

                Adds a property to existing vertex

                Adds a property to existing vertex

                Example

                existing.dsl withProperty "name" -> "ACME Software Solutions" and "year" -> 2017
                prop

                The property to set

                +
              22. +
              +
              + + + + +
              + +
              +
              +

              Inherited from AnyRef

              +
              +

              Inherited from Any

              +
              + +
              + +
              +
              +

              Ungrouped

              + +
              +
              + +
              + +
              + + + +
              +
              +
              + + diff --git a/docs/api/2.12/ch/acmesoftware/orientDbScalaDsl/index.html b/docs/api/2.12/ch/acmesoftware/orientDbScalaDsl/index.html new file mode 100644 index 0000000..128d791 --- /dev/null +++ b/docs/api/2.12/ch/acmesoftware/orientDbScalaDsl/index.html @@ -0,0 +1,458 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
              +
              +
              +
              +
              +
              +
              +
              +
              +
              +
              +
              +
              +

              Packages

              + +
              +
              +
              + +
              +
              p
              +

              ch.acmesoftware

              +

              orientDbScalaDsl + + + +

              + +
              + +

              + + + package + + + orientDbScalaDsl + +

              + + +

              Main DSL entry point

              This package provides a set of implicit classes (wrappers) which can be imported

              Example

              import ch.acmesoftware.orientDbScalaDsl._

              The above import statement decorates the OrientDB Java API with a fluid Scala DSL +

              + + Linear Supertypes + +
              AnyRef, Any
              +
              + + +
              +
              +
              + + + + + +
              +
              +
              + Ordering +
                + +
              1. Alphabetic
              2. +
              3. By Inheritance
              4. +
              +
              +
              + Inherited
              +
              +
                +
              1. orientDbScalaDsl
              2. AnyRef
              3. Any
              4. +
              +
              + +
                +
              1. Hide All
              2. +
              3. Show All
              4. +
              +
              +
              + Visibility +
              1. Public
              2. All
              +
              +
              +
              + +
              +
              + + +
              +

              Type Members

              +
              1. + + + + + + + + + class + + + + OrientGraphDsl + extends AnyRef + + +

                DSL extension for the OrientBaseGraph class

                DSL extension for the OrientBaseGraph class

                See methods for detailed API and examples... +

                +
              2. + + + + + + + + implicit + class + + + + OrientGraphNoTxWrapper + extends AnyRef + + +

                Wrapper providing OrientGraphDsl

                +
              3. + + + + + + + + implicit + class + + + + OrientGraphWrapper + extends AnyRef + + +

                Wrapper providing OrientGraphDsl

                +
              4. + + + + + + + + + class + + + + OrientVertexTypeDsl + extends AnyRef + + +

                DSL extension for the OrientVertexType class

                DSL extension for the OrientVertexType class

                See methods for detailed API and examples... +

                +
              5. + + + + + + + + implicit + class + + + + OrientVertexTypeWrapper + extends AnyRef + + +

                Wrapper providing OrientVertexTypeDsl

                +
              6. + + + + + + + + + class + + + + VertexDsl + extends AnyRef + + +

                DSL extension for the Element class

                DSL extension for the Element class

                See methods for detailed API and examples... +

                +
              7. + + + + + + + + implicit + class + + + + VertexWrapper + extends AnyRef + + +

                Wrapper providing VertexDsl

                +
              +
              + + + +
              +

              Value Members

              +
                +
              1. + + + + + + + + + object + + + + OrientVertexTypeDsl + + + + +
              2. + + + + + + + + + object + + + + VertexDsl + + + + +
              3. +
              +
              + + + + +
              + +
              +
              +

              Inherited from AnyRef

              +
              +

              Inherited from Any

              +
              + +
              + +
              +
              +

              Ungrouped

              + +
              +
              + +
              + +
              + + + +
              +
              +
              + + diff --git a/docs/api/2.12/ch/acmesoftware/orientDbScalaDsl/package$$OrientGraphNoTxWrapper.html b/docs/api/2.12/ch/acmesoftware/orientDbScalaDsl/package$$OrientGraphNoTxWrapper.html new file mode 100644 index 0000000..7a7473a --- /dev/null +++ b/docs/api/2.12/ch/acmesoftware/orientDbScalaDsl/package$$OrientGraphNoTxWrapper.html @@ -0,0 +1,660 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
              +
              +
              +
              +
              +
              +
              +
              +
              +
              +
              +
              +
              +

              Packages

              + +
              +
              +
              + +
              +
              c
              +

              ch.acmesoftware.orientDbScalaDsl

              +

              OrientGraphNoTxWrapper + + + +

              +

              +
              + +

              + + implicit + class + + + OrientGraphNoTxWrapper extends AnyRef + +

              + + +

              Wrapper providing OrientGraphDsl

              + + Linear Supertypes + +
              AnyRef, Any
              +
              + + +
              +
              +
              + + + + + +
              +
              +
              + Ordering +
                + +
              1. Alphabetic
              2. +
              3. By Inheritance
              4. +
              +
              +
              + Inherited
              +
              +
                +
              1. OrientGraphNoTxWrapper
              2. AnyRef
              3. Any
              4. +
              +
              + +
                +
              1. Hide All
              2. +
              3. Show All
              4. +
              +
              +
              + Visibility +
              1. Public
              2. All
              +
              +
              +
              + +
              +
              +
              +

              Instance Constructors

              +
              1. + + + + + + + + + new + + + OrientGraphNoTxWrapper(g: OrientGraphNoTx) + + + +
              +
              + + + + + +
              +

              Value Members

              +
                +
              1. + + + + + + + + final + def + + + !=(arg0: Any): Boolean + + +
                Definition Classes
                AnyRef → Any
                +
              2. + + + + + + + + final + def + + + ##(): Int + + +
                Definition Classes
                AnyRef → Any
                +
              3. + + + + + + + + final + def + + + ==(arg0: Any): Boolean + + +
                Definition Classes
                AnyRef → Any
                +
              4. + + + + + + + + final + def + + + asInstanceOf[T0]: T0 + + +
                Definition Classes
                Any
                +
              5. + + + + + + + + + def + + + clone(): AnyRef + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              6. + + + + + + + + + def + + + dsl: OrientGraphDsl + + + +
              7. + + + + + + + + final + def + + + eq(arg0: AnyRef): Boolean + + +
                Definition Classes
                AnyRef
                +
              8. + + + + + + + + + def + + + equals(arg0: Any): Boolean + + +
                Definition Classes
                AnyRef → Any
                +
              9. + + + + + + + + + def + + + finalize(): Unit + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + classOf[java.lang.Throwable] + ) + +
                +
              10. + + + + + + + + final + def + + + getClass(): Class[_] + + +
                Definition Classes
                AnyRef → Any
                +
              11. + + + + + + + + + def + + + hashCode(): Int + + +
                Definition Classes
                AnyRef → Any
                +
              12. + + + + + + + + final + def + + + isInstanceOf[T0]: Boolean + + +
                Definition Classes
                Any
                +
              13. + + + + + + + + final + def + + + ne(arg0: AnyRef): Boolean + + +
                Definition Classes
                AnyRef
                +
              14. + + + + + + + + final + def + + + notify(): Unit + + +
                Definition Classes
                AnyRef
                +
              15. + + + + + + + + final + def + + + notifyAll(): Unit + + +
                Definition Classes
                AnyRef
                +
              16. + + + + + + + + final + def + + + synchronized[T0](arg0: ⇒ T0): T0 + + +
                Definition Classes
                AnyRef
                +
              17. + + + + + + + + + def + + + toString(): String + + +
                Definition Classes
                AnyRef → Any
                +
              18. + + + + + + + + final + def + + + wait(): Unit + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              19. + + + + + + + + final + def + + + wait(arg0: Long, arg1: Int): Unit + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              20. + + + + + + + + final + def + + + wait(arg0: Long): Unit + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              21. +
              +
              + + + + +
              + +
              +
              +

              Inherited from AnyRef

              +
              +

              Inherited from Any

              +
              + +
              + +
              +
              +

              Ungrouped

              + +
              +
              + +
              + +
              + + + +
              +
              +
              + + diff --git a/docs/api/2.12/ch/acmesoftware/orientDbScalaDsl/package$$OrientGraphWrapper.html b/docs/api/2.12/ch/acmesoftware/orientDbScalaDsl/package$$OrientGraphWrapper.html new file mode 100644 index 0000000..17da045 --- /dev/null +++ b/docs/api/2.12/ch/acmesoftware/orientDbScalaDsl/package$$OrientGraphWrapper.html @@ -0,0 +1,660 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
              +
              +
              +
              +
              +
              +
              +
              +
              +
              +
              +
              +
              +

              Packages

              + +
              +
              +
              + +
              +
              c
              +

              ch.acmesoftware.orientDbScalaDsl

              +

              OrientGraphWrapper + + + +

              +

              +
              + +

              + + implicit + class + + + OrientGraphWrapper extends AnyRef + +

              + + +

              Wrapper providing OrientGraphDsl

              + + Linear Supertypes + +
              AnyRef, Any
              +
              + + +
              +
              +
              + + + + + +
              +
              +
              + Ordering +
                + +
              1. Alphabetic
              2. +
              3. By Inheritance
              4. +
              +
              +
              + Inherited
              +
              +
                +
              1. OrientGraphWrapper
              2. AnyRef
              3. Any
              4. +
              +
              + +
                +
              1. Hide All
              2. +
              3. Show All
              4. +
              +
              +
              + Visibility +
              1. Public
              2. All
              +
              +
              +
              + +
              +
              +
              +

              Instance Constructors

              +
              1. + + + + + + + + + new + + + OrientGraphWrapper(g: OrientGraph) + + + +
              +
              + + + + + +
              +

              Value Members

              +
                +
              1. + + + + + + + + final + def + + + !=(arg0: Any): Boolean + + +
                Definition Classes
                AnyRef → Any
                +
              2. + + + + + + + + final + def + + + ##(): Int + + +
                Definition Classes
                AnyRef → Any
                +
              3. + + + + + + + + final + def + + + ==(arg0: Any): Boolean + + +
                Definition Classes
                AnyRef → Any
                +
              4. + + + + + + + + final + def + + + asInstanceOf[T0]: T0 + + +
                Definition Classes
                Any
                +
              5. + + + + + + + + + def + + + clone(): AnyRef + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              6. + + + + + + + + + def + + + dsl: OrientGraphDsl + + + +
              7. + + + + + + + + final + def + + + eq(arg0: AnyRef): Boolean + + +
                Definition Classes
                AnyRef
                +
              8. + + + + + + + + + def + + + equals(arg0: Any): Boolean + + +
                Definition Classes
                AnyRef → Any
                +
              9. + + + + + + + + + def + + + finalize(): Unit + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + classOf[java.lang.Throwable] + ) + +
                +
              10. + + + + + + + + final + def + + + getClass(): Class[_] + + +
                Definition Classes
                AnyRef → Any
                +
              11. + + + + + + + + + def + + + hashCode(): Int + + +
                Definition Classes
                AnyRef → Any
                +
              12. + + + + + + + + final + def + + + isInstanceOf[T0]: Boolean + + +
                Definition Classes
                Any
                +
              13. + + + + + + + + final + def + + + ne(arg0: AnyRef): Boolean + + +
                Definition Classes
                AnyRef
                +
              14. + + + + + + + + final + def + + + notify(): Unit + + +
                Definition Classes
                AnyRef
                +
              15. + + + + + + + + final + def + + + notifyAll(): Unit + + +
                Definition Classes
                AnyRef
                +
              16. + + + + + + + + final + def + + + synchronized[T0](arg0: ⇒ T0): T0 + + +
                Definition Classes
                AnyRef
                +
              17. + + + + + + + + + def + + + toString(): String + + +
                Definition Classes
                AnyRef → Any
                +
              18. + + + + + + + + final + def + + + wait(): Unit + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              19. + + + + + + + + final + def + + + wait(arg0: Long, arg1: Int): Unit + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              20. + + + + + + + + final + def + + + wait(arg0: Long): Unit + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              21. +
              +
              + + + + +
              + +
              +
              +

              Inherited from AnyRef

              +
              +

              Inherited from Any

              +
              + +
              + +
              +
              +

              Ungrouped

              + +
              +
              + +
              + +
              + + + +
              +
              +
              + + diff --git a/docs/api/2.12/ch/acmesoftware/orientDbScalaDsl/package$$OrientVertexTypeWrapper.html b/docs/api/2.12/ch/acmesoftware/orientDbScalaDsl/package$$OrientVertexTypeWrapper.html new file mode 100644 index 0000000..3c133dc --- /dev/null +++ b/docs/api/2.12/ch/acmesoftware/orientDbScalaDsl/package$$OrientVertexTypeWrapper.html @@ -0,0 +1,660 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
              +
              +
              +
              +
              +
              +
              +
              +
              +
              +
              +
              +
              +

              Packages

              + +
              +
              +
              + +
              +
              c
              +

              ch.acmesoftware.orientDbScalaDsl

              +

              OrientVertexTypeWrapper + + + +

              +

              +
              + +

              + + implicit + class + + + OrientVertexTypeWrapper extends AnyRef + +

              + + +

              Wrapper providing OrientVertexTypeDsl

              + + Linear Supertypes + +
              AnyRef, Any
              +
              + + +
              +
              +
              + + + + + +
              +
              +
              + Ordering +
                + +
              1. Alphabetic
              2. +
              3. By Inheritance
              4. +
              +
              +
              + Inherited
              +
              +
                +
              1. OrientVertexTypeWrapper
              2. AnyRef
              3. Any
              4. +
              +
              + +
                +
              1. Hide All
              2. +
              3. Show All
              4. +
              +
              +
              + Visibility +
              1. Public
              2. All
              +
              +
              +
              + +
              +
              +
              +

              Instance Constructors

              +
              1. + + + + + + + + + new + + + OrientVertexTypeWrapper(vt: OrientVertexType) + + + +
              +
              + + + + + +
              +

              Value Members

              +
                +
              1. + + + + + + + + final + def + + + !=(arg0: Any): Boolean + + +
                Definition Classes
                AnyRef → Any
                +
              2. + + + + + + + + final + def + + + ##(): Int + + +
                Definition Classes
                AnyRef → Any
                +
              3. + + + + + + + + final + def + + + ==(arg0: Any): Boolean + + +
                Definition Classes
                AnyRef → Any
                +
              4. + + + + + + + + final + def + + + asInstanceOf[T0]: T0 + + +
                Definition Classes
                Any
                +
              5. + + + + + + + + + def + + + clone(): AnyRef + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              6. + + + + + + + + + def + + + dsl: OrientVertexTypeDsl + + + +
              7. + + + + + + + + final + def + + + eq(arg0: AnyRef): Boolean + + +
                Definition Classes
                AnyRef
                +
              8. + + + + + + + + + def + + + equals(arg0: Any): Boolean + + +
                Definition Classes
                AnyRef → Any
                +
              9. + + + + + + + + + def + + + finalize(): Unit + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + classOf[java.lang.Throwable] + ) + +
                +
              10. + + + + + + + + final + def + + + getClass(): Class[_] + + +
                Definition Classes
                AnyRef → Any
                +
              11. + + + + + + + + + def + + + hashCode(): Int + + +
                Definition Classes
                AnyRef → Any
                +
              12. + + + + + + + + final + def + + + isInstanceOf[T0]: Boolean + + +
                Definition Classes
                Any
                +
              13. + + + + + + + + final + def + + + ne(arg0: AnyRef): Boolean + + +
                Definition Classes
                AnyRef
                +
              14. + + + + + + + + final + def + + + notify(): Unit + + +
                Definition Classes
                AnyRef
                +
              15. + + + + + + + + final + def + + + notifyAll(): Unit + + +
                Definition Classes
                AnyRef
                +
              16. + + + + + + + + final + def + + + synchronized[T0](arg0: ⇒ T0): T0 + + +
                Definition Classes
                AnyRef
                +
              17. + + + + + + + + + def + + + toString(): String + + +
                Definition Classes
                AnyRef → Any
                +
              18. + + + + + + + + final + def + + + wait(): Unit + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              19. + + + + + + + + final + def + + + wait(arg0: Long, arg1: Int): Unit + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              20. + + + + + + + + final + def + + + wait(arg0: Long): Unit + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              21. +
              +
              + + + + +
              + +
              +
              +

              Inherited from AnyRef

              +
              +

              Inherited from Any

              +
              + +
              + +
              +
              +

              Ungrouped

              + +
              +
              + +
              + +
              + + + +
              +
              +
              + + diff --git a/docs/api/2.12/ch/acmesoftware/orientDbScalaDsl/package$$VertexWrapper.html b/docs/api/2.12/ch/acmesoftware/orientDbScalaDsl/package$$VertexWrapper.html new file mode 100644 index 0000000..1feeb8e --- /dev/null +++ b/docs/api/2.12/ch/acmesoftware/orientDbScalaDsl/package$$VertexWrapper.html @@ -0,0 +1,660 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
              +
              +
              +
              +
              +
              +
              +
              +
              +
              +
              +
              +
              +

              Packages

              + +
              +
              +
              + +
              +
              c
              +

              ch.acmesoftware.orientDbScalaDsl

              +

              VertexWrapper + + + +

              +

              +
              + +

              + + implicit + class + + + VertexWrapper extends AnyRef + +

              + + +

              Wrapper providing VertexDsl

              + + Linear Supertypes + +
              AnyRef, Any
              +
              + + +
              +
              +
              + + + + + +
              +
              +
              + Ordering +
                + +
              1. Alphabetic
              2. +
              3. By Inheritance
              4. +
              +
              +
              + Inherited
              +
              +
                +
              1. VertexWrapper
              2. AnyRef
              3. Any
              4. +
              +
              + +
                +
              1. Hide All
              2. +
              3. Show All
              4. +
              +
              +
              + Visibility +
              1. Public
              2. All
              +
              +
              +
              + +
              +
              +
              +

              Instance Constructors

              +
              1. + + + + + + + + + new + + + VertexWrapper(v: Element) + + + +
              +
              + + + + + +
              +

              Value Members

              +
                +
              1. + + + + + + + + final + def + + + !=(arg0: Any): Boolean + + +
                Definition Classes
                AnyRef → Any
                +
              2. + + + + + + + + final + def + + + ##(): Int + + +
                Definition Classes
                AnyRef → Any
                +
              3. + + + + + + + + final + def + + + ==(arg0: Any): Boolean + + +
                Definition Classes
                AnyRef → Any
                +
              4. + + + + + + + + final + def + + + asInstanceOf[T0]: T0 + + +
                Definition Classes
                Any
                +
              5. + + + + + + + + + def + + + clone(): AnyRef + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              6. + + + + + + + + + def + + + dsl: VertexDsl + + + +
              7. + + + + + + + + final + def + + + eq(arg0: AnyRef): Boolean + + +
                Definition Classes
                AnyRef
                +
              8. + + + + + + + + + def + + + equals(arg0: Any): Boolean + + +
                Definition Classes
                AnyRef → Any
                +
              9. + + + + + + + + + def + + + finalize(): Unit + + +
                Attributes
                protected[java.lang]
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + classOf[java.lang.Throwable] + ) + +
                +
              10. + + + + + + + + final + def + + + getClass(): Class[_] + + +
                Definition Classes
                AnyRef → Any
                +
              11. + + + + + + + + + def + + + hashCode(): Int + + +
                Definition Classes
                AnyRef → Any
                +
              12. + + + + + + + + final + def + + + isInstanceOf[T0]: Boolean + + +
                Definition Classes
                Any
                +
              13. + + + + + + + + final + def + + + ne(arg0: AnyRef): Boolean + + +
                Definition Classes
                AnyRef
                +
              14. + + + + + + + + final + def + + + notify(): Unit + + +
                Definition Classes
                AnyRef
                +
              15. + + + + + + + + final + def + + + notifyAll(): Unit + + +
                Definition Classes
                AnyRef
                +
              16. + + + + + + + + final + def + + + synchronized[T0](arg0: ⇒ T0): T0 + + +
                Definition Classes
                AnyRef
                +
              17. + + + + + + + + + def + + + toString(): String + + +
                Definition Classes
                AnyRef → Any
                +
              18. + + + + + + + + final + def + + + wait(): Unit + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              19. + + + + + + + + final + def + + + wait(arg0: Long, arg1: Int): Unit + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              20. + + + + + + + + final + def + + + wait(arg0: Long): Unit + + +
                Definition Classes
                AnyRef
                Annotations
                + @throws( + + ... + ) + +
                +
              21. +
              +
              + + + + +
              + +
              +
              +

              Inherited from AnyRef

              +
              +

              Inherited from Any

              +
              + +
              + +
              +
              +

              Ungrouped

              + +
              +
              + +
              + +
              + + + +
              +
              +
              + + diff --git a/docs/api/2.12/ch/index.html b/docs/api/2.12/ch/index.html new file mode 100644 index 0000000..f1471f5 --- /dev/null +++ b/docs/api/2.12/ch/index.html @@ -0,0 +1,178 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
              +
              +
              +
              +
              +
              +
              +
              +
              +
              +
              +
              +
              +

              Packages

              + +
              +
              +
              + +
              +
              p
              + +

              ch + + + +

              + +
              + +

              + + + package + + + ch + +

              + + +
              + + + + +
              +
              + + + + + + + + + + + +
              + +
              + + +
              + +
              +
              +

              Ungrouped

              + +
              +
              + +
              + +
              + + + +
              +
              +
              + + diff --git a/docs/api/2.12/index.html b/docs/api/2.12/index.html new file mode 100644 index 0000000..d882cb7 --- /dev/null +++ b/docs/api/2.12/index.html @@ -0,0 +1,160 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
              +
              +
              +
              +
              +
              +
              +
              +
              +
              +
              +
              +
              +

              Packages

              + +
              +
              +
              + +
              +
              p
              + +

              root package + + + +

              + +
              + +

              + + + package + + + root + +

              + + +
              + + + + +
              +
              + + + + + + + + + + + +
              + +
              + + +
              + +
              +
              +

              Ungrouped

              + +
              +
              + +
              + +
              + + + +
              +
              +
              + + diff --git a/docs/api/2.12/index.js b/docs/api/2.12/index.js new file mode 100644 index 0000000..16e6b2b --- /dev/null +++ b/docs/api/2.12/index.js @@ -0,0 +1 @@ +Index.PACKAGES = {"ch" : [], "ch.acmesoftware" : [], "ch.acmesoftware.orientDbScalaDsl" : [{"name" : "ch.acmesoftware.orientDbScalaDsl.OrientGraphDsl", "shortDescription" : "DSL extension for the OrientBaseGraph class", "members_class" : [{"label" : "VerticlesFilterQuery", "tail" : "", "member" : "ch.acmesoftware.orientDbScalaDsl.OrientGraphDsl.VerticlesFilterQuery", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/OrientGraphDsl.html#VerticlesFilterQueryextendsAnyRef", "kind" : "class"}, {"label" : "findVertices", "tail" : "(label: String): VerticlesFilterQuery", "member" : "ch.acmesoftware.orientDbScalaDsl.OrientGraphDsl.findVertices", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/OrientGraphDsl.html#findVertices(label:String):OrientGraphDsl.this.VerticlesFilterQuery", "kind" : "def"}, {"label" : "addVertex", "tail" : "(label: String): VertexDsl", "member" : "ch.acmesoftware.orientDbScalaDsl.OrientGraphDsl.addVertex", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/OrientGraphDsl.html#addVertex(label:String):ch.acmesoftware.orientDbScalaDsl.VertexDsl", "kind" : "def"}, {"label" : "createVertexType", "tail" : "(label: String): OrientVertexTypeDsl", "member" : "ch.acmesoftware.orientDbScalaDsl.OrientGraphDsl.createVertexType", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/OrientGraphDsl.html#createVertexType(label:String):ch.acmesoftware.orientDbScalaDsl.OrientVertexTypeDsl", "kind" : "def"}, {"member" : "ch.acmesoftware.orientDbScalaDsl.OrientGraphDsl#", "error" : "unsupported entity"}, {"label" : "synchronized", "tail" : "(arg0: ⇒ T0): T0", "member" : "scala.AnyRef.synchronized", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/OrientGraphDsl.html#synchronized[T0](x$1:=>T0):T0", "kind" : "final def"}, {"label" : "##", "tail" : "(): Int", "member" : "scala.AnyRef.##", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/OrientGraphDsl.html###():Int", "kind" : "final def"}, {"label" : "!=", "tail" : "(arg0: Any): Boolean", "member" : "scala.AnyRef.!=", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/OrientGraphDsl.html#!=(x$1:Any):Boolean", "kind" : "final def"}, {"label" : "==", "tail" : "(arg0: Any): Boolean", "member" : "scala.AnyRef.==", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/OrientGraphDsl.html#==(x$1:Any):Boolean", "kind" : "final def"}, {"label" : "ne", "tail" : "(arg0: AnyRef): Boolean", "member" : "scala.AnyRef.ne", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/OrientGraphDsl.html#ne(x$1:AnyRef):Boolean", "kind" : "final def"}, {"label" : "eq", "tail" : "(arg0: AnyRef): Boolean", "member" : "scala.AnyRef.eq", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/OrientGraphDsl.html#eq(x$1:AnyRef):Boolean", "kind" : "final def"}, {"label" : "finalize", "tail" : "(): Unit", "member" : "scala.AnyRef.finalize", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/OrientGraphDsl.html#finalize():Unit", "kind" : "def"}, {"label" : "wait", "tail" : "(): Unit", "member" : "scala.AnyRef.wait", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/OrientGraphDsl.html#wait():Unit", "kind" : "final def"}, {"label" : "wait", "tail" : "(arg0: Long, arg1: Int): Unit", "member" : "scala.AnyRef.wait", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/OrientGraphDsl.html#wait(x$1:Long,x$2:Int):Unit", "kind" : "final def"}, {"label" : "wait", "tail" : "(arg0: Long): Unit", "member" : "scala.AnyRef.wait", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/OrientGraphDsl.html#wait(x$1:Long):Unit", "kind" : "final def"}, {"label" : "notifyAll", "tail" : "(): Unit", "member" : "scala.AnyRef.notifyAll", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/OrientGraphDsl.html#notifyAll():Unit", "kind" : "final def"}, {"label" : "notify", "tail" : "(): Unit", "member" : "scala.AnyRef.notify", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/OrientGraphDsl.html#notify():Unit", "kind" : "final def"}, {"label" : "toString", "tail" : "(): String", "member" : "scala.AnyRef.toString", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/OrientGraphDsl.html#toString():String", "kind" : "def"}, {"label" : "clone", "tail" : "(): AnyRef", "member" : "scala.AnyRef.clone", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/OrientGraphDsl.html#clone():Object", "kind" : "def"}, {"label" : "equals", "tail" : "(arg0: Any): Boolean", "member" : "scala.AnyRef.equals", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/OrientGraphDsl.html#equals(x$1:Any):Boolean", "kind" : "def"}, {"label" : "hashCode", "tail" : "(): Int", "member" : "scala.AnyRef.hashCode", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/OrientGraphDsl.html#hashCode():Int", "kind" : "def"}, {"label" : "getClass", "tail" : "(): Class[_]", "member" : "scala.AnyRef.getClass", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/OrientGraphDsl.html#getClass():Class[_]", "kind" : "final def"}, {"label" : "asInstanceOf", "tail" : "(): T0", "member" : "scala.Any.asInstanceOf", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/OrientGraphDsl.html#asInstanceOf[T0]:T0", "kind" : "final def"}, {"label" : "isInstanceOf", "tail" : "(): Boolean", "member" : "scala.Any.isInstanceOf", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/OrientGraphDsl.html#isInstanceOf[T0]:Boolean", "kind" : "final def"}], "class" : "ch\/acmesoftware\/orientDbScalaDsl\/OrientGraphDsl.html", "kind" : "class"}, {"name" : "ch.acmesoftware.orientDbScalaDsl.OrientGraphNoTxWrapper", "shortDescription" : "Wrapper providing OrientGraphDsl", "members_class" : [{"label" : "dsl", "tail" : "(): OrientGraphDsl", "member" : "ch.acmesoftware.orientDbScalaDsl.OrientGraphNoTxWrapper.dsl", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientGraphNoTxWrapper.html#dsl:ch.acmesoftware.orientDbScalaDsl.OrientGraphDsl", "kind" : "def"}, {"member" : "ch.acmesoftware.orientDbScalaDsl.OrientGraphNoTxWrapper#", "error" : "unsupported entity"}, {"label" : "synchronized", "tail" : "(arg0: ⇒ T0): T0", "member" : "scala.AnyRef.synchronized", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientGraphNoTxWrapper.html#synchronized[T0](x$1:=>T0):T0", "kind" : "final def"}, {"label" : "##", "tail" : "(): Int", "member" : "scala.AnyRef.##", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientGraphNoTxWrapper.html###():Int", "kind" : "final def"}, {"label" : "!=", "tail" : "(arg0: Any): Boolean", "member" : "scala.AnyRef.!=", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientGraphNoTxWrapper.html#!=(x$1:Any):Boolean", "kind" : "final def"}, {"label" : "==", "tail" : "(arg0: Any): Boolean", "member" : "scala.AnyRef.==", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientGraphNoTxWrapper.html#==(x$1:Any):Boolean", "kind" : "final def"}, {"label" : "ne", "tail" : "(arg0: AnyRef): Boolean", "member" : "scala.AnyRef.ne", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientGraphNoTxWrapper.html#ne(x$1:AnyRef):Boolean", "kind" : "final def"}, {"label" : "eq", "tail" : "(arg0: AnyRef): Boolean", "member" : "scala.AnyRef.eq", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientGraphNoTxWrapper.html#eq(x$1:AnyRef):Boolean", "kind" : "final def"}, {"label" : "finalize", "tail" : "(): Unit", "member" : "scala.AnyRef.finalize", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientGraphNoTxWrapper.html#finalize():Unit", "kind" : "def"}, {"label" : "wait", "tail" : "(): Unit", "member" : "scala.AnyRef.wait", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientGraphNoTxWrapper.html#wait():Unit", "kind" : "final def"}, {"label" : "wait", "tail" : "(arg0: Long, arg1: Int): Unit", "member" : "scala.AnyRef.wait", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientGraphNoTxWrapper.html#wait(x$1:Long,x$2:Int):Unit", "kind" : "final def"}, {"label" : "wait", "tail" : "(arg0: Long): Unit", "member" : "scala.AnyRef.wait", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientGraphNoTxWrapper.html#wait(x$1:Long):Unit", "kind" : "final def"}, {"label" : "notifyAll", "tail" : "(): Unit", "member" : "scala.AnyRef.notifyAll", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientGraphNoTxWrapper.html#notifyAll():Unit", "kind" : "final def"}, {"label" : "notify", "tail" : "(): Unit", "member" : "scala.AnyRef.notify", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientGraphNoTxWrapper.html#notify():Unit", "kind" : "final def"}, {"label" : "toString", "tail" : "(): String", "member" : "scala.AnyRef.toString", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientGraphNoTxWrapper.html#toString():String", "kind" : "def"}, {"label" : "clone", "tail" : "(): AnyRef", "member" : "scala.AnyRef.clone", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientGraphNoTxWrapper.html#clone():Object", "kind" : "def"}, {"label" : "equals", "tail" : "(arg0: Any): Boolean", "member" : "scala.AnyRef.equals", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientGraphNoTxWrapper.html#equals(x$1:Any):Boolean", "kind" : "def"}, {"label" : "hashCode", "tail" : "(): Int", "member" : "scala.AnyRef.hashCode", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientGraphNoTxWrapper.html#hashCode():Int", "kind" : "def"}, {"label" : "getClass", "tail" : "(): Class[_]", "member" : "scala.AnyRef.getClass", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientGraphNoTxWrapper.html#getClass():Class[_]", "kind" : "final def"}, {"label" : "asInstanceOf", "tail" : "(): T0", "member" : "scala.Any.asInstanceOf", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientGraphNoTxWrapper.html#asInstanceOf[T0]:T0", "kind" : "final def"}, {"label" : "isInstanceOf", "tail" : "(): Boolean", "member" : "scala.Any.isInstanceOf", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientGraphNoTxWrapper.html#isInstanceOf[T0]:Boolean", "kind" : "final def"}], "class" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientGraphNoTxWrapper.html", "kind" : "class"}, {"name" : "ch.acmesoftware.orientDbScalaDsl.OrientGraphWrapper", "shortDescription" : "Wrapper providing OrientGraphDsl", "members_class" : [{"label" : "dsl", "tail" : "(): OrientGraphDsl", "member" : "ch.acmesoftware.orientDbScalaDsl.OrientGraphWrapper.dsl", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientGraphWrapper.html#dsl:ch.acmesoftware.orientDbScalaDsl.OrientGraphDsl", "kind" : "def"}, {"member" : "ch.acmesoftware.orientDbScalaDsl.OrientGraphWrapper#", "error" : "unsupported entity"}, {"label" : "synchronized", "tail" : "(arg0: ⇒ T0): T0", "member" : "scala.AnyRef.synchronized", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientGraphWrapper.html#synchronized[T0](x$1:=>T0):T0", "kind" : "final def"}, {"label" : "##", "tail" : "(): Int", "member" : "scala.AnyRef.##", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientGraphWrapper.html###():Int", "kind" : "final def"}, {"label" : "!=", "tail" : "(arg0: Any): Boolean", "member" : "scala.AnyRef.!=", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientGraphWrapper.html#!=(x$1:Any):Boolean", "kind" : "final def"}, {"label" : "==", "tail" : "(arg0: Any): Boolean", "member" : "scala.AnyRef.==", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientGraphWrapper.html#==(x$1:Any):Boolean", "kind" : "final def"}, {"label" : "ne", "tail" : "(arg0: AnyRef): Boolean", "member" : "scala.AnyRef.ne", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientGraphWrapper.html#ne(x$1:AnyRef):Boolean", "kind" : "final def"}, {"label" : "eq", "tail" : "(arg0: AnyRef): Boolean", "member" : "scala.AnyRef.eq", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientGraphWrapper.html#eq(x$1:AnyRef):Boolean", "kind" : "final def"}, {"label" : "finalize", "tail" : "(): Unit", "member" : "scala.AnyRef.finalize", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientGraphWrapper.html#finalize():Unit", "kind" : "def"}, {"label" : "wait", "tail" : "(): Unit", "member" : "scala.AnyRef.wait", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientGraphWrapper.html#wait():Unit", "kind" : "final def"}, {"label" : "wait", "tail" : "(arg0: Long, arg1: Int): Unit", "member" : "scala.AnyRef.wait", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientGraphWrapper.html#wait(x$1:Long,x$2:Int):Unit", "kind" : "final def"}, {"label" : "wait", "tail" : "(arg0: Long): Unit", "member" : "scala.AnyRef.wait", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientGraphWrapper.html#wait(x$1:Long):Unit", "kind" : "final def"}, {"label" : "notifyAll", "tail" : "(): Unit", "member" : "scala.AnyRef.notifyAll", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientGraphWrapper.html#notifyAll():Unit", "kind" : "final def"}, {"label" : "notify", "tail" : "(): Unit", "member" : "scala.AnyRef.notify", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientGraphWrapper.html#notify():Unit", "kind" : "final def"}, {"label" : "toString", "tail" : "(): String", "member" : "scala.AnyRef.toString", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientGraphWrapper.html#toString():String", "kind" : "def"}, {"label" : "clone", "tail" : "(): AnyRef", "member" : "scala.AnyRef.clone", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientGraphWrapper.html#clone():Object", "kind" : "def"}, {"label" : "equals", "tail" : "(arg0: Any): Boolean", "member" : "scala.AnyRef.equals", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientGraphWrapper.html#equals(x$1:Any):Boolean", "kind" : "def"}, {"label" : "hashCode", "tail" : "(): Int", "member" : "scala.AnyRef.hashCode", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientGraphWrapper.html#hashCode():Int", "kind" : "def"}, {"label" : "getClass", "tail" : "(): Class[_]", "member" : "scala.AnyRef.getClass", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientGraphWrapper.html#getClass():Class[_]", "kind" : "final def"}, {"label" : "asInstanceOf", "tail" : "(): T0", "member" : "scala.Any.asInstanceOf", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientGraphWrapper.html#asInstanceOf[T0]:T0", "kind" : "final def"}, {"label" : "isInstanceOf", "tail" : "(): Boolean", "member" : "scala.Any.isInstanceOf", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientGraphWrapper.html#isInstanceOf[T0]:Boolean", "kind" : "final def"}], "class" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientGraphWrapper.html", "kind" : "class"}, {"name" : "ch.acmesoftware.orientDbScalaDsl.OrientVertexTypeDsl", "shortDescription" : "DSL extension for the OrientVertexType class", "object" : "ch\/acmesoftware\/orientDbScalaDsl\/OrientVertexTypeDsl$.html", "members_class" : [{"label" : "unique", "tail" : "(fieldName: String): OrientVertexTypeDsl", "member" : "ch.acmesoftware.orientDbScalaDsl.OrientVertexTypeDsl.unique", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/OrientVertexTypeDsl.html#unique(fieldName:String):ch.acmesoftware.orientDbScalaDsl.OrientVertexTypeDsl", "kind" : "def"}, {"label" : "withProperty", "tail" : "(d: PropertyDefinition): OrientVertexTypeDsl", "member" : "ch.acmesoftware.orientDbScalaDsl.OrientVertexTypeDsl.withProperty", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/OrientVertexTypeDsl.html#withProperty(d:ch.acmesoftware.orientDbScalaDsl.OrientVertexTypeDsl.PropertyDefinition):ch.acmesoftware.orientDbScalaDsl.OrientVertexTypeDsl", "kind" : "def"}, {"label" : "and", "tail" : "(d: PropertyDefinition): OrientVertexTypeDsl", "member" : "ch.acmesoftware.orientDbScalaDsl.OrientVertexTypeDsl.and", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/OrientVertexTypeDsl.html#and(d:ch.acmesoftware.orientDbScalaDsl.OrientVertexTypeDsl.PropertyDefinition):ch.acmesoftware.orientDbScalaDsl.OrientVertexTypeDsl", "kind" : "def"}, {"member" : "ch.acmesoftware.orientDbScalaDsl.OrientVertexTypeDsl#", "error" : "unsupported entity"}, {"label" : "synchronized", "tail" : "(arg0: ⇒ T0): T0", "member" : "scala.AnyRef.synchronized", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/OrientVertexTypeDsl.html#synchronized[T0](x$1:=>T0):T0", "kind" : "final def"}, {"label" : "##", "tail" : "(): Int", "member" : "scala.AnyRef.##", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/OrientVertexTypeDsl.html###():Int", "kind" : "final def"}, {"label" : "!=", "tail" : "(arg0: Any): Boolean", "member" : "scala.AnyRef.!=", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/OrientVertexTypeDsl.html#!=(x$1:Any):Boolean", "kind" : "final def"}, {"label" : "==", "tail" : "(arg0: Any): Boolean", "member" : "scala.AnyRef.==", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/OrientVertexTypeDsl.html#==(x$1:Any):Boolean", "kind" : "final def"}, {"label" : "ne", "tail" : "(arg0: AnyRef): Boolean", "member" : "scala.AnyRef.ne", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/OrientVertexTypeDsl.html#ne(x$1:AnyRef):Boolean", "kind" : "final def"}, {"label" : "eq", "tail" : "(arg0: AnyRef): Boolean", "member" : "scala.AnyRef.eq", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/OrientVertexTypeDsl.html#eq(x$1:AnyRef):Boolean", "kind" : "final def"}, {"label" : "finalize", "tail" : "(): Unit", "member" : "scala.AnyRef.finalize", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/OrientVertexTypeDsl.html#finalize():Unit", "kind" : "def"}, {"label" : "wait", "tail" : "(): Unit", "member" : "scala.AnyRef.wait", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/OrientVertexTypeDsl.html#wait():Unit", "kind" : "final def"}, {"label" : "wait", "tail" : "(arg0: Long, arg1: Int): Unit", "member" : "scala.AnyRef.wait", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/OrientVertexTypeDsl.html#wait(x$1:Long,x$2:Int):Unit", "kind" : "final def"}, {"label" : "wait", "tail" : "(arg0: Long): Unit", "member" : "scala.AnyRef.wait", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/OrientVertexTypeDsl.html#wait(x$1:Long):Unit", "kind" : "final def"}, {"label" : "notifyAll", "tail" : "(): Unit", "member" : "scala.AnyRef.notifyAll", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/OrientVertexTypeDsl.html#notifyAll():Unit", "kind" : "final def"}, {"label" : "notify", "tail" : "(): Unit", "member" : "scala.AnyRef.notify", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/OrientVertexTypeDsl.html#notify():Unit", "kind" : "final def"}, {"label" : "toString", "tail" : "(): String", "member" : "scala.AnyRef.toString", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/OrientVertexTypeDsl.html#toString():String", "kind" : "def"}, {"label" : "clone", "tail" : "(): AnyRef", "member" : "scala.AnyRef.clone", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/OrientVertexTypeDsl.html#clone():Object", "kind" : "def"}, {"label" : "equals", "tail" : "(arg0: Any): Boolean", "member" : "scala.AnyRef.equals", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/OrientVertexTypeDsl.html#equals(x$1:Any):Boolean", "kind" : "def"}, {"label" : "hashCode", "tail" : "(): Int", "member" : "scala.AnyRef.hashCode", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/OrientVertexTypeDsl.html#hashCode():Int", "kind" : "def"}, {"label" : "getClass", "tail" : "(): Class[_]", "member" : "scala.AnyRef.getClass", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/OrientVertexTypeDsl.html#getClass():Class[_]", "kind" : "final def"}, {"label" : "asInstanceOf", "tail" : "(): T0", "member" : "scala.Any.asInstanceOf", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/OrientVertexTypeDsl.html#asInstanceOf[T0]:T0", "kind" : "final def"}, {"label" : "isInstanceOf", "tail" : "(): Boolean", "member" : "scala.Any.isInstanceOf", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/OrientVertexTypeDsl.html#isInstanceOf[T0]:Boolean", "kind" : "final def"}], "members_object" : [{"label" : "PropertyDefinition", "tail" : "", "member" : "ch.acmesoftware.orientDbScalaDsl.OrientVertexTypeDsl.PropertyDefinition", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/OrientVertexTypeDsl$.html#PropertyDefinition=(String,com.orientechnologies.orient.core.metadata.schema.OType)", "kind" : "type"}, {"label" : "synchronized", "tail" : "(arg0: ⇒ T0): T0", "member" : "scala.AnyRef.synchronized", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/OrientVertexTypeDsl$.html#synchronized[T0](x$1:=>T0):T0", "kind" : "final def"}, {"label" : "##", "tail" : "(): Int", "member" : "scala.AnyRef.##", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/OrientVertexTypeDsl$.html###():Int", "kind" : "final def"}, {"label" : "!=", "tail" : "(arg0: Any): Boolean", "member" : "scala.AnyRef.!=", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/OrientVertexTypeDsl$.html#!=(x$1:Any):Boolean", "kind" : "final def"}, {"label" : "==", "tail" : "(arg0: Any): Boolean", "member" : "scala.AnyRef.==", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/OrientVertexTypeDsl$.html#==(x$1:Any):Boolean", "kind" : "final def"}, {"label" : "ne", "tail" : "(arg0: AnyRef): Boolean", "member" : "scala.AnyRef.ne", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/OrientVertexTypeDsl$.html#ne(x$1:AnyRef):Boolean", "kind" : "final def"}, {"label" : "eq", "tail" : "(arg0: AnyRef): Boolean", "member" : "scala.AnyRef.eq", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/OrientVertexTypeDsl$.html#eq(x$1:AnyRef):Boolean", "kind" : "final def"}, {"label" : "finalize", "tail" : "(): Unit", "member" : "scala.AnyRef.finalize", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/OrientVertexTypeDsl$.html#finalize():Unit", "kind" : "def"}, {"label" : "wait", "tail" : "(): Unit", "member" : "scala.AnyRef.wait", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/OrientVertexTypeDsl$.html#wait():Unit", "kind" : "final def"}, {"label" : "wait", "tail" : "(arg0: Long, arg1: Int): Unit", "member" : "scala.AnyRef.wait", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/OrientVertexTypeDsl$.html#wait(x$1:Long,x$2:Int):Unit", "kind" : "final def"}, {"label" : "wait", "tail" : "(arg0: Long): Unit", "member" : "scala.AnyRef.wait", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/OrientVertexTypeDsl$.html#wait(x$1:Long):Unit", "kind" : "final def"}, {"label" : "notifyAll", "tail" : "(): Unit", "member" : "scala.AnyRef.notifyAll", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/OrientVertexTypeDsl$.html#notifyAll():Unit", "kind" : "final def"}, {"label" : "notify", "tail" : "(): Unit", "member" : "scala.AnyRef.notify", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/OrientVertexTypeDsl$.html#notify():Unit", "kind" : "final def"}, {"label" : "toString", "tail" : "(): String", "member" : "scala.AnyRef.toString", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/OrientVertexTypeDsl$.html#toString():String", "kind" : "def"}, {"label" : "clone", "tail" : "(): AnyRef", "member" : "scala.AnyRef.clone", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/OrientVertexTypeDsl$.html#clone():Object", "kind" : "def"}, {"label" : "equals", "tail" : "(arg0: Any): Boolean", "member" : "scala.AnyRef.equals", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/OrientVertexTypeDsl$.html#equals(x$1:Any):Boolean", "kind" : "def"}, {"label" : "hashCode", "tail" : "(): Int", "member" : "scala.AnyRef.hashCode", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/OrientVertexTypeDsl$.html#hashCode():Int", "kind" : "def"}, {"label" : "getClass", "tail" : "(): Class[_]", "member" : "scala.AnyRef.getClass", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/OrientVertexTypeDsl$.html#getClass():Class[_]", "kind" : "final def"}, {"label" : "asInstanceOf", "tail" : "(): T0", "member" : "scala.Any.asInstanceOf", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/OrientVertexTypeDsl$.html#asInstanceOf[T0]:T0", "kind" : "final def"}, {"label" : "isInstanceOf", "tail" : "(): Boolean", "member" : "scala.Any.isInstanceOf", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/OrientVertexTypeDsl$.html#isInstanceOf[T0]:Boolean", "kind" : "final def"}], "class" : "ch\/acmesoftware\/orientDbScalaDsl\/OrientVertexTypeDsl.html", "kind" : "class"}, {"name" : "ch.acmesoftware.orientDbScalaDsl.OrientVertexTypeWrapper", "shortDescription" : "Wrapper providing OrientVertexTypeDsl", "members_class" : [{"label" : "dsl", "tail" : "(): OrientVertexTypeDsl", "member" : "ch.acmesoftware.orientDbScalaDsl.OrientVertexTypeWrapper.dsl", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientVertexTypeWrapper.html#dsl:ch.acmesoftware.orientDbScalaDsl.OrientVertexTypeDsl", "kind" : "def"}, {"member" : "ch.acmesoftware.orientDbScalaDsl.OrientVertexTypeWrapper#", "error" : "unsupported entity"}, {"label" : "synchronized", "tail" : "(arg0: ⇒ T0): T0", "member" : "scala.AnyRef.synchronized", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientVertexTypeWrapper.html#synchronized[T0](x$1:=>T0):T0", "kind" : "final def"}, {"label" : "##", "tail" : "(): Int", "member" : "scala.AnyRef.##", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientVertexTypeWrapper.html###():Int", "kind" : "final def"}, {"label" : "!=", "tail" : "(arg0: Any): Boolean", "member" : "scala.AnyRef.!=", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientVertexTypeWrapper.html#!=(x$1:Any):Boolean", "kind" : "final def"}, {"label" : "==", "tail" : "(arg0: Any): Boolean", "member" : "scala.AnyRef.==", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientVertexTypeWrapper.html#==(x$1:Any):Boolean", "kind" : "final def"}, {"label" : "ne", "tail" : "(arg0: AnyRef): Boolean", "member" : "scala.AnyRef.ne", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientVertexTypeWrapper.html#ne(x$1:AnyRef):Boolean", "kind" : "final def"}, {"label" : "eq", "tail" : "(arg0: AnyRef): Boolean", "member" : "scala.AnyRef.eq", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientVertexTypeWrapper.html#eq(x$1:AnyRef):Boolean", "kind" : "final def"}, {"label" : "finalize", "tail" : "(): Unit", "member" : "scala.AnyRef.finalize", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientVertexTypeWrapper.html#finalize():Unit", "kind" : "def"}, {"label" : "wait", "tail" : "(): Unit", "member" : "scala.AnyRef.wait", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientVertexTypeWrapper.html#wait():Unit", "kind" : "final def"}, {"label" : "wait", "tail" : "(arg0: Long, arg1: Int): Unit", "member" : "scala.AnyRef.wait", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientVertexTypeWrapper.html#wait(x$1:Long,x$2:Int):Unit", "kind" : "final def"}, {"label" : "wait", "tail" : "(arg0: Long): Unit", "member" : "scala.AnyRef.wait", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientVertexTypeWrapper.html#wait(x$1:Long):Unit", "kind" : "final def"}, {"label" : "notifyAll", "tail" : "(): Unit", "member" : "scala.AnyRef.notifyAll", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientVertexTypeWrapper.html#notifyAll():Unit", "kind" : "final def"}, {"label" : "notify", "tail" : "(): Unit", "member" : "scala.AnyRef.notify", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientVertexTypeWrapper.html#notify():Unit", "kind" : "final def"}, {"label" : "toString", "tail" : "(): String", "member" : "scala.AnyRef.toString", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientVertexTypeWrapper.html#toString():String", "kind" : "def"}, {"label" : "clone", "tail" : "(): AnyRef", "member" : "scala.AnyRef.clone", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientVertexTypeWrapper.html#clone():Object", "kind" : "def"}, {"label" : "equals", "tail" : "(arg0: Any): Boolean", "member" : "scala.AnyRef.equals", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientVertexTypeWrapper.html#equals(x$1:Any):Boolean", "kind" : "def"}, {"label" : "hashCode", "tail" : "(): Int", "member" : "scala.AnyRef.hashCode", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientVertexTypeWrapper.html#hashCode():Int", "kind" : "def"}, {"label" : "getClass", "tail" : "(): Class[_]", "member" : "scala.AnyRef.getClass", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientVertexTypeWrapper.html#getClass():Class[_]", "kind" : "final def"}, {"label" : "asInstanceOf", "tail" : "(): T0", "member" : "scala.Any.asInstanceOf", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientVertexTypeWrapper.html#asInstanceOf[T0]:T0", "kind" : "final def"}, {"label" : "isInstanceOf", "tail" : "(): Boolean", "member" : "scala.Any.isInstanceOf", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientVertexTypeWrapper.html#isInstanceOf[T0]:Boolean", "kind" : "final def"}], "class" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientVertexTypeWrapper.html", "kind" : "class"}, {"name" : "ch.acmesoftware.orientDbScalaDsl.VertexDsl", "shortDescription" : "DSL extension for the Element class", "object" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl$.html", "members_class" : [{"label" : "and", "tail" : "(prop: Property): VertexDsl", "member" : "ch.acmesoftware.orientDbScalaDsl.VertexDsl.and", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl.html#and(prop:ch.acmesoftware.orientDbScalaDsl.VertexDsl.Property):ch.acmesoftware.orientDbScalaDsl.VertexDsl", "kind" : "def"}, {"label" : "withProperty", "tail" : "(prop: Property): VertexDsl", "member" : "ch.acmesoftware.orientDbScalaDsl.VertexDsl.withProperty", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl.html#withProperty(prop:ch.acmesoftware.orientDbScalaDsl.VertexDsl.Property):ch.acmesoftware.orientDbScalaDsl.VertexDsl", "kind" : "def"}, {"member" : "ch.acmesoftware.orientDbScalaDsl.VertexDsl#", "error" : "unsupported entity"}, {"label" : "synchronized", "tail" : "(arg0: ⇒ T0): T0", "member" : "scala.AnyRef.synchronized", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl.html#synchronized[T0](x$1:=>T0):T0", "kind" : "final def"}, {"label" : "##", "tail" : "(): Int", "member" : "scala.AnyRef.##", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl.html###():Int", "kind" : "final def"}, {"label" : "!=", "tail" : "(arg0: Any): Boolean", "member" : "scala.AnyRef.!=", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl.html#!=(x$1:Any):Boolean", "kind" : "final def"}, {"label" : "==", "tail" : "(arg0: Any): Boolean", "member" : "scala.AnyRef.==", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl.html#==(x$1:Any):Boolean", "kind" : "final def"}, {"label" : "ne", "tail" : "(arg0: AnyRef): Boolean", "member" : "scala.AnyRef.ne", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl.html#ne(x$1:AnyRef):Boolean", "kind" : "final def"}, {"label" : "eq", "tail" : "(arg0: AnyRef): Boolean", "member" : "scala.AnyRef.eq", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl.html#eq(x$1:AnyRef):Boolean", "kind" : "final def"}, {"label" : "finalize", "tail" : "(): Unit", "member" : "scala.AnyRef.finalize", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl.html#finalize():Unit", "kind" : "def"}, {"label" : "wait", "tail" : "(): Unit", "member" : "scala.AnyRef.wait", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl.html#wait():Unit", "kind" : "final def"}, {"label" : "wait", "tail" : "(arg0: Long, arg1: Int): Unit", "member" : "scala.AnyRef.wait", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl.html#wait(x$1:Long,x$2:Int):Unit", "kind" : "final def"}, {"label" : "wait", "tail" : "(arg0: Long): Unit", "member" : "scala.AnyRef.wait", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl.html#wait(x$1:Long):Unit", "kind" : "final def"}, {"label" : "notifyAll", "tail" : "(): Unit", "member" : "scala.AnyRef.notifyAll", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl.html#notifyAll():Unit", "kind" : "final def"}, {"label" : "notify", "tail" : "(): Unit", "member" : "scala.AnyRef.notify", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl.html#notify():Unit", "kind" : "final def"}, {"label" : "toString", "tail" : "(): String", "member" : "scala.AnyRef.toString", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl.html#toString():String", "kind" : "def"}, {"label" : "clone", "tail" : "(): AnyRef", "member" : "scala.AnyRef.clone", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl.html#clone():Object", "kind" : "def"}, {"label" : "equals", "tail" : "(arg0: Any): Boolean", "member" : "scala.AnyRef.equals", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl.html#equals(x$1:Any):Boolean", "kind" : "def"}, {"label" : "hashCode", "tail" : "(): Int", "member" : "scala.AnyRef.hashCode", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl.html#hashCode():Int", "kind" : "def"}, {"label" : "getClass", "tail" : "(): Class[_]", "member" : "scala.AnyRef.getClass", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl.html#getClass():Class[_]", "kind" : "final def"}, {"label" : "asInstanceOf", "tail" : "(): T0", "member" : "scala.Any.asInstanceOf", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl.html#asInstanceOf[T0]:T0", "kind" : "final def"}, {"label" : "isInstanceOf", "tail" : "(): Boolean", "member" : "scala.Any.isInstanceOf", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl.html#isInstanceOf[T0]:Boolean", "kind" : "final def"}], "members_object" : [{"label" : "Property", "tail" : "", "member" : "ch.acmesoftware.orientDbScalaDsl.VertexDsl.Property", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl$.html#Property=(String,Any)", "kind" : "type"}, {"label" : "synchronized", "tail" : "(arg0: ⇒ T0): T0", "member" : "scala.AnyRef.synchronized", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl$.html#synchronized[T0](x$1:=>T0):T0", "kind" : "final def"}, {"label" : "##", "tail" : "(): Int", "member" : "scala.AnyRef.##", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl$.html###():Int", "kind" : "final def"}, {"label" : "!=", "tail" : "(arg0: Any): Boolean", "member" : "scala.AnyRef.!=", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl$.html#!=(x$1:Any):Boolean", "kind" : "final def"}, {"label" : "==", "tail" : "(arg0: Any): Boolean", "member" : "scala.AnyRef.==", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl$.html#==(x$1:Any):Boolean", "kind" : "final def"}, {"label" : "ne", "tail" : "(arg0: AnyRef): Boolean", "member" : "scala.AnyRef.ne", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl$.html#ne(x$1:AnyRef):Boolean", "kind" : "final def"}, {"label" : "eq", "tail" : "(arg0: AnyRef): Boolean", "member" : "scala.AnyRef.eq", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl$.html#eq(x$1:AnyRef):Boolean", "kind" : "final def"}, {"label" : "finalize", "tail" : "(): Unit", "member" : "scala.AnyRef.finalize", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl$.html#finalize():Unit", "kind" : "def"}, {"label" : "wait", "tail" : "(): Unit", "member" : "scala.AnyRef.wait", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl$.html#wait():Unit", "kind" : "final def"}, {"label" : "wait", "tail" : "(arg0: Long, arg1: Int): Unit", "member" : "scala.AnyRef.wait", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl$.html#wait(x$1:Long,x$2:Int):Unit", "kind" : "final def"}, {"label" : "wait", "tail" : "(arg0: Long): Unit", "member" : "scala.AnyRef.wait", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl$.html#wait(x$1:Long):Unit", "kind" : "final def"}, {"label" : "notifyAll", "tail" : "(): Unit", "member" : "scala.AnyRef.notifyAll", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl$.html#notifyAll():Unit", "kind" : "final def"}, {"label" : "notify", "tail" : "(): Unit", "member" : "scala.AnyRef.notify", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl$.html#notify():Unit", "kind" : "final def"}, {"label" : "toString", "tail" : "(): String", "member" : "scala.AnyRef.toString", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl$.html#toString():String", "kind" : "def"}, {"label" : "clone", "tail" : "(): AnyRef", "member" : "scala.AnyRef.clone", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl$.html#clone():Object", "kind" : "def"}, {"label" : "equals", "tail" : "(arg0: Any): Boolean", "member" : "scala.AnyRef.equals", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl$.html#equals(x$1:Any):Boolean", "kind" : "def"}, {"label" : "hashCode", "tail" : "(): Int", "member" : "scala.AnyRef.hashCode", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl$.html#hashCode():Int", "kind" : "def"}, {"label" : "getClass", "tail" : "(): Class[_]", "member" : "scala.AnyRef.getClass", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl$.html#getClass():Class[_]", "kind" : "final def"}, {"label" : "asInstanceOf", "tail" : "(): T0", "member" : "scala.Any.asInstanceOf", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl$.html#asInstanceOf[T0]:T0", "kind" : "final def"}, {"label" : "isInstanceOf", "tail" : "(): Boolean", "member" : "scala.Any.isInstanceOf", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl$.html#isInstanceOf[T0]:Boolean", "kind" : "final def"}], "class" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl.html", "kind" : "class"}, {"name" : "ch.acmesoftware.orientDbScalaDsl.VertexWrapper", "shortDescription" : "Wrapper providing VertexDsl", "members_class" : [{"label" : "dsl", "tail" : "(): VertexDsl", "member" : "ch.acmesoftware.orientDbScalaDsl.VertexWrapper.dsl", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$VertexWrapper.html#dsl:ch.acmesoftware.orientDbScalaDsl.VertexDsl", "kind" : "def"}, {"member" : "ch.acmesoftware.orientDbScalaDsl.VertexWrapper#", "error" : "unsupported entity"}, {"label" : "synchronized", "tail" : "(arg0: ⇒ T0): T0", "member" : "scala.AnyRef.synchronized", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$VertexWrapper.html#synchronized[T0](x$1:=>T0):T0", "kind" : "final def"}, {"label" : "##", "tail" : "(): Int", "member" : "scala.AnyRef.##", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$VertexWrapper.html###():Int", "kind" : "final def"}, {"label" : "!=", "tail" : "(arg0: Any): Boolean", "member" : "scala.AnyRef.!=", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$VertexWrapper.html#!=(x$1:Any):Boolean", "kind" : "final def"}, {"label" : "==", "tail" : "(arg0: Any): Boolean", "member" : "scala.AnyRef.==", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$VertexWrapper.html#==(x$1:Any):Boolean", "kind" : "final def"}, {"label" : "ne", "tail" : "(arg0: AnyRef): Boolean", "member" : "scala.AnyRef.ne", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$VertexWrapper.html#ne(x$1:AnyRef):Boolean", "kind" : "final def"}, {"label" : "eq", "tail" : "(arg0: AnyRef): Boolean", "member" : "scala.AnyRef.eq", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$VertexWrapper.html#eq(x$1:AnyRef):Boolean", "kind" : "final def"}, {"label" : "finalize", "tail" : "(): Unit", "member" : "scala.AnyRef.finalize", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$VertexWrapper.html#finalize():Unit", "kind" : "def"}, {"label" : "wait", "tail" : "(): Unit", "member" : "scala.AnyRef.wait", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$VertexWrapper.html#wait():Unit", "kind" : "final def"}, {"label" : "wait", "tail" : "(arg0: Long, arg1: Int): Unit", "member" : "scala.AnyRef.wait", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$VertexWrapper.html#wait(x$1:Long,x$2:Int):Unit", "kind" : "final def"}, {"label" : "wait", "tail" : "(arg0: Long): Unit", "member" : "scala.AnyRef.wait", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$VertexWrapper.html#wait(x$1:Long):Unit", "kind" : "final def"}, {"label" : "notifyAll", "tail" : "(): Unit", "member" : "scala.AnyRef.notifyAll", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$VertexWrapper.html#notifyAll():Unit", "kind" : "final def"}, {"label" : "notify", "tail" : "(): Unit", "member" : "scala.AnyRef.notify", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$VertexWrapper.html#notify():Unit", "kind" : "final def"}, {"label" : "toString", "tail" : "(): String", "member" : "scala.AnyRef.toString", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$VertexWrapper.html#toString():String", "kind" : "def"}, {"label" : "clone", "tail" : "(): AnyRef", "member" : "scala.AnyRef.clone", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$VertexWrapper.html#clone():Object", "kind" : "def"}, {"label" : "equals", "tail" : "(arg0: Any): Boolean", "member" : "scala.AnyRef.equals", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$VertexWrapper.html#equals(x$1:Any):Boolean", "kind" : "def"}, {"label" : "hashCode", "tail" : "(): Int", "member" : "scala.AnyRef.hashCode", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$VertexWrapper.html#hashCode():Int", "kind" : "def"}, {"label" : "getClass", "tail" : "(): Class[_]", "member" : "scala.AnyRef.getClass", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$VertexWrapper.html#getClass():Class[_]", "kind" : "final def"}, {"label" : "asInstanceOf", "tail" : "(): T0", "member" : "scala.Any.asInstanceOf", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$VertexWrapper.html#asInstanceOf[T0]:T0", "kind" : "final def"}, {"label" : "isInstanceOf", "tail" : "(): Boolean", "member" : "scala.Any.isInstanceOf", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$VertexWrapper.html#isInstanceOf[T0]:Boolean", "kind" : "final def"}], "class" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$VertexWrapper.html", "kind" : "class"}]}; \ No newline at end of file diff --git a/docs/api/2.12/lib/MaterialIcons-Regular.eot b/docs/api/2.12/lib/MaterialIcons-Regular.eot new file mode 100644 index 0000000000000000000000000000000000000000..bf67d48bdb064080ae9506557f15705a34fe8e04 GIT binary patch literal 137002 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 e}5yJ?#qR#7AhjoBBTe4 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%0A3Os0 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%0DMMb(D0RtH+C zND3KhVOGx)2dY02hvybC|Jp?pW><`^jjs(-TPRS`2}b?5uCbwF7R`yCxOPNZ#T@iA z793VF27Rs>=W>5rBzg>EisBY&&Jx-0iJp+bF_uU~;#|{74-d!VM=5GDB7y#}F!U*+ zp>S(MiU5Ozd0L{FOz>Q)4WuKC@fxWY`C;WfSlU2qDE1k|3Pw1xI3fbTM~j_=y5UxZ z;R#c^@a=*iNeD2UBFXprI!nzAOYXhO;wuZ7VUFx5H`QBxPY3Et3d+mN)@utrb)7+X z&GDZ4^0GpW217~5%oQ^%`T~Qgx@%XfO^;;;i*=anRBCU)N?27qYC6K@DY7b2Ytc-^ ze34i!=Cnz)XhBR#Mx*I8*)7z_0!l69FExFE094*-03kBZ$#XI$)0rB0B60V(kOC}~QRB9cvk3Tk16 zQ`mFa7&$J(GI+Kcun9XHEJ{ShhFaaNnQysU-Ix0PF>vcRyR6mS*5+=liHAYB!b3yo zMDU9v;Pye{K%z(Md|1m98?5jkDqVIg)QOE9B1>+4XsD>lBY|5}1&Ntf5%YAB%Ky8^MqKY-~CG*rQd+Bm+_ zzh=B%I$A@6VugK%hEwa8zRkV0#my=v)iQCLdrOOZ(Zs6e^3+poWCKTAd+5|mSu7k4 z$0oNNvBBIs#jMrI`BR9sKbl)fj!cE%UC?y1Gka;xPNK!|pYXXF zRCg8XhK0i&TTq0lMqi|?|YH#0h3q11#@6I7$v(V1(l-r;P$2nSSbr|&GmUR@hRI1(f;Qk>AlTGRl5 z1$U)c(yAtan4ff-j11ZS0a76+89Z%_^E9GDU>D;cBau8rWP@-j7r>D4kN6V=G&1TT zkcPC5uq=lGJ}4a%awP34FFrzWXK?0E&ojx56bL_}T*0fUQz%!8eF}s7&{z~!8;gV$ zWJqWCVdMN4M_Ta_GpKRKw@E@eW>iC#i^pPdzK78+jW8(s0pw!gH3ic);CMU=8WE1d zE|NLQE$3W<7jnEGHHc?@wiE+G^Lv5Ognb;*vTftySY!kfi=1Y$OJM|}VYz}bkTLSt zQ~LYA5C&lbV=V=5GWwD{-88z$LXr)KpxK2$ki&{cEBH}lWJN!T}N=moj%h$J13TO;S!WJTdd;Jr9PbprIZosz` zZlDxoKeZcP;4eQcvY;|vKp7GKoF4lQ@>gFF8Bj08(F<|N#*ox%@tg`tW&U|FC0Go_ zVhNor!KjNPWt`mv=oSh28ZrtJ$595=+6`IuRel1Wqk_Jrv81lsD^`*f(zYK|4a
              =*O&igxBothO;TP2Ql6lMu=o+prjb(1IRK(4u_7RB+|k01hEg$6n233A&VHf z9e_T=P=L;$7#^Cw;2j$t9AxyFuhh)JVfOwLv({$bpzjQBWLpc@&O#2kxKqBC3Pqh# zPfq3~Y}@F4QT~y@5t5PN-hneimKkVuhTmaPCqfZLeiTbY^P)NL^_meoM8w~EN}iF_ zN^Z~FNor7%c06Bvwh!id_7p;fhDmK>LpBfc6a7i{`TvPI4O-;y1y27GHV#=Lou71K z!M(_N0geC?k4Y1ZN7F&j;Z7qg4Z_CA_O1=LMHHGlaV+!U3Z~S#x-vH^#Xk1E%zFy! zXIPsO(c6RhWET)Pmc=VsUFTGdJtnLQ@uhVr zqz}`Jy_eFMuJ$yJ*{+N?NyI#b~iP5Hg|S3n_Fk}wSpScFNQUwC@FT4 z$c<(hsY>hX&8@A}n_ApT^VK$Bf)=C{Hm$^@7Rrp7pPE2T6=h$6 zy>v&mh>M$eu7aj8%28)eWz$d6Q~mm zfU327e5`P_nFbC?8TnG(yL`gDb=6F)x4=Iw0LZQ(5#uNqvc)QcH{jvSRm{#;i*l04 zCz=3#418X-9*R{{MC`lz^&Fcp!spgcQ7baJ9uVa5Z28LO}+RN?s z@_#6|*~(!{C&iIPo=1!z%tS~NnD>FBzOu5u-(H@1m8S`m+c}qvKm!nCdt6?pZ!3(i zpHsFHX-O9%pmR(zDuA=-GI#iA?G)PSBnwT9!%Ep64v4H?W`K<`CUv z!?qf(KgwwJ7P{=*f`5Shfz&`(L;FE=(Em)DyLR4K$K1IcwBejd*^@E#0b!=9 z8*+_I)p}0(LPd(4$sCgSHU+^hkq1g}BKT|oQpyizbCv`&$(AEkP~0czIFFFyzW9J$ zOwSvgC6CCnXvczl3SZkJ-FxInk6!15MKI# zRV)&=A!k7yQTA@nuLNDnFsQ#yrO#T2=m2Ce(%=O`#3wO4FdPRl` z%gPGl6n1?%@A5@9TSS&YHaIq78Hi-Mv@lJH(uJijbB?yY(dw$QHa1$St1OKW_k?1J z`E+DS0MCS!Nc6x38B>z7JX5U=C>haSnPP1wa{~4m@?%%b=Jnu)3YGe!n`vlp5BC{- z?;zU-jH;?eh>j*3i~<=o%{g{Gx-73Ob=0dkp8FtO0s-HD!}n@)rBPckM)3^;?)g(& zs!~FR&r)E$)U|oOKIY`KZ)}2#4|po{M53m|qcF!8i=EiVr43pUIJLj*oy6w|bUM1*O3 z8k%~0o6IIG9d4j?ak7kyO=OAci*Lxqzr zdtZI-LmI3_XjS9J)oa7#blGcLHh=QLQaP-SR+cKY6&IIm%7=XzH%hPtvA6IfbY}op zi?H=zo5jEH&c6|F979aFv7(P&7|8D~FJ%&;+i}`?coA=qD9s|C!Fv8&0<2Uj zB49=S<7Ui~nj+1T7D`J%sm_r$a*r}+UyU52Y*zJXuLDS|DkLbrMyEn)QcCp=5~4NP zX9N`$I&@_GBlq+zd(l?x!>BRUI&*}_i77aJk{%n+;e(P7f6D-i3sr_|E!js2p3Opj z3wz``XtPBruN}(AJW~NlK6>Zyj5412uN{(!FGBT~O_Rdl%5FyK%z3dVZy15}$=i)@*_YFdGYp z5z&N2-#32OF0!eZ1TqzbDtK)Gf0yjz-4ft?$bVu53NSr&8T_ElHk(6n2;dl2FBnMe z`yAD7aj~T+iPWDEuJ5Gl*Pnw&6Fz%8PZh)PiL#e;|Q7s(q(Yg9gkN2|&}F1E1eYtc`rW zv>EhZhjfK>oph6Qr}SCrLFqB+i^MC$$W?n%?JpH)MVF{oqSqTIy`#RXrc$4)T_L)v zAP+}EyxY`{6&XQ$X_k+S0S;Pz<9Fc;wgCzJd zqAkG1Fd*tMR|vrhJ?YhZ_pYAW(K%&GX9r6oaaGm%mz`f#g?HjvjpCGdQmgjvT~+6v zy>jJjH-D$dy8ZU;)*|ptbyWtMBS|Yna#tMx{FDu5I|}K9Qx@KLtSlkcQ*gR!oAD{s z@8qxhKr*1wG;{Gxlkt21KUnqQe{01Hm0y)|?>cF?V%9LMxFM{&gFmt-z)OOdKA|#) zBhdsl*u#0a4l{<=k(hETrqKP0cF|dMO>#N;As`1sDnZmJpUTQ7uh2S999d`*75hiM z{-tRzVg5?ySD@3@C87a z;XwqM*O5HzLzFLEng(HO_-E}>dFiyp@(cg8tZk0xqC;Bt1#Ryp{e5)#TMa#NbQtz~ z_jM%pndhJUs-<#e6Sf(LOJrOx)9mZeap^O{rB7P(C(j~i!P>i7)mIfh1FCZRQ?C6g zabJJVw%+e;>TPQ3O$g1G!Jm@T48KQDnjmM#0IvksXh_%)eUDf2b)BJWq(|xFHKUN|$>IVToO_M@Soe)<;F)**!Zs#K zFGRd7$=O*+&ZY|42pojyohzJzZprn8*aXMki6sxC&^UK>I^(Aln!zFSJ4Mdd z0h`if4~J?ap?My_9^&ZSflKH~9YCf_IDql<`(ZD^46Bh5rH%Kr0n*^8+#pDuSTcZ=E-GBc{7>O7QaK6C?6l%J z+;WlZ+UGcbK&;-uZ_}!J&`O}0AWb?#sS{%Pj$DK^@mKl|xSuR+J=s1`OQ3-3|ExCR z>pO+K*b}FzkXYq?6EFA6pH?lx2bB{Pg3^Nm(|5yU!u8XJ_rbabn=9;7VJ1aqz9ig} z-0%UXY9*gasj@B0RjzW~ zuD#3EU0ciLu3m62)r$pmHR-0CW)nMf17UNK@CIl)2_Yp243j3qWI~h%c@`hx>5cT~3-?>+kU9Kj10p?AWC0$)f_ndo{Z~cGYr!y64N@2?s({;@< zZQZ%8PuQ=-2~$g zh~WCG_Z}Uc54N|3d>viP5vj3(UltDn5ClZC41=h^o5JWjxJVd`_kmCD_@p}N_aEGm zNc`4?FC-E>4uXCaarVFIlV7;-TXNEavD7-?21c?|Dw*Lfw9`ErU__cX2=6;oXlr%r z{Ol`0T&%1Z#)=GDMem~u&}v4tQYv9l!#%2rapP=pEMeKUSB|ZR!8-{398F*YH|Fwu zkxbJ~m<`kEz$oZzW~lAa#^MRt>k&96RQ1CQaDjN(*~FQf{q3gB(nH~Gw} zQme?_4TEQPvAR~~!k2p@2A!5_T4ixhw)LJpB01UGBRE(#=iuO7L5ByrtagnbH7-~s zWnJ%+ML(q%dcRq=;cXJJY#CW?9tPFY15N)v?OdkC;cYqzUSSbOtYb}};E5)2+~*Wh ziGkyqrbz}gZ;ez(C?RW}<6N~YbjbRY-=iF%ar^(8G2_0|cg(yGwD3iNH`=bQfXXgh z-IM(|thl&E`*weD;l$KI9kXbk(j!1CySAuUBl*v&sIp_2&As0V^Dhowls7 z?J6amehL!GQ&<<|q*8w`3`))alK+Ak59IL_T*fB-xAy*EhB$iehx=V`fBf<4@2OIS z2pAxf_4wldITWg2e_-5IG~Kn1TwB2lHM}wNfsZ{yZ`?RN{BFhn%Y_ zMV^MF`OpTv9{l&>O)fu^ml*%S0XQr3GsrrmrWc#MO@ZjX*Z=!lyV||Z*52{)?idlv z3mt7iPfzr~Q0gvZ&gpD-$9D~N6W_!BF#60x|B=-nkrvPZZx;fKd9QaJ^a7DB>{-@I z?r-&v7?3t*F2aD-XeuKJ8@dPhH#?|t-x?f_d%#A*CR>-THn+8g!X0hn-5vg}NLN?L z8}0PDJ6f!I1&jYly4~*Y^tX4kbq{rSxRE^E8yf76huodizdnJxxD`DK(*vZC_aKA9 zMi?mg)}j&SD9`1*FkGQ+;M4hm#-=Nyt*O-;@wPU##k_6dHs70GpWsojv;-ybs(RF};4SrB_0NQ7=*p zCIR3+5L+c1Sink`j6!vTzLP*)M?fuNAJfJ0r90xy;`(8)X*c!gTt`E zIEF>|lMXd>3Vo{&K?9o1-eRgKR95;GY;O;uNf{Gtw@t&f!Hz+Y?(UMbAx~O8p(AT+ zFUbXL?#LPH6?Eh_ZP$jzP13t{f~+x7`%i4lA&LGq&DewS@VyI@TUzX+58U=5HBN?J z6Qn8iLD{k{$_3n}Jqp`2iz0Y%m29^*m{pAR&l_g~JCw_#-r6?9pr@cvTEyzK8{T&K zfvP|`;ujrx`iit%LQfj~F_4>)pEu{VWC_v?d%}qquf>o5o7uhXH3Y(XMJvj&z zL^bJBSGQzu#u~Z)JT=UbuH^%bd05Bv{fLgBu1^WEI*q&6YQF*?67VSa>^l2|k#+WX zc*XL*+i^gT2&9nOsMv#J?PTlaM|6uCWgx~)gMHm42QM~GOc8+E^^*382wm&wMTZPL zxZeNzeC8Tz%YkK3H6StCE`45oKB4H6^neL)TFcvxClm*x(2e=TW{-giA&K^jjc&bn zx|(ht(gU<~Bz-^+H9G^+1Eblv2czgP1Hj1a?4EN)W;Ro5p*9WldQm{KrWxjH#FIt4 z5hGPyD~Wm!dA3f#%VCmIXI<(eWr7Wgbxp46p%)_eDr8byvcnrlyA+t~ zvThl2P~9rv6+K`8`>lqD_~+>38WEul0u*iQrUA=``048^;ZA5^M6#8!&tammV&ip8 z0^w7li$$hhELLF8(2krzUH`h#0uybAN0IvI+K2(m0)S31jtdq51vU$P6-w|m8607R zwbC>$A78kuF?%C|wG{4I84C+rw=go5DXe|%TlV1k!G5UL8D&(e+0ydBUS6?Wik(LL z^&MhW>bX`HsPBR;)ZU^a+t7KNy)Y9WE7*Sv*>*MBA%-}-Va)U{`r-3=YPpcLq8=}v zr+@~syuw}<9kA-zyKxYSX7D~2fi#qv$-j!_>>rdO^{x;jyPWCL_WUeS<_p{@dSCPQ});Cp77O@{z@!KMPi~SJP4X#2_xCCfFicaC` zEz(0G*mW+$PQ-RFd$U2bKdhA@51Nxi4b;V%5H<+HJJ_%Fa0@3wtELMNu~-6t!sIS6 z5kL_q^B_G!LX#5IMJWw(S!V<)sr71B;T!zox&i#DKF|8%rln`w8G_iGDakT+6e9q8 z2Q@s=^S}|pnsbnQ)M6=YSyg5gGn)~WP`)@tL_5ht z7Uj7Zq(F!&zPie10(={3dr8j0Xe@k%v6Z$yZd)Vm8tFA^AKBuSta&mmcQQO27G2ov z@sv{Mv4_MO|B&Rto0DUm6K_)`bom&O%3_z_D=F~yiXDAU&NNm(|6;?ZSQYrE{!;xV zRv$ejox=HO$KQulfmp8`idLbTg$^G;Bq+ud;lVoKKI4`Fmg;^17~CyDsr9M~$z;}d z9Dj?8$-9z&q`uN)R6hsgFVcU$;7A(kI8x*$jpK{@3Ew{MTP*RhxTuo&h3c%%^bogo z+(<&@1&rl$Ml!pIcYNaNu`SJwz5rc!qQN6Tq#U-NAi1|5)Be;bf1t=K|3SU3JvZ_s zCN4$q*g?lON6_KwRt9Q12}eSG4Y-96xM08N=rM+|qBK&070?8wYRA6s!`NZhH_D1$bjR+N8=p);@t2Zi z(jTVcqIi1Tl)gY1T#(jN=*IJ=xg2aqdL1-hVkcUm^R|xR4Jv7n2iH+xKt|a-#_>->(_xgD2iw9NhMvMn%TjJ{26C$}Sww$-T_=*ERE0dIJvp{{X5m4$-< zmwc@qUFhthPWM)~9J8)QmsoYMd!hkUJ(E3@V>4StbyX}D5oXqEqzohV{RW9Wg_IK2 z_3!hvVJtTi_kX5b+30oiVR!d}Uc%PJI@@97^_=1>LKfr=fvUO588TRTr8hFC>`2Is zT3BR>M5*c`L_=scg_Hw7f|yjYF{|R9xVT3(oAB98y7hGh*no zpV2l;L*h9v-%!VP@1MvX80bm(-Z7AjR2ZDRFPKdt`^#+Zz~bRta>wLA&r;ifOSKFb zkply5V2t~BC$kehj8Wd#GcdU$kvp__AUBJAG0ALjDbX{~#$cctRrc2P9gP7IoW^TE z)3_38F$13mL<0mTY&|eqJTp0S&5Q!e2%7^cTm@oX9UWbG(cnh7vr;MObY$<)qml0G zS2s;7xLX)r5Moi=h|Yv}OKU-#riSB>K8Hbn`l9ixPb_8OanCBu%E^ZxK6zJe36ZP& zM-je7E4T?tN}K|`J9g{;ppg(IVm&84_f#DEJ~jl{;bUDSM` zFqbU7_NvGXwc>_LaOS=CGj`=&%Jn+Jwnt=bSQP~Rgpe)L2)afGa}tkm%^E^697LR# z$L8n9dPhcj`QR}wZ;Kj-)1@?0VMO+wpHGkM$-D!PG>*dzh^-+-aMQ9cHPwbc3lV!D zL$>S;NJ_?fs8Yeca)be$3>Gv17AAsNyz+4ojc~OR?x}=bz}z_;mKuH%9~EE~m_+_- zRVl0^;lPn8p$o)+{k-}nwIjPqOC2l^sk^#fnmLLxUnf3sHk-Yr96A($cx2q1o?%`8iGLYzFQ&1 zGG4T-WeSC`HG=>D;1j~&+>92eO8`jEU0VpiZCUx2n9-nKZvOkVgiGR8v}R;Yb_?Pp z8}^E!9fHRctG4j@DNGDqOjo1zwGllo0h+{ z+~l+mdT+jC>Fk+Xm(HqkNA*h`&cQ)vhuR~r`R?w&>F!1=b`%vcNyu@7y*mg?1+iYZ zSr{u&zX~=B0M+Qj3%wIR`kQX$c5c32;p}JFPO;v!)rZFW5NgpinRG@%ey3+(!kM1l z?~LGn;OxSkOlSVxhwcb^y1G2UJM4qMednUzzsM(5?sNqYy!Aj3IhL%0o{rtG*xkXW zMk-pLFPcZ~ja#2D;27%W$7}LqF``mqFBu6hn1l>4Z{d9O8oFOnjx*-CnVS*9tSLzG zWoPo=EvHfhB{V2Fq?x2Bq?tcyj9Z;P|D;ewHnMCD8V2>?IQY#@@Op4dm_=;+GYz+S zvgjO{kJn;HlQV!liU_kUKQh7_w3Gwj5q=)(Q!3Zhk;`>-6@%@$RJc6|ow!D;+f4IO zK|R6l8Hq$vrECg?F`-!n^AS8}gP*E>6$rXUOa*P$G7H=Kw!%8($_A=$MU8yFa$xU) z6J#*G+dwy}e~Ci4@wnNS?(0iy4Qv@yHf$Z$*ZYxD zZ*PfDmi<~s^L=&c*s&!%c-=0n(lzzBu)Wh;<{$=?DB-+#jj>~4ipYm2-LUndN_Iwl zcy=~_dY6&v>7O4pjM4e?=TBGv@0)MF`N=1rQm>f(=ZT=Cd!ktNQL_z-@Tm-PfHM9)C%^XDp323uyCK zYEf}$b670GFsep9-uxhqz_7M>>d2^^dVp8yeMKUg9NPH-!yQQWp1X@(U{^jDO^gpm zc+T^ML^Lsc^d)Ddc|*E#fTL+za%#<+ajoq;ikt^qpgSwjny$sJ6k&6x46QYJskCiN zzFNZ*x#(KN6;l)Izs4FZWh8CW|26@zFiPEyo$622?}E3sV_vY>^0_D+K{khRM?9#* zgC*gj#aS>63P9d`__fEAfw+YD_|!pfN9Tu|TYB48T=9>zH21VsztY*^oxbgDpN;rHjOwo<3+YoLv{+Yi{b^;Qtb4hb9fMX}a+iGAo5vju<`r@SK*q)Ma3reInJ@j| zHz9Xtfg;Ej;=i!(2WmOyseUZ#HGi=0H(@g_D41dc@gMB_4R5sij2DVpo$hN{>Ka*N zh$d5@`5R>p)pFwaO8WdJ(PQMq11HkwOWgeq$LpL9^+r&e1a{@^)J{lSz_KCf!><9Z zJ(IBjDvV7V9tejL?x_fTA@ZLh17#Md^i#;TIPQWQgv$})3bo2idN@x|CQ4(rdZVq) zQK#x0ZT2+1`s|Ki0EbJ&Yum8D zDdTHRL_IAoPm9yl+#XGLG$s1NO|Ct|FF3x&8alT+UZ)Q7tWPUCkX{5AHNL8*qjpV?p;2I1KGb%*@Lgix!WuDa$Y&S)!0l zMnU~)3=M*5TICLnEODo&ZpbG(JHE_Zy;6<%+1vpb2R`z!k!%lqvQ$zLYQAphD2Sw$ zHncB_{uLTupm5W4jx0m4$4pz~Lokl>DU2uNPftTKw4Pi*T!kXF#D2fzbbjEX&-MCL zV*Ue8=X+l7@?D%y90xmUk{F*gPiMpoxFhpTos~$Z#{_$t4|P^QtIm)qsaHxkkfyR> z@c9k&3Ys=74Whe&&|4X`30c6Bk{oY={xv$7kUk$MVAwkVQNRI;brTU7YdcdN}*EN z!0X~lAuMm;312O&X@*%StSsUrqRK@PUnFA|UJu_NFn0}D&M3TRj2{Q!v|2L4MBdS33YRv*L851Nr{a#zh@chmegQh zX~SI4emR{;zqT)(_=@r7z@9;rjLHq}3EW?SQ*!_QvzY`8Wb`Ssz5gcd*}lo7ww}?K z%GNeB`%^BXtNvxtN=&s}lkfL;_<+xtw~oQE>ob3c8#! zM5Z%wrxnn~5LN*aFlPu4Z!`}<99%v=quM%qdOB$n=;>T7Et^;HX1%kAfdrjBkfiM_ z4Nb7Ha>Q8AlYYbPy>`3@>2btc4 zDa+-AxppX*Syres6Ntk#P+$&(9yLc_ERrHa!|m*WxvGrxCq12X(-v<#JboWkV_jv+ zKz7Ztfz-3u$~~Rj&%6QD83Eb$*ZQw_5WVC24l+P^>;zJ7H$0*@fLd8QR%TgxjuSlT zvK}l^i2eq76LfoUNytqwLlRFQT|Z5===cTkA%olm;_GYD^^)Clh2@AlVKEWuHJqlp zUJT6ZP$gmDEGfAOCiklHzAwvokhVwG;Hrl5;p1&Enz?!%9bR%M>kPoG;cYS;5jhgoiqSr&ndOZ@|l2=;X;R zCUJHMZ>#^9$RwWFuU>-V+xA~Al|(K>=ba8gOATYqTpKwN&7mdSNZ6&zT4J$I&Y%|q za^D!~?Zc(~Y-rvvR}pYXM?#s6 znTGlA(N16QNLo7bMw}5<2HjaN@naKGj&1uP|M1g?W9O&v+IcFjYhgYRi?y}kad6iz zSjZ+Lzp$Of`G@kAwir<2_)2t_*iSZDpzHcAbA}FJZZ=N^=t;jT8uemX=FulmZ7f!n z-_@q`p7dvnQA&Tr1&sA*Y={WdFCk(izGikiY(H7=jZ3o?>jt^J?!)CZH@%} zJ5rU2oM1_%|RIL9xiqEw+H83!>hU_)eq9YMLr@;noe>3GNN|8t!7VOUqZtcym z#6L?fn43=b2g=XXBv@wZ>YqqJ;r}VmYR4!VXz{(^ke5+U>?%S*mURXl-I?b~<$5p5 zr7+qaexa)V82h{l>l-NkAPu%E1AB)k)!;Hh45L^u&_|&LdxU@D6-T6$dFZkcxFxFJ z8u5m~s?CxK_8s<)s9nRu%frLF6u9WvjzVF_ST;L8lDR!I0vQyHq`L9$khkR?#{9+u z_q2FJ?p%GLitchAX#>&bi!AE(XpBfyTdfsZ_fAPIB<0uez>Ur2wAejeU0LjAOOfzVX z_!2m82jTfbOpmoczp-~LGir>rj~|`yi}=H?HrGQ&dRYKt>Ol1m%SP#G!^~x;2g1&Y zdyn~VwDz1+bixYuoC7igd|8=r6fyj{Jma9OA&mafUzd%A7qviIS>)z!X>`(NF& zx(b1W9BIF3mCRZVA1A9|;b$-w1D^`f-0i`;AWj@nKihL^r84;8g~S*xdHB3q?V0<; z{4XbCNwrbE*mL^KYR{|Z5(8*p=KOoY7XyxmaM z`6jKhz;0}7t*4k%$G>x*Q~tGuoOx7_01b8gp>fw=hJ5eEX*oy@hMxu}V8tYFUIJq%9e`}?t; zsjTKQx&Dtnm#+SuI$CDNvoc)F#cX8-!ORs)>d>BaO6jyTf=2{EXQ&Vf1+I}{%K5-1 zAY5v4urxSjLOY-y2)KV&x5i+?}811a=Ch2OZEAdmrbWrot-As7Q@-y zx!&3BB%1PSIv(5;3?4J$>QMF7o#Ak&=DxO-jyQVAFAfW9=bg@Tgb_T5XU;k82apED zrZ7M=I+rW8fhZ2}5xyJpsK{s%#V5XyOr|1!KaTwVNQ!R)?Re83h@{?e>LTL&PhC_` zN#@5R{eFLcB-Pr)JgrTwsffH!wlp!zVN*-;FCISm@JakVjC&^^dKPP$HX!h5JHwq9 zBMh6O)gy@Al6`_**87+vB^{+HFs~jH5FjixY4$G#aS_@}I1mTO4{}R#U<`7g0RDU{ zD|7zn70JQ)G*d?+(P2EW%nt7Wp=^7L+x=u@ z(B+1f(At`N2FfXcoI=Y@+2wXEFpLOS-L;{-kU0?TvA7~i2oj9|A{|HqZ6i0aq8MvNoO^+J@j~N@<>6n zY1JkUC!JI+-`!QcOp>Hfg`xVzSH+G_$|xl*jt5+f!{X@P86x^Xawo0ifaa--51l^! z&_z`cPWkY{)e|SK*7o2A)?R?fF5E>907I<(!4U2Mx@r{D-Du1KHW6o#X~w{XjJHgu zOR|P6G(0eG8}lgMkdBXjFdfG~Vu&m~l=wHSaxHg}cGs<*SYed>pq|Tv)Wtq#Zg9Mn zhe!ih03^-$2a65x!p^I;B3*u%(?fNNq7B!A7I@D$4Q z*ttlfi!nHC(o|>`R2U-TVj1%bT2|*~oCEX-UQynzUgu%2$e&Qip~>B|gun}R1)IWOd|t$PzlIsD^XStu1G@+?AfX!OKF zm$K1#)b0FYQ-$c!WbJ>_ZILFB_8n7+;gA6r=g z7lY}Zsdb&ObM8^=>bJ3y;Jy?D8N|*sP2KQaLzbmpA65I3?@zq{{fR&D1!Bn)<1NXU z`HAzf*d^6!o$oed$(He(lCjR7^RXkb)jBul{QacSHjL5MI58bj1C@rL&+;duQPKmseVF^)PhN3Lm3}DLK%HESO z1UZIE1SMmJ4wG;sVn-xd?#^3AN4?7jvj>;G_Q4-BSYlG=;5pm)fqcVd#ZoB8GHBP+ z7%ieF;Sd2x$MLlPz3=s_wdxao(}cLsT>3i7jW{dH@Nfqp3$v6s8(@5)cif4UG>IJ3 zKc(0jCp=L3NZUO1oB~k>TF2lqA>DL$_%NRZTs$R;XUDj?!EJ!$nct!7c zQ*QdINP#V{IhPzY{GFcAbS9UiEp$1A z@=fJupnrQUlOL2LujJn?J!&lH-rwAuZuY*PlgX)tQ4@y!_cwd-_4i-Vz88Q-^-TYy zXoPLIs$dtfassRe;?aSXoMHi-yEw2{tc^F(?w#ZF=U|qLr?1w9uoApHDdOIXH)P^0 zSXnu+jS!XQ-wVFn|_ zBEfGprU;hH>&Efg)|ZuaSKqmVT zEIMI-xNrZ_@%Axe>_%b6_w*UzPx)`WcfuJSm@;x^_UTggiWa>ac0(Jb2*_qNnPk(B zutbuxo3;c>C{s|myv?4d?=he7O}!fsUYqfTDOT3Dnwkf0z~lBOPaRDjMNY4V9rqG9 zKJn;Jl51NVsY^ekATE?%&#B7C!n5yVm8|#8f-u(U2cR+v)&arw6!Poy~H}xA^N;fc8rq-cUP1aDY%+xmx4BpXH_Zf znosWg{nD;|$@!BF$2h;`jQ*5f<^uLmS@uv}mevRY&>L#$`av(L7snvjD9A|-%8J5; z0=>8{$$;>}5QO!`T7;s+Ct6R8R^(o@+iS)fyT}iWNk4onQ7$JQLx|twJa`=6Tt&2C zQPDrlXyVm%92Xm%8YcYtS)=DF)66rFJYm1jHoCmLhs+Nd3#8tq(R*S_oRu|sf z4-O&927ytq57i&4rpGA9B_7W{j^Ei-n38~4r@&L-e$Pj3@4G7AbW_6q`z3*){5$(C z&MQ-QMuBD&L9gCH&V;_GOuq7Gi5DD?C4O1IpjZETSK>3 z>_7FGeS}kJx1my%!f23ZGLRsl3i2Y~pdsu=;i??3sFHe9cUwiVK<({z>opg+Tn33# z06pPzpOc5mSmE|wsjMK|r&?Vx*UgpeC7fHt$?IMR;p_OZtVi$=xh6=*N;bP=tT_wmXWJt{ zSY(OWOHHdN9}-37ujCm)L-N}2OggcK-32}0zMg%Z+N-5&>+9*??v?B4DC!T%sYCLN zIasvzs#v-}2!zv6YC&EH8l1pWCe^DZFC9)#Q%}quXdmskeeTG;_Z~T_PeXQ@NY5UF z*B$HnBe>e#=o{w?D}`%>-t>%D!b}bw`Z(tQ&>{6Md8z)Mym0@01oGA0&<*8x#J|9? z$zOYw;}F-(A$fj{JbzK1x9qnde}igB-U2GUKbC#GVcYSW%uh#(gxw8~J_tQf6sM$V17+N7&&}tTidlY*CHefCgl@}Y@Bl7&I zebx1SV_myahf=$`s(+=jD9NWxt;NanxiR4D7skc{yE;2}1*(5sC?ML1UM<_I$sBh? z)I)}Xtv?XXliCB_0}DC4a8nHW%^MC@ZH?ycZa{4?2m=Ri@RD| ze{siY)qHx#?YF<`8U5Ka_f9@B9m_6d7k9&Zt=W>F5!+Og)*-1ufZ@_2EQb3| zX9UO+c7>Itdf}AQG1C7Lcq^eq+DtOOQVqA1lr3%6L%|I!4OGDkfUfWz98K6a814Y-SjF z@?0-hE*5w_+auMwFsxU}*B^?GJy5)Qm6>|$an8f%0#6 zudATrjn*N`Of`>^SXHo|ZM_4Ljjs>nkM;E(%Ln!s>sFhRv3hi;=ioul&ZEO$vWnFS z4yIB5Xd;$SbeozwBf6MYX8yjegO!%er#ER|O`s^I(*YW)_XfOPwr#_vF!pO52$w-7 z@+tLpapmhg!En^TDWh_tEfk+Up09xgV+wnqr#x}KW z3ATApR2A?M(SA`z0%ivM^{X(5TLsrcR_gYa6+S_0&5g{4t5?+}r?;%Lg#ishd|JCqF37+5gCTR8mSY)rv#l)w=+&m+&R(G zKI968Lg)Q+bN*ee`^LxjwLZJW?l^J#u8Ec=-@hFRT^tF$%D;E7f7fY#@ib@C#NOk0 z^va5S(H`aK5=AU5Z}Hkr01kVdhL>65yT1GMtdD}#(V>YJiRR)fYYAU>JP@!HAKjll zH-G9PU?kgg0O68pR6T|ceeu-7_9Ia5gP#9A=!0cT+J626FWRFIMH1oj>`ReP$@OPmvjPJ{(Z~vpQb4vj2n&tA*f_XIra*Q?&Aw(`bi)a@`pWI^RkaZZP0NDz1!*}I z+?SpV%ZwqGV4FS%^AJ|U_z#$zwkWID(}l@@^~^7j=Ihaxyr$Ulv_B+>J88ID7~Ffc zek~SChhG3G4lL_6E+x`|ZHJd>t2C0pIxn~SXZvny z{nJ-t|0?xM0Tj>vIT|m8^-_R+w2VF6L5sjJ;_?vI4(TjPWtPk(Mf8MQ;4$4KsT>=Sv^2MR%aQ7u#gI2ErXxj@vO#8yP} z6w1+Z9yazF2$xe+@svM3@!cMz%$n@(Zf^M`-j#6nK2K{hhUEWKQ-^nElZn1*oKEy0 zmDXg3XVm5Xq&}lRb$U{Mx6n^pR$)coVelTT{Ji*`(E$;za#WHsKmvq4xOd&1jcj>x z^4M&8Vt8jEyQU9Hlam{zQe|rL$lUE6qwNQ>x#5XY^(xTH4ezHWNiXc0j5;SKD?xyv2xctvJam`W)d+Us;gMMt4Q(0BwB5*4$aLbGgl?(=A+j?9+bf|pz zH#Y6IdhXm-WRl3ELKxN|?VAK#MDkPEZ8k@r)YwFxKvS4JJVmii0qhe0g`Bb$5GPy9 z9EefAziF{*sMjvBCQq^->4<$TMhWFGlC7f?;Y9e>Mj7M=z-c4*bw+Nu>({*<{K3*| zTW1jM*wPMIfY~>3sN=KS@*l44EbIfY4v7>7$U>LLlTO1&=C!ir4@1X8AIoqWDLh`U zE|)Hskd1t!GB~LMa!#c$g4(TQOMp?4Uli3}t6!>LPc9en=G|UG@Q1z7mLrj0+c^~p z;PFd-wc2slWwp~^{qJL+8%U^Kayqc{{*m{M3=AwcjlASl2Ye=GPUnp&LL+AM3I~!w zHJedwD5%hYX)CQ?vH@)}^QQVPq)o{aFbp4{b`Q zT#cto3q5Vex_zT)VE=(`E|>{GaM8@1qIV?QHUR=IpbBVJ5a zF^%x7(fx+n?+W^t!?+IH$R>P2OFpVpKkkp3@Sc`SXvdFP)4temW0YCB1bOylbl_xx zS!D(`aS+o?6gF|dh>)Tr5}9&xT5;e}=U<&V{l4g+yU!I3s)&DZ=k(6`$UT=v_Ikj# znufaf_j*Eu9Ub0KWjST`MPC<6HMx8}!>!}Z1Lq3HROTCBi6&7!cd*yn+BVpWz7$Yp zuB_HU-v^{G)V1n|)D z_$|qWbo|x9zRvz&_r%0W6#wK16G(tR&E>U6T}vS&S_-i-6nXj@uZPBCVmAD{O2VN< zhdL5ZEo8IH^7k~_5uk@g;!%~u9cz7rIV(Nn-mv(%x5+`xOqLMwDkxd(&_!0E)c~Fp z4?J_kUnuyGC}Xhz!N5iwvL{3w>JPa$!y@N%MS18;Q{J52j!Wp1Uap#t)fz!fTvT#p zPgS^3MpcXY^>sDZE(k;QXqSIMby!{#&1`o)T4PPgYXgLY>~?x+gdLLg;-MBh<1ppL zI}y#2RmGmpM;Aa9~@WwEe}b$6CYmz(hr_W(b7~1_dM@#p2C1Ca+Pi5I@u( z$@8i1K?ZU^Eigov=rFuYWFuD-AIOd|12>FGx~6^}kG<4mvp$3O#_ zl?>IcCXx0OnZfv)nMui;;{2!gWk+8(YQ#^(&5gTN@Gj%j^QSiU?K4Jk4yW$A%Q$(G zv!*5E4eb6P_9JvOF-ZPTu9e^<=?kZZ$q?eh$`wa#~T zXEUL_v8lO`jqGB!rX(ms@z3@mUtXYMMxI~^UmZ?CoN*MpiF`mk6 z)y1`nfYdIdLOecK4gszeLgj~n+{65CbPh#xxzU7@*XYn5oU{M1e;keyboo`0 ziK1A+h(rek67#v#x<|ultC1**F`^e(NFfj8CG?2~m#Of7J+%Zn*)cq8zE>`7AZbCc zr4_5^dnQA{HU|3)qc7=6Mh#=&m~PwEbEwCK!wA1%n#|N{f~t}#YW~(3Q43oPD2vR- z)>&x85n|b6MshIsuVNYywj%%Z>l$21CBW#e9s0{SWlfTzUmIg$OX5H6JQ>@xi@Asn zUNhbHMz{T6e|&td{X6XgVtag(JpbE<0>*1Q`uiUgAeD|H`oqSu#H3)FieJIrz;*#* z3jsJ-V|;KWVEM8713}UVhrMh}jX@9`n?hvbV!UjG!^XTwX`Fj-%*Ne+leBIF&H(f5+sx`>|8%W6LZtpb)gpAfz2YeGtE` zP1oiww=y@kGWXVohGhoTL^^$AIz6|wNoyiSALqWTAQJ;Clz_*H%!B;sxger>DV*it z;-dU*RpdgpVpilTMiv(%MWEDIB8wslmhhHUx%gUL$M}mb;y5#v%@pJW7ML5nsk^pK;549I3ytz?qW2&9o2wUEQB7ygrJ%1_fhOCWCYP1 zLbP_V+LK36nO6^s`ru(I@j-Nj|6i>IMjvhOz3}d;PT{b3m?NW~lQ0aCAavJkG z1WX@)EZ&Of*Y-GGdRybmndF{5Nn}*ew4)%_H}<>6Ic)aym6twRz5I2-1+GniPp8i# z(c{z+u3;^~l|diqL1pxT@Epd6+l-~g+*)}VgyxV}{CUIG-XhGSXkC+bTHP1MJWE_0 z=$F3i42~!fO-JZ4!RXlI_`G>yfA#YI8|A8RSXxv~4-se@-{{IRurd2hrl~ygxqe?X z>ibg&D>34C3$RNN!Qn$u7-XJ?ir-KTn8w7T(UZBACsV&ys8%cf-! zJL-WqEDzhpX8XTXQCn+eZEBz4D&Rcpmo9Bdf?BuNMlH>h22}>Tz_cSzmP{(9S8WTb zxno~9Hn$TQm)cvhC1k)%ygd-V&uyh^dDqT^xy4`$MDG?KtUTr|J0PLo7wWp9ma3($ zU3nmBK^n!4c%hFYzY{s216`Jl+5)ztg`vpkt+$fTxOL^Kqq7#b#CERaiSzM?=_>Lt{>?P06shM;m|Hkd@v3t-YrjukkCA!C=#sf>M{5bFM8p%$x>0 zHP|rY?Lo8OJow1Z@7??Jj|{%&)TImU?|N7Jg-g2Mrf52DQkLN;oy7P$SPg%u9H+uZ z?;KitWbn=U=fA%5w)y78gBLEH(idsGLJLPwUxAfYhqqp3=+2{IHN53gi_P=5{aXEU zZuH-wUT_kVM?2jiMgd~KMh5|t#)3zNE2vocnOp|>2;e4U^i)n<5m;nYJ*T*|bRH}u z!GfV23O>IY^1^Te+Z9q%CdRtq4O}_4E zTgOafG8*u=_cZ&We}q&POlcvjR!4$Si+89&9gTzMej87P-OG$9s`L$EA%4yU)hNgkb^r9gH>e z_l;3|&2Ng)%S}aK`;1P_U|C@edLtI+v)jq%wAMy`_4D$$r}CsC^+f!f0#>A5%=-&?xpOzO;; z{<9$Awx0HFu|8RtSk$Vk@nKs_vfG4jEbqmGQNFmL9SwDa5#D`w&lR?+r3`aJvbX7m zPoTLJnnjC)Vtx5GX0;7>)i04JxMEP8D^ruMhy%A}S(iVw7|#-BAF9BR$kgwgOqGe|ooSrfzdjprlbelYa( zOf*VD2QLPfq8;rzEdrl#-P|CoQ@Ix$)4k1|-c&r9h^LSx z@CMoJ)nAd9f?~o9=(kxs;N(}U5&YYizTv=dFTR`V=ty}xntwjnzDkeWDiu}h=(#nd z&0OHw1^o;Grq1J#BeABJ~hwU|rp=ib=fYGp8^xCWqi&N z!QPkz6_{C|a97l5^;=S*uohiWGK&WPesU5eQI4kAHMKn^2#rMM*0zb+QLwdfvGp*@ z+EG7>P(M4qp{y|`- zG(thYwQtZGfK@TEeyxP0g}`&zAJ*>P=1Uu}^L9|jr)Aw6&Dpnpom&RRsn{Z|UURb* zfU%3^ z+m6X27tF=irq z>>sUe44)X=vqWIestZn+{R_EWH@Y)BZ{#(#U2Y945S|*z?6Y;=OS#4*>_AJW zwq{`0cx~uku&`<^B4Yu8kZXJuUO1`@Wk_EI+R7Otr{kQPMCt~NBrl8G{?U37?ppp1 z;$L-RLIoOsP0JLq;iPz8U=M2a0@fi=esboJ7tfOT8}yE}9#jvB_Yr0Yv0j6<0WgHO z5Nht2(=eQ4djoSv<^p@IH~#Ly!~|I4L}IYp&$#dcc2~Be8K5g~htW3(Q*(zGZ<;%R zI~YuiyIkXmK}OUm?4x#2BGnnX z)4V;slu88r#ipQ_r~QFMYAJoYd3#q!Dsg%Uqh(t$1lfcrm<;Rs(4z*q6b0e2#B^%% zncQG$Gm0tP0BORuv{6qf8~wz&uuvbT8@(*^b) zP%YsJ8q*67riMj=Sd4_dt914NejnCK7aT|wdm!cjFMd3-61l>f8ekSE;tqRkwL%9p zMwM;bV@dybtK?EaRX7l6K7vu3`2?~2RQQ#zG%sI9azhJ(h)r%j`aHG@SWN-l66gCO zHbvbU#XOKnT3l_;CRRjrj_ZI#@p|XqEE7;E3BT403w`<1x_P? z{d6Ff>hACF#@j`J&atpmSijn*?QdB>TI71RZA;7smSA2f<|Ub??v#PSBpkAD37N;` zmTdJE#wKsD@8xFyNu^^^RBNQOGtzlco)MT5iM!9A8ua*%s2;iBvwnVpbUt{NyWS0I zQXxkj&WyV(J2~$PA*TqDO6GRXMGj8xNvHQr9-Q8Hcz5s4@k9B(U5CcT4(-a^GCz-b zHXQmI-6ECF<07Q@URZ)?jtHUhZ8XRWGO9cyk?LZLckUdY2^*=H(LB;@#8O6hW_+h} zdGcUnZf7o;JiKpOntj9=-8&vhWqTu$UR3rN-#cnJ)y;=?_2mzZ@9gcFpT8x;&TL)@ zqN)5VF}fP#>?MwCMtlvP0o03=-OWbR&t~?Zj>avs`{dkjK9Ib>PmXpD5B=iK;hE#|2J}Ji zb}fr^T6Ty5tTfh-okkw7y`%s-N)}KfNpchbh!ehToTatNjV&-0B>%%?4ie=fp@EfcUi{fWMClC@1Lq5u$(ZjTEpz^KOfB2SJX4m8! zQVE<%d5!ik zIC0mc$QioETQKk;`HubuXiZ7?_XV88Ex>=yc`L%VLMf8_1&%ra?=C5DnpAr=($aEXp_R~Q+jc;79)s^7gPs_aBDJkuSG|12qA4n7Qndncq|)> zWe-X#sx#D!nq`9+(t-A#p8mG}p7)|C@QQAz-VW~vzAaETvAfv4cT3C`SQfZIqwQSz z68XISx5*V%(XRhWwC(t z?Pbic%TWUNfLsPjF4lF$^6 zAR3NnI(;Rqm0<0+rP^=S?62B>Z*39C;HMU=vh7+_j<_3anWcs_I{=i`F0ovfxeK(b zmq0V@T0pFN3}i6ERDS$gq*;9~snJm4<83ys5JD@hRe{Y^hS+F@lQ-}Six(ML{S1vfFp||}3WJ}!RaDWUrB3aCki72le=hG)XH3>J^ zr!JgX$3V31`rQ&saR`SEK1BV22S#g#5Yc?i1aC* zLr~<^6F660UtQ%e(}0A$)R;#TwM>zp0XwyxH-h`CpAq(ye98OB<%C5bh1#0+0QJW| zc%I8b`=K=G16)b#AV1yxXSeAB#fAlvJ*Q-CkBuxeO$T(DR^okxo=Z+HYERaFe-1=o z2lo7VAq0hWpoJUuJIR2cOEoE|Yh2V8+GJ&EeIcw7ozZLi049Q9%!bzIw}H0STgM=8 zhiCzwb|xcHeWliK|E#6(|&{>jg==1#45OgmjwZ3&z@-2x&qUP0<&LeERY2 z%zAuIL(Ui)ju3t#6diIV;kqF28MsA+aqxHC^$(#Jqp@)a>j?JocvgR6Z#Z)@u^;vG~X=KKB1V_C_K`stAcI z1z2XiP12bkkDZ13m6mVX1OsMqd5VJeJq$9Q&Vo3HA`r-}>6MymR;CXLle#oEZ$N@G z=EpAa)`;wkKvUT+BYqFe@$ z1H4V=k=AG$kOLgh&4#z&x`4&H+QmakdgUXw>g3}+0x}0HGQ{3fm@?+=Vn_L0a z+~ieV_^8R**6iwSYU*{iv^nwC)#dU!n=jvapt(bp|G^2#$c|dHt&f{*kM?ZV6fO9Y zID7JhqDxt=b8HG(TrZWVInhq`)4+gnrVOV;7Yq87Em&8)M7nY^CD$ol4Y(r>41<_ zO6JxGcq9Qu7(PS=b7pIxGZKL!^j=mT@27$z$*UeDniK>&i0Tq*W`jhf}7dG-?p{UQlH@2UPBY_9hxh@kZmlfHhlB_EwD(C(9hChd0hMCz^Q!X8#sXaUH_wJfx#Y~ zZyj{E9QPtwqi43IWwyCJ?D8IOaSwWXz1RByE6B7Y(Y)iR<0RyQX(XFLpS{=s&+Fru?%7-yQ? zDRupi(p>IZz7aoA{O?2V?k3N)+v#t0XFQ$}uNU>sr#wyF?(2Q<`;Ai2s+eIoXAbLr z=^N0sqcKODj9XLF+C(=q`5BhoJTR3QnE>IYd8=S<$c0n|Bz`2(Bj&9_;naT7{Gcbm zjiR1FBRYSVjtAQ|gBO)>s1RDN+cz?@uOWYzX{^Jr`uiiNl=sxgZMQ#x++B|&uh%nG z2V^;lb8c9+z~Rx3E#=VX)Zk;aewgjFC+p#zS5&jGta>*!@QcBV&v0l+pUu%Qf zgvJ=rqZ<>94idOdr@c88yq(I!eH(>B0etEc9T=$dN~qxoDact zQ~U6v&pl~i>S1-iF=3jC8&NMP`7^IMmxcD9RU1#uyeF>^9=e^}q%^mSD%bq5XH zeTlUiP}I# z$vWuGWWpJG(hzpF1wXg}87il8xm?Lu+(y){Zp_S3Z8D6{&1gx_ge8S? zdq0na1+=ipNuI9CU+@fHHVABlImKFEJG^ zDzMu~@5EdPwKR>^!9veQ3n!Rj_8sd52 zz&;MD%$kkea+f*;J~QLBg5et-3Kl}cvL4-YFfse|Y~pas=xat3$@9rMVJSrl&44xd zTAYry710`(SE4dFd>*xsALE09SO)3~A03F3;-5=tpXi5iZ zL$Ms3Q>(}tnp+q;c>BR!ARTUTw3Y#)oH^5c++cIG#AdJmujaQ{Fil3QVN1D(1xTrwZJucf_p#NCpr zUQM;ksP>lo?(lSbw8-(^JMTmZjQ0kU$uBvZT72(pVJ!^aTSer?L5y9EQv4L_<9KTt zU85BrqilPjsG&DTK-VxQR<PUq0RBNsv<)){ z3W!_|K2@58QBCC1rS(gf3d*DnyMzbptP~;t!PBFE5!BZ2sMwRIu#uQ+EL6|D~-u}*LOZaWLPvyFywNF)O`Jth+{aw+PcJJM>fOAK4^CiI@>si_W zN9MJ?6r@4R#bAXiGNg{_qufXejYTJy!;-SEU(LdDrLWa^`5#hq!dk*VCtso#)(zZL z`aA=Fuy9y*8Nsq!S_C&ilj`}7u9lU6*VU#TYVkRDwS-Rb={=2Sl@V-zs-xw>fVZ_{ z+UslSaWy|2D#-Ju53ozO^~-YYVFOD3W+b||{Il?Mu5!ho7*yRq3sWpqLY@UM2TO#U z-Nd@kxJG8~MK*pNbhmZC*m5*H>D%S(Mf(22b{TuwLKxOqqJ@b#gf9%WSfXJ>z|G{t z9$Q#~lp=Dm$qeR5WB6~R{@ETeTdM3WlI#4H%x3ssAgV2_JTJCOOm&SOHav)m%4NXvsW`G&LVgYzUxOW_FA{z&f-96qr`8m;Ub-+vCxOyUbjJBROl1_@(8 zZDPJLl-(eLr@tqmbFstuV>B<{aOA>;BPh8hcTCBK9?MonCkz9!85|Vuhou8<$bii# z)(;3YC?_!OUavZPcrdbTbYJK;mTw9iC?;Mu(rtu$$0Ognl)bb+4k7uD-7h%69vv?o zJ+P7}j^;*^Q~M22ic@n+k3YyQ7XK3SE+u)@0$+D%&4{n zGZ%OT7EVrq1XdJUAnBK}tz8kaJT5601qyiATTwaSBZUV*itR&Q(dH)Tfvg@I_W$FL z6(Fw*%c_<5ULE}rWJW@78q`EbdXy?JKXc~gIX_uU1~4+_pE3UA#F}e3@*q6O_%nzEGbq=M0K)2; zDIpL7e;0X&oRxAy+5Qc+Cu%XwWRLoVsEk$!udC9=#s)N^YK5z8ODm+QY=Qq3VtG*B z6ac$b0PG2}ueHM6Ucs-$!$C~P*86pVhQQ2=SXV|1ThQF?4 zL`yy``ZdW&OGuE8pfg^!sEzW)-a%eJMzVboz3P-Ahf!e@-khWFS4&p<6U1kPB&QUAwHR{oEum9wVr$6f3KN{`sZ}!B~&JXseCwknu4rB6UsW+DQ8Q%;A z$1~$6U*FrkYrc6uQ++i}bw@|{`}&>fxTpDpJ=M4NxTib1mX6Jj`bP83%bJ_V| z2zg@}4g9~ekI0tFNpGYcQ$1dVlnn|1v;l1nnA#k)f+DEmtx`xMTZGIQhN|2ZTS5N) z7!JBIfA+{|nQ;u=f4-ZEUukr{*rRtpQ<})F8f^-2K>R^*9+5nt4}jjUM@| z_J%uni}>-82E#rA-3i)$}SxnTj+wgOv~ z;K;>8wADud963Y=B$+6#B#ZDBrTbICklVqEJ(DC zhiDj|M`1i|BDc4_O$JEt{^ZD{nGJP^ASh-14IX7cPD_)6J-egPet)EcJsJGRM(6Uk z#d2nAr`PDvHm5M_ReR`4*vu&?r)uvWrAS&aWC3ac${wq0eSMhdFruN1JGSxpA$Ji! zEN<)itGB14^@Zx&gK}*|ksnjw)SYB>3N;Kovb~EeT z(bt0I01cjd2(2>R#xNe7532Qu!j>x0)e5A}6$mXAwP>zyh=&PpO~92Q0$_*cKs&Es zhw3_g=}ab4B6bLvuc<*U(D>&u%bdq2}w zNi;><+kLKsvg0$j-gnfm>FYUI)zt4yQ=a8xMlSd*PkZ}o&OAKe{hy6}34mQydH+4< zymhwByxI5nW_gp$O!j0ZgkhM3u!j%=8DfBtK-iK97$6`-9EC=Vh!7znMnpu42_jXB zlu{cJBSrs+lu)FUQc4j6rIaEfrQ!ekec!$B-S=h&B+SgcXFuQh_Vb-{XSermST*gd zo68Sg!6wb&O?8n>U0X@nDT#E;*Gs?H7I|6P9D@x4l!6U{Tb2jaQ3^A?BRdEM907D= z66poCe`D|QYu6sXpZYz#zkj%V?OLqRMy%B>SgRytH1v7k9^gb3g3=gIRO5Y_4QL)} zYjKC!NMB!iEv^VSt~c$=;>)l)INR7aR+cOsNlUQAXtHb!5FEjb_kssdD--_86Levc z$67FQF4*sc9k)MtW(1fge54P2gkQ!KkD2Pk^zj8G{K8k-J~gfF*=MUY-dNst(M_OE znHYTAE6fkfUkWEm0Y4jPt#xUfXkE(R>VS8Hm%G42100;cWXZZEOD@F0fYH%SD_5G8 zD_35}lyyr?3DdT&;wOD2BQ!#CI%qlrMJF5TJAnASKxu9bjCVDyd6b7+b3NIfZ1}Xp z(^IETsma#WwoL^?%4Vu-vo2~&3XVNAFN`g$DsQY#&FYO!t8cEZZHdQ9Yzg2q42|S5 zKx)7{&O683>V271fDW*90K3NdFiw_%?Dcgqeo&WZiURYI3=-)Gn~L?wjZZkrj%VyK zqlLM1;`p0ut3&yzU)%xR2IyDT$|#nNqnB>fz%D!_jNa-KGsA91W=3|P2UnV&HZo&r zbyPfim@mM51Yt9vOX1B+ZCDG>TGd9hb-r`Ju#2h-bXdsr1Ed~eEd7pa zZksx9=8`2dOG+TUdS-Rhx5g9B*pk?chNh;5=_S!v64!c}hWe?Ii*c^f#Y-dUbOg>} zjc9#d&Q%7!Rq+?Y+Jr{f4eqhxilI-xji1#+X2#IL%f$v5`1H^fZ{uh6(7~sNnn2;C zQ5Y>))pF1%W4-W&N|MNYCzHHhl2W+FCrb-@Jz~7r)l+YbVs#Gw7Myj}H zJNK3)_p&U0k>8&K4)|Sgs}`Io!)bUp*J2t5L-eh~Wx~4Y1k%mXL0sv;?5M6Zsj{2! zl_7Y$j5Eh#L$eD0u0BY~UL4B$ezGR=sj?}|HdFqC8=zx$PRl$fT~p^bFXvW!Xr-$W zodbKKTfdKoUg1zut6~5*FJZg4jxj8?9X+ZtLZ$&M^Efy#ev|4?EbQqYp4DC5kZr2X z4D{BScntoZ1#?CKtBqAn^3m3@ZX6%PnZbT2Z%x^T-!!z88y9Qu>78~g?!?B&gMTX* zW&Ie3gpJ6Q5sCH$0r~D{;6Dzh0NGXyA1Odjt7z!ReV|(Zy)x?POoV#i9sxCspo0n8Z!W(zalwgG%UVvnAaQ_`Ve3Cjq)*rsKaft` z8sBun)Og3#j`*$Gb}1y~N=VAUOQN>D?)maYX0fuxHV1WwE&agaA4GcaJVJeQKTq86 zhK0glnX$eD8~?E357_HrK%Jaj;UE47f2qJPGHwJp%YHIFcF!oZrJZ$kPzcB`Ja41* zpouW508%ixp{xhP%2MixNEyuEDj3I&7eHJpX)I%|67&1Mp`m!DhI_O%nGdHe7+!r? z?9k4{AwAQFho}FsZ|Ry_#2SzGRoCO8VTT*)n||0~(`!PSU}_F~pj$UY-4up559%m|b&5_LwAj<{H9S=2?UQ^^h|2Q@z{zrPiF{u$c9r=Vh$@v2B~!jzPl zL~l)Rs;+cuX|lGB2T!_1$GPCQ_fZwj2pMm zkMsh*y|>7P`LE-HI6Ju{Ri9O+Aku9F-Vg3M`=?V4j+M!G9sR#C$Omj9&I@2-?j0WP z?C__9`&Htj`%ucu(y+^ zikVm+&tUvG0|X4ht^}w+JkR*+e2QR{6@Taxi}D$SV)piBn>K9dKOE=(z*zhZDw2c2 zD^Z(5LQtHg&dT5Fcpv~EkEBta8v2l|drkBp3@zh-8b#_CLE zOU+eHHA`n#m2Wc}C4TSV`vb?N(J`oO40hHSVc-fZ^bq3c^m;qNQndaP%Mzb^)rS%()4O+Vn&%D~staAx6 zwuBon=6EIow}Q2b%I>GcZP(+xIxSkBV_TJQb3#23?gf9%>vKE5(bafQvx%3)W2Zx? z*CH&b7JqrQn)%YfCpzae?rDm-c?W5;?))Vs`!65l^MhOPo9h&e7fcek3LOwB+Kk zWi|3`BQS+td(seNiRh07*A47`!Z7ePU~9S)x19&)h!|)jmb4k!I9fYZ0Zn}JQbi4lmCm2}=fA+%fhAkcM%a9Y7kYYU1Sl}3{ z*O7q1@@ol14}eH-G6RbpG-s?m;)t~!&FRLvq2Au1+M}z7GMbWU$fcM|maJLQ(a=&` z*E`f(JDi%IDSFT0=Pv{Xo&jDC-~x2SCC2z?9u5i(z=Vkt`j^hRW_Z>mv#*>zJ64;X zbJ*dBo1@M;X~Eaqzu0b;%t_bAW+Us8S;N;L>qp2-#1=f%z8zcs)I-$oMZX@`9I#bh z0JOt1bv57^ynDFp2HXfs?rYVMf$;N@(8fl`_$?Y-j@&mkdW%LA!?)hsD_=9A-){uk z54h0YS~;r+M#MeT5wW!cj@-k$raa#k4OTkqzXyMV^kU7-tdJF!7`&9Ow*J->UTBoF z(?=xjY5Bb@^jlNRj9ft)^uZlVjH2nrd9LHVlj*mh2OeXAp0Bs7bi{CP2rSi(oaQjM zuA6~ODAxmxPE1#kzH?x6;{Td1U&aRV=8nB(^G4=n&ONc*L~tP&qA4P#{KUdnvoVsc zuRC+|n!5T-#M(%vzN&TL*o9}v>%pJP1u3V=9Vz>9iPi~2GYxp8nK=|Z9N*9#pLzJ< zGvnP2iLwMYs%JUDc;xJx&OK)U)WEyT0>6t$BxEeFK=jio&RtnAO_Y97#&$Rb-H#c|p zwfEPp>FYb>PwS5gaU*KT{*4P@K|TBtH&i{4A3x^DZPVM@+NZa-wJ-hg(zdpOx1TYc zDQ(C@iSQdKfDsw={L&)|J$aCxGGKnrh|8I){vKMNI>qO7j&;u62vl0!P7O;r$MFW^NW9K8!Aaqjb+_Xia#Sb%@{}J z$$N3`whgj7i<87Nyv6XEV6Q!nV^sq@>o8Xi4Crg{j`O)--1#3k*>c27q6Xi}D^Z7J zVrH6)*5XSy(`>Z*)Q*^)ioe$Xn<|fH&VNCH+c@1BTx$?5o^13;7<)*40*FBe));ARYohXfEiptHZFDIeJH|;^-CioI;jzF0c zhjGv0qmhGSkhg7q7Og8UiF2*uzlKf3TWM>>i)ulU)4+db^N!?h z1TTsO1{~$CrN}8!rw2h{s#wog$0cwF$llq_PltjpnT>}ZKG53R+gepuUzus^$2C_& zZQbeFU6u9e9yvL2a7zDtPwrk<9L=9>By6$`ui`@80*>#N!x zg|555`QR`VbG5|D|jD~L|o`d)L8U~S~x%$0Q}CT+@mPNB+D6X$F)*b znP8M>_~WauZ0!w($cO`|0j-@aHTA(D=T|K3oHeU!4u*%x^tQJB9Ag|Ak=0O7w4Uik zNJh`VU>%|i>fuF2ga#9`Sp&a#x;Jse5eI*_emm!63b*^Z9-Gmkjp zyv1|pEVrnKU+zwqD|b3!uy)L}@p_(X#$P$!JcvWCb)vcIU!G;j z&d<~hW(Ohvz_NNk98h6^CG~BnQ*S;rrqS9dahtRi^)ss?HP+UYG)8J8^MR%e z!r~=Sdv4EA)Gk|NlU=bi6eiha*H zz?|9epQUjs>>~U-&)WpgUO(QC^)B?z2B+sq$xZl|_EzNTT_SJic$c8;W^W6AuSdxf zyme@kDHq_0HI79K7onX?Q1=|PeHl{MA^#{zy;S~gM*2A@I|nVy!rz7X`KXq(#BBKO zNtd(nJD9_$^nD3>XP;^0vBg=Si{ke3XmoS*hUh)f zN24!9-;Gt`zJMjM(_@#$u8-XndpPz~?A6!@@lIB~DMApSUz}bz+;n0k#59%s1k9Gj{UIy)=Gv#O0Dwh2Nd{se-mr zfl|!xz-s?N>jdUOQT@ z49z24?<=VP=k}L^b&x@i6?Vr*)GF>RU+c@*<(sT8-aD?at-wr(Uxdb}lqamZ0I4d0 zTB|%Ur5R6^Qi8Kf*+=nQiGM9v2Y$<|9F{d#hAk4h<*37Vww>{Q0}lj8)9ROC#C!|- zU^%XM1?mtxJJIq#Vnk{DtHa-BluP;TXV6nSp1Fcj%RUXQV4{+QO1L!3P1bv;XYYH` zHd_zP6mOhk1|t{Tv_D7x{6`$DMP94mF5$>}6&Pd2{s#FUGctQU%6!}k{l*{3L~v`t ztg7u(fcr!}=?bUJXLI>!%z>-JwQ7}-XS^1>68Y`;H`%H`jr_@A2VUZK`#OgItKK0SBRoe^D)Ht?NZD~~YfnLH9#-TyIIZVCi`4um>wt0OI`<$|VHC!w z|L3=>z8QL|&D4QQ!z=<|UvWwcS?YZ=HTwNyUWE3 zK{`-Awj1y5m>)SZ_^rpd5FO_fl<2lk;2rdXGL)-T-kEsMbAYV73GbC?jeH;2Z9XIW zO#H$a#%1@xiU~&4FV9nu(_~MEMng`S_U?vW#W`-0zf+(|ZSZz_Kk;5QWoDK+#cVM< z&4cDy^Dgv~0Xu3hwKv*(p_{yHKX7$!mOBnN?_KR~bw7lL@+uUirpUa=vdH<7vB<5F z`y=}zFGSwPXOWts{n6p*^5|L6RmP&%M{kYZTdz1iaj6gBA%KKM=J0%~# zYtDYS;-q}`#qWzZ8Lk%bg3_}cd6Yrz$m@}@ky|v{=P)ylx&bvgzXp^mkYe7ypikB+ z?ul5zv==7HufP}p5yLTuM?p*?hEprR2pr>{mEY!PL7qeTgOc`>$R7_6w$6FBc>jd_ z!nGp4F>*;{0A|Sk3uhP}(Tg(g@$(~x>oO66M;?Z(NxXoTXg-HLj*PGkI0tcpaQsK4 z6^@FWTxO1&4#>yH_gG^14ZJX{xHfWj+eF9Zur>5#wolSp5;vVs+)u(>H%U(1d|{HD znAtW-PSpIxBsmdtz2p$~Tu;hZVp)xsGG)jK&y<`hO9;7}k;9p(B;#LSQkv4DI(ZoK zW}iZ6`_ySlis~qCV;xMQD2H@S3~V=_holMCHLx=X=_Jy_W9AA}W8BXoy|8!ArpoZH z<8XOmK%*%yN+m9}+TS9z1CXH{PJ#QeUdDS)IDR2-*@HBZI-vJfc}m$j@bVP?HG>|B zV=4PjNGZU2bB#y<#a5L&mm#Hq^31j1*ul)fzbwBKu6;q$ zyu?UiX<}94ti-0omc&?MySWYCa`J1+X;K{Z4$3sufoV%puU3vlOY(0}o{;7Z0JLYQ z&lK}brjr+d7uiy*EZZfMhVqw77IKHJ(i$Eq>W0hic#Aa@S9Min0#YI8N{%1soN03c-e`4D{~Me3R?m}vi8}JdfLJjQe$eRSu?dixPPIpRea_c;Qy+2n^ zF^Tk{b4$7P$P3_4?T8$aW8sS2n5#!FLP)5ML~OW9>Z#pD=#k5-o>^tSgS=o4TnWlb zVm(&F{tNhap7sK{OUk-QI6Cnu=#5wm7@H%J!*x^~P->R-H#Z`uLhwc*&6Q9H-Ir@E zm@`+g)x$^S3R(+|z@CPjLKylo!u}g%1ZPQ|MKMAkl1JivqRd+V+`w1+T1iQU9<-8OGuxHd;9?DI{*Bvp~smeNY6tsXGNOtB0X5C zwCoXbUMcTNq)))d%vT`i!tiF94E)(lRa~G{6KmLg4XJq=QJhMdok-=}h!@0vjx%i* zAvHffQaN$#)1h`1Hq>(+H;6{y zEqQ|GXO!UEUMkoA?CQ z9N3VTnw!l7<{9&jP1#v?ncZZ!Lp%A2eb&C|V$e_K!HQh#wz%uv9qs}5xO?6maPLP- zA`Ou&tjWdjd5=cc*o!bLdVn}@Qa7PX&QEP?3f>9hjBP_H%GP2XK*b3+nZ4unm*svldp*oP>NzC0fO#DE6y*lWE1ER&x=@qz zrle0>%HfInr}o-xRYHtk6XiDlhPvbX_C3;;P@Je`v1jeY$ek1?%#|1?Tc%D)+nsWm zo&(IzED)YbJBbpRx(T&{l)DD$8kF(B2RW z(0&Tsko|LI2@6O#dm++DIrJL&7My)qxF)qZ#VE*1`#bP0ai8%r}hrKk?V0io4p?j=c*7*CT;&+N>VmZ^M6%%31o{| zAy2e<{saCgQt!XxuWC;V;i=l;Jpjw_T~h}O=oGWr++cQ_eda}Yt14`lU1*ov_4W#I zn_ci(Jp_B`Df@!k0K0-V93e-%2=palcHl*1Ph4Y;<{KDexIAf{e48tq4Xx}Rq;%t* znk;z|Tc&kETq5p8&F+sW5wV*Af36iJ6QSNI(BeqM?l9lS-{L+f$%7v5{mA?XBKj-F z)u#+66>xl$=SIwZC{x@w))g~tu_q!g(7MP$NZEm9GYxsFv6H8$h2>lP_V=KYZor7M zRrpi)Z?$JiIfP_XX3}Pv*=p`KPnq|D)l1=n-344efSBk3SoT-DJKa8a z0K3C8;Ca0;w>un(cEF}z9o-V$5xp<^MD$ezSG2?iV#{M2V9(zkdnopF>_FVco8og| z%b$gv;T`ea@x8F)-@t9T4T*kO@TXu;cx&Ru#GQ!;68jR*B@QG$NLD1%$vMd-IJtFx z@`~iPw3oxBTR;`z((FquP2v~zXyI1idzqq=EJdzMj~wL<^(XqB zYE5fV$$Xn3>mRkM4DY}S_f9E99hWwv@7>3HH7q516T&4~jxP;u0y_JE~P)=%2lT{6CP|YLv5~&j!p50>nJkbJdE5h#8l^2{@mp@BUdq$ zdnKgM3c-J|{M^^2Zg>wRgjMFJMJ-cfQ`-z0mb(qPI#z0=d}7Ph_zgO<|AW5RFa0#i z6>{DMa|qJHYeW5p@&z)({0;KLvnj*7FG% z5~%s6?AypGgqFW+Yif$>NL&d=XdaP%@{~fKBS%+Z+KTFs+vv*8MvklxMx|WGj}kE4 zc@B?__z9?(qmfP+5awau5u>KUu%VnFcl%LMI%frZaG#cR)rlG5LR!IUnKaVF{ZgJo z%9~>)J-;q${WK#sjlLD-_k_D|@3>DPJ&fmE4Xlp&8MF#M6UV5z>Au`gkQyF6Ia52L z40X@KhY89@JZG6Yo;uf!D;x8i>4s)P4iWZqpNF(O2dx69X!p)S8fTsFDPbN%T7IPJ znYpx}E~CGi5x*F2k1+2t4?))n&!^1%xG1I6JXn-cg8L^6Yb9~(L}5z8{HQ1;ZvP7@ zkTCI(9;Yvv%v^*A$X&N7?4{{VJypFZ#RpaknCT--N&+^t3~r3bAJNK^YRa7J|w za>XtgQ-k+=NhSZIzmL{m3L5V#SY>TL*RH)2Y5Dr}p;eh*0A{3nN=?xf45J-LUF1xP zMXv&i+LpW<#xCSbG~0LZPFYX-VD!O*@=h8Pd&!)PcjbFxPug#bPRx0=+CRv%`19PA zc;*_@TQOIj=_^Z{$Ne(EUPOt~9|bMcT?&hl^1L3Asw)s1dn5MD_91fjJyT&i%sjIM zmg9Q(sIG;V>P|#pK8#x{o;1(d_W&dHD&{Z&Bj-BP8bR;&e}S0_bw=%x_PI{Xr@f!G zA0TafeqeLIhqB|_S4hqmp39y8@{m=6Hr+<#aNb;5ww;TF!ySY4L=Zx%QK|J=X&7Te zu0wgA+lev@g}T{8Zgx1MobXHfJ45EzvO+4uz*Fs?@UB`g@jPoz@$>yY-7dVVcaCey zXcDeCse>G)#{3fRIu^x{UxAi__hy^H`iY!^XYv2=oWVcfll>#sQs(R~!jq)h_ho&# z?q?t#n0Mmzd#A%Aakuy#Q&?B}9d}?opD?drSF{11$02)+J;knZmx%{}T8`?tYNd;{ z4=AbsG_>nzeuI+K%OG2k&vl+4qRULhC}=0rB3A8yvnG~O29kfIylqm3X<8<)nW}dR zkxK3}C_@Y)gsDFSx<<(JVtR}EB6O)Wv3#&|W-t?`PS#hm_ie0DzNcUZjcrh_q|G$s zhi9ai&-OX)X4501%g>mpIj^=enD=D;{{`~GJyQeqXKX(NhO13ejN$!~lkYDV3uv-M zIYA^5?nDArgy%qP$8Ir#(4+XPI|4tJXVP*vzOSmbI@a1A1dho_%+uf@Y25ml6x3H)jg>D})^Jb&44U?<%O}z6oAKicorP z#u`Vj6L}NyY;Dnj=(6a!(W|37;ak~<$oscriC9}~UhKHon%L&pwotsp z2l0w{TYLuM@0Z2bAYx)`e0%&>#7x{De*{qzPsN{)zhZmAk<@EO>sg^m%4JL+e-q-$ zzsVI+b~f-RU!Jl@?L~SdS&lUC`@QW9U{SuT#^1BOpe(H>uFh-tDfHZFOT-bvP&l|f z6zh<0O}(Aub}F}I1?}{LGK{q#ccb*laVPJ0xiW#DP(6sD_&awM%J?(`jG}H#o3l{r zorN;QPtJleks~D*QZkUf5Eo?^2}Hv_$)Xqpo6VIV{5eY9FUslHcBr64&aRMoN!+h36kF@|%MM^nBK$FuhEf?T#p zn^-mZ8auNfm%UMj`Sz(!VGfPoQ>2lwhJcPk%F@1RPc$}g$1eV zd&$~i=+61x$Zb=$ryz~ex82f8&zB=tX)^yJX^ht7>St)3xrAR%@rb%*vw5MQocKJ< zKO#-M4L%02j+iTvck&o| zda~x93-XiZ`GWU^`E9{_-14TSU>q5*(?y}#t5gCRS#Vy6#6<`0|G zalUQ`^fcWcEJK{+0>mP4fAD&Hhkd~Av(MSr?0bkvNFgR+s+)tj$)nsdXakDr?#3(L z{2nDJ4avy@Ii+jO*emXFP!>(pMvhmSmoRo(vE(r1LOQE}Hy(=IiRugOd;cI~R?9|x zu3QI!f_JCzH(EPI^D;ApS8@LAFJviL^*sh-QCmqYGkXNMfR01yC>Y--ksfgUa+w9& zZE@R#UR9$Z1cbYq=}0A{)qW$-0Df8W0o8n{4XD)W0ltts6s@)SH>BqK;~HapW>9F9 ze3@fZiviqW+Y-ei{xJ&=OQpHsMXmfl+GOgI-| zUKYs{%HwCi_$`fMPFLqzR9Jn67e(Ig#?UpG2A<)<^__N-%X?U_O zwztA&ebtpgQmt}Z5j*!7qWc*IupF`dH%A_Tt@;i=>N*GKt}euxtKHGZ5d#p3b;L$+ zKKzQ<&9VDqzlyyUkH9)zfV1J7;@jeP#2=179Y265{yOacFGl?SCY%V*@BhD+crTeq zHYBsjdCA4eWy#gabCa8sS0}e8cP8&h?zUyX_CVSx%zH3w$uN zPgf%=9IQ3hlrtr+=GwF;`DN(+(>+!lRS3@JfUH;{yaGAT84(6wK^el6eFSGn0uCAI z4zEqn4%bEZ6scvTFf-zSYGzE^3gzeP>)LQX=xb<)t?9ZD z!XYk5jEMrDrmVV*Ae!?ywwgTR`@IF8bY}_TUKC_27Z1M zx#LIWYYFa)$fZx`dC`RK1*VX*B0y1VO(_ zzqIe^Z>=)_<>zU6LOSPLahD)3z%}K3oGG!m!CqC+rqYB`djsx=3F_tP-M5|1hEToy zx{40w>W~+}R=Ex5qCT3dp+)595Y`qyQ;-un&t_!&CnG*61no-^`nSj>3bq z>wBf(_h;RWzJ^iwn{2fG5UQc|enQKnKSs)C+FcydlyX)_D& z+%;6JsWseBCI%}%PPt~hbLU-awA%-uxdr7b?f3DP(^TybQ3k$g}<(90e%(We7thh%!dD+14a4}#-ZH7P8Cj-nO&xM}s zcq)K-l(?!xEA^*Ue!4c)V!rMKuq^F%YCY|^m53I0(00ymfLpA1K2_7FVn2NhyXnv2 zRxaE$2JQ5E_*b4Vuh|&9E5mjb?lIbqot1|Xcl`=HD`hSXU3IZrfjf;hyD{vs?7}X~ zL)d3|#=Yd;aPQiOF#_T-M@wyu``e@);+n?0_}T(SP=#9x_~!4%qeP)REZisfAAg+# z%dHH$ziN2g5#jzBSAplCyX@bJ<~8vsa`u&s;8Oyv{0KDmjFLBZddqE>GF)-p6U^;& zp_IfCz@~T@{Z2M-wNH-$G;}42yQEF!^GZ7%7_)i|CW0K`=csMx&pZ=b$XiqsX)f`;ED?E?ZGdcz)L7hLFdx zliF)n!`t(qeFgs05w{6V(-UW;zKx3zBRrJyQ0s>--G=*FR>zVVPbpY?!=>s7ZdL%>kxImEV%&@=XWL_ z!B_a+Dk&-HC|OXltYm%3l_fWp++FfW$78kn_M}~@{D|5L zd8z6dY45*KHXLIfKwm9`!u5L(l=jhc|6fFm^Fsm=?{S zQ0}84q!v^!dL7?yk0AAmzP{{4jnN zVWpXaeA-|WoFXEu-9qG3Pszo2Ae9`ICsEn&2Y3r(On&uLpBzJ3-W0@nah<5usjWrZ z?-V>M*A4VOuCM>><|DUwZlo2luiU%|bA3D0F`A^fZeAl^j!`f|g!n|xrJ5Z3P1|iq zn`GTwAM%P@4LIb5$fK-M{1m+kJy7FI+iRsw?zt!r2}K`yUqzZ~Q-mn#Bj+V>L*w!& zGl*qr^Qm!p8goTFTZ25(8nuEcA|(iOwp-!8jWlA1A0dM`;smwewD}X>xPltZrfWvc zAJV}cio9Y>&^67N_n}FL>yg@pms{Q^l?4nq^8#DI{scMXkDM_fpNlZ|zJr`F&gN(w zb$D-}*5N)d@d=}IcRa9%$hI zgH&Q{pfRXTeru=&LV&U%?G8gK*O6~I>&<>1soc@zs7MLyp~?&)Rr}@&aXn#2n?E8o z@P{b>ro2BH8b9$$JyfipcD(f>n1e4N%)3aVd?Z8&G0=(qJER5hBA;x;C{9FLfcw<5 z*z;_p=}wUDUI1qHSfnXOg4DB^U1#SfIoON)9m3LXFMacE6^8OF+DuZ=DnidY%!oT+mw~F(NTpgG% z_bgH_E4B#hawI3=jg-{FvpM#!@y1lXH@ab1BMP&$c~71-_UA!7`?ALIo(o?;u-Cv& zQ4IgN*eDv za0?MxvK(i3*TYV_)UCiQ$?G^8wdHglgS1EeuhAWk--H_PT_VnsmylzT=Qf*5kQ?kO z5N}mKCiei=xugAD^`L}z;(+mvC%4&0;FlsKH8Le_uR|WOfw)HqQFo(_0nEmjRc8;6 zS$Cl_ZYA<4J&47`4bDleql`Ogf_nZuEbqlr?Mi1r&ZN@xWbl__2oVPRkghx0!5#wj z?Tk6BAe|aK{aR^vtkAc@F%LhU2oJ-LZB#nmRzvc%+AhUAM@@Q#j&DB1 zyW#{P5VOZidD>^>qRnPAXf_8+cLL~<@hq^2aP@vPsOgr0zUaMaw74=9v*k!GlQc+p zw-mI7$O(58{-Q0j1t&Z@rQIwd5LV#)+y;9dR#^9Axw0xbF@DRtp2F$EmjUr7098UO zh-D@Y^PZi&e)tRYPi$`S4x-;QD6JD-&`YtmvJYqQOH8jhMq>SUnTO2N<_#M`?D#yK z#$Ru@+8y>D(D*Yrlkd42#EuPty4T}Io9o z?KY(OCp7>E)tpX~wEWz_pWHgBtNqX}V6@H|p){^E;mmUz!TQUJ*e@Za6_l9s*w`sj zhL))6_$haqq-g8HUA%9A4{0rG>sjb0vmmK26-oW1cK|ySb)ev3v%;K+C@)Hkd~{bF?>Z`CdJE3vPyzuz@I#39;+^pFBiYU6kQ@H|+<77+ zxc__`o|N`a2e-yN?bjhCDm{E@!<`SvtK~vXmDo=%74UxL70TfpM%&@dvn#+C)Yb}Y m9`!D@I%>oPIqs7fUy#C;Z>I%>Pef!Xl#I0`+g6>_337f+&f}%PDooszE>~4?#eT&DES!LFJSfSwKLj7=*cvv->wk1p)%5 z4*~)$YkFmjV{K>jty>QNjwS!YkAJleHU{qB^=>VF-$(Qxz&}CuZ4GQpzB%A`JpJ8A zUp%>AKke%~63Dedqt{*>|~nwvoQE zzW$zJyb+Uu{*(mWxY3@zK4>J<``0W;q5<7ZwPZ*ny}myG_9k}czm51Iq z4~EVr)~3$GnHdJwCb}#n7E%@^GFDO+auPBYG7%P55>gTt78X)c77|ic77|uc64viR zR#H}0mhYIAq6&oU)ju3@vM32U}wW8`-K0IrscQP4Ww?FSqBL!=UWUEx zoL-m%CK357PrxT_g+ZXI0>AXNjLI*HvH6co7v(QM8;zn} zZoc`GfGCxyWZ@;hWbfCxy9s;3o{I|8Inq20m*(0TX{FzkDj&qZGO&~f!;8d> zs8_@w6dLM%iyv}`ibZ84mVa+2j(>SFEc6O$PUF0ujm-Qdh{CdixURh}ea$!%+9a+} zDCI&>oHbeB1#7V|jGH_L1Sw# z&ZNq9B4?9#w(zoi$)}Oz%YxA_2XPPziZL%?mufA1MgPtEXK27x@&ge+q?s(jUWk^@ zm^;n4H)Dn_Ctte-J-~VWrNaC@ln^pm%irZYeUVb)Vg#paktXnSI80QwJlO>)cZ=?X z<|5khd64Pj6xXvFa*17|7k}iF-z&Y^aJbpSzd2O@QQ6V)8!SIJzhGaBTG2qNBJM_w zN2Ri5>QJpTI3C`3(4Qg5(hBG-@);SgkwWLSRNls?Jx@fp_bxD)QOil-hXLO$`lY-u zRErK1#!%h08KB@okRt4WCwDn%IG)E@`gozxs%BS zfv{SMTl0G91%spK;bvP$YCdW4OCZ6wy%t!dhT@C`aEN~?J6DqsBlf_UemR(BSJ7Cq?QD)psvWMxL2xD zR4c8OyOh3^;7gq;hF(ZoSX^jYfRj+uNYTyeVeyISNITZC`}uq_5aD+{T}NQi##C zkA#xfbfB$h+6!{I+2c-m*sm$fh1|-VW4i(`4JrnQ2Z{SE{;AXpx@(7DA*b&(LdD3W za|TvUK4cgu?+*E1WGN8fV>f2L)k;MfZkgGpKQsP71yOdB#<@M;?Fd{!`V?XDH(lFi z8Ke?L0@;Y{J+vp~4te;|a18~8m<0O4zk~y|3833~RH2ehCerJNot%-;FZ6l1v2 zy?U`t`dfq)lF(TyQ0$~VcE!h%_U{wX(WdRe4(}B<#I8{GtGZ8XkF;Lh^&<3ieTMA} zM_Pu}^yM*e)rC9Ha;}Bi8tuiyP|;JFVuh%srKPSV^?Jf;sjbX*o+q!4cpR!~Y@Df$`u*_w%(d9?&(!(8>zi1PtNWnn#P z!PQFGQODGywsK!W_f7x>n%1)^=5uON&xa}AY%Yfu2I(Fdj$fr4`8-59p)%Jqt2Sp4Bf}D$xB0EIN>L*Gr!0^ z{(SKGzJq*R3RQtdtB#)DEYWfI`a&L|X;E8mr-IA;ooIPLf3}HR|FQ9iraCNSWU>qL zsW*y)@LLTsH-8G&;*`>e51N?q&t#wA538oI&&LQCEsTm4WFJdqe0rM?g1;YxcUWsG zz++W|ABRmbCoVIg{5dcY%-Pt#ktecnr{n5G{HwR<~2g+II=m`Ws3@I(02B zx+KD3MPv7scHt3^@6s@bhiD5~SsMJ>1y-O|TP*;Jy)+;J^aP^K1Uge z*p2e_M1CGNQP>vB1xN#(5Ua&MLVn~T^u5q&2Rmpzr+-q7w^Q-g$|}`BG}C-?AGgT7 zNd$(P1*=t8bNu%GL!0>Ea_`41cv!YIzt&0eahERpj2;3^+o}LC~#Y4G5_W!0&P-+HC+%y8utuXr|%R@lo8KDU&EIW>-U8z9q+A%tM6W1G^_2ng2_RIjU`rS+CPMC~S8hp89+EuLyL zTVl3x;FV3&?S|k3+wI9wz;@yoi*=Fimz6kA`|!oDxHb4wN~N(#-c5!!t4j*6qVB;RJEXNTMf{4- zB`S?1$}(B0X&HJZyOJJg^f&vgfR>TZPFuNuro5cm-6GI?PI`kA?9+2tE$Lxu`}f%F zK?i8kE0%k7PC0Fg8Zt*xLtnx!?mBPg)d$2(j=75)SnQs^LCHufMBO%Vw)g5~ln9Hm zyL&!L{iYt#+q_;?;sJY+Yv*%_M!TzY$sFajO6Fd{AD(n!)2HbYoeyL@^YGCM6I;h_ zz&01_c?W5i=+=6(>5w_Zk$e~*6xl6^lVp=-!^@phksEcp{|y)4jnE1*z1b(Bap2ZJK%GtwQ3cY}7s!efV8w02u;z3xwx96t zcbI$lv$8WEV*uks3WDH_AId)&E+GUT`r9HF)wJh|bz!@pLi(j8ggtFYa~6bqucf0C z;q?n}MhDLaYhJD_0MdjZz)!B1?j=qQv;5&qv=KgU4!zO;_@w03v0LPN3F(AVx<5Mo zaGI`ZteVKSY2KQhBZ;qh@`AYgy1u-$tdRd7RUUF)_Y2!TR*fDizi#j&&ecU43=2w! zE;vvPqe2_ahNq^DS12Y~L-JgJcn&r@cfg98pZWv+Rpyb2tjC#SU_~gk?8oRIsrJo% z-F~}^h2$Mkzoe2`ux`XmwTbn^CX^>l!h)_eejvj0$#mXHvUIX**QabR0ZSdUxA+XX z6S$cJqj+DHwNh3a+C$j+NKdVTmjOJ@EnX8Hl*x>O>TCfTlkPzVdT!baYd=L~>Po!M zCu&aQGYuXoa;r{`GuLl`e&I=P?Z}%%V`QrJuJCNwZN#s)({&?9PHUg)#GcslT(x_4 zWAuwv1U{v@rPVW?SL(vE#VM9Tz~(flR`Y10iC@FEwc7@G#mv(D_n?Jb(3vxZfFkR2 z3U~*61-1fnPJOVGu&3~{GE&<8FJ7uxIn1uc@y0SQe!H@)-@!FuCXn}%d(p1nA_1gp z1vnz;p1IoZooJoT9kZM`j$MzhCh^Dkau|~3za zmYlpnaLQA%QGShMv($1BU)|aMmsqFeTy1TYf9Rz;g$Svf$b4Kj#**LI26;5v3PCU- zQMC^G`T+2sQHAWTErn&{Fw!`zhZ6L1l5b_$$OWt6N71ZdA;qEzqw4Rjw|a0f7a6uV z^F02*@gCY|7H79Y-R9A7Ms+`}LjD~iWNIaaul_8BI-dAd$f*M42KN1cMf4M!{l5Xd zDrfBVl2HW-FFQB~RTdPlG?cHAGsN|v&Uw#An=xZfRcBg)TKjZacPr%l2#Hd!^+G_> zpOsP(+zQb{49lbu+=GAI44T`8T_VG3jR-*1a)>ZsC%-s3d?0i)-DAQrce2ssZH1_E z_(n{Q`;YPGN-I(Pn8g@~4tgSI_2Nx`_RFz1APn5B(o>^$1n#3{onusculOy$(|j_ zDJoHnQriVxZ6zhrNMs{b`iSvxugb|HtF3a!Dhs<3dkf(BL+gGB_Z$P&Bvn(o=aq(j zz@mgi*hhzOHR;vi^Q&8XM+C(gUZ^@r=N2-{DlasffwfV@Xf#7L)C*Wo@51T$6IYoB zZFleVrr`^cZPHJl-O?;Ik>2P%-|3>BqHEZ#I9;?H;5p1+d&M_~J`GA&g#~V-V%!J^ zT*H68+TMHy7luEQxv+auMEe4Ub{g!0;wXxpZV}F|2RR0~ow3q7A#uFJO$b%5ts`XJ zwdOszs=09IBaTja%SvoTHTY0aPBo_}JV}ACSNdt$sa?nfiRS0oJvt;?(bQh1slywN zP}48WSYq9F6grfymOu`)c!$?gh+-i>Qqb{pT(tP?PfxH!cE1#NDeCJOwPJ((qmQ$q3Vox0yLKHvoDOkTx;Rd^STuC0=DLAjtjBX6sAa3mKdF4TOT zy4hsC36D$tUJtUoTwYfO?oyF+<#Ec3%V3&M>}QsZA-0sXriAOv*p0@b55{~ld6j^( z5YL8J@W-NpKe($B^%1r@7iA%?Uc$e)e3FYRJit7#gE+-z6x}!eF03#Jdm{>elH#Ic($betZZ$x4_0{UbMWT5T%6s*%8(p#ILObYp;cEgX$DmWOPbN6SPFz1_|?U(Ow;B_mmqAMfk&POCRf zjG4JTe6cLfnwAw?WNlP<#&vxaF@g2Dg>uA`4hg!YjLT{#)1Fy7wRWp+=WkO<@!qju zg@EnLrY2GCorT{1ZoI4Rov2V1e18>A%iK_2nN+W=H;J1|hDg^#VFEA{2-tTH83a{?jS8FG)wi^ny)Ct5NN*D5iBPZ-% zfy0DDwm>}UH0DduY|=c!lSYZZT@2hOaS7X~!eS3PW2(0aa}+aiJSHmlgr2VRx`mYY zavM@p>pdyCAnbAme%n2HCGZdPWfT=JXQ(dp@3AHuY5+HFxi^opohqbEU#I8{OVe~N z(*Pf6UJ&y6-E+eruRKZSQ?nI;!CVY7PZfC^)(+tQk`cnWJmw`4uuGgEMKgvQEs(oF z6gwN|ji8bhSvUojrdbwjHj1BxSrxLov1gyu3@3NIVYIShcK&@J!5e}e7(pobZ(bq& zj;m^DeP9+0`@BSC7JAgl00fG=5b97g`_uy zf)b%f8HwhA&x4i-P$en6kK=aAt6R$21;EE6&ITn7GI^h zja7N2=~n5*05aov&MC90Vzy)SkX`bTz5J7UR$ZGD&~yg;I(-791i&J6{=fHzyxZV&8fA0$of}XCiK*z zYaf9bV58*Gv2*yU8EHMJB4DYZV!dLxV!1-5;qO>A8fnOPZ`o)TUPAvy&9_UR1qi(J`Je&H%%C1kVToN1&`-@9HaY3cSTa_c zV<31{JPv9`d0uT8&t#zecIn}G3<`0K67zPgmSyCmi2M2YF`6&SsY&uR(}Rng8g1R~ z+IABhq8xS)x%Q?TeIz5k6XwCJ%Eqrs2i+eH#a=l9NM25v6?JR0u&frlV#LE3-hz)h6G;Uf!vn)}Amx=Dm(RWVzNU^X#_bIJ&7otJPf564H zQVUC49J^98=P3jGbV;c&7r29~fsZJ@9g@*Vjl`q-mBaj@m^1h~&!{#L^L&>o%~vNUts zk!0wy-JV`fbNq~@>{vU^roOzdL3(PHiylO*H6b0{za`ZwRjuKv`URqx{%~Fy%^Iiu$3@Wz>!3SY?-XT z!5YnNzbvbDEGsJtp|;hp4BTm1r@VE$+-7X8*2Bwv*Tx*nvdxTQgy^KC)wq{u?JlBw z3AWK)Nzo~NX{ce_>hhMkI!?LKxAMfUL5a+Hj2_H=6XS6wL}#>jDO33)Eii!+L1z+_0A&rG-ArX}C#Mb-w!J zat|@0d!;wXZYGYBS?B{STcHR1h<*bAGSZYR&DJE|Wp9FRdhD0347w>IY*PFKF zaHI3Wye-Z+#6=6m>m2hePj*nZ>o3kdDkZjj%PFU>;gg$94g*=dQ!bnt zM$3ln@8okwYc7_ab;4>ibLKwIC3K&cjT!~8^$uOV(@OMKoYi?AS~(wx)x;gxeo#iu z)3i*hm9-5_thg#_hEsiB1z-6cnm0Anu~natKC$IDx+n2tNgbcvW0g#P`S2A-z+{X1 zUQyxWrsILOw$JE9DhkrT+kjM5_}Q3i%V}6%+3c8S6nCrjU4eYUz@u9yuk`ZvuzH93A_-kOMcQTVbJr9j5dPW) z`d=&;G);oW_8Nw{C0NijbJ+(q`&@04FgxHMYgUYN(>5IMb=rOq?_IOL$i7Q~t8&YD zEsz?YN~h5_OKyok%XIAHKThQ9)o<365|tjVCELb!ZEp#XOtdX*E+XG^H5Ed+r&7u? zvy!yp)zY@&Yw_#JVwS;-r0$*mv+oJQ#WomW;bESoYUNEzz{Q} zE-ZGp-uwwMSY^=>|L;qhKG2(1={fHV+C%GDM^T`Qe$JD}TD+OuO`r~G9osvI@yzLP zJ6d#ZeX=#tmzE{ZQ$Eg(12#n0#Ovs4%wN)Tv!hEEDblft4|{2r_cq=we_85Z=-mnH zk{5Gf>7`fl-@k{Vue0T&*x2DfNXle0lD4IXyp1I*r!SdqbT1|U+N*nf^`!6{S{@Mk zFKpEX#6a8_Dnb$ZK~=M?vVFNMZgQ+!Ss?_dH8R`Xb8vHf zy|5t!-Uo$oQ2#bb`&+z)bHukz;9?N^xzYt1?c!8qST44L{q5XOYcCS^4Mk!DMLaaL zJ%dS9Y&?19O&y6PL7QSnzpEiYB-fILVR{tFzws>%N=AXrR=(?)C}# zRkf-=Su3a^Oq+8nlg-8$!>fjTls2E0$%s^TVXFf<%^wL11!M2oS4&m=ix{-?s25>B z#ZbJM^D@V{X40!q#R^J>xnR#_$Z=Yw&W z%NV<8v=LiDOtePiC^pi0gtQgGUL}MHsJd}fCURm|!nh2kuZA`xk5Qj+w*K&o^Rjoh7>+H$O&{B}E z@e!^B@r14i_hR?hJP9YN2I3}Lq4I=OG?%7hirZgaMefnn`5h~#)ov-y^=pGK2hV*_ z-(m9!KA5g}Z`wFYrO5K!i}3%DWw1X?mc(Ygq|L8P7Z~&)dW}15RSi254spEJi}xz?pYjj6d_(l9W*q!b4kfHLtx~b9>X5_btCSs#ba{W7)>_{;3a4B3$^dFKFjzajqz zfxQP9H?r`!joCtDd1Gs`)RGnGb)BwQm7|U1>B%G4zoR;w(Y|=zzwickDFhI-6CXZJ z`&Mfyd^rV=7KwI8OPjLPvRweZjPfc`U|4x=@be4pFzS)|cK(FFg8y9v6CFbGgLh(G z3x<~3?B&>5AfjCRfbVz-w?0)Y_AkG;39JmX;wPYcge2c)yF&O9wbAY-vBX-i-Kv5u zBb{&*VfwLNbvpNacZfQ#QW@ZFjOY-`?b;2KdPF;vrO(D=$(OVPlTP zuOA)o^C;YI6IZb68A$Jr1DI4zU#5SuWf@u?KdBT#*qSUnc%~^(-D1| z!aut}q&1_B<{#|v*Ixg|=vj^~oIU{KRG9-yav~3 zJwguF$h5cyPncinYuw?FcI*2Gw_z_U_5YE+?h2r_Xg#Gqp%9RIv2l*CSt-eX64agB z2|?J!UON)JnQL_k1mN2WOb*pJJ|HbW!K;TkeHa(-l3_&nUK)=zH2_w_pIZ^_l+svV z2Cjd(=bh@Q>B26mg+h`yv4(*Dtv+Q5n6_<1#+V{iN|K$c&uXz zv0}rLSqWKpKDX`WCSF7dlJyxs+0YvEn946)TSlO@81VABj4k??`BC zylmQB+J9pQt!rT{;a1q;gnwI;@_X#>{+UqFaQ1htY1}0_mp`VU#kv6e-CHcq(LZ4Dt0WYrJH&1>_L;5@17_u`J%VN?Hm z+Wc{Nss<9Uhd~}D_wrt)z{FN)r>9YABlY#~C)`GID9$aN=ee4Vvd;%J7kmV@K>%Rn@rLz$b5yz}j)NQkH{Y)>sT_X9UnXH>oXl>j{4cmgvk| zkM7q{8ngy1)0gYLAN!TQGwq}NK1HRAUbnbC;s?Z)mNMDhwI?C-E^)eE9l!oYk*)-j z+?!$lIe>&)8QChqWh{*pu9%wjfCteoproH00ua#~PvkR@!8LiLQI5t%>PjMbWQ7t> zX3`CjoAX0$4wD1}eMC$al`y7v@Kx8?IZXRV07$To){T`LA9yn1!k)B~Lm6yjV8R2d zH3Y!wiQKWw_jEIQ#|5hXw5ql&BPQ(v*}RqDb-J3BxtaAxyo>??xL>@D%NoFb1qgR$ zJ#u;v4%AFsq8>6-tdCK<)o&uhxjFp9_itbJB^2wqG<|j9ae%lT`B$8`lkZv)<{}$+ zk_7bb*4C@7TW&k?dI0sAOP((0+L>a5n|2)PZOhb}Vz|%uSfbHtM(}Fp+mUT+y2x-v zS(li+u;x->AKyDehsDCEtlCg32UE2H@vfF~HqHBbb5;5AoVqFjj#TH9k=zJPjzj6h z9Ir+*WAM~ddcz}w;FNJtHy+|afOlJhPLkcJX`gz1w86@xdU4*DE3~23VnKP&L@0bU zCeIYqS7xF|ulE?y>S$GureThU7CUqdj9_+$bfSn^?7;(Mtukx(n%u;Oo`*#^kQl^^v(n94~Ea?Jd*KDK-^!D^@U$`Y(fL`&pa3V$;kq}Fd+|*+=B@RWiOB<6 zpKSlq!g)m;x@|GRXQ3vIR)}pB+j#M$E4PM$$xc|e_iI7pImG`S)&Av=e@BvP3&st$ zah&>7PLBN38*$?Yz6_plYwsKCAbg9o4GGO=9S<u2JjZ=e$DE%7A)XUEUMCOVRF#H$U0!noCAi z4(N2sq2VWn=*6TeMGQ{%YJaP5T;wp#LuY}EBVl);mpw$}^+$Hpww$lox)%Ap;P94! zk~#Gp^^Cj@%EiHL*{bM9gLlF^`9Zi7`e-DLW6w*LQFcLsV2`ykKb_F_(@*Z8dG)Y6 z&Rm39lD2&>#S0lORxm~=g3(MJYQGl_YDZ|-@FcH z6PSN_vm3O-FII=RH$D7cnP2E)Guco2y)rYJI4tUTG#@>edicTc86EsfU*fkw5Uw~; zdej1F9qafJZ@K&aXh#UFJI%Gyt@CBqIH^J$8<{)xCy?+M@=M1Tl#|JZ=As9>{)oW^2^oDSpii%qjqYqmpUJU z$eIY7?0yS;Rw3H-I-1{A;=ZT#((X6;<9xnvh*a{dh#g4zXc}~{!CF<$x&AA6R&bHH ze)z2gg@;OY-wJyUDrvW90i7Q#k&RRTY1F&Xg^;m3eHzFQQm@@+pV==zWBQNZS*H z#RsYO={*#pl)dB10ZdB0~ai_2&OAzWC#<({DvLsWmMCj-3m1XAWkDOA4 z1%0G90l4r0)&F?{4Gi_O`}!vO`c4MZNBa8q5KDSl#95k|n3$OBSy=l(ijd>=4Ss_` zW5IuZnSrrp z*BEBG8qkT0tMP|R8ToW31Oh`g{~~Ks!KVJftdWyJ!@Xy4PwS$#TgiHI%)KTAmVI=7cIUI0 zBep`(sKet9?${G;;KhivcV+Ergtrtdey_k6$(_OQVM=KetPbbE2@R9DaLC&!!#rrJ zbe^epTNdHSlb&^SRFp17bDYE|UE@4ldBySmb9+hpgnyt3tn7njfcCwivxemm=2P%v zOOXR?!Z{cysGZArwh^q9Js|KAW;vK_)icS{VG#cGqyIc`?TopSZ0nclY_W~ex>V(2 zoxuml0g%j=UdGlBfLwet+-5OGn_O>NZ@6#OeCB?Zeu*DEZ)9(rS(BeB5v(Co?xudG zb?gQorXSWmb~*L2TBFrPD=6o*=k@F>?flNxno+n!%5ZrZYdgjprSDkw@#02tq0+hB28@np5}%(634E zgfW7%N7pgC1d80*yi1c=ld;y;!<^*Y{%jH@{$P306|N(FwX7WgvKU^KMrG&?J`tG1ci?S{@tg4lnod9ABqDEN+f*+}N%OnIf?5E>n(A={5cG z48+?%YUgU5)s$vDG^U-;TMKr)Q;-%o;J%~Y0?9Ex?&-_MI8i$5TEf(0B&J@O*z5j6 z3^ky@ee~;mMku3DX)Ww3ybG#4%WUI@Zb_`IvQuAwHdw4&o~Bo|qOjtz-OPN9ovCfH zdkAp*c*6|6(Te=`<9_>$|8wPjdyB!`voE^g(n-}^h_uz}&cZaeJ(DZRAH>g8rIvM; z<4#qpmhaChJiJN)rw$gT@8Tne*g;zQaRJP&4G!e{`_N?d`QyFy{@}y`7-XSCuBb%j zXc(vz@79gwybaV%1{4^5t)j$Hhu9`+n9`{%67D{`-BHyQ_F~*Mh^YB;2OgnJ4$)xpeqp|f`JhUsiEwxNXFf( zu0BSsNMYD*`6>hsUf@@JsI)LXnU>e>eUUT18k6gBF_j>aQu*(O>{LAjkS3SAJF=7E zeQ9j)GL`YKWYd%43)Szk?2`?okfzyIbqygL%*BMoh#!V#22fymu?+@)EOUifkQaoa zXZrIuA_LuV#_9F47c|t~o}ASNI(LDV{e#HKvc3`D&!~{}pTlqDyuxn}pN~~lw|fYn zdZzY64on~uG`}O%7m(z^eizB}EJ&IrOL7D!Y8t+ZwoFLIu=g)t0DOr9Y{1?@c>8B5 z++7yg;EiI0L{-i!xCou>%m=4c`GKjpQ4Hc&}nb0lkwMM@IS&giul=B>K0)|{)Q zLr{WH?(AW@tK~N==BMaUTGN2IYW^sECTaY!$OJzKagv9vKf0S z7a7U)Sfm0ghN3Cy>`Kw%33zws%$*`mHtOh$H0l~iN11Q~ zGg<*Bi{9KEq9Sx!pzB9oQ?e*)>?yJOCWQf3vgq5ZK?UNlZZ1TECjc{I3hwCxH$WT( znQ6*0)4-&Rje?$Sfh|GJ($9pbD_IPs2D_4GklvxNz=)rnCrvI2M=NcWJK#gr4UeT3 z;DApS9b}7Hz}Jok4aVgk;J9rM6Vb&SRwUSC!8>P;pOTdDy|fP(09fPNvC?Krr+4zQvP8C|~(8 z>ZMV0yED}8zgpQXa5ym>Hs!{*Ul7?;6cG+jn*znD1f7jN^2mKl#0Wq?ACxA=u&#zQ zYS33+R#91G*Cwfq>EPQVe+T66iNlOUV6d%5$?~EF6`|%dMHXO(s*W6R!KS1`iHxQP zKOq!hSQV&FnJ+D?$6J6+c>pRmDic(jNqlW}jkej&A7ZB2Q&n0jE$Tsbif2^eyn@T) zgBltqfqz1{(oLHKtu3n!QtYq-wgt3xD4FDKJblio*-i&c_+GNvzE_~Kl}?MTRw60Ov_Cb)rJh!w_AF;J!_t-8@e{zuHWsY$qkO3GIIT4QJ7TwA8?k966jXn6>L4H9NuX z>fakP1Dl3Q8#W?xfpPRE2zgMT>H8aZfC>vdh4Qa6#HAruCq?kd@ne5U>evGx3&=D> zQH%8Oa3V&n1}IjjC{BkGu>q|NtJju>b*$lg3^;i()-@Y+%HX&I6j|MpC z7s6yDpsDVQQEb0BBJl}E_@l}oiJhslD?Nm}cpD413#yB(*ZKI40BTI#e>AqN&HRb= zx1UHKfH73cvjRQpF9l$cEHAqZ^$fSPWPCvhwLDfi4g*wmag zWvR;Qs??ch1j@i2db@0s@S=XJ@}_&eDncO>1Qv5-p?MM_Jp&bqqXAddJc*;(*kofY zcP|%4T->mqgD-!|WY6v1`+L8K9Ya=jp4lNiRyxLLTW;=`hP#yk^Lf@NW|Vtou$Oh0 z(t!E=5^{~1KPCscXy3RRheDwhV3zPyG8k(L9PKzjB3&!l-{LR?43JD1BB{R41f_Xz z=U)9l^USBbAgQo&A69?JcAh|Y0682F(KM+T@NH#oQ!F?!zGaPhR?6->xAmI z>eisHsZD*RmCeBLVvzW$qxjPh3oc4TL{Z;IzKf_IqcD3^bx%H=#o*Oo52LIxiTNeA z(cu)8)phEsoj&u5u|5Q>YKOlYGkv&%-bcysB-Sl?T8eOn5J?*HYO~kHk*%R*wTTIr z64nXi?DMBV6$HB&Xj;DJZz6KoOB5L0(#!VCR=#g%$rJ`G?$Ur9@ zWTvurv>m#y>Ueh}R}}A=EV9RR?PG&Kol9rvBf(scVi%K4Grq)NYv3GB!dmj4Psiwc zrL5ok;bR`m+0>0m0v`jogkQpk0@a!AZa{G5iq&WL+8xtvI5>70x z=dK*;e6ma=ZS`=0m!NJlXm=lU)_?Y&A;EDB!Ulk$x31TIj^jiQuj_}ET*L~Qdd!Aq z*^jW`GXJDAFvDA~=D$)wtoP5Z6on#u_Zyc2#<4TS69qDsBy*tm^FkL z(XFn&{qqtGX_hXDoJWBSgZBiTaRhkI9ASn&y?2iTpq@jd19G0)@H+_e zQVg?wqF!xPi9#93IajWN70iNkdxt-}z9$_a4<;L;G zK0A~51A-?8g!$ksRR_GtQ-26}M%IZ{?bdv1soJ9#OyqlLJD|E=swW}iAO98{=myuA zA@}6x2>Q>R4~%#>*ARXUOm8&>8DJVsA?PgNo(zAU5XXc2%#p47kDlYWWAnc3n+Z1H zb}sS5Ev02Zy6w@$bGbp*aCgWveCaps0l3v0RL{u@h`My$N9H?1wD(8D?{&N=*5k?{ zjE)4C@}3h4e0#Jo2RdsBiLV59#~)gc2LkOUC#OUF-zc04=1Sr|HJlM_GvNprogUm~ zLR){i<-ikgIJroNVRGDGZOO_PrSJ#wiYftZS-dq!W4Unl}-FB z|Dej{A^(PvnhG@6ZcYX#(y#kvDb0eTwr+WN7Ft_0R$NJ?RAen5phxNw?r+URQVgnv zu7DCX#%N}3>&72>M;aN+(tKG`vo8Gj;yy=qOpCQDPuirq*jCz>N#Tk^z+Y1!x~nV^ zdW4$4*4Sn50<9K+EN9fWrX~@zI3nj+{iNY>nyQuR*woZMg0q_J&1nx1a)T;`dfaJs z+iU8=YXc7pq*|m;Y%S0~C9sZmi4|tY!~{3tYrBz&t?L_`zfHq%%;m69JJg6Mb}WkN zzi%F=S2(!(NxeyI5btQ(%rpUy{FI4`T3=IsIEQ0Zt;}~bCU{0ii{190{ zx7_^kP|4n_kbUS(fI%hm3(&f>m&1rja5F95a-qejS=JM2Vd+ zR7mw9soM2}wIMJ2WXQDAio_Co4>z$Cn!_q_Ub9cpw4 zNPK?gFdJ2R*|rPbJsLd`Bh1aoK@%4;+EgD9hZg0Sq%PisAGWUOuU_RDLJKqAu^Ojb zOuZ0NCKXbQm-#xzu;9uph@0G0KW6 zPDypRQiCFdZ#1yrYB5k9kJ$>!OVzqJ#2D|9!EY<|t4Sbd)c{o#3t6Q`S)?Sm^v*By zp-$5-`HcOyii%E^l|3#QstP^I6^yF zn_ah6>#P8Oz{2J-_t=j8!Kuk@XY0(P$A_~{ZzK}s2(;(8a_H&T z#mhad>7C2*{*i%cw!l~M_dNO>cekC~1MXpRvp{d6JWW)yUuKl$O}|lfz7kV+cEaAV zpt76btscG#a>39)D4_$c9Jb0Aa0vqI_2#DRAMC^!`mjROM?7(pO9Hk_(!U^IJ3%^SfEdmQb_Va8Lecq%B38L}1liVu8`V{2D4>!y-s3(PP^u%^~im zveFEzc82wvz_8e%Tpo^I%Gq5R2faW$+YMbABH###O~}LqVXmgQa$uV1Rx{69zM%{y z-qO?p>J%K+X`5pCN4%`xIgzLnx>EFUP2U;AKJ+{ybioP{{b<+|p|7E#v9aM10^+nr zMT4pY5@pihsQ_+&m|1plA*lXe2+cYzCnEYI&bZ`DZWv*Hp*fI|2>yMM0DGYUnCZ&P zdn4CJN>eZB5z4~ES_$r!j-Ng~My*pjTpXL{x4l1OEXSt$I~A3MbQ|g{PXDDA{REEF z-H3Mz?(okqaER7i564<l;M6n0b#|#c zjJSVyiaqqg8-@Bh$P|=q>n{EZ9H$%4ss>eg2Vfb1ze;G;xU7xZ(BTu=Al4=nh9oCO zlhX_Z5pTc)R}lOdlRTmQt=N8fen|i66pXMqI^VyxS=wt?May)(#W~#yvDQ_dQzu)z zgL`iWrSpVbci!WxQ;n`tvj{B#t@~u1ex?`4^*#Vc ze*il`#J}W1(f8gPKl-;~V*BjQL-RA@*t@pkv-0eF{>v-w9n%($CVCRvbMv!5 zGruFzs5^X#&@MCuH7)XqlczBz2{gY@MBdrf$RW>fcj}(V{K0t@#$g~HQ)4leTu2OH zX=zc*Mn*FEdTY0v(|Cwt_f15^6)nek)66zhN0{=}i-nf`uJ zKCtK3RDTp+ctvRc%$en_2aXR8M^k)6H1a7B(IykJl-y-J95wVBip9EkyPsOv%BU~%H+XI zf0ps|X69L@ccp-miy-JE6>u6o3uA?@g8;SYL+2!r{j7B?bTcdG<2^l@v^q8D^9@d^ z=__YXo_!CQSFe-wRKjCjnvzs)bOF8=Mm5!twq&zgfLf8U_1-pF%G-p9+wU`|rAO}# z>3hK86_tWqWc9Uf0I-S<|IlP)-n{OzszzZ=#Xi{w5FqX%-v!J=IEPdKnO-7;P7bh> zKYZ$lD|z&O^^cDxj~bly8`9{>* zRIBws-xm-`0s;Zkzf)KoH+;@?OVY-2{|!OHEPYCqJPc&+v{0~ckrqx*s49!IVTdy!y|h{ZK}wmfxxd1`7|W3w0b@1JX2pWDCx z!hyv3L~V*5((&DJ>i|ARGuRx*8j~~>B0_I_w%C3tKBTg!cZt3Uxuw{LzN#5_4eV75 zD=P(cZ=G1Eoh8G_&91Dj%#tLH{J;kJDz@xd*y-qMie;j#E6V8LM5{BSu7nj`tJgKO za2b+OlHgb}fU~m(Q`cBY(}VH%*pJ}Iy%BhAB5*kcwE9~k+cC%ZC>L)6&9!hmd`I6< zu>VTm&`@7?X8c#%AYxM5KQ!b|5B0C$ODlbY>1a9~eW4RJzK%=e(}EZqhn1x()_S94 z!Y$I*g2FTh5;H9lkwT%p6BE%bTMU#V*wwfLqdzSzgrl+Hy}5EWnmRFpeX!i@@sx1e z&HLPCk1R?Pz6>l8BE3`uQYiWqWuaIsC^<9^$cuQ)&r32bw=xjSjzP+e#bRUe$7GL7 za(PAqUayyFE;sXd14)-xat#mT18-tL^uPn3*Bcmdc_f#-c|04}34?rLk1LCM?}XRG z60Y7}mv`Lb2}Xm>+g`lOJmVf$(5cBr9Vv8tID^7ofY}1B?h>HCdtMH5H(&q=02QfPzJ*0a@`nfCH7ypZV+YlPoa0D9seeYC;V4EA6c>TrKwkyB z+@iuFIJYGqtZG<=8)!*o%iLJ{e)i$S_QvB-M_`nFCi>7=$tAijvtTebv?ExX@Q>q7hkNF=;pO|Lsf#J{%64ITzkucB>?o}`9$q&B%LRG7(shaS&fd{kG%iS3Xv58YEm(U5%Yf8`rm`Z;%OteXJ5~ymUp=-r*l?{1dggZ_q#P_X~t? zob&7F8g#Nd0HH6+Enf^pDWWR%D6m(@lE>ih=uc30)*^w|zBUl~wPXA){vkSJ&Eb!K zJlrLUB#RLpiWpTQauFSLZH)pG4qh7n*7O71ZI$(5y}ooyJx+Sa4j zzdmXIvDZ5;2ntSXk-m>~r|v~*6z-DB_&V{hbXX$~4IQ;xwgk)N*Am{*Z2hqqi=C2OCDjOUYQrshbt2qoSz?z zWYF!4)ugN1O7w-;cq}&l4LSxJ-;pZzb8+7OO*2};(v)SX{fLXfn{oB|MF2-;6?I*G zKLyg5tr(GWVp>g$u*B&)P&JccZv0NeN_coUEI4K;#(Iz@0~lrC;=M&#%&^~5PAb4{ z&-)tYe?R%(PqJ0KhRe`PaM{xB;E08Y3X0yAVW$XdArqc^?m6~mUUB3<{>RA1{jYe1 zhlZyf^FR0?kMH5WXO_OQh#E)WY0(sAg5V2}8fK-mp{f%bkex?TCpk6O~E|N zKYX?4VHIAls}&$(4qF;}K%%cirT|192)qGQzO;t$@3LCoBOD;CFZxg-Rg}e|C5eLc zg24p*8jT1(OE50Zcwn6hxI`aZExU`0N{&qgMm))MUoG3$lSqX#BP0DjZ%^-FG_iG? zI_WMf_?AaUCUzDX^NNAKksZN-;r`5ge`sis1^dOFz&wE%JjJW%^jt`EHC8BJ^<8B|t7`L#HCA_f7Ppi_XmoU_U z5T%Z*QLSFb*ajwWBd)blyPLMoL9X{<#1&`Iw1P&Kf(WBCPQfvpgT-%Fo?2d>DwPt7 zk|?dNH5%|$vTm{R?z6imfiIghRdp+T;pLB7JNTn1iNVTSrM3si8!|&A5SU3o0ru3< z+VQQ+OXq^~(JO}ymONHFHnC@6Xn%?0B}ipVLK!2A#!QmJHdM!|<)#%A)`liUEw6{I zl}hcpN`<@l!*@h3uCA}QElvAWTFcSq#%(Cks7yW)^;bR^I`;lbh3SJob;qmEkf%Q9 zWAMEIS(Evjq9~)EiDdo21i7sBE0o?Um9~}7UX7)w1#4KA#EepaBGkTU5O~d3p%3t7 zU<~dIMu&!?EPa{0f;&pFB)nEB?U8WxH<0q8YBYoN0G2v;OP@8YF+@HgbbnqutgAV+Ry|9`WG`Jp^Km4<&RoLGF>P1o$Lu zy^cOvQq8QclNFC-&v;M+9$7PB4bl)Y%~Y!xx`$6NvahsrB!Oe&8e#d;OgA7x?!44 z;_9~6?J7lX(29^3(H%#I?S~!`9N6W9H9t)&9699NoJ1NZ(X4KwlT0hY zT3WWLC0}Qo)Upc?D2o(0SbTXNa8DmcWd{rR5O9Eh=pV8P#)A~pwGoV~ZQ7+ETIvwb zC0G?z(p32kMzRlcN~!g*NmY{`!KNJmc)gG;fN|oT%M2b zH1D}Jee12Gr_-%^{`6m3Pw?X2d#Ij!Myz^>ip3wy$Cu3ur_!fRrEg0+`Dw2(K&ugz z>FS{4tpEJb>7kY{$-lJ z(JcsruUFigALaid!^Kom#6l6hHH&a+1y$+^b~5n>5W>~9C(70RzZ{N-**g-A=Ms;e zNT($!oxV~~PbSK$^vlNw!r=i&$pZFESaz0cVUzqP->6cFYfxI1>6OBjW?AJcSj-jj zx2r%&WlJ~ci0|u^81fX&rmE^a{$SAmAMlVV)yridw;&n#8^4L_Cw9mmL`%4@*)b3!fVV5||E+gnA>9vC!be1xICnKPVv~gwcq@Q+X(K_v9q3Z|wlM$&&Xd`F?qc zLr|okRLqMQM$QF7SV?zHOzgVz&PSySCp3-f=bevykl*HMoFGQ&5KpGj7z*s(`sVk zgKQ}|cPAG8_L?d^x+gjI*u>;tG=48RcLx^w_TB?p`H?-zjNpKs_dx=6<=y&0wiK3P z5#Ve6@{ZAb{c=6Doi~RVxSgcyBsjq3?IC$_kj~^G>N~YMW zmZt)zK-rEOzDluA=~eWSWty`JW>C1(htQvV^)W|9I0v2ZH|evttz=2QW|i71^Powk zg)X)#a+XGNL6+nfxuYy5pvJx0QPdZl1=&3OSIDCk$|=gWBq)*47>+hAmkJYZnOf3c zb@uTGPAwiebNbW+p{2efi{+)!GmoD={Ya1AbKBDL8FpXKBd512qa*R9+j_|3ocn|f z0G7nKmrP!2shW#uUK3@)maL`d=T3>Ntdf3P)sq)4B=^0T+_x`zp>f^1SyqXQG1OD| zbU*yF##4tVF6!(rZerZj>q72V*rG*VlnbMN3oV>eZUR zw~jaKy?$*&*Ef($^|g6Aa$X!G_AOsIul;=!-^U7uW~ZvK8aLVV zpdIcC$>ZiE=+_OhVxXT*6Q8mq%=4517y-7ph+Ka(>a%c~ul($`sVVXNK6T%D(LVVz zLhAAve16*bfKJ?m*WB{cs`q==deho&R!@7&Vq~2rb9#Q>U2G*opgM|PtW|8;(|Mij zjz3JDS)Tug1V*_{7kSCPEIU0l*H_~r!T6? zmUJSye5OA=mIM*i|!$~tG2J=D6CxRKXFp|H5VjfHvQ#D~RDjA5gMya&M z)*Af6;Zfp3EdpcpMv1Ly45RIPghlop((=&ix3#D&&dcoA+4Ik{{f{&rVKRH^C3YLP z-Pxs}pE`OD@rXC{x0kG7i3Mc1^5HI49dv>*)HOW{{ChMOyoz=ahth;xWVE%lt^OF! z!kB++Fy5$>HO+KNU@-GrnID2=u~UStz*R{+_O9Ty2pkDv#LU_bY^c~Cb#p40myE0E zykY`D!xQyt2^hn0{AYlD1!)-XZd|2j^b}#ZdR2WKUkRHhwi!&L`<9mM&)J_hJ;lkT zle>VTV9)M(#BtyY0Lw_@D4@Tg$a86YBwZB|gpqMNei zS>zPSzP>OR9SkDjjE%?eYZblaTYmIRi$?nf2cO1FGX7{VHXMrbQ`8Yy7R>b^#W6T- z_X&iio331bSqR&#`=>fVP7plhw7$gb#B@CeM}Jr0Qk0_8<>4o*NzZNHZgYF z4Hl!beT{EeD+by%d=!0-=GUT<4J!At2NG)I&7XNIyYeD?w(*XH_L(Q|ZM^eE2W|F1 z54({p3*P~fyvPa$=2+|%G_u~IpAy9hi0sT6v=X9XQz*mi)Kw3_wqR?6n`+pVsgdx-x3pfqki$%ptu6GChEOATX(CP1tPHXH- zulwrs)D!H#`Ws(Ak~s7VR!Bsq?s(^)_Ytjc&&@ztSh!{tz0Wg}f>s^t8pLP7g{r0^ zMyPm!GP+(WUBzRKPN7%t6>>!9rkYt%GS2mjy2(l!77=lALr(?xV!9#4LV7$gk%;S| zSbQWm65|RF3GKt7*q*>hcm)0edt#xfKq8VzL`DXt)?g{NIAV>w+>oM8w*1w*508S6 zM7EfQv1D}|52B!WNKK^|raW9PQtGm@20%pAOU@!;%n@`^lnF0&(;jm@E37WbJ1>8L-({kc&mAu$ui zM4>UEp$J-jUOq0WaDOj?EJ)|!i6kRQI_f|=i*J8)o*^`XnxOV|_F zu3^8tgbqNBf5N+1-&=uxornII0BlOSB|EjoqlleR_vIl3hsoE+0f zHP@_XM=GITRMYxshRwPb;wdKk{1WuL;+vTf)zN8raC}JKvt?48neCa{G93+VaYPO{ z`8i9!WanCNj{^CqnB?gI%$y12QZmgo`;Qq7Qvg1rn;oJ(Zm1~ifHiX;@g}A|mEY#P1|7|%WtOzHB)7Wd=cw$>uD6qFcnsK_ejVp@d-1*6O zd57s_T0tIKTf+nWt8?hBN2+xnIqo%XO`$HKgJnZ0QJdH7*r}5B)UX@B#D47P1om6%NtJBn2i8xn8$i(T8g1ox{R3h`w!ou}6x$Ysm;e=v z*0tLj`C^kd01U9+$H3Dd_EH5#*5uvLsG?Qe#74mp2i(B%r<`<_-O04N$>3Tt!|Dw9 zEl(-6&TUc92hMhMZv(;4O=c}EHNuC{T#^Hm^Oi}iV8Nf^a05Wqs#>iYWJEJGke4_> zrdHt)n)n#wrpZdiBcTY`dJ|HB^#|&68&hQ)(*T^Hbq`^~j8zW1VADouUyC+o+JSr6 z%?;DORPBE)jI82>qv?fV1&EeNML6O$_;WrC);rLK?(HF63gQF0=pkLoTK$XoQ3E7c zLrQ=YiUWd6Etbr~bsK;hDxv=mh^02hHL;RLIGAzHSNmJGM%V7OjMb|f%}_^`2H2X! z_-)fB>{NsL%<31bmr8`UJcg}m5w10k?a-7SM@xE}xz)DtTxfZ+fd(@+o{APk`4$c$ z_iGbUoH~eu2#E>BS6js52gkFl)f;ZB2e3!bhuhoHV`4||*}Z1rnM$-=<#3u7m^KBp z>E8yYd_oh281IZL)P1|K_)<|}bS~G?@W{6_-vRLStHLZDry^Si8 z=1oUSIH)$Q!j>Ct?Xw$Uz1V#v$B0Oo)*&mt5zcigYkl3I-ZUF^khyC}C#g8|WlEA9 zu|)XMtr8p`D9O3R+`O!y6{l(EDs+@($0gNl(qPgEzDx_d!G#W0CRgBe1B@(2CVK<< zwUUP<*OyafHLf|268{@SA(5p6p-^B&N1k?RW_s-B-!eY;Jg~odO-G+^X<=-ZY4f+( z*}iV6^>$Ht}y^EHgUflwbWh|Ma~l`{KP<;02J%@6RWBZ0|1i5%y{B-@>I%k~|bII^iZ=m)TNc zTXwdvGIEG%?iaTQv_tG2jo(WwrB@1Li-$fiIPe=QLyK>)xd_TZMt&7x%xe{N@Ju(!vTzIL}+POWZ4kV)3Bn438WENv_@u#6vA<;mAs%uyO?IHqjuUt{*u9 zf6$hKa1q+_tW}y73*?-c;~nv^b{s85LtCGxhJ(T3p+Qm_@;_F=ir{Z9!SATyWN0U)2>w&jnHZ)m2GqHn0?pOu?V7 zM@zM6DcTq9<35dC)0}ch#3XeUGMlpYnR?aVtM&TpQZuop(CcT_Y7ND#4MW0PhMmE$ zEL0dePVzWd^8SXoNncD;byMBYbYQ?rrdh%d=~K&AuEask4G_-(vpWd?fePq4lUDUI z6Lh^&sp>e8B9f5mn` zZ_pT+hvs)%o;lFG|~6{w=>hT$l~ zju@uMDJ)~rDfhxRX-~hnx>A^0o&u4~SSeJiDNRdNs|7w&411<9DT8|GQN$8vR#sOl zH-u-NfvHk1>l(($ z+@hl>v*bHEnPMG~-$oD5>zdRGT9CB0Xt{j-ItV4s-Uc$sb42~PylQQn!AwO$Q5;o7 z*#SQihv$zl_56{x=!%!lo97GmMLhT~&#~c*iEhswQFrExs5;U_{Lr50Wy%>+rI;nu z-{bT^g=4u=F-($l>Q}Ft=DJ2S6zC7r1yUGf%sjxKD}=4UR{Y zU&)X6yN8AX7d$=bvAIGr_1BBzLxCQb3#O8n1w*^SKDRiyW&YvmsILe0xXjH4srYXKuiVml6x`ck5os{yIa97`w{JFZfgm4zD2wPym%3fr>G zxjM`)J0|3W?eIRPkl>E9#XK%-s5s0w!!Z(a{`!$&TD=-tEZ_;?m?kkH~_!KSq z2fL81PA8`uznh#+zE)LnwKm!7rjs)>$?24-1L4wFSGhIk8qDef`Cie8jwu-*eykW) zIlqV>_AF|0#|M@NZh_CZ^MVypQ>irkv%Z8)y^Ng!*adI*XQp(Lg>!FLOqNAU28GW_flqZrEy3)=1u>yBJ?XceMR;FCjucj~eJ_ zKiJ#*BBJF>si~>dwQF;qvsKud6dQ|Uyf4+meP=@CJ#VvMAdFzRK$N|2a{KP7#ztXf z?^fyP^!Bq%b?;KAcCQrX4ttfYhn+U55cz6xh!%Lr0Rh%b>wlhXn)8|DwCG0XJ2y}9 z51pCGXGa+BoMC7BZ^b8iF^5Kx!o{+i;j6zr`M^|?g*u?DyghmURPsnWsI4-66lFqa zD;K*ox~!MiDAi~17bTk=v6@f~&W&wt^P2=9)n|THO#k=*U zhP+_uHJ#lF>~UpNnS2%8ye@EazKUz1sclp$rrGuFA~&GX+Zgg;m|Dq%w;g+);QApu zoy{o>SaSx|R5c1_wllZ69F{?;mH*B8`@BrM4>;3QYnTI0a1^9DV|lGz4Z7u#>L|Ce zV_^qRbfh~=uSCPL9FA7w7;AldTQx0s`}saR?NO_pz@r?m%9ET7eOPsMYv4ii&fX&{Tqw5RVrd09KN zJhfZP#hJAul*Rxi$`@kSiL_-@m=tC@vS9NHL<@kdl!4{6Ahy9%b5y4hB+Ps`@{_wu zO@L}`wN?g1G{Ff1C7v2 zD)G6LBe2ECqaU_u*=*hRt}mNizKI<()+k97Kh$6bsxe1J4OP>e`ILV69m4E5wGAB0 zkZoNrIq&Fj~?FAUeZlU zGb@I(y!CialiEx4H?zfd*MslaY!h~#1G8IDFg2z1?W7$Aip7LsjN(|X;Ze7)t~z&! zpxgYfq-j_ATaKH$(<==13ZH^eK1cf?0D~?n@4s*%X~G@)5@^4kXV_u(48D;ie`0nR zo+K}Pl#ckui^7|k!QM;}W$0=wzDPg*5HAAjcoFI_=($35&`)3F1+;dOz?_L7Ch$sX zjXyeyFB}EI;uxMB6YSkbo+A4U@z)ByjJt7RT}j|zzeFb>NAk=cs6F*roHj}poZD7` zsx70ZX}>ECNaq|$X;aWv#jXz|wsF3+@bfq@)rPcmLJG%+Zz1EhOojbez z=qR@BU(PAvAg9?lB%@Sba1_^m+@D2jKs%7?0CC3cJRQHp`Il+=?z#yYYxFuG;yX)T z1-N*Es}^i!ih^g!>(?6_2%MEX;JPE9M~$y4t=1OW3(s`67xzW0H#Rg)ac+F8&}VqVYtm#ZTFe0>~B80=X~QYai76U?17&1dnlgA z_B*B64D>qf7IVcezx3V`q0$=R6RNpkP#I9x2Hjz$cuug&*x$}FjoN9_ z+C79~P!$hUu0e`C_VIMIaTUcjwi-?UtH(5;Eh+=$e-$W^L{vzydD;vbFC@jPfRQ&H z)lyWvqsl1Tz*;=|jG~6{$4#nQy%7?`>{k?fNK4&sdWumtE@Ozuu!=BcTSYdnjoT!y-wi$wI1JVfx zEDNF7v$T=x00zk9UojR3U}CdFvOM%_L(%9Et29t>WX20qxY=VG-pL>QyV&^f@c4dt zsPQFwCqE<$tqk~9pSI$L+VY9>2q(*X*%2IM3#N!!0_9t2QnS%EYSt|6y^Sw^zEnlJ zbwj{o88}oV+dD)|`(Q9RO#|*f9`9m3zbX%6YuyEk~!Hum44s68_oHM~X*{~mQUc>eam)m=> zE%SV>Gw7<)Jc|dO|3IIkW#CPHtBM&*U#ph)np7+uoX-(RL2UegEzL{TKc=XZv zkIX;%s52kwu(b=6B9a-okh9%N zykbj)G;4mGyJK$3OeI(WLYwS=)p=L&rCaBlmJ+t*^}d)9Yn zPI5MeJoP}dudn}JXW#2^qaQv6IELvJyt4vVN8qyvpFOm{JM9tg-=MQ){K1NIxH4FX zfwxUOr0MOc=CzK83choM3b;Ve1?VfAitxTd`|%{KTib*^!eQYUP^!CxOJq@|cH}y~ zODFq4Zi ze#fH<6>!*Z9ihB4(P#36T9+d!g)f>2=B*fp}U zhpnBoXNB8@+l33ls_+`&QNYx<2yYYqFX35~y`;!kA=<<*K!=4~+r4qRvN4GwJ{=j< zlxF6v)?Jww6S_&)wT%6Rg?UM#Vad}`%;k6n3YfBX8vH^ux|h0Y6}sc9eZhd#{tb2f zGYNLb$VrAh(d%*TbcOr_;i3MW3_GRQ_hIO~`yBnv|6Zi=dMO(HCkuNA`-T|y-#{;w z`4aTGPOmOUqt~JPb?Sdt^EML`jSnYIxjelD%+CIy@BlpD2{-Wf>>s01mZmo^I8gWl zbmt6|@^lpbt+Am#FQ!@upQi@`Wv}C7XH$c$Fby)m4q>0LBAgcP5bhD~1A1^pc!TgW z!c)RKg`XEbApElMtGHIQdqMd+I-U_nP@@%i{UzsbSLy6F08QHT zdxtNDV?QX3XyZqS(9){IC7S`VD3D#2Hu+hspL_iAbKAGhZQC}tmDS2>5$7~uI27ReMx+fPM1GfVJ%3h~6~ z?dqk{?dKDfl2zOUutnRyM6*%8q#3Vv8YVnUKRW7)l-pb5YJk^}QD_|Ivj{Vq3*0GjH8md28^{ zjZcM#Pfx&S*K_?6T%T~gb*r~&0mS+fPK{tVFK_bFvW3&Hko2pW%KnxncYkJLX<}lj z!X;m(Iwiv|;FAfGy9HJui6%uFe<3W93_=;VxW!26VV>sY#~JxVfp)hM__W?fv4N`jPx*3y1xUaUN~?f~>6~P<6?wmfH$`mDbkcL9z}< zDdG`C4fOY~wf`}xQ6rUu9*mP$suXv4w)5-(85{vSCrT@2fM{n45N!ibbLFT|#&eLF z3@i6JoWGA}@1Wb5RS!3|r;ECQ?^JmD4qqDwiCPa8d!sW~nEZV}!*}25p=z&p0f=XL zznAL$jhlhxl!SUX1;%~DNVw|i-lwTtzN+a=DDD2NQ@XUi9Q|$c z6bmiMGS?wtHsxMUMJVi&(-W8h?3J|YPSf#>!QE5YKxilwIC=T9C2H<-_+!43 z?)=KdLsQG)f&Pd;5W*ahoId_O=_(}d&5{M8B2#WAN-GTX?A;%m{1`hiIJj>znf&af z-%chc_W}JX!`*-6H-G!mXX&QTp;H_XhG-|VrcGQ9Vnmu4E&zVFlprJluCAg_vZk$4 zr&&htnh6qYqh^|b)D3$^b;_+jnoQHJ{YZG3N^9=|8y|r>$Px&>n3G6$)WBSh9B{^r zg8M@%|4gzy&uYT+*o~h(9GZz-eDq>uCX^<>2EFMCX$sBV`!;D5D9>q2fm~f%t2;CX zo%{cFOE}U|LN|4tBah1v=(e2D&OxjXj=VZYw^F&ekpg^VAEl3vgstZMc~kf zZ33lma2CufRsw|xbe zx^jKH`b+KQefQGQ{Jw5I(BYB)eQMd;3u*1+ck|I8FL*oO#!avkXZ|xV^PdqM`|sKR zDgQyRiCz52U>_Sh$PIE^MXp zCmg9Z)}m&u#Wiivx~_3|VeWs>G8HsPf2vYXnw0yUe6h29hi^>x#44(O(buR|tLFa` z9UnJ&W@OXCsx*%q%Fgq&+aeF1Su9eFe`ZX|EEE^DwKcX-@`#?Gyz7bII2RfaU40`n zGs7|TSY8SAhkXfo?|Ay|P}Dy(;Em6X563KcssvA{36JO`k5x^-D6SLfCCF5Z?C@&Pm z1-`v_#@coXebbrN@97hxVxOl!CiYAH{x_Z76BOBSATTsB6bKBniHV@k=kfS_!HI24 zgPve$Vw?E7<@m_dj?|FX=kpFFb~~&OZqgKu-6W3;`7mdjTHhMazHd7#UDb@n23k0R zaUKCxa=I}gb*|SfBaov;%w0J_IgTve%BJ&Vs^~^NT59LAiS};;cb3(v?Z6lukPQu< zYU*%E3&qsZW~fRwKn{q8X>X1K?g`)WF=_z?U#%|aMn}pve;0~{2L{5pX#s-5Iw0IY zz%+!7(uO>3K|(tscR(q0jL-;qN4{Lwc#-sW4v^I+Z1>TP9cq^$vOD9!i!1XTHEy|S zZXw&R{pNU4HB?Qrd!Z|47^Y!#!;K($0nN0H1ll6LzacQp5|#ck-EU%wWbt`d2Cu7-sju!Qg#>DKt#kn*qp|LE2VN@x6R-moy&J z_dNhnp>vF`_1CJZy8d$W#OLS_ku>kya0ftUIbPYlVs}n!(tKb2gFS?k2Ie)NJulZ! zm?9v?XHS}TdFE#?+hsQyPp9qA61s1eKCcBY2)ammV6qdMcZU-_$%bJ(0o!6gg@(If zSvTnTZn{OXV&lf-h1Nzqn|Hr1WaJLWvE!BY8A;T}0bz-pWObd)gK*feA%-3|NxZK* zfvieMN~KsxLPrDL2HD-l=SKOyCYvA>fqkr09L!^-0&E&G%q=FZy4EhG4$(@awX|~I zk37yjBI;cvam$AIt2Y(GTRw3z?tJKs6A+{1GyOed1-6e*7Bt%N~j>0diSsH zCHmZMpXlm%QYC%TZMg&f-q4QGY}O+Ne3>1=;Es$hAbPUd(H$Y?aWm%jux`(B1e{d7 zzs>iVX9~b5GWgiGALNINv@;pZI?O;1-y7=tW|A|%l$=SviErFtnp@z8p(=2TnUZP# z)C>li%_M)1hQg~p0T=g}<~!lmYbk>`YHI$JtEgA3-4JSagjI#2iMixd$cvQN8>7frdGz`9(wEtZ#Mxu|D$}+- zKeJY8JeN54Gqn?CM+SBuN+(od1q6kwI;*cy>Ag)|63=Bg1pI2u%9DcHO1^)HVkLXQ zgs>F$G0OP@%TFY0WkVs2B_+M7<5p-Oh&O2yCO^{o)*x#<-HFN88!Cf0@WplXxaIe8 ze{q{e+CJ+%YYWfJMRDGF$?`OX6+wELcyif_RZ#M+Kt*(+#xxBm@2ghcmX4Tn)k-fz z4@~ujfJui;lfPQwel|>Z(sr|zB}wD4m9{+I>F=;}P3sw60Uj}& z4iB?y_cXpFfADbnzCrb@+)Dc-{{V zmKVPB90G~Ui^!!SQ+h-vSb!N^q1w{`#!I?>K0KfggfXBOf#`!G`=;R{JV0x3%L`22 zY@4vH>$ekbll>vjM#(VgG&$Tw_DErKd7ZlD=KhMeP*J?357BwmVcASu`Oih*kksa$ zSA5?RML5cLiL>MNd>z&W+}1E^J(F9heC!>hi;A5m*v`Jk?m2$^Sdt9+hsj=_qVw@% z$BuuBt}hur-<`hRKHqJIFXX$+=QH5OU2tmL<_p6UAN>CKqYm?Ziq2DTH$&G8H~F1G z1&4h&(5}hsabZ^c$1=Nj=k#;OE2U(FX z4~5RO!(4VQm(|94pO)6N^tT-xd-@3KRlkk5HSK(xcJ=$?E1gz1KlJ4Y&`Zp|ivF#9 z*OEMjEYJlysut!Kae<|8v_=+~9SOP742v}J%*@605|Ujo`~EYAE9pRSfn@DE!%d_s(Z&0N&i!0sb~#@lXr#HR7%s9 z3VTZj3aQEYvBcT_F*oZS)1rIF`e9+*y)C8ACNM^MS7K~_GFjMP+FMxCG$8chv&qC* zzh7wg1hH2@?gK)88n$nv?L9kzl$ug^*|CLro|H8+zqn~cb<#O#B|xE2AQ0l1#6x1! zC@$kF4svuL6#A7;&ATL2Xk7b|W`yP~DF}zjasGkdfsTImvi2*Fo>h0B-K{bhl@kv> zc;fEDSs0?-Q_EfUFy#D5ezP|=TCNSpR+q?+nWc{OHjeUwJm+6~CuBD7K&zX?X~jb7 zTB~rV&BV5YT&|hzHMHc~Fz1S)4h%EI0QQ^KLYXAFC#l+5m#IQ+sM(2isgHAZE(e}U zyqCK4kXF*1lJvS(y?O6MxDT(5DHJD3y38(Eg3PEIikWyY9DO8dh$F)xK%wE!v{mG^ zgNB{EFEk@GZ)OVxB6haZ8hW-GjJ52cu4aU7f_Uv<#&UwU9O6+pFOWdKsfY4Kj5x1O zFE3AzOiYa62hSZr><4mYuFQn!uG^P$6Wf)i;FE)M$&U2pW^+w*M8*$O#9mu;cwVtS z%rxwhqZn97QG+^a9BsNxOp)aqY?3FCo!_hJ8EhJPR2)cARx{Rd``El+u>8ONJ^Le+ zj_io0ma{x?-Hml~@zB}F&K&*7X;rdclq?eG%R;_#0t-L8)U%=>=xe*S~H51Up)w#Q}J`asae(U^BGm+f5dLFv^h& zgyJMSeFmI<0!F7-yN!i1QM-9Scg#&Rh71(IfM%ij;v%tA5@FNt`~5D@`OlyCxa^aW z<9D4see1cir&%@7_X$+!Y+JAD_2hyQwb*pb%@eUgM?9_DTadKG=Wps|?sh|+OG zgVFvKdD~y(@0i!sUY>FKIjpDLs@ghnwj<2F?NY92WYFasn|0+DcDtg`o(Q#MLHV`! z+!gkPLcZ`__Q|*2RvH{E;el0$+~K`%*&B8b*(Zs>w%2S6;NeHdv9)##^YB%x2n8vM zRFpT-ec;4y)o1j=Vx?t2F2DNL;@?%%>1un#)sNH1?O)%kNOVY(Ct>tKbQL)atu1A`*!NI9WFM;@!E`$PwLLgKQ4;0eUK=_4LunFte^($6T z$x1XDO`B>us-t8TE=J*~hCl9Xi_pdyTNx$0+O{Mfa%DTJcX~j4yS8`d-lMp{jCAoi zXnbvGC>oFJTXI{r|a@lNW&SviB`56;I7+>BQ*rl%`EB-+ue4 z#@`%2e*EdDpJA_A`oPlCaB5&mdu(dz!0mS&_-%Nw^XaFb#y&eEoS{g;0L-d5?Y2tp z!3A(>dBP&M4lSMe|Z>V*cmcqoulLSpV7_u%MTQg{|zX>_1VY zM;a})#exh=VbjYx>f@re8#T`4!@zR6Vo`ehNGcc~hzobT^^@`cMc(SaG&CyiamSf}58p&&9kOlyC#4zVK?P!mD znZB}O!e7}z$P`m~er08G5k75ub*tQiglFmKEV~#~I`gS82?{=P#Ds45_crRtqcE-4 zZn*r zs%pePwClUj4O`e_kjQ~eLxW6ue{WN94GlV-SJCo%ZgB~ilYA-65g9^ryWyhpQ z(wmRU)_*&nB8c>uZE?m;?kki@5hY0_mo1`GrpUs5qTJUbyV%fFkI(al)05%ot*6;Y zlDS+Sm&khidc!?|9vJFrj~ z?)9dJ{Gmgy9v;~?dH?+d+3j_^U1%C{`P{wU{=WX~phxldC1qc)+t=%I_YBCnfG4>{ z^0>EWZwOz)J#@|qZ)Cp%tzQy;0_Yw#%`+eE+PEm?lFTW&&i0A)7KZeaL(c*w21Wm( zrgsr#-F_&=m>XK^W4*oop`L)~gO-Mug5HT}5Sl7_hejeH-qf)F7t~?-$gI{s5L9R4 zv2?F17w>bcTZ2P6m5s`7kK4`Mn;JSeh%JRWd;|VrYH7slP7bNrP$V}N>FK+5RQC4g zBEH_~uy_0xzFKNz0}<^trn$?WBLWPlKW(M}6V%#dPgBwF^yHpmawzcon5&m|BYwWH z_r!w_zW+fjH4yw5NC=p+8fHY+va{H`PR!CSoV357+mV@@SP9gP$zm&UoSp4JP{#it za^|Pm8xo82OD8XnIn11lY_N_b4 zB@h3lrX5YD3VXM2O~KPMkyKhmD}^%`67CNo(+;nbv<_t?84nU>DUk9x;0&#UJBSNX zGqK-?U9NXu_Pd`*Czs#ta=qgTxBv2T@(3(P9-4P`-%wN!dZWvpp;~mvr^E8J92shS zlHH1n5_`xY1Mpp|dXRSxbA2~-gq=~lnQWveXM&@3G%%Tlrt7GKFzAG-3@zQJNh!== z^#CDNzaa>1nmOk#)Rw2948>BkHfj$u{HEK|J271|$ax2MvNudstyb&xIyy|#J|rrd zyXx@4l-??4UD97R>ynj2OR{!Dus`-LDVaiRuL*kx6^4qPTB&CIztz17d?VL+Cy0lu z01_Yw0#!vE#6b`!b`^L51VDAO$?9(Qp=L{cNI+Aqi;}t}i;%6Bt+r0v<@k^-S&n55 zDBF`bvXVFs5s$N(IEk~f2`oFAjXQB-$KdAt{gg~L*=^3mv)OeLXA|_k?|W5+0?3w~ zSv#5OCJJ@oy*l3Uo&SHUx#^c`A76xB|sCa=-j*6A_tCoshjCr6zOD_t%!dzxuUG>3#<^2 zl+UJ8IXi!D?)b%v$Ilgqqp9&!XFD<>QFQk3h<%eP4hiTRYFzW+x@0_ycC1G_CP-{=((Fv`(=A;YH(wr;w9idOSp z`J|pFdpUsk}RP-PUZTzPM-NdKX=RX_%lFX8TI7gMwKmgTt}dFvxGQ;fA)ZUZoq`!!ZyK zhhtQd?v}&)0`PgJ&@Mh@o3oW|`vLokwlb=BvWpEF9$T=%65Yq_!oXUA^+@O^0B=$% z>0MN9uau;9qQH&RbZq|^IRL)c4jlrhHXT#Yp}QR$Mi7`gk4`_>js_W}k}@0vq7>-O zT5K5lGu(i(1z>T3KJMRPjOK(pkZgIX2hQ7WvK_P?VhlD#<1OQr^NiHWp?`p)u*58R z8I$x1Zla?5K^n+xq|gh$gg#_C+ytZBZM<~NxN?Fq%1CU5SB*p=9i1bkLvN|75xfZn z_v3BIRc3kZ;x}64rT&-trH@{`_|c1`-WAGOdg6C_?XR5e6zvJWsP_a5lMiIGIG~3? z1OWcj`H>jU8Ak!wl1cYH3|^*EG$- zngP*LS%{?TUP_TEG_ssl+@A zcHQJbsw0uOJoaAHg10v;%ECxQD6Pg1ypHA%qD4l=w7A;!|)2PQ?u^%!eb9!9n^tGB+m* zg@W*tds&?S5l`UdBr-EN!Qk129;=;j$7naCf z7>BZ|zz?2Zf_?YQy?=wAJ>pyR`SzuhsbJ^tEk}P#XKQro$nAy~evU=|2z^#^$p8rC zOl+Gjvq%p7v)@F!|G&efvi8|E!RO_@{w+UU`UJw)>zYNEb+n7)^8GVKTnagI^v)MU9XVIyB)#|<}S)QJh?vf^{3`!@G&dx`} zoc95S8uNgc3xAZwJMsBEuf$`qxDD~Px^E10^L~gZPrF zb#zsXOnr7OpG;l1rIPvXYkI4(LZ-%xSCdL=a4@ALuNHOe{-%z|H`d!)%vNGn2rYv} zP-$zHdX$ZgO$;${zfsI&if`x@{43v^9Z_%_v=0N)i7n(PRuBxdA{0w7F3^D@101py zBYx}~i&IiwnetB`Um6nvykpSusFGV}#Hoinzu#1}R~5A+&yVx=nTsa^H|u?ljX{7g z1e}?+kSOsYFL9*`@@To=>H&l;rvq2nf1Tx0!yW z29*N^GpjF+B3-d$0?afrMdSf!E;2~ZdNI>dRid^wH8cq0_`0lP9s#!xo#88@+sz@i zD6x58%C%a#j}82Irq#+cxyQyDjj_wi&%_#y7@LunQL7A~?1sz>0AorAX(&f>x#<=# zf*d118auPm%KZ3hVu}`d^a5$b4t#FuXOfX5+38%4ojuoxJ#!#2PAe#1_!vL^x!KN6 zGL+CG8{q1~fa1Ex!y+xq!)osJs2n}9GsQQ_MCr!A>$+<rbdkI_m8yzEhit6q z@idW<>ox<~yK_yDb((f_#p=iMVqT2Irf;rN26wb!$t|F5!h{zcC#S??7t-lFkBg_8 zkszDCM@C@{97DlRo!{@e{dU*>^K-|>qby|;@ch`C)vM(|KBi(No#u3huvAL_#Ot}v z-;m=?Ks;*_jnw59Br~^ksiTWk9bss^L2DG7ISeDk1Uww2kkK+lp#A|pFfyW!jH)MvXK?L|aKz&1r&8X7AR0j!iJ zRh}1UBa&rRX{%ecEtSZ`R%d|00)JwOll`KNLElM9E6$nPHwE?zPfE96gm^ zYM7lx`(R0IYA^@CY^4F5dln@BewLm~f!A8(e zH~c{%_2Dy@&s?T|ME941uUDP#_gX>FeW9Bsz%`HH_VzuRawyUcjf6)ZbJP z+Bv%k4kP;LkXz8f0o5~?A3b~a(aWTY_wd;2wNt0AnSF2veTov^1q2wfl8Z*8hT;cm7sS8WI19s4*B+qsMq689 z&51s`un~rZ@)H(Azr~{KZN};rW6(7SbJ+@E%t1JuD^?a7j(MI9zhGEbn)H-0kwwms z$9=v{--NH_iv%}Ee58&7*A=>F(?@rXYz8Afl($$`KE4B@Gl^DoHmFRHL^0Az1yi9~ zB|Md@YEAln=~&jC&2|_!T~9mbIgv5urNL5CMWl)*W2z>BWMNb%;AqJjL{4jREp)_! zEENJ<=) zzjloyP55UG*H`LwDmnB3A2=;C1hn5V#Q!fjE#r2D#ggffWtgAF`mnNfEt;!dw^egd z(yCTlxc4&~8*~-};)`gGUgv(>ezHxztRvqd_KQ@>fvHE5Une;@jHNh^IX4V(@*1_BT3HRF3T`SjzlYHMfKJ~2B!K0AJ=fyfH;LNhd$ z&5nisVth88o_$L{Dyvm0#)w&o4;7eUiQ^zNu0mBAqH5n6^gOA(-GR&cKTZ7;nH=o= zn#aCxDo+NQIt!hVk)*pjZ_nqs^&|3;bUJ8(Q=jni|1{hu#%W{J_D~6Ag9??<3 z$05Ivo3^8LhhZoi(cnlVI{uQHN)0K;>7ZMc3Cn^~lq=b6VE$Q!4$C&X1$%t7J1^v5 zs2sA>BAuoAYbXVJpFN+;cTO&yS77G9W(o7w*3}fmz1I&(QF(Vvxq+1wG$OpSW*|_B z>H@$GPHY-cd8N9|^Q6Y}oh|TiYV;o+n464^`TNPYaGFww*ET{&znk$5v!2LiuZ-Ru zaixNh!LTq*gEOT2p=|G36OeIwGEYV$?H5KlucXB?3JHQK?Hd0qr_yuSPsDbR!kIHdqb~ zvxZ^k_Zyyv$0hku$Do4`@MFuzr~OmP)Xg{Sdp)LdW0^L+}6`26o#d}wMU=m_AwvMo2)m0&7b4TJq0hh=}_$oB+ndA9=G=t zf3J%kakC@Ic7G*Z=?6v-M@EuLr1cqo;p2es{_zFA_bP($9Lt3YHiWX?7)tX!_xM|H zOPI`R4_mLKJspZfLZ8F8J`!B%zmjfW0-otG>M(o;sf02mBrPfxF+RMAd_bh7%`GJl z{;oE6Fu8QvvfkRYhpmH`xr^k~A3=clfkr|u|zKVGXNFr!;CLVBvPgI=ZWjKClWuy zzJ4H)|B&NQM?|T??zj%!oHU+zB4PZICoCJiOjSf=b0!p*AXWUrGr$mbvvCH!eB_(D zUnj*v1W;CQmvaH5Tv&t&w4uzH9af350o{9}wV|pTq_LrHs~hqr-B+VKZ&*&zfgX4) zr^F&!=+Lnt%Ny#Jys;sZs=Ps`YFWKTchWt~I%J^nbFy6v#FX)9CAylmSp;BI~W+m;_L;*w=i ze+ri?tT@_(^frr@E;@t&E zIC1f#7iqixG%f9Z)Mf@5Mw(awZ@R=`V_RAIEH255_|^Ge@ymw4Q|a$m_8-Q-NR< zL+w*57I%HgOQ(g=u#1q zdZqHb#DRsEBcaL3#k=l$n!g`<_5J*BC({w0ugwh%{M5d)#B+AvU3We88awvd#lq9` z5qV9n%|%8d5!6QwPkInzn@nk)Ssl-?Q9bkmwr?q%XgQkhbxBk z$VPKKes1E@vBjx}7pMN~#HA4|@Rg~>W0xj6U!VA|utGFeq|+in{&0M(U{)u}o0`zg zC<5>!vUhFa=`_`8ea_`LHkNk-=0SAel`SRto)vNGE%j^HdZXsSaP@O|$ktbr^yW1= z*t8+S6tY)+UlQl%>7M|9d)C@%vor9|lw}x33X?DB818zrd&S9Olh}4w&TqHr$iG*u z4Mpj(4#lk2p*=Wh-xI8y7#llL2`*cL=ryHreAa#BhRo5iD2}eQnNcd*-u|B--T2hb(z`cQDfirdf4f7lz*Pj-l`y zmX^l;zRsQyM1mMrd8U<*Auf}__u0)cMe`-|ZAfs4{-p^|2e%fulcCjaz=CS6rO5@p zbB%1;xh6vk^LwkHYtWNY;2l_Bm~@B6RI>SHVtM~@`u4{mVko<(Ns(jrMv1S`KXa(V zfsZtM?Tj-s_sn?x6OM2=d?9e)Kwxg*;PmvtfiL#i9cS*EoAEk*|I=jn@?`j_z~W+H z?kt>m*06Z&;8kV5*A+1+%Nt!pwOYSH#p^)vZOw*(x1I-FO0cf8XfF8X-mG?_=A!v! z`TWwE%lw`fKy1;RvYe+n^yM?FdtZok1c3LypJg-O`27dp^ol+uB=`$Z1(E?K^QpbB zt2q!5gupLj$rQ?!>BIZt_}$RrQA5j>v)}DpeU!ZEEW>RDe@0) zcga2Cj*t1K-!kn>Md*6T?S7bycm5%zt*&c)%U~xxQzP(7-OWF@95vovOm8buk zMrI^=4{BhbWtk>tn`X(jWYNlK8|mk3qowh5_HJ~`0-|&P8?qK)o2R=I zvChxO3PbL^!}W7)4?Ajirvk1XSp^tOKpud`_YgKaZS6#U6TfJ*G87aHgJe1P^V4?`Gq^ z56h38j^`tzeX@&T*B?NPv0I=W!oxukyiydp<77eX#>40|y#=uhoPTdN z=d^>7hn%&JLf*9ooIJ^NG^qHzistq6$$|U~pWyGX${>g2NKkliSU7awFLOiigSB@J zl!H;(>zDmrb!=v3=oj{!f1qv4h*w?5`Izn)al3Q5a#`T?nC~ov0~LfOc<|}xJ!DJU z(#Te4r=ZiY|EArFb@~}98tGGA_!OwD3TNZ?0oGl7L`uXVq zX$;-BMP>t?zn}W0@dTN}-ND(1COwp(Db5N$)Cpv4v0gvmLfnM6-y-?UDR{YYLym7mK~wMII)$0kE@mzm^@kt;Ni}-Y?d{M3x%c3aI!Bi4O9`{k5TPWJ$wbB(gx$sQt?8n87 zYs?{rh!Duk&d)9h4{S~@y6L>-oETk>yTh5GAuilnPpM<#yTd7`!xzgAOnb)9SCyjl zjjxGG5(;PH+`wQaj+KL&dWI3b|Gj*sGA>`_#$U{3}xM#M4HLfN20m05D5(@ zf;UB%7Eb=U{$OX&vUGcLH5Yv*G&Yr7IezG^7qQbyo_V%pf zG%d^5VBqNYs*_b&UdO*zqdi`AP~}X0gkkNEp~c6wM>t}UsiLh0B#~*>Jnq+y1*+A+ zF{0F}N;l$=2`?iNc97{kEF%T#iNY*ia@~l=wQ5$vm|QV@k*_wlt>rT|*OAD7BRedV z+1R_hF0M^j@9i8KP`jEjsSQV0H&&y=M6SuC9vi;0s;aA3hGW%g)sQC*e=+c}nlU}b zfDxjXRbg$4&MQ{%8uE7ZL;WExzo@F^!Gt|ASXMjVNkxNdFq$G7(hNs%+4;EkS|ah9 z_9~K4UwIXuGkEPkqob19Abo(NQajkms7#c?jr!6T4$Ap==auNGsJe4M3EiihdE?B^ z!GlVk?xVZzyH7cNx{DdIgEO_#8`%Q**f5V6vU!)in}y}+j-~VOm&(%XT_6#Dd2PAL z+)HgmiAmD2F6)K@@kJI!+bt7OcM|SIq>4uok#Z}zOw&<-%elF1fp_paV`HUKuB&&& z=d#;_0bgoVk>&=E(y{r#zdao}_{0|xa$uhmmNbnc_1a80cZ=$1idiN2Z5;fXR8!=pAwo%a9kEyEk z!JFpKq7ig~Lr@7ZF%Y4#uBy!@UqyUD|F*mZ@fN}8W(}#}Nn2GFWm{D>w15_62)Kv@ z@m(kkBL*#>Q~``30;|CjZ@?O2!ne^6kjKG%@vu<=w3~{=UW15;PIUZ_jQggieHq`> zv~N6;i`L~^goF_Gc{^KPUr0;{bZB4V#noVxo0#Atpk}9o5%>vwBEd8rCzXcazaNB$ z`~7e_FaBCII5@bxJU9rltgj~`xIY88XuFA7x-j>y)P9QMWTKoE`TufejgFH;*#-3_ELR!uhCK)n-j50aH zX3lhq${wXNmG^Xsw~`t5o)B!k*RWwY2ccBWN$DgKwn>!4mzYI|PBw zZ&)?NQft5N7_bvJaoe$~w@pN9?;pKdjwzi#R)UMM|M*+PMI82SZKES2WPjxMZi-QT zuD&mIAZ}V+fN_{1xsaD8SLb(*yA;=Lble~L z=0^YRO0{A_edxo5^AD*u%d-WPmb1j|R03p~kX@=_asp!FQ((`|2t?V++r=#4q{{ zObjraWEkw7P=V+TvB+$ExjpfAZ24vTl#}Wh>3MVQiC*xX#&VvcB0rrrw#_xQ4~XYq zd>rP?`V2fk;P_tZW;JwaqZ3R4_hs@Jst-QMrp*6?W&Mrg6VcpY z>iCJ{L{Zi|^13oJH%G2upweA=NY}jCvi_OqK-}l|N9k95Ai6Fk_wP?ig22X(F0#2f za~O~1YmZ#%Y<(T$0^2imp3Yq;94i)edEba01rI7@AK)*gE_|lRKuQLn7@p-7|0hdn zAHd0@u9xXFuf>ZpVH&T;cu@xa7(AkMY2J8_Z>Xo1J6p>)W2x_5s}bj;5NI0R8Id9I zQvN2uR37`Kv`-X$e@2CsNY2*f1ao05cm;rbdMLO`>vDM=;XcW`#m>&3588n_OR4r^ zv2kYB!wnJZ4Qs6hjlNNw?X{w=nPQU7Zu<_`wFQ~(*mqAIn2iQyzgO10 zK0fiGVDv$k4%hPH?2%F}h1feg#KW7D?9|L z>?p0B8o-H=me%|?4{LXvJ6Ah<)`l@$d7SNY%&Wt&IVzF~DN@N9oao~cCxoejLWRYN zY#~ct2}Mva4Q<+?^F&9(n|AvrMt(LMiDt9W0q0tf?hc+Ga7CeWjjRm}46F^Cv)td% zrw(|JII;laSXc;|*dP@i!!_X1{eyDAmt0w#Jff~%{OHA_`E+WZ$5}t1u(vZbTCaU zz_@5#lu1t^N@u$_8{(gb!}&dNwaR;x@v|6B-pl!kQREEuS=Eu#Y+0_t^6lxE{r=43 zpIlu05))%W zoX0*^DVHP$3dSK`zRsPO8P~zG7!KCF&H#w`VPQyJWzZDF2GA3(qouL4kIsZc69e{{ zQpm*%nYp>R%k2t8Mia4sFP}EU*M$nOrp6iz>rOnX279ye$ z?HeqZO6}}uKo+~f(u7@l)~l5_#1;Zs#D#|OH1E)%TE26&Qzul&rj50+LlsSx4jpui zt8Q-4HQVN<;oocP*>c&g=bgidgFX;E-ax4)Cs4R8wRs~90eV0SR+!8E_|}%fcL7g% z1}E6-^G(t|t4|I(KXpOUD>C|?Mr>=4g{}HQ%RoLM9v26BnoX{=(a<5)g$nnf8n(mvUckl`4krM3G7V|9*yU+W7n{@2aT8*u*iLdKI<{WZlKz0r6)(P1VC+q zSS-_K1vv)>Q;1PdrPO7`{A4#}?^rnOni$wz<+A4>nXiTM^Z$Y6@u3CaH;n8(s^NNX z;XgFQH-yXyM#PQFKf?LBt3Uk#-Z4XB+QsNVrDRSjL2QPLeqOgw`d+OLUpjJs?0#}0 zc7Ke4sC6Fu^ka{GI(E4bUDO^pmpXSYeOtE~>Y zBtzf)=J@%g`M*6yBH7qX<@lM)Gr`fs=otA0dL8eGjizP!%;iwpd!GDiAQ9-i`c1jC zv__sj)%ic@=`)X=K2`~alcBL`dSz?gRQR#e`N`C1eCfRPsW2@PpMC|S0EPZ{pg;XT zdsx&~gn;F7yv2C_U)z8~uUQ_(yUpkCM(b1C?nGH8N@wx{aAFv~=Ze6m=|jksMG@!o zvH(rd$abBdu&j%^56{em)xXDcMCEJz3#IF}`M778OGT53Xv#Ch9m3Au`C0s`5^(I% z6`6hnua7hY`tM-w(BW*Ho|_sPN^wJ;Plo&raJ)4@ztPuTZ@0a^RajqTOJ8qRhv}KG zSpEEadA`A}plPjLo;btq96}xOhWr;r9+xG<25lJ6s~Cm5LGqn%A-hh(lcW87pWQj*& zoYgFke(|UM8q63cgVB_?s)}&ht-1h zX=~R5XrPJpcQmcqPacJpcH@BDwjtC$ONa#fJsx_sTCaQezS&k)-Kf(!_C|NPyT%H( zp&KPR>owY_3a{SaEdw-d`+L_1<5b3wmfyU(b~Eu}CGp|Ct7|k9AE_j6RAFBf3PGC! zVnu@@Afai2L(@V@-+HeIqcMNzBkGaVC)& z4M1Kv7;fbu53lgtkTRCZj44AL-S7<2$B;=(I~>!AOc1?xLpDDhjsF^Pt`Q?zlH55d zmxFw=GRRCE`3sJC<^qA&C(b5P!{K|>yK-x(L@-cyhB(+A2qsc%xx3W6Mut*}vlAAs zgdv7E&q+m8UO5P$&Wf3^0Zm>mW%{C+c*};`je1HM(NETVW;@H3OozBMv4L0NLu42M zUR-}<(eI!i8NEoK;hC;^5M@cGWws4lGn<>N{7gO3EmqDv16q-^TCMKf)ZWB@b!Z1T zg6%N=lwkCY)blAm^#f|Z25Y%ye_>ivwNluu-L<331Mki><`~;Hai+!P>t!j4WMD0?Y5;? zG4ud9zfu$(R2pF6H4wjjQrHl#0;k3n&^Idz&v#njfTj<|8iQy@&mZ!$Napk-njwQI zn!NL!>ekklrs-jW^hv5$-at18scO3O9iFYzqWyr)ai%-7^`o@kX#e{esUSiMfyd70 zo!PaAwhqt_9`t!N2ny1?zD^UBhKFzici%YsYV5QBiDh2_dU&0Dm!9E3d}5Sp37jZ` zBxihUt>z6 z8QCt>A(me2k(CssRj*quHX`x`Sc-)v5=$XQbBKabOXr&^-v*WYlXM>T{XgWPgH*3j!5@Jet z_HFDo&eDHWv&O6fPD=u;fMsTp186$1${Dxh>{DNV^&^+K(AeA5^l73axeo}#!@}@o zTvjg~6QZsQXEJWzG2Q%hTL6v(aEW()6IvG#pKIEo+sPR+rkf+SWNG$*aHOz5m)l=B zGJo*sP4U_3mCD%M%GA`#oOJur5{^i$j8T+ImmFw=cXOFs4!L;}c2Nu&`K1zOs-rF5 zK096Jl~hFWOnQ_^O5w}Xv-b7E5#hjWDVaQaa2~6DT*)s^3n@7+2yr>p1N2UE9#dG_@LEQJhye0Y27_QA`Cw^)+TRw>!bbPRm z*2B6cJWg90c>U*X3${g;K?@gnML~|_V1tb;ux(%=`Y}>$m%k&@ER2bVWT|q)z;4<{?(&@mqF^MR{ z7*$-@*sh_RqESI{PeS$*#@Mz@4%8``MTC zsZ>5$MP!C5EK)`0VaGjR#y!_i2u!?#uezDzlbC=jn`|aVR@Fgl0 ze{gAS?b-8c&3+pd z*e^^)EA7j#US3G%0kUJM=D6*Q$pDAi0w{nL5$y==4Yl1?H)_>ptJT!tS!(niHJvK} ztj5qBMTz5!jnBrB607Bh3y=WoeG3?e+$m(Ow&qq?ppeD9g|8jx_5XV*}kW)@&g# zy6UZhcBUq90qE_`**8;*$Ya3w$8JFW^^Sa}r5&_@J5kxOHh`~Sgm~A}mVj{p)14|e z5HohRx2vWlNr6miI?gmzS*^ArBaEiLRwMaZ6;acwwt4zwe~*@oS|7T_D!P@hLTndu zr#@e}_|c1nr|u!83sjpu_1(gY7cah8cnUpvj8|X?W6`>UQL#Xty!&pyfN&w#1oFQ3 zy>A2`E=o%5H%=zONEtrc_tWaBQ`d;!^7}@;zWvu`5f)}=7ReZ)&jfJnW*M4swpfP1 z0U)H$xFKvQ;|`0!U?E85iksshBtt^ZH`;C>Y)}L)C)3|?_X)TAgk#^q)bc>Y;kf8< z6ypAK{+kBE2UDqo;ej(J9F7z2ChU6>wm;9}Y~qPHpMN2|FnNy8^YrgM`||ni$%*j7 z)}Ag4_h<9LBJ0?d*XHuo}nArb1T+M;V!*n$;R z1;Z;OuGUo^7FL^wpT!Q+an&Ne_nTf!UGc%hQeffC!op-U^1kk?d>$pNXA?`2=;Q)D z9QePiF;ev;9RA_hS-M=fgBSy*k1`+%c3*3`3t}mV=Ig~6FdgXw)1)@1mJ}+%DN9qE zM*PvFlp?@;Ycir2tHJjUz( zh6npI;~C?Qjdbk5sc{4{w@gGm$Yuq5CC7#7Bw3Pj5^Uxwm3cbclwbwiY;==$e_q7A zS4@DV4V9U;Gla|O$?1=Z4mv~a;DFr~^||qYbI3e!`tUvW zzoQ*^Xcfl^d(h#`y6l4vZp`T%bGirZuB_7$BpxS6M(81@ebD2GJDqX6chF8Z9U~6T z?%BHMuxE%g|IThAcyj9kctn997HU@ETn(Rz$ zElusufS4Nvz=iMaLtvy_uRi;4>()ais9Lqqe%v2;tMgn}55NWKh zSJxLlS7l!a==nhBZ(vD=tWONDg_xmTq5=ISL9QQpc7^IbD~Sr#eJVH0PR+9M9m7S;Vj7q|!H3dN3Rsr1 zw1ILt2@v};SYbab^DYrhPkI$AdN2lQzI7_2dOT`o>a8$0J#GO9vP@Gm&RjGd9vlp( zqd8|=Ta26^96TRc)HbNfuUfF16OoZ?Fx1lp1Qo{vfp{*;4VnFe>5v26Tm~)_LiKTb zXQy4ORe?mk(W(DX_4^+l2Idc@1*^7I9Vy*{aU^1>5Q_}O7bpJY84yX{*hp=-bMyPp zo_+jG+TC8jopfK&oj&vU*|YoSb8Z+9rsx&^KHl-N1vjZXqr!wEb!XHZ1g#kJsh-zq z&Zpr&!|3U2Q=Ch2dP{u3WB1hPCloAsor;T_BIL%0zLW8abifj&RRrAtwy&kMeUN<{#`NRa%>71*Rd zxS)ajmg*#iSE$?cxx zxPaYVbUQ~~H#+dU)}g-+o96!~{2 z&k*j+BvneqiU@-Tl^G;)k2x7Ku5*v3QYGW>jlTI=g%tHh z$#TY_-Sag@!CxWYCNI!6@XIkwK*T=ebpBGbGcdfwXC8k%efQmu(t*9HMDM;k{rKbL zg%@6kUB3JQJzq=yz~#%a7hYg;#W-q8fKWP#?Evs4P}O(w%!FEEVd6XvVaCCqc>Q^W zzIuh&ZceCb;^q_`z25Qcd4R5$$VqK(9T8dzvFdDnu2kL+?YasfBUK z@51#z0IuLy$${tL{LkQlZ{d&Lg-d*gU71>-Jv)A*_`whr1b7KNX;jJUldyNF3{@hf zQb|*4dx+YdopKq}CPn$Ba&LSCAS+FNAJ|Hg9%#51z7o?qMj`K2Ro3@bJYLX8N^k@) zG$a#i1!5{3H;~?g#%QT311B$j^y10H!PSk`r72kk>m~Wj{2F9ttj#BKCje;kME16J zyJL))7idfPtlfs3jiY#%ECpUFb9yqo)u7pfpksUBNMhmDg~U;B{@HvYc_DcKr<6Ji zVxSAV?Py|w9)EA19!`G7h0^KHe# zi_|s{7Ah4;3a4GlY)odSYQ6d@Uz0T^0Mjoj3~Tjj9WVoT7}x^RCh4*0(5qOP%;r>L z9o6(n7^S-Sw6Txau3V`qb#O$CjBZ3msw0t3i&RHpJJPDEP!*G<74%r{Ky^D7NgCwn z@vbx{6(uA%a6_&|8cm^S4WjRpLAUan`sjmR|G=cno9bLkdCSD_eeiDgsGEr#FWqww zZI&;ElF8q+JH5V-c)hm&9{6#%K4dS}VzO_-q|%2LM3v%toh77OKr_)>o`81i5js?!ms z%fxN^LQ3@aU}>r{^JHghdz&E9-I#G%E@Mo)B}v{$T5Jhp z#YW}uD<{uf3t~5YC#qFD?)daetE*S(=cJi6&f7|~jeL=|$iyDr0pL~*W=al;(fL>c2Q@lHX?PFh ziw4yyv`!h^PjY9c+G<&Roi6>YmomHM*H*J_o$c!FDnM-Y=FxrMtj*a{mwlaM8PhB{ zB&2^F>`gn2*a~pmI_PDXUNlnIX`7>+Pg!Z3(Y&iE+ZZ6iLN1WCnF=cgV{;Y4EufPE zYja1#zzYo5qrWv+oB#EBm6!|#^`l)Pn88QFcx@TdQzgUrVo9S0o@M_>L@)mwy-(se zG%!Y5VD$k*r~gIK>*wx|1nv7gp3P_%qh|--4Q=^FeSl?{DS#G&@KLT{F-T9t;#%GE zJ93REtSoEs{|K5BYLhl(jTZG-H{+Vi<%&^3xhUgk`b+xX4 zb_Zk}#2cyU?ZO(@2*|y*ke+mRBi!Cby}lP_FH!2%y%2k?+1f1A$~FQ{7dmhOkYRsT zkqQXrCl+!)hWuyy(da|u+Y#&hoq%5WpONZ7vd9zV}(cpu+$GuFQ2E?6zB9>ueM=-8!8$Bq}eIJ}I-AcGP8l~4v}KaNqcNJRnS35;AiH^-6Nj%I{)W%Sah zvVKeOa6R$X$x(%mPYd7PlsA{7R7k%2rt3CHbbKU#cq38ImnM_NWrdCuXAThdBv_;~ z@+L51QnA95>fBqZpH67i56)@bHI_q7WoA-EUKFmB2ForT0$W67ZqD8k36fASc7ljWcJAEUSYijU)wDZa4u@a9 zLo7Yd=l1{VAZxd~2XNPJ;oz@<;5WNQYPpWmGH|6W3 z(O-+9rI|4u{rBsjy3m&(Ys`!lC^mTSr_01$Bmp%%ak`en*=>e-8RO5(F z4#uqH#^1Lrzkkz6la^unrz21UadAnb+OAeNYBk6f!WAr2+g&C+&x}6t8ul`VxLL1j z^g->=|8!_;P`M92?2E~My`|v@DPpt~ebV&1y|bg$I}Lo;@FRHC7;$C&rFl9t}eyjBR%D8rUiuHEeEIik6r@Ga-X(X_`M&Dmdxk*8y>(vVU(t;Hi1 zpYqLcXj+;+{hs*f+>&P*puU{NQ8B;lOWSi%x962u=YuiV{LskSiKV&w(mnSEQveSthEph-RtFAasw$5}fO#cCS4K@AW?Sz` zQ@t6YEh}@oZ&4)mjbzbYpKK*2vNj z@;pk+HXa7s_mbU+h76s}UrgsmdNU&mbA>@kg8~Xa_i{=&jclRDXKM10u2kU#f{<`%! zbW1WF^@SVOL#5)Oy{b_8+TNZ;7!9fXLV(GL*_3r%tjjdcJRkaP^5!=7JUVY(RTRiZ zS5jBjQ>jh*sism&Dn$l)z7+EF{*a=jQmOTI_zWrNKM_|LFW?PRGVNVhjw0~WnQK2iP>0kl2l6C>7O8QZnxxuMz5TE zc03v0*mvMDzu(~${GCsb&CbSei>ZOPc?$8LA8aL@qTlax9Kjwh(enO?{30vQ28@LP zdk#cT_>{50Z@K;cXU{!0&dnv|jkSF*zun(?5{e|tQNfuO5(B>5J*oI72S1!}{yCPZ zQ5{4>-YnqtV208nwCqX|JG+LFUR3O_%d6|_t8I|)sc8S5C)U?(fRj#JE`3*C9Va5A z14ZC$jDd_rOD4quJD(v9I-aH0+g{&EIi=6VS0H|YPbr$uJE*2GSfb|jX*Me}XGphF z?aI90wr1V$04+}+Ut-snjutZ}6JxHu-i80>_-t>OHY*_(OnrFP&VnL*rc?wa^K3z+t${et<@f>RskgbL$K$*6*2(( zo?QbU)LW+V&o416BPX%13^9MaxEO3m?f|WJibGm~zw=&q3*^eQA z7yy2<;}Dk1xpVscy2+AbIz62$OOagkPIdZJ$T#E&JB9=N`T3h4lFGSgE;1RHy>|P- z%0By$*Gue!zM;uzad6-!rz18j9=~{8*ne(+$RG1~9M5xZXKJ?aWMMAp_71pWQ`3)3 zPsJT1?<5Bn50%|s*Z$*&RL-gR($j|k1S>c?8eFW+NRiBBcEIhOx-~IXe&A?yVggyJ z7bfF_#OL|3Y}xK`4chIY%>Kcjbi@*q^D`?eGXn#3_L64D#WBv~AocZ6uQ$@ycM7tj(YUqwtQxULE9=d3B{ZJ`9UkaBF@hvcs z0_u{|RFF!ZwCZ(}-i1obOOmvdQ>&vRpf~~?Ek-hrjCQomO{(a&;Ix((8C)*W5%8yx zKOC@C!MNsTVK6B77DY4JQ#AVl$6f~ccxaf6_+IjZ^=p7Q$jzZ>DCqD!rqC%;PUVxI z_lBL1`2uj51paq$fNJ(ae4Ywjlcm@haJ5_BG)SW*u&(Iv%sMj$bV+HxEEah|Cp~2% zBSY(+*S)o5B=6ZT<(Fo&q0wBFPnTtZaPIg-VWFVXXH^eIk+fCI&MxJp{hmA(-lDnD zZ;ZzM#Nkd#^1hp+!7Cfl;2$DjHp;2Y&X2bAEV##jR1@))iCV2T8dQmI>>!H<70Wuxn{CLr-=Z3dhUWKc_3vzar%sv>P^U0UDf_1b z0{1YCe4lb`vqq(*O+iqNDDAqAnasm1Xhdlvq(ztWv5P9mWeobqBAi2>LG}CJEiQ8D zF!*T0>FfIzmM$E0AINxalBSlHrv6Sjbx#AeahDPj>B{KG9gE7;!GlxbkptP;gBO+* znPt-!NRxb>z9*0u(({19Z5l}{6^+<(7cS(!%W}8cmE1jd=S~!kAva**Db$%|lqD66 zhB#tdrSCeyxdoWhAg&B&xH4duz^qq^nSaIzWH{$-|2Vwh}YqA3`*Q> zacBHCP8xKCgTg?1U?k*pxCebMhch(d9d}@K;d^lT6PER_&@zTxL+)WN=#)KVV1Rh! zusk9RP7VrgJ0W&AT|JA53Rf`YGlk1CuF$8`q^-D$^9hd_-zbOUXeJofORB0W)8{KU z5HNqIwz07ZuO#>$HYn&3R@bcAsl?!Q)W6*Z>ZwuY&n+!w^7%|EH8C{wD}Y^EL-KRd zKGa+qFTQU!n^{Xugr-7Uh+_H?j61hs&tNj-?p^^nZoKyzyuVH5c zHX05wJCs~>Vj?hkNLt8C)KPBY7 z0OhG9=pmBmQISe+PAnSEU5A+ABtrF$S2%xkVI(meBB8PHsqokbQ)kg7zg|{WQ&a~@ zy+Wo*B$OVGho6atPt67WA0&13%6I;ud=h{ZO#W~B3~V|eXcsWl+_J)kfDzf&4RhrS@!IQ5F_nU0AsM>4p6) zOm|~yF;A5IlWTe9;OWZ3LgmLVFD&*WyFg?`hBy7Q7lP|4mUsHu`2I(=YX*lg#Nh7O zZOC88jEs`RI<7gX@A*x3ikW{q5&2wU)Ak`pw?1j$PGKEMp>UPX` zKxf^&3N!oFUxM{tdM904Jvj=tRp4oX=fcvaN*OT1A@W7Bgu#_Ol@R$N0AaN6IGT7s zxtKgEA5C6V9!MO$qkjkCZ+OVu!6M%niZYAV7a58)DR%jzBnwS~L?y4RXiz1vC7RdN zdX1mNKrFR-D^f(Ir~;&DWjat?0f2i5fvLTLkz7yIYR~H{vbF(32Ygy1qktD`dy&o) z?_dnI7{4t62Lja2LEtftnqY}wnJ9FKt&qFdj~rPakEJ5QqAV}+$3u&0wkJJm?ji43 zxo2g3G|mh1qRcOil+u0MX8Zh)EW3u#c3BogE|;sg;cLD!Uo6vc9H2+ZA5*KpDG+&UM9!xKfCbB2`EI~nF=fiZKng(1nRXXHowFZkOZjibxBby1>{pc4ATrD1R^{O`X zp>{DlSu9_r%K=s~wXQ^xqU1i*zK|IiLQ*tN@SqNkTOFfn7P<6%Gw}8N&LU=--XN>vg)s}Bw zolie_+E1KJ6>$>(>E2CJccw()-nZW)h-s(Y?o5lpvGUFP@5ar}Zy-R*orsar9?N8I zS)3t&^E$I=tgMb^xtZnV87@2O@p3VETKEi(is_`1jm5G` zGB4btC^vog;xWr;6hr&4$TCzIDko#ktsqN0`Q^k^B9WX*CX%Oq`BWm&v-K5NgFOkl zl}z+(8F*&~vq*&DV)R-74NXq>p()IIUC3yeVqF0s(mJ&8hzbdaZ3Bk|o*rVw5{|cE zQx}6HhJ;bqrWaQ?R#k-sm69Jh{AK&-F!DS3vQ%h&7q(r9ab!=SWgDXN6ri8TwrSg8 z+ewgOI4)BuL#{&+69(9(u^qCw2r`UZqbH&d(jrVD>ZY`t>~pyIar$Llgl%=cq3Qpcm}T4? z4#$Vnu8YWiWW%^oD>G-nh<*s7e{b(h)F#q_7*0sY1P0SOB%juaP37zLoiBfxVC*By zF}8S6S{Pq(*7jaH+UU2ArlN|31hJy%W;P@`y1R6PP^SO8RA3gOV*fYacjjI{u%1s8 zl#yTZ`JKL_e5$l>e)Pj`hu=5o7Yc%(1VwRh$Ui8K_J8lS55D{M&5DEmp+QmHW7jDC zCQRV2dK|8!LaG!R{g9J*Jbu4teTV~61@=+8t3%uiH#}mq=-v$NTtN0FQ!Lp^eD6i zgI5DZeCwt5UZBoJ+`UYAG_|BcFDq?a<=y)AiNj;EafuLdK*fNuOgtM)WqKNCPcR-Dy=i+4_<22s(Cy3B^igWm6$AGOUzb!=e7^< z##VuAWXgSt3>9*s0NWX%U{qjWzu&vO%o%cqI5%I>zl}cI$s^cbB0P}d)VNi z;ZhivPOSDj4}iSQ9!|9+^0|*^$+`mU9G&p>19KFy3GAFPpG~6Lht*O03tm*NR^)B? zeUX)JT3?Cu1=reZ%ezG-e>PxbcCHX@MR%w?|0^HmR~JPlbm}uRS~B4$wCjjnvi>47 z=bhurE~Ab|LtM%Z;A|3FSK1paQ+BB6YC6Sla+GLA#Xn2_?<-J&yz}{9_BKr(o8_xs z*L(XbUoX4LT7jIVjlpi65GlzgN2Rj<4a2(=x*n-x_mY~e@0=2`O3tfXLu(sX`i2#uRnE;^xsQ|G6 zxd6cc$pFy+*#O}H=>YKn`2hg|2>}rS837>yDFHD7IRQZdNdZv-ZUL16tpVf$3<6aG zr~<$O>H_=&4FfX+gagV0`2-{cU<957#RU8XHU)77q6NzZ-Ua&xBL*)9Mh0jGjt0dB z@CPObWe0-?st3yl@CX736$niTTL_E@*$D>;C<#yrW(jr)v0k`bj5 z!V&Ef2NE?BauUB2H4|DBg%h3=(-ajHP84<&q!hjs;S~fGFcp#&+ZG%aVHTMdycXUU z0T&||Qx|;~v=`eL5*S(-lo<{gI~jEupc%^=3K}08Ga6hPdm5!0*c%5MFdIr6c^k?c z1RNtAMI2rnavXyk=N%9oL>*}zjvcBUw;j$M@E!ynA|6E^a313x^dAf#Dj!B4bRVZ5 z*&q!dM<9D3uOQYT4qJ}_l4pfKDq2{9ruJuzA_d@-IezA@D@0WvQ#Pcn-#yE5-H6EiL|Ni%3Oelw6W z-!t|!7c?$3Su~L}qcrn188t*TRyA@pq&3Ag@HQGYLpFyt!8YqR0yh{pHaA;0jyJhC z^Efy-T{wm~u{ifR9yvrgX*rTP>N)#53_2V-EIL6tS30vg%R1&e5j!?JQ#*(|uRHoY z8$3fia6F(q-#sclRXun;v^~~76+T`*f`vuu=|EUQ(n|;Zq4y zF;k{f%2WeXI8;kih*a5B>s2IGNmX%GqE*~h09G_sVpgSA%vR-B0#`U!Nmp7|r&r5Y z=vW(AOjv(dqgc*a1X(p%kXg!E_F5`hWLlkC##;AVH(O;}lv~hT09+|ts9h&rSzV-E z>RuRLOieb!R4Pr-PY+{&V^kX|?eq+sK z3}icGdStF-(`5H$6=gShOKE@qx)&1U*%P-mNG-Dn1ADrj(Mk7&qg2x&5D zQE7Q;rD@7)1ZpX2SZal8yK4DsKx=htn`_r=>1-5iJZx%gmu$>z@NENaW^J2o#%=g+ z32r@ZZf>S-yKcvB-frq{|8FF3HE%|5S8s7|f^U;=w{P5U^>7_eYTDRX9XqjTM&~^WI zLw0_4s&?mhDtBXdhj;9F6nH>*V0e*uzIg9>HFl>w*k|GlHOk!Gh<59)nMVcZ0}-{Dd`xhlIR^CxuLfe}$`s>xM9fYKEhR z+lLc}LWgXJkB6p*#fTG#J&0_Ge~6lh%!u!a3W+p{QHgSior&X#^okUUM2dHcn~K_t z7K=EGe2b!s){F~`X^gUr$&BEQ6pcuYc#Wowx{cqB^o}l$OpbJpp^m?f*^c{|B)<_SCNE~zLDsXE0SfB*^>s7I+JdbqLaXr>XZkRE|guAgp{w8 z@s&`OXqA?gzLn*c50-J3>6aLnOqYI_z?bZpD42+t=$R6kYMG>&;hGnkSDKTWy_)r# zE1PYbshiB3?wk^wFq~zaew>$_yPWEs51n+Kw4LIf5S~_^fS$3Q-=8XTCl0G z)v-kY0003100X1|umBhU000000ssI20RRC2002M$E&u=k0C=2zk53B$Q5400j6d1< z0J5+aGKyp;MHV&|7FH%+C>a@)@(FxOpTo+TH{)N*;@x}hx#yhj1F}qUNThPWOfSL- zikc#vB+n(r4im01PJL+76u8AWLzz20e0H4Kvu4SP10@>NacK$-wDrYrFjO=T*)pdl z)D^c;AHRHoos7Cs+DUaG;X_VHh=&C0C=2ZU}gY=|IG|W3|IgF IC`19c05ZOc4*&oF literal 0 HcmV?d00001 diff --git a/docs/api/2.12/lib/abstract_type.svg b/docs/api/2.12/lib/abstract_type.svg new file mode 100644 index 0000000..8a82052 --- /dev/null +++ b/docs/api/2.12/lib/abstract_type.svg @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + a + + + + + + + diff --git a/docs/api/2.12/lib/class.svg b/docs/api/2.12/lib/class.svg new file mode 100644 index 0000000..128f74d --- /dev/null +++ b/docs/api/2.12/lib/class.svg @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + C + + + + + + + diff --git a/docs/api/2.12/lib/class_comp.svg b/docs/api/2.12/lib/class_comp.svg new file mode 100644 index 0000000..b457207 --- /dev/null +++ b/docs/api/2.12/lib/class_comp.svg @@ -0,0 +1,57 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + C + + + + + + + + diff --git a/docs/api/2.12/lib/class_diagram.png b/docs/api/2.12/lib/class_diagram.png new file mode 100644 index 0000000000000000000000000000000000000000..9d7aec792bebaea124455ad1918fbf0a7c1fc9a1 GIT binary patch literal 3910 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 span.toggle { + z-index: 9; +} + +.diagram { + overflow: hidden; + padding-top:15px; +} + +.diagram svg { + display: block; + position: absolute; + visibility: hidden; + margin: auto; +} + +.diagram-help { + float:right; + display:none; +} + +.magnifying { + cursor: -webkit-zoom-in ! important; + cursor: -moz-zoom-in ! important; + cursor: pointer; +} + +#close-link { + position: absolute; + z-index: 100; + font-family: Arial, sans-serif; + font-size: 10pt; + text-decoration: underline; + color: #315479; +} + +#close:hover { + text-decoration: none; +} + +#inheritance-diagram-container > span.toggle { + z-index: 2; +} + +.diagram-container.full-screen { + position: fixed !important; + margin: 0; + border-radius: 0; + top: 0em; + bottom: 3em; + left: 0; + width: 100%; + height: 100%; + z-index: 10000; +} + +.diagram-container.full-screen > span.toggle { + display: none; +} + +.diagram-container.full-screen > div.diagram { + position: absolute; + top: 0; right: 0; bottom: 0; left: 0; + margin: auto; +} + +#diagram-controls { + z-index: 2; + position: absolute; + bottom: 1em; + right: 1em; +} + +#diagram-controls > button.diagram-btn { + border-radius: 1.25em; + height: 2.5em; + width: 2.5em; + background-color: #c2c2c2; + color: #fff; + border: 0; + float: left; + margin: 0 0.1em; + cursor: pointer; + line-height: 0.9; + outline: none; +} + +#diagram-controls > button.diagram-btn:hover { + background-color: #e2e2e2; +} + +#diagram-controls > button.diagram-btn > i.material-icons { + font-size: 1.5em; +} + +svg a { + cursor:pointer; +} + +svg text { + font-size: 8.5px; +} + +/* try to move the node text 1px in order to be vertically + * centered (does not work in all browsers) + */ +svg .node text { + transform: translate(0px,1px); + -ms-transform: translate(0px,1px); + -webkit-transform: translate(0px,1px); + -o-transform: translate(0px,1px); + -moz-transform: translate(0px,1px); +} + +/* hover effect for edges */ + +svg .edge.over text, +svg .edge.implicit-incoming.over polygon, +svg .edge.implicit-outgoing.over polygon { + fill: #103A51; +} + +svg .edge.over path, +svg .edge.over polygon { + stroke: #103A51; +} + +/* for hover effect on nodes in diagrams, edit the following */ +svg.class-diagram .node {} +svg.class-diagram .node.this {} +svg.class-diagram .node.over {} + +svg .node.over polygon { + stroke: #202020; +} + +/* hover effect for nodes in package diagrams */ + +svg.package-diagram .node.class.over polygon, +svg.class-diagram .node.this.class.over polygon { + fill: #098552; + fill: #04663e; +} + +svg.package-diagram .node.trait.over polygon, +svg.class-diagram .node.this.trait.over polygon { + fill: #3c7b9b; + fill: #235d7b; +} + +svg.package-diagram .node.type.over polygon, +svg.class-diagram .node.this.type.over polygon { + fill: #098552; + fill: #04663e; +} + + +svg.package-diagram .node.object.over polygon { + fill: #183377; +} + +svg.package-diagram .node.outside.over polygon { + fill: #d4d4d4; +} + +svg.package-diagram .node.default.over polygon { + fill: #d4d4d4; +} diff --git a/docs/api/2.12/lib/diagrams.js b/docs/api/2.12/lib/diagrams.js new file mode 100644 index 0000000..b137327 --- /dev/null +++ b/docs/api/2.12/lib/diagrams.js @@ -0,0 +1,240 @@ +/** + * JavaScript functions enhancing the SVG diagrams. + * + * @author Damien Obrist + */ + +var diagrams = {}; + +/** + * Initializes the diagrams in the main window. + */ +$(document).ready(function() +{ + // hide diagrams in browsers not supporting SVG + if(Modernizr && !Modernizr.inlinesvg) + return; + + if($("#content-diagram").length) + $("#inheritance-diagram").css("padding-bottom", "20px"); + + $(".diagram-container").css("display", "block"); + + $(".diagram").each(function() { + // store initial dimensions + $(this).data("width", $("svg", $(this)).width()); + $(this).data("height", $("svg", $(this)).height()); + // store unscaled clone of SVG element + $(this).data("svg", $(this).get(0).childNodes[0].cloneNode(true)); + }); + + // make diagram visible, hide container + $(".diagram").css("display", "none"); + $(".diagram svg").css({ + "position": "static", + "visibility": "visible", + "z-index": "auto" + }); + + // enable linking to diagrams + if($(location).attr("hash") == "#inheritance-diagram") { + diagrams.toggle($("#inheritance-diagram-container"), true); + } else if($(location).attr("hash") == "#content-diagram") { + diagrams.toggle($("#content-diagram-container"), true); + } + + $(".diagram-link").click(function() { + diagrams.toggle($(this).parent()); + }); + + // register resize function + $(window).resize(diagrams.resize); + + // don't bubble event to parent div + // when clicking on a node of a resized + // diagram + $("svg a").click(function(e) { + e.stopPropagation(); + }); + + diagrams.initHighlighting(); + + $("button#diagram-fs").click(function() { + $(".diagram-container").toggleClass("full-screen"); + $(".diagram-container > div.diagram").css({ + height: $("svg").height() + "pt" + }); + + $panzoom.panzoom("reset", { animate: false, contain: false }); + }); +}); + +/** + * Initializes highlighting for nodes and edges. + */ +diagrams.initHighlighting = function() +{ + // helper function since $.hover doesn't work in IE + + function hover(elements, fn) + { + elements.mouseover(fn); + elements.mouseout(fn); + } + + // inheritance edges + + hover($("svg .edge.inheritance"), function(evt){ + var toggleClass = evt.type == "mouseout" ? diagrams.removeClass : diagrams.addClass; + var parts = $(this).attr("id").split("_"); + toggleClass($("#" + parts[0] + "_" + parts[1])); + toggleClass($("#" + parts[0] + "_" + parts[2])); + toggleClass($(this)); + }); + + // nodes + + hover($("svg .node"), function(evt){ + var toggleClass = evt.type == "mouseout" ? diagrams.removeClass : diagrams.addClass; + toggleClass($(this)); + var parts = $(this).attr("id").split("_"); + var index = parts[1]; + $("svg#" + parts[0] + " .edge.inheritance").each(function(){ + var parts2 = $(this).attr("id").split("_"); + if(parts2[1] == index) + { + toggleClass($("#" + parts2[0] + "_" + parts2[2])); + toggleClass($(this)); + } else if(parts2[2] == index) + { + toggleClass($("#" + parts2[0] + "_" + parts2[1])); + toggleClass($(this)); + } + }); + }); + + // incoming implicits + + hover($("svg .node.implicit-incoming"), function(evt){ + var toggleClass = evt.type == "mouseout" ? diagrams.removeClass : diagrams.addClass; + toggleClass($(this)); + toggleClass($("svg .edge.implicit-incoming")); + toggleClass($("svg .node.this")); + }); + + hover($("svg .edge.implicit-incoming"), function(evt){ + var toggleClass = evt.type == "mouseout" ? diagrams.removeClass : diagrams.addClass; + toggleClass($(this)); + toggleClass($("svg .node.this")); + $("svg .node.implicit-incoming").each(function(){ + toggleClass($(this)); + }); + }); + + // implicit outgoing nodes + + hover($("svg .node.implicit-outgoing"), function(evt){ + var toggleClass = evt.type == "mouseout" ? diagrams.removeClass : diagrams.addClass; + toggleClass($(this)); + toggleClass($("svg .edge.implicit-outgoing")); + toggleClass($("svg .node.this")); + }); + + hover($("svg .edge.implicit-outgoing"), function(evt){ + var toggleClass = evt.type == "mouseout" ? diagrams.removeClass : diagrams.addClass; + toggleClass($(this)); + toggleClass($("svg .node.this")); + $("svg .node.implicit-outgoing").each(function(){ + toggleClass($(this)); + }); + }); +}; + +/** + * Resizes the diagrams according to the available width. + */ +diagrams.resize = function() { + // available width + var availableWidth = $(".diagram-container").width(); + + $(".diagram-container").each(function() { + // unregister click event on whole div + $(".diagram", this).unbind("click"); + var diagramWidth = $(".diagram", this).data("width"); + var diagramHeight = $(".diagram", this).data("height"); + + if (diagramWidth > availableWidth) { + // resize diagram + var height = diagramHeight / diagramWidth * availableWidth; + $(".diagram svg", this).width(availableWidth); + $(".diagram svg", this).height(height); + } else { + // restore full size of diagram + $(".diagram svg", this).width(diagramWidth); + $(".diagram svg", this).height(diagramHeight); + // don't show custom cursor any more + $(".diagram", this).removeClass("magnifying"); + } + }); +}; + +/** + * Shows or hides a diagram depending on its current state. + */ +diagrams.toggle = function(container, dontAnimate) +{ + // change class of link + $(".diagram-link", container).toggleClass("open"); + // get element to show / hide + var div = $(".diagram", container); + if (div.is(':visible')) { + $(".diagram-help", container).hide(); + div.unbind("click"); + div.slideUp(100); + + $("#diagram-controls", container).hide(); + $("#inheritance-diagram-container").unbind('mousewheel.focal'); + } else { + diagrams.resize(); + if(dontAnimate) + div.show(); + else + div.slideDown(100); + $(".diagram-help", container).show(); + + $("#diagram-controls", container).show(); + + $(".diagram-container").on('mousewheel.focal', function(e) { + e.preventDefault(); + var delta = e.delta || e.originalEvent.wheelDelta; + var zoomOut = delta ? delta < 0 : e.originalEvent.deltaY > 0; + $panzoom.panzoom('zoom', zoomOut, { + increment: 0.1, + animate: true, + focal: e + }); + }); + } +}; + +/** + * Helper method that adds a class to a SVG element. + */ +diagrams.addClass = function(svgElem, newClass) { + newClass = newClass || "over"; + var classes = svgElem.attr("class"); + if ($.inArray(newClass, classes.split(/\s+/)) == -1) { + classes += (classes ? ' ' : '') + newClass; + svgElem.attr("class", classes); + } +}; + +/** + * Helper method that removes a class from a SVG element. + */ +diagrams.removeClass = function(svgElem, oldClass) { + oldClass = oldClass || "over"; + var classes = svgElem.attr("class"); + classes = $.grep(classes.split(/\s+/), function(n, i) { return n != oldClass; }).join(' '); + svgElem.attr("class", classes); +}; diff --git a/docs/api/2.12/lib/index.css b/docs/api/2.12/lib/index.css new file mode 100644 index 0000000..b153113 --- /dev/null +++ b/docs/api/2.12/lib/index.css @@ -0,0 +1,873 @@ +/* Fonts */ +@font-face { + font-family: 'Lato'; + font-style: normal; + font-weight: 100; + src: url('lato-v11-latin-regular.eot'); + src: local('Lato'), local('Lato'), + url('lato-v11-latin-100.eot?#iefix') format('embedded-opentype'), + url('lato-v11-latin-100.woff') format('woff'), + url('lato-v11-latin-100.ttf') format('truetype'); +} + +@font-face { + font-family: 'Lato'; + font-style: normal; + font-weight: 400; + src: url('lato-v11-latin-regular.eot'); + src: local('Lato'), local('Lato'), + url('lato-v11-latin-regular.eot?#iefix') format('embedded-opentype'), + url('lato-v11-latin-regular.woff') format('woff'), + url('lato-v11-latin-regular.ttf') format('truetype'); +} + +@font-face { + font-family: 'Open Sans'; + font-style: normal; + font-weight: 400; + src: url('open-sans-v13-latin-regular.eot'); + src: local('Open Sans'), local('OpenSans'), + url('open-sans-v13-latin-regular.eot?#iefix') format('embedded-opentype'), + url('open-sans-v13-latin-regular.woff') format('woff'), + url('open-sans-v13-latin-regular.ttf') format('truetype'); +} + +@font-face { + font-family: 'Source Code Pro'; + font-style: normal; + font-weight: 400; + src: url('source-code-pro-v6-latin-regular.eot'); + src: local('Source Code Pro'), local('SourceCodePro-Regular'), + url('source-code-pro-v6-latin-regular.eot?#iefix') format('embedded-opentype'), + url('source-code-pro-v6-latin-regular.woff') format('woff'), + url('source-code-pro-v6-latin-regular.ttf') format('truetype'); +} +@font-face { + font-family: 'Source Code Pro'; + font-style: normal; + font-weight: 700; + src: url('source-code-pro-v6-latin-700.eot'); + src: local('Source Code Pro Bold'), local('SourceCodePro-Bold'), + url('source-code-pro-v6-latin-700.eot?#iefix') format('embedded-opentype'), + url('source-code-pro-v6-latin-700.woff') format('woff'), + url('source-code-pro-v6-latin-700.ttf') format('truetype'); +} + +* { + color: inherit; + text-decoration: none; + font-family: "Lato", Arial, sans-serif; + border-width: 0px; + margin: 0px; +} + +a { + cursor: pointer; + text-decoration: none; +} + +a:hover { + text-decoration: underline; +} + +span.entity > a { + padding: 0.1em 0.5em; + margin-left: 0.2em; +} + +span.entity > a.selected { + background-color: #C2D2DC; + border-radius: 0.2em; +} + +html { + background-color: #f0f3f6; + box-sizing: border-box; +} +*, *:before, *:after { + box-sizing: inherit; +} + +textarea, input { outline: none; } + +#library { + display: none; +} + +#browser { + width: 17.5em; + top: 0px; + left: 0; + bottom: 0px; + display: block; + position: fixed; + background-color: #f0f3f6; +} + +#browser.full-screen { + left: -17.5em; +} + +#search { + background-color: #103a51; /* typesafe blue */ + min-height: 5.5em; + position: fixed; + top: 0; + left: 0; + right: 0; + height: 3em; + min-height: initial; + z-index: 103; + box-shadow: 0 0 4px rgba(0, 0, 0, 0.18), 0 4px 8px rgba(0, 0, 0, 0.28); +} + +#search > h1 { + font-size: 2em; + position: absolute; + left: 0.25em; + top: 0.5em; +} + +#search > h2 { + position: absolute; + left: 3.8em; + top: 3em; +} + +#search > img.scala-logo { + width: 3em; + height: auto; + position: absolute; + left: 5.8em; + top: 0.43em; +} + +#search > span.toggle-sidebar { + position: absolute; + top: 0.8em; + left: 0.2em; + color: #fff; + z-index: 99; + width: 1.5em; + height: 1.5em; +} + +#search > span#doc-title { + color: #fff; + position: absolute; + top: 0.8em; + left: 0; + width: 18em; + text-align: center; + cursor: pointer; + z-index: 2; +} + +#search > span#doc-title > span#doc-version { + color: #c2c2c2; + font-weight: 100; + font-size: 0.72em; + display: inline-block; + width: 12ex; + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; +} + +#search > span#doc-title > span#doc-version:hover { + overflow: visible; +} + +#search > span.toggle-sidebar:hover { + cursor: pointer; +} + +/* Pseudo element replacing UTF8-symbol "Trigram From Heaven" */ +#search > span.toggle-sidebar:before { + position: absolute; + top: -0.45em; + left: 0.45em; + content: ""; + display: block; + width: 0.7em; + -webkit-box-shadow: 0 0.8em 0 1px #fff, 0 1.1em 0 1px #fff, 0 1.4em 0 1px #fff; + box-shadow: 0 0.8em 0 1px #fff, 0 1.1em 0 1px #fff, 0 1.4em 0 1px #fff; +} + +#search > span.toggle-sidebar:hover:before { + -webkit-box-shadow: 0 0.8em 0 1px #c2c2c2, 0 1.1em 0 1px #c2c2c2, 0 1.4em 0 1px #c2c2c2; + box-shadow: 0 0.8em 0 1px #c2c2c2, 0 1.1em 0 1px #c2c2c2, 0 1.4em 0 1px #c2c2c2; +} + +#textfilter > .pre { + display: block; + position: absolute; + top: 0; + left: 0; + height: 23px; + width: 21px; +} + +#textfilter { + position: absolute; + top: 0.5em; + bottom: 0.8em; + left: 0; + right: 0; + display: block; + height: 2em; +} + +#textfilter > .input { + position: relative; + display: block; + padding: 0.2em; + max-width: 48.5em; + margin: 0 auto; +} + +#textfilter > .input > i#search-icon { + color: rgba(255,255,255, 0.4); + position: absolute; + left: 0.34em; + top: 0.3em; + font-size: 1.3rem; +} + +#textfilter > span.toggle { + cursor: pointer; + padding-left: 15px; + position: absolute; + left: -0.55em; + top: 3em; + z-index: 99; + color: #fff; + font-size: 0.8em; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +#textfilter > span.toggle:hover { + color: #c2c2c2; +} + +#textfilter > span.toggle:hover { + cursor: pointer; +} + +#textfilter > .hide:hover { + cursor: pointer; + color: #a2a2a2; +} + +#textfilter > .input > input { + font-family: "Open Sans"; + font-size: 0.85em; + height: 2em; + padding: 0 0 0 2.1em; + color: #fff; + width: 100%; + border-radius: 0.2em; + background: rgba(255, 255, 255, 0.2); +} + + +#textfilter > .input > input::-webkit-input-placeholder { + color: rgba(255, 255, 255, 0.4); +} + +#textfilter > .input > input::-moz-placeholder { + color: rgba(255, 255, 255, 0.4); +} + +#textfilter > .input > input:-ms-input-placeholder { + color: rgba(255, 255, 255, 0.4); +} + +#textfilter > .input > input:-moz-placeholder { + color: rgba(255, 255, 255, 0.4); +} + +#focusfilter > .focusremove:hover { + text-decoration: none; +} + +#textfilter > .input > .clear { + display: none; + position: absolute; + font-size: 0.9em; + top: 0.7em; + right: 0.1em; + height: 23px; + width: 21px; + color: rgba(255, 255, 255, 0.4); +} + +#textfilter > .input > .clear:hover { + cursor: pointer; + color: #fff; +} + +#focusfilter { + font-size: 0.9em; + position: relative; + text-align: center; + display: none; + padding: 0.6em; + background-color: #f16665; + color: #fff; + margin: 3.9em 0.55em 0 0.35em; + border-radius: 0.2em; + z-index: 1; +} + +div#search-progress { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 0.25em; +} + +div#search-progress > div#progress-fill { + width: 0%; + background-color: #f16665; + transition: 0.1s; +} + +#focusfilter .focuscoll { + font-weight: bold; +} + +#focusfilter a.focusremove { + margin-left: 0.2em; + font-size: 0.9em; +} + +#kindfilter-container { + position: fixed; + display: block; + z-index: 99; + bottom: 0.5em; + left: 0; + width: 17.25em; +} + +#kindfilter { + float: right; + text-align: center; + padding: 0.3em 1em; + border-radius: 0.8em; + background: #f16665; + border-bottom: 2px solid #d64546; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + color: #fff; + font-size: 0.8em; +} + +#kindfilter:hover { + cursor: pointer; + background-color: rgb(226, 87, 88); +} + +#letters { + position: relative; + text-align: center; + border: 0; + margin-top: 0em; + color: #fff; +} + +#letters > a, #letters > span { + color: #fff; + font-size: 0.67em; + padding-right: 2px; +} + +#letters > a:hover { + text-decoration: none; + color: #c2c2c2; +} + +#letters > span { + color: #bbb; +} + +div#content-scroll-container { + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 100; + overflow-x: hidden; + overflow-y: auto; +} + +div#content-container { + max-width: 1140px; + margin: 0 auto; +} + +div#content-container > div#content { + -webkit-overflow-scrolling: touch; + display: block; + overflow-y: hidden; + max-width: 1140px; + margin: 4em auto 0; +} + +div#content-container > div#subpackage-spacer { + float: right; + height: 100%; + margin: 1.1rem 0.5rem 0 0.5em; + font-size: 0.8em; + min-width: 8rem; +} + +div#packages > h1 { + color: #103a51; +} + +div#packages > ul { + list-style-type: none; +} + +div#packages > ul > li { + position: relative; + margin: 0.5rem 0; + width: 100%; + border-radius: 0.2em; + min-height: 1.5em; + padding-left: 2em; +} + +div#packages > ul > li.current-entities { + margin: 0.3rem 0; +} + +div#packages > ul > li.current:hover { + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + cursor: pointer; +} + +div#packages > ul > li.current-entities > *:nth-child(1), +div#packages > ul > li.current-entities > *:nth-child(2) { + float: left; + display: inline; + height: 1rem; + width: 1rem; + margin: 1px 0 0 0; + cursor: pointer; +} + +div#packages > ul > li > a.class { + background: url("class.svg") no-repeat center; + background-size: 0.9rem; +} + +div#packages > ul > li > a.trait { + background: url("trait.svg") no-repeat center; + background-size: 0.9rem; +} + +div#packages > ul > li > a.object { + background: url("object.svg") no-repeat center; + background-size: 0.9rem; +} + +div#packages > ul > li > a.abstract.type { + background: url("abstract_type.svg") no-repeat center; + background-size: 0.9rem; +} + +div#packages > ul > li > a { + text-decoration: none !important; + margin-left: 1px; + font-family: "Source Code Pro", "Monaco", "Ubuntu Mono Regular", "Lucida Console", monospace; + font-size: 0.9em; +} + +/* Indentation levels for packages */ +div#packages > ul > li.indented0 { padding-left: 0em; } +div#packages > ul > li.indented1 { padding-left: 1em; } +div#packages > ul > li.indented2 { padding-left: 2em; } +div#packages > ul > li.indented3 { padding-left: 3em; } +div#packages > ul > li.indented4 { padding-left: 4em; } +div#packages > ul > li.indented5 { padding-left: 5em; } +div#packages > ul > li.indented6 { padding-left: 6em; } +div#packages > ul > li.indented7 { padding-left: 7em; } +div#packages > ul > li.indented8 { padding-left: 8em; } +div#packages > ul > li.indented9 { padding-left: 9em; } +div#packages > ul > li.indented10 { padding-left: 10em; } +div#packages > ul > li.current.indented0 { padding-left: -0.5em } +div#packages > ul > li.current.indented1 { padding-left: 0.5em } +div#packages > ul > li.current.indented2 { padding-left: 1.5em } +div#packages > ul > li.current.indented3 { padding-left: 2.5em } +div#packages > ul > li.current.indented4 { padding-left: 3.5em } +div#packages > ul > li.current.indented5 { padding-left: 4.5em } +div#packages > ul > li.current.indented6 { padding-left: 5.5em } +div#packages > ul > li.current.indented7 { padding-left: 6.5em } +div#packages > ul > li.current.indented8 { padding-left: 7.5em } +div#packages > ul > li.current.indented9 { padding-left: 8.5em } +div#packages > ul > li.current.indented10 { padding-left: 9.5em } + +div#packages > ul > li.current > span.symbol { + border-left: 0.25em solid #72D0EB; + padding-left: 0.25em; +} + +div#packages > ul > li > span.symbol > a { + text-decoration: none; +} + +div#packages > ul > li > span.symbol > span.name { + font-weight: normal; +} + +div#packages > ul > li .fullcomment, +div#packages > ul > li .modifier_kind, +div#packages > ul > li .permalink, +div#packages > ul > li .shortcomment { + display: none; +} + +div#search-results { + color: #103a51; + position: absolute; + left: 0; + top: 3em; + right: 0; + bottom: 0; + background-color: rgb(240, 243, 246); + z-index: 101; + overflow-x: hidden; + display: none; + padding: 1em; + -webkit-overflow-scrolling: touch; +} + +div#search > span.close-results { + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + position: fixed; + top: 0.8em; + left: 1em; + color: #fff; + display: none; + z-index: 1; +} + +div#search > span.close-results:hover { + cursor: pointer; +} + +div#results-content { + max-width: 1140px; + margin: 0 auto; +} + +div#results-content > span.search-text { + margin-left: 1em; + font-size: 1.2em; + float: left; + width: 100%; +} + +div#results-content > span.search-text > span.query-str { + font-weight: 900; +} + +div#results-content > div > h1.result-type { + font-size: 1.5em; + margin: 1em 0 0.3em; + font-family: "Open Sans"; + font-weight: 300; + border-bottom: 1px solid #103a51; +} + +div#results-content > div#entity-results { + float: left; + width: 50%; + padding: 1em; + display: inline; +} + +div#results-content > div#member-results { + float: left; + width: 50%; + padding: 1em; + display: inline; +} + +div#results-content > div#member-results > a.package, +div#results-content > div#entity-results > a.package { + font-size: 1em; + margin: 0 0 1em 0; + color: #f16665; + cursor: pointer; +} + +div#results-content > div#member-results > ul.entities, +div#results-content > div#entity-results > ul.entities { + list-style-type: none; + padding-left: 0; +} + +div#results-content > div#member-results > ul.entities > li, +div#results-content > div#entity-results > ul.entities > li { + margin: 0.5em 0; +} + +div#results-content > div#member-results > ul.entities > li > .icon, +div#results-content > div#entity-results > ul.entities > li > .icon { + float: left; + display: inline; + height: 1em; + width: 1em; + margin: 0.23em 0 0; + cursor: pointer; +} + +div#results-content > div#member-results > ul.entities > li > .icon.class, +div#results-content > div#entity-results > ul.entities > li > .icon.class { + background: url("class.svg") no-repeat center; + background-size: 1em 1em; +} + +div#results-content > div#member-results > ul.entities > li > .icon.trait, +div#results-content > div#entity-results > ul.entities > li > .icon.trait { + background: url("trait.svg") no-repeat center; + background-size: 1em 1em; +} + +div#results-content > div#member-results > ul.entities > li > .icon.object, +div#results-content > div#entity-results > ul.entities > li > .icon.object { + background: url("object.svg") no-repeat center; + background-size: 1em 1em; +} + +div#results-content > div#member-results > ul.entities > li > span.entity, +div#results-content > div#entity-results > ul.entities > li > span.entity { + font-size: 1.1em; + font-weight: 900; +} + +div#results-content > div#member-results > ul.entities > li > ul.members, +div#results-content > div#entity-results > ul.entities > li > ul.members { + margin-top: 0.5em; + list-style-type: none; + font-size: 0.85em; + margin-left: 0.2em; +} + +div#results-content > div#member-results > ul.entities > li > ul.members > li, +div#results-content > div#entity-results > ul.entities > li > ul.members > li { + margin: 0.5em 0; +} + +div#results-content > div#member-results > ul.entities > li > ul.members > li > span.kind, +div#results-content > div#member-results > ul.entities > li > ul.members > li > span.tail, +div#results-content > div#entity-results > ul.entities > li > ul.members > li > span.kind, +div#results-content > div#entity-results > ul.entities > li > ul.members > li > span.tail { + margin-right: 0.6em; + font-family: "Source Code Pro", "Monaco", "Ubuntu Mono Regular", "Lucida Console", monospace; +} + +div#results-content > div#member-results > ul.entities > li > ul.members > li > span.kind { + font-weight: 600; +} + +div#results-content > div#member-results > ul.entities > li > ul.members > li > a.label, +div#results-content > div#entity-results > ul.entities > li > ul.members > li > a.label { + color: #2C3D9B; + font-family: "Source Code Pro", "Monaco", "Ubuntu Mono Regular", "Lucida Console", monospace; +} + +/** Scrollpane settings needed for jquery.scrollpane.min.js */ +.jspContainer { + overflow: hidden; + position: relative; +} + +.jspPane { + position: absolute; +} + +.jspVerticalBar { + position: absolute; + top: 0; + right: 0; + width: 0.6em; + height: 100%; + background: transparent; +} + +.jspHorizontalBar { + position: absolute; + bottom: 0; + left: 0; + width: 100%; + height: 16px; + background: red; +} + +.jspCap { + display: none; +} + +.jspHorizontalBar .jspCap { + float: left; +} + +.jspTrack { + background: #f0f3f6; + position: relative; +} + +.jspDrag { + display: none; + background: rgba(0, 0, 0, 0.35); + position: relative; + top: 0; + left: 0; + cursor: pointer; +} + +#tpl:hover .jspDrag { + display: block; +} + +.jspHorizontalBar .jspTrack, +.jspHorizontalBar .jspDrag { + float: left; + height: 100%; +} + +.jspArrow { + background: #50506d; + text-indent: -20000px; + display: block; + cursor: pointer; + padding: 0; + margin: 0; +} + +.jspArrow.jspDisabled { + cursor: default; + background: #80808d; +} + +.jspVerticalBar .jspArrow { + height: 16px; +} + +.jspHorizontalBar .jspArrow { + width: 16px; + float: left; + height: 100%; +} + +.jspVerticalBar .jspArrow:focus { + outline: none; +} + +.jspCorner { + background: #eeeef4; + float: left; + height: 100%; +} + +/* CSS Hack for IE6 3 pixel bug */ +* html .jspCorner { + margin: 0 -3px 0 0; +} + +/* Media query rules for smaller viewport */ +@media only screen /* Large screen with a small window */ +and (max-width: 1300px) +{ + #textfilter { + left: 17.8em; + right: 0.35em; + } + + #textfilter .input { + max-width: none; + margin: 0; + } +} + +@media only screen /* Large screen with a smaller window */ +and (max-width: 800px) +{ + div#results-content > div#entity-results { + width: 100%; + padding: 0em; + } + + div#results-content > div#member-results { + width: 100%; + padding: 0em; + } +} + +/* Media query rules specifically for mobile devices */ +@media +screen /* HiDPI device like Nexus 5 */ +and (max-device-width: 360px) +and (max-device-height: 640px) +and (-webkit-device-pixel-ratio: 3) +, +screen /* Most mobile devices */ +and (max-device-width: 480px) +and (orientation: portrait) +, +only screen /* iPhone 6 */ +and (max-device-width: 667px) +and (-webkit-device-pixel-ratio: 2) +{ + div#content-container > div#subpackage-spacer { + display: none; + } + + div#content-container > div#content { + margin: 3.3em auto 0; + } + + #search > span#doc-title { + width: 100%; + text-align: left; + padding-left: 0.7em; + top: 0.95em; + z-index: 1; + } + + #search > div#textfilter { + z-index: 2; + } + + #search > span#doc-title > span#doc-version { + display: none; + } + + #textfilter { + left: 12.2em; + } +} diff --git a/docs/api/2.12/lib/index.js b/docs/api/2.12/lib/index.js new file mode 100644 index 0000000..1a2e62b --- /dev/null +++ b/docs/api/2.12/lib/index.js @@ -0,0 +1,604 @@ +// © 2009–2010 EPFL/LAMP +// code by Gilles Dubochet with contributions by Johannes Rudolph, "spiros", Marcin Kubala and Felix Mulder + +var scheduler = undefined; + +var title = $(document).attr('title'); + +var lastFragment = ""; + +var Index = {}; +(function (ns) { + ns.keyLength = 0; + ns.keys = function (obj) { + var result = []; + var key; + for (key in obj) { + result.push(key); + ns.keyLength++; + } + return result; + } +})(Index); + +/** Find query string from URL */ +var QueryString = function(key) { + if (QueryString.map === undefined) { // only calc once + QueryString.map = {}; + var keyVals = window.location.search.split("?").pop().split("&"); + keyVals.forEach(function(elem) { + var pair = elem.split("="); + if (pair.length == 2) QueryString.map[pair[0]] = pair[1]; + }); + } + + return QueryString.map[key]; +}; + +$(document).ready(function() { + // Clicking #doc-title returns the user to the root package + $("#doc-title").click(function() { document.location = toRoot + "index.html" }); + + scheduler = new Scheduler(); + scheduler.addLabel("init", 1); + scheduler.addLabel("focus", 2); + scheduler.addLabel("filter", 4); + scheduler.addLabel("search", 5); + + configureTextFilter(); + + $("#index-input").on("input", function(e) { + if($(this).val().length > 0) + $("#textfilter > .input > .clear").show(); + else + $("#textfilter > .input > .clear").hide(); + }); + + if (QueryString("search") !== undefined) { + $("#index-input").val(QueryString("search")); + searchAll(); + } +}); + +/* Handles all key presses while scrolling around with keyboard shortcuts in search results */ +function handleKeyNavigation() { + /** Iterates both back and forth among selected elements */ + var EntityIterator = function (litems, ritems) { + var it = this; + this.index = -1; + + this.items = litems; + this.litems = litems; + this.ritems = ritems; + + if (litems.length == 0) + this.items = ritems; + + /** Returns the next entry - if trying to select past last element, it + * returns the last element + */ + it.next = function() { + it.index = Math.min(it.items.length - 1, it.index + 1); + return $(it.items[it.index]); + }; + + /** Returns the previous entry - will return `undefined` instead if + * selecting up from first element + */ + it.prev = function() { + it.index = Math.max(-1, it.index - 1); + return it.index == -1 ? undefined : $(it.items[it.index]); + }; + + it.right = function() { + if (it.ritems.length != 0) { + it.items = it.ritems; + it.index = Math.min(it.index, it.items.length - 1); + } + return $(it.items[it.index]); + }; + + it.left = function() { + if (it.litems.length != 0) { + it.items = it.litems; + it.index = Math.min(it.index, it.items.length - 1); + } + return $(it.items[it.index]); + }; + }; + + /** Scroll helper, ensures that the selected elem is inside the viewport */ + var Scroller = function ($container) { + scroller = this; + scroller.container = $container; + + scroller.scrollDown = function($elem) { + var yPos = $elem.offset().top; // offset relative to viewport + if ($container.height() < yPos || (yPos - $("#search").height()) < 0) { + $container.animate({ + scrollTop: $container.scrollTop() + yPos - $("#search").height() - 10 + }, 200); + } + }; + + scroller.scrollUp = function ($elem) { + var yPos = $elem.offset().top; // offset relative to viewport + if (yPos < $("#search").height()) { + $container.animate({ + scrollTop: $container.scrollTop() + yPos - $("#search").height() - 10 + }, 200); + } + }; + + scroller.scrollTop = function() { + $container.animate({ + scrollTop: 0 + }, 200); + } + }; + + scheduler.add("init", function() { + $("#textfilter input").blur(); + var items = new EntityIterator( + $("div#results-content > div#entity-results > ul.entities span.entity > a").toArray(), + $("div#results-content > div#member-results > ul.entities span.entity > a").toArray() + ); + + var scroller = new Scroller($("#search-results")); + + var $old = items.next(); + $old.addClass("selected"); + scroller.scrollDown($old); + + $(window).bind("keydown", function(e) { + switch ( e.keyCode ) { + case 9: // tab + $old.removeClass("selected"); + break; + + case 13: // enter + var href = $old.attr("href"); + location.replace(href); + $old.click(); + $("#textfilter input").attr("value", ""); + break; + + case 27: // escape + $("#textfilter input").attr("value", ""); + $("div#search-results").hide(); + $("#search > span.close-results").hide(); + $("#search > span#doc-title").show(); + break; + + case 37: // left + var oldTop = $old.offset().top; + $old.removeClass("selected"); + $old = items.left(); + $old.addClass("selected"); + + (oldTop - $old.offset().top < 0 ? scroller.scrollDown : scroller.scrollUp)($old); + break; + + case 38: // up + $old.removeClass('selected'); + $old = items.prev(); + + if ($old === undefined) { // scroll past top + $(window).unbind("keydown"); + $("#textfilter input").focus(); + scroller.scrollTop(); + return false; + } else { + $old.addClass("selected"); + scroller.scrollUp($old); + } + break; + + case 39: // right + var oldTop = $old.offset().top; + $old.removeClass("selected"); + $old = items.right(); + $old.addClass("selected"); + + (oldTop - $old.offset().top < 0 ? scroller.scrollDown : scroller.scrollUp)($old); + break; + + case 40: // down + $old.removeClass("selected"); + $old = items.next(); + $old.addClass("selected"); + scroller.scrollDown($old); + break; + } + }); + }); +} + +/* Configures the text filter */ +function configureTextFilter() { + scheduler.add("init", function() { + var input = $("#textfilter input"); + input.bind('keyup', function(event) { + switch ( event.keyCode ) { + case 27: // escape + input.attr("value", ""); + $("div#search-results").hide(); + $("#search > span.close-results").hide(); + $("#search > span#doc-title").show(); + break; + + case 38: // up arrow + return false; + + case 40: // down arrow + $(window).unbind("keydown"); + handleKeyNavigation(); + return false; + } + + searchAll(); + }); + }); + scheduler.add("init", function() { + $("#textfilter > .input > .clear").click(function() { + $("#textfilter input").attr("value", ""); + $("div#search-results").hide(); + $("#search > span.close-results").hide(); + $("#search > span#doc-title").show(); + + $(this).hide(); + }); + }); + + scheduler.add("init", function() { + $("div#search > span.close-results").click(function() { + $("div#search-results").hide(); + $("#search > span.close-results").hide(); + $("#search > span#doc-title").show(); + $("#textfilter input").attr("value", ""); + }); + }); +} + +function compilePattern(query) { + var escaped = query.replace(/([\.\*\+\?\|\(\)\[\]\\])/g, '\\$1'); + + if (query.toLowerCase() != query) { + // Regexp that matches CamelCase subbits: "BiSe" is + // "[a-z]*Bi[a-z]*Se" and matches "BitSet", "ABitSet", ... + return new RegExp(escaped.replace(/([A-Z])/g,"[a-z]*$1")); + } + else { // if query is all lower case make a normal case insensitive search + return new RegExp(escaped, "i"); + } +} + +/** Searches packages for entites matching the search query using a regex + * + * @param {[Object]} pack: package being searched + * @param {RegExp} regExp: a regular expression for finding matching entities + */ +function searchPackage(pack, regExp) { + scheduler.add("search", function() { + var entities = Index.PACKAGES[pack]; + var matched = []; + var notMatching = []; + + scheduler.add("search", function() { + searchMembers(entities, regExp, pack); + }); + + entities.forEach(function (elem) { + regExp.test(elem.name) ? matched.push(elem) : notMatching.push(elem); + }); + + var results = { + "matched": matched, + "package": pack + }; + + scheduler.add("search", function() { + handleSearchedPackage(results, regExp); + setProgress(); + }); + }); +} + +function searchMembers(entities, regExp, pack) { + var memDiv = document.getElementById("member-results"); + var packLink = document.createElement("a"); + packLink.className = "package"; + packLink.appendChild(document.createTextNode(pack)); + packLink.style.display = "none"; + packLink.title = pack; + packLink.href = toRoot + urlFriendlyEntity(pack).replace(new RegExp("\\.", "g"), "/") + "/index.html"; + memDiv.appendChild(packLink); + + var entityUl = document.createElement("ul"); + entityUl.className = "entities"; + memDiv.appendChild(entityUl); + + entities.forEach(function(entity) { + var entityLi = document.createElement("li"); + var name = entity.name.split('.').pop() + + var iconElem = document.createElement("a"); + iconElem.className = "icon " + entity.kind; + iconElem.title = name + " " + entity.kind; + iconElem.href = toRoot + entity[entity.kind]; + entityLi.appendChild(iconElem); + + if (entity.kind != "object" && entity.object) { + var companion = document.createElement("a"); + companion.className = "icon object"; + companion.title = name + " companion object"; + companion.href = toRoot + entity.object; + entityLi.insertBefore(companion, iconElem); + } else { + var spacer = document.createElement("div"); + spacer.className = "icon spacer"; + entityLi.insertBefore(spacer, iconElem); + } + + var nameElem = document.createElement("span"); + nameElem.className = "entity"; + + var entityUrl = document.createElement("a"); + entityUrl.title = entity.shortDescription ? entity.shortDescription : name; + entityUrl.href = toRoot + entity[entity.kind]; + entityUrl.appendChild(document.createTextNode(name)); + + nameElem.appendChild(entityUrl); + entityLi.appendChild(nameElem); + + var membersUl = document.createElement("ul"); + membersUl.className = "members"; + entityLi.appendChild(membersUl); + + + searchEntity(entity, membersUl, regExp) + .then(function(res) { + if (res.length > 0) { + packLink.style.display = "block"; + entityUl.appendChild(entityLi); + } + }); + }); +} + +/** This function inserts `li` into the `ul` ordered by the li's id + * + * @param {Node} ul: the list in which to insert `li` + * @param {Node} li: item to insert + */ +function insertSorted(ul, li) { + var lis = ul.childNodes; + var beforeLi = null; + + for (var i = 0; i < lis.length; i++) { + if (lis[i].id > li.id) + beforeLi = lis[i]; + } + + // if beforeLi == null, it will be inserted last + ul.insertBefore(li, beforeLi); +} + +/** Defines the callback when a package has been searched and searches its + * members + * + * It will search all entities which matched the regExp. + * + * @param {Object} res: this is the searched package. It will contain the map + * from the `searchPackage`function. + * @param {RegExp} regExp + */ +function handleSearchedPackage(res, regExp) { + $("div#search-results").show(); + $("#search > span.close-results").show(); + $("#search > span#doc-title").hide(); + + var searchRes = document.getElementById("results-content"); + var entityDiv = document.getElementById("entity-results"); + + var packLink = document.createElement("a"); + packLink.className = "package"; + packLink.title = res.package; + packLink.href = toRoot + urlFriendlyEntity(res.package).replace(new RegExp("\\.", "g"), "/") + "/index.html"; + packLink.appendChild(document.createTextNode(res.package)); + + if (res.matched.length == 0) + packLink.style.display = "none"; + + entityDiv.appendChild(packLink); + + var ul = document.createElement("ul") + ul.className = "entities"; + + // Generate html list items from results + res.matched + .map(function(entity) { return listItem(entity, regExp); }) + .forEach(function(li) { ul.appendChild(li); }); + + entityDiv.appendChild(ul); +} + +/** Searches an entity asynchronously for regExp matches in an entity's members + * + * @param {Object} entity: the entity to be searched + * @param {Node} ul: the list in which to insert the list item created + * @param {RegExp} regExp + */ +function searchEntity(entity, ul, regExp) { + return new Promise(function(resolve, reject) { + var allMembers = + (entity.members_trait || []) + .concat(entity.members_class || []) + .concat(entity.members_object || []) + + var matchingMembers = $.grep(allMembers, function(member, i) { + return regExp.test(member.label); + }); + + resolve(matchingMembers); + }) + .then(function(res) { + res.forEach(function(elem) { + var kind = document.createElement("span"); + kind.className = "kind"; + kind.appendChild(document.createTextNode(elem.kind)); + + var label = document.createElement("a"); + label.title = elem.label; + label.href = toRoot + elem.link; + label.className = "label"; + label.appendChild(document.createTextNode(elem.label)); + + var tail = document.createElement("span"); + tail.className = "tail"; + tail.appendChild(document.createTextNode(elem.tail)); + + var li = document.createElement("li"); + li.appendChild(kind); + li.appendChild(label); + li.appendChild(tail); + + ul.appendChild(li); + }); + return res; + }); +} + +/** Creates a list item representing an entity + * + * @param {Object} entity, the searched entity to be displayed + * @param {RegExp} regExp + * @return {Node} list item containing entity + */ +function listItem(entity, regExp) { + var name = entity.name.split('.').pop() + var nameElem = document.createElement("span"); + nameElem.className = "entity"; + + var entityUrl = document.createElement("a"); + entityUrl.title = entity.shortDescription ? entity.shortDescription : name; + entityUrl.href = toRoot + entity[entity.kind]; + + entityUrl.appendChild(document.createTextNode(name)); + nameElem.appendChild(entityUrl); + + var iconElem = document.createElement("a"); + iconElem.className = "icon " + entity.kind; + iconElem.title = name + " " + entity.kind; + iconElem.href = toRoot + entity[entity.kind]; + + var li = document.createElement("li"); + li.id = entity.name.replace(new RegExp("\\.", "g"),"-"); + li.appendChild(iconElem); + li.appendChild(nameElem); + + if (entity.kind != "object" && entity.object) { + var companion = document.createElement("a"); + companion.title = name + " companion object"; + companion.href = toRoot + entity.object; + companion.className = "icon object"; + li.insertBefore(companion, iconElem); + } else { + var spacer = document.createElement("div"); + spacer.className = "icon spacer"; + li.insertBefore(spacer, iconElem); + } + + var ul = document.createElement("ul"); + ul.className = "members"; + + li.appendChild(ul); + + return li; +} + +/** Searches all packages and entities for the current search string in + * the input field "#textfilter" + * + * Then shows the results in div#search-results + */ +function searchAll() { + scheduler.clear("search"); // clear previous search + maxJobs = 1; // clear previous max + var searchStr = $("#textfilter input").attr("value").trim() || ''; + + if (searchStr === '') { + $("div#search-results").hide(); + $("#search > span.close-results").hide(); + $("#search > span#doc-title").show(); + return; + } + + // Replace ?search=X with current search string if not hosted locally on Chrome + try { + window.history.replaceState({}, "", "?search=" + searchStr); + } catch(e) {} + + $("div#results-content > span.search-text").remove(); + + var memberResults = document.getElementById("member-results"); + memberResults.innerHTML = ""; + var memberH1 = document.createElement("h1"); + memberH1.className = "result-type"; + memberH1.innerHTML = "Member results"; + memberResults.appendChild(memberH1); + + var entityResults = document.getElementById("entity-results"); + entityResults.innerHTML = ""; + var entityH1 = document.createElement("h1"); + entityH1.className = "result-type"; + entityH1.innerHTML = "Entity results"; + entityResults.appendChild(entityH1); + + $("div#results-content") + .prepend("" + +" Showing results for \"" + searchStr + "\"" + +""); + + var regExp = compilePattern(searchStr); + + // Search for all entities matching query + Index + .keys(Index.PACKAGES) + .sort() + .forEach(function(elem) { searchPackage(elem, regExp); }) +} + +/** Check if user agent is associated with a known mobile browser */ +function isMobile() { + return /Android|webOS|Mobi|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent); +} + +function urlFriendlyEntity(entity) { + var corr = { + '\\+': '$plus', + ':': '$colon' + }; + + for (k in corr) + entity = entity.replace(new RegExp(k, 'g'), corr[k]); + + return entity; +} + +var maxJobs = 1; +function setProgress() { + var running = scheduler.numberOfJobs("search"); + maxJobs = Math.max(maxJobs, running); + + var percent = 100 - (running / maxJobs * 100); + var bar = document.getElementById("progress-fill"); + bar.style.height = "100%"; + bar.style.width = percent + "%"; + + if (percent == 100) { + setTimeout(function() { + bar.style.height = 0; + }, 500); + } +} diff --git a/docs/api/2.12/lib/jquery.js b/docs/api/2.12/lib/jquery.js new file mode 100644 index 0000000..bc3fbc8 --- /dev/null +++ b/docs/api/2.12/lib/jquery.js @@ -0,0 +1,2 @@ +/*! jQuery v1.8.2 jquery.com | jquery.org/license */ +(function(a,b){function G(a){var b=F[a]={};return p.each(a.split(s),function(a,c){b[c]=!0}),b}function J(a,c,d){if(d===b&&a.nodeType===1){var e="data-"+c.replace(I,"-$1").toLowerCase();d=a.getAttribute(e);if(typeof d=="string"){try{d=d==="true"?!0:d==="false"?!1:d==="null"?null:+d+""===d?+d:H.test(d)?p.parseJSON(d):d}catch(f){}p.data(a,c,d)}else d=b}return d}function K(a){var b;for(b in a){if(b==="data"&&p.isEmptyObject(a[b]))continue;if(b!=="toJSON")return!1}return!0}function ba(){return!1}function bb(){return!0}function bh(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function bi(a,b){do a=a[b];while(a&&a.nodeType!==1);return a}function bj(a,b,c){b=b||0;if(p.isFunction(b))return p.grep(a,function(a,d){var e=!!b.call(a,d,a);return e===c});if(b.nodeType)return p.grep(a,function(a,d){return a===b===c});if(typeof b=="string"){var d=p.grep(a,function(a){return a.nodeType===1});if(be.test(b))return p.filter(b,d,!c);b=p.filter(b,d)}return p.grep(a,function(a,d){return p.inArray(a,b)>=0===c})}function bk(a){var b=bl.split("|"),c=a.createDocumentFragment();if(c.createElement)while(b.length)c.createElement(b.pop());return c}function bC(a,b){return a.getElementsByTagName(b)[0]||a.appendChild(a.ownerDocument.createElement(b))}function bD(a,b){if(b.nodeType!==1||!p.hasData(a))return;var c,d,e,f=p._data(a),g=p._data(b,f),h=f.events;if(h){delete g.handle,g.events={};for(c in h)for(d=0,e=h[c].length;d").appendTo(e.body),c=b.css("display");b.remove();if(c==="none"||c===""){bI=e.body.appendChild(bI||p.extend(e.createElement("iframe"),{frameBorder:0,width:0,height:0}));if(!bJ||!bI.createElement)bJ=(bI.contentWindow||bI.contentDocument).document,bJ.write(""),bJ.close();b=bJ.body.appendChild(bJ.createElement(a)),c=bH(b,"display"),e.body.removeChild(bI)}return bS[a]=c,c}function ci(a,b,c,d){var e;if(p.isArray(b))p.each(b,function(b,e){c||ce.test(a)?d(a,e):ci(a+"["+(typeof e=="object"?b:"")+"]",e,c,d)});else if(!c&&p.type(b)==="object")for(e in b)ci(a+"["+e+"]",b[e],c,d);else d(a,b)}function cz(a){return function(b,c){typeof b!="string"&&(c=b,b="*");var d,e,f,g=b.toLowerCase().split(s),h=0,i=g.length;if(p.isFunction(c))for(;h)[^>]*$|#([\w\-]*)$)/,v=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,w=/^[\],:{}\s]*$/,x=/(?:^|:|,)(?:\s*\[)+/g,y=/\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g,z=/"[^"\\\r\n]*"|true|false|null|-?(?:\d\d*\.|)\d+(?:[eE][\-+]?\d+|)/g,A=/^-ms-/,B=/-([\da-z])/gi,C=function(a,b){return(b+"").toUpperCase()},D=function(){e.addEventListener?(e.removeEventListener("DOMContentLoaded",D,!1),p.ready()):e.readyState==="complete"&&(e.detachEvent("onreadystatechange",D),p.ready())},E={};p.fn=p.prototype={constructor:p,init:function(a,c,d){var f,g,h,i;if(!a)return this;if(a.nodeType)return this.context=this[0]=a,this.length=1,this;if(typeof a=="string"){a.charAt(0)==="<"&&a.charAt(a.length-1)===">"&&a.length>=3?f=[null,a,null]:f=u.exec(a);if(f&&(f[1]||!c)){if(f[1])return c=c instanceof p?c[0]:c,i=c&&c.nodeType?c.ownerDocument||c:e,a=p.parseHTML(f[1],i,!0),v.test(f[1])&&p.isPlainObject(c)&&this.attr.call(a,c,!0),p.merge(this,a);g=e.getElementById(f[2]);if(g&&g.parentNode){if(g.id!==f[2])return d.find(a);this.length=1,this[0]=g}return this.context=e,this.selector=a,this}return!c||c.jquery?(c||d).find(a):this.constructor(c).find(a)}return p.isFunction(a)?d.ready(a):(a.selector!==b&&(this.selector=a.selector,this.context=a.context),p.makeArray(a,this))},selector:"",jquery:"1.8.2",length:0,size:function(){return this.length},toArray:function(){return k.call(this)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var d=p.merge(this.constructor(),a);return d.prevObject=this,d.context=this.context,b==="find"?d.selector=this.selector+(this.selector?" ":"")+c:b&&(d.selector=this.selector+"."+b+"("+c+")"),d},each:function(a,b){return p.each(this,a,b)},ready:function(a){return p.ready.promise().done(a),this},eq:function(a){return a=+a,a===-1?this.slice(a):this.slice(a,a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(k.apply(this,arguments),"slice",k.call(arguments).join(","))},map:function(a){return this.pushStack(p.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:j,sort:[].sort,splice:[].splice},p.fn.init.prototype=p.fn,p.extend=p.fn.extend=function(){var a,c,d,e,f,g,h=arguments[0]||{},i=1,j=arguments.length,k=!1;typeof h=="boolean"&&(k=h,h=arguments[1]||{},i=2),typeof h!="object"&&!p.isFunction(h)&&(h={}),j===i&&(h=this,--i);for(;i0)return;d.resolveWith(e,[p]),p.fn.trigger&&p(e).trigger("ready").off("ready")},isFunction:function(a){return p.type(a)==="function"},isArray:Array.isArray||function(a){return p.type(a)==="array"},isWindow:function(a){return a!=null&&a==a.window},isNumeric:function(a){return!isNaN(parseFloat(a))&&isFinite(a)},type:function(a){return a==null?String(a):E[m.call(a)]||"object"},isPlainObject:function(a){if(!a||p.type(a)!=="object"||a.nodeType||p.isWindow(a))return!1;try{if(a.constructor&&!n.call(a,"constructor")&&!n.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}var d;for(d in a);return d===b||n.call(a,d)},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},error:function(a){throw new Error(a)},parseHTML:function(a,b,c){var d;return!a||typeof a!="string"?null:(typeof b=="boolean"&&(c=b,b=0),b=b||e,(d=v.exec(a))?[b.createElement(d[1])]:(d=p.buildFragment([a],b,c?null:[]),p.merge([],(d.cacheable?p.clone(d.fragment):d.fragment).childNodes)))},parseJSON:function(b){if(!b||typeof b!="string")return null;b=p.trim(b);if(a.JSON&&a.JSON.parse)return a.JSON.parse(b);if(w.test(b.replace(y,"@").replace(z,"]").replace(x,"")))return(new Function("return "+b))();p.error("Invalid JSON: "+b)},parseXML:function(c){var d,e;if(!c||typeof c!="string")return null;try{a.DOMParser?(e=new DOMParser,d=e.parseFromString(c,"text/xml")):(d=new ActiveXObject("Microsoft.XMLDOM"),d.async="false",d.loadXML(c))}catch(f){d=b}return(!d||!d.documentElement||d.getElementsByTagName("parsererror").length)&&p.error("Invalid XML: "+c),d},noop:function(){},globalEval:function(b){b&&r.test(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(A,"ms-").replace(B,C)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,c,d){var e,f=0,g=a.length,h=g===b||p.isFunction(a);if(d){if(h){for(e in a)if(c.apply(a[e],d)===!1)break}else for(;f0&&a[0]&&a[i-1]||i===0||p.isArray(a));if(j)for(;h-1)i.splice(c,1),e&&(c<=g&&g--,c<=h&&h--)}),this},has:function(a){return p.inArray(a,i)>-1},empty:function(){return i=[],this},disable:function(){return i=j=c=b,this},disabled:function(){return!i},lock:function(){return j=b,c||l.disable(),this},locked:function(){return!j},fireWith:function(a,b){return b=b||[],b=[a,b.slice?b.slice():b],i&&(!d||j)&&(e?j.push(b):k(b)),this},fire:function(){return l.fireWith(this,arguments),this},fired:function(){return!!d}};return l},p.extend({Deferred:function(a){var b=[["resolve","done",p.Callbacks("once memory"),"resolved"],["reject","fail",p.Callbacks("once memory"),"rejected"],["notify","progress",p.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return p.Deferred(function(c){p.each(b,function(b,d){var f=d[0],g=a[b];e[d[1]](p.isFunction(g)?function(){var a=g.apply(this,arguments);a&&p.isFunction(a.promise)?a.promise().done(c.resolve).fail(c.reject).progress(c.notify):c[f+"With"](this===e?c:this,[a])}:c[f])}),a=null}).promise()},promise:function(a){return a!=null?p.extend(a,d):d}},e={};return d.pipe=d.then,p.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&&g.add(function(){c=h},b[a^1][2].disable,b[2][2].lock),e[f[0]]=g.fire,e[f[0]+"With"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b=0,c=k.call(arguments),d=c.length,e=d!==1||a&&p.isFunction(a.promise)?d:0,f=e===1?a:p.Deferred(),g=function(a,b,c){return function(d){b[a]=this,c[a]=arguments.length>1?k.call(arguments):d,c===h?f.notifyWith(b,c):--e||f.resolveWith(b,c)}},h,i,j;if(d>1){h=new Array(d),i=new Array(d),j=new Array(d);for(;b

              a",c=n.getElementsByTagName("*"),d=n.getElementsByTagName("a")[0],d.style.cssText="top:1px;float:left;opacity:.5";if(!c||!c.length)return{};f=e.createElement("select"),g=f.appendChild(e.createElement("option")),h=n.getElementsByTagName("input")[0],b={leadingWhitespace:n.firstChild.nodeType===3,tbody:!n.getElementsByTagName("tbody").length,htmlSerialize:!!n.getElementsByTagName("link").length,style:/top/.test(d.getAttribute("style")),hrefNormalized:d.getAttribute("href")==="/a",opacity:/^0.5/.test(d.style.opacity),cssFloat:!!d.style.cssFloat,checkOn:h.value==="on",optSelected:g.selected,getSetAttribute:n.className!=="t",enctype:!!e.createElement("form").enctype,html5Clone:e.createElement("nav").cloneNode(!0).outerHTML!=="<:nav>",boxModel:e.compatMode==="CSS1Compat",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0,boxSizingReliable:!0,pixelPosition:!1},h.checked=!0,b.noCloneChecked=h.cloneNode(!0).checked,f.disabled=!0,b.optDisabled=!g.disabled;try{delete n.test}catch(o){b.deleteExpando=!1}!n.addEventListener&&n.attachEvent&&n.fireEvent&&(n.attachEvent("onclick",m=function(){b.noCloneEvent=!1}),n.cloneNode(!0).fireEvent("onclick"),n.detachEvent("onclick",m)),h=e.createElement("input"),h.value="t",h.setAttribute("type","radio"),b.radioValue=h.value==="t",h.setAttribute("checked","checked"),h.setAttribute("name","t"),n.appendChild(h),i=e.createDocumentFragment(),i.appendChild(n.lastChild),b.checkClone=i.cloneNode(!0).cloneNode(!0).lastChild.checked,b.appendChecked=h.checked,i.removeChild(h),i.appendChild(n);if(n.attachEvent)for(k in{submit:!0,change:!0,focusin:!0})j="on"+k,l=j in n,l||(n.setAttribute(j,"return;"),l=typeof n[j]=="function"),b[k+"Bubbles"]=l;return p(function(){var c,d,f,g,h="padding:0;margin:0;border:0;display:block;overflow:hidden;",i=e.getElementsByTagName("body")[0];if(!i)return;c=e.createElement("div"),c.style.cssText="visibility:hidden;border:0;width:0;height:0;position:static;top:0;margin-top:1px",i.insertBefore(c,i.firstChild),d=e.createElement("div"),c.appendChild(d),d.innerHTML="
              t
              ",f=d.getElementsByTagName("td"),f[0].style.cssText="padding:0;margin:0;border:0;display:none",l=f[0].offsetHeight===0,f[0].style.display="",f[1].style.display="none",b.reliableHiddenOffsets=l&&f[0].offsetHeight===0,d.innerHTML="",d.style.cssText="box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;",b.boxSizing=d.offsetWidth===4,b.doesNotIncludeMarginInBodyOffset=i.offsetTop!==1,a.getComputedStyle&&(b.pixelPosition=(a.getComputedStyle(d,null)||{}).top!=="1%",b.boxSizingReliable=(a.getComputedStyle(d,null)||{width:"4px"}).width==="4px",g=e.createElement("div"),g.style.cssText=d.style.cssText=h,g.style.marginRight=g.style.width="0",d.style.width="1px",d.appendChild(g),b.reliableMarginRight=!parseFloat((a.getComputedStyle(g,null)||{}).marginRight)),typeof d.style.zoom!="undefined"&&(d.innerHTML="",d.style.cssText=h+"width:1px;padding:1px;display:inline;zoom:1",b.inlineBlockNeedsLayout=d.offsetWidth===3,d.style.display="block",d.style.overflow="visible",d.innerHTML="
              ",d.firstChild.style.width="5px",b.shrinkWrapBlocks=d.offsetWidth!==3,c.style.zoom=1),i.removeChild(c),c=d=f=g=null}),i.removeChild(n),c=d=f=g=h=i=n=null,b}();var H=/(?:\{[\s\S]*\}|\[[\s\S]*\])$/,I=/([A-Z])/g;p.extend({cache:{},deletedIds:[],uuid:0,expando:"jQuery"+(p.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){return a=a.nodeType?p.cache[a[p.expando]]:a[p.expando],!!a&&!K(a)},data:function(a,c,d,e){if(!p.acceptData(a))return;var f,g,h=p.expando,i=typeof c=="string",j=a.nodeType,k=j?p.cache:a,l=j?a[h]:a[h]&&h;if((!l||!k[l]||!e&&!k[l].data)&&i&&d===b)return;l||(j?a[h]=l=p.deletedIds.pop()||p.guid++:l=h),k[l]||(k[l]={},j||(k[l].toJSON=p.noop));if(typeof c=="object"||typeof c=="function")e?k[l]=p.extend(k[l],c):k[l].data=p.extend(k[l].data,c);return f=k[l],e||(f.data||(f.data={}),f=f.data),d!==b&&(f[p.camelCase(c)]=d),i?(g=f[c],g==null&&(g=f[p.camelCase(c)])):g=f,g},removeData:function(a,b,c){if(!p.acceptData(a))return;var d,e,f,g=a.nodeType,h=g?p.cache:a,i=g?a[p.expando]:p.expando;if(!h[i])return;if(b){d=c?h[i]:h[i].data;if(d){p.isArray(b)||(b in d?b=[b]:(b=p.camelCase(b),b in d?b=[b]:b=b.split(" ")));for(e=0,f=b.length;e1,null,!1))},removeData:function(a){return this.each(function(){p.removeData(this,a)})}}),p.extend({queue:function(a,b,c){var d;if(a)return b=(b||"fx")+"queue",d=p._data(a,b),c&&(!d||p.isArray(c)?d=p._data(a,b,p.makeArray(c)):d.push(c)),d||[]},dequeue:function(a,b){b=b||"fx";var c=p.queue(a,b),d=c.length,e=c.shift(),f=p._queueHooks(a,b),g=function(){p.dequeue(a,b)};e==="inprogress"&&(e=c.shift(),d--),e&&(b==="fx"&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return p._data(a,c)||p._data(a,c,{empty:p.Callbacks("once memory").add(function(){p.removeData(a,b+"queue",!0),p.removeData(a,c,!0)})})}}),p.fn.extend({queue:function(a,c){var d=2;return typeof a!="string"&&(c=a,a="fx",d--),arguments.length1)},removeAttr:function(a){return this.each(function(){p.removeAttr(this,a)})},prop:function(a,b){return p.access(this,p.prop,a,b,arguments.length>1)},removeProp:function(a){return a=p.propFix[a]||a,this.each(function(){try{this[a]=b,delete this[a]}catch(c){}})},addClass:function(a){var b,c,d,e,f,g,h;if(p.isFunction(a))return this.each(function(b){p(this).addClass(a.call(this,b,this.className))});if(a&&typeof a=="string"){b=a.split(s);for(c=0,d=this.length;c=0)d=d.replace(" "+c[f]+" "," ");e.className=a?p.trim(d):""}}}return this},toggleClass:function(a,b){var c=typeof a,d=typeof b=="boolean";return p.isFunction(a)?this.each(function(c){p(this).toggleClass(a.call(this,c,this.className,b),b)}):this.each(function(){if(c==="string"){var e,f=0,g=p(this),h=b,i=a.split(s);while(e=i[f++])h=d?h:!g.hasClass(e),g[h?"addClass":"removeClass"](e)}else if(c==="undefined"||c==="boolean")this.className&&p._data(this,"__className__",this.className),this.className=this.className||a===!1?"":p._data(this,"__className__")||""})},hasClass:function(a){var b=" "+a+" ",c=0,d=this.length;for(;c=0)return!0;return!1},val:function(a){var c,d,e,f=this[0];if(!arguments.length){if(f)return c=p.valHooks[f.type]||p.valHooks[f.nodeName.toLowerCase()],c&&"get"in c&&(d=c.get(f,"value"))!==b?d:(d=f.value,typeof d=="string"?d.replace(P,""):d==null?"":d);return}return e=p.isFunction(a),this.each(function(d){var f,g=p(this);if(this.nodeType!==1)return;e?f=a.call(this,d,g.val()):f=a,f==null?f="":typeof f=="number"?f+="":p.isArray(f)&&(f=p.map(f,function(a){return a==null?"":a+""})),c=p.valHooks[this.type]||p.valHooks[this.nodeName.toLowerCase()];if(!c||!("set"in c)||c.set(this,f,"value")===b)this.value=f})}}),p.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!b||b.specified?a.value:a.text}},select:{get:function(a){var b,c,d,e,f=a.selectedIndex,g=[],h=a.options,i=a.type==="select-one";if(f<0)return null;c=i?f:0,d=i?f+1:h.length;for(;c=0}),c.length||(a.selectedIndex=-1),c}}},attrFn:{},attr:function(a,c,d,e){var f,g,h,i=a.nodeType;if(!a||i===3||i===8||i===2)return;if(e&&p.isFunction(p.fn[c]))return p(a)[c](d);if(typeof a.getAttribute=="undefined")return p.prop(a,c,d);h=i!==1||!p.isXMLDoc(a),h&&(c=c.toLowerCase(),g=p.attrHooks[c]||(T.test(c)?M:L));if(d!==b){if(d===null){p.removeAttr(a,c);return}return g&&"set"in g&&h&&(f=g.set(a,d,c))!==b?f:(a.setAttribute(c,d+""),d)}return g&&"get"in g&&h&&(f=g.get(a,c))!==null?f:(f=a.getAttribute(c),f===null?b:f)},removeAttr:function(a,b){var c,d,e,f,g=0;if(b&&a.nodeType===1){d=b.split(s);for(;g=0}})});var V=/^(?:textarea|input|select)$/i,W=/^([^\.]*|)(?:\.(.+)|)$/,X=/(?:^|\s)hover(\.\S+|)\b/,Y=/^key/,Z=/^(?:mouse|contextmenu)|click/,$=/^(?:focusinfocus|focusoutblur)$/,_=function(a){return p.event.special.hover?a:a.replace(X,"mouseenter$1 mouseleave$1")};p.event={add:function(a,c,d,e,f){var g,h,i,j,k,l,m,n,o,q,r;if(a.nodeType===3||a.nodeType===8||!c||!d||!(g=p._data(a)))return;d.handler&&(o=d,d=o.handler,f=o.selector),d.guid||(d.guid=p.guid++),i=g.events,i||(g.events=i={}),h=g.handle,h||(g.handle=h=function(a){return typeof p!="undefined"&&(!a||p.event.triggered!==a.type)?p.event.dispatch.apply(h.elem,arguments):b},h.elem=a),c=p.trim(_(c)).split(" ");for(j=0;j=0&&(s=s.slice(0,-1),i=!0),s.indexOf(".")>=0&&(t=s.split("."),s=t.shift(),t.sort());if((!f||p.event.customEvent[s])&&!p.event.global[s])return;c=typeof c=="object"?c[p.expando]?c:new p.Event(s,c):new p.Event(s),c.type=s,c.isTrigger=!0,c.exclusive=i,c.namespace=t.join("."),c.namespace_re=c.namespace?new RegExp("(^|\\.)"+t.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,m=s.indexOf(":")<0?"on"+s:"";if(!f){h=p.cache;for(j in h)h[j].events&&h[j].events[s]&&p.event.trigger(c,d,h[j].handle.elem,!0);return}c.result=b,c.target||(c.target=f),d=d!=null?p.makeArray(d):[],d.unshift(c),n=p.event.special[s]||{};if(n.trigger&&n.trigger.apply(f,d)===!1)return;q=[[f,n.bindType||s]];if(!g&&!n.noBubble&&!p.isWindow(f)){r=n.delegateType||s,k=$.test(r+s)?f:f.parentNode;for(l=f;k;k=k.parentNode)q.push([k,r]),l=k;l===(f.ownerDocument||e)&&q.push([l.defaultView||l.parentWindow||a,r])}for(j=0;j=0:p.find(m,this,null,[f]).length),h[m]&&j.push(l);j.length&&u.push({elem:f,matches:j})}o.length>q&&u.push({elem:this,matches:o.slice(q)});for(d=0;d0?this.on(b,null,a,c):this.trigger(b)},Y.test(b)&&(p.event.fixHooks[b]=p.event.keyHooks),Z.test(b)&&(p.event.fixHooks[b]=p.event.mouseHooks)}),function(a,b){function bc(a,b,c,d){c=c||[],b=b||r;var e,f,i,j,k=b.nodeType;if(!a||typeof a!="string")return c;if(k!==1&&k!==9)return[];i=g(b);if(!i&&!d)if(e=P.exec(a))if(j=e[1]){if(k===9){f=b.getElementById(j);if(!f||!f.parentNode)return c;if(f.id===j)return c.push(f),c}else if(b.ownerDocument&&(f=b.ownerDocument.getElementById(j))&&h(b,f)&&f.id===j)return c.push(f),c}else{if(e[2])return w.apply(c,x.call(b.getElementsByTagName(a),0)),c;if((j=e[3])&&_&&b.getElementsByClassName)return w.apply(c,x.call(b.getElementsByClassName(j),0)),c}return bp(a.replace(L,"$1"),b,c,d,i)}function bd(a){return function(b){var c=b.nodeName.toLowerCase();return c==="input"&&b.type===a}}function be(a){return function(b){var c=b.nodeName.toLowerCase();return(c==="input"||c==="button")&&b.type===a}}function bf(a){return z(function(b){return b=+b,z(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function bg(a,b,c){if(a===b)return c;var d=a.nextSibling;while(d){if(d===b)return-1;d=d.nextSibling}return 1}function bh(a,b){var c,d,f,g,h,i,j,k=C[o][a];if(k)return b?0:k.slice(0);h=a,i=[],j=e.preFilter;while(h){if(!c||(d=M.exec(h)))d&&(h=h.slice(d[0].length)),i.push(f=[]);c=!1;if(d=N.exec(h))f.push(c=new q(d.shift())),h=h.slice(c.length),c.type=d[0].replace(L," ");for(g in e.filter)(d=W[g].exec(h))&&(!j[g]||(d=j[g](d,r,!0)))&&(f.push(c=new q(d.shift())),h=h.slice(c.length),c.type=g,c.matches=d);if(!c)break}return b?h.length:h?bc.error(a):C(a,i).slice(0)}function bi(a,b,d){var e=b.dir,f=d&&b.dir==="parentNode",g=u++;return b.first?function(b,c,d){while(b=b[e])if(f||b.nodeType===1)return a(b,c,d)}:function(b,d,h){if(!h){var i,j=t+" "+g+" ",k=j+c;while(b=b[e])if(f||b.nodeType===1){if((i=b[o])===k)return b.sizset;if(typeof i=="string"&&i.indexOf(j)===0){if(b.sizset)return b}else{b[o]=k;if(a(b,d,h))return b.sizset=!0,b;b.sizset=!1}}}else while(b=b[e])if(f||b.nodeType===1)if(a(b,d,h))return b}}function bj(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function bk(a,b,c,d,e){var f,g=[],h=0,i=a.length,j=b!=null;for(;h-1},h,!0),m=[function(a,c,d){return!g&&(d||c!==l)||((b=c).nodeType?j(a,c,d):k(a,c,d))}];for(;i1&&bj(m),i>1&&a.slice(0,i-1).join("").replace(L,"$1"),c,i0,f=a.length>0,g=function(h,i,j,k,m){var n,o,p,q=[],s=0,u="0",x=h&&[],y=m!=null,z=l,A=h||f&&e.find.TAG("*",m&&i.parentNode||i),B=t+=z==null?1:Math.E;y&&(l=i!==r&&i,c=g.el);for(;(n=A[u])!=null;u++){if(f&&n){for(o=0;p=a[o];o++)if(p(n,i,j)){k.push(n);break}y&&(t=B,c=++g.el)}d&&((n=!p&&n)&&s--,h&&x.push(n))}s+=u;if(d&&u!==s){for(o=0;p=b[o];o++)p(x,q,i,j);if(h){if(s>0)while(u--)!x[u]&&!q[u]&&(q[u]=v.call(k));q=bk(q)}w.apply(k,q),y&&!h&&q.length>0&&s+b.length>1&&bc.uniqueSort(k)}return y&&(t=B,l=z),x};return g.el=0,d?z(g):g}function bo(a,b,c,d){var e=0,f=b.length;for(;e2&&(j=h[0]).type==="ID"&&b.nodeType===9&&!f&&e.relative[h[1].type]){b=e.find.ID(j.matches[0].replace(V,""),b,f)[0];if(!b)return c;a=a.slice(h.shift().length)}for(g=W.POS.test(a)?-1:h.length-1;g>=0;g--){j=h[g];if(e.relative[k=j.type])break;if(l=e.find[k])if(d=l(j.matches[0].replace(V,""),R.test(h[0].type)&&b.parentNode||b,f)){h.splice(g,1),a=d.length&&h.join("");if(!a)return w.apply(c,x.call(d,0)),c;break}}}return i(a,m)(d,b,f,c,R.test(a)),c}function bq(){}var c,d,e,f,g,h,i,j,k,l,m=!0,n="undefined",o=("sizcache"+Math.random()).replace(".",""),q=String,r=a.document,s=r.documentElement,t=0,u=0,v=[].pop,w=[].push,x=[].slice,y=[].indexOf||function(a){var b=0,c=this.length;for(;be.cacheLength&&delete a[b.shift()],a[c]=d},a)},B=A(),C=A(),D=A(),E="[\\x20\\t\\r\\n\\f]",F="(?:\\\\.|[-\\w]|[^\\x00-\\xa0])+",G=F.replace("w","w#"),H="([*^$|!~]?=)",I="\\["+E+"*("+F+")"+E+"*(?:"+H+E+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+G+")|)|)"+E+"*\\]",J=":("+F+")(?:\\((?:(['\"])((?:\\\\.|[^\\\\])*?)\\2|([^()[\\]]*|(?:(?:"+I+")|[^:]|\\\\.)*|.*))\\)|)",K=":(even|odd|eq|gt|lt|nth|first|last)(?:\\("+E+"*((?:-\\d)?\\d*)"+E+"*\\)|)(?=[^-]|$)",L=new RegExp("^"+E+"+|((?:^|[^\\\\])(?:\\\\.)*)"+E+"+$","g"),M=new RegExp("^"+E+"*,"+E+"*"),N=new RegExp("^"+E+"*([\\x20\\t\\r\\n\\f>+~])"+E+"*"),O=new RegExp(J),P=/^(?:#([\w\-]+)|(\w+)|\.([\w\-]+))$/,Q=/^:not/,R=/[\x20\t\r\n\f]*[+~]/,S=/:not\($/,T=/h\d/i,U=/input|select|textarea|button/i,V=/\\(?!\\)/g,W={ID:new RegExp("^#("+F+")"),CLASS:new RegExp("^\\.("+F+")"),NAME:new RegExp("^\\[name=['\"]?("+F+")['\"]?\\]"),TAG:new RegExp("^("+F.replace("w","w*")+")"),ATTR:new RegExp("^"+I),PSEUDO:new RegExp("^"+J),POS:new RegExp(K,"i"),CHILD:new RegExp("^:(only|nth|first|last)-child(?:\\("+E+"*(even|odd|(([+-]|)(\\d*)n|)"+E+"*(?:([+-]|)"+E+"*(\\d+)|))"+E+"*\\)|)","i"),needsContext:new RegExp("^"+E+"*[>+~]|"+K,"i")},X=function(a){var b=r.createElement("div");try{return a(b)}catch(c){return!1}finally{b=null}},Y=X(function(a){return a.appendChild(r.createComment("")),!a.getElementsByTagName("*").length}),Z=X(function(a){return a.innerHTML="",a.firstChild&&typeof a.firstChild.getAttribute!==n&&a.firstChild.getAttribute("href")==="#"}),$=X(function(a){a.innerHTML="";var b=typeof a.lastChild.getAttribute("multiple");return b!=="boolean"&&b!=="string"}),_=X(function(a){return a.innerHTML="",!a.getElementsByClassName||!a.getElementsByClassName("e").length?!1:(a.lastChild.className="e",a.getElementsByClassName("e").length===2)}),ba=X(function(a){a.id=o+0,a.innerHTML="
              ",s.insertBefore(a,s.firstChild);var b=r.getElementsByName&&r.getElementsByName(o).length===2+r.getElementsByName(o+0).length;return d=!r.getElementById(o),s.removeChild(a),b});try{x.call(s.childNodes,0)[0].nodeType}catch(bb){x=function(a){var b,c=[];for(;b=this[a];a++)c.push(b);return c}}bc.matches=function(a,b){return bc(a,null,null,b)},bc.matchesSelector=function(a,b){return bc(b,null,null,[a]).length>0},f=bc.getText=function(a){var b,c="",d=0,e=a.nodeType;if(e){if(e===1||e===9||e===11){if(typeof a.textContent=="string")return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=f(a)}else if(e===3||e===4)return a.nodeValue}else for(;b=a[d];d++)c+=f(b);return c},g=bc.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?b.nodeName!=="HTML":!1},h=bc.contains=s.contains?function(a,b){var c=a.nodeType===9?a.documentElement:a,d=b&&b.parentNode;return a===d||!!(d&&d.nodeType===1&&c.contains&&c.contains(d))}:s.compareDocumentPosition?function(a,b){return b&&!!(a.compareDocumentPosition(b)&16)}:function(a,b){while(b=b.parentNode)if(b===a)return!0;return!1},bc.attr=function(a,b){var c,d=g(a);return d||(b=b.toLowerCase()),(c=e.attrHandle[b])?c(a):d||$?a.getAttribute(b):(c=a.getAttributeNode(b),c?typeof a[b]=="boolean"?a[b]?b:null:c.specified?c.value:null:null)},e=bc.selectors={cacheLength:50,createPseudo:z,match:W,attrHandle:Z?{}:{href:function(a){return a.getAttribute("href",2)},type:function(a){return a.getAttribute("type")}},find:{ID:d?function(a,b,c){if(typeof b.getElementById!==n&&!c){var d=b.getElementById(a);return d&&d.parentNode?[d]:[]}}:function(a,c,d){if(typeof c.getElementById!==n&&!d){var e=c.getElementById(a);return e?e.id===a||typeof e.getAttributeNode!==n&&e.getAttributeNode("id").value===a?[e]:b:[]}},TAG:Y?function(a,b){if(typeof b.getElementsByTagName!==n)return b.getElementsByTagName(a)}:function(a,b){var c=b.getElementsByTagName(a);if(a==="*"){var d,e=[],f=0;for(;d=c[f];f++)d.nodeType===1&&e.push(d);return e}return c},NAME:ba&&function(a,b){if(typeof b.getElementsByName!==n)return b.getElementsByName(name)},CLASS:_&&function(a,b,c){if(typeof b.getElementsByClassName!==n&&!c)return b.getElementsByClassName(a)}},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(V,""),a[3]=(a[4]||a[5]||"").replace(V,""),a[2]==="~="&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),a[1]==="nth"?(a[2]||bc.error(a[0]),a[3]=+(a[3]?a[4]+(a[5]||1):2*(a[2]==="even"||a[2]==="odd")),a[4]=+(a[6]+a[7]||a[2]==="odd")):a[2]&&bc.error(a[0]),a},PSEUDO:function(a){var b,c;if(W.CHILD.test(a[0]))return null;if(a[3])a[2]=a[3];else if(b=a[4])O.test(b)&&(c=bh(b,!0))&&(c=b.indexOf(")",b.length-c)-b.length)&&(b=b.slice(0,c),a[0]=a[0].slice(0,c)),a[2]=b;return a.slice(0,3)}},filter:{ID:d?function(a){return a=a.replace(V,""),function(b){return b.getAttribute("id")===a}}:function(a){return a=a.replace(V,""),function(b){var c=typeof b.getAttributeNode!==n&&b.getAttributeNode("id");return c&&c.value===a}},TAG:function(a){return a==="*"?function(){return!0}:(a=a.replace(V,"").toLowerCase(),function(b){return b.nodeName&&b.nodeName.toLowerCase()===a})},CLASS:function(a){var b=B[o][a];return b||(b=B(a,new RegExp("(^|"+E+")"+a+"("+E+"|$)"))),function(a){return b.test(a.className||typeof a.getAttribute!==n&&a.getAttribute("class")||"")}},ATTR:function(a,b,c){return function(d,e){var f=bc.attr(d,a);return f==null?b==="!=":b?(f+="",b==="="?f===c:b==="!="?f!==c:b==="^="?c&&f.indexOf(c)===0:b==="*="?c&&f.indexOf(c)>-1:b==="$="?c&&f.substr(f.length-c.length)===c:b==="~="?(" "+f+" ").indexOf(c)>-1:b==="|="?f===c||f.substr(0,c.length+1)===c+"-":!1):!0}},CHILD:function(a,b,c,d){return a==="nth"?function(a){var b,e,f=a.parentNode;if(c===1&&d===0)return!0;if(f){e=0;for(b=f.firstChild;b;b=b.nextSibling)if(b.nodeType===1){e++;if(a===b)break}}return e-=d,e===c||e%c===0&&e/c>=0}:function(b){var c=b;switch(a){case"only":case"first":while(c=c.previousSibling)if(c.nodeType===1)return!1;if(a==="first")return!0;c=b;case"last":while(c=c.nextSibling)if(c.nodeType===1)return!1;return!0}}},PSEUDO:function(a,b){var c,d=e.pseudos[a]||e.setFilters[a.toLowerCase()]||bc.error("unsupported pseudo: "+a);return d[o]?d(b):d.length>1?(c=[a,a,"",b],e.setFilters.hasOwnProperty(a.toLowerCase())?z(function(a,c){var e,f=d(a,b),g=f.length;while(g--)e=y.call(a,f[g]),a[e]=!(c[e]=f[g])}):function(a){return d(a,0,c)}):d}},pseudos:{not:z(function(a){var b=[],c=[],d=i(a.replace(L,"$1"));return d[o]?z(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)if(f=g[h])a[h]=!(b[h]=f)}):function(a,e,f){return b[0]=a,d(b,null,f,c),!c.pop()}}),has:z(function(a){return function(b){return bc(a,b).length>0}}),contains:z(function(a){return function(b){return(b.textContent||b.innerText||f(b)).indexOf(a)>-1}}),enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&!!a.checked||b==="option"&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},parent:function(a){return!e.pseudos.empty(a)},empty:function(a){var b;a=a.firstChild;while(a){if(a.nodeName>"@"||(b=a.nodeType)===3||b===4)return!1;a=a.nextSibling}return!0},header:function(a){return T.test(a.nodeName)},text:function(a){var b,c;return a.nodeName.toLowerCase()==="input"&&(b=a.type)==="text"&&((c=a.getAttribute("type"))==null||c.toLowerCase()===b)},radio:bd("radio"),checkbox:bd("checkbox"),file:bd("file"),password:bd("password"),image:bd("image"),submit:be("submit"),reset:be("reset"),button:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&a.type==="button"||b==="button"},input:function(a){return U.test(a.nodeName)},focus:function(a){var b=a.ownerDocument;return a===b.activeElement&&(!b.hasFocus||b.hasFocus())&&(!!a.type||!!a.href)},active:function(a){return a===a.ownerDocument.activeElement},first:bf(function(a,b,c){return[0]}),last:bf(function(a,b,c){return[b-1]}),eq:bf(function(a,b,c){return[c<0?c+b:c]}),even:bf(function(a,b,c){for(var d=0;d=0;)a.push(d);return a}),gt:bf(function(a,b,c){for(var d=c<0?c+b:c;++d",a.querySelectorAll("[selected]").length||e.push("\\["+E+"*(?:checked|disabled|ismap|multiple|readonly|selected|value)"),a.querySelectorAll(":checked").length||e.push(":checked")}),X(function(a){a.innerHTML="

              ",a.querySelectorAll("[test^='']").length&&e.push("[*^$]="+E+"*(?:\"\"|'')"),a.innerHTML="",a.querySelectorAll(":enabled").length||e.push(":enabled",":disabled")}),e=new RegExp(e.join("|")),bp=function(a,d,f,g,h){if(!g&&!h&&(!e||!e.test(a))){var i,j,k=!0,l=o,m=d,n=d.nodeType===9&&a;if(d.nodeType===1&&d.nodeName.toLowerCase()!=="object"){i=bh(a),(k=d.getAttribute("id"))?l=k.replace(c,"\\$&"):d.setAttribute("id",l),l="[id='"+l+"'] ",j=i.length;while(j--)i[j]=l+i[j].join("");m=R.test(a)&&d.parentNode||d,n=i.join(",")}if(n)try{return w.apply(f,x.call(m.querySelectorAll(n),0)),f}catch(p){}finally{k||d.removeAttribute("id")}}return b(a,d,f,g,h)},h&&(X(function(b){a=h.call(b,"div");try{h.call(b,"[test!='']:sizzle"),f.push("!=",J)}catch(c){}}),f=new RegExp(f.join("|")),bc.matchesSelector=function(b,c){c=c.replace(d,"='$1']");if(!g(b)&&!f.test(c)&&(!e||!e.test(c)))try{var i=h.call(b,c);if(i||a||b.document&&b.document.nodeType!==11)return i}catch(j){}return bc(c,null,null,[b]).length>0})}(),e.pseudos.nth=e.pseudos.eq,e.filters=bq.prototype=e.pseudos,e.setFilters=new bq,bc.attr=p.attr,p.find=bc,p.expr=bc.selectors,p.expr[":"]=p.expr.pseudos,p.unique=bc.uniqueSort,p.text=bc.getText,p.isXMLDoc=bc.isXML,p.contains=bc.contains}(a);var bc=/Until$/,bd=/^(?:parents|prev(?:Until|All))/,be=/^.[^:#\[\.,]*$/,bf=p.expr.match.needsContext,bg={children:!0,contents:!0,next:!0,prev:!0};p.fn.extend({find:function(a){var b,c,d,e,f,g,h=this;if(typeof a!="string")return p(a).filter(function(){for(b=0,c=h.length;b0)for(e=d;e=0:p.filter(a,this).length>0:this.filter(a).length>0)},closest:function(a,b){var c,d=0,e=this.length,f=[],g=bf.test(a)||typeof a!="string"?p(a,b||this.context):0;for(;d-1:p.find.matchesSelector(c,a)){f.push(c);break}c=c.parentNode}}return f=f.length>1?p.unique(f):f,this.pushStack(f,"closest",a)},index:function(a){return a?typeof a=="string"?p.inArray(this[0],p(a)):p.inArray(a.jquery?a[0]:a,this):this[0]&&this[0].parentNode?this.prevAll().length:-1},add:function(a,b){var c=typeof a=="string"?p(a,b):p.makeArray(a&&a.nodeType?[a]:a),d=p.merge(this.get(),c);return this.pushStack(bh(c[0])||bh(d[0])?d:p.unique(d))},addBack:function(a){return this.add(a==null?this.prevObject:this.prevObject.filter(a))}}),p.fn.andSelf=p.fn.addBack,p.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return p.dir(a,"parentNode")},parentsUntil:function(a,b,c){return p.dir(a,"parentNode",c)},next:function(a){return bi(a,"nextSibling")},prev:function(a){return bi(a,"previousSibling")},nextAll:function(a){return p.dir(a,"nextSibling")},prevAll:function(a){return p.dir(a,"previousSibling")},nextUntil:function(a,b,c){return p.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return p.dir(a,"previousSibling",c)},siblings:function(a){return p.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return p.sibling(a.firstChild)},contents:function(a){return p.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:p.merge([],a.childNodes)}},function(a,b){p.fn[a]=function(c,d){var e=p.map(this,b,c);return bc.test(a)||(d=c),d&&typeof d=="string"&&(e=p.filter(d,e)),e=this.length>1&&!bg[a]?p.unique(e):e,this.length>1&&bd.test(a)&&(e=e.reverse()),this.pushStack(e,a,k.call(arguments).join(","))}}),p.extend({filter:function(a,b,c){return c&&(a=":not("+a+")"),b.length===1?p.find.matchesSelector(b[0],a)?[b[0]]:[]:p.find.matches(a,b)},dir:function(a,c,d){var e=[],f=a[c];while(f&&f.nodeType!==9&&(d===b||f.nodeType!==1||!p(f).is(d)))f.nodeType===1&&e.push(f),f=f[c];return e},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var bl="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",bm=/ jQuery\d+="(?:null|\d+)"/g,bn=/^\s+/,bo=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,bp=/<([\w:]+)/,bq=/]","i"),bv=/^(?:checkbox|radio)$/,bw=/checked\s*(?:[^=]|=\s*.checked.)/i,bx=/\/(java|ecma)script/i,by=/^\s*\s*$/g,bz={option:[1,""],legend:[1,"
              ","
              "],thead:[1,"","
              "],tr:[2,"","
              "],td:[3,"","
              "],col:[2,"","
              "],area:[1,"",""],_default:[0,"",""]},bA=bk(e),bB=bA.appendChild(e.createElement("div"));bz.optgroup=bz.option,bz.tbody=bz.tfoot=bz.colgroup=bz.caption=bz.thead,bz.th=bz.td,p.support.htmlSerialize||(bz._default=[1,"X
              ","
              "]),p.fn.extend({text:function(a){return p.access(this,function(a){return a===b?p.text(this):this.empty().append((this[0]&&this[0].ownerDocument||e).createTextNode(a))},null,a,arguments.length)},wrapAll:function(a){if(p.isFunction(a))return this.each(function(b){p(this).wrapAll(a.call(this,b))});if(this[0]){var b=p(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){return p.isFunction(a)?this.each(function(b){p(this).wrapInner(a.call(this,b))}):this.each(function(){var b=p(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=p.isFunction(a);return this.each(function(c){p(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){p.nodeName(this,"body")||p(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){(this.nodeType===1||this.nodeType===11)&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){(this.nodeType===1||this.nodeType===11)&&this.insertBefore(a,this.firstChild)})},before:function(){if(!bh(this[0]))return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=p.clean(arguments);return this.pushStack(p.merge(a,this),"before",this.selector)}},after:function(){if(!bh(this[0]))return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=p.clean(arguments);return this.pushStack(p.merge(this,a),"after",this.selector)}},remove:function(a,b){var c,d=0;for(;(c=this[d])!=null;d++)if(!a||p.filter(a,[c]).length)!b&&c.nodeType===1&&(p.cleanData(c.getElementsByTagName("*")),p.cleanData([c])),c.parentNode&&c.parentNode.removeChild(c);return this},empty:function(){var a,b=0;for(;(a=this[b])!=null;b++){a.nodeType===1&&p.cleanData(a.getElementsByTagName("*"));while(a.firstChild)a.removeChild(a.firstChild)}return this},clone:function(a,b){return a=a==null?!1:a,b=b==null?a:b,this.map(function(){return p.clone(this,a,b)})},html:function(a){return p.access(this,function(a){var c=this[0]||{},d=0,e=this.length;if(a===b)return c.nodeType===1?c.innerHTML.replace(bm,""):b;if(typeof a=="string"&&!bs.test(a)&&(p.support.htmlSerialize||!bu.test(a))&&(p.support.leadingWhitespace||!bn.test(a))&&!bz[(bp.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(bo,"<$1>");try{for(;d1&&typeof j=="string"&&bw.test(j))return this.each(function(){p(this).domManip(a,c,d)});if(p.isFunction(j))return this.each(function(e){var f=p(this);a[0]=j.call(this,e,c?f.html():b),f.domManip(a,c,d)});if(this[0]){e=p.buildFragment(a,this,k),g=e.fragment,f=g.firstChild,g.childNodes.length===1&&(g=f);if(f){c=c&&p.nodeName(f,"tr");for(h=e.cacheable||l-1;i0?this.clone(!0):this).get(),p(g[e])[b](d),f=f.concat(d);return this.pushStack(f,a,g.selector)}}),p.extend({clone:function(a,b,c){var d,e,f,g;p.support.html5Clone||p.isXMLDoc(a)||!bu.test("<"+a.nodeName+">")?g=a.cloneNode(!0):(bB.innerHTML=a.outerHTML,bB.removeChild(g=bB.firstChild));if((!p.support.noCloneEvent||!p.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!p.isXMLDoc(a)){bE(a,g),d=bF(a),e=bF(g);for(f=0;d[f];++f)e[f]&&bE(d[f],e[f])}if(b){bD(a,g);if(c){d=bF(a),e=bF(g);for(f=0;d[f];++f)bD(d[f],e[f])}}return d=e=null,g},clean:function(a,b,c,d){var f,g,h,i,j,k,l,m,n,o,q,r,s=b===e&&bA,t=[];if(!b||typeof b.createDocumentFragment=="undefined")b=e;for(f=0;(h=a[f])!=null;f++){typeof h=="number"&&(h+="");if(!h)continue;if(typeof h=="string")if(!br.test(h))h=b.createTextNode(h);else{s=s||bk(b),l=b.createElement("div"),s.appendChild(l),h=h.replace(bo,"<$1>"),i=(bp.exec(h)||["",""])[1].toLowerCase(),j=bz[i]||bz._default,k=j[0],l.innerHTML=j[1]+h+j[2];while(k--)l=l.lastChild;if(!p.support.tbody){m=bq.test(h),n=i==="table"&&!m?l.firstChild&&l.firstChild.childNodes:j[1]===""&&!m?l.childNodes:[];for(g=n.length-1;g>=0;--g)p.nodeName(n[g],"tbody")&&!n[g].childNodes.length&&n[g].parentNode.removeChild(n[g])}!p.support.leadingWhitespace&&bn.test(h)&&l.insertBefore(b.createTextNode(bn.exec(h)[0]),l.firstChild),h=l.childNodes,l.parentNode.removeChild(l)}h.nodeType?t.push(h):p.merge(t,h)}l&&(h=l=s=null);if(!p.support.appendChecked)for(f=0;(h=t[f])!=null;f++)p.nodeName(h,"input")?bG(h):typeof h.getElementsByTagName!="undefined"&&p.grep(h.getElementsByTagName("input"),bG);if(c){q=function(a){if(!a.type||bx.test(a.type))return d?d.push(a.parentNode?a.parentNode.removeChild(a):a):c.appendChild(a)};for(f=0;(h=t[f])!=null;f++)if(!p.nodeName(h,"script")||!q(h))c.appendChild(h),typeof h.getElementsByTagName!="undefined"&&(r=p.grep(p.merge([],h.getElementsByTagName("script")),q),t.splice.apply(t,[f+1,0].concat(r)),f+=r.length)}return t},cleanData:function(a,b){var c,d,e,f,g=0,h=p.expando,i=p.cache,j=p.support.deleteExpando,k=p.event.special;for(;(e=a[g])!=null;g++)if(b||p.acceptData(e)){d=e[h],c=d&&i[d];if(c){if(c.events)for(f in c.events)k[f]?p.event.remove(e,f):p.removeEvent(e,f,c.handle);i[d]&&(delete i[d],j?delete e[h]:e.removeAttribute?e.removeAttribute(h):e[h]=null,p.deletedIds.push(d))}}}}),function(){var a,b;p.uaMatch=function(a){a=a.toLowerCase();var b=/(chrome)[ \/]([\w.]+)/.exec(a)||/(webkit)[ \/]([\w.]+)/.exec(a)||/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(a)||/(msie) ([\w.]+)/.exec(a)||a.indexOf("compatible")<0&&/(mozilla)(?:.*? rv:([\w.]+)|)/.exec(a)||[];return{browser:b[1]||"",version:b[2]||"0"}},a=p.uaMatch(g.userAgent),b={},a.browser&&(b[a.browser]=!0,b.version=a.version),b.chrome?b.webkit=!0:b.webkit&&(b.safari=!0),p.browser=b,p.sub=function(){function a(b,c){return new a.fn.init(b,c)}p.extend(!0,a,this),a.superclass=this,a.fn=a.prototype=this(),a.fn.constructor=a,a.sub=this.sub,a.fn.init=function c(c,d){return d&&d instanceof p&&!(d instanceof a)&&(d=a(d)),p.fn.init.call(this,c,d,b)},a.fn.init.prototype=a.fn;var b=a(e);return a}}();var bH,bI,bJ,bK=/alpha\([^)]*\)/i,bL=/opacity=([^)]*)/,bM=/^(top|right|bottom|left)$/,bN=/^(none|table(?!-c[ea]).+)/,bO=/^margin/,bP=new RegExp("^("+q+")(.*)$","i"),bQ=new RegExp("^("+q+")(?!px)[a-z%]+$","i"),bR=new RegExp("^([-+])=("+q+")","i"),bS={},bT={position:"absolute",visibility:"hidden",display:"block"},bU={letterSpacing:0,fontWeight:400},bV=["Top","Right","Bottom","Left"],bW=["Webkit","O","Moz","ms"],bX=p.fn.toggle;p.fn.extend({css:function(a,c){return p.access(this,function(a,c,d){return d!==b?p.style(a,c,d):p.css(a,c)},a,c,arguments.length>1)},show:function(){return b$(this,!0)},hide:function(){return b$(this)},toggle:function(a,b){var c=typeof a=="boolean";return p.isFunction(a)&&p.isFunction(b)?bX.apply(this,arguments):this.each(function(){(c?a:bZ(this))?p(this).show():p(this).hide()})}}),p.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=bH(a,"opacity");return c===""?"1":c}}}},cssNumber:{fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":p.support.cssFloat?"cssFloat":"styleFloat"},style:function(a,c,d,e){if(!a||a.nodeType===3||a.nodeType===8||!a.style)return;var f,g,h,i=p.camelCase(c),j=a.style;c=p.cssProps[i]||(p.cssProps[i]=bY(j,i)),h=p.cssHooks[c]||p.cssHooks[i];if(d===b)return h&&"get"in h&&(f=h.get(a,!1,e))!==b?f:j[c];g=typeof d,g==="string"&&(f=bR.exec(d))&&(d=(f[1]+1)*f[2]+parseFloat(p.css(a,c)),g="number");if(d==null||g==="number"&&isNaN(d))return;g==="number"&&!p.cssNumber[i]&&(d+="px");if(!h||!("set"in h)||(d=h.set(a,d,e))!==b)try{j[c]=d}catch(k){}},css:function(a,c,d,e){var f,g,h,i=p.camelCase(c);return c=p.cssProps[i]||(p.cssProps[i]=bY(a.style,i)),h=p.cssHooks[c]||p.cssHooks[i],h&&"get"in h&&(f=h.get(a,!0,e)),f===b&&(f=bH(a,c)),f==="normal"&&c in bU&&(f=bU[c]),d||e!==b?(g=parseFloat(f),d||p.isNumeric(g)?g||0:f):f},swap:function(a,b,c){var d,e,f={};for(e in b)f[e]=a.style[e],a.style[e]=b[e];d=c.call(a);for(e in b)a.style[e]=f[e];return d}}),a.getComputedStyle?bH=function(b,c){var d,e,f,g,h=a.getComputedStyle(b,null),i=b.style;return h&&(d=h[c],d===""&&!p.contains(b.ownerDocument,b)&&(d=p.style(b,c)),bQ.test(d)&&bO.test(c)&&(e=i.width,f=i.minWidth,g=i.maxWidth,i.minWidth=i.maxWidth=i.width=d,d=h.width,i.width=e,i.minWidth=f,i.maxWidth=g)),d}:e.documentElement.currentStyle&&(bH=function(a,b){var c,d,e=a.currentStyle&&a.currentStyle[b],f=a.style;return e==null&&f&&f[b]&&(e=f[b]),bQ.test(e)&&!bM.test(b)&&(c=f.left,d=a.runtimeStyle&&a.runtimeStyle.left,d&&(a.runtimeStyle.left=a.currentStyle.left),f.left=b==="fontSize"?"1em":e,e=f.pixelLeft+"px",f.left=c,d&&(a.runtimeStyle.left=d)),e===""?"auto":e}),p.each(["height","width"],function(a,b){p.cssHooks[b]={get:function(a,c,d){if(c)return a.offsetWidth===0&&bN.test(bH(a,"display"))?p.swap(a,bT,function(){return cb(a,b,d)}):cb(a,b,d)},set:function(a,c,d){return b_(a,c,d?ca(a,b,d,p.support.boxSizing&&p.css(a,"boxSizing")==="border-box"):0)}}}),p.support.opacity||(p.cssHooks.opacity={get:function(a,b){return bL.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=p.isNumeric(b)?"alpha(opacity="+b*100+")":"",f=d&&d.filter||c.filter||"";c.zoom=1;if(b>=1&&p.trim(f.replace(bK,""))===""&&c.removeAttribute){c.removeAttribute("filter");if(d&&!d.filter)return}c.filter=bK.test(f)?f.replace(bK,e):f+" "+e}}),p(function(){p.support.reliableMarginRight||(p.cssHooks.marginRight={get:function(a,b){return p.swap(a,{display:"inline-block"},function(){if(b)return bH(a,"marginRight")})}}),!p.support.pixelPosition&&p.fn.position&&p.each(["top","left"],function(a,b){p.cssHooks[b]={get:function(a,c){if(c){var d=bH(a,b);return bQ.test(d)?p(a).position()[b]+"px":d}}}})}),p.expr&&p.expr.filters&&(p.expr.filters.hidden=function(a){return a.offsetWidth===0&&a.offsetHeight===0||!p.support.reliableHiddenOffsets&&(a.style&&a.style.display||bH(a,"display"))==="none"},p.expr.filters.visible=function(a){return!p.expr.filters.hidden(a)}),p.each({margin:"",padding:"",border:"Width"},function(a,b){p.cssHooks[a+b]={expand:function(c){var d,e=typeof c=="string"?c.split(" "):[c],f={};for(d=0;d<4;d++)f[a+bV[d]+b]=e[d]||e[d-2]||e[0];return f}},bO.test(a)||(p.cssHooks[a+b].set=b_)});var cd=/%20/g,ce=/\[\]$/,cf=/\r?\n/g,cg=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,ch=/^(?:select|textarea)/i;p.fn.extend({serialize:function(){return p.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?p.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||ch.test(this.nodeName)||cg.test(this.type))}).map(function(a,b){var c=p(this).val();return c==null?null:p.isArray(c)?p.map(c,function(a,c){return{name:b.name,value:a.replace(cf,"\r\n")}}):{name:b.name,value:c.replace(cf,"\r\n")}}).get()}}),p.param=function(a,c){var d,e=[],f=function(a,b){b=p.isFunction(b)?b():b==null?"":b,e[e.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=p.ajaxSettings&&p.ajaxSettings.traditional);if(p.isArray(a)||a.jquery&&!p.isPlainObject(a))p.each(a,function(){f(this.name,this.value)});else for(d in a)ci(d,a[d],c,f);return e.join("&").replace(cd,"+")};var cj,ck,cl=/#.*$/,cm=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,cn=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,co=/^(?:GET|HEAD)$/,cp=/^\/\//,cq=/\?/,cr=/)<[^<]*)*<\/script>/gi,cs=/([?&])_=[^&]*/,ct=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/,cu=p.fn.load,cv={},cw={},cx=["*/"]+["*"];try{ck=f.href}catch(cy){ck=e.createElement("a"),ck.href="",ck=ck.href}cj=ct.exec(ck.toLowerCase())||[],p.fn.load=function(a,c,d){if(typeof a!="string"&&cu)return cu.apply(this,arguments);if(!this.length)return this;var e,f,g,h=this,i=a.indexOf(" ");return i>=0&&(e=a.slice(i,a.length),a=a.slice(0,i)),p.isFunction(c)?(d=c,c=b):c&&typeof c=="object"&&(f="POST"),p.ajax({url:a,type:f,dataType:"html",data:c,complete:function(a,b){d&&h.each(d,g||[a.responseText,b,a])}}).done(function(a){g=arguments,h.html(e?p("
              ").append(a.replace(cr,"")).find(e):a)}),this},p.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){p.fn[b]=function(a){return this.on(b,a)}}),p.each(["get","post"],function(a,c){p[c]=function(a,d,e,f){return p.isFunction(d)&&(f=f||e,e=d,d=b),p.ajax({type:c,url:a,data:d,success:e,dataType:f})}}),p.extend({getScript:function(a,c){return p.get(a,b,c,"script")},getJSON:function(a,b,c){return p.get(a,b,c,"json")},ajaxSetup:function(a,b){return b?cB(a,p.ajaxSettings):(b=a,a=p.ajaxSettings),cB(a,b),a},ajaxSettings:{url:ck,isLocal:cn.test(cj[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded; charset=UTF-8",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":cx},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":p.parseJSON,"text xml":p.parseXML},flatOptions:{context:!0,url:!0}},ajaxPrefilter:cz(cv),ajaxTransport:cz(cw),ajax:function(a,c){function y(a,c,f,i){var k,s,t,u,w,y=c;if(v===2)return;v=2,h&&clearTimeout(h),g=b,e=i||"",x.readyState=a>0?4:0,f&&(u=cC(l,x,f));if(a>=200&&a<300||a===304)l.ifModified&&(w=x.getResponseHeader("Last-Modified"),w&&(p.lastModified[d]=w),w=x.getResponseHeader("Etag"),w&&(p.etag[d]=w)),a===304?(y="notmodified",k=!0):(k=cD(l,u),y=k.state,s=k.data,t=k.error,k=!t);else{t=y;if(!y||a)y="error",a<0&&(a=0)}x.status=a,x.statusText=(c||y)+"",k?o.resolveWith(m,[s,y,x]):o.rejectWith(m,[x,y,t]),x.statusCode(r),r=b,j&&n.trigger("ajax"+(k?"Success":"Error"),[x,l,k?s:t]),q.fireWith(m,[x,y]),j&&(n.trigger("ajaxComplete",[x,l]),--p.active||p.event.trigger("ajaxStop"))}typeof a=="object"&&(c=a,a=b),c=c||{};var d,e,f,g,h,i,j,k,l=p.ajaxSetup({},c),m=l.context||l,n=m!==l&&(m.nodeType||m instanceof p)?p(m):p.event,o=p.Deferred(),q=p.Callbacks("once memory"),r=l.statusCode||{},t={},u={},v=0,w="canceled",x={readyState:0,setRequestHeader:function(a,b){if(!v){var c=a.toLowerCase();a=u[c]=u[c]||a,t[a]=b}return this},getAllResponseHeaders:function(){return v===2?e:null},getResponseHeader:function(a){var c;if(v===2){if(!f){f={};while(c=cm.exec(e))f[c[1].toLowerCase()]=c[2]}c=f[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){return v||(l.mimeType=a),this},abort:function(a){return a=a||w,g&&g.abort(a),y(0,a),this}};o.promise(x),x.success=x.done,x.error=x.fail,x.complete=q.add,x.statusCode=function(a){if(a){var b;if(v<2)for(b in a)r[b]=[r[b],a[b]];else b=a[x.status],x.always(b)}return this},l.url=((a||l.url)+"").replace(cl,"").replace(cp,cj[1]+"//"),l.dataTypes=p.trim(l.dataType||"*").toLowerCase().split(s),l.crossDomain==null&&(i=ct.exec(l.url.toLowerCase())||!1,l.crossDomain=i&&i.join(":")+(i[3]?"":i[1]==="http:"?80:443)!==cj.join(":")+(cj[3]?"":cj[1]==="http:"?80:443)),l.data&&l.processData&&typeof l.data!="string"&&(l.data=p.param(l.data,l.traditional)),cA(cv,l,c,x);if(v===2)return x;j=l.global,l.type=l.type.toUpperCase(),l.hasContent=!co.test(l.type),j&&p.active++===0&&p.event.trigger("ajaxStart");if(!l.hasContent){l.data&&(l.url+=(cq.test(l.url)?"&":"?")+l.data,delete l.data),d=l.url;if(l.cache===!1){var z=p.now(),A=l.url.replace(cs,"$1_="+z);l.url=A+(A===l.url?(cq.test(l.url)?"&":"?")+"_="+z:"")}}(l.data&&l.hasContent&&l.contentType!==!1||c.contentType)&&x.setRequestHeader("Content-Type",l.contentType),l.ifModified&&(d=d||l.url,p.lastModified[d]&&x.setRequestHeader("If-Modified-Since",p.lastModified[d]),p.etag[d]&&x.setRequestHeader("If-None-Match",p.etag[d])),x.setRequestHeader("Accept",l.dataTypes[0]&&l.accepts[l.dataTypes[0]]?l.accepts[l.dataTypes[0]]+(l.dataTypes[0]!=="*"?", "+cx+"; q=0.01":""):l.accepts["*"]);for(k in l.headers)x.setRequestHeader(k,l.headers[k]);if(!l.beforeSend||l.beforeSend.call(m,x,l)!==!1&&v!==2){w="abort";for(k in{success:1,error:1,complete:1})x[k](l[k]);g=cA(cw,l,c,x);if(!g)y(-1,"No Transport");else{x.readyState=1,j&&n.trigger("ajaxSend",[x,l]),l.async&&l.timeout>0&&(h=setTimeout(function(){x.abort("timeout")},l.timeout));try{v=1,g.send(t,y)}catch(B){if(v<2)y(-1,B);else throw B}}return x}return x.abort()},active:0,lastModified:{},etag:{}});var cE=[],cF=/\?/,cG=/(=)\?(?=&|$)|\?\?/,cH=p.now();p.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var a=cE.pop()||p.expando+"_"+cH++;return this[a]=!0,a}}),p.ajaxPrefilter("json jsonp",function(c,d,e){var f,g,h,i=c.data,j=c.url,k=c.jsonp!==!1,l=k&&cG.test(j),m=k&&!l&&typeof i=="string"&&!(c.contentType||"").indexOf("application/x-www-form-urlencoded")&&cG.test(i);if(c.dataTypes[0]==="jsonp"||l||m)return f=c.jsonpCallback=p.isFunction(c.jsonpCallback)?c.jsonpCallback():c.jsonpCallback,g=a[f],l?c.url=j.replace(cG,"$1"+f):m?c.data=i.replace(cG,"$1"+f):k&&(c.url+=(cF.test(j)?"&":"?")+c.jsonp+"="+f),c.converters["script json"]=function(){return h||p.error(f+" was not called"),h[0]},c.dataTypes[0]="json",a[f]=function(){h=arguments},e.always(function(){a[f]=g,c[f]&&(c.jsonpCallback=d.jsonpCallback,cE.push(f)),h&&p.isFunction(g)&&g(h[0]),h=g=b}),"script"}),p.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){return p.globalEval(a),a}}}),p.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),p.ajaxTransport("script",function(a){if(a.crossDomain){var c,d=e.head||e.getElementsByTagName("head")[0]||e.documentElement;return{send:function(f,g){c=e.createElement("script"),c.async="async",a.scriptCharset&&(c.charset=a.scriptCharset),c.src=a.url,c.onload=c.onreadystatechange=function(a,e){if(e||!c.readyState||/loaded|complete/.test(c.readyState))c.onload=c.onreadystatechange=null,d&&c.parentNode&&d.removeChild(c),c=b,e||g(200,"success")},d.insertBefore(c,d.firstChild)},abort:function(){c&&c.onload(0,1)}}}});var cI,cJ=a.ActiveXObject?function(){for(var a in cI)cI[a](0,1)}:!1,cK=0;p.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&cL()||cM()}:cL,function(a){p.extend(p.support,{ajax:!!a,cors:!!a&&"withCredentials"in a})}(p.ajaxSettings.xhr()),p.support.ajax&&p.ajaxTransport(function(c){if(!c.crossDomain||p.support.cors){var d;return{send:function(e,f){var g,h,i=c.xhr();c.username?i.open(c.type,c.url,c.async,c.username,c.password):i.open(c.type,c.url,c.async);if(c.xhrFields)for(h in c.xhrFields)i[h]=c.xhrFields[h];c.mimeType&&i.overrideMimeType&&i.overrideMimeType(c.mimeType),!c.crossDomain&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(h in e)i.setRequestHeader(h,e[h])}catch(j){}i.send(c.hasContent&&c.data||null),d=function(a,e){var h,j,k,l,m;try{if(d&&(e||i.readyState===4)){d=b,g&&(i.onreadystatechange=p.noop,cJ&&delete cI[g]);if(e)i.readyState!==4&&i.abort();else{h=i.status,k=i.getAllResponseHeaders(),l={},m=i.responseXML,m&&m.documentElement&&(l.xml=m);try{l.text=i.responseText}catch(a){}try{j=i.statusText}catch(n){j=""}!h&&c.isLocal&&!c.crossDomain?h=l.text?200:404:h===1223&&(h=204)}}}catch(o){e||f(-1,o)}l&&f(h,j,l,k)},c.async?i.readyState===4?setTimeout(d,0):(g=++cK,cJ&&(cI||(cI={},p(a).unload(cJ)),cI[g]=d),i.onreadystatechange=d):d()},abort:function(){d&&d(0,1)}}}});var cN,cO,cP=/^(?:toggle|show|hide)$/,cQ=new RegExp("^(?:([-+])=|)("+q+")([a-z%]*)$","i"),cR=/queueHooks$/,cS=[cY],cT={"*":[function(a,b){var c,d,e=this.createTween(a,b),f=cQ.exec(b),g=e.cur(),h=+g||0,i=1,j=20;if(f){c=+f[2],d=f[3]||(p.cssNumber[a]?"":"px");if(d!=="px"&&h){h=p.css(e.elem,a,!0)||c||1;do i=i||".5",h=h/i,p.style(e.elem,a,h+d);while(i!==(i=e.cur()/g)&&i!==1&&--j)}e.unit=d,e.start=h,e.end=f[1]?h+(f[1]+1)*c:c}return e}]};p.Animation=p.extend(cW,{tweener:function(a,b){p.isFunction(a)?(b=a,a=["*"]):a=a.split(" ");var c,d=0,e=a.length;for(;d-1,j={},k={},l,m;i?(k=e.position(),l=k.top,m=k.left):(l=parseFloat(g)||0,m=parseFloat(h)||0),p.isFunction(b)&&(b=b.call(a,c,f)),b.top!=null&&(j.top=b.top-f.top+l),b.left!=null&&(j.left=b.left-f.left+m),"using"in b?b.using.call(a,j):e.css(j)}},p.fn.extend({position:function(){if(!this[0])return;var a=this[0],b=this.offsetParent(),c=this.offset(),d=c_.test(b[0].nodeName)?{top:0,left:0}:b.offset();return c.top-=parseFloat(p.css(a,"marginTop"))||0,c.left-=parseFloat(p.css(a,"marginLeft"))||0,d.top+=parseFloat(p.css(b[0],"borderTopWidth"))||0,d.left+=parseFloat(p.css(b[0],"borderLeftWidth"))||0,{top:c.top-d.top,left:c.left-d.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||e.body;while(a&&!c_.test(a.nodeName)&&p.css(a,"position")==="static")a=a.offsetParent;return a||e.body})}}),p.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(a,c){var d=/Y/.test(c);p.fn[a]=function(e){return p.access(this,function(a,e,f){var g=da(a);if(f===b)return g?c in g?g[c]:g.document.documentElement[e]:a[e];g?g.scrollTo(d?p(g).scrollLeft():f,d?f:p(g).scrollTop()):a[e]=f},a,e,arguments.length,null)}}),p.each({Height:"height",Width:"width"},function(a,c){p.each({padding:"inner"+a,content:c,"":"outer"+a},function(d,e){p.fn[e]=function(e,f){var g=arguments.length&&(d||typeof e!="boolean"),h=d||(e===!0||f===!0?"margin":"border");return p.access(this,function(c,d,e){var f;return p.isWindow(c)?c.document.documentElement["client"+a]:c.nodeType===9?(f=c.documentElement,Math.max(c.body["scroll"+a],f["scroll"+a],c.body["offset"+a],f["offset"+a],f["client"+a])):e===b?p.css(c,d,e,h):p.style(c,d,e,h)},c,g?e:b,g,null)}})}),a.jQuery=a.$=p,typeof define=="function"&&define.amd&&define.amd.jQuery&&define("jquery",[],function(){return p})})(window); \ No newline at end of file diff --git a/docs/api/2.12/lib/jquery.mousewheel.min.js b/docs/api/2.12/lib/jquery.mousewheel.min.js new file mode 100644 index 0000000..03bfd60 --- /dev/null +++ b/docs/api/2.12/lib/jquery.mousewheel.min.js @@ -0,0 +1,8 @@ +/*! + * jQuery Mousewheel 3.1.13 + * + * Copyright 2015 jQuery Foundation and other contributors + * Released under the MIT license. + * http://jquery.org/license + */ +!function(a){"function"==typeof define&&define.amd?define(["jquery"],a):"object"==typeof exports?module.exports=a:a(jQuery)}(function(a){function b(b){var g=b||window.event,h=i.call(arguments,1),j=0,l=0,m=0,n=0,o=0,p=0;if(b=a.event.fix(g),b.type="mousewheel","detail"in g&&(m=-1*g.detail),"wheelDelta"in g&&(m=g.wheelDelta),"wheelDeltaY"in g&&(m=g.wheelDeltaY),"wheelDeltaX"in g&&(l=-1*g.wheelDeltaX),"axis"in g&&g.axis===g.HORIZONTAL_AXIS&&(l=-1*m,m=0),j=0===m?l:m,"deltaY"in g&&(m=-1*g.deltaY,j=m),"deltaX"in g&&(l=g.deltaX,0===m&&(j=-1*l)),0!==m||0!==l){if(1===g.deltaMode){var q=a.data(this,"mousewheel-line-height");j*=q,m*=q,l*=q}else if(2===g.deltaMode){var r=a.data(this,"mousewheel-page-height");j*=r,m*=r,l*=r}if(n=Math.max(Math.abs(m),Math.abs(l)),(!f||f>n)&&(f=n,d(g,n)&&(f/=40)),d(g,n)&&(j/=40,l/=40,m/=40),j=Math[j>=1?"floor":"ceil"](j/f),l=Math[l>=1?"floor":"ceil"](l/f),m=Math[m>=1?"floor":"ceil"](m/f),k.settings.normalizeOffset&&this.getBoundingClientRect){var s=this.getBoundingClientRect();o=b.clientX-s.left,p=b.clientY-s.top}return b.deltaX=l,b.deltaY=m,b.deltaFactor=f,b.offsetX=o,b.offsetY=p,b.deltaMode=0,h.unshift(b,j,l,m),e&&clearTimeout(e),e=setTimeout(c,200),(a.event.dispatch||a.event.handle).apply(this,h)}}function c(){f=null}function d(a,b){return k.settings.adjustOldDeltas&&"mousewheel"===a.type&&b%120===0}var e,f,g=["wheel","mousewheel","DOMMouseScroll","MozMousePixelScroll"],h="onwheel"in document||document.documentMode>=9?["wheel"]:["mousewheel","DomMouseScroll","MozMousePixelScroll"],i=Array.prototype.slice;if(a.event.fixHooks)for(var j=g.length;j;)a.event.fixHooks[g[--j]]=a.event.mouseHooks;var k=a.event.special.mousewheel={version:"3.1.12",setup:function(){if(this.addEventListener)for(var c=h.length;c;)this.addEventListener(h[--c],b,!1);else this.onmousewheel=b;a.data(this,"mousewheel-line-height",k.getLineHeight(this)),a.data(this,"mousewheel-page-height",k.getPageHeight(this))},teardown:function(){if(this.removeEventListener)for(var c=h.length;c;)this.removeEventListener(h[--c],b,!1);else this.onmousewheel=null;a.removeData(this,"mousewheel-line-height"),a.removeData(this,"mousewheel-page-height")},getLineHeight:function(b){var c=a(b),d=c["offsetParent"in a.fn?"offsetParent":"parent"]();return d.length||(d=a("body")),parseInt(d.css("fontSize"),10)||parseInt(c.css("fontSize"),10)||16},getPageHeight:function(b){return a(b).height()},settings:{adjustOldDeltas:!0,normalizeOffset:!0}};a.fn.extend({mousewheel:function(a){return a?this.bind("mousewheel",a):this.trigger("mousewheel")},unmousewheel:function(a){return this.unbind("mousewheel",a)}})}); \ No newline at end of file diff --git a/docs/api/2.12/lib/jquery.panzoom.min.js b/docs/api/2.12/lib/jquery.panzoom.min.js new file mode 100644 index 0000000..7c3be68 --- /dev/null +++ b/docs/api/2.12/lib/jquery.panzoom.min.js @@ -0,0 +1,9 @@ +/** + * @license jquery.panzoom.js v2.0.5 + * Updated: Thu Jul 03 2014 + * Add pan and zoom functionality to any element + * Copyright (c) 2014 timmy willison + * Released under the MIT license + * https://github.com/timmywil/jquery.panzoom/blob/master/MIT-License.txt + */ +!function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(c){return b(a,c)}):"object"==typeof exports?b(a,require("jquery")):b(a,a.jQuery)}("undefined"!=typeof window?window:this,function(a,b){"use strict";function c(a,b){for(var c=a.length;--c;)if(+a[c]!==+b[c])return!1;return!0}function d(a){var c={range:!0,animate:!0};return"boolean"==typeof a?c.animate=a:b.extend(c,a),c}function e(a,c,d,e,f,g,h,i,j){this.elements="array"===b.type(a)?[+a[0],+a[2],+a[4],+a[1],+a[3],+a[5],0,0,1]:[a,c,d,e,f,g,h||0,i||0,j||1]}function f(a,b,c){this.elements=[a,b,c]}function g(a,c){if(!(this instanceof g))return new g(a,c);1!==a.nodeType&&b.error("Panzoom called on non-Element node"),b.contains(l,a)||b.error("Panzoom element must be attached to the document");var d=b.data(a,m);if(d)return d;this.options=c=b.extend({},g.defaults,c),this.elem=a;var e=this.$elem=b(a);this.$set=c.$set&&c.$set.length?c.$set:e,this.$doc=b(a.ownerDocument||l),this.$parent=e.parent(),this.isSVG=r.test(a.namespaceURI)&&"svg"!==a.nodeName.toLowerCase(),this.panning=!1,this._buildTransform(),this._transform=!this.isSVG&&b.cssProps.transform.replace(q,"-$1").toLowerCase(),this._buildTransition(),this.resetDimensions();var f=b(),h=this;b.each(["$zoomIn","$zoomOut","$zoomRange","$reset"],function(a,b){h[b]=c[b]||f}),this.enable(),b.data(a,m,this)}var h="over out down up move enter leave cancel".split(" "),i=b.extend({},b.event.mouseHooks),j={};if(a.PointerEvent)b.each(h,function(a,c){b.event.fixHooks[j[c]="pointer"+c]=i});else{var k=i.props;i.props=k.concat(["touches","changedTouches","targetTouches","altKey","ctrlKey","metaKey","shiftKey"]),i.filter=function(a,b){var c,d=k.length;if(!b.pageX&&b.touches&&(c=b.touches[0]))for(;d--;)a[k[d]]=c[k[d]];return a},b.each(h,function(a,c){if(2>a)j[c]="mouse"+c;else{var d="touch"+("down"===c?"start":"up"===c?"end":c);b.event.fixHooks[d]=i,j[c]=d+" mouse"+c}})}b.pointertouch=j;var l=a.document,m="__pz__",n=Array.prototype.slice,o=!!a.PointerEvent,p=function(){var a=l.createElement("input");return a.setAttribute("oninput","return"),"function"==typeof a.oninput}(),q=/([A-Z])/g,r=/^http:[\w\.\/]+svg$/,s=/^inline/,t="(\\-?[\\d\\.e]+)",u="\\,?\\s*",v=new RegExp("^matrix\\("+t+u+t+u+t+u+t+u+t+u+t+"\\)$");return e.prototype={x:function(a){var b=a instanceof f,c=this.elements,d=a.elements;return b&&3===d.length?new f(c[0]*d[0]+c[1]*d[1]+c[2]*d[2],c[3]*d[0]+c[4]*d[1]+c[5]*d[2],c[6]*d[0]+c[7]*d[1]+c[8]*d[2]):d.length===c.length?new e(c[0]*d[0]+c[1]*d[3]+c[2]*d[6],c[0]*d[1]+c[1]*d[4]+c[2]*d[7],c[0]*d[2]+c[1]*d[5]+c[2]*d[8],c[3]*d[0]+c[4]*d[3]+c[5]*d[6],c[3]*d[1]+c[4]*d[4]+c[5]*d[7],c[3]*d[2]+c[4]*d[5]+c[5]*d[8],c[6]*d[0]+c[7]*d[3]+c[8]*d[6],c[6]*d[1]+c[7]*d[4]+c[8]*d[7],c[6]*d[2]+c[7]*d[5]+c[8]*d[8]):!1},inverse:function(){var a=1/this.determinant(),b=this.elements;return new e(a*(b[8]*b[4]-b[7]*b[5]),a*-(b[8]*b[1]-b[7]*b[2]),a*(b[5]*b[1]-b[4]*b[2]),a*-(b[8]*b[3]-b[6]*b[5]),a*(b[8]*b[0]-b[6]*b[2]),a*-(b[5]*b[0]-b[3]*b[2]),a*(b[7]*b[3]-b[6]*b[4]),a*-(b[7]*b[0]-b[6]*b[1]),a*(b[4]*b[0]-b[3]*b[1]))},determinant:function(){var a=this.elements;return a[0]*(a[8]*a[4]-a[7]*a[5])-a[3]*(a[8]*a[1]-a[7]*a[2])+a[6]*(a[5]*a[1]-a[4]*a[2])}},f.prototype.e=e.prototype.e=function(a){return this.elements[a]},g.rmatrix=v,g.events=b.pointertouch,g.defaults={eventNamespace:".panzoom",transition:!0,cursor:"move",disablePan:!1,disableZoom:!1,increment:.3,minScale:.4,maxScale:5,rangeStep:.05,duration:200,easing:"ease-in-out",contain:!1},g.prototype={constructor:g,instance:function(){return this},enable:function(){this._initStyle(),this._bind(),this.disabled=!1},disable:function(){this.disabled=!0,this._resetStyle(),this._unbind()},isDisabled:function(){return this.disabled},destroy:function(){this.disable(),b.removeData(this.elem,m)},resetDimensions:function(){var a=this.$parent;this.container={width:a.innerWidth(),height:a.innerHeight()};var c,d=a.offset(),e=this.elem,f=this.$elem;this.isSVG?(c=e.getBoundingClientRect(),c={left:c.left-d.left,top:c.top-d.top,width:c.width,height:c.height,margin:{left:0,top:0}}):c={left:b.css(e,"left",!0)||0,top:b.css(e,"top",!0)||0,width:f.innerWidth(),height:f.innerHeight(),margin:{top:b.css(e,"marginTop",!0)||0,left:b.css(e,"marginLeft",!0)||0}},c.widthBorder=b.css(e,"borderLeftWidth",!0)+b.css(e,"borderRightWidth",!0)||0,c.heightBorder=b.css(e,"borderTopWidth",!0)+b.css(e,"borderBottomWidth",!0)||0,this.dimensions=c},reset:function(a){a=d(a);var b=this.setMatrix(this._origTransform,a);a.silent||this._trigger("reset",b)},resetZoom:function(a){a=d(a);var b=this.getMatrix(this._origTransform);a.dValue=b[3],this.zoom(b[0],a)},resetPan:function(a){var b=this.getMatrix(this._origTransform);this.pan(b[4],b[5],d(a))},setTransform:function(a){for(var c=this.isSVG?"attr":"style",d=this.$set,e=d.length;e--;)b[c](d[e],"transform",a)},getTransform:function(a){var c=this.$set,d=c[0];return a?this.setTransform(a):a=b[this.isSVG?"attr":"style"](d,"transform"),"none"===a||v.test(a)||this.setTransform(a=b.css(d,"transform")),a||"none"},getMatrix:function(a){var b=v.exec(a||this.getTransform());return b&&b.shift(),b||[1,0,0,1,0,0]},setMatrix:function(a,c){if(!this.disabled){c||(c={}),"string"==typeof a&&(a=this.getMatrix(a));var d,e,f,g,h,i,j,k,l,m,n=+a[0],o=this.$parent,p="undefined"!=typeof c.contain?c.contain:this.options.contain;return p&&(d=this._checkDims(),e=this.container,l=d.width+d.widthBorder,m=d.height+d.heightBorder,f=(l*Math.abs(n)-e.width)/2,g=(m*Math.abs(n)-e.height)/2,j=d.left+d.margin.left,k=d.top+d.margin.top,"invert"===p?(h=l>e.width?l-e.width:0,i=m>e.height?m-e.height:0,f+=(e.width-l)/2,g+=(e.height-m)/2,a[4]=Math.max(Math.min(a[4],f-j),-f-j-h),a[5]=Math.max(Math.min(a[5],g-k),-g-k-i+d.heightBorder)):(g+=d.heightBorder/2,h=e.width>l?e.width-l:0,i=e.height>m?e.height-m:0,"center"===o.css("textAlign")&&s.test(b.css(this.elem,"display"))?h=0:f=g=0,a[4]=Math.min(Math.max(a[4],f-j),-f-j+h),a[5]=Math.min(Math.max(a[5],g-k),-g-k+i))),"skip"!==c.animate&&this.transition(!c.animate),c.range&&this.$zoomRange.val(n),this.setTransform("matrix("+a.join(",")+")"),c.silent||this._trigger("change",a),a}},isPanning:function(){return this.panning},transition:function(a){if(this._transition)for(var c=a||!this.options.transition?"none":this._transition,d=this.$set,e=d.length;e--;)b.style(d[e],"transition")!==c&&b.style(d[e],"transition",c)},pan:function(a,b,c){if(!this.options.disablePan){c||(c={});var d=c.matrix;d||(d=this.getMatrix()),c.relative&&(a+=+d[4],b+=+d[5]),d[4]=a,d[5]=b,this.setMatrix(d,c),c.silent||this._trigger("pan",d[4],d[5])}},zoom:function(a,c){"object"==typeof a?(c=a,a=null):c||(c={});var d=b.extend({},this.options,c);if(!d.disableZoom){var g=!1,h=d.matrix||this.getMatrix();"number"!=typeof a&&(a=+h[0]+d.increment*(a?-1:1),g=!0),a>d.maxScale?a=d.maxScale:a*DV2?(PzjEbi{^8r&to;!bcU!2-cGSb+Swx9WedUe%jZ z(=z>4SD#a(r{|k505IwU0Koiv-~j(P2F$+#2MYrW1ibvy0RR<^MgX8#*#e;PU-chJ z0{|%hBiGIBkNt=Lzl9i}0cKk5ds{Rcz`X#L~%0N;OYmj5h( ze{S{uwRi!%|6$z!p(p`d0QP^C6Tk})`KRgsvwHvY_aBTKfaM?F{lEUa0S^DH?f{Q} z7Po&0_kTXU0M`FB0O0?|!1n)%0RWKFmj6F*^S{x<0=66gW}gA()d2H0+}V@(N$X8} zWJjSs$w6rx>;f%fjwH}W8Tn{mO2nR(TpfoQb=6wB;w>XJqfkx5CM@8E>s+t4S|s$T z?`e(u!7+%cD#H>d$ZquMSL}-a4azgl?*uO5aRq)^MV{?ZflxLaJJe|P6J$)i6mN7* zkY1W!)+MbuIV@i_OVr^oEzbmbJ-$RVD61F_*V zQVi z%H~s+%UFgAPMC=krjUsv4t628e->=g3M|a#j9Zps0Hw$7R3Rb-%|^(5uW)TJOp}s? zP{q*LU>h~mps6TiQ(c!PzmwSrpu|oU(>T`Z$Q@czVe@T!YT7Hmx)a|$!v94%0AI#;3$R)8p$bDUctJ2YR;V3nSl;A1ep>8D&f0 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 O0e20C(u(@q!2S;x+tMol literal 0 HcmV?d00001 diff --git a/docs/api/2.12/lib/lato-v11-latin-100.ttf b/docs/api/2.12/lib/lato-v11-latin-100.ttf new file mode 100644 index 0000000000000000000000000000000000000000..4e7128a48108b78cbf229cb52d301a3e4aaa73dd GIT binary patch literal 76144 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 literal 0 HcmV?d00001 diff --git a/docs/api/2.12/lib/lato-v11-latin-100.woff b/docs/api/2.12/lib/lato-v11-latin-100.woff new file mode 100644 index 0000000000000000000000000000000000000000..48915bb47692f9b9cdc2259b1af38fd97a81a371 GIT binary patch literal 33288 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 cYqen+a literal 0 HcmV?d00001 diff --git a/docs/api/2.12/lib/lato-v11-latin-regular.ttf b/docs/api/2.12/lib/lato-v11-latin-regular.ttf new file mode 100644 index 0000000000000000000000000000000000000000..7608bc3e0fd03fc3cf3a41501ed9c1b49b773ac4 GIT binary patch literal 81980 zcmc${2Yg)Bl?VLpd-JAfil&c7Wk#csM!n69dK*cWEK9Q0T;$&5Ua^faHXQ>FU{ez? z0aF8k5W)f}luZHz*krT22`S$OHkI^bL&_#0SQ>x-bKiTTkt`d-?)UpJ_RPF@@44;t zbMCzY69mD5e{_O<{_xP)R}Q|hQ(%=>34*hK{@9YP6OAVh3#{XtD7ANJtUCIGr=Hj* z2;V5d?{yn@t>1fd)~)#Zjbr%dxs3-8;Q^{^nkxfj2yHt*fCYu}1}2|@VRRzcAJ zV$1sddj+SE1^5T>-m+!qrJKK+>3c^ISgs(vx^C;H^%Il#{y8iNudl-U`mK17`31wp zfUm>v!mYaw9NJg6=zhGvQxK%xJ2vgx-OgVrXziU%&apOG#EBzAQAKJTT|AD1Hx7G`+yhaej&b|9K?S0hn zaUb9nqWl2nq!R6%mQM;rLY>egv9xb- ziEe?30t*O|$V7=n1*Q|34!{Lb5=16M08%#UWcp?@=`kijuQvw;qtQU$4F-!L-;^`( z^iF{4oEwy0FbR5-0046VO##X@<(w~%T1@~0ciUF}jV8W25h zn=X@uizDs2x_Bg9U=zay#jbe0`VPM$EaV6^;P3nXrg=kE9a|QZ1}f`o!aB!ci!Qse zp(cMpQ)y#KuGw$d*k0o;$#XdJO1w4g$p@u>pNvMOjg$B3F7`(99O1;u#)jdR@<@?y z+r-0{Zu1+`tr9NLtz|o<5vF~8btU^e*B4HDR zK(5<~Usi)&*48NpC4uyXI>s30U&LZz{w2vN_v0PF5q(6a3wWe_DJM}dKvGx7$;jP<^w>gzm3RsD8-YuOJufjMp1ds5^gwt#m1hdENab)62 zhF+&njn!>2F`d9zfCfXOmL;8paSIsAz|+45t`(<>@K?N4SSf`Hg{Vh=Lb{wpB`=8~ z1~3H@K?}?H6ba*n2u&wdAOI*YtCL``F`z^>bA%kJuPkPla)a43E+NLXQBhY+8gWZVl~xeCB>1VaDE^s+n?pMXIe8% z5_4$due4c2o!u&7S#;=c#Ka5+b1>5^$}&-4hEde(Z9$qFi;yp?t6z>%dPAIEQc0a& z7R1ObKvX4D;0QyL*r-(DlT~+iMTRvH!UTePQOG+)-$MGF#5%!XGQ(K43QEN7S*zUc+t8z804%7EQr!D44t$zmlu)d>>A+R{rKwIVS32w9dZ zDf-ecuCQcd<;|ilhxS^f3FczzO92T2K+FVcl`|HnC+!k*Qw^KM{(R{heRYOxo2#aG{k)>y z8+LRy?RsEqhM4W`vTeJ&wcMR;D{UUE4fWl;x2JXgV>>Kjj;D*=U6fc_ThO_wCp`7N zg4W^cKYc6?%l_ zY*oU$bn#$+SE8}Lwz{IMupm3jZc`U^E$w^i32AQ;6L;f{^4i zk$NV}78y%3@N@y{#XqdWQ)8 z1BwT}qQ`TMLY6brI^dxWBzjVHWw0Yz|3NTN#6)Hc}$7cZ&3DYv$>sHn3hC#Qx!Yjee` zta({io&HTmuIs2=7hkr2y7+;mH8;*KuIpHQ-O8GpmDep^di|=JnpM{??ON56o!zpk zt8-(33qnf`4uR8{5F_qG%qCJ?1&O7gix0TMWt5E> z7}q99sZda>p^6cP5f6$*>l=Vj;+;d+tZmTkk#$y|YzWr&R7HoIf{udv2)j2@X%yYg z-C}PSt9UZ6(0l8ezuqx?&!zprAeBW;x&=w0MkKH(ZF961uc=Uz95bRC_*{*FFGn>)rx9&ze?9MN^GSN)!fuFte z>q`&+>gPY(UxQ|hcJmk69lV`&(pvE)`Da3nu$9kejZl;2`mK5d(b6j?) zPzD{;Aku$n4r%5DDcFHN=pg`W5s^%|N`aYH?Du9`LYyuK>d z#$wQx+F1ugB(O8Uf{aF3?9F3rgKThzo~(GXu*e;DezxMXVXw(BZZqdN@XQf%IztXT zbmp4v(%RQt1$MuCEuv^P*Y%X*NXq;L3ff zoT^BYN{MNhv%IX}UC0x1gdL%}kVCwQ-Id&SdvXW+xb8%9$qmU-_S6mRGrXT`l7C{u z!taHEur{I3@#}S>hWE})#<(>`7|oc4)c zSl7@lH4vj%;|Nw{2dabi?3($N0jn(|n4hD!W|svWM|`D0r?)s3s9e8xMI_H+x7y4_ zHO(Ps2!<9DCPa%kDn1ORRg}<^nS;J3;3SxVCMZW(B9W1dDVbn@NIJ!b@1pwSut!HQ zc9$@g(35VF8auRifQ190hc6d5&F=KZnwxq1B2S(nk^pJm0YTa97viRSgZR=yP?0_|2D+|NY$f_;bwl(o4+!`SJ13Cx8FaBR@XY(sJy_ zk38}t`uq`1);C~E1m$}%h<{C3oDO@Y&1!r87c?+mxB5Z)8v0#5_Tq#UhQ_-twM~&QhtfbYM81pX_*)hV5~tOh(hT>Whgyd10qI+2 z8&=zfkK8Xm4sBu0@UhD;ZcAQawie{p`Z1eGz#nPh2tWF>0}?1MCg`~1$u)F zq|-?{5jv(U=wJscsu#^Q%o#=7oMuFt8PR!uP*hWI5TMXS(xAf4LNv=5co!7I{*MHM zK|dxnQH4bxWK)m?*4Bme7R9)LFouT$nu{+0S4BIh9t%`A=R)mVdC#8qaObL~n~x7% z^VyC29@^XIAM|+KL8GV>Z6)(I4Gdf~5DAXlvUlaxqeaE@R@2heSd97p>7|RWJ2p0N z$4H~2=&5Trp4!vWH1VSvJ>n*vOMY>iswy$c1&Nx&xy_lj< z0@_#yJP07 zi#SDYU=tTbDfRZ zzMr^sd1)x<^O#LSHp@<7Vqq53L3Ji3tAp5}sUi85qD|6VG^eRr7O=&5dIgP+i6;QX zDix4t7n_UhXR>3(;v+r`6$Jk%CZ9_4uoT4`m)>(=Ufmvt{*$#&SH`KOYZ zvCER*FIl)}e&2zy%8KE=-F*i}%B9^+yYAn-@rf(?danHZ-ZkGn%zoqaPu&zQP7e0$ z8?CGw-P_fB(NJ0K*e;qcChW!xv|_%T!gkV<@afEiq)+KKZV(621spCkLEN33(q-`w zAjp^??1a}Cx)p3as9NNop?Z+qidP9_M*L2VAb_e2iiZUDFG#D6=~^?5Q=hX|6<;Z? zu;w_X+>RXiBLG&1&F0QeWr;CWGLal{Y5G+K0 zY4y|VK#Rlb*MC59peA^KT0Lr0mC7l2CfouSrif`m#xT@t+^`3j8@%ZY0AsVP3HPlXr} zN!V%RvvFsy=8qvsD;AC1w!5?Uil?@2`ShVqUqxGS@?mRD@DcW$H{xixk@?F9w{>*w zT3A-RU|VP3p1~4vuzuUgjcXn`+&k~^6IP4GDDVV#fU_V_dy~S;cyJy)Hg}}dTOp?mtZA5k;oYVdEconxf(y9V7O`FyPwM1k}+6y#IR^Ust#prW8F)5)U(5lYl#Bdc1{gRL z*^mPazM4BFz1^Mca98^Mm2UR3+dlce_&U4oN{2t==jKekY|nTnBinuzyIsM{Pp~ga zf0B*^vkXEkk)b+W1gu3Oq#_*mpI~Od-3e<*Cm|F9)&OP5Pe5kXC#02=pQ68F`wi^- zH}HagK!5+D_17+-zYS!56hQ{Su~bApC+7KsoqAdB_m@+z?UMZ4tL)k6qg_VK^5+?T z$Cb%F{Yqa8&iqMy5B#S@Xcb;h*qR!uD~pQ?@+o&A#eHI=-?<@!VUK~JKrX5L1%>Ye z6u6L%_zc2E}+@!LK=8^>gS zUcAItwfNA$;O?=u`ufnxN6lrOO-()Ht>wM7*@41<@ALz+aZMDKo^j}N9{TjEdeRWJqELrqW`<;+RE2Pu4O-v;h%SOp+|a?SL#2`UsH`_XglDQ{kG<3)iH; zWhP1B(VPziZ^}uGe>lkKstKe3k!FUWbDo|nsU}76{!e@O$-tBJTG&WiXOG(%K&%pu z%8hKmv?WfTQrdP^5fG%xw=P2(PS@~(l}!s?ui#?7}ZyYX8$ z^=y9bZ?`>>JoD6eSIm^v)i=8PKUl?=cYWh?w{2-ES+xJ-U)-_ti`Nexaz~eTvSL%m z=A%7*%Rp%&;sb)b0Q#mC?ys*TEO0AX%qBg2wJFb1o|A(8@Sb39fgwl^kR-E~$)GWE ztq^iP;?pHTk?FY$B`PE;gjeJNL~xUgMUWmKgKyCXxs$5WiV|UiX++WA*xVIVZ&HYY zIZ}vc9k3Y8LRwsdyxc~KH3|Ckq;Ueuz=qdK~qhC4F66)SG@4g4RuYU1R@(or$cFDrR`|eNvD-%W! z4MpyLAo&mZWPIIC%jz~P?(zg5xqjs*cD9Jelh#Pj+NM2M-&mMfS%1Yr5ntzlLshIQWnITzm@}Bs0!aZK*?dvx`!p9dKm`nl9C8o?DZ2oAmL>+G z=c$Xl1FQjOSBMn?3il8JpIR=g63kEljaOYeV7{YX{xuIV7 zfZaMce)^w2Ir+?nZC_@l2TuKBd56L2u;!K2_isq-|H_RE7hd;;ZHdjx1|kktVjbJO zZ^z5b_RvGj_R5Y8i=MDA;bt0)eG3yl5 zy|DR>zN0VgPkx3i+5ghfKJl9mCf|E$i+pm+KPTUN@aVU09X$Qu;4R-GTp>COVN7P> zfrOK&<*c|8(N_^lLK4AvC8HMcC7uMq2MN|O%eNh-;F3UpQF^)_rRMOWaBoAetT;z0 z9S{+;q?M*hT6&qHMUf`u(1oUk#mcGgh)+)*mrtHb7T%roox(8i-}IPF!c7S~o|uGG zq%5Ta!AYMsBI+3h;Q5Fw)2V^EcnFC2J8LMJ60KP=)F-KKMj7w`>b~ZlrYW1%{jk#c z!Kvq7rJkElP2J5quF!1)bQ>3bL74>=Wkun<9GAmlHtK~qi>J6Rig}RdnTg?kdOAC-Ho7XQLjQq&uV_&Mj_`187-{x&89(RSk|DyUX9c{L-;YzjkB)!kfQ(-0TgyS*zE+d+M#?=3*D8@JE>K z!hTSAKSsWI5YA;6~&cCJq!gpDiNEms7 zgOJLeabbBmredt5TELN^5g%T`9nDvOzf$rDa@D6CXK8Abiu9p+UW-Ve#MoYO=j5BO zJp3?qg7-mxHNJ+0uO=+{fxKL=i?s5TMxIO35G$y#$tY1M#d>*%wDk*|T?WMpsTB9E zD63a;Rw+zAR*^ue#p#pQt{O#2&DBDDWDC%G(*ly%B;ia|@DJ6{Rt|m-;4@!4a0rUl zAbwL&%%G4G$AA{aq&+rIMuykMeqqhczU2u~OnUs4xt0E8h9o_4OLnf6y({Xo>T+^p z+0sS6jQ6+b@;o*E$*U?WrE9aJp40EhCo_DLC(u4x1{H8V>J@HJSddZdvLICjs-=eg znZRFVx;VOP49CGA6Xs!2ig;i(%B>xn$`v2$rhmNn!h1bhczQ_Erl~ddqk_6gwg0D7q|io1V{|w zHeFtom(Z@z9(l784v!;G6pX@mB$fk)$4|U&DF|@nuWA_m5VqKH}si%B~Tx6S_PFO0- z!y&&f(`r<9lu+Jz#0<_!REVC{seJ)rxhNkqx>P z76uBeL`Va)(yU0}9x;cseIH@9FqyncEP1*b6;0dkQKb~cQ;Fkasshj4r3pk^u!zW< z#tb4GMTHHADCBz-YYdm`bUSlaQ~f7AuC93uz^R~%fLqPN=#L+J{p$9bmDi3H=CX&L ztn(*tc9fLd@vlp+URLq=W8W2*PCX%?Y}k6o%E6=C`dyxqsW(bRA5~nd36% zg9z4?OboF~ez_z+b`06d7K$3?U~4hlo4(kszKxEOCX zx$Tb1p7lMQ6Ws+Z>yKQ0WPMBG$g}%y`o&12(P#72kL(}o**Q?svJS7-wY2R0)Q&^1 z_v@a|%q%D^2)B+@w+=OyRx~U=ynM~44)<vFxzx3+0gC}-( z4fbKY*z>5n0{CkX?xS65_*6p(DT(MIjDrA&X2%uXnR*Q#;yrL$(aoScXp%7q=&TO! zd2L8XSX+RC()3A&1h$jlt5~KL1eXxRR6$;ivrta+(1XB5>vUHnYhOuL%O@W`ouT{N z!+^wu2e6;QgE9DN3`}slY!-uF@H7AP7)Y-n9Tv@{FhbMKJa~yDx3rg7b$Utio%AN< zC0E_iI}HRE@fZb64hfn)$caGASxOb}WK)uCS5t=g*MKO#z5M3&v6qML`0ml8-@S9_ z<=Fb;_q6W(#0qK4ypHM9?FV&(rc@)X*?l%4!Y*T zQ5%sCN;z`UuzXUvs*;{HHX5ooZKRC5jak_CV0M9?l^CshgU!T7^kIKvHcZ1Ir%j(> zWTkT0e^;{espQ9@nVaO~9Z&JO$jxalDCo$Re(uP_%;d(qL#_DX%!St46D)NXWuAVK zuQBFG_czQ@j_^<-BggN^w3?xfXshh8aYPF!%S1m)>eZ`~#Du+F&Nel~*leYIw@$vx&<+uBrd9kzo&f*ZmxG z;TEn;7~O~#VxLNCCM+O4bc(0dYf7AkDW0^KN&<13x5IVTOTrQ#f2t(P63Q!9n}+u! z0hO_);lB9&m#6;nM0UW;`rJ8YGlB;5O+o*YV)NANVzab1+cou_aC;!wULaQ5^N4}>6!eV6g~YdmsBwc`s^zRoIZYPFp#4=c#7lXiR6!2Ql3J88@a4N zzcY*mXq@PGqJWCP;v^gqxk4G99s~_W2{*$-$}{wUFnR0*+neKk{Bdti^2dfiuh;*N zfAjl#0Y_kGevjPncV#s<9Boj(`@qvmZaB#m6tW6RZa4-6a%M_yIPDW9%_LIn9t_o3 z#pMHejaK>Pg8cW33&5#`6&S-e_!tl^$Fye{WSyu*%fY^R|G^DVlw&>3J7Jj8eP6u3 z1vsF11w$*8&a=JATiSHS2$Wbh&&OtjjFh?;OiR@5XPd8fWEsC^bs22F zSByS4LIP8V-8Qz)SMI4OPd;FC1GKOVhED~;)IO#djxYM) zI|^jriR7OA{ihBc!o!H}CiX0JG!tbVAe5>@T-B5sr4=Pu9mb70phYs{Yx*j=qTZm= z`~L{#+djV8lWqI0{J6*WXKN<0e6n?*10L2Hgi@i2MHAlgvf7%mrt+qua3I(3bGytY zQQ#S4w3`hMW1UnjLp|h4+{hl|4rlBjf_sg^k*Y?B3|pqxqa%ehIOyBj_S&`!27ta< zI21r2vk}&mmZ%KR_u0Kb;wsWYIZZ&ZQu+h^JskuLA*3kx%~cy|&FC(rOP>V=BM}&! z;b9t*(i!^Tn;yBxmGWQ7Z>?@lOC6Db$I8}P52LtroeleF1EO?zC_7(vmkcgm+uX8c zu(IopKRmf%Ds6$Cp_&$@sGP2by?{swf$~Q_E^Ck~VRK@7CF&mWu8KJ;(Y7cI z1{ z*T8ecGDwaU;%_ zXV`jtgE8fWC{I%+UXRh9nHjEM*x0{sVR6~uu6dn{8w;I2bF}OA-D@8{)YEb4GyAtc z(jj%4E&hPNZsNrFs$15_kV5U~92w}n?v=|f`sz&}MNB_vst@!3no3hGL{m(qDUX{+ z*1gQjX^M7)SGnL^&&h_FFH>w?vZf)bo0Aylk9u%nFi65%^8FyDex6#Cifc(HPtMYm zq^z15HKF8V^1WY{|&+qsOB%tKpNAB{hgYy-j6UOfNA z-349iijEAe?Y`y}kjsgYjwUhse#bS#3)pYF>Oe2YIlYLSUfuw`6bhBhp2&(6ArGRY zs4`NSo9*V=+z?QOT)GkM#IeDE@@t^RgJ7aa$zm7@Mq$L(Nm?ujIpG|{^P%geQBQPc zyJ!UsA|H%aFV%+>3Fs8^X}PdU=c6C)V8X5hWgiWvos<~!fq8|%w#4wtd-ir9QGShB zv-m(?_xj#yhu0Dft=hJ?VcS1l-Pd{e>3vt<=@g3#y4LFCw*8OqEX!SYVr_M>5Cl}x z5^>G{*f*}-{-qlhUi4>974dw7fPmOaPPWHM{sivHi();> zp`t)L0wN>WK?)P;0o>UHATYKB!3NAu9m7E6Q#xIR-ec(zwb#yX;I-8XTHvsFx&rzI ztr~nil2(<9XUaSnM^1{^baA}V$>f-xu9UtdkGK^zPM*M~=~@^#i4r8)%&ZN)V~&&u z;&h69!3JaOJ65V-vAU4bGYu_Ih$2s9ky0@VsUn%g+l|4b=|Y#r?^6J?xZkiiTXjDaQ$Ad$q#5tcDzWgCq|E=VmT za!I8jc$KpZ764e^Y+xvlI>zYSK+g-0*8Qx`ogbba-eE|RqV$d$NjV%kSHEa1I2nsh z1DU&vh-;IQm>Mm?*K|aRHo+RpWC(-tz_Jb5$N|+mNjy;7;-Kzyz$q&_B+O~~kEA|w zt&%fF_N%V_)y!44zo2Q;O=I&r@@2ikJ&>t`2$OuHXmoV zmi4XKy0f-vez~~nl5os zpnjlo_3quPD+lVKd0_f)ht&8XWTi*=E6>022p*^1Y9YNdg4hL>7gKaxrokginr!w|1^mL3LaIk! zDBxO!!f@(S#1;E0AQiP5F#eUE;0a|8DfFJA*_2KQUk06<26gcEXF5-98M|^x#WUM> z4t=Z{O5c+`V-1^5ES)+cUbp|s!Okf!wSNs-xk`Q(WaSfHArFAtnPJ2)jGcQfNLu;9 z6VW`3X2}76E2lfIN>E^pXd}2$ap997V!Dmaw2?%}g%@SNw!vwfAU#z-Qf{j1(mM4q@&?>`jceoMw%WLo-%_A3`%TCk816Rglr-#2lz{ zXWLmKGvI$Hd6O;2;motLn;-B7ZOLad1A*wX^2?L=nH_8y_M+@}WM^1{?xe-xWcPcl z$y`i1{$s+U_-7nHBw^1CKaxV|R??C%&z$;dP!`>3a4Jp6NWRO_OTNElaLr;KHK@WcdMuCVF zII1lOPo~7<3>v2@(h33`sdS3>fkp*Kl2$l{I$B}8M^QC%KrvC2!U$0iWI}~1tuS;! zAe<0BS0zj>=k*DyU?4|`Y>?12<($Rf05DKx{DoMDn1@D*EORnONed5d-N34h`8)+hL2 zjgt2SW#at-~lZz=qm%yY*yCrdwU;gZ#JcYb1U??6$}z+Ro)f9&N;4t@35f(6IEdgzjukM&O;`ucO9|3-YnEh|=>SWj7W zqHufiaa|_-!{kT2c$OcLd!N)D7$kkGaAJdA0aW3qBIyJ?-ETjYN%`|y(XNJ61fwJ7yy7$NH{m5C@Hu8Tq$0n?9ru|i({sD zk@!ev=VQCLw`A|bo7Y?yV-D^t={ru|#pL7iV9}wWb=}vJ!{qo#ds8x@`}bM?MbJR< zap^U6tq;yx>)Afznf|RbC$Zw((ug80w~4Ry4ByeYYT+==R7MnEYt)i7Um7`Y!I(5p ztT>}Rt!8Si(`%lu4!9A`ykt{?6-1%r8B4VaN&urI6PMP97Dy;c!yS;V>KRMbKsh>1 z1MDPK6%~L|q*D_Vf&uiRk7-vj=?pVnW7zJ-X1c~+dnWPlHq9}%;bZldj7ah^@+BWs zTw~H--+zw%cmE2_J=U8TDw;e_-myf3>K)_qLVTaE^-sCH@Cu-2yNxtD&g*EkLKaAD zj~;f9NNKFZyfvW#;>Jlv8pETlS6V@!GwuC}Vpy}}hf;^go~C!sI_aWBhv|V;1@1$0 zTQ_GD)8Zi|P}FKEV@&bSQyfeY$NZ>4#Twh3=ha!_C%2T%%kvqsY|Zi2mzPO@_2!(~ zeu>L*o!_-{%hVB)t?h`BWkNRa-L%b(w3jx=Z`7+ZMYch#l`%OFiMi>1cSx-CJSp&( zRJv1op47RkPCL(271cbc3#xOTJSl#*>jkDsiQl*QGb0Uy@yfnfPG$d^jcfWVqZ>}F z-u`53nbGTXmNbpD#TUi>mHlfsuI;a+vo$B~Zu;Ua~CO zQ$NpY%Pq*wscJ1KYbegkFKu7h*}P+sbH^# z732w4kycSd*$-C{I}fNL>7mUR(jtdz${~v{TNv zEKTd5Htc_Zc@9ph`YXtwQnP9_UJ{yB2!}1ij7KC zl;*!oEeeH(n*r1TeC6KWR0V2+Z;qhCFada^5gZ$wOsNIzoU;y>)RZXTpxHzegR;s~ z5e^5d*uG=Yjm^(MM%%g`*^cz%a_O&AhxcF6-zENT(p;|LL2K38u-;~_=AXsJQ)PcgjaJa8fyxH!VG-HO~ zt&-oB{*Ha8pHEn-Dhl$0c{6j)ihXH0XXF`}nRAx@dS=cU?Qi$Y@fztH$}0P{m*@r# zA%!eaa@NX`JQ$*PSasU+hjb&zWTbh_PD&$Z70*g@DOpFHOklyK|71wUrBo2?f03|* z!gjMaSANB4lZ|fk_hr9pp*vgtw%K8n?WWh|T-WulPt1{@=5yQN%mz{M z3^f~)C}&`Wf5vN#*wXS5!|4UinWa|7OMU1(H5ZPaC%=f2rv^5_lV{kK$o&e; za=ew{&U^&>Q#XDFS!!ntw%=#?-1j4Q;}14#@@Q@@OV}LA+^KhQ4CV1WU-B`Yqh^DS z`bW%%S2&U|0t}MWcs2~_iEbP6m(&zB5D3>H2{}kYYwt+LAYlf`%u-pI&gps_IRwfG z^3ua|=BH5z#&uSP8hg={lY8{}+fE4yVLm^fza|Sle%h-Aj-RM41f`MJ9DJ2L)e&kAMlXHS&2`X+ zo~RF|YaLmzN@%zRK@i%e#3LURJTV0LY4kYWp#@QuJP@N&@bkUh-Mw~~y>#rzXkD(w zy>PkBY4esgghCCaUVL4?&~3@B8$B{sibCx1j*%V1iRgw66Y-t{i>rp*&P_`jw{F}J zjdaF}Os1lEqA0py+4_uFiN9$r| zl!%3No4ICNQdo>5{L33}l&9W%64g*|9P?PA&0|MY6m}IMq?gi z**=Wrnl&fkT;Pj|{(PHQ{sP8nM994I472VjA!t53QomS59kvIyU4NqDS4 zD=d+Nr+~3=+;snNu(h{Tt;G77$Q-#Oj zO&DnpPHzECUc>4cY&&VF_`Y^+UOBevgEI zqb%OBq$OfEJLQ_z=atJies#m8@xlFzip?2AN58Od&x<#XNYA?Seq-sVZ8w`8Sy_fD zy)IagYch27^&38iJ2!su&{uupd-|r0$IxBMH5GI#x{TLB?er$EllQ9lKz1RM*L>>8{Ni~l;#GRtZ1Y!#J!Ok_&rANJ z&l&j3z^+Q!Flfv1+4g4?#Cob2@xi0QPjounI!r}_@bN?j-GP>y4IZuS325Z|`6VIb z$)s(EIFg4%eZUIEDK|gplW^2K^fB^QQ?L|^1ra5<`S}rDA6ykm5$O(?Pe1_ogd>eW zLB`St(g2k?Y$$HPo)HSPH2C=8ka~m90QH>Qq=sUoR5b95A}EKV3cJB<;*UdlCs*E8 zv9-BrbNR{TcLfVVd3Ue8yJBlo)20gi4ip>>w~tg;kF^yRwvAO+kFR9Y9s(chv}$9;vDxZ4ZarM={h2(8U;X(+ik0kySwZ|0%`EpXH;y&`$7D zCh*)E;$!7V?1rj@vC>h_#844HmXUCb$Tsi^!=-JroEkLaSFJ)b!H*4}vm&a10yHDI zL1{&)f+T4J4kMk>Aa3V?974P?&&6lic(5U>mt^+RW?&d@&T5B#6dKkGubvuJYb$FqYOxK+k&z+Di`WeoX0 zk=(*!$tT(35U)_0Fp-FNuVLGdzb4eefKPFKWwz01YcA919d1o8D+i@)g)p z1QdbN$9G&(`evf@18c&A1XYnJ2p(K;$Z*O5NdOfJVzXR<+5xLXJ`F@ysS}E^Z&FKC zB5LDzK(*s&R-UXR)v8XynuT?_wL_b?Z62y!w79lCy8f0`a1@preGX?y^OBC}PUDo2=b^u>F&Js8F0X2szp8EI%1F_M zo@p0iIM-j<9;xh#l~u%gS0@%-9*%4qXx=eg)7~)kNNj#nT`+r~y0Eb-5)Qiq3zYS+ z>FyDi%18KqeMHh{+*gnfT(DzSFw5kU0>ueDZcgr_Z1M@xi!i+)K8AwyhfW>{VY&D_ zQs_t=VY-zsl;B?Zx zhq$ytHsSU|{3`MJ%BWl!-G-R{8yr)ZcjnLXKOm2*aC-a(wj$wOyLxP-r@Nt!&U?G7}@^?IM4K@m_6t29WKTc^+=xKq4=}-Tt=_3kpL|K&%@(4#3a(Tp$EYs7 zY{SmGo2q2H#TJYXw%}OmavYP}Uei@mG&veyd;LQ%Y})kVL)Wj3)AtuQZF+&ePgIQV zyZNE&zCH$Oan^p{U;VE-W-^!h~Cf_aBOJ+bNWOS|Vabm}c2tx6nox$x4_ zatoXircEzCeBHWueBE^qzqo1Q#fOydXk_^#x8MNniO>G#`sI(_a&W9_)8~Gt(9tTX zLtHFBfjvWY!vD~oA!G;EmDioMXQ&=1fjvW#TuGt~*%LUY3P?3`+Ysao$b~dvQW7){ zr-X+IrxND?096^4=)fy=zYhQj9M()YkY58I00LI!?9D?eu(`JV(AtALe((23l@C4`ZvKHx&;yYjsTT2_R`~cFy-M{2Fv!#*dDrt{Va%nUgYOO~aF9Nw z!x4$_5zy?^U1^KCWK+!bM_3* zq0GejLdY^CpZLsEDY;*PaJ3353bZmsgNHYPd{f{g*g6B#n-~kMcw#KDSOkH>d-brd z(oV{{z>0b<@_ERV8z>I)mZ#l;mfRtId9q9QO!C;VhbO5u_*+iEy!w_~OcN!W4f+6X58qIwX z5hI(a5NM6C4q2=p1qRRvK;Vxfbsug9`hXWMHFN6K6QtkqyIW@7Km?JFAz?Z?36nve4#rliY2n=v=Jdloy*< za#f{kQG3JUraXUbUv-w=XT?dh?qG>0P@ZdB##-aicy);#hw@wMhU%2t&A+C*NnE1s z6UU6h07sgw=BYuFs2cWiFm<0eY!k}xQ+D$+9-1S2Ph9dFTaIV@owiWE{CF~%Y5lX$ zLzNFxZWv-zd2Bh)0nZcoT|G*KpZki*nvU>5yBjzs20(|iqx_TsW2bbUfu|RubV*ui zB7Dp`4`5O;;D4b4K`BpkQlXZIp+$Q})D=g10M8MaSx3v+s7kM+qs_ww(^WHrya{R; zFc25jyoJ&9T4+geL{VWF<0PIUydt1spBDio&eBMg2y1EZ;6!lc0Gm>^F^O7TxLA~` z^pT$YbyfmFq?jMjN2wdEV&^t3kD&Ybvi`lr2L19#DRK#R?>eOA67UD4@{9V)1tt6-~c9{6md$dhZ#)q3}Us#GYZiN zdAbReLQ`ZD(){JAxweQoC|Ob}LXnhob-lnIM+Hz9vi+i8sNmL~}_;!sX8_D8}a~M+AkN z;}w8(ZyvtU(MRNTXW&j6OiXy?xr%XKM#4ZTP9GfKz|?%)wZkKW#SO6(bA#Kb{z<*v zo9`(r_m;Ls%J*ii7|CxMt|{#gI`n_X)%BrlSGLn4A0Kx2)aSi)@I=lqyDD+9K;y;1Ex^Nc#x>SC6&=X9{4<}0UBOWwU$-;^W4z6WgSXy^V-q2n_ zCA_UAbt4Y$WmoiGG+a?Jd{OWGeIpeWBm3qr9vfS{Y-~(^ynJ{+?z|c)FCRJ3H-GWA9Qc_$;`8~EN6vnMh1m?oahZIN zfI|4LLC5zso^y|DJ;c`z6l7qxm9c#}A3}@-e#xjAl zO*1T2wYy}oDzgaoCb0~#i3qVgWOQLRsR`1diKh!8i)xC|J;+GT@Pz9^${m13vnWc2 zzgUXl(j6SZNgAh|xyxo9-Ie@zrw131EWPaX%`-?2J8Gmq{eH^ss>mCZqRy)Ph0NS( z&V2f5yQPVJw5(DxqD@XTMAYm@vPmE78{4(%jTo z7ptyH*Sb^qG|*66L%E5n?oF4lC^!YFg@j6`;FiR3%K{o!)p4_eTEH|26`UGGsHGX- zeX~KLu!dgehl+XD-~r1B9%0$Y{{kMj8n_vt^poI+Od7&1;gE4zw_rhkHzB%`~-=LBXn7rc4U`F4&rx zjhC(zM(Q?Sn4L3u?+i@+-871dKfMqOD3*r2QwLSNg|7*Cd%64o_~0U8v9Ly5pNKde zYgR2^ws>rQPiF^VZ%tKcaVY3m}xXZhgbAw7~ZaMG69 zk`WaQCZh=(_Cd}jLx$ptf|J#VXmrGyVw9L;vzau#OuGnGPh*%i1*6 zEgg17kcMxZb7E6%a<**FNnCc}?Fr~Avx(8U$9Pt|NK}%TRpZ&VIe519Ts&Lx38a+2 z3$$!!Gj{t-#y;8gQ7m8S8qWXS)5Mj||HU^xv|T*8YKEK;g^J|82o=fjlD7%3C2Y;0 zF51hHx)+TU?ilPhQn9h+1qo<~M^GRZIcM-&YDSw5315^e3mueiCnueN=%nV{Rml`U zg`zYV%C%_cu7V^IHOr4G6C2dpBuJ{kB&SXu({-?z4~{w9gr!7md5m_Jp(BaGf$^>9 zz8EcnQy~q>i)LSq_FcLetzz`xz~J`5`kLC%J&#!`+N0I2!z~p({AM(ZS!bVpHQE{6 z9S;7sK>s&z8Ja1B@SkjlAk6Xntr^e%D^>n&b}+5{o2lnNobmk6spmgPe{QHuJ^wGZ zAMJ~0evSO9w_po9g)A0GxG4{VP9{uU45OTMM@w1ff#6Y+S8+)yxf4O;I$XhmZ+Jt> z5I^@-xv35TRM|rLUkVe8sgxESXCKBUGfuLj~O4R69 zs~d2b8(jnb0X@Kxj4Bu!5EMgbcWQDHxi{&`Li#JIH+j*ALHwaKHRWm*tEYb6Ca#~H zteyJqv*x1gJK0<8+iNU&w$w#D>{#+sZa*SXe=6;v1WC-qisXa*PO1U%vP2f?Xl<>H z^|jT-Mfm~050>-*8%RZ_2Vg|&nsE?PyUmI_7Z)(xj7KqQy-u3m`l9ey5C%dj+I@Hi zPmtlzLOQFZ5P@5}F&|3L(^f3%M+fPg3nZEGA06bJy(9)Sde*?%Sp$bWH!$o;hyG5| zg`8J2X8=e#J$_A&4}B=el$!?_MdxT@I!eFrLxG)6D@Zjky>dKSzw9Hzlfhx=GDJ|Q z(WvT;$|TS@c-UTvA<5~E51esT7v~ozoZ}ubWp7j_-4Vf4Hpo9BUYq71DZJ@t_b>gx z8^-Lojcn{U583DTr5vE?L; z){N)GW0mr6v#zxA#7mXuKTw{Z`6dYWB@Q1MZBTUn^F4e3KCVg-Z%ljsmh$|}yLf&? zPwB#KA0yGs5xc(Ppx2|rCZ14@#d$Bu+mLT$d^k2o@J z$3etjGQix!3d7e+Xs_nQsU(ngzzBK!;L(KZWoA7ComWNV0zHsiaij+#(R}W*IO~eU zu2zStl5>;aMxnrl*^G0qxKx0BsP@e;SH0Ak*UF`B9=FJEa0?evQX+0|L*g6V;1+#N z^zq9%_=O!)zj;mfpSZ*A0QSgSp1hVVp<6m6i+G%0;l{6X6Yq)ARc=Z9zNEx&b5qw| zZq$>!q`i3t;fL%kzGnQs624|68VFb3ne+KuGoI60D&^m1e@H7&@RjF3objC2Sb6>f zdXCw>LUP#-+a{ zKb^dP9ovw+cO9Ex%hx3zW#fP);k?>AaOcWfz?Mp(5xJGNx>#9BAlK)yn$_EF>7yQZcnH5wfa7DMijVhk{F?pzEtdYA@KGuMHv4p1dBQv8`480RM)1a;bNHmIQ2Z_jI1o<7r7bo*nngS(gtF?c|MdGrIM+#?wM7dK-F)tX zXpT^eAE}k7Q1!tNC{5~R+J!cBl#F`t!;C9!UjF4-SK2Up@{jV#$C`Wj}X+TLUN?a6~fRwdD z8Y|6FRSvAAbJc)atW^WAMlDT6u9#Vi8h~$6r3q}})k3fgSt;=FH_j{$YDQ8SqpM0& z)yPsKlF(}M;H^dy$^?>W#4idyJGT{=Nl#xW%@2^lefJM;xobmpd14?@UN^jYxUOm9 zhN1PR)Ku1nfw~IZ3f;JP!{Wxu?nT{|{>J4U^Y#ptKihNFbMjNIt9Qp*mv%*KV)@1K z%Ie#7^-sBfKLliwK+l`Xzv@nl5$$<`+hLnIS@@Uyw) z$AQ=L@W3E+3qPFm`N0{_Po~PhHskrnQqSL*@%%{Y`Suylf0TOuy6_{kPrUb!dO8cH z8@FArk{(J#=(g+eWuvRcRxKRpnb*BQD zhtpKa*-Fvq#UHhQP$#tRVb_z{ocf{Tz9yoQ^%o4AS#S?yYUoft(tn-1AqxgUoM`#^ z8p>oAg8)}{m`|+12qS{Lfzvbp0VBBu4XplOHee>LE-aXF&no}aW{W;UWU0_L?}@n^ z$q;cRdUVcFz*kJT6UJz8Z#qT<=_;PLEpj=MkA3s`+Cr39Yc7Hai2*)Uf;>lKW*xaA ziM4COUGa7b@LpnM@c(U@)sWR-v;zN?L7k%^obR7u#ki2plp59twM4Ey`Y#nn)MHa0 zc8awl8<}>C;gDZktdctFw?REFil?+H8)=XLWWzpNt{2qNNwfScVBLw)<6Bzn{;A`- zs)gG+dsekY>^7&qI<#!#_V~qLX~m9HW_SPrjrwgKex9uZ{-auD)I{ROvW}kIQXIi?c$F@+O(Y&sBv>F^q z^)Nuz@jN54-FtJOBR0Up&_W&txfcfYS%x+ge0W9D?!tBl8MH|d4xE1mgPjakWgp4l zS~E@NjuKPaR>CmE}he{IHd zlBLS??aK2r|9}B>J%|4a;Om9%@8ARN-UUUpB<=Y@<@uR6@w{Fp_)7WL@Brn{{1nei zWrD9f-%jPhZ3fT$1-t35M@mQ^?NzR?OSISZ)%R6Z6c+Hj3la)t%{36ZED(?RUCvD8 z*3qSlP;{X%Md%Ps5-|X#T$LL?e_^xK#pk?GPuBzupM37D#0Gq$-XU>o0^<{*}d+$k;lSD@A}q_y~XWEzIbTE6PNe3 zANbVPiGS*JU%ci^Yv=DDsgmsRfsO407Y!Cy4R6zx8mxM6W}myjCg&h8r`_IKbGXTB z_Sm~?FZ<;4yKnjV153M(JhOMrV^{PqU3Toti5n(wuHW^kJ>?@EMbTxK%p19KX(eBm z+o9OF z+vz!Ut_k6vkqdhjzWIc5p;Ni{fuFpJb)fSB%7Fxuww0VS7VaS7!3xbqOuk(#lT2wZ za5b=5VF7Ius+QL~LAk8|Z*%V+Uv+us`~FsLgar!-A|f{fL81^Yh9CqGC~^}Rgn$;1 z(xB)l6AZHoNJ{AL5OC zot{o#d(W=sd_M0afT*2z&p)SjeR%R)zxDk--^=s-p3C?7{z6aQG3M4&8RmDLOPZAQNH9hcOb<<*KX_7B*7Ql!eHL!`utCaEdE>14oRR92 zbEe(vQ*It0Xxgr@lF%r5>t`n4L&*N#ddfa%>6aRLj z1!)z2;UD(n?z#L;Doo~km*H>rluYM)GK9McF`Ew!xhtfo(*epc>;pxb%O}3_&;sXs zTv7VqjG?nfJ^bATi=FoI(aM<%HILu$+osu}bB`3R*zxFnp&84+_UL^%pFFxaamT{H z-sL=yW7C(7y1Q}F)_^ul`|jQ^4(9yP2cjJ4Ym0nU!3apK)xs1 zgV$v|C-@iI!|m61ed@Z~L-+mv=~LJ3_ubdG_FN~=3-mWae^>A`{o9j|GWl75mSn(HmuC2u4H+V-Yt~IQSoyaTQ{ML4o7>Y;o}G83J5ix>Qhv4U_MDV`hJF0~WjEe= zvuNHY({9g6DL?D>1N%p}A8f@BdU7Hw9yu{sKVSQd`qvM%8}ZHx9Pyh7K9v)BpfBoD z&x(w)wEV90$9|$I5LMZayYrIE_cnI@Dm62i_W~zm&(~Wl{AOUi*;8-Ia>fizX<0ww zT##2&rfD@rkyeT9CA*8(qeO2L(J(;WMYvBwiq27L0aUR@-IH5oRJ1|;`j~mY>!&)? zkft|Vx!E}c$)Rqyk#RqkB{JHd`r;aV5gBVp=^de|$Ae ziqi0H_4;Ch?yr~pK?JqHlhjKu=&Qx#TkGep`{7&2Dc~hYk)p=?r490JRZWw(UQ660 zr4^@JNolye?DwbAH_1o6wDP2>g6pPUIVKwN+HCifYkFc& zc7opR`_#;jS0zmP`2B>~Z;!0~q5v5UX7e8KWrGas0rJwI#0*z_B3$e9|NI-qw2XYS-sICb>U?ggBlg&S@1 zhZ41PqlJXN3EeO1Na-g(A97EBZG_xd7}2_odpVy7{dZ95d25cnX8G@~OQ>&Oj|_UM zBKN%IuTND>Bt6~2b3TV;B%~|`HZPP?!@L6Irp&jKvW#9-Soyz3iaA@xtwgQBF>1}- zVWMmQaI$)zBP%WnbX7_*3F6S$o({+VDkO0JW1mA-gRfrMz4(wCrXAgs{1&|M`n!7e2da$+L^bzLfa178)jecA??M3yQw>!uGHC zroS$F{<&{B1@?yTJelJp*yoxOlW#07$bo{S?XYx;pN!NKlzYor*AIQ(*71GZ;@2BBL zPil)q)gG%6da9Kx2U}|6)c^FPwzzGcFoWYM-RGRPrq5V<-~ErwOi!Qr$o=;%osquf z!6}nw%$PLg!Q_ky3$sUz(Ax;_UpRHdh^Y(j&zd|_+^*#P8Xg+XJYceFuIzc*4UobdfN*o)p`RNE^^v=QP^oH@Qy+Ek2JcuEt6R9Z?wa!7qxfa?(-`?t^TQ>bsrV)Wo4^M zUp@P~&eVJ}2ic7jWTEem%M2CVJ>^UHWjyrY)Vr1@6zZipnJQ07o-`qA%A+&y88vp) zx~Y%m`d_I@V(m|eB)*gI9rf71|5?!eiRr(+mhhdDp5G_O|IptjXaB2y!|!J${yLPI z{6B(Wf%a@u6bU}@4o~YJoY8%zob^G^?)yYXjaa{GMrv|+(CA?U?zpSZh{Rt{-8^-} z(M4mE`=<;D56ODq!O`gp$M@?$Ov5zA044r?XmRq-y6I{lq!47!aZ>uQYA}Pdh@3qL z4IDLm{iC-MPX5`{{Hag$624&met(^1eW5ZFtjmO5=#skKt;AWX+ZX8b_f|*f_1|Cd zSzoL==}tCD*o94Qt=|_^^V2KJa(5l z3}R^A8|qk6=w?1g5A)>2bd&yPOm{xV+q%j2*;^`C{Lza~&z}ACi+{ADa?9+5HNAiR zk^a)R;;ozwp}!+%gW6ZZ5Vx<-%hzywYKAXN#o)H3^F5(|;Czp04%Pt=ozD2oL7vb* zeCp^sqL3Rfe8-eS-z_Q~aJ$-VN>1m-eWflIl~_EALxzq?9+#Xj0bm zr%sr9c`)-v)cq|HzSDbR;X}dLu76I7CLh=NjlY;bddcGXN`sj@BYWz^`~7yA5qA&0 zQ^(BorY9vB?w#YU=&MtO(?h8~4V2*NpQ26_@~*&lCzgw7Vc%W8jsm6V6oyi1`dQbz zJM8xerYbjsEF2CG4&N98F8gAd66eN}=@(GHLGjKoD@l$nTJ!It7}gu^<#fH2U1g8h zp89>L$~+M#v6S2jCho~dr*rgu`uFp-6rB<1)=KK=U>vJBo_&ew|})m>+d z(F^KEhWuVTZ!alNl=Cu>jF9uu8PlhY&v9RvG4^{yzWNsp1rkKdVoZ~C2m`Ye9tPapl>`=!qe96e~r z{eJg$Rl-JckNhFePbCxi?GdeNx-DsTpV*T8*TI<3w)sP($uU7s4!2=<_$`$;^3YF8 z8{~nLR!!`NJwqtJj;Z@ltVURVHHl6N_PextLsXk~6-24l}0}=#GV(ehZhLpGX%PW@(J$_hKSc22?x=*Ch2FY7D3sHh%>Z( zWl^OdRfW~3$fBt_td`inJ4=yYM=+`92L$5Yh)(>1A92gx%DTv+${%^YRB;-y#~wfc0@nYtCl~*$M^VVZxnVv&_a=<8-Ad93i5ZS z9M-bnEfJEp)U}tH3E2%6XcyCJ(@KauS_kO*C`oM}#SwjmjvPm)?RrEu8Fj8E;&t!t zj^{QWT;d%pMTx`dh^XG^YGU&$ChU)sZUVyl<$lW^nWS$-TQzRZmRt9*H|L?~>p9dV2bh z_y7FPVQHWIUCM7FLt6Uu|2v%{_$Xy)!mgBGY21(*JbqiA75Dl7-h6Sc!fol{Zci6? z)k)#*%yjy<%sZVVE_70f;f5+9Tw0nE#0^zqxRjEinf@zN>EybT$ldlgZQ@W$IANc3 z($6~4m3~2(yb;#PjR&|Y6yhAG#^=)#_I>hU+VDGHem|TxcxYP6Z$9Xs+7j-cD(hLt zzZAXQDL+v(-MsnQz#Y)PXO3*Wr0E&Vr1#c|ur`)IXCiElL?n#QOzEBr&zP35yR!et zz9p$isYxY$NA|D$r&vn3Ps&&I=GBC+ru6AF|Ab&ya%I(^jedxlROH}R32(JI(B>g5ziR-(n>C)JxI z1Y;G!>v+spQvSiu29-YS{x7sL)R^$2#GfY*Ng1E=OvL2qC9-M2xB-_3E*kikQWhy3H63x*~P zjSf9=*Z8}BG%R)4vAc)eT{S#ucznd}k&{QhGAeb{v!niX^fyQU{GNsPeEptd_k56k zU;482ua9|V?5d1G89yI)?%o~ak7X{*jNkXI`&Zn*Z^EVtpGzk8yP3}MW@{|Kg z$am<0We;>_&&jTvHfY+MX%}*m^xy93uRi$VjPWymG4sBeALTwdt7`Vf*(YXSpOf&= z{D<-%YMeV^?wj*A&HMKJt@D5Kr9odhxM0A7?F-I5{F6m97k{+m#FBGM-d%Ea$p=e* zw&bIwv1J>UJ+myj>>JBoURJa0(6Tp|U0S|n`S#_-%U@hxwfx}n)5|+oG^}V`(Z1p* zD}KJ>*MIc<%B3sUuFPLquyXgxvX!r_y1x2f^HTB#=Z(&rkoRETg1nV^8`dPO8L(#f zn(=G0*UVkBY|ZJlHER#8eRJ)lwLemuj8PPoqU*|1T+1e$ey3kd_`2-V8oW z93Ipqy%;>G&(@T2!P4Y!1bLyWL0!VSphBNziRnSUzT2WW-%SY@_;+2xFS>rMYjgBz z*5_G$3iP?J=UaH#fkcfmMSFbWZ$xKPP?vZt zSf+oMCJhUgB^(NdCw`)Y+3SLRQd>#rw_R6sy-ww0DO-bmzOK*Gq*eM?zeyY)>`UAd z%uV=3kfrNi*RI6iJRUVMIKUgfjS^E5=KI_DPN3ZTxep#O!eaiIVp2U9& zqN>{f$+j@zv|>LGa8H$W&$VZi)_HiaSod#9s0;G+S*!aS%{zHkFd<=VP^`bpbbWWi zzp8!*f|}%4f@k>b3l>WES?JxmzwOg!LD$c13+!N9^n4PY>AEVKuj=3brq8cZCIs2N zcCZa@{it5w@ZZ?N_UQRw3)w8`a&XCd|GZC1zOLIAvcs*PgrMtxNdL9^w^N`0D=9Bn zA$hy)U|Zb!kzVxoe0{$DsgG=d&GfHrnfi+A{i9&1X7h!-Sut4@n=MK01AD`mFSY>8HmI*50uH zr}x+f2X$9o&s}$<4@)1ZyK-;b73%tzuK&_?x$C=KfBJFP$G`mezg|0k?d-L;uDyA! z?%H>*-S^Y?J|jPbZ--crmA)mGp8rfnELgSf>GhLhAzet1y}K%wG=4)YY0(qw#$=2c z@$$O#*s4|Q#>D2YACVrL>C(*g>(gU>7j51WyU&02U6dZvM(UW@RNwLLs&(nlq`&;~ z=JZ&2)w+CLQ6}Osv9L?pEgKViFn>h8M#Ljx!Nm3Jdw7d^LRPF##)4RiK7l_E$5I|% zy)M@0;fZG@&%^l(Vnd%EsrwSM^j*4GCM)u@p0i zCEUB9r!H^xRr#&3AQl>$kuGAQuRD_NUGVbD>Eazro-igO7TVlfmbCm{H27}4_$?8a zCHb*$K6z7?w}Rk~jD@k#!?9rQSxwR;_M}*!tROvKwBGKgJ*)*U=f9PbFmX~WHA@%! z<)=R^HuO%X2b?RJ#xgDF{*jrtXS&ASn7mHv2a#;`VtA+tGA5JGc(d( zer(Db_zLeY)sQibZriv0L%7UoR~egQ4f}u!VCoX1>)w zbf-8D$V#6h>b-a6O9z{0PKpi8nta!sNwGnn^Q|O*N_V7Xy_FCQy*GVw`VyQW;oe7H zetAj8l8nty#zGkj&MFPxokPT6u*@=4O4tASHWr%r^vjbo($nX>EGl>0{5E|u->1it z9KrUdj9HlZzrZFrH^PEN zWIKa@tKX@;$ZcHJd(%vh?6l#Qr^ksSZc-seYZG63Y#d) zPKpghdetnUM>oORb(7QQs6}`CO0Pn0Dlg?;Rpt?WyEztG^i;-^-OVebN1v+Bq}W|O z%pUGlXudlT3DB$aVObgJlP&pTHJ&-^C%@G_^0YMJ}Y*|#FynS zc8r(R9zIidnQC&ZuS6J!KJ9D0>X##_xus8*zjsSHChM(K^#C_~vR6s}rq?a`!yL`( zb>p3rF>}P2TZ}$teNRQw)#&Bu_o&)qEqkvS?zOmMY%5o(r`|UtyvGtQk`B@rs|V{9 zDl;oK*&>ja#Ss z4{m*cl5fqXw}bh>x?YH%&gdq?w(6s(qENpmv zqt4hK8?s1^=)QbCq#j#$)7xVS84KU;tMeEW-|jcam^M_n{%q2HDU0$J>RM95#9JSs z4Z)uW4f^lTgKv2hkbFt8TY=t7{6^PD$(NFnyMFaa6}M|F@MW#v4)`R5rR)Ce@i{MMtp$e=9YrtBt4ty1?r*4O+)nV`m zcoaMa9tTf=Z&1UN;3@Dlcm_NRo&(Q=7r={P19%C15AKbWuOM9$cojXjf$d!B06T@s zDfz!q_Do*e>C~b_rvbaA3QHm5I`5yMzPVC9K*1RH5w>*1L5_3vHLMa&W&Z zv|Ym3C9J3=mu;7DV7r6^+a(;>F5$p-2?w@IIIvy9f$b6wY?p9gyMzPVB^=l;;lOqY z2ewN%uwBA|?Gg@bmvCUagag|p9M~@5z;+311npYcF5$p-2?w@IIIvy9f$b6wY?p9g zyMzPVB^=l;;lOqY2ewN%uwBA|?Gg@bmvCUagag|p9M~>loz^tkF5$p-2?w@IIIvy9 zf$b6wY?p9gyMzPVB^=l;{iOL1gyX>pU^bWoF7CRfZi(B6w5;kBZi( zB6w5;kBZZgctnVsTc|+G_ z;YP{@P~HaRLNLmeBFe>-_fmcd`c+^xSOeCAb>ORDJsjVoe1+dOfz42B0b9X1*v_{d zV5e}9WM3)lt2`Kkqyd*B;6T1j0|)c%IM7lLlGLvVXUVGv1+yjNAjzIDd`K-?E8~1y z0G%jU43=m&24J;J~i=x-v*s7_1(~<-y!Ds_TTxqrtJlsNpuGC8o5cnSOgcfJGu75GE&J!;j+Jy(#r32a6WE#Osrpp|kQY~xBhcXoiCLM7Z# z`^}I?{a6^L++WYH47Ds@A1GhVkVhE@bI&+%M%Mvd$yH4<)EitE&gs%bUA@62;XJO- zhfY3N0JSJs43u2Il9NnwnDgH)4o zip24^8KO2$K5v`=PEvf$IQhJ<Vt)apI% zxdP25uo*5bU@I60+xfNw>=ceykFiy_4J-tUz`fuVunBAjJHSq1CZ3at=VanJnSnhg z6VJ)Sb29OqOgtx3ea?^dtvx3b&&kAdGVz>DJSP*+$<*mO)3N7dO2eH(drqc$U86lG zQ==E7JttG67o$BVQ==E7JttHBZA@s-$yD!ZwC7~1k9FCelc^EH6~ALhcE4YBULi~a z2XkdqSEH_s2FGg5e7~gdos+s|2^Y)T@7L(dxD;H)ovXn-uB@TFmhxki*MTp9B~U8` z%fNE50;~jI1mA$dN$?bS8axA@1>c6|Im+k33*bet0lWnMfIHs-{|fve*vPk6(LkGU zk~DKgIIt@&OaljVWgJ)nmV#wqIamQ!f-izs`E8qUvb^rHFhl*uWVJ`*1TY)S0T*}u zMAw&qOTkCvv6D5v_4T#jm(>O*>)HK7;RbP;tXAprHs}|EMc`iWB`8;c)nE-+3)X?J zf^R_oBzOuu4W0qdg6F{V;05p^*Z^Jv--B8svIbFoFYwDsk{L?8z~o1lWo+Y5R7tVN0;lf6D;ET9?HdhyO%33L8l6=25Z1tunv3` ztfz+7`4r6vjMn)S%?OOv`4r6vjMn)S%?OOv`4r6vjMn)S%?OO|LDM>)qEVK$*910G zw-)d!`fQ~f2iv&P&Yc}#r%-8})k`P}Q~gOcy_~Z4s$a^cm&>M?%chshrkB(6ggf2K zWz)-L)5~Sk%VpEcWz)-L)5~Sk%VpEcWz)-L)5~Sk%VpEcWz)-L)5~Sk%VpEcWz)-L z)5~Sk%VpEcWz)-L)5~Sk%VpEcO_LP6^bW9rU8%w}a4=WKfs^DR(=@M)3m408r^!!@ zOTj#FEm*?+rC=FY4pxAb;EUiPs2v86fJeb&;BoK-_y&|uf~UaK;2H2Ncn&-dUH~tG z4d5lP5xk0YZNeNZn1cm#u%Hsr%Yr#rFb50fV8I+Ln1cm#cuwVD!5l1@g9UT2U=9|{ z!GbwhFb50fV8I+Ln1cm#uwV`r%)x>=STF|*=3v1bESQ4@bFg3z7RY z+AiG4m9KQYsPZ<-h2RU^UqpE?=;!YY*~sYU?+n?<=;!YY*~sYU?+oeF5>02XGo?49 zpZhbVH>02XGv&$tt)Kh3%wBUvdAG`*z2<6#%;?!`uDt6Np=YnT;^lihd(CC`nyc6< z-|5+FuIk`#J$ucSj~P9C&1LqQ%j`8*{n)p3#k1F3`IynO*WAFf*IZ_=x$-pA_v|%S z&q06d*=w$zhAw;dnj3ibn#=4pm)UEso|5gl;@NAiJk4d#UUQkf=E~nJg=eq1foHF| zfoHF|%wBT?&t7x2hTv~Kd(90zd(G8Kg0Fb?nk%guJ$ucSR*jy$=1QwZ&t7xojppvz zYpz@`;_az@WybG0I8^z1cPD{@B9UUT*QHG1}% ztLLxLv)A0fv)5cbg6{foHF|@*iLE>@`>GAx6($XW>z^4!9&#QFn9z! z3LXQGgC{_*TF;Wzj9#^#C94^|YCTIS+bYW>(#Sl5n~f* zi_F3zvt$wL&=#46MP|t&zS7Q}9bl($wsd}3=&}85wNRtS_OsPCjUL<2mbQN)^w@s3 zv~Bd*el}y#*^EVJtHr&kD<0d=W^6y3vHfhu_Oqq=%ewBd{cP#h=&}85wFslf_OsO@ zj2_$1R*NutY(HCmZjK&j&SsoBn{noB#+kDjXU=AvIh%3jY{r?h8E4LBoH?6u=4^Sg zsd=0^TY9@J^w@s3bYk?_ezv^yvR3VrHFKOJFWo2%Q;vWG)oaa>#`1+}lm~OqDCt(a zN1#1+j`SH5j^kU8{O3rkMn7BUNVhI~{I6)Xu5St#LvsnZ6kMix!5sB?ro0-=KJ&%|p%Njk8m?O&?J&%|p%Njk8n4`YVvL6PIfJeb&;BoK- z_y%=237!H^gJ;0A;M>&y9Od)i1@I!+0A2!rz@6`ae+B*!^h{)qJjC|B0ycro=%EF? zirrf&$H6wPv~y<%*eQHSesW1@e|Sj#@FU@PZ~~YO=75X4KGe5Mz@=awxE6f8>u36Q zy~e-~$(qJ(P%Z?Ez`fv0P^$u~!5Xj@tOH*K-+=N-@Dz9&JOiEu&w=N`3*bet0lWmh z2en4ZSExf1*ba7pox-`&zz0I_3C>kpFnUjLu3CZ7{rOz_^SSirbLq+F(v#0sU*UVa zCpcFgW%QolTzQnydxCT2QAYQ!bLm~@(!0*3cb!Y`I+xycF1_nqde^!1u5;;K=hC~* zrFWgHzQWYp$IfGwavrOc^H`;vC(B;db+1y+lUzR*dX;jXN;!{J%6YP~xpcJY;5jZzj#x4tru@_fqcyZ%vE zp3sWfB5`*)pX&wuDhd{Z&0q`I3dV&?;kXozOEnw4rYq*S6pl;bxD<{{HOKU~=C~A& zOX0W_j!R`(|H>Sf%4$Y)Tq>;^&2g!;dPML2PL`$~(bLDM-DBavu5Sp_zyhvB!5zxb z_K5m$;~ub>>&;*bc$HtZQjUXdy0RQgEyq&JB~gQ}*iy@})N(AfTy^$!TWYyH&}d67 zm+u*EspXQwXiF`Z6h>QWrP_6)a0$2+%mdegZ-6JkQ{ZXv40ski2c8EnfEU3A@DkW4 zT!k#FkYyFJtU{Jm$g&DqRw2tOWLbqQtB_?CvaCXuRmidmSymy-Dr8v={ngN44gJ;7 zUk!a_BbMG)Lw_~&S3`d_^jAZFHS||Qe>L=1Lw_~&^YF1ed@K(i%frX=@Uc96EDs;c z!^iUQu{?Y%4)5$2D+V1IIOR zTm#27a9jh&HE>)5$2D+V1IIORTm#27a9jh&$K=Ds!DI4a<3c?(9@7}Wco;ka9tDqq z$H5ceResebT(7a&n?h4t54H80FZjwhaIsq7dU>63DVPVY1xvW66f6VF!3wYvd=Y$u z`%i+Wz|-Iv@GN)^JP%#~FM6SS8nRP#n% zaeH|}&q1Tx%M*IK8Qor<(9_N6_VR?DZbrA4C-ihPy1hK1r<>93u{rHM!v^7+^Cta(K_6ynXl10+^Cta(K_6y zIvcISjjFTJI^3u_8?D2QsK~9k*5>Z5ti8 zRv>K~9k*5>Z5ti8Rv>K~9k*5>ZJWE})(SL+v2>1GE0F(K&yHIw(744{9Jf}Wam&hJ zoBBgzUyWh5saJH_kv7|8sog?H+H8}J{H-HxwrO0qLg+}FZS$F z(2+LV)I*w%BW<>+hcr6UW}CEabfnETY1`;Xn{Cpz(UCUWG#)cGN7`&tk7{(J%{KL` zE<4g@nR(9x3#or0^)ICUh19>0`WI6FLh4^g{R^poA@wh${)N=Pkop%= z|3d0tNc{_`e*Gx+f{#G_YU=TJ*|x1q24Z8 zjNYN%E?G>+JJj1Hi_tsO+a-(9JJj1Hi_tsO+a-&CIP~IuaF4YxNb`+G+ly^dTCzN-}3ckmbcghMzQ{E{n z7)^PnbbDV=M7u5${i`awUn-(q7tyYZXxByJ>u=pJ716GXXxBxw>mu595$(E&c3nif zE}~r*(XNYV*F~zEDY#!MqFoo!u8U~bMYQW8+I11_x`=jNM7u7cT^G@=i)hzHwCg=+ zW)GU#gJ$-i8Ly|$(u~EL*@I^GpqV{rW)GU#gJ$-inLTJ`51QG7W{O35nO5ZeBrT?u z71PR!#mm?IBvpJ6Wj{%aX=TN@-t*n?< zR!l1^rj-@b%8F@a#k8_wNn!4Ok`~j-ifLuVw6bDaSuw4wm{wLyD=Vgz71PR!X=TN< zvSM0UF|DkaR#r?aE2fnd)5?lzWyQ3zVp>@-t*n?|Q)}FCM!WkKK#M?!{wERR3kl6X3|S64l)3HJ=jJd`je3KUUdmJ|*%f zqt|>&eRrZ=si6qkKS+e+w*L+GelQKFot%Nn764rc5B%`l* z&8LJlpAy!5N?7wLk?j7~Yd$6NB6IYbPl>$9=rx}bd6Cg;J|*%Zqt|>&So0}i&8LJl zpAu=twep%z32Qzjtof8kSLWh1pAu=w=rx}b)_h7>^C@A?rxcBqqOnpmR*J?-(O4-O zD@9|aXsi^Cm7=jyG**hnO3_#;8Y@L(rD&`ajg_LYQZ!bI#!AsxDH&uG85%1?V`XTp42_kcu`)DPhQ`X!SQ#2CLt|xVtPG8n zp|LVFR))sP&{!E7D??*tXsis4m7%dRG**Vj%FtLD8Y@F%WoWDnjg_IXGBj3(#>&uG z85%1?V`XTp42_kcu`)DPhQ`X!SQ#2CLt|xVtPG8np|LVFR))sP&{!E7D@SAHXsjHK zm7}q8G**tr%F$Rk8Y@R*&xHIT|ZRW94Y99F3Kuv2rw4j>gK- zSUDOiM`Pt^tQ?J%qp@-{R*uHX(O5YeD@SAHXsjHKm7}q8G**tr%F$Rk8Y@R*&xHIT|ZRW94Y99F0|=u?jR+fyOG(SOprZKw}kXtOAWyps@-xruTWM zH>f~k6=(L}Qg`tP+h?qOnReR*A+c(O4xKt3+d!Xsi;ARid#(L}Qg`tP+h? zqOnReR*A+c(O4xKt3+d!Xsi;ARid#)FMkQveY6=Ewa=iOD(e0B1xvvL-TcLz7EaTq4_#AUx()F(0m=5 zuS4?yG!H=Y05lIk^8hptK=S}J4?yz(G!H=Y05lIk^8hptK(n3*oO)5-sClm=aO$-O zYIFony`DJvLPy}#iq#9GIs&I&&uf<*fm2TePQ9MjE;|CJUNik~ z3Kv7u5jgdl=^Gt^Q%?j=JrOwdn)~~@BXH`q0^qVEaOxFl_D!K9aO(AB-!F6oPQ7-@ ziiM8Asn;5_>+cAhdOanLj=-tcI+G&8wbEmB1Wvu4p8nPmIQ3dT@I8*esh1`#iz9IA zrAebBaO$N=qa$$YrAebBaOyQGFggOKUZVn|BXH_9Dlj?%r(Wv`-xMAOkAO!(N8r?J zJ;CS*oO-P%~vQ?K;|qa$$YwVq&f1Wvu84PAdn;M8kX!RQE_daWuL8^BATBXH^! zZD@1^PQ9WHjgG*n*J^|BcLYwoMh-?t;M6O&&FBc6dd0T6>3j>JMr3X!K6~A=S<3o%%!K zW%N${A#rI44nzMi^bbS-F!T>Y|1k6qL;o=J4@3Vj^bbS-F!T>Y|1k6qL;o=JmES^K zltln^{f|KZ2=tFYUwbuNcm0n*{|NMtK>rBzk3jzj^p8OQ2=tFa|0wj2QvajSKMMV$ z&_4?OqtyQ>^p8USDD;m)|0wj2LjNfAk3#<#^p8RR81#=p{}}X-LH`)^k3s(!^p8RR z81#=p{}}X-LH`)^k3s)9^p8XTIP{N0|2XuIL;pDRk3;`B^p8XTIP{N0|2XuIL;pDR zk3;{2=pPAAh`!MgEGNXpWyj1YqLwR;nK>cf_P35;Il*5432}GXF*7Gr2mi_uEGNX# z=m?e*;%IaP%L#Ej5}btNNjRQ_<4HK4gyTs#o>Xi4mhLpilW;r<$CGe83CELgJPF5> za6AdelW;r<$CGe81;?qE@eCZ#!0`+m&%p5v9M8b<3>?qE@eCZ#!0`+m&%p5v9M8b< zZE(LK-GqTdjl zL!xs?bPkEmA<;P`I)_B(kmwu|okOB?NOTT~&LPn`Bszyg=aA?e5}iY$b4YX!iO$3E zJRHx%@jM*Q!|^;E&%^ON9M8k?JRHx%@jM*Q!|^;E&%^ON9M8k?JRHx%@d6w#!0`ec zFTn8v952A}0vs>E@d6w#!0`ecFTn8v952A}0vs>E@d6w#!0`ecFT(L6952H0A{;Nm z@gf{A!to*;FT(L6952H0A{;Nm@gf{A!to*;FT(L6952GL0gerDY=C0}92?-+0LKP6 zHo&m~jty{ZfMWw38{pUg#|Ahyz_9_24RCCL<0Uv=g5xDPUV`H#I9`I|B{*J!<0Uv= zg5xDPUV`H#I9`I|B{*J!<0Uv=g5xDPDp!+wHs#j=-HW~p$9LiQE*#&5fc2Do2Y*i^>3p7P1L`M`ZrPk zChFfr{hO$N6ZLPR{>`fSGL3h=r`fET&Pt)9gPK)mU-zD7vuf_L_cWU|uQ570s97@_ zqoaeG+0$%hPqUdlO~r$1PqUdl&1UvAo7vNBW>2%3Js9CcQqoaeGHBKKbbXKco_B5N> z(`;r>vza~3X7)6j+0$%hPqUdl&1UvAo7vNBW>2%3J z(`?o(!`vMm)T~*CrE_#pvn*mgJ36RYvk6~ubWpQq6Du|Muw7cPOAB^s!7eS>r3JgR zV3!u`(t=%DuuBVeX~8Zn*rf%#v|txS=t=`E*rf%#v|yJO?9zf=TChtCc4@&bE!d?6 zyR=}J7VOf3U0Se93wCM2E-l!l1-rChmlo{Of?Zm$OAB^s!7eS>r3JgRV3!u`(t=%D zuuBVeX~8Zn*rf%#v|yJO?9zf=TChtCc4@&bE!d?6yR=}J7VOf3U0Se93wCM2E-l!l z1-rChmlo`DRqcIba8)hc==?&;lcat?nNBosQqBy}`Gu~^7Dne6x=O3p$u_n9t7`QX zLgyD!3_DkxU+AhvIG2Ua4Ruv*-;|wS=&Gz>bbcX4Nl|`^9x;->_+DoYQ-m8@yS+v zvK60f#V1?w$yR)_6`yRyCtLB!R(!G*pKQe^Tk*+Od{U9(^2t_wvK60f#V1?w$yR)_ z6`yRyCtLB!R(!G*pKQe^Tk*+Oe6kgvY{e&A@yS+vvK60f#V1?w$yR)_6`yRyCtLB! zR(!G*pKQe^Tk*+Oe6kgvY{e&A@yS+vvK60f#V1?w$yR)_6`yRyCtLB!R(!G*pKQe^ zTk*+Oe6kgvY{e&A@yS+vvK60f#V1?w$vAe2W0yE~iDQ>Ic8Oz`IChC+mpFEbW0yE~ z@#)*CTHSD5N*ueyv5R8&WtTX1iDQ>Ic8Oz`IChC+mpFEbW0yE~iDQ>Ic8Oz`IChC+ zmpFEbW0yE~iDQ>Ic8Oz`IChC+mpFEbW0yE~iDQ>Ic8Oz`IChC+mpFEbW0yE~iDQ>I zc8Oz`IChC+mpFEbW0yE~iDQ>Ic8Oz`IChC+mpFEbW0yE~iDQ>Ic8Oz`Hu{P-`ieIC ziZ=R+Hu{P-`ieH$LL&+KiZ=R+Hu{P-`ieICiZ=R+Hu{P-jkpvCLtoKGU(rTi(MDg< zMqklJU(rTi(Wa5ZNZs$gqK&?yjlQCdzM_r3qD^{s9o$#6NzX?26>antZIai&bzjk@ z5rwI_uV|yMXrr%aqpxVAuV|yMXlGp1F3(gy!nmlNaZ$UxbhoZ}T&FBweCu&hJ5skZ zE^237)Xuo5opDh++8GzMGcIbErfb^AJE(sL_3xnm9n`;r z`gcY=SDn;f zF>aKt|4!=PN&P#ie<$_tr2d`MzmxiFG{mnwuI{A%oz%aR`gc-)zfyaHGvz1wwZ^H+ zl-pfS2nOh{?s8(VHW=DdP6~zvTYJjMI-OI}Q%=$K&YtoBW%c+)up-#3Rq(&>r~SUee)+Oe=YdB&M$pEcuse3;oqm!OQzqTl71TDsgUwonnj zPwV>ERNARKp3+~vd?wvimuE#~hwgWdn<@ImQ@Z~-{k=ow$@)AeX(x+LRC<^aJQ^$( zCBLOW|5LV%-QA_z@TYn=f?fbCjV5W=L~qoSHTr7Lq+ifqdnN;v+j5Yy5e?Sch=v4r z$~t#R|99&x3?qV(!6=Qt?~x2+v}2N?{Ac$nw^*j4G4Bs1NX{(9HcVDMth;RGmB~?- zk_VN0Vy2!=v!t0hI*B@0Po??6mx2Ys!?MaE)p&_cussqi(+RK@!5``D*Q3(cYUyE( zeB-g;acOg%PQh%@DU^-DS9Hqat3iISIh3ds=(3%Kx>Bo68t*&jn=TwXzupE2X6*XN~f>LFIr>; z%@)-sY6PX{<^LT#6TGkfq$Bu`((OmVcY_}Xe;fQCvfzIW{vSmnY?bc+L~-;5vgAQo z;7?^0d&ExJW>@fnymYsGtw_5viaJyd>F)>sLGOn6X7FdhFN1#yE(QNNhy`y29|ZrW z-du53D_a+Wi<)_#3(g1sDX0v782okcPAEC}Z<^u%O(-SQCzKlM8w!W|C9QmH#fm;V zpMP%Z)Gtl#`FCN`qMgyg@E=Dv?|ORjQ=7l`bY#nOPe-5r+H+syukhxlcJAo@V&GHH zMW5Qa?U{n7ck@->=yT8iaraF-o-5eWeUshAZ@wEG^wIk&2C5v$JEqE72@4mmSQ`u| z*u3L;`Geng5$Fzof3vJ#{>jtP=Ys*=sPFu}-^FIXbUzT1Eqwphf$t1_r{Cm(?+l8k z?H&|QzB=GgzhCrk7;q?bq5t*NXA^b|IFwj1;80Rl(%1W6Prlk`L+Z1Uk$uPZo80dg z1G5G`Kk)g!9}LV2KdCZ*g-3@^hgXH444*d5wB2dD2OJXp)BR4T?e2HlSNi?p=6~jM z^S}PryZ?)f)Nf3$_djvz`41j9{?b)*umpqR-RQs5c1yagYE^Dc$_m`mlH5|ZG&Yb7GdCr>WoO#Ze=X`n2mgih~&XngodCrpO9C^-==lpoi zj_2HX&dlSyJkHAFoIK9R<9s~M#^YRg&V=VYc+P_79C*%v=lplhe&^hG&V1**cg}j} zoOjN6=X`h0cIRAo&UEJtIL?2wknC&Dz2?ko&b#KUYtFgmjBDQc^^ULid%e%=U0!Ed zbB;Aq?XHRqP zG-popZmaiNz0>M_R`0TUkCh!(@pAqOXRmOMG-pV2el%xCb8a+eMsr>?XGL>PG-pKf z9;mZaI2W2Tp*atlv!FQ#nlqp||CzI&Iro_}pE>WDGa~MiJyT`RRM~TvY`9A{T&DSg zXA9RQ>2*nZU6Njxq}OGyU9#6M*=v{VwM+KeC423Xy>@9d@3Fi`@*c-~6z?&-NAMoM zUzar3CCzn7b6wJ0mo(QU&2>q0UD8~aG}k4~bxCtwl3bVFQf0SPJ%hY@s8Kzo&P3%rRL(->98}Ig<@{65 zKIPm~&OGJ3Q_ec&oKwy?<$P1lHsxGX&NSsbQ_eEw98=CP<@{1V(0A|X!wPpyLm!5*ON0nInNV0ign!?o}8W7*_|?EH)nQo zUMFXDa!#jg{p)PR&gSG?PR``yJWkHyYb0p5%g1C#SFIs1}xFFEs)^Da5-l5;LO<{0^C~&3l5;9KqmuI}Ih&GmDLIpp^C-P19?qfU3`)+QxVRr1@8+@e|VcHECS=2lR11Bxgf% zE+l6{>ek{lY4KW*7N<&!Q>DRc(x6YgScBK3!9&vEA!+cCGAuXMdmb8bfk8>KG*2npboXyC&jGW2Hd5oOJ$T^HI>EqlQ&R*o) zMK`sf=v>vKTN{qfy(VpF=A%z{7EdAv|M^hA)GCTTN&3ZQ{X#3R`uJ45bDB3w zM~%{v#~&VhG)mS+$=WDc8zpO_WNnnJ9#1q%)<((NC|MgNYolcK_@PlV9p??`t&uYZ z_^i86y8E2FGX?mJyHB|Le7jG#`)s>Uw)tk(@Q?PU&-zuc-{Zq=Pzb>~*yxm9y$ zM|V25(~+Hy>vUA7V>%tt>3B{@b2^sOk(`d>bQGs!I5(>ejn=O>irZ+lqtT-BtoY`O zlCt;fy5kldwbDi;|Lu^=omsr5ITO)(Swd1bmXAp1|2o%m_bJjI$qGx zf(`my(#LUvjuLc?pd$pk$Hv+T)_0B!bX=gL0v!|Rh(N~!IvUWifQ|%o9N<{_t=HXt zEZ^bBla9MsugqqH2OwNP4FCQXc#Pp*_UMoJsY)S|rtxlDfe>2bPuB)lKtQ?foI>zxQ^ znsA;8XPL;;#~CKPgY5ld?;d;a*gMDGH}zjuedH|+Nv9nt5g zKF9R&dyf2;Bj<`ZsgLtSI7`GCea`CR{1DC#;oK0;4B@;G&I;i7XW!5`~-Z%8Fq4x~E3*h}i?-qKm z&^v|RC-g3%_Xxe}?=^q#4tj6UJA>XA^h&?i`Mt{THGb~~dVSxk`(E4k%D(piy#wg| zKkxo|?=M|7T`Bu{=X0fMyHa-4dq?!~8opP+yKDIh-rTdsW`C7G9C>UJLqz){+XI`{T`8aRPgO@3kba eA9b%K4d>qktz-7r3SENM5dX9AQC$rMkNkg8Tis3o literal 0 HcmV?d00001 diff --git a/docs/api/2.12/lib/lato-v11-latin-regular.woff b/docs/api/2.12/lib/lato-v11-latin-regular.woff new file mode 100644 index 0000000000000000000000000000000000000000..49e604471f4acaae02c5efc754ba331170fd9bae GIT binary patch literal 35700 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + O + + + + + + + diff --git a/docs/api/2.12/lib/object_comp.svg b/docs/api/2.12/lib/object_comp.svg new file mode 100644 index 0000000..0434243 --- /dev/null +++ b/docs/api/2.12/lib/object_comp.svg @@ -0,0 +1,57 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + O + + + + + + + + diff --git a/docs/api/2.12/lib/object_comp_trait.svg b/docs/api/2.12/lib/object_comp_trait.svg new file mode 100644 index 0000000..56eccd0 --- /dev/null +++ b/docs/api/2.12/lib/object_comp_trait.svg @@ -0,0 +1,57 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + O + + + + + + + + diff --git a/docs/api/2.12/lib/object_diagram.png b/docs/api/2.12/lib/object_diagram.png new file mode 100644 index 0000000000000000000000000000000000000000..6e9f2f743f67c15e04846f14819a913713b216e4 GIT binary patch literal 3903 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 N002ovPDHLkV1kt{Q<4Ax literal 0 HcmV?d00001 diff --git a/docs/api/2.12/lib/open-sans-v13-latin-regular.eot b/docs/api/2.12/lib/open-sans-v13-latin-regular.eot new file mode 100644 index 0000000000000000000000000000000000000000..1d98e6eab00e5a998373fa7a28468406072d6d3d GIT binary patch literal 18233 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 literal 0 HcmV?d00001 diff --git a/docs/api/2.12/lib/open-sans-v13-latin-regular.woff b/docs/api/2.12/lib/open-sans-v13-latin-regular.woff new file mode 100644 index 0000000000000000000000000000000000000000..e096d04f82aaa1efa56f7d38cbc977357ab90bc9 GIT binary patch literal 20248 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

              "); + types = $("> .types > ol", inheritParent); + } + var clone = mbr.clone(); + clone[0].mbrText = this.mbrText; + types.append(clone); + } + var group = mbr.attr("group") + var groupParent = groupParents[group]; + if (groupParent != undefined) { + var types = $("> .types > ol", groupParent); + if (types.length == 0) { + groupParent.append("
                "); + types = $("> .types > ol", groupParent); + } + var clone = mbr.clone(); + clone[0].mbrText = this.mbrText; + types.append(clone); + } + }); + + $(".values > ol > li").each(function(){ + var mbr = $(this); + this.mbrText = mbr.find("> .fullcomment .cmt").text(); + var qualName = mbr.attr("name"); + var owner = qualName.slice(0, qualName.indexOf("#")); + var name = qualName.slice(qualName.indexOf("#") + 1); + var inheritParent = inheritParents[owner]; + if (inheritParent != undefined) { + var values = $("> .values > ol", inheritParent); + if (values.length == 0) { + inheritParent.append("

                Value Members

                  "); + values = $("> .values > ol", inheritParent); + } + var clone = mbr.clone(); + clone[0].mbrText = this.mbrText; + values.append(clone); + } + var group = mbr.attr("group") + var groupParent = groupParents[group]; + if (groupParent != undefined) { + var values = $("> .values > ol", groupParent); + if (values.length == 0) { + groupParent.append("
                    "); + values = $("> .values > ol", groupParent); + } + var clone = mbr.clone(); + clone[0].mbrText = this.mbrText; + values.append(clone); + } + }); + $("#inheritedMembers > div.parent").each(function() { + if ($("> div.members", this).length == 0) { $(this).remove(); }; + }); + $("#inheritedMembers > div.conversion").each(function() { + if ($("> div.members", this).length == 0) { $(this).remove(); }; + }); + $("#groupedMembers > div.group").each(function() { + if ($("> div.members", this).length == 0) { $(this).remove(); }; + }); +}; + +/* filter used to take boolean scrollToMember */ +function filter() { + var query = $.trim($("#memberfilter input").val()).toLowerCase(); + query = query.replace(/[-[\]{}()*+?.,\\^$|#]/g, "\\$&").replace(/\s+/g, "|"); + var queryRegExp = new RegExp(query, "i"); + var privateMembersHidden = $("#visbl > ol > li.public").hasClass("in"); + var orderingAlphabetic = $("#order > ol > li.alpha").hasClass("in"); + var orderingInheritance = $("#order > ol > li.inherit").hasClass("in"); + var orderingGroups = $("#order > ol > li.group").hasClass("in"); + var hiddenSuperclassElementsLinearization = orderingInheritance ? $("#linearization > li:gt(0)") : $("#linearization > li.out"); + var hiddenSuperclassesLinearization = hiddenSuperclassElementsLinearization.map(function() { + return $(this).attr("name"); + }).get(); + var hiddenSuperclassElementsImplicits = orderingInheritance ? $("#implicits > li") : $("#implicits > li.out"); + var hiddenSuperclassesImplicits = hiddenSuperclassElementsImplicits.map(function() { + return $(this).attr("name"); + }).get(); + + var hideInheritedMembers; + + if (orderingAlphabetic) { + $("#allMembers").show(); + $("#inheritedMembers").hide(); + $("#groupedMembers").hide(); + hideInheritedMembers = true; + $("#allMembers > .members").each(filterFunc); + } else if (orderingGroups) { + $("#groupedMembers").show(); + $("#inheritedMembers").hide(); + $("#allMembers").hide(); + hideInheritedMembers = true; + $("#groupedMembers > .group > .members").each(filterFunc); + $("#groupedMembers > div.group").each(function() { + $(this).show(); + if ($("> div.members", this).not(":hidden").length == 0) { + $(this).hide(); + } else { + $(this).show(); + } + }); + } else if (orderingInheritance) { + $("#inheritedMembers").show(); + $("#groupedMembers").hide(); + $("#allMembers").hide(); + hideInheritedMembers = false; + $("#inheritedMembers > .parent > .members").each(filterFunc); + $("#inheritedMembers > .conversion > .members").each(filterFunc); + } + + + function filterFunc() { + var membersVisible = false; + var members = $(this); + members.find("> ol > li").each(function() { + var mbr = $(this); + if (privateMembersHidden && mbr.attr("visbl") == "prt") { + mbr.hide(); + return; + } + var name = mbr.attr("name"); + // Owner filtering must not happen in "inherited from" member lists + if (hideInheritedMembers) { + var ownerIndex = name.indexOf("#"); + if (ownerIndex < 0) { + ownerIndex = name.lastIndexOf("."); + } + var owner = name.slice(0, ownerIndex); + for (var i = 0; i < hiddenSuperclassesLinearization.length; i++) { + if (hiddenSuperclassesLinearization[i] == owner) { + mbr.hide(); + return; + } + }; + for (var i = 0; i < hiddenSuperclassesImplicits.length; i++) { + if (hiddenSuperclassesImplicits[i] == owner) { + mbr.hide(); + return; + } + }; + } + if (query && !(queryRegExp.test(name) || queryRegExp.test(this.mbrText))) { + mbr.hide(); + return; + } + mbr.show(); + membersVisible = true; + }); + + if (membersVisible) + members.show(); + else + members.hide(); + }; + + return false; +}; + +/** Check if user agent is associated with a known mobile browser */ +function isMobile() { + return /Android|webOS|Mobi|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent); +} diff --git a/docs/api/2.12/lib/tools.tooltip.js b/docs/api/2.12/lib/tools.tooltip.js new file mode 100644 index 0000000..0af34ec --- /dev/null +++ b/docs/api/2.12/lib/tools.tooltip.js @@ -0,0 +1,14 @@ +/* + * tools.tooltip 1.1.3 - Tooltips done right. + * + * Copyright (c) 2009 Tero Piirainen + * http://flowplayer.org/tools/tooltip.html + * + * Dual licensed under MIT and GPL 2+ licenses + * http://www.opensource.org/licenses + * + * Launch : November 2008 + * Date: ${date} + * Revision: ${revision} + */ +(function(c){var d=[];c.tools=c.tools||{};c.tools.tooltip={version:"1.1.3",conf:{effect:"toggle",fadeOutSpeed:"fast",tip:null,predelay:0,delay:30,opacity:1,lazy:undefined,position:["top","center"],offset:[0,0],cancelDefault:true,relative:false,oneInstance:true,events:{def:"mouseover,mouseout",input:"focus,blur",widget:"focus mouseover,blur mouseout",tooltip:"mouseover,mouseout"},api:false},addEffect:function(e,g,f){b[e]=[g,f]}};var b={toggle:[function(e){var f=this.getConf(),g=this.getTip(),h=f.opacity;if(h<1){g.css({opacity:h})}g.show();e.call()},function(e){this.getTip().hide();e.call()}],fade:[function(e){this.getTip().fadeIn(this.getConf().fadeInSpeed,e)},function(e){this.getTip().fadeOut(this.getConf().fadeOutSpeed,e)}]};function a(f,g){var p=this,k=c(this);f.data("tooltip",p);var l=f.next();if(g.tip){l=c(g.tip);if(l.length>1){l=f.nextAll(g.tip).eq(0);if(!l.length){l=f.parent().nextAll(g.tip).eq(0)}}}function o(u){var t=g.relative?f.position().top:f.offset().top,s=g.relative?f.position().left:f.offset().left,v=g.position[0];t-=l.outerHeight()-g.offset[0];s+=f.outerWidth()+g.offset[1];var q=l.outerHeight()+f.outerHeight();if(v=="center"){t+=q/2}if(v=="bottom"){t+=q}v=g.position[1];var r=l.outerWidth()+f.outerWidth();if(v=="center"){s-=r/2}if(v=="left"){s-=r}return{top:t,left:s}}var i=f.is(":input"),e=i&&f.is(":checkbox, :radio, select, :button"),h=f.attr("type"),n=g.events[h]||g.events[i?(e?"widget":"input"):"def"];n=n.split(/,\s*/);if(n.length!=2){throw"Tooltip: bad events configuration for "+h}f.bind(n[0],function(r){if(g.oneInstance){c.each(d,function(){this.hide()})}var q=l.data("trigger");if(q&&q[0]!=this){l.hide().stop(true,true)}r.target=this;p.show(r);n=g.events.tooltip.split(/,\s*/);l.bind(n[0],function(){p.show(r)});if(n[1]){l.bind(n[1],function(){p.hide(r)})}});f.bind(n[1],function(q){p.hide(q)});if(!c.browser.msie&&!i&&!g.predelay){f.mousemove(function(){if(!p.isShown()){f.triggerHandler("mouseover")}})}if(g.opacity<1){l.css("opacity",g.opacity)}var m=0,j=f.attr("title");if(j&&g.cancelDefault){f.removeAttr("title");f.data("title",j)}c.extend(p,{show:function(r){if(r){f=c(r.target)}clearTimeout(l.data("timer"));if(l.is(":animated")||l.is(":visible")){return p}function q(){l.data("trigger",f);var t=o(r);if(g.tip&&j){l.html(f.data("title"))}r=r||c.Event();r.type="onBeforeShow";k.trigger(r,[t]);if(r.isDefaultPrevented()){return p}t=o(r);l.css({position:"absolute",top:t.top,left:t.left});var s=b[g.effect];if(!s){throw'Nonexistent effect "'+g.effect+'"'}s[0].call(p,function(){r.type="onShow";k.trigger(r)})}if(g.predelay){clearTimeout(m);m=setTimeout(q,g.predelay)}else{q()}return p},hide:function(r){clearTimeout(l.data("timer"));clearTimeout(m);if(!l.is(":visible")){return}function q(){r=r||c.Event();r.type="onBeforeHide";k.trigger(r);if(r.isDefaultPrevented()){return}b[g.effect][1].call(p,function(){r.type="onHide";k.trigger(r)})}if(g.delay&&r){l.data("timer",setTimeout(q,g.delay))}else{q()}return p},isShown:function(){return l.is(":visible, :animated")},getConf:function(){return g},getTip:function(){return l},getTrigger:function(){return f},bind:function(q,r){k.bind(q,r);return p},onHide:function(q){return this.bind("onHide",q)},onBeforeShow:function(q){return this.bind("onBeforeShow",q)},onShow:function(q){return this.bind("onShow",q)},onBeforeHide:function(q){return this.bind("onBeforeHide",q)},unbind:function(q){k.unbind(q);return p}});c.each(g,function(q,r){if(c.isFunction(r)){p.bind(q,r)}})}c.prototype.tooltip=function(e){var f=this.eq(typeof e=="number"?e:0).data("tooltip");if(f){return f}var g=c.extend(true,{},c.tools.tooltip.conf);if(c.isFunction(e)){e={onBeforeShow:e}}else{if(typeof e=="string"){e={tip:e}}}e=c.extend(true,g,e);if(typeof e.position=="string"){e.position=e.position.split(/,?\s/)}if(e.lazy!==false&&(e.lazy===true||this.length>20)){this.one("mouseover",function(h){f=new a(c(this),e);f.show(h);d.push(f)})}else{this.each(function(){f=new a(c(this),e);d.push(f)})}return e.api?f:this}})(jQuery); \ No newline at end of file diff --git a/docs/api/2.12/lib/trait.svg b/docs/api/2.12/lib/trait.svg new file mode 100644 index 0000000..207a89f --- /dev/null +++ b/docs/api/2.12/lib/trait.svg @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + t + + + + + + + diff --git a/docs/api/2.12/lib/trait_comp.svg b/docs/api/2.12/lib/trait_comp.svg new file mode 100644 index 0000000..8c83dec --- /dev/null +++ b/docs/api/2.12/lib/trait_comp.svg @@ -0,0 +1,57 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + t + + + + + + + + diff --git a/docs/api/2.12/lib/trait_diagram.png b/docs/api/2.12/lib/trait_diagram.png new file mode 100644 index 0000000000000000000000000000000000000000..88983254ce3a4295951e4d3af927d50b50a3146d GIT binary patch literal 3882 zcmV+_57qFAP)KLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 zfg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=0000WV@Og>004R=004l4008;_004mL004C`008P>0026e000+nl3&F} z000D4Nklzk_5wY_+hbCCW=adpvAC2oMz4)-Q3GL+j)PU=YH-!Y-}@D*T?JP z|G%#5zW(=LXs!8=D2S)hYp+Fynq$dSB|?aBFfcf;qU2&Y7&rxt%mp&%$mL$WdFz!g zyHD*r^G9FpSjNVc9t^J+(=;i{4YGPsU1Z0)rmq)OmwyP1%?68qO}OMhXZPWcI(t@R zq=&+iQvAVOl<5W2L(uQXb` z{np@~_YWVtzo@tv)9XWed`u`_kbnAd>xy!DtF4Ll=7p$i7FR2zVPJYa zXm1XOPG4vTDrGXAX+3fNw~E|Q2&6X={a_b;L(%E{rGa6#eA3CQ-=0Dsz*V?Pp_Kyd zg4Wy|9t)W;Sx39LN`dR*YR#=!63dxslyMv)u>`q(FCIfqPVKsrID2wpS1BR$L%|`B zVW3@wR?bw>!fQ%|6f-{nf!8$f8WIp_^kj3}Mp+r0Y=)}hf}~tfQ+2VlAdEHDMOhh~ zbPDa*2r)xwnvz5|OFUyCq(Hka%F5zoQe=|}LIy0TEa{bb!NAGZrpA#(Dvj&dIO!Bl zGEQb9hBIsBB^AZ&ZCgd#vU*&lrpS`0bdu=k2rKKW5@m%2-4YmiVe7_@fX|0*TR2u4 zClx0V9pTTv2c`*qrorploa1!I}+_>%t&@TZN)>eP8XWQe~ z#-ii6j)k30;;~X3>^ebYG9qZ4tMy0$rzjlny4 suGZ9+mn7y_SN2ww7XJiXp9}QQ0Gjv{vZ7CM{{R3007*qoM6N<$f&*|T$Lr=we%F*v^CE}IxJ--BM^o`!9R>q2MpO@j3bQT^*1$SrURFCC z2>>oM1k&PKWSh-nWFHq$`FD5iZZP_mU) z32Z{*^D%gSz6vtrXBfhbw5YjYBq1UN%rLG433H~!CL+YN*SaEd?$~D0z}FBwLri;< zlvb$*B`5}i0w$YbV2857P!5yB;|qntIUtwKVYAp=7Kh8=2t_=uh|LDyJ~T2KW=s`n zr1H11$d#C8!f~sJ#mddiW#;mjD3-?JgolSaG`L&_iD20BEVzzfSZqPV3R2i+zz{2r zpcc@fsMDj_xR^#}`lbZ4bwt);d)p?mVJt#tWpS8nM@hp#rSkuwX7dQzhHKz=`TnP{ z4a&2^EDdZ!voQmCaH&C#P*#xygLOEHK`5Fz+(oqs#Zj9HwStoQ0#Kk;ub192qxO9xI4phs&jMDLuu=8ia*d7`^PQtaB8%V%dM-8hnc zWXxx0wa@!*AHI2bF!i_Rsq(Dc+_=BBRdhN%c)_>(jM>>q_pqkTg98IJUyQoI+fvHW+Ky=RaJHK_H8<_+r@L-=`&~A@8@htuCFyo7|Ye*XR%m1bgeEg zFQ4e-O%5~QhcSJ@+e3+4u5h&TQ7=ol(Sy|%)oB~3rR9qStw?S1qbph5q z&KC1Zo}!x;7&ze>Pnnolwm_0_hq|G?I5}umOoG6-og;M~aFwb0gA-m@CB*>;j`-^fFX zREb^}yI;P1`Atbl3E!lcmDl{`I!vRPV6Uv~sjI8I^y}`yW}g)QO8e{-t(G`lzw?&2 vpS!x@6ME$tZpA+Dnp^bdh^L`1X14%ymwB@Ei@#dw_=zcGDrrOPlA?bAm}bg0 literal 0 HcmV?d00001 diff --git a/project/project/target/config-classes/$acacc012d2ccdc72095b$.class b/project/project/target/config-classes/$acacc012d2ccdc72095b$.class new file mode 100644 index 0000000000000000000000000000000000000000..decab0c5930a74c02ded0a76e2cb78dd453ef5d4 GIT binary patch literal 1217 zcma)5e^1j;6g`i@x|S+9l%Fb!6$i??4FM5EkpV6lVlw6bx3-(bu3cU`6Tg*WG7?Sv z0DdUreWjBbA#v&Y`tFZ&?>pzdpTEBS08qj!hH-;i+_DPAl3lVa+gd9X)>rC=0>&_U z%s+C|<9^dTtRFj8q#(smFxw)KyU+}T>-dpfUkWYm@g+O-dOox5b(*dp=EHi#pd1{Q z-&J=FhRN#1^)?tXo0jMLZnVXa$}Jo*q&MTO4h^b?0Spt6L3p;)V3^J=RO#Dv{m2nM z_d>HAdb@rkJ`vQ!#U47<2*cDRdB%p0G_I)_MV3LA5N&RK;7y0}t}|SX^LnN@cwEH| zOfZZDqM4655N;z7tqi6Z)F{{&L8o0QGtB3z=Umnz;rh*ur2kgiGm|*NoWV_vFmDki zHE_mj4|A3ji4WG7qTntuXS5w*krE8~|0uLABDcY7?zqVDoxju zgx!8z1y6}x*{-xI*rW+edSRI9*?WEWb)n!nL$++tyg^C5j!3aLnkD?YVy*dNWBlzZKlDNN1?A2RAlJS z@RD|8w923I9RsJ(zr-7cE4Z2jR484B%${KE1e5e+r@OeFz0<{fHrK^c7sW1CK2yj5 zcId62g=00YRwhe2wlMP3RZU=*X_c_*;wjb^zhYfh?gvmW07zjsjvB%qtyzlSz%y(S N&6nty5IK~(-0a7Sbazfjr5ivMHh@c!CCyj`ph|o5Q)E?IMhB`8KTFfN@X?ZMod^7HY<=hY10do=r zFGddnBc`_jA2eob`OKe(Bw5CEfB-wIgfaww(`eP7>PV1l(CMrQ%iYi=d!&;wQ5qWbhM}*deKlQ z?dHr9ZcLGFrSs1*(YGy0P{#Ew^;0KaK%R#l5l<`fGSjVpaN}Hx6L6+Zn z*TedNF#&W0)<99 zMo-HISx_M-Ll*K`kRg-dorWM~M;=9xnMKRkrEmR!lj_wnO#B7?=ri95s1=4$LJ~g; zc_JH+SwRN`Nbz3-fVdxba7mh%#9#v|{6fS4 F{{f3~j8*^u literal 0 HcmV?d00001 From ac686203a140de49d5246714f7855d263fb62536 Mon Sep 17 00:00:00 2001 From: frne Date: Sat, 11 Feb 2017 22:15:36 +0100 Subject: [PATCH 3/7] IMproved find & filter dsl for vertices --- README.md | 11 ++++-- bin/{sync-apidoc.sh => prepare-release.sh} | 4 +++ .../orientDbScalaDsl/OrientGraphDsl.scala | 34 +++++++++++-------- .../orientDbScalaDsl/OrientGraphDslSpec.scala | 32 +++++++++++++++++ .../acmesoftware/orientDbScalaDsl/Spec.scala | 4 +-- 5 files changed, 66 insertions(+), 19 deletions(-) rename bin/{sync-apidoc.sh => prepare-release.sh} (75%) create mode 100644 src/test/scala/ch/acmesoftware/orientDbScalaDsl/OrientGraphDslSpec.scala diff --git a/README.md b/README.md index 908c486..81fbe09 100644 --- a/README.md +++ b/README.md @@ -85,10 +85,15 @@ val g = new OrientGraphFactory("memory:orientDbScalaDslTest").getNoTx g.dsl addVertex "Person" withProperty "name" -> "Frank" g.dsl addVertex "Customer" withProperty "name" -> "ACME" and "active" -> true -// edit existing -val existing = g.getVerticesOfClass("Customer").asScala.last -existing.dsl withProperty "name" -> "ACME Software Solutions" and "year" -> 2017 +// find & filter +g.dsl findVertices "City" single() +g.dsl findVertices "City" filter "name" -> "Zurich" filter "zip" -> 8000 single() // Option[VertexDsl] +g.dsl findVertices "City" filter "name" -> "Zurich" list() // Iterable[VertexDsl] +g.dsl findVertices "City" filter "name" -> "Zurich" list() take 3 // Iterable[VertexDsl] (first 3) +// edit existing +val existing = g.dsl findVertices "Customer" single() +existing foreach(_ withProperty "name" -> "ACME Software Solutions" and "year" -> 2017) ``` Get Involved diff --git a/bin/sync-apidoc.sh b/bin/prepare-release.sh similarity index 75% rename from bin/sync-apidoc.sh rename to bin/prepare-release.sh index b62bbcd..dd94815 100755 --- a/bin/sync-apidoc.sh +++ b/bin/prepare-release.sh @@ -1,5 +1,9 @@ #!/usr/bin/env bash +# pre release tasks +sbt +test +doc + +# sync documentation rm -rf docs/api mkdir -p docs/api/2.11 mkdir -p docs/api/2.12 diff --git a/src/main/scala/ch/acmesoftware/orientDbScalaDsl/OrientGraphDsl.scala b/src/main/scala/ch/acmesoftware/orientDbScalaDsl/OrientGraphDsl.scala index 0f1b97d..610d073 100644 --- a/src/main/scala/ch/acmesoftware/orientDbScalaDsl/OrientGraphDsl.scala +++ b/src/main/scala/ch/acmesoftware/orientDbScalaDsl/OrientGraphDsl.scala @@ -1,6 +1,9 @@ package ch.acmesoftware.orientDbScalaDsl -import com.tinkerpop.blueprints.impls.orient.{ OrientBaseGraph, OrientGraph } +import com.tinkerpop.blueprints.Vertex +import com.tinkerpop.blueprints.impls.orient.OrientBaseGraph + +import scala.collection.JavaConverters._ /** DSL extension for the `OrientBaseGraph` class * @@ -50,17 +53,14 @@ class OrientGraphDsl(g: OrientBaseGraph) { * * ==Example== * {{{ - * g.findVertices("Person").get + * // single by label + * g.dsl findVertices "City" single * - * g.findVertices("Person") - * .filter("name" -> "Frank") - * .filter("age" -> 28) - * .filter("active" -> true) - * .get + * // single by label and properties + * g.dsl findVertices "City" filter "name" -> "Zurich" filter "zip" -> 8000 single * - * g.findVertices("Person") - * .filter("name" -> "Frank", "age" -> 28, "active" -> true) - * .get + * // list + * g.dsl findVertices "City" filter "name" -> "Zurich" filter "zip" -> 8000 list * }}} * * @param label The label to filter by @@ -68,12 +68,18 @@ class OrientGraphDsl(g: OrientBaseGraph) { */ def findVertices(label: String) = new VerticlesFilterQuery(label) - class VerticlesFilterQuery(label: String, fieldFilters: Seq[(String, AnyRef)] = Nil) { + class VerticlesFilterQuery(label: String, fieldFilters: Seq[(String, Any)] = Nil) { + + def filter(filter: (String, Any)) = new VerticlesFilterQuery(label, fieldFilters :+ filter) - def filter(filter: (String, AnyRef)) = new VerticlesFilterQuery(label, fieldFilters :+ filter) + def filter(filters: Seq[(String, Any)]) = new VerticlesFilterQuery(label, fieldFilters ++ filters) - def filter(filters: Seq[(String, AnyRef)]) = new VerticlesFilterQuery(label, fieldFilters ++ filters) + def single(): Option[VertexDsl] = list().take(1).lastOption - def get() = g.getVertices(label, fieldFilters.toMap.keys.toArray, fieldFilters.toMap.values.toArray) + def list(): Iterable[VertexDsl] = g.getVertices( + label, + fieldFilters.toMap.keys.toArray, + fieldFilters.toMap.values.map(_.asInstanceOf[AnyRef]).toArray + ).asScala.map(_.dsl) } } diff --git a/src/test/scala/ch/acmesoftware/orientDbScalaDsl/OrientGraphDslSpec.scala b/src/test/scala/ch/acmesoftware/orientDbScalaDsl/OrientGraphDslSpec.scala new file mode 100644 index 0000000..4e74c33 --- /dev/null +++ b/src/test/scala/ch/acmesoftware/orientDbScalaDsl/OrientGraphDslSpec.scala @@ -0,0 +1,32 @@ +package ch.acmesoftware.orientDbScalaDsl + +class OrientGraphDslSpec extends Spec { + + "OrientGraphDsl" should "find existing vertices by label" in { + tx(g => { + g.dsl addVertex "City" + }) + + tx(g => { + val res1 = g.dsl findVertices "City" single () + res1.isDefined should equal(true) + + val res2 = g.dsl findVertices "City" list () + res2.size should equal(1) + }) + } + + it should "find existing verticews by label and properties" in { + tx(g => { + g.dsl addVertex "City" withProperty "name" -> "Zurich" and "zip" -> 8000 + }) + + tx(g => { + val res1 = g.dsl findVertices "City" filter "name" -> "Zurich" filter "zip" -> 8000 list () + res1.size should equal(1) + + val res2 = g.dsl findVertices "City" filter "name" -> "Zurich" filter "zip" -> 8000 single () + res2.isDefined should equal(true) + }) + } +} diff --git a/src/test/scala/ch/acmesoftware/orientDbScalaDsl/Spec.scala b/src/test/scala/ch/acmesoftware/orientDbScalaDsl/Spec.scala index 9ecf75b..ead5b1c 100644 --- a/src/test/scala/ch/acmesoftware/orientDbScalaDsl/Spec.scala +++ b/src/test/scala/ch/acmesoftware/orientDbScalaDsl/Spec.scala @@ -3,8 +3,8 @@ package ch.acmesoftware.orientDbScalaDsl import java.util.UUID import com.orientechnologies.orient.core.db.ODatabaseRecordThreadLocal -import com.tinkerpop.blueprints.impls.orient.{OrientGraph, OrientGraphFactory, OrientGraphNoTx} -import org.scalatest.{BeforeAndAfterAll, FlatSpec, Matchers} +import com.tinkerpop.blueprints.impls.orient.{ OrientGraph, OrientGraphFactory, OrientGraphNoTx } +import org.scalatest.{ BeforeAndAfterAll, FlatSpec, Matchers } private[orientDbScalaDsl] trait Spec extends FlatSpec with Matchers with BeforeAndAfterAll { From cd6a9dcd788e526aeb7a7cb5273fab5298d04165 Mon Sep 17 00:00:00 2001 From: frne Date: Sat, 11 Feb 2017 22:16:05 +0100 Subject: [PATCH 4/7] Preparing release --- .../OrientGraphDsl$VerticlesFilterQuery.html | 73 ++++++++++++------- .../orientDbScalaDsl/OrientGraphDsl.html | 15 ++-- docs/api/2.11/index.html | 2 +- .../2.11/index/{index-g.html => index-l.html} | 2 +- docs/api/2.11/index/index-s.html | 17 +++++ .../OrientGraphDsl$VerticlesFilterQuery.html | 66 ++++++++++------- .../orientDbScalaDsl/OrientGraphDsl.html | 15 ++-- version.sbt | 2 +- 8 files changed, 118 insertions(+), 74 deletions(-) rename docs/api/2.11/index/{index-g.html => index-l.html} (95%) create mode 100644 docs/api/2.11/index/index-s.html diff --git a/docs/api/2.11/ch/acmesoftware/orientDbScalaDsl/OrientGraphDsl$VerticlesFilterQuery.html b/docs/api/2.11/ch/acmesoftware/orientDbScalaDsl/OrientGraphDsl$VerticlesFilterQuery.html index efbbfaa..9a38d04 100644 --- a/docs/api/2.11/ch/acmesoftware/orientDbScalaDsl/OrientGraphDsl$VerticlesFilterQuery.html +++ b/docs/api/2.11/ch/acmesoftware/orientDbScalaDsl/OrientGraphDsl$VerticlesFilterQuery.html @@ -89,7 +89,7 @@

                    Instance Constructors

                    1. - +

                      @@ -97,10 +97,10 @@

                      new - VerticlesFilterQuery(label: String, fieldFilters: Seq[(String, AnyRef)] = Nil) + VerticlesFilterQuery(label: String, fieldFilters: Seq[(String, Any)] = Nil)

                      - + Permalink @@ -240,35 +240,35 @@

                      Definition Classes
                      AnyRef → Any

                    2. - - + +

                      def - filter(filters: Seq[(String, AnyRef)]): VerticlesFilterQuery + filter(filters: Seq[(String, Any)]): VerticlesFilterQuery

                      - + Permalink
                    3. - - + +

                      def - filter(filter: (String, AnyRef)): VerticlesFilterQuery + filter(filter: (String, Any)): VerticlesFilterQuery

                      - + Permalink @@ -296,23 +296,6 @@

                      )

                    -
                  1. - - -

                    - - - def - - - get(): Iterable[Vertex] - -

                    - - Permalink - - -
                  2. @@ -364,6 +347,23 @@

                    Definition Classes
                    Any
                    +

                  3. + + +

                    + + + def + + + list(): Iterable[VertexDsl] + +

                    + + Permalink + + +
                  4. @@ -415,6 +415,23 @@

                    Definition Classes
                    AnyRef
                    +

                  5. + + +

                    + + + def + + + single(): Option[VertexDsl] + +

                    + + Permalink + + +
                  6. diff --git a/docs/api/2.11/ch/acmesoftware/orientDbScalaDsl/OrientGraphDsl.html b/docs/api/2.11/ch/acmesoftware/orientDbScalaDsl/OrientGraphDsl.html index 8fff534..b2281c5 100644 --- a/docs/api/2.11/ch/acmesoftware/orientDbScalaDsl/OrientGraphDsl.html +++ b/docs/api/2.11/ch/acmesoftware/orientDbScalaDsl/OrientGraphDsl.html @@ -345,17 +345,14 @@

                    Permalink -

                    Creates a by-label filter query

                    Creates a by-label filter query

                    Example

                    g.findVertices("Person").get
                    +      

                    Creates a by-label filter query

                    Creates a by-label filter query

                    Example

                    // single by label
                    +g.dsl findVertices "City" single
                     
                    -g.findVertices("Person")
                    -.filter("name" -> "Frank")
                    -.filter("age" -> 28)
                    -.filter("active" -> true)
                    -.get
                    +// single by label and properties
                    +g.dsl findVertices "City" filter "name" -> "Zurich" filter  "zip" -> 8000 single
                     
                    -g.findVertices("Person")
                    -.filter("name" -> "Frank", "age" -> 28, "active" -> true)
                    -.get
                    label

                    The label to filter by

                    returns

                    A by-label filter wuery

                    +// list +g.dsl findVertices "City" filter "name" -> "Zurich" filter "zip" -> 8000 list
                    label

                    The label to filter by

                    returns

                    A by-label filter wuery

                  7. diff --git a/docs/api/2.11/index.html b/docs/api/2.11/index.html index 62d994b..4ba4e9b 100644 --- a/docs/api/2.11/index.html +++ b/docs/api/2.11/index.html @@ -25,7 +25,7 @@
                    -
                    #ABCDEFGHIJKLMNOPQRSTUVWXYZdeprecated
                    +
                    #ABCDEFGHIJKLMNOPQRSTUVWXYZdeprecated
                    diff --git a/docs/api/2.11/index/index-g.html b/docs/api/2.11/index/index-l.html similarity index 95% rename from docs/api/2.11/index/index-g.html rename to docs/api/2.11/index/index-l.html index 6322c8c..ec04918 100644 --- a/docs/api/2.11/index/index-g.html +++ b/docs/api/2.11/index/index-l.html @@ -11,7 +11,7 @@
                    -
                    get
                    +
                    list
                    diff --git a/docs/api/2.11/index/index-s.html b/docs/api/2.11/index/index-s.html new file mode 100644 index 0000000..ab8a6f0 --- /dev/null +++ b/docs/api/2.11/index/index-s.html @@ -0,0 +1,17 @@ + + + + + + + + + + + + +
                    +
                    single
                    + +
                    + diff --git a/docs/api/2.12/ch/acmesoftware/orientDbScalaDsl/OrientGraphDsl$VerticlesFilterQuery.html b/docs/api/2.12/ch/acmesoftware/orientDbScalaDsl/OrientGraphDsl$VerticlesFilterQuery.html index 62e103a..c443aea 100644 --- a/docs/api/2.12/ch/acmesoftware/orientDbScalaDsl/OrientGraphDsl$VerticlesFilterQuery.html +++ b/docs/api/2.12/ch/acmesoftware/orientDbScalaDsl/OrientGraphDsl$VerticlesFilterQuery.html @@ -230,9 +230,9 @@

                    Instance Constructors

                    1. - + - + @@ -241,7 +241,7 @@

                      Instance Constructors

                      new - VerticlesFilterQuery(label: String, fieldFilters: Seq[(String, AnyRef)] = Nil) + VerticlesFilterQuery(label: String, fieldFilters: Seq[(String, Any)] = Nil) @@ -374,9 +374,9 @@

                      Value Members

                      Definition Classes
                      AnyRef → Any
                    2. - + - + @@ -385,14 +385,14 @@

                      Value Members

                      def - filter(filters: Seq[(String, AnyRef)]): VerticlesFilterQuery + filter(filters: Seq[(String, Any)]): VerticlesFilterQuery
                    3. - + - + @@ -401,7 +401,7 @@

                      Value Members

                      def - filter(filter: (String, AnyRef)): VerticlesFilterQuery + filter(filter: (String, Any)): VerticlesFilterQuery @@ -427,22 +427,6 @@

                      Value Members

                      )
                    -

                  8. - - - - - - - - - def - - - get(): Iterable[Vertex] - - -
                  9. @@ -491,6 +475,22 @@

                    Value Members

                    Definition Classes
                    Any
                    +
                  10. + + + + + + + + + def + + + list(): Iterable[VertexDsl] + + +
                  11. @@ -539,6 +539,22 @@

                    Value Members

                    Definition Classes
                    AnyRef
                    +
                  12. + + + + + + + + + def + + + single(): Option[VertexDsl] + + +
                  13. diff --git a/docs/api/2.12/ch/acmesoftware/orientDbScalaDsl/OrientGraphDsl.html b/docs/api/2.12/ch/acmesoftware/orientDbScalaDsl/OrientGraphDsl.html index d9054c8..34be62d 100644 --- a/docs/api/2.12/ch/acmesoftware/orientDbScalaDsl/OrientGraphDsl.html +++ b/docs/api/2.12/ch/acmesoftware/orientDbScalaDsl/OrientGraphDsl.html @@ -493,17 +493,14 @@

                    Value Members

                    findVertices(label: String): VerticlesFilterQuery
                    -

                    Creates a by-label filter query

                    Creates a by-label filter query

                    Example

                    g.findVertices("Person").get
                    +      

                    Creates a by-label filter query

                    Creates a by-label filter query

                    Example

                    // single by label
                    +g.dsl findVertices "City" single
                     
                    -g.findVertices("Person")
                    -.filter("name" -> "Frank")
                    -.filter("age" -> 28)
                    -.filter("active" -> true)
                    -.get
                    +// single by label and properties
                    +g.dsl findVertices "City" filter "name" -> "Zurich" filter  "zip" -> 8000 single
                     
                    -g.findVertices("Person")
                    -.filter("name" -> "Frank", "age" -> 28, "active" -> true)
                    -.get
                    label

                    The label to filter by

                    returns

                    A by-label filter wuery

                    +// list +g.dsl findVertices "City" filter "name" -> "Zurich" filter "zip" -> 8000 list
                    label

                    The label to filter by

                    returns

                    A by-label filter wuery

                  14. diff --git a/version.sbt b/version.sbt index 2c9556a..4ecc30e 100644 --- a/version.sbt +++ b/version.sbt @@ -1 +1 @@ -version := "0.2.0-SNAPSHOT" +version := "0.2.0" From 779d291c78d4d2371bc9323d45ca8d1046e41bf5 Mon Sep 17 00:00:00 2001 From: frne Date: Sun, 12 Feb 2017 09:53:15 +0100 Subject: [PATCH 5/7] Further VertexDsl and GraphDsl improvements * get property from vertex (optional) * get mandatory property from vertex (nullable) * get existing vertex type (optional) * renamed DSL types * refactored wrappers * updated readme / examples * scaladoc improvements --- README.md | 8 + ...tml => GraphDsl$VerticlesFilterQuery.html} | 84 +-- .../{OrientGraphDsl.html => GraphDsl.html} | 111 +-- .../orientDbScalaDsl/VertexDsl.html | 58 +- ...ertexTypeDsl$.html => VertexTypeDsl$.html} | 62 +- ...tVertexTypeDsl.html => VertexTypeDsl.html} | 100 +-- .../package$$OrientGraphNoTxWrapper.html | 519 -------------- .../package$$OrientGraphWrapper.html | 16 +- .../package$$OrientVertexTypeWrapper.html | 10 +- .../orientDbScalaDsl/package.html | 87 +-- docs/api/2.11/index.html | 4 +- docs/api/2.11/index.js | 2 +- docs/api/2.11/index/index-a.html | 4 +- docs/api/2.11/index/index-c.html | 2 +- docs/api/2.11/index/index-d.html | 2 +- docs/api/2.11/index/index-f.html | 4 +- docs/api/2.11/index/index-g.html | 20 + docs/api/2.11/index/index-l.html | 2 +- docs/api/2.11/index/index-m.html | 17 + docs/api/2.11/index/index-o.html | 9 - docs/api/2.11/index/index-p.html | 5 +- docs/api/2.11/index/index-s.html | 2 +- docs/api/2.11/index/index-u.html | 2 +- docs/api/2.11/index/index-v.html | 8 +- docs/api/2.11/index/index-w.html | 2 +- ...tml => GraphDsl$VerticlesFilterQuery.html} | 84 +-- .../{OrientGraphDsl.html => GraphDsl.html} | 126 ++-- .../orientDbScalaDsl/VertexDsl$.html | 32 +- .../orientDbScalaDsl/VertexDsl.html | 87 ++- ...ertexTypeDsl$.html => VertexTypeDsl$.html} | 86 ++- ...tVertexTypeDsl.html => VertexTypeDsl.html} | 116 ++- .../acmesoftware/orientDbScalaDsl/index.html | 126 ++-- .../package$$OrientGraphNoTxWrapper.html | 660 ------------------ .../package$$OrientGraphWrapper.html | 46 +- .../package$$OrientVertexTypeWrapper.html | 40 +- .../package$$VertexWrapper.html | 32 +- docs/api/2.12/index.js | 2 +- .../{OrientGraphDsl.scala => GraphDsl.scala} | 18 +- .../orientDbScalaDsl/VertexDsl.scala | 42 +- ...ertexTypeDsl.scala => VertexTypeDsl.scala} | 14 +- .../orientDbScalaDsl/package.scala | 17 +- ...tGraphDslSpec.scala => GraphDslSpec.scala} | 15 +- .../orientDbScalaDsl/VertexDslSpec.scala | 42 +- ...eDslSpec.scala => VertexTypeDslSpec.scala} | 4 +- 44 files changed, 871 insertions(+), 1858 deletions(-) rename docs/api/2.11/ch/acmesoftware/orientDbScalaDsl/{OrientGraphDsl$VerticlesFilterQuery.html => GraphDsl$VerticlesFilterQuery.html} (86%) rename docs/api/2.11/ch/acmesoftware/orientDbScalaDsl/{OrientGraphDsl.html => GraphDsl.html} (83%) rename docs/api/2.11/ch/acmesoftware/orientDbScalaDsl/{OrientVertexTypeDsl$.html => VertexTypeDsl$.html} (89%) rename docs/api/2.11/ch/acmesoftware/orientDbScalaDsl/{OrientVertexTypeDsl.html => VertexTypeDsl.html} (81%) delete mode 100644 docs/api/2.11/ch/acmesoftware/orientDbScalaDsl/package$$OrientGraphNoTxWrapper.html create mode 100644 docs/api/2.11/index/index-g.html create mode 100644 docs/api/2.11/index/index-m.html rename docs/api/2.12/ch/acmesoftware/orientDbScalaDsl/{OrientGraphDsl$VerticlesFilterQuery.html => GraphDsl$VerticlesFilterQuery.html} (83%) rename docs/api/2.12/ch/acmesoftware/orientDbScalaDsl/{OrientGraphDsl.html => GraphDsl.html} (82%) rename docs/api/2.12/ch/acmesoftware/orientDbScalaDsl/{OrientVertexTypeDsl$.html => VertexTypeDsl$.html} (86%) rename docs/api/2.12/ch/acmesoftware/orientDbScalaDsl/{OrientVertexTypeDsl.html => VertexTypeDsl.html} (80%) delete mode 100644 docs/api/2.12/ch/acmesoftware/orientDbScalaDsl/package$$OrientGraphNoTxWrapper.html rename src/main/scala/ch/acmesoftware/orientDbScalaDsl/{OrientGraphDsl.scala => GraphDsl.scala} (84%) rename src/main/scala/ch/acmesoftware/orientDbScalaDsl/{OrientVertexTypeDsl.scala => VertexTypeDsl.scala} (73%) rename src/test/scala/ch/acmesoftware/orientDbScalaDsl/{OrientGraphDslSpec.scala => GraphDslSpec.scala} (67%) rename src/test/scala/ch/acmesoftware/orientDbScalaDsl/{OrientVertexTypeDslSpec.scala => VertexTypeDslSpec.scala} (93%) diff --git a/README.md b/README.md index 81fbe09..160a47b 100644 --- a/README.md +++ b/README.md @@ -84,6 +84,8 @@ val g = new OrientGraphFactory("memory:orientDbScalaDslTest").getNoTx // add vertex g.dsl addVertex "Person" withProperty "name" -> "Frank" g.dsl addVertex "Customer" withProperty "name" -> "ACME" and "active" -> true +g.dsl addVertex "Customer" withProperty "name" -> Some("ACME") and "active" -> None // only "name" is persisted +g.dsl addVertex "Customer" withProperty "name" -> null // ugly, but no exception - don't work with null in Scala ;) // find & filter g.dsl findVertices "City" single() @@ -94,6 +96,12 @@ g.dsl findVertices "City" filter "name" -> "Zurich" list() take 3 // Iterable[Ve // edit existing val existing = g.dsl findVertices "Customer" single() existing foreach(_ withProperty "name" -> "ACME Software Solutions" and "year" -> 2017) + +// get property +val name: Option[String] = existing.flatMap(v => v.property[String]("name")) + +// get mandatory property (nullable) - only use this with schema +val name2: String = existing.map(v => v.mandatoryProperty[String]("name")).orNull ``` Get Involved diff --git a/docs/api/2.11/ch/acmesoftware/orientDbScalaDsl/OrientGraphDsl$VerticlesFilterQuery.html b/docs/api/2.11/ch/acmesoftware/orientDbScalaDsl/GraphDsl$VerticlesFilterQuery.html similarity index 86% rename from docs/api/2.11/ch/acmesoftware/orientDbScalaDsl/OrientGraphDsl$VerticlesFilterQuery.html rename to docs/api/2.11/ch/acmesoftware/orientDbScalaDsl/GraphDsl$VerticlesFilterQuery.html index 9a38d04..df58544 100644 --- a/docs/api/2.11/ch/acmesoftware/orientDbScalaDsl/OrientGraphDsl$VerticlesFilterQuery.html +++ b/docs/api/2.11/ch/acmesoftware/orientDbScalaDsl/GraphDsl$VerticlesFilterQuery.html @@ -1,9 +1,9 @@ - VerticlesFilterQuery - ch.acmesoftware.orientDbScalaDsl.OrientGraphDsl.VerticlesFilterQuery - - + VerticlesFilterQuery - ch.acmesoftware.orientDbScalaDsl.GraphDsl.VerticlesFilterQuery + + @@ -16,7 +16,7 @@ - - - - - - - - -
                    - Class -

                    ch.acmesoftware.orientDbScalaDsl

                    -

                    OrientGraphNoTxWrapper

                    Related Doc: - package orientDbScalaDsl -

                    - - Permalink - - -
                    - -

                    - - implicit - class - - - OrientGraphNoTxWrapper extends AnyRef - -

                    - -

                    Wrapper providing OrientGraphDsl

                    - Linear Supertypes -
                    AnyRef, Any
                    -
                    - - -
                    -
                    -
                    - Ordering -
                      - -
                    1. Alphabetic
                    2. -
                    3. By Inheritance
                    4. -
                    -
                    -
                    - Inherited
                    -
                    -
                      -
                    1. OrientGraphNoTxWrapper
                    2. AnyRef
                    3. Any
                    4. -
                    -
                    - -
                      -
                    1. Hide All
                    2. -
                    3. Show All
                    4. -
                    -
                    -
                    - Visibility -
                    1. Public
                    2. All
                    -
                    -
                    - -
                    -
                    -
                    -

                    Instance Constructors

                    -
                    1. - - -

                      - - - new - - - OrientGraphNoTxWrapper(g: OrientGraphNoTx) - -

                      - - Permalink - - - -
                    -
                    - - - - - -
                    -

                    Value Members

                    -
                    1. - - -

                      - - final - def - - - !=(arg0: Any): Boolean - -

                      - - Permalink - - -
                      Definition Classes
                      AnyRef → Any
                      -
                    2. - - -

                      - - final - def - - - ##(): Int - -

                      - - Permalink - - -
                      Definition Classes
                      AnyRef → Any
                      -
                    3. - - -

                      - - final - def - - - ==(arg0: Any): Boolean - -

                      - - Permalink - - -
                      Definition Classes
                      AnyRef → Any
                      -
                    4. - - -

                      - - final - def - - - asInstanceOf[T0]: T0 - -

                      - - Permalink - - -
                      Definition Classes
                      Any
                      -
                    5. - - -

                      - - - def - - - clone(): AnyRef - -

                      - - Permalink - - -
                      Attributes
                      protected[java.lang]
                      Definition Classes
                      AnyRef
                      Annotations
                      - @throws( - - ... - ) - -
                      -
                    6. - - -

                      - - - def - - - dsl: OrientGraphDsl - -

                      - - Permalink - - - -
                    7. - - -

                      - - final - def - - - eq(arg0: AnyRef): Boolean - -

                      - - Permalink - - -
                      Definition Classes
                      AnyRef
                      -
                    8. - - -

                      - - - def - - - equals(arg0: Any): Boolean - -

                      - - Permalink - - -
                      Definition Classes
                      AnyRef → Any
                      -
                    9. - - -

                      - - - def - - - finalize(): Unit - -

                      - - Permalink - - -
                      Attributes
                      protected[java.lang]
                      Definition Classes
                      AnyRef
                      Annotations
                      - @throws( - - classOf[java.lang.Throwable] - ) - -
                      -
                    10. - - -

                      - - final - def - - - getClass(): Class[_] - -

                      - - Permalink - - -
                      Definition Classes
                      AnyRef → Any
                      -
                    11. - - -

                      - - - def - - - hashCode(): Int - -

                      - - Permalink - - -
                      Definition Classes
                      AnyRef → Any
                      -
                    12. - - -

                      - - final - def - - - isInstanceOf[T0]: Boolean - -

                      - - Permalink - - -
                      Definition Classes
                      Any
                      -
                    13. - - -

                      - - final - def - - - ne(arg0: AnyRef): Boolean - -

                      - - Permalink - - -
                      Definition Classes
                      AnyRef
                      -
                    14. - - -

                      - - final - def - - - notify(): Unit - -

                      - - Permalink - - -
                      Definition Classes
                      AnyRef
                      -
                    15. - - -

                      - - final - def - - - notifyAll(): Unit - -

                      - - Permalink - - -
                      Definition Classes
                      AnyRef
                      -
                    16. - - -

                      - - final - def - - - synchronized[T0](arg0: ⇒ T0): T0 - -

                      - - Permalink - - -
                      Definition Classes
                      AnyRef
                      -
                    17. - - -

                      - - - def - - - toString(): String - -

                      - - Permalink - - -
                      Definition Classes
                      AnyRef → Any
                      -
                    18. - - -

                      - - final - def - - - wait(): Unit - -

                      - - Permalink - - -
                      Definition Classes
                      AnyRef
                      Annotations
                      - @throws( - - ... - ) - -
                      -
                    19. - - -

                      - - final - def - - - wait(arg0: Long, arg1: Int): Unit - -

                      - - Permalink - - -
                      Definition Classes
                      AnyRef
                      Annotations
                      - @throws( - - ... - ) - -
                      -
                    20. - - -

                      - - final - def - - - wait(arg0: Long): Unit - -

                      - - Permalink - - -
                      Definition Classes
                      AnyRef
                      Annotations
                      - @throws( - - ... - ) - -
                      -
                    -
                    - - - - -
                    - -
                    -
                    -

                    Inherited from AnyRef

                    -
                    -

                    Inherited from Any

                    -
                    - -
                    - -
                    -
                    -

                    Ungrouped

                    - -
                    -
                    - -
                    - -
                    - - - - - - diff --git a/docs/api/2.11/ch/acmesoftware/orientDbScalaDsl/package$$OrientGraphWrapper.html b/docs/api/2.11/ch/acmesoftware/orientDbScalaDsl/package$$OrientGraphWrapper.html index ce71e2c..5afcd06 100644 --- a/docs/api/2.11/ch/acmesoftware/orientDbScalaDsl/package$$OrientGraphWrapper.html +++ b/docs/api/2.11/ch/acmesoftware/orientDbScalaDsl/package$$OrientGraphWrapper.html @@ -49,7 +49,7 @@

                    -

                    Wrapper providing OrientGraphDsl

                    +

                    Wrapper providing GraphDsl

                    Linear Supertypes
                    AnyRef, Any
                    @@ -89,7 +89,7 @@

                    Instance Constructors

                    1. - +

                      @@ -97,10 +97,10 @@

                      new - OrientGraphWrapper(g: OrientGraph) + OrientGraphWrapper(g: OrientBaseGraph)

                      - + Permalink @@ -206,18 +206,18 @@

                  15. - - + +

                    def - dsl: OrientGraphDsl + dsl: GraphDsl

                    - + Permalink diff --git a/docs/api/2.11/ch/acmesoftware/orientDbScalaDsl/package$$OrientVertexTypeWrapper.html b/docs/api/2.11/ch/acmesoftware/orientDbScalaDsl/package$$OrientVertexTypeWrapper.html index 491d8c0..05a4ff2 100644 --- a/docs/api/2.11/ch/acmesoftware/orientDbScalaDsl/package$$OrientVertexTypeWrapper.html +++ b/docs/api/2.11/ch/acmesoftware/orientDbScalaDsl/package$$OrientVertexTypeWrapper.html @@ -49,7 +49,7 @@

                    -

                    Wrapper providing OrientVertexTypeDsl

                    +

                    Wrapper providing VertexTypeDsl

                    Linear Supertypes
                    AnyRef, Any
                    @@ -206,18 +206,18 @@

                  16. - - + +

                    def - dsl: OrientVertexTypeDsl + dsl: VertexTypeDsl

                    - + Permalink diff --git a/docs/api/2.11/ch/acmesoftware/orientDbScalaDsl/package.html b/docs/api/2.11/ch/acmesoftware/orientDbScalaDsl/package.html index 1b2c621..05b978f 100644 --- a/docs/api/2.11/ch/acmesoftware/orientDbScalaDsl/package.html +++ b/docs/api/2.11/ch/acmesoftware/orientDbScalaDsl/package.html @@ -89,41 +89,24 @@

                    Type Members

                    -
                    1. - - +
                      1. + +

                        class - OrientGraphDsl extends AnyRef + GraphDsl extends AnyRef

                        - + Permalink

                        DSL extension for the OrientBaseGraph class

                        DSL extension for the OrientBaseGraph class

                        See methods for detailed API and examples...

                        -
                      2. - - -

                        - - implicit - class - - - OrientGraphNoTxWrapper extends AnyRef - -

                        - - Permalink - - -

                        Wrapper providing OrientGraphDsl

                      3. @@ -140,25 +123,7 @@

                        Permalink -

                        Wrapper providing OrientGraphDsl

                        -

                      4. - - -

                        - - - class - - - OrientVertexTypeDsl extends AnyRef - -

                        - - Permalink - - -

                        DSL extension for the OrientVertexType class

                        DSL extension for the OrientVertexType class

                        See methods for detailed API and examples... -

                        +

                        Wrapper providing GraphDsl

                      5. @@ -175,7 +140,7 @@

                        Permalink -

                        Wrapper providing OrientVertexTypeDsl

                        +

                        Wrapper providing VertexTypeDsl

                      6. @@ -193,6 +158,24 @@

                        DSL extension for the Element class

                        DSL extension for the Element class

                        See methods for detailed API and examples... +

                        +

                      7. + + +

                        + + + class + + + VertexTypeDsl extends AnyRef + +

                        + + Permalink + + +

                        DSL extension for the OrientVertexType class

                        DSL extension for the OrientVertexType class

                        See methods for detailed API and examples...

                      8. @@ -218,36 +201,36 @@

                        Value Members

                        -
                        1. - - +
                          1. + +

                            object - OrientVertexTypeDsl + VertexDsl

                            - + Permalink -
                          2. - - +
                          3. + +

                            object - VertexDsl + VertexTypeDsl

                            - + Permalink diff --git a/docs/api/2.11/index.html b/docs/api/2.11/index.html index 4ba4e9b..c36fc6d 100644 --- a/docs/api/2.11/index.html +++ b/docs/api/2.11/index.html @@ -25,7 +25,7 @@
                          diff --git a/docs/api/2.11/index.js b/docs/api/2.11/index.js index d6c732c..3af70ae 100644 --- a/docs/api/2.11/index.js +++ b/docs/api/2.11/index.js @@ -1 +1 @@ -Index.PACKAGES = {"ch" : [], "ch.acmesoftware" : [], "ch.acmesoftware.orientDbScalaDsl" : [{"class" : "ch\/acmesoftware\/orientDbScalaDsl\/OrientGraphDsl.html", "name" : "ch.acmesoftware.orientDbScalaDsl.OrientGraphDsl"}, {"class" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientGraphNoTxWrapper.html", "name" : "ch.acmesoftware.orientDbScalaDsl.OrientGraphNoTxWrapper"}, {"class" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientGraphWrapper.html", "name" : "ch.acmesoftware.orientDbScalaDsl.OrientGraphWrapper"}, {"object" : "ch\/acmesoftware\/orientDbScalaDsl\/OrientVertexTypeDsl$.html", "class" : "ch\/acmesoftware\/orientDbScalaDsl\/OrientVertexTypeDsl.html", "name" : "ch.acmesoftware.orientDbScalaDsl.OrientVertexTypeDsl"}, {"class" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientVertexTypeWrapper.html", "name" : "ch.acmesoftware.orientDbScalaDsl.OrientVertexTypeWrapper"}, {"object" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl$.html", "class" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl.html", "name" : "ch.acmesoftware.orientDbScalaDsl.VertexDsl"}, {"class" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$VertexWrapper.html", "name" : "ch.acmesoftware.orientDbScalaDsl.VertexWrapper"}]}; \ No newline at end of file +Index.PACKAGES = {"ch" : [], "ch.acmesoftware" : [], "ch.acmesoftware.orientDbScalaDsl" : [{"class" : "ch\/acmesoftware\/orientDbScalaDsl\/GraphDsl.html", "name" : "ch.acmesoftware.orientDbScalaDsl.GraphDsl"}, {"class" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientGraphWrapper.html", "name" : "ch.acmesoftware.orientDbScalaDsl.OrientGraphWrapper"}, {"class" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientVertexTypeWrapper.html", "name" : "ch.acmesoftware.orientDbScalaDsl.OrientVertexTypeWrapper"}, {"object" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl$.html", "class" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl.html", "name" : "ch.acmesoftware.orientDbScalaDsl.VertexDsl"}, {"object" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexTypeDsl$.html", "class" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexTypeDsl.html", "name" : "ch.acmesoftware.orientDbScalaDsl.VertexTypeDsl"}, {"class" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$VertexWrapper.html", "name" : "ch.acmesoftware.orientDbScalaDsl.VertexWrapper"}]}; \ No newline at end of file diff --git a/docs/api/2.11/index/index-a.html b/docs/api/2.11/index/index-a.html index 14e892b..34a88f1 100644 --- a/docs/api/2.11/index/index-a.html +++ b/docs/api/2.11/index/index-a.html @@ -15,9 +15,9 @@
                        addVertex
                        - +
                        and
                        - +
                        diff --git a/docs/api/2.11/index/index-c.html b/docs/api/2.11/index/index-c.html index 7002d0f..8c41e27 100644 --- a/docs/api/2.11/index/index-c.html +++ b/docs/api/2.11/index/index-c.html @@ -15,6 +15,6 @@

                    createVertexType
                    - +
                    diff --git a/docs/api/2.11/index/index-d.html b/docs/api/2.11/index/index-d.html index 6d5c7bd..06210a3 100644 --- a/docs/api/2.11/index/index-d.html +++ b/docs/api/2.11/index/index-d.html @@ -12,6 +12,6 @@
                    dsl
                    - +
                    diff --git a/docs/api/2.11/index/index-f.html b/docs/api/2.11/index/index-f.html index f6fc7be..0307ed6 100644 --- a/docs/api/2.11/index/index-f.html +++ b/docs/api/2.11/index/index-f.html @@ -12,9 +12,9 @@
                    filter
                    - +
                    findVertices
                    - +
                    diff --git a/docs/api/2.11/index/index-g.html b/docs/api/2.11/index/index-g.html new file mode 100644 index 0000000..4d3e72d --- /dev/null +++ b/docs/api/2.11/index/index-g.html @@ -0,0 +1,20 @@ + + + + + + + + + + + + +
                    +
                    GraphDsl
                    + +
                    +
                    getVertexType
                    + +
                    + diff --git a/docs/api/2.11/index/index-l.html b/docs/api/2.11/index/index-l.html index ec04918..33d2d40 100644 --- a/docs/api/2.11/index/index-l.html +++ b/docs/api/2.11/index/index-l.html @@ -12,6 +12,6 @@
                    list
                    - +
                    diff --git a/docs/api/2.11/index/index-m.html b/docs/api/2.11/index/index-m.html new file mode 100644 index 0000000..c715513 --- /dev/null +++ b/docs/api/2.11/index/index-m.html @@ -0,0 +1,17 @@ + + + + + + + + + + + + +
                    +
                    mandatoryProperty
                    + +
                    + diff --git a/docs/api/2.11/index/index-o.html b/docs/api/2.11/index/index-o.html index 1f3411d..5361384 100644 --- a/docs/api/2.11/index/index-o.html +++ b/docs/api/2.11/index/index-o.html @@ -11,17 +11,8 @@
                    -
                    OrientGraphDsl
                    - -
                    -
                    OrientGraphNoTxWrapper
                    - -
                    OrientGraphWrapper
                    -
                    -
                    OrientVertexTypeDsl
                    -
                    OrientVertexTypeWrapper
                    diff --git a/docs/api/2.11/index/index-p.html b/docs/api/2.11/index/index-p.html index cbbefc4..d91e00b 100644 --- a/docs/api/2.11/index/index-p.html +++ b/docs/api/2.11/index/index-p.html @@ -15,6 +15,9 @@
                    PropertyDefinition
                    - + +
                    +
                    property
                    +
                    diff --git a/docs/api/2.11/index/index-s.html b/docs/api/2.11/index/index-s.html index ab8a6f0..13578e6 100644 --- a/docs/api/2.11/index/index-s.html +++ b/docs/api/2.11/index/index-s.html @@ -12,6 +12,6 @@
                    single
                    - +
                    diff --git a/docs/api/2.11/index/index-u.html b/docs/api/2.11/index/index-u.html index 8673e93..ab0bf8c 100644 --- a/docs/api/2.11/index/index-u.html +++ b/docs/api/2.11/index/index-u.html @@ -12,6 +12,6 @@
                    unique
                    - +
                    diff --git a/docs/api/2.11/index/index-v.html b/docs/api/2.11/index/index-v.html index f8e604e..09826ec 100644 --- a/docs/api/2.11/index/index-v.html +++ b/docs/api/2.11/index/index-v.html @@ -13,11 +13,17 @@
                    VertexDsl
                    +
                    +
                    VertexTypeDsl
                    +
                    VertexWrapper
                    VerticlesFilterQuery
                    - + +
                    +
                    v
                    +
                    diff --git a/docs/api/2.11/index/index-w.html b/docs/api/2.11/index/index-w.html index a9a42e3..44adf9b 100644 --- a/docs/api/2.11/index/index-w.html +++ b/docs/api/2.11/index/index-w.html @@ -12,6 +12,6 @@
                    withProperty
                    - +
                    diff --git a/docs/api/2.12/ch/acmesoftware/orientDbScalaDsl/OrientGraphDsl$VerticlesFilterQuery.html b/docs/api/2.12/ch/acmesoftware/orientDbScalaDsl/GraphDsl$VerticlesFilterQuery.html similarity index 83% rename from docs/api/2.12/ch/acmesoftware/orientDbScalaDsl/OrientGraphDsl$VerticlesFilterQuery.html rename to docs/api/2.12/ch/acmesoftware/orientDbScalaDsl/GraphDsl$VerticlesFilterQuery.html index c443aea..d262178 100644 --- a/docs/api/2.12/ch/acmesoftware/orientDbScalaDsl/OrientGraphDsl$VerticlesFilterQuery.html +++ b/docs/api/2.12/ch/acmesoftware/orientDbScalaDsl/GraphDsl$VerticlesFilterQuery.html @@ -126,10 +126,10 @@

                    Packages

                    Main DSL entry point

                    Main DSL entry point

                    This package provides a set of implicit classes (wrappers) which can be imported

                    Example

                    import ch.acmesoftware.orientDbScalaDsl._

                    The above import statement decorates the OrientDB Java API with a fluid Scala DSL

                    Definition Classes
                    acmesoftware
                    -
                  17. - +
                  18. + - + @@ -138,8 +138,8 @@

                    Packages

                    class - - OrientGraphDsl + + GraphDsl extends AnyRef @@ -159,9 +159,9 @@

                    Packages

                    c
                    -

                    ch.acmesoftware.orientDbScalaDsl.OrientGraphDsl

                    +

                    ch.acmesoftware.orientDbScalaDsl.GraphDsl

                    VerticlesFilterQuery - +

                    @@ -209,7 +209,7 @@

                    Inherited
                      -
                    1. VerticlesFilterQuery
                    2. AnyRef
                    3. Any
                    4. +
                    5. VerticlesFilterQuery
                    6. AnyRef
                    7. Any

                    @@ -229,10 +229,10 @@

                    Instance Constructors

                    -
                    1. - +
                      1. + - + @@ -258,7 +258,7 @@

                        Value Members

                      2. - + @@ -274,7 +274,7 @@

                        Value Members

                      3. - + @@ -290,7 +290,7 @@

                        Value Members

                      4. - + @@ -306,7 +306,7 @@

                        Value Members

                      5. - + @@ -322,7 +322,7 @@

                        Value Members

                      6. - + @@ -344,7 +344,7 @@

                        Value Members

                      7. - + @@ -360,7 +360,7 @@

                        Value Members

                      8. - + @@ -373,10 +373,10 @@

                        Value Members

                        Definition Classes
                        AnyRef → Any
                        -
                      9. - +
                      10. + - + @@ -385,14 +385,14 @@

                        Value Members

                        def - filter(filters: Seq[(String, Any)]): VerticlesFilterQuery + filter(filters: Seq[(String, Any)]): VerticlesFilterQuery -
                      11. - +
                      12. + - + @@ -401,14 +401,14 @@

                        Value Members

                        def - filter(filter: (String, Any)): VerticlesFilterQuery + filter(filter: (String, Any)): VerticlesFilterQuery
                      13. - + @@ -430,7 +430,7 @@

                        Value Members

                      14. - + @@ -446,7 +446,7 @@

                        Value Members

                      15. - + @@ -462,7 +462,7 @@

                        Value Members

                      16. - + @@ -475,10 +475,10 @@

                        Value Members

                        Definition Classes
                        Any
                        -
                      17. +
                      18. - + @@ -494,7 +494,7 @@

                        Value Members

                      19. - + @@ -510,7 +510,7 @@

                        Value Members

                      20. - + @@ -526,7 +526,7 @@

                        Value Members

                      21. - + @@ -539,10 +539,10 @@

                        Value Members

                        Definition Classes
                        AnyRef
                        -
                      22. +
                      23. - + @@ -558,7 +558,7 @@

                        Value Members

                      24. - + @@ -574,7 +574,7 @@

                        Value Members

                      25. - + @@ -590,7 +590,7 @@

                        Value Members

                      26. - + @@ -612,7 +612,7 @@

                        Value Members

                      27. - + @@ -634,7 +634,7 @@

                        Value Members

                      28. - + diff --git a/docs/api/2.12/ch/acmesoftware/orientDbScalaDsl/OrientGraphDsl.html b/docs/api/2.12/ch/acmesoftware/orientDbScalaDsl/GraphDsl.html similarity index 82% rename from docs/api/2.12/ch/acmesoftware/orientDbScalaDsl/OrientGraphDsl.html rename to docs/api/2.12/ch/acmesoftware/orientDbScalaDsl/GraphDsl.html index 34be62d..6c704e4 100644 --- a/docs/api/2.12/ch/acmesoftware/orientDbScalaDsl/OrientGraphDsl.html +++ b/docs/api/2.12/ch/acmesoftware/orientDbScalaDsl/GraphDsl.html @@ -130,30 +130,18 @@

                        Packages

                        - OrientGraphDsl + GraphDsl
                      29. - - - OrientGraphNoTxWrapper - -
                      30. - - - + + OrientGraphWrapper -
                      31. - - - - OrientVertexTypeDsl -
                      32. - - + + OrientVertexTypeWrapper
                      33. @@ -162,6 +150,12 @@

                        Packages

                        VertexDsl +
                      34. + + + + VertexTypeDsl +
                      35. @@ -177,8 +171,8 @@

                        Packages

                        c

                        ch.acmesoftware.orientDbScalaDsl

                        -

                        OrientGraphDsl - +

                        GraphDsl +

                        @@ -191,7 +185,7 @@

                        class - OrientGraphDsl extends AnyRef + GraphDsl extends AnyRef

                        @@ -227,7 +221,7 @@

                        Inherited
                          -
                        1. OrientGraphDsl
                        2. AnyRef
                        3. Any
                        4. +
                        5. GraphDsl
                        6. AnyRef
                        7. Any

                        @@ -247,10 +241,10 @@

                        Instance Constructors

                        -
                        1. - +
                          1. + - + @@ -259,7 +253,7 @@

                            Instance Constructors

                            new - OrientGraphDsl(g: OrientBaseGraph) + GraphDsl(g: OrientBaseGraph)

                            g

                            The original Java instance to wrap

                            @@ -268,10 +262,10 @@

                            Instance Constructors

                            Type Members

                            -
                            1. +
                              1. - + @@ -280,7 +274,7 @@

                                Type Members

                                class - + VerticlesFilterQuery extends AnyRef @@ -297,7 +291,7 @@

                                Value Members

                              2. - + @@ -313,7 +307,7 @@

                                Value Members

                              3. - + @@ -329,7 +323,7 @@

                                Value Members

                              4. - + @@ -342,10 +336,10 @@

                                Value Members

                                Definition Classes
                                AnyRef → Any
                                -
                              5. +
                              6. - + @@ -363,7 +357,7 @@

                                Value Members

                              7. - + @@ -379,7 +373,7 @@

                                Value Members

                              8. - + @@ -398,10 +392,10 @@

                                Value Members

                                )
                            -
                          2. - +
                          3. + - + @@ -410,7 +404,7 @@

                            Value Members

                            def - createVertexType(label: String): OrientVertexTypeDsl + createVertexType(label: String): VertexTypeDsl

                            Creates a new vertex type (sometimes refered to as "class)

                            Creates a new vertex type (sometimes refered to as "class)

                            Example

                            g.dsl createVertexType "SomeLabel"
                            @@ -423,11 +417,11 @@ 

                            Value Members

                            g.dsl createVertexType "City" withProperty "name" -> STRING and "zip" -> INTEGER unique "name" unique "zip" // edit existing vertex type -g.getVertexType("Person").dsl withProperty "age" -> INTEGER
                            label

                            The lable of the vertex type to create

                            returns

                            An OrientVertexTypeDsl instance

                            +g.getVertexType("Person").dsl withProperty "age" -> INTEGER
                        label

                        The lable of the vertex type to create

                        returns

                        An VertexTypeDsl instance

                      36. - + @@ -443,7 +437,7 @@

                        Value Members

                      37. - + @@ -459,7 +453,7 @@

                        Value Members

                      38. - + @@ -478,10 +472,10 @@

                        Value Members

                        )
                    -

                  19. - +
                  20. + - + @@ -490,7 +484,7 @@

                    Value Members

                    def - findVertices(label: String): VerticlesFilterQuery + findVertices(label: String): VerticlesFilterQuery

                    Creates a by-label filter query

                    Creates a by-label filter query

                    Example

                    // single by label
                    @@ -504,7 +498,7 @@ 

                    Value Members

                  21. - + @@ -517,10 +511,26 @@

                    Value Members

                    Definition Classes
                    AnyRef → Any
                    +
                  22. + + + + + + + + + def + + + getVertexType(label: String): Option[VertexTypeDsl] + + +

                    Retrieves existing vertex type if present

                    Retrieves existing vertex type if present

                    Example

                    g.dsl getVertexType "Existing" // Option[VertexTypeDsl]
                  23. - + @@ -536,7 +546,7 @@

                    Value Members

                  24. - + @@ -552,7 +562,7 @@

                    Value Members

                  25. - + @@ -568,7 +578,7 @@

                    Value Members

                  26. - + @@ -584,7 +594,7 @@

                    Value Members

                  27. - + @@ -600,7 +610,7 @@

                    Value Members

                  28. - + @@ -616,7 +626,7 @@

                    Value Members

                  29. - + @@ -632,7 +642,7 @@

                    Value Members

                  30. - + @@ -654,7 +664,7 @@

                    Value Members

                  31. - + @@ -676,7 +686,7 @@

                    Value Members

                  32. - + diff --git a/docs/api/2.12/ch/acmesoftware/orientDbScalaDsl/VertexDsl$.html b/docs/api/2.12/ch/acmesoftware/orientDbScalaDsl/VertexDsl$.html index 3ccd96a..fb8da80 100644 --- a/docs/api/2.12/ch/acmesoftware/orientDbScalaDsl/VertexDsl$.html +++ b/docs/api/2.12/ch/acmesoftware/orientDbScalaDsl/VertexDsl$.html @@ -128,32 +128,20 @@

                    Packages

                  33. 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 literal 0 HcmV?d00001 diff --git a/docs/api/2.12/lib/ownderbg2.gif b/docs/api/2.12/lib/ownderbg2.gif new file mode 100644 index 0000000000000000000000000000000000000000..848dd5963a133dc18b9f055928150dc5e762dde0 GIT binary patch literal 1145 zcmZ?wbhEHbWMq(F*v!D-Kff?yQ@u%!Pt?vPr`9;D%FyV&t)7!JLsnHrA8cd50E+*) zBYXoCToOwXfwYZ%ML}Y6c4~=2Qfhi;o~_dR-TRdkGE;1o!cBb*d<&dYGcrA@ic*8C z{6dnevXd=SlxV%Qmue&kg&dz0$52&wylyQ zNJ0T*r*nQ$s)DJWfo`&anSp|tp`M|!iMhGCj)IYap@F`Ek-njkuA#Y=v5}R5fdUjL z0c|TvNwW%aaf8|g1^l#~=$>Fbx5m+O@q>*W`v>l<2HT7t|lGSUUA&@HaaD@m-- z%_~-hnc$LIoLrPyP?DLSrvNfBF)6>a#8wIDQivCF3*g4)73+b$qnDhYt6z~=pl_&W z0P+${p|3A~rMbCq)x{-2sR;LCHMlsWvLIDID784hv?w_hs9YIjRe_arQEFmIeo;t% zehw@Y12XbU@{2R_3lyA#O%;3-lQZ)`e6V_7Un|eN;*!L?t5X6BYAPL3ueX-RQWVL^UgZccVqW=48iYD#iaVnTdeY)o`iWJGvaXh?8SV1U1$uaCEv zr-!?ntBbRfql3Mjt&O#nrG>efsfn=>FiYv_>S$|eYN)HJswgWdD#**p%1BE|N{EYz ziUvE+||Kg4FF`M Bj3xj8 literal 0 HcmV?d00001 diff --git a/docs/api/2.12/lib/ownerbg.gif b/docs/api/2.12/lib/ownerbg.gif new file mode 100644 index 0000000000000000000000000000000000000000..34a04249ee9edc75662a2539fe7daa04424cbe8d GIT binary patch literal 1118 zcmZ?wbhEHbWMq(FSj50^;>3wdmoDwuvuDGG4L5JzWPkz1|J)J20SYdOC5b@V#=fE; zF*!T6L?J0PJu}Z%>HY5gN(z}Nwo2iqz6QPp&Z!xh9#uuD!Bu`C$yM3OmMKd1b_zBX zRu#Dgxv3?I3Kh9IdBs*0wn~X9`AMl(KsHENUr7P1q$Jx`$q^)>0J76LzbI9~RL?*+ z*}%*|!OT$4(AdP>++0V&$iUD*-@r)U&`8(N+{)O<%D_MY3Y37h6{VzE1-ZCE?E>;_ zl`=|73as??%gf94%8m8%i_-NCEiElUW*8ai0#)c1SLT%@R_NvxE5l51Ni9w;$}A|! z%+FH*nV6WAUs__T1av9H3%LbwWAlpjz~0eI&d=4aNG#Ad)H48i38v837r)ZnT)67u zlAu(Cd$Af^98y`3svneEoL^d$oC;K~46>@g%DE^tu_V7JBtJg~7K#BG`6cQEUIa|mjQ{`r z{qy_R&mZ5vef{$J)5j0*-@SeF`qj%9&!0Vg^7zri2lwyYy>t84%^TORUA=Po(!~qs z&z(JU`qar2$B!L7a`@1}1N-;w-Lrew&K=vgZQZhY)5ZeMTG_V zdAT{+S(zE>X{jm6Nr?&Zaj`McQIQehVWAmo_rKzE=rmCW>q^KY-Co3Z@B`F~;CMqH&FX#K^#)_>%=(Oz40}P&vZD%P=Ep@ zplwAdX;wilZcw{`JX@uVl9B=|ef{$Ca=mh6z5JqdeM3u2OOP2xM!G;1y2X`wC5aWf zdBw^w6I@b@lZ!G7N;32F6hI~>Cgqow*eU^C3h_d20o>TUVm+{T^pf*)^(zt!^bPe4 zKwg3=^!3HBG&dKny0|1L72#g21{a4^7NqJ2r55Lx7A2%-qt%$eX-RQWVL^UgZccVqW=48iYD#iaVnTdeY)o`iWJGva zXh?8SV1U1$uaCEvr-!?ntBbRfql3Mjt&KG>(#*|FO^l6zSxQe=M_Wr%LtRZ(MOjHv zL0(Q)Mp{ZzLR?H#L|8~rfS-?-hntI&gPo0)g_((wfkE*n3%I<{0g<5cg@J|3;H2kk MO(h-&o-PJ!02;c9Qvd(} literal 0 HcmV?d00001 diff --git a/docs/api/2.12/lib/package.svg b/docs/api/2.12/lib/package.svg new file mode 100644 index 0000000..63f581b --- /dev/null +++ b/docs/api/2.12/lib/package.svg @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + p + + + + + + + diff --git a/docs/api/2.12/lib/ref-index.css b/docs/api/2.12/lib/ref-index.css new file mode 100644 index 0000000..7cdcd9d --- /dev/null +++ b/docs/api/2.12/lib/ref-index.css @@ -0,0 +1,56 @@ +/* fonts */ +@font-face { + font-family: 'Source Code Pro'; + font-style: normal; + font-weight: 400; + src: url('source-code-pro-v6-latin-regular.eot'); + src: local('Source Code Pro'), local('SourceCodePro-Regular'), + url('source-code-pro-v6-latin-regular.eot?#iefix') format('embedded-opentype'), + url('source-code-pro-v6-latin-regular.woff') format('woff'), + url('source-code-pro-v6-latin-regular.ttf') format('truetype'); +} +@font-face { + font-family: 'Source Code Pro'; + font-style: normal; + font-weight: 700; + src: url('source-code-pro-v6-latin-700.eot'); + src: local('Source Code Pro Bold'), local('SourceCodePro-Bold'), + url('source-code-pro-v6-latin-700.eot?#iefix') format('embedded-opentype'), + url('source-code-pro-v6-latin-700.woff') format('woff'), + url('source-code-pro-v6-latin-700.ttf') format('truetype'); +} + +body { + font-size: 10pt; + font-family: Arial, sans-serif; +} + +a { + color:#315479; +} + +.letters { + width:100%; + text-align:center; + margin:0.6em; + padding:0.1em; + border-bottom:1px solid gray; +} + +div.entry { + padding: 0.5em; + background-color: #e1e7ed; + border-radius: 0.2em; + color: #103a51; + margin: 0.5em 0; +} + +.name { + font-family: "Source Code Pro"; + font-size: 1.1em; +} + +.occurrences { + margin-left: 1em; + margin-top: 5px; +} diff --git a/docs/api/2.12/lib/scheduler.js b/docs/api/2.12/lib/scheduler.js new file mode 100644 index 0000000..eb396bb --- /dev/null +++ b/docs/api/2.12/lib/scheduler.js @@ -0,0 +1,108 @@ +// © 2010 EPFL/LAMP +// code by Gilles Dubochet, Felix Mulder + +function Scheduler() { + var scheduler = this; + var resolution = 0; + this.timeout = undefined; + this.queues = new Array(0); // an array of work packages indexed by index in the labels table. + this.labels = new Array(0); // an indexed array of labels indexed by priority. This should be short. + + this.label = function(name, priority) { + this.name = name; + this.priority = priority; + } + + this.work = function(fn, self, args) { + this.fn = fn; + this.self = self; + this.args = args; + } + + this.addLabel = function(name, priority) { + var idx = 0; + while (idx < scheduler.queues.length && scheduler.labels[idx].priority <= priority) { idx = idx + 1; } + scheduler.labels.splice(idx, 0, new scheduler.label(name, priority)); + scheduler.queues.splice(idx, 0, new Array(0)); + } + + this.clearLabel = function(name) { + var idx = scheduler.indexOf(name); + if (idx != -1) { + scheduler.labels.splice(idx, 1); + scheduler.queues.splice(idx, 1); + } + } + + this.nextWork = function() { + var fn = undefined; + var idx = 0; + while (idx < scheduler.queues.length && scheduler.queues[idx].length == 0) { idx = idx + 1; } + + if (idx < scheduler.queues.length && scheduler.queues[idx].length > 0) + var fn = scheduler.queues[idx].shift(); + + return fn; + } + + this.add = function(labelName, fn, self, args) { + var doWork = function() { + scheduler.timeout = setTimeout(function() { + var work = scheduler.nextWork(); + if (work != undefined) { + if (work.args == undefined) { work.args = new Array(0); } + work.fn.apply(work.self, work.args); + doWork(); + } + else { + scheduler.timeout = undefined; + } + }, resolution); + } + + var idx = scheduler.indexOf(labelName) + if (idx != -1) { + scheduler.queues[idx].push(new scheduler.work(fn, self, args)); + if (scheduler.timeout == undefined) doWork(); + } else { + throw("queue for add is non-existent"); + } + } + + this.clear = function(labelName) { + scheduler.queues[scheduler.indexOf(labelName)] = new Array(); + } + + this.indexOf = function(label) { + var idx = 0; + while (idx < scheduler.labels.length && scheduler.labels[idx].name != label) + idx++; + + return idx < scheduler.queues.length && scheduler.labels[idx].name == label ? idx : -1; + } + + this.queueEmpty = function(label) { + var idx = scheduler.indexOf(label); + if (idx != -1) + return scheduler.queues[idx].length == 0; + else + throw("queue for label '" + label + "' is non-existent"); + } + + this.scheduleLast = function(label, fn) { + if (scheduler.queueEmpty(label)) { + fn(); + } else { + scheduler.add(label, function() { + scheduler.scheduleLast(label, fn); + }); + } + } + + this.numberOfJobs = function(label) { + var index = scheduler.indexOf(label); + if (index == -1) throw("queue for label '" + label + "' non-existent"); + + return scheduler.queues[index].length; + } +}; diff --git a/docs/api/2.12/lib/source-code-pro-v6-latin-700.eot b/docs/api/2.12/lib/source-code-pro-v6-latin-700.eot new file mode 100644 index 0000000000000000000000000000000000000000..094e578e59a74d11d8847d4db80b3f4a3a34f27d GIT binary patch literal 13750 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 QbqDnH$>DW&)vXx(9~|}?#{d8T literal 0 HcmV?d00001 diff --git a/docs/api/2.12/lib/source-code-pro-v6-latin-700.ttf b/docs/api/2.12/lib/source-code-pro-v6-latin-700.ttf new file mode 100644 index 0000000000000000000000000000000000000000..04159884d6b9476e4c58fc55303907156b2f50b9 GIT binary patch literal 27696 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 literal 0 HcmV?d00001 diff --git a/docs/api/2.12/lib/source-code-pro-v6-latin-700.woff b/docs/api/2.12/lib/source-code-pro-v6-latin-700.woff new file mode 100644 index 0000000000000000000000000000000000000000..6ac8a3b2954cb53d55ae6eaf432cab4f68ce2c3a GIT binary patch literal 15336 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 HWz_yZ2N8|6 literal 0 HcmV?d00001 diff --git a/docs/api/2.12/lib/source-code-pro-v6-latin-regular.ttf b/docs/api/2.12/lib/source-code-pro-v6-latin-regular.ttf new file mode 100644 index 0000000000000000000000000000000000000000..268a2e4322e03d1e37dbdaef2002164cd099bcf6 GIT binary patch literal 27916 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 K8esJIl=(ky4d8 p { + margin-top: 5px; +} + +#types ol li:last-child { + margin-bottom: 5px; +} + +#definition { + position: relative; + display: block; + padding: 5px 0; + padding: 0; + margin: 0.5em; + min-height: 4.72em; +} + +#definition > a > img { + float: left; + padding-right: 6px; + padding-left: 5px; +} + +#definition p + h1 { + margin-top: 3px; +} + +#definition > h1 { + float: left; + color: #103a51; + display: inline-block; + overflow: hidden; + margin-top: 10px; + font-size: 2.0em; +} + +#definition h1 > a { + color: #103a51 !important; + text-decoration: none !important; +} + +#template ol > li > span.permalink > a > i { + transform: rotate(-45deg); +} + +#definition #owner { + color: #103a51; + padding-top: 1.3em; + font-size: 0.8em; + overflow: hidden; +} + +#definition > h3 { + margin-top: 0.85em; + padding: 0; +} + +#definition #owner > a { + color: #103a51; +} + +#definition #owner > a:hover { + text-decoration: none; +} + +#signature { + background-color: #c2d2dc; + min-height: 18px; + font-size: 0.9em; + padding: 8px; + color: #103a51; + border-radius: 0.2em; + margin: 0 0.5rem; +} + +#signature > span.modifier_kind { + display: inline; + float: left; + text-align: left; + width: auto; + position: static; + padding-left: 0; +} + +span.symbol > a { + display: inline-block; +} + +#signature > span.symbol { + text-align: left; + display: inline; + padding-left: 0.7em; +} + +/* Linear super types and known subclasses */ +.hiddenContent { + display: none; +} + +.toggleContainer .toggle { + position: relative; + color: #103a51; + margin-left: 0.3em; + cursor: pointer; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +.toggleContainer .toggle > i { + position: absolute; + left: -1.5em; + top: 0em; + font-size: 1.3em; + transition: 0.1s; +} + +.toggleContainer .toggle.open > i { + transform: rotate(90deg); +} + +.toggleContainer .hiddenContent { + margin-top: 1.5em; +} + +#memberfilter > i.arrow { + position: absolute; + top: 0.45em; + left: -0.9em; + color: #fff; + font-size: 1.3em; + opacity: 0; + transition: 0.1s; + cursor: pointer; +} + +#memberfilter > i.arrow.rotate { + transform: rotate(90deg); +} + +#memberfilter:hover > i.arrow { + opacity: 1; +} + +.big-circle { + box-sizing: content-box; + height: 5.7em; + width: 5.7em; + float: left; + color: transparent; +} + +.big-circle:hover { + background-size: 5.7em; +} + +.big-circle.class { + background: url("class.svg") no-repeat center; +} + +.big-circle.class-companion-object { + background: url("class_comp.svg") no-repeat center; +} + +.big-circle.object-companion-class { + background: url("object_comp.svg") no-repeat center; +} + +.big-circle.trait-companion-object { + background: url("trait_comp.svg") no-repeat center; +} + +.big-circle.object-companion-trait { + background: url("object_comp_trait.svg") no-repeat center; +} + +.big-circle.object { + background: url("object.svg") no-repeat center; +} + +.big-circle.trait { + background: url("trait.svg") no-repeat center; +} + +.big-circle.package { + background: url("package.svg") no-repeat center; +} + +body.abstract.type div.big-circle { + background: url("abstract_type.svg") no-repeat center; +} + +#template { + margin: 0.9em 0.75em 0.75em; + padding-bottom: 0.5em; +} + +#template h3 { + color: #103a51; + height: 2em; + padding: 1em 1em 2em; + font-size: 1.2em; +} + +#order { + margin-top: 1.5em; +} + +h3 { + color: #103a51; + padding: 5px 10px; + font-size: 1em; + font-weight: bold; +} + +dl.attributes > dt { + display: block; + float: left; + font-style: italic; + font-weight: bold; +} + +dl.attributes > dt.implicit { + font-weight: bold; + color: darkgreen; +} + +dl.attributes > dd { + display: block; + padding-left: 10em; + margin-bottom: 5px; + min-height: 15px; +} + +.values ol li:last-child { + margin-bottom: 5px; +} + +#constructors > h3 { + height: 2em; + padding: 1em 1em 2em; + color: #2C475C; +} + +#inheritedMembers > div.parent > h3 { + height: 17px; + font-style: italic; +} + +#inheritedMembers > div.parent > h3 * { + color: white; +} + +#inheritedMembers > div.conversion > h3 { + height: 2em; + padding: 1em; + font-style: italic; + color: #2C475C; +} + +#groupedMembers > div.group > h3 { + color: #2C475C; + height: 2em; + padding: 1em 1em 2em; +} + +/* Member cells */ +div.members > ol { + list-style: none; +} + +div.members > ol > li { + display: table; + width: 100%; + position: relative; + background-color: #fff; + border-radius: 0.2em; + color: #103a51; + padding: 5px 0 5px; + margin-bottom: 0.4em; + min-height: 3.7em; + border-left: 0.25em solid white; + -webkit-box-shadow: 0 0 10px rgba(0,0,0,0.1); + box-shadow: 0 0 10px rgba(0,0,0,0.1); + transition: 0.1s; +} + +div.members > ol >li.selected, +div.members > ol > li:hover { + background-color: #dae7f0; + border-left-color: #dae7f0; +} + +div.members > ol >li[fullComment=yes].selected, +div.members > ol > li[fullComment=yes]:hover { + cursor: pointer; + border-left: 0.25em solid #72D0EB; +} + +div.members > ol > li:last-child { + padding: 5px 0 5px; +} + +/* Member signatures */ + +#tooltip { + background: #EFD5B5; + border: 1px solid gray; + color: black; + display: none; + padding: 5px; + position: absolute; +} + +.signature { + font-family: "Source Code Pro", "Monaco", "Ubuntu Mono Regular", "Lucida Console", monospace; + font-size: 0.8rem; + line-height: 18px; + clear: both; + display: block; +} + +.modifier_kind { + font-family: "Source Code Pro", "Monaco", "Ubuntu Mono Regular", "Lucida Console", monospace; + font-size: 0.8rem; + padding-right: 0.5em; + text-align: right; + display: table-cell; + white-space: nowrap; + width: 16em; +} + +.symbol { + font-family: "Source Code Pro", "Monaco", "Ubuntu Mono Regular", "Lucida Console", monospace; +} + +a > .symbol > .name { + text-decoration: underline; +} + +a:hover > .symbol > .name { + text-decoration: none; +} + +.signature > a { + text-decoration: none; +} + +.signature > .symbol { + display: inline; +} + +.signature .name { + display: inline-block; + font-weight: bold; +} + +span.symbol > span.name { + font-weight: bold; +} + +#types > ol > li > span.symbol > span.result { + display: none; +} + +#types > ol > li > span.symbol > span.result.alias, +#types > ol > li:hover > span.symbol > span.result, +#types > ol > li.open > span.symbol > span.result { + display: inline; +} + +.symbol > .implicit { + display: inline-block; + font-weight: bold; + text-decoration: underline; + color: darkgreen; +} + +.symbol .shadowed { + color: darkseagreen; +} + +.symbol .params > .implicit { + font-style: italic; +} + +.symbol .deprecated { + text-decoration: line-through; +} + +.symbol .params .default { + font-style: italic; +} + +#template .closed { + cursor: pointer; +} + +#template .opened { + cursor: pointer; +} + +i.unfold-arrow { + font-size: 1em; + position: absolute; + top: 0.55em; + left: 0.7em; + transition: 0.1s; +} + +#template .modifier_kind.opened > i.unfold-arrow { + transform: rotate(90deg); +} + +#template .values .name { + font-weight: 600; + color: #315479; +} + +#template .types .name { + font-weight: 600; + color: darkgreen; +} + +.full-signature-usecase h4 span { + font-size: 0.8rem; +} + +.full-signature-usecase > #signature { + padding-top: 0px; + position: relative; + top: 0; +} + +/* Hide unfold arrow where appropriate */ +#template li[fullComment=no] .modifier_kind > i.unfold-arrow, +div#definition > h4#signature > span.modifier_kind > i.unfold-arrow, +.full-signature-usecase > .signature > .closed > i.unfold-arrow, +.full-signature-usecase > .signature > .opened > i.unfold-arrow { + display: none; +} + +#template .full-signature-usecase > .signature > .closed { + background: none; +} + +#template .full-signature-usecase > .signature > .opened { + background: none; +} + +.full-signature-block { + padding: 5px 0 0; + border-top: 1px solid #EBEBEB; + margin-top: 5px; + margin-bottom: 5px; +} + +#definition .morelinks { + text-align: right; + font-family: "Source Code Pro", "Monaco", "Ubuntu Mono Regular", "Lucida Console", monospace; +} + +#definition .morelinks a { + color: #103a51; +} + +#template .members li .permalink { + position: absolute; + left: 0.25em; + top: 0.95em; +} + +#definition .permalink { + display: none; + color: black; +} + +#definition .permalink a { + color: #103a51; + transform: rotate(-45deg); +} + +#definition > h1 > span > a > i { + font-size: 1.4rem; +} + +#template ol > li > span.permalink > a > i { + color: #fff; +} + +#template .members li .permalink, +#definition .permalink a { + display: none; +} + +#template .members li:hover .permalink, +#definition:hover .permalink a { + display: block; +} + +#template .members li .permalink a, +#definition .permalink a { + text-decoration: none; + font-weight: bold; +} + +/* Comments text formatting */ + +.cmt { + color: #103a51; +} + +.cmt p { + margin: 0.7em 0; +} + +.cmt p:first-child { + margin-top: 0; +} + +.cmt p:last-child { + margin-bottom: 0; +} + +.cmt h3, +.cmt h4, +.cmt h5, +.cmt h6 { + margin-bottom: 0.7em; + margin-top: 1.4em; + display: block; + text-align: left; + font-weight: bold; +} + +.cmt pre { + padding: 0.5em; + border: 0px solid #ddd; + background-color: #fff; + margin: 5px 0; + display: block; + font-family: "Source Code Pro", "Monaco", "Ubuntu Mono Regular", "Lucida Console", monospace; + border-radius: 0.2em; + overflow-x: auto; +} + +.cmt pre span.ano { + color: blue; +} + +.cmt pre span.cmt { + color: green; +} + +.cmt pre span.kw { + font-weight: bold; +} + +.cmt pre span.lit { + color: #c71585; +} + +.cmt pre span.num { + color: #1e90ff; /* dodgerblue */ +} + +.cmt pre span.std { + color: #008080; /* teal */ +} + +.cmt ul { + display: block; + list-style: circle; + padding-left: 20px; +} + +.cmt ol { + display: block; + padding-left:20px; +} + +.cmt ol.decimal { + list-style: decimal; +} + +.cmt ol.lowerAlpha { + list-style: lower-alpha; +} + +.cmt ol.upperAlpha { + list-style: upper-alpha; +} + +.cmt ol.lowerRoman { + list-style: lower-roman; +} + +.cmt ol.upperRoman { + list-style: upper-roman; +} + +.cmt li { + display: list-item; +} + +.cmt code { + font-weight: bold; +} + +.cmt a { + font-style: bold; +} + +.cmt em, .cmt i { + font-style: italic; +} + +.cmt strong, .cmt b { + font-weight: bold; +} + +/* Comments structured layout */ + +.group > div.comment { + display: block; + padding: 0 1.2em 1em; + font-family: "Open Sans"; +} + +p.comment { + display: block; + margin-left: 14.7em; + margin-top: 5px; +} + +.shortcomment { + display: block; + margin: 5px 10px; +} + +.shortcomment > span.badge { + display: block; + position: absolute; + right: 0; + top: 0.7em; +} + +div.fullcommenttop { + padding: 1em 0.8em; +} + +div.fullcomment { + margin: 5px 10px; +} + +#template div.fullcommenttop, +#template div.fullcomment { + display:none; + margin: 0.5em 1em 0 0; +} + +#template .shortcomment { + margin: 5px 0 0 0; + padding: 0; + font-family: "Open Sans"; +} + +div.fullcomment .block { + padding: 5px 0 0; + border-top: 2px solid #fff; + margin-top: 5px; + overflow: hidden; + font-family: "Open Sans"; +} + +div.fullcommenttop .block { + position: relative; + padding: 1em; + margin: 0.5em 0; + border-radius: 0.2em; + background-color: #fff; + -webkit-box-shadow: 0 0 10px rgba(0,0,0,0.1); + box-shadow: 0 0 10px rgba(0,0,0,0.1); +} + +div.fullcommenttop .toggleContainer { + border-left: 0 solid #72D0EB; + transition: 0.1s; + cursor: pointer; +} + +div.fullcommenttop .toggleContainer:hover { + border-left: 0.25em solid #72D0EB; +} + +div#comment, +div#mbrsel, +div#template, +div#footer { + font-size: 0.8em; +} + +#comment { + font-family: "Open Sans"; +} + +#comment > dl { + background: transparent; + -webkit-box-shadow: none; + box-shadow: none; +} + +#comment > dl > div > ol { + list-style-type: none; +} + +div.fullcomment div.block ol li p, +div.fullcomment div.block ol li { + display:inline +} + +div.fullcomment .block > h5 { + font-style: italic; + font-weight: normal; + display: inline-block; +} + +div.fullcomment .comment { + font-family: "Open Sans"; + margin: 5px 0 10px; +} + +div.fullcommenttop .comment:last-child, +div.fullcomment .comment:last-child { + margin-bottom: 0; +} + +div.fullcommenttop dl.paramcmts { + margin-bottom: 0.8em; + padding-bottom: 0.8em; +} + +div.fullcommenttop dl.paramcmts > dt, +div.fullcomment dl.paramcmts > dt { + display: block; + float: left; + font-weight: bold; + min-width: 70px; +} + +div.fullcommenttop dl.paramcmts > dd, +div.fullcomment dl.paramcmts > dd { + display: block; + padding-left: 10px; + margin-bottom: 5px; + margin-left: 70px; + min-height: 15px; +} + +/* Members filter tool */ + +#memberfilter { + position: relative; + display: block; + height: 2.7em; + margin-bottom: 5px; + margin-left: 1.5em; +} + +#memberfilter > .input { + display: block; + position: absolute; + top: 0; + left: -1.65em; + right: -0.2em; + transition: 0.2s; +} + +#memberfilter > .input > input { + color: #fff; + width: 100%; + border-radius: 0.2em; + padding: 0.5em; + background: rgba(255, 255, 255, 0.2); + font-family: "Open Sans"; +} + +#memberfilter > .clear { + display: none; + position: absolute; + top: 0.55em; + color: rgba(255, 255, 255, 0.4); + right: 0; + font-size: 1.2em; +} + +#memberfilter > .clear:hover { + color: #fff; + cursor: pointer; +} + +#mbrsel { + display: block; + padding: 1em 1em 0.5em; + margin: 0.8em; + border-radius: 0.2em; + background-color: #364550; + -webkit-box-shadow: 0 0 10px rgba(0,0,0,0.2); + box-shadow: 0 0 10px rgba(0,0,0,0.2); + position: relative; +} + +#mbrsel > div.toggle { + opacity: 0; + position: absolute; + left: 1.85em; + top: 1.75em; + width: 1em; + height: 1em; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + transition: 0.2s; +} + +#mbrsel:hover > div.toggle { + opacity: 1; +} + +#mbrsel:hover #memberfilter > .input { + left: 0.7em; +} + +#mbrsel > div.toggle > i { + cursor: pointer; + position: absolute; + left: 0; + top: 0; + color: #fff; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +#mbrsel > div.toggle.open > i { + transform: rotate(90deg); +} + +#mbrsel > div#filterby { + display: none; +} + +#mbrsel > div#filterby > div { + margin-bottom: 5px; +} + +#mbrsel > div#filterby > div:last-child { + margin-bottom: 0; +} + +#mbrsel > div#filterby > div > span.filtertype { + color: #fff; + padding: 4px; + margin-right: 1em; + float: left; + display: inline-block; + font-weight: bold; + width: 4.5em; +} + +#mbrsel > div#filterby > div > ol { + display: inline-block; +} + +#mbrsel > div#filterby > div > a { + position:relative; + top: -8px; + font-size: 11px; +} + +#mbrsel > div#filterby > div > ol#linearization { + display: table; + margin-left: 70px; +} + +#mbrsel > div#filterby > div > ol#linearization > li.in { + text-decoration: none; + float: left; + margin-right: 5px; + background-position: right 0px; +} + +#mbrsel > div#filterby > div > ol#linearization > li.in > span{ + float: left; +} + +#mbrsel > div#filterby > div > ol#implicits { + display: table; + margin-left: 70px; +} + +#mbrsel > div#filterby > div > ol#implicits > li { + text-decoration: none; + float: left; + margin: 0.4em 0.4em 0.4em 0; +} + +#mbrsel > div#filterby > div > ol#implicits > li.in { + text-decoration: none; + float: left; +} + +#mbrsel > div#filterby > div > ol#implicits > li.in > span{ + float: left; +} + +#mbrsel > div#filterby > div > ol > li { + line-height: 1.5em; + display: inline-block; + cursor: pointer; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +#mbrsel > div#filterby > div > ol > li.in { + text-decoration: none; + float: left; + margin-right: 5px; + + font-size: 0.8em; + -webkit-border-radius: 0.2em; + border-radius: 0.2em; + padding: 5px 15px; + cursor: pointer; + background: #f16665; + border-bottom: 2px solid #d64546; + color: #fff; + font-weight: 700; +} + +#mbrsel > div#filterby > div > ol > li.in > span{ + float: left; +} + +#mbrsel > div#filterby > div > ol > li.out { + text-decoration: none; + float: left; + padding-right: 10px; + margin-right: 5px; + font-size: 0.8em; + -webkit-border-radius: 0.2em; + border-radius: 0.2em; + padding: 5px 15px; + cursor: pointer; + background: #c2d2dc; + border-bottom: 2px solid rgba(0, 0, 0, 0.1); + color: #103a51; + font-weight: 700; +} + +#mbrsel > div#filterby > div > ol > li.out > span{ + float: left; +} + +.badge { + display: inline-block; + padding: 0.3em 1em; + font-size: 0.8em; + font-weight: bold; + color: #ffffff; + white-space: nowrap; + vertical-align: middle; + background-color: #999999; + -webkit-border-radius: 9px; + -moz-border-radius: 9px; + border-radius: 1em; + font-family: "Open Sans"; +} + +.badge-red { + background-color: #b94a48; + margin-right: 0.8em !important; +} + +/* Media query rules for smaller viewport */ +@media only screen /* Large screen with a small window */ +and (max-width: 650px) +, +screen /* HiDPI device like Nexus 5 */ +and (max-device-width: 360px) +and (max-device-height: 640px) +and (-webkit-device-pixel-ratio: 3) +, +screen /* Most mobile devices */ +and (max-device-width: 480px) +and (orientation: portrait) +, +only screen /* iPhone 6 */ +and (max-device-width: 667px) +and (-webkit-device-pixel-ratio: 2) +{ + body, + body > h4#signature { + min-width: 300px; + } + + #template .modifier_kind { + width: 1px; + padding-left: 2.5em; + } + + span.modifier_kind > span.modifier { + display: none; + } + + #definition { + height: 6em; + } + + #definition > h1 { + font-size: 1em; + margin-right: 0.3em; + } + + #definition > h3 { + float: left; + margin: 0.3em 0; + } + + #definition > #owner { + padding-top: 2.6em; + } + + #definition .morelinks { + text-align: left; + font-size: 0.8em; + } + + .big-circle { + margin-top: 0.6em; + } +} + +/* Media query rules specifically for mobile devices */ +@media +screen /* HiDPI device like Nexus 5 */ +and (max-device-width: 360px) +and (max-device-height: 640px) +and (-webkit-device-pixel-ratio: 3) +, +screen /* Most mobile devices */ +and (max-device-width: 480px) +and (orientation: portrait) +, +only screen /* iPhone 6 */ +and (max-device-width: 667px) +and (-webkit-device-pixel-ratio: 2) +{ + #signature { + font-size: 0.7em; + } + + #definition > h1 { + font-size: 1.3em; + } + + #definition .morelinks { + display: none; + } + + #definition #owner { + padding-top: 0.7em; + } + + #signature > span.modifier_kind { + width: auto; + } + + div.fullcomment dl.attributes > dt { + margin: 0.5em 0; + clear: both; + } + + div.fullcomment dl.attributes > dd { + padding-left: 0; + clear: both; + } + + .big-circle { + width: 3em; + height: 3em; + background-size: 3em !important; + margin: 0.5em; + } + + div#template { + margin-bottom: 0.5em; + } + + div#footer { + font-size: 0.5em; + } + + .shortcomment > span.badge { + display: none; + } +} diff --git a/docs/api/2.12/lib/template.js b/docs/api/2.12/lib/template.js new file mode 100644 index 0000000..64177a7 --- /dev/null +++ b/docs/api/2.12/lib/template.js @@ -0,0 +1,548 @@ +// © 2009–2010 EPFL/LAMP +// code by Gilles Dubochet with contributions by Pedro Furlanetto, Marcin Kubala and Felix Mulder + +var $panzoom = undefined; +$(document).ready(function() { + // Add zoom functionality to type inheritance diagram + $panzoom = $(".diagram-container > .diagram").panzoom({ + increment: 0.1, + minScale: 1, + maxScale: 7, + transition: true, + duration: 200, + contain: 'invert', + easing: "ease-in-out", + $zoomIn: $('#diagram-zoom-in'), + $zoomOut: $('#diagram-zoom-out'), + }); + + var oldWidth = $("div#subpackage-spacer").width() + 1 + "px"; + $("div#packages > ul > li.current").click(function() { + $("div#subpackage-spacer").css({ "width": oldWidth }); + $("li.current-entities").toggle(); + }); + + var controls = { + visibility: { + publicOnly: $("#visbl").find("> ol > li.public"), + all: $("#visbl").find("> ol > li.all") + } + }; + + // Escapes special characters and returns a valid jQuery selector + function escapeJquery(str){ + return str.replace(/([;&,\.\+\*\~':"\!\^#$%@\[\]\(\)=<>\|])/g, '\\$1'); + } + + function toggleVisibilityFilter(ctrlToEnable, ctrToDisable) { + if (ctrlToEnable.hasClass("out")) { + ctrlToEnable.removeClass("out").addClass("in"); + ctrToDisable.removeClass("in").addClass("out"); + filter(); + } + } + + controls.visibility.publicOnly.click(function () { + toggleVisibilityFilter(controls.visibility.publicOnly, controls.visibility.all); + }); + + controls.visibility.all.click(function () { + toggleVisibilityFilter(controls.visibility.all, controls.visibility.publicOnly); + }); + + function exposeMember(jqElem) { + var jqElemParent = jqElem.parent(), + parentName = jqElemParent.attr("name"), + ancestorName = /^([^#]*)(#.*)?$/gi.exec(parentName)[1]; + + // switch visibility filter if necessary + if (jqElemParent.attr("visbl") == "prt") { + toggleVisibilityFilter(controls.visibility.all, controls.visibility.publicOnly); + } + + // toggle appropriate ancestor filter buttons + if (ancestorName) { + $("#filterby li.out[name='" + ancestorName + "']").removeClass("out").addClass("in"); + } + + filter(); + jqElemParent.addClass("selected"); + commentToggleFct(jqElemParent); + $("#content-scroll-container").animate({scrollTop: $("#content-scroll-container").scrollTop() + jqElemParent.offset().top - $("#search").height() - 23 }, 1000); + } + + var isHiddenClass = function (name) { + return name == 'scala.Any' || + name == 'scala.AnyRef'; + }; + + var isHidden = function (elem) { + return $(elem).attr("data-hidden") == 'true'; + }; + + $("#linearization li:gt(0)").filter(function(){ + return isHiddenClass($(this).attr("name")); + }).removeClass("in").addClass("out"); + + $("#implicits li").filter(function(){ + return isHidden(this); + }).removeClass("in").addClass("out"); + + $("#memberfilter > i.arrow").click(function() { + $(this).toggleClass("rotate"); + $("#filterby").toggle(); + }); + + // Pre-filter members + filter(); + + // Member filter box + var input = $("#memberfilter input"); + input.bind("keyup", function(event) { + + switch ( event.keyCode ) { + + case 27: // escape key + input.val(""); + filter(true); + break; + + case 38: // up + input.val(""); + filter(false); + window.scrollTo(0, $("body").offset().top); + input.focus(); + break; + + case 33: //page up + input.val(""); + filter(false); + break; + + case 34: //page down + input.val(""); + filter(false); + break; + + default: + window.scrollTo(0, $("#mbrsel").offset().top - 130); + filter(true); + break; + + } + }); + input.focus(function(event) { + input.select(); + }); + $("#memberfilter > .clear").click(function() { + $("#memberfilter input").attr("value", ""); + $(this).hide(); + filter(); + }); + $(document).keydown(function(event) { + if (event.keyCode == 9) { // tab + $("#index-input", window.parent.document).focus(); + input.attr("value", ""); + return false; + } + }); + + $("#linearization li").click(function(){ + if ($(this).hasClass("in")) { + $(this).removeClass("in"); + $(this).addClass("out"); + } else if ($(this).hasClass("out")) { + $(this).removeClass("out"); + $(this).addClass("in"); + } + filter(); + }); + + $("#implicits li").click(function(){ + if ($(this).hasClass("in")) { + $(this).removeClass("in"); + $(this).addClass("out"); + } else if ($(this).hasClass("out")) { + $(this).removeClass("out"); + $(this).addClass("in"); + } + filter(); + }); + + $("#mbrsel > div > div.ancestors > ol > li.hideall").click(function() { + $("#linearization li.in").removeClass("in").addClass("out"); + $("#linearization li:first").removeClass("out").addClass("in"); + $("#implicits li.in").removeClass("in").addClass("out"); + + if ($(this).hasClass("out") && $("#mbrsel > div > div.ancestors > ol > li.showall").hasClass("in")) { + $(this).removeClass("out").addClass("in"); + $("#mbrsel > div > div.ancestors > ol > li.showall").removeClass("in").addClass("out"); + } + + filter(); + }) + $("#mbrsel > div > div.ancestors > ol > li.showall").click(function() { + var filteredLinearization = + $("#linearization li.out").filter(function() { + return ! isHiddenClass($(this).attr("name")); + }); + filteredLinearization.removeClass("out").addClass("in"); + + var filteredImplicits = + $("#implicits li.out").filter(function() { + return ! isHidden(this); + }); + filteredImplicits.removeClass("out").addClass("in"); + + if ($(this).hasClass("out") && $("#mbrsel > div > div.ancestors > ol > li.hideall").hasClass("in")) { + $(this).removeClass("out").addClass("in"); + $("#mbrsel > div > div.ancestors > ol > li.hideall").removeClass("in").addClass("out"); + } + + filter(); + }); + $("#order > ol > li.alpha").click(function() { + if ($(this).hasClass("out")) + orderAlpha(); + }) + $("#order > ol > li.inherit").click(function() { + if ($(this).hasClass("out")) + orderInherit(); + }); + $("#order > ol > li.group").click(function() { + if ($(this).hasClass("out")) + orderGroup(); + }); + $("#groupedMembers").hide(); + + initInherit(); + + // Create tooltips + $(".extype").add(".defval").tooltip({ + tip: "#tooltip", + position: "top center", + predelay: 500, + onBeforeShow: function(ev) { + $(this.getTip()).text(this.getTrigger().attr("name")); + } + }); + + /* Add toggle arrows */ + $("#template li[fullComment=yes] .modifier_kind").addClass("closed"); + + function commentToggleFct(element){ + $("#template li.selected").removeClass("selected"); + element.toggleClass("open"); + var signature = element.find(".modifier_kind") + var shortComment = element.find(".shortcomment"); + var fullComment = element.find(".fullcomment"); + var vis = $(":visible", fullComment); + signature.toggleClass("closed").toggleClass("opened"); + if (vis.length > 0) { + if (!isMobile()) { + shortComment.slideDown(100); + fullComment.slideUp(100); + } else { + fullComment.hide(); + shortComment.show(); + } + } + else { + if (!isMobile()) { + shortComment.slideUp(100); + fullComment.slideDown(100); + } else { + shortComment.hide(); + fullComment.show(); + } + } + }; + + $("#template li[fullComment=yes]").click(function() { + commentToggleFct($(this)); + }); + + /* Linear super types and known subclasses */ + function toggleShowContentFct(e){ + e.toggleClass("open"); + var content = $(".hiddenContent", e); + if(content.is(':visible')) { + if (!isMobile()) content.slideUp(100); + else content.hide(); + } else { + if (!isMobile()) content.slideDown(100); + else content.show(); + } + }; + + $(".toggleContainer:not(.diagram-container):not(.full-signature-block)").click(function() { + toggleShowContentFct($(this)); + }); + + $(".toggleContainer.full-signature-block").click(function() { + toggleShowContentFct($(this)); + return false; + }); + + if ($("#order > ol > li.group").length == 1) { orderGroup(); }; + + function findElementByHash(locationHash) { + var temp = locationHash.replace('#', ''); + var memberSelector = '#' + escapeJquery(temp); + return $(memberSelector); + } + + // highlight and jump to selected member if an anchor is provided + if (window.location.hash) { + var jqElem = findElementByHash(window.location.hash); + if (jqElem.length > 0) + exposeMember(jqElem); + } + + $("#template span.permalink").click(function(e) { + e.preventDefault(); + var href = $("a", this).attr("href"); + if (href.indexOf("#") != -1) { + var hash = href.split("#").pop() + try { + window.history.pushState({}, "", "#" + hash) + } catch (e) { + // fallback for file:// URLs, has worse scrolling behavior + location.hash = hash; + } + exposeMember(findElementByHash(hash)) + } + return false; + }); + + $("#mbrsel-input").on("input", function() { + if ($(this).val().length > 0) + $("#memberfilter > .clear").show(); + else + $("#memberfilter > .clear").hide(); + }); +}); + +function orderAlpha() { + $("#order > ol > li.alpha").removeClass("out").addClass("in"); + $("#order > ol > li.inherit").removeClass("in").addClass("out"); + $("#order > ol > li.group").removeClass("in").addClass("out"); + $("#template > div.parent").hide(); + $("#template > div.conversion").hide(); + $("#mbrsel > div.ancestors").show(); + filter(); +}; + +function orderInherit() { + $("#order > ol > li.inherit").removeClass("out").addClass("in"); + $("#order > ol > li.alpha").removeClass("in").addClass("out"); + $("#order > ol > li.group").removeClass("in").addClass("out"); + $("#template > div.parent").show(); + $("#template > div.conversion").show(); + $("#mbrsel > div.ancestors").hide(); + filter(); +}; + +function orderGroup() { + $("#order > ol > li.group").removeClass("out").addClass("in"); + $("#order > ol > li.alpha").removeClass("in").addClass("out"); + $("#order > ol > li.inherit").removeClass("in").addClass("out"); + $("#template > div.parent").hide(); + $("#template > div.conversion").hide(); + $("#mbrsel > div.ancestors").show(); + filter(); +}; + +/** Prepares the DOM for inheritance-based display. To do so it will: + * - hide all statically-generated parents headings; + * - copy all members from the value and type members lists (flat members) to corresponding lists nested below the + * parent headings (inheritance-grouped members); + * - initialises a control variable used by the filter method to control whether filtering happens on flat members + * or on inheritance-grouped members. */ +function initInherit() { + // inheritParents is a map from fully-qualified names to the DOM node of parent headings. + var inheritParents = new Object(); + var groupParents = new Object(); + $("#inheritedMembers > div.parent").each(function(){ + inheritParents[$(this).attr("name")] = $(this); + }); + $("#inheritedMembers > div.conversion").each(function(){ + inheritParents[$(this).attr("name")] = $(this); + }); + $("#groupedMembers > div.group").each(function(){ + groupParents[$(this).attr("name")] = $(this); + }); + + $("#types > ol > li").each(function(){ + var mbr = $(this); + this.mbrText = mbr.find("> .fullcomment .cmt").text(); + var qualName = mbr.attr("name"); + var owner = qualName.slice(0, qualName.indexOf("#")); + var name = qualName.slice(qualName.indexOf("#") + 1); + var inheritParent = inheritParents[owner]; + if (inheritParent != undefined) { + var types = $("> .types > ol", inheritParent); + if (types.length == 0) { + inheritParent.append("

                    Definition Classes
                    acmesoftware
                  34. - - - OrientGraphDsl + + + GraphDsl
                  35. - - - OrientGraphNoTxWrapper - -
                  36. - - - + + OrientGraphWrapper -
                  37. - - - - OrientVertexTypeDsl -
                  38. - - + + OrientVertexTypeWrapper
                  39. @@ -162,6 +150,12 @@

                    Packages

                    VertexDsl +
                  40. + + + + VertexTypeDsl +
                  41. diff --git a/docs/api/2.12/ch/acmesoftware/orientDbScalaDsl/VertexDsl.html b/docs/api/2.12/ch/acmesoftware/orientDbScalaDsl/VertexDsl.html index 8efddee..477040e 100644 --- a/docs/api/2.12/ch/acmesoftware/orientDbScalaDsl/VertexDsl.html +++ b/docs/api/2.12/ch/acmesoftware/orientDbScalaDsl/VertexDsl.html @@ -128,32 +128,20 @@

                    Packages

                    Definition Classes
                    acmesoftware
                  42. - - - OrientGraphDsl + + + GraphDsl
                  43. - - - OrientGraphNoTxWrapper - -
                  44. - - - + + OrientGraphWrapper -
                  45. - - - - OrientVertexTypeDsl -
                  46. - - + + OrientVertexTypeWrapper
                  47. @@ -162,6 +150,12 @@

                    Packages

                    VertexDsl +
                  48. + + + + VertexTypeDsl +
                  49. @@ -479,6 +473,24 @@

                    Value Members

                    Definition Classes
                    Any
                    +
                  50. + + + + + + + + + def + + + mandatoryProperty[T](name: String): T + + +

                    Gets a mandatory property of a vertex

                    Gets a mandatory property of a vertex

                    Returns a property if it exists or not. This method can be used to retrieve properties baked in the schema, so + it must be present. The result is not wrapped in an Option[T], so if the property does not exist on the database + result will be null.

                    Example

                    existing.dsl.mandatoryProperty[String]("name") // String
                    T

                    Property type

                    name

                    The filed name of the property

                  51. @@ -527,6 +539,22 @@

                    Value Members

                    Definition Classes
                    AnyRef
                    +
                  52. + + + + + + + + + def + + + property[T](name: String): Option[T] + + +

                    Gets a property of a vertex

                    Gets a property of a vertex

                    Example

                    existing.dsl.property[String]("name") // Option[String]
                    T

                    Property type

                    name

                    The filed name of the property

                  53. @@ -559,6 +587,22 @@

                    Value Members

                    Definition Classes
                    AnyRef → Any
                    +
                  54. + + + + + + + + + val + + + v: Element + + +
                  55. @@ -640,7 +684,10 @@

                    Value Members

                    withProperty(prop: Property): VertexDsl
                    -

                    Adds a property to existing vertex

                    Adds a property to existing vertex

                    Example

                    existing.dsl withProperty "name" -> "ACME Software Solutions" and "year" -> 2017
                    prop

                    The property to set

                    +

                    Adds a property to existing vertex

                    Adds a property to existing vertex

                    Example

                    existing.dsl withProperty "name" -> "ACME Software Solutions" and "year" -> 2017
                    +existing.dsl withProperty "name" -> Some("foo") // will be persisted
                    +existing.dsl withProperty "name" -> None // nothing will happen
                    +existing.dsl withProperty "name" -> null // nothing will happen
                    prop

                    The property to set

                  56. diff --git a/docs/api/2.12/ch/acmesoftware/orientDbScalaDsl/OrientVertexTypeDsl$.html b/docs/api/2.12/ch/acmesoftware/orientDbScalaDsl/VertexTypeDsl$.html similarity index 86% rename from docs/api/2.12/ch/acmesoftware/orientDbScalaDsl/OrientVertexTypeDsl$.html rename to docs/api/2.12/ch/acmesoftware/orientDbScalaDsl/VertexTypeDsl$.html index 11f1ac4..4396e61 100644 --- a/docs/api/2.12/ch/acmesoftware/orientDbScalaDsl/OrientVertexTypeDsl$.html +++ b/docs/api/2.12/ch/acmesoftware/orientDbScalaDsl/VertexTypeDsl$.html @@ -128,32 +128,20 @@

                    Packages

                    Definition Classes
                    acmesoftware
                  57. - - - OrientGraphDsl + + + GraphDsl
                  58. - - - OrientGraphNoTxWrapper - -
                  59. - - - + + OrientGraphWrapper -
                  60. - - - - OrientVertexTypeDsl -
                  61. - - + + OrientVertexTypeWrapper
                  62. @@ -162,6 +150,12 @@

                    Packages

                    VertexDsl +
                  63. + + + + VertexTypeDsl +
                  64. @@ -175,15 +169,15 @@

                    Packages

                    @@ -193,7 +187,7 @@

                    object - OrientVertexTypeDsl + VertexTypeDsl

                    @@ -228,7 +222,7 @@

                    Inherited
                      -
                    1. OrientVertexTypeDsl
                    2. AnyRef
                    3. Any
                    4. +
                    5. VertexTypeDsl
                    6. AnyRef
                    7. Any

                    @@ -250,10 +244,10 @@

                    Type Members

                    -
                    1. +
                      1. - + @@ -277,7 +271,7 @@

                        Value Members

                      2. - + @@ -293,7 +287,7 @@

                        Value Members

                      3. - + @@ -309,7 +303,7 @@

                        Value Members

                      4. - + @@ -325,7 +319,7 @@

                        Value Members

                      5. - + @@ -341,7 +335,7 @@

                        Value Members

                      6. - + @@ -363,7 +357,7 @@

                        Value Members

                      7. - + @@ -379,7 +373,7 @@

                        Value Members

                      8. - + @@ -395,7 +389,7 @@

                        Value Members

                      9. - + @@ -417,7 +411,7 @@

                        Value Members

                      10. - + @@ -433,7 +427,7 @@

                        Value Members

                      11. - + @@ -449,7 +443,7 @@

                        Value Members

                      12. - + @@ -465,7 +459,7 @@

                        Value Members

                      13. - + @@ -481,7 +475,7 @@

                        Value Members

                      14. - + @@ -497,7 +491,7 @@

                        Value Members

                      15. - + @@ -513,7 +507,7 @@

                        Value Members

                      16. - + @@ -529,7 +523,7 @@

                        Value Members

                      17. - + @@ -545,7 +539,7 @@

                        Value Members

                      18. - + @@ -567,7 +561,7 @@

                        Value Members

                      19. - + @@ -589,7 +583,7 @@

                        Value Members

                      20. - + diff --git a/docs/api/2.12/ch/acmesoftware/orientDbScalaDsl/OrientVertexTypeDsl.html b/docs/api/2.12/ch/acmesoftware/orientDbScalaDsl/VertexTypeDsl.html similarity index 80% rename from docs/api/2.12/ch/acmesoftware/orientDbScalaDsl/OrientVertexTypeDsl.html rename to docs/api/2.12/ch/acmesoftware/orientDbScalaDsl/VertexTypeDsl.html index 31581c1..aa89c11 100644 --- a/docs/api/2.12/ch/acmesoftware/orientDbScalaDsl/OrientVertexTypeDsl.html +++ b/docs/api/2.12/ch/acmesoftware/orientDbScalaDsl/VertexTypeDsl.html @@ -128,32 +128,20 @@

                        Packages

                    Definition Classes
                    acmesoftware

                  65. - - - OrientGraphDsl + + + GraphDsl
                  66. - - - OrientGraphNoTxWrapper - -
                  67. - - - + + OrientGraphWrapper -
                  68. - - - - OrientVertexTypeDsl -
                  69. - - + + OrientVertexTypeWrapper
                  70. @@ -162,6 +150,12 @@

                    Packages

                    VertexDsl +
                  71. + + + + VertexTypeDsl +
                  72. @@ -175,15 +169,15 @@

                    Packages

                    @@ -193,7 +187,7 @@

                    class - OrientVertexTypeDsl extends AnyRef + VertexTypeDsl extends AnyRef

                    @@ -229,7 +223,7 @@

                    Inherited
                      -
                    1. OrientVertexTypeDsl
                    2. AnyRef
                    3. Any
                    4. +
                    5. VertexTypeDsl
                    6. AnyRef
                    7. Any

                    @@ -249,10 +243,10 @@

                    Instance Constructors

                    -
                    1. - +
                      1. + - + @@ -261,7 +255,7 @@

                        Instance Constructors

                        new - OrientVertexTypeDsl(vt: OrientVertexType) + VertexTypeDsl(vt: OrientVertexType)

                        vt

                        The original Java instance to wrap

                        @@ -278,7 +272,7 @@

                        Value Members

                      2. - + @@ -294,7 +288,7 @@

                        Value Members

                      3. - + @@ -310,7 +304,7 @@

                        Value Members

                      4. - + @@ -323,10 +317,10 @@

                        Value Members

                        Definition Classes
                        AnyRef → Any
                        -
                      5. - +
                      6. + - + @@ -335,14 +329,14 @@

                        Value Members

                        def - and(d: PropertyDefinition): OrientVertexTypeDsl + and(d: PropertyDefinition): VertexTypeDsl -

                        Alias for ch.acmesoftware.orientDbScalaDsl.OrientVertexTypeDsl.withProperty

                        +

                        Alias for ch.acmesoftware.orientDbScalaDsl.VertexTypeDsl.withProperty

                      7. - + @@ -358,7 +352,7 @@

                        Value Members

                      8. - + @@ -380,7 +374,7 @@

                        Value Members

                      9. - + @@ -396,7 +390,7 @@

                        Value Members

                      10. - + @@ -412,7 +406,7 @@

                        Value Members

                      11. - + @@ -434,7 +428,7 @@

                        Value Members

                      12. - + @@ -450,7 +444,7 @@

                        Value Members

                      13. - + @@ -466,7 +460,7 @@

                        Value Members

                      14. - + @@ -482,7 +476,7 @@

                        Value Members

                      15. - + @@ -498,7 +492,7 @@

                        Value Members

                      16. - + @@ -514,7 +508,7 @@

                        Value Members

                      17. - + @@ -530,7 +524,7 @@

                        Value Members

                      18. - + @@ -546,7 +540,7 @@

                        Value Members

                      19. - + @@ -559,10 +553,10 @@

                        Value Members

                        Definition Classes
                        AnyRef → Any
                        -
                      20. - +
                      21. + - + @@ -571,14 +565,14 @@

                        Value Members

                        def - unique(fieldName: String): OrientVertexTypeDsl + unique(fieldName: String): VertexTypeDsl

                        Adds unique index to existing vertex type

                        Adds unique index to existing vertex type

                        Example

                        g.getVertexType("Person").dsl unique "name" unique "zip"
                        fieldName

                        The name of the field which should be unique

                      22. - + @@ -600,7 +594,7 @@

                        Value Members

                      23. - + @@ -622,7 +616,7 @@

                        Value Members

                      24. - + @@ -641,10 +635,10 @@

                        Value Members

                        )
                    -

                  73. - +
                  74. + - + @@ -653,7 +647,7 @@

                    Value Members

                    def - withProperty(d: PropertyDefinition): OrientVertexTypeDsl + withProperty(d: PropertyDefinition): VertexTypeDsl

                    Adds a property to existing vertex type

                    Adds a property to existing vertex type

                    Example

                    g.getVertexType("Person").dsl withProperty "age" -> INTEGER
                    d

                    The property definition to add

                    diff --git a/docs/api/2.12/ch/acmesoftware/orientDbScalaDsl/index.html b/docs/api/2.12/ch/acmesoftware/orientDbScalaDsl/index.html index 128d791..af09a99 100644 --- a/docs/api/2.12/ch/acmesoftware/orientDbScalaDsl/index.html +++ b/docs/api/2.12/ch/acmesoftware/orientDbScalaDsl/index.html @@ -126,32 +126,20 @@

                    Packages

                    Definition Classes
                    acmesoftware
                  75. - - - OrientGraphDsl + + + GraphDsl
                  76. - - - OrientGraphNoTxWrapper - -
                  77. - - - + + OrientGraphWrapper -
                  78. - - - - OrientVertexTypeDsl -
                  79. - - + + OrientVertexTypeWrapper
                  80. @@ -160,6 +148,12 @@

                    Packages

                    VertexDsl +
                  81. + + + + VertexTypeDsl +
                  82. @@ -247,10 +241,10 @@

                    Type Members

                    -
                    1. - +
                      1. + - + @@ -259,31 +253,13 @@

                        Type Members

                        class - - OrientGraphDsl + + GraphDsl extends AnyRef

                        DSL extension for the OrientBaseGraph class

                        DSL extension for the OrientBaseGraph class

                        See methods for detailed API and examples...

                        -
                      2. - - - - - - - - implicit - class - - - - OrientGraphNoTxWrapper - extends AnyRef - - -

                        Wrapper providing OrientGraphDsl

                      3. @@ -296,31 +272,12 @@

                        Type Members

                        class
                        - + OrientGraphWrapper extends AnyRef -

                        Wrapper providing OrientGraphDsl

                        -
                      4. - - - - - - - - - class - - - - OrientVertexTypeDsl - extends AnyRef - - -

                        DSL extension for the OrientVertexType class

                        DSL extension for the OrientVertexType class

                        See methods for detailed API and examples... -

                        +

                        Wrapper providing GraphDsl

                      5. @@ -333,12 +290,12 @@

                        Type Members

                        class
                        - + OrientVertexTypeWrapper extends AnyRef -

                        Wrapper providing OrientVertexTypeDsl

                        +

                        Wrapper providing VertexTypeDsl

                      6. @@ -357,6 +314,25 @@

                        Type Members

                        DSL extension for the Element class

                        DSL extension for the Element class

                        See methods for detailed API and examples... +

                        +
                      7. + + + + + + + + + class + + + + VertexTypeDsl + extends AnyRef + + +

                        DSL extension for the OrientVertexType class

                        DSL extension for the OrientVertexType class

                        See methods for detailed API and examples...

                      8. @@ -384,10 +360,10 @@

                        Type Members

                        Value Members

                          -
                        1. - +
                        2. + - + @@ -396,16 +372,16 @@

                          Value Members

                          object - - OrientVertexTypeDsl + + VertexDsl -
                        3. - +
                        4. + - + @@ -414,8 +390,8 @@

                          Value Members

                          object - - VertexDsl + + VertexTypeDsl diff --git a/docs/api/2.12/ch/acmesoftware/orientDbScalaDsl/package$$OrientGraphNoTxWrapper.html b/docs/api/2.12/ch/acmesoftware/orientDbScalaDsl/package$$OrientGraphNoTxWrapper.html deleted file mode 100644 index 7a7473a..0000000 --- a/docs/api/2.12/ch/acmesoftware/orientDbScalaDsl/package$$OrientGraphNoTxWrapper.html +++ /dev/null @@ -1,660 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                          -
                          -
                          -
                          -
                          -
                          -
                          -
                          -
                          -
                          -
                          -
                          -
                          -

                          Packages

                          - -
                          -
                          -
                          - -
                          -
                          c
                          -

                          ch.acmesoftware.orientDbScalaDsl

                          -

                          OrientGraphNoTxWrapper - - - -

                          -

                          -
                          - -

                          - - implicit - class - - - OrientGraphNoTxWrapper extends AnyRef - -

                          - - -

                          Wrapper providing OrientGraphDsl

                          - - Linear Supertypes - -
                          AnyRef, Any
                          -
                          - - -
                          -
                          -
                          - - - - - -
                          -
                          -
                          - Ordering -
                            - -
                          1. Alphabetic
                          2. -
                          3. By Inheritance
                          4. -
                          -
                          -
                          - Inherited
                          -
                          -
                            -
                          1. OrientGraphNoTxWrapper
                          2. AnyRef
                          3. Any
                          4. -
                          -
                          - -
                            -
                          1. Hide All
                          2. -
                          3. Show All
                          4. -
                          -
                          -
                          - Visibility -
                          1. Public
                          2. All
                          -
                          -
                          -
                          - -
                          -
                          -
                          -

                          Instance Constructors

                          -
                          1. - - - - - - - - - new - - - OrientGraphNoTxWrapper(g: OrientGraphNoTx) - - - -
                          -
                          - - - - - -
                          -

                          Value Members

                          -
                            -
                          1. - - - - - - - - final - def - - - !=(arg0: Any): Boolean - - -
                            Definition Classes
                            AnyRef → Any
                            -
                          2. - - - - - - - - final - def - - - ##(): Int - - -
                            Definition Classes
                            AnyRef → Any
                            -
                          3. - - - - - - - - final - def - - - ==(arg0: Any): Boolean - - -
                            Definition Classes
                            AnyRef → Any
                            -
                          4. - - - - - - - - final - def - - - asInstanceOf[T0]: T0 - - -
                            Definition Classes
                            Any
                            -
                          5. - - - - - - - - - def - - - clone(): AnyRef - - -
                            Attributes
                            protected[java.lang]
                            Definition Classes
                            AnyRef
                            Annotations
                            - @throws( - - ... - ) - -
                            -
                          6. - - - - - - - - - def - - - dsl: OrientGraphDsl - - - -
                          7. - - - - - - - - final - def - - - eq(arg0: AnyRef): Boolean - - -
                            Definition Classes
                            AnyRef
                            -
                          8. - - - - - - - - - def - - - equals(arg0: Any): Boolean - - -
                            Definition Classes
                            AnyRef → Any
                            -
                          9. - - - - - - - - - def - - - finalize(): Unit - - -
                            Attributes
                            protected[java.lang]
                            Definition Classes
                            AnyRef
                            Annotations
                            - @throws( - - classOf[java.lang.Throwable] - ) - -
                            -
                          10. - - - - - - - - final - def - - - getClass(): Class[_] - - -
                            Definition Classes
                            AnyRef → Any
                            -
                          11. - - - - - - - - - def - - - hashCode(): Int - - -
                            Definition Classes
                            AnyRef → Any
                            -
                          12. - - - - - - - - final - def - - - isInstanceOf[T0]: Boolean - - -
                            Definition Classes
                            Any
                            -
                          13. - - - - - - - - final - def - - - ne(arg0: AnyRef): Boolean - - -
                            Definition Classes
                            AnyRef
                            -
                          14. - - - - - - - - final - def - - - notify(): Unit - - -
                            Definition Classes
                            AnyRef
                            -
                          15. - - - - - - - - final - def - - - notifyAll(): Unit - - -
                            Definition Classes
                            AnyRef
                            -
                          16. - - - - - - - - final - def - - - synchronized[T0](arg0: ⇒ T0): T0 - - -
                            Definition Classes
                            AnyRef
                            -
                          17. - - - - - - - - - def - - - toString(): String - - -
                            Definition Classes
                            AnyRef → Any
                            -
                          18. - - - - - - - - final - def - - - wait(): Unit - - -
                            Definition Classes
                            AnyRef
                            Annotations
                            - @throws( - - ... - ) - -
                            -
                          19. - - - - - - - - final - def - - - wait(arg0: Long, arg1: Int): Unit - - -
                            Definition Classes
                            AnyRef
                            Annotations
                            - @throws( - - ... - ) - -
                            -
                          20. - - - - - - - - final - def - - - wait(arg0: Long): Unit - - -
                            Definition Classes
                            AnyRef
                            Annotations
                            - @throws( - - ... - ) - -
                            -
                          21. -
                          -
                          - - - - -
                          - -
                          -
                          -

                          Inherited from AnyRef

                          -
                          -

                          Inherited from Any

                          -
                          - -
                          - -
                          -
                          -

                          Ungrouped

                          - -
                          -
                          - -
                          - -
                          - - - -
                          -
                          -
                          - - diff --git a/docs/api/2.12/ch/acmesoftware/orientDbScalaDsl/package$$OrientGraphWrapper.html b/docs/api/2.12/ch/acmesoftware/orientDbScalaDsl/package$$OrientGraphWrapper.html index 17da045..d94e223 100644 --- a/docs/api/2.12/ch/acmesoftware/orientDbScalaDsl/package$$OrientGraphWrapper.html +++ b/docs/api/2.12/ch/acmesoftware/orientDbScalaDsl/package$$OrientGraphWrapper.html @@ -128,32 +128,20 @@

                          Packages

                        Definition Classes
                        acmesoftware

                  83. - - - OrientGraphDsl + + + GraphDsl
                  84. - - - OrientGraphNoTxWrapper - -
                  85. - - - + + OrientGraphWrapper -
                  86. - - - - OrientVertexTypeDsl -
                  87. - - + + OrientVertexTypeWrapper
                  88. @@ -162,6 +150,12 @@

                    Packages

                    VertexDsl +
                  89. + + + + VertexTypeDsl +
                  90. @@ -196,7 +190,7 @@

                    -

                    Wrapper providing OrientGraphDsl

                    +

                    Wrapper providing GraphDsl

                    Linear Supertypes @@ -247,9 +241,9 @@

                    Instance Constructors

                    1. - + - + @@ -258,7 +252,7 @@

                      Instance Constructors

                      new - OrientGraphWrapper(g: OrientGraph) + OrientGraphWrapper(g: OrientBaseGraph) @@ -359,9 +353,9 @@

                      Value Members

                  91. - + - + @@ -370,7 +364,7 @@

                    Value Members

                    def - dsl: OrientGraphDsl + dsl: GraphDsl diff --git a/docs/api/2.12/ch/acmesoftware/orientDbScalaDsl/package$$OrientVertexTypeWrapper.html b/docs/api/2.12/ch/acmesoftware/orientDbScalaDsl/package$$OrientVertexTypeWrapper.html index 3c133dc..1bb4236 100644 --- a/docs/api/2.12/ch/acmesoftware/orientDbScalaDsl/package$$OrientVertexTypeWrapper.html +++ b/docs/api/2.12/ch/acmesoftware/orientDbScalaDsl/package$$OrientVertexTypeWrapper.html @@ -128,32 +128,20 @@

                    Packages

                    Definition Classes
                    acmesoftware
                  92. - - - OrientGraphDsl + + + GraphDsl
                  93. - - - OrientGraphNoTxWrapper - -
                  94. - - - + + OrientGraphWrapper -
                  95. - - - - OrientVertexTypeDsl -
                  96. - - + + OrientVertexTypeWrapper
                  97. @@ -162,6 +150,12 @@

                    Packages

                    VertexDsl +
                  98. + + + + VertexTypeDsl +
                  99. @@ -196,7 +190,7 @@

                    -

                    Wrapper providing OrientVertexTypeDsl

                    +

                    Wrapper providing VertexTypeDsl

                    Linear Supertypes @@ -359,9 +353,9 @@

                    Value Members

                  100. - + - + @@ -370,7 +364,7 @@

                    Value Members

                    def - dsl: OrientVertexTypeDsl + dsl: VertexTypeDsl diff --git a/docs/api/2.12/ch/acmesoftware/orientDbScalaDsl/package$$VertexWrapper.html b/docs/api/2.12/ch/acmesoftware/orientDbScalaDsl/package$$VertexWrapper.html index 1feeb8e..c68244f 100644 --- a/docs/api/2.12/ch/acmesoftware/orientDbScalaDsl/package$$VertexWrapper.html +++ b/docs/api/2.12/ch/acmesoftware/orientDbScalaDsl/package$$VertexWrapper.html @@ -128,32 +128,20 @@

                    Packages

                    Definition Classes
                    acmesoftware
                  101. - - - OrientGraphDsl + + + GraphDsl
                  102. - - - OrientGraphNoTxWrapper - -
                  103. - - - + + OrientGraphWrapper -
                  104. - - - - OrientVertexTypeDsl -
                  105. - - + + OrientVertexTypeWrapper
                  106. @@ -162,6 +150,12 @@

                    Packages

                    VertexDsl +
                  107. + + + + VertexTypeDsl +
                  108. diff --git a/docs/api/2.12/index.js b/docs/api/2.12/index.js index 16e6b2b..e83efcc 100644 --- a/docs/api/2.12/index.js +++ b/docs/api/2.12/index.js @@ -1 +1 @@ -Index.PACKAGES = {"ch" : [], "ch.acmesoftware" : [], "ch.acmesoftware.orientDbScalaDsl" : [{"name" : "ch.acmesoftware.orientDbScalaDsl.OrientGraphDsl", "shortDescription" : "DSL extension for the OrientBaseGraph class", "members_class" : [{"label" : "VerticlesFilterQuery", "tail" : "", "member" : "ch.acmesoftware.orientDbScalaDsl.OrientGraphDsl.VerticlesFilterQuery", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/OrientGraphDsl.html#VerticlesFilterQueryextendsAnyRef", "kind" : "class"}, {"label" : "findVertices", "tail" : "(label: String): VerticlesFilterQuery", "member" : "ch.acmesoftware.orientDbScalaDsl.OrientGraphDsl.findVertices", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/OrientGraphDsl.html#findVertices(label:String):OrientGraphDsl.this.VerticlesFilterQuery", "kind" : "def"}, {"label" : "addVertex", "tail" : "(label: String): VertexDsl", "member" : "ch.acmesoftware.orientDbScalaDsl.OrientGraphDsl.addVertex", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/OrientGraphDsl.html#addVertex(label:String):ch.acmesoftware.orientDbScalaDsl.VertexDsl", "kind" : "def"}, {"label" : "createVertexType", "tail" : "(label: String): OrientVertexTypeDsl", "member" : "ch.acmesoftware.orientDbScalaDsl.OrientGraphDsl.createVertexType", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/OrientGraphDsl.html#createVertexType(label:String):ch.acmesoftware.orientDbScalaDsl.OrientVertexTypeDsl", "kind" : "def"}, {"member" : "ch.acmesoftware.orientDbScalaDsl.OrientGraphDsl#", "error" : "unsupported entity"}, {"label" : "synchronized", "tail" : "(arg0: ⇒ T0): T0", "member" : "scala.AnyRef.synchronized", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/OrientGraphDsl.html#synchronized[T0](x$1:=>T0):T0", "kind" : "final def"}, {"label" : "##", "tail" : "(): Int", "member" : "scala.AnyRef.##", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/OrientGraphDsl.html###():Int", "kind" : "final def"}, {"label" : "!=", "tail" : "(arg0: Any): Boolean", "member" : "scala.AnyRef.!=", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/OrientGraphDsl.html#!=(x$1:Any):Boolean", "kind" : "final def"}, {"label" : "==", "tail" : "(arg0: Any): Boolean", "member" : "scala.AnyRef.==", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/OrientGraphDsl.html#==(x$1:Any):Boolean", "kind" : "final def"}, {"label" : "ne", "tail" : "(arg0: AnyRef): Boolean", "member" : "scala.AnyRef.ne", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/OrientGraphDsl.html#ne(x$1:AnyRef):Boolean", "kind" : "final def"}, {"label" : "eq", "tail" : "(arg0: AnyRef): Boolean", "member" : "scala.AnyRef.eq", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/OrientGraphDsl.html#eq(x$1:AnyRef):Boolean", "kind" : "final def"}, {"label" : "finalize", "tail" : "(): Unit", "member" : "scala.AnyRef.finalize", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/OrientGraphDsl.html#finalize():Unit", "kind" : "def"}, {"label" : "wait", "tail" : "(): Unit", "member" : "scala.AnyRef.wait", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/OrientGraphDsl.html#wait():Unit", "kind" : "final def"}, {"label" : "wait", "tail" : "(arg0: Long, arg1: Int): Unit", "member" : "scala.AnyRef.wait", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/OrientGraphDsl.html#wait(x$1:Long,x$2:Int):Unit", "kind" : "final def"}, {"label" : "wait", "tail" : "(arg0: Long): Unit", "member" : "scala.AnyRef.wait", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/OrientGraphDsl.html#wait(x$1:Long):Unit", "kind" : "final def"}, {"label" : "notifyAll", "tail" : "(): Unit", "member" : "scala.AnyRef.notifyAll", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/OrientGraphDsl.html#notifyAll():Unit", "kind" : "final def"}, {"label" : "notify", "tail" : "(): Unit", "member" : "scala.AnyRef.notify", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/OrientGraphDsl.html#notify():Unit", "kind" : "final def"}, {"label" : "toString", "tail" : "(): String", "member" : "scala.AnyRef.toString", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/OrientGraphDsl.html#toString():String", "kind" : "def"}, {"label" : "clone", "tail" : "(): AnyRef", "member" : "scala.AnyRef.clone", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/OrientGraphDsl.html#clone():Object", "kind" : "def"}, {"label" : "equals", "tail" : "(arg0: Any): Boolean", "member" : "scala.AnyRef.equals", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/OrientGraphDsl.html#equals(x$1:Any):Boolean", "kind" : "def"}, {"label" : "hashCode", "tail" : "(): Int", "member" : "scala.AnyRef.hashCode", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/OrientGraphDsl.html#hashCode():Int", "kind" : "def"}, {"label" : "getClass", "tail" : "(): Class[_]", "member" : "scala.AnyRef.getClass", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/OrientGraphDsl.html#getClass():Class[_]", "kind" : "final def"}, {"label" : "asInstanceOf", "tail" : "(): T0", "member" : "scala.Any.asInstanceOf", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/OrientGraphDsl.html#asInstanceOf[T0]:T0", "kind" : "final def"}, {"label" : "isInstanceOf", "tail" : "(): Boolean", "member" : "scala.Any.isInstanceOf", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/OrientGraphDsl.html#isInstanceOf[T0]:Boolean", "kind" : "final def"}], "class" : "ch\/acmesoftware\/orientDbScalaDsl\/OrientGraphDsl.html", "kind" : "class"}, {"name" : "ch.acmesoftware.orientDbScalaDsl.OrientGraphNoTxWrapper", "shortDescription" : "Wrapper providing OrientGraphDsl", "members_class" : [{"label" : "dsl", "tail" : "(): OrientGraphDsl", "member" : "ch.acmesoftware.orientDbScalaDsl.OrientGraphNoTxWrapper.dsl", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientGraphNoTxWrapper.html#dsl:ch.acmesoftware.orientDbScalaDsl.OrientGraphDsl", "kind" : "def"}, {"member" : "ch.acmesoftware.orientDbScalaDsl.OrientGraphNoTxWrapper#", "error" : "unsupported entity"}, {"label" : "synchronized", "tail" : "(arg0: ⇒ T0): T0", "member" : "scala.AnyRef.synchronized", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientGraphNoTxWrapper.html#synchronized[T0](x$1:=>T0):T0", "kind" : "final def"}, {"label" : "##", "tail" : "(): Int", "member" : "scala.AnyRef.##", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientGraphNoTxWrapper.html###():Int", "kind" : "final def"}, {"label" : "!=", "tail" : "(arg0: Any): Boolean", "member" : "scala.AnyRef.!=", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientGraphNoTxWrapper.html#!=(x$1:Any):Boolean", "kind" : "final def"}, {"label" : "==", "tail" : "(arg0: Any): Boolean", "member" : "scala.AnyRef.==", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientGraphNoTxWrapper.html#==(x$1:Any):Boolean", "kind" : "final def"}, {"label" : "ne", "tail" : "(arg0: AnyRef): Boolean", "member" : "scala.AnyRef.ne", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientGraphNoTxWrapper.html#ne(x$1:AnyRef):Boolean", "kind" : "final def"}, {"label" : "eq", "tail" : "(arg0: AnyRef): Boolean", "member" : "scala.AnyRef.eq", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientGraphNoTxWrapper.html#eq(x$1:AnyRef):Boolean", "kind" : "final def"}, {"label" : "finalize", "tail" : "(): Unit", "member" : "scala.AnyRef.finalize", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientGraphNoTxWrapper.html#finalize():Unit", "kind" : "def"}, {"label" : "wait", "tail" : "(): Unit", "member" : "scala.AnyRef.wait", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientGraphNoTxWrapper.html#wait():Unit", "kind" : "final def"}, {"label" : "wait", "tail" : "(arg0: Long, arg1: Int): Unit", "member" : "scala.AnyRef.wait", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientGraphNoTxWrapper.html#wait(x$1:Long,x$2:Int):Unit", "kind" : "final def"}, {"label" : "wait", "tail" : "(arg0: Long): Unit", "member" : "scala.AnyRef.wait", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientGraphNoTxWrapper.html#wait(x$1:Long):Unit", "kind" : "final def"}, {"label" : "notifyAll", "tail" : "(): Unit", "member" : "scala.AnyRef.notifyAll", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientGraphNoTxWrapper.html#notifyAll():Unit", "kind" : "final def"}, {"label" : "notify", "tail" : "(): Unit", "member" : "scala.AnyRef.notify", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientGraphNoTxWrapper.html#notify():Unit", "kind" : "final def"}, {"label" : "toString", "tail" : "(): String", "member" : "scala.AnyRef.toString", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientGraphNoTxWrapper.html#toString():String", "kind" : "def"}, {"label" : "clone", "tail" : "(): AnyRef", "member" : "scala.AnyRef.clone", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientGraphNoTxWrapper.html#clone():Object", "kind" : "def"}, {"label" : "equals", "tail" : "(arg0: Any): Boolean", "member" : "scala.AnyRef.equals", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientGraphNoTxWrapper.html#equals(x$1:Any):Boolean", "kind" : "def"}, {"label" : "hashCode", "tail" : "(): Int", "member" : "scala.AnyRef.hashCode", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientGraphNoTxWrapper.html#hashCode():Int", "kind" : "def"}, {"label" : "getClass", "tail" : "(): Class[_]", "member" : "scala.AnyRef.getClass", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientGraphNoTxWrapper.html#getClass():Class[_]", "kind" : "final def"}, {"label" : "asInstanceOf", "tail" : "(): T0", "member" : "scala.Any.asInstanceOf", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientGraphNoTxWrapper.html#asInstanceOf[T0]:T0", "kind" : "final def"}, {"label" : "isInstanceOf", "tail" : "(): Boolean", "member" : "scala.Any.isInstanceOf", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientGraphNoTxWrapper.html#isInstanceOf[T0]:Boolean", "kind" : "final def"}], "class" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientGraphNoTxWrapper.html", "kind" : "class"}, {"name" : "ch.acmesoftware.orientDbScalaDsl.OrientGraphWrapper", "shortDescription" : "Wrapper providing OrientGraphDsl", "members_class" : [{"label" : "dsl", "tail" : "(): OrientGraphDsl", "member" : "ch.acmesoftware.orientDbScalaDsl.OrientGraphWrapper.dsl", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientGraphWrapper.html#dsl:ch.acmesoftware.orientDbScalaDsl.OrientGraphDsl", "kind" : "def"}, {"member" : "ch.acmesoftware.orientDbScalaDsl.OrientGraphWrapper#", "error" : "unsupported entity"}, {"label" : "synchronized", "tail" : "(arg0: ⇒ T0): T0", "member" : "scala.AnyRef.synchronized", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientGraphWrapper.html#synchronized[T0](x$1:=>T0):T0", "kind" : "final def"}, {"label" : "##", "tail" : "(): Int", "member" : "scala.AnyRef.##", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientGraphWrapper.html###():Int", "kind" : "final def"}, {"label" : "!=", "tail" : "(arg0: Any): Boolean", "member" : "scala.AnyRef.!=", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientGraphWrapper.html#!=(x$1:Any):Boolean", "kind" : "final def"}, {"label" : "==", "tail" : "(arg0: Any): Boolean", "member" : "scala.AnyRef.==", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientGraphWrapper.html#==(x$1:Any):Boolean", "kind" : "final def"}, {"label" : "ne", "tail" : "(arg0: AnyRef): Boolean", "member" : "scala.AnyRef.ne", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientGraphWrapper.html#ne(x$1:AnyRef):Boolean", "kind" : "final def"}, {"label" : "eq", "tail" : "(arg0: AnyRef): Boolean", "member" : "scala.AnyRef.eq", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientGraphWrapper.html#eq(x$1:AnyRef):Boolean", "kind" : "final def"}, {"label" : "finalize", "tail" : "(): Unit", "member" : "scala.AnyRef.finalize", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientGraphWrapper.html#finalize():Unit", "kind" : "def"}, {"label" : "wait", "tail" : "(): Unit", "member" : "scala.AnyRef.wait", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientGraphWrapper.html#wait():Unit", "kind" : "final def"}, {"label" : "wait", "tail" : "(arg0: Long, arg1: Int): Unit", "member" : "scala.AnyRef.wait", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientGraphWrapper.html#wait(x$1:Long,x$2:Int):Unit", "kind" : "final def"}, {"label" : "wait", "tail" : "(arg0: Long): Unit", "member" : "scala.AnyRef.wait", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientGraphWrapper.html#wait(x$1:Long):Unit", "kind" : "final def"}, {"label" : "notifyAll", "tail" : "(): Unit", "member" : "scala.AnyRef.notifyAll", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientGraphWrapper.html#notifyAll():Unit", "kind" : "final def"}, {"label" : "notify", "tail" : "(): Unit", "member" : "scala.AnyRef.notify", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientGraphWrapper.html#notify():Unit", "kind" : "final def"}, {"label" : "toString", "tail" : "(): String", "member" : "scala.AnyRef.toString", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientGraphWrapper.html#toString():String", "kind" : "def"}, {"label" : "clone", "tail" : "(): AnyRef", "member" : "scala.AnyRef.clone", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientGraphWrapper.html#clone():Object", "kind" : "def"}, {"label" : "equals", "tail" : "(arg0: Any): Boolean", "member" : "scala.AnyRef.equals", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientGraphWrapper.html#equals(x$1:Any):Boolean", "kind" : "def"}, {"label" : "hashCode", "tail" : "(): Int", "member" : "scala.AnyRef.hashCode", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientGraphWrapper.html#hashCode():Int", "kind" : "def"}, {"label" : "getClass", "tail" : "(): Class[_]", "member" : "scala.AnyRef.getClass", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientGraphWrapper.html#getClass():Class[_]", "kind" : "final def"}, {"label" : "asInstanceOf", "tail" : "(): T0", "member" : "scala.Any.asInstanceOf", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientGraphWrapper.html#asInstanceOf[T0]:T0", "kind" : "final def"}, {"label" : "isInstanceOf", "tail" : "(): Boolean", "member" : "scala.Any.isInstanceOf", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientGraphWrapper.html#isInstanceOf[T0]:Boolean", "kind" : "final def"}], "class" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientGraphWrapper.html", "kind" : "class"}, {"name" : "ch.acmesoftware.orientDbScalaDsl.OrientVertexTypeDsl", "shortDescription" : "DSL extension for the OrientVertexType class", "object" : "ch\/acmesoftware\/orientDbScalaDsl\/OrientVertexTypeDsl$.html", "members_class" : [{"label" : "unique", "tail" : "(fieldName: String): OrientVertexTypeDsl", "member" : "ch.acmesoftware.orientDbScalaDsl.OrientVertexTypeDsl.unique", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/OrientVertexTypeDsl.html#unique(fieldName:String):ch.acmesoftware.orientDbScalaDsl.OrientVertexTypeDsl", "kind" : "def"}, {"label" : "withProperty", "tail" : "(d: PropertyDefinition): OrientVertexTypeDsl", "member" : "ch.acmesoftware.orientDbScalaDsl.OrientVertexTypeDsl.withProperty", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/OrientVertexTypeDsl.html#withProperty(d:ch.acmesoftware.orientDbScalaDsl.OrientVertexTypeDsl.PropertyDefinition):ch.acmesoftware.orientDbScalaDsl.OrientVertexTypeDsl", "kind" : "def"}, {"label" : "and", "tail" : "(d: PropertyDefinition): OrientVertexTypeDsl", "member" : "ch.acmesoftware.orientDbScalaDsl.OrientVertexTypeDsl.and", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/OrientVertexTypeDsl.html#and(d:ch.acmesoftware.orientDbScalaDsl.OrientVertexTypeDsl.PropertyDefinition):ch.acmesoftware.orientDbScalaDsl.OrientVertexTypeDsl", "kind" : "def"}, {"member" : "ch.acmesoftware.orientDbScalaDsl.OrientVertexTypeDsl#", "error" : "unsupported entity"}, {"label" : "synchronized", "tail" : "(arg0: ⇒ T0): T0", "member" : "scala.AnyRef.synchronized", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/OrientVertexTypeDsl.html#synchronized[T0](x$1:=>T0):T0", "kind" : "final def"}, {"label" : "##", "tail" : "(): Int", "member" : "scala.AnyRef.##", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/OrientVertexTypeDsl.html###():Int", "kind" : "final def"}, {"label" : "!=", "tail" : "(arg0: Any): Boolean", "member" : "scala.AnyRef.!=", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/OrientVertexTypeDsl.html#!=(x$1:Any):Boolean", "kind" : "final def"}, {"label" : "==", "tail" : "(arg0: Any): Boolean", "member" : "scala.AnyRef.==", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/OrientVertexTypeDsl.html#==(x$1:Any):Boolean", "kind" : "final def"}, {"label" : "ne", "tail" : "(arg0: AnyRef): Boolean", "member" : "scala.AnyRef.ne", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/OrientVertexTypeDsl.html#ne(x$1:AnyRef):Boolean", "kind" : "final def"}, {"label" : "eq", "tail" : "(arg0: AnyRef): Boolean", "member" : "scala.AnyRef.eq", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/OrientVertexTypeDsl.html#eq(x$1:AnyRef):Boolean", "kind" : "final def"}, {"label" : "finalize", "tail" : "(): Unit", "member" : "scala.AnyRef.finalize", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/OrientVertexTypeDsl.html#finalize():Unit", "kind" : "def"}, {"label" : "wait", "tail" : "(): Unit", "member" : "scala.AnyRef.wait", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/OrientVertexTypeDsl.html#wait():Unit", "kind" : "final def"}, {"label" : "wait", "tail" : "(arg0: Long, arg1: Int): Unit", "member" : "scala.AnyRef.wait", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/OrientVertexTypeDsl.html#wait(x$1:Long,x$2:Int):Unit", "kind" : "final def"}, {"label" : "wait", "tail" : "(arg0: Long): Unit", "member" : "scala.AnyRef.wait", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/OrientVertexTypeDsl.html#wait(x$1:Long):Unit", "kind" : "final def"}, {"label" : "notifyAll", "tail" : "(): Unit", "member" : "scala.AnyRef.notifyAll", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/OrientVertexTypeDsl.html#notifyAll():Unit", "kind" : "final def"}, {"label" : "notify", "tail" : "(): Unit", "member" : "scala.AnyRef.notify", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/OrientVertexTypeDsl.html#notify():Unit", "kind" : "final def"}, {"label" : "toString", "tail" : "(): String", "member" : "scala.AnyRef.toString", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/OrientVertexTypeDsl.html#toString():String", "kind" : "def"}, {"label" : "clone", "tail" : "(): AnyRef", "member" : "scala.AnyRef.clone", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/OrientVertexTypeDsl.html#clone():Object", "kind" : "def"}, {"label" : "equals", "tail" : "(arg0: Any): Boolean", "member" : "scala.AnyRef.equals", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/OrientVertexTypeDsl.html#equals(x$1:Any):Boolean", "kind" : "def"}, {"label" : "hashCode", "tail" : "(): Int", "member" : "scala.AnyRef.hashCode", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/OrientVertexTypeDsl.html#hashCode():Int", "kind" : "def"}, {"label" : "getClass", "tail" : "(): Class[_]", "member" : "scala.AnyRef.getClass", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/OrientVertexTypeDsl.html#getClass():Class[_]", "kind" : "final def"}, {"label" : "asInstanceOf", "tail" : "(): T0", "member" : "scala.Any.asInstanceOf", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/OrientVertexTypeDsl.html#asInstanceOf[T0]:T0", "kind" : "final def"}, {"label" : "isInstanceOf", "tail" : "(): Boolean", "member" : "scala.Any.isInstanceOf", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/OrientVertexTypeDsl.html#isInstanceOf[T0]:Boolean", "kind" : "final def"}], "members_object" : [{"label" : "PropertyDefinition", "tail" : "", "member" : "ch.acmesoftware.orientDbScalaDsl.OrientVertexTypeDsl.PropertyDefinition", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/OrientVertexTypeDsl$.html#PropertyDefinition=(String,com.orientechnologies.orient.core.metadata.schema.OType)", "kind" : "type"}, {"label" : "synchronized", "tail" : "(arg0: ⇒ T0): T0", "member" : "scala.AnyRef.synchronized", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/OrientVertexTypeDsl$.html#synchronized[T0](x$1:=>T0):T0", "kind" : "final def"}, {"label" : "##", "tail" : "(): Int", "member" : "scala.AnyRef.##", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/OrientVertexTypeDsl$.html###():Int", "kind" : "final def"}, {"label" : "!=", "tail" : "(arg0: Any): Boolean", "member" : "scala.AnyRef.!=", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/OrientVertexTypeDsl$.html#!=(x$1:Any):Boolean", "kind" : "final def"}, {"label" : "==", "tail" : "(arg0: Any): Boolean", "member" : "scala.AnyRef.==", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/OrientVertexTypeDsl$.html#==(x$1:Any):Boolean", "kind" : "final def"}, {"label" : "ne", "tail" : "(arg0: AnyRef): Boolean", "member" : "scala.AnyRef.ne", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/OrientVertexTypeDsl$.html#ne(x$1:AnyRef):Boolean", "kind" : "final def"}, {"label" : "eq", "tail" : "(arg0: AnyRef): Boolean", "member" : "scala.AnyRef.eq", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/OrientVertexTypeDsl$.html#eq(x$1:AnyRef):Boolean", "kind" : "final def"}, {"label" : "finalize", "tail" : "(): Unit", "member" : "scala.AnyRef.finalize", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/OrientVertexTypeDsl$.html#finalize():Unit", "kind" : "def"}, {"label" : "wait", "tail" : "(): Unit", "member" : "scala.AnyRef.wait", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/OrientVertexTypeDsl$.html#wait():Unit", "kind" : "final def"}, {"label" : "wait", "tail" : "(arg0: Long, arg1: Int): Unit", "member" : "scala.AnyRef.wait", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/OrientVertexTypeDsl$.html#wait(x$1:Long,x$2:Int):Unit", "kind" : "final def"}, {"label" : "wait", "tail" : "(arg0: Long): Unit", "member" : "scala.AnyRef.wait", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/OrientVertexTypeDsl$.html#wait(x$1:Long):Unit", "kind" : "final def"}, {"label" : "notifyAll", "tail" : "(): Unit", "member" : "scala.AnyRef.notifyAll", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/OrientVertexTypeDsl$.html#notifyAll():Unit", "kind" : "final def"}, {"label" : "notify", "tail" : "(): Unit", "member" : "scala.AnyRef.notify", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/OrientVertexTypeDsl$.html#notify():Unit", "kind" : "final def"}, {"label" : "toString", "tail" : "(): String", "member" : "scala.AnyRef.toString", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/OrientVertexTypeDsl$.html#toString():String", "kind" : "def"}, {"label" : "clone", "tail" : "(): AnyRef", "member" : "scala.AnyRef.clone", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/OrientVertexTypeDsl$.html#clone():Object", "kind" : "def"}, {"label" : "equals", "tail" : "(arg0: Any): Boolean", "member" : "scala.AnyRef.equals", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/OrientVertexTypeDsl$.html#equals(x$1:Any):Boolean", "kind" : "def"}, {"label" : "hashCode", "tail" : "(): Int", "member" : "scala.AnyRef.hashCode", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/OrientVertexTypeDsl$.html#hashCode():Int", "kind" : "def"}, {"label" : "getClass", "tail" : "(): Class[_]", "member" : "scala.AnyRef.getClass", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/OrientVertexTypeDsl$.html#getClass():Class[_]", "kind" : "final def"}, {"label" : "asInstanceOf", "tail" : "(): T0", "member" : "scala.Any.asInstanceOf", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/OrientVertexTypeDsl$.html#asInstanceOf[T0]:T0", "kind" : "final def"}, {"label" : "isInstanceOf", "tail" : "(): Boolean", "member" : "scala.Any.isInstanceOf", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/OrientVertexTypeDsl$.html#isInstanceOf[T0]:Boolean", "kind" : "final def"}], "class" : "ch\/acmesoftware\/orientDbScalaDsl\/OrientVertexTypeDsl.html", "kind" : "class"}, {"name" : "ch.acmesoftware.orientDbScalaDsl.OrientVertexTypeWrapper", "shortDescription" : "Wrapper providing OrientVertexTypeDsl", "members_class" : [{"label" : "dsl", "tail" : "(): OrientVertexTypeDsl", "member" : "ch.acmesoftware.orientDbScalaDsl.OrientVertexTypeWrapper.dsl", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientVertexTypeWrapper.html#dsl:ch.acmesoftware.orientDbScalaDsl.OrientVertexTypeDsl", "kind" : "def"}, {"member" : "ch.acmesoftware.orientDbScalaDsl.OrientVertexTypeWrapper#", "error" : "unsupported entity"}, {"label" : "synchronized", "tail" : "(arg0: ⇒ T0): T0", "member" : "scala.AnyRef.synchronized", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientVertexTypeWrapper.html#synchronized[T0](x$1:=>T0):T0", "kind" : "final def"}, {"label" : "##", "tail" : "(): Int", "member" : "scala.AnyRef.##", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientVertexTypeWrapper.html###():Int", "kind" : "final def"}, {"label" : "!=", "tail" : "(arg0: Any): Boolean", "member" : "scala.AnyRef.!=", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientVertexTypeWrapper.html#!=(x$1:Any):Boolean", "kind" : "final def"}, {"label" : "==", "tail" : "(arg0: Any): Boolean", "member" : "scala.AnyRef.==", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientVertexTypeWrapper.html#==(x$1:Any):Boolean", "kind" : "final def"}, {"label" : "ne", "tail" : "(arg0: AnyRef): Boolean", "member" : "scala.AnyRef.ne", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientVertexTypeWrapper.html#ne(x$1:AnyRef):Boolean", "kind" : "final def"}, {"label" : "eq", "tail" : "(arg0: AnyRef): Boolean", "member" : "scala.AnyRef.eq", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientVertexTypeWrapper.html#eq(x$1:AnyRef):Boolean", "kind" : "final def"}, {"label" : "finalize", "tail" : "(): Unit", "member" : "scala.AnyRef.finalize", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientVertexTypeWrapper.html#finalize():Unit", "kind" : "def"}, {"label" : "wait", "tail" : "(): Unit", "member" : "scala.AnyRef.wait", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientVertexTypeWrapper.html#wait():Unit", "kind" : "final def"}, {"label" : "wait", "tail" : "(arg0: Long, arg1: Int): Unit", "member" : "scala.AnyRef.wait", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientVertexTypeWrapper.html#wait(x$1:Long,x$2:Int):Unit", "kind" : "final def"}, {"label" : "wait", "tail" : "(arg0: Long): Unit", "member" : "scala.AnyRef.wait", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientVertexTypeWrapper.html#wait(x$1:Long):Unit", "kind" : "final def"}, {"label" : "notifyAll", "tail" : "(): Unit", "member" : "scala.AnyRef.notifyAll", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientVertexTypeWrapper.html#notifyAll():Unit", "kind" : "final def"}, {"label" : "notify", "tail" : "(): Unit", "member" : "scala.AnyRef.notify", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientVertexTypeWrapper.html#notify():Unit", "kind" : "final def"}, {"label" : "toString", "tail" : "(): String", "member" : "scala.AnyRef.toString", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientVertexTypeWrapper.html#toString():String", "kind" : "def"}, {"label" : "clone", "tail" : "(): AnyRef", "member" : "scala.AnyRef.clone", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientVertexTypeWrapper.html#clone():Object", "kind" : "def"}, {"label" : "equals", "tail" : "(arg0: Any): Boolean", "member" : "scala.AnyRef.equals", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientVertexTypeWrapper.html#equals(x$1:Any):Boolean", "kind" : "def"}, {"label" : "hashCode", "tail" : "(): Int", "member" : "scala.AnyRef.hashCode", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientVertexTypeWrapper.html#hashCode():Int", "kind" : "def"}, {"label" : "getClass", "tail" : "(): Class[_]", "member" : "scala.AnyRef.getClass", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientVertexTypeWrapper.html#getClass():Class[_]", "kind" : "final def"}, {"label" : "asInstanceOf", "tail" : "(): T0", "member" : "scala.Any.asInstanceOf", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientVertexTypeWrapper.html#asInstanceOf[T0]:T0", "kind" : "final def"}, {"label" : "isInstanceOf", "tail" : "(): Boolean", "member" : "scala.Any.isInstanceOf", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientVertexTypeWrapper.html#isInstanceOf[T0]:Boolean", "kind" : "final def"}], "class" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientVertexTypeWrapper.html", "kind" : "class"}, {"name" : "ch.acmesoftware.orientDbScalaDsl.VertexDsl", "shortDescription" : "DSL extension for the Element class", "object" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl$.html", "members_class" : [{"label" : "and", "tail" : "(prop: Property): VertexDsl", "member" : "ch.acmesoftware.orientDbScalaDsl.VertexDsl.and", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl.html#and(prop:ch.acmesoftware.orientDbScalaDsl.VertexDsl.Property):ch.acmesoftware.orientDbScalaDsl.VertexDsl", "kind" : "def"}, {"label" : "withProperty", "tail" : "(prop: Property): VertexDsl", "member" : "ch.acmesoftware.orientDbScalaDsl.VertexDsl.withProperty", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl.html#withProperty(prop:ch.acmesoftware.orientDbScalaDsl.VertexDsl.Property):ch.acmesoftware.orientDbScalaDsl.VertexDsl", "kind" : "def"}, {"member" : "ch.acmesoftware.orientDbScalaDsl.VertexDsl#", "error" : "unsupported entity"}, {"label" : "synchronized", "tail" : "(arg0: ⇒ T0): T0", "member" : "scala.AnyRef.synchronized", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl.html#synchronized[T0](x$1:=>T0):T0", "kind" : "final def"}, {"label" : "##", "tail" : "(): Int", "member" : "scala.AnyRef.##", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl.html###():Int", "kind" : "final def"}, {"label" : "!=", "tail" : "(arg0: Any): Boolean", "member" : "scala.AnyRef.!=", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl.html#!=(x$1:Any):Boolean", "kind" : "final def"}, {"label" : "==", "tail" : "(arg0: Any): Boolean", "member" : "scala.AnyRef.==", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl.html#==(x$1:Any):Boolean", "kind" : "final def"}, {"label" : "ne", "tail" : "(arg0: AnyRef): Boolean", "member" : "scala.AnyRef.ne", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl.html#ne(x$1:AnyRef):Boolean", "kind" : "final def"}, {"label" : "eq", "tail" : "(arg0: AnyRef): Boolean", "member" : "scala.AnyRef.eq", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl.html#eq(x$1:AnyRef):Boolean", "kind" : "final def"}, {"label" : "finalize", "tail" : "(): Unit", "member" : "scala.AnyRef.finalize", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl.html#finalize():Unit", "kind" : "def"}, {"label" : "wait", "tail" : "(): Unit", "member" : "scala.AnyRef.wait", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl.html#wait():Unit", "kind" : "final def"}, {"label" : "wait", "tail" : "(arg0: Long, arg1: Int): Unit", "member" : "scala.AnyRef.wait", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl.html#wait(x$1:Long,x$2:Int):Unit", "kind" : "final def"}, {"label" : "wait", "tail" : "(arg0: Long): Unit", "member" : "scala.AnyRef.wait", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl.html#wait(x$1:Long):Unit", "kind" : "final def"}, {"label" : "notifyAll", "tail" : "(): Unit", "member" : "scala.AnyRef.notifyAll", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl.html#notifyAll():Unit", "kind" : "final def"}, {"label" : "notify", "tail" : "(): Unit", "member" : "scala.AnyRef.notify", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl.html#notify():Unit", "kind" : "final def"}, {"label" : "toString", "tail" : "(): String", "member" : "scala.AnyRef.toString", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl.html#toString():String", "kind" : "def"}, {"label" : "clone", "tail" : "(): AnyRef", "member" : "scala.AnyRef.clone", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl.html#clone():Object", "kind" : "def"}, {"label" : "equals", "tail" : "(arg0: Any): Boolean", "member" : "scala.AnyRef.equals", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl.html#equals(x$1:Any):Boolean", "kind" : "def"}, {"label" : "hashCode", "tail" : "(): Int", "member" : "scala.AnyRef.hashCode", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl.html#hashCode():Int", "kind" : "def"}, {"label" : "getClass", "tail" : "(): Class[_]", "member" : "scala.AnyRef.getClass", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl.html#getClass():Class[_]", "kind" : "final def"}, {"label" : "asInstanceOf", "tail" : "(): T0", "member" : "scala.Any.asInstanceOf", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl.html#asInstanceOf[T0]:T0", "kind" : "final def"}, {"label" : "isInstanceOf", "tail" : "(): Boolean", "member" : "scala.Any.isInstanceOf", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl.html#isInstanceOf[T0]:Boolean", "kind" : "final def"}], "members_object" : [{"label" : "Property", "tail" : "", "member" : "ch.acmesoftware.orientDbScalaDsl.VertexDsl.Property", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl$.html#Property=(String,Any)", "kind" : "type"}, {"label" : "synchronized", "tail" : "(arg0: ⇒ T0): T0", "member" : "scala.AnyRef.synchronized", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl$.html#synchronized[T0](x$1:=>T0):T0", "kind" : "final def"}, {"label" : "##", "tail" : "(): Int", "member" : "scala.AnyRef.##", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl$.html###():Int", "kind" : "final def"}, {"label" : "!=", "tail" : "(arg0: Any): Boolean", "member" : "scala.AnyRef.!=", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl$.html#!=(x$1:Any):Boolean", "kind" : "final def"}, {"label" : "==", "tail" : "(arg0: Any): Boolean", "member" : "scala.AnyRef.==", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl$.html#==(x$1:Any):Boolean", "kind" : "final def"}, {"label" : "ne", "tail" : "(arg0: AnyRef): Boolean", "member" : "scala.AnyRef.ne", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl$.html#ne(x$1:AnyRef):Boolean", "kind" : "final def"}, {"label" : "eq", "tail" : "(arg0: AnyRef): Boolean", "member" : "scala.AnyRef.eq", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl$.html#eq(x$1:AnyRef):Boolean", "kind" : "final def"}, {"label" : "finalize", "tail" : "(): Unit", "member" : "scala.AnyRef.finalize", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl$.html#finalize():Unit", "kind" : "def"}, {"label" : "wait", "tail" : "(): Unit", "member" : "scala.AnyRef.wait", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl$.html#wait():Unit", "kind" : "final def"}, {"label" : "wait", "tail" : "(arg0: Long, arg1: Int): Unit", "member" : "scala.AnyRef.wait", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl$.html#wait(x$1:Long,x$2:Int):Unit", "kind" : "final def"}, {"label" : "wait", "tail" : "(arg0: Long): Unit", "member" : "scala.AnyRef.wait", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl$.html#wait(x$1:Long):Unit", "kind" : "final def"}, {"label" : "notifyAll", "tail" : "(): Unit", "member" : "scala.AnyRef.notifyAll", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl$.html#notifyAll():Unit", "kind" : "final def"}, {"label" : "notify", "tail" : "(): Unit", "member" : "scala.AnyRef.notify", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl$.html#notify():Unit", "kind" : "final def"}, {"label" : "toString", "tail" : "(): String", "member" : "scala.AnyRef.toString", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl$.html#toString():String", "kind" : "def"}, {"label" : "clone", "tail" : "(): AnyRef", "member" : "scala.AnyRef.clone", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl$.html#clone():Object", "kind" : "def"}, {"label" : "equals", "tail" : "(arg0: Any): Boolean", "member" : "scala.AnyRef.equals", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl$.html#equals(x$1:Any):Boolean", "kind" : "def"}, {"label" : "hashCode", "tail" : "(): Int", "member" : "scala.AnyRef.hashCode", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl$.html#hashCode():Int", "kind" : "def"}, {"label" : "getClass", "tail" : "(): Class[_]", "member" : "scala.AnyRef.getClass", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl$.html#getClass():Class[_]", "kind" : "final def"}, {"label" : "asInstanceOf", "tail" : "(): T0", "member" : "scala.Any.asInstanceOf", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl$.html#asInstanceOf[T0]:T0", "kind" : "final def"}, {"label" : "isInstanceOf", "tail" : "(): Boolean", "member" : "scala.Any.isInstanceOf", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl$.html#isInstanceOf[T0]:Boolean", "kind" : "final def"}], "class" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl.html", "kind" : "class"}, {"name" : "ch.acmesoftware.orientDbScalaDsl.VertexWrapper", "shortDescription" : "Wrapper providing VertexDsl", "members_class" : [{"label" : "dsl", "tail" : "(): VertexDsl", "member" : "ch.acmesoftware.orientDbScalaDsl.VertexWrapper.dsl", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$VertexWrapper.html#dsl:ch.acmesoftware.orientDbScalaDsl.VertexDsl", "kind" : "def"}, {"member" : "ch.acmesoftware.orientDbScalaDsl.VertexWrapper#", "error" : "unsupported entity"}, {"label" : "synchronized", "tail" : "(arg0: ⇒ T0): T0", "member" : "scala.AnyRef.synchronized", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$VertexWrapper.html#synchronized[T0](x$1:=>T0):T0", "kind" : "final def"}, {"label" : "##", "tail" : "(): Int", "member" : "scala.AnyRef.##", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$VertexWrapper.html###():Int", "kind" : "final def"}, {"label" : "!=", "tail" : "(arg0: Any): Boolean", "member" : "scala.AnyRef.!=", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$VertexWrapper.html#!=(x$1:Any):Boolean", "kind" : "final def"}, {"label" : "==", "tail" : "(arg0: Any): Boolean", "member" : "scala.AnyRef.==", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$VertexWrapper.html#==(x$1:Any):Boolean", "kind" : "final def"}, {"label" : "ne", "tail" : "(arg0: AnyRef): Boolean", "member" : "scala.AnyRef.ne", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$VertexWrapper.html#ne(x$1:AnyRef):Boolean", "kind" : "final def"}, {"label" : "eq", "tail" : "(arg0: AnyRef): Boolean", "member" : "scala.AnyRef.eq", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$VertexWrapper.html#eq(x$1:AnyRef):Boolean", "kind" : "final def"}, {"label" : "finalize", "tail" : "(): Unit", "member" : "scala.AnyRef.finalize", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$VertexWrapper.html#finalize():Unit", "kind" : "def"}, {"label" : "wait", "tail" : "(): Unit", "member" : "scala.AnyRef.wait", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$VertexWrapper.html#wait():Unit", "kind" : "final def"}, {"label" : "wait", "tail" : "(arg0: Long, arg1: Int): Unit", "member" : "scala.AnyRef.wait", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$VertexWrapper.html#wait(x$1:Long,x$2:Int):Unit", "kind" : "final def"}, {"label" : "wait", "tail" : "(arg0: Long): Unit", "member" : "scala.AnyRef.wait", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$VertexWrapper.html#wait(x$1:Long):Unit", "kind" : "final def"}, {"label" : "notifyAll", "tail" : "(): Unit", "member" : "scala.AnyRef.notifyAll", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$VertexWrapper.html#notifyAll():Unit", "kind" : "final def"}, {"label" : "notify", "tail" : "(): Unit", "member" : "scala.AnyRef.notify", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$VertexWrapper.html#notify():Unit", "kind" : "final def"}, {"label" : "toString", "tail" : "(): String", "member" : "scala.AnyRef.toString", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$VertexWrapper.html#toString():String", "kind" : "def"}, {"label" : "clone", "tail" : "(): AnyRef", "member" : "scala.AnyRef.clone", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$VertexWrapper.html#clone():Object", "kind" : "def"}, {"label" : "equals", "tail" : "(arg0: Any): Boolean", "member" : "scala.AnyRef.equals", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$VertexWrapper.html#equals(x$1:Any):Boolean", "kind" : "def"}, {"label" : "hashCode", "tail" : "(): Int", "member" : "scala.AnyRef.hashCode", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$VertexWrapper.html#hashCode():Int", "kind" : "def"}, {"label" : "getClass", "tail" : "(): Class[_]", "member" : "scala.AnyRef.getClass", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$VertexWrapper.html#getClass():Class[_]", "kind" : "final def"}, {"label" : "asInstanceOf", "tail" : "(): T0", "member" : "scala.Any.asInstanceOf", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$VertexWrapper.html#asInstanceOf[T0]:T0", "kind" : "final def"}, {"label" : "isInstanceOf", "tail" : "(): Boolean", "member" : "scala.Any.isInstanceOf", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$VertexWrapper.html#isInstanceOf[T0]:Boolean", "kind" : "final def"}], "class" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$VertexWrapper.html", "kind" : "class"}]}; \ No newline at end of file +Index.PACKAGES = {"ch" : [], "ch.acmesoftware" : [], "ch.acmesoftware.orientDbScalaDsl" : [{"name" : "ch.acmesoftware.orientDbScalaDsl.GraphDsl", "shortDescription" : "DSL extension for the OrientBaseGraph class", "members_class" : [{"label" : "VerticlesFilterQuery", "tail" : "", "member" : "ch.acmesoftware.orientDbScalaDsl.GraphDsl.VerticlesFilterQuery", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/GraphDsl.html#VerticlesFilterQueryextendsAnyRef", "kind" : "class"}, {"label" : "findVertices", "tail" : "(label: String): VerticlesFilterQuery", "member" : "ch.acmesoftware.orientDbScalaDsl.GraphDsl.findVertices", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/GraphDsl.html#findVertices(label:String):GraphDsl.this.VerticlesFilterQuery", "kind" : "def"}, {"label" : "addVertex", "tail" : "(label: String): VertexDsl", "member" : "ch.acmesoftware.orientDbScalaDsl.GraphDsl.addVertex", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/GraphDsl.html#addVertex(label:String):ch.acmesoftware.orientDbScalaDsl.VertexDsl", "kind" : "def"}, {"label" : "getVertexType", "tail" : "(label: String): Option[VertexTypeDsl]", "member" : "ch.acmesoftware.orientDbScalaDsl.GraphDsl.getVertexType", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/GraphDsl.html#getVertexType(label:String):Option[ch.acmesoftware.orientDbScalaDsl.VertexTypeDsl]", "kind" : "def"}, {"label" : "createVertexType", "tail" : "(label: String): VertexTypeDsl", "member" : "ch.acmesoftware.orientDbScalaDsl.GraphDsl.createVertexType", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/GraphDsl.html#createVertexType(label:String):ch.acmesoftware.orientDbScalaDsl.VertexTypeDsl", "kind" : "def"}, {"member" : "ch.acmesoftware.orientDbScalaDsl.GraphDsl#", "error" : "unsupported entity"}, {"label" : "synchronized", "tail" : "(arg0: ⇒ T0): T0", "member" : "scala.AnyRef.synchronized", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/GraphDsl.html#synchronized[T0](x$1:=>T0):T0", "kind" : "final def"}, {"label" : "##", "tail" : "(): Int", "member" : "scala.AnyRef.##", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/GraphDsl.html###():Int", "kind" : "final def"}, {"label" : "!=", "tail" : "(arg0: Any): Boolean", "member" : "scala.AnyRef.!=", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/GraphDsl.html#!=(x$1:Any):Boolean", "kind" : "final def"}, {"label" : "==", "tail" : "(arg0: Any): Boolean", "member" : "scala.AnyRef.==", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/GraphDsl.html#==(x$1:Any):Boolean", "kind" : "final def"}, {"label" : "ne", "tail" : "(arg0: AnyRef): Boolean", "member" : "scala.AnyRef.ne", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/GraphDsl.html#ne(x$1:AnyRef):Boolean", "kind" : "final def"}, {"label" : "eq", "tail" : "(arg0: AnyRef): Boolean", "member" : "scala.AnyRef.eq", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/GraphDsl.html#eq(x$1:AnyRef):Boolean", "kind" : "final def"}, {"label" : "finalize", "tail" : "(): Unit", "member" : "scala.AnyRef.finalize", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/GraphDsl.html#finalize():Unit", "kind" : "def"}, {"label" : "wait", "tail" : "(): Unit", "member" : "scala.AnyRef.wait", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/GraphDsl.html#wait():Unit", "kind" : "final def"}, {"label" : "wait", "tail" : "(arg0: Long, arg1: Int): Unit", "member" : "scala.AnyRef.wait", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/GraphDsl.html#wait(x$1:Long,x$2:Int):Unit", "kind" : "final def"}, {"label" : "wait", "tail" : "(arg0: Long): Unit", "member" : "scala.AnyRef.wait", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/GraphDsl.html#wait(x$1:Long):Unit", "kind" : "final def"}, {"label" : "notifyAll", "tail" : "(): Unit", "member" : "scala.AnyRef.notifyAll", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/GraphDsl.html#notifyAll():Unit", "kind" : "final def"}, {"label" : "notify", "tail" : "(): Unit", "member" : "scala.AnyRef.notify", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/GraphDsl.html#notify():Unit", "kind" : "final def"}, {"label" : "toString", "tail" : "(): String", "member" : "scala.AnyRef.toString", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/GraphDsl.html#toString():String", "kind" : "def"}, {"label" : "clone", "tail" : "(): AnyRef", "member" : "scala.AnyRef.clone", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/GraphDsl.html#clone():Object", "kind" : "def"}, {"label" : "equals", "tail" : "(arg0: Any): Boolean", "member" : "scala.AnyRef.equals", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/GraphDsl.html#equals(x$1:Any):Boolean", "kind" : "def"}, {"label" : "hashCode", "tail" : "(): Int", "member" : "scala.AnyRef.hashCode", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/GraphDsl.html#hashCode():Int", "kind" : "def"}, {"label" : "getClass", "tail" : "(): Class[_]", "member" : "scala.AnyRef.getClass", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/GraphDsl.html#getClass():Class[_]", "kind" : "final def"}, {"label" : "asInstanceOf", "tail" : "(): T0", "member" : "scala.Any.asInstanceOf", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/GraphDsl.html#asInstanceOf[T0]:T0", "kind" : "final def"}, {"label" : "isInstanceOf", "tail" : "(): Boolean", "member" : "scala.Any.isInstanceOf", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/GraphDsl.html#isInstanceOf[T0]:Boolean", "kind" : "final def"}], "class" : "ch\/acmesoftware\/orientDbScalaDsl\/GraphDsl.html", "kind" : "class"}, {"name" : "ch.acmesoftware.orientDbScalaDsl.OrientGraphWrapper", "shortDescription" : "Wrapper providing GraphDsl", "members_class" : [{"label" : "dsl", "tail" : "(): GraphDsl", "member" : "ch.acmesoftware.orientDbScalaDsl.OrientGraphWrapper.dsl", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientGraphWrapper.html#dsl:ch.acmesoftware.orientDbScalaDsl.GraphDsl", "kind" : "def"}, {"member" : "ch.acmesoftware.orientDbScalaDsl.OrientGraphWrapper#", "error" : "unsupported entity"}, {"label" : "synchronized", "tail" : "(arg0: ⇒ T0): T0", "member" : "scala.AnyRef.synchronized", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientGraphWrapper.html#synchronized[T0](x$1:=>T0):T0", "kind" : "final def"}, {"label" : "##", "tail" : "(): Int", "member" : "scala.AnyRef.##", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientGraphWrapper.html###():Int", "kind" : "final def"}, {"label" : "!=", "tail" : "(arg0: Any): Boolean", "member" : "scala.AnyRef.!=", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientGraphWrapper.html#!=(x$1:Any):Boolean", "kind" : "final def"}, {"label" : "==", "tail" : "(arg0: Any): Boolean", "member" : "scala.AnyRef.==", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientGraphWrapper.html#==(x$1:Any):Boolean", "kind" : "final def"}, {"label" : "ne", "tail" : "(arg0: AnyRef): Boolean", "member" : "scala.AnyRef.ne", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientGraphWrapper.html#ne(x$1:AnyRef):Boolean", "kind" : "final def"}, {"label" : "eq", "tail" : "(arg0: AnyRef): Boolean", "member" : "scala.AnyRef.eq", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientGraphWrapper.html#eq(x$1:AnyRef):Boolean", "kind" : "final def"}, {"label" : "finalize", "tail" : "(): Unit", "member" : "scala.AnyRef.finalize", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientGraphWrapper.html#finalize():Unit", "kind" : "def"}, {"label" : "wait", "tail" : "(): Unit", "member" : "scala.AnyRef.wait", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientGraphWrapper.html#wait():Unit", "kind" : "final def"}, {"label" : "wait", "tail" : "(arg0: Long, arg1: Int): Unit", "member" : "scala.AnyRef.wait", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientGraphWrapper.html#wait(x$1:Long,x$2:Int):Unit", "kind" : "final def"}, {"label" : "wait", "tail" : "(arg0: Long): Unit", "member" : "scala.AnyRef.wait", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientGraphWrapper.html#wait(x$1:Long):Unit", "kind" : "final def"}, {"label" : "notifyAll", "tail" : "(): Unit", "member" : "scala.AnyRef.notifyAll", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientGraphWrapper.html#notifyAll():Unit", "kind" : "final def"}, {"label" : "notify", "tail" : "(): Unit", "member" : "scala.AnyRef.notify", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientGraphWrapper.html#notify():Unit", "kind" : "final def"}, {"label" : "toString", "tail" : "(): String", "member" : "scala.AnyRef.toString", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientGraphWrapper.html#toString():String", "kind" : "def"}, {"label" : "clone", "tail" : "(): AnyRef", "member" : "scala.AnyRef.clone", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientGraphWrapper.html#clone():Object", "kind" : "def"}, {"label" : "equals", "tail" : "(arg0: Any): Boolean", "member" : "scala.AnyRef.equals", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientGraphWrapper.html#equals(x$1:Any):Boolean", "kind" : "def"}, {"label" : "hashCode", "tail" : "(): Int", "member" : "scala.AnyRef.hashCode", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientGraphWrapper.html#hashCode():Int", "kind" : "def"}, {"label" : "getClass", "tail" : "(): Class[_]", "member" : "scala.AnyRef.getClass", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientGraphWrapper.html#getClass():Class[_]", "kind" : "final def"}, {"label" : "asInstanceOf", "tail" : "(): T0", "member" : "scala.Any.asInstanceOf", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientGraphWrapper.html#asInstanceOf[T0]:T0", "kind" : "final def"}, {"label" : "isInstanceOf", "tail" : "(): Boolean", "member" : "scala.Any.isInstanceOf", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientGraphWrapper.html#isInstanceOf[T0]:Boolean", "kind" : "final def"}], "class" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientGraphWrapper.html", "kind" : "class"}, {"name" : "ch.acmesoftware.orientDbScalaDsl.OrientVertexTypeWrapper", "shortDescription" : "Wrapper providing VertexTypeDsl", "members_class" : [{"label" : "dsl", "tail" : "(): VertexTypeDsl", "member" : "ch.acmesoftware.orientDbScalaDsl.OrientVertexTypeWrapper.dsl", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientVertexTypeWrapper.html#dsl:ch.acmesoftware.orientDbScalaDsl.VertexTypeDsl", "kind" : "def"}, {"member" : "ch.acmesoftware.orientDbScalaDsl.OrientVertexTypeWrapper#", "error" : "unsupported entity"}, {"label" : "synchronized", "tail" : "(arg0: ⇒ T0): T0", "member" : "scala.AnyRef.synchronized", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientVertexTypeWrapper.html#synchronized[T0](x$1:=>T0):T0", "kind" : "final def"}, {"label" : "##", "tail" : "(): Int", "member" : "scala.AnyRef.##", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientVertexTypeWrapper.html###():Int", "kind" : "final def"}, {"label" : "!=", "tail" : "(arg0: Any): Boolean", "member" : "scala.AnyRef.!=", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientVertexTypeWrapper.html#!=(x$1:Any):Boolean", "kind" : "final def"}, {"label" : "==", "tail" : "(arg0: Any): Boolean", "member" : "scala.AnyRef.==", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientVertexTypeWrapper.html#==(x$1:Any):Boolean", "kind" : "final def"}, {"label" : "ne", "tail" : "(arg0: AnyRef): Boolean", "member" : "scala.AnyRef.ne", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientVertexTypeWrapper.html#ne(x$1:AnyRef):Boolean", "kind" : "final def"}, {"label" : "eq", "tail" : "(arg0: AnyRef): Boolean", "member" : "scala.AnyRef.eq", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientVertexTypeWrapper.html#eq(x$1:AnyRef):Boolean", "kind" : "final def"}, {"label" : "finalize", "tail" : "(): Unit", "member" : "scala.AnyRef.finalize", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientVertexTypeWrapper.html#finalize():Unit", "kind" : "def"}, {"label" : "wait", "tail" : "(): Unit", "member" : "scala.AnyRef.wait", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientVertexTypeWrapper.html#wait():Unit", "kind" : "final def"}, {"label" : "wait", "tail" : "(arg0: Long, arg1: Int): Unit", "member" : "scala.AnyRef.wait", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientVertexTypeWrapper.html#wait(x$1:Long,x$2:Int):Unit", "kind" : "final def"}, {"label" : "wait", "tail" : "(arg0: Long): Unit", "member" : "scala.AnyRef.wait", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientVertexTypeWrapper.html#wait(x$1:Long):Unit", "kind" : "final def"}, {"label" : "notifyAll", "tail" : "(): Unit", "member" : "scala.AnyRef.notifyAll", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientVertexTypeWrapper.html#notifyAll():Unit", "kind" : "final def"}, {"label" : "notify", "tail" : "(): Unit", "member" : "scala.AnyRef.notify", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientVertexTypeWrapper.html#notify():Unit", "kind" : "final def"}, {"label" : "toString", "tail" : "(): String", "member" : "scala.AnyRef.toString", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientVertexTypeWrapper.html#toString():String", "kind" : "def"}, {"label" : "clone", "tail" : "(): AnyRef", "member" : "scala.AnyRef.clone", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientVertexTypeWrapper.html#clone():Object", "kind" : "def"}, {"label" : "equals", "tail" : "(arg0: Any): Boolean", "member" : "scala.AnyRef.equals", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientVertexTypeWrapper.html#equals(x$1:Any):Boolean", "kind" : "def"}, {"label" : "hashCode", "tail" : "(): Int", "member" : "scala.AnyRef.hashCode", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientVertexTypeWrapper.html#hashCode():Int", "kind" : "def"}, {"label" : "getClass", "tail" : "(): Class[_]", "member" : "scala.AnyRef.getClass", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientVertexTypeWrapper.html#getClass():Class[_]", "kind" : "final def"}, {"label" : "asInstanceOf", "tail" : "(): T0", "member" : "scala.Any.asInstanceOf", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientVertexTypeWrapper.html#asInstanceOf[T0]:T0", "kind" : "final def"}, {"label" : "isInstanceOf", "tail" : "(): Boolean", "member" : "scala.Any.isInstanceOf", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientVertexTypeWrapper.html#isInstanceOf[T0]:Boolean", "kind" : "final def"}], "class" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientVertexTypeWrapper.html", "kind" : "class"}, {"name" : "ch.acmesoftware.orientDbScalaDsl.VertexDsl", "shortDescription" : "DSL extension for the Element class", "object" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl$.html", "members_class" : [{"label" : "mandatoryProperty", "tail" : "(name: String): T", "member" : "ch.acmesoftware.orientDbScalaDsl.VertexDsl.mandatoryProperty", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl.html#mandatoryProperty[T](name:String):T", "kind" : "def"}, {"label" : "property", "tail" : "(name: String): Option[T]", "member" : "ch.acmesoftware.orientDbScalaDsl.VertexDsl.property", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl.html#property[T](name:String):Option[T]", "kind" : "def"}, {"label" : "and", "tail" : "(prop: Property): VertexDsl", "member" : "ch.acmesoftware.orientDbScalaDsl.VertexDsl.and", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl.html#and(prop:ch.acmesoftware.orientDbScalaDsl.VertexDsl.Property):ch.acmesoftware.orientDbScalaDsl.VertexDsl", "kind" : "def"}, {"label" : "withProperty", "tail" : "(prop: Property): VertexDsl", "member" : "ch.acmesoftware.orientDbScalaDsl.VertexDsl.withProperty", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl.html#withProperty(prop:ch.acmesoftware.orientDbScalaDsl.VertexDsl.Property):ch.acmesoftware.orientDbScalaDsl.VertexDsl", "kind" : "def"}, {"member" : "ch.acmesoftware.orientDbScalaDsl.VertexDsl#", "error" : "unsupported entity"}, {"label" : "v", "tail" : ": Element", "member" : "ch.acmesoftware.orientDbScalaDsl.VertexDsl.v", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl.html#v:com.tinkerpop.blueprints.Element", "kind" : "val"}, {"label" : "synchronized", "tail" : "(arg0: ⇒ T0): T0", "member" : "scala.AnyRef.synchronized", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl.html#synchronized[T0](x$1:=>T0):T0", "kind" : "final def"}, {"label" : "##", "tail" : "(): Int", "member" : "scala.AnyRef.##", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl.html###():Int", "kind" : "final def"}, {"label" : "!=", "tail" : "(arg0: Any): Boolean", "member" : "scala.AnyRef.!=", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl.html#!=(x$1:Any):Boolean", "kind" : "final def"}, {"label" : "==", "tail" : "(arg0: Any): Boolean", "member" : "scala.AnyRef.==", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl.html#==(x$1:Any):Boolean", "kind" : "final def"}, {"label" : "ne", "tail" : "(arg0: AnyRef): Boolean", "member" : "scala.AnyRef.ne", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl.html#ne(x$1:AnyRef):Boolean", "kind" : "final def"}, {"label" : "eq", "tail" : "(arg0: AnyRef): Boolean", "member" : "scala.AnyRef.eq", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl.html#eq(x$1:AnyRef):Boolean", "kind" : "final def"}, {"label" : "finalize", "tail" : "(): Unit", "member" : "scala.AnyRef.finalize", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl.html#finalize():Unit", "kind" : "def"}, {"label" : "wait", "tail" : "(): Unit", "member" : "scala.AnyRef.wait", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl.html#wait():Unit", "kind" : "final def"}, {"label" : "wait", "tail" : "(arg0: Long, arg1: Int): Unit", "member" : "scala.AnyRef.wait", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl.html#wait(x$1:Long,x$2:Int):Unit", "kind" : "final def"}, {"label" : "wait", "tail" : "(arg0: Long): Unit", "member" : "scala.AnyRef.wait", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl.html#wait(x$1:Long):Unit", "kind" : "final def"}, {"label" : "notifyAll", "tail" : "(): Unit", "member" : "scala.AnyRef.notifyAll", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl.html#notifyAll():Unit", "kind" : "final def"}, {"label" : "notify", "tail" : "(): Unit", "member" : "scala.AnyRef.notify", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl.html#notify():Unit", "kind" : "final def"}, {"label" : "toString", "tail" : "(): String", "member" : "scala.AnyRef.toString", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl.html#toString():String", "kind" : "def"}, {"label" : "clone", "tail" : "(): AnyRef", "member" : "scala.AnyRef.clone", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl.html#clone():Object", "kind" : "def"}, {"label" : "equals", "tail" : "(arg0: Any): Boolean", "member" : "scala.AnyRef.equals", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl.html#equals(x$1:Any):Boolean", "kind" : "def"}, {"label" : "hashCode", "tail" : "(): Int", "member" : "scala.AnyRef.hashCode", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl.html#hashCode():Int", "kind" : "def"}, {"label" : "getClass", "tail" : "(): Class[_]", "member" : "scala.AnyRef.getClass", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl.html#getClass():Class[_]", "kind" : "final def"}, {"label" : "asInstanceOf", "tail" : "(): T0", "member" : "scala.Any.asInstanceOf", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl.html#asInstanceOf[T0]:T0", "kind" : "final def"}, {"label" : "isInstanceOf", "tail" : "(): Boolean", "member" : "scala.Any.isInstanceOf", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl.html#isInstanceOf[T0]:Boolean", "kind" : "final def"}], "members_object" : [{"label" : "Property", "tail" : "", "member" : "ch.acmesoftware.orientDbScalaDsl.VertexDsl.Property", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl$.html#Property=(String,Any)", "kind" : "type"}, {"label" : "synchronized", "tail" : "(arg0: ⇒ T0): T0", "member" : "scala.AnyRef.synchronized", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl$.html#synchronized[T0](x$1:=>T0):T0", "kind" : "final def"}, {"label" : "##", "tail" : "(): Int", "member" : "scala.AnyRef.##", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl$.html###():Int", "kind" : "final def"}, {"label" : "!=", "tail" : "(arg0: Any): Boolean", "member" : "scala.AnyRef.!=", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl$.html#!=(x$1:Any):Boolean", "kind" : "final def"}, {"label" : "==", "tail" : "(arg0: Any): Boolean", "member" : "scala.AnyRef.==", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl$.html#==(x$1:Any):Boolean", "kind" : "final def"}, {"label" : "ne", "tail" : "(arg0: AnyRef): Boolean", "member" : "scala.AnyRef.ne", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl$.html#ne(x$1:AnyRef):Boolean", "kind" : "final def"}, {"label" : "eq", "tail" : "(arg0: AnyRef): Boolean", "member" : "scala.AnyRef.eq", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl$.html#eq(x$1:AnyRef):Boolean", "kind" : "final def"}, {"label" : "finalize", "tail" : "(): Unit", "member" : "scala.AnyRef.finalize", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl$.html#finalize():Unit", "kind" : "def"}, {"label" : "wait", "tail" : "(): Unit", "member" : "scala.AnyRef.wait", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl$.html#wait():Unit", "kind" : "final def"}, {"label" : "wait", "tail" : "(arg0: Long, arg1: Int): Unit", "member" : "scala.AnyRef.wait", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl$.html#wait(x$1:Long,x$2:Int):Unit", "kind" : "final def"}, {"label" : "wait", "tail" : "(arg0: Long): Unit", "member" : "scala.AnyRef.wait", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl$.html#wait(x$1:Long):Unit", "kind" : "final def"}, {"label" : "notifyAll", "tail" : "(): Unit", "member" : "scala.AnyRef.notifyAll", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl$.html#notifyAll():Unit", "kind" : "final def"}, {"label" : "notify", "tail" : "(): Unit", "member" : "scala.AnyRef.notify", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl$.html#notify():Unit", "kind" : "final def"}, {"label" : "toString", "tail" : "(): String", "member" : "scala.AnyRef.toString", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl$.html#toString():String", "kind" : "def"}, {"label" : "clone", "tail" : "(): AnyRef", "member" : "scala.AnyRef.clone", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl$.html#clone():Object", "kind" : "def"}, {"label" : "equals", "tail" : "(arg0: Any): Boolean", "member" : "scala.AnyRef.equals", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl$.html#equals(x$1:Any):Boolean", "kind" : "def"}, {"label" : "hashCode", "tail" : "(): Int", "member" : "scala.AnyRef.hashCode", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl$.html#hashCode():Int", "kind" : "def"}, {"label" : "getClass", "tail" : "(): Class[_]", "member" : "scala.AnyRef.getClass", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl$.html#getClass():Class[_]", "kind" : "final def"}, {"label" : "asInstanceOf", "tail" : "(): T0", "member" : "scala.Any.asInstanceOf", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl$.html#asInstanceOf[T0]:T0", "kind" : "final def"}, {"label" : "isInstanceOf", "tail" : "(): Boolean", "member" : "scala.Any.isInstanceOf", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl$.html#isInstanceOf[T0]:Boolean", "kind" : "final def"}], "class" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl.html", "kind" : "class"}, {"name" : "ch.acmesoftware.orientDbScalaDsl.VertexTypeDsl", "shortDescription" : "DSL extension for the OrientVertexType class", "object" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexTypeDsl$.html", "members_class" : [{"label" : "unique", "tail" : "(fieldName: String): VertexTypeDsl", "member" : "ch.acmesoftware.orientDbScalaDsl.VertexTypeDsl.unique", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexTypeDsl.html#unique(fieldName:String):ch.acmesoftware.orientDbScalaDsl.VertexTypeDsl", "kind" : "def"}, {"label" : "withProperty", "tail" : "(d: PropertyDefinition): VertexTypeDsl", "member" : "ch.acmesoftware.orientDbScalaDsl.VertexTypeDsl.withProperty", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexTypeDsl.html#withProperty(d:ch.acmesoftware.orientDbScalaDsl.VertexTypeDsl.PropertyDefinition):ch.acmesoftware.orientDbScalaDsl.VertexTypeDsl", "kind" : "def"}, {"label" : "and", "tail" : "(d: PropertyDefinition): VertexTypeDsl", "member" : "ch.acmesoftware.orientDbScalaDsl.VertexTypeDsl.and", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexTypeDsl.html#and(d:ch.acmesoftware.orientDbScalaDsl.VertexTypeDsl.PropertyDefinition):ch.acmesoftware.orientDbScalaDsl.VertexTypeDsl", "kind" : "def"}, {"member" : "ch.acmesoftware.orientDbScalaDsl.VertexTypeDsl#", "error" : "unsupported entity"}, {"label" : "synchronized", "tail" : "(arg0: ⇒ T0): T0", "member" : "scala.AnyRef.synchronized", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexTypeDsl.html#synchronized[T0](x$1:=>T0):T0", "kind" : "final def"}, {"label" : "##", "tail" : "(): Int", "member" : "scala.AnyRef.##", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexTypeDsl.html###():Int", "kind" : "final def"}, {"label" : "!=", "tail" : "(arg0: Any): Boolean", "member" : "scala.AnyRef.!=", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexTypeDsl.html#!=(x$1:Any):Boolean", "kind" : "final def"}, {"label" : "==", "tail" : "(arg0: Any): Boolean", "member" : "scala.AnyRef.==", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexTypeDsl.html#==(x$1:Any):Boolean", "kind" : "final def"}, {"label" : "ne", "tail" : "(arg0: AnyRef): Boolean", "member" : "scala.AnyRef.ne", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexTypeDsl.html#ne(x$1:AnyRef):Boolean", "kind" : "final def"}, {"label" : "eq", "tail" : "(arg0: AnyRef): Boolean", "member" : "scala.AnyRef.eq", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexTypeDsl.html#eq(x$1:AnyRef):Boolean", "kind" : "final def"}, {"label" : "finalize", "tail" : "(): Unit", "member" : "scala.AnyRef.finalize", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexTypeDsl.html#finalize():Unit", "kind" : "def"}, {"label" : "wait", "tail" : "(): Unit", "member" : "scala.AnyRef.wait", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexTypeDsl.html#wait():Unit", "kind" : "final def"}, {"label" : "wait", "tail" : "(arg0: Long, arg1: Int): Unit", "member" : "scala.AnyRef.wait", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexTypeDsl.html#wait(x$1:Long,x$2:Int):Unit", "kind" : "final def"}, {"label" : "wait", "tail" : "(arg0: Long): Unit", "member" : "scala.AnyRef.wait", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexTypeDsl.html#wait(x$1:Long):Unit", "kind" : "final def"}, {"label" : "notifyAll", "tail" : "(): Unit", "member" : "scala.AnyRef.notifyAll", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexTypeDsl.html#notifyAll():Unit", "kind" : "final def"}, {"label" : "notify", "tail" : "(): Unit", "member" : "scala.AnyRef.notify", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexTypeDsl.html#notify():Unit", "kind" : "final def"}, {"label" : "toString", "tail" : "(): String", "member" : "scala.AnyRef.toString", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexTypeDsl.html#toString():String", "kind" : "def"}, {"label" : "clone", "tail" : "(): AnyRef", "member" : "scala.AnyRef.clone", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexTypeDsl.html#clone():Object", "kind" : "def"}, {"label" : "equals", "tail" : "(arg0: Any): Boolean", "member" : "scala.AnyRef.equals", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexTypeDsl.html#equals(x$1:Any):Boolean", "kind" : "def"}, {"label" : "hashCode", "tail" : "(): Int", "member" : "scala.AnyRef.hashCode", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexTypeDsl.html#hashCode():Int", "kind" : "def"}, {"label" : "getClass", "tail" : "(): Class[_]", "member" : "scala.AnyRef.getClass", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexTypeDsl.html#getClass():Class[_]", "kind" : "final def"}, {"label" : "asInstanceOf", "tail" : "(): T0", "member" : "scala.Any.asInstanceOf", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexTypeDsl.html#asInstanceOf[T0]:T0", "kind" : "final def"}, {"label" : "isInstanceOf", "tail" : "(): Boolean", "member" : "scala.Any.isInstanceOf", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexTypeDsl.html#isInstanceOf[T0]:Boolean", "kind" : "final def"}], "members_object" : [{"label" : "PropertyDefinition", "tail" : "", "member" : "ch.acmesoftware.orientDbScalaDsl.VertexTypeDsl.PropertyDefinition", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexTypeDsl$.html#PropertyDefinition=(String,com.orientechnologies.orient.core.metadata.schema.OType)", "kind" : "type"}, {"label" : "synchronized", "tail" : "(arg0: ⇒ T0): T0", "member" : "scala.AnyRef.synchronized", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexTypeDsl$.html#synchronized[T0](x$1:=>T0):T0", "kind" : "final def"}, {"label" : "##", "tail" : "(): Int", "member" : "scala.AnyRef.##", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexTypeDsl$.html###():Int", "kind" : "final def"}, {"label" : "!=", "tail" : "(arg0: Any): Boolean", "member" : "scala.AnyRef.!=", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexTypeDsl$.html#!=(x$1:Any):Boolean", "kind" : "final def"}, {"label" : "==", "tail" : "(arg0: Any): Boolean", "member" : "scala.AnyRef.==", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexTypeDsl$.html#==(x$1:Any):Boolean", "kind" : "final def"}, {"label" : "ne", "tail" : "(arg0: AnyRef): Boolean", "member" : "scala.AnyRef.ne", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexTypeDsl$.html#ne(x$1:AnyRef):Boolean", "kind" : "final def"}, {"label" : "eq", "tail" : "(arg0: AnyRef): Boolean", "member" : "scala.AnyRef.eq", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexTypeDsl$.html#eq(x$1:AnyRef):Boolean", "kind" : "final def"}, {"label" : "finalize", "tail" : "(): Unit", "member" : "scala.AnyRef.finalize", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexTypeDsl$.html#finalize():Unit", "kind" : "def"}, {"label" : "wait", "tail" : "(): Unit", "member" : "scala.AnyRef.wait", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexTypeDsl$.html#wait():Unit", "kind" : "final def"}, {"label" : "wait", "tail" : "(arg0: Long, arg1: Int): Unit", "member" : "scala.AnyRef.wait", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexTypeDsl$.html#wait(x$1:Long,x$2:Int):Unit", "kind" : "final def"}, {"label" : "wait", "tail" : "(arg0: Long): Unit", "member" : "scala.AnyRef.wait", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexTypeDsl$.html#wait(x$1:Long):Unit", "kind" : "final def"}, {"label" : "notifyAll", "tail" : "(): Unit", "member" : "scala.AnyRef.notifyAll", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexTypeDsl$.html#notifyAll():Unit", "kind" : "final def"}, {"label" : "notify", "tail" : "(): Unit", "member" : "scala.AnyRef.notify", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexTypeDsl$.html#notify():Unit", "kind" : "final def"}, {"label" : "toString", "tail" : "(): String", "member" : "scala.AnyRef.toString", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexTypeDsl$.html#toString():String", "kind" : "def"}, {"label" : "clone", "tail" : "(): AnyRef", "member" : "scala.AnyRef.clone", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexTypeDsl$.html#clone():Object", "kind" : "def"}, {"label" : "equals", "tail" : "(arg0: Any): Boolean", "member" : "scala.AnyRef.equals", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexTypeDsl$.html#equals(x$1:Any):Boolean", "kind" : "def"}, {"label" : "hashCode", "tail" : "(): Int", "member" : "scala.AnyRef.hashCode", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexTypeDsl$.html#hashCode():Int", "kind" : "def"}, {"label" : "getClass", "tail" : "(): Class[_]", "member" : "scala.AnyRef.getClass", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexTypeDsl$.html#getClass():Class[_]", "kind" : "final def"}, {"label" : "asInstanceOf", "tail" : "(): T0", "member" : "scala.Any.asInstanceOf", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexTypeDsl$.html#asInstanceOf[T0]:T0", "kind" : "final def"}, {"label" : "isInstanceOf", "tail" : "(): Boolean", "member" : "scala.Any.isInstanceOf", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexTypeDsl$.html#isInstanceOf[T0]:Boolean", "kind" : "final def"}], "class" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexTypeDsl.html", "kind" : "class"}, {"name" : "ch.acmesoftware.orientDbScalaDsl.VertexWrapper", "shortDescription" : "Wrapper providing VertexDsl", "members_class" : [{"label" : "dsl", "tail" : "(): VertexDsl", "member" : "ch.acmesoftware.orientDbScalaDsl.VertexWrapper.dsl", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$VertexWrapper.html#dsl:ch.acmesoftware.orientDbScalaDsl.VertexDsl", "kind" : "def"}, {"member" : "ch.acmesoftware.orientDbScalaDsl.VertexWrapper#", "error" : "unsupported entity"}, {"label" : "synchronized", "tail" : "(arg0: ⇒ T0): T0", "member" : "scala.AnyRef.synchronized", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$VertexWrapper.html#synchronized[T0](x$1:=>T0):T0", "kind" : "final def"}, {"label" : "##", "tail" : "(): Int", "member" : "scala.AnyRef.##", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$VertexWrapper.html###():Int", "kind" : "final def"}, {"label" : "!=", "tail" : "(arg0: Any): Boolean", "member" : "scala.AnyRef.!=", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$VertexWrapper.html#!=(x$1:Any):Boolean", "kind" : "final def"}, {"label" : "==", "tail" : "(arg0: Any): Boolean", "member" : "scala.AnyRef.==", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$VertexWrapper.html#==(x$1:Any):Boolean", "kind" : "final def"}, {"label" : "ne", "tail" : "(arg0: AnyRef): Boolean", "member" : "scala.AnyRef.ne", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$VertexWrapper.html#ne(x$1:AnyRef):Boolean", "kind" : "final def"}, {"label" : "eq", "tail" : "(arg0: AnyRef): Boolean", "member" : "scala.AnyRef.eq", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$VertexWrapper.html#eq(x$1:AnyRef):Boolean", "kind" : "final def"}, {"label" : "finalize", "tail" : "(): Unit", "member" : "scala.AnyRef.finalize", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$VertexWrapper.html#finalize():Unit", "kind" : "def"}, {"label" : "wait", "tail" : "(): Unit", "member" : "scala.AnyRef.wait", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$VertexWrapper.html#wait():Unit", "kind" : "final def"}, {"label" : "wait", "tail" : "(arg0: Long, arg1: Int): Unit", "member" : "scala.AnyRef.wait", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$VertexWrapper.html#wait(x$1:Long,x$2:Int):Unit", "kind" : "final def"}, {"label" : "wait", "tail" : "(arg0: Long): Unit", "member" : "scala.AnyRef.wait", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$VertexWrapper.html#wait(x$1:Long):Unit", "kind" : "final def"}, {"label" : "notifyAll", "tail" : "(): Unit", "member" : "scala.AnyRef.notifyAll", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$VertexWrapper.html#notifyAll():Unit", "kind" : "final def"}, {"label" : "notify", "tail" : "(): Unit", "member" : "scala.AnyRef.notify", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$VertexWrapper.html#notify():Unit", "kind" : "final def"}, {"label" : "toString", "tail" : "(): String", "member" : "scala.AnyRef.toString", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$VertexWrapper.html#toString():String", "kind" : "def"}, {"label" : "clone", "tail" : "(): AnyRef", "member" : "scala.AnyRef.clone", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$VertexWrapper.html#clone():Object", "kind" : "def"}, {"label" : "equals", "tail" : "(arg0: Any): Boolean", "member" : "scala.AnyRef.equals", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$VertexWrapper.html#equals(x$1:Any):Boolean", "kind" : "def"}, {"label" : "hashCode", "tail" : "(): Int", "member" : "scala.AnyRef.hashCode", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$VertexWrapper.html#hashCode():Int", "kind" : "def"}, {"label" : "getClass", "tail" : "(): Class[_]", "member" : "scala.AnyRef.getClass", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$VertexWrapper.html#getClass():Class[_]", "kind" : "final def"}, {"label" : "asInstanceOf", "tail" : "(): T0", "member" : "scala.Any.asInstanceOf", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$VertexWrapper.html#asInstanceOf[T0]:T0", "kind" : "final def"}, {"label" : "isInstanceOf", "tail" : "(): Boolean", "member" : "scala.Any.isInstanceOf", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$VertexWrapper.html#isInstanceOf[T0]:Boolean", "kind" : "final def"}], "class" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$VertexWrapper.html", "kind" : "class"}]}; \ No newline at end of file diff --git a/src/main/scala/ch/acmesoftware/orientDbScalaDsl/OrientGraphDsl.scala b/src/main/scala/ch/acmesoftware/orientDbScalaDsl/GraphDsl.scala similarity index 84% rename from src/main/scala/ch/acmesoftware/orientDbScalaDsl/OrientGraphDsl.scala rename to src/main/scala/ch/acmesoftware/orientDbScalaDsl/GraphDsl.scala index 610d073..74352da 100644 --- a/src/main/scala/ch/acmesoftware/orientDbScalaDsl/OrientGraphDsl.scala +++ b/src/main/scala/ch/acmesoftware/orientDbScalaDsl/GraphDsl.scala @@ -11,7 +11,7 @@ import scala.collection.JavaConverters._ * * @param g The original Java instance to wrap */ -class OrientGraphDsl(g: OrientBaseGraph) { +class GraphDsl(g: OrientBaseGraph) { /** Creates a new vertex type (sometimes refered to as "class) * @@ -31,9 +31,21 @@ class OrientGraphDsl(g: OrientBaseGraph) { * }}} * * @param label The lable of the vertex type to create - * @return An [[OrientVertexTypeDsl]] instance + * @return An [[VertexTypeDsl]] instance */ - def createVertexType(label: String): OrientVertexTypeDsl = g.createVertexType(label).dsl + def createVertexType(label: String): VertexTypeDsl = g.createVertexType(label).dsl + + /** Retrieves existing vertex type if present + * + * ==Example== + * {{{ + * g.dsl getVertexType "Existing" // Option[VertexTypeDsl] + * }}} + * + * @param label + * @return + */ + def getVertexType(label: String): Option[VertexTypeDsl] = Option(g.getVertexType(label)).map(_.dsl) /** Adds a vertex to graph * diff --git a/src/main/scala/ch/acmesoftware/orientDbScalaDsl/VertexDsl.scala b/src/main/scala/ch/acmesoftware/orientDbScalaDsl/VertexDsl.scala index f0657a0..96e2283 100644 --- a/src/main/scala/ch/acmesoftware/orientDbScalaDsl/VertexDsl.scala +++ b/src/main/scala/ch/acmesoftware/orientDbScalaDsl/VertexDsl.scala @@ -9,24 +9,60 @@ import com.tinkerpop.blueprints.Element * * @param v The original Java instance to wrap */ -class VertexDsl(v: Element) { +class VertexDsl(val v: Element) { /** Adds a property to existing vertex * * ==Example== * {{{ - * existing.dsl withProperty "name" -> "ACME Software Solutions" and "year" -> 2017 + * existing.dsl withProperty "name" -> "ACME Software Solutions" and "year" -> 2017 + * existing.dsl withProperty "name" -> Some("foo") // will be persisted + * existing.dsl withProperty "name" -> None // nothing will happen + * existing.dsl withProperty "name" -> null // nothing will happen * }}} * * @param prop The property to set */ def withProperty(prop: Property): VertexDsl = { - v.setProperty(prop._1, prop._2) + prop._2 match { + case Some(value) => v.setProperty(prop._1, value) + case None => // do nothing, option is empty + case null => // do nothing, value is null + case _ => v.setProperty(prop._1, prop._2) + } v.dsl } /** Alias for [[VertexDsl.withProperty]] */ def and(prop: Property): VertexDsl = withProperty(prop) + + /** Gets a property of a vertex + * + * ==Example== + * {{{ + * existing.dsl.property[String]("name") // Option[String] + * }}} + * + * @param name The filed name of the property + * @tparam T Property type + */ + def property[T](name: String): Option[T] = Option(v.getProperty[T](name)) + + /** Gets a mandatory property of a vertex + * + * Returns a property if it exists or not. This method can be used to retrieve properties baked in the schema, so + * it must be present. The result is not wrapped in an `Option[T]`, so if the property does not exist on the database + * result will be null. + * + * ==Example== + * {{{ + * existing.dsl.mandatoryProperty[String]("name") // String + * }}} + * + * @param name The filed name of the property + * @tparam T Property type + */ + def mandatoryProperty[T](name: String): T = v.getProperty[T](name) } object VertexDsl { diff --git a/src/main/scala/ch/acmesoftware/orientDbScalaDsl/OrientVertexTypeDsl.scala b/src/main/scala/ch/acmesoftware/orientDbScalaDsl/VertexTypeDsl.scala similarity index 73% rename from src/main/scala/ch/acmesoftware/orientDbScalaDsl/OrientVertexTypeDsl.scala rename to src/main/scala/ch/acmesoftware/orientDbScalaDsl/VertexTypeDsl.scala index bddfec6..12e4ac5 100644 --- a/src/main/scala/ch/acmesoftware/orientDbScalaDsl/OrientVertexTypeDsl.scala +++ b/src/main/scala/ch/acmesoftware/orientDbScalaDsl/VertexTypeDsl.scala @@ -5,7 +5,7 @@ import java.util.UUID import com.orientechnologies.orient.core.metadata.schema.OClass.INDEX_TYPE import com.orientechnologies.orient.core.metadata.schema.OType import com.tinkerpop.blueprints.impls.orient.OrientVertexType -import OrientVertexTypeDsl._ +import VertexTypeDsl._ /** DSL extension for the `OrientVertexType` class * @@ -13,10 +13,10 @@ import OrientVertexTypeDsl._ * * @param vt The original Java instance to wrap */ -class OrientVertexTypeDsl(vt: OrientVertexType) { +class VertexTypeDsl(vt: OrientVertexType) { - /** Alias for [[ch.acmesoftware.orientDbScalaDsl.OrientVertexTypeDsl.withProperty]] */ - def and(d: PropertyDefinition): OrientVertexTypeDsl = withProperty(d) + /** Alias for [[ch.acmesoftware.orientDbScalaDsl.VertexTypeDsl.withProperty]] */ + def and(d: PropertyDefinition): VertexTypeDsl = withProperty(d) /** Adds a property to existing vertex type * @@ -28,7 +28,7 @@ class OrientVertexTypeDsl(vt: OrientVertexType) { * @param d The property definition to add * @return */ - def withProperty(d: PropertyDefinition): OrientVertexTypeDsl = { + def withProperty(d: PropertyDefinition): VertexTypeDsl = { vt.createProperty(d._1, d._2) vt.dsl } @@ -43,12 +43,12 @@ class OrientVertexTypeDsl(vt: OrientVertexType) { * @param fieldName The name of the field which should be unique * @return */ - def unique(fieldName: String): OrientVertexTypeDsl = { + def unique(fieldName: String): VertexTypeDsl = { vt.createIndex(fieldName + "-unique-" + UUID.randomUUID().toString, INDEX_TYPE.UNIQUE, fieldName) vt.dsl } } -object OrientVertexTypeDsl { +object VertexTypeDsl { type PropertyDefinition = (String, OType) } diff --git a/src/main/scala/ch/acmesoftware/orientDbScalaDsl/package.scala b/src/main/scala/ch/acmesoftware/orientDbScalaDsl/package.scala index e3300b7..977ec8c 100644 --- a/src/main/scala/ch/acmesoftware/orientDbScalaDsl/package.scala +++ b/src/main/scala/ch/acmesoftware/orientDbScalaDsl/package.scala @@ -1,7 +1,7 @@ package ch.acmesoftware import com.tinkerpop.blueprints.Element -import com.tinkerpop.blueprints.impls.orient.{ OrientGraph, OrientGraphNoTx, OrientVertexType } +import com.tinkerpop.blueprints.impls.orient.{ OrientBaseGraph, OrientGraph, OrientGraphNoTx, OrientVertexType } /** Main DSL entry point * @@ -16,9 +16,9 @@ import com.tinkerpop.blueprints.impls.orient.{ OrientGraph, OrientGraphNoTx, Ori */ package object orientDbScalaDsl { - /** Wrapper providing [[OrientVertexTypeDsl]] */ + /** Wrapper providing [[VertexTypeDsl]] */ implicit class OrientVertexTypeWrapper(vt: OrientVertexType) { - def dsl = new OrientVertexTypeDsl(vt) + def dsl = new VertexTypeDsl(vt) } /** Wrapper providing [[VertexDsl]] */ @@ -26,13 +26,8 @@ package object orientDbScalaDsl { def dsl = new VertexDsl(v) } - /** Wrapper providing [[OrientGraphDsl]] */ - implicit class OrientGraphWrapper(g: OrientGraph) { - def dsl = new OrientGraphDsl(g) - } - - /** Wrapper providing [[OrientGraphDsl]] */ - implicit class OrientGraphNoTxWrapper(g: OrientGraphNoTx) { - def dsl = new OrientGraphDsl(g) + /** Wrapper providing [[GraphDsl]] */ + implicit class OrientGraphWrapper(g: OrientBaseGraph) { + def dsl = new GraphDsl(g) } } diff --git a/src/test/scala/ch/acmesoftware/orientDbScalaDsl/OrientGraphDslSpec.scala b/src/test/scala/ch/acmesoftware/orientDbScalaDsl/GraphDslSpec.scala similarity index 67% rename from src/test/scala/ch/acmesoftware/orientDbScalaDsl/OrientGraphDslSpec.scala rename to src/test/scala/ch/acmesoftware/orientDbScalaDsl/GraphDslSpec.scala index 4e74c33..27b38bc 100644 --- a/src/test/scala/ch/acmesoftware/orientDbScalaDsl/OrientGraphDslSpec.scala +++ b/src/test/scala/ch/acmesoftware/orientDbScalaDsl/GraphDslSpec.scala @@ -1,8 +1,8 @@ package ch.acmesoftware.orientDbScalaDsl -class OrientGraphDslSpec extends Spec { +class GraphDslSpec extends Spec { - "OrientGraphDsl" should "find existing vertices by label" in { + "GraphDsl" should "find existing vertices by label" in { tx(g => { g.dsl addVertex "City" }) @@ -29,4 +29,15 @@ class OrientGraphDslSpec extends Spec { res2.isDefined should equal(true) }) } + + it should "retrieve existing vertex type" in { + notTx(g => { + g.dsl createVertexType "Existing" + }) + + notTx(g => { + g.dsl.getVertexType("Existing").isDefined should equal(true) + g.dsl.getVertexType("DoesNotExist").isDefined should equal(false) + }) + } } diff --git a/src/test/scala/ch/acmesoftware/orientDbScalaDsl/VertexDslSpec.scala b/src/test/scala/ch/acmesoftware/orientDbScalaDsl/VertexDslSpec.scala index 2d8f452..93573be 100644 --- a/src/test/scala/ch/acmesoftware/orientDbScalaDsl/VertexDslSpec.scala +++ b/src/test/scala/ch/acmesoftware/orientDbScalaDsl/VertexDslSpec.scala @@ -4,7 +4,7 @@ import scala.collection.JavaConverters._ class VertexDslSpec extends Spec { - "OrientVertexDsl" should "create vertex with properties" in { + "VertexDsl" should "create vertex with properties" in { tx(g => { g.dsl addVertex "Person" withProperty "name" -> "Frank" and "active" -> true @@ -40,4 +40,44 @@ class VertexDslSpec extends Spec { res2.getProperty[Integer]("year") should equal(2017) }) } + + it should "be able to handle mandatory properties" in { + tx(g => { + g.dsl addVertex "MandatoryProp" withProperty "name" -> "ACME" + + g.commit() + + val res = g.dsl findVertices "MandatoryProp" single () + + res.get.mandatoryProperty[String]("name") should equal("ACME") + res.get.mandatoryProperty[String]("doesNotExist") should equal(null) + }) + } + + it should "be able to handle optional properties" in { + tx(g => { + g.dsl addVertex "OptionalProp" withProperty "name" -> Some("ACME") and "description" -> None + + g.commit() + + val res = g.dsl findVertices "OptionalProp" single () + + res.isDefined should equal(true) + res.get.property("name").isDefined should equal(true) + res.get.property("description").isDefined should equal(false) + }) + } + + it should "be able to handle null properties" in { + tx(g => { + g.dsl addVertex "NullableProp" withProperty "name" -> null + + g.commit() + + val res = g.dsl findVertices "NullableProp" single () + + res.isDefined should equal(true) + res.get.property("name").isDefined should equal(false) + }) + } } diff --git a/src/test/scala/ch/acmesoftware/orientDbScalaDsl/OrientVertexTypeDslSpec.scala b/src/test/scala/ch/acmesoftware/orientDbScalaDsl/VertexTypeDslSpec.scala similarity index 93% rename from src/test/scala/ch/acmesoftware/orientDbScalaDsl/OrientVertexTypeDslSpec.scala rename to src/test/scala/ch/acmesoftware/orientDbScalaDsl/VertexTypeDslSpec.scala index 3699c9b..7c072bc 100644 --- a/src/test/scala/ch/acmesoftware/orientDbScalaDsl/OrientVertexTypeDslSpec.scala +++ b/src/test/scala/ch/acmesoftware/orientDbScalaDsl/VertexTypeDslSpec.scala @@ -4,9 +4,9 @@ import com.orientechnologies.orient.core.metadata.schema.OType._ import scala.collection.JavaConverters._ -class OrientVertexTypeDslSpec extends Spec { +class VertexTypeDslSpec extends Spec { - "OrientVertexTypeDsl" should "create vertex type by label" in { + "VertexTypeDsl" should "create vertex type by label" in { notTx(g => { g.dsl createVertexType "NoProp" }) From 542bfc977e046674f35c7fb1ba280077adf43718 Mon Sep 17 00:00:00 2001 From: frne Date: Sun, 12 Feb 2017 19:08:51 +0100 Subject: [PATCH 6/7] Added edge DSL --- README.md | 31 +++++- build.sbt | 6 +- .../orientDbScalaDsl/EdgeDsl.scala | 13 +++ .../orientDbScalaDsl/ElementDsl.scala | 66 +++++++++++++ .../orientDbScalaDsl/GraphDsl.scala | 38 ++++++-- .../orientDbScalaDsl/VertexDsl.scala | 66 ++----------- .../orientDbScalaDsl/VertexTypeDsl.scala | 12 +-- .../orientDbScalaDsl/package.scala | 13 ++- .../orientDbScalaDsl/EdgeDslSpec.scala | 96 +++++++++++++++++++ 9 files changed, 257 insertions(+), 84 deletions(-) create mode 100644 src/main/scala/ch/acmesoftware/orientDbScalaDsl/EdgeDsl.scala create mode 100644 src/main/scala/ch/acmesoftware/orientDbScalaDsl/ElementDsl.scala create mode 100644 src/test/scala/ch/acmesoftware/orientDbScalaDsl/EdgeDslSpec.scala diff --git a/README.md b/README.md index 160a47b..1458ec0 100644 --- a/README.md +++ b/README.md @@ -71,15 +71,11 @@ g.getVertexType("Person").dsl withProperty "age" -> INTEGER ```scala // things needed from java driver import com.tinkerpop.blueprints.impls.orient.OrientGraphFactory -import com.orientechnologies.orient.core.metadata.schema.OType._ - -// java converters for collections -import scala.collection.JavaConverters._ // scala dsl import import ch.acmesoftware.orientDbScalaDsl._ -val g = new OrientGraphFactory("memory:orientDbScalaDslTest").getNoTx +val g = new OrientGraphFactory("memory:orientDbScalaDslTest").getTx // add vertex g.dsl addVertex "Person" withProperty "name" -> "Frank" @@ -104,6 +100,31 @@ val name: Option[String] = existing.flatMap(v => v.property[String]("name")) val name2: String = existing.map(v => v.mandatoryProperty[String]("name")).orNull ``` +### Edge Type + +TBD + +### Edge + +```scala +// things needed from java driver +import com.tinkerpop.blueprints.impls.orient.OrientGraphFactory + +// scala dsl import +import ch.acmesoftware.orientDbScalaDsl._ + +val g = new OrientGraphFactory("memory:orientDbScalaDslTest").getTx + +val company = g.dsl addVertex "Company" +val employee = g.dsl addVertex "Employee" + +// create edge: Employee --(WorksFor)--> Company +val e1 = g.dsl addEdge "WorksFor" -> (employee -> company) + +// add properties... +e1 withProperty "sinde" -> 2011 and "position" -> "Manager" +``` + Get Involved ------------ diff --git a/build.sbt b/build.sbt index 9dd81bc..6a30991 100644 --- a/build.sbt +++ b/build.sbt @@ -20,9 +20,9 @@ scalacOptions in Compile ++= Seq( "-Xlint" ) -scalacOptions ++= Seq( - "-J-Xms256M", - "-J-Xmx1G" +javaOptions in Test ++= Seq( + "-Xms256M", + "-Xmx1G" ) libraryDependencies ++= Dependencies.db ++ Dependencies.testing diff --git a/src/main/scala/ch/acmesoftware/orientDbScalaDsl/EdgeDsl.scala b/src/main/scala/ch/acmesoftware/orientDbScalaDsl/EdgeDsl.scala new file mode 100644 index 0000000..12fcd1e --- /dev/null +++ b/src/main/scala/ch/acmesoftware/orientDbScalaDsl/EdgeDsl.scala @@ -0,0 +1,13 @@ +package ch.acmesoftware.orientDbScalaDsl + +import com.tinkerpop.blueprints.Edge + +/** DSL extension for the `Edge` class + * + * See methods for detailed API and examples... + * + * @param underlying The original Java instance to wrap + */ +class EdgeDsl(val underlying: Edge) extends ElementDsl[Edge] { + +} diff --git a/src/main/scala/ch/acmesoftware/orientDbScalaDsl/ElementDsl.scala b/src/main/scala/ch/acmesoftware/orientDbScalaDsl/ElementDsl.scala new file mode 100644 index 0000000..e1b1519 --- /dev/null +++ b/src/main/scala/ch/acmesoftware/orientDbScalaDsl/ElementDsl.scala @@ -0,0 +1,66 @@ +package ch.acmesoftware.orientDbScalaDsl + +import ch.acmesoftware.orientDbScalaDsl.ElementDsl.Property +import com.tinkerpop.blueprints.Element + +trait ElementDsl[U <: Element] { + + val underlying: U + + /** Adds a property to existing edge + * + * ==Example== + * {{{ + * existing.dsl withProperty "name" -> "ACME Software Solutions" and "year" -> 2017 + * existing.dsl withProperty "name" -> Some("foo") // will be persisted + * existing.dsl withProperty "name" -> None // nothing will happen + * existing.dsl withProperty "name" -> null // nothing will happen + * }}} + * + * @param prop The property to set + */ + def withProperty(prop: Property): ElementDsl[U] = { + prop._2 match { + case Some(value) => underlying.setProperty(prop._1, value) + case None => // do nothing, option is empty + case null => // do nothing, value is null + case _ => underlying.setProperty(prop._1, prop._2) + } + this + } + + /** Alias for [[VertexDsl.withProperty]] */ + def and(prop: Property): ElementDsl[U] = withProperty(prop) + + /** Gets a property of a vertex + * + * ==Example== + * {{{ + * existing.dsl.property[String]("name") // Option[String] + * }}} + * + * @param name The filed name of the property + * @tparam T Property type + */ + def property[T](name: String): Option[T] = Option(underlying.getProperty[T](name)) + + /** Gets a mandatory property of a vertex + * + * Returns a property if it exists or not. This method can be used to retrieve properties baked in the schema, so + * it must be present. The result is not wrapped in an `Option[T]`, so if the property does not exist on the database + * result will be null. + * + * ==Example== + * {{{ + * existing.dsl.mandatoryProperty[String]("name") // String + * }}} + * + * @param name The filed name of the property + * @tparam T Property type + */ + def mandatoryProperty[T](name: String): T = underlying.getProperty[T](name) +} + +object ElementDsl { + type Property = (String, Any) +} diff --git a/src/main/scala/ch/acmesoftware/orientDbScalaDsl/GraphDsl.scala b/src/main/scala/ch/acmesoftware/orientDbScalaDsl/GraphDsl.scala index 74352da..46b1982 100644 --- a/src/main/scala/ch/acmesoftware/orientDbScalaDsl/GraphDsl.scala +++ b/src/main/scala/ch/acmesoftware/orientDbScalaDsl/GraphDsl.scala @@ -1,6 +1,5 @@ package ch.acmesoftware.orientDbScalaDsl -import com.tinkerpop.blueprints.Vertex import com.tinkerpop.blueprints.impls.orient.OrientBaseGraph import scala.collection.JavaConverters._ @@ -9,9 +8,9 @@ import scala.collection.JavaConverters._ * * See methods for detailed API and examples... * - * @param g The original Java instance to wrap + * @param underlying The original Java instance to wrap */ -class GraphDsl(g: OrientBaseGraph) { +class GraphDsl(val underlying: OrientBaseGraph) { /** Creates a new vertex type (sometimes refered to as "class) * @@ -33,7 +32,7 @@ class GraphDsl(g: OrientBaseGraph) { * @param label The lable of the vertex type to create * @return An [[VertexTypeDsl]] instance */ - def createVertexType(label: String): VertexTypeDsl = g.createVertexType(label).dsl + def createVertexType(label: String): VertexTypeDsl = underlying.createVertexType(label).dsl /** Retrieves existing vertex type if present * @@ -45,7 +44,7 @@ class GraphDsl(g: OrientBaseGraph) { * @param label * @return */ - def getVertexType(label: String): Option[VertexTypeDsl] = Option(g.getVertexType(label)).map(_.dsl) + def getVertexType(label: String): Option[VertexTypeDsl] = Option(underlying.getVertexType(label)).map(_.dsl) /** Adds a vertex to graph * @@ -59,7 +58,7 @@ class GraphDsl(g: OrientBaseGraph) { * @param label * @return */ - def addVertex(label: String): VertexDsl = g.addVertex("class:" + label, Nil: _*).dsl + def addVertex(label: String): VertexDsl = underlying.addVertex("class:" + label, Nil: _*).dsl /** Creates a by-label filter query * @@ -76,10 +75,29 @@ class GraphDsl(g: OrientBaseGraph) { * }}} * * @param label The label to filter by - * @return A by-label filter wuery + * @return A by-label filter query */ def findVertices(label: String) = new VerticlesFilterQuery(label) + /** Add an edge to graph + * + * ==EXAMPLE== + * {{{ + * val company = g addVertex "Company" + * val employee = g addVertex "Employee" + * + * // create edge: Employee --(WorksFor)--> Company + * val e1 = g.dsl addEdge "WorksFor" -> (employee -> company) + * }}} + * + * @param e The edge definition which is a nested tuple containing label and (in / out) vertices + * @return The EdgeDsl of the just created edge + */ + def addEdge(e: (Label, (FromVertex, ToVertex))) = underlying.addEdge(null, e._2._1.underlying, e._2._2.underlying, e._1).dsl + + /** Commits the transaction */ + def commit() = underlying.commit() + class VerticlesFilterQuery(label: String, fieldFilters: Seq[(String, Any)] = Nil) { def filter(filter: (String, Any)) = new VerticlesFilterQuery(label, fieldFilters :+ filter) @@ -88,10 +106,14 @@ class GraphDsl(g: OrientBaseGraph) { def single(): Option[VertexDsl] = list().take(1).lastOption - def list(): Iterable[VertexDsl] = g.getVertices( + def list(): Iterable[VertexDsl] = underlying.getVertices( label, fieldFilters.toMap.keys.toArray, fieldFilters.toMap.values.map(_.asInstanceOf[AnyRef]).toArray ).asScala.map(_.dsl) } + + type Label = String + type FromVertex = VertexDsl + type ToVertex = VertexDsl } diff --git a/src/main/scala/ch/acmesoftware/orientDbScalaDsl/VertexDsl.scala b/src/main/scala/ch/acmesoftware/orientDbScalaDsl/VertexDsl.scala index 96e2283..0ab2e18 100644 --- a/src/main/scala/ch/acmesoftware/orientDbScalaDsl/VertexDsl.scala +++ b/src/main/scala/ch/acmesoftware/orientDbScalaDsl/VertexDsl.scala @@ -1,70 +1,20 @@ package ch.acmesoftware.orientDbScalaDsl -import ch.acmesoftware.orientDbScalaDsl.VertexDsl._ -import com.tinkerpop.blueprints.Element +import com.tinkerpop.blueprints.{ Direction, Vertex } +import scala.collection.JavaConverters._ -/** DSL extension for the `Element` class +/** DSL extension for the `Vertex` class * * See methods for detailed API and examples... * - * @param v The original Java instance to wrap + * @param underlying The original Java instance to wrap */ -class VertexDsl(val v: Element) { +class VertexDsl(val underlying: Vertex) extends ElementDsl[Vertex] { - /** Adds a property to existing vertex - * - * ==Example== - * {{{ - * existing.dsl withProperty "name" -> "ACME Software Solutions" and "year" -> 2017 - * existing.dsl withProperty "name" -> Some("foo") // will be persisted - * existing.dsl withProperty "name" -> None // nothing will happen - * existing.dsl withProperty "name" -> null // nothing will happen - * }}} - * - * @param prop The property to set - */ - def withProperty(prop: Property): VertexDsl = { - prop._2 match { - case Some(value) => v.setProperty(prop._1, value) - case None => // do nothing, option is empty - case null => // do nothing, value is null - case _ => v.setProperty(prop._1, prop._2) - } - v.dsl - } + def in(label: String): Iterable[EdgeDsl] = edges(label, Direction.IN) - /** Alias for [[VertexDsl.withProperty]] */ - def and(prop: Property): VertexDsl = withProperty(prop) + def out(label: String): Iterable[EdgeDsl] = edges(label, Direction.OUT) - /** Gets a property of a vertex - * - * ==Example== - * {{{ - * existing.dsl.property[String]("name") // Option[String] - * }}} - * - * @param name The filed name of the property - * @tparam T Property type - */ - def property[T](name: String): Option[T] = Option(v.getProperty[T](name)) - - /** Gets a mandatory property of a vertex - * - * Returns a property if it exists or not. This method can be used to retrieve properties baked in the schema, so - * it must be present. The result is not wrapped in an `Option[T]`, so if the property does not exist on the database - * result will be null. - * - * ==Example== - * {{{ - * existing.dsl.mandatoryProperty[String]("name") // String - * }}} - * - * @param name The filed name of the property - * @tparam T Property type - */ - def mandatoryProperty[T](name: String): T = v.getProperty[T](name) + private def edges(l: String, d: Direction) = underlying.getEdges(d, l).asScala.map(_.dsl) } -object VertexDsl { - type Property = (String, Any) -} diff --git a/src/main/scala/ch/acmesoftware/orientDbScalaDsl/VertexTypeDsl.scala b/src/main/scala/ch/acmesoftware/orientDbScalaDsl/VertexTypeDsl.scala index 12e4ac5..3d42e22 100644 --- a/src/main/scala/ch/acmesoftware/orientDbScalaDsl/VertexTypeDsl.scala +++ b/src/main/scala/ch/acmesoftware/orientDbScalaDsl/VertexTypeDsl.scala @@ -11,9 +11,9 @@ import VertexTypeDsl._ * * See methods for detailed API and examples... * - * @param vt The original Java instance to wrap + * @param underlying The original Java instance to wrap */ -class VertexTypeDsl(vt: OrientVertexType) { +class VertexTypeDsl(val underlying: OrientVertexType) { /** Alias for [[ch.acmesoftware.orientDbScalaDsl.VertexTypeDsl.withProperty]] */ def and(d: PropertyDefinition): VertexTypeDsl = withProperty(d) @@ -29,8 +29,8 @@ class VertexTypeDsl(vt: OrientVertexType) { * @return */ def withProperty(d: PropertyDefinition): VertexTypeDsl = { - vt.createProperty(d._1, d._2) - vt.dsl + underlying.createProperty(d._1, d._2) + underlying.dsl } /** Adds unique index to existing vertex type @@ -44,8 +44,8 @@ class VertexTypeDsl(vt: OrientVertexType) { * @return */ def unique(fieldName: String): VertexTypeDsl = { - vt.createIndex(fieldName + "-unique-" + UUID.randomUUID().toString, INDEX_TYPE.UNIQUE, fieldName) - vt.dsl + underlying.createIndex(fieldName + "-unique-" + UUID.randomUUID().toString, INDEX_TYPE.UNIQUE, fieldName) + underlying.dsl } } diff --git a/src/main/scala/ch/acmesoftware/orientDbScalaDsl/package.scala b/src/main/scala/ch/acmesoftware/orientDbScalaDsl/package.scala index 977ec8c..79af8fc 100644 --- a/src/main/scala/ch/acmesoftware/orientDbScalaDsl/package.scala +++ b/src/main/scala/ch/acmesoftware/orientDbScalaDsl/package.scala @@ -1,6 +1,6 @@ package ch.acmesoftware -import com.tinkerpop.blueprints.Element +import com.tinkerpop.blueprints.{ Edge, Element, Vertex } import com.tinkerpop.blueprints.impls.orient.{ OrientBaseGraph, OrientGraph, OrientGraphNoTx, OrientVertexType } /** Main DSL entry point @@ -17,17 +17,22 @@ import com.tinkerpop.blueprints.impls.orient.{ OrientBaseGraph, OrientGraph, Ori package object orientDbScalaDsl { /** Wrapper providing [[VertexTypeDsl]] */ - implicit class OrientVertexTypeWrapper(vt: OrientVertexType) { + implicit class VertexTypeWrapper(vt: OrientVertexType) { def dsl = new VertexTypeDsl(vt) } /** Wrapper providing [[VertexDsl]] */ - implicit class VertexWrapper(v: Element) { + implicit class VertexWrapper(v: Vertex) { def dsl = new VertexDsl(v) } + /** Wrapper providing [[VertexDsl]] */ + implicit class EdgeWrapper(e: Edge) { + def dsl = new EdgeDsl(e) + } + /** Wrapper providing [[GraphDsl]] */ - implicit class OrientGraphWrapper(g: OrientBaseGraph) { + implicit class GraphWrapper(g: OrientBaseGraph) { def dsl = new GraphDsl(g) } } diff --git a/src/test/scala/ch/acmesoftware/orientDbScalaDsl/EdgeDslSpec.scala b/src/test/scala/ch/acmesoftware/orientDbScalaDsl/EdgeDslSpec.scala new file mode 100644 index 0000000..190095a --- /dev/null +++ b/src/test/scala/ch/acmesoftware/orientDbScalaDsl/EdgeDslSpec.scala @@ -0,0 +1,96 @@ +package ch.acmesoftware.orientDbScalaDsl + +import scala.collection.JavaConverters._ + +class EdgeDslSpec extends Spec { + + "EdgeDsl" should "create edge with properties" in { + tx(g => { + val v1 = g.dsl addVertex "Test1" + val v2 = g.dsl addVertex "Test2" + + g.dsl addEdge "Likes" -> (v1 -> v2) withProperty "direct" -> true + + g.commit() + + val res = g.getEdgesOfClass("Likes").asScala + + res.size should equal(1) + res.count(v => v.getProperty[Boolean]("direct").equals(true)) should equal(1) + }) + } + + it should "edit existing edge" in { + tx(g => { + val v1 = g.dsl addVertex "Test3" + val v2 = g.dsl addVertex "Test4" + + g.dsl addEdge "Knows" -> (v1 -> v2) withProperty "years" -> 3 and "direct" -> true + + g.commit() + + val res = g.getEdgesOfClass("Knows").asScala.last + + res.getProperty[Integer]("years") should equal(3) + res.getProperty[Boolean]("direct") should equal(true) + + res.dsl withProperty "years" -> 15 + + g.commit() + + val res2 = g.getEdgesOfClass("Knows").asScala.last + + res2.getProperty[Integer]("years") should equal(15) + }) + } + + it should "be able to handle mandatory properties" in { + tx(g => { + val v1 = g.dsl addVertex "Test5" + val v2 = g.dsl addVertex "Test6" + + g.dsl addEdge "MandatoryProp" -> (v1 -> v2) withProperty "name" -> "ACME" + + g.commit() + + val res = v1 out "MandatoryProp" + + res.nonEmpty should equal(true) + res.last.mandatoryProperty[String]("name") should equal("ACME") + res.last.mandatoryProperty[String]("doesNotExist") should equal(null) + }) + } + + it should "be able to handle optional properties" in { + tx(g => { + val v1 = g.dsl addVertex "Test7" + val v2 = g.dsl addVertex "Test8" + + g.dsl addEdge "OptionalProp" -> (v1 -> v2) withProperty "name" -> Some("ACME") and "description" -> None + + g.commit() + + val res = v2 in "OptionalProp" + + res.nonEmpty should equal(true) + res.last.property("name").isDefined should equal(true) + res.last.property("description").isDefined should equal(false) + }) + } + + it should "be able to handle null properties" in { + tx(g => { + val v1 = g.dsl addVertex "Test9" + val v2 = g.dsl addVertex "Test10" + + g.dsl addEdge "NullableProp" -> (v1 -> v2) withProperty "name" -> null + + g.commit() + + val res = v1 out "NullableProp" + + res.nonEmpty should equal(true) + res.last.property("name").isDefined should equal(false) + }) + } +} From 4a34159abd4ded6c049c70d4566b8bab47db3e0c Mon Sep 17 00:00:00 2001 From: frne Date: Sun, 12 Feb 2017 19:09:12 +0100 Subject: [PATCH 7/7] Updated doc --- .../orientDbScalaDsl/EdgeDsl.html | 595 ++++++++++++++ .../{VertexDsl$.html => ElementDsl$.html} | 62 +- .../orientDbScalaDsl/ElementDsl.html | 580 ++++++++++++++ .../orientDbScalaDsl/GraphDsl.html | 118 ++- .../orientDbScalaDsl/VertexDsl.html | 112 ++- .../orientDbScalaDsl/VertexTypeDsl.html | 25 +- .../package$$EdgeWrapper.html | 519 ++++++++++++ ...rapper.html => package$$GraphWrapper.html} | 68 +- ...r.html => package$$VertexTypeWrapper.html} | 68 +- .../package$$VertexWrapper.html | 6 +- .../orientDbScalaDsl/package.html | 106 ++- docs/api/2.11/index.html | 4 +- docs/api/2.11/index.js | 2 +- docs/api/2.11/index/index-a.html | 5 +- docs/api/2.11/index/index-c.html | 3 + docs/api/2.11/index/index-d.html | 2 +- docs/api/2.11/index/index-e.html | 23 + docs/api/2.11/index/index-f.html | 3 + docs/api/2.11/index/index-g.html | 3 + docs/api/2.11/index/index-i.html | 17 + docs/api/2.11/index/index-l.html | 3 + docs/api/2.11/index/index-m.html | 2 +- docs/api/2.11/index/index-o.html | 9 +- docs/api/2.11/index/index-p.html | 4 +- docs/api/2.11/index/index-t.html | 17 + docs/api/2.11/index/index-u.html | 3 + docs/api/2.11/index/index-v.html | 6 +- docs/api/2.11/index/index-w.html | 2 +- .../orientDbScalaDsl/EdgeDsl.html | 744 ++++++++++++++++++ .../{VertexDsl$.html => ElementDsl$.html} | 94 ++- .../orientDbScalaDsl/ElementDsl.html | 732 +++++++++++++++++ .../orientDbScalaDsl/GraphDsl.html | 152 +++- .../orientDbScalaDsl/VertexDsl.html | 144 ++-- .../orientDbScalaDsl/VertexTypeDsl$.html | 40 +- .../orientDbScalaDsl/VertexTypeDsl.html | 64 +- .../acmesoftware/orientDbScalaDsl/index.html | 153 +++- .../package$$EdgeWrapper.html | 672 ++++++++++++++++ ...rapper.html => package$$GraphWrapper.html} | 94 ++- ...r.html => package$$VertexTypeWrapper.html} | 98 ++- .../package$$VertexWrapper.html | 46 +- docs/api/2.12/index.js | 2 +- 41 files changed, 4945 insertions(+), 457 deletions(-) create mode 100644 docs/api/2.11/ch/acmesoftware/orientDbScalaDsl/EdgeDsl.html rename docs/api/2.11/ch/acmesoftware/orientDbScalaDsl/{VertexDsl$.html => ElementDsl$.html} (90%) create mode 100644 docs/api/2.11/ch/acmesoftware/orientDbScalaDsl/ElementDsl.html create mode 100644 docs/api/2.11/ch/acmesoftware/orientDbScalaDsl/package$$EdgeWrapper.html rename docs/api/2.11/ch/acmesoftware/orientDbScalaDsl/{package$$OrientGraphWrapper.html => package$$GraphWrapper.html} (87%) rename docs/api/2.11/ch/acmesoftware/orientDbScalaDsl/{package$$OrientVertexTypeWrapper.html => package$$VertexTypeWrapper.html} (87%) create mode 100644 docs/api/2.11/index/index-e.html create mode 100644 docs/api/2.11/index/index-i.html create mode 100644 docs/api/2.11/index/index-t.html create mode 100644 docs/api/2.12/ch/acmesoftware/orientDbScalaDsl/EdgeDsl.html rename docs/api/2.12/ch/acmesoftware/orientDbScalaDsl/{VertexDsl$.html => ElementDsl$.html} (85%) create mode 100644 docs/api/2.12/ch/acmesoftware/orientDbScalaDsl/ElementDsl.html create mode 100644 docs/api/2.12/ch/acmesoftware/orientDbScalaDsl/package$$EdgeWrapper.html rename docs/api/2.12/ch/acmesoftware/orientDbScalaDsl/{package$$OrientGraphWrapper.html => package$$GraphWrapper.html} (88%) rename docs/api/2.12/ch/acmesoftware/orientDbScalaDsl/{package$$OrientVertexTypeWrapper.html => package$$VertexTypeWrapper.html} (88%) diff --git a/docs/api/2.11/ch/acmesoftware/orientDbScalaDsl/EdgeDsl.html b/docs/api/2.11/ch/acmesoftware/orientDbScalaDsl/EdgeDsl.html new file mode 100644 index 0000000..6f58d2c --- /dev/null +++ b/docs/api/2.11/ch/acmesoftware/orientDbScalaDsl/EdgeDsl.html @@ -0,0 +1,595 @@ + + + + EdgeDsl - ch.acmesoftware.orientDbScalaDsl.EdgeDsl + + + + + + + + + + + + + + + +
                    + Class +

                    ch.acmesoftware.orientDbScalaDsl

                    +

                    EdgeDsl

                    Related Doc: + package orientDbScalaDsl +

                    + + Permalink + + +
                    + +

                    + + + class + + + EdgeDsl extends ElementDsl[Edge] + +

                    + +

                    DSL extension for the Edge class

                    See methods for detailed API and examples... +

                    + Linear Supertypes +
                    ElementDsl[Edge], AnyRef, Any
                    +
                    + + +
                    +
                    +
                    + Ordering +
                      + +
                    1. Alphabetic
                    2. +
                    3. By Inheritance
                    4. +
                    +
                    +
                    + Inherited
                    +
                    +
                      +
                    1. EdgeDsl
                    2. ElementDsl
                    3. AnyRef
                    4. Any
                    5. +
                    +
                    + +
                      +
                    1. Hide All
                    2. +
                    3. Show All
                    4. +
                    +
                    +
                    + Visibility +
                    1. Public
                    2. All
                    +
                    +
                    + +
                    +
                    +
                    +

                    Instance Constructors

                    +
                    1. + + +

                      + + + new + + + EdgeDsl(underlying: Edge) + +

                      + + Permalink + + +

                      underlying

                      The original Java instance to wrap

                      +
                    +
                    + + + + + +
                    +

                    Value Members

                    +
                    1. + + +

                      + + final + def + + + !=(arg0: Any): Boolean + +

                      + + Permalink + + +
                      Definition Classes
                      AnyRef → Any
                      +
                    2. + + +

                      + + final + def + + + ##(): Int + +

                      + + Permalink + + +
                      Definition Classes
                      AnyRef → Any
                      +
                    3. + + +

                      + + final + def + + + ==(arg0: Any): Boolean + +

                      + + Permalink + + +
                      Definition Classes
                      AnyRef → Any
                      +
                    4. + + +

                      + + + def + + + and(prop: Property): ElementDsl[Edge] + +

                      + + Permalink + + +

                      Alias for VertexDsl.withProperty

                      Definition Classes
                      ElementDsl
                      +
                    5. + + +

                      + + final + def + + + asInstanceOf[T0]: T0 + +

                      + + Permalink + + +
                      Definition Classes
                      Any
                      +
                    6. + + +

                      + + + def + + + clone(): AnyRef + +

                      + + Permalink + + +
                      Attributes
                      protected[java.lang]
                      Definition Classes
                      AnyRef
                      Annotations
                      + @throws( + + ... + ) + +
                      +
                    7. + + +

                      + + final + def + + + eq(arg0: AnyRef): Boolean + +

                      + + Permalink + + +
                      Definition Classes
                      AnyRef
                      +
                    8. + + +

                      + + + def + + + equals(arg0: Any): Boolean + +

                      + + Permalink + + +
                      Definition Classes
                      AnyRef → Any
                      +
                    9. + + +

                      + + + def + + + finalize(): Unit + +

                      + + Permalink + + +
                      Attributes
                      protected[java.lang]
                      Definition Classes
                      AnyRef
                      Annotations
                      + @throws( + + classOf[java.lang.Throwable] + ) + +
                      +
                    10. + + +

                      + + final + def + + + getClass(): Class[_] + +

                      + + Permalink + + +
                      Definition Classes
                      AnyRef → Any
                      +
                    11. + + +

                      + + + def + + + hashCode(): Int + +

                      + + Permalink + + +
                      Definition Classes
                      AnyRef → Any
                      +
                    12. + + +

                      + + final + def + + + isInstanceOf[T0]: Boolean + +

                      + + Permalink + + +
                      Definition Classes
                      Any
                      +
                    13. + + +

                      + + + def + + + mandatoryProperty[T](name: String): T + +

                      + + Permalink + + +

                      Gets a mandatory property of a vertex

                      Gets a mandatory property of a vertex

                      Returns a property if it exists or not. This method can be used to retrieve properties baked in the schema, so + it must be present. The result is not wrapped in an Option[T], so if the property does not exist on the database + result will be null.

                      Example

                      existing.dsl.mandatoryProperty[String]("name") // String
                      T

                      Property type

                      name

                      The filed name of the property

                      Definition Classes
                      ElementDsl
                      +
                    14. + + +

                      + + final + def + + + ne(arg0: AnyRef): Boolean + +

                      + + Permalink + + +
                      Definition Classes
                      AnyRef
                      +
                    15. + + +

                      + + final + def + + + notify(): Unit + +

                      + + Permalink + + +
                      Definition Classes
                      AnyRef
                      +
                    16. + + +

                      + + final + def + + + notifyAll(): Unit + +

                      + + Permalink + + +
                      Definition Classes
                      AnyRef
                      +
                    17. + + +

                      + + + def + + + property[T](name: String): Option[T] + +

                      + + Permalink + + +

                      Gets a property of a vertex

                      Gets a property of a vertex

                      Example

                      existing.dsl.property[String]("name") // Option[String]
                      T

                      Property type

                      name

                      The filed name of the property

                      Definition Classes
                      ElementDsl
                      +
                    18. + + +

                      + + final + def + + + synchronized[T0](arg0: ⇒ T0): T0 + +

                      + + Permalink + + +
                      Definition Classes
                      AnyRef
                      +
                    19. + + +

                      + + + def + + + toString(): String + +

                      + + Permalink + + +
                      Definition Classes
                      AnyRef → Any
                      +
                    20. + + +

                      + + + val + + + underlying: Edge + +

                      + + Permalink + + +

                      The original Java instance to wrap

                      The original Java instance to wrap

                      Definition Classes
                      EdgeDslElementDsl
                      +
                    21. + + +

                      + + final + def + + + wait(): Unit + +

                      + + Permalink + + +
                      Definition Classes
                      AnyRef
                      Annotations
                      + @throws( + + ... + ) + +
                      +
                    22. + + +

                      + + final + def + + + wait(arg0: Long, arg1: Int): Unit + +

                      + + Permalink + + +
                      Definition Classes
                      AnyRef
                      Annotations
                      + @throws( + + ... + ) + +
                      +
                    23. + + +

                      + + final + def + + + wait(arg0: Long): Unit + +

                      + + Permalink + + +
                      Definition Classes
                      AnyRef
                      Annotations
                      + @throws( + + ... + ) + +
                      +
                    24. + + +

                      + + + def + + + withProperty(prop: Property): ElementDsl[Edge] + +

                      + + Permalink + + +

                      Adds a property to existing edge

                      Adds a property to existing edge

                      Example

                      existing.dsl withProperty "name" -> "ACME Software Solutions" and "year" -> 2017
                      +existing.dsl withProperty "name" -> Some("foo") // will be persisted
                      +existing.dsl withProperty "name" -> None // nothing will happen
                      +existing.dsl withProperty "name" -> null // nothing will happen
                      prop

                      The property to set

                      Definition Classes
                      ElementDsl
                      +
                    +
                    + + + + +
                    + +
                    +
                    +

                    Inherited from ElementDsl[Edge]

                    +
                    +

                    Inherited from AnyRef

                    +
                    +

                    Inherited from Any

                    +
                    + +
                    + +
                    +
                    +

                    Ungrouped

                    + +
                    +
                    + +
                    + +
                    + + + + + + diff --git a/docs/api/2.11/ch/acmesoftware/orientDbScalaDsl/VertexDsl$.html b/docs/api/2.11/ch/acmesoftware/orientDbScalaDsl/ElementDsl$.html similarity index 90% rename from docs/api/2.11/ch/acmesoftware/orientDbScalaDsl/VertexDsl$.html rename to docs/api/2.11/ch/acmesoftware/orientDbScalaDsl/ElementDsl$.html index 100627f..fb3fc1a 100644 --- a/docs/api/2.11/ch/acmesoftware/orientDbScalaDsl/VertexDsl$.html +++ b/docs/api/2.11/ch/acmesoftware/orientDbScalaDsl/ElementDsl$.html @@ -1,9 +1,9 @@ - VertexDsl - ch.acmesoftware.orientDbScalaDsl.VertexDsl - - + ElementDsl - ch.acmesoftware.orientDbScalaDsl.ElementDsl + + @@ -16,7 +16,7 @@ + + + + + + + + + + +

                    + + + trait + + + ElementDsl[U <: Element] extends AnyRef + +

                    + +
                    + Linear Supertypes +
                    AnyRef, Any
                    +
                    + Known Subclasses + +
                    + + +
                    +
                    +
                    + Ordering +
                      + +
                    1. Alphabetic
                    2. +
                    3. By Inheritance
                    4. +
                    +
                    +
                    + Inherited
                    +
                    +
                      +
                    1. ElementDsl
                    2. AnyRef
                    3. Any
                    4. +
                    +
                    + +
                      +
                    1. Hide All
                    2. +
                    3. Show All
                    4. +
                    +
                    +
                    + Visibility +
                    1. Public
                    2. All
                    +
                    +
                    + +
                    +
                    + + + + +
                    +

                    Abstract Value Members

                    +
                    1. + + +

                      + + abstract + val + + + underlying: U + +

                      + + Permalink + + + +
                    +
                    + +
                    +

                    Concrete Value Members

                    +
                    1. + + +

                      + + final + def + + + !=(arg0: Any): Boolean + +

                      + + Permalink + + +
                      Definition Classes
                      AnyRef → Any
                      +
                    2. + + +

                      + + final + def + + + ##(): Int + +

                      + + Permalink + + +
                      Definition Classes
                      AnyRef → Any
                      +
                    3. + + +

                      + + final + def + + + ==(arg0: Any): Boolean + +

                      + + Permalink + + +
                      Definition Classes
                      AnyRef → Any
                      +
                    4. + + +

                      + + + def + + + and(prop: Property): ElementDsl[U] + +

                      + + Permalink + + +

                      Alias for VertexDsl.withProperty

                      +
                    5. + + +

                      + + final + def + + + asInstanceOf[T0]: T0 + +

                      + + Permalink + + +
                      Definition Classes
                      Any
                      +
                    6. + + +

                      + + + def + + + clone(): AnyRef + +

                      + + Permalink + + +
                      Attributes
                      protected[java.lang]
                      Definition Classes
                      AnyRef
                      Annotations
                      + @throws( + + ... + ) + +
                      +
                    7. + + +

                      + + final + def + + + eq(arg0: AnyRef): Boolean + +

                      + + Permalink + + +
                      Definition Classes
                      AnyRef
                      +
                    8. + + +

                      + + + def + + + equals(arg0: Any): Boolean + +

                      + + Permalink + + +
                      Definition Classes
                      AnyRef → Any
                      +
                    9. + + +

                      + + + def + + + finalize(): Unit + +

                      + + Permalink + + +
                      Attributes
                      protected[java.lang]
                      Definition Classes
                      AnyRef
                      Annotations
                      + @throws( + + classOf[java.lang.Throwable] + ) + +
                      +
                    10. + + +

                      + + final + def + + + getClass(): Class[_] + +

                      + + Permalink + + +
                      Definition Classes
                      AnyRef → Any
                      +
                    11. + + +

                      + + + def + + + hashCode(): Int + +

                      + + Permalink + + +
                      Definition Classes
                      AnyRef → Any
                      +
                    12. + + +

                      + + final + def + + + isInstanceOf[T0]: Boolean + +

                      + + Permalink + + +
                      Definition Classes
                      Any
                      +
                    13. + + +

                      + + + def + + + mandatoryProperty[T](name: String): T + +

                      + + Permalink + + +

                      Gets a mandatory property of a vertex

                      Gets a mandatory property of a vertex

                      Returns a property if it exists or not. This method can be used to retrieve properties baked in the schema, so + it must be present. The result is not wrapped in an Option[T], so if the property does not exist on the database + result will be null.

                      Example

                      existing.dsl.mandatoryProperty[String]("name") // String
                      T

                      Property type

                      name

                      The filed name of the property

                      +
                    14. + + +

                      + + final + def + + + ne(arg0: AnyRef): Boolean + +

                      + + Permalink + + +
                      Definition Classes
                      AnyRef
                      +
                    15. + + +

                      + + final + def + + + notify(): Unit + +

                      + + Permalink + + +
                      Definition Classes
                      AnyRef
                      +
                    16. + + +

                      + + final + def + + + notifyAll(): Unit + +

                      + + Permalink + + +
                      Definition Classes
                      AnyRef
                      +
                    17. + + +

                      + + + def + + + property[T](name: String): Option[T] + +

                      + + Permalink + + +

                      Gets a property of a vertex

                      Gets a property of a vertex

                      Example

                      existing.dsl.property[String]("name") // Option[String]
                      T

                      Property type

                      name

                      The filed name of the property

                      +
                    18. + + +

                      + + final + def + + + synchronized[T0](arg0: ⇒ T0): T0 + +

                      + + Permalink + + +
                      Definition Classes
                      AnyRef
                      +
                    19. + + +

                      + + + def + + + toString(): String + +

                      + + Permalink + + +
                      Definition Classes
                      AnyRef → Any
                      +
                    20. + + +

                      + + final + def + + + wait(): Unit + +

                      + + Permalink + + +
                      Definition Classes
                      AnyRef
                      Annotations
                      + @throws( + + ... + ) + +
                      +
                    21. + + +

                      + + final + def + + + wait(arg0: Long, arg1: Int): Unit + +

                      + + Permalink + + +
                      Definition Classes
                      AnyRef
                      Annotations
                      + @throws( + + ... + ) + +
                      +
                    22. + + +

                      + + final + def + + + wait(arg0: Long): Unit + +

                      + + Permalink + + +
                      Definition Classes
                      AnyRef
                      Annotations
                      + @throws( + + ... + ) + +
                      +
                    23. + + +

                      + + + def + + + withProperty(prop: Property): ElementDsl[U] + +

                      + + Permalink + + +

                      Adds a property to existing edge

                      Adds a property to existing edge

                      Example

                      existing.dsl withProperty "name" -> "ACME Software Solutions" and "year" -> 2017
                      +existing.dsl withProperty "name" -> Some("foo") // will be persisted
                      +existing.dsl withProperty "name" -> None // nothing will happen
                      +existing.dsl withProperty "name" -> null // nothing will happen
                      prop

                      The property to set

                      +
                    +
                    + + + + +
                    + +
                    +
                    +

                    Inherited from AnyRef

                    +
                    +

                    Inherited from Any

                    +
                    + +
                    + +
                    +
                    +

                    Ungrouped

                    + +
                    +
                    + +
                    + +
                    + + + + + + diff --git a/docs/api/2.11/ch/acmesoftware/orientDbScalaDsl/GraphDsl.html b/docs/api/2.11/ch/acmesoftware/orientDbScalaDsl/GraphDsl.html index e57f11e..a77288e 100644 --- a/docs/api/2.11/ch/acmesoftware/orientDbScalaDsl/GraphDsl.html +++ b/docs/api/2.11/ch/acmesoftware/orientDbScalaDsl/GraphDsl.html @@ -90,7 +90,7 @@

                    Instance Constructors

                    1. - +

                      @@ -98,20 +98,71 @@

                      new - GraphDsl(g: OrientBaseGraph) + GraphDsl(underlying: OrientBaseGraph)

                      - + Permalink -

                      g

                      The original Java instance to wrap

                      +

                      underlying

                      The original Java instance to wrap

                    Type Members

                    -
                    1. +
                      1. + + +

                        + + + type + + + FromVertex = VertexDsl + +

                        + + Permalink + + + +
                      2. + + +

                        + + + type + + + Label = String + +

                        + + Permalink + + + +
                      3. + + +

                        + + + type + + + ToVertex = VertexDsl + +

                        + + Permalink + + + +
                      4. @@ -186,6 +237,27 @@

                        Definition Classes
                        AnyRef → Any
                        +

                      5. + + +

                        + + + def + + + addEdge(e: (Label, (FromVertex, ToVertex))): EdgeDsl + +

                        + + Permalink + + +

                        Add an edge to graph

                        Add an edge to graph

                        EXAMPLE

                        val company = g addVertex "Company"
                        +val employee = g addVertex "Employee"
                        +
                        +// create edge: Employee --(WorksFor)--> Company
                        +val e1 = g.dsl addEdge "WorksFor" -> (employee -> company)
                        e

                        The edge definition which is a nested tuple containing label and (in / out) vertices

                        returns

                        The EdgeDsl of the just created edge

                      6. @@ -245,6 +317,23 @@

                        )

                    +

                  109. + + +

                    + + + def + + + commit(): Unit + +

                    + + Permalink + + +

                    Commits the transaction

                  110. @@ -352,7 +441,7 @@

                    g.dsl findVertices "City" filter "name" -> "Zurich" filter "zip" -> 8000 single // list -g.dsl findVertices "City" filter "name" -> "Zurich" filter "zip" -> 8000 list
                    label

                    The label to filter by

                    returns

                    A by-label filter wuery

                    +g.dsl findVertices "City" filter "name" -> "Zurich" filter "zip" -> 8000 list
                    label

                    The label to filter by

                    returns

                    A by-label filter query

                  111. @@ -506,6 +595,23 @@

                    Definition Classes
                    AnyRef → Any
                    +

                  112. + + +

                    + + + val + + + underlying: OrientBaseGraph + +

                    + + Permalink + + +

                    The original Java instance to wrap

                  113. diff --git a/docs/api/2.11/ch/acmesoftware/orientDbScalaDsl/VertexDsl.html b/docs/api/2.11/ch/acmesoftware/orientDbScalaDsl/VertexDsl.html index a606557..773847a 100644 --- a/docs/api/2.11/ch/acmesoftware/orientDbScalaDsl/VertexDsl.html +++ b/docs/api/2.11/ch/acmesoftware/orientDbScalaDsl/VertexDsl.html @@ -28,12 +28,10 @@
                    - Class/Object + Class

                    ch.acmesoftware.orientDbScalaDsl

                    -

                    VertexDsl

                    - Related Docs: - object VertexDsl - | package orientDbScalaDsl +

                    VertexDsl

                    Related Doc: + package orientDbScalaDsl

                    Permalink @@ -47,14 +45,14 @@

                    class - VertexDsl extends AnyRef + VertexDsl extends ElementDsl[Vertex]

                    -

                    DSL extension for the Element class

                    See methods for detailed API and examples... +

                    DSL extension for the Vertex class

                    See methods for detailed API and examples...

                    Linear Supertypes -
                    AnyRef, Any
                    +
                    ElementDsl[Vertex], AnyRef, Any
                    @@ -72,7 +70,7 @@

                    Inherited
                      -
                    1. VertexDsl
                    2. AnyRef
                    3. Any
                    4. +
                    5. VertexDsl
                    6. ElementDsl
                    7. AnyRef
                    8. Any

                    @@ -92,7 +90,7 @@

                    Instance Constructors

                    1. - +

                      @@ -100,14 +98,14 @@

                      new - VertexDsl(v: Element) + VertexDsl(underlying: Vertex)

                      - + Permalink -

                      v

                      The original Java instance to wrap

                      +

                      underlying

                      The original Java instance to wrap

                    @@ -168,23 +166,23 @@

                    Definition Classes
                    AnyRef → Any
                    -

                  114. - - +
                  115. + +

                    def - and(prop: Property): VertexDsl + and(prop: Property): ElementDsl[Vertex]

                    - + Permalink -

                    Alias for VertexDsl.withProperty

                    +

                    Alias for VertexDsl.withProperty

                    Definition Classes
                    ElementDsl
                  116. @@ -316,6 +314,23 @@

                    Definition Classes
                    AnyRef → Any
                    +

                  117. + + +

                    + + + def + + + in(label: String): Iterable[EdgeDsl] + +

                    + + Permalink + + +
                  118. @@ -333,7 +348,7 @@

                    Definition Classes
                    Any
                    -

                  119. +
                  120. @@ -342,7 +357,7 @@

                    def - mandatoryProperty[T](name: String): T + mandatoryProperty[T](name: String): T

                    @@ -351,7 +366,7 @@

                    Gets a mandatory property of a vertex

                    Gets a mandatory property of a vertex

                    Returns a property if it exists or not. This method can be used to retrieve properties baked in the schema, so it must be present. The result is not wrapped in an Option[T], so if the property does not exist on the database - result will be null.

                    Example

                    existing.dsl.mandatoryProperty[String]("name") // String
                    T

                    Property type

                    name

                    The filed name of the property

                    + result will be null.

                    Example

                    existing.dsl.mandatoryProperty[String]("name") // String
                    T

                    Property type

                    name

                    The filed name of the property

                    Definition Classes
                    ElementDsl
                  121. @@ -403,7 +418,24 @@

                    Definition Classes
                    AnyRef
                    -

                  122. +
                  123. + + +

                    + + + def + + + out(label: String): Iterable[EdgeDsl] + +

                    + + Permalink + + + +
                  124. @@ -412,14 +444,14 @@

                    def - property[T](name: String): Option[T] + property[T](name: String): Option[T]

                    Permalink -

                    Gets a property of a vertex

                    Gets a property of a vertex

                    Example

                    existing.dsl.property[String]("name") // Option[String]
                    T

                    Property type

                    name

                    The filed name of the property

                    +

                    Gets a property of a vertex

                    Gets a property of a vertex

                    Example

                    existing.dsl.property[String]("name") // Option[String]
                    T

                    Property type

                    name

                    The filed name of the property

                    Definition Classes
                    ElementDsl
                  125. @@ -454,23 +486,23 @@

                    Definition Classes
                    AnyRef → Any
                    -

                  126. - - +
                  127. + +

                    val - v: Element + underlying: Vertex

                    - + Permalink -

                    The original Java instance to wrap

                    +

                    The original Java instance to wrap

                    The original Java instance to wrap

                    Definition Classes
                    VertexDslElementDsl
                  128. @@ -540,26 +572,26 @@

                    ) -

                  129. - - +
                  130. + +

                    def - withProperty(prop: Property): VertexDsl + withProperty(prop: Property): ElementDsl[Vertex]

                    - + Permalink -

                    Adds a property to existing vertex

                    Adds a property to existing vertex

                    Example

                    existing.dsl withProperty "name" -> "ACME Software Solutions" and "year" -> 2017
                    +      

                    Adds a property to existing edge

                    Adds a property to existing edge

                    Example

                    existing.dsl withProperty "name" -> "ACME Software Solutions" and "year" -> 2017
                     existing.dsl withProperty "name" -> Some("foo") // will be persisted
                     existing.dsl withProperty "name" -> None // nothing will happen
                    -existing.dsl withProperty "name" -> null // nothing will happen
                    prop

                    The property to set

                    +existing.dsl withProperty "name" -> null // nothing will happen
                    prop

                    The property to set

                    Definition Classes
                    ElementDsl
                  131. @@ -569,7 +601,9 @@

                    -
                    +
                    +

                    Inherited from ElementDsl[Vertex]

                    +

                    Inherited from AnyRef

                    Inherited from Any

                    diff --git a/docs/api/2.11/ch/acmesoftware/orientDbScalaDsl/VertexTypeDsl.html b/docs/api/2.11/ch/acmesoftware/orientDbScalaDsl/VertexTypeDsl.html index 37d231d..c99a726 100644 --- a/docs/api/2.11/ch/acmesoftware/orientDbScalaDsl/VertexTypeDsl.html +++ b/docs/api/2.11/ch/acmesoftware/orientDbScalaDsl/VertexTypeDsl.html @@ -92,7 +92,7 @@

                    Instance Constructors

                    1. - +

                      @@ -100,14 +100,14 @@

                      new - VertexTypeDsl(vt: OrientVertexType) + VertexTypeDsl(underlying: OrientVertexType)

                      - + Permalink -

                      vt

                      The original Java instance to wrap

                      +

                      underlying

                      The original Java instance to wrap

                    @@ -418,6 +418,23 @@

                    Definition Classes
                    AnyRef → Any
                    +
                  132. + + +

                    + + + val + + + underlying: OrientVertexType + +

                    + + Permalink + + +

                    The original Java instance to wrap

                  133. diff --git a/docs/api/2.11/ch/acmesoftware/orientDbScalaDsl/package$$EdgeWrapper.html b/docs/api/2.11/ch/acmesoftware/orientDbScalaDsl/package$$EdgeWrapper.html new file mode 100644 index 0000000..26ae6e3 --- /dev/null +++ b/docs/api/2.11/ch/acmesoftware/orientDbScalaDsl/package$$EdgeWrapper.html @@ -0,0 +1,519 @@ + + + + EdgeWrapper - ch.acmesoftware.orientDbScalaDsl.EdgeWrapper + + + + + + + + + + + + + + + +
                    + Class +

                    ch.acmesoftware.orientDbScalaDsl

                    +

                    EdgeWrapper

                    Related Doc: + package orientDbScalaDsl +

                    + + Permalink + + +
                    + +

                    + + implicit + class + + + EdgeWrapper extends AnyRef + +

                    + +

                    Wrapper providing VertexDsl

                    + Linear Supertypes +
                    AnyRef, Any
                    +
                    + + +
                    +
                    +
                    + Ordering +
                      + +
                    1. Alphabetic
                    2. +
                    3. By Inheritance
                    4. +
                    +
                    +
                    + Inherited
                    +
                    +
                      +
                    1. EdgeWrapper
                    2. AnyRef
                    3. Any
                    4. +
                    +
                    + +
                      +
                    1. Hide All
                    2. +
                    3. Show All
                    4. +
                    +
                    +
                    + Visibility +
                    1. Public
                    2. All
                    +
                    +
                    + +
                    +
                    +
                    +

                    Instance Constructors

                    +
                    1. + + +

                      + + + new + + + EdgeWrapper(e: Edge) + +

                      + + Permalink + + + +
                    +
                    + + + + + +
                    +

                    Value Members

                    +
                    1. + + +

                      + + final + def + + + !=(arg0: Any): Boolean + +

                      + + Permalink + + +
                      Definition Classes
                      AnyRef → Any
                      +
                    2. + + +

                      + + final + def + + + ##(): Int + +

                      + + Permalink + + +
                      Definition Classes
                      AnyRef → Any
                      +
                    3. + + +

                      + + final + def + + + ==(arg0: Any): Boolean + +

                      + + Permalink + + +
                      Definition Classes
                      AnyRef → Any
                      +
                    4. + + +

                      + + final + def + + + asInstanceOf[T0]: T0 + +

                      + + Permalink + + +
                      Definition Classes
                      Any
                      +
                    5. + + +

                      + + + def + + + clone(): AnyRef + +

                      + + Permalink + + +
                      Attributes
                      protected[java.lang]
                      Definition Classes
                      AnyRef
                      Annotations
                      + @throws( + + ... + ) + +
                      +
                    6. + + +

                      + + + def + + + dsl: EdgeDsl + +

                      + + Permalink + + + +
                    7. + + +

                      + + final + def + + + eq(arg0: AnyRef): Boolean + +

                      + + Permalink + + +
                      Definition Classes
                      AnyRef
                      +
                    8. + + +

                      + + + def + + + equals(arg0: Any): Boolean + +

                      + + Permalink + + +
                      Definition Classes
                      AnyRef → Any
                      +
                    9. + + +

                      + + + def + + + finalize(): Unit + +

                      + + Permalink + + +
                      Attributes
                      protected[java.lang]
                      Definition Classes
                      AnyRef
                      Annotations
                      + @throws( + + classOf[java.lang.Throwable] + ) + +
                      +
                    10. + + +

                      + + final + def + + + getClass(): Class[_] + +

                      + + Permalink + + +
                      Definition Classes
                      AnyRef → Any
                      +
                    11. + + +

                      + + + def + + + hashCode(): Int + +

                      + + Permalink + + +
                      Definition Classes
                      AnyRef → Any
                      +
                    12. + + +

                      + + final + def + + + isInstanceOf[T0]: Boolean + +

                      + + Permalink + + +
                      Definition Classes
                      Any
                      +
                    13. + + +

                      + + final + def + + + ne(arg0: AnyRef): Boolean + +

                      + + Permalink + + +
                      Definition Classes
                      AnyRef
                      +
                    14. + + +

                      + + final + def + + + notify(): Unit + +

                      + + Permalink + + +
                      Definition Classes
                      AnyRef
                      +
                    15. + + +

                      + + final + def + + + notifyAll(): Unit + +

                      + + Permalink + + +
                      Definition Classes
                      AnyRef
                      +
                    16. + + +

                      + + final + def + + + synchronized[T0](arg0: ⇒ T0): T0 + +

                      + + Permalink + + +
                      Definition Classes
                      AnyRef
                      +
                    17. + + +

                      + + + def + + + toString(): String + +

                      + + Permalink + + +
                      Definition Classes
                      AnyRef → Any
                      +
                    18. + + +

                      + + final + def + + + wait(): Unit + +

                      + + Permalink + + +
                      Definition Classes
                      AnyRef
                      Annotations
                      + @throws( + + ... + ) + +
                      +
                    19. + + +

                      + + final + def + + + wait(arg0: Long, arg1: Int): Unit + +

                      + + Permalink + + +
                      Definition Classes
                      AnyRef
                      Annotations
                      + @throws( + + ... + ) + +
                      +
                    20. + + +

                      + + final + def + + + wait(arg0: Long): Unit + +

                      + + Permalink + + +
                      Definition Classes
                      AnyRef
                      Annotations
                      + @throws( + + ... + ) + +
                      +
                    +
                    + + + + +
                    + +
                    +
                    +

                    Inherited from AnyRef

                    +
                    +

                    Inherited from Any

                    +
                    + +
                    + +
                    +
                    +

                    Ungrouped

                    + +
                    +
                    + +
                    + +
                    + + + + + + diff --git a/docs/api/2.11/ch/acmesoftware/orientDbScalaDsl/package$$OrientGraphWrapper.html b/docs/api/2.11/ch/acmesoftware/orientDbScalaDsl/package$$GraphWrapper.html similarity index 87% rename from docs/api/2.11/ch/acmesoftware/orientDbScalaDsl/package$$OrientGraphWrapper.html rename to docs/api/2.11/ch/acmesoftware/orientDbScalaDsl/package$$GraphWrapper.html index 5afcd06..607b18f 100644 --- a/docs/api/2.11/ch/acmesoftware/orientDbScalaDsl/package$$OrientGraphWrapper.html +++ b/docs/api/2.11/ch/acmesoftware/orientDbScalaDsl/package$$GraphWrapper.html @@ -1,9 +1,9 @@ - OrientGraphWrapper - ch.acmesoftware.orientDbScalaDsl.OrientGraphWrapper - - + GraphWrapper - ch.acmesoftware.orientDbScalaDsl.GraphWrapper + + @@ -16,7 +16,7 @@ + + +
                    +
                    EdgeDsl
                    + +
                    +
                    EdgeWrapper
                    + +
                    +
                    ElementDsl
                    + +
                    + diff --git a/docs/api/2.11/index/index-f.html b/docs/api/2.11/index/index-f.html index 0307ed6..98a86f2 100644 --- a/docs/api/2.11/index/index-f.html +++ b/docs/api/2.11/index/index-f.html @@ -11,6 +11,9 @@
                    +
                    FromVertex
                    + +
                    filter
                    diff --git a/docs/api/2.11/index/index-g.html b/docs/api/2.11/index/index-g.html index 4d3e72d..54fbfb6 100644 --- a/docs/api/2.11/index/index-g.html +++ b/docs/api/2.11/index/index-g.html @@ -13,6 +13,9 @@
                    GraphDsl
                    +
                    +
                    GraphWrapper
                    +
                    getVertexType
                    diff --git a/docs/api/2.11/index/index-i.html b/docs/api/2.11/index/index-i.html new file mode 100644 index 0000000..82e33dc --- /dev/null +++ b/docs/api/2.11/index/index-i.html @@ -0,0 +1,17 @@ + + + + + + + + + + + + +
                    +
                    in
                    + +
                    + diff --git a/docs/api/2.11/index/index-l.html b/docs/api/2.11/index/index-l.html index 33d2d40..ffce94f 100644 --- a/docs/api/2.11/index/index-l.html +++ b/docs/api/2.11/index/index-l.html @@ -11,6 +11,9 @@
                    +
                    Label
                    + +
                    list
                    diff --git a/docs/api/2.11/index/index-m.html b/docs/api/2.11/index/index-m.html index c715513..dbf954d 100644 --- a/docs/api/2.11/index/index-m.html +++ b/docs/api/2.11/index/index-m.html @@ -12,6 +12,6 @@
                    mandatoryProperty
                    - +
                    diff --git a/docs/api/2.11/index/index-o.html b/docs/api/2.11/index/index-o.html index 5361384..a653af0 100644 --- a/docs/api/2.11/index/index-o.html +++ b/docs/api/2.11/index/index-o.html @@ -11,13 +11,10 @@
                    -
                    OrientGraphWrapper
                    - -
                    -
                    OrientVertexTypeWrapper
                    - -
                    orientDbScalaDsl
                    +
                    +
                    out
                    +
                    diff --git a/docs/api/2.11/index/index-p.html b/docs/api/2.11/index/index-p.html index d91e00b..b2a8e63 100644 --- a/docs/api/2.11/index/index-p.html +++ b/docs/api/2.11/index/index-p.html @@ -12,12 +12,12 @@
                    Property
                    - +
                    PropertyDefinition
                    property
                    - +
                    diff --git a/docs/api/2.11/index/index-t.html b/docs/api/2.11/index/index-t.html new file mode 100644 index 0000000..6c90edd --- /dev/null +++ b/docs/api/2.11/index/index-t.html @@ -0,0 +1,17 @@ + + + + + + + + + + + + +
                    +
                    ToVertex
                    + +
                    + diff --git a/docs/api/2.11/index/index-u.html b/docs/api/2.11/index/index-u.html index ab0bf8c..c926f77 100644 --- a/docs/api/2.11/index/index-u.html +++ b/docs/api/2.11/index/index-u.html @@ -11,6 +11,9 @@
                    +
                    underlying
                    + +
                    unique
                    diff --git a/docs/api/2.11/index/index-v.html b/docs/api/2.11/index/index-v.html index 09826ec..cd702ba 100644 --- a/docs/api/2.11/index/index-v.html +++ b/docs/api/2.11/index/index-v.html @@ -16,14 +16,14 @@
                    VertexTypeDsl
                    +
                    +
                    VertexTypeWrapper
                    +
                    VertexWrapper
                    VerticlesFilterQuery
                    -
                    -
                    v
                    -
                    diff --git a/docs/api/2.11/index/index-w.html b/docs/api/2.11/index/index-w.html index 44adf9b..e6e3e75 100644 --- a/docs/api/2.11/index/index-w.html +++ b/docs/api/2.11/index/index-w.html @@ -12,6 +12,6 @@
                    withProperty
                    - +
                    diff --git a/docs/api/2.12/ch/acmesoftware/orientDbScalaDsl/EdgeDsl.html b/docs/api/2.12/ch/acmesoftware/orientDbScalaDsl/EdgeDsl.html new file mode 100644 index 0000000..5b48bab --- /dev/null +++ b/docs/api/2.12/ch/acmesoftware/orientDbScalaDsl/EdgeDsl.html @@ -0,0 +1,744 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                    +
                    +
                    +
                    +
                    +
                    +
                    +
                    +
                    +
                    +
                    +
                    +
                    +

                    Packages

                    + +
                    +
                    +
                    + +
                    +
                    c
                    +

                    ch.acmesoftware.orientDbScalaDsl

                    +

                    EdgeDsl + + + +

                    +

                    +
                    + +

                    + + + class + + + EdgeDsl extends ElementDsl[Edge] + +

                    + + +

                    DSL extension for the Edge class

                    See methods for detailed API and examples... +

                    + + Linear Supertypes + +
                    ElementDsl[Edge], AnyRef, Any
                    +
                    + + +
                    +
                    +
                    + + + + + +
                    +
                    +
                    + Ordering +
                      + +
                    1. Alphabetic
                    2. +
                    3. By Inheritance
                    4. +
                    +
                    +
                    + Inherited
                    +
                    +
                      +
                    1. EdgeDsl
                    2. ElementDsl
                    3. AnyRef
                    4. Any
                    5. +
                    +
                    + +
                      +
                    1. Hide All
                    2. +
                    3. Show All
                    4. +
                    +
                    +
                    + Visibility +
                    1. Public
                    2. All
                    +
                    +
                    +
                    + +
                    +
                    +
                    +

                    Instance Constructors

                    +
                    1. + + + + + + + + + new + + + EdgeDsl(underlying: Edge) + + +

                      underlying

                      The original Java instance to wrap

                      +
                    +
                    + + + + + +
                    +

                    Value Members

                    +
                      +
                    1. + + + + + + + + final + def + + + !=(arg0: Any): Boolean + + +
                      Definition Classes
                      AnyRef → Any
                      +
                    2. + + + + + + + + final + def + + + ##(): Int + + +
                      Definition Classes
                      AnyRef → Any
                      +
                    3. + + + + + + + + final + def + + + ==(arg0: Any): Boolean + + +
                      Definition Classes
                      AnyRef → Any
                      +
                    4. + + + + + + + + + def + + + and(prop: Property): ElementDsl[Edge] + + +

                      Alias for VertexDsl.withProperty

                      Definition Classes
                      ElementDsl
                      +
                    5. + + + + + + + + final + def + + + asInstanceOf[T0]: T0 + + +
                      Definition Classes
                      Any
                      +
                    6. + + + + + + + + + def + + + clone(): AnyRef + + +
                      Attributes
                      protected[java.lang]
                      Definition Classes
                      AnyRef
                      Annotations
                      + @throws( + + ... + ) + +
                      +
                    7. + + + + + + + + final + def + + + eq(arg0: AnyRef): Boolean + + +
                      Definition Classes
                      AnyRef
                      +
                    8. + + + + + + + + + def + + + equals(arg0: Any): Boolean + + +
                      Definition Classes
                      AnyRef → Any
                      +
                    9. + + + + + + + + + def + + + finalize(): Unit + + +
                      Attributes
                      protected[java.lang]
                      Definition Classes
                      AnyRef
                      Annotations
                      + @throws( + + classOf[java.lang.Throwable] + ) + +
                      +
                    10. + + + + + + + + final + def + + + getClass(): Class[_] + + +
                      Definition Classes
                      AnyRef → Any
                      +
                    11. + + + + + + + + + def + + + hashCode(): Int + + +
                      Definition Classes
                      AnyRef → Any
                      +
                    12. + + + + + + + + final + def + + + isInstanceOf[T0]: Boolean + + +
                      Definition Classes
                      Any
                      +
                    13. + + + + + + + + + def + + + mandatoryProperty[T](name: String): T + + +

                      Gets a mandatory property of a vertex

                      Gets a mandatory property of a vertex

                      Returns a property if it exists or not. This method can be used to retrieve properties baked in the schema, so + it must be present. The result is not wrapped in an Option[T], so if the property does not exist on the database + result will be null.

                      Example

                      existing.dsl.mandatoryProperty[String]("name") // String
                      T

                      Property type

                      name

                      The filed name of the property

                      Definition Classes
                      ElementDsl
                      +
                    14. + + + + + + + + final + def + + + ne(arg0: AnyRef): Boolean + + +
                      Definition Classes
                      AnyRef
                      +
                    15. + + + + + + + + final + def + + + notify(): Unit + + +
                      Definition Classes
                      AnyRef
                      +
                    16. + + + + + + + + final + def + + + notifyAll(): Unit + + +
                      Definition Classes
                      AnyRef
                      +
                    17. + + + + + + + + + def + + + property[T](name: String): Option[T] + + +

                      Gets a property of a vertex

                      Gets a property of a vertex

                      Example

                      existing.dsl.property[String]("name") // Option[String]
                      T

                      Property type

                      name

                      The filed name of the property

                      Definition Classes
                      ElementDsl
                      +
                    18. + + + + + + + + final + def + + + synchronized[T0](arg0: ⇒ T0): T0 + + +
                      Definition Classes
                      AnyRef
                      +
                    19. + + + + + + + + + def + + + toString(): String + + +
                      Definition Classes
                      AnyRef → Any
                      +
                    20. + + + + + + + + + val + + + underlying: Edge + + +
                      Definition Classes
                      EdgeDslElementDsl
                      +
                    21. + + + + + + + + final + def + + + wait(): Unit + + +
                      Definition Classes
                      AnyRef
                      Annotations
                      + @throws( + + ... + ) + +
                      +
                    22. + + + + + + + + final + def + + + wait(arg0: Long, arg1: Int): Unit + + +
                      Definition Classes
                      AnyRef
                      Annotations
                      + @throws( + + ... + ) + +
                      +
                    23. + + + + + + + + final + def + + + wait(arg0: Long): Unit + + +
                      Definition Classes
                      AnyRef
                      Annotations
                      + @throws( + + ... + ) + +
                      +
                    24. + + + + + + + + + def + + + withProperty(prop: Property): ElementDsl[Edge] + + +

                      Adds a property to existing edge

                      Adds a property to existing edge

                      Example

                      existing.dsl withProperty "name" -> "ACME Software Solutions" and "year" -> 2017
                      +existing.dsl withProperty "name" -> Some("foo") // will be persisted
                      +existing.dsl withProperty "name" -> None // nothing will happen
                      +existing.dsl withProperty "name" -> null // nothing will happen
                      prop

                      The property to set

                      Definition Classes
                      ElementDsl
                      +
                    25. +
                    +
                    + + + + +
                    + +
                    +
                    +

                    Inherited from ElementDsl[Edge]

                    +
                    +

                    Inherited from AnyRef

                    +
                    +

                    Inherited from Any

                    +
                    + +
                    + +
                    +
                    +

                    Ungrouped

                    + +
                    +
                    + +
                    + +
                    + + + +
                    +
                    +
                    + + diff --git a/docs/api/2.12/ch/acmesoftware/orientDbScalaDsl/VertexDsl$.html b/docs/api/2.12/ch/acmesoftware/orientDbScalaDsl/ElementDsl$.html similarity index 85% rename from docs/api/2.12/ch/acmesoftware/orientDbScalaDsl/VertexDsl$.html rename to docs/api/2.12/ch/acmesoftware/orientDbScalaDsl/ElementDsl$.html index fb8da80..885dcd0 100644 --- a/docs/api/2.12/ch/acmesoftware/orientDbScalaDsl/VertexDsl$.html +++ b/docs/api/2.12/ch/acmesoftware/orientDbScalaDsl/ElementDsl$.html @@ -127,6 +127,24 @@

                    Packages

                    Main DSL entry point

                    Main DSL entry point

                    This package provides a set of implicit classes (wrappers) which can be imported

                    Example

                    import ch.acmesoftware.orientDbScalaDsl._

                    The above import statement decorates the OrientDB Java API with a fluid Scala DSL

                    Definition Classes
                    acmesoftware
                  134. + + + + EdgeDsl + +
                  135. + + + + EdgeWrapper + +
                  136. + + + + ElementDsl + +
                  137. @@ -134,20 +152,14 @@

                    Packages

                  138. - - - OrientGraphWrapper + + + GraphWrapper
                  139. - - - OrientVertexTypeWrapper - -
                  140. - - - + + VertexDsl
                  141. @@ -156,6 +168,12 @@

                    Packages

                    VertexTypeDsl +
                  142. + + + + VertexTypeWrapper +
                  143. @@ -169,15 +187,15 @@

                    Packages

                    @@ -187,7 +205,7 @@

                    object - VertexDsl + ElementDsl

                    @@ -222,7 +240,7 @@

                    Inherited
                      -
                    1. VertexDsl
                    2. AnyRef
                    3. Any
                    4. +
                    5. ElementDsl
                    6. AnyRef
                    7. Any

                    @@ -244,10 +262,10 @@

                    Type Members

                    -
                    1. +
                      1. - + @@ -271,7 +289,7 @@

                        Value Members

                      2. - + @@ -287,7 +305,7 @@

                        Value Members

                      3. - + @@ -303,7 +321,7 @@

                        Value Members

                      4. - + @@ -319,7 +337,7 @@

                        Value Members

                      5. - + @@ -335,7 +353,7 @@

                        Value Members

                      6. - + @@ -357,7 +375,7 @@

                        Value Members

                      7. - + @@ -373,7 +391,7 @@

                        Value Members

                      8. - + @@ -389,7 +407,7 @@

                        Value Members

                      9. - + @@ -411,7 +429,7 @@

                        Value Members

                      10. - + @@ -427,7 +445,7 @@

                        Value Members

                      11. - + @@ -443,7 +461,7 @@

                        Value Members

                      12. - + @@ -459,7 +477,7 @@

                        Value Members

                      13. - + @@ -475,7 +493,7 @@

                        Value Members

                      14. - + @@ -491,7 +509,7 @@

                        Value Members

                      15. - + @@ -507,7 +525,7 @@

                        Value Members

                      16. - + @@ -523,7 +541,7 @@

                        Value Members

                      17. - + @@ -539,7 +557,7 @@

                        Value Members

                      18. - + @@ -561,7 +579,7 @@

                        Value Members

                      19. - + @@ -583,7 +601,7 @@

                        Value Members

                      20. - + diff --git a/docs/api/2.12/ch/acmesoftware/orientDbScalaDsl/ElementDsl.html b/docs/api/2.12/ch/acmesoftware/orientDbScalaDsl/ElementDsl.html new file mode 100644 index 0000000..ecd365c --- /dev/null +++ b/docs/api/2.12/ch/acmesoftware/orientDbScalaDsl/ElementDsl.html @@ -0,0 +1,732 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                        +
                        +
                        +
                        +
                        +
                        +
                        +
                        +
                        +
                        +
                        +
                        +
                        +

                        Packages

                        + +
                        +
                        +
                        + + + +

                        + + + trait + + + ElementDsl[U <: Element] extends AnyRef + +

                        + + +
                        + + Linear Supertypes + +
                        AnyRef, Any
                        +
                        + + Known Subclasses + + +
                        + + +
                        +
                        +
                        + + + + + +
                        +
                        +
                        + Ordering +
                          + +
                        1. Alphabetic
                        2. +
                        3. By Inheritance
                        4. +
                        +
                        +
                        + Inherited
                        +
                        +
                          +
                        1. ElementDsl
                        2. AnyRef
                        3. Any
                        4. +
                        +
                        + +
                          +
                        1. Hide All
                        2. +
                        3. Show All
                        4. +
                        +
                        +
                        + Visibility +
                        1. Public
                        2. All
                        +
                        +
                        +
                        + +
                        +
                        + + + + +
                        +

                        Abstract Value Members

                        +
                        1. + + + + + + + + abstract + val + + + underlying: U + + + +
                        +
                        + +
                        +

                        Concrete Value Members

                        +
                          +
                        1. + + + + + + + + final + def + + + !=(arg0: Any): Boolean + + +
                          Definition Classes
                          AnyRef → Any
                          +
                        2. + + + + + + + + final + def + + + ##(): Int + + +
                          Definition Classes
                          AnyRef → Any
                          +
                        3. + + + + + + + + final + def + + + ==(arg0: Any): Boolean + + +
                          Definition Classes
                          AnyRef → Any
                          +
                        4. + + + + + + + + + def + + + and(prop: Property): ElementDsl[U] + + +

                          Alias for VertexDsl.withProperty

                          +
                        5. + + + + + + + + final + def + + + asInstanceOf[T0]: T0 + + +
                          Definition Classes
                          Any
                          +
                        6. + + + + + + + + + def + + + clone(): AnyRef + + +
                          Attributes
                          protected[java.lang]
                          Definition Classes
                          AnyRef
                          Annotations
                          + @throws( + + ... + ) + +
                          +
                        7. + + + + + + + + final + def + + + eq(arg0: AnyRef): Boolean + + +
                          Definition Classes
                          AnyRef
                          +
                        8. + + + + + + + + + def + + + equals(arg0: Any): Boolean + + +
                          Definition Classes
                          AnyRef → Any
                          +
                        9. + + + + + + + + + def + + + finalize(): Unit + + +
                          Attributes
                          protected[java.lang]
                          Definition Classes
                          AnyRef
                          Annotations
                          + @throws( + + classOf[java.lang.Throwable] + ) + +
                          +
                        10. + + + + + + + + final + def + + + getClass(): Class[_] + + +
                          Definition Classes
                          AnyRef → Any
                          +
                        11. + + + + + + + + + def + + + hashCode(): Int + + +
                          Definition Classes
                          AnyRef → Any
                          +
                        12. + + + + + + + + final + def + + + isInstanceOf[T0]: Boolean + + +
                          Definition Classes
                          Any
                          +
                        13. + + + + + + + + + def + + + mandatoryProperty[T](name: String): T + + +

                          Gets a mandatory property of a vertex

                          Gets a mandatory property of a vertex

                          Returns a property if it exists or not. This method can be used to retrieve properties baked in the schema, so + it must be present. The result is not wrapped in an Option[T], so if the property does not exist on the database + result will be null.

                          Example

                          existing.dsl.mandatoryProperty[String]("name") // String
                          T

                          Property type

                          name

                          The filed name of the property

                          +
                        14. + + + + + + + + final + def + + + ne(arg0: AnyRef): Boolean + + +
                          Definition Classes
                          AnyRef
                          +
                        15. + + + + + + + + final + def + + + notify(): Unit + + +
                          Definition Classes
                          AnyRef
                          +
                        16. + + + + + + + + final + def + + + notifyAll(): Unit + + +
                          Definition Classes
                          AnyRef
                          +
                        17. + + + + + + + + + def + + + property[T](name: String): Option[T] + + +

                          Gets a property of a vertex

                          Gets a property of a vertex

                          Example

                          existing.dsl.property[String]("name") // Option[String]
                          T

                          Property type

                          name

                          The filed name of the property

                          +
                        18. + + + + + + + + final + def + + + synchronized[T0](arg0: ⇒ T0): T0 + + +
                          Definition Classes
                          AnyRef
                          +
                        19. + + + + + + + + + def + + + toString(): String + + +
                          Definition Classes
                          AnyRef → Any
                          +
                        20. + + + + + + + + final + def + + + wait(): Unit + + +
                          Definition Classes
                          AnyRef
                          Annotations
                          + @throws( + + ... + ) + +
                          +
                        21. + + + + + + + + final + def + + + wait(arg0: Long, arg1: Int): Unit + + +
                          Definition Classes
                          AnyRef
                          Annotations
                          + @throws( + + ... + ) + +
                          +
                        22. + + + + + + + + final + def + + + wait(arg0: Long): Unit + + +
                          Definition Classes
                          AnyRef
                          Annotations
                          + @throws( + + ... + ) + +
                          +
                        23. + + + + + + + + + def + + + withProperty(prop: Property): ElementDsl[U] + + +

                          Adds a property to existing edge

                          Adds a property to existing edge

                          Example

                          existing.dsl withProperty "name" -> "ACME Software Solutions" and "year" -> 2017
                          +existing.dsl withProperty "name" -> Some("foo") // will be persisted
                          +existing.dsl withProperty "name" -> None // nothing will happen
                          +existing.dsl withProperty "name" -> null // nothing will happen
                          prop

                          The property to set

                          +
                        24. +
                        +
                        + + + + +
                        + +
                        +
                        +

                        Inherited from AnyRef

                        +
                        +

                        Inherited from Any

                        +
                        + +
                        + +
                        +
                        +

                        Ungrouped

                        + +
                        +
                        + +
                        + +
                        + + + +
                        +
                        +
                        + + diff --git a/docs/api/2.12/ch/acmesoftware/orientDbScalaDsl/GraphDsl.html b/docs/api/2.12/ch/acmesoftware/orientDbScalaDsl/GraphDsl.html index 6c704e4..d46096d 100644 --- a/docs/api/2.12/ch/acmesoftware/orientDbScalaDsl/GraphDsl.html +++ b/docs/api/2.12/ch/acmesoftware/orientDbScalaDsl/GraphDsl.html @@ -127,6 +127,24 @@

                        Packages

                        Main DSL entry point

                        Main DSL entry point

                        This package provides a set of implicit classes (wrappers) which can be imported

                        Example

                        import ch.acmesoftware.orientDbScalaDsl._

                        The above import statement decorates the OrientDB Java API with a fluid Scala DSL

                        Definition Classes
                        acmesoftware
                      21. + + + + EdgeDsl + +
                      22. + + + + EdgeWrapper + +
                      23. + + + + ElementDsl + +
                      24. @@ -134,20 +152,14 @@

                        Packages

                      25. - - - OrientGraphWrapper + + + GraphWrapper
                      26. - - - OrientVertexTypeWrapper - -
                      27. - - - + + VertexDsl
                      28. @@ -156,6 +168,12 @@

                        Packages

                        VertexTypeDsl +
                      29. + + + + VertexTypeWrapper +
                      30. @@ -242,9 +260,9 @@

                        Instance Constructors

                        1. - + - + @@ -253,16 +271,64 @@

                          Instance Constructors

                          new - GraphDsl(g: OrientBaseGraph) + GraphDsl(underlying: OrientBaseGraph) -

                          g

                          The original Java instance to wrap

                          +

                          underlying

                          The original Java instance to wrap

                        Type Members

                        -
                        1. +
                          1. + + + + + + + + + type + + + FromVertex = VertexDsl + + + +
                          2. + + + + + + + + + type + + + Label = String + + + +
                          3. + + + + + + + + + type + + + ToVertex = VertexDsl + + + +
                          4. @@ -336,6 +402,26 @@

                            Value Members

                            Definition Classes
                            AnyRef → Any
                            +
                          5. + + + + + + + + + def + + + addEdge(e: (Label, (FromVertex, ToVertex))): EdgeDsl + + +

                            Add an edge to graph

                            Add an edge to graph

                            EXAMPLE

                            val company = g addVertex "Company"
                            +val employee = g addVertex "Employee"
                            +
                            +// create edge: Employee --(WorksFor)--> Company
                            +val e1 = g.dsl addEdge "WorksFor" -> (employee -> company)
                            e

                            The edge definition which is a nested tuple containing label and (in / out) vertices

                            returns

                            The EdgeDsl of the just created edge

                          6. @@ -392,6 +478,22 @@

                            Value Members

                            )
                        +

                      31. + + + + + + + + + def + + + commit(): Unit + + +

                        Commits the transaction

                      32. @@ -494,7 +596,7 @@

                        Value Members

                        g.dsl findVertices "City" filter "name" -> "Zurich" filter "zip" -> 8000 single // list -g.dsl findVertices "City" filter "name" -> "Zurich" filter "zip" -> 8000 list
                    label

                    The label to filter by

                    returns

                    A by-label filter wuery

                    +g.dsl findVertices "City" filter "name" -> "Zurich" filter "zip" -> 8000 list
                  144. label

                    The label to filter by

                    returns

                    A by-label filter query

                  145. @@ -639,6 +741,22 @@

                    Value Members

                    Definition Classes
                    AnyRef → Any
                    +
                  146. + + + + + + + + + val + + + underlying: OrientBaseGraph + + +
                  147. diff --git a/docs/api/2.12/ch/acmesoftware/orientDbScalaDsl/VertexDsl.html b/docs/api/2.12/ch/acmesoftware/orientDbScalaDsl/VertexDsl.html index 477040e..a55f628 100644 --- a/docs/api/2.12/ch/acmesoftware/orientDbScalaDsl/VertexDsl.html +++ b/docs/api/2.12/ch/acmesoftware/orientDbScalaDsl/VertexDsl.html @@ -127,6 +127,24 @@

                    Packages

                    Main DSL entry point

                    Main DSL entry point

                    This package provides a set of implicit classes (wrappers) which can be imported

                    Example

                    import ch.acmesoftware.orientDbScalaDsl._

                    The above import statement decorates the OrientDB Java API with a fluid Scala DSL

                    Definition Classes
                    acmesoftware
                  148. + + + + EdgeDsl + +
                  149. + + + + EdgeWrapper + +
                  150. + + + + ElementDsl + +
                  151. @@ -134,20 +152,14 @@

                    Packages

                  152. - - - OrientGraphWrapper + + + GraphWrapper
                  153. - - - OrientVertexTypeWrapper - -
                  154. - - - + + VertexDsl
                  155. @@ -156,6 +168,12 @@

                    Packages

                    VertexTypeDsl +
                  156. + + + + VertexTypeWrapper +
                  157. @@ -169,16 +187,14 @@

                    Packages

                    -
                    c
                    +
                    c

                    ch.acmesoftware.orientDbScalaDsl

                    -

                    VertexDsl +

                    VertexDsl

                    -

                    - Companion object VertexDsl -

                    +

                    @@ -187,17 +203,17 @@

                    class - VertexDsl extends AnyRef + VertexDsl extends ElementDsl[Vertex]

                    -

                    DSL extension for the Element class

                    See methods for detailed API and examples... +

                    DSL extension for the Vertex class

                    See methods for detailed API and examples...

                    Linear Supertypes -
                    AnyRef, Any
                    +
                    ElementDsl[Vertex], AnyRef, Any
                    @@ -223,7 +239,7 @@

                    Inherited
                      -
                    1. VertexDsl
                    2. AnyRef
                    3. Any
                    4. +
                    5. VertexDsl
                    6. ElementDsl
                    7. AnyRef
                    8. Any

                    @@ -244,9 +260,9 @@

                    Instance Constructors

                    1. - + - + @@ -255,10 +271,10 @@

                      Instance Constructors

                      new - VertexDsl(v: Element) + VertexDsl(underlying: Vertex) -

                      v

                      The original Java instance to wrap

                      +

                      underlying

                      The original Java instance to wrap

                    @@ -317,10 +333,10 @@

                    Value Members

                    Definition Classes
                    AnyRef → Any
                    -
                  158. - +
                  159. + - + @@ -329,10 +345,10 @@

                    Value Members

                    def - and(prop: Property): VertexDsl + and(prop: Property): ElementDsl[Vertex] -

                    Alias for VertexDsl.withProperty

                    +

                    Alias for VertexDsl.withProperty

                    Definition Classes
                    ElementDsl
                  160. @@ -457,6 +473,22 @@

                    Value Members

                    Definition Classes
                    AnyRef → Any
                    +
                  161. + + + + + + + + + def + + + in(label: String): Iterable[EdgeDsl] + + +
                  162. @@ -473,7 +505,7 @@

                    Value Members

                    Definition Classes
                    Any
                    -
                  163. +
                  164. @@ -485,12 +517,12 @@

                    Value Members

                    def
                    - mandatoryProperty[T](name: String): T + mandatoryProperty[T](name: String): T

                    Gets a mandatory property of a vertex

                    Gets a mandatory property of a vertex

                    Returns a property if it exists or not. This method can be used to retrieve properties baked in the schema, so it must be present. The result is not wrapped in an Option[T], so if the property does not exist on the database - result will be null.

                    Example

                    existing.dsl.mandatoryProperty[String]("name") // String
                    T

                    Property type

                    name

                    The filed name of the property

                    + result will be null.

                    Example

                    existing.dsl.mandatoryProperty[String]("name") // String
                  165. T

                    Property type

                    name

                    The filed name of the property

                    Definition Classes
                    ElementDsl
                  166. @@ -539,7 +571,23 @@

                    Value Members

                    Definition Classes
                    AnyRef
                    -
                  167. +
                  168. + + + + + + + + + def + + + out(label: String): Iterable[EdgeDsl] + + + +
                  169. @@ -551,10 +599,10 @@

                    Value Members

                    def
                    - property[T](name: String): Option[T] + property[T](name: String): Option[T] -

                    Gets a property of a vertex

                    Gets a property of a vertex

                    Example

                    existing.dsl.property[String]("name") // Option[String]
                    T

                    Property type

                    name

                    The filed name of the property

                    +

                    Gets a property of a vertex

                  170. @@ -587,10 +635,10 @@

                    Value Members

                    Definition Classes
                    AnyRef → Any
                    -
                  171. - +
                  172. + - + @@ -599,10 +647,10 @@

                    Value Members

                    val - v: Element + underlying: Vertex - +
                    Definition Classes
                    VertexDslElementDsl
                  173. @@ -669,10 +717,10 @@

                    Value Members

                    ) -
                  174. - +
                  175. + - + @@ -681,13 +729,13 @@

                    Value Members

                    def - withProperty(prop: Property): VertexDsl + withProperty(prop: Property): ElementDsl[Vertex] -

                    Adds a property to existing vertex

                    Adds a property to existing vertex

                    Example

                    existing.dsl withProperty "name" -> "ACME Software Solutions" and "year" -> 2017
                    +      

                    Adds a property to existing edge

                    Adds a property to existing edge

                    Example

                    existing.dsl withProperty "name" -> "ACME Software Solutions" and "year" -> 2017
                     existing.dsl withProperty "name" -> Some("foo") // will be persisted
                     existing.dsl withProperty "name" -> None // nothing will happen
                    -existing.dsl withProperty "name" -> null // nothing will happen
                    prop

                    The property to set

                    +existing.dsl withProperty "name" -> null // nothing will happen
                    prop

                    The property to set

                    Definition Classes
                    ElementDsl
                  176. @@ -698,7 +746,9 @@

                    Value Members

                    -
                    +
                    +

                    Inherited from ElementDsl[Vertex]

                    +

                    Inherited from AnyRef

                    Inherited from Any

                    diff --git a/docs/api/2.12/ch/acmesoftware/orientDbScalaDsl/VertexTypeDsl$.html b/docs/api/2.12/ch/acmesoftware/orientDbScalaDsl/VertexTypeDsl$.html index 4396e61..684b162 100644 --- a/docs/api/2.12/ch/acmesoftware/orientDbScalaDsl/VertexTypeDsl$.html +++ b/docs/api/2.12/ch/acmesoftware/orientDbScalaDsl/VertexTypeDsl$.html @@ -127,6 +127,24 @@

                    Packages

                    Main DSL entry point

                    Main DSL entry point

                    This package provides a set of implicit classes (wrappers) which can be imported

                    Example

                    import ch.acmesoftware.orientDbScalaDsl._

                    The above import statement decorates the OrientDB Java API with a fluid Scala DSL

                    Definition Classes
                    acmesoftware
                  177. + + + + EdgeDsl + +
                  178. + + + + EdgeWrapper + +
                  179. + + + + ElementDsl + +
                  180. @@ -134,20 +152,14 @@

                    Packages

                  181. - - - OrientGraphWrapper + + + GraphWrapper
                  182. - - - OrientVertexTypeWrapper - -
                  183. - - - + + VertexDsl
                  184. @@ -156,6 +168,12 @@

                    Packages

                    VertexTypeDsl +
                  185. + + + + VertexTypeWrapper +
                  186. diff --git a/docs/api/2.12/ch/acmesoftware/orientDbScalaDsl/VertexTypeDsl.html b/docs/api/2.12/ch/acmesoftware/orientDbScalaDsl/VertexTypeDsl.html index aa89c11..8a310cc 100644 --- a/docs/api/2.12/ch/acmesoftware/orientDbScalaDsl/VertexTypeDsl.html +++ b/docs/api/2.12/ch/acmesoftware/orientDbScalaDsl/VertexTypeDsl.html @@ -127,6 +127,24 @@

                    Packages

                    Main DSL entry point

                    Main DSL entry point

                    This package provides a set of implicit classes (wrappers) which can be imported

                    Example

                    import ch.acmesoftware.orientDbScalaDsl._

                    The above import statement decorates the OrientDB Java API with a fluid Scala DSL

                    Definition Classes
                    acmesoftware
                  187. + + + + EdgeDsl + +
                  188. + + + + EdgeWrapper + +
                  189. + + + + ElementDsl + +
                  190. @@ -134,20 +152,14 @@

                    Packages

                  191. - - - OrientGraphWrapper + + + GraphWrapper
                  192. - - - OrientVertexTypeWrapper - -
                  193. - - - + + VertexDsl
                  194. @@ -156,6 +168,12 @@

                    Packages

                    VertexTypeDsl +
                  195. + + + + VertexTypeWrapper +
                  196. @@ -244,9 +262,9 @@

                    Instance Constructors

                    1. - + - + @@ -255,10 +273,10 @@

                      Instance Constructors

                      new - VertexTypeDsl(vt: OrientVertexType) + VertexTypeDsl(underlying: OrientVertexType) -

                      vt

                      The original Java instance to wrap

                      +

                      underlying

                      The original Java instance to wrap

                    @@ -553,6 +571,22 @@

                    Value Members

                    Definition Classes
                    AnyRef → Any
                    +
                  197. + + + + + + + + + val + + + underlying: OrientVertexType + + +
                  198. diff --git a/docs/api/2.12/ch/acmesoftware/orientDbScalaDsl/index.html b/docs/api/2.12/ch/acmesoftware/orientDbScalaDsl/index.html index af09a99..73ba122 100644 --- a/docs/api/2.12/ch/acmesoftware/orientDbScalaDsl/index.html +++ b/docs/api/2.12/ch/acmesoftware/orientDbScalaDsl/index.html @@ -125,6 +125,24 @@

                    Packages

                    Main DSL entry point

                    Main DSL entry point

                    This package provides a set of implicit classes (wrappers) which can be imported

                    Example

                    import ch.acmesoftware.orientDbScalaDsl._

                    The above import statement decorates the OrientDB Java API with a fluid Scala DSL

                    Definition Classes
                    acmesoftware
                  199. + + + + EdgeDsl + +
                  200. + + + + EdgeWrapper + +
                  201. + + + + ElementDsl + +
                  202. @@ -132,20 +150,14 @@

                    Packages

                  203. - - - OrientGraphWrapper + + + GraphWrapper
                  204. - - - OrientVertexTypeWrapper - -
                  205. - - - + + VertexDsl
                  206. @@ -154,6 +166,12 @@

                    Packages

                    VertexTypeDsl +
                  207. + + + + VertexTypeWrapper +
                  208. @@ -241,10 +259,10 @@

                    Type Members

                    -
                    1. - +
                      1. + - + @@ -253,17 +271,17 @@

                        Type Members

                        class - - GraphDsl - extends AnyRef + + EdgeDsl + extends ElementDsl[Edge] -

                        DSL extension for the OrientBaseGraph class

                        DSL extension for the OrientBaseGraph class

                        See methods for detailed API and examples... +

                        DSL extension for the Edge class

                        DSL extension for the Edge class

                        See methods for detailed API and examples...

                        -
                      2. - +
                      3. + - + @@ -272,16 +290,53 @@

                        Type Members

                        class - - OrientGraphWrapper + + EdgeWrapper extends AnyRef -

                        Wrapper providing GraphDsl

                        -
                      4. - +

                        Wrapper providing VertexDsl

                        +
                      5. + - + + + + + + + trait + + + + ElementDsl + [U <: Element] extends AnyRef + + + +
                      6. + + + + + + + + + class + + + + GraphDsl + extends AnyRef + + +

                        DSL extension for the OrientBaseGraph class

                        DSL extension for the OrientBaseGraph class

                        See methods for detailed API and examples... +

                        +
                      7. + + + @@ -290,16 +345,16 @@

                        Type Members

                        class - - OrientVertexTypeWrapper + + GraphWrapper extends AnyRef -

                        Wrapper providing VertexTypeDsl

                        +

                        Wrapper providing GraphDsl

                      8. - + - + @@ -308,12 +363,12 @@

                        Type Members

                        class - + VertexDsl - extends AnyRef + extends ElementDsl[Vertex] -

                        DSL extension for the Element class

                        DSL extension for the Element class

                        See methods for detailed API and examples... +

                        DSL extension for the Vertex class

                        DSL extension for the Vertex class

                        See methods for detailed API and examples...

                      9. @@ -334,6 +389,24 @@

                        Type Members

                        DSL extension for the OrientVertexType class

                        DSL extension for the OrientVertexType class

                        See methods for detailed API and examples...

                        +
                      10. + + + + + + + + implicit + class + + + + VertexTypeWrapper + extends AnyRef + + +

                        Wrapper providing VertexTypeDsl

                      11. @@ -360,10 +433,10 @@

                        Type Members

                        Value Members

                          -
                        1. - +
                        2. + - + @@ -372,8 +445,8 @@

                          Value Members

                          object - - VertexDsl + + ElementDsl diff --git a/docs/api/2.12/ch/acmesoftware/orientDbScalaDsl/package$$EdgeWrapper.html b/docs/api/2.12/ch/acmesoftware/orientDbScalaDsl/package$$EdgeWrapper.html new file mode 100644 index 0000000..6dc278d --- /dev/null +++ b/docs/api/2.12/ch/acmesoftware/orientDbScalaDsl/package$$EdgeWrapper.html @@ -0,0 +1,672 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                          +
                          +
                          +
                          +
                          +
                          +
                          +
                          +
                          +
                          +
                          +
                          +
                          +

                          Packages

                          + +
                          +
                          +
                          + +
                          +
                          c
                          +

                          ch.acmesoftware.orientDbScalaDsl

                          +

                          EdgeWrapper + + + +

                          +

                          +
                          + +

                          + + implicit + class + + + EdgeWrapper extends AnyRef + +

                          + + +

                          Wrapper providing VertexDsl

                          + + Linear Supertypes + +
                          AnyRef, Any
                          +
                          + + +
                          +
                          +
                          + + + + + +
                          +
                          +
                          + Ordering +
                            + +
                          1. Alphabetic
                          2. +
                          3. By Inheritance
                          4. +
                          +
                          +
                          + Inherited
                          +
                          +
                            +
                          1. EdgeWrapper
                          2. AnyRef
                          3. Any
                          4. +
                          +
                          + +
                            +
                          1. Hide All
                          2. +
                          3. Show All
                          4. +
                          +
                          +
                          + Visibility +
                          1. Public
                          2. All
                          +
                          +
                          +
                          + +
                          +
                          +
                          +

                          Instance Constructors

                          +
                          1. + + + + + + + + + new + + + EdgeWrapper(e: Edge) + + + +
                          +
                          + + + + + +
                          +

                          Value Members

                          +
                            +
                          1. + + + + + + + + final + def + + + !=(arg0: Any): Boolean + + +
                            Definition Classes
                            AnyRef → Any
                            +
                          2. + + + + + + + + final + def + + + ##(): Int + + +
                            Definition Classes
                            AnyRef → Any
                            +
                          3. + + + + + + + + final + def + + + ==(arg0: Any): Boolean + + +
                            Definition Classes
                            AnyRef → Any
                            +
                          4. + + + + + + + + final + def + + + asInstanceOf[T0]: T0 + + +
                            Definition Classes
                            Any
                            +
                          5. + + + + + + + + + def + + + clone(): AnyRef + + +
                            Attributes
                            protected[java.lang]
                            Definition Classes
                            AnyRef
                            Annotations
                            + @throws( + + ... + ) + +
                            +
                          6. + + + + + + + + + def + + + dsl: EdgeDsl + + + +
                          7. + + + + + + + + final + def + + + eq(arg0: AnyRef): Boolean + + +
                            Definition Classes
                            AnyRef
                            +
                          8. + + + + + + + + + def + + + equals(arg0: Any): Boolean + + +
                            Definition Classes
                            AnyRef → Any
                            +
                          9. + + + + + + + + + def + + + finalize(): Unit + + +
                            Attributes
                            protected[java.lang]
                            Definition Classes
                            AnyRef
                            Annotations
                            + @throws( + + classOf[java.lang.Throwable] + ) + +
                            +
                          10. + + + + + + + + final + def + + + getClass(): Class[_] + + +
                            Definition Classes
                            AnyRef → Any
                            +
                          11. + + + + + + + + + def + + + hashCode(): Int + + +
                            Definition Classes
                            AnyRef → Any
                            +
                          12. + + + + + + + + final + def + + + isInstanceOf[T0]: Boolean + + +
                            Definition Classes
                            Any
                            +
                          13. + + + + + + + + final + def + + + ne(arg0: AnyRef): Boolean + + +
                            Definition Classes
                            AnyRef
                            +
                          14. + + + + + + + + final + def + + + notify(): Unit + + +
                            Definition Classes
                            AnyRef
                            +
                          15. + + + + + + + + final + def + + + notifyAll(): Unit + + +
                            Definition Classes
                            AnyRef
                            +
                          16. + + + + + + + + final + def + + + synchronized[T0](arg0: ⇒ T0): T0 + + +
                            Definition Classes
                            AnyRef
                            +
                          17. + + + + + + + + + def + + + toString(): String + + +
                            Definition Classes
                            AnyRef → Any
                            +
                          18. + + + + + + + + final + def + + + wait(): Unit + + +
                            Definition Classes
                            AnyRef
                            Annotations
                            + @throws( + + ... + ) + +
                            +
                          19. + + + + + + + + final + def + + + wait(arg0: Long, arg1: Int): Unit + + +
                            Definition Classes
                            AnyRef
                            Annotations
                            + @throws( + + ... + ) + +
                            +
                          20. + + + + + + + + final + def + + + wait(arg0: Long): Unit + + +
                            Definition Classes
                            AnyRef
                            Annotations
                            + @throws( + + ... + ) + +
                            +
                          21. +
                          +
                          + + + + +
                          + +
                          +
                          +

                          Inherited from AnyRef

                          +
                          +

                          Inherited from Any

                          +
                          + +
                          + +
                          +
                          +

                          Ungrouped

                          + +
                          +
                          + +
                          + +
                          + + + +
                          +
                          +
                          + + diff --git a/docs/api/2.12/ch/acmesoftware/orientDbScalaDsl/package$$OrientGraphWrapper.html b/docs/api/2.12/ch/acmesoftware/orientDbScalaDsl/package$$GraphWrapper.html similarity index 88% rename from docs/api/2.12/ch/acmesoftware/orientDbScalaDsl/package$$OrientGraphWrapper.html rename to docs/api/2.12/ch/acmesoftware/orientDbScalaDsl/package$$GraphWrapper.html index d94e223..aab4666 100644 --- a/docs/api/2.12/ch/acmesoftware/orientDbScalaDsl/package$$OrientGraphWrapper.html +++ b/docs/api/2.12/ch/acmesoftware/orientDbScalaDsl/package$$GraphWrapper.html @@ -127,6 +127,24 @@

                          Packages

                          Main DSL entry point

                          Main DSL entry point

                          This package provides a set of implicit classes (wrappers) which can be imported

                          Example

                          import ch.acmesoftware.orientDbScalaDsl._

                          The above import statement decorates the OrientDB Java API with a fluid Scala DSL

                          Definition Classes
                          acmesoftware
                        3. + + + + EdgeDsl + +
                        4. + + + + EdgeWrapper + +
                        5. + + + + ElementDsl + +
                        6. @@ -136,18 +154,12 @@

                          Packages

                          - OrientGraphWrapper + GraphWrapper
                        7. - - - OrientVertexTypeWrapper - -
                        8. - - - + + VertexDsl
                        9. @@ -156,6 +168,12 @@

                          Packages

                          VertexTypeDsl +
                        10. + + + + VertexTypeWrapper +
                        11. @@ -171,8 +189,8 @@

                          Packages

                          c

                          ch.acmesoftware.orientDbScalaDsl

                          -

                          OrientGraphWrapper - +

                          GraphWrapper +

                          @@ -185,7 +203,7 @@

                          class - OrientGraphWrapper extends AnyRef + GraphWrapper extends AnyRef

                          @@ -220,7 +238,7 @@

                          Inherited
                            -
                          1. OrientGraphWrapper
                          2. AnyRef
                          3. Any
                          4. +
                          5. GraphWrapper
                          6. AnyRef
                          7. Any

                          @@ -240,10 +258,10 @@

                          Instance Constructors

                          -
                          1. - +
                            1. + - + @@ -252,7 +270,7 @@

                              Instance Constructors

                              new - OrientGraphWrapper(g: OrientBaseGraph) + GraphWrapper(g: OrientBaseGraph) @@ -269,7 +287,7 @@

                              Value Members

                            2. - + @@ -285,7 +303,7 @@

                              Value Members

                            3. - + @@ -301,7 +319,7 @@

                              Value Members

                            4. - + @@ -317,7 +335,7 @@

                              Value Members

                            5. - + @@ -333,7 +351,7 @@

                              Value Members

                            6. - + @@ -352,10 +370,10 @@

                              Value Members

                              )
                          -

                        12. +
                        13. - + @@ -371,7 +389,7 @@

                          Value Members

                        14. - + @@ -387,7 +405,7 @@

                          Value Members

                        15. - + @@ -403,7 +421,7 @@

                          Value Members

                        16. - + @@ -425,7 +443,7 @@

                          Value Members

                        17. - + @@ -441,7 +459,7 @@

                          Value Members

                        18. - + @@ -457,7 +475,7 @@

                          Value Members

                        19. - + @@ -473,7 +491,7 @@

                          Value Members

                        20. - + @@ -489,7 +507,7 @@

                          Value Members

                        21. - + @@ -505,7 +523,7 @@

                          Value Members

                        22. - + @@ -521,7 +539,7 @@

                          Value Members

                        23. - + @@ -537,7 +555,7 @@

                          Value Members

                        24. - + @@ -553,7 +571,7 @@

                          Value Members

                        25. - + @@ -575,7 +593,7 @@

                          Value Members

                        26. - + @@ -597,7 +615,7 @@

                          Value Members

                        27. - + diff --git a/docs/api/2.12/ch/acmesoftware/orientDbScalaDsl/package$$OrientVertexTypeWrapper.html b/docs/api/2.12/ch/acmesoftware/orientDbScalaDsl/package$$VertexTypeWrapper.html similarity index 88% rename from docs/api/2.12/ch/acmesoftware/orientDbScalaDsl/package$$OrientVertexTypeWrapper.html rename to docs/api/2.12/ch/acmesoftware/orientDbScalaDsl/package$$VertexTypeWrapper.html index 1bb4236..ad41feb 100644 --- a/docs/api/2.12/ch/acmesoftware/orientDbScalaDsl/package$$OrientVertexTypeWrapper.html +++ b/docs/api/2.12/ch/acmesoftware/orientDbScalaDsl/package$$VertexTypeWrapper.html @@ -127,6 +127,24 @@

                          Packages

                          Main DSL entry point

                          Main DSL entry point

                          This package provides a set of implicit classes (wrappers) which can be imported

                          Example

                          import ch.acmesoftware.orientDbScalaDsl._

                          The above import statement decorates the OrientDB Java API with a fluid Scala DSL

                          Definition Classes
                          acmesoftware
                        28. + + + + EdgeDsl + +
                        29. + + + + EdgeWrapper + +
                        30. + + + + ElementDsl + +
                        31. @@ -134,20 +152,14 @@

                          Packages

                        32. - - - OrientGraphWrapper + + + GraphWrapper
                        33. - - - OrientVertexTypeWrapper - -
                        34. - - - + + VertexDsl
                        35. @@ -156,6 +168,12 @@

                          Packages

                          VertexTypeDsl +
                        36. + + + + VertexTypeWrapper +
                        37. @@ -171,8 +189,8 @@

                          Packages

                          c

                          ch.acmesoftware.orientDbScalaDsl

                          -

                          OrientVertexTypeWrapper - +

                          VertexTypeWrapper +

                          @@ -185,7 +203,7 @@

                          class - OrientVertexTypeWrapper extends AnyRef + VertexTypeWrapper extends AnyRef

                          @@ -220,7 +238,7 @@

                          Inherited
                            -
                          1. OrientVertexTypeWrapper
                          2. AnyRef
                          3. Any
                          4. +
                          5. VertexTypeWrapper
                          6. AnyRef
                          7. Any

                          @@ -240,10 +258,10 @@

                          Instance Constructors

                          -
                          1. - +
                            1. + - + @@ -252,7 +270,7 @@

                              Instance Constructors

                              new - OrientVertexTypeWrapper(vt: OrientVertexType) + VertexTypeWrapper(vt: OrientVertexType) @@ -269,7 +287,7 @@

                              Value Members

                            2. - + @@ -285,7 +303,7 @@

                              Value Members

                            3. - + @@ -301,7 +319,7 @@

                              Value Members

                            4. - + @@ -317,7 +335,7 @@

                              Value Members

                            5. - + @@ -333,7 +351,7 @@

                              Value Members

                            6. - + @@ -352,10 +370,10 @@

                              Value Members

                              )
                          -

                        38. +
                        39. - + @@ -371,7 +389,7 @@

                          Value Members

                        40. - + @@ -387,7 +405,7 @@

                          Value Members

                        41. - + @@ -403,7 +421,7 @@

                          Value Members

                        42. - + @@ -425,7 +443,7 @@

                          Value Members

                        43. - + @@ -441,7 +459,7 @@

                          Value Members

                        44. - + @@ -457,7 +475,7 @@

                          Value Members

                        45. - + @@ -473,7 +491,7 @@

                          Value Members

                        46. - + @@ -489,7 +507,7 @@

                          Value Members

                        47. - + @@ -505,7 +523,7 @@

                          Value Members

                        48. - + @@ -521,7 +539,7 @@

                          Value Members

                        49. - + @@ -537,7 +555,7 @@

                          Value Members

                        50. - + @@ -553,7 +571,7 @@

                          Value Members

                        51. - + @@ -575,7 +593,7 @@

                          Value Members

                        52. - + @@ -597,7 +615,7 @@

                          Value Members

                        53. - + diff --git a/docs/api/2.12/ch/acmesoftware/orientDbScalaDsl/package$$VertexWrapper.html b/docs/api/2.12/ch/acmesoftware/orientDbScalaDsl/package$$VertexWrapper.html index c68244f..183f5e8 100644 --- a/docs/api/2.12/ch/acmesoftware/orientDbScalaDsl/package$$VertexWrapper.html +++ b/docs/api/2.12/ch/acmesoftware/orientDbScalaDsl/package$$VertexWrapper.html @@ -127,6 +127,24 @@

                          Packages

                          Main DSL entry point

                          Main DSL entry point

                          This package provides a set of implicit classes (wrappers) which can be imported

                          Example

                          import ch.acmesoftware.orientDbScalaDsl._

                          The above import statement decorates the OrientDB Java API with a fluid Scala DSL

                          Definition Classes
                          acmesoftware
                        54. + + + + EdgeDsl + +
                        55. + + + + EdgeWrapper + +
                        56. + + + + ElementDsl + +
                        57. @@ -134,20 +152,14 @@

                          Packages

                        58. - - - OrientGraphWrapper + + + GraphWrapper
                        59. - - - OrientVertexTypeWrapper - -
                        60. - - - + + VertexDsl
                        61. @@ -156,6 +168,12 @@

                          Packages

                          VertexTypeDsl +
                        62. + + + + VertexTypeWrapper +
                        63. @@ -241,9 +259,9 @@

                          Instance Constructors

                          1. - + - + @@ -252,7 +270,7 @@

                            Instance Constructors

                            new - VertexWrapper(v: Element) + VertexWrapper(v: Vertex) diff --git a/docs/api/2.12/index.js b/docs/api/2.12/index.js index e83efcc..e6e4caa 100644 --- a/docs/api/2.12/index.js +++ b/docs/api/2.12/index.js @@ -1 +1 @@ -Index.PACKAGES = {"ch" : [], "ch.acmesoftware" : [], "ch.acmesoftware.orientDbScalaDsl" : [{"name" : "ch.acmesoftware.orientDbScalaDsl.GraphDsl", "shortDescription" : "DSL extension for the OrientBaseGraph class", "members_class" : [{"label" : "VerticlesFilterQuery", "tail" : "", "member" : "ch.acmesoftware.orientDbScalaDsl.GraphDsl.VerticlesFilterQuery", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/GraphDsl.html#VerticlesFilterQueryextendsAnyRef", "kind" : "class"}, {"label" : "findVertices", "tail" : "(label: String): VerticlesFilterQuery", "member" : "ch.acmesoftware.orientDbScalaDsl.GraphDsl.findVertices", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/GraphDsl.html#findVertices(label:String):GraphDsl.this.VerticlesFilterQuery", "kind" : "def"}, {"label" : "addVertex", "tail" : "(label: String): VertexDsl", "member" : "ch.acmesoftware.orientDbScalaDsl.GraphDsl.addVertex", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/GraphDsl.html#addVertex(label:String):ch.acmesoftware.orientDbScalaDsl.VertexDsl", "kind" : "def"}, {"label" : "getVertexType", "tail" : "(label: String): Option[VertexTypeDsl]", "member" : "ch.acmesoftware.orientDbScalaDsl.GraphDsl.getVertexType", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/GraphDsl.html#getVertexType(label:String):Option[ch.acmesoftware.orientDbScalaDsl.VertexTypeDsl]", "kind" : "def"}, {"label" : "createVertexType", "tail" : "(label: String): VertexTypeDsl", "member" : "ch.acmesoftware.orientDbScalaDsl.GraphDsl.createVertexType", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/GraphDsl.html#createVertexType(label:String):ch.acmesoftware.orientDbScalaDsl.VertexTypeDsl", "kind" : "def"}, {"member" : "ch.acmesoftware.orientDbScalaDsl.GraphDsl#", "error" : "unsupported entity"}, {"label" : "synchronized", "tail" : "(arg0: ⇒ T0): T0", "member" : "scala.AnyRef.synchronized", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/GraphDsl.html#synchronized[T0](x$1:=>T0):T0", "kind" : "final def"}, {"label" : "##", "tail" : "(): Int", "member" : "scala.AnyRef.##", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/GraphDsl.html###():Int", "kind" : "final def"}, {"label" : "!=", "tail" : "(arg0: Any): Boolean", "member" : "scala.AnyRef.!=", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/GraphDsl.html#!=(x$1:Any):Boolean", "kind" : "final def"}, {"label" : "==", "tail" : "(arg0: Any): Boolean", "member" : "scala.AnyRef.==", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/GraphDsl.html#==(x$1:Any):Boolean", "kind" : "final def"}, {"label" : "ne", "tail" : "(arg0: AnyRef): Boolean", "member" : "scala.AnyRef.ne", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/GraphDsl.html#ne(x$1:AnyRef):Boolean", "kind" : "final def"}, {"label" : "eq", "tail" : "(arg0: AnyRef): Boolean", "member" : "scala.AnyRef.eq", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/GraphDsl.html#eq(x$1:AnyRef):Boolean", "kind" : "final def"}, {"label" : "finalize", "tail" : "(): Unit", "member" : "scala.AnyRef.finalize", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/GraphDsl.html#finalize():Unit", "kind" : "def"}, {"label" : "wait", "tail" : "(): Unit", "member" : "scala.AnyRef.wait", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/GraphDsl.html#wait():Unit", "kind" : "final def"}, {"label" : "wait", "tail" : "(arg0: Long, arg1: Int): Unit", "member" : "scala.AnyRef.wait", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/GraphDsl.html#wait(x$1:Long,x$2:Int):Unit", "kind" : "final def"}, {"label" : "wait", "tail" : "(arg0: Long): Unit", "member" : "scala.AnyRef.wait", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/GraphDsl.html#wait(x$1:Long):Unit", "kind" : "final def"}, {"label" : "notifyAll", "tail" : "(): Unit", "member" : "scala.AnyRef.notifyAll", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/GraphDsl.html#notifyAll():Unit", "kind" : "final def"}, {"label" : "notify", "tail" : "(): Unit", "member" : "scala.AnyRef.notify", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/GraphDsl.html#notify():Unit", "kind" : "final def"}, {"label" : "toString", "tail" : "(): String", "member" : "scala.AnyRef.toString", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/GraphDsl.html#toString():String", "kind" : "def"}, {"label" : "clone", "tail" : "(): AnyRef", "member" : "scala.AnyRef.clone", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/GraphDsl.html#clone():Object", "kind" : "def"}, {"label" : "equals", "tail" : "(arg0: Any): Boolean", "member" : "scala.AnyRef.equals", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/GraphDsl.html#equals(x$1:Any):Boolean", "kind" : "def"}, {"label" : "hashCode", "tail" : "(): Int", "member" : "scala.AnyRef.hashCode", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/GraphDsl.html#hashCode():Int", "kind" : "def"}, {"label" : "getClass", "tail" : "(): Class[_]", "member" : "scala.AnyRef.getClass", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/GraphDsl.html#getClass():Class[_]", "kind" : "final def"}, {"label" : "asInstanceOf", "tail" : "(): T0", "member" : "scala.Any.asInstanceOf", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/GraphDsl.html#asInstanceOf[T0]:T0", "kind" : "final def"}, {"label" : "isInstanceOf", "tail" : "(): Boolean", "member" : "scala.Any.isInstanceOf", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/GraphDsl.html#isInstanceOf[T0]:Boolean", "kind" : "final def"}], "class" : "ch\/acmesoftware\/orientDbScalaDsl\/GraphDsl.html", "kind" : "class"}, {"name" : "ch.acmesoftware.orientDbScalaDsl.OrientGraphWrapper", "shortDescription" : "Wrapper providing GraphDsl", "members_class" : [{"label" : "dsl", "tail" : "(): GraphDsl", "member" : "ch.acmesoftware.orientDbScalaDsl.OrientGraphWrapper.dsl", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientGraphWrapper.html#dsl:ch.acmesoftware.orientDbScalaDsl.GraphDsl", "kind" : "def"}, {"member" : "ch.acmesoftware.orientDbScalaDsl.OrientGraphWrapper#", "error" : "unsupported entity"}, {"label" : "synchronized", "tail" : "(arg0: ⇒ T0): T0", "member" : "scala.AnyRef.synchronized", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientGraphWrapper.html#synchronized[T0](x$1:=>T0):T0", "kind" : "final def"}, {"label" : "##", "tail" : "(): Int", "member" : "scala.AnyRef.##", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientGraphWrapper.html###():Int", "kind" : "final def"}, {"label" : "!=", "tail" : "(arg0: Any): Boolean", "member" : "scala.AnyRef.!=", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientGraphWrapper.html#!=(x$1:Any):Boolean", "kind" : "final def"}, {"label" : "==", "tail" : "(arg0: Any): Boolean", "member" : "scala.AnyRef.==", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientGraphWrapper.html#==(x$1:Any):Boolean", "kind" : "final def"}, {"label" : "ne", "tail" : "(arg0: AnyRef): Boolean", "member" : "scala.AnyRef.ne", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientGraphWrapper.html#ne(x$1:AnyRef):Boolean", "kind" : "final def"}, {"label" : "eq", "tail" : "(arg0: AnyRef): Boolean", "member" : "scala.AnyRef.eq", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientGraphWrapper.html#eq(x$1:AnyRef):Boolean", "kind" : "final def"}, {"label" : "finalize", "tail" : "(): Unit", "member" : "scala.AnyRef.finalize", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientGraphWrapper.html#finalize():Unit", "kind" : "def"}, {"label" : "wait", "tail" : "(): Unit", "member" : "scala.AnyRef.wait", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientGraphWrapper.html#wait():Unit", "kind" : "final def"}, {"label" : "wait", "tail" : "(arg0: Long, arg1: Int): Unit", "member" : "scala.AnyRef.wait", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientGraphWrapper.html#wait(x$1:Long,x$2:Int):Unit", "kind" : "final def"}, {"label" : "wait", "tail" : "(arg0: Long): Unit", "member" : "scala.AnyRef.wait", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientGraphWrapper.html#wait(x$1:Long):Unit", "kind" : "final def"}, {"label" : "notifyAll", "tail" : "(): Unit", "member" : "scala.AnyRef.notifyAll", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientGraphWrapper.html#notifyAll():Unit", "kind" : "final def"}, {"label" : "notify", "tail" : "(): Unit", "member" : "scala.AnyRef.notify", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientGraphWrapper.html#notify():Unit", "kind" : "final def"}, {"label" : "toString", "tail" : "(): String", "member" : "scala.AnyRef.toString", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientGraphWrapper.html#toString():String", "kind" : "def"}, {"label" : "clone", "tail" : "(): AnyRef", "member" : "scala.AnyRef.clone", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientGraphWrapper.html#clone():Object", "kind" : "def"}, {"label" : "equals", "tail" : "(arg0: Any): Boolean", "member" : "scala.AnyRef.equals", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientGraphWrapper.html#equals(x$1:Any):Boolean", "kind" : "def"}, {"label" : "hashCode", "tail" : "(): Int", "member" : "scala.AnyRef.hashCode", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientGraphWrapper.html#hashCode():Int", "kind" : "def"}, {"label" : "getClass", "tail" : "(): Class[_]", "member" : "scala.AnyRef.getClass", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientGraphWrapper.html#getClass():Class[_]", "kind" : "final def"}, {"label" : "asInstanceOf", "tail" : "(): T0", "member" : "scala.Any.asInstanceOf", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientGraphWrapper.html#asInstanceOf[T0]:T0", "kind" : "final def"}, {"label" : "isInstanceOf", "tail" : "(): Boolean", "member" : "scala.Any.isInstanceOf", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientGraphWrapper.html#isInstanceOf[T0]:Boolean", "kind" : "final def"}], "class" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientGraphWrapper.html", "kind" : "class"}, {"name" : "ch.acmesoftware.orientDbScalaDsl.OrientVertexTypeWrapper", "shortDescription" : "Wrapper providing VertexTypeDsl", "members_class" : [{"label" : "dsl", "tail" : "(): VertexTypeDsl", "member" : "ch.acmesoftware.orientDbScalaDsl.OrientVertexTypeWrapper.dsl", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientVertexTypeWrapper.html#dsl:ch.acmesoftware.orientDbScalaDsl.VertexTypeDsl", "kind" : "def"}, {"member" : "ch.acmesoftware.orientDbScalaDsl.OrientVertexTypeWrapper#", "error" : "unsupported entity"}, {"label" : "synchronized", "tail" : "(arg0: ⇒ T0): T0", "member" : "scala.AnyRef.synchronized", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientVertexTypeWrapper.html#synchronized[T0](x$1:=>T0):T0", "kind" : "final def"}, {"label" : "##", "tail" : "(): Int", "member" : "scala.AnyRef.##", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientVertexTypeWrapper.html###():Int", "kind" : "final def"}, {"label" : "!=", "tail" : "(arg0: Any): Boolean", "member" : "scala.AnyRef.!=", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientVertexTypeWrapper.html#!=(x$1:Any):Boolean", "kind" : "final def"}, {"label" : "==", "tail" : "(arg0: Any): Boolean", "member" : "scala.AnyRef.==", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientVertexTypeWrapper.html#==(x$1:Any):Boolean", "kind" : "final def"}, {"label" : "ne", "tail" : "(arg0: AnyRef): Boolean", "member" : "scala.AnyRef.ne", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientVertexTypeWrapper.html#ne(x$1:AnyRef):Boolean", "kind" : "final def"}, {"label" : "eq", "tail" : "(arg0: AnyRef): Boolean", "member" : "scala.AnyRef.eq", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientVertexTypeWrapper.html#eq(x$1:AnyRef):Boolean", "kind" : "final def"}, {"label" : "finalize", "tail" : "(): Unit", "member" : "scala.AnyRef.finalize", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientVertexTypeWrapper.html#finalize():Unit", "kind" : "def"}, {"label" : "wait", "tail" : "(): Unit", "member" : "scala.AnyRef.wait", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientVertexTypeWrapper.html#wait():Unit", "kind" : "final def"}, {"label" : "wait", "tail" : "(arg0: Long, arg1: Int): Unit", "member" : "scala.AnyRef.wait", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientVertexTypeWrapper.html#wait(x$1:Long,x$2:Int):Unit", "kind" : "final def"}, {"label" : "wait", "tail" : "(arg0: Long): Unit", "member" : "scala.AnyRef.wait", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientVertexTypeWrapper.html#wait(x$1:Long):Unit", "kind" : "final def"}, {"label" : "notifyAll", "tail" : "(): Unit", "member" : "scala.AnyRef.notifyAll", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientVertexTypeWrapper.html#notifyAll():Unit", "kind" : "final def"}, {"label" : "notify", "tail" : "(): Unit", "member" : "scala.AnyRef.notify", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientVertexTypeWrapper.html#notify():Unit", "kind" : "final def"}, {"label" : "toString", "tail" : "(): String", "member" : "scala.AnyRef.toString", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientVertexTypeWrapper.html#toString():String", "kind" : "def"}, {"label" : "clone", "tail" : "(): AnyRef", "member" : "scala.AnyRef.clone", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientVertexTypeWrapper.html#clone():Object", "kind" : "def"}, {"label" : "equals", "tail" : "(arg0: Any): Boolean", "member" : "scala.AnyRef.equals", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientVertexTypeWrapper.html#equals(x$1:Any):Boolean", "kind" : "def"}, {"label" : "hashCode", "tail" : "(): Int", "member" : "scala.AnyRef.hashCode", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientVertexTypeWrapper.html#hashCode():Int", "kind" : "def"}, {"label" : "getClass", "tail" : "(): Class[_]", "member" : "scala.AnyRef.getClass", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientVertexTypeWrapper.html#getClass():Class[_]", "kind" : "final def"}, {"label" : "asInstanceOf", "tail" : "(): T0", "member" : "scala.Any.asInstanceOf", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientVertexTypeWrapper.html#asInstanceOf[T0]:T0", "kind" : "final def"}, {"label" : "isInstanceOf", "tail" : "(): Boolean", "member" : "scala.Any.isInstanceOf", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientVertexTypeWrapper.html#isInstanceOf[T0]:Boolean", "kind" : "final def"}], "class" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$OrientVertexTypeWrapper.html", "kind" : "class"}, {"name" : "ch.acmesoftware.orientDbScalaDsl.VertexDsl", "shortDescription" : "DSL extension for the Element class", "object" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl$.html", "members_class" : [{"label" : "mandatoryProperty", "tail" : "(name: String): T", "member" : "ch.acmesoftware.orientDbScalaDsl.VertexDsl.mandatoryProperty", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl.html#mandatoryProperty[T](name:String):T", "kind" : "def"}, {"label" : "property", "tail" : "(name: String): Option[T]", "member" : "ch.acmesoftware.orientDbScalaDsl.VertexDsl.property", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl.html#property[T](name:String):Option[T]", "kind" : "def"}, {"label" : "and", "tail" : "(prop: Property): VertexDsl", "member" : "ch.acmesoftware.orientDbScalaDsl.VertexDsl.and", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl.html#and(prop:ch.acmesoftware.orientDbScalaDsl.VertexDsl.Property):ch.acmesoftware.orientDbScalaDsl.VertexDsl", "kind" : "def"}, {"label" : "withProperty", "tail" : "(prop: Property): VertexDsl", "member" : "ch.acmesoftware.orientDbScalaDsl.VertexDsl.withProperty", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl.html#withProperty(prop:ch.acmesoftware.orientDbScalaDsl.VertexDsl.Property):ch.acmesoftware.orientDbScalaDsl.VertexDsl", "kind" : "def"}, {"member" : "ch.acmesoftware.orientDbScalaDsl.VertexDsl#", "error" : "unsupported entity"}, {"label" : "v", "tail" : ": Element", "member" : "ch.acmesoftware.orientDbScalaDsl.VertexDsl.v", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl.html#v:com.tinkerpop.blueprints.Element", "kind" : "val"}, {"label" : "synchronized", "tail" : "(arg0: ⇒ T0): T0", "member" : "scala.AnyRef.synchronized", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl.html#synchronized[T0](x$1:=>T0):T0", "kind" : "final def"}, {"label" : "##", "tail" : "(): Int", "member" : "scala.AnyRef.##", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl.html###():Int", "kind" : "final def"}, {"label" : "!=", "tail" : "(arg0: Any): Boolean", "member" : "scala.AnyRef.!=", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl.html#!=(x$1:Any):Boolean", "kind" : "final def"}, {"label" : "==", "tail" : "(arg0: Any): Boolean", "member" : "scala.AnyRef.==", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl.html#==(x$1:Any):Boolean", "kind" : "final def"}, {"label" : "ne", "tail" : "(arg0: AnyRef): Boolean", "member" : "scala.AnyRef.ne", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl.html#ne(x$1:AnyRef):Boolean", "kind" : "final def"}, {"label" : "eq", "tail" : "(arg0: AnyRef): Boolean", "member" : "scala.AnyRef.eq", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl.html#eq(x$1:AnyRef):Boolean", "kind" : "final def"}, {"label" : "finalize", "tail" : "(): Unit", "member" : "scala.AnyRef.finalize", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl.html#finalize():Unit", "kind" : "def"}, {"label" : "wait", "tail" : "(): Unit", "member" : "scala.AnyRef.wait", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl.html#wait():Unit", "kind" : "final def"}, {"label" : "wait", "tail" : "(arg0: Long, arg1: Int): Unit", "member" : "scala.AnyRef.wait", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl.html#wait(x$1:Long,x$2:Int):Unit", "kind" : "final def"}, {"label" : "wait", "tail" : "(arg0: Long): Unit", "member" : "scala.AnyRef.wait", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl.html#wait(x$1:Long):Unit", "kind" : "final def"}, {"label" : "notifyAll", "tail" : "(): Unit", "member" : "scala.AnyRef.notifyAll", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl.html#notifyAll():Unit", "kind" : "final def"}, {"label" : "notify", "tail" : "(): Unit", "member" : "scala.AnyRef.notify", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl.html#notify():Unit", "kind" : "final def"}, {"label" : "toString", "tail" : "(): String", "member" : "scala.AnyRef.toString", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl.html#toString():String", "kind" : "def"}, {"label" : "clone", "tail" : "(): AnyRef", "member" : "scala.AnyRef.clone", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl.html#clone():Object", "kind" : "def"}, {"label" : "equals", "tail" : "(arg0: Any): Boolean", "member" : "scala.AnyRef.equals", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl.html#equals(x$1:Any):Boolean", "kind" : "def"}, {"label" : "hashCode", "tail" : "(): Int", "member" : "scala.AnyRef.hashCode", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl.html#hashCode():Int", "kind" : "def"}, {"label" : "getClass", "tail" : "(): Class[_]", "member" : "scala.AnyRef.getClass", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl.html#getClass():Class[_]", "kind" : "final def"}, {"label" : "asInstanceOf", "tail" : "(): T0", "member" : "scala.Any.asInstanceOf", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl.html#asInstanceOf[T0]:T0", "kind" : "final def"}, {"label" : "isInstanceOf", "tail" : "(): Boolean", "member" : "scala.Any.isInstanceOf", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl.html#isInstanceOf[T0]:Boolean", "kind" : "final def"}], "members_object" : [{"label" : "Property", "tail" : "", "member" : "ch.acmesoftware.orientDbScalaDsl.VertexDsl.Property", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl$.html#Property=(String,Any)", "kind" : "type"}, {"label" : "synchronized", "tail" : "(arg0: ⇒ T0): T0", "member" : "scala.AnyRef.synchronized", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl$.html#synchronized[T0](x$1:=>T0):T0", "kind" : "final def"}, {"label" : "##", "tail" : "(): Int", "member" : "scala.AnyRef.##", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl$.html###():Int", "kind" : "final def"}, {"label" : "!=", "tail" : "(arg0: Any): Boolean", "member" : "scala.AnyRef.!=", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl$.html#!=(x$1:Any):Boolean", "kind" : "final def"}, {"label" : "==", "tail" : "(arg0: Any): Boolean", "member" : "scala.AnyRef.==", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl$.html#==(x$1:Any):Boolean", "kind" : "final def"}, {"label" : "ne", "tail" : "(arg0: AnyRef): Boolean", "member" : "scala.AnyRef.ne", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl$.html#ne(x$1:AnyRef):Boolean", "kind" : "final def"}, {"label" : "eq", "tail" : "(arg0: AnyRef): Boolean", "member" : "scala.AnyRef.eq", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl$.html#eq(x$1:AnyRef):Boolean", "kind" : "final def"}, {"label" : "finalize", "tail" : "(): Unit", "member" : "scala.AnyRef.finalize", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl$.html#finalize():Unit", "kind" : "def"}, {"label" : "wait", "tail" : "(): Unit", "member" : "scala.AnyRef.wait", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl$.html#wait():Unit", "kind" : "final def"}, {"label" : "wait", "tail" : "(arg0: Long, arg1: Int): Unit", "member" : "scala.AnyRef.wait", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl$.html#wait(x$1:Long,x$2:Int):Unit", "kind" : "final def"}, {"label" : "wait", "tail" : "(arg0: Long): Unit", "member" : "scala.AnyRef.wait", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl$.html#wait(x$1:Long):Unit", "kind" : "final def"}, {"label" : "notifyAll", "tail" : "(): Unit", "member" : "scala.AnyRef.notifyAll", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl$.html#notifyAll():Unit", "kind" : "final def"}, {"label" : "notify", "tail" : "(): Unit", "member" : "scala.AnyRef.notify", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl$.html#notify():Unit", "kind" : "final def"}, {"label" : "toString", "tail" : "(): String", "member" : "scala.AnyRef.toString", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl$.html#toString():String", "kind" : "def"}, {"label" : "clone", "tail" : "(): AnyRef", "member" : "scala.AnyRef.clone", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl$.html#clone():Object", "kind" : "def"}, {"label" : "equals", "tail" : "(arg0: Any): Boolean", "member" : "scala.AnyRef.equals", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl$.html#equals(x$1:Any):Boolean", "kind" : "def"}, {"label" : "hashCode", "tail" : "(): Int", "member" : "scala.AnyRef.hashCode", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl$.html#hashCode():Int", "kind" : "def"}, {"label" : "getClass", "tail" : "(): Class[_]", "member" : "scala.AnyRef.getClass", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl$.html#getClass():Class[_]", "kind" : "final def"}, {"label" : "asInstanceOf", "tail" : "(): T0", "member" : "scala.Any.asInstanceOf", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl$.html#asInstanceOf[T0]:T0", "kind" : "final def"}, {"label" : "isInstanceOf", "tail" : "(): Boolean", "member" : "scala.Any.isInstanceOf", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl$.html#isInstanceOf[T0]:Boolean", "kind" : "final def"}], "class" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl.html", "kind" : "class"}, {"name" : "ch.acmesoftware.orientDbScalaDsl.VertexTypeDsl", "shortDescription" : "DSL extension for the OrientVertexType class", "object" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexTypeDsl$.html", "members_class" : [{"label" : "unique", "tail" : "(fieldName: String): VertexTypeDsl", "member" : "ch.acmesoftware.orientDbScalaDsl.VertexTypeDsl.unique", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexTypeDsl.html#unique(fieldName:String):ch.acmesoftware.orientDbScalaDsl.VertexTypeDsl", "kind" : "def"}, {"label" : "withProperty", "tail" : "(d: PropertyDefinition): VertexTypeDsl", "member" : "ch.acmesoftware.orientDbScalaDsl.VertexTypeDsl.withProperty", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexTypeDsl.html#withProperty(d:ch.acmesoftware.orientDbScalaDsl.VertexTypeDsl.PropertyDefinition):ch.acmesoftware.orientDbScalaDsl.VertexTypeDsl", "kind" : "def"}, {"label" : "and", "tail" : "(d: PropertyDefinition): VertexTypeDsl", "member" : "ch.acmesoftware.orientDbScalaDsl.VertexTypeDsl.and", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexTypeDsl.html#and(d:ch.acmesoftware.orientDbScalaDsl.VertexTypeDsl.PropertyDefinition):ch.acmesoftware.orientDbScalaDsl.VertexTypeDsl", "kind" : "def"}, {"member" : "ch.acmesoftware.orientDbScalaDsl.VertexTypeDsl#", "error" : "unsupported entity"}, {"label" : "synchronized", "tail" : "(arg0: ⇒ T0): T0", "member" : "scala.AnyRef.synchronized", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexTypeDsl.html#synchronized[T0](x$1:=>T0):T0", "kind" : "final def"}, {"label" : "##", "tail" : "(): Int", "member" : "scala.AnyRef.##", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexTypeDsl.html###():Int", "kind" : "final def"}, {"label" : "!=", "tail" : "(arg0: Any): Boolean", "member" : "scala.AnyRef.!=", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexTypeDsl.html#!=(x$1:Any):Boolean", "kind" : "final def"}, {"label" : "==", "tail" : "(arg0: Any): Boolean", "member" : "scala.AnyRef.==", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexTypeDsl.html#==(x$1:Any):Boolean", "kind" : "final def"}, {"label" : "ne", "tail" : "(arg0: AnyRef): Boolean", "member" : "scala.AnyRef.ne", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexTypeDsl.html#ne(x$1:AnyRef):Boolean", "kind" : "final def"}, {"label" : "eq", "tail" : "(arg0: AnyRef): Boolean", "member" : "scala.AnyRef.eq", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexTypeDsl.html#eq(x$1:AnyRef):Boolean", "kind" : "final def"}, {"label" : "finalize", "tail" : "(): Unit", "member" : "scala.AnyRef.finalize", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexTypeDsl.html#finalize():Unit", "kind" : "def"}, {"label" : "wait", "tail" : "(): Unit", "member" : "scala.AnyRef.wait", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexTypeDsl.html#wait():Unit", "kind" : "final def"}, {"label" : "wait", "tail" : "(arg0: Long, arg1: Int): Unit", "member" : "scala.AnyRef.wait", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexTypeDsl.html#wait(x$1:Long,x$2:Int):Unit", "kind" : "final def"}, {"label" : "wait", "tail" : "(arg0: Long): Unit", "member" : "scala.AnyRef.wait", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexTypeDsl.html#wait(x$1:Long):Unit", "kind" : "final def"}, {"label" : "notifyAll", "tail" : "(): Unit", "member" : "scala.AnyRef.notifyAll", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexTypeDsl.html#notifyAll():Unit", "kind" : "final def"}, {"label" : "notify", "tail" : "(): Unit", "member" : "scala.AnyRef.notify", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexTypeDsl.html#notify():Unit", "kind" : "final def"}, {"label" : "toString", "tail" : "(): String", "member" : "scala.AnyRef.toString", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexTypeDsl.html#toString():String", "kind" : "def"}, {"label" : "clone", "tail" : "(): AnyRef", "member" : "scala.AnyRef.clone", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexTypeDsl.html#clone():Object", "kind" : "def"}, {"label" : "equals", "tail" : "(arg0: Any): Boolean", "member" : "scala.AnyRef.equals", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexTypeDsl.html#equals(x$1:Any):Boolean", "kind" : "def"}, {"label" : "hashCode", "tail" : "(): Int", "member" : "scala.AnyRef.hashCode", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexTypeDsl.html#hashCode():Int", "kind" : "def"}, {"label" : "getClass", "tail" : "(): Class[_]", "member" : "scala.AnyRef.getClass", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexTypeDsl.html#getClass():Class[_]", "kind" : "final def"}, {"label" : "asInstanceOf", "tail" : "(): T0", "member" : "scala.Any.asInstanceOf", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexTypeDsl.html#asInstanceOf[T0]:T0", "kind" : "final def"}, {"label" : "isInstanceOf", "tail" : "(): Boolean", "member" : "scala.Any.isInstanceOf", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexTypeDsl.html#isInstanceOf[T0]:Boolean", "kind" : "final def"}], "members_object" : [{"label" : "PropertyDefinition", "tail" : "", "member" : "ch.acmesoftware.orientDbScalaDsl.VertexTypeDsl.PropertyDefinition", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexTypeDsl$.html#PropertyDefinition=(String,com.orientechnologies.orient.core.metadata.schema.OType)", "kind" : "type"}, {"label" : "synchronized", "tail" : "(arg0: ⇒ T0): T0", "member" : "scala.AnyRef.synchronized", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexTypeDsl$.html#synchronized[T0](x$1:=>T0):T0", "kind" : "final def"}, {"label" : "##", "tail" : "(): Int", "member" : "scala.AnyRef.##", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexTypeDsl$.html###():Int", "kind" : "final def"}, {"label" : "!=", "tail" : "(arg0: Any): Boolean", "member" : "scala.AnyRef.!=", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexTypeDsl$.html#!=(x$1:Any):Boolean", "kind" : "final def"}, {"label" : "==", "tail" : "(arg0: Any): Boolean", "member" : "scala.AnyRef.==", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexTypeDsl$.html#==(x$1:Any):Boolean", "kind" : "final def"}, {"label" : "ne", "tail" : "(arg0: AnyRef): Boolean", "member" : "scala.AnyRef.ne", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexTypeDsl$.html#ne(x$1:AnyRef):Boolean", "kind" : "final def"}, {"label" : "eq", "tail" : "(arg0: AnyRef): Boolean", "member" : "scala.AnyRef.eq", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexTypeDsl$.html#eq(x$1:AnyRef):Boolean", "kind" : "final def"}, {"label" : "finalize", "tail" : "(): Unit", "member" : "scala.AnyRef.finalize", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexTypeDsl$.html#finalize():Unit", "kind" : "def"}, {"label" : "wait", "tail" : "(): Unit", "member" : "scala.AnyRef.wait", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexTypeDsl$.html#wait():Unit", "kind" : "final def"}, {"label" : "wait", "tail" : "(arg0: Long, arg1: Int): Unit", "member" : "scala.AnyRef.wait", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexTypeDsl$.html#wait(x$1:Long,x$2:Int):Unit", "kind" : "final def"}, {"label" : "wait", "tail" : "(arg0: Long): Unit", "member" : "scala.AnyRef.wait", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexTypeDsl$.html#wait(x$1:Long):Unit", "kind" : "final def"}, {"label" : "notifyAll", "tail" : "(): Unit", "member" : "scala.AnyRef.notifyAll", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexTypeDsl$.html#notifyAll():Unit", "kind" : "final def"}, {"label" : "notify", "tail" : "(): Unit", "member" : "scala.AnyRef.notify", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexTypeDsl$.html#notify():Unit", "kind" : "final def"}, {"label" : "toString", "tail" : "(): String", "member" : "scala.AnyRef.toString", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexTypeDsl$.html#toString():String", "kind" : "def"}, {"label" : "clone", "tail" : "(): AnyRef", "member" : "scala.AnyRef.clone", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexTypeDsl$.html#clone():Object", "kind" : "def"}, {"label" : "equals", "tail" : "(arg0: Any): Boolean", "member" : "scala.AnyRef.equals", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexTypeDsl$.html#equals(x$1:Any):Boolean", "kind" : "def"}, {"label" : "hashCode", "tail" : "(): Int", "member" : "scala.AnyRef.hashCode", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexTypeDsl$.html#hashCode():Int", "kind" : "def"}, {"label" : "getClass", "tail" : "(): Class[_]", "member" : "scala.AnyRef.getClass", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexTypeDsl$.html#getClass():Class[_]", "kind" : "final def"}, {"label" : "asInstanceOf", "tail" : "(): T0", "member" : "scala.Any.asInstanceOf", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexTypeDsl$.html#asInstanceOf[T0]:T0", "kind" : "final def"}, {"label" : "isInstanceOf", "tail" : "(): Boolean", "member" : "scala.Any.isInstanceOf", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexTypeDsl$.html#isInstanceOf[T0]:Boolean", "kind" : "final def"}], "class" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexTypeDsl.html", "kind" : "class"}, {"name" : "ch.acmesoftware.orientDbScalaDsl.VertexWrapper", "shortDescription" : "Wrapper providing VertexDsl", "members_class" : [{"label" : "dsl", "tail" : "(): VertexDsl", "member" : "ch.acmesoftware.orientDbScalaDsl.VertexWrapper.dsl", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$VertexWrapper.html#dsl:ch.acmesoftware.orientDbScalaDsl.VertexDsl", "kind" : "def"}, {"member" : "ch.acmesoftware.orientDbScalaDsl.VertexWrapper#", "error" : "unsupported entity"}, {"label" : "synchronized", "tail" : "(arg0: ⇒ T0): T0", "member" : "scala.AnyRef.synchronized", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$VertexWrapper.html#synchronized[T0](x$1:=>T0):T0", "kind" : "final def"}, {"label" : "##", "tail" : "(): Int", "member" : "scala.AnyRef.##", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$VertexWrapper.html###():Int", "kind" : "final def"}, {"label" : "!=", "tail" : "(arg0: Any): Boolean", "member" : "scala.AnyRef.!=", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$VertexWrapper.html#!=(x$1:Any):Boolean", "kind" : "final def"}, {"label" : "==", "tail" : "(arg0: Any): Boolean", "member" : "scala.AnyRef.==", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$VertexWrapper.html#==(x$1:Any):Boolean", "kind" : "final def"}, {"label" : "ne", "tail" : "(arg0: AnyRef): Boolean", "member" : "scala.AnyRef.ne", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$VertexWrapper.html#ne(x$1:AnyRef):Boolean", "kind" : "final def"}, {"label" : "eq", "tail" : "(arg0: AnyRef): Boolean", "member" : "scala.AnyRef.eq", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$VertexWrapper.html#eq(x$1:AnyRef):Boolean", "kind" : "final def"}, {"label" : "finalize", "tail" : "(): Unit", "member" : "scala.AnyRef.finalize", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$VertexWrapper.html#finalize():Unit", "kind" : "def"}, {"label" : "wait", "tail" : "(): Unit", "member" : "scala.AnyRef.wait", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$VertexWrapper.html#wait():Unit", "kind" : "final def"}, {"label" : "wait", "tail" : "(arg0: Long, arg1: Int): Unit", "member" : "scala.AnyRef.wait", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$VertexWrapper.html#wait(x$1:Long,x$2:Int):Unit", "kind" : "final def"}, {"label" : "wait", "tail" : "(arg0: Long): Unit", "member" : "scala.AnyRef.wait", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$VertexWrapper.html#wait(x$1:Long):Unit", "kind" : "final def"}, {"label" : "notifyAll", "tail" : "(): Unit", "member" : "scala.AnyRef.notifyAll", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$VertexWrapper.html#notifyAll():Unit", "kind" : "final def"}, {"label" : "notify", "tail" : "(): Unit", "member" : "scala.AnyRef.notify", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$VertexWrapper.html#notify():Unit", "kind" : "final def"}, {"label" : "toString", "tail" : "(): String", "member" : "scala.AnyRef.toString", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$VertexWrapper.html#toString():String", "kind" : "def"}, {"label" : "clone", "tail" : "(): AnyRef", "member" : "scala.AnyRef.clone", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$VertexWrapper.html#clone():Object", "kind" : "def"}, {"label" : "equals", "tail" : "(arg0: Any): Boolean", "member" : "scala.AnyRef.equals", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$VertexWrapper.html#equals(x$1:Any):Boolean", "kind" : "def"}, {"label" : "hashCode", "tail" : "(): Int", "member" : "scala.AnyRef.hashCode", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$VertexWrapper.html#hashCode():Int", "kind" : "def"}, {"label" : "getClass", "tail" : "(): Class[_]", "member" : "scala.AnyRef.getClass", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$VertexWrapper.html#getClass():Class[_]", "kind" : "final def"}, {"label" : "asInstanceOf", "tail" : "(): T0", "member" : "scala.Any.asInstanceOf", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$VertexWrapper.html#asInstanceOf[T0]:T0", "kind" : "final def"}, {"label" : "isInstanceOf", "tail" : "(): Boolean", "member" : "scala.Any.isInstanceOf", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$VertexWrapper.html#isInstanceOf[T0]:Boolean", "kind" : "final def"}], "class" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$VertexWrapper.html", "kind" : "class"}]}; \ No newline at end of file +Index.PACKAGES = {"ch" : [], "ch.acmesoftware" : [], "ch.acmesoftware.orientDbScalaDsl" : [{"name" : "ch.acmesoftware.orientDbScalaDsl.EdgeDsl", "shortDescription" : "DSL extension for the Edge class", "members_class" : [{"member" : "ch.acmesoftware.orientDbScalaDsl.EdgeDsl#", "error" : "unsupported entity"}, {"label" : "underlying", "tail" : ": Edge", "member" : "ch.acmesoftware.orientDbScalaDsl.EdgeDsl.underlying", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/EdgeDsl.html#underlying:com.tinkerpop.blueprints.Edge", "kind" : "val"}, {"label" : "mandatoryProperty", "tail" : "(name: String): T", "member" : "ch.acmesoftware.orientDbScalaDsl.ElementDsl.mandatoryProperty", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/EdgeDsl.html#mandatoryProperty[T](name:String):T", "kind" : "def"}, {"label" : "property", "tail" : "(name: String): Option[T]", "member" : "ch.acmesoftware.orientDbScalaDsl.ElementDsl.property", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/EdgeDsl.html#property[T](name:String):Option[T]", "kind" : "def"}, {"label" : "and", "tail" : "(prop: Property): ElementDsl[Edge]", "member" : "ch.acmesoftware.orientDbScalaDsl.ElementDsl.and", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/EdgeDsl.html#and(prop:ch.acmesoftware.orientDbScalaDsl.ElementDsl.Property):ch.acmesoftware.orientDbScalaDsl.ElementDsl[U]", "kind" : "def"}, {"label" : "withProperty", "tail" : "(prop: Property): ElementDsl[Edge]", "member" : "ch.acmesoftware.orientDbScalaDsl.ElementDsl.withProperty", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/EdgeDsl.html#withProperty(prop:ch.acmesoftware.orientDbScalaDsl.ElementDsl.Property):ch.acmesoftware.orientDbScalaDsl.ElementDsl[U]", "kind" : "def"}, {"label" : "synchronized", "tail" : "(arg0: ⇒ T0): T0", "member" : "scala.AnyRef.synchronized", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/EdgeDsl.html#synchronized[T0](x$1:=>T0):T0", "kind" : "final def"}, {"label" : "##", "tail" : "(): Int", "member" : "scala.AnyRef.##", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/EdgeDsl.html###():Int", "kind" : "final def"}, {"label" : "!=", "tail" : "(arg0: Any): Boolean", "member" : "scala.AnyRef.!=", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/EdgeDsl.html#!=(x$1:Any):Boolean", "kind" : "final def"}, {"label" : "==", "tail" : "(arg0: Any): Boolean", "member" : "scala.AnyRef.==", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/EdgeDsl.html#==(x$1:Any):Boolean", "kind" : "final def"}, {"label" : "ne", "tail" : "(arg0: AnyRef): Boolean", "member" : "scala.AnyRef.ne", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/EdgeDsl.html#ne(x$1:AnyRef):Boolean", "kind" : "final def"}, {"label" : "eq", "tail" : "(arg0: AnyRef): Boolean", "member" : "scala.AnyRef.eq", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/EdgeDsl.html#eq(x$1:AnyRef):Boolean", "kind" : "final def"}, {"label" : "finalize", "tail" : "(): Unit", "member" : "scala.AnyRef.finalize", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/EdgeDsl.html#finalize():Unit", "kind" : "def"}, {"label" : "wait", "tail" : "(): Unit", "member" : "scala.AnyRef.wait", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/EdgeDsl.html#wait():Unit", "kind" : "final def"}, {"label" : "wait", "tail" : "(arg0: Long, arg1: Int): Unit", "member" : "scala.AnyRef.wait", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/EdgeDsl.html#wait(x$1:Long,x$2:Int):Unit", "kind" : "final def"}, {"label" : "wait", "tail" : "(arg0: Long): Unit", "member" : "scala.AnyRef.wait", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/EdgeDsl.html#wait(x$1:Long):Unit", "kind" : "final def"}, {"label" : "notifyAll", "tail" : "(): Unit", "member" : "scala.AnyRef.notifyAll", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/EdgeDsl.html#notifyAll():Unit", "kind" : "final def"}, {"label" : "notify", "tail" : "(): Unit", "member" : "scala.AnyRef.notify", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/EdgeDsl.html#notify():Unit", "kind" : "final def"}, {"label" : "toString", "tail" : "(): String", "member" : "scala.AnyRef.toString", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/EdgeDsl.html#toString():String", "kind" : "def"}, {"label" : "clone", "tail" : "(): AnyRef", "member" : "scala.AnyRef.clone", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/EdgeDsl.html#clone():Object", "kind" : "def"}, {"label" : "equals", "tail" : "(arg0: Any): Boolean", "member" : "scala.AnyRef.equals", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/EdgeDsl.html#equals(x$1:Any):Boolean", "kind" : "def"}, {"label" : "hashCode", "tail" : "(): Int", "member" : "scala.AnyRef.hashCode", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/EdgeDsl.html#hashCode():Int", "kind" : "def"}, {"label" : "getClass", "tail" : "(): Class[_]", "member" : "scala.AnyRef.getClass", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/EdgeDsl.html#getClass():Class[_]", "kind" : "final def"}, {"label" : "asInstanceOf", "tail" : "(): T0", "member" : "scala.Any.asInstanceOf", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/EdgeDsl.html#asInstanceOf[T0]:T0", "kind" : "final def"}, {"label" : "isInstanceOf", "tail" : "(): Boolean", "member" : "scala.Any.isInstanceOf", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/EdgeDsl.html#isInstanceOf[T0]:Boolean", "kind" : "final def"}], "class" : "ch\/acmesoftware\/orientDbScalaDsl\/EdgeDsl.html", "kind" : "class"}, {"name" : "ch.acmesoftware.orientDbScalaDsl.EdgeWrapper", "shortDescription" : "Wrapper providing VertexDsl", "members_class" : [{"label" : "dsl", "tail" : "(): EdgeDsl", "member" : "ch.acmesoftware.orientDbScalaDsl.EdgeWrapper.dsl", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$EdgeWrapper.html#dsl:ch.acmesoftware.orientDbScalaDsl.EdgeDsl", "kind" : "def"}, {"member" : "ch.acmesoftware.orientDbScalaDsl.EdgeWrapper#", "error" : "unsupported entity"}, {"label" : "synchronized", "tail" : "(arg0: ⇒ T0): T0", "member" : "scala.AnyRef.synchronized", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$EdgeWrapper.html#synchronized[T0](x$1:=>T0):T0", "kind" : "final def"}, {"label" : "##", "tail" : "(): Int", "member" : "scala.AnyRef.##", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$EdgeWrapper.html###():Int", "kind" : "final def"}, {"label" : "!=", "tail" : "(arg0: Any): Boolean", "member" : "scala.AnyRef.!=", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$EdgeWrapper.html#!=(x$1:Any):Boolean", "kind" : "final def"}, {"label" : "==", "tail" : "(arg0: Any): Boolean", "member" : "scala.AnyRef.==", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$EdgeWrapper.html#==(x$1:Any):Boolean", "kind" : "final def"}, {"label" : "ne", "tail" : "(arg0: AnyRef): Boolean", "member" : "scala.AnyRef.ne", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$EdgeWrapper.html#ne(x$1:AnyRef):Boolean", "kind" : "final def"}, {"label" : "eq", "tail" : "(arg0: AnyRef): Boolean", "member" : "scala.AnyRef.eq", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$EdgeWrapper.html#eq(x$1:AnyRef):Boolean", "kind" : "final def"}, {"label" : "finalize", "tail" : "(): Unit", "member" : "scala.AnyRef.finalize", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$EdgeWrapper.html#finalize():Unit", "kind" : "def"}, {"label" : "wait", "tail" : "(): Unit", "member" : "scala.AnyRef.wait", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$EdgeWrapper.html#wait():Unit", "kind" : "final def"}, {"label" : "wait", "tail" : "(arg0: Long, arg1: Int): Unit", "member" : "scala.AnyRef.wait", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$EdgeWrapper.html#wait(x$1:Long,x$2:Int):Unit", "kind" : "final def"}, {"label" : "wait", "tail" : "(arg0: Long): Unit", "member" : "scala.AnyRef.wait", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$EdgeWrapper.html#wait(x$1:Long):Unit", "kind" : "final def"}, {"label" : "notifyAll", "tail" : "(): Unit", "member" : "scala.AnyRef.notifyAll", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$EdgeWrapper.html#notifyAll():Unit", "kind" : "final def"}, {"label" : "notify", "tail" : "(): Unit", "member" : "scala.AnyRef.notify", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$EdgeWrapper.html#notify():Unit", "kind" : "final def"}, {"label" : "toString", "tail" : "(): String", "member" : "scala.AnyRef.toString", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$EdgeWrapper.html#toString():String", "kind" : "def"}, {"label" : "clone", "tail" : "(): AnyRef", "member" : "scala.AnyRef.clone", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$EdgeWrapper.html#clone():Object", "kind" : "def"}, {"label" : "equals", "tail" : "(arg0: Any): Boolean", "member" : "scala.AnyRef.equals", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$EdgeWrapper.html#equals(x$1:Any):Boolean", "kind" : "def"}, {"label" : "hashCode", "tail" : "(): Int", "member" : "scala.AnyRef.hashCode", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$EdgeWrapper.html#hashCode():Int", "kind" : "def"}, {"label" : "getClass", "tail" : "(): Class[_]", "member" : "scala.AnyRef.getClass", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$EdgeWrapper.html#getClass():Class[_]", "kind" : "final def"}, {"label" : "asInstanceOf", "tail" : "(): T0", "member" : "scala.Any.asInstanceOf", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$EdgeWrapper.html#asInstanceOf[T0]:T0", "kind" : "final def"}, {"label" : "isInstanceOf", "tail" : "(): Boolean", "member" : "scala.Any.isInstanceOf", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$EdgeWrapper.html#isInstanceOf[T0]:Boolean", "kind" : "final def"}], "class" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$EdgeWrapper.html", "kind" : "class"}, {"name" : "ch.acmesoftware.orientDbScalaDsl.ElementDsl", "members_trait" : [{"label" : "mandatoryProperty", "tail" : "(name: String): T", "member" : "ch.acmesoftware.orientDbScalaDsl.ElementDsl.mandatoryProperty", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/ElementDsl.html#mandatoryProperty[T](name:String):T", "kind" : "def"}, {"label" : "property", "tail" : "(name: String): Option[T]", "member" : "ch.acmesoftware.orientDbScalaDsl.ElementDsl.property", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/ElementDsl.html#property[T](name:String):Option[T]", "kind" : "def"}, {"label" : "and", "tail" : "(prop: Property): ElementDsl[U]", "member" : "ch.acmesoftware.orientDbScalaDsl.ElementDsl.and", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/ElementDsl.html#and(prop:ch.acmesoftware.orientDbScalaDsl.ElementDsl.Property):ch.acmesoftware.orientDbScalaDsl.ElementDsl[U]", "kind" : "def"}, {"label" : "withProperty", "tail" : "(prop: Property): ElementDsl[U]", "member" : "ch.acmesoftware.orientDbScalaDsl.ElementDsl.withProperty", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/ElementDsl.html#withProperty(prop:ch.acmesoftware.orientDbScalaDsl.ElementDsl.Property):ch.acmesoftware.orientDbScalaDsl.ElementDsl[U]", "kind" : "def"}, {"label" : "synchronized", "tail" : "(arg0: ⇒ T0): T0", "member" : "scala.AnyRef.synchronized", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/ElementDsl.html#synchronized[T0](x$1:=>T0):T0", "kind" : "final def"}, {"label" : "##", "tail" : "(): Int", "member" : "scala.AnyRef.##", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/ElementDsl.html###():Int", "kind" : "final def"}, {"label" : "!=", "tail" : "(arg0: Any): Boolean", "member" : "scala.AnyRef.!=", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/ElementDsl.html#!=(x$1:Any):Boolean", "kind" : "final def"}, {"label" : "==", "tail" : "(arg0: Any): Boolean", "member" : "scala.AnyRef.==", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/ElementDsl.html#==(x$1:Any):Boolean", "kind" : "final def"}, {"label" : "ne", "tail" : "(arg0: AnyRef): Boolean", "member" : "scala.AnyRef.ne", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/ElementDsl.html#ne(x$1:AnyRef):Boolean", "kind" : "final def"}, {"label" : "eq", "tail" : "(arg0: AnyRef): Boolean", "member" : "scala.AnyRef.eq", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/ElementDsl.html#eq(x$1:AnyRef):Boolean", "kind" : "final def"}, {"label" : "finalize", "tail" : "(): Unit", "member" : "scala.AnyRef.finalize", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/ElementDsl.html#finalize():Unit", "kind" : "def"}, {"label" : "wait", "tail" : "(): Unit", "member" : "scala.AnyRef.wait", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/ElementDsl.html#wait():Unit", "kind" : "final def"}, {"label" : "wait", "tail" : "(arg0: Long, arg1: Int): Unit", "member" : "scala.AnyRef.wait", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/ElementDsl.html#wait(x$1:Long,x$2:Int):Unit", "kind" : "final def"}, {"label" : "wait", "tail" : "(arg0: Long): Unit", "member" : "scala.AnyRef.wait", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/ElementDsl.html#wait(x$1:Long):Unit", "kind" : "final def"}, {"label" : "notifyAll", "tail" : "(): Unit", "member" : "scala.AnyRef.notifyAll", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/ElementDsl.html#notifyAll():Unit", "kind" : "final def"}, {"label" : "notify", "tail" : "(): Unit", "member" : "scala.AnyRef.notify", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/ElementDsl.html#notify():Unit", "kind" : "final def"}, {"label" : "toString", "tail" : "(): String", "member" : "scala.AnyRef.toString", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/ElementDsl.html#toString():String", "kind" : "def"}, {"label" : "clone", "tail" : "(): AnyRef", "member" : "scala.AnyRef.clone", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/ElementDsl.html#clone():Object", "kind" : "def"}, {"label" : "equals", "tail" : "(arg0: Any): Boolean", "member" : "scala.AnyRef.equals", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/ElementDsl.html#equals(x$1:Any):Boolean", "kind" : "def"}, {"label" : "hashCode", "tail" : "(): Int", "member" : "scala.AnyRef.hashCode", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/ElementDsl.html#hashCode():Int", "kind" : "def"}, {"label" : "getClass", "tail" : "(): Class[_]", "member" : "scala.AnyRef.getClass", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/ElementDsl.html#getClass():Class[_]", "kind" : "final def"}, {"label" : "asInstanceOf", "tail" : "(): T0", "member" : "scala.Any.asInstanceOf", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/ElementDsl.html#asInstanceOf[T0]:T0", "kind" : "final def"}, {"label" : "isInstanceOf", "tail" : "(): Boolean", "member" : "scala.Any.isInstanceOf", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/ElementDsl.html#isInstanceOf[T0]:Boolean", "kind" : "final def"}, {"label" : "underlying", "tail" : ": U", "member" : "ch.acmesoftware.orientDbScalaDsl.ElementDsl.underlying", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/ElementDsl.html#underlying:U", "kind" : "abstract val"}], "shortDescription" : "", "object" : "ch\/acmesoftware\/orientDbScalaDsl\/ElementDsl$.html", "members_object" : [{"label" : "Property", "tail" : "", "member" : "ch.acmesoftware.orientDbScalaDsl.ElementDsl.Property", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/ElementDsl$.html#Property=(String,Any)", "kind" : "type"}, {"label" : "synchronized", "tail" : "(arg0: ⇒ T0): T0", "member" : "scala.AnyRef.synchronized", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/ElementDsl$.html#synchronized[T0](x$1:=>T0):T0", "kind" : "final def"}, {"label" : "##", "tail" : "(): Int", "member" : "scala.AnyRef.##", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/ElementDsl$.html###():Int", "kind" : "final def"}, {"label" : "!=", "tail" : "(arg0: Any): Boolean", "member" : "scala.AnyRef.!=", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/ElementDsl$.html#!=(x$1:Any):Boolean", "kind" : "final def"}, {"label" : "==", "tail" : "(arg0: Any): Boolean", "member" : "scala.AnyRef.==", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/ElementDsl$.html#==(x$1:Any):Boolean", "kind" : "final def"}, {"label" : "ne", "tail" : "(arg0: AnyRef): Boolean", "member" : "scala.AnyRef.ne", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/ElementDsl$.html#ne(x$1:AnyRef):Boolean", "kind" : "final def"}, {"label" : "eq", "tail" : "(arg0: AnyRef): Boolean", "member" : "scala.AnyRef.eq", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/ElementDsl$.html#eq(x$1:AnyRef):Boolean", "kind" : "final def"}, {"label" : "finalize", "tail" : "(): Unit", "member" : "scala.AnyRef.finalize", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/ElementDsl$.html#finalize():Unit", "kind" : "def"}, {"label" : "wait", "tail" : "(): Unit", "member" : "scala.AnyRef.wait", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/ElementDsl$.html#wait():Unit", "kind" : "final def"}, {"label" : "wait", "tail" : "(arg0: Long, arg1: Int): Unit", "member" : "scala.AnyRef.wait", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/ElementDsl$.html#wait(x$1:Long,x$2:Int):Unit", "kind" : "final def"}, {"label" : "wait", "tail" : "(arg0: Long): Unit", "member" : "scala.AnyRef.wait", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/ElementDsl$.html#wait(x$1:Long):Unit", "kind" : "final def"}, {"label" : "notifyAll", "tail" : "(): Unit", "member" : "scala.AnyRef.notifyAll", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/ElementDsl$.html#notifyAll():Unit", "kind" : "final def"}, {"label" : "notify", "tail" : "(): Unit", "member" : "scala.AnyRef.notify", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/ElementDsl$.html#notify():Unit", "kind" : "final def"}, {"label" : "toString", "tail" : "(): String", "member" : "scala.AnyRef.toString", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/ElementDsl$.html#toString():String", "kind" : "def"}, {"label" : "clone", "tail" : "(): AnyRef", "member" : "scala.AnyRef.clone", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/ElementDsl$.html#clone():Object", "kind" : "def"}, {"label" : "equals", "tail" : "(arg0: Any): Boolean", "member" : "scala.AnyRef.equals", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/ElementDsl$.html#equals(x$1:Any):Boolean", "kind" : "def"}, {"label" : "hashCode", "tail" : "(): Int", "member" : "scala.AnyRef.hashCode", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/ElementDsl$.html#hashCode():Int", "kind" : "def"}, {"label" : "getClass", "tail" : "(): Class[_]", "member" : "scala.AnyRef.getClass", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/ElementDsl$.html#getClass():Class[_]", "kind" : "final def"}, {"label" : "asInstanceOf", "tail" : "(): T0", "member" : "scala.Any.asInstanceOf", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/ElementDsl$.html#asInstanceOf[T0]:T0", "kind" : "final def"}, {"label" : "isInstanceOf", "tail" : "(): Boolean", "member" : "scala.Any.isInstanceOf", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/ElementDsl$.html#isInstanceOf[T0]:Boolean", "kind" : "final def"}], "trait" : "ch\/acmesoftware\/orientDbScalaDsl\/ElementDsl.html", "kind" : "trait"}, {"name" : "ch.acmesoftware.orientDbScalaDsl.GraphDsl", "shortDescription" : "DSL extension for the OrientBaseGraph class", "members_class" : [{"label" : "ToVertex", "tail" : "", "member" : "ch.acmesoftware.orientDbScalaDsl.GraphDsl.ToVertex", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/GraphDsl.html#ToVertex=ch.acmesoftware.orientDbScalaDsl.VertexDsl", "kind" : "type"}, {"label" : "FromVertex", "tail" : "", "member" : "ch.acmesoftware.orientDbScalaDsl.GraphDsl.FromVertex", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/GraphDsl.html#FromVertex=ch.acmesoftware.orientDbScalaDsl.VertexDsl", "kind" : "type"}, {"label" : "Label", "tail" : "", "member" : "ch.acmesoftware.orientDbScalaDsl.GraphDsl.Label", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/GraphDsl.html#Label=String", "kind" : "type"}, {"label" : "VerticlesFilterQuery", "tail" : "", "member" : "ch.acmesoftware.orientDbScalaDsl.GraphDsl.VerticlesFilterQuery", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/GraphDsl.html#VerticlesFilterQueryextendsAnyRef", "kind" : "class"}, {"label" : "commit", "tail" : "(): Unit", "member" : "ch.acmesoftware.orientDbScalaDsl.GraphDsl.commit", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/GraphDsl.html#commit():Unit", "kind" : "def"}, {"label" : "addEdge", "tail" : "(e: (Label, (FromVertex, ToVertex))): EdgeDsl", "member" : "ch.acmesoftware.orientDbScalaDsl.GraphDsl.addEdge", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/GraphDsl.html#addEdge(e:(GraphDsl.this.Label,(GraphDsl.this.FromVertex,GraphDsl.this.ToVertex))):ch.acmesoftware.orientDbScalaDsl.EdgeDsl", "kind" : "def"}, {"label" : "findVertices", "tail" : "(label: String): VerticlesFilterQuery", "member" : "ch.acmesoftware.orientDbScalaDsl.GraphDsl.findVertices", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/GraphDsl.html#findVertices(label:String):GraphDsl.this.VerticlesFilterQuery", "kind" : "def"}, {"label" : "addVertex", "tail" : "(label: String): VertexDsl", "member" : "ch.acmesoftware.orientDbScalaDsl.GraphDsl.addVertex", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/GraphDsl.html#addVertex(label:String):ch.acmesoftware.orientDbScalaDsl.VertexDsl", "kind" : "def"}, {"label" : "getVertexType", "tail" : "(label: String): Option[VertexTypeDsl]", "member" : "ch.acmesoftware.orientDbScalaDsl.GraphDsl.getVertexType", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/GraphDsl.html#getVertexType(label:String):Option[ch.acmesoftware.orientDbScalaDsl.VertexTypeDsl]", "kind" : "def"}, {"label" : "createVertexType", "tail" : "(label: String): VertexTypeDsl", "member" : "ch.acmesoftware.orientDbScalaDsl.GraphDsl.createVertexType", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/GraphDsl.html#createVertexType(label:String):ch.acmesoftware.orientDbScalaDsl.VertexTypeDsl", "kind" : "def"}, {"member" : "ch.acmesoftware.orientDbScalaDsl.GraphDsl#", "error" : "unsupported entity"}, {"label" : "underlying", "tail" : ": OrientBaseGraph", "member" : "ch.acmesoftware.orientDbScalaDsl.GraphDsl.underlying", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/GraphDsl.html#underlying:com.tinkerpop.blueprints.impls.orient.OrientBaseGraph", "kind" : "val"}, {"label" : "synchronized", "tail" : "(arg0: ⇒ T0): T0", "member" : "scala.AnyRef.synchronized", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/GraphDsl.html#synchronized[T0](x$1:=>T0):T0", "kind" : "final def"}, {"label" : "##", "tail" : "(): Int", "member" : "scala.AnyRef.##", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/GraphDsl.html###():Int", "kind" : "final def"}, {"label" : "!=", "tail" : "(arg0: Any): Boolean", "member" : "scala.AnyRef.!=", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/GraphDsl.html#!=(x$1:Any):Boolean", "kind" : "final def"}, {"label" : "==", "tail" : "(arg0: Any): Boolean", "member" : "scala.AnyRef.==", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/GraphDsl.html#==(x$1:Any):Boolean", "kind" : "final def"}, {"label" : "ne", "tail" : "(arg0: AnyRef): Boolean", "member" : "scala.AnyRef.ne", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/GraphDsl.html#ne(x$1:AnyRef):Boolean", "kind" : "final def"}, {"label" : "eq", "tail" : "(arg0: AnyRef): Boolean", "member" : "scala.AnyRef.eq", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/GraphDsl.html#eq(x$1:AnyRef):Boolean", "kind" : "final def"}, {"label" : "finalize", "tail" : "(): Unit", "member" : "scala.AnyRef.finalize", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/GraphDsl.html#finalize():Unit", "kind" : "def"}, {"label" : "wait", "tail" : "(): Unit", "member" : "scala.AnyRef.wait", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/GraphDsl.html#wait():Unit", "kind" : "final def"}, {"label" : "wait", "tail" : "(arg0: Long, arg1: Int): Unit", "member" : "scala.AnyRef.wait", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/GraphDsl.html#wait(x$1:Long,x$2:Int):Unit", "kind" : "final def"}, {"label" : "wait", "tail" : "(arg0: Long): Unit", "member" : "scala.AnyRef.wait", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/GraphDsl.html#wait(x$1:Long):Unit", "kind" : "final def"}, {"label" : "notifyAll", "tail" : "(): Unit", "member" : "scala.AnyRef.notifyAll", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/GraphDsl.html#notifyAll():Unit", "kind" : "final def"}, {"label" : "notify", "tail" : "(): Unit", "member" : "scala.AnyRef.notify", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/GraphDsl.html#notify():Unit", "kind" : "final def"}, {"label" : "toString", "tail" : "(): String", "member" : "scala.AnyRef.toString", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/GraphDsl.html#toString():String", "kind" : "def"}, {"label" : "clone", "tail" : "(): AnyRef", "member" : "scala.AnyRef.clone", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/GraphDsl.html#clone():Object", "kind" : "def"}, {"label" : "equals", "tail" : "(arg0: Any): Boolean", "member" : "scala.AnyRef.equals", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/GraphDsl.html#equals(x$1:Any):Boolean", "kind" : "def"}, {"label" : "hashCode", "tail" : "(): Int", "member" : "scala.AnyRef.hashCode", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/GraphDsl.html#hashCode():Int", "kind" : "def"}, {"label" : "getClass", "tail" : "(): Class[_]", "member" : "scala.AnyRef.getClass", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/GraphDsl.html#getClass():Class[_]", "kind" : "final def"}, {"label" : "asInstanceOf", "tail" : "(): T0", "member" : "scala.Any.asInstanceOf", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/GraphDsl.html#asInstanceOf[T0]:T0", "kind" : "final def"}, {"label" : "isInstanceOf", "tail" : "(): Boolean", "member" : "scala.Any.isInstanceOf", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/GraphDsl.html#isInstanceOf[T0]:Boolean", "kind" : "final def"}], "class" : "ch\/acmesoftware\/orientDbScalaDsl\/GraphDsl.html", "kind" : "class"}, {"name" : "ch.acmesoftware.orientDbScalaDsl.GraphWrapper", "shortDescription" : "Wrapper providing GraphDsl", "members_class" : [{"label" : "dsl", "tail" : "(): GraphDsl", "member" : "ch.acmesoftware.orientDbScalaDsl.GraphWrapper.dsl", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$GraphWrapper.html#dsl:ch.acmesoftware.orientDbScalaDsl.GraphDsl", "kind" : "def"}, {"member" : "ch.acmesoftware.orientDbScalaDsl.GraphWrapper#", "error" : "unsupported entity"}, {"label" : "synchronized", "tail" : "(arg0: ⇒ T0): T0", "member" : "scala.AnyRef.synchronized", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$GraphWrapper.html#synchronized[T0](x$1:=>T0):T0", "kind" : "final def"}, {"label" : "##", "tail" : "(): Int", "member" : "scala.AnyRef.##", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$GraphWrapper.html###():Int", "kind" : "final def"}, {"label" : "!=", "tail" : "(arg0: Any): Boolean", "member" : "scala.AnyRef.!=", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$GraphWrapper.html#!=(x$1:Any):Boolean", "kind" : "final def"}, {"label" : "==", "tail" : "(arg0: Any): Boolean", "member" : "scala.AnyRef.==", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$GraphWrapper.html#==(x$1:Any):Boolean", "kind" : "final def"}, {"label" : "ne", "tail" : "(arg0: AnyRef): Boolean", "member" : "scala.AnyRef.ne", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$GraphWrapper.html#ne(x$1:AnyRef):Boolean", "kind" : "final def"}, {"label" : "eq", "tail" : "(arg0: AnyRef): Boolean", "member" : "scala.AnyRef.eq", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$GraphWrapper.html#eq(x$1:AnyRef):Boolean", "kind" : "final def"}, {"label" : "finalize", "tail" : "(): Unit", "member" : "scala.AnyRef.finalize", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$GraphWrapper.html#finalize():Unit", "kind" : "def"}, {"label" : "wait", "tail" : "(): Unit", "member" : "scala.AnyRef.wait", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$GraphWrapper.html#wait():Unit", "kind" : "final def"}, {"label" : "wait", "tail" : "(arg0: Long, arg1: Int): Unit", "member" : "scala.AnyRef.wait", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$GraphWrapper.html#wait(x$1:Long,x$2:Int):Unit", "kind" : "final def"}, {"label" : "wait", "tail" : "(arg0: Long): Unit", "member" : "scala.AnyRef.wait", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$GraphWrapper.html#wait(x$1:Long):Unit", "kind" : "final def"}, {"label" : "notifyAll", "tail" : "(): Unit", "member" : "scala.AnyRef.notifyAll", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$GraphWrapper.html#notifyAll():Unit", "kind" : "final def"}, {"label" : "notify", "tail" : "(): Unit", "member" : "scala.AnyRef.notify", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$GraphWrapper.html#notify():Unit", "kind" : "final def"}, {"label" : "toString", "tail" : "(): String", "member" : "scala.AnyRef.toString", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$GraphWrapper.html#toString():String", "kind" : "def"}, {"label" : "clone", "tail" : "(): AnyRef", "member" : "scala.AnyRef.clone", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$GraphWrapper.html#clone():Object", "kind" : "def"}, {"label" : "equals", "tail" : "(arg0: Any): Boolean", "member" : "scala.AnyRef.equals", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$GraphWrapper.html#equals(x$1:Any):Boolean", "kind" : "def"}, {"label" : "hashCode", "tail" : "(): Int", "member" : "scala.AnyRef.hashCode", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$GraphWrapper.html#hashCode():Int", "kind" : "def"}, {"label" : "getClass", "tail" : "(): Class[_]", "member" : "scala.AnyRef.getClass", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$GraphWrapper.html#getClass():Class[_]", "kind" : "final def"}, {"label" : "asInstanceOf", "tail" : "(): T0", "member" : "scala.Any.asInstanceOf", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$GraphWrapper.html#asInstanceOf[T0]:T0", "kind" : "final def"}, {"label" : "isInstanceOf", "tail" : "(): Boolean", "member" : "scala.Any.isInstanceOf", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$GraphWrapper.html#isInstanceOf[T0]:Boolean", "kind" : "final def"}], "class" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$GraphWrapper.html", "kind" : "class"}, {"name" : "ch.acmesoftware.orientDbScalaDsl.VertexDsl", "shortDescription" : "DSL extension for the Vertex class", "members_class" : [{"label" : "out", "tail" : "(label: String): Iterable[EdgeDsl]", "member" : "ch.acmesoftware.orientDbScalaDsl.VertexDsl.out", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl.html#out(label:String):Iterable[ch.acmesoftware.orientDbScalaDsl.EdgeDsl]", "kind" : "def"}, {"label" : "in", "tail" : "(label: String): Iterable[EdgeDsl]", "member" : "ch.acmesoftware.orientDbScalaDsl.VertexDsl.in", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl.html#in(label:String):Iterable[ch.acmesoftware.orientDbScalaDsl.EdgeDsl]", "kind" : "def"}, {"member" : "ch.acmesoftware.orientDbScalaDsl.VertexDsl#", "error" : "unsupported entity"}, {"label" : "underlying", "tail" : ": Vertex", "member" : "ch.acmesoftware.orientDbScalaDsl.VertexDsl.underlying", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl.html#underlying:com.tinkerpop.blueprints.Vertex", "kind" : "val"}, {"label" : "mandatoryProperty", "tail" : "(name: String): T", "member" : "ch.acmesoftware.orientDbScalaDsl.ElementDsl.mandatoryProperty", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl.html#mandatoryProperty[T](name:String):T", "kind" : "def"}, {"label" : "property", "tail" : "(name: String): Option[T]", "member" : "ch.acmesoftware.orientDbScalaDsl.ElementDsl.property", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl.html#property[T](name:String):Option[T]", "kind" : "def"}, {"label" : "and", "tail" : "(prop: Property): ElementDsl[Vertex]", "member" : "ch.acmesoftware.orientDbScalaDsl.ElementDsl.and", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl.html#and(prop:ch.acmesoftware.orientDbScalaDsl.ElementDsl.Property):ch.acmesoftware.orientDbScalaDsl.ElementDsl[U]", "kind" : "def"}, {"label" : "withProperty", "tail" : "(prop: Property): ElementDsl[Vertex]", "member" : "ch.acmesoftware.orientDbScalaDsl.ElementDsl.withProperty", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl.html#withProperty(prop:ch.acmesoftware.orientDbScalaDsl.ElementDsl.Property):ch.acmesoftware.orientDbScalaDsl.ElementDsl[U]", "kind" : "def"}, {"label" : "synchronized", "tail" : "(arg0: ⇒ T0): T0", "member" : "scala.AnyRef.synchronized", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl.html#synchronized[T0](x$1:=>T0):T0", "kind" : "final def"}, {"label" : "##", "tail" : "(): Int", "member" : "scala.AnyRef.##", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl.html###():Int", "kind" : "final def"}, {"label" : "!=", "tail" : "(arg0: Any): Boolean", "member" : "scala.AnyRef.!=", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl.html#!=(x$1:Any):Boolean", "kind" : "final def"}, {"label" : "==", "tail" : "(arg0: Any): Boolean", "member" : "scala.AnyRef.==", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl.html#==(x$1:Any):Boolean", "kind" : "final def"}, {"label" : "ne", "tail" : "(arg0: AnyRef): Boolean", "member" : "scala.AnyRef.ne", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl.html#ne(x$1:AnyRef):Boolean", "kind" : "final def"}, {"label" : "eq", "tail" : "(arg0: AnyRef): Boolean", "member" : "scala.AnyRef.eq", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl.html#eq(x$1:AnyRef):Boolean", "kind" : "final def"}, {"label" : "finalize", "tail" : "(): Unit", "member" : "scala.AnyRef.finalize", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl.html#finalize():Unit", "kind" : "def"}, {"label" : "wait", "tail" : "(): Unit", "member" : "scala.AnyRef.wait", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl.html#wait():Unit", "kind" : "final def"}, {"label" : "wait", "tail" : "(arg0: Long, arg1: Int): Unit", "member" : "scala.AnyRef.wait", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl.html#wait(x$1:Long,x$2:Int):Unit", "kind" : "final def"}, {"label" : "wait", "tail" : "(arg0: Long): Unit", "member" : "scala.AnyRef.wait", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl.html#wait(x$1:Long):Unit", "kind" : "final def"}, {"label" : "notifyAll", "tail" : "(): Unit", "member" : "scala.AnyRef.notifyAll", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl.html#notifyAll():Unit", "kind" : "final def"}, {"label" : "notify", "tail" : "(): Unit", "member" : "scala.AnyRef.notify", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl.html#notify():Unit", "kind" : "final def"}, {"label" : "toString", "tail" : "(): String", "member" : "scala.AnyRef.toString", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl.html#toString():String", "kind" : "def"}, {"label" : "clone", "tail" : "(): AnyRef", "member" : "scala.AnyRef.clone", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl.html#clone():Object", "kind" : "def"}, {"label" : "equals", "tail" : "(arg0: Any): Boolean", "member" : "scala.AnyRef.equals", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl.html#equals(x$1:Any):Boolean", "kind" : "def"}, {"label" : "hashCode", "tail" : "(): Int", "member" : "scala.AnyRef.hashCode", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl.html#hashCode():Int", "kind" : "def"}, {"label" : "getClass", "tail" : "(): Class[_]", "member" : "scala.AnyRef.getClass", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl.html#getClass():Class[_]", "kind" : "final def"}, {"label" : "asInstanceOf", "tail" : "(): T0", "member" : "scala.Any.asInstanceOf", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl.html#asInstanceOf[T0]:T0", "kind" : "final def"}, {"label" : "isInstanceOf", "tail" : "(): Boolean", "member" : "scala.Any.isInstanceOf", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl.html#isInstanceOf[T0]:Boolean", "kind" : "final def"}], "class" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexDsl.html", "kind" : "class"}, {"name" : "ch.acmesoftware.orientDbScalaDsl.VertexTypeDsl", "shortDescription" : "DSL extension for the OrientVertexType class", "object" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexTypeDsl$.html", "members_class" : [{"label" : "unique", "tail" : "(fieldName: String): VertexTypeDsl", "member" : "ch.acmesoftware.orientDbScalaDsl.VertexTypeDsl.unique", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexTypeDsl.html#unique(fieldName:String):ch.acmesoftware.orientDbScalaDsl.VertexTypeDsl", "kind" : "def"}, {"label" : "withProperty", "tail" : "(d: PropertyDefinition): VertexTypeDsl", "member" : "ch.acmesoftware.orientDbScalaDsl.VertexTypeDsl.withProperty", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexTypeDsl.html#withProperty(d:ch.acmesoftware.orientDbScalaDsl.VertexTypeDsl.PropertyDefinition):ch.acmesoftware.orientDbScalaDsl.VertexTypeDsl", "kind" : "def"}, {"label" : "and", "tail" : "(d: PropertyDefinition): VertexTypeDsl", "member" : "ch.acmesoftware.orientDbScalaDsl.VertexTypeDsl.and", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexTypeDsl.html#and(d:ch.acmesoftware.orientDbScalaDsl.VertexTypeDsl.PropertyDefinition):ch.acmesoftware.orientDbScalaDsl.VertexTypeDsl", "kind" : "def"}, {"member" : "ch.acmesoftware.orientDbScalaDsl.VertexTypeDsl#", "error" : "unsupported entity"}, {"label" : "underlying", "tail" : ": OrientVertexType", "member" : "ch.acmesoftware.orientDbScalaDsl.VertexTypeDsl.underlying", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexTypeDsl.html#underlying:com.tinkerpop.blueprints.impls.orient.OrientVertexType", "kind" : "val"}, {"label" : "synchronized", "tail" : "(arg0: ⇒ T0): T0", "member" : "scala.AnyRef.synchronized", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexTypeDsl.html#synchronized[T0](x$1:=>T0):T0", "kind" : "final def"}, {"label" : "##", "tail" : "(): Int", "member" : "scala.AnyRef.##", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexTypeDsl.html###():Int", "kind" : "final def"}, {"label" : "!=", "tail" : "(arg0: Any): Boolean", "member" : "scala.AnyRef.!=", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexTypeDsl.html#!=(x$1:Any):Boolean", "kind" : "final def"}, {"label" : "==", "tail" : "(arg0: Any): Boolean", "member" : "scala.AnyRef.==", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexTypeDsl.html#==(x$1:Any):Boolean", "kind" : "final def"}, {"label" : "ne", "tail" : "(arg0: AnyRef): Boolean", "member" : "scala.AnyRef.ne", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexTypeDsl.html#ne(x$1:AnyRef):Boolean", "kind" : "final def"}, {"label" : "eq", "tail" : "(arg0: AnyRef): Boolean", "member" : "scala.AnyRef.eq", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexTypeDsl.html#eq(x$1:AnyRef):Boolean", "kind" : "final def"}, {"label" : "finalize", "tail" : "(): Unit", "member" : "scala.AnyRef.finalize", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexTypeDsl.html#finalize():Unit", "kind" : "def"}, {"label" : "wait", "tail" : "(): Unit", "member" : "scala.AnyRef.wait", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexTypeDsl.html#wait():Unit", "kind" : "final def"}, {"label" : "wait", "tail" : "(arg0: Long, arg1: Int): Unit", "member" : "scala.AnyRef.wait", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexTypeDsl.html#wait(x$1:Long,x$2:Int):Unit", "kind" : "final def"}, {"label" : "wait", "tail" : "(arg0: Long): Unit", "member" : "scala.AnyRef.wait", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexTypeDsl.html#wait(x$1:Long):Unit", "kind" : "final def"}, {"label" : "notifyAll", "tail" : "(): Unit", "member" : "scala.AnyRef.notifyAll", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexTypeDsl.html#notifyAll():Unit", "kind" : "final def"}, {"label" : "notify", "tail" : "(): Unit", "member" : "scala.AnyRef.notify", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexTypeDsl.html#notify():Unit", "kind" : "final def"}, {"label" : "toString", "tail" : "(): String", "member" : "scala.AnyRef.toString", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexTypeDsl.html#toString():String", "kind" : "def"}, {"label" : "clone", "tail" : "(): AnyRef", "member" : "scala.AnyRef.clone", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexTypeDsl.html#clone():Object", "kind" : "def"}, {"label" : "equals", "tail" : "(arg0: Any): Boolean", "member" : "scala.AnyRef.equals", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexTypeDsl.html#equals(x$1:Any):Boolean", "kind" : "def"}, {"label" : "hashCode", "tail" : "(): Int", "member" : "scala.AnyRef.hashCode", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexTypeDsl.html#hashCode():Int", "kind" : "def"}, {"label" : "getClass", "tail" : "(): Class[_]", "member" : "scala.AnyRef.getClass", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexTypeDsl.html#getClass():Class[_]", "kind" : "final def"}, {"label" : "asInstanceOf", "tail" : "(): T0", "member" : "scala.Any.asInstanceOf", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexTypeDsl.html#asInstanceOf[T0]:T0", "kind" : "final def"}, {"label" : "isInstanceOf", "tail" : "(): Boolean", "member" : "scala.Any.isInstanceOf", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexTypeDsl.html#isInstanceOf[T0]:Boolean", "kind" : "final def"}], "members_object" : [{"label" : "PropertyDefinition", "tail" : "", "member" : "ch.acmesoftware.orientDbScalaDsl.VertexTypeDsl.PropertyDefinition", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexTypeDsl$.html#PropertyDefinition=(String,com.orientechnologies.orient.core.metadata.schema.OType)", "kind" : "type"}, {"label" : "synchronized", "tail" : "(arg0: ⇒ T0): T0", "member" : "scala.AnyRef.synchronized", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexTypeDsl$.html#synchronized[T0](x$1:=>T0):T0", "kind" : "final def"}, {"label" : "##", "tail" : "(): Int", "member" : "scala.AnyRef.##", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexTypeDsl$.html###():Int", "kind" : "final def"}, {"label" : "!=", "tail" : "(arg0: Any): Boolean", "member" : "scala.AnyRef.!=", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexTypeDsl$.html#!=(x$1:Any):Boolean", "kind" : "final def"}, {"label" : "==", "tail" : "(arg0: Any): Boolean", "member" : "scala.AnyRef.==", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexTypeDsl$.html#==(x$1:Any):Boolean", "kind" : "final def"}, {"label" : "ne", "tail" : "(arg0: AnyRef): Boolean", "member" : "scala.AnyRef.ne", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexTypeDsl$.html#ne(x$1:AnyRef):Boolean", "kind" : "final def"}, {"label" : "eq", "tail" : "(arg0: AnyRef): Boolean", "member" : "scala.AnyRef.eq", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexTypeDsl$.html#eq(x$1:AnyRef):Boolean", "kind" : "final def"}, {"label" : "finalize", "tail" : "(): Unit", "member" : "scala.AnyRef.finalize", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexTypeDsl$.html#finalize():Unit", "kind" : "def"}, {"label" : "wait", "tail" : "(): Unit", "member" : "scala.AnyRef.wait", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexTypeDsl$.html#wait():Unit", "kind" : "final def"}, {"label" : "wait", "tail" : "(arg0: Long, arg1: Int): Unit", "member" : "scala.AnyRef.wait", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexTypeDsl$.html#wait(x$1:Long,x$2:Int):Unit", "kind" : "final def"}, {"label" : "wait", "tail" : "(arg0: Long): Unit", "member" : "scala.AnyRef.wait", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexTypeDsl$.html#wait(x$1:Long):Unit", "kind" : "final def"}, {"label" : "notifyAll", "tail" : "(): Unit", "member" : "scala.AnyRef.notifyAll", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexTypeDsl$.html#notifyAll():Unit", "kind" : "final def"}, {"label" : "notify", "tail" : "(): Unit", "member" : "scala.AnyRef.notify", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexTypeDsl$.html#notify():Unit", "kind" : "final def"}, {"label" : "toString", "tail" : "(): String", "member" : "scala.AnyRef.toString", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexTypeDsl$.html#toString():String", "kind" : "def"}, {"label" : "clone", "tail" : "(): AnyRef", "member" : "scala.AnyRef.clone", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexTypeDsl$.html#clone():Object", "kind" : "def"}, {"label" : "equals", "tail" : "(arg0: Any): Boolean", "member" : "scala.AnyRef.equals", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexTypeDsl$.html#equals(x$1:Any):Boolean", "kind" : "def"}, {"label" : "hashCode", "tail" : "(): Int", "member" : "scala.AnyRef.hashCode", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexTypeDsl$.html#hashCode():Int", "kind" : "def"}, {"label" : "getClass", "tail" : "(): Class[_]", "member" : "scala.AnyRef.getClass", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexTypeDsl$.html#getClass():Class[_]", "kind" : "final def"}, {"label" : "asInstanceOf", "tail" : "(): T0", "member" : "scala.Any.asInstanceOf", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexTypeDsl$.html#asInstanceOf[T0]:T0", "kind" : "final def"}, {"label" : "isInstanceOf", "tail" : "(): Boolean", "member" : "scala.Any.isInstanceOf", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexTypeDsl$.html#isInstanceOf[T0]:Boolean", "kind" : "final def"}], "class" : "ch\/acmesoftware\/orientDbScalaDsl\/VertexTypeDsl.html", "kind" : "class"}, {"name" : "ch.acmesoftware.orientDbScalaDsl.VertexTypeWrapper", "shortDescription" : "Wrapper providing VertexTypeDsl", "members_class" : [{"label" : "dsl", "tail" : "(): VertexTypeDsl", "member" : "ch.acmesoftware.orientDbScalaDsl.VertexTypeWrapper.dsl", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$VertexTypeWrapper.html#dsl:ch.acmesoftware.orientDbScalaDsl.VertexTypeDsl", "kind" : "def"}, {"member" : "ch.acmesoftware.orientDbScalaDsl.VertexTypeWrapper#", "error" : "unsupported entity"}, {"label" : "synchronized", "tail" : "(arg0: ⇒ T0): T0", "member" : "scala.AnyRef.synchronized", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$VertexTypeWrapper.html#synchronized[T0](x$1:=>T0):T0", "kind" : "final def"}, {"label" : "##", "tail" : "(): Int", "member" : "scala.AnyRef.##", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$VertexTypeWrapper.html###():Int", "kind" : "final def"}, {"label" : "!=", "tail" : "(arg0: Any): Boolean", "member" : "scala.AnyRef.!=", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$VertexTypeWrapper.html#!=(x$1:Any):Boolean", "kind" : "final def"}, {"label" : "==", "tail" : "(arg0: Any): Boolean", "member" : "scala.AnyRef.==", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$VertexTypeWrapper.html#==(x$1:Any):Boolean", "kind" : "final def"}, {"label" : "ne", "tail" : "(arg0: AnyRef): Boolean", "member" : "scala.AnyRef.ne", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$VertexTypeWrapper.html#ne(x$1:AnyRef):Boolean", "kind" : "final def"}, {"label" : "eq", "tail" : "(arg0: AnyRef): Boolean", "member" : "scala.AnyRef.eq", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$VertexTypeWrapper.html#eq(x$1:AnyRef):Boolean", "kind" : "final def"}, {"label" : "finalize", "tail" : "(): Unit", "member" : "scala.AnyRef.finalize", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$VertexTypeWrapper.html#finalize():Unit", "kind" : "def"}, {"label" : "wait", "tail" : "(): Unit", "member" : "scala.AnyRef.wait", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$VertexTypeWrapper.html#wait():Unit", "kind" : "final def"}, {"label" : "wait", "tail" : "(arg0: Long, arg1: Int): Unit", "member" : "scala.AnyRef.wait", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$VertexTypeWrapper.html#wait(x$1:Long,x$2:Int):Unit", "kind" : "final def"}, {"label" : "wait", "tail" : "(arg0: Long): Unit", "member" : "scala.AnyRef.wait", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$VertexTypeWrapper.html#wait(x$1:Long):Unit", "kind" : "final def"}, {"label" : "notifyAll", "tail" : "(): Unit", "member" : "scala.AnyRef.notifyAll", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$VertexTypeWrapper.html#notifyAll():Unit", "kind" : "final def"}, {"label" : "notify", "tail" : "(): Unit", "member" : "scala.AnyRef.notify", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$VertexTypeWrapper.html#notify():Unit", "kind" : "final def"}, {"label" : "toString", "tail" : "(): String", "member" : "scala.AnyRef.toString", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$VertexTypeWrapper.html#toString():String", "kind" : "def"}, {"label" : "clone", "tail" : "(): AnyRef", "member" : "scala.AnyRef.clone", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$VertexTypeWrapper.html#clone():Object", "kind" : "def"}, {"label" : "equals", "tail" : "(arg0: Any): Boolean", "member" : "scala.AnyRef.equals", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$VertexTypeWrapper.html#equals(x$1:Any):Boolean", "kind" : "def"}, {"label" : "hashCode", "tail" : "(): Int", "member" : "scala.AnyRef.hashCode", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$VertexTypeWrapper.html#hashCode():Int", "kind" : "def"}, {"label" : "getClass", "tail" : "(): Class[_]", "member" : "scala.AnyRef.getClass", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$VertexTypeWrapper.html#getClass():Class[_]", "kind" : "final def"}, {"label" : "asInstanceOf", "tail" : "(): T0", "member" : "scala.Any.asInstanceOf", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$VertexTypeWrapper.html#asInstanceOf[T0]:T0", "kind" : "final def"}, {"label" : "isInstanceOf", "tail" : "(): Boolean", "member" : "scala.Any.isInstanceOf", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$VertexTypeWrapper.html#isInstanceOf[T0]:Boolean", "kind" : "final def"}], "class" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$VertexTypeWrapper.html", "kind" : "class"}, {"name" : "ch.acmesoftware.orientDbScalaDsl.VertexWrapper", "shortDescription" : "Wrapper providing VertexDsl", "members_class" : [{"label" : "dsl", "tail" : "(): VertexDsl", "member" : "ch.acmesoftware.orientDbScalaDsl.VertexWrapper.dsl", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$VertexWrapper.html#dsl:ch.acmesoftware.orientDbScalaDsl.VertexDsl", "kind" : "def"}, {"member" : "ch.acmesoftware.orientDbScalaDsl.VertexWrapper#", "error" : "unsupported entity"}, {"label" : "synchronized", "tail" : "(arg0: ⇒ T0): T0", "member" : "scala.AnyRef.synchronized", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$VertexWrapper.html#synchronized[T0](x$1:=>T0):T0", "kind" : "final def"}, {"label" : "##", "tail" : "(): Int", "member" : "scala.AnyRef.##", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$VertexWrapper.html###():Int", "kind" : "final def"}, {"label" : "!=", "tail" : "(arg0: Any): Boolean", "member" : "scala.AnyRef.!=", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$VertexWrapper.html#!=(x$1:Any):Boolean", "kind" : "final def"}, {"label" : "==", "tail" : "(arg0: Any): Boolean", "member" : "scala.AnyRef.==", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$VertexWrapper.html#==(x$1:Any):Boolean", "kind" : "final def"}, {"label" : "ne", "tail" : "(arg0: AnyRef): Boolean", "member" : "scala.AnyRef.ne", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$VertexWrapper.html#ne(x$1:AnyRef):Boolean", "kind" : "final def"}, {"label" : "eq", "tail" : "(arg0: AnyRef): Boolean", "member" : "scala.AnyRef.eq", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$VertexWrapper.html#eq(x$1:AnyRef):Boolean", "kind" : "final def"}, {"label" : "finalize", "tail" : "(): Unit", "member" : "scala.AnyRef.finalize", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$VertexWrapper.html#finalize():Unit", "kind" : "def"}, {"label" : "wait", "tail" : "(): Unit", "member" : "scala.AnyRef.wait", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$VertexWrapper.html#wait():Unit", "kind" : "final def"}, {"label" : "wait", "tail" : "(arg0: Long, arg1: Int): Unit", "member" : "scala.AnyRef.wait", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$VertexWrapper.html#wait(x$1:Long,x$2:Int):Unit", "kind" : "final def"}, {"label" : "wait", "tail" : "(arg0: Long): Unit", "member" : "scala.AnyRef.wait", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$VertexWrapper.html#wait(x$1:Long):Unit", "kind" : "final def"}, {"label" : "notifyAll", "tail" : "(): Unit", "member" : "scala.AnyRef.notifyAll", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$VertexWrapper.html#notifyAll():Unit", "kind" : "final def"}, {"label" : "notify", "tail" : "(): Unit", "member" : "scala.AnyRef.notify", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$VertexWrapper.html#notify():Unit", "kind" : "final def"}, {"label" : "toString", "tail" : "(): String", "member" : "scala.AnyRef.toString", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$VertexWrapper.html#toString():String", "kind" : "def"}, {"label" : "clone", "tail" : "(): AnyRef", "member" : "scala.AnyRef.clone", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$VertexWrapper.html#clone():Object", "kind" : "def"}, {"label" : "equals", "tail" : "(arg0: Any): Boolean", "member" : "scala.AnyRef.equals", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$VertexWrapper.html#equals(x$1:Any):Boolean", "kind" : "def"}, {"label" : "hashCode", "tail" : "(): Int", "member" : "scala.AnyRef.hashCode", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$VertexWrapper.html#hashCode():Int", "kind" : "def"}, {"label" : "getClass", "tail" : "(): Class[_]", "member" : "scala.AnyRef.getClass", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$VertexWrapper.html#getClass():Class[_]", "kind" : "final def"}, {"label" : "asInstanceOf", "tail" : "(): T0", "member" : "scala.Any.asInstanceOf", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$VertexWrapper.html#asInstanceOf[T0]:T0", "kind" : "final def"}, {"label" : "isInstanceOf", "tail" : "(): Boolean", "member" : "scala.Any.isInstanceOf", "link" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$VertexWrapper.html#isInstanceOf[T0]:Boolean", "kind" : "final def"}], "class" : "ch\/acmesoftware\/orientDbScalaDsl\/package$$VertexWrapper.html", "kind" : "class"}]}; \ No newline at end of file