diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml
deleted file mode 100644
index d87b1ded..00000000
--- a/.github/FUNDING.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-# These are supported funding model platforms
-
-github: [500tech]
-open_collective: angular-tree-component
diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md
index 6f3a6368..ae75ea83 100644
--- a/.github/ISSUE_TEMPLATE.md
+++ b/.github/ISSUE_TEMPLATE.md
@@ -1,20 +1,28 @@
-PLEASE READ CAREFULLY!
+## I'm submitting a...
-# Reproduce
-Please reproduce here if reporting a bug, or requesting help:
-https://stackblitz.com/edit/angular-wxansn
+
+
+[ ] Regression (a behavior that used to work and stopped working in a new release)
+[ ] Bug report
+[ ] Feature request
+[ ] Documentation issue or request
+
-# Additional Info
-- paste your package.json
-- which browser
-- paste your code
+## What is the current behavior?
-# Use the Slack Channel
-The fastest way to get an answer is via the slack channel:
-https://angular-tree-component.herokuapp.com/
+
-You will also get updates on releases, bugfixes and other announcements.
+## Expected behavior:
-# Search Docs First
-Please look for an answer in the docs before submitting an issue:
-angular2-tree.readme.io.
+
+
+## Minimal reproduction of the problem with instructions:
+
+
+
+## Version of affected browser(s),operating system(s), npm, node and angular-tree-component:
+
+## Other information:
diff --git a/.github/ISSUE_TEMPLATE/bug-report.md b/.github/ISSUE_TEMPLATE/bug-report.md
new file mode 100644
index 00000000..0bcfb421
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/bug-report.md
@@ -0,0 +1,25 @@
+---
+name: Bug Report
+about: Report a bug or regression in functionality
+---
+
+
+
+## Minimal reproduction of the bug/regression with instructions:
+
+
+
+
+
+## Expected behavior:
+
+
+
+## Versions of Angular Tree Component, Angular, Node, affected browser(s) and operating system(s):
+
+## Other information:
+
+## I would be willing to submit a PR to fix this issue
+
+[ ] Yes (Assistance will be provided if you need help to submit a pull request)
+[ ] No
diff --git a/.github/ISSUE_TEMPLATE/documentation-report.md b/.github/ISSUE_TEMPLATE/documentation-report.md
new file mode 100644
index 00000000..a4ea47a0
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/documentation-report.md
@@ -0,0 +1,13 @@
+---
+name: Documentation Report
+about: Report missing or inaccurate documentation
+---
+
+
+
+## Other information:
+
+## I would be willing to submit a PR for the docs :heart:
+
+[ ] Yes (Assistance will be provided if you need help to submit a pull request)
+[ ] No
diff --git a/.github/ISSUE_TEMPLATE/feature-request.md b/.github/ISSUE_TEMPLATE/feature-request.md
new file mode 100644
index 00000000..9873ee29
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/feature-request.md
@@ -0,0 +1,15 @@
+---
+name: Feature Request
+about: Submit a Request For Consideration
+---
+
+
+
+## Describe any alternatives/workarounds you're currently using
+
+## Other information:
+
+## If accepted, I would be willing to submit a PR for this feature
+
+[ ] Yes (Assistance will be provided if you need help to submit a pull request)
+[ ] No
diff --git a/.github/ISSUE_TEMPLATE/support-request.md b/.github/ISSUE_TEMPLATE/support-request.md
new file mode 100644
index 00000000..c8dde917
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/support-request.md
@@ -0,0 +1,10 @@
+---
+name: Support Request
+about: I need general help
+---
+
+## Support Requests should not be opened as issues and should be handled in the following ways:
+
+### On [StackOverflow](https://stackoverflow.com/questions/tagged/angular-tree-component) using the `angular-tree-component` tag
+
+### In our slack support channel at https://angular-tree-component.herokuapp.com/
diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md
new file mode 100644
index 00000000..b5f281c5
--- /dev/null
+++ b/.github/PULL_REQUEST_TEMPLATE.md
@@ -0,0 +1,39 @@
+## PR Checklist
+Please check if your PR fulfills the following requirements:
+
+- [ ] The commit message follows our guidelines: https://github.com/CirclonGroup/angular-tree-component/blob/master/CONTRIBUTING.md#commit-message-guidelines
+- [ ] Tests for the changes have been added (for bug fixes / features)
+
+## PR Type
+What kind of change does this PR introduce?
+
+
+
+```
+[ ] Bugfix
+[ ] Feature
+[ ] Code style update (formatting, local variables)
+[ ] Refactoring (no functional changes, no api changes)
+[ ] Build related changes
+[ ] CI related changes
+[ ] Documentation content changes
+[ ] Other... Please describe:
+```
+
+## What is the current behavior?
+
+
+Closes #
+
+## What is the new behavior?
+
+## Does this PR introduce a breaking change?
+
+```
+[ ] Yes
+[ ] No
+```
+
+
+
+## Other information
diff --git a/.gitignore b/.gitignore
index 141b9b71..2f777902 100644
--- a/.gitignore
+++ b/.gitignore
@@ -31,10 +31,12 @@ Thumbs.db
# Node Files #
/node_modules
/bower_components
+/projects/**/node_modules
npm-debug.log
# Coverage #
/coverage/
+/xunit/
# Typing #
/src/typings/tsd/
@@ -48,6 +50,7 @@ npm-debug.log
/public/dist/
/src/*/dist/
.webpack.json
+/projects/**/package-lock.json
# Doc #
@@ -64,4 +67,4 @@ testScreenshots
testResults
e2eResults
-e2e/dist
\ No newline at end of file
+e2e/dist
diff --git a/CHANGELOG.md b/CHANGELOG.md
index cdf25c61..e9a55b4b 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,189 @@
+
+# 11.0.3 (2021-02-18)
+
+### Bug Fixes
+
+* return TreeNode for first and last child ([#893](https://github.com/CirclonGroup/angular-tree-component/issues/893)) ([c0792c3](https://github.com/CirclonGroup/angular-tree-component/commit/c0792c3)), closes ([#893](https://github.com/CirclonGroup/angular-tree-component/issues/893))
+
+
+# 11.0.2 (2021-02-16)
+
+### Bug Fixes
+
+* merge default and optional action mappings ([#891](https://github.com/CirclonGroup/angular-tree-component/issues/891)) ([4b2d8a9](https://github.com/CirclonGroup/angular-tree-component/commit/4b2d8a9)), closes ([#891](https://github.com/CirclonGroup/angular-tree-component/issues/891))
+
+
+# 11.0.1 (2021-02-16)
+
+### Bug Fixes
+
+* remove log calls ([#889](https://github.com/CirclonGroup/angular-tree-component/issues/889)) ([eb055aa](https://github.com/CirclonGroup/angular-tree-component/commit/22e0d85)), closes ([#889](https://github.com/CirclonGroup/angular-tree-component/issues/889))
+
+
+# 11.0.0 (2021-02-15)
+
+### Features
+
+* update to angular 11 ([4528c96](https://github.com/CirclonGroup/angular-tree-component/commit/4528c96))
+* remove lodash-es ([f639c98](https://github.com/CirclonGroup/angular-tree-component/commit/f639c98))
+
+### BREAKING CHANGES
+
+BEFORE:
+
+getNodeById(predicate) - predicate needs to support lodash find method
+
+AFTER:
+
+getNodeById(predicate) - predicate needs to support javaScript find method
+
+
+# 10.0.2 (2020-12-21)
+
+### Bug Fixes
+
+* update lodash-es ([#862](https://github.com/CirclonGroup/angular-tree-component/issues/862)) ([22e0d85](https://github.com/CirclonGroup/angular-tree-component/commit/22e0d85)), closes ([#862](https://github.com/CirclonGroup/angular-tree-component/issues/862))
+
+
+# 10.0.1 (2020-12-11)
+
+### Bug Fixes
+
+* do not load whole child collection with virtual scroll ([#463](https://github.com/CirclonGroup/angular-tree-component/issues/463)) ([a62fc73](https://github.com/CirclonGroup/angular-tree-component/commit/a62fc73))
+
+
+# 10.0.0 (2020-07-29)
+
+### Code Refactoring
+
+* remove unused polyfill ([#847](https://github.com/CirclonGroup/angular-tree-component/issues/847)) ([5a1a14e](https://github.com/CirclonGroup/angular-tree-component/commit/5a1a14e)), closes ([#847](https://github.com/CirclonGroup/angular-tree-component/issues/847))
+
+
+# 10.0.0-beta.0 (2020-07-22)
+
+### Features
+
+* Update to Angular 10 ([5338eb4](https://github.com/CirclonGroup/angular-tree-component/commit/5338eb4))
+
+### BREAKING CHANGES
+
+BEFORE:
+
+No minimum Angular version set
+
+AFTER:
+
+Angular v10 minimum dependencies
+
+
+# 9.0.3 (2020-07-20)
+
+### Build
+
+* add license to library package.json ([#843](https://github.com/CirclonGroup/angular-tree-component/issues/843)) ([23476c8](https://github.com/CirclonGroup/angular-tree-component/commit/23476c8)), closes ([#843](https://github.com/CirclonGroup/angular-tree-component/issues/843))
+
+
+# 9.0.2 (2020-07-15)
+
+### Bug Fixes
+
+* include mobx as dependency ([a96f2bc](https://github.com/CirclonGroup/angular-tree-component/commit/a96f2bc))
+
+
+# 9.0.1 (2020-07-15)
+
+### BREAKING CHANGES
+
+* move to new npm package scope
+
+BEFORE:
+
+package.json:
+
+```
+"dependencies": {
+ ...
+ "angular-tree-component": "^8.5.6",
+ ...
+}
+```
+
+AFTER:
+
+package.json
+
+```
+"dependencies": {
+ ...
+ "@circlon/angular-tree-component": "^9.0.1",
+ ...
+}
+```
+
+* move css file to css folder instead of dist
+
+BEFORE:
+
+Import angular tree css:
+
+```
+@import 'http://github.com/~angular-tree-component/dist/angular-tree-component.css';
+```
+
+AFTER:
+
+package.json
+
+```
+@import 'http://github.com/~@circlon/angular-tree-component/css/angular-tree-component.css';
+```
+
+
+# 9.0.0 (2020-07-10)
+
+### Bug Fixes
+
+* Use correct ITreeOptions input in TreeComponent instead of TreeOptions ([#795](https://github.com/CirclonGroup/angular-tree-component/issues/795)) ([62f0c02](https://github.com/CirclonGroup/angular-tree-component/commit/62f0c02)), closes ([#795](https://github.com/CirclonGroup/angular-tree-component/issues/795))
+
+### Features
+
+* Update to Angular 9 ([37feac56](https://github.com/CirclonGroup/angular-tree-component/commit/37feac56))
+
+### Code Refactoring
+
+* use on example app and move app to projects ([5ded257](https://github.com/CirclonGroup/angular-tree-component/commit/5ded257))
+* move library to projects and use ng-packagr for build ([a04ea64](https://github.com/CirclonGroup/angular-tree-component/commit/a04ea64))
+
+### BREAKING CHANGES
+
+* Provide TreeDraggedElement in root ([50dee1b](https://github.com/CirclonGroup/angular-tree-component/commit/50dee1b))
+
+BEFORE:
+
+Import TreeModule with `TreeModule.forRoot()` in base module.
+
+```
+@NgModule({
+ imports: [
+ TreeModule.forRoot()
+ ]
+})
+export class MyModule {}
+```
+
+AFTER:
+
+Import TreeModule with `TreeModule` in all modules.
+
+```
+@NgModule({
+ imports: [
+ TreeModule
+ ]
+})
+export class MyModule {}
+```
+
# 8.5.6 (2020-14-02)
* Fixed mobxAutorun to treeMobxAutorun
diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md
new file mode 100644
index 00000000..114f2b8a
--- /dev/null
+++ b/CODE_OF_CONDUCT.md
@@ -0,0 +1,76 @@
+# Contributor Covenant Code of Conduct
+
+## Our Pledge
+
+In the interest of fostering an open and welcoming environment, we as
+contributors and maintainers pledge to making participation in our project and
+our community a harassment-free experience for everyone, regardless of age, body
+size, disability, ethnicity, sex characteristics, gender identity and expression,
+level of experience, education, socio-economic status, nationality, personal
+appearance, race, religion, or sexual identity and orientation.
+
+## Our Standards
+
+Examples of behavior that contributes to creating a positive environment
+include:
+
+* Using welcoming and inclusive language
+* Being respectful of differing viewpoints and experiences
+* Gracefully accepting constructive criticism
+* Focusing on what is best for the community
+* Showing empathy towards other community members
+
+Examples of unacceptable behavior by participants include:
+
+* The use of sexualized language or imagery and unwelcome sexual attention or
+ advances
+* Trolling, insulting/derogatory comments, and personal or political attacks
+* Public or private harassment
+* Publishing others' private information, such as a physical or electronic
+ address, without explicit permission
+* Other conduct which could reasonably be considered inappropriate in a
+ professional setting
+
+## Our Responsibilities
+
+Project maintainers are responsible for clarifying the standards of acceptable
+behavior and are expected to take appropriate and fair corrective action in
+response to any instances of unacceptable behavior.
+
+Project maintainers have the right and responsibility to remove, edit, or
+reject comments, commits, code, wiki edits, issues, and other contributions
+that are not aligned to this Code of Conduct, or to ban temporarily or
+permanently any contributor for other behaviors that they deem inappropriate,
+threatening, offensive, or harmful.
+
+## Scope
+
+This Code of Conduct applies both within project spaces and in public spaces
+when an individual is representing the project or its community. Examples of
+representing a project or community include using an official project e-mail
+address, posting via an official social media account, or acting as an appointed
+representative at an online or offline event. Representation of a project may be
+further defined and clarified by project maintainers.
+
+## Enforcement
+
+Instances of abusive, harassing, or otherwise unacceptable behavior may be
+reported by contacting the project team at os-group@circlon.de. All
+complaints will be reviewed and investigated and will result in a response that
+is deemed necessary and appropriate to the circumstances. The project team is
+obligated to maintain confidentiality with regard to the reporter of an incident.
+Further details of specific enforcement policies may be posted separately.
+
+Project maintainers who do not follow or enforce the Code of Conduct in good
+faith may face temporary or permanent repercussions as determined by other
+members of the project's leadership.
+
+## Attribution
+
+This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
+available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html
+
+[homepage]: https://www.contributor-covenant.org
+
+For answers to common questions about this code of conduct, see
+https://www.contributor-covenant.org/faq
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
new file mode 100644
index 00000000..f8824a0f
--- /dev/null
+++ b/CONTRIBUTING.md
@@ -0,0 +1,147 @@
+# How to contribute
+
+Thank you for reading this, we always welcome help make this project even better! Without the help from our contributors this project would not be possible.
+
+## Code of Conduct
+Please read and follow our [Code of Conduct][coc].
+
+## Setup
+
+Run `npm install` to install dependencies.
+
+Run `npm run build:lib` to build.
+
+Run `npm run start:example-app` to start the example app.
+
+### Testing
+
+Run `npm install` to install dependencies.
+
+Run `npm run build:lib` to build.
+
+Run `npm run test:ci:local` to test the same way the build validation will test.
+
+## Submission Guidelines
+
+### Submitting a feature request
+
+You can open an issue and request a new feature. Please add some information on what you would like, how it should work. Small features can be added directly as a Pull Request without opening an issue first.
+
+### Submitting a bug report
+
+Search through other issues to see if there is already a previous issue for the bug. Provide a small reproduction using a StackBlitz project or a GitHub repo.
+
+### Submitting a Pull Request
+
+- Please test your code by running the tests.
+- Rebase your branch against the current master. We might ask you to rebase again once your branch is out of date.
+- If you add new functionality please also add tests to validate this.
+- Reference issues as a PR comment.
+- Follow our code guidelines.
+
+## Commit Message Guidelines
+
+We have very precise rules over how our git commit messages can be formatted. This leads to **more
+readable messages** that are easy to follow when looking through the **project history**. But also,
+we use the git commit messages to **generate the Angular Tree Component change log**.
+
+### Commit Message Format
+
+Each commit message consists of a **header**, a **body** and a **footer**. The header has a special
+format that includes a **type**, a **scope**, and a **subject**:
+
+```
+():
+
+
+
+
+```
+
+The **header** is mandatory and the **scope** of the header is optional.
+
+Any line of the commit message cannot be longer 100 characters! This allows the message to be easier
+to read on GitHub as well as in various git tools.
+
+The footer should contain a [closing reference to an issue](https://help.github.com/articles/closing-issues-via-commit-messages/) if any.
+
+Samples: (even more [samples](https://github.com/CirclonGroup/angular-tree-component/commits/master))
+
+```
+docs(changelog): update changelog to beta.5
+```
+
+```
+fix(release): need to depend on latest rxjs and zone.js
+
+The version in our package.json gets copied to the one we publish, and users need the latest of these.
+```
+
+### Revert
+
+If the commit reverts a previous commit, it should begin with `revert:`, followed by the header of the reverted commit. In the body it should say: `This reverts commit .`, where the hash is the SHA of the commit being reverted.
+
+### Type
+
+Must be one of the following:
+
+- **build**: Changes that affect the build system or external dependencies (example scopes: gulp, broccoli, npm)
+- **ci**: Changes to our CI configuration files and scripts (example scopes: Travis, Circle, BrowserStack, SauceLabs)
+- **docs**: Documentation only changes
+- **feat**: A new feature
+- **fix**: A bug fix
+- **perf**: A code change that improves performance
+- **refactor**: A code change that neither fixes a bug nor adds a feature
+- **style**: Changes that do not affect the meaning of the code (white-space, formatting, missing semi-colons, etc)
+- **test**: Adding missing tests or correcting existing tests
+
+### Scope
+
+The scope should be the name of the npm package affected (as perceived by the person reading the changelog generated from commit messages).
+
+The following is the list of supported scopes:
+
+- **component**
+- **directive**
+- **model**
+- **mobx**
+
+### Subject
+
+The subject contains a succinct description of the change:
+
+- use the imperative, present tense: "change" not "changed" nor "changes"
+- don't capitalize the first letter
+- no dot (.) at the end
+
+### Body
+
+Just as in the **subject**, use the imperative, present tense: "change" not "changed" nor "changes".
+The body should include the motivation for the change and contrast this with previous behavior.
+
+### Footer
+
+The footer should contain any information about **Breaking Changes** and is also the place to
+reference GitHub issues that this commit **Closes**.
+
+**Breaking Changes** should start with the word `BREAKING CHANGE:` with a space or two newlines. The rest of the commit message is then used for this.
+
+Example:
+
+```
+feat(scope): commit message
+
+BREAKING CHANGES:
+
+Describe breaking changes here
+
+BEFORE:
+
+Previous code example here
+
+AFTER:
+
+New code example here
+```
+
+[coc]: https://github.com/CirclonGroup/angular-tree-component/blob/master/CODE_OF_CONDUCT.md
diff --git a/LICENSE b/LICENSE
index 4b3c3bfd..e182ab4e 100644
--- a/LICENSE
+++ b/LICENSE
@@ -1,6 +1,6 @@
The MIT License (MIT)
-Copyright (c) 2016 500Tech LTD
+Copyright (c) 2020 Circlon Group
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
@@ -9,13 +9,13 @@ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/README.md b/README.md
index 1d35ab4b..cb164e82 100644
--- a/README.md
+++ b/README.md
@@ -1,30 +1,39 @@
-[](https://circleci.com/gh/500tech/angular-tree-component)
-[](https://opencollective.com/angular-tree-component) [](https://badge.fury.io/js/angular-tree-component)
+[](https://badge.fury.io/js/%40circlon%2Fangular-tree-component)
+[](https://dev.azure.com/pdsgmbh/AngularTree/_build/latest?definitionId=59&branchName=master)
# angular tree component
-
-
-
-
-
+## Getting started
-## Low maintenance - only major Angular versions
-Hi, this library is in low maintenance mode.
-Meaning I only fix it to support new Angular versions.
+Install `angular-tree-component`:
-No issue support, no pull requests, no new features.
+```npm install @circlon/angular-tree-component```
-If there is anyone/company who wants to take over - email me at adamklein.mail@gmail.com.
+Import `TreeModule`:
-Cheers
+```
+import { TreeModule } from '@circlon/angular-tree-component';
+
+@NgModule({
+ declarations: [AppComponent],
+ imports: [TreeModule],
+ bootstrap: [AppComponent]
+})
+export class AppModule {}
+```
+
+Add css to `styles.scss` or include in `angular.json`:
-## ❤️ Support Us ❤️
+```
+@import 'http://github.com/~@circlon/angular-tree-component/css/angular-tree-component.css';
+```
-Become a financial contributor and help us sustain our community. [[Contribute](https://opencollective.com/angular-tree-component/contribute)]
+## Docs, Demos & More
+We are redoing the documentation. You can find the new documentation here:
+[https://circlongroup.github.io/angular-tree-component/](https://circlongroup.github.io/angular-tree-component/)
-## Getting started, Docs, Demos & More
+The API Reference is still in our old documentation for now:
[https://angular2-tree.readme.io/docs/](https://angular2-tree.readme.io/docs/)
@@ -39,14 +48,13 @@ angular-tree-component supports angular 2 and above, and AoT compilation.
## Contributing
-run `npm run example:cli` and open [localhost:4200](http://localhost:4200) to test your code before submitting a pull request.
-
-Windows users - if it doesn't work try `npm run example:cli:win`.
+Run `npm run build` (`npm run build:win` for windows users) to build. Run `npm start:example-app` and open [localhost:4200](http://localhost:4200) to test your code before submitting a pull request.
To run tests locally - make sure port 4200 is available and run:
```
-$ npm run example:cli # Wait until webpack finishes and http://localhost:4200 is available
+$ npm run build # build:win for windows; wait until build finished
+$ npm run start:example-app # Wait until webpack finishes and http://localhost:4200 is available
$ npm run test:dev
```
@@ -54,26 +62,5 @@ Please check the issues / project before starting to work on a feature / bug to
## Contributors
-### Code Contributors
-
-This project exists thanks to all the people who contribute. [[Contribute](CONTRIBUTING.md)].
-
-
-#### Individuals
-
-
-
-#### Organizations
-
-Support this project with your organization. Your logo will show up here with a link to your website. [[Contribute](https://opencollective.com/angular-tree-component/contribute)]
-
-
-
-
-
-
-
-
-
-
-
+This project exists thanks to all the people who contribute.
+
diff --git a/angular.json b/angular.json
new file mode 100644
index 00000000..1de6a0f1
--- /dev/null
+++ b/angular.json
@@ -0,0 +1,254 @@
+{
+ "$schema": "./node_modules/@angular/cli/lib/config/schema.json",
+ "version": 1,
+ "newProjectRoot": "projects",
+ "projects": {
+ "example-app": {
+ "projectType": "application",
+ "schematics": {
+ "@schematics/angular:component": {
+ "style": "scss"
+ }
+ },
+ "root": "projects/example-app",
+ "sourceRoot": "projects/example-app/src",
+ "prefix": "app",
+ "architect": {
+ "build": {
+ "builder": "@angular-devkit/build-angular:browser",
+ "options": {
+ "outputPath": "dist/example-app",
+ "index": "projects/example-app/src/index.html",
+ "main": "projects/example-app/src/main.ts",
+ "polyfills": "projects/example-app/src/polyfills.ts",
+ "tsConfig": "projects/example-app/tsconfig.app.json",
+ "aot": false,
+ "assets": [
+ "projects/example-app/src/favicon.ico",
+ "projects/example-app/src/assets"
+ ],
+ "styles": ["projects/example-app/src/styles.scss"],
+ "scripts": []
+ },
+ "configurations": {
+ "production": {
+ "fileReplacements": [
+ {
+ "replace": "projects/example-app/src/environments/environment.ts",
+ "with": "projects/example-app/src/environments/environment.prod.ts"
+ }
+ ],
+ "optimization": true,
+ "outputHashing": "all",
+ "sourceMap": false,
+ "namedChunks": false,
+ "aot": true,
+ "extractLicenses": true,
+ "vendorChunk": false,
+ "buildOptimizer": true,
+ "budgets": [
+ {
+ "type": "initial",
+ "maximumWarning": "2mb",
+ "maximumError": "5mb"
+ },
+ {
+ "type": "anyComponentStyle",
+ "maximumWarning": "6kb",
+ "maximumError": "10kb"
+ }
+ ]
+ },
+ "es5": {
+ "budgets": [
+ {
+ "type": "anyComponentStyle",
+ "maximumWarning": "6kb"
+ }
+ ],
+ "tsConfig": "projects/example-app/tsconfig.es5.app.json"
+ }
+ }
+ },
+ "serve": {
+ "builder": "@angular-devkit/build-angular:dev-server",
+ "options": {
+ "browserTarget": "example-app:build"
+ },
+ "configurations": {
+ "production": {
+ "browserTarget": "example-app:build:production"
+ },
+ "es5": {
+ "browserTarget": "example-app:build:es5"
+ }
+ }
+ },
+ "test": {
+ "builder": "@angular-devkit/build-angular:karma",
+ "options": {
+ "main": "projects/example-app/src/test.ts",
+ "karmaConfig": "projects/example-app/karma.conf.js",
+ "polyfills": "projects/example-app/src/polyfills.ts",
+ "tsConfig": "projects/example-app/tsconfig.spec.json",
+ "assets": [
+ "projects/example-app/src/favicon.ico",
+ "projects/example-app/src/assets"
+ ],
+ "styles": [
+ "./node_modules/@angular/material/prebuilt-themes/indigo-pink.css",
+ "projects/example-app/src/styles.scss"
+ ],
+ "scripts": []
+ }
+ },
+ "lint": {
+ "builder": "@angular-devkit/build-angular:tslint",
+ "options": {
+ "tsConfig": [
+ "projects/example-app/tsconfig.app.json",
+ "projects/example-app/tsconfig.spec.json"
+ ],
+ "exclude": ["**/node_modules/**"]
+ }
+ }
+ }
+ },
+ "angular-tree-component": {
+ "projectType": "library",
+ "root": "projects/angular-tree-component",
+ "sourceRoot": "projects/angular-tree-component/src",
+ "prefix": "lib",
+ "architect": {
+ "build": {
+ "builder": "@angular-devkit/build-angular:ng-packagr",
+ "options": {
+ "tsConfig": "projects/angular-tree-component/tsconfig.lib.json",
+ "project": "projects/angular-tree-component/ng-package.json"
+ }
+ },
+ "test": {
+ "builder": "@angular-devkit/build-angular:karma",
+ "options": {
+ "main": "projects/angular-tree-component/src/test.ts",
+ "tsConfig": "projects/angular-tree-component/tsconfig.spec.json",
+ "karmaConfig": "projects/angular-tree-component/karma.conf.js"
+ }
+ },
+ "lint": {
+ "builder": "@angular-devkit/build-angular:tslint",
+ "options": {
+ "tsConfig": [
+ "projects/angular-tree-component/tsconfig.lib.json",
+ "projects/angular-tree-component/tsconfig.spec.json"
+ ],
+ "exclude": ["**/node_modules/**"]
+ }
+ }
+ }
+ },
+ "docs-app": {
+ "projectType": "application",
+ "schematics": {
+ "@schematics/angular:component": {
+ "style": "scss"
+ }
+ },
+ "root": "projects/docs-app",
+ "sourceRoot": "projects/docs-app/src",
+ "prefix": "app",
+ "architect": {
+ "build": {
+ "builder": "@angular-devkit/build-angular:browser",
+ "options": {
+ "outputPath": "dist/docs-app",
+ "index": "projects/docs-app/src/index.html",
+ "main": "projects/docs-app/src/main.ts",
+ "polyfills": "projects/docs-app/src/polyfills.ts",
+ "tsConfig": "projects/docs-app/tsconfig.app.json",
+ "aot": false,
+ "assets": [
+ "projects/docs-app/src/favicon.ico",
+ "projects/docs-app/src/assets"
+ ],
+ "styles": ["projects/docs-app/src/styles.scss"],
+ "scripts": []
+ },
+ "configurations": {
+ "production": {
+ "fileReplacements": [
+ {
+ "replace": "projects/docs-app/src/environments/environment.ts",
+ "with": "projects/docs-app/src/environments/environment.prod.ts"
+ }
+ ],
+ "optimization": true,
+ "outputHashing": "all",
+ "sourceMap": false,
+ "namedChunks": false,
+ "extractLicenses": true,
+ "vendorChunk": false,
+ "buildOptimizer": true,
+ "budgets": [
+ {
+ "type": "initial",
+ "maximumWarning": "2mb",
+ "maximumError": "5mb"
+ },
+ {
+ "type": "anyComponentStyle",
+ "maximumWarning": "6kb",
+ "maximumError": "10kb"
+ }
+ ]
+ }
+ }
+ },
+ "serve": {
+ "builder": "@angular-devkit/build-angular:dev-server",
+ "options": {
+ "browserTarget": "docs-app:build"
+ },
+ "configurations": {
+ "production": {
+ "browserTarget": "docs-app:build:production"
+ }
+ }
+ },
+ "extract-i18n": {
+ "builder": "@angular-devkit/build-angular:extract-i18n",
+ "options": {
+ "browserTarget": "docs-app:build"
+ }
+ },
+ "test": {
+ "builder": "@angular-devkit/build-angular:karma",
+ "options": {
+ "main": "projects/docs-app/src/test.ts",
+ "polyfills": "projects/docs-app/src/polyfills.ts",
+ "tsConfig": "projects/docs-app/tsconfig.spec.json",
+ "karmaConfig": "projects/docs-app/karma.conf.js",
+ "assets": [
+ "projects/docs-app/src/favicon.ico",
+ "projects/docs-app/src/assets"
+ ],
+ "styles": ["projects/docs-app/src/styles.scss"],
+ "scripts": []
+ }
+ },
+ "lint": {
+ "builder": "@angular-devkit/build-angular:tslint",
+ "options": {
+ "tsConfig": [
+ "projects/docs-app/tsconfig.app.json",
+ "projects/docs-app/tsconfig.spec.json",
+ "projects/docs-app/e2e/tsconfig.json"
+ ],
+ "exclude": ["**/node_modules/**"]
+ }
+ }
+ }
+ }
+ },
+ "defaultProject": "example-app"
+}
diff --git a/atc-logo.png b/atc-logo.png
new file mode 100644
index 00000000..b101e61c
Binary files /dev/null and b/atc-logo.png differ
diff --git a/docs/css/main.css b/docs/css/main.css
deleted file mode 100755
index e71dc89a..00000000
--- a/docs/css/main.css
+++ /dev/null
@@ -1,1255 +0,0 @@
-/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */
-
-/**
- * 1. Set default font family to sans-serif.
- * 2. Prevent iOS and IE text size adjust after device orientation change,
- * without disabling user zoom.
- */
-
-html {
- font-family: sans-serif; /* 1 */
- -ms-text-size-adjust: 100%; /* 2 */
- -webkit-text-size-adjust: 100%; /* 2 */
-}
-
-/**
- * Remove default margin.
- */
-
-body {
- margin: 0;
-}
-
-/* HTML5 display definitions
- ========================================================================== */
-
-/**
- * Correct `block` display not defined for any HTML5 element in IE 8/9.
- * Correct `block` display not defined for `details` or `summary` in IE 10/11
- * and Firefox.
- * Correct `block` display not defined for `main` in IE 11.
- */
-
-article,
-aside,
-details,
-figcaption,
-figure,
-footer,
-header,
-hgroup,
-main,
-menu,
-nav,
-section,
-summary {
- display: block;
-}
-
-/**
- * 1. Correct `inline-block` display not defined in IE 8/9.
- * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera.
- */
-
-audio,
-canvas,
-progress,
-video {
- display: inline-block; /* 1 */
- vertical-align: baseline; /* 2 */
-}
-
-/**
- * Prevent modern browsers from displaying `audio` without controls.
- * Remove excess height in iOS 5 devices.
- */
-
-audio:not([controls]) {
- display: none;
- height: 0;
-}
-
-/**
- * Address `[hidden]` styling not present in IE 8/9/10.
- * Hide the `template` element in IE 8/9/10/11, Safari, and Firefox < 22.
- */
-
-[hidden],
-template {
- display: none;
-}
-
-/* Links
- ========================================================================== */
-
-/**
- * Remove the gray background color from active links in IE 10.
- */
-
-a {
- background-color: transparent;
-}
-
-/**
- * Improve readability of focused elements when they are also in an
- * active/hover state.
- */
-
-a:active,
-a:hover {
- outline: 0;
-}
-
-/* Text-level semantics
- ========================================================================== */
-
-/**
- * Address styling not present in IE 8/9/10/11, Safari, and Chrome.
- */
-
-abbr[title] {
- border-bottom: 1px dotted;
-}
-
-/**
- * Address style set to `bolder` in Firefox 4+, Safari, and Chrome.
- */
-
-b,
-strong {
- font-weight: bold;
-}
-
-/**
- * Address styling not present in Safari and Chrome.
- */
-
-dfn {
- font-style: italic;
-}
-
-/**
- * Address variable `h1` font-size and margin within `section` and `article`
- * contexts in Firefox 4+, Safari, and Chrome.
- */
-
-h1 {
- font-size: 2em;
- margin: .67em 0;
-}
-
-/**
- * Address styling not present in IE 8/9.
- */
-
-mark {
- background: #ff0;
- color: #000;
-}
-
-/**
- * Address inconsistent and variable font size in all browsers.
- */
-
-small {
- font-size: 80%;
-}
-
-/**
- * Prevent `sub` and `sup` affecting `line-height` in all browsers.
- */
-
-sub,
-sup {
- font-size: 75%;
- line-height: 0;
- position: relative;
- vertical-align: baseline;
-}
-
-sup {
- top: -.5em;
-}
-
-sub {
- bottom: -.25em;
-}
-
-/* Embedded content
- ========================================================================== */
-
-/**
- * Remove border when inside `a` element in IE 8/9/10.
- */
-
-img {
- border: 0;
-}
-
-/**
- * Correct overflow not hidden in IE 9/10/11.
- */
-
-svg:not(:root) {
- overflow: hidden;
-}
-
-/* Grouping content
- ========================================================================== */
-
-/**
- * Address margin not present in IE 8/9 and Safari.
- */
-
-figure {
- margin: 1em 40px;
-}
-
-/**
- * Address differences between Firefox and other browsers.
- */
-
-hr {
- box-sizing: content-box;
- height: 0;
-}
-
-/**
- * Contain overflow in all browsers.
- */
-
-pre {
- overflow: auto;
-}
-
-/**
- * Address odd `em`-unit font size rendering in all browsers.
- */
-
-code,
-kbd,
-pre,
-samp {
- font-family: monospace, monospace;
- font-size: 1em;
-}
-
-/* Forms
- ========================================================================== */
-
-/**
- * Known limitation: by default, Chrome and Safari on OS X allow very limited
- * styling of `select`, unless a `border` property is set.
- */
-
-/**
- * 1. Correct color not being inherited.
- * Known issue: affects color of disabled elements.
- * 2. Correct font properties not being inherited.
- * 3. Address margins set differently in Firefox 4+, Safari, and Chrome.
- */
-
-button,
-input,
-optgroup,
-select,
-textarea {
- color: inherit; /* 1 */
- font: inherit; /* 2 */
- margin: 0; /* 3 */
-}
-
-/**
- * Address `overflow` set to `hidden` in IE 8/9/10/11.
- */
-
-button {
- overflow: visible;
-}
-
-/**
- * Address inconsistent `text-transform` inheritance for `button` and `select`.
- * All other form control elements do not inherit `text-transform` values.
- * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera.
- * Correct `select` style inheritance in Firefox.
- */
-
-button,
-select {
- text-transform: none;
-}
-
-/**
- * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`
- * and `video` controls.
- * 2. Correct inability to style clickable `input` types in iOS.
- * 3. Improve usability and consistency of cursor style between image-type
- * `input` and others.
- */
-
-button,
-html input[type="button"],
-input[type="reset"],
-input[type="submit"] {
- -webkit-appearance: button; /* 2 */
- cursor: pointer; /* 3 */
-}
-
-/**
- * Re-set default cursor for disabled elements.
- */
-
-button[disabled],
-html input[disabled] {
- cursor: default;
-}
-
-/**
- * Remove inner padding and border in Firefox 4+.
- */
-
-button::-moz-focus-inner,
-input::-moz-focus-inner {
- border: 0;
- padding: 0;
-}
-
-/**
- * Address Firefox 4+ setting `line-height` on `input` using `!important` in
- * the UA stylesheet.
- */
-
-input {
- line-height: normal;
-}
-
-/**
- * It's recommended that you don't attempt to style these elements.
- * Firefox's implementation doesn't respect box-sizing, padding, or width.
- *
- * 1. Address box sizing set to `content-box` in IE 8/9/10.
- * 2. Remove excess padding in IE 8/9/10.
- */
-
-input[type="checkbox"],
-input[type="radio"] {
- box-sizing: border-box; /* 1 */
- padding: 0; /* 2 */
-}
-
-/**
- * Fix the cursor style for Chrome's increment/decrement buttons. For certain
- * `font-size` values of the `input`, it causes the cursor style of the
- * decrement button to change from `default` to `text`.
- */
-
-input[type="number"]::-webkit-inner-spin-button,
-input[type="number"]::-webkit-outer-spin-button {
- height: auto;
-}
-
-/**
- * 1. Address `appearance` set to `searchfield` in Safari and Chrome.
- * 2. Address `box-sizing` set to `border-box` in Safari and Chrome.
- */
-
-input[type="search"] {
- -webkit-appearance: textfield; /* 1 */
- box-sizing: content-box; /* 2 */
-}
-
-/**
- * Remove inner padding and search cancel button in Safari and Chrome on OS X.
- * Safari (but not Chrome) clips the cancel button when the search input has
- * padding (and `textfield` appearance).
- */
-
-input[type="search"]::-webkit-search-cancel-button,
-input[type="search"]::-webkit-search-decoration {
- -webkit-appearance: none;
-}
-
-/**
- * Define consistent border, margin, and padding.
- */
-
-fieldset {
- border: 1px solid #c0c0c0;
- margin: 0 2px;
- padding: .35em .625em .75em;
-}
-
-/**
- * 1. Correct `color` not being inherited in IE 8/9/10/11.
- * 2. Remove padding so people aren't caught out if they zero out fieldsets.
- */
-
-legend {
- border: 0; /* 1 */
- padding: 0; /* 2 */
-}
-
-/**
- * Remove default vertical scrollbar in IE 8/9/10/11.
- */
-
-textarea {
- overflow: auto;
-}
-
-/**
- * Don't inherit the `font-weight` (applied by a rule above).
- * NOTE: the default cannot safely be changed in Chrome and Safari on OS X.
- */
-
-optgroup {
- font-weight: bold;
-}
-
-/* Tables
- ========================================================================== */
-
-/**
- * Remove most spacing between table cells.
- */
-
-table {
- border-collapse: collapse;
- border-spacing: 0;
-}
-
-td,
-th {
- padding: 0;
-}
-
-@font-face {
- font-family: "icomoon";
- src: url("http://github.com/fonts/icomoon.eot?h4u2u");
- src: url("http://github.com/fonts/icomoon.eot?h4u2u#iefix") format("embedded-opentype"), url("http://github.com/fonts/icomoon.ttf?h4u2u") format("truetype"), url("http://github.com/fonts/icomoon.woff?h4u2u") format("woff"), url("http://github.com/fonts/icomoon.svg?h4u2u#icomoon") format("svg");
- font-weight: normal;
- font-style: normal;
-}
-
-[class^="icon-"],
-[class*=" icon-"] {
- /* use !important to prevent issues with browser extensions that change fonts */
- font-family: "icomoon" !important;
- speak: none;
- font-style: normal;
- font-weight: normal;
- font-variant: normal;
- text-transform: none;
- line-height: 1; /* Better Font Rendering =========== */
- -webkit-font-smoothing: antialiased;
- -moz-osx-font-smoothing: grayscale;
-}
-
-.icon-checkmark:before {
- content: "\ea10";
-}
-
-.icon-customize:before {
- content: "\e900";
-}
-
-.icon-forks:before {
- content: "\e901";
-}
-
-.icon-github:before {
- content: "\e902";
-}
-
-.icon-github-header:before {
- content: "\e903";
-}
-
-.icon-lego:before {
- content: "\e904";
-}
-
-.icon-npm:before {
- content: "\e905";
-}
-
-.icon-twitter:before {
- content: "\e906";
-}
-
-.menu,
-.welcome .services,
-.welcome .question .popup ul:not([class]):not([id]),
-.examples ol:not([class]):not([id]),
-.accordion,
-.contact,
-.social {
- margin: 0;
- padding: 0;
- list-style: none;
-}
-
-.clearfix:after {
- content: "";
- display: block;
- clear: both;
-}
-
-.ellipsis {
- white-space: nowrap; /* 1 */
- text-overflow: ellipsis; /* 2 */
- overflow: hidden;
-}
-
-html {
- box-sizing: border-box;
-}
-
-*,
-*:before,
-*:after {
- box-sizing: inherit;
-}
-
-* {
- max-height: 1000000px;
-}
-
-body {
- color: #333a3c;
- background: #fff;
- font: 18px/1.2 "Barlow", "Helvetica Neue", "Helvetica", sans-serif;
- min-width: 1200px;
- -webkit-font-smoothing: antialiased;
- -moz-osx-font-smoothing: grayscale;
-}
-
-img {
- max-width: 100%;
- height: auto;
- vertical-align: top;
-}
-
-.gm-style img {
- max-width: none;
-}
-
-h1,
-.h1,
-h2,
-.h2,
-h3,
-.h3,
-h4,
-.h4,
-h5,
-.h5,
-h6,
-.h6,
-.h {
- font-family: inherit;
- font-weight: bold;
- margin: 0 0 .5em;
- color: inherit;
-}
-
-h1,
-.h1 {
- font-size: 36px;
-}
-
-h2,
-.h2 {
- font-size: 27px;
-}
-
-h3,
-.h3 {
- font-size: 24px;
-}
-
-h4,
-.h4 {
- font-size: 21px;
-}
-
-h5,
-.h5 {
- font-size: 17px;
-}
-
-h6,
-.h6 {
- font-size: 15px;
-}
-
-p {
- margin: 0 0 1em;
-}
-
-a {
- color: #41b7cd;
-}
-
-a:hover,
-a:focus {
- text-decoration: none;
-}
-
-form,
-fieldset {
- margin: 0;
- padding: 0;
- border-style: none;
-}
-
-input[type="text"],
-input[type="tel"],
-input[type="email"],
-input[type="search"],
-input[type="password"],
-textarea {
- -webkit-appearance: none;
- -webkit-border-radius: 0;
- box-sizing: border-box;
- border: 1px solid #999;
- padding: 14px 31px 15px;
-}
-
-input[type="text"]:focus,
-input[type="tel"]:focus,
-input[type="email"]:focus,
-input[type="search"]:focus,
-input[type="password"]:focus,
-textarea:focus {
- border-color: #333a3c;
-}
-
-input[type="text"]::-webkit-input-placeholder,
-input[type="tel"]::-webkit-input-placeholder,
-input[type="email"]::-webkit-input-placeholder,
-input[type="search"]::-webkit-input-placeholder,
-input[type="password"]::-webkit-input-placeholder,
-textarea::-webkit-input-placeholder {
- color: #999;
-}
-
-input[type="text"]::-moz-placeholder,
-input[type="tel"]::-moz-placeholder,
-input[type="email"]::-moz-placeholder,
-input[type="search"]::-moz-placeholder,
-input[type="password"]::-moz-placeholder,
-textarea::-moz-placeholder {
- opacity: 1;
- color: #999;
-}
-
-input[type="text"]:-moz-placeholder,
-input[type="tel"]:-moz-placeholder,
-input[type="email"]:-moz-placeholder,
-input[type="search"]:-moz-placeholder,
-input[type="password"]:-moz-placeholder,
-textarea:-moz-placeholder {
- color: #999;
-}
-
-input[type="text"]:-ms-input-placeholder,
-input[type="tel"]:-ms-input-placeholder,
-input[type="email"]:-ms-input-placeholder,
-input[type="search"]:-ms-input-placeholder,
-input[type="password"]:-ms-input-placeholder,
-textarea:-ms-input-placeholder {
- color: #999;
-}
-
-input[type="text"].placeholder,
-input[type="tel"].placeholder,
-input[type="email"].placeholder,
-input[type="search"].placeholder,
-input[type="password"].placeholder,
-textarea.placeholder {
- color: #999;
-}
-
-select {
- -webkit-border-radius: 0;
-}
-
-textarea {
- resize: vertical;
- vertical-align: top;
-}
-
-button,
-input[type="button"],
-input[type="reset"],
-input[type="file"],
-input[type="submit"] {
- -webkit-appearance: none;
- -webkit-border-radius: 0;
- cursor: pointer;
-}
-
-#header {
- padding: 30px 0;
- position: absolute;
- top: 0;
- left: 0;
- right: 0;
- z-index: 5;
-}
-
-#header .container {
- display: -webkit-box;
- display: -ms-flexbox;
- display: flex;
- -webkit-box-align: center;
- -ms-flex-align: center;
- align-items: center;
-}
-
-.navigation {
- width: calc(100% - 178px);
-}
-
-.logo {
- width: 178px;
-}
-
-.menu {
- text-align: right;
-}
-
-.menu li {
- display: inline-block;
- vertical-align: middle;
- margin: 0 18px;
-}
-
-.menu li:last-child {
- margin-right: 0;
-}
-
-.menu li a {
- -webkit-transition: color .3s ease-in-out;
- transition: color .3s ease-in-out;
- font-weight: 500;
- font-size: 16px;
- text-decoration: none;
- text-transform: uppercase;
- color: #333a3c;
-}
-
-.menu li a:hover {
- color: #ff7b00;
-}
-
-#wrapper {
- overflow: hidden;
- position: relative;
-}
-
-.container {
- max-width: 1200px;
- margin: 0 auto;
- padding: 0 15px;
-}
-
-.btn {
- -webkit-transition: background-color .3s ease-in-out;
- transition: background-color .3s ease-in-out;
- background-color: #ff7b00;
- text-transform: uppercase;
- text-decoration: none;
- font-weight: 500;
- display: inline-block;
- vertical-align: middle;
- border-radius: 3px;
- padding: 14px 31px 15px;
- color: #fff;
- box-shadow: 0 20px 40px rgba(255, 123, 0, .33);
-}
-
-.btn:hover {
- background-color: #db6a00;
-}
-
-.btn-blue {
- -webkit-transition: background-color .3s ease-in-out;
- transition: background-color .3s ease-in-out;
- background-color: #41b7cd;
- box-shadow: 0 20px 40px rgba(65, 183, 205, .33);
-}
-
-.btn-blue:hover {
- background-color: #31a4b9;
-}
-
-.welcome {
- position: relative;
- min-height: 611px;
- background-image: -webkit-linear-gradient(top, #fbfcfc 0%, #f5f7f8 100%);
- background-image: linear-gradient(180deg, #fbfcfc 0%, #f5f7f8 100%);
- padding-top: 140px;
-}
-
-.welcome:after {
- content: "";
- position: absolute;
- bottom: 0;
- left: 0;
- right: 0;
- background: url(http://github.com/images/img-01.png);
- height: 99px;
- background-position: 75px 0;
-}
-
-.welcome:before {
- content: "";
- position: absolute;
- bottom: 40px;
- left: 0;
- right: 0;
- background: url(http://github.com/images/img-03.png);
- background-position: 1850px 100%;
- background-repeat: repeat-x;
- height: 420px;
-}
-
-.welcome .container {
- position: relative;
-}
-
-.welcome .img-block {
- position: absolute;
- bottom: -130px;
- right: 0;
-}
-
-.welcome .services {
- font-weight: 200;
- margin-bottom: 34px;
- font-size: 36px;
- line-height: 1.66666;
- max-width: 450px;
-}
-
-.welcome .services li {
- position: relative;
- padding-left: 60px;
-}
-
-.welcome .services li i {
- position: absolute;
- left: 0;
- top: 15px;
- min-width: 36px;
- text-align: center;
- color: #41b7cd;
-}
-
-.welcome .question {
- display: inline-block;
- vertical-align: middle;
- font-weight: 500;
- margin-bottom: 30px;
- position: relative;
- line-height: 1.77777;
-}
-
-.welcome .question strong {
- font-weight: 500;
-}
-
-.welcome .question .open {
- -webkit-transition: background-color .3s ease-in-out;
- transition: background-color .3s ease-in-out;
- background-color: #41b7cd;
- color: #fff;
- text-decoration: none;
- font-weight: 700;
- display: inline-block;
- vertical-align: middle;
- width: 24px;
- height: 24px;
- border-radius: 50%;
- text-align: center;
- line-height: 24px;
- margin-left: 7px;
-}
-
-.welcome .question .open:hover {
- background-color: #31a4b9;
-}
-
-.welcome .question .popup {
- display: none;
- position: absolute;
- left: 180px;
- top: 45px;
- background-color: #fff;
- box-shadow: 0 20px 40px rgba(51, 58, 60, .03);
- padding: 30px;
- min-width: 390px;
- z-index: 1;
- font-weight: 400;
- line-height: 1.44444;
- border-radius: 3px;
-}
-
-.welcome .question .popup:before {
- content: "";
- position: absolute;
- left: 28px;
- border: 14px solid transparent;
- top: -26px;
- border-bottom: 15px solid #fff;
-}
-
-.welcome .question .popup h3 {
- font-weight: 500;
- margin-bottom: 28px;
-}
-
-.welcome .question .popup p {
- margin-bottom: 30px;
-}
-
-.welcome .question .popup ul:not([class]):not([id]) {
- margin-bottom: 30px;
-}
-
-.welcome .question .popup ul:not([class]):not([id]) li {
- position: relative;
- margin-left: 36px;
- margin-bottom: 10px;
-}
-
-.welcome .question .popup ul:not([class]):not([id]) li:before {
- font-family: "icomoon" !important;
- content: "\ea10";
- position: absolute;
- left: -36px;
- color: #ff7b00;
-}
-
-.welcome .question .popup .btn {
- display: block;
- text-align: center;
-}
-
-.welcome .btn-holder .btn {
- margin-right: 10px;
-}
-
-.welcome .btn-holder .popup {
- display: none;
- background-color: rgba(51, 58, 60, .2);
- position: fixed;
- top: 0;
- bottom: 0;
- left: 0;
- right: 0;
- z-index: 10;
-}
-
-.examples {
- padding: 72px 0 50px;
-}
-
-.examples h1 {
- font-weight: 200;
- text-align: center;
- position: relative;
- line-height: 1.66666;
- margin-bottom: 100px;
-}
-
-.examples h1:before {
- content: "";
- position: absolute;
- left: 50%;
- top: -5px;
- -webkit-transform: translateX(-50%);
- -ms-transform: translateX(-50%);
- transform: translateX(-50%);
- width: 60px;
- height: 5px;
- border-radius: 3px;
- background-color: #ff7b00;
-}
-
-.examples ol:not([class]):not([id]) {
- counter-reset: li;
- font-weight: 200;
- margin: 0 -15px;
- display: -webkit-box;
- display: -ms-flexbox;
- display: flex;
- -ms-flex-wrap: wrap;
- flex-wrap: wrap;
- -webkit-box-pack: justify;
- -ms-flex-pack: justify;
- justify-content: space-between;
-}
-
-.examples ol:not([class]):not([id]) li {
- position: relative;
- padding: 57px 15px 0;
- margin-bottom: 70px;
- width: 33.332%;
- box-shadow: 0 20px 40px -15px rgba(51, 58, 60, .02);
-}
-
-.examples ol:not([class]):not([id]) li:before {
- content: counter(li);
- counter-increment: li;
- position: absolute;
- width: 80px;
- height: 80px;
- color: #fff;
- background: #41b7cd;
- text-align: center;
- border-radius: 50%;
- left: 50%;
- top: -40px;
- -webkit-transform: translateX(-50%);
- -ms-transform: translateX(-50%);
- transform: translateX(-50%);
- font-size: 36px;
- display: -webkit-box;
- display: -ms-flexbox;
- display: flex;
- -webkit-box-pack: center;
- -ms-flex-pack: center;
- justify-content: center;
- -webkit-box-align: center;
- -ms-flex-align: center;
- align-items: center;
-}
-
-.examples ol:not([class]):not([id]) li .box {
- text-align: center;
- box-shadow: 0 20px 40px rgba(51, 58, 60, .03);
- padding: 0 15px 30px;
-}
-
-.examples ol:not([class]):not([id]) li h3 {
- font-weight: 200;
- margin-bottom: 30px;
-}
-
-.accordion-holder {
- position: fixed;
- overflow: hidden;
- top: 60px;
- min-width: 500px;
- background-color: #fff;
- left: 50%;
- -webkit-transform: translateX(-50%);
- -ms-transform: translateX(-50%);
- transform: translateX(-50%);
- padding: 30px 30px 15px;
- box-shadow: 0 20px 40px rgba(51, 58, 60, .03);
- border-radius: 3px;
-}
-
-.accordion-holder h3 {
- display: inline-block;
- vertical-align: middle;
- margin-bottom: 30px;
- font-weight: 500;
-}
-
-.accordion-holder .close {
- display: inline-block;
- vertical-align: middle;
- float: right;
- position: relative;
- width: 25px;
- height: 25px;
-}
-
-.accordion-holder .close:before,
-.accordion-holder .close:after {
- -webkit-transition: background-color .3s ease-in-out;
- transition: background-color .3s ease-in-out;
- content: "";
- position: absolute;
- width: 30px;
- height: 4px;
- background-color: #dfe8e9;
- top: 50%;
- left: 50%;
- -webkit-transform: translate(-50%, -50%) rotate(45deg);
- -ms-transform: translate(-50%, -50%) rotate(45deg);
- transform: translate(-50%, -50%) rotate(45deg);
-}
-
-.accordion-holder .close:after {
- -webkit-transform: translate(-50%, -50%) rotate(-45deg);
- -ms-transform: translate(-50%, -50%) rotate(-45deg);
- transform: translate(-50%, -50%) rotate(-45deg);
-}
-
-.accordion-holder .close:hover:before,
-.accordion-holder .close:hover:after {
- background-color: #333a3c;
-}
-
-.accordion {
- max-width: 450px;
- line-height: 1.44444;
-}
-
-.accordion li {
- padding-bottom: 13px;
-}
-
-.accordion li:last-child {
- margin-bottom: 0;
-}
-
-.accordion li.active .opener span:after {
- -webkit-transform: translate(-50%, -50%) rotate(180deg);
- -ms-transform: translate(-50%, -50%) rotate(180deg);
- transform: translate(-50%, -50%) rotate(180deg);
-}
-
-.accordion .opener {
- color: #333a3c;
- line-height: 1.44444;
- text-decoration: none;
- display: inline-block;
- vertical-align: middle;
-}
-
-.accordion .opener span {
- margin-right: 15px;
- display: inline-block;
- vertical-align: middle;
- width: 30px;
- height: 30px;
- border-radius: 3px;
- background-color: #ff7b00;
- position: relative;
-}
-
-.accordion .opener span:before,
-.accordion .opener span:after {
- -webkit-transition: -webkit-transform .3s ease-in-out;
- transition: -webkit-transform .3s ease-in-out;
- transition: transform .3s ease-in-out;
- transition: transform .3s ease-in-out, -webkit-transform .3s ease-in-out;
- position: absolute;
- content: "";
- width: 16px;
- height: 4px;
- border-radius: 1px;
- background-color: #fff;
- top: 50%;
- left: 50%;
- -webkit-transform: translate(-50%, -50%);
- -ms-transform: translate(-50%, -50%);
- transform: translate(-50%, -50%);
-}
-
-.accordion .opener span:after {
- -webkit-transform: translate(-50%, -50%) rotate(90deg);
- -ms-transform: translate(-50%, -50%) rotate(90deg);
- transform: translate(-50%, -50%) rotate(90deg);
-}
-
-.accordion .slide {
- max-width: 440px;
- padding: 13px 0 0 45px;
- color: #9ba8ab;
-}
-
-.accordion .slide p {
- margin-bottom: 10px;
-}
-
-#footer {
- background-color: #f5f7f8;
- padding: 60px 0;
-}
-
-.contact {
- text-align: center;
- margin-bottom: 18px;
- font-size: 14px;
- font-weight: 400;
-}
-
-.contact li {
- display: inline-block;
- vertical-align: middle;
- margin: 0 12px;
- position: relative;
-}
-
-.contact li:after {
- content: "|";
- position: absolute;
- right: -14px;
- top: 0;
-}
-
-.contact li:last-child:after {
- content: none;
-}
-
-.contact a {
- -webkit-transition: color .3s ease-in-out;
- transition: color .3s ease-in-out;
- color: #333a3c;
- text-decoration: none;
- display: inline-block;
- vertical-align: middle;
-}
-
-.contact a:hover {
- color: #ff7b00;
-}
-
-.social {
- text-align: center;
-}
-
-.social li {
- display: inline-block;
- vertical-align: middle;
- margin-right: -3px;
-}
-
-.social li a {
- -webkit-transition: color .3s ease-in-out, border-color .3s ease-in-out;
- transition: color .3s ease-in-out, border-color .3s ease-in-out;
- display: inline-block;
- vertical-align: middle;
- text-decoration: none;
- width: 60px;
- height: 60px;
- border: 1px solid #c7d1d3;
- color: #c7d1d3;
- margin: 0 5px;
- border-radius: 50%;
- position: relative;
-}
-
-.social li a:hover {
- color: #ff7b00;
- border-color: #ff7b00;
-}
-
-.social li a i {
- position: absolute;
- font-size: 31px;
- left: 50%;
- top: 50%;
- -webkit-transform: translate(-50%, -50%);
- -ms-transform: translate(-50%, -50%);
- transform: translate(-50%, -50%);
-}
-
\ No newline at end of file
diff --git a/docs/fonts/icomoon.eot b/docs/fonts/icomoon.eot
deleted file mode 100755
index 0e4fe6cf..00000000
Binary files a/docs/fonts/icomoon.eot and /dev/null differ
diff --git a/docs/fonts/icomoon.svg b/docs/fonts/icomoon.svg
deleted file mode 100755
index 92d19692..00000000
--- a/docs/fonts/icomoon.svg
+++ /dev/null
@@ -1,18 +0,0 @@
-
-
-
-Generated by IcoMoon
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/docs/fonts/icomoon.ttf b/docs/fonts/icomoon.ttf
deleted file mode 100755
index 36ae7f9c..00000000
Binary files a/docs/fonts/icomoon.ttf and /dev/null differ
diff --git a/docs/fonts/icomoon.woff b/docs/fonts/icomoon.woff
deleted file mode 100755
index 799829a1..00000000
Binary files a/docs/fonts/icomoon.woff and /dev/null differ
diff --git a/docs/images/bg-intro.png b/docs/images/bg-intro.png
deleted file mode 100755
index 710acdb8..00000000
Binary files a/docs/images/bg-intro.png and /dev/null differ
diff --git a/docs/images/chart.svg b/docs/images/chart.svg
deleted file mode 100755
index 2785079a..00000000
--- a/docs/images/chart.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/docs/images/component.svg b/docs/images/component.svg
deleted file mode 100755
index 0ea6fd46..00000000
--- a/docs/images/component.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/docs/images/content.svg b/docs/images/content.svg
deleted file mode 100755
index 878b0300..00000000
--- a/docs/images/content.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/docs/images/img-01.png b/docs/images/img-01.png
deleted file mode 100755
index 29e7f3ec..00000000
Binary files a/docs/images/img-01.png and /dev/null differ
diff --git a/docs/images/img-02.svg b/docs/images/img-02.svg
deleted file mode 100755
index 06332851..00000000
--- a/docs/images/img-02.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/docs/images/img-03.png b/docs/images/img-03.png
deleted file mode 100755
index 48a74ade..00000000
Binary files a/docs/images/img-03.png and /dev/null differ
diff --git a/docs/images/logo.png b/docs/images/logo.png
deleted file mode 100755
index 4d3de419..00000000
Binary files a/docs/images/logo.png and /dev/null differ
diff --git a/docs/images/redux.svg b/docs/images/redux.svg
deleted file mode 100755
index b476e8b6..00000000
--- a/docs/images/redux.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/docs/images/route.svg b/docs/images/route.svg
deleted file mode 100755
index 44906ba5..00000000
--- a/docs/images/route.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/docs/images/tree.svg b/docs/images/tree.svg
deleted file mode 100755
index 1d4c07d7..00000000
--- a/docs/images/tree.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/docs/index.html b/docs/index.html
deleted file mode 100644
index 90a3a487..00000000
--- a/docs/index.html
+++ /dev/null
@@ -1,170 +0,0 @@
-
-
-
-
-
-
- AngularTreeComponent
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Customization
- Private Forks
- Feature Requests
-
-
-
Is it worth $220 per hour?
-
?
-
-
-
-
-
-
-
-
Custom Implementation Examples
-
-
-
-
Organization Chart
-
-
-
-
-
-
Horizontal Tree
-
-
-
-
-
-
Route Integration
-
-
-
-
-
-
Redux Integration
-
-
-
-
-
-
Context Menus
-
-
-
-
-
-
Component Sync
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/docs/js/jquery-3.2.1.min.js b/docs/js/jquery-3.2.1.min.js
deleted file mode 100755
index 999522bb..00000000
--- a/docs/js/jquery-3.2.1.min.js
+++ /dev/null
@@ -1,4 +0,0 @@
-/*! jQuery v3.2.1 | (c) JS Foundation and other contributors | jquery.org/license */
-!function(a,b){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){"use strict";var c=[],d=a.document,e=Object.getPrototypeOf,f=c.slice,g=c.concat,h=c.push,i=c.indexOf,j={},k=j.toString,l=j.hasOwnProperty,m=l.toString,n=m.call(Object),o={};function p(a,b){b=b||d;var c=b.createElement("script");c.text=a,b.head.appendChild(c).parentNode.removeChild(c)}var q="3.2.1",r=function(a,b){return new r.fn.init(a,b)},s=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,t=/^-ms-/,u=/-([a-z])/g,v=function(a,b){return b.toUpperCase()};r.fn=r.prototype={jquery:q,constructor:r,length:0,toArray:function(){return f.call(this)},get:function(a){return null==a?f.call(this):a<0?this[a+this.length]:this[a]},pushStack:function(a){var b=r.merge(this.constructor(),a);return b.prevObject=this,b},each:function(a){return r.each(this,a)},map:function(a){return this.pushStack(r.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(f.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(a<0?b:0);return this.pushStack(c>=0&&c0&&b-1 in a)}var x=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+1*new Date,v=a.document,w=0,x=0,y=ha(),z=ha(),A=ha(),B=function(a,b){return a===b&&(l=!0),0},C={}.hasOwnProperty,D=[],E=D.pop,F=D.push,G=D.push,H=D.slice,I=function(a,b){for(var c=0,d=a.length;c+~]|"+K+")"+K+"*"),S=new RegExp("="+K+"*([^\\]'\"]*?)"+K+"*\\]","g"),T=new RegExp(N),U=new RegExp("^"+L+"$"),V={ID:new RegExp("^#("+L+")"),CLASS:new RegExp("^\\.("+L+")"),TAG:new RegExp("^("+L+"|[*])"),ATTR:new RegExp("^"+M),PSEUDO:new RegExp("^"+N),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+K+"*(even|odd|(([+-]|)(\\d*)n|)"+K+"*(?:([+-]|)"+K+"*(\\d+)|))"+K+"*\\)|)","i"),bool:new RegExp("^(?:"+J+")$","i"),needsContext:new RegExp("^"+K+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+K+"*((?:-\\d)?\\d*)"+K+"*\\)|)(?=[^-]|$)","i")},W=/^(?:input|select|textarea|button)$/i,X=/^h\d$/i,Y=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,$=/[+~]/,_=new RegExp("\\\\([\\da-f]{1,6}"+K+"?|("+K+")|.)","ig"),aa=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:d<0?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)},ba=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ca=function(a,b){return b?"\0"===a?"\ufffd":a.slice(0,-1)+"\\"+a.charCodeAt(a.length-1).toString(16)+" ":"\\"+a},da=function(){m()},ea=ta(function(a){return a.disabled===!0&&("form"in a||"label"in a)},{dir:"parentNode",next:"legend"});try{G.apply(D=H.call(v.childNodes),v.childNodes),D[v.childNodes.length].nodeType}catch(fa){G={apply:D.length?function(a,b){F.apply(a,H.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function ga(a,b,d,e){var f,h,j,k,l,o,r,s=b&&b.ownerDocument,w=b?b.nodeType:9;if(d=d||[],"string"!=typeof a||!a||1!==w&&9!==w&&11!==w)return d;if(!e&&((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,p)){if(11!==w&&(l=Z.exec(a)))if(f=l[1]){if(9===w){if(!(j=b.getElementById(f)))return d;if(j.id===f)return d.push(j),d}else if(s&&(j=s.getElementById(f))&&t(b,j)&&j.id===f)return d.push(j),d}else{if(l[2])return G.apply(d,b.getElementsByTagName(a)),d;if((f=l[3])&&c.getElementsByClassName&&b.getElementsByClassName)return G.apply(d,b.getElementsByClassName(f)),d}if(c.qsa&&!A[a+" "]&&(!q||!q.test(a))){if(1!==w)s=b,r=a;else if("object"!==b.nodeName.toLowerCase()){(k=b.getAttribute("id"))?k=k.replace(ba,ca):b.setAttribute("id",k=u),o=g(a),h=o.length;while(h--)o[h]="#"+k+" "+sa(o[h]);r=o.join(","),s=$.test(a)&&qa(b.parentNode)||b}if(r)try{return G.apply(d,s.querySelectorAll(r)),d}catch(x){}finally{k===u&&b.removeAttribute("id")}}}return i(a.replace(P,"$1"),b,d,e)}function ha(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function ia(a){return a[u]=!0,a}function ja(a){var b=n.createElement("fieldset");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function ka(a,b){var c=a.split("|"),e=c.length;while(e--)d.attrHandle[c[e]]=b}function la(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&a.sourceIndex-b.sourceIndex;if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function ma(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function na(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function oa(a){return function(b){return"form"in b?b.parentNode&&b.disabled===!1?"label"in b?"label"in b.parentNode?b.parentNode.disabled===a:b.disabled===a:b.isDisabled===a||b.isDisabled!==!a&&ea(b)===a:b.disabled===a:"label"in b&&b.disabled===a}}function pa(a){return ia(function(b){return b=+b,ia(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 qa(a){return a&&"undefined"!=typeof a.getElementsByTagName&&a}c=ga.support={},f=ga.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return!!b&&"HTML"!==b.nodeName},m=ga.setDocument=function(a){var b,e,g=a?a.ownerDocument||a:v;return g!==n&&9===g.nodeType&&g.documentElement?(n=g,o=n.documentElement,p=!f(n),v!==n&&(e=n.defaultView)&&e.top!==e&&(e.addEventListener?e.addEventListener("unload",da,!1):e.attachEvent&&e.attachEvent("onunload",da)),c.attributes=ja(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ja(function(a){return a.appendChild(n.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=Y.test(n.getElementsByClassName),c.getById=ja(function(a){return o.appendChild(a).id=u,!n.getElementsByName||!n.getElementsByName(u).length}),c.getById?(d.filter.ID=function(a){var b=a.replace(_,aa);return function(a){return a.getAttribute("id")===b}},d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c=b.getElementById(a);return c?[c]:[]}}):(d.filter.ID=function(a){var b=a.replace(_,aa);return function(a){var c="undefined"!=typeof a.getAttributeNode&&a.getAttributeNode("id");return c&&c.value===b}},d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c,d,e,f=b.getElementById(a);if(f){if(c=f.getAttributeNode("id"),c&&c.value===a)return[f];e=b.getElementsByName(a),d=0;while(f=e[d++])if(c=f.getAttributeNode("id"),c&&c.value===a)return[f]}return[]}}),d.find.TAG=c.getElementsByTagName?function(a,b){return"undefined"!=typeof b.getElementsByTagName?b.getElementsByTagName(a):c.qsa?b.querySelectorAll(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){if("undefined"!=typeof b.getElementsByClassName&&p)return b.getElementsByClassName(a)},r=[],q=[],(c.qsa=Y.test(n.querySelectorAll))&&(ja(function(a){o.appendChild(a).innerHTML=" ",a.querySelectorAll("[msallowcapture^='']").length&&q.push("[*^$]="+K+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+K+"*(?:value|"+J+")"),a.querySelectorAll("[id~="+u+"-]").length||q.push("~="),a.querySelectorAll(":checked").length||q.push(":checked"),a.querySelectorAll("a#"+u+"+*").length||q.push(".#.+[+~]")}),ja(function(a){a.innerHTML=" ";var b=n.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+K+"*[*^$|!~]?="),2!==a.querySelectorAll(":enabled").length&&q.push(":enabled",":disabled"),o.appendChild(a).disabled=!0,2!==a.querySelectorAll(":disabled").length&&q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=Y.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ja(function(a){c.disconnectedMatch=s.call(a,"*"),s.call(a,"[s!='']:x"),r.push("!=",N)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=Y.test(o.compareDocumentPosition),t=b||Y.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===n||a.ownerDocument===v&&t(v,a)?-1:b===n||b.ownerDocument===v&&t(v,b)?1:k?I(k,a)-I(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,e=a.parentNode,f=b.parentNode,g=[a],h=[b];if(!e||!f)return a===n?-1:b===n?1:e?-1:f?1:k?I(k,a)-I(k,b):0;if(e===f)return la(a,b);c=a;while(c=c.parentNode)g.unshift(c);c=b;while(c=c.parentNode)h.unshift(c);while(g[d]===h[d])d++;return d?la(g[d],h[d]):g[d]===v?-1:h[d]===v?1:0},n):n},ga.matches=function(a,b){return ga(a,null,null,b)},ga.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(S,"='$1']"),c.matchesSelector&&p&&!A[b+" "]&&(!r||!r.test(b))&&(!q||!q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return ga(b,n,null,[a]).length>0},ga.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},ga.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&C.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},ga.escape=function(a){return(a+"").replace(ba,ca)},ga.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},ga.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=ga.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=ga.selectors={cacheLength:50,createPseudo:ia,match:V,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(_,aa),a[3]=(a[3]||a[4]||a[5]||"").replace(_,aa),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||ga.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&ga.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return V.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&T.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(_,aa).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+K+")"+a+"("+K+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||"undefined"!=typeof a.getAttribute&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=ga.attr(d,a);return null==e?"!="===b:!b||(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e.replace(O," ")+" ").indexOf(c)>-1:"|="===b&&(e===c||e.slice(0,c.length+1)===c+"-"))}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h,t=!1;if(q){if(f){while(p){m=b;while(m=m[p])if(h?m.nodeName.toLowerCase()===r:1===m.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){m=q,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n&&j[2],m=n&&q.childNodes[n];while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if(1===m.nodeType&&++t&&m===b){k[a]=[w,n,t];break}}else if(s&&(m=b,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n),t===!1)while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if((h?m.nodeName.toLowerCase()===r:1===m.nodeType)&&++t&&(s&&(l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),k[a]=[w,t]),m===b))break;return t-=e,t===d||t%d===0&&t/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||ga.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?ia(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=I(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:ia(function(a){var b=[],c=[],d=h(a.replace(P,"$1"));return d[u]?ia(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),b[0]=null,!c.pop()}}),has:ia(function(a){return function(b){return ga(a,b).length>0}}),contains:ia(function(a){return a=a.replace(_,aa),function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:ia(function(a){return U.test(a||"")||ga.error("unsupported lang: "+a),a=a.replace(_,aa).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:oa(!1),disabled:oa(!0),checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return X.test(a.nodeName)},input:function(a){return W.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:pa(function(){return[0]}),last:pa(function(a,b){return[b-1]}),eq:pa(function(a,b,c){return[c<0?c+b:c]}),even:pa(function(a,b){for(var c=0;c=0;)a.push(d);return a}),gt:pa(function(a,b,c){for(var d=c<0?c+b:c;++d1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function va(a,b,c){for(var d=0,e=b.length;d-1&&(f[j]=!(g[j]=l))}}else r=wa(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):G.apply(g,r)})}function ya(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=ta(function(a){return a===b},h,!0),l=ta(function(a){return I(b,a)>-1},h,!0),m=[function(a,c,d){var e=!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d));return b=null,e}];i1&&ua(m),i>1&&sa(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(P,"$1"),c,i0,e=a.length>0,f=function(f,g,h,i,k){var l,o,q,r=0,s="0",t=f&&[],u=[],v=j,x=f||e&&d.find.TAG("*",k),y=w+=null==v?1:Math.random()||.1,z=x.length;for(k&&(j=g===n||g||k);s!==z&&null!=(l=x[s]);s++){if(e&&l){o=0,g||l.ownerDocument===n||(m(l),h=!p);while(q=a[o++])if(q(l,g||n,h)){i.push(l);break}k&&(w=y)}c&&((l=!q&&l)&&r--,f&&t.push(l))}if(r+=s,c&&s!==r){o=0;while(q=b[o++])q(t,u,g,h);if(f){if(r>0)while(s--)t[s]||u[s]||(u[s]=E.call(i));u=wa(u)}G.apply(i,u),k&&!f&&u.length>0&&r+b.length>1&&ga.uniqueSort(i)}return k&&(w=y,j=v),t};return c?ia(f):f}return h=ga.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=ya(b[c]),f[u]?d.push(f):e.push(f);f=A(a,za(e,d)),f.selector=a}return f},i=ga.select=function(a,b,c,e){var f,i,j,k,l,m="function"==typeof a&&a,n=!e&&g(a=m.selector||a);if(c=c||[],1===n.length){if(i=n[0]=n[0].slice(0),i.length>2&&"ID"===(j=i[0]).type&&9===b.nodeType&&p&&d.relative[i[1].type]){if(b=(d.find.ID(j.matches[0].replace(_,aa),b)||[])[0],!b)return c;m&&(b=b.parentNode),a=a.slice(i.shift().value.length)}f=V.needsContext.test(a)?0:i.length;while(f--){if(j=i[f],d.relative[k=j.type])break;if((l=d.find[k])&&(e=l(j.matches[0].replace(_,aa),$.test(i[0].type)&&qa(b.parentNode)||b))){if(i.splice(f,1),a=e.length&&sa(i),!a)return G.apply(c,e),c;break}}}return(m||h(a,n))(e,b,!p,c,!b||$.test(a)&&qa(b.parentNode)||b),c},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ja(function(a){return 1&a.compareDocumentPosition(n.createElement("fieldset"))}),ja(function(a){return a.innerHTML=" ","#"===a.firstChild.getAttribute("href")})||ka("type|href|height|width",function(a,b,c){if(!c)return a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&ja(function(a){return a.innerHTML=" ",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||ka("value",function(a,b,c){if(!c&&"input"===a.nodeName.toLowerCase())return a.defaultValue}),ja(function(a){return null==a.getAttribute("disabled")})||ka(J,function(a,b,c){var d;if(!c)return a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),ga}(a);r.find=x,r.expr=x.selectors,r.expr[":"]=r.expr.pseudos,r.uniqueSort=r.unique=x.uniqueSort,r.text=x.getText,r.isXMLDoc=x.isXML,r.contains=x.contains,r.escapeSelector=x.escape;var y=function(a,b,c){var d=[],e=void 0!==c;while((a=a[b])&&9!==a.nodeType)if(1===a.nodeType){if(e&&r(a).is(c))break;d.push(a)}return d},z=function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c},A=r.expr.match.needsContext;function B(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()}var C=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i,D=/^.[^:#\[\.,]*$/;function E(a,b,c){return r.isFunction(b)?r.grep(a,function(a,d){return!!b.call(a,d,a)!==c}):b.nodeType?r.grep(a,function(a){return a===b!==c}):"string"!=typeof b?r.grep(a,function(a){return i.call(b,a)>-1!==c}):D.test(b)?r.filter(b,a,c):(b=r.filter(b,a),r.grep(a,function(a){return i.call(b,a)>-1!==c&&1===a.nodeType}))}r.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?r.find.matchesSelector(d,a)?[d]:[]:r.find.matches(a,r.grep(b,function(a){return 1===a.nodeType}))},r.fn.extend({find:function(a){var b,c,d=this.length,e=this;if("string"!=typeof a)return this.pushStack(r(a).filter(function(){for(b=0;b1?r.uniqueSort(c):c},filter:function(a){return this.pushStack(E(this,a||[],!1))},not:function(a){return this.pushStack(E(this,a||[],!0))},is:function(a){return!!E(this,"string"==typeof a&&A.test(a)?r(a):a||[],!1).length}});var F,G=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/,H=r.fn.init=function(a,b,c){var e,f;if(!a)return this;if(c=c||F,"string"==typeof a){if(e="<"===a[0]&&">"===a[a.length-1]&&a.length>=3?[null,a,null]:G.exec(a),!e||!e[1]&&b)return!b||b.jquery?(b||c).find(a):this.constructor(b).find(a);if(e[1]){if(b=b instanceof r?b[0]:b,r.merge(this,r.parseHTML(e[1],b&&b.nodeType?b.ownerDocument||b:d,!0)),C.test(e[1])&&r.isPlainObject(b))for(e in b)r.isFunction(this[e])?this[e](b[e]):this.attr(e,b[e]);return this}return f=d.getElementById(e[2]),f&&(this[0]=f,this.length=1),this}return a.nodeType?(this[0]=a,this.length=1,this):r.isFunction(a)?void 0!==c.ready?c.ready(a):a(r):r.makeArray(a,this)};H.prototype=r.fn,F=r(d);var I=/^(?:parents|prev(?:Until|All))/,J={children:!0,contents:!0,next:!0,prev:!0};r.fn.extend({has:function(a){var b=r(a,this),c=b.length;return this.filter(function(){for(var a=0;a-1:1===c.nodeType&&r.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?r.uniqueSort(f):f)},index:function(a){return a?"string"==typeof a?i.call(r(a),this[0]):i.call(this,a.jquery?a[0]:a):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(r.uniqueSort(r.merge(this.get(),r(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function K(a,b){while((a=a[b])&&1!==a.nodeType);return a}r.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return y(a,"parentNode")},parentsUntil:function(a,b,c){return y(a,"parentNode",c)},next:function(a){return K(a,"nextSibling")},prev:function(a){return K(a,"previousSibling")},nextAll:function(a){return y(a,"nextSibling")},prevAll:function(a){return y(a,"previousSibling")},nextUntil:function(a,b,c){return y(a,"nextSibling",c)},prevUntil:function(a,b,c){return y(a,"previousSibling",c)},siblings:function(a){return z((a.parentNode||{}).firstChild,a)},children:function(a){return z(a.firstChild)},contents:function(a){return B(a,"iframe")?a.contentDocument:(B(a,"template")&&(a=a.content||a),r.merge([],a.childNodes))}},function(a,b){r.fn[a]=function(c,d){var e=r.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=r.filter(d,e)),this.length>1&&(J[a]||r.uniqueSort(e),I.test(a)&&e.reverse()),this.pushStack(e)}});var L=/[^\x20\t\r\n\f]+/g;function M(a){var b={};return r.each(a.match(L)||[],function(a,c){b[c]=!0}),b}r.Callbacks=function(a){a="string"==typeof a?M(a):r.extend({},a);var b,c,d,e,f=[],g=[],h=-1,i=function(){for(e=e||a.once,d=b=!0;g.length;h=-1){c=g.shift();while(++h-1)f.splice(c,1),c<=h&&h--}),this},has:function(a){return a?r.inArray(a,f)>-1:f.length>0},empty:function(){return f&&(f=[]),this},disable:function(){return e=g=[],f=c="",this},disabled:function(){return!f},lock:function(){return e=g=[],c||b||(f=c=""),this},locked:function(){return!!e},fireWith:function(a,c){return e||(c=c||[],c=[a,c.slice?c.slice():c],g.push(c),b||i()),this},fire:function(){return j.fireWith(this,arguments),this},fired:function(){return!!d}};return j};function N(a){return a}function O(a){throw a}function P(a,b,c,d){var e;try{a&&r.isFunction(e=a.promise)?e.call(a).done(b).fail(c):a&&r.isFunction(e=a.then)?e.call(a,b,c):b.apply(void 0,[a].slice(d))}catch(a){c.apply(void 0,[a])}}r.extend({Deferred:function(b){var c=[["notify","progress",r.Callbacks("memory"),r.Callbacks("memory"),2],["resolve","done",r.Callbacks("once memory"),r.Callbacks("once memory"),0,"resolved"],["reject","fail",r.Callbacks("once memory"),r.Callbacks("once memory"),1,"rejected"]],d="pending",e={state:function(){return d},always:function(){return f.done(arguments).fail(arguments),this},"catch":function(a){return e.then(null,a)},pipe:function(){var a=arguments;return r.Deferred(function(b){r.each(c,function(c,d){var e=r.isFunction(a[d[4]])&&a[d[4]];f[d[1]](function(){var a=e&&e.apply(this,arguments);a&&r.isFunction(a.promise)?a.promise().progress(b.notify).done(b.resolve).fail(b.reject):b[d[0]+"With"](this,e?[a]:arguments)})}),a=null}).promise()},then:function(b,d,e){var f=0;function g(b,c,d,e){return function(){var h=this,i=arguments,j=function(){var a,j;if(!(b=f&&(d!==O&&(h=void 0,i=[a]),c.rejectWith(h,i))}};b?k():(r.Deferred.getStackHook&&(k.stackTrace=r.Deferred.getStackHook()),a.setTimeout(k))}}return r.Deferred(function(a){c[0][3].add(g(0,a,r.isFunction(e)?e:N,a.notifyWith)),c[1][3].add(g(0,a,r.isFunction(b)?b:N)),c[2][3].add(g(0,a,r.isFunction(d)?d:O))}).promise()},promise:function(a){return null!=a?r.extend(a,e):e}},f={};return r.each(c,function(a,b){var g=b[2],h=b[5];e[b[1]]=g.add,h&&g.add(function(){d=h},c[3-a][2].disable,c[0][2].lock),g.add(b[3].fire),f[b[0]]=function(){return f[b[0]+"With"](this===f?void 0:this,arguments),this},f[b[0]+"With"]=g.fireWith}),e.promise(f),b&&b.call(f,f),f},when:function(a){var b=arguments.length,c=b,d=Array(c),e=f.call(arguments),g=r.Deferred(),h=function(a){return function(c){d[a]=this,e[a]=arguments.length>1?f.call(arguments):c,--b||g.resolveWith(d,e)}};if(b<=1&&(P(a,g.done(h(c)).resolve,g.reject,!b),"pending"===g.state()||r.isFunction(e[c]&&e[c].then)))return g.then();while(c--)P(e[c],h(c),g.reject);return g.promise()}});var Q=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;r.Deferred.exceptionHook=function(b,c){a.console&&a.console.warn&&b&&Q.test(b.name)&&a.console.warn("jQuery.Deferred exception: "+b.message,b.stack,c)},r.readyException=function(b){a.setTimeout(function(){throw b})};var R=r.Deferred();r.fn.ready=function(a){return R.then(a)["catch"](function(a){r.readyException(a)}),this},r.extend({isReady:!1,readyWait:1,ready:function(a){(a===!0?--r.readyWait:r.isReady)||(r.isReady=!0,a!==!0&&--r.readyWait>0||R.resolveWith(d,[r]))}}),r.ready.then=R.then;function S(){d.removeEventListener("DOMContentLoaded",S),
-a.removeEventListener("load",S),r.ready()}"complete"===d.readyState||"loading"!==d.readyState&&!d.documentElement.doScroll?a.setTimeout(r.ready):(d.addEventListener("DOMContentLoaded",S),a.addEventListener("load",S));var T=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if("object"===r.type(c)){e=!0;for(h in c)T(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0,r.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(r(a),c)})),b))for(;h1,null,!0)},removeData:function(a){return this.each(function(){X.remove(this,a)})}}),r.extend({queue:function(a,b,c){var d;if(a)return b=(b||"fx")+"queue",d=W.get(a,b),c&&(!d||Array.isArray(c)?d=W.access(a,b,r.makeArray(c)):d.push(c)),d||[]},dequeue:function(a,b){b=b||"fx";var c=r.queue(a,b),d=c.length,e=c.shift(),f=r._queueHooks(a,b),g=function(){r.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&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 W.get(a,c)||W.access(a,c,{empty:r.Callbacks("once memory").add(function(){W.remove(a,[b+"queue",c])})})}}),r.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.length\x20\t\r\n\f]+)/i,la=/^$|\/(?:java|ecma)script/i,ma={option:[1,""," "],thead:[1,""],col:[2,""],tr:[2,""],td:[3,""],_default:[0,"",""]};ma.optgroup=ma.option,ma.tbody=ma.tfoot=ma.colgroup=ma.caption=ma.thead,ma.th=ma.td;function na(a,b){var c;return c="undefined"!=typeof a.getElementsByTagName?a.getElementsByTagName(b||"*"):"undefined"!=typeof a.querySelectorAll?a.querySelectorAll(b||"*"):[],void 0===b||b&&B(a,b)?r.merge([a],c):c}function oa(a,b){for(var c=0,d=a.length;c-1)e&&e.push(f);else if(j=r.contains(f.ownerDocument,f),g=na(l.appendChild(f),"script"),j&&oa(g),c){k=0;while(f=g[k++])la.test(f.type||"")&&c.push(f)}return l}!function(){var a=d.createDocumentFragment(),b=a.appendChild(d.createElement("div")),c=d.createElement("input");c.setAttribute("type","radio"),c.setAttribute("checked","checked"),c.setAttribute("name","t"),b.appendChild(c),o.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,b.innerHTML="",o.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue}();var ra=d.documentElement,sa=/^key/,ta=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,ua=/^([^.]*)(?:\.(.+)|)/;function va(){return!0}function wa(){return!1}function xa(){try{return d.activeElement}catch(a){}}function ya(a,b,c,d,e,f){var g,h;if("object"==typeof b){"string"!=typeof c&&(d=d||c,c=void 0);for(h in b)ya(a,h,c,d,b[h],f);return a}if(null==d&&null==e?(e=c,d=c=void 0):null==e&&("string"==typeof c?(e=d,d=void 0):(e=d,d=c,c=void 0)),e===!1)e=wa;else if(!e)return a;return 1===f&&(g=e,e=function(a){return r().off(a),g.apply(this,arguments)},e.guid=g.guid||(g.guid=r.guid++)),a.each(function(){r.event.add(this,b,e,d,c)})}r.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q=W.get(a);if(q){c.handler&&(f=c,c=f.handler,e=f.selector),e&&r.find.matchesSelector(ra,e),c.guid||(c.guid=r.guid++),(i=q.events)||(i=q.events={}),(g=q.handle)||(g=q.handle=function(b){return"undefined"!=typeof r&&r.event.triggered!==b.type?r.event.dispatch.apply(a,arguments):void 0}),b=(b||"").match(L)||[""],j=b.length;while(j--)h=ua.exec(b[j])||[],n=p=h[1],o=(h[2]||"").split(".").sort(),n&&(l=r.event.special[n]||{},n=(e?l.delegateType:l.bindType)||n,l=r.event.special[n]||{},k=r.extend({type:n,origType:p,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&r.expr.match.needsContext.test(e),namespace:o.join(".")},f),(m=i[n])||(m=i[n]=[],m.delegateCount=0,l.setup&&l.setup.call(a,d,o,g)!==!1||a.addEventListener&&a.addEventListener(n,g)),l.add&&(l.add.call(a,k),k.handler.guid||(k.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,k):m.push(k),r.event.global[n]=!0)}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q=W.hasData(a)&&W.get(a);if(q&&(i=q.events)){b=(b||"").match(L)||[""],j=b.length;while(j--)if(h=ua.exec(b[j])||[],n=p=h[1],o=(h[2]||"").split(".").sort(),n){l=r.event.special[n]||{},n=(d?l.delegateType:l.bindType)||n,m=i[n]||[],h=h[2]&&new RegExp("(^|\\.)"+o.join("\\.(?:.*\\.|)")+"(\\.|$)"),g=f=m.length;while(f--)k=m[f],!e&&p!==k.origType||c&&c.guid!==k.guid||h&&!h.test(k.namespace)||d&&d!==k.selector&&("**"!==d||!k.selector)||(m.splice(f,1),k.selector&&m.delegateCount--,l.remove&&l.remove.call(a,k));g&&!m.length&&(l.teardown&&l.teardown.call(a,o,q.handle)!==!1||r.removeEvent(a,n,q.handle),delete i[n])}else for(n in i)r.event.remove(a,n+b[j],c,d,!0);r.isEmptyObject(i)&&W.remove(a,"handle events")}},dispatch:function(a){var b=r.event.fix(a),c,d,e,f,g,h,i=new Array(arguments.length),j=(W.get(this,"events")||{})[b.type]||[],k=r.event.special[b.type]||{};for(i[0]=b,c=1;c=1))for(;j!==this;j=j.parentNode||this)if(1===j.nodeType&&("click"!==a.type||j.disabled!==!0)){for(f=[],g={},c=0;c-1:r.find(e,this,null,[j]).length),g[e]&&f.push(d);f.length&&h.push({elem:j,handlers:f})}return j=this,i\x20\t\r\n\f]*)[^>]*)\/>/gi,Aa=/
-