diff --git a/.config/bundle-system.js b/.config/bundle-system.js deleted file mode 100755 index 1894fa21..00000000 --- a/.config/bundle-system.js +++ /dev/null @@ -1,103 +0,0 @@ -#!/usr/bin/env node -'use strict'; - -/*eslint no-console: 0, no-sync: 0*/ - -// System.js bundler -// simple and yet reusable system.js bundler -// bundles, minifies and gzips - -const fs = require('fs'); -const del = require('del'); -const path = require('path'); -const zlib = require('zlib'); -const async = require('async'); -const Builder = require('systemjs-builder'); - -const pkg = require('../package.json'); -const name = pkg.name; -const targetFolder = path.resolve('./bundles'); -console.log(targetFolder) -async.waterfall([ - cleanBundlesFolder, - getSystemJsBundleConfig, - buildSystemJs({minify: false, sourceMaps: true, mangle: false}), - getSystemJsBundleConfig, - buildSystemJs({minify: true, sourceMaps: true, mangle: false}), - gzipSystemJsBundle -], err => { - if (err) { - throw err; - } -}); - -function getSystemJsBundleConfig(cb) { - const config = { - baseURL: '..', - transpiler: 'typescript', - typescriptOptions: { - module: 'cjs' - }, - map: { - typescript: path.resolve('node_modules/typescript/lib/typescript.js'), - angular2: path.resolve('node_modules/angular2'), - rxjs: path.resolve('node_modules/rxjs') - }, - paths: { - '*': '*.js' - } - }; - - config.meta = ['angular2', 'rxjs'].reduce((memo, currentValue) => { - memo[path.resolve(`node_modules/${currentValue}/*`)] = {build: false}; - return memo; - }, {}); - config.meta.moment = {build: false}; - console.log(config.meta) - return cb(null, config); -} - -function cleanBundlesFolder(cb) { - return del(targetFolder) - .then(paths => { - console.log('Deleted files and folders:\n', paths.join('\n')); - cb(); - }); -} - -function buildSystemJs(options) { - return (config, cb) => { - const minPostFix = options && options.minify ? '.min' : ''; - const fileName = `${name}${minPostFix}.js`; - const dest = path.resolve(__dirname, targetFolder, fileName); - const builder = new Builder(); - - console.log('Bundling system.js file:', fileName, options); - builder.config(config); - return builder - .bundle([name, name].join('/'), dest, options) - .then(() => cb()) - .catch(cb); - }; -} - -function gzipSystemJsBundle(cb) { - const files = fs - .readdirSync(path.resolve(targetFolder)) - .map(file => path.resolve(targetFolder, file)) - .filter(file => fs.statSync(file).isFile()) - .filter(file => path.extname(file) !== 'gz'); - - return async.eachSeries(files, (file, gzipcb) => { - process.nextTick(() => { - console.log('Gzipping ', file); - const gzip = zlib.createGzip({level: 9}); - const inp = fs.createReadStream(file); - const out = fs.createWriteStream(`${file}.gz`); - - inp.on('end', () => gzipcb()); - inp.on('error', err => gzipcb(err)); - return inp.pipe(gzip).pipe(out); - }); - }, cb); -} diff --git a/.editorconfig b/.editorconfig index e20a9680..9b735217 100644 --- a/.editorconfig +++ b/.editorconfig @@ -1,11 +1,13 @@ -# http://editorconfig.org - +# Editor configuration, see http://editorconfig.org root = true [*] charset = utf-8 indent_style = space -indent_size = 2 -end_of_line = lf +indent_size = 4 insert_final_newline = true -trim_trailing_whitespace = true \ No newline at end of file +trim_trailing_whitespace = true + +[*.md] +max_line_length = off +trim_trailing_whitespace = false diff --git a/.eslintrc.json b/.eslintrc.json deleted file mode 100644 index f8afe993..00000000 --- a/.eslintrc.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "extends": "./node_modules/eslint-config-valorsoft/.eslintrc.json", - "env": { - "node": true - } -} diff --git a/.gitignore b/.gitignore index faf02f93..aca4f8b9 100644 --- a/.gitignore +++ b/.gitignore @@ -1,30 +1,47 @@ -# Dependency directory -# https://www.npmjs.org/doc/misc/npm-faq.html#should-i-check-my-node_modules-folder-into-git +# See http://help.github.com/ignore-files/ for more about ignoring files. + +# compiled output +dist.tgz +/dist +/dist-server +/tmp +/out-tsc +/build +.ng_build +.ng_pkg_build + +# dependencies /node_modules -npm-debug.log -# type script artifacts -/typings +# IDEs and editors +/.idea +.project +.classpath +.c9/ +*.launch +.settings/ +*.sublime-workspace -# WebStorm -.idea +# IDE - VSCode +.vscode/* +!.vscode/settings.json +!.vscode/tasks.json +!.vscode/launch.json +!.vscode/extensions.json -# ignore build and dist for now -/bundles -/demo-build -/dist +# misc +/.sass-cache +/connect.lock /coverage -/ts - +/libpeerconnection.log +npm-debug.log +testem.log +/typings -/demo/**/*.js -/demo/**/*.js.map -/demo/**/*.d.ts -/components/**/*.js -/components/**/*.js.map -/components/**/*.d.ts -ng2-select.js -ng2-select.js.map -ng2-select.d.ts +# e2e +/e2e/*.js +/e2e/*.map -/logs +# System Files +.DS_Store +Thumbs.db diff --git a/.npmignore b/.npmignore deleted file mode 100644 index 8f189f28..00000000 --- a/.npmignore +++ /dev/null @@ -1,24 +0,0 @@ -.idea -gulp-tasks -logs - -# typings -typings - -# testing -karma.conf.js -test.bundle.js -coverage - -# demo build -demo -demo-build -webpack.config.js - -#typescript sources -*.ts -*.js.map -!*.d.ts -/components/**/*.ts -!/components/**/*.d.ts - diff --git a/.travis.yml b/.travis.yml index 1e9bb205..e4a375cc 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,22 +1,77 @@ +sudo: required language: node_js -node_js: - - "5" - - "4" +node_js: "9" + +branches: + only: + - master + +notifications: + email: false + +git: + depth: 3 + submodules: false + +env: + global: + - LOGS_DIR=/tmp/logs + +stages: + - name: precache + - name: lint + - name: test +# - name: deploy before_install: -- npm install -g npm@latest - -script: -- npm run flow.install:typings -- npm test - -addons: - # sauce labs tunel connector (read more https://docs.travis-ci.com/user/sauce-connect/ ) - sauce_connect: true - firefox: "42.0" - apt: - sources: - - ubuntu-toolchain-r-test - # required by node-gyp to build some packages - packages: - - g++-4.8 + - export CHROME_BIN=chromium-browser + - export DISPLAY=:99.0 + - sh -e /etc/init.d/xvfb start + - rm -rf node_modules/ngx-select-ex + +install: + - npm install > /dev/null + - npm run build > /dev/null + +jobs: + fast_finish: true + include: +# precache npm and apt dependencies + - stage: precache + install: npm install > /dev/null + script: true + addons: + chrome: stable + apt: + sources: + - ubuntu-toolchain-r-test + # required by node-gyp to build some packages + packages: + - g++-4.8 +# lint code + - stage: lint + install: true + script: npm run lint +# test + - stage: test + script: npm run test-coverage + after_success: + - ./node_modules/.bin/codecov +# deploy +# - stage: deploy +# deploy: +# provider: npm +# email: $NPM_EMAIL +# api_key: $NPM_TOKEN +# on: +# branch: master +# tags: true + +# cache +cache: + apt: true + npm: true + directories: + - node_modules + + diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 00000000..c1c1d0b2 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,6 @@ +{ + "files.exclude": { + "node_modules/": true + }, + "files.insertFinalNewline": true +} diff --git a/LICENSE b/LICENSE index 901dcb19..bbba0337 100644 --- a/LICENSE +++ b/LICENSE @@ -1,7 +1,6 @@ The MIT License (MIT) -Copyright (c) 2015-2016 Dmitriy Shekhovtsov -Copyright (c) 2015-2016 Valor Software +Copyright (c) 2017-2018 Konstantin Polyntsov Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/README.md b/README.md index 54be6bce..046c8b93 100644 --- a/README.md +++ b/README.md @@ -1,61 +1,245 @@ -# Native UI Select Angular2 component ([demo](http://valor-software.com/ng2-select/)) -## ng2-select [![npm version](https://badge.fury.io/js/ng2-select.svg)](http://badge.fury.io/js/ng2-select) [![npm downloads](https://img.shields.io/npm/dm/ng2-select.svg)](https://npmjs.org/ng2-select) +# Native UI Select Angular component ([demo](https://optimistex.github.io/ngx-select-ex/)) -Follow me [![twitter](https://img.shields.io/twitter/follow/valorkin.svg?style=social&label=%20valorkin)](https://twitter.com/valorkin) to be notified about new releases. +## ngx-select-ex +[![npm version](https://badge.fury.io/js/ngx-select-ex.svg)](http://badge.fury.io/js/ngx-select-ex) +[![npm downloads](https://img.shields.io/npm/dm/ngx-select-ex.svg)](https://npmjs.org/ngx-select-ex) +[![Build Status](https://travis-ci.org/optimistex/ngx-select-ex.svg?branch=master)](https://travis-ci.org/optimistex/ngx-select-ex) [![Angular 2 Style Guide](https://mgechev.github.io/angular2-style-guide/images/badge.svg)](https://github.com/mgechev/angular2-style-guide) -[![Code Climate](https://codeclimate.com/github/valor-software/ng2-select/badges/gpa.svg)](https://codeclimate.com/github/valor-software/ng2-select) -[![Build Status](https://travis-ci.org/valor-software/ng2-select.svg?branch=master)](https://travis-ci.org/valor-software/ng2-select) -[![Join the chat at https://gitter.im/valor-software/ng2-bootstrap](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/valor-software/ng2-bootstrap?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) -[![devDependency Status](https://david-dm.org/valor-software/ng2-select/dev-status.svg)](https://david-dm.org/valor-software/ng2-select#info=devDependencies) -[![Throughput Graph](https://graphs.waffle.io/valor-software/ng2-select/throughput.svg)](https://waffle.io/valor-software/ng2-select/metrics) - - -## Quick start - -1. A recommended way to install ***ng2-select*** is through [npm](https://www.npmjs.com/search?q=ng2-select) package manager using the following command: - - `npm i ng2-select --save` - -2. Include `ng2-select.css` in your project - -3. More information regarding of using ***ng2-select*** is located in - [demo](http://valor-software.github.io/ng2-select/) and [demo sources](https://github.com/valor-software/ng2-select/tree/master/demo). +Native Angular component for Select + +- Requires [Angular](https://angular.io/) version 5 or higher! +- Compatible with [Angular](https://angular.io/) version 4. +- Compatible with [Bootstrap 3](https://getbootstrap.com/docs/3.3/) and **[Bootstrap 4](https://getbootstrap.com/)** + +## Usage + +1. Install **ngx-select-ex** through [npm](https://www.npmjs.com/package/ngx-select-ex) package manager using the following command: + + ```bash + npm i ngx-select-ex --save + ``` + + For usage with Angular 4 install using the following command: + + ```bash + npm i ngx-select-ex@ng4 --save + ``` + +2. Add NgxSelectModule into your AppModule class. app.module.ts would look like this: + + ```typescript + import {NgModule} from '@angular/core'; + import {BrowserModule} from '@angular/platform-browser'; + import {AppComponent} from './app.component'; + import { NgxSelectModule } from 'ngx-select-ex'; + + @NgModule({ + imports: [BrowserModule, NgxSelectModule], + declarations: [AppComponent], + bootstrap: [AppComponent], + }) + export class AppModule { + } + ``` + + If you want to change the default options then use next code: + ```typescript + import {NgModule} from '@angular/core'; + import {BrowserModule} from '@angular/platform-browser'; + import {AppComponent} from './app.component'; + import { NgxSelectModule, INgxSelectOptions } from 'ngx-select-ex'; + + const CustomSelectOptions: INgxSelectOptions = { // Check the interface for more options + optionValueField: 'id', + optionTextField: 'name' + }; + + @NgModule({ + imports: [BrowserModule, NgxSelectModule.forRoot(CustomSelectOptions)], + declarations: [AppComponent], + bootstrap: [AppComponent], + }) + export class AppModule { + } + ``` + +3. Include Bootstrap styles. + For example add to your index.html + + ```html + + ``` + +4. Add the tag `` into some html + + ```html + + ``` + +5. More information regarding of using **ngx-select-ex** is located in [demo](https://optimistex.github.io/ngx-select-ex/). ## API -### Properties +Any item can be `disabled` for prevent selection. For disable an item add the property `disabled` to the item. + +| Input | Type | Default | Description | +| -------- | -------- | -------- | ------------- | +| [items] | any[] | `[]` | Items array. Should be an array of objects with `id` and `text` properties. As convenience, you may also pass an array of strings, in which case the same string is used for both the ID and the text. Items may be nested by adding a `options` property to any item, whose value should be another array of items. Items that have children may omit to have an ID. | +| optionValueField | string | `'id'` | Provide an opportunity to change the name an `id` property of objects in the `items` | +| optionTextField | string | `'text'` | Provide an opportunity to change the name a `text` property of objects in the `items` | +| optGroupLabelField | string | `'label'` | Provide an opportunity to change the name a `label` property of objects with an `options` property in the `items` | +| optGroupOptionsField | string | `'options'` | Provide an opportunity to change the name of an `options` property of objects in the `items` | +| [multiple] | boolean | `false` | Mode of this component. If set `true` user can select more than one option | +| [allowClear] | boolean | `false` | Set to `true` to allow the selection to be cleared. This option only applies to single-value inputs | +| [placeholder] | string | `''` | Set to `true` Placeholder text to display when the element has no focus and selected items | +| [noAutoComplete] | boolean | `false` | Set to `true` Set to `true` to hide the search input. This option only applies to single-value inputs | +| [keepSelectedItems] | boolean | `false` | Storing the selected items when the item list is changed | +| [disabled] | boolean | `false` | When `true`, it specifies that the component should be disabled | +| [defaultValue] | any[] | `[]` | Use to set default value | +| autoSelectSingleOption | boolean | `false` | Auto select a non disabled single option | +| autoClearSearch | boolean | `false` | Auto clear a search text after select an option. Has effect for `multiple = true` | +| noResultsFound | string | `'No results found'` | The default text showed when a search has no results | +| size | `'small'/'default'/'large'` | `'default'` | Adding bootstrap classes: form-control-sm, input-sm, form-control-lg input-lg, btn-sm, btn-lg | +| searchCallback | `(search: string, item: INgxSelectOption) => boolean` | `null` | The callback function for custom filtering the select list | +| autoActiveOnMouseEnter | boolean | true | Automatically activate item when mouse enter on it | + +| Output | Description | +| ------------- | ------------- | +| (typed) | Fired on changing search input. Returns `string` with that value. | +| (focus) | Fired on select focus | +| (blur) | Fired on select blur | +| (open) | Fired on select dropdown open | +| (close) | Fired on select dropdown close | +| (select) | Fired on an item selected by user. Returns value of the selected item. | +| (remove) | Fired on an item removed by user. Returns value of the removed item. | +| (navigated) | Fired on navigate by the dropdown list. Returns: `INgxOptionNavigated`. | +| (selectionChanges) | Fired on change selected options. Returns: `INgxSelectOption[]`. | + +**Warning!** Although the component contains the `select` and the `remove` events, the better solution is using `valueChanges` of the `FormControl`. + +```typescript +import {Component} from '@angular/core'; +import {FormControl} from '@angular/forms'; + +@Component({ + selector: 'app-example', + template: `` +}) +class ExampleComponent { + public selectControl = new FormControl(); + + constructor() { + this.selectControl.valueChanges.subscribe(value => console.log(value)); + } +} +``` + +### Styles and customization + +Currently, the component contains CSS classes named within [BEM Methodology](https://en.bem.info/methodology/). +As well it contains the "Bootstrap classes". Recommended use BEM classes for style customization. + +List of styles for customization: + +- **`ngx-select`** - Main class of the component. +- **`ngx-select_multiple`** - Modifier of the multiple mode. It's available when the property multiple is true. +- **`ngx-select__disabled`** - Layer for the disabled mode. +- **`ngx-select__selected`** - The common container for displaying selected items. +- **`ngx-select__toggle`** - The toggle for single mode. It's available when the property multiple is false. +- **`ngx-select__placeholder`** - The placeholder item. It's available when the property multiple is false. +- **`ngx-select__selected-single`** - The selected item with single mode. It's available when the property multiple is false. +- **`ngx-select__selected-plural`** - The multiple selected item. It's available when the property multiple is true. +- **`ngx-select__allow-clear`** - The indicator that the selected single item can be removed. It's available while properties the multiple is false and the allowClear is true. +- **`ngx-select__toggle-buttons`** - The container of buttons such as the clear and the toggle. +- **`ngx-select__toggle-caret`** - The drop-down button of the single mode. It's available when the property multiple is false. +- **`ngx-select__clear`** - The button clear. +- **`ngx-select__clear-icon`** - The cross icon. +- **`ngx-select__search`** - The input field for full text lives searching. +- **`ngx-select__choices`** - The common container of items. +- **`ngx-select__item-group`** - The group of items. +- **`ngx-select__item`** - An item. +- **`ngx-select__item_disabled`** - Modifier of a disabled item. +- **`ngx-select__item_active`** - Modifier of the activated item. + +### Templates + +For extended rendering customisation you are can use the `ng-template`: + +```html + + + + + + ({{option.data.hex}}) + + + + + + ({{option.data.hex}}) + + + + Nothing found + + + +``` + +Also, you are can mix directives for reducing template: +```html + + + + + ({{option.data.hex}}) + + + + Not found + + +``` + +Description details of the directives: +1. `ngx-select-option-selected` - Customization rendering selected options. + Representing variables: + - `option` (implicit) - object of type `INgxSelectOption`. + - `text` - The text defined by the property `optionTextField`. + - `index` - Number value of index the option in the select list. Always equal to zero for the single select. +2. `ngx-select-option` - Customization rendering options in the dropdown menu. + Representing variables: + - `option` (implicit) - object of type `INgxSelectOption`. + - `text` - The highlighted text defined by the property `optionTextField`. It is highlighted in the search. + - `index` - Number value of index for the top level. + - `subIndex` - Number value of index for the second level. +3. `ngx-select-option-not-found` - Customization "not found text". Does not represent any variables. + +## Troubleshooting - - `items` - (`Array`) - Array of items from which to select. Should be an array of objects with `id` and `text` properties. - As convenience, you may also pass an array of strings, in which case the same string is used for both the ID and the text. - Items may be nested by adding a `children` property to any item, whose value should be another array of items. Items that have children may omit having an ID. - If `items` are specified, all items are expected to be available locally and all selection operations operate on this local array only. - If omitted, items are not available locally, and the `query` option should be provided to fetch data. - - `initData` (`?Array`) - Initial selection data to set. This should be an object with `id` and `text` properties in the case of input type 'Single', - or an array of such objects otherwise. This option is mutually exclusive with value. - - `allowClear` (`?boolean=false`) (*not yet supported*) - Set to `true` to allow the selection to be cleared. This option only applies to single-value inputs. - - `placeholder` (`?string=''`) - Placeholder text to display when the element has no focus and selected items. - - `disabled` (`?boolean=false`) - When `true`, it specifies that the component should be disabled. - - `multiple` - (`?boolean=false`) - Mode of this component. If set `true` user can select more than one option. - This option only applies to single-value inputs, as multiple-value inputs don't have the search input in the dropdown to begin with. +Please follow this guidelines when reporting bugs and feature requests: -### Events +1. Use [GitHub Issues](https://github.com/optimistex/ngx-select-ex/issues) board to report bugs and feature requests (not our email address) +2. Please **always** write steps to reproduce the error. That way we can focus on fixing the bug, not scratching our heads trying to reproduce it. - - `data` - it fires during all events of this component; returns `Array` - current selected data - - `selected` - it fires after a new option selected; returns object with `id` and `text` properties that describes a new option. - - `removed` - it fires after an option removed; returns object with `id` and `text` properties that describes a removed option. - - `typed` - it fires after changing of search input; returns `string` with that value. +Thanks for understanding! -# Troubleshooting +## Contribute -Please follow this guidelines when reporting bugs and feature requests: +- `npm start` - Run demo for local debugging. +- `npm test` - Run unit tests only once. Use `ng test` for running tests with files watching. +- `npm run build` - Build the demo & package for release & publishing. -1. Use [GitHub Issues](https://github.com/valor-software/ng2-select/issues) board to report bugs and feature requests (not our email address) -2. Please **always** write steps to reproduce the error. That way we can focus on fixing the bug, not scratching our heads trying to reproduce it. +After build you will be able: -Thanks for understanding! +- Install the component to another project by `npm install /path/to/ngx-select-ex/dist`. +- Link another project to the component `npm link /path/to/ngx-select-ex/dist`. **Warning!** Then use the flag [--preserve-symlinks](https://github.com/optimistex/ngx-select-ex/issues/4) + +Do not forget make a pull request to the [ngx-select-ex](https://github.com/optimistex/ngx-select-ex) ### License -The MIT License (see the [LICENSE](https://github.com/valor-software/ng2-select/blob/master/LICENSE) file for the full text) +The MIT License (see the [LICENSE](https://github.com/optimistex/ngx-select-ex/blob/master/LICENSE) file for the full text) diff --git a/angular.json b/angular.json new file mode 100644 index 00000000..3d172688 --- /dev/null +++ b/angular.json @@ -0,0 +1,127 @@ +{ + "$schema": "./node_modules/@angular/cli/lib/config/schema.json", + "version": 1, + "newProjectRoot": "projects", + "projects": { + "ngx-select-ex": { + "root": "", + "sourceRoot": "src", + "projectType": "application", + "prefix": "", + "schematics": {}, + "architect": { + "build": { + "builder": "@angular-devkit/build-angular:browser", + "options": { + "outputPath": "docs", + "index": "src/index.html", + "main": "src/main.ts", + "polyfills": "src/polyfills.ts", + "tsConfig": "src/tsconfig.app.json", + "assets": [ + "src/favicon.ico", + "src/assets" + ], + "styles": [ + "src/styles.css" + ], + "scripts": [] + }, + "configurations": { + "production": { + "fileReplacements": [ + { + "replace": "src/environments/environment.ts", + "with": "src/environments/environment.prod.ts" + } + ], + "optimization": true, + "outputHashing": "all", + "sourceMap": false, + "extractCss": true, + "namedChunks": false, + "aot": true, + "extractLicenses": true, + "vendorChunk": false, + "buildOptimizer": true + } + } + }, + "serve": { + "builder": "@angular-devkit/build-angular:dev-server", + "options": { + "browserTarget": "ngx-select-ex:build" + }, + "configurations": { + "production": { + "browserTarget": "ngx-select-ex:build:production" + } + } + }, + "extract-i18n": { + "builder": "@angular-devkit/build-angular:extract-i18n", + "options": { + "browserTarget": "ngx-select-ex:build" + } + }, + "test": { + "builder": "@angular-devkit/build-angular:karma", + "options": { + "main": "src/test.ts", + "polyfills": "src/polyfills.ts", + "tsConfig": "src/tsconfig.spec.json", + "karmaConfig": "src/karma.conf.js", + "styles": [ + "src/styles.css" + ], + "scripts": [], + "assets": [ + "src/favicon.ico", + "src/assets" + ] + } + }, + "lint": { + "builder": "@angular-devkit/build-angular:tslint", + "options": { + "tsConfig": [ + "src/tsconfig.app.json", + "src/tsconfig.spec.json" + ], + "exclude": [ + "**/node_modules/**" + ] + } + } + } + }, + "ngx-select-ex-e2e": { + "root": "e2e/", + "projectType": "application", + "architect": { + "e2e": { + "builder": "@angular-devkit/build-angular:protractor", + "options": { + "protractorConfig": "e2e/protractor.conf.js", + "devServerTarget": "ngx-select-ex:serve" + }, + "configurations": { + "production": { + "devServerTarget": "ngx-select-ex:serve:production" + } + } + }, + "lint": { + "builder": "@angular-devkit/build-angular:tslint", + "options": { + "tsConfig": "e2e/tsconfig.e2e.json", + "exclude": [ + "**/node_modules/**" + ] + } + } + } + } + }, + "defaultProject": "ngx-select-ex" +} diff --git a/components/css/ng2-select.css b/components/css/ng2-select.css deleted file mode 100644 index c0aac6a3..00000000 --- a/components/css/ng2-select.css +++ /dev/null @@ -1,273 +0,0 @@ - -/* Style when highlighting a search. */ -.ui-select-highlight { - font-weight: bold; -} - -.ui-select-offscreen { - clip: rect(0 0 0 0) !important; - width: 1px !important; - height: 1px !important; - border: 0 !important; - margin: 0 !important; - padding: 0 !important; - overflow: hidden !important; - position: absolute !important; - outline: 0 !important; - left: 0px !important; - top: 0px !important; -} - - -.ui-select-choices-row:hover { - background-color: #f5f5f5; -} - -/* Select2 theme */ - -/* Mark invalid Select2 */ -.ng-dirty.ng-invalid > a.select2-choice { - border-color: #D44950; -} - -.select2-result-single { - padding-left: 0; -} - -.select2-locked > .select2-search-choice-close{ - display:none; -} - -.select-locked > .ui-select-match-close{ - display:none; -} - -body > .select2-container.open { - z-index: 9999; /* The z-index Select2 applies to the select2-drop */ -} - -/* Handle up direction Select2 */ -.ui-select-container[theme="select2"].direction-up .ui-select-match { - border-radius: 4px; /* FIXME hardcoded value :-/ */ - border-top-left-radius: 0; - border-top-right-radius: 0; -} -.ui-select-container[theme="select2"].direction-up .ui-select-dropdown { - border-radius: 4px; /* FIXME hardcoded value :-/ */ - border-bottom-left-radius: 0; - border-bottom-right-radius: 0; - - border-top-width: 1px; /* FIXME hardcoded value :-/ */ - border-top-style: solid; - - box-shadow: 0 -4px 8px rgba(0, 0, 0, 0.25); - - margin-top: -4px; /* FIXME hardcoded value :-/ */ -} -.ui-select-container[theme="select2"].direction-up .ui-select-dropdown .select2-search { - margin-top: 4px; /* FIXME hardcoded value :-/ */ -} -.ui-select-container[theme="select2"].direction-up.select2-dropdown-open .ui-select-match { - border-bottom-color: #5897fb; -} - -/* Selectize theme */ - -/* Helper class to show styles when focus */ -.selectize-input.selectize-focus{ - border-color: #007FBB !important; -} - -/* Fix input width for Selectize theme */ -.selectize-control > .selectize-input > input { - width: 100%; -} - -/* Fix dropdown width for Selectize theme */ -.selectize-control > .selectize-dropdown { - width: 100%; -} - -/* Mark invalid Selectize */ -.ng-dirty.ng-invalid > div.selectize-input { - border-color: #D44950; -} - -/* Handle up direction Selectize */ -.ui-select-container[theme="selectize"].direction-up .ui-select-dropdown { - box-shadow: 0 -4px 8px rgba(0, 0, 0, 0.25); - - margin-top: -2px; /* FIXME hardcoded value :-/ */ -} - -/* Bootstrap theme */ - -/* Helper class to show styles when focus */ -.btn-default-focus { - color: #333; - background-color: #EBEBEB; - border-color: #ADADAD; - text-decoration: none; - outline: 5px auto -webkit-focus-ring-color; - outline-offset: -2px; - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(102, 175, 233, 0.6); -} - -.ui-select-bootstrap .ui-select-toggle { - position: relative; -} - -.ui-select-bootstrap .ui-select-toggle > .caret { - position: absolute; - height: 10px; - top: 50%; - right: 10px; - margin-top: -2px; -} - -/* Fix Bootstrap dropdown position when inside a input-group */ -.input-group > .ui-select-bootstrap.dropdown { - /* Instead of relative */ - position: static; -} - -.input-group > .ui-select-bootstrap > input.ui-select-search.form-control { - border-radius: 4px; /* FIXME hardcoded value :-/ */ - border-top-right-radius: 0; - border-bottom-right-radius: 0; -} -.input-group > .ui-select-bootstrap > input.ui-select-search.form-control.direction-up { - border-radius: 4px !important; /* FIXME hardcoded value :-/ */ - border-top-right-radius: 0 !important; - border-bottom-right-radius: 0 !important; -} - -.ui-select-bootstrap > .ui-select-match > .btn{ - /* Instead of center because of .btn */ - text-align: left !important; -} - -.ui-select-bootstrap > .ui-select-match > .caret { - position: absolute; - top: 45%; - right: 15px; -} - -.ui-disabled { - background-color: #eceeef ; - border-radius: 4px; - position: absolute; - width: 100%; - height: 100%; - z-index: 5; - opacity: 0.6; - top: 0; - left: 0; - cursor: not-allowed; -} - -/* See Scrollable Menu with Bootstrap 3 http://stackoverflow.com/questions/19227496 */ -.ui-select-bootstrap > .ui-select-choices { - width: 100%; - height: auto; - max-height: 200px; - overflow-x: hidden; - margin-top: -1px; -} - -body > .ui-select-bootstrap.open { - z-index: 1000; /* Standard Bootstrap dropdown z-index */ -} - -.ui-select-multiple.ui-select-bootstrap { - height: auto; - padding: 3px 3px 0 3px; -} - -.ui-select-multiple.ui-select-bootstrap input.ui-select-search { - background-color: transparent !important; /* To prevent double background when disabled */ - border: none; - outline: none; - height: 1.666666em; - margin-bottom: 3px; -} - -.ui-select-multiple.ui-select-bootstrap .ui-select-match .close { - font-size: 1.6em; - line-height: 0.75; -} - -.ui-select-multiple.ui-select-bootstrap .ui-select-match-item { - outline: 0; - margin: 0 3px 3px 0; -} - -.ui-select-multiple .ui-select-match-item { - position: relative; -} - -.ui-select-multiple .ui-select-match-item.dropping-before:before { - content: ""; - position: absolute; - top: 0; - right: 100%; - height: 100%; - margin-right: 2px; - border-left: 1px solid #428bca; -} - -.ui-select-multiple .ui-select-match-item.dropping-after:after { - content: ""; - position: absolute; - top: 0; - left: 100%; - height: 100%; - margin-left: 2px; - border-right: 1px solid #428bca; -} - -.ui-select-bootstrap .ui-select-choices-row>a { - display: block; - padding: 3px 20px; - clear: both; - font-weight: 400; - line-height: 1.42857143; - color: #333; - white-space: nowrap; -} - -.ui-select-bootstrap .ui-select-choices-row>a:hover, .ui-select-bootstrap .ui-select-choices-row>a:focus { - text-decoration: none; - color: #262626; - background-color: #f5f5f5; -} - -.ui-select-bootstrap .ui-select-choices-row.active>a { - color: #fff; - text-decoration: none; - outline: 0; - background-color: #428bca; -} - -.ui-select-bootstrap .ui-select-choices-row.disabled>a, -.ui-select-bootstrap .ui-select-choices-row.active.disabled>a { - color: #777; - cursor: not-allowed; - background-color: #fff; -} - -/* fix hide/show angular animation */ -.ui-select-match.ng-hide-add, -.ui-select-search.ng-hide-add { - display: none !important; -} - -/* Mark invalid Bootstrap */ -.ui-select-bootstrap.ng-dirty.ng-invalid > button.btn.ui-select-match { - border-color: #D44950; -} - -/* Handle up direction Bootstrap */ -.ui-select-container[theme="bootstrap"].direction-up .ui-select-dropdown { - box-shadow: 0 -4px 8px rgba(0, 0, 0, 0.25); -} diff --git a/components/select.ts b/components/select.ts deleted file mode 100644 index 43f35c6f..00000000 --- a/components/select.ts +++ /dev/null @@ -1,2 +0,0 @@ -import {Select} from './select/select'; -export const SELECT_DIRECTIVES:Array = [Select]; diff --git a/components/select/readme.md b/components/select/readme.md deleted file mode 100644 index fcf010b8..00000000 --- a/components/select/readme.md +++ /dev/null @@ -1,40 +0,0 @@ -### Usage -```typescript -import {SELECT_DIRECTIVES} from 'ng2-select/ng2-select'; -``` - -### Annotations -```typescript -// class Select -@Component({ - selector: 'ng-select', - properties: [ - 'allowClear', - 'placeholder', - 'items', - 'multiple', - 'showSearchInputInDropdown'] -}) -``` - -### Select properties - - - `items` - (`Array`) - Array of items from which to select. Should be an array of objects with `id` and `text` properties. - As convenience, you may also pass an array of strings, in which case the same string is used for both the ID and the text. - Items may be nested by adding a `children` property to any item, whose value should be another array of items. Items that have children may omit having an ID. - If `items` are specified, all items are expected to be available locally and all selection operations operate on this local array only. - If omitted, items are not available locally, and the `query` option should be provided to fetch data. - - `data` (`?Array`) - Initial selection data to set. This should be an object with `id` and `text` properties in the case of input type 'Single', - or an array of such objects otherwise. This option is mutually exclusive with value. - - `allowClear` (`?boolean=false`) (*not yet supported*) - Set to `true` to allow the selection to be cleared. This option only applies to single-value inputs. - - `placeholder` (`?string=''`) - Placeholder text to display when the element has no focus and selected items. - - `disabled` (`?boolean=false`) - When `true`, it specifies that the component should be disabled. - - `multiple` - (`?boolean=false`) - Mode of this component. If set `true` user can select more than one option. - This option only applies to single-value inputs, as multiple-value inputs don't have the search input in the dropdown to begin with. - -### Select events - - - `data` - it fires during all events of this component; returns `Array` - current selected data - - `selected` - it fires after a new option selected; returns object with `id` and `text` properties that describes a new option. - - `removed` - it fires after an option removed; returns object with `id` and `text` properties that describes a removed option. - - `typed` - it fires after changing of search input; returns `string` with that value. diff --git a/components/select/select-interfaces.ts b/components/select/select-interfaces.ts deleted file mode 100644 index a1f1aa13..00000000 --- a/components/select/select-interfaces.ts +++ /dev/null @@ -1,7 +0,0 @@ -export interface IOptionsBehavior { - first():any; - last():any; - prev():any; - next():any; - filter(query:RegExp):any; -} diff --git a/components/select/select-item.ts b/components/select/select-item.ts deleted file mode 100644 index eff1efb9..00000000 --- a/components/select/select-item.ts +++ /dev/null @@ -1,47 +0,0 @@ -export class SelectItem { - public id:string; - public text:string; - public children:Array; - public parent:SelectItem; - - constructor(source:any) { - if (typeof source === 'string') { - this.id = this.text = source; - } - - if (typeof source === 'object') { - this.id = source.id || source.text; - this.text = source.text; - - if (source.children && source.text) { - this.children = source.children.map((c:any) => { - let r:SelectItem = new SelectItem(c); - r.parent = this; - return r; - }); - this.text = source.text; - } - } - } - - public fillChildrenHash(optionsMap:Map, startIndex:number):number { - let i = startIndex; - this.children.map(child => { - optionsMap.set(child.id, i++); - }); - - return i; - } - - public hasChildren():boolean { - return this.children && this.children.length > 0; - } - - public getSimilar():SelectItem { - let r:SelectItem = new SelectItem(false); - r.id = this.id; - r.text = this.text; - r.parent = this.parent; - return r; - } -} diff --git a/components/select/select-pipes.ts b/components/select/select-pipes.ts deleted file mode 100644 index 4ffb6eda..00000000 --- a/components/select/select-pipes.ts +++ /dev/null @@ -1,39 +0,0 @@ -import {Pipe} from 'angular2/core'; - -@Pipe({ - name: 'hightlight' -}) -export class HightlightPipe { - transform(value:string, args:any[]) { - if (args.length < 1) { - return value; - } - - let query = args[0]; - - if ( query ) { - let tagRE = new RegExp('<[^<>]*>', 'ig'); - // get ist of tags - let tagList = value.match( tagRE ); - // Replace tags with token - let tmpValue = value.replace( tagRE, '$!$'); - // Replace search words - value = tmpValue.replace(new RegExp(this.escapeRegexp(query), 'gi'), '$&'); - // Reinsert HTML - for (let i = 0; value.indexOf('$!$') > -1; i++) { - value = value.replace('$!$', tagList[i]); - } - } - return value; - } - - private escapeRegexp(queryToEscape:string) { - return queryToEscape.replace(/([.?*+^$[\]\\(){}|-])/g, '\\$1'); - } -} - -export function stripTags(input:string) { - let tags = /<\/?([a-z][a-z0-9]*)\b[^>]*>/gi, - commentsAndPhpTags = /|<\?(?:php)?[\s\S]*?\?>/gi; - return input.replace(commentsAndPhpTags, '').replace(tags, ''); -} diff --git a/components/select/select.ts b/components/select/select.ts deleted file mode 100644 index 005e240b..00000000 --- a/components/select/select.ts +++ /dev/null @@ -1,630 +0,0 @@ -import { - Component, - Input, - Output, - EventEmitter, - ElementRef -} from 'angular2/core'; -import { - CORE_DIRECTIVES, - FORM_DIRECTIVES, - NgClass, - NgStyle -} from 'angular2/common'; -import {SelectItem} from './select-item'; -import { - HightlightPipe, - stripTags -} from './select-pipes'; -import {IOptionsBehavior} from './select-interfaces'; - -let optionsTemplate = ` - - - -`; - -@Component({ - selector: 'ng-select', - pipes: [HightlightPipe], - template: ` - - - - ` -}) -export class Select { - @Input() - allowClear:boolean = false; - @Input() - placeholder:string = ''; - @Input() - initData:Array = []; - @Input() - multiple:boolean = false; - - @Input() set items(value:Array) { - this._items = value; - this.itemObjects = this._items.map((item:any) => new SelectItem(item)); - } - - @Input() set disabled(value:boolean) { - this._disabled = value; - if (this._disabled === true) { - this.hideOptions(); - } - } - - @Output() - data:EventEmitter = new EventEmitter(); - @Output() - selected:EventEmitter = new EventEmitter(); - @Output() - removed:EventEmitter = new EventEmitter(); - @Output() - typed:EventEmitter = new EventEmitter(); - - public options:Array = []; - public itemObjects:Array = []; - public active:Array = []; - public activeOption:SelectItem; - private offSideClickHandler:any; - private inputMode:boolean = false; - private optionsOpened:boolean = false; - private behavior:IOptionsBehavior; - private inputValue:string = ''; - private _items:Array = []; - private _disabled:boolean = false; - - constructor(public element:ElementRef) { - } - - private focusToInput(value:string = '') { - setTimeout(() => { - let el = this.element.nativeElement.querySelector('div.ui-select-container > input'); - if (el) { - el.focus(); - el.value = value; - } - }, 0); - } - - private matchClick(e:any) { - if (this._disabled === true) { - return; - } - - this.inputMode = !this.inputMode; - if (this.inputMode === true && ((this.multiple === true && e) || this.multiple === false)) { - this.focusToInput(); - this.open(); - } - } - - private mainClick(e:any) { - if (this.inputMode === true || this._disabled === true) { - return; - } - - if (e.keyCode === 46) { - e.preventDefault(); - this.inputEvent(e); - return; - } - - if (e.keyCode === 8) { - e.preventDefault(); - this.inputEvent(e, true); - return; - } - - if (e.keyCode === 9 || e.keyCode === 13 || - e.keyCode === 27 || (e.keyCode >= 37 && e.keyCode <= 40)) { - e.preventDefault(); - return; - } - - this.inputMode = true; - let value = String - .fromCharCode(96 <= e.keyCode && e.keyCode <= 105 ? e.keyCode - 48 : e.keyCode) - .toLowerCase(); - this.focusToInput(value); - this.open(); - e.srcElement.value = value; - this.inputEvent(e); - } - - private open() { - this.options = this.itemObjects - .filter(option => (this.multiple === false || - this.multiple === true && !this.active.find(o => option.text === o.text))); - - if (this.options.length > 0) { - this.behavior.first(); - } - - this.optionsOpened = true; - } - - ngOnInit() { - this.behavior = this.itemObjects[0].hasChildren() ? - new ChildrenBehavior(this) : new GenericBehavior(this); - this.offSideClickHandler = this.getOffSideClickHandler(this); - document.addEventListener('click', this.offSideClickHandler); - - if (this.initData) { - this.active = this.initData.map(d => new SelectItem(d)); - this.data.emit(this.active); - } - } - - ngOnDestroy() { - document.removeEventListener('click', this.offSideClickHandler); - this.offSideClickHandler = null; - } - - private getOffSideClickHandler(context:any) { - return function (e:any) { - if (e.target && e.target.nodeName === 'INPUT' - && e.target.className && e.target.className.indexOf('ui-select') >= 0) { - return; - } - - if (e.srcElement.contains(context.element.nativeElement) - && e.srcElement && e.srcElement.className && - e.srcElement.className.indexOf('ui-select') >= 0) { - if (e.target.nodeName !== 'INPUT') { - context.matchClick(null); - } - return; - } - - context.inputMode = false; - context.optionsOpened = false; - }; - } - - public remove(item:SelectItem) { - if (this._disabled === true) { - return; - } - - if (this.multiple === true && this.active) { - let index = this.active.indexOf(item); - this.active.splice(index, 1); - this.data.next(this.active); - this.doEvent('removed', item); - } - - if (this.multiple === false) { - this.active = []; - this.data.next(this.active); - this.doEvent('removed', item); - } - } - - public doEvent(type:string, value:any) { - if ((this)[type] && value) { - (this)[type].next(value); - } - } - - private hideOptions() { - this.inputMode = false; - this.optionsOpened = false; - } - - public inputEvent(e:any, isUpMode:boolean = false) { - // tab - if (e.keyCode === 9) { - return; - } - - if (isUpMode && (e.keyCode === 37 || e.keyCode === 39 || e.keyCode === 38 || - e.keyCode === 40 || e.keyCode === 13)) { - e.preventDefault(); - return; - } - - // backspace - if (!isUpMode && e.keyCode === 8) { - let el:any = this.element.nativeElement - .querySelector('div.ui-select-container > input'); - - if (!el.value || el.value.length <= 0) { - if (this.active.length > 0) { - this.remove(this.active[this.active.length - 1]); - } - - e.preventDefault(); - } - } - - // esc - if (!isUpMode && e.keyCode === 27) { - this.hideOptions(); - this.element.nativeElement.children[0].focus(); - e.preventDefault(); - return; - } - - // del - if (!isUpMode && e.keyCode === 46) { - if (this.active.length > 0) { - this.remove(this.active[this.active.length - 1]); - } - e.preventDefault(); - } - - // left - if (!isUpMode && e.keyCode === 37 && this._items.length > 0) { - this.behavior.first(); - e.preventDefault(); - return; - } - - // right - if (!isUpMode && e.keyCode === 39 && this._items.length > 0) { - this.behavior.last(); - e.preventDefault(); - return; - } - - // up - if (!isUpMode && e.keyCode === 38) { - this.behavior.prev(); - e.preventDefault(); - return; - } - - // down - if (!isUpMode && e.keyCode === 40) { - this.behavior.next(); - e.preventDefault(); - return; - } - - // enter - if (!isUpMode && e.keyCode === 13) { - if (this.active.indexOf(this.activeOption) == -1) { - this.selectActiveMatch(); - this.behavior.next(); - } - e.preventDefault(); - return; - } - - if (e.srcElement) { - this.inputValue = e.srcElement.value; - this.behavior.filter(new RegExp(this.inputValue, 'ig')); - this.doEvent('typed', this.inputValue); - } - } - - private selectActiveMatch() { - this.selectMatch(this.activeOption); - } - - private selectMatch(value:SelectItem, e:Event = null) { - if (e) { - e.stopPropagation(); - e.preventDefault(); - } - - if (this.options.length <= 0) { - return; - } - - if (this.multiple === true) { - this.active.push(value); - this.data.next(this.active); - } - - if (this.multiple === false) { - this.active[0] = value; - this.data.next(this.active[0]); - } - - this.doEvent('selected', value); - this.hideOptions(); - - if (this.multiple === true) { - this.focusToInput(''); - } else { - this.focusToInput( stripTags(value.text) ); - this.element.nativeElement.querySelector('.ui-select-container').focus(); - } - } - - private selectActive(value:SelectItem) { - this.activeOption = value; - } - - private isActive(value:SelectItem):boolean { - return this.activeOption.text === value.text; - } -} - -export class Behavior { - public optionsMap:Map = new Map(); - - constructor(public actor:Select) { - } - - private getActiveIndex(optionsMap:Map = null):number { - let ai = this.actor.options.indexOf(this.actor.activeOption); - - if (ai < 0 && optionsMap !== null) { - ai = optionsMap.get(this.actor.activeOption.id); - } - - return ai; - } - - public fillOptionsMap() { - this.optionsMap.clear(); - let startPos = 0; - this.actor.itemObjects.map(i => { - startPos = i.fillChildrenHash(this.optionsMap, startPos); - }); - } - - public ensureHighlightVisible(optionsMap:Map = null) { - let container = this.actor.element.nativeElement.querySelector('.ui-select-choices-content'); - - if (!container) { - return; - } - - let choices = container.querySelectorAll('.ui-select-choices-row'); - if (choices.length < 1) { - return; - } - - let activeIndex = this.getActiveIndex(optionsMap); - if (activeIndex < 0) { - return; - } - - let highlighted:any = choices[activeIndex]; - if (!highlighted) { - return; - } - - let posY:number = highlighted.offsetTop + highlighted.clientHeight - container.scrollTop; - let height:number = container.offsetHeight; - - if (posY > height) { - container.scrollTop += posY - height; - } else if (posY < highlighted.clientHeight) { - container.scrollTop -= highlighted.clientHeight - posY; - } - } -} - -export class GenericBehavior extends Behavior implements IOptionsBehavior { - constructor(public actor:Select) { - super(actor); - } - - public first() { - this.actor.activeOption = this.actor.options[0]; - super.ensureHighlightVisible(); - } - - public last() { - this.actor.activeOption = this.actor.options[this.actor.options.length - 1]; - super.ensureHighlightVisible(); - } - - public prev() { - let index = this.actor.options.indexOf(this.actor.activeOption); - this.actor.activeOption = this.actor - .options[index - 1 < 0 ? this.actor.options.length - 1 : index - 1]; - super.ensureHighlightVisible(); - } - - public next() { - let index = this.actor.options.indexOf(this.actor.activeOption); - this.actor.activeOption = this.actor - .options[index + 1 > this.actor.options.length - 1 ? 0 : index + 1]; - super.ensureHighlightVisible(); - } - - public filter(query:RegExp) { - let options = this.actor.itemObjects - .filter(option => stripTags(option.text).match(query) && - (this.actor.multiple === false || - (this.actor.multiple === true && - this.actor.active.indexOf(option) < 0))); - this.actor.options = options; - - if (this.actor.options.length > 0) { - this.actor.activeOption = this.actor.options[0]; - super.ensureHighlightVisible(); - } - } - -} - -export class ChildrenBehavior extends Behavior implements IOptionsBehavior { - constructor(public actor:Select) { - super(actor); - } - - public first() { - this.actor.activeOption = this.actor.options[0].children[0]; - this.fillOptionsMap(); - this.ensureHighlightVisible(this.optionsMap); - } - - public last() { - this.actor.activeOption = - this.actor - .options[this.actor.options.length - 1] - .children[this.actor.options[this.actor.options.length - 1].children.length - 1]; - this.fillOptionsMap(); - this.ensureHighlightVisible(this.optionsMap); - } - - public prev() { - let indexParent = this.actor.options - .findIndex(a => this.actor.activeOption.parent && this.actor.activeOption.parent.id === a.id); - let index = this.actor.options[indexParent].children - .findIndex(a => this.actor.activeOption && this.actor.activeOption.id === a.id); - this.actor.activeOption = this.actor.options[indexParent].children[index - 1]; - - if (!this.actor.activeOption) { - if (this.actor.options[indexParent - 1]) { - this.actor.activeOption = this.actor - .options[indexParent - 1] - .children[this.actor.options[indexParent - 1].children.length - 1]; - } - } - - if (!this.actor.activeOption) { - this.last(); - } - - this.fillOptionsMap(); - this.ensureHighlightVisible(this.optionsMap); - } - - public next() { - let indexParent = this.actor.options - .findIndex(a => this.actor.activeOption.parent && this.actor.activeOption.parent.id === a.id); - let index = this.actor.options[indexParent].children - .findIndex(a => this.actor.activeOption && this.actor.activeOption.id === a.id); - this.actor.activeOption = this.actor.options[indexParent].children[index + 1]; - if (!this.actor.activeOption) { - if (this.actor.options[indexParent + 1]) { - this.actor.activeOption = this.actor.options[indexParent + 1].children[0]; - } - } - - if (!this.actor.activeOption) { - this.first(); - } - - this.fillOptionsMap(); - this.ensureHighlightVisible(this.optionsMap); - } - - public filter(query:RegExp) { - let options:Array = []; - let optionsMap:Map = new Map(); - let startPos = 0; - - for (let si of this.actor.itemObjects) { - let children:Array = si.children.filter(option => query.test(option.text)); - startPos = si.fillChildrenHash(optionsMap, startPos); - - if (children.length > 0) { - let newSi = si.getSimilar(); - newSi.children = children; - options.push(newSi); - } - } - - this.actor.options = options; - - if (this.actor.options.length > 0) { - this.actor.activeOption = this.actor.options[0].children[0]; - super.ensureHighlightVisible(optionsMap); - } - } -} - - diff --git a/demo/assets/css/ng2-select.css b/demo/assets/css/ng2-select.css deleted file mode 100644 index c0aac6a3..00000000 --- a/demo/assets/css/ng2-select.css +++ /dev/null @@ -1,273 +0,0 @@ - -/* Style when highlighting a search. */ -.ui-select-highlight { - font-weight: bold; -} - -.ui-select-offscreen { - clip: rect(0 0 0 0) !important; - width: 1px !important; - height: 1px !important; - border: 0 !important; - margin: 0 !important; - padding: 0 !important; - overflow: hidden !important; - position: absolute !important; - outline: 0 !important; - left: 0px !important; - top: 0px !important; -} - - -.ui-select-choices-row:hover { - background-color: #f5f5f5; -} - -/* Select2 theme */ - -/* Mark invalid Select2 */ -.ng-dirty.ng-invalid > a.select2-choice { - border-color: #D44950; -} - -.select2-result-single { - padding-left: 0; -} - -.select2-locked > .select2-search-choice-close{ - display:none; -} - -.select-locked > .ui-select-match-close{ - display:none; -} - -body > .select2-container.open { - z-index: 9999; /* The z-index Select2 applies to the select2-drop */ -} - -/* Handle up direction Select2 */ -.ui-select-container[theme="select2"].direction-up .ui-select-match { - border-radius: 4px; /* FIXME hardcoded value :-/ */ - border-top-left-radius: 0; - border-top-right-radius: 0; -} -.ui-select-container[theme="select2"].direction-up .ui-select-dropdown { - border-radius: 4px; /* FIXME hardcoded value :-/ */ - border-bottom-left-radius: 0; - border-bottom-right-radius: 0; - - border-top-width: 1px; /* FIXME hardcoded value :-/ */ - border-top-style: solid; - - box-shadow: 0 -4px 8px rgba(0, 0, 0, 0.25); - - margin-top: -4px; /* FIXME hardcoded value :-/ */ -} -.ui-select-container[theme="select2"].direction-up .ui-select-dropdown .select2-search { - margin-top: 4px; /* FIXME hardcoded value :-/ */ -} -.ui-select-container[theme="select2"].direction-up.select2-dropdown-open .ui-select-match { - border-bottom-color: #5897fb; -} - -/* Selectize theme */ - -/* Helper class to show styles when focus */ -.selectize-input.selectize-focus{ - border-color: #007FBB !important; -} - -/* Fix input width for Selectize theme */ -.selectize-control > .selectize-input > input { - width: 100%; -} - -/* Fix dropdown width for Selectize theme */ -.selectize-control > .selectize-dropdown { - width: 100%; -} - -/* Mark invalid Selectize */ -.ng-dirty.ng-invalid > div.selectize-input { - border-color: #D44950; -} - -/* Handle up direction Selectize */ -.ui-select-container[theme="selectize"].direction-up .ui-select-dropdown { - box-shadow: 0 -4px 8px rgba(0, 0, 0, 0.25); - - margin-top: -2px; /* FIXME hardcoded value :-/ */ -} - -/* Bootstrap theme */ - -/* Helper class to show styles when focus */ -.btn-default-focus { - color: #333; - background-color: #EBEBEB; - border-color: #ADADAD; - text-decoration: none; - outline: 5px auto -webkit-focus-ring-color; - outline-offset: -2px; - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(102, 175, 233, 0.6); -} - -.ui-select-bootstrap .ui-select-toggle { - position: relative; -} - -.ui-select-bootstrap .ui-select-toggle > .caret { - position: absolute; - height: 10px; - top: 50%; - right: 10px; - margin-top: -2px; -} - -/* Fix Bootstrap dropdown position when inside a input-group */ -.input-group > .ui-select-bootstrap.dropdown { - /* Instead of relative */ - position: static; -} - -.input-group > .ui-select-bootstrap > input.ui-select-search.form-control { - border-radius: 4px; /* FIXME hardcoded value :-/ */ - border-top-right-radius: 0; - border-bottom-right-radius: 0; -} -.input-group > .ui-select-bootstrap > input.ui-select-search.form-control.direction-up { - border-radius: 4px !important; /* FIXME hardcoded value :-/ */ - border-top-right-radius: 0 !important; - border-bottom-right-radius: 0 !important; -} - -.ui-select-bootstrap > .ui-select-match > .btn{ - /* Instead of center because of .btn */ - text-align: left !important; -} - -.ui-select-bootstrap > .ui-select-match > .caret { - position: absolute; - top: 45%; - right: 15px; -} - -.ui-disabled { - background-color: #eceeef ; - border-radius: 4px; - position: absolute; - width: 100%; - height: 100%; - z-index: 5; - opacity: 0.6; - top: 0; - left: 0; - cursor: not-allowed; -} - -/* See Scrollable Menu with Bootstrap 3 http://stackoverflow.com/questions/19227496 */ -.ui-select-bootstrap > .ui-select-choices { - width: 100%; - height: auto; - max-height: 200px; - overflow-x: hidden; - margin-top: -1px; -} - -body > .ui-select-bootstrap.open { - z-index: 1000; /* Standard Bootstrap dropdown z-index */ -} - -.ui-select-multiple.ui-select-bootstrap { - height: auto; - padding: 3px 3px 0 3px; -} - -.ui-select-multiple.ui-select-bootstrap input.ui-select-search { - background-color: transparent !important; /* To prevent double background when disabled */ - border: none; - outline: none; - height: 1.666666em; - margin-bottom: 3px; -} - -.ui-select-multiple.ui-select-bootstrap .ui-select-match .close { - font-size: 1.6em; - line-height: 0.75; -} - -.ui-select-multiple.ui-select-bootstrap .ui-select-match-item { - outline: 0; - margin: 0 3px 3px 0; -} - -.ui-select-multiple .ui-select-match-item { - position: relative; -} - -.ui-select-multiple .ui-select-match-item.dropping-before:before { - content: ""; - position: absolute; - top: 0; - right: 100%; - height: 100%; - margin-right: 2px; - border-left: 1px solid #428bca; -} - -.ui-select-multiple .ui-select-match-item.dropping-after:after { - content: ""; - position: absolute; - top: 0; - left: 100%; - height: 100%; - margin-left: 2px; - border-right: 1px solid #428bca; -} - -.ui-select-bootstrap .ui-select-choices-row>a { - display: block; - padding: 3px 20px; - clear: both; - font-weight: 400; - line-height: 1.42857143; - color: #333; - white-space: nowrap; -} - -.ui-select-bootstrap .ui-select-choices-row>a:hover, .ui-select-bootstrap .ui-select-choices-row>a:focus { - text-decoration: none; - color: #262626; - background-color: #f5f5f5; -} - -.ui-select-bootstrap .ui-select-choices-row.active>a { - color: #fff; - text-decoration: none; - outline: 0; - background-color: #428bca; -} - -.ui-select-bootstrap .ui-select-choices-row.disabled>a, -.ui-select-bootstrap .ui-select-choices-row.active.disabled>a { - color: #777; - cursor: not-allowed; - background-color: #fff; -} - -/* fix hide/show angular animation */ -.ui-select-match.ng-hide-add, -.ui-select-search.ng-hide-add { - display: none !important; -} - -/* Mark invalid Bootstrap */ -.ui-select-bootstrap.ng-dirty.ng-invalid > button.btn.ui-select-match { - border-color: #D44950; -} - -/* Handle up direction Bootstrap */ -.ui-select-container[theme="bootstrap"].direction-up .ui-select-dropdown { - box-shadow: 0 -4px 8px rgba(0, 0, 0, 0.25); -} diff --git a/demo/assets/css/prism-okaidia.css b/demo/assets/css/prism-okaidia.css deleted file mode 100644 index 0fac6828..00000000 --- a/demo/assets/css/prism-okaidia.css +++ /dev/null @@ -1,119 +0,0 @@ -/** - * okaidia theme for JavaScript, CSS and HTML - * Loosely based on Monokai textmate theme by http://www.monokai.nl/ - * @author ocodia - */ - -code[class*="language-"], -pre[class*="language-"] { - color: #f8f8f2; - text-shadow: 0 1px rgba(0, 0, 0, 0.3); - font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace; - direction: ltr; - text-align: left; - white-space: pre; - word-spacing: normal; - word-break: normal; - line-height: 1.5; - - -moz-tab-size: 4; - -o-tab-size: 4; - tab-size: 4; - - -webkit-hyphens: none; - -moz-hyphens: none; - -ms-hyphens: none; - hyphens: none; -} - -/* Code blocks */ -pre[class*="language-"] { - padding: 1em; - margin: .5em 0; - overflow: auto; - border-radius: 0.3em; -} - -:not(pre) > code[class*="language-"], -pre[class*="language-"] { - background: #272822; -} - -/* Inline code */ -:not(pre) > code[class*="language-"] { - padding: .1em; - border-radius: .3em; -} - -.token.comment, -.token.prolog, -.token.doctype, -.token.cdata { - color: slategray; -} - -.token.punctuation { - color: #f8f8f2; -} - -.namespace { - opacity: .7; -} - -.token.property, -.token.tag, -.token.constant, -.token.symbol, -.token.deleted { - color: #f92672; -} - -.token.boolean, -.token.number { - color: #ae81ff; -} - -.token.selector, -.token.attr-name, -.token.string, -.token.char, -.token.builtin, -.token.inserted { - color: #a6e22e; -} - -.token.operator, -.token.entity, -.token.url, -.language-css .token.string, -.style .token.string, -.token.variable { - color: #f8f8f2; -} - -.token.atrule, -.token.attr-value, -.token.function { - color: #e6db74; -} - -.token.keyword { - color: #66d9ef; -} - -.token.regex, -.token.important { - color: #fd971f; -} - -.token.important, -.token.bold { - font-weight: bold; -} -.token.italic { - font-style: italic; -} - -.token.entity { - cursor: help; -} diff --git a/demo/assets/css/style.css b/demo/assets/css/style.css deleted file mode 100644 index 224171bb..00000000 --- a/demo/assets/css/style.css +++ /dev/null @@ -1,278 +0,0 @@ -/*! - * Bootstrap Docs (http://getbootstrap.com) - * Copyright 2011-2014 Twitter, Inc. - * Licensed under the Creative Commons Attribution 3.0 Unported License. For - * details, see http://creativecommons.org/licenses/by/3.0/. - */ - -.h1, .h2, .h3, h1, h2, h3 { - margin-top: 20px; - margin-bottom: 10px; -} - -.h1, h1 { - font-size: 36px; -} - -.btn-group-lg > .btn, .btn-lg { - font-size: 18px; -} - -section { - padding-top: 30px; -} - -.bd-pageheader { - margin-top: 51px; -} - -.page-header { - padding-bottom: 9px; - margin: 40px 0 20px; - border-bottom: 1px solid #eee; -} - -.navbar-default .navbar-nav > li > a { - color: #777; -} - -.navbar { - padding: 0; -} - -.navbar-nav .nav-item { - margin-left: 0 !important; -} - -.nav > li > a { - position: relative; - display: block; - padding: 10px 15px; -} - -.nav .navbar-brand { - float: left; - height: 50px; - padding: 15px 15px; - font-size: 18px; - line-height: 20px; - margin-right: 0 !important; -} - -.navbar-brand { - color: #777; - float: left; - height: 50px; - padding: 15px 15px; - font-size: 18px; - line-height: 20px; -} - -.navbar-toggler { - margin-top: 8px; - margin-right: 15px; -} - -.navbar-default .navbar-nav > li > a:focus, .navbar-default .navbar-nav > li > a:hover { - color: #333; - background-color: transparent; -} - -.bd-pageheader, .bs-docs-masthead { - position: relative; - padding: 30px 0; - color: #cdbfe3; - text-align: center; - text-shadow: 0 1px 0 rgba(0, 0, 0, .1); - background-color: #6f5499; - background-image: -webkit-gradient(linear, left top, left bottom, from(#563d7c), to(#6f5499)); - background-image: -webkit-linear-gradient(top, #563d7c 0, #6f5499 100%); - background-image: -o-linear-gradient(top, #563d7c 0, #6f5499 100%); - background-image: linear-gradient(to bottom, #563d7c 0, #6f5499 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#563d7c', endColorstr='#6F5499', GradientType=0); - background-repeat: repeat-x; -} - -.bd-pageheader { - margin-bottom: 40px; - font-size: 20px; -} - -.bd-pageheader h1 { - margin-top: 0; - color: #fff; -} - -.bd-pageheader p { - margin-bottom: 0; - font-weight: 300; - line-height: 1.4; -} - -.bd-pageheader .btn { - margin: 10px 0; -} - -.scrollable-menu .nav-link { - color: #337ab7; - font-size: 14px; -} - -.scrollable-menu .nav-link:hover { - color: #23527c; - background-color: #eee; -} - -@media (min-width: 992px) { - .bd-pageheader h1, .bd-pageheader p { - margin-right: 380px; - } -} - -@media (min-width: 768px) { - .bd-pageheader { - padding-top: 60px; - padding-bottom: 60px; - font-size: 24px; - text-align: left; - } - - .bd-pageheader h1 { - font-size: 60px; - line-height: 1; - } - - .navbar-nav > li > a.nav-link { - padding-top: 15px; - padding-bottom: 15px; - font-size: 14px; - } - - .navbar > .container .navbar-brand, .navbar > .container-fluid .navbar-brand { - margin-left: -15px; - } -} - -@media (max-width: 767px) { - .hidden-xs { - display: none !important; - } - - .navbar .container { - width: 100%; - max-width: 100%; - } - .navbar .container, - .navbar .container .navbar-header { - padding: 0; - margin: 0; - } -} - -@media (max-width: 400px) { - code, kbd { - font-size: 60%; - } -} - -/** - * VH and VW units can cause issues on iOS devices: http://caniuse.com/#feat=viewport-units - * - * To overcome this, create media queries that target the width, height, and orientation of iOS devices. - * It isn't optimal, but there is really no other way to solve the problem. In this example, I am fixing - * the height of element '.scrollable-menu' —which is a full width and height cover image. - * - * iOS Resolution Quick Reference: http://www.iosres.com/ - */ - -.scrollable-menu { - height: 90vh !important; - width: 100vw; - overflow-x: hidden; - padding: 0 0 20px; -} - -/** - * iPad with portrait orientation. - */ -@media all and (device-width: 768px) and (device-height: 1024px) and (orientation: portrait) { - .scrollable-menu { - height: 1024px !important; - } -} - -/** - * iPad with landscape orientation. - */ -@media all and (device-width: 768px) and (device-height: 1024px) and (orientation: landscape) { - .scrollable-menu { - height: 768px !important; - } -} - -/** - * iPhone 5 - * You can also target devices with aspect ratio. - */ -@media screen and (device-aspect-ratio: 40/71) { - .scrollable-menu { - height: 500px !important; - } -} - -.navbar-default .navbar-toggle .icon-bar { - background-color: #888; -} - -.navbar-toggle:focus { - outline: 0 -} - -.navbar-toggle .icon-bar { - display: block; - width: 22px; - height: 2px; - border-radius: 1px -} - -.navbar-toggle .icon-bar + .icon-bar { - margin-top: 4px -} - -pre { - white-space: pre-wrap; /* CSS 3 */ - white-space: -moz-pre-wrap; /* Mozilla, since 1999 */ - white-space: -pre-wrap; /* Opera 4-6 */ - white-space: -o-pre-wrap; /* Opera 7 */ - word-wrap: break-word; /* Internet Explorer 5.5+ */ -} - -.chart-legend, .bar-legend, .line-legend, .pie-legend, .radar-legend, .polararea-legend, .doughnut-legend { - list-style-type: none; - margin-top: 5px; - text-align: center; - -webkit-padding-start: 0; - -moz-padding-start: 0; - padding-left: 0 -} - -.chart-legend li, .bar-legend li, .line-legend li, .pie-legend li, .radar-legend li, .polararea-legend li, .doughnut-legend li { - display: inline-block; - white-space: nowrap; - position: relative; - margin-bottom: 4px; - border-radius: 5px; - padding: 2px 8px 2px 28px; - font-size: smaller; - cursor: default -} - -.chart-legend li span, .bar-legend li span, .line-legend li span, .pie-legend li span, .radar-legend li span, .polararea-legend li span, .doughnut-legend li span { - display: block; - position: absolute; - left: 0; - top: 0; - width: 20px; - height: 20px; - border-radius: 5px -} \ No newline at end of file diff --git a/demo/components/select-section.ts b/demo/components/select-section.ts deleted file mode 100644 index 6f432b14..00000000 --- a/demo/components/select-section.ts +++ /dev/null @@ -1,99 +0,0 @@ -import {Component} from 'angular2/core'; -import {CORE_DIRECTIVES} from 'angular2/common'; - -import {TAB_DIRECTIVES} from 'ng2-bootstrap/ng2-bootstrap'; - -import {SingleDemo} from './select/single-demo'; -import {MultipleDemo} from './select/multiple-demo'; -import {ChildrenDemo} from './select/children-demo'; -import {RichDemo} from './select/rich-demo'; - -let name = 'Select'; -// webpack html imports -let doc = require('../../components/select/readme.md'); - -let tabDesc:Array = [ - { - heading: 'Single', - ts: require('!!prismjs?lang=typescript!./select/single-demo.ts'), - html: require('!!prismjs?lang=markup!./select/single-demo.html') - }, - { - heading: 'Multiple', - ts: require('!!prismjs?lang=typescript!./select/multiple-demo.ts'), - html: require('!!prismjs?lang=markup!./select/multiple-demo.html') - }, - { - heading: 'Children', - ts: require('!!prismjs?lang=typescript!./select/children-demo.ts'), - html: require('!!prismjs?lang=markup!./select/children-demo.html') - }, - { - heading: 'Rich', - ts: require('!!prismjs?lang=typescript!./select/rich-demo.ts'), - html: require('!!prismjs?lang=markup!./select/rich-demo.html') - } -]; - -let tabsContent:string = ``; -tabDesc.forEach(desc => { - tabsContent += ` -
- <${desc.heading.toLowerCase()}-demo> - -
-
{{ currentHeading }}
- -
-
- -
- - -
-
${desc.html}
-
-
- -
-
-              ${desc.ts}
-            
-
-
-
-
-
-
- `; -}); - -@Component({ - selector: 'select-section', - template: ` -
-
- - - ${tabsContent} - - -
- -
-

API

-
${doc}
-
-
- `, - directives: [SingleDemo, MultipleDemo, ChildrenDemo, RichDemo, TAB_DIRECTIVES, CORE_DIRECTIVES] -}) -export class SelectSection { - public currentHeading:string = 'Single'; - - public select_zzz(e:any) { - if (e.heading) { - this.currentHeading = e.heading; - } - } -} diff --git a/demo/components/select/children-demo.html b/demo/components/select/children-demo.html deleted file mode 100644 index e38dade4..00000000 --- a/demo/components/select/children-demo.html +++ /dev/null @@ -1,20 +0,0 @@ -
-

Select a city by country

- -

-
{{value.text}}
-
- -
-
diff --git a/demo/components/select/children-demo.ts b/demo/components/select/children-demo.ts deleted file mode 100644 index a825a5b6..00000000 --- a/demo/components/select/children-demo.ts +++ /dev/null @@ -1,216 +0,0 @@ -import {Component} from 'angular2/core'; -import {CORE_DIRECTIVES, FORM_DIRECTIVES, NgClass} from 'angular2/common'; -import {ButtonCheckbox} from 'ng2-bootstrap/ng2-bootstrap'; - -import {SELECT_DIRECTIVES} from '../../../ng2-select'; - -// webpack html imports -let template = require('./children-demo.html'); - -@Component({ - selector: 'children-demo', - template: template, - directives: [SELECT_DIRECTIVES, NgClass, CORE_DIRECTIVES, FORM_DIRECTIVES, ButtonCheckbox] -}) -export class ChildrenDemo { - private value:any = {}; - private _disabledV:string = '0'; - private disabled:boolean = false; - private items:Array = [ - { - text: 'Austria', - children: [ - {id: 54, text: 'Vienna'} - ] - }, - { - text: 'Belgium', - children: [ - {id: 2, text: 'Antwerp'}, - {id: 9, text: 'Brussels'} - ] - }, - { - text: 'Bulgaria', - children: [ - {id: 48, text: 'Sofia'} - ] - }, - { - text: 'Croatia', - children: [ - {id: 58, text: 'Zagreb'} - ] - }, - { - text: 'Czech Republic', - children: [ - {id: 42, text: 'Prague'} - ] - }, - { - text: 'Denmark', - children: [ - {id: 13, text: 'Copenhagen'} - ] - }, - { - text: 'England', - children: [ - {id: 6, text: 'Birmingham'}, - {id: 7, text: 'Bradford'}, - {id: 26, text: 'Leeds'}, - {id: 30, text: 'London'}, - {id: 34, text: 'Manchester'}, - {id: 47, text: 'Sheffield'} - ] - }, - { - text: 'Finland', - children: [ - {id: 25, text: 'Helsinki'} - ] - }, - { - text: 'France', - children: [ - {id: 35, text: 'Marseille'}, - {id: 40, text: 'Paris'} - ] - }, - { - text: 'Germany', - children: [ - {id: 5, text: 'Berlin'}, - {id: 8, text: 'Bremen'}, - {id: 12, text: 'Cologne'}, - {id: 14, text: 'Dortmund'}, - {id: 15, text: 'Dresden'}, - {id: 17, text: 'Düsseldorf'}, - {id: 18, text: 'Essen'}, - {id: 19, text: 'Frankfurt'}, - {id: 23, text: 'Hamburg'}, - {id: 24, text: 'Hannover'}, - {id: 27, text: 'Leipzig'}, - {id: 37, text: 'Munich'}, - {id: 50, text: 'Stuttgart'} - ] - }, - { - text: 'Greece', - children: [ - {id: 3, text: 'Athens'} - ] - }, - { - text: 'Hungary', - children: [ - {id: 11, text: 'Budapest'} - ] - }, - { - text: 'Ireland', - children: [ - {id: 16, text: 'Dublin'} - ] - }, - { - text: 'Italy', - children: [ - {id: 20, text: 'Genoa'}, - {id: 36, text: 'Milan'}, - {id: 38, text: 'Naples'}, - {id: 39, text: 'Palermo'}, - {id: 44, text: 'Rome'}, - {id: 52, text: 'Turin'} - ] - }, - { - text: 'Latvia', - children: [ - {id: 43, text: 'Riga'} - ] - }, - { - text: 'Lithuania', - children: [ - {id: 55, text: 'Vilnius'} - ] - }, - { - text: 'Netherlands', - children: [ - {id: 1, text: 'Amsterdam'}, - {id: 45, text: 'Rotterdam'}, - {id: 51, text: 'The Hague'} - ] - }, - { - text: 'Poland', - children: [ - {id: 29, text: 'Łódź'}, - {id: 31, text: 'Kraków'}, - {id: 41, text: 'Poznań'}, - {id: 56, text: 'Warsaw'}, - {id: 57, text: 'Wrocław'} - ] - }, - { - text: 'Portugal', - children: [ - {id: 28, text: 'Lisbon'} - ] - }, - { - text: 'Romania', - children: [ - {id: 10, text: 'Bucharest'} - ] - }, - { - text: 'Scotland', - children: [ - {id: 21, text: 'Glasgow'} - ] - }, - { - text: 'Spain', - children: [ - {id: 4, text: 'Barcelona'}, - {id: 32, text: 'Madrid'}, - {id: 33, text: 'Málaga'}, - {id: 46, text: 'Seville'}, - {id: 53, text: 'Valencia'}, - {id: 59, text: 'Zaragoza'} - ] - }, - { - text: 'Sweden', - children: [ - {id: 22, text: 'Gothenburg'}, - {id: 49, text: 'Stockholm'} - ] - } - ]; - - private get disabledV():string { - return this._disabledV; - } - - private set disabledV(value:string) { - this._disabledV = value; - this.disabled = this._disabledV === '1'; - } - - private selected(value:any) { - console.log('Selected value is: ', value); - } - - private removed(value:any) { - console.log('Removed value is: ', value); - } - - private refreshValue(value:any) { - this.value = value; - } -} diff --git a/demo/components/select/multiple-demo.html b/demo/components/select/multiple-demo.html deleted file mode 100644 index 84a08a72..00000000 --- a/demo/components/select/multiple-demo.html +++ /dev/null @@ -1,19 +0,0 @@ -
-

Select multiple cities

- -
{{itemsToString(value)}}
-
- -
-
diff --git a/demo/components/select/multiple-demo.ts b/demo/components/select/multiple-demo.ts deleted file mode 100644 index c0877d31..00000000 --- a/demo/components/select/multiple-demo.ts +++ /dev/null @@ -1,56 +0,0 @@ -import {Component} from 'angular2/core'; -import {CORE_DIRECTIVES, FORM_DIRECTIVES, NgClass} from 'angular2/common'; -import {ButtonCheckbox} from 'ng2-bootstrap/ng2-bootstrap'; - -import {SELECT_DIRECTIVES} from '../../../ng2-select'; - -// webpack html imports -let template = require('./multiple-demo.html'); - -@Component({ - selector: 'multiple-demo', - template: template, - directives: [SELECT_DIRECTIVES, NgClass, CORE_DIRECTIVES, FORM_DIRECTIVES, ButtonCheckbox] -}) -export class MultipleDemo { - private value:any = ['Athens']; - private _disabledV:string = '0'; - private disabled:boolean = false; - private items:Array = ['Amsterdam', 'Antwerp', 'Athens', 'Barcelona', - 'Berlin', 'Birmingham', 'Bradford', 'Bremen', 'Brussels', 'Bucharest', - 'Budapest', 'Cologne', 'Copenhagen', 'Dortmund', 'Dresden', 'Dublin', 'Düsseldorf', - 'Essen', 'Frankfurt', 'Genoa', 'Glasgow', 'Gothenburg', 'Hamburg', 'Hannover', - 'Helsinki', 'Leeds', 'Leipzig', 'Lisbon', 'Łódź', 'London', 'Kraków', 'Madrid', - 'Málaga', 'Manchester', 'Marseille', 'Milan', 'Munich', 'Naples', 'Palermo', - 'Paris', 'Poznań', 'Prague', 'Riga', 'Rome', 'Rotterdam', 'Seville', 'Sheffield', - 'Sofia', 'Stockholm', 'Stuttgart', 'The Hague', 'Turin', 'Valencia', 'Vienna', - 'Vilnius', 'Warsaw', 'Wrocław', 'Zagreb', 'Zaragoza']; - - private get disabledV():string { - return this._disabledV; - } - - private set disabledV(value:string) { - this._disabledV = value; - this.disabled = this._disabledV === '1'; - } - - private selected(value:any) { - console.log('Selected value is: ', value); - } - - private removed(value:any) { - console.log('Removed value is: ', value); - } - - private refreshValue(value:any) { - this.value = value; - } - - private itemsToString(value:Array = []) { - return value - .map(item => { - return item.text; - }).join(','); - } -} diff --git a/demo/components/select/rich-demo.html b/demo/components/select/rich-demo.html deleted file mode 100644 index 927711e1..00000000 --- a/demo/components/select/rich-demo.html +++ /dev/null @@ -1,21 +0,0 @@ -
-

Select a color

- - -

-
{{value.text}}
-
- -
-
diff --git a/demo/components/select/rich-demo.ts b/demo/components/select/rich-demo.ts deleted file mode 100644 index 677cac04..00000000 --- a/demo/components/select/rich-demo.ts +++ /dev/null @@ -1,104 +0,0 @@ -import { - Component, - OnInit, - ViewEncapsulation -} from 'angular2/core'; -import {CORE_DIRECTIVES, FORM_DIRECTIVES, NgClass} from 'angular2/common'; -import {ButtonCheckbox} from 'ng2-bootstrap/ng2-bootstrap'; - -import {SELECT_DIRECTIVES} from '../../../ng2-select'; - -const COLORS = [ - { 'name': 'Blue 10', 'hex': '#C0E6FF' }, - { 'name': 'Blue 20', 'hex': '#7CC7FF' }, - { 'name': 'Blue 30', 'hex': '#5AAAFA' }, - { 'name': 'Blue 40', 'hex': '#5596E6' }, - { 'name': 'Blue 50', 'hex': '#4178BE' }, - { 'name': 'Blue 60', 'hex': '#325C80' }, - { 'name': 'Blue 70', 'hex': '#264A60' }, - { 'name': 'Blue 80', 'hex': '#1D3649' }, - { 'name': 'Blue 90', 'hex': '#152935' }, - { 'name': 'Blue 100', 'hex': '#010205' }, - { 'name': 'Green 10', 'hex': '#C8F08F' }, - { 'name': 'Green 20', 'hex': '#B4E051' }, - { 'name': 'Green 30', 'hex': '#8CD211' }, - { 'name': 'Green 40', 'hex': '#5AA700' }, - { 'name': 'Green 50', 'hex': '#4B8400' }, - { 'name': 'Green 60', 'hex': '#2D660A' }, - { 'name': 'Green 70', 'hex': '#144D14' }, - { 'name': 'Green 80', 'hex': '#0A3C02' }, - { 'name': 'Green 90', 'hex': '#0C2808' }, - { 'name': 'Green 100', 'hex': '#010200' }, - { 'name': 'Red 10', 'hex': '#FFD2DD' }, - { 'name': 'Red 20', 'hex': '#FFA5B4' }, - { 'name': 'Red 30', 'hex': '#FF7D87' }, - { 'name': 'Red 40', 'hex': '#FF5050' }, - { 'name': 'Red 50', 'hex': '#E71D32' }, - { 'name': 'Red 60', 'hex': '#AD1625' }, - { 'name': 'Red 70', 'hex': '#8C101C' }, - { 'name': 'Red 80', 'hex': '#6E0A1E' }, - { 'name': 'Red 90', 'hex': '#4C0A17' }, - { 'name': 'Red 100', 'hex': '#040001' }, - { 'name': 'Yellow 10', 'hex': '#FDE876' }, - { 'name': 'Yellow 20', 'hex': '#FDD600' }, - { 'name': 'Yellow 30', 'hex': '#EFC100' }, - { 'name': 'Yellow 40', 'hex': '#BE9B00' }, - { 'name': 'Yellow 50', 'hex': '#8C7300' }, - { 'name': 'Yellow 60', 'hex': '#735F00' }, - { 'name': 'Yellow 70', 'hex': '#574A00' }, - { 'name': 'Yellow 80', 'hex': '#3C3200' }, - { 'name': 'Yellow 90', 'hex': '#281E00' }, - { 'name': 'Yellow 100', 'hex': '#020100' } -]; - -// webpack html imports -let template = require('./rich-demo.html'); - -@Component({ - selector: 'rich-demo', - template: template, - styles: [`colorbox,.colorbox { display:inline-block; height:14px; width:14px;margin-right:4px; border:1px solid #000;}`], - directives: [SELECT_DIRECTIVES, NgClass, CORE_DIRECTIVES, FORM_DIRECTIVES, ButtonCheckbox], - encapsulation: ViewEncapsulation.None // Enable dynamic HTML styles -}) -export class RichDemo implements OnInit { - private value:any = {}; - private _disabledV:string = '0'; - private disabled:boolean = false; - private items:Array = []; - - ngOnInit() { - COLORS.forEach( c => { - this.items.push( { - id : c.hex, - text: `${c.name} (${c.hex})` - }); - }); - } - - private get disabledV():string { - return this._disabledV; - } - - private set disabledV(value:string) { - this._disabledV = value; - this.disabled = this._disabledV === '1'; - } - - private selected(value:any) { - console.log('Selected value is: ', value); - } - - private removed(value:any) { - console.log('Removed value is: ', value); - } - - private typed(value:any) { - console.log('New search input: ', value); - } - - private refreshValue(value:any) { - this.value = value; - } -} - diff --git a/demo/components/select/single-demo.html b/demo/components/select/single-demo.html deleted file mode 100644 index 7c610da5..00000000 --- a/demo/components/select/single-demo.html +++ /dev/null @@ -1,21 +0,0 @@ -
-

Select a single city

- - -

-
{{value.text}}
-
- -
-
diff --git a/demo/components/select/single-demo.ts b/demo/components/select/single-demo.ts deleted file mode 100644 index 3da0ad80..00000000 --- a/demo/components/select/single-demo.ts +++ /dev/null @@ -1,54 +0,0 @@ -import {Component} from 'angular2/core'; -import {CORE_DIRECTIVES, FORM_DIRECTIVES, NgClass} from 'angular2/common'; -import {ButtonCheckbox} from 'ng2-bootstrap/ng2-bootstrap'; - -import {SELECT_DIRECTIVES} from '../../../ng2-select'; - -// webpack html imports -let template = require('./single-demo.html'); - -@Component({ - selector: 'single-demo', - template: template, - directives: [SELECT_DIRECTIVES, NgClass, CORE_DIRECTIVES, FORM_DIRECTIVES, ButtonCheckbox] -}) -export class SingleDemo { - private value:any = {}; - private _disabledV:string = '0'; - private disabled:boolean = false; - private items:Array = ['Amsterdam', 'Antwerp', 'Athens', 'Barcelona', - 'Berlin', 'Birmingham', 'Bradford', 'Bremen', 'Brussels', 'Bucharest', - 'Budapest', 'Cologne', 'Copenhagen', 'Dortmund', 'Dresden', 'Dublin', - 'Düsseldorf', 'Essen', 'Frankfurt', 'Genoa', 'Glasgow', 'Gothenburg', - 'Hamburg', 'Hannover', 'Helsinki', 'Kraków', 'Leeds', 'Leipzig', 'Lisbon', - 'London', 'Madrid', 'Manchester', 'Marseille', 'Milan', 'Munich', 'Málaga', - 'Naples', 'Palermo', 'Paris', 'Poznań', 'Prague', 'Riga', 'Rome', - 'Rotterdam', 'Seville', 'Sheffield', 'Sofia', 'Stockholm', 'Stuttgart', - 'The Hague', 'Turin', 'Valencia', 'Vienna', 'Vilnius', 'Warsaw', 'Wrocław', - 'Zagreb', 'Zaragoza', 'Łódź']; - - private get disabledV():string { - return this._disabledV; - } - - private set disabledV(value:string) { - this._disabledV = value; - this.disabled = this._disabledV === '1'; - } - - private selected(value:any) { - console.log('Selected value is: ', value); - } - - private removed(value:any) { - console.log('Removed value is: ', value); - } - - private typed(value:any) { - console.log('New search input: ', value); - } - - private refreshValue(value:any) { - this.value = value; - } -} diff --git a/demo/index.html b/demo/index.html deleted file mode 100644 index 266abc2b..00000000 --- a/demo/index.html +++ /dev/null @@ -1,39 +0,0 @@ - - - - Angular2 Select - - - - - - - - - - - - - - - - - - - - Loading... - - - - diff --git a/demo/index.ts b/demo/index.ts deleted file mode 100644 index 0c7142af..00000000 --- a/demo/index.ts +++ /dev/null @@ -1,44 +0,0 @@ -import {bootstrap} from 'angular2/platform/browser'; -import {Component} from 'angular2/core'; -import {NgClass} from 'angular2/common'; - -import {SelectSection} from './components/select-section'; - -let gettingStarted = require('./getting-started.md'); - -@Component({ - selector: 'app', - template: ` -
-
-

ng2-select

-

Native Angular2 component for Select

- View on GitHub -
-
-
-
-
-
- -
-
${gettingStarted}
- - -
- - - `, - directives: [ - NgClass, - SelectSection - ] -}) -export class Demo { -} - -bootstrap(Demo); diff --git a/docs/3rdpartylicenses.txt b/docs/3rdpartylicenses.txt new file mode 100644 index 00000000..98a885a0 --- /dev/null +++ b/docs/3rdpartylicenses.txt @@ -0,0 +1,142 @@ +lodash@4.17.11 +MIT +Copyright JS Foundation and other contributors + +Based on Underscore.js, copyright Jeremy Ashkenas, +DocumentCloud and Investigative Reporters & Editors + +This software consists of voluntary contributions made by many +individuals. For exact contribution history, see the revision history +available at https://github.com/lodash/lodash + +The following license applies to all parts of this software except as +documented below: + +==== + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights 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 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. + +==== + +Copyright and related rights for sample code are waived via CC0. Sample +code is defined as all source code displayed within the prose of the +documentation. + +CC0: http://creativecommons.org/publicdomain/zero/1.0/ + +==== + +Files located in the node_modules and vendor directories are externally +maintained libraries used by this software which have their own +licenses; we recommend you read them, as their terms may differ from the +terms above. + +webpack@4.20.2 +MIT +Copyright JS Foundation and other contributors + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +'Software'), to deal in the Software without restriction, including +without limitation the rights 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 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. + +escape-string-regexp@1.0.5 +MIT +The MIT License (MIT) + +Copyright (c) Sindre Sorhus (sindresorhus.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +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 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. + +core-js@2.5.7 +MIT +Copyright (c) 2014-2018 Denis Pushkarev + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +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 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. + +zone.js@0.8.26 +MIT +The MIT License + +Copyright (c) 2016-2018 Google, Inc. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +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 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. \ No newline at end of file diff --git a/demo/assets/css/glyphicons.css b/docs/assets/css/glyphicons.css similarity index 100% rename from demo/assets/css/glyphicons.css rename to docs/assets/css/glyphicons.css diff --git a/docs/assets/css/prettify-angulario.css b/docs/assets/css/prettify-angulario.css new file mode 100644 index 00000000..2a0687d1 --- /dev/null +++ b/docs/assets/css/prettify-angulario.css @@ -0,0 +1,215 @@ +.prettyprint { + white-space: pre-wrap; + background: #F5F6F7; + font-family: Monaco,"Lucida Console",monospace; + color: #5C707A; + width: auto; + overflow: auto; + position: relative; + font-size: 13px; + line-height: 24px; + border-radius: 4px; + padding: 16px 32px +} + +.prettyprint.linenums,.prettyprint[class^="linenums:"],.prettyprint[class*=" linenums:"] { + padding: 0 +} + +.prettyprint.is-showcase { + border: 4px solid #0273D4 +} + +.prettyprint code { + background: none; + font-size: 13px; + padding: 0 +} + +.prettyprint ol { + background: #F5F6F7; + padding: 16px 32px 16px 56px; + margin: 0; + overflow: auto; + font-size: 13px +} + +.prettyprint ol li,.prettyprint .tag { + color: #7a8b94; + background: none; + margin-bottom: 5px; + line-height: normal; + list-style-type: decimal; + font-size: 12px +} + +.prettyprint ol li:last-child { + margin-bottom: 0 +} + +.prettyprint ol li code { + background: none; + font-size: 13px +} + +.prettyprint .pnk,.prettyprint .blk { + border-radius: 4px; + padding: 2px 4px +} + +.prettyprint .pnk { + background: #CFD8DC; + color: #5C707A +} + +.prettyprint .blk { + background: #E0E0E0 +} + +.prettyprint .otl { + outline: 1px solid rgba(169,169,169,0.56) +} + +.prettyprint .kwd { + color: #D43669 +} + +.prettyprint .typ,.prettyprint .tag { + color: #D43669 +} + +.prettyprint .str,.prettyprint .atv { + color: #647f11 +} + +.prettyprint .atn { + /*color: #647f11*/ + color: #31708f +} + +.prettyprint .com { + color: #647f11 +} + +.prettyprint .lit { + color: #647f11 +} + +.prettyprint .pun { + color: #7a8b94 +} + +.prettyprint .pln { + color: #5C707A + /*color: #8a6d3b*/ +} + +.prettyprint .dec { + color: #647f11 +} + +@media print { + .prettyprint { + background: #F5F6F7; + border: none; + box-shadow: none + } + + .prettyprint ol { + background: #F5F6F7 + } + + .prettyprint .kwd { + color: #D43669 + } + + .prettyprint .typ,.prettyprint .tag { + color: #D43669 + } + + .prettyprint .str,.prettyprint .atv { + color: #647f11 + } + + .prettyprint .atn { + /*color: #647f11*/ + color: #31708f + } + + .prettyprint .com { + color: #647f11 + } + + .prettyprint .lit { + color: #647f11 + } + + .prettyprint .pun { + color: #7a8b94 + } + + .prettyprint .pln { + color: #5C707A + } + + .prettyprint .dec { + color: #647f11 + } +} + +h1 .prettyprint,h2 .prettyprint,h3 .prettyprint,h4 .prettyprint { + background: none; + font-family: Monaco,"Lucida Console",monospace; + color: #253238; + overflow: hidden; + position: relative; + font-size: 15px; + font-weight: 600; + line-height: 24px; + margin: 0; + border: none; + box-shadow: none; + padding: 0 +} + +h1 .prettyprint code,h2 .prettyprint code,h3 .prettyprint code,h4 .prettyprint code { + background: none; + font-size: 15px; + padding: 0 +} + +h1 .prettyprint .kwd,h2 .prettyprint .kwd,h3 .prettyprint .kwd,h4 .prettyprint .kwd { + color: #253238 +} + +h1 .prettyprint .typ,h1 .prettyprint .tag,h2 .prettyprint .typ,h2 .prettyprint .tag,h3 .prettyprint .typ,h3 .prettyprint .tag,h4 .prettyprint .typ,h4 .prettyprint .tag { + color: #B52E31 +} + +h1 .prettyprint .str,h1 .prettyprint .atv,h2 .prettyprint .str,h2 .prettyprint .atv,h3 .prettyprint .str,h3 .prettyprint .atv,h4 .prettyprint .str,h4 .prettyprint .atv { + color: #9d8d00 +} + +h1 .prettyprint .atn,h2 .prettyprint .atn,h3 .prettyprint .atn,h4 .prettyprint .atn { + color: #71a436 +} + +h1 .prettyprint .com,h2 .prettyprint .com,h3 .prettyprint .com,h4 .prettyprint .com { + color: #AFBEC5 +} + +h1 .prettyprint .lit,h2 .prettyprint .lit,h3 .prettyprint .lit,h4 .prettyprint .lit { + color: #9d8d00 +} + +h1 .prettyprint .pun,h2 .prettyprint .pun,h3 .prettyprint .pun,h4 .prettyprint .pun { + color: #000 +} + +h1 .prettyprint .pln,h2 .prettyprint .pln,h3 .prettyprint .pln,h4 .prettyprint .pln { + color: #000 +} + +h1 .prettyprint .dec,h2 .prettyprint .dec,h3 .prettyprint .dec,h4 .prettyprint .dec { + color: #8762c6 +} diff --git a/docs/assets/css/style.css b/docs/assets/css/style.css new file mode 100644 index 00000000..daa7b587 --- /dev/null +++ b/docs/assets/css/style.css @@ -0,0 +1,332 @@ +/*! + * Bootstrap Docs (http://getbootstrap.com) + * Copyright 2011-2014 Twitter, Inc. + * Licensed under the Creative Commons Attribution 3.0 Unported License. For + * details, see http://creativecommons.org/licenses/by/3.0/. + */ + +.h1, .h2, .h3, h1, h2, h3 { + margin-top: 20px; + margin-bottom: 10px; +} + +.h1, h1 { + font-size: 36px; +} + +.btn-group-lg > .btn, .btn-lg { + font-size: 18px; +} + +section { + padding-top: 30px; +} + +.bd-pageheader { + margin-top: 45px; +} + +.page-header { + padding-bottom: 9px; + margin: 40px 0 20px; + border-bottom: 1px solid #eee; +} + +.navbar-default .navbar-nav > li > a { + color: #777; +} + +.navbar { + padding: 0; +} + +.navbar-nav .nav-item { + margin-left: 0 !important; +} + +.nav > li > a { + position: relative; + display: block; + padding: 10px 15px; +} + +.nav .navbar-brand { + float: left; + height: 50px; + padding: 15px 15px; + font-size: 18px; + line-height: 20px; + margin-right: 0 !important; +} + +.navbar-brand { + color: #777; + float: left; + height: 50px; + padding: 15px 15px; + font-size: 18px; + line-height: 20px; +} + +.navbar-toggler { + margin-top: 8px; + margin-right: 15px; +} + +.navbar-default .navbar-nav > li > a:focus, .navbar-default .navbar-nav > li > a:hover { + color: #333; + background-color: transparent; +} + +.bd-pageheader, .bs-docs-masthead { + position: relative; + padding: 25px 0; + color: #cdbfe3; + text-align: center; + text-shadow: 0 1px 0 rgba(0, 0, 0, .1); + background-color: #6f5499; + background-image: -webkit-gradient(linear, left top, left bottom, from(#563d7c), to(#6f5499)); + background-image: -webkit-linear-gradient(top, #563d7c 0, #6f5499 100%); + background-image: -o-linear-gradient(top, #563d7c 0, #6f5499 100%); + background-image: linear-gradient(to bottom, #563d7c 0, #6f5499 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#563d7c', endColorstr='#6F5499', GradientType=0); + background-repeat: repeat-x; +} + +.bd-pageheader { + margin-bottom: 40px; + font-size: 20px; +} + +.bd-pageheader h1 { + margin-top: 0; + color: #fff; +} + +.bd-pageheader p { + margin-bottom: 0; + font-weight: 300; + line-height: 1.4; +} + +.bd-pageheader .btn { + margin: 10px 0; +} + +.scrollable-menu .nav-link { + color: #337ab7; + font-size: 14px; +} + +.scrollable-menu .nav-link:hover { + color: #23527c; + background-color: #eee; +} + +@media (min-width: 992px) { + .bd-pageheader h1, .bd-pageheader p { + margin-right: 380px; + } +} + +@media (min-width: 768px) { + .bd-pageheader { + padding-top: 60px; + padding-bottom: 60px; + font-size: 24px; + text-align: left; + } + + .bd-pageheader h1 { + font-size: 60px; + line-height: 1; + } + + .navbar-nav > li > a.nav-link { + padding-top: 15px; + padding-bottom: 15px; + font-size: 14px; + } + + .navbar > .container .navbar-brand, .navbar > .container-fluid .navbar-brand { + margin-left: -15px; + } +} + +@media (max-width: 767px) { + .hidden-xs { + display: none !important; + } + + .navbar .container { + width: 100%; + max-width: 100%; + } + + .navbar .container, + .navbar .container .navbar-header { + padding: 0; + margin: 0; + } +} + +@media (max-width: 400px) { + code, kbd { + font-size: 60%; + } +} + +/** + * VH and VW units can cause issues on iOS devices: http://caniuse.com/#feat=viewport-units + * + * To overcome this, create media queries that target the width, height, and orientation of iOS devices. + * It isn't optimal, but there is really no other way to solve the problem. In this example, I am fixing + * the height of element '.scrollable-menu' —which is a full width and height cover image. + * + * iOS Resolution Quick Reference: http://www.iosres.com/ + */ + +.scrollable-menu { + height: 90vh !important; + width: 100vw; + overflow-x: hidden; + padding: 0 0 20px; +} + +/** + * iPad with portrait orientation. + */ +@media all and (device-width: 768px) and (device-height: 1024px) and (orientation: portrait) { + .scrollable-menu { + height: 1024px !important; + } +} + +/** + * iPad with landscape orientation. + */ +@media all and (device-width: 768px) and (device-height: 1024px) and (orientation: landscape) { + .scrollable-menu { + height: 768px !important; + } +} + +/** + * iPhone 5 + * You can also target devices with aspect ratio. + */ +@media screen and (device-aspect-ratio: 40/71) { + .scrollable-menu { + height: 500px !important; + } +} + +.navbar-default .navbar-toggle .icon-bar { + background-color: #888; +} + +.navbar-toggle:focus { + outline: 0 +} + +.navbar-toggle .icon-bar { + display: block; + width: 22px; + height: 2px; + border-radius: 1px +} + +.navbar-toggle .icon-bar + .icon-bar { + margin-top: 4px +} + +pre { + margin: 0; + white-space: pre-wrap; /* CSS 3 */ + white-space: -moz-pre-wrap; /* Mozilla, since 1999 */ + white-space: -pre-wrap; /* Opera 4-6 */ + white-space: -o-pre-wrap; /* Opera 7 */ + word-wrap: break-word; /* Internet Explorer 5.5+ */ +} + +.chart-legend, .bar-legend, .line-legend, .pie-legend, .radar-legend, .polararea-legend, .doughnut-legend { + list-style-type: none; + margin-top: 5px; + text-align: center; + -webkit-padding-start: 0; + -moz-padding-start: 0; + padding-left: 0 +} + +.chart-legend li, .bar-legend li, .line-legend li, .pie-legend li, .radar-legend li, .polararea-legend li, .doughnut-legend li { + display: inline-block; + white-space: nowrap; + position: relative; + margin-bottom: 4px; + border-radius: 5px; + padding: 2px 8px 2px 28px; + font-size: smaller; + cursor: default +} + +.chart-legend li span, .bar-legend li span, .line-legend li span, .pie-legend li span, .radar-legend li span, .polararea-legend li span, .doughnut-legend li span { + display: block; + position: absolute; + left: 0; + top: 0; + width: 20px; + height: 20px; + border-radius: 5px +} + +.example-block { + display: flex; + margin-bottom: 20px; +} + +.example-block__item { + width: 400px; + border: lightgray; + margin: 5px; + border-radius: 5px; +} + +.doc-api pre { + color: #383d41; + background-color: #e2e3e5; + position: relative; + padding: .75rem 1.25rem; + margin-bottom: 1rem; + border: 1px solid #d6d8db; + border-radius: .25rem; +} + +.doc-api h3 { + margin: 10px 0; +} + +table { + display: block; + width: 100%; + overflow: auto; + margin-top: 0; + margin-bottom: 16px; +} + +table tr { + background-color: #fff; + border-top: 1px solid #c6cbd1; +} + +table th, table td { + padding: 6px 13px; + border: 1px solid #dfe2e5; +} + +table tr:nth-child(2n) { + background-color: #f6f8fa; +} + +code { + word-break: normal; +} \ No newline at end of file diff --git a/demo/assets/fonts/glyphicons-halflings-regular.eot b/docs/assets/fonts/glyphicons-halflings-regular.eot similarity index 100% rename from demo/assets/fonts/glyphicons-halflings-regular.eot rename to docs/assets/fonts/glyphicons-halflings-regular.eot diff --git a/demo/assets/fonts/glyphicons-halflings-regular.svg b/docs/assets/fonts/glyphicons-halflings-regular.svg similarity index 100% rename from demo/assets/fonts/glyphicons-halflings-regular.svg rename to docs/assets/fonts/glyphicons-halflings-regular.svg diff --git a/demo/assets/fonts/glyphicons-halflings-regular.ttf b/docs/assets/fonts/glyphicons-halflings-regular.ttf similarity index 100% rename from demo/assets/fonts/glyphicons-halflings-regular.ttf rename to docs/assets/fonts/glyphicons-halflings-regular.ttf diff --git a/demo/assets/fonts/glyphicons-halflings-regular.woff b/docs/assets/fonts/glyphicons-halflings-regular.woff similarity index 100% rename from demo/assets/fonts/glyphicons-halflings-regular.woff rename to docs/assets/fonts/glyphicons-halflings-regular.woff diff --git a/demo/assets/fonts/glyphicons-halflings-regular.woff2 b/docs/assets/fonts/glyphicons-halflings-regular.woff2 similarity index 100% rename from demo/assets/fonts/glyphicons-halflings-regular.woff2 rename to docs/assets/fonts/glyphicons-halflings-regular.woff2 diff --git a/docs/assets/js/prettify.min.js b/docs/assets/js/prettify.min.js new file mode 100644 index 00000000..e83633dd --- /dev/null +++ b/docs/assets/js/prettify.min.js @@ -0,0 +1,36 @@ +!function () { var q = null; window.PR_SHOULD_USE_CONTINUATION = !0; + (function () { function S(a) { function d(e) { var b = e.charCodeAt(0); if (b !== 92) return b; var a = e.charAt(1); return (b = r[a]) ? b : '0' <= a && a <= '7' ? parseInt(e.substring(1), 8) : a === 'u' || a === 'x' ? parseInt(e.substring(2), 16) : e.charCodeAt(1); } function g(e) { if (e < 32) return (e < 16 ? '\\x0' : '\\x') + e.toString(16); e = String.fromCharCode(e); return e === '\\' || e === '-' || e === ']' || e === '^' ? '\\' + e : e; } function b(e) { var b = e.substring(1, e.length - 1).match(/\\u[\dA-Fa-f]{4}|\\x[\dA-Fa-f]{2}|\\[0-3][0-7]{0,2}|\\[0-7]{1,2}|\\[\S\s]|[^\\]/g), e = [], a = +b[0] === '^', c = ['[']; a && c.push('^'); for (var a = a ? 1 : 0, f = b.length; a < f; ++a) { var h = b[a]; if (/\\[bdsw]/i.test(h))c.push(h); else { var h = d(h), l; a + 2 < f && '-' === b[a + 1] ? (l = d(b[a + 2]), a += 2) : l = h; e.push([h, l]); l < 65 || h > 122 || (l < 65 || h > 90 || e.push([Math.max(65, h) | 32, Math.min(l, 90) | 32]), l < 97 || h > 122 || e.push([Math.max(97, h) & -33, Math.min(l, 122) & -33])); } }e.sort(function (e, a) { return e[0] - a[0] || a[1] - e[1]; }); b = []; f = []; for (a = 0; a < e.length; ++a)h = e[a], h[0] <= f[1] + 1 ? f[1] = Math.max(f[1], h[1]) : b.push(f = h); for (a = 0; a < b.length; ++a)h = b[a], c.push(g(h[0])), +h[1] > h[0] && (h[1] + 1 > h[0] && c.push('-'), c.push(g(h[1]))); c.push(']'); return c.join(''); } function s(e) { for (var a = e.source.match(/\[(?:[^\\\]]|\\[\S\s])*]|\\u[\dA-Fa-f]{4}|\\x[\dA-Fa-f]{2}|\\\d+|\\[^\dux]|\(\?[!:=]|[()^]|[^()[\\^]+/g), c = a.length, d = [], f = 0, h = 0; f < c; ++f) { var l = a[f]; l === '(' ? ++h : '\\' === l.charAt(0) && (l = +l.substring(1)) && (l <= h ? d[l] = -1 : a[f] = g(l)); } for (f = 1; f < d.length; ++f)-1 === d[f] && (d[f] = ++x); for (h = f = 0; f < c; ++f)l = a[f], l === '(' ? (++h, d[h] || (a[f] = '(?:')) : '\\' === l.charAt(0) && (l = +l.substring(1)) && l <= h && +(a[f] = '\\' + d[l]); for (f = 0; f < c; ++f)'^' === a[f] && '^' !== a[f + 1] && (a[f] = ''); if (e.ignoreCase && m) for (f = 0; f < c; ++f)l = a[f], e = l.charAt(0), l.length >= 2 && e === '[' ? a[f] = b(l) : e !== '\\' && (a[f] = l.replace(/[A-Za-z]/g, function (a) { a = a.charCodeAt(0); return '[' + String.fromCharCode(a & -33, a | 32) + ']'; })); return a.join(''); } for (var x = 0, m = !1, j = !1, k = 0, c = a.length; k < c; ++k) { var i = a[k]; if (i.ignoreCase)j = !0; else if (/[a-z]/i.test(i.source.replace(/\\u[\da-f]{4}|\\x[\da-f]{2}|\\[^UXux]/gi, ''))) { m = !0; j = !1; break; } } for (var r = { + b: 8, t: 9, n: 10, v: 11, + f: 12, r: 13 + }, n = [], k = 0, c = a.length; k < c; ++k) { i = a[k]; if (i.global || i.multiline) throw Error('' + i); n.push('(?:' + s(i) + ')'); } return RegExp(n.join('|'), j ? 'gi' : 'g'); } function T(a, d) { function g(a) { var c = a.nodeType; if (c == 1) { if (!b.test(a.className)) { for (c = a.firstChild; c; c = c.nextSibling)g(c); c = a.nodeName.toLowerCase(); if ('br' === c || 'li' === c)s[j] = '\n', m[j << 1] = x++, m[j++ << 1 | 1] = a; } } else if (c == 3 || c == 4)c = a.nodeValue, c.length && (c = d ? c.replace(/\r\n?/g, '\n') : c.replace(/[\t\n\r ]+/g, ' '), s[j] = c, m[j << 1] = x, x += c.length, m[j++ << 1 | 1] = +a); } var b = /(?:^|\s)nocode(?:\s|$)/, s = [], x = 0, m = [], j = 0; g(a); return {a: s.join('').replace(/\n$/, ''), d: m}; } function H(a, d, g, b) { d && (a = {a: d, e: a}, g(a), b.push.apply(b, a.g)); } function U(a) { for (var d = void 0, g = a.firstChild; g; g = g.nextSibling) var b = g.nodeType, d = b === 1 ? d ? a : g : b === 3 ? V.test(g.nodeValue) ? a : d : d; return d === a ? void 0 : d; } function C(a, d) { function g(a) { for (var j = a.e, k = [j, 'pln'], c = 0, i = a.a.match(s) || [], r = {}, n = 0, e = i.length; n < e; ++n) { var z = i[n], w = r[z], t = void 0, f; if (typeof w === 'string')f = !1; else { var h = b[z.charAt(0)]; + if (h)t = z.match(h[1]), w = h[0]; else { for (f = 0; f < x; ++f) if (h = d[f], t = z.match(h[1])) { w = h[0]; break; }t || (w = 'pln'); } if ((f = w.length >= 5 && 'lang-' === w.substring(0, 5)) && !(t && typeof t[1] === 'string'))f = !1, w = 'src'; f || (r[z] = w); }h = c; c += z.length; if (f) { f = t[1]; var l = z.indexOf(f), B = l + f.length; t[2] && (B = z.length - t[2].length, l = B - f.length); w = w.substring(5); H(j + h, z.substring(0, l), g, k); H(j + h + l, f, I(w, f), k); H(j + h + B, z.substring(B), g, k); } else k.push(j + h, w); }a.g = k; } var b = {}, s; (function () { for (var g = a.concat(d), j = [], k = {}, c = 0, i = g.length; c < i; ++c) { var r = +g[c], n = r[3]; if (n) for (var e = n.length; --e >= 0;)b[n.charAt(e)] = r; r = r[1]; n = '' + r; k.hasOwnProperty(n) || (j.push(r), k[n] = q); }j.push(/[\S\s]/); s = S(j); })(); var x = d.length; return g; } function v(a) { var d = [], g = []; a.tripleQuotedStrings ? d.push(['str', /^(?:'''(?:[^'\\]|\\[\S\s]|''?(?=[^']))*(?:'''|$)|"""(?:[^"\\]|\\[\S\s]|""?(?=[^"]))*(?:"""|$)|'(?:[^'\\]|\\[\S\s])*(?:'|$)|"(?:[^"\\]|\\[\S\s])*(?:"|$))/, q, '\'"']) : a.multiLineStrings ? d.push(['str', /^(?:'(?:[^'\\]|\\[\S\s])*(?:'|$)|"(?:[^"\\]|\\[\S\s])*(?:"|$)|`(?:[^\\`]|\\[\S\s])*(?:`|$))/, +q, '\'"`']) : d.push(['str', /^(?:'(?:[^\n\r'\\]|\\.)*(?:'|$)|"(?:[^\n\r"\\]|\\.)*(?:"|$))/, q, '"\'']); a.verbatimStrings && g.push(['str', /^@"(?:[^"]|"")*(?:"|$)/, q]); var b = a.hashComments; b && (a.cStyleComments ? (b > 1 ? d.push(['com', /^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/, q, '#']) : d.push(['com', /^#(?:(?:define|e(?:l|nd)if|else|error|ifn?def|include|line|pragma|undef|warning)\b|[^\n\r]*)/, q, '#']), g.push(['str', /^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h(?:h|pp|\+\+)?|[a-z]\w*)>/, q])) : d.push(['com', +/^#[^\n\r]*/, q, '#'])); a.cStyleComments && (g.push(['com', /^\/\/[^\n\r]*/, q]), g.push(['com', /^\/\*[\S\s]*?(?:\*\/|$)/, q])); if (b = a.regexLiterals) { var s = (b = b > 1 ? '' : '\n\r') ? '.' : '[\\S\\s]'; g.push(['lang-regex', RegExp('^(?:^^\\.?|[+-]|[!=]=?=?|\\#|%=?|&&?=?|\\(|\\*=?|[+\\-]=|->|\\/=?|::?|<>?>?=?|,|;|\\?|@|\\[|~|{|\\^\\^?=?|\\|\\|?=?|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\\s*(' + ('/(?=[^/*' + b + '])(?:[^/\\x5B\\x5C' + b + ']|\\x5C' + s + '|\\x5B(?:[^\\x5C\\x5D' + b + ']|\\x5C' + +s + ')*(?:\\x5D|$))+/') + ')')]); }(b = a.types) && g.push(['typ', b]); b = ('' + a.keywords).replace(/^ | $/g, ''); b.length && g.push(['kwd', RegExp('^(?:' + b.replace(/[\s,]+/g, '|') + ')\\b'), q]); d.push(['pln', /^\s+/, q, ' \r\n\t\u00a0']); b = '^.[^\\s\\w.$@\'"`/\\\\]*'; a.regexLiterals && (b += '(?!s*/)'); g.push(['lit', /^@[$_a-z][\w$@]*/i, q], ['typ', /^(?:[@_]?[A-Z]+[a-z][\w$@]*|\w+_t\b)/, q], ['pln', /^[$_a-z][\w$@]*/i, q], ['lit', /^(?:0x[\da-f]+|(?:\d(?:_\d+)*\d*(?:\.\d*)?|\.\d\+)(?:e[+-]?\d+)?)[a-z]*/i, q, '0123456789'], ['pln', /^\\[\S\s]?/, +q], ['pun', RegExp(b), q]); return C(d, g); } function J(a, d, g) { function b(a) { var c = a.nodeType; if (c == 1 && !x.test(a.className)) if ('br' === a.nodeName)s(a), a.parentNode && a.parentNode.removeChild(a); else for (a = a.firstChild; a; a = a.nextSibling)b(a); else if ((c == 3 || c == 4) && g) { var d = a.nodeValue, i = d.match(m); if (i)c = d.substring(0, i.index), a.nodeValue = c, (d = d.substring(i.index + i[0].length)) && a.parentNode.insertBefore(j.createTextNode(d), a.nextSibling), s(a), c || a.parentNode.removeChild(a); } } function s(a) { function b(a, c) { var d = +c ? a.cloneNode(!1) : a, e = a.parentNode; if (e) { var e = b(e, 1), g = a.nextSibling; e.appendChild(d); for (var i = g; i; i = g)g = i.nextSibling, e.appendChild(i); } return d; } for (;!a.nextSibling;) if (a = a.parentNode, !a) return; for (var a = b(a.nextSibling, 0), d; (d = a.parentNode) && d.nodeType === 1;)a = d; c.push(a); } for (var x = /(?:^|\s)nocode(?:\s|$)/, m = /\r\n?|\n/, j = a.ownerDocument, k = j.createElement('li'); a.firstChild;)k.appendChild(a.firstChild); for (var c = [k], i = 0; i < c.length; ++i)b(c[i]); d === (d | 0) && c[0].setAttribute('value', d); var r = j.createElement('ol'); + r.className = 'linenums'; for (var d = Math.max(0, d - 1 | 0) || 0, i = 0, n = c.length; i < n; ++i)k = c[i], k.className = 'L' + (i + d) % 10, k.firstChild || k.appendChild(j.createTextNode('\u00a0')), r.appendChild(k); a.appendChild(r); } function p(a, d) { for (var g = d.length; --g >= 0;) { var b = d[g]; F.hasOwnProperty(b) ? D.console && console.warn('cannot override language handler %s', b) : F[b] = a; } } function I(a, d) { if (!a || !F.hasOwnProperty(a))a = /^\s*= l && (b += 2); g >= B && (r += 2); } } finally { if (f)f.style.display = h; } } catch (u) { D.console && console.log(u && u.stack || u); } } var D = window, y = ['break,continue,do,else,for,if,return,while'], E = [[y, 'auto,case,char,const,default,double,enum,extern,float,goto,inline,int,long,register,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,volatile'], +'catch,class,delete,false,import,new,operator,private,protected,public,this,throw,true,try,typeof'], M = [E, 'alignof,align_union,asm,axiom,bool,concept,concept_map,const_cast,constexpr,decltype,delegate,dynamic_cast,explicit,export,friend,generic,late_check,mutable,namespace,nullptr,property,reinterpret_cast,static_assert,static_cast,template,typeid,typename,using,virtual,where'], N = [E, 'abstract,assert,boolean,byte,extends,final,finally,implements,import,instanceof,interface,null,native,package,strictfp,super,synchronized,throws,transient'], + O = [N, 'as,base,by,checked,decimal,delegate,descending,dynamic,event,fixed,foreach,from,group,implicit,in,internal,into,is,let,lock,object,out,override,orderby,params,partial,readonly,ref,sbyte,sealed,stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort,var,virtual,where'], E = [E, 'debugger,eval,export,function,get,null,set,undefined,var,with,Infinity,NaN'], P = [y, 'and,as,assert,class,def,del,elif,except,exec,finally,from,global,import,in,is,lambda,nonlocal,not,or,pass,print,raise,try,with,yield,False,True,None'], + Q = [y, 'alias,and,begin,case,class,def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo,rescue,retry,self,super,then,true,undef,unless,until,when,yield,BEGIN,END'], W = [y, 'as,assert,const,copy,drop,enum,extern,fail,false,fn,impl,let,log,loop,match,mod,move,mut,priv,pub,pure,ref,self,static,struct,true,trait,type,unsafe,use'], y = [y, 'case,done,elif,esac,eval,fi,function,in,local,set,then,until'], R = /^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)\b/, + V = /\S/, X = v({keywords: [M, O, E, 'caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END', P, Q, y], hashComments: !0, cStyleComments: !0, multiLineStrings: !0, regexLiterals: !0}), F = {}; p(X, ['default-code']); p(C([], [['pln', /^[^]*(?:>|$)/], ['com', /^<\!--[\S\s]*?(?:--\>|$)/], ['lang-', /^<\?([\S\s]+?)(?:\?>|$)/], ['lang-', /^<%([\S\s]+?)(?:%>|$)/], ['pun', /^(?:<[%?]|[%?]>)/], ['lang-', +/^]*>([\S\s]+?)<\/xmp\b[^>]*>/i], ['lang-js', /^]*>([\S\s]*?)(<\/script\b[^>]*>)/i], ['lang-css', /^]*>([\S\s]*?)(<\/style\b[^>]*>)/i], ['lang-in.tag', /^(<\/?[a-z][^<>]*>)/i]]), ['default-markup', 'htm', 'html', 'mxml', 'xhtml', 'xml', 'xsl']); p(C([['pln', /^\s+/, q, ' \t\r\n'], ['atv', /^(?:"[^"]*"?|'[^']*'?)/, q, '"\'']], [['tag', /^^<\/?[a-z](?:[\w-.:]*\w)?|\/?>$/i], ['atn', /^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i], ['lang-uq.val', /^=\s*([^\s"'>]*(?:[^\s"'/>]|\/(?=\s)))/], ['pun', /^[/<->]+/], +['lang-js', /^on\w+\s*=\s*"([^"]+)"/i], ['lang-js', /^on\w+\s*=\s*'([^']+)'/i], ['lang-js', /^on\w+\s*=\s*([^\s"'>]+)/i], ['lang-css', /^style\s*=\s*"([^"]+)"/i], ['lang-css', /^style\s*=\s*'([^']+)'/i], ['lang-css', /^style\s*=\s*([^\s"'>]+)/i]]), ['in.tag']); p(C([], [['atv', /^[\S\s]+/]]), ['uq.val']); p(v({keywords: M, hashComments: !0, cStyleComments: !0, types: R}), ['c', 'cc', 'cpp', 'cxx', 'cyc', 'm']); p(v({keywords: 'null,true,false'}), ['json']); p(v({keywords: O, hashComments: !0, cStyleComments: !0, verbatimStrings: !0, types: R}), +['cs']); p(v({keywords: N, cStyleComments: !0}), ['java']); p(v({keywords: y, hashComments: !0, multiLineStrings: !0}), ['bash', 'bsh', 'csh', 'sh']); p(v({keywords: P, hashComments: !0, multiLineStrings: !0, tripleQuotedStrings: !0}), ['cv', 'py', 'python']); p(v({keywords: 'caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END', hashComments: !0, multiLineStrings: !0, regexLiterals: 2}), ['perl', 'pl', 'pm']); p(v({ + keywords: Q, + hashComments: !0, multiLineStrings: !0, regexLiterals: !0 +}), ['rb', 'ruby']); p(v({keywords: E, cStyleComments: !0, regexLiterals: !0}), ['javascript', 'js']); p(v({keywords: 'all,and,by,catch,class,else,extends,false,finally,for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then,throw,true,try,unless,until,when,while,yes', hashComments: 3, cStyleComments: !0, multilineStrings: !0, tripleQuotedStrings: !0, regexLiterals: !0}), ['coffee']); p(v({keywords: W, cStyleComments: !0, multilineStrings: !0}), ['rc', 'rs', 'rust']); + p(C([], [['str', /^[\S\s]+/]]), ['regex']); var Y = D.PR = { + createSimpleLexer: C, registerLangHandler: p, sourceDecorator: v, PR_ATTRIB_NAME: 'atn', PR_ATTRIB_VALUE: 'atv', PR_COMMENT: 'com', PR_DECLARATION: 'dec', PR_KEYWORD: 'kwd', PR_LITERAL: 'lit', PR_NOCODE: 'nocode', PR_PLAIN: 'pln', PR_PUNCTUATION: 'pun', PR_SOURCE: 'src', PR_STRING: 'str', PR_TAG: 'tag', PR_TYPE: 'typ', prettyPrintOne: D.prettyPrintOne = function (a, d, g) { var b = document.createElement('div'); b.innerHTML = '
' + a + '
'; b = b.firstChild; g && J(b, g, !0); K({h: d, j: g, c: b, i: 1}); + return b.innerHTML; }, prettyPrint: D.prettyPrint = function (a, d) { function g() { for (var b = D.PR_SHOULD_USE_CONTINUATION ? c.now() + 250 : Infinity; i < p.length && c.now() < b; i++) { for (var d = p[i], j = h, k = d; k = k.previousSibling;) { var m = k.nodeType, o = (m === 7 || m === 8) && k.nodeValue; if (o ? !/^\??prettify\b/.test(o) : m !== 3 || /\S/.test(k.nodeValue)) break; if (o) { j = {}; o.replace(/\b(\w+)=([\w%+\-.:]+)/g, function (a, b, c) { j[b] = c; }); break; } }k = d.className; if ((j !== h || e.test(k)) && !v.test(k)) { m = !1; for (o = d.parentNode; o; o = o.parentNode) if (f.test(o.tagName) && +o.className && e.test(o.className)) { m = !0; break; } if (!m) { d.className += ' prettyprinted'; m = j.lang; if (!m) { var m = k.match(n), y; if (!m && (y = U(d)) && t.test(y.tagName))m = y.className.match(n); m && (m = m[1]); } if (w.test(d.tagName))o = 1; else var o = d.currentStyle, u = s.defaultView, o = (o = o ? o.whiteSpace : u && u.getComputedStyle ? u.getComputedStyle(d, q).getPropertyValue('white-space') : 0) && 'pre' === o.substring(0, 3); u = j.linenums; if (!(u = u === 'true' || +u))u = (u = k.match(/\blinenums\b(?::(\d+))?/)) ? u[1] && u[1].length ? +u[1] : !0 : !1; u && J(d, u, o); r = +{h: m, c: d, j: u, i: o}; K(r); } } }i < p.length ? setTimeout(g, 250) : 'function' === typeof a && a(); } for (var b = d || document.body, s = b.ownerDocument || document, b = [b.getElementsByTagName('pre'), b.getElementsByTagName('code'), b.getElementsByTagName('xmp')], p = [], m = 0; m < b.length; ++m) for (var j = 0, k = b[m].length; j < k; ++j)p.push(b[m][j]); var b = q, c = Date; c.now || (c = {now() { return +new Date; }}); var i = 0, r, n = /\blang(?:uage)?-([\w.]+)(?!\S)/, e = /\bprettyprint\b/, v = /\bprettyprinted\b/, w = /pre|xmp/i, t = /^code$/i, f = /^(?:pre|code|xmp)$/i, + h = {}; g(); } + }; typeof define === 'function' && define.amd && define('google-code-prettify', [], function () { return Y; }); })(); }(); diff --git a/docs/favicon.ico b/docs/favicon.ico new file mode 100644 index 00000000..8081c7ce Binary files /dev/null and b/docs/favicon.ico differ diff --git a/docs/index.html b/docs/index.html new file mode 100644 index 00000000..281a3e7d --- /dev/null +++ b/docs/index.html @@ -0,0 +1,40 @@ + + + + Angular Select + + + + + + + + + + + + + + + + + + + +Loading... + + + + diff --git a/docs/main.3a4188089cbe6f9feb08.js b/docs/main.3a4188089cbe6f9feb08.js new file mode 100644 index 00000000..d27555c7 --- /dev/null +++ b/docs/main.3a4188089cbe6f9feb08.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[1],{0:function(e,t,n){e.exports=n("zUnb")},"5O0x":function(e,t){e.exports="import {Component, OnDestroy} from '@angular/core';\nimport {FormControl} from '@angular/forms';\nimport {INgxSelectOption} from '../../lib/ngx-select/ngx-select.interfaces';\n\n@Component({\n selector: 'single-demo',\n templateUrl: './single-demo.html'\n})\nexport class SingleDemoComponent implements OnDestroy {\n public items: string[] = ['Amsterdam', 'Antwerp', 'Athens', 'Barcelona',\n 'Berlin', 'Birmingham', 'Bradford', 'Bremen', 'Brussels', 'Bucharest',\n 'Budapest', 'Cologne', 'Copenhagen', 'Dortmund', 'Dresden', 'Dublin',\n 'D\xfcsseldorf', 'Essen', 'Frankfurt', 'Genoa', 'Glasgow', 'Gothenburg',\n 'Hamburg', 'Hannover', 'Helsinki', 'Krak\xf3w', 'Leeds', 'Leipzig', 'Lisbon',\n 'London', 'Madrid', 'Manchester', 'Marseille', 'Milan', 'Munich', 'M\xe1laga',\n 'Naples', 'Palermo', 'Paris', 'Pozna\u0144', 'Prague', 'Riga', 'Rome',\n 'Rotterdam', 'Seville', 'Sheffield', 'Sofia', 'Stockholm', 'Stuttgart',\n 'The Hague', 'Turin', 'Valencia', 'Vienna', 'Vilnius', 'Warsaw', 'Wroc\u0142aw',\n 'Zagreb', 'Zaragoza', '\u0141\xf3d\u017a'];\n\n public ngxControl = new FormControl();\n\n private _ngxDefaultTimeout;\n private _ngxDefaultInterval;\n private _ngxDefault;\n\n constructor() {\n this._ngxDefaultTimeout = setTimeout(() => {\n this._ngxDefaultInterval = setInterval(() => {\n const idx = Math.floor(Math.random() * (this.items.length - 1));\n this._ngxDefault = this.items[idx];\n // console.log('new default value = ', this._ngxDefault);\n }, 2000);\n }, 2000);\n }\n\n ngOnDestroy(): void {\n clearTimeout(this._ngxDefaultTimeout);\n clearInterval(this._ngxDefaultInterval);\n }\n\n public doNgxDefault(): any {\n return this._ngxDefault;\n }\n\n public inputTyped = (source: string, text: string) => console.log('SingleDemoComponent.inputTyped', source, text);\n\n public doFocus = () => console.log('SingleDemoComponent.doFocus');\n\n public doBlur = () => console.log('SingleDemoComponent.doBlur');\n\n public doOpen = () => console.log('SingleDemoComponent.doOpen');\n\n public doClose = () => console.log('SingleDemoComponent.doClose');\n\n public doSelect = (value: any) => console.log('SingleDemoComponent.doSelect', value);\n\n public doRemove = (value: any) => console.log('SingleDemoComponent.doRemove', value);\n\n public doSelectOptions = (options: INgxSelectOption[]) => console.log('SingleDemoComponent.doSelectOptions', options);\n}\n"},Fam2:function(e,t){e.exports='

Select a color

\n
\n
\n \n\n \n \n \n ({{option.data.hex}})\n \n\n \n "{{input}}" not found\n \n\n \n

\n
\n
{{ngxValue | json}}
\n
\n
\n \n
\n
\n
\n'},HfGU:function(e,t){e.exports='

Select a single city with {{items.length}} items

\n
\n
\n \n \n

\n
\n
{{ngxValue | json}}
\n
\n
\n \n
\n
\n
'},LvDl:function(e,t,n){(function(e){var r;(function(){var o,i=200,l="Expected a function",u="__lodash_placeholder__",a=1,s=2,c=4,d=1,f=2,p=1,h=2,g=4,v=8,m=16,y=32,_=64,b=128,w=256,x=512,C=800,E=16,k=1/0,O=9007199254740991,S=1.7976931348623157e308,T=NaN,A=4294967295,D=A-1,I=A>>>1,N=[["ary",b],["bind",p],["bindKey",h],["curry",v],["curryRight",m],["flip",x],["partial",y],["partialRight",_],["rearg",w]],V="[object Arguments]",P="[object Array]",M="[object AsyncFunction]",R="[object Boolean]",j="[object Date]",F="[object DOMException]",B="[object Error]",L="[object Function]",H="[object GeneratorFunction]",z="[object Map]",U="[object Number]",G="[object Null]",q="[object Object]",W="[object Proxy]",Z="[object RegExp]",$="[object Set]",Q="[object String]",K="[object Symbol]",Y="[object Undefined]",J="[object WeakMap]",X="[object ArrayBuffer]",ee="[object DataView]",te="[object Float32Array]",ne="[object Float64Array]",re="[object Int8Array]",oe="[object Int16Array]",ie="[object Int32Array]",le="[object Uint8Array]",ue="[object Uint8ClampedArray]",ae="[object Uint16Array]",se="[object Uint32Array]",ce=/\b__p \+= '';/g,de=/\b(__p \+=) '' \+/g,fe=/(__e\(.*?\)|\b__t\)) \+\n'';/g,pe=/&(?:amp|lt|gt|quot|#39);/g,he=/[&<>"']/g,ge=RegExp(pe.source),ve=RegExp(he.source),me=/<%-([\s\S]+?)%>/g,ye=/<%([\s\S]+?)%>/g,_e=/<%=([\s\S]+?)%>/g,be=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,we=/^\w*$/,xe=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Ce=/[\\^$.*+?()[\]{}|]/g,Ee=RegExp(Ce.source),ke=/^\s+|\s+$/g,Oe=/^\s+/,Se=/\s+$/,Te=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,Ae=/\{\n\/\* \[wrapped with (.+)\] \*/,De=/,? & /,Ie=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,Ne=/\\(\\)?/g,Ve=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,Pe=/\w*$/,Me=/^[-+]0x[0-9a-f]+$/i,Re=/^0b[01]+$/i,je=/^\[object .+?Constructor\]$/,Fe=/^0o[0-7]+$/i,Be=/^(?:0|[1-9]\d*)$/,Le=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,He=/($^)/,ze=/['\n\r\u2028\u2029\\]/g,Ue="\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff",Ge="\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",qe="["+Ge+"]",We="["+Ue+"]",Ze="\\d+",$e="[a-z\\xdf-\\xf6\\xf8-\\xff]",Qe="[^\\ud800-\\udfff"+Ge+Ze+"\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde]",Ke="\\ud83c[\\udffb-\\udfff]",Ye="[^\\ud800-\\udfff]",Je="(?:\\ud83c[\\udde6-\\uddff]){2}",Xe="[\\ud800-\\udbff][\\udc00-\\udfff]",et="[A-Z\\xc0-\\xd6\\xd8-\\xde]",tt="(?:"+$e+"|"+Qe+")",nt="(?:"+et+"|"+Qe+")",rt="(?:"+We+"|"+Ke+")?",ot="[\\ufe0e\\ufe0f]?"+rt+"(?:\\u200d(?:"+[Ye,Je,Xe].join("|")+")[\\ufe0e\\ufe0f]?"+rt+")*",it="(?:"+["[\\u2700-\\u27bf]",Je,Xe].join("|")+")"+ot,lt="(?:"+[Ye+We+"?",We,Je,Xe,"[\\ud800-\\udfff]"].join("|")+")",ut=RegExp("['\u2019]","g"),at=RegExp(We,"g"),st=RegExp(Ke+"(?="+Ke+")|"+lt+ot,"g"),ct=RegExp([et+"?"+$e+"+(?:['\u2019](?:d|ll|m|re|s|t|ve))?(?="+[qe,et,"$"].join("|")+")",nt+"+(?:['\u2019](?:D|LL|M|RE|S|T|VE))?(?="+[qe,et+tt,"$"].join("|")+")",et+"?"+tt+"+(?:['\u2019](?:d|ll|m|re|s|t|ve))?",et+"+(?:['\u2019](?:D|LL|M|RE|S|T|VE))?","\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])","\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",Ze,it].join("|"),"g"),dt=RegExp("[\\u200d\\ud800-\\udfff"+Ue+"\\ufe0e\\ufe0f]"),ft=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,pt=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],ht=-1,gt={};gt[te]=gt[ne]=gt[re]=gt[oe]=gt[ie]=gt[le]=gt[ue]=gt[ae]=gt[se]=!0,gt[V]=gt[P]=gt[X]=gt[R]=gt[ee]=gt[j]=gt[B]=gt[L]=gt[z]=gt[U]=gt[q]=gt[Z]=gt[$]=gt[Q]=gt[J]=!1;var vt={};vt[V]=vt[P]=vt[X]=vt[ee]=vt[R]=vt[j]=vt[te]=vt[ne]=vt[re]=vt[oe]=vt[ie]=vt[z]=vt[U]=vt[q]=vt[Z]=vt[$]=vt[Q]=vt[K]=vt[le]=vt[ue]=vt[ae]=vt[se]=!0,vt[B]=vt[L]=vt[J]=!1;var mt={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},yt=parseFloat,_t=parseInt,bt="object"==typeof global&&global&&global.Object===Object&&global,wt="object"==typeof self&&self&&self.Object===Object&&self,xt=bt||wt||Function("return this")(),Ct="object"==typeof t&&t&&!t.nodeType&&t,Et=Ct&&"object"==typeof e&&e&&!e.nodeType&&e,kt=Et&&Et.exports===Ct,Ot=kt&&bt.process,St=function(){try{return Et&&Et.require&&Et.require("util").types||Ot&&Ot.binding&&Ot.binding("util")}catch(e){}}(),Tt=St&&St.isArrayBuffer,At=St&&St.isDate,Dt=St&&St.isMap,It=St&&St.isRegExp,Nt=St&&St.isSet,Vt=St&&St.isTypedArray;function Pt(e,t,n){switch(n.length){case 0:return e.call(t);case 1:return e.call(t,n[0]);case 2:return e.call(t,n[0],n[1]);case 3:return e.call(t,n[0],n[1],n[2])}return e.apply(t,n)}function Mt(e,t,n,r){for(var o=-1,i=null==e?0:e.length;++o-1}function Lt(e,t,n){for(var r=-1,o=null==e?0:e.length;++r-1;);return n}function sn(e,t){for(var n=e.length;n--&&Qt(t,e[n],0)>-1;);return n}var cn=en({"\xc0":"A","\xc1":"A","\xc2":"A","\xc3":"A","\xc4":"A","\xc5":"A","\xe0":"a","\xe1":"a","\xe2":"a","\xe3":"a","\xe4":"a","\xe5":"a","\xc7":"C","\xe7":"c","\xd0":"D","\xf0":"d","\xc8":"E","\xc9":"E","\xca":"E","\xcb":"E","\xe8":"e","\xe9":"e","\xea":"e","\xeb":"e","\xcc":"I","\xcd":"I","\xce":"I","\xcf":"I","\xec":"i","\xed":"i","\xee":"i","\xef":"i","\xd1":"N","\xf1":"n","\xd2":"O","\xd3":"O","\xd4":"O","\xd5":"O","\xd6":"O","\xd8":"O","\xf2":"o","\xf3":"o","\xf4":"o","\xf5":"o","\xf6":"o","\xf8":"o","\xd9":"U","\xda":"U","\xdb":"U","\xdc":"U","\xf9":"u","\xfa":"u","\xfb":"u","\xfc":"u","\xdd":"Y","\xfd":"y","\xff":"y","\xc6":"Ae","\xe6":"ae","\xde":"Th","\xfe":"th","\xdf":"ss","\u0100":"A","\u0102":"A","\u0104":"A","\u0101":"a","\u0103":"a","\u0105":"a","\u0106":"C","\u0108":"C","\u010a":"C","\u010c":"C","\u0107":"c","\u0109":"c","\u010b":"c","\u010d":"c","\u010e":"D","\u0110":"D","\u010f":"d","\u0111":"d","\u0112":"E","\u0114":"E","\u0116":"E","\u0118":"E","\u011a":"E","\u0113":"e","\u0115":"e","\u0117":"e","\u0119":"e","\u011b":"e","\u011c":"G","\u011e":"G","\u0120":"G","\u0122":"G","\u011d":"g","\u011f":"g","\u0121":"g","\u0123":"g","\u0124":"H","\u0126":"H","\u0125":"h","\u0127":"h","\u0128":"I","\u012a":"I","\u012c":"I","\u012e":"I","\u0130":"I","\u0129":"i","\u012b":"i","\u012d":"i","\u012f":"i","\u0131":"i","\u0134":"J","\u0135":"j","\u0136":"K","\u0137":"k","\u0138":"k","\u0139":"L","\u013b":"L","\u013d":"L","\u013f":"L","\u0141":"L","\u013a":"l","\u013c":"l","\u013e":"l","\u0140":"l","\u0142":"l","\u0143":"N","\u0145":"N","\u0147":"N","\u014a":"N","\u0144":"n","\u0146":"n","\u0148":"n","\u014b":"n","\u014c":"O","\u014e":"O","\u0150":"O","\u014d":"o","\u014f":"o","\u0151":"o","\u0154":"R","\u0156":"R","\u0158":"R","\u0155":"r","\u0157":"r","\u0159":"r","\u015a":"S","\u015c":"S","\u015e":"S","\u0160":"S","\u015b":"s","\u015d":"s","\u015f":"s","\u0161":"s","\u0162":"T","\u0164":"T","\u0166":"T","\u0163":"t","\u0165":"t","\u0167":"t","\u0168":"U","\u016a":"U","\u016c":"U","\u016e":"U","\u0170":"U","\u0172":"U","\u0169":"u","\u016b":"u","\u016d":"u","\u016f":"u","\u0171":"u","\u0173":"u","\u0174":"W","\u0175":"w","\u0176":"Y","\u0177":"y","\u0178":"Y","\u0179":"Z","\u017b":"Z","\u017d":"Z","\u017a":"z","\u017c":"z","\u017e":"z","\u0132":"IJ","\u0133":"ij","\u0152":"Oe","\u0153":"oe","\u0149":"'n","\u017f":"s"}),dn=en({"&":"&","<":"<",">":">",'"':""","'":"'"});function fn(e){return"\\"+mt[e]}function pn(e){return dt.test(e)}function hn(e){var t=-1,n=Array(e.size);return e.forEach(function(e,r){n[++t]=[r,e]}),n}function gn(e,t){return function(n){return e(t(n))}}function vn(e,t){for(var n=-1,r=e.length,o=0,i=[];++n",""":'"',"'":"'"}),xn=function e(t){var n,r=(t=null==t?xt:xn.defaults(xt.Object(),t,xn.pick(xt,pt))).Array,Ue=t.Date,Ge=t.Error,qe=t.Function,We=t.Math,Ze=t.Object,$e=t.RegExp,Qe=t.String,Ke=t.TypeError,Ye=r.prototype,Je=Ze.prototype,Xe=t["__core-js_shared__"],et=qe.prototype.toString,tt=Je.hasOwnProperty,nt=0,rt=(n=/[^.]+$/.exec(Xe&&Xe.keys&&Xe.keys.IE_PROTO||""))?"Symbol(src)_1."+n:"",ot=Je.toString,it=et.call(Ze),lt=xt._,st=$e("^"+et.call(tt).replace(Ce,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),dt=kt?t.Buffer:o,mt=t.Symbol,bt=t.Uint8Array,wt=dt?dt.allocUnsafe:o,Ct=gn(Ze.getPrototypeOf,Ze),Et=Ze.create,Ot=Je.propertyIsEnumerable,St=Ye.splice,Wt=mt?mt.isConcatSpreadable:o,en=mt?mt.iterator:o,Cn=mt?mt.toStringTag:o,En=function(){try{var e=Ci(Ze,"defineProperty");return e({},"",{}),e}catch(e){}}(),kn=t.clearTimeout!==xt.clearTimeout&&t.clearTimeout,On=Ue&&Ue.now!==xt.Date.now&&Ue.now,Sn=t.setTimeout!==xt.setTimeout&&t.setTimeout,Tn=We.ceil,An=We.floor,Dn=Ze.getOwnPropertySymbols,In=dt?dt.isBuffer:o,Nn=t.isFinite,Vn=Ye.join,Pn=gn(Ze.keys,Ze),Mn=We.max,Rn=We.min,jn=Ue.now,Fn=t.parseInt,Bn=We.random,Ln=Ye.reverse,Hn=Ci(t,"DataView"),zn=Ci(t,"Map"),Un=Ci(t,"Promise"),Gn=Ci(t,"Set"),qn=Ci(t,"WeakMap"),Wn=Ci(Ze,"create"),Zn=qn&&new qn,$n={},Qn=Qi(Hn),Kn=Qi(zn),Yn=Qi(Un),Jn=Qi(Gn),Xn=Qi(qn),er=mt?mt.prototype:o,tr=er?er.valueOf:o,nr=er?er.toString:o;function rr(e){if(fu(e)&&!tu(e)&&!(e instanceof ur)){if(e instanceof lr)return e;if(tt.call(e,"__wrapped__"))return Ki(e)}return new lr(e)}var or=function(){function e(){}return function(t){if(!du(t))return{};if(Et)return Et(t);e.prototype=t;var n=new e;return e.prototype=o,n}}();function ir(){}function lr(e,t){this.__wrapped__=e,this.__actions__=[],this.__chain__=!!t,this.__index__=0,this.__values__=o}function ur(e){this.__wrapped__=e,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=A,this.__views__=[]}function ar(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t=t?e:t)),e}function Cr(e,t,n,r,i,l){var u,d=t&a,f=t&s,p=t&c;if(n&&(u=i?n(e,r,i,l):n(e)),u!==o)return u;if(!du(e))return e;var h=tu(e);if(h){if(u=function(e){var t=e.length,n=new e.constructor(t);return t&&"string"==typeof e[0]&&tt.call(e,"index")&&(n.index=e.index,n.input=e.input),n}(e),!d)return Ho(e,u)}else{var g=Oi(e),v=g==L||g==H;if(iu(e))return Mo(e,d);if(g==q||g==V||v&&!i){if(u=f||v?{}:Ti(e),!d)return f?function(e,t){return zo(e,ki(e),t)}(e,function(t,n){return t&&zo(e,Uu(e),t)}(u)):function(e,t){return zo(e,Ei(e),t)}(e,_r(u,e))}else{if(!vt[g])return i?e:{};u=function(e,t,n){var r,o,i=e.constructor;switch(t){case X:return Ro(e);case R:case j:return new i(+e);case ee:return function(e,t){var n=t?Ro(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.byteLength)}(e,n);case te:case ne:case re:case oe:case ie:case le:case ue:case ae:case se:return jo(e,n);case z:return new i;case U:case Q:return new i(e);case Z:return(o=new(r=e).constructor(r.source,Pe.exec(r))).lastIndex=r.lastIndex,o;case $:return new i;case K:return tr?Ze(tr.call(e)):{}}}(e,g,d)}}l||(l=new fr);var m=l.get(e);if(m)return m;if(l.set(e,u),mu(e))return e.forEach(function(r){u.add(Cr(r,t,n,r,e,l))}),u;if(pu(e))return e.forEach(function(r,o){u.set(o,Cr(r,t,n,o,e,l))}),u;var y=h?o:(p?f?vi:gi:f?Uu:zu)(e);return Rt(y||e,function(r,o){y&&(r=e[o=r]),vr(u,o,Cr(r,t,n,o,e,l))}),u}function Er(e,t,n){var r=n.length;if(null==e)return!r;for(e=Ze(e);r--;){var i=n[r],l=e[i];if(l===o&&!(i in e)||!(0,t[i])(l))return!1}return!0}function kr(e,t,n){if("function"!=typeof e)throw new Ke(l);return zi(function(){e.apply(o,n)},t)}function Or(e,t,n,r){var o=-1,l=Bt,u=!0,a=e.length,s=[],c=t.length;if(!a)return s;n&&(t=Ht(t,on(n))),r?(l=Lt,u=!1):t.length>=i&&(l=un,u=!1,t=new dr(t));e:for(;++o-1},sr.prototype.set=function(e,t){var n=this.__data__,r=mr(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this},cr.prototype.clear=function(){this.size=0,this.__data__={hash:new ar,map:new(zn||sr),string:new ar}},cr.prototype.delete=function(e){var t=wi(this,e).delete(e);return this.size-=t?1:0,t},cr.prototype.get=function(e){return wi(this,e).get(e)},cr.prototype.has=function(e){return wi(this,e).has(e)},cr.prototype.set=function(e,t){var n=wi(this,e),r=n.size;return n.set(e,t),this.size+=n.size==r?0:1,this},dr.prototype.add=dr.prototype.push=function(e){return this.__data__.set(e,"__lodash_hash_undefined__"),this},dr.prototype.has=function(e){return this.__data__.has(e)},fr.prototype.clear=function(){this.__data__=new sr,this.size=0},fr.prototype.delete=function(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n},fr.prototype.get=function(e){return this.__data__.get(e)},fr.prototype.has=function(e){return this.__data__.has(e)},fr.prototype.set=function(e,t){var n=this.__data__;if(n instanceof sr){var r=n.__data__;if(!zn||r.length0&&n(u)?t>1?Nr(u,t-1,n,r,o):zt(o,u):r||(o[o.length]=u)}return o}var Vr=Wo(),Pr=Wo(!0);function Mr(e,t){return e&&Vr(e,t,zu)}function Rr(e,t){return e&&Pr(e,t,zu)}function jr(e,t){return Ft(t,function(t){return au(e[t])})}function Fr(e,t){for(var n=0,r=(t=Io(t,e)).length;null!=e&&nt}function zr(e,t){return null!=e&&tt.call(e,t)}function Ur(e,t){return null!=e&&t in Ze(e)}function Gr(e,t,n){for(var i=n?Lt:Bt,l=e[0].length,u=e.length,a=u,s=r(u),c=1/0,d=[];a--;){var f=e[a];a&&t&&(f=Ht(f,on(t))),c=Rn(f.length,c),s[a]=!n&&(t||l>=120&&f.length>=120)?new dr(a&&f):o}f=e[0];var p=-1,h=s[0];e:for(;++p=u?a:a*("desc"==n[r]?-1:1)}return e.index-t.index}(e,t,n)});r--;)e[r]=e[r].value;return e}(Xr(e,function(e,n,o){return{criteria:Ht(t,function(t){return t(e)}),index:++r,value:e}}))}function io(e,t,n){for(var r=-1,o=t.length,i={};++r-1;)u!==e&&St.call(u,a,1),St.call(e,a,1);return e}function uo(e,t){for(var n=e?t.length:0,r=n-1;n--;){var o=t[n];if(n==r||o!==i){var i=o;Di(o)?St.call(e,o,1):Co(e,o)}}return e}function ao(e,t){return e+An(Bn()*(t-e+1))}function so(e,t){var n="";if(!e||t<1||t>O)return n;do{t%2&&(n+=e),(t=An(t/2))&&(e+=e)}while(t);return n}function co(e,t){return Ui(Fi(e,t,ha),e+"")}function fo(e,t,n,r){if(!du(e))return e;for(var i=-1,l=(t=Io(t,e)).length,u=l-1,a=e;null!=a&&++ii?0:i+t),(n=n>i?i:n)<0&&(n+=i),i=t>n?0:n-t>>>0,t>>>=0;for(var l=r(i);++o>>1,l=e[i];null!==l&&!_u(l)&&(n?l<=t:l=i){var c=t?null:ui(e);if(c)return mn(c);u=!1,o=un,s=new dr}else s=t?[]:a;e:for(;++r=r?e:go(e,t,n)}var Po=kn||function(e){return xt.clearTimeout(e)};function Mo(e,t){if(t)return e.slice();var n=e.length,r=wt?wt(n):new e.constructor(n);return e.copy(r),r}function Ro(e){var t=new e.constructor(e.byteLength);return new bt(t).set(new bt(e)),t}function jo(e,t){var n=t?Ro(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.length)}function Fo(e,t){if(e!==t){var n=e!==o,r=null===e,i=e==e,l=_u(e),u=t!==o,a=null===t,s=t==t,c=_u(t);if(!a&&!c&&!l&&e>t||l&&u&&s&&!a&&!c||r&&u&&s||!n&&s||!i)return 1;if(!r&&!l&&!c&&e1?n[i-1]:o,u=i>2?n[2]:o;for(l=e.length>3&&"function"==typeof l?(i--,l):o,u&&Ii(n[0],n[1],u)&&(l=i<3?o:l,i=1),t=Ze(t);++r-1?i[l?t[u]:u]:o}}function Yo(e){return hi(function(t){var n=t.length,r=n,i=lr.prototype.thru;for(e&&t.reverse();r--;){var u=t[r];if("function"!=typeof u)throw new Ke(l);if(i&&!a&&"wrapper"==yi(u))var a=new lr([],!0)}for(r=a?r:n;++r1&&v.reverse(),f&&ca))return!1;var c=l.get(e);if(c&&l.get(t))return c==t;var p=-1,h=!0,g=n&f?new dr:o;for(l.set(e,t),l.set(t,e);++p-1&&e%1==0&&e1?"& ":"")+t[r],t=t.join(n>2?", ":" "),e.replace(Te,"{\n/* [wrapped with "+t+"] */\n")}(r,function(e,t){return Rt(N,function(n){var r="_."+n[0];t&n[1]&&!Bt(e,r)&&e.push(r)}),e.sort()}(function(e){var t=e.match(Ae);return t?t[1].split(De):[]}(r),n)))}function qi(e){var t=0,n=0;return function(){var r=jn(),i=E-(r-n);if(n=r,i>0){if(++t>=C)return arguments[0]}else t=0;return e.apply(o,arguments)}}function Wi(e,t){var n=-1,r=e.length,i=r-1;for(t=t===o?r:t;++n1?e[t-1]:o;return vl(e,n="function"==typeof n?(e.pop(),n):o)});function Cl(e){var t=rr(e);return t.__chain__=!0,t}function El(e,t){return t(e)}var kl=hi(function(e){var t=e.length,n=t?e[0]:0,r=this.__wrapped__,i=function(t){return wr(t,e)};return!(t>1||this.__actions__.length)&&r instanceof ur&&Di(n)?((r=r.slice(n,+n+(t?1:0))).__actions__.push({func:El,args:[i],thisArg:o}),new lr(r,this.__chain__).thru(function(e){return t&&!e.length&&e.push(o),e})):this.thru(i)}),Ol=Uo(function(e,t,n){tt.call(e,n)?++e[n]:br(e,n,1)}),Sl=Ko(el),Tl=Ko(tl);function Al(e,t){return(tu(e)?Rt:Sr)(e,bi(t,3))}function Dl(e,t){return(tu(e)?function(e,t){for(var n=null==e?0:e.length;n--&&!1!==t(e[n],n,e););return e}:Tr)(e,bi(t,3))}var Il=Uo(function(e,t,n){tt.call(e,n)?e[n].push(t):br(e,n,[t])}),Nl=co(function(e,t,n){var o=-1,i="function"==typeof t,l=ru(e)?r(e.length):[];return Sr(e,function(e){l[++o]=i?Pt(t,e,n):qr(e,t,n)}),l}),Vl=Uo(function(e,t,n){br(e,n,t)});function Pl(e,t){return(tu(e)?Ht:Xr)(e,bi(t,3))}var Ml=Uo(function(e,t,n){e[n?0:1].push(t)},function(){return[[],[]]}),Rl=co(function(e,t){if(null==e)return[];var n=t.length;return n>1&&Ii(e,t[0],t[1])?t=[]:n>2&&Ii(t[0],t[1],t[2])&&(t=[t[0]]),oo(e,Nr(t,1),[])}),jl=On||function(){return xt.Date.now()};function Fl(e,t,n){return t=n?o:t,si(e,b,o,o,o,o,t=e&&null==t?e.length:t)}function Bl(e,t){var n;if("function"!=typeof t)throw new Ke(l);return e=ku(e),function(){return--e>0&&(n=t.apply(this,arguments)),e<=1&&(t=o),n}}var Ll=co(function(e,t,n){var r=p;if(n.length){var o=vn(n,_i(Ll));r|=y}return si(e,r,t,n,o)}),Hl=co(function(e,t,n){var r=p|h;if(n.length){var o=vn(n,_i(Hl));r|=y}return si(t,r,e,n,o)});function zl(e,t,n){var r,i,u,a,s,c,d=0,f=!1,p=!1,h=!0;if("function"!=typeof e)throw new Ke(l);function g(t){var n=r,l=i;return r=i=o,d=t,a=e.apply(l,n)}function v(e){var n=e-c;return c===o||n>=t||n<0||p&&e-d>=u}function m(){var e=jl();if(v(e))return y(e);s=zi(m,function(e){var n=t-(e-c);return p?Rn(n,u-(e-d)):n}(e))}function y(e){return s=o,h&&r?g(e):(r=i=o,a)}function _(){var e=jl(),n=v(e);if(r=arguments,i=this,c=e,n){if(s===o)return function(e){return d=e,s=zi(m,t),f?g(e):a}(c);if(p)return s=zi(m,t),g(c)}return s===o&&(s=zi(m,t)),a}return t=Su(t)||0,du(n)&&(f=!!n.leading,u=(p="maxWait"in n)?Mn(Su(n.maxWait)||0,t):u,h="trailing"in n?!!n.trailing:h),_.cancel=function(){s!==o&&Po(s),d=0,r=c=i=s=o},_.flush=function(){return s===o?a:y(jl())},_}var Ul=co(function(e,t){return kr(e,1,t)}),Gl=co(function(e,t,n){return kr(e,Su(t)||0,n)});function ql(e,t){if("function"!=typeof e||null!=t&&"function"!=typeof t)throw new Ke(l);var n=function(){var r=arguments,o=t?t.apply(this,r):r[0],i=n.cache;if(i.has(o))return i.get(o);var l=e.apply(this,r);return n.cache=i.set(o,l)||i,l};return n.cache=new(ql.Cache||cr),n}function Wl(e){if("function"!=typeof e)throw new Ke(l);return function(){var t=arguments;switch(t.length){case 0:return!e.call(this);case 1:return!e.call(this,t[0]);case 2:return!e.call(this,t[0],t[1]);case 3:return!e.call(this,t[0],t[1],t[2])}return!e.apply(this,t)}}ql.Cache=cr;var Zl=No(function(e,t){var n=(t=1==t.length&&tu(t[0])?Ht(t[0],on(bi())):Ht(Nr(t,1),on(bi()))).length;return co(function(r){for(var o=-1,i=Rn(r.length,n);++o=t}),eu=Wr(function(){return arguments}())?Wr:function(e){return fu(e)&&tt.call(e,"callee")&&!Ot.call(e,"callee")},tu=r.isArray,nu=Tt?on(Tt):function(e){return fu(e)&&Lr(e)==X};function ru(e){return null!=e&&cu(e.length)&&!au(e)}function ou(e){return fu(e)&&ru(e)}var iu=In||Sa,lu=At?on(At):function(e){return fu(e)&&Lr(e)==j};function uu(e){if(!fu(e))return!1;var t=Lr(e);return t==B||t==F||"string"==typeof e.message&&"string"==typeof e.name&&!gu(e)}function au(e){if(!du(e))return!1;var t=Lr(e);return t==L||t==H||t==M||t==W}function su(e){return"number"==typeof e&&e==ku(e)}function cu(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=O}function du(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}function fu(e){return null!=e&&"object"==typeof e}var pu=Dt?on(Dt):function(e){return fu(e)&&Oi(e)==z};function hu(e){return"number"==typeof e||fu(e)&&Lr(e)==U}function gu(e){if(!fu(e)||Lr(e)!=q)return!1;var t=Ct(e);if(null===t)return!0;var n=tt.call(t,"constructor")&&t.constructor;return"function"==typeof n&&n instanceof n&&et.call(n)==it}var vu=It?on(It):function(e){return fu(e)&&Lr(e)==Z},mu=Nt?on(Nt):function(e){return fu(e)&&Oi(e)==$};function yu(e){return"string"==typeof e||!tu(e)&&fu(e)&&Lr(e)==Q}function _u(e){return"symbol"==typeof e||fu(e)&&Lr(e)==K}var bu=Vt?on(Vt):function(e){return fu(e)&&cu(e.length)&&!!gt[Lr(e)]},wu=oi(Jr),xu=oi(function(e,t){return e<=t});function Cu(e){if(!e)return[];if(ru(e))return yu(e)?bn(e):Ho(e);if(en&&e[en])return function(e){for(var t,n=[];!(t=e.next()).done;)n.push(t.value);return n}(e[en]());var t=Oi(e);return(t==z?hn:t==$?mn:Yu)(e)}function Eu(e){return e?(e=Su(e))===k||e===-k?(e<0?-1:1)*S:e==e?e:0:0===e?e:0}function ku(e){var t=Eu(e),n=t%1;return t==t?n?t-n:t:0}function Ou(e){return e?xr(ku(e),0,A):0}function Su(e){if("number"==typeof e)return e;if(_u(e))return T;if(du(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=du(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=e.replace(ke,"");var n=Re.test(e);return n||Fe.test(e)?_t(e.slice(2),n?2:8):Me.test(e)?T:+e}function Tu(e){return zo(e,Uu(e))}function Au(e){return null==e?"":wo(e)}var Du=Go(function(e,t){if(Mi(t)||ru(t))zo(t,zu(t),e);else for(var n in t)tt.call(t,n)&&vr(e,n,t[n])}),Iu=Go(function(e,t){zo(t,Uu(t),e)}),Nu=Go(function(e,t,n,r){zo(t,Uu(t),e,r)}),Vu=Go(function(e,t,n,r){zo(t,zu(t),e,r)}),Pu=hi(wr),Mu=co(function(e,t){e=Ze(e);var n=-1,r=t.length,i=r>2?t[2]:o;for(i&&Ii(t[0],t[1],i)&&(r=1);++n1),t}),zo(e,vi(e),n),r&&(n=Cr(n,a|s|c,fi));for(var o=t.length;o--;)Co(n,t[o]);return n}),Zu=hi(function(e,t){return null==e?{}:function(e,t){return io(e,t,function(t,n){return Fu(e,n)})}(e,t)});function $u(e,t){if(null==e)return{};var n=Ht(vi(e),function(e){return[e]});return t=bi(t),io(e,n,function(e,n){return t(e,n[0])})}var Qu=ai(zu),Ku=ai(Uu);function Yu(e){return null==e?[]:ln(e,zu(e))}var Ju=$o(function(e,t,n){return t=t.toLowerCase(),e+(n?Xu(t):t)});function Xu(e){return ua(Au(e).toLowerCase())}function ea(e){return(e=Au(e))&&e.replace(Le,cn).replace(at,"")}var ta=$o(function(e,t,n){return e+(n?"-":"")+t.toLowerCase()}),na=$o(function(e,t,n){return e+(n?" ":"")+t.toLowerCase()}),ra=Zo("toLowerCase"),oa=$o(function(e,t,n){return e+(n?"_":"")+t.toLowerCase()}),ia=$o(function(e,t,n){return e+(n?" ":"")+ua(t)}),la=$o(function(e,t,n){return e+(n?" ":"")+t.toUpperCase()}),ua=Zo("toUpperCase");function aa(e,t,n){return e=Au(e),(t=n?o:t)===o?function(e){return ft.test(e)}(e)?function(e){return e.match(ct)||[]}(e):function(e){return e.match(Ie)||[]}(e):e.match(t)||[]}var sa=co(function(e,t){try{return Pt(e,o,t)}catch(e){return uu(e)?e:new Ge(e)}}),ca=hi(function(e,t){return Rt(t,function(t){t=$i(t),br(e,t,Ll(e[t],e))}),e});function da(e){return function(){return e}}var fa=Yo(),pa=Yo(!0);function ha(e){return e}function ga(e){return Kr("function"==typeof e?e:Cr(e,a))}var va=co(function(e,t){return function(n){return qr(n,e,t)}}),ma=co(function(e,t){return function(n){return qr(e,n,t)}});function ya(e,t,n){var r=zu(t),o=jr(t,r);null!=n||du(t)&&(o.length||!r.length)||(n=t,t=e,e=this,o=jr(t,zu(t)));var i=!(du(n)&&"chain"in n&&!n.chain),l=au(e);return Rt(o,function(n){var r=t[n];e[n]=r,l&&(e.prototype[n]=function(){var t=this.__chain__;if(i||t){var n=e(this.__wrapped__);return(n.__actions__=Ho(this.__actions__)).push({func:r,args:arguments,thisArg:e}),n.__chain__=t,n}return r.apply(e,zt([this.value()],arguments))})}),e}function _a(){}var ba=ti(Ht),wa=ti(jt),xa=ti(qt);function Ca(e){return Ni(e)?Xt($i(e)):function(e){return function(t){return Fr(t,e)}}(e)}var Ea=ri(),ka=ri(!0);function Oa(){return[]}function Sa(){return!1}var Ta,Aa=ei(function(e,t){return e+t},0),Da=li("ceil"),Ia=ei(function(e,t){return e/t},1),Na=li("floor"),Va=ei(function(e,t){return e*t},1),Pa=li("round"),Ma=ei(function(e,t){return e-t},0);return rr.after=function(e,t){if("function"!=typeof t)throw new Ke(l);return e=ku(e),function(){if(--e<1)return t.apply(this,arguments)}},rr.ary=Fl,rr.assign=Du,rr.assignIn=Iu,rr.assignInWith=Nu,rr.assignWith=Vu,rr.at=Pu,rr.before=Bl,rr.bind=Ll,rr.bindAll=ca,rr.bindKey=Hl,rr.castArray=function(){if(!arguments.length)return[];var e=arguments[0];return tu(e)?e:[e]},rr.chain=Cl,rr.chunk=function(e,t,n){t=(n?Ii(e,t,n):t===o)?1:Mn(ku(t),0);var i=null==e?0:e.length;if(!i||t<1)return[];for(var l=0,u=0,a=r(Tn(i/t));li?0:i+n),(r=r===o||r>i?i:ku(r))<0&&(r+=i),r=n>r?0:Ou(r);n>>0)?(e=Au(e))&&("string"==typeof t||null!=t&&!vu(t))&&!(t=wo(t))&&pn(e)?Vo(bn(e),0,n):e.split(t,n):[]},rr.spread=function(e,t){if("function"!=typeof e)throw new Ke(l);return t=null==t?0:Mn(ku(t),0),co(function(n){var r=n[t],o=Vo(n,0,t);return r&&zt(o,r),Pt(e,this,o)})},rr.tail=function(e){var t=null==e?0:e.length;return t?go(e,1,t):[]},rr.take=function(e,t,n){return e&&e.length?go(e,0,(t=n||t===o?1:ku(t))<0?0:t):[]},rr.takeRight=function(e,t,n){var r=null==e?0:e.length;return r?go(e,(t=r-(t=n||t===o?1:ku(t)))<0?0:t,r):[]},rr.takeRightWhile=function(e,t){return e&&e.length?ko(e,bi(t,3),!1,!0):[]},rr.takeWhile=function(e,t){return e&&e.length?ko(e,bi(t,3)):[]},rr.tap=function(e,t){return t(e),e},rr.throttle=function(e,t,n){var r=!0,o=!0;if("function"!=typeof e)throw new Ke(l);return du(n)&&(r="leading"in n?!!n.leading:r,o="trailing"in n?!!n.trailing:o),zl(e,t,{leading:r,maxWait:t,trailing:o})},rr.thru=El,rr.toArray=Cu,rr.toPairs=Qu,rr.toPairsIn=Ku,rr.toPath=function(e){return tu(e)?Ht(e,$i):_u(e)?[e]:Ho(Zi(Au(e)))},rr.toPlainObject=Tu,rr.transform=function(e,t,n){var r=tu(e),o=r||iu(e)||bu(e);if(t=bi(t,4),null==n){var i=e&&e.constructor;n=o?r?new i:[]:du(e)&&au(i)?or(Ct(e)):{}}return(o?Rt:Mr)(e,function(e,r,o){return t(n,e,r,o)}),n},rr.unary=function(e){return Fl(e,1)},rr.union=fl,rr.unionBy=pl,rr.unionWith=hl,rr.uniq=function(e){return e&&e.length?xo(e):[]},rr.uniqBy=function(e,t){return e&&e.length?xo(e,bi(t,2)):[]},rr.uniqWith=function(e,t){return t="function"==typeof t?t:o,e&&e.length?xo(e,o,t):[]},rr.unset=function(e,t){return null==e||Co(e,t)},rr.unzip=gl,rr.unzipWith=vl,rr.update=function(e,t,n){return null==e?e:Eo(e,t,Do(n))},rr.updateWith=function(e,t,n,r){return r="function"==typeof r?r:o,null==e?e:Eo(e,t,Do(n),r)},rr.values=Yu,rr.valuesIn=function(e){return null==e?[]:ln(e,Uu(e))},rr.without=ml,rr.words=aa,rr.wrap=function(e,t){return $l(Do(t),e)},rr.xor=yl,rr.xorBy=_l,rr.xorWith=bl,rr.zip=wl,rr.zipObject=function(e,t){return To(e||[],t||[],vr)},rr.zipObjectDeep=function(e,t){return To(e||[],t||[],fo)},rr.zipWith=xl,rr.entries=Qu,rr.entriesIn=Ku,rr.extend=Iu,rr.extendWith=Nu,ya(rr,rr),rr.add=Aa,rr.attempt=sa,rr.camelCase=Ju,rr.capitalize=Xu,rr.ceil=Da,rr.clamp=function(e,t,n){return n===o&&(n=t,t=o),n!==o&&(n=(n=Su(n))==n?n:0),t!==o&&(t=(t=Su(t))==t?t:0),xr(Su(e),t,n)},rr.clone=function(e){return Cr(e,c)},rr.cloneDeep=function(e){return Cr(e,a|c)},rr.cloneDeepWith=function(e,t){return Cr(e,a|c,t="function"==typeof t?t:o)},rr.cloneWith=function(e,t){return Cr(e,c,t="function"==typeof t?t:o)},rr.conformsTo=function(e,t){return null==t||Er(e,t,zu(t))},rr.deburr=ea,rr.defaultTo=function(e,t){return null==e||e!=e?t:e},rr.divide=Ia,rr.endsWith=function(e,t,n){e=Au(e),t=wo(t);var r=e.length,i=n=n===o?r:xr(ku(n),0,r);return(n-=t.length)>=0&&e.slice(n,i)==t},rr.eq=Yl,rr.escape=function(e){return(e=Au(e))&&ve.test(e)?e.replace(he,dn):e},rr.escapeRegExp=function(e){return(e=Au(e))&&Ee.test(e)?e.replace(Ce,"\\$&"):e},rr.every=function(e,t,n){var r=tu(e)?jt:Ar;return n&&Ii(e,t,n)&&(t=o),r(e,bi(t,3))},rr.find=Sl,rr.findIndex=el,rr.findKey=function(e,t){return Zt(e,bi(t,3),Mr)},rr.findLast=Tl,rr.findLastIndex=tl,rr.findLastKey=function(e,t){return Zt(e,bi(t,3),Rr)},rr.floor=Na,rr.forEach=Al,rr.forEachRight=Dl,rr.forIn=function(e,t){return null==e?e:Vr(e,bi(t,3),Uu)},rr.forInRight=function(e,t){return null==e?e:Pr(e,bi(t,3),Uu)},rr.forOwn=function(e,t){return e&&Mr(e,bi(t,3))},rr.forOwnRight=function(e,t){return e&&Rr(e,bi(t,3))},rr.get=ju,rr.gt=Jl,rr.gte=Xl,rr.has=function(e,t){return null!=e&&Si(e,t,zr)},rr.hasIn=Fu,rr.head=rl,rr.identity=ha,rr.includes=function(e,t,n,r){e=ru(e)?e:Yu(e),n=n&&!r?ku(n):0;var o=e.length;return n<0&&(n=Mn(o+n,0)),yu(e)?n<=o&&e.indexOf(t,n)>-1:!!o&&Qt(e,t,n)>-1},rr.indexOf=function(e,t,n){var r=null==e?0:e.length;if(!r)return-1;var o=null==n?0:ku(n);return o<0&&(o=Mn(r+o,0)),Qt(e,t,o)},rr.inRange=function(e,t,n){return t=Eu(t),n===o?(n=t,t=0):n=Eu(n),function(e,t,n){return e>=Rn(t,n)&&e=-O&&e<=O},rr.isSet=mu,rr.isString=yu,rr.isSymbol=_u,rr.isTypedArray=bu,rr.isUndefined=function(e){return e===o},rr.isWeakMap=function(e){return fu(e)&&Oi(e)==J},rr.isWeakSet=function(e){return fu(e)&&"[object WeakSet]"==Lr(e)},rr.join=function(e,t){return null==e?"":Vn.call(e,t)},rr.kebabCase=ta,rr.last=ul,rr.lastIndexOf=function(e,t,n){var r=null==e?0:e.length;if(!r)return-1;var i=r;return n!==o&&(i=(i=ku(n))<0?Mn(r+i,0):Rn(i,r-1)),t==t?function(e,t,n){for(var r=n+1;r--;)if(e[r]===t)return r;return r}(e,t,i):$t(e,Yt,i,!0)},rr.lowerCase=na,rr.lowerFirst=ra,rr.lt=wu,rr.lte=xu,rr.max=function(e){return e&&e.length?Dr(e,ha,Hr):o},rr.maxBy=function(e,t){return e&&e.length?Dr(e,bi(t,2),Hr):o},rr.mean=function(e){return Jt(e,ha)},rr.meanBy=function(e,t){return Jt(e,bi(t,2))},rr.min=function(e){return e&&e.length?Dr(e,ha,Jr):o},rr.minBy=function(e,t){return e&&e.length?Dr(e,bi(t,2),Jr):o},rr.stubArray=Oa,rr.stubFalse=Sa,rr.stubObject=function(){return{}},rr.stubString=function(){return""},rr.stubTrue=function(){return!0},rr.multiply=Va,rr.nth=function(e,t){return e&&e.length?ro(e,ku(t)):o},rr.noConflict=function(){return xt._===this&&(xt._=lt),this},rr.noop=_a,rr.now=jl,rr.pad=function(e,t,n){e=Au(e);var r=(t=ku(t))?_n(e):0;if(!t||r>=t)return e;var o=(t-r)/2;return ni(An(o),n)+e+ni(Tn(o),n)},rr.padEnd=function(e,t,n){e=Au(e);var r=(t=ku(t))?_n(e):0;return t&&rt){var r=e;e=t,t=r}if(n||e%1||t%1){var i=Bn();return Rn(e+i*(t-e+yt("1e-"+((i+"").length-1))),t)}return ao(e,t)},rr.reduce=function(e,t,n){var r=tu(e)?Ut:tn,o=arguments.length<3;return r(e,bi(t,4),n,o,Sr)},rr.reduceRight=function(e,t,n){var r=tu(e)?Gt:tn,o=arguments.length<3;return r(e,bi(t,4),n,o,Tr)},rr.repeat=function(e,t,n){return t=(n?Ii(e,t,n):t===o)?1:ku(t),so(Au(e),t)},rr.replace=function(){var e=arguments,t=Au(e[0]);return e.length<3?t:t.replace(e[1],e[2])},rr.result=function(e,t,n){var r=-1,i=(t=Io(t,e)).length;for(i||(i=1,e=o);++rO)return[];var n=A,r=Rn(e,A);t=bi(t),e-=A;for(var o=rn(r,t);++n=l)return e;var a=n-_n(r);if(a<1)return r;var s=u?Vo(u,0,a).join(""):e.slice(0,a);if(i===o)return s+r;if(u&&(a+=s.length-a),vu(i)){if(e.slice(a).search(i)){var c,d=s;for(i.global||(i=$e(i.source,Au(Pe.exec(i))+"g")),i.lastIndex=0;c=i.exec(d);)var f=c.index;s=s.slice(0,f===o?a:f)}}else if(e.indexOf(wo(i),a)!=a){var p=s.lastIndexOf(i);p>-1&&(s=s.slice(0,p))}return s+r},rr.unescape=function(e){return(e=Au(e))&&ge.test(e)?e.replace(pe,wn):e},rr.uniqueId=function(e){var t=++nt;return Au(e)+t},rr.upperCase=la,rr.upperFirst=ua,rr.each=Al,rr.eachRight=Dl,rr.first=rl,ya(rr,(Ta={},Mr(rr,function(e,t){tt.call(rr.prototype,t)||(Ta[t]=e)}),Ta),{chain:!1}),rr.VERSION="4.17.11",Rt(["bind","bindKey","curry","curryRight","partial","partialRight"],function(e){rr[e].placeholder=rr}),Rt(["drop","take"],function(e,t){ur.prototype[e]=function(n){n=n===o?1:Mn(ku(n),0);var r=this.__filtered__&&!t?new ur(this):this.clone();return r.__filtered__?r.__takeCount__=Rn(n,r.__takeCount__):r.__views__.push({size:Rn(n,A),type:e+(r.__dir__<0?"Right":"")}),r},ur.prototype[e+"Right"]=function(t){return this.reverse()[e](t).reverse()}}),Rt(["filter","map","takeWhile"],function(e,t){var n=t+1,r=1==n||3==n;ur.prototype[e]=function(e){var t=this.clone();return t.__iteratees__.push({iteratee:bi(e,3),type:n}),t.__filtered__=t.__filtered__||r,t}}),Rt(["head","last"],function(e,t){var n="take"+(t?"Right":"");ur.prototype[e]=function(){return this[n](1).value()[0]}}),Rt(["initial","tail"],function(e,t){var n="drop"+(t?"":"Right");ur.prototype[e]=function(){return this.__filtered__?new ur(this):this[n](1)}}),ur.prototype.compact=function(){return this.filter(ha)},ur.prototype.find=function(e){return this.filter(e).head()},ur.prototype.findLast=function(e){return this.reverse().find(e)},ur.prototype.invokeMap=co(function(e,t){return"function"==typeof e?new ur(this):this.map(function(n){return qr(n,e,t)})}),ur.prototype.reject=function(e){return this.filter(Wl(bi(e)))},ur.prototype.slice=function(e,t){e=ku(e);var n=this;return n.__filtered__&&(e>0||t<0)?new ur(n):(e<0?n=n.takeRight(-e):e&&(n=n.drop(e)),t!==o&&(n=(t=ku(t))<0?n.dropRight(-t):n.take(t-e)),n)},ur.prototype.takeRightWhile=function(e){return this.reverse().takeWhile(e).reverse()},ur.prototype.toArray=function(){return this.take(A)},Mr(ur.prototype,function(e,t){var n=/^(?:filter|find|map|reject)|While$/.test(t),r=/^(?:head|last)$/.test(t),i=rr[r?"take"+("last"==t?"Right":""):t],l=r||/^find/.test(t);i&&(rr.prototype[t]=function(){var t=this.__wrapped__,u=r?[1]:arguments,a=t instanceof ur,s=u[0],c=a||tu(t),d=function(e){var t=i.apply(rr,zt([e],u));return r&&f?t[0]:t};c&&n&&"function"==typeof s&&1!=s.length&&(a=c=!1);var f=this.__chain__,p=l&&!f,h=a&&!this.__actions__.length;if(!l&&c){t=h?t:new ur(this);var g=e.apply(t,u);return g.__actions__.push({func:El,args:[d],thisArg:o}),new lr(g,f)}return p&&h?e.apply(this,u):(g=this.thru(d),p?r?g.value()[0]:g.value():g)})}),Rt(["pop","push","shift","sort","splice","unshift"],function(e){var t=Ye[e],n=/^(?:push|sort|unshift)$/.test(e)?"tap":"thru",r=/^(?:pop|shift)$/.test(e);rr.prototype[e]=function(){var e=arguments;if(r&&!this.__chain__){var o=this.value();return t.apply(tu(o)?o:[],e)}return this[n](function(n){return t.apply(tu(n)?n:[],e)})}}),Mr(ur.prototype,function(e,t){var n=rr[t];if(n){var r=n.name+"";($n[r]||($n[r]=[])).push({name:t,func:n})}}),$n[Jo(o,h).name]=[{name:"wrapper",func:o}],ur.prototype.clone=function(){var e=new ur(this.__wrapped__);return e.__actions__=Ho(this.__actions__),e.__dir__=this.__dir__,e.__filtered__=this.__filtered__,e.__iteratees__=Ho(this.__iteratees__),e.__takeCount__=this.__takeCount__,e.__views__=Ho(this.__views__),e},ur.prototype.reverse=function(){if(this.__filtered__){var e=new ur(this);e.__dir__=-1,e.__filtered__=!0}else(e=this.clone()).__dir__*=-1;return e},ur.prototype.value=function(){var e=this.__wrapped__.value(),t=this.__dir__,n=tu(e),r=t<0,o=n?e.length:0,i=function(e,t,n){for(var r=-1,o=n.length;++r=this.__values__.length;return{done:e,value:e?o:this.__values__[this.__index__++]}},rr.prototype.plant=function(e){for(var t,n=this;n instanceof ir;){var r=Ki(n);r.__index__=0,r.__values__=o,t?i.__wrapped__=r:t=r;var i=r;n=n.__wrapped__}return i.__wrapped__=e,t},rr.prototype.reverse=function(){var e=this.__wrapped__;if(e instanceof ur){var t=e;return this.__actions__.length&&(t=new ur(this)),(t=t.reverse()).__actions__.push({func:El,args:[dl],thisArg:o}),new lr(t,this.__chain__)}return this.thru(dl)},rr.prototype.toJSON=rr.prototype.valueOf=rr.prototype.value=function(){return Oo(this.__wrapped__,this.__actions__)},rr.prototype.first=rr.prototype.head,en&&(rr.prototype[en]=function(){return this}),rr}();xt._=xn,(r=(function(){return xn}).call(t,n,t,e))===o||(e.exports=r)}).call(this)}).call(this,n("YuTi")(e))},NzhH:function(e,t){e.exports='

Usage

\n
    \n
  1. Install ngx-select-ex through npm package manager using the following command:

    \n
     npm i ngx-select-ex --save\n
    \n

    For usage with Angular 4 install using the following command:

    \n
     npm i ngx-select-ex@ng4 --save\n
    \n
  2. \n
  3. Add NgxSelectModule into your AppModule class. app.module.ts would look like this:

    \n
     import {NgModule} from '@angular/core';\n import {BrowserModule} from '@angular/platform-browser';\n import {AppComponent} from './app.component';\n import { NgxSelectModule } from 'ngx-select-ex';\n\n @NgModule({\n   imports: [BrowserModule, NgxSelectModule],\n   declarations: [AppComponent],\n   bootstrap: [AppComponent],\n })\n export class AppModule {\n }\n
    \n

    If you want to change the default options then use next code:

    \n
     import {NgModule} from '@angular/core';\n import {BrowserModule} from '@angular/platform-browser';\n import {AppComponent} from './app.component';\n import { NgxSelectModule, INgxSelectOptions } from 'ngx-select-ex';\n\n const CustomSelectOptions: INgxSelectOptions = { // Check the interface for more options\n     optionValueField: 'id',\n     optionTextField: 'name'\n };\n\n @NgModule({\n   imports: [BrowserModule, NgxSelectModule.forRoot(CustomSelectOptions)],\n   declarations: [AppComponent],\n   bootstrap: [AppComponent],\n })\n export class AppModule {\n }\n
    \n
  4. \n
  5. Include Bootstrap styles.\n For example add to your index.html

    \n
     <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css">\n
    \n
  6. \n
  7. Add the tag <ngx-select> into some html

    \n
     <ngx-select [items]="items" [(ngModel)]="itemId">\n
    \n
  8. \n
  9. More information regarding of using ngx-select-ex is located in demo.

    \n
  10. \n
\n

API

\n

Any item can be disabled for prevent selection. For disable an item add the property disabled to the item.

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
InputTypeDefaultDescription
[items]any[][]Items array. Should be an array of objects with id and text properties. As convenience, you may also pass an array of strings, in which case the same string is used for both the ID and the text. Items may be nested by adding a options property to any item, whose value should be another array of items. Items that have children may omit to have an ID.
optionValueFieldstring'id'Provide an opportunity to change the name an id property of objects in the items
optionTextFieldstring'text'Provide an opportunity to change the name a text property of objects in the items
optGroupLabelFieldstring'label'Provide an opportunity to change the name a label property of objects with an options property in the items
optGroupOptionsFieldstring'options'Provide an opportunity to change the name of an options property of objects in the items
[multiple]booleanfalseMode of this component. If set true user can select more than one option
[allowClear]booleanfalseSet to true to allow the selection to be cleared. This option only applies to single-value inputs
[placeholder]string''Set to true Placeholder text to display when the element has no focus and selected items
[noAutoComplete]booleanfalseSet to true Set to true to hide the search input. This option only applies to single-value inputs
[keepSelectedItems]booleanfalseStoring the selected items when the item list is changed
[disabled]booleanfalseWhen true, it specifies that the component should be disabled
[defaultValue]any[][]Use to set default value
autoSelectSingleOptionbooleanfalseAuto select a non disabled single option
autoClearSearchbooleanfalseAuto clear a search text after select an option. Has effect for multiple = true
noResultsFoundstring'No results found'The default text showed when a search has no results
size'small'/'default'/'large''default'Adding bootstrap classes: form-control-sm, input-sm, form-control-lg input-lg, btn-sm, btn-lg
searchCallback(search: string, item: INgxSelectOption) => booleannullThe callback function for custom filtering the select list
autoActiveOnMouseEnterbooleantrueAutomatically activate item when mouse enter on it
\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
OutputDescription
(typed)Fired on changing search input. Returns string with that value.
(focus)Fired on select focus
(blur)Fired on select blur
(open)Fired on select dropdown open
(close)Fired on select dropdown close
(select)Fired on an item selected by user. Returns value of the selected item.
(remove)Fired on an item removed by user. Returns value of the removed item.
(navigated)Fired on navigate by the dropdown list. Returns: INgxOptionNavigated.
(selectionChanges)Fired on change selected options. Returns: INgxSelectOption[].
\n

Warning! Although the component contains the select and the remove events, the better solution is using valueChanges of the FormControl.

\n
import {Component} from '@angular/core';\nimport {FormControl} from '@angular/forms';\n\n@Component({\n    selector: 'app-example',\n    template: `<ngx-select [items]="['111', '222']" [formControl]="selectControl"></ngx-select>`\n})\nclass ExampleComponent {\n    public selectControl = new FormControl();\n\n    constructor() {\n        this.selectControl.valueChanges.subscribe(value => console.log(value));\n    }\n}\n
\n

Styles and customization

\n

Currently, the component contains CSS classes named within BEM Methodology.\nAs well it contains the "Bootstrap classes". Recommended use BEM classes for style customization.

\n

List of styles for customization:

\n
    \n
  • ngx-select - Main class of the component.
  • \n
  • ngx-select_multiple - Modifier of the multiple mode. It's available when the property multiple is true.
  • \n
  • ngx-select__disabled - Layer for the disabled mode.
  • \n
  • ngx-select__selected - The common container for displaying selected items.
  • \n
  • ngx-select__toggle - The toggle for single mode. It's available when the property multiple is false.
  • \n
  • ngx-select__placeholder - The placeholder item. It's available when the property multiple is false.
  • \n
  • ngx-select__selected-single - The selected item with single mode. It's available when the property multiple is false.
  • \n
  • ngx-select__selected-plural - The multiple selected item. It's available when the property multiple is true.
  • \n
  • ngx-select__allow-clear - The indicator that the selected single item can be removed. It's available while properties the multiple is false and the allowClear is true.
  • \n
  • ngx-select__toggle-buttons - The container of buttons such as the clear and the toggle.
  • \n
  • ngx-select__toggle-caret - The drop-down button of the single mode. It's available when the property multiple is false.
  • \n
  • ngx-select__clear - The button clear.
  • \n
  • ngx-select__clear-icon - The cross icon.
  • \n
  • ngx-select__search - The input field for full text lives searching.
  • \n
  • ngx-select__choices - The common container of items.
  • \n
  • ngx-select__item-group - The group of items.
  • \n
  • ngx-select__item - An item.
  • \n
  • ngx-select__item_disabled - Modifier of a disabled item.
  • \n
  • ngx-select__item_active - Modifier of the activated item.
  • \n
\n

Templates

\n

For extended rendering customisation you are can use the ng-template:

\n
<ngx-select [items]="items" optionValueField="hex" optionTextField="name" [(ngModel)]="ngxValue">\n\n    <ng-template ngx-select-option-selected let-option let-text="text">\n        <span class="color-box" [style]="style('background-color:' + option.value)"></span>\n        <span [innerHtml]="text"></span>\n        ({{option.data.hex}})\n    </ng-template>\n\n    <ng-template ngx-select-option let-option let-text="text">\n        <span class="color-box" [style]="style('background-color:' + option.value)"></span>\n        <span [innerHtml]="text"></span>\n        ({{option.data.hex}})\n    </ng-template>\n\n    <ng-template ngx-select-option-not-found>\n        Nothing found\n    </ng-template>\n\n</ngx-select>\n
\n

Also, you are can mix directives for reducing template:

\n
<ngx-select [items]="items" optionValueField="hex" optionTextField="name" [(ngModel)]="ngxValue">\n    <ng-template ngx-select-option-selected ngx-select-option let-option let-text="text">\n        <span class="color-box" [style]="style('background-color:' + option.value)"></span>\n        <span [innerHtml]="text"></span>\n        ({{option.data.hex}})\n    </ng-template>\n\n    <ng-template ngx-select-option-not-found let-input>\n        Not found <button (click)="addItem(input)">(+) Add "{{input}}" as new item</button>\n    </ng-template>\n</ngx-select>\n
\n

Description details of the directives:

\n
    \n
  1. ngx-select-option-selected - Customization rendering selected options.\n Representing variables:
      \n
    • option (implicit) - object of type INgxSelectOption.
    • \n
    • text - The text defined by the property optionTextField.
    • \n
    • index - Number value of index the option in the select list. Always equal to zero for the single select.
    • \n
    \n
  2. \n
  3. ngx-select-option - Customization rendering options in the dropdown menu.\n Representing variables:
      \n
    • option (implicit) - object of type INgxSelectOption.
    • \n
    • text - The highlighted text defined by the property optionTextField. It is highlighted in the search.
    • \n
    • index - Number value of index for the top level.
    • \n
    • subIndex - Number value of index for the second level.
    • \n
    \n
  4. \n
  5. ngx-select-option-not-found - Customization "not found text". Does not represent any variables.
  6. \n
\n'},Yqad:function(e,t){e.exports="import {Component} from '@angular/core';\n\n@Component({\n selector: 'no-autocomplete-demo',\n templateUrl: './no-autocomplete-demo.html'\n})\nexport class NoAutoCompleteDemoComponent {\n public _items: string[] = ['Amsterdam', 'Antwerp', 'Athens', 'Barcelona',\n 'Berlin', 'Birmingham', 'Bradford', 'Bremen', 'Brussels', 'Bucharest',\n 'Budapest', 'Cologne', 'Copenhagen', 'Dortmund', 'Dresden', 'Dublin',\n 'D\xfcsseldorf', 'Essen', 'Frankfurt', 'Genoa', 'Glasgow', 'Gothenburg',\n 'Hamburg', 'Hannover', 'Helsinki', 'Krak\xf3w', 'Leeds', 'Leipzig', 'Lisbon',\n 'London', 'Madrid', 'Manchester', 'Marseille', 'Milan', 'Munich', 'M\xe1laga',\n 'Naples', 'Palermo', 'Paris', 'Pozna\u0144', 'Prague', 'Riga', 'Rome',\n 'Rotterdam', 'Seville', 'Sheffield', 'Sofia', 'Stockholm', 'Stuttgart',\n 'The Hague', 'Turin', 'Valencia', 'Vienna', 'Vilnius', 'Warsaw', 'Wroc\u0142aw',\n 'Zagreb', 'Zaragoza', '\u0141\xf3d\u017a'];\n\n constructor() {\n const a = [];\n for (let i = 1; i <= 20; i++) {\n this._items.forEach(v => a.push(i + ' ' + v));\n }\n this.items = a;\n }\n\n public items: string[] = [];\n public ngxValue: any = [];\n public ngxDisabled = false;\n}\n"},YuTi:function(e,t){e.exports=function(e){return e.webpackPolyfill||(e.deprecate=function(){},e.paths=[],e.children||(e.children=[]),Object.defineProperty(e,"loaded",{enumerable:!0,get:function(){return e.l}}),Object.defineProperty(e,"id",{enumerable:!0,get:function(){return e.i}}),e.webpackPolyfill=1),e}},crnd:function(e,t){function n(e){return Promise.resolve().then(function(){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t})}n.keys=function(){return[]},n.resolve=n,e.exports=n,n.id="crnd"},dsz2:function(e,t){e.exports='

Select multiple cities

\n
\n
\n \n \n

\n
\n
{{ngxValue | json}}
\n
\n
\n \n
\n
\n
\n'},jIeV:function(e,t){e.exports='

Getting started

\n

First of all, Welcome!

\n'},kiQV:function(e){e.exports={name:"ngx-select-ex",version:"3.6.3",description:"Angular based replacement for select boxes",license:"MIT",private:!1,author:"Konstantin Polyntsov ",repository:{type:"git",url:"git+ssh://git@github.com:optimistex/ngx-select-ex.git"},bugs:{url:"https://github.com/optimistex/ngx-select-ex/issues"},homepage:"https://github.com/optimistex/ngx-select-ex#readme",scripts:{e2e:"ng e2e",cz:"git add -A && git status && git-cz",build:"npm run lint && npm run test && npm run build.package && npm run build.demo && git add -A","build.demo":"ng build --prod","build.package":"ng-packagr -p ng-package.json",lint:"ng lint",ng:"ng",precommit:"npm run test",release:"standard-version --commit-all","publish.ng4":"npm publish dist --tag ng4","publish.ng6":"npm publish dist","publish.ng6-dev":"npm publish dist --tag dev",start:"ng serve",test:"ng test --watch false","test-coverage":"ng test --watch false --code-coverage"},"standard-version":{scripts:{postbump:"npm run build"}},keywords:["ngx-select","ngx-select-ex","angular","angular2","angular4","angular5","angular6","select","select2","ui-select","multiselect","multi-select"],peerDependencies:{"@angular/core":">5.0.0","@angular/common":">5.0.0","@angular/platform-browser":">5.0.0"},devDependencies:{"@angular-devkit/build-angular":"~0.8.0","@angular/animations":"^6.1.0","@angular/cli":"~6.2.3","@angular/common":"^6.1.0","@angular/compiler":"^6.1.0","@angular/compiler-cli":"^6.1.0","@angular/core":"^6.1.0","@angular/forms":"^6.1.0","@angular/http":"^6.1.0","@angular/language-service":"^6.1.0","@angular/platform-browser":"^6.1.0","@angular/platform-browser-dynamic":"^6.1.0","@angular/router":"^6.1.0","@types/jasmine":"~2.8.8","@types/jasminewd2":"~2.0.3","@types/marked":"^0.3.0","@types/node":"~8.9.4","@types/webpack":"^3.8.4",codecov:"^3.0.0",codelyzer:"~4.3.0",commitizen:"^2.9.6","core-js":"^2.5.4","cz-conventional-changelog":"^2.1.0","escape-string-regexp":"^1.0.5","html-loader":"^0.5.5",husky:"^0.14.3","jasmine-core":"~2.99.1","jasmine-spec-reporter":"~4.2.1",karma:"~3.0.0","karma-chrome-launcher":"~2.2.0","karma-coverage-istanbul-reporter":"~2.0.1","karma-jasmine":"~1.1.2","karma-jasmine-html-reporter":"^0.2.2",lodash:"^4.17.4","markdown-loader":"^2.0.2","ng-packagr":"^4.2.0","ngx-bootstrap":"^3.0.1","pre-commit":"^1.2.2",protractor:"~5.4.0",rxjs:"^6.3.3","rxjs-compat":"^6.3.3","standard-version":"^4.3.0","ts-node":"~7.0.0",tslint:"~5.11.0",typescript:"~2.9.2","zone.js":"~0.8.26"},config:{commitizen:{path:"cz-conventional-changelog"}},contributors:[{name:"Konstantin Polyntsov",email:"optimistex@gmail.com",url:"https://github.com/optimistex"},{name:"Vyacheslav Chub",email:"vyacheslav.chub@valor-software.com",url:"https://github.com/buchslava"},{name:"Dmitriy Shekhovtsov",email:"valorkin@gmail.com",url:"https://github.com/valorkin"},{name:"Oleksandr Telnov",email:"otelnov@gmail.com",url:"https://github.com/otelnov"}]}},ngBM:function(e,t){e.exports="import {Component} from '@angular/core';\nimport {INgxSelectOption} from '../../lib/ngx-select/ngx-select.interfaces';\n\n@Component({\n selector: 'multiple-demo',\n templateUrl: './multiple-demo.html'\n})\nexport class MultipleDemoComponent {\n public items: string[] = ['Amsterdam', 'Antwerp', 'Athens', 'Barcelona',\n 'Berlin', 'Birmingham', 'Bradford', 'Bremen', 'Brussels', 'Bucharest',\n 'Budapest', 'Cologne', 'Copenhagen', 'Dortmund', 'Dresden', 'Dublin', 'D\xfcsseldorf',\n 'Essen', 'Frankfurt', 'Genoa', 'Glasgow', 'Gothenburg', 'Hamburg', 'Hannover',\n 'Helsinki', 'Leeds', 'Leipzig', 'Lisbon', '\u0141\xf3d\u017a', 'London', 'Krak\xf3w', 'Madrid',\n 'M\xe1laga', 'Manchester', 'Marseille', 'Milan', 'Munich', 'Naples', 'Palermo',\n 'Paris', 'Pozna\u0144', 'Prague', 'Riga', 'Rome', 'Rotterdam', 'Seville', 'Sheffield',\n 'Sofia', 'Stockholm', 'Stuttgart', 'The Hague', 'Turin', 'Valencia', 'Vienna',\n 'Vilnius', 'Warsaw', 'Wroc\u0142aw', 'Zagreb', 'Zaragoza'];\n\n public ngxValue: any = [];\n public ngxDisabled = false;\n\n public doSelectOptions = (options: INgxSelectOption[]) => console.log('MultipleDemoComponent.doSelectOptions', options);\n}\n"},oxjq:function(e,t,n){"use strict";var r=/[|\\{}()[\]^$+*?.]/g;e.exports=function(e){if("string"!=typeof e)throw new TypeError("Expected a string");return e.replace(r,"\\$&")}},rZW4:function(e,t){e.exports="import {Component, ViewEncapsulation} from '@angular/core';\nimport {DomSanitizer, SafeStyle} from '@angular/platform-browser';\n\nconst COLORS = [\n {'name': 'Blue 10', 'hex': '#C0E6FF'},\n {'name': 'Blue 20', 'hex': '#7CC7FF'},\n {'name': 'Blue 30', 'hex': '#5AAAFA', disabled: true},\n {'name': 'Blue 40', 'hex': '#5596E6'},\n {'name': 'Blue 50', 'hex': '#4178BE'},\n {'name': 'Blue 60', 'hex': '#325C80'},\n {'name': 'Blue 70', 'hex': '#264A60'},\n {'name': 'Blue 80', 'hex': '#1D3649'},\n {'name': 'Blue 90', 'hex': '#152935'},\n {'name': 'Blue 100', 'hex': '#010205'},\n {'name': 'Green 10', 'hex': '#C8F08F'},\n {'name': 'Green 20', 'hex': '#B4E051'},\n {'name': 'Green 30', 'hex': '#8CD211'},\n {'name': 'Green 40', 'hex': '#5AA700'},\n {'name': 'Green 50', 'hex': '#4B8400'},\n {'name': 'Green 60', 'hex': '#2D660A'},\n {'name': 'Green 70', 'hex': '#144D14'},\n {'name': 'Green 80', 'hex': '#0A3C02'},\n {'name': 'Green 90', 'hex': '#0C2808'},\n {'name': 'Green 100', 'hex': '#010200'},\n {'name': 'Red 10', 'hex': '#FFD2DD'},\n {'name': 'Red 20', 'hex': '#FFA5B4'},\n {'name': 'Red 30', 'hex': '#FF7D87'},\n {'name': 'Red 40', 'hex': '#FF5050'},\n {'name': 'Red 50', 'hex': '#E71D32'},\n {'name': 'Red 60', 'hex': '#AD1625'},\n {'name': 'Red 70', 'hex': '#8C101C'},\n {'name': 'Red 80', 'hex': '#6E0A1E'},\n {'name': 'Red 90', 'hex': '#4C0A17'},\n {'name': 'Red 100', 'hex': '#040001'},\n {'name': 'Yellow 10', 'hex': '#FDE876'},\n {'name': 'Yellow 20', 'hex': '#FDD600'},\n {'name': 'Yellow 30', 'hex': '#EFC100'},\n {'name': 'Yellow 40', 'hex': '#BE9B00'},\n {'name': 'Yellow 50', 'hex': '#8C7300'},\n {'name': 'Yellow 60', 'hex': '#735F00'},\n {'name': 'Yellow 70', 'hex': '#574A00'},\n {'name': 'Yellow 80', 'hex': '#3C3200'},\n {'name': 'Yellow 90', 'hex': '#281E00'},\n {'name': 'Yellow 100', 'hex': '#020100'}\n];\n\n@Component({\n selector: 'rich-demo',\n templateUrl: './rich-demo.html',\n styles: [`.color-box {\n display: inline-block;\n height: 14px;\n width: 14px;\n margin-right: 4px;\n border: 1px solid #000;\n }`],\n encapsulation: ViewEncapsulation.None // Enable dynamic HTML styles\n})\nexport class RichDemoComponent {\n public items: any[] = COLORS;\n\n public ngxValue: any = [];\n public ngxDisabled = false;\n\n constructor(public sanitizer: DomSanitizer) {\n }\n\n style(data: string): SafeStyle {\n return this.sanitizer.bypassSecurityTrustStyle(data);\n }\n}\n"},sAJ4:function(e,t){e.exports="import {Component} from '@angular/core';\n\n@Component({\n selector: 'children-demo',\n templateUrl: './children-demo.html'\n})\nexport class ChildrenDemoComponent {\n public items: any[] = [\n {\n id: 100,\n text: 'Austria',\n children: [\n {id: 54, text: 'Vienna'}\n ]\n },\n {\n id: 200,\n text: 'Belgium',\n children: [\n {id: 2, text: 'Antwerp'},\n {id: 9, text: 'Brussels'}\n ]\n },\n {\n id: 300,\n text: 'Bulgaria',\n children: [\n {id: 48, text: 'Sofia'}\n ]\n },\n {\n id: 400,\n text: 'Croatia',\n children: [\n {id: 58, text: 'Zagreb'}\n ]\n },\n {\n id: 500,\n text: 'Czech Republic',\n children: [\n {id: 42, text: 'Prague'}\n ]\n },\n {\n id: 600,\n text: 'Denmark',\n children: [\n {id: 13, text: 'Copenhagen'}\n ]\n },\n {\n id: 700,\n text: 'England',\n children: [\n {id: 6, text: 'Birmingham'},\n {id: 7, text: 'Bradford'},\n {id: 26, text: 'Leeds', disabled: true},\n {id: 30, text: 'London'},\n {id: 34, text: 'Manchester'},\n {id: 47, text: 'Sheffield'}\n ]\n },\n {\n id: 800,\n text: 'Finland',\n children: [\n {id: 25, text: 'Helsinki'}\n ]\n },\n {\n id: 900,\n text: 'France',\n children: [\n {id: 35, text: 'Marseille'},\n {id: 40, text: 'Paris'}\n ]\n },\n {\n id: 1000,\n text: 'Germany',\n children: [\n {id: 5, text: 'Berlin'},\n {id: 8, text: 'Bremen'},\n {id: 12, text: 'Cologne'},\n {id: 14, text: 'Dortmund'},\n {id: 15, text: 'Dresden'},\n {id: 17, text: 'D\xfcsseldorf'},\n {id: 18, text: 'Essen'},\n {id: 19, text: 'Frankfurt'},\n {id: 23, text: 'Hamburg'},\n {id: 24, text: 'Hannover'},\n {id: 27, text: 'Leipzig'},\n {id: 37, text: 'Munich'},\n {id: 50, text: 'Stuttgart'}\n ]\n },\n {\n id: 1100,\n text: 'Greece',\n children: [\n {id: 3, text: 'Athens'}\n ]\n },\n {\n id: 1200,\n text: 'Hungary',\n children: [\n {id: 11, text: 'Budapest'}\n ]\n },\n {\n id: 1300,\n text: 'Ireland',\n children: [\n {id: 16, text: 'Dublin'}\n ]\n },\n {\n id: 1400,\n text: 'Italy',\n children: [\n {id: 20, text: 'Genoa'},\n {id: 36, text: 'Milan'},\n {id: 38, text: 'Naples'},\n {id: 39, text: 'Palermo'},\n {id: 44, text: 'Rome'},\n {id: 52, text: 'Turin'}\n ]\n },\n {\n id: 1500,\n text: 'Latvia',\n children: [\n {id: 43, text: 'Riga'}\n ]\n },\n {\n id: 1600,\n text: 'Lithuania',\n children: [\n {id: 55, text: 'Vilnius'}\n ]\n },\n {\n id: 1700,\n text: 'Netherlands',\n children: [\n {id: 1, text: 'Amsterdam'},\n {id: 45, text: 'Rotterdam'},\n {id: 51, text: 'The Hague'}\n ]\n },\n {\n id: 1800,\n text: 'Poland',\n children: [\n {id: 29, text: '\u0141\xf3d\u017a'},\n {id: 31, text: 'Krak\xf3w'},\n {id: 41, text: 'Pozna\u0144'},\n {id: 56, text: 'Warsaw'},\n {id: 57, text: 'Wroc\u0142aw'}\n ]\n },\n {\n id: 1900,\n text: 'Portugal',\n children: [\n {id: 28, text: 'Lisbon'}\n ]\n },\n {\n id: 2000,\n text: 'Romania',\n children: [\n {id: 10, text: 'Bucharest'}\n ]\n },\n {\n id: 2100,\n text: 'Scotland',\n children: [\n {id: 21, text: 'Glasgow'}\n ]\n },\n {\n id: 2200,\n text: 'Spain',\n children: [\n {id: 4, text: 'Barcelona'},\n {id: 32, text: 'Madrid'},\n {id: 33, text: 'M\xe1laga'},\n {id: 46, text: 'Seville'},\n {id: 53, text: 'Valencia'},\n {id: 59, text: 'Zaragoza'}\n ]\n },\n {\n id: 2300,\n text: 'Sweden',\n children: [\n {id: 22, text: 'Gothenburg'},\n {id: 49, text: 'Stockholm'}\n ]\n }\n ];\n\n public ngxValue: any[] = [];\n public ngxDisabled = false;\n}\n"},wor0:function(e,t){e.exports='

Select a single city

\n
\n
\n \n \n

\n
\n
{{ngxControl.value | json}}
\n
\n
\n \n
\n
\n
\n'},xykP:function(e,t){e.exports='

Select a city by country

\n
\n
\n \n \n

\n
\n
{{ngxValue | json}}
\n
\n
\n \n
\n
\n
\n'},zUnb:function(e,t,n){"use strict";n.r(t);var r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)};function o(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}var i=function(){return(i=Object.assign||function(e){for(var t,n=1,r=arguments.length;n=0;u--)(o=e[u])&&(l=(i<3?o(l):i>3?o(t,n,l):o(t,n))||l);return i>3&&l&&Object.defineProperty(t,n,l),l}function u(e,t){return function(n,r){t(n,r,e)}}function a(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)}function s(e){var t="function"==typeof Symbol&&e[Symbol.iterator],n=0;return t?t.call(e):{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}}}function c(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var r,o,i=n.call(e),l=[];try{for(;(void 0===t||t-- >0)&&!(r=i.next()).done;)l.push(r.value)}catch(e){o={error:e}}finally{try{r&&!r.done&&(n=i.return)&&n.call(i)}finally{if(o)throw o.error}}return l}function d(){for(var e=[],t=0;t0?this._next(t.shift()):0===this.active&&this.hasCompleted&&this.destination.complete()},t}(X);function ae(e){return e}function se(){for(var e=[],t=0;t1&&"number"==typeof e[e.length-1]&&(n=e.pop())):"number"==typeof o&&(n=e.pop()),null===r&&1===e.length&&e[0]instanceof P?e[0]:function(e){return void 0===e&&(e=Number.POSITIVE_INFINITY),ie(ae,e)}(n)(re(e,r))}function ce(){return function(e){return e.lift(new de(e))}}var de=function(){function e(e){this.connectable=e}return e.prototype.call=function(e,t){var n=this.connectable;n._refCount++;var r=new fe(e,n),o=t.subscribe(r);return r.closed||(r.connection=n.connect()),o},e}(),fe=function(e){function t(t,n){var r=e.call(this,t)||this;return r.connectable=n,r}return o(t,e),t.prototype._unsubscribe=function(){var e=this.connectable;if(e){this.connectable=null;var t=e._refCount;if(t<=0)this.connection=null;else if(e._refCount=t-1,t>1)this.connection=null;else{var n=this.connection,r=e._connection;this.connection=null,!r||n&&r!==n||r.unsubscribe()}}else this.connection=null},t}(T),pe=function(e){function t(t,n){var r=e.call(this)||this;return r.source=t,r.subjectFactory=n,r._refCount=0,r._isComplete=!1,r}return o(t,e),t.prototype._subscribe=function(e){return this.getSubject().subscribe(e)},t.prototype.getSubject=function(){var e=this._subject;return e&&!e.isStopped||(this._subject=this.subjectFactory()),this._subject},t.prototype.connect=function(){var e=this._connection;return e||(this._isComplete=!1,(e=this._connection=new w).add(this.source.subscribe(new ge(this.getSubject(),this))),e.closed?(this._connection=null,e=w.EMPTY):this._connection=e),e},t.prototype.refCount=function(){return ce()(this)},t}(P).prototype,he={operator:{value:null},_refCount:{value:0,writable:!0},_subject:{value:null,writable:!0},_connection:{value:null,writable:!0},_subscribe:{value:pe._subscribe},_isComplete:{value:pe._isComplete,writable:!0},getSubject:{value:pe.getSubject},connect:{value:pe.connect},refCount:{value:pe.refCount}},ge=function(e){function t(t,n){var r=e.call(this,t)||this;return r.connectable=n,r}return o(t,e),t.prototype._error=function(t){this._unsubscribe(),e.prototype._error.call(this,t)},t.prototype._complete=function(){this.connectable._isComplete=!0,this._unsubscribe(),e.prototype._complete.call(this)},t.prototype._unsubscribe=function(){var e=this.connectable;if(e){this.connectable=null;var t=e._connection;e._refCount=0,e._subject=null,e._connection=null,t&&t.unsubscribe()}},t}(B);function ve(){return new L}function me(){return function(e){return ce()((t=ve,function(e){var n;n="function"==typeof t?t:function(){return t};var r=Object.create(e,he);return r.source=e,r.subjectFactory=n,r})(e));var t}}function ye(e){return{providedIn:e.providedIn||null,factory:e.factory,value:void 0}}var _e=function(){function e(e,t){this._desc=e,this.ngMetadataName="InjectionToken",this.ngInjectableDef=void 0!==t?ye({providedIn:t.providedIn||"root",factory:t.factory}):void 0}return e.prototype.toString=function(){return"InjectionToken "+this._desc},e}(),be="__parameters__";function we(e,t,n){var r=function(e){return function(){for(var t=[],n=0;n ");else if("object"==typeof t){var o=[];for(var i in t)if(t.hasOwnProperty(i)){var l=t[i];o.push(i+":"+("string"==typeof l?JSON.stringify(l):De(l)))}r="{"+o.join(", ")+"}"}return"StaticInjectorError"+(n?"("+n+")":"")+"["+r+"]: "+e.replace(Ye,"\n ")}function nt(e,t){return new Error(tt(e,t))}var rt=void 0;function ot(e){var t=rt;return rt=e,t}function it(e,t){if(void 0===t&&(t=0),void 0===rt)throw new Error("inject() must be called from an injection context");if(null===rt){var n=e.ngInjectableDef;if(n&&"root"==n.providedIn)return void 0===n.value?n.value=n.factory():n.value;if(8&t)return null;throw new Error("Injector: NOT_FOUND ["+De(e)+"]")}return rt.get(e,8&t?null:void 0,t)}function lt(e){for(var t=[],n=0;n0&&(o=setTimeout(function(){r._callbacks=r._callbacks.filter(function(e){return e.timeoutId!==o}),e(r._didWork,r.getPendingTasks())},t)),this._callbacks.push({doneCb:e,timeoutId:o,updateCb:n})},e.prototype.whenStable=function(e,t,n){if(n&&!this.taskTrackingZone)throw new Error('Task tracking zone is required when passing an update callback to whenStable(). Is "zone.js/dist/task-tracking.js" loaded?');this.addCallback(e,t,n),this._runCallbacksIfReady()},e.prototype.getPendingRequestCount=function(){return this._pendingCount},e.prototype.findProviders=function(e,t,n){return[]},e}(),pn=function(){function e(){this._applications=new Map,hn.addToWindow(this)}return e.prototype.registerApplication=function(e,t){this._applications.set(e,t)},e.prototype.unregisterApplication=function(e){this._applications.delete(e)},e.prototype.unregisterAllApplications=function(){this._applications.clear()},e.prototype.getTestability=function(e){return this._applications.get(e)||null},e.prototype.getAllTestabilities=function(){return Array.from(this._applications.values())},e.prototype.getAllRootElements=function(){return Array.from(this._applications.keys())},e.prototype.findTestabilityInTree=function(e,t){return void 0===t&&(t=!0),hn.findTestabilityInTree(this,e,t)},l([a("design:paramtypes",[])],e)}(),hn=new(function(){function e(){}return e.prototype.addToWindow=function(e){},e.prototype.findTestabilityInTree=function(e,t,n){return null},e}()),gn=!0,vn=!1,mn=new _e("AllowMultipleToken");function yn(){return vn=!0,gn}var _n=function(e,t){this.name=e,this.token=t};function bn(e,t,n){void 0===n&&(n=[]);var r="Platform: "+t,o=new _e(r);return function(t){void 0===t&&(t=[]);var i=wn();if(!i||i.injector.get(mn,!1))if(e)e(n.concat(t).concat({provide:o,useValue:!0}));else{var l=n.concat(t).concat({provide:o,useValue:!0});!function(e){if(cn&&!cn.destroyed&&!cn.injector.get(mn,!1))throw new Error("There can be only one platform. Destroy the previous one to create a new one.");cn=e.get(xn);var t=e.get(Vt,null);t&&t.forEach(function(e){return e()})}(Ue.create({providers:l,name:r}))}return function(e){var t=wn();if(!t)throw new Error("No platform exists!");if(!t.injector.get(e,null))throw new Error("A platform with a different configuration has been created. Please destroy it first.");return t}(o)}}function wn(){return cn&&!cn.destroyed?cn:null}var xn=function(){function e(e){this._injector=e,this._modules=[],this._destroyListeners=[],this._destroyed=!1}return e.prototype.bootstrapModuleFactory=function(e,t){var n,r=this,o="noop"===(n=t?t.ngZone:void 0)?new dn:("zone.js"===n?void 0:n)||new rn({enableLongStackTrace:yn()}),i=[{provide:rn,useValue:o}];return o.run(function(){var t=Ue.create({providers:i,parent:r.injector,name:e.moduleType.name}),n=e.create(t),l=n.injector.get(gt,null);if(!l)throw new Error("No ErrorHandler. Is platform module (BrowserModule) included?");return n.onDestroy(function(){return kn(r._modules,n)}),o.runOutsideAngular(function(){return o.onError.subscribe({next:function(e){l.handleError(e)}})}),function(e,t,o){try{var i=((l=n.injector.get(At)).runInitializers(),l.donePromise.then(function(){return r._moduleDoBootstrap(n),n}));return St(i)?i.catch(function(n){throw t.runOutsideAngular(function(){return e.handleError(n)}),n}):i}catch(n){throw t.runOutsideAngular(function(){return e.handleError(n)}),n}var l}(l,o)})},e.prototype.bootstrapModule=function(e,t){var n=this;void 0===t&&(t=[]);var r=this.injector.get(Bt),o=Cn({},t);return r.createCompiler([o]).compileModuleAsync(e).then(function(e){return n.bootstrapModuleFactory(e,o)})},e.prototype._moduleDoBootstrap=function(e){var t=e.injector.get(En);if(e._bootstrapComponents.length>0)e._bootstrapComponents.forEach(function(e){return t.bootstrap(e)});else{if(!e.instance.ngDoBootstrap)throw new Error("The module "+De(e.instance.constructor)+' was bootstrapped, but it does not declare "@NgModule.bootstrap" components nor a "ngDoBootstrap" method. Please define one of these.');e.instance.ngDoBootstrap(t)}this._modules.push(e)},e.prototype.onDestroy=function(e){this._destroyListeners.push(e)},Object.defineProperty(e.prototype,"injector",{get:function(){return this._injector},enumerable:!0,configurable:!0}),e.prototype.destroy=function(){if(this._destroyed)throw new Error("The platform has already been destroyed!");this._modules.slice().forEach(function(e){return e.destroy()}),this._destroyListeners.forEach(function(e){return e()}),this._destroyed=!0},Object.defineProperty(e.prototype,"destroyed",{get:function(){return this._destroyed},enumerable:!0,configurable:!0}),e}();function Cn(e,t){return Array.isArray(t)?t.reduce(Cn,e):i({},e,t)}var En=function(){function e(e,t,n,r,o,i){var l=this;this._zone=e,this._console=t,this._injector=n,this._exceptionHandler=r,this._componentFactoryResolver=o,this._initStatus=i,this._bootstrapListeners=[],this._views=[],this._runningTick=!1,this._enforceNoNewChanges=!1,this._stable=!0,this.componentTypes=[],this.components=[],this._enforceNoNewChanges=yn(),this._zone.onMicrotaskEmpty.subscribe({next:function(){l._zone.run(function(){l.tick()})}});var u=new P(function(e){l._stable=l._zone.isStable&&!l._zone.hasPendingMacrotasks&&!l._zone.hasPendingMicrotasks,l._zone.runOutsideAngular(function(){e.next(l._stable),e.complete()})}),a=new P(function(e){var t;l._zone.runOutsideAngular(function(){t=l._zone.onStable.subscribe(function(){rn.assertNotInAngularZone(),Te(function(){l._stable||l._zone.hasPendingMacrotasks||l._zone.hasPendingMicrotasks||(l._stable=!0,e.next(!0))})})});var n=l._zone.onUnstable.subscribe(function(){rn.assertInAngularZone(),l._stable&&(l._stable=!1,l._zone.runOutsideAngular(function(){e.next(!1)}))});return function(){t.unsubscribe(),n.unsubscribe()}});this.isStable=se(u,a.pipe(me()))}var t;return t=e,e.prototype.bootstrap=function(e,t){var n,r=this;if(!this._initStatus.done)throw new Error("Cannot bootstrap as there are still asynchronous initializers running. Bootstrap components in the `ngDoBootstrap` method of the root module.");n=e instanceof Ht?e:this._componentFactoryResolver.resolveComponentFactory(e),this.componentTypes.push(n.componentType);var o=n instanceof Qt?null:this._injector.get(Kt),i=n.create(Ue.NULL,[],t||n.selector,o);i.onDestroy(function(){r._unloadComponent(i)});var l=i.injector.get(fn,null);return l&&i.injector.get(pn).registerApplication(i.location.nativeElement,l),this._loadComponent(i),yn()&&this._console.log("Angular is running in the development mode. Call enableProdMode() to enable the production mode."),i},e.prototype.tick=function(){var e=this;if(this._runningTick)throw new Error("ApplicationRef.tick is called recursively");var n=t._tickScope();try{this._runningTick=!0,this._views.forEach(function(e){return e.detectChanges()}),this._enforceNoNewChanges&&this._views.forEach(function(e){return e.checkNoChanges()})}catch(t){this._zone.runOutsideAngular(function(){return e._exceptionHandler.handleError(t)})}finally{this._runningTick=!1,tn(n)}},e.prototype.attachView=function(e){var t=e;this._views.push(t),t.attachToAppRef(this)},e.prototype.detachView=function(e){var t=e;kn(this._views,t),t.detachFromAppRef()},e.prototype._loadComponent=function(e){this.attachView(e.hostView),this.tick(),this.components.push(e),this._injector.get(Mt,[]).concat(this._bootstrapListeners).forEach(function(t){return t(e)})},e.prototype._unloadComponent=function(e){this.detachView(e.hostView),kn(this.components,e)},e.prototype.ngOnDestroy=function(){this._views.slice().forEach(function(e){return e.destroy()})},Object.defineProperty(e.prototype,"viewCount",{get:function(){return this._views.length},enumerable:!0,configurable:!0}),e._tickScope=en("ApplicationRef#tick()"),e}();function kn(e,t){var n=e.indexOf(t);n>-1&&e.splice(n,1)}var On=function(){},Sn=function(e){return e[e.Important=1]="Important",e[e.DashCase=2]="DashCase",e}({}),Tn=function(){},An=function(e){this.nativeElement=e},Dn=function(){function e(){this.dirty=!0,this._results=[],this.changes=new nn,this.length=0}return e.prototype.map=function(e){return this._results.map(e)},e.prototype.filter=function(e){return this._results.filter(e)},e.prototype.find=function(e){return this._results.find(e)},e.prototype.reduce=function(e,t){return this._results.reduce(e,t)},e.prototype.forEach=function(e){this._results.forEach(e)},e.prototype.some=function(e){return this._results.some(e)},e.prototype.toArray=function(){return this._results.slice()},e.prototype[Se()]=function(){return this._results[Se()]()},e.prototype.toString=function(){return this._results.toString()},e.prototype.reset=function(e){this._results=function e(t){return t.reduce(function(t,n){var r=Array.isArray(n)?e(n):n;return t.concat(r)},[])}(e),this.dirty=!1,this.length=this._results.length,this.last=this._results[this.length-1],this.first=this._results[0]},e.prototype.notifyOnChanges=function(){this.changes.emit(this)},e.prototype.setDirty=function(){this.dirty=!0},e.prototype.destroy=function(){this.changes.complete(),this.changes.unsubscribe()},e}(),In=function(){},Nn=function(){},Vn=function(){},Pn=function(){function e(e,t,n){this._debugContext=n,this.nativeNode=e,t&&t instanceof Mn?t.addChild(this):this.parent=null,this.listeners=[]}return Object.defineProperty(e.prototype,"injector",{get:function(){return this._debugContext.injector},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"componentInstance",{get:function(){return this._debugContext.component},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"context",{get:function(){return this._debugContext.context},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"references",{get:function(){return this._debugContext.references},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"providerTokens",{get:function(){return this._debugContext.providerTokens},enumerable:!0,configurable:!0}),e}(),Mn=function(e){function t(t,n,r){var o=e.call(this,t,n,r)||this;return o.properties={},o.attributes={},o.classes={},o.styles={},o.childNodes=[],o.nativeElement=t,o}return o(t,e),t.prototype.addChild=function(e){e&&(this.childNodes.push(e),e.parent=this)},t.prototype.removeChild=function(e){var t=this.childNodes.indexOf(e);-1!==t&&(e.parent=null,this.childNodes.splice(t,1))},t.prototype.insertChildrenAfter=function(e,t){var n,r=this,o=this.childNodes.indexOf(e);-1!==o&&((n=this.childNodes).splice.apply(n,d([o+1,0],t)),t.forEach(function(e){e.parent&&e.parent.removeChild(e),e.parent=r}))},t.prototype.insertBefore=function(e,t){var n=this.childNodes.indexOf(e);-1===n?this.addChild(t):(t.parent&&t.parent.removeChild(t),t.parent=this,this.childNodes.splice(n,0,t))},t.prototype.query=function(e){return this.queryAll(e)[0]||null},t.prototype.queryAll=function(e){var t=[];return function e(t,n,r){t.childNodes.forEach(function(t){t instanceof Mn&&(n(t)&&r.push(t),e(t,n,r))})}(this,e,t),t},t.prototype.queryAllNodes=function(e){var t=[];return function e(t,n,r){t instanceof Mn&&t.childNodes.forEach(function(t){n(t)&&r.push(t),t instanceof Mn&&e(t,n,r)})}(this,e,t),t},Object.defineProperty(t.prototype,"children",{get:function(){return this.childNodes.filter(function(e){return e instanceof t})},enumerable:!0,configurable:!0}),t.prototype.triggerEventHandler=function(e,t){this.listeners.forEach(function(n){n.name==e&&n.callback(t)})},t}(Pn),Rn=new Map;function jn(e){return Rn.get(e)||null}function Fn(e){Rn.set(e.nativeNode,e)}function Bn(e,t){var n=zn(e),r=zn(t);return n&&r?function(e,t,n){for(var r=e[Se()](),o=t[Se()]();;){var i=r.next(),l=o.next();if(i.done&&l.done)return!0;if(i.done||l.done)return!1;if(!n(i.value,l.value))return!1}}(e,t,Bn):!(n||!e||"object"!=typeof e&&"function"!=typeof e||r||!t||"object"!=typeof t&&"function"!=typeof t)||Ae(e,t)}var Ln=function(){function e(e){this.wrapped=e}return e.wrap=function(t){return new e(t)},e.unwrap=function(t){return e.isWrapped(t)?t.wrapped:t},e.isWrapped=function(t){return t instanceof e},e}(),Hn=function(){function e(e,t,n){this.previousValue=e,this.currentValue=t,this.firstChange=n}return e.prototype.isFirstChange=function(){return this.firstChange},e}();function zn(e){return!!Un(e)&&(Array.isArray(e)||!(e instanceof Map)&&Se()in e)}function Un(e){return null!==e&&("function"==typeof e||"object"==typeof e)}var Gn=function(){function e(){}return e.prototype.supports=function(e){return zn(e)},e.prototype.create=function(e){return new Wn(e)},e}(),qn=function(e,t){return t},Wn=function(){function e(e){this.length=0,this._linkedRecords=null,this._unlinkedRecords=null,this._previousItHead=null,this._itHead=null,this._itTail=null,this._additionsHead=null,this._additionsTail=null,this._movesHead=null,this._movesTail=null,this._removalsHead=null,this._removalsTail=null,this._identityChangesHead=null,this._identityChangesTail=null,this._trackByFn=e||qn}return e.prototype.forEachItem=function(e){var t;for(t=this._itHead;null!==t;t=t._next)e(t)},e.prototype.forEachOperation=function(e){for(var t=this._itHead,n=this._removalsHead,r=0,o=null;t||n;){var i=!n||t&&t.currentIndex',!this.inertBodyElement.querySelector||this.inertBodyElement.querySelector("svg")?(this.inertBodyElement.innerHTML='

',this.getInertBodyElement=this.inertBodyElement.querySelector&&this.inertBodyElement.querySelector("svg img")&&function(){try{return!!window.DOMParser}catch(e){return!1}}()?this.getInertBodyElement_DOMParser:this.getInertBodyElement_InertDocument):this.getInertBodyElement=this.getInertBodyElement_XHR}return e.prototype.getInertBodyElement_XHR=function(e){e=""+e+"";try{e=encodeURI(e)}catch(e){return null}var t=new XMLHttpRequest;t.responseType="document",t.open("GET","data:text/html;charset=utf-8,"+e,!1),t.send(null);var n=t.response.body;return n.removeChild(n.firstChild),n},e.prototype.getInertBodyElement_DOMParser=function(e){e=""+e+"";try{var t=(new window.DOMParser).parseFromString(e,"text/html").body;return t.removeChild(t.firstChild),t}catch(e){return null}},e.prototype.getInertBodyElement_InertDocument=function(e){var t=this.inertDocument.createElement("template");return"content"in t?(t.innerHTML=e,t):(this.inertBodyElement.innerHTML=e,this.defaultDoc.documentMode&&this.stripCustomNsAttrs(this.inertBodyElement),this.inertBodyElement)},e.prototype.stripCustomNsAttrs=function(e){for(var t=e.attributes,n=t.length-1;0")}else this.sanitizedSomething=!0},e.prototype.endElement=function(e){var t=e.nodeName.toLowerCase();xr.hasOwnProperty(t)&&!yr.hasOwnProperty(t)&&(this.buf.push(""))},e.prototype.chars=function(e){this.buf.push(Ar(e))},e.prototype.checkClobberedElement=function(e,t){if(t&&(e.compareDocumentPosition(t)&Node.DOCUMENT_POSITION_CONTAINED_BY)===Node.DOCUMENT_POSITION_CONTAINED_BY)throw new Error("Failed to sanitize html because the element is clobbered: "+e.outerHTML);return t},e}(),Sr=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,Tr=/([^\#-~ |!])/g;function Ar(e){return e.replace(/&/g,"&").replace(Sr,function(e){return"&#"+(1024*(e.charCodeAt(0)-55296)+(e.charCodeAt(1)-56320)+65536)+";"}).replace(Tr,function(e){return"&#"+e.charCodeAt(0)+";"}).replace(//g,">")}function Dr(e){return"content"in e&&function(e){return e.nodeType===Node.ELEMENT_NODE&&"TEMPLATE"===e.nodeName}(e)?e.content:null}var Ir=new RegExp("^([-,.\"'%_!# a-zA-Z0-9]+|(?:(?:matrix|translate|scale|rotate|skew|perspective)(?:X|Y|3d)?|(?:rgb|hsl)a?|(?:repeating-)?(?:linear|radial)-gradient|(?:calc|attr))\\([-0-9.%, #a-zA-Z]+\\))$","g"),Nr=/^url\(([^)]+)\)$/,Vr=function(e){return e[e.NONE=0]="NONE",e[e.HTML=1]="HTML",e[e.STYLE=2]="STYLE",e[e.SCRIPT=3]="SCRIPT",e[e.URL=4]="URL",e[e.RESOURCE_URL=5]="RESOURCE_URL",e}({}),Pr=function(){};function Mr(e,t,n){var r=e.state,o=1792&r;return o===t?(e.state=-1793&r|n,e.initIndex=-1,!0):o===n}function Rr(e,t,n){return(1792&e.state)===t&&e.initIndex<=n&&(e.initIndex=n+1,!0)}function jr(e,t){return e.nodes[t]}function Fr(e,t){return e.nodes[t]}function Br(e,t){return e.nodes[t]}function Lr(e,t){return e.nodes[t]}function Hr(e,t){return e.nodes[t]}var zr={setCurrentNode:void 0,createRootView:void 0,createEmbeddedView:void 0,createComponentView:void 0,createNgModuleRef:void 0,overrideProvider:void 0,overrideComponentView:void 0,clearOverrides:void 0,checkAndUpdateView:void 0,checkNoChangesView:void 0,destroyView:void 0,resolveDep:void 0,createDebugContext:void 0,handleEvent:void 0,updateDirectives:void 0,updateRenderer:void 0,dirtyParentQueries:void 0};function Ur(e,t,n,r){var o="ExpressionChangedAfterItHasBeenCheckedError: Expression has changed after it was checked. Previous value: '"+t+"'. Current value: '"+n+"'.";return r&&(o+=" It seems like the view has been created after its parent and its children have been dirty checked. Has it been created in a change detection hook ?"),function(e,t){var n=new Error(e);return Gr(n,t),n}(o,e)}function Gr(e,t){e[st]=t,e[dt]=t.logError.bind(t)}function qr(e){return new Error("ViewDestroyedError: Attempt to use a destroyed view: "+e)}var Wr=function(){},Zr=new Map;function $r(e){var t=Zr.get(e);return t||(t=De(e)+"_"+Zr.size,Zr.set(e,t)),t}function Qr(e,t,n,r){if(Ln.isWrapped(r)){r=Ln.unwrap(r);var o=e.def.nodes[t].bindingIndex+n,i=Ln.unwrap(e.oldValues[o]);e.oldValues[o]=new Ln(i)}return r}var Kr="$$undefined",Yr="$$empty";function Jr(e){return{id:Kr,styles:e.styles,encapsulation:e.encapsulation,data:e.data}}var Xr=0;function eo(e,t,n,r){return!(!(2&e.state)&&Ae(e.oldValues[t.bindingIndex+n],r))}function to(e,t,n,r){return!!eo(e,t,n,r)&&(e.oldValues[t.bindingIndex+n]=r,!0)}function no(e,t,n,r){var o=e.oldValues[t.bindingIndex+n];if(1&e.state||!Bn(o,r)){var i=t.bindings[n].name;throw Ur(zr.createDebugContext(e,t.nodeIndex),i+": "+o,i+": "+r,0!=(1&e.state))}}function ro(e){for(var t=e;t;)2&t.def.flags&&(t.state|=8),t=t.viewContainerParent||t.parent}function oo(e,t){for(var n=e;n&&n!==t;)n.state|=64,n=n.viewContainerParent||n.parent}function io(e,t,n,r){try{return ro(33554432&e.def.nodes[t].flags?Fr(e,t).componentView:e),zr.handleEvent(e,t,n,r)}catch(t){e.root.errorHandler.handleError(t)}}function lo(e){return e.parent?Fr(e.parent,e.parentNodeDef.nodeIndex):null}function uo(e){return e.parent?e.parentNodeDef.parent:null}function ao(e,t){switch(201347067&t.flags){case 1:return Fr(e,t.nodeIndex).renderElement;case 2:return jr(e,t.nodeIndex).renderText}}function so(e){return!!e.parent&&!!(32768&e.parentNodeDef.flags)}function co(e){return!(!e.parent||32768&e.parentNodeDef.flags)}function fo(e){return 1<-1}(r)||"root"===o.providedIn&&r._def.isRoot))){var s=e._providers.length;return e._def.providersByKey[t.tokenKey]={flags:5120,value:t.token.ngInjectableDef.factory,deps:[],index:s,token:t.token},e._providers[s]=No,e._providers[s]=Fo(e,e._def.providersByKey[t.tokenKey])}return 4&t.flags?n:e._parent.get(t.token,n)}finally{ot(i)}}function Fo(e,t){var n;switch(201347067&t.flags){case 512:n=function(e,t,n){var r=n.length;switch(r){case 0:return new t;case 1:return new t(jo(e,n[0]));case 2:return new t(jo(e,n[0]),jo(e,n[1]));case 3:return new t(jo(e,n[0]),jo(e,n[1]),jo(e,n[2]));default:for(var o=new Array(r),i=0;i=n.length)&&(t=n.length-1),t<0)return null;var r=n[t];return r.viewContainerParent=null,Uo(n,t),zr.dirtyParentQueries(r),Ho(r),r}function Lo(e,t,n){var r=t?ao(t,t.def.lastRenderRootNode):e.renderElement;yo(n,2,n.renderer.parentNode(r),n.renderer.nextSibling(r),void 0)}function Ho(e){yo(e,3,null,null,void 0)}function zo(e,t,n){t>=e.length?e.push(n):e.splice(t,0,n)}function Uo(e,t){t>=e.length-1?e.pop():e.splice(t,1)}var Go=new Object,qo=function(e){function t(t,n,r,o,i,l){var u=e.call(this)||this;return u.selector=t,u.componentType=n,u._inputs=o,u._outputs=i,u.ngContentSelectors=l,u.viewDefFactory=r,u}return o(t,e),Object.defineProperty(t.prototype,"inputs",{get:function(){var e=[],t=this._inputs;for(var n in t)e.push({propName:n,templateName:t[n]});return e},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"outputs",{get:function(){var e=[];for(var t in this._outputs)e.push({propName:t,templateName:this._outputs[t]});return e},enumerable:!0,configurable:!0}),t.prototype.create=function(e,t,n,r){if(!r)throw new Error("ngModule should be provided");var o=mo(this.viewDefFactory),i=o.nodes[0].element.componentProvider.nodeIndex,l=zr.createRootView(e,t||[],n,o,r,Go),u=Br(l,i).instance;return n&&l.renderer.setAttribute(Fr(l,0).renderElement,"ng-version",at.full),new Wo(l,new Ko(l),u)},t}(Ht),Wo=function(e){function t(t,n,r){var o=e.call(this)||this;return o._view=t,o._viewRef=n,o._component=r,o._elDef=o._view.def.nodes[0],o.hostView=n,o.changeDetectorRef=n,o.instance=r,o}return o(t,e),Object.defineProperty(t.prototype,"location",{get:function(){return new An(Fr(this._view,this._elDef.nodeIndex).renderElement)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"injector",{get:function(){return new ei(this._view,this._elDef)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"componentType",{get:function(){return this._component.constructor},enumerable:!0,configurable:!0}),t.prototype.destroy=function(){this._viewRef.destroy()},t.prototype.onDestroy=function(e){this._viewRef.onDestroy(e)},t}(Lt);function Zo(e,t,n){return new $o(e,t,n)}var $o=function(){function e(e,t,n){this._view=e,this._elDef=t,this._data=n,this._embeddedViews=[]}return Object.defineProperty(e.prototype,"element",{get:function(){return new An(this._data.renderElement)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"injector",{get:function(){return new ei(this._view,this._elDef)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"parentInjector",{get:function(){for(var e=this._view,t=this._elDef.parent;!t&&e;)t=uo(e),e=e.parent;return e?new ei(e,t):new ei(this._view,null)},enumerable:!0,configurable:!0}),e.prototype.clear=function(){for(var e=this._embeddedViews.length-1;e>=0;e--){var t=Bo(this._data,e);zr.destroyView(t)}},e.prototype.get=function(e){var t=this._embeddedViews[e];if(t){var n=new Ko(t);return n.attachToViewContainerRef(this),n}return null},Object.defineProperty(e.prototype,"length",{get:function(){return this._embeddedViews.length},enumerable:!0,configurable:!0}),e.prototype.createEmbeddedView=function(e,t,n){var r=e.createEmbeddedView(t||{});return this.insert(r,n),r},e.prototype.createComponent=function(e,t,n,r,o){var i=n||this.parentInjector;o||e instanceof Qt||(o=i.get(Kt));var l=e.create(i,r,void 0,o);return this.insert(l.hostView,t),l},e.prototype.insert=function(e,t){if(e.destroyed)throw new Error("Cannot insert a destroyed View in a ViewContainer!");var n,r,o,i,l=e;return o=l._view,i=(n=this._data).viewContainer._embeddedViews,null!==(r=t)&&void 0!==r||(r=i.length),o.viewContainerParent=this._view,zo(i,r,o),function(e,t){var n=lo(t);if(n&&n!==e&&!(16&t.state)){t.state|=16;var r=n.template._projectedViews;r||(r=n.template._projectedViews=[]),r.push(t),function(e,n){if(!(4&n.flags)){t.parent.def.nodeFlags|=4,n.flags|=4;for(var r=n.parent;r;)r.childFlags|=4,r=r.parent}}(0,t.parentNodeDef)}}(n,o),zr.dirtyParentQueries(o),Lo(n,r>0?i[r-1]:null,o),l.attachToViewContainerRef(this),e},e.prototype.move=function(e,t){if(e.destroyed)throw new Error("Cannot move a destroyed View in a ViewContainer!");var n,r,o,i,l,u=this._embeddedViews.indexOf(e._view);return o=t,l=(i=(n=this._data).viewContainer._embeddedViews)[r=u],Uo(i,r),null==o&&(o=i.length),zo(i,o,l),zr.dirtyParentQueries(l),Ho(l),Lo(n,o>0?i[o-1]:null,l),e},e.prototype.indexOf=function(e){return this._embeddedViews.indexOf(e._view)},e.prototype.remove=function(e){var t=Bo(this._data,e);t&&zr.destroyView(t)},e.prototype.detach=function(e){var t=Bo(this._data,e);return t?new Ko(t):null},e}();function Qo(e){return new Ko(e)}var Ko=function(){function e(e){this._view=e,this._viewContainerRef=null,this._appRef=null}return Object.defineProperty(e.prototype,"rootNodes",{get:function(){return yo(this._view,0,void 0,void 0,e=[]),e;var e},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"context",{get:function(){return this._view.context},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"destroyed",{get:function(){return 0!=(128&this._view.state)},enumerable:!0,configurable:!0}),e.prototype.markForCheck=function(){ro(this._view)},e.prototype.detach=function(){this._view.state&=-5},e.prototype.detectChanges=function(){var e=this._view.root.rendererFactory;e.begin&&e.begin();try{zr.checkAndUpdateView(this._view)}finally{e.end&&e.end()}},e.prototype.checkNoChanges=function(){zr.checkNoChangesView(this._view)},e.prototype.reattach=function(){this._view.state|=4},e.prototype.onDestroy=function(e){this._view.disposables||(this._view.disposables=[]),this._view.disposables.push(e)},e.prototype.destroy=function(){this._appRef?this._appRef.detachView(this):this._viewContainerRef&&this._viewContainerRef.detach(this._viewContainerRef.indexOf(this)),zr.destroyView(this._view)},e.prototype.detachFromAppRef=function(){this._appRef=null,Ho(this._view),zr.dirtyParentQueries(this._view)},e.prototype.attachToAppRef=function(e){if(this._viewContainerRef)throw new Error("This view is already attached to a ViewContainer!");this._appRef=e},e.prototype.attachToViewContainerRef=function(e){if(this._appRef)throw new Error("This view is already attached directly to the ApplicationRef!");this._viewContainerRef=e},e}();function Yo(e,t){return new Jo(e,t)}var Jo=function(e){function t(t,n){var r=e.call(this)||this;return r._parentView=t,r._def=n,r}return o(t,e),t.prototype.createEmbeddedView=function(e){return new Ko(zr.createEmbeddedView(this._parentView,this._def,this._def.element.template,e))},Object.defineProperty(t.prototype,"elementRef",{get:function(){return new An(Fr(this._parentView,this._def.nodeIndex).renderElement)},enumerable:!0,configurable:!0}),t}(In);function Xo(e,t){return new ei(e,t)}var ei=function(){function e(e,t){this.view=e,this.elDef=t}return e.prototype.get=function(e,t){return void 0===t&&(t=Ue.THROW_IF_NOT_FOUND),zr.resolveDep(this.view,this.elDef,!!this.elDef&&0!=(33554432&this.elDef.flags),{flags:0,token:e,tokenKey:$r(e)},t)},e}();function ti(e,t){var n=e.def.nodes[t];if(1&n.flags){var r=Fr(e,n.nodeIndex);return n.element.template?r.template:r.renderElement}if(2&n.flags)return jr(e,n.nodeIndex).renderText;if(20240&n.flags)return Br(e,n.nodeIndex).instance;throw new Error("Illegal state: read nodeValue for node index "+t)}function ni(e){return new ri(e.renderer)}var ri=function(){function e(e){this.delegate=e}return e.prototype.selectRootElement=function(e){return this.delegate.selectRootElement(e)},e.prototype.createElement=function(e,t){var n=c(Eo(t),2),r=this.delegate.createElement(n[1],n[0]);return e&&this.delegate.appendChild(e,r),r},e.prototype.createViewRoot=function(e){return e},e.prototype.createTemplateAnchor=function(e){var t=this.delegate.createComment("");return e&&this.delegate.appendChild(e,t),t},e.prototype.createText=function(e,t){var n=this.delegate.createText(t);return e&&this.delegate.appendChild(e,n),n},e.prototype.projectNodes=function(e,t){for(var n=0;n0,t.provider.value,t.provider.deps);if(t.outputs.length)for(var r=0;r0,r=t.provider;switch(201347067&t.flags){case 512:return Ci(e,t.parent,n,r.value,r.deps);case 1024:return function(e,t,n,r,o){var i=o.length;switch(i){case 0:return r();case 1:return r(ki(e,t,n,o[0]));case 2:return r(ki(e,t,n,o[0]),ki(e,t,n,o[1]));case 3:return r(ki(e,t,n,o[0]),ki(e,t,n,o[1]),ki(e,t,n,o[2]));default:for(var l=Array(i),u=0;u0)s=g,qi(g)||(c=g);else for(;s&&h===s.nodeIndex+s.childCount;){var y=s.parent;y&&(y.childFlags|=s.childFlags,y.childMatchedQueries|=s.childMatchedQueries),c=(s=y)&&qi(s)?s.renderParent:s}}return{factory:null,nodeFlags:l,rootNodeFlags:u,nodeMatchedQueries:a,flags:e,nodes:t,updateDirectives:n||Wr,updateRenderer:r||Wr,handleEvent:function(e,n,r,o){return t[n].element.handleEvent(e,r,o)},bindingCount:o,outputCount:i,lastRenderRootNode:p}}function qi(e){return 0!=(1&e.flags)&&null===e.element.name}function Wi(e,t,n){var r=t.element&&t.element.template;if(r){if(!r.lastRenderRootNode)throw new Error("Illegal State: Embedded templates without nodes are not allowed!");if(r.lastRenderRootNode&&16777216&r.lastRenderRootNode.flags)throw new Error("Illegal State: Last root node of a template can't have embedded views, at index "+t.nodeIndex+"!")}if(20224&t.flags&&0==(1&(e?e.flags:0)))throw new Error("Illegal State: StaticProvider/Directive nodes need to be children of elements or anchors, at index "+t.nodeIndex+"!");if(t.query){if(67108864&t.flags&&(!e||0==(16384&e.flags)))throw new Error("Illegal State: Content Query nodes need to be children of directives, at index "+t.nodeIndex+"!");if(134217728&t.flags&&e)throw new Error("Illegal State: View Query nodes have to be top level nodes, at index "+t.nodeIndex+"!")}if(t.childCount){var o=e?e.nodeIndex+e.childCount:n-1;if(t.nodeIndex<=o&&t.nodeIndex+t.childCount>o)throw new Error("Illegal State: childCount of node leads outside of parent, at index "+t.nodeIndex+"!")}}function Zi(e,t,n,r){var o=Ki(e.root,e.renderer,e,t,n);return Yi(o,e.component,r),Ji(o),o}function $i(e,t,n){var r=Ki(e,e.renderer,null,null,t);return Yi(r,n,n),Ji(r),r}function Qi(e,t,n,r){var o,i=t.element.componentRendererType;return o=i?e.root.rendererFactory.createRenderer(r,i):e.root.renderer,Ki(e.root,o,e,t.element.componentProvider,n)}function Ki(e,t,n,r,o){var i=new Array(o.nodes.length),l=o.outputCount?new Array(o.outputCount):null;return{def:o,parent:n,viewContainerParent:null,parentNodeDef:r,context:null,component:null,nodes:i,state:13,root:e,renderer:t,oldValues:new Array(o.bindingCount),disposables:l,initIndex:-1}}function Yi(e,t,n){e.component=t,e.context=n}function Ji(e){var t;so(e)&&(t=Fr(e.parent,e.parentNodeDef.parent.nodeIndex).renderElement);for(var n=e.def,r=e.nodes,o=0;o0&&Io(e,t,0,n)&&(p=!0),f>1&&Io(e,t,1,r)&&(p=!0),f>2&&Io(e,t,2,o)&&(p=!0),f>3&&Io(e,t,3,i)&&(p=!0),f>4&&Io(e,t,4,l)&&(p=!0),f>5&&Io(e,t,5,u)&&(p=!0),f>6&&Io(e,t,6,a)&&(p=!0),f>7&&Io(e,t,7,s)&&(p=!0),f>8&&Io(e,t,8,c)&&(p=!0),f>9&&Io(e,t,9,d)&&(p=!0),p}(e,t,n,r,o,i,l,u,a,s,c,d);case 2:return function(e,t,n,r,o,i,l,u,a,s,c,d){var f=!1,p=t.bindings,h=p.length;if(h>0&&to(e,t,0,n)&&(f=!0),h>1&&to(e,t,1,r)&&(f=!0),h>2&&to(e,t,2,o)&&(f=!0),h>3&&to(e,t,3,i)&&(f=!0),h>4&&to(e,t,4,l)&&(f=!0),h>5&&to(e,t,5,u)&&(f=!0),h>6&&to(e,t,6,a)&&(f=!0),h>7&&to(e,t,7,s)&&(f=!0),h>8&&to(e,t,8,c)&&(f=!0),h>9&&to(e,t,9,d)&&(f=!0),f){var g=t.text.prefix;h>0&&(g+=Ui(n,p[0])),h>1&&(g+=Ui(r,p[1])),h>2&&(g+=Ui(o,p[2])),h>3&&(g+=Ui(i,p[3])),h>4&&(g+=Ui(l,p[4])),h>5&&(g+=Ui(u,p[5])),h>6&&(g+=Ui(a,p[6])),h>7&&(g+=Ui(s,p[7])),h>8&&(g+=Ui(c,p[8])),h>9&&(g+=Ui(d,p[9]));var v=jr(e,t.nodeIndex).renderText;e.renderer.setValue(v,g)}return f}(e,t,n,r,o,i,l,u,a,s,c,d);case 16384:return function(e,t,n,r,o,i,l,u,a,s,c,d){var f=Br(e,t.nodeIndex),p=f.instance,h=!1,g=void 0,v=t.bindings.length;return v>0&&eo(e,t,0,n)&&(h=!0,g=Si(e,f,t,0,n,g)),v>1&&eo(e,t,1,r)&&(h=!0,g=Si(e,f,t,1,r,g)),v>2&&eo(e,t,2,o)&&(h=!0,g=Si(e,f,t,2,o,g)),v>3&&eo(e,t,3,i)&&(h=!0,g=Si(e,f,t,3,i,g)),v>4&&eo(e,t,4,l)&&(h=!0,g=Si(e,f,t,4,l,g)),v>5&&eo(e,t,5,u)&&(h=!0,g=Si(e,f,t,5,u,g)),v>6&&eo(e,t,6,a)&&(h=!0,g=Si(e,f,t,6,a,g)),v>7&&eo(e,t,7,s)&&(h=!0,g=Si(e,f,t,7,s,g)),v>8&&eo(e,t,8,c)&&(h=!0,g=Si(e,f,t,8,c,g)),v>9&&eo(e,t,9,d)&&(h=!0,g=Si(e,f,t,9,d,g)),g&&p.ngOnChanges(g),65536&t.flags&&Rr(e,256,t.nodeIndex)&&p.ngOnInit(),262144&t.flags&&p.ngDoCheck(),h}(e,t,n,r,o,i,l,u,a,s,c,d);case 32:case 64:case 128:return function(e,t,n,r,o,i,l,u,a,s,c,d){var f=t.bindings,p=!1,h=f.length;if(h>0&&to(e,t,0,n)&&(p=!0),h>1&&to(e,t,1,r)&&(p=!0),h>2&&to(e,t,2,o)&&(p=!0),h>3&&to(e,t,3,i)&&(p=!0),h>4&&to(e,t,4,l)&&(p=!0),h>5&&to(e,t,5,u)&&(p=!0),h>6&&to(e,t,6,a)&&(p=!0),h>7&&to(e,t,7,s)&&(p=!0),h>8&&to(e,t,8,c)&&(p=!0),h>9&&to(e,t,9,d)&&(p=!0),p){var g=Lr(e,t.nodeIndex),v=void 0;switch(201347067&t.flags){case 32:v=new Array(f.length),h>0&&(v[0]=n),h>1&&(v[1]=r),h>2&&(v[2]=o),h>3&&(v[3]=i),h>4&&(v[4]=l),h>5&&(v[5]=u),h>6&&(v[6]=a),h>7&&(v[7]=s),h>8&&(v[8]=c),h>9&&(v[9]=d);break;case 64:v={},h>0&&(v[f[0].name]=n),h>1&&(v[f[1].name]=r),h>2&&(v[f[2].name]=o),h>3&&(v[f[3].name]=i),h>4&&(v[f[4].name]=l),h>5&&(v[f[5].name]=u),h>6&&(v[f[6].name]=a),h>7&&(v[f[7].name]=s),h>8&&(v[f[8].name]=c),h>9&&(v[f[9].name]=d);break;case 128:var m=n;switch(h){case 1:v=m.transform(n);break;case 2:v=m.transform(r);break;case 3:v=m.transform(r,o);break;case 4:v=m.transform(r,o,i);break;case 5:v=m.transform(r,o,i,l);break;case 6:v=m.transform(r,o,i,l,u);break;case 7:v=m.transform(r,o,i,l,u,a);break;case 8:v=m.transform(r,o,i,l,u,a,s);break;case 9:v=m.transform(r,o,i,l,u,a,s,c);break;case 10:v=m.transform(r,o,i,l,u,a,s,c,d)}}g.value=v}return p}(e,t,n,r,o,i,l,u,a,s,c,d);default:throw"unreachable"}}(e,t,r,o,i,l,u,a,s,c,f,p):function(e,t,n){switch(201347067&t.flags){case 1:return function(e,t,n){for(var r=!1,o=0;o0&&no(e,t,0,n),f>1&&no(e,t,1,r),f>2&&no(e,t,2,o),f>3&&no(e,t,3,i),f>4&&no(e,t,4,l),f>5&&no(e,t,5,u),f>6&&no(e,t,6,a),f>7&&no(e,t,7,s),f>8&&no(e,t,8,c),f>9&&no(e,t,9,d)}(e,t,r,o,i,l,u,a,s,c,d,f):function(e,t,n){for(var r=0;r0){var i=new Set(e.modules);bl.forEach(function(t,r){if(i.has(r.ngInjectableDef.providedIn)){var o={token:r,flags:t.flags|(n?4096:0),deps:ho(t.deps),value:t.value,index:e.providers.length};e.providers.push(o),e.providersByKey[$r(r)]=o}})}}(e=e.factory(function(){return Wr})),e):e}(r))}var _l=new Map,bl=new Map,wl=new Map;function xl(e){_l.set(e.token,e),"function"==typeof e.token&&e.token.ngInjectableDef&&"function"==typeof e.token.ngInjectableDef.providedIn&&bl.set(e.token,e)}function Cl(e,t){var n=mo(mo(t.viewDefFactory).nodes[0].element.componentView);wl.set(e,n)}function El(){_l.clear(),bl.clear(),wl.clear()}function kl(e){if(0===_l.size)return e;var t=function(e){for(var t=[],n=null,r=0;r=f.length){var p=f[d]=ua(t,d,r,o,u,null);if(!Ru&&Mu){var h=Mu.tNode;h.next=p,h.dynamicContainerNode&&(h.dynamicContainerNode.next=p)}}c.tNode=f[d],Ru&&(Fu=null,(null==Mu.tNode.child&&Mu.view===Lu||2===Mu.tNode.type)&&(Mu.tNode.child=c.tNode))}if(2==(2&t)&&s){var g=i;g[ou]=c,Zu&&(g[Xl].node=c.tNode)}return Mu=c,Ru=!0,c}function ea(e,t,n,r){var o,i=Ru,l=Mu;if(null==e.data[eu]&&e.data[au]&&!t.template)ca(e.data[au]);else try{Ru=!0,Mu=null,o=$u(e.data,e),oa(),t.template(r,n),2&r?Ku():e.data[Xl].firstTemplatePass=Zu=!1}finally{Qu(o,1==(1&r)),Ru=i,Mu=l}return e}function ta(e,t,n,r){var o=$u(t,e);try{Pu.begin&&Pu.begin(),r?(oa(),r(na(t),n),Ku()):(Wu||(gu(Lu,ju,Bu),vu(Hu,ju.contentHooks,ju.contentCheckHooks,Bu)),Yu(Gu),aa(0,Jl))}finally{Pu.end&&Pu.end(),Qu(o)}}function na(e){return 1&e[ru]?3:2}var ra=null;function oa(){ra=null}function ia(e,t,n,r,o){return{id:e,template:t,viewQuery:o,node:null,data:qu.slice(),childIndex:-1,bindingStartIndex:-1,directives:null,firstTemplatePass:!0,initHooks:null,checkHooks:null,contentHooks:null,contentCheckHooks:null,viewHooks:null,viewCheckHooks:null,destroyHooks:null,pipeDestroyHooks:null,cleanup:null,hostBindings:null,contentQueries:null,components:null,directiveRegistry:"function"==typeof n?n():n,pipeRegistry:"function"==typeof r?r():r,currentMatches:null}}function la(e,t){Pu=e;var n=e.createRenderer(null,null);return"string"==typeof t?wu(n)?n.selectRootElement(t):n.querySelector(t):t}function ua(e,t,n,r,o,i){return{type:e,index:t,flags:0,tagName:n,attrs:r,localNames:null,initialInputs:void 0,inputs:void 0,outputs:void 0,tViews:i,next:null,child:null,parent:o,dynamicContainerNode:null,detached:null,stylingTemplate:null,projection:null}}function aa(e,t){var n=Lu[t],r=n.data;sa(r)&&6&r[ru]&&pa(r,n,Hu[e])}function sa(e){return 8==(8&e[ru])}function ca(e){for(var t=0;t=Jl?t[Xl].childIndex>-1&&(n=Du(t)):t[_u].length&&(n=t[_u][0].data),null==n){for(;t&&!t[tu]&&t!==e;)Nu(t),t=Iu(t,e);Nu(t||e),n=t&&t[tu]}t=n}}(e),e[ru]|=32},e.prototype.onDestroy=function(e){var t,n;n=e,function(e){return e[uu]||(e[uu]=[])}(t=this._view).push(n),t[Xl].firstTemplatePass&&function(e){return e[Xl].cleanup||(e[Xl].cleanup=[])}(t).push(t[uu].length-1,null)},e.prototype.markForCheck=function(){!function(e){for(var t=e;null!=t[eu];)t[ru]|=4,t=t[eu];var n,r;t[ru]|=4,(n=t[au]).clean==Uu&&(n.clean=new Promise(function(e){return r=e}),n.scheduler(function(){ca(n),r(null),n.clean=Uu}))}(this._view)},e.prototype.detach=function(){this._view[ru]&=-9},e.prototype.reattach=function(){this._view[ru]|=8},e.prototype.detectChanges=function(){fa(this.context)},e.prototype.checkNoChanges=function(){!function(e){Wu=!0;try{fa(e)}finally{Wu=!1}}(this.context)},e.prototype.attachToViewContainerRef=function(e){this._viewContainerRef=e},e.prototype.detachFromAppRef=function(){this._appRef=null},e.prototype.attachToAppRef=function(e){this._appRef=e},e}(),ya=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return o(t,e),t.prototype.resolveComponentFactory=function(e){return new xa(e.ngComponentDef)},t}(Zt);function _a(e){var t=[];for(var n in e)e.hasOwnProperty(n)&&t.push({propName:e[n],templateName:n});return t}var ba=new _e("ROOT_CONTEXT_TOKEN",{providedIn:"root",factory:function(){return va(it(wa))}}),wa=new _e("SCHEDULER_TOKEN",{providedIn:"root",factory:function(){return requestAnimationFrame.bind(window)}}),xa=function(e){function t(t){var n=e.call(this)||this;return n.componentDef=t,n.componentType=t.type,n.selector=t.selectors[0][0],n.ngContentSelectors=[],n}return o(t,e),Object.defineProperty(t.prototype,"inputs",{get:function(){return _a(this.componentDef.inputs)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"outputs",{get:function(){return _a(this.componentDef.outputs)},enumerable:!0,configurable:!0}),t.prototype.create=function(e,t,n,r){var o,i,l=void 0===n,u=r?r.injector.get(On):xu,a=l?(o=this.selector,wu(i=u.createRenderer(null,this.componentDef.rendererType)||Vu)?i.createElement(o,ra):null===ra?i.createElement(o):i.createElementNS(ra,o)):la(u,n),s=r&&!l?r.injector.get(ba):va(requestAnimationFrame.bind(window)),c=Ju(u.createRenderer(a,this.componentDef.rendererType),ia(-1,null,null,null,null),s,this.componentDef.onPush?4:2);c[su]=r&&r.injector||null;var d,f,p=$u(c,null);try{if(u.begin&&u.begin(),f=function(e,t,n,r){Ru=!1,Mu=null;var o,i=Xu(0,3,t,null,null,Ju(Vu,(o=n.template).ngPrivateData||(o.ngPrivateData=ia(-1,o,n.directiveDefs,n.pipeDefs,n.viewQuery)),null,n.onPush?4:2,r));return Zu&&(i.tNode.flags=4096,n.diPublic&&n.diPublic(n),ju.directives=[n]),i}(0,a,this.componentDef),s.components.push(d=function(e,t,n){if(Object.defineProperty(t,zu,{enumerable:!1,value:Mu}),null==Hu&&(Lu[lu]=Hu=[]),Hu[e]=t,Zu){var r=Mu.tNode.flags;0==(4095&r)?Mu.tNode.flags=e<<14|4096&r|1:Mu.tNode.flags++}else{var o=n.diPublic;o&&o(n)}return null!=n.attributes&&3==Mu.tNode.type&&function(e,t){for(var n=wu(Vu),r=0;r>14,r=n+(4095&e),o=n;o0},t.prototype.tagName=function(e){return e.tagName},t.prototype.attributeMap=function(e){for(var t=new Map,n=e.attributes,r=0;r0;l||(l=e[i]=[]);var a=Ys(t)?Zone.root:Zone.current;if(0===l.length)l.push({zone:a,handler:o});else{for(var s=!1,c=0;c-1},l([u(0,Ve(_s)),u(1,Ve(tc)),u(3,Pe()),u(3,Ve(nc))],t)}(Ds),ic=["alt","control","meta","shift"],lc={alt:function(e){return e.altKey},control:function(e){return e.ctrlKey},meta:function(e){return e.metaKey},shift:function(e){return e.shiftKey}},uc=function(e){function t(t){return e.call(this,t)||this}var n;return o(t,e),n=t,t.prototype.supports=function(e){return null!=n.parseEventName(e)},t.prototype.addEventListener=function(e,t,r){var o=n.parseEventName(t),i=n.eventCallback(o.fullKey,r,this.manager.getZone());return this.manager.getZone().runOutsideAngular(function(){return ds().onAndCancel(e,o.domEventName,i)})},t.parseEventName=function(e){var t=e.toLowerCase().split("."),r=t.shift();if(0===t.length||"keydown"!==r&&"keyup"!==r)return null;var o=n._normalizeKey(t.pop()),i="";if(ic.forEach(function(e){var n=t.indexOf(e);n>-1&&(t.splice(n,1),i+=e+".")}),i+=o,0!=t.length||0===o.length)return null;var l={};return l.domEventName=r,l.fullKey=i,l},t.getEventFullKey=function(e){var t="",n=ds().getEventKey(e);return" "===(n=n.toLowerCase())?n="space":"."===n&&(n="dot"),ic.forEach(function(r){r!=n&&(0,lc[r])(e)&&(t+=r+".")}),t+=n},t.eventCallback=function(e,t,r){return function(o){n.getEventFullKey(o)===e&&r.runGuarded(function(){return t(o)})}},t._normalizeKey=function(e){switch(e){case"esc":return"escape";default:return e}},n=l([u(0,Ve(_s))],t)}(Ds),ac=function(){},sc=function(e){function t(t){var n=e.call(this)||this;return n._doc=t,n}return o(t,e),t.prototype.sanitize=function(e,t){if(null==t)return null;switch(e){case Vr.NONE:return t;case Vr.HTML:return t instanceof dc?t.changingThisBreaksApplicationSecurity:(this.checkNotSafeValue(t,"HTML"),function(e,t){var n=null;try{mr=mr||new dr(e);var r=t?String(t):"";n=mr.getInertBodyElement(r);var o=5,i=r;do{if(0===o)throw new Error("Failed to sanitize html because the input is unstable");o--,r=i,i=n.innerHTML,n=mr.getInertBodyElement(r)}while(r!==i);var l=new Or,u=l.sanitizeChildren(Dr(n)||n);return yn()&&l.sanitizedSomething&&console.warn("WARNING: sanitizing HTML stripped some content (see http://g.co/ng/security#xss)."),u}finally{if(n)for(var a=Dr(n)||n;a.firstChild;)a.removeChild(a.firstChild)}}(this._doc,String(t)));case Vr.STYLE:return t instanceof fc?t.changingThisBreaksApplicationSecurity:(this.checkNotSafeValue(t,"Style"),function(e){if(!(e=String(e).trim()))return"";var t=e.match(Nr);return t&&hr(t[1])===t[1]||e.match(Ir)&&function(e){for(var t=!0,n=!0,r=0;re?{max:{max:e,actual:t.value}}:null}},e.required=function(e){return wc(e.value)?{required:!0}:null},e.requiredTrue=function(e){return!0===e.value?null:{required:!0}},e.email=function(e){return wc(e.value)?null:Ec.test(e.value)?null:{email:!0}},e.minLength=function(e){return function(t){if(wc(t.value))return null;var n=t.value?t.value.length:0;return ne?{maxlength:{requiredLength:e,actualLength:n}}:null}},e.pattern=function(t){return t?("string"==typeof t?(r="","^"!==t.charAt(0)&&(r+="^"),r+=t,"$"!==t.charAt(t.length-1)&&(r+="$"),n=new RegExp(r)):(r=t.toString(),n=t),function(e){if(wc(e.value))return null;var t=e.value;return n.test(t)?null:{pattern:{requiredPattern:r,actualValue:t}}}):e.nullValidator;var n,r},e.nullValidator=function(e){return null},e.compose=function(e){if(!e)return null;var t=e.filter(Oc);return 0==t.length?null:function(e){return Tc(function(e,n){return t.map(function(t){return t(e)})}(e))}},e.composeAsync=function(e){if(!e)return null;var t=e.filter(Oc);return 0==t.length?null:function(e){return function e(){for(var t,n=[],r=0;r=0;--t)if(this._accessors[t][1]===e)return void this._accessors.splice(t,1)},e.prototype.select=function(e){var t=this;this._accessors.forEach(function(n){t._isSameGroup(n,e)&&n[1]!==e&&n[1].fireUncheck(e.value)})},e.prototype._isSameGroup=function(e,t){return!!e[0].control&&e[0]._parent===t._control._parent&&e[1].name===t.name},e}(),Bc=function(){function e(e,t,n,r){this._renderer=e,this._elementRef=t,this._registry=n,this._injector=r,this.onChange=function(){},this.onTouched=function(){}}return e.prototype.ngOnInit=function(){this._control=this._injector.get(jc),this._checkName(),this._registry.add(this._control,this)},e.prototype.ngOnDestroy=function(){this._registry.remove(this)},e.prototype.writeValue=function(e){this._state=e===this.value,this._renderer.setProperty(this._elementRef.nativeElement,"checked",this._state)},e.prototype.registerOnChange=function(e){var t=this;this._fn=e,this.onChange=function(){e(t.value),t._registry.select(t)}},e.prototype.fireUncheck=function(e){this.writeValue(e)},e.prototype.registerOnTouched=function(e){this.onTouched=e},e.prototype.setDisabledState=function(e){this._renderer.setProperty(this._elementRef.nativeElement,"disabled",e)},e.prototype._checkName=function(){this.name&&this.formControlName&&this.name!==this.formControlName&&this._throwNameError(),!this.name&&this.formControlName&&(this.name=this.formControlName)},e.prototype._throwNameError=function(){throw new Error('\n If you define both a name and a formControlName attribute on your radio button, their values\n must match. Ex: \n ')},e}(),Lc=function(){function e(e,t){this._renderer=e,this._elementRef=t,this.onChange=function(e){},this.onTouched=function(){}}return e.prototype.writeValue=function(e){this._renderer.setProperty(this._elementRef.nativeElement,"value",parseFloat(e))},e.prototype.registerOnChange=function(e){this.onChange=function(t){e(""==t?null:parseFloat(t))}},e.prototype.registerOnTouched=function(e){this.onTouched=e},e.prototype.setDisabledState=function(e){this._renderer.setProperty(this._elementRef.nativeElement,"disabled",e)},e}(),Hc='\n

\n \n
\n\n In your class:\n\n this.myGroup = new FormGroup({\n firstName: new FormControl()\n });',zc='\n
\n
\n \n
\n
\n\n In your class:\n\n this.myGroup = new FormGroup({\n person: new FormGroup({ firstName: new FormControl() })\n });',Uc='\n
\n
\n \n
\n
',Gc=function(){function e(){}return e.controlParentException=function(){throw new Error("formControlName must be used with a parent formGroup directive. You'll want to add a formGroup\n directive and pass it an existing FormGroup instance (you can create one in your class).\n\n Example:\n\n "+Hc)},e.ngModelGroupException=function(){throw new Error('formControlName cannot be used with an ngModelGroup parent. It is only compatible with parents\n that also have a "form" prefix: formGroupName, formArrayName, or formGroup.\n\n Option 1: Update the parent to be formGroupName (reactive form strategy)\n\n '+zc+"\n\n Option 2: Use ngModel instead of formControlName (template-driven strategy)\n\n "+Uc)},e.missingFormException=function(){throw new Error("formGroup expects a FormGroup instance. Please pass one in.\n\n Example:\n\n "+Hc)},e.groupParentException=function(){throw new Error("formGroupName must be used with a parent formGroup directive. You'll want to add a formGroup\n directive and pass it an existing FormGroup instance (you can create one in your class).\n\n Example:\n\n "+zc)},e.arrayParentException=function(){throw new Error('formArrayName must be used with a parent formGroup directive. You\'ll want to add a formGroup\n directive and pass it an existing FormGroup instance (you can create one in your class).\n\n Example:\n\n \n
\n
\n
\n \n
\n
\n
\n\n In your class:\n\n this.cityArray = new FormArray([new FormControl(\'SF\')]);\n this.myGroup = new FormGroup({\n cities: this.cityArray\n });')},e.disabledAttrWarning=function(){console.warn("\n It looks like you're using the disabled attribute with a reactive form directive. If you set disabled to true\n when you set up this control in your component class, the disabled attribute will actually be set in the DOM for\n you. We recommend using this approach to avoid 'changed after checked' errors.\n \n Example: \n form = new FormGroup({\n first: new FormControl({value: 'Nancy', disabled: true}, Validators.required),\n last: new FormControl('Drew', Validators.required)\n });\n ")},e.ngModelWarning=function(e){console.warn("\n It looks like you're using ngModel on the same form field as "+e+". \n Support for using the ngModel input property and ngModelChange event with \n reactive form directives has been deprecated in Angular v6 and will be removed \n in Angular v7.\n \n For more information on this, see our API docs here:\n https://angular.io/api/forms/"+("formControl"===e?"FormControlDirective":"FormControlName")+"#use-with-ngmodel\n ")},e}();function qc(e,t){return d(t.path,[e])}function Wc(e,t){e||$c(t,"Cannot find control with"),t.valueAccessor||$c(t,"No value accessor for form control with"),e.validator=kc.compose([e.validator,t.validator]),e.asyncValidator=kc.composeAsync([e.asyncValidator,t.asyncValidator]),t.valueAccessor.writeValue(e.value),function(e,t){t.valueAccessor.registerOnChange(function(n){e._pendingValue=n,e._pendingChange=!0,e._pendingDirty=!0,"change"===e.updateOn&&Zc(e,t)})}(e,t),function(e,t){e.registerOnChange(function(e,n){t.valueAccessor.writeValue(e),n&&t.viewToModelUpdate(e)})}(e,t),function(e,t){t.valueAccessor.registerOnTouched(function(){e._pendingTouched=!0,"blur"===e.updateOn&&e._pendingChange&&Zc(e,t),"submit"!==e.updateOn&&e.markAsTouched()})}(e,t),t.valueAccessor.setDisabledState&&e.registerOnDisabledChange(function(e){t.valueAccessor.setDisabledState(e)}),t._rawValidators.forEach(function(t){t.registerOnValidatorChange&&t.registerOnValidatorChange(function(){return e.updateValueAndValidity()})}),t._rawAsyncValidators.forEach(function(t){t.registerOnValidatorChange&&t.registerOnValidatorChange(function(){return e.updateValueAndValidity()})})}function Zc(e,t){e._pendingDirty&&e.markAsDirty(),e.setValue(e._pendingValue,{emitModelToViewChange:!1}),t.viewToModelUpdate(e._pendingValue),e._pendingChange=!1}function $c(e,t){var n;throw n=e.path.length>1?"path: '"+e.path.join(" -> ")+"'":e.path[0]?"name: '"+e.path+"'":"unspecified name attribute",new Error(t+" "+n)}function Qc(e){return null!=e?kc.compose(e.map(Vc)):null}function Kc(e){return null!=e?kc.composeAsync(e.map(Pc)):null}function Yc(e,t){if(!e.hasOwnProperty("model"))return!1;var n=e.model;return!!n.isFirstChange()||!Ae(t,n.currentValue)}var Jc=[Dc,Lc,Mc,function(){function e(e,t){this._renderer=e,this._elementRef=t,this._optionMap=new Map,this._idCounter=0,this.onChange=function(e){},this.onTouched=function(){},this._compareWith=Ae}return Object.defineProperty(e.prototype,"compareWith",{set:function(e){if("function"!=typeof e)throw new Error("compareWith must be a function, but received "+JSON.stringify(e));this._compareWith=e},enumerable:!0,configurable:!0}),e.prototype.writeValue=function(e){this.value=e;var t=this._getOptionId(e);null==t&&this._renderer.setProperty(this._elementRef.nativeElement,"selectedIndex",-1);var n=function(e,t){return null==e?""+t:(t&&"object"==typeof t&&(t="Object"),(e+": "+t).slice(0,50))}(t,e);this._renderer.setProperty(this._elementRef.nativeElement,"value",n)},e.prototype.registerOnChange=function(e){var t=this;this.onChange=function(n){t.value=t._getOptionValue(n),e(t.value)}},e.prototype.registerOnTouched=function(e){this.onTouched=e},e.prototype.setDisabledState=function(e){this._renderer.setProperty(this._elementRef.nativeElement,"disabled",e)},e.prototype._registerOption=function(){return(this._idCounter++).toString()},e.prototype._getOptionId=function(e){var t,n;try{for(var r=s(Array.from(this._optionMap.keys())),o=r.next();!o.done;o=r.next()){var i=o.value;if(this._compareWith(this._optionMap.get(i),e))return i}}catch(e){t={error:e}}finally{try{o&&!o.done&&(n=r.return)&&n.call(r)}finally{if(t)throw t.error}}return null},e.prototype._getOptionValue=function(e){var t=function(e){return e.split(":")[0]}(e);return this._optionMap.has(t)?this._optionMap.get(t):e},e}(),function(){function e(e,t){this._renderer=e,this._elementRef=t,this._optionMap=new Map,this._idCounter=0,this.onChange=function(e){},this.onTouched=function(){},this._compareWith=Ae}return Object.defineProperty(e.prototype,"compareWith",{set:function(e){if("function"!=typeof e)throw new Error("compareWith must be a function, but received "+JSON.stringify(e));this._compareWith=e},enumerable:!0,configurable:!0}),e.prototype.writeValue=function(e){var t,n=this;if(this.value=e,Array.isArray(e)){var r=e.map(function(e){return n._getOptionId(e)});t=function(e,t){e._setSelected(r.indexOf(t.toString())>-1)}}else t=function(e,t){e._setSelected(!1)};this._optionMap.forEach(t)},e.prototype.registerOnChange=function(e){var t=this;this.onChange=function(n){var r=[];if(n.hasOwnProperty("selectedOptions"))for(var o=n.selectedOptions,i=0;i0||this.disabled},t.prototype._checkAllValuesPresent=function(e){this._forEachChild(function(t,n){if(void 0===e[n])throw new Error("Must supply a value for form control with name: '"+n+"'.")})},t}(id),ad=function(e){function t(t,n,r){var o=e.call(this,nd(n),rd(r,n))||this;return o.controls=t,o._initObservables(),o._setUpdateStrategy(n),o._setUpControls(),o.updateValueAndValidity({onlySelf:!0,emitEvent:!1}),o}return o(t,e),t.prototype.at=function(e){return this.controls[e]},t.prototype.push=function(e){this.controls.push(e),this._registerControl(e),this.updateValueAndValidity(),this._onCollectionChange()},t.prototype.insert=function(e,t){this.controls.splice(e,0,t),this._registerControl(t),this.updateValueAndValidity()},t.prototype.removeAt=function(e){this.controls[e]&&this.controls[e]._registerOnCollectionChange(function(){}),this.controls.splice(e,1),this.updateValueAndValidity()},t.prototype.setControl=function(e,t){this.controls[e]&&this.controls[e]._registerOnCollectionChange(function(){}),this.controls.splice(e,1),t&&(this.controls.splice(e,0,t),this._registerControl(t)),this.updateValueAndValidity(),this._onCollectionChange()},Object.defineProperty(t.prototype,"length",{get:function(){return this.controls.length},enumerable:!0,configurable:!0}),t.prototype.setValue=function(e,t){var n=this;void 0===t&&(t={}),this._checkAllValuesPresent(e),e.forEach(function(e,r){n._throwIfControlMissing(r),n.at(r).setValue(e,{onlySelf:!0,emitEvent:t.emitEvent})}),this.updateValueAndValidity(t)},t.prototype.patchValue=function(e,t){var n=this;void 0===t&&(t={}),e.forEach(function(e,r){n.at(r)&&n.at(r).patchValue(e,{onlySelf:!0,emitEvent:t.emitEvent})}),this.updateValueAndValidity(t)},t.prototype.reset=function(e,t){void 0===e&&(e=[]),void 0===t&&(t={}),this._forEachChild(function(n,r){n.reset(e[r],{onlySelf:!0,emitEvent:t.emitEvent})}),this.updateValueAndValidity(t),this._updatePristine(t),this._updateTouched(t)},t.prototype.getRawValue=function(){return this.controls.map(function(e){return e instanceof ld?e.value:e.getRawValue()})},t.prototype._syncPendingControls=function(){var e=this.controls.reduce(function(e,t){return!!t._syncPendingControls()||e},!1);return e&&this.updateValueAndValidity({onlySelf:!0}),e},t.prototype._throwIfControlMissing=function(e){if(!this.controls.length)throw new Error("\n There are no form controls registered with this array yet. If you're using ngModel,\n you may want to check next tick (e.g. use setTimeout).\n ");if(!this.at(e))throw new Error("Cannot find form control at index "+e)},t.prototype._forEachChild=function(e){this.controls.forEach(function(t,n){e(t,n)})},t.prototype._updateValue=function(){var e=this;this.value=this.controls.filter(function(t){return t.enabled||e.disabled}).map(function(e){return e.value})},t.prototype._anyControls=function(e){return this.controls.some(function(t){return t.enabled&&e(t)})},t.prototype._setUpControls=function(){var e=this;this._forEachChild(function(t){return e._registerControl(t)})},t.prototype._checkAllValuesPresent=function(e){this._forEachChild(function(t,n){if(void 0===e[n])throw new Error("Must supply a value for form control at index: "+n+".")})},t.prototype._allControlsDisabled=function(){var e,t;try{for(var n=s(this.controls),r=n.next();!r.done;r=n.next())if(r.value.enabled)return!1}catch(t){e={error:t}}finally{try{r&&!r.done&&(t=n.return)&&t.call(n)}finally{if(e)throw e.error}}return this.controls.length>0||this.disabled},t.prototype._registerControl=function(e){e.setParent(this),e._registerOnCollectionChange(this._onCollectionChange)},t}(id),sd=Promise.resolve(null),cd=function(e){function t(t,n){var r=e.call(this)||this;return r.submitted=!1,r._directives=[],r.ngSubmit=new nn,r.form=new ud({},Qc(t),Kc(n)),r}return o(t,e),t.prototype.ngAfterViewInit=function(){this._setUpdateStrategy()},Object.defineProperty(t.prototype,"formDirective",{get:function(){return this},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"control",{get:function(){return this.form},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"path",{get:function(){return[]},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"controls",{get:function(){return this.form.controls},enumerable:!0,configurable:!0}),t.prototype.addControl=function(e){var t=this;sd.then(function(){var n=t._findContainer(e.path);e.control=n.registerControl(e.name,e.control),Wc(e.control,e),e.control.updateValueAndValidity({emitEvent:!1}),t._directives.push(e)})},t.prototype.getControl=function(e){return this.form.get(e.path)},t.prototype.removeControl=function(e){var t=this;sd.then(function(){var n,r,o=t._findContainer(e.path);o&&o.removeControl(e.name),(r=(n=t._directives).indexOf(e))>-1&&n.splice(r,1)})},t.prototype.addFormGroup=function(e){var t=this;sd.then(function(){var n=t._findContainer(e.path),r=new ud({});(function(e,t){null==e&&$c(t,"Cannot find control with"),e.validator=kc.compose([e.validator,t.validator]),e.asyncValidator=kc.composeAsync([e.asyncValidator,t.asyncValidator])})(r,e),n.registerControl(e.name,r),r.updateValueAndValidity({emitEvent:!1})})},t.prototype.removeFormGroup=function(e){var t=this;sd.then(function(){var n=t._findContainer(e.path);n&&n.removeControl(e.name)})},t.prototype.getFormGroup=function(e){return this.form.get(e.path)},t.prototype.updateModel=function(e,t){var n=this;sd.then(function(){n.form.get(e.path).setValue(t)})},t.prototype.setValue=function(e){this.control.setValue(e)},t.prototype.onSubmit=function(e){return this.submitted=!0,t=this._directives,this.form._syncPendingControls(),t.forEach(function(e){var t=e.control;"submit"===t.updateOn&&t._pendingChange&&(e.viewToModelUpdate(t._pendingValue),t._pendingChange=!1)}),this.ngSubmit.emit(e),!1;var t},t.prototype.onReset=function(){this.resetForm()},t.prototype.resetForm=function(e){void 0===e&&(e=void 0),this.form.reset(e),this.submitted=!1},t.prototype._setUpdateStrategy=function(){this.options&&null!=this.options.updateOn&&(this.form._updateOn=this.options.updateOn)},t.prototype._findContainer=function(e){return e.pop(),e.length?this.form.get(e):this.form},l([u(0,Pe()),u(0,Me()),u(0,Ve(xc)),u(1,Pe()),u(1,Me()),u(1,Ve(Cc))],t)}(bc),dd=function(){function e(){}return e.modelParentException=function(){throw new Error('\n ngModel cannot be used to register form controls with a parent formGroup directive. Try using\n formGroup\'s partner directive "formControlName" instead. Example:\n\n '+Hc+'\n\n Or, if you\'d like to avoid registering this form control, indicate that it\'s standalone in ngModelOptions:\n\n Example:\n\n \n
\n \n \n
\n ')},e.formGroupNameException=function(){throw new Error("\n ngModel cannot be used to register form controls with a parent formGroupName or formArrayName directive.\n\n Option 1: Use formControlName instead of ngModel (reactive strategy):\n\n "+zc+"\n\n Option 2: Update ngModel's parent be ngModelGroup (template-driven strategy):\n\n "+Uc)},e.missingNameException=function(){throw new Error('If ngModel is used within a form tag, either the name attribute must be set or the form\n control must be defined as \'standalone\' in ngModelOptions.\n\n Example 1: \n Example 2: ')},e.modelGroupParentException=function(){throw new Error("\n ngModelGroup cannot be used with a parent formGroup directive.\n\n Option 1: Use formGroupName instead of ngModelGroup (reactive strategy):\n\n "+zc+"\n\n Option 2: Use a regular form tag instead of the formGroup directive (template-driven strategy):\n\n "+Uc)},e}(),fd=function(e){function t(t,n,r){var o=e.call(this)||this;return o._parent=t,o._validators=n,o._asyncValidators=r,o}var n;return o(t,e),n=t,t.prototype._checkParentType=function(){this._parent instanceof n||this._parent instanceof cd||dd.modelGroupParentException()},n=l([u(0,je()),u(0,Re()),u(1,Pe()),u(1,Me()),u(1,Ve(xc)),u(2,Pe()),u(2,Me()),u(2,Ve(Cc))],t)}(ed),pd=Promise.resolve(null),hd=function(e){function t(t,n,r,o){var i=e.call(this)||this;return i.control=new ld,i._registered=!1,i.update=new nn,i._parent=t,i._rawValidators=n||[],i._rawAsyncValidators=r||[],i.valueAccessor=Xc(i,o),i}return o(t,e),t.prototype.ngOnChanges=function(e){this._checkForErrors(),this._registered||this._setUpControl(),"isDisabled"in e&&this._updateDisabled(e),Yc(e,this.viewModel)&&(this._updateValue(this.model),this.viewModel=this.model)},t.prototype.ngOnDestroy=function(){this.formDirective&&this.formDirective.removeControl(this)},Object.defineProperty(t.prototype,"path",{get:function(){return this._parent?qc(this.name,this._parent):[this.name]},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"formDirective",{get:function(){return this._parent?this._parent.formDirective:null},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"validator",{get:function(){return Qc(this._rawValidators)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"asyncValidator",{get:function(){return Kc(this._rawAsyncValidators)},enumerable:!0,configurable:!0}),t.prototype.viewToModelUpdate=function(e){this.viewModel=e,this.update.emit(e)},t.prototype._setUpControl=function(){this._setUpdateStrategy(),this._isStandalone()?this._setUpStandalone():this.formDirective.addControl(this),this._registered=!0},t.prototype._setUpdateStrategy=function(){this.options&&null!=this.options.updateOn&&(this.control._updateOn=this.options.updateOn)},t.prototype._isStandalone=function(){return!this._parent||!(!this.options||!this.options.standalone)},t.prototype._setUpStandalone=function(){Wc(this.control,this),this.control.updateValueAndValidity({emitEvent:!1})},t.prototype._checkForErrors=function(){this._isStandalone()||this._checkParentType(),this._checkName()},t.prototype._checkParentType=function(){!(this._parent instanceof fd)&&this._parent instanceof ed?dd.formGroupNameException():this._parent instanceof fd||this._parent instanceof cd||dd.modelParentException()},t.prototype._checkName=function(){this.options&&this.options.name&&(this.name=this.options.name),this._isStandalone()||this.name||dd.missingNameException()},t.prototype._updateValue=function(e){var t=this;pd.then(function(){t.control.setValue(e,{emitViewToModelChange:!1})})},t.prototype._updateDisabled=function(e){var t=this,n=e.isDisabled.currentValue,r=""===n||n&&"false"!==n;pd.then(function(){r&&!t.control.disabled?t.control.disable():!r&&t.control.disabled&&t.control.enable()})},l([u(0,Pe()),u(0,je()),u(1,Pe()),u(1,Me()),u(1,Ve(xc)),u(2,Pe()),u(2,Me()),u(2,Ve(Cc)),u(3,Pe()),u(3,Me()),u(3,Ve(Ac))],t)}(jc),gd=new _e("NgModelWithFormControlWarning"),vd=function(e){function t(t,n,r,o){var i=e.call(this)||this;return i._ngModelWarningConfig=o,i.update=new nn,i._ngModelWarningSent=!1,i._rawValidators=t||[],i._rawAsyncValidators=n||[],i.valueAccessor=Xc(i,r),i}var n;return o(t,e),n=t,Object.defineProperty(t.prototype,"isDisabled",{set:function(e){Gc.disabledAttrWarning()},enumerable:!0,configurable:!0}),t.prototype.ngOnChanges=function(e){var t,r,o,i;this._isControlChanged(e)&&(Wc(this.form,this),this.control.disabled&&this.valueAccessor.setDisabledState&&this.valueAccessor.setDisabledState(!0),this.form.updateValueAndValidity({emitEvent:!1})),Yc(e,this.viewModel)&&(t="formControl",r=n,o=this,i=this._ngModelWarningConfig,yn()&&"never"!==i&&((null!==i&&"once"!==i||r._ngModelWarningSentOnce)&&("always"!==i||o._ngModelWarningSent)||(Gc.ngModelWarning(t),r._ngModelWarningSentOnce=!0,o._ngModelWarningSent=!0)),this.form.setValue(this.model),this.viewModel=this.model)},Object.defineProperty(t.prototype,"path",{get:function(){return[]},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"validator",{get:function(){return Qc(this._rawValidators)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"asyncValidator",{get:function(){return Kc(this._rawAsyncValidators)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"control",{get:function(){return this.form},enumerable:!0,configurable:!0}),t.prototype.viewToModelUpdate=function(e){this.viewModel=e,this.update.emit(e)},t.prototype._isControlChanged=function(e){return e.hasOwnProperty("form")},t._ngModelWarningSentOnce=!1,n=l([u(0,Pe()),u(0,Me()),u(0,Ve(xc)),u(1,Pe()),u(1,Me()),u(1,Ve(Cc)),u(2,Pe()),u(2,Me()),u(2,Ve(Ac)),u(3,Pe()),u(3,Ve(gd))],t)}(jc),md=function(){function e(){}return e.prototype.group=function(e,t){void 0===t&&(t=null);var n=this._reduceControls(e);return new ud(n,null!=t?t.validator:null,null!=t?t.asyncValidator:null)},e.prototype.control=function(e,t,n){return new ld(e,t,n)},e.prototype.array=function(e,t,n){var r=this,o=e.map(function(e){return r._createControl(e)});return new ad(o,t,n)},e.prototype._reduceControls=function(e){var t=this,n={};return Object.keys(e).forEach(function(r){n[r]=t._createControl(e[r])}),n},e.prototype._createControl=function(e){return e instanceof ld||e instanceof ud||e instanceof ad?e:Array.isArray(e)?this.control(e[0],e.length>1?e[1]:null,e.length>2?e[2]:null):this.control(e)},e}(),yd=function(){},_d=function(){},bd=function(){function e(){}var t;return t=e,e.withConfig=function(e){return{ngModule:t,providers:[{provide:gd,useValue:e.warnOnNgModelWithFormControl}]}},e}(),wd=function(e){function t(t){var n=e.call(this)||this;return n._value=t,n}return o(t,e),Object.defineProperty(t.prototype,"value",{get:function(){return this.getValue()},enumerable:!0,configurable:!0}),t.prototype._subscribe=function(t){var n=e.prototype._subscribe.call(this,t);return n&&!n.closed&&t.next(this._value),n},t.prototype.getValue=function(){if(this.hasError)throw this.thrownError;if(this.closed)throw new j;return this._value},t.prototype.next=function(t){e.prototype.next.call(this,this._value=t)},t}(L);function xd(){for(var e=[],t=0;t=2&&(n=!0),function(r){return r.lift(new Dd(e,t,n))}}P.prototype.combineLatest=function(){for(var e=[],t=0;t0)for(var n=this.count>=this.total?this.total:this.count,r=this.ring,o=0;o=2?function(n){return N(Ad(e,t),Pd(1),(void 0===(r=t)&&(r=null),function(e){return e.lift(new jd(r))}))(n);var r}:function(t){return N(Ad(function(t,n,r){return e(t,n,r+1)}),Pd(1))(t)}}(Bd,[])(this)};var Ld=function(){function e(e,t){this.predicate=e,this.thisArg=t}return e.prototype.call=function(e,t){return t.subscribe(new Hd(e,this.predicate,this.thisArg))},e}(),Hd=function(e){function t(t,n,r){var o=e.call(this,t)||this;return o.predicate=n,o.thisArg=r,o.count=0,o}return o(t,e),t.prototype._next=function(e){var t;try{t=this.predicate.call(this.thisArg,e,this.count++)}catch(e){return void this.destination.error(e)}t&&this.destination.next(e)},t}(T);P.prototype.filter=function(e,t){return function(e,t){return function(n){return n.lift(new Ld(e,t))}}(e,t)(this)},P.prototype.share=function(){return me()(this)},P.prototype.merge=function(){for(var e=[],t=0;t$&"):this.text)),this.cacheRenderedText},e}(),Qd=function(){function e(e,t){void 0===t&&(t=[]),this.label=e,this.options=t,this.type="optgroup",this.filter(function(){return!0})}return e.prototype.filter=function(e){this.optionsFiltered=this.options.filter(function(t){return e(t)})},e}(),Kd=function(e){this.template=e},Yd=function(e){this.template=e},Jd=function(e){this.template=e},Xd=qd,ef=Wd,tf=new _e("NGX_SELECT_OPTIONS"),nf=function(e){return e[e.first=0]="first",e[e.previous=1]="previous",e[e.next=2]="next",e[e.last=3]="last",e[e.firstSelected=4]="firstSelected",e[e.firstIfOptionActiveInvisible=5]="firstIfOptionActiveInvisible",e}({});function rf(e,t){return t in e}var of=function(){function e(e,t,n,r){var o,i=this;this.sanitizer=t,this.cd=n,this.optionValueField="id",this.optionTextField="text",this.optGroupLabelField="label",this.optGroupOptionsField="options",this.multiple=!1,this.allowClear=!1,this.placeholder="",this.noAutoComplete=!1,this.disabled=!1,this.defaultValue=[],this.autoSelectSingleOption=!1,this.autoClearSearch=!1,this.noResultsFound="No results found",this.size="default",this.autoActiveOnMouseEnter=!0,this.keyCodeToRemoveSelected="Delete",this.keyCodeToOptionsOpen=["Enter","NumpadEnter"],this.keyCodeToOptionsClose="Escape",this.keyCodeToOptionsSelect=["Enter","NumpadEnter"],this.keyCodeToNavigateFirst="ArrowLeft",this.keyCodeToNavigatePrevious="ArrowUp",this.keyCodeToNavigateNext="ArrowDown",this.keyCodeToNavigateLast="ArrowRight",this.typed=new nn,this.focus=new nn,this.blur=new nn,this.open=new nn,this.close=new nn,this.select=new nn,this.remove=new nn,this.navigated=new nn,this.selectionChanges=new nn,this.optionsOpened=!1,this.actualValue=[],this.subjOptions=new wd([]),this.subjSearchText=new wd(""),this.subjOptionsSelected=new wd([]),this.subjExternalValue=new wd([]),this.subjDefaultValue=new wd([]),this.subjRegisterOnChange=new L,this._focusToInput=!1,this.isFocused=!1,this.onChange=function(e){return e},this.onTouched=function(){return null},Object.assign(this,r),this.itemsDiffer=e.find([]).create(null),this.defaultValueDiffer=e.find([]).create(null),this.typed.subscribe(function(e){return i.subjSearchText.next(e)}),this.subjOptionsSelected.subscribe(function(e){return i.selectionChanges.emit(e)});var l=this.subjExternalValue.map(function(e){return o=null===e?[]:[].concat(e)}).merge(this.subjOptionsSelected.map(function(e){return e.map(function(e){return e.value})})).combineLatest(this.subjDefaultValue,function(e,t){var n=Xd.isEqual(e,t)?[]:e;return n.length?n:t}).distinctUntilChanged(function(e,t){return Xd.isEqual(e,t)}).share();l.combineLatest(this.subjRegisterOnChange,function(e){return e}).subscribe(function(e){i.actualValue=e,Xd.isEqual(e,o)||(o=e,i.onChange(i.multiple?e:e.length?e[0]:null))}),this.subjOptions.flatMap(function(e){return P.from(e).flatMap(function(e){return e instanceof $d?xd(e):e instanceof Qd?oe(e.options):us}).toArray()}).combineLatest(l,function(e,t){var n=[];if(t.forEach(function(t){var r=e.find(function(e){return e.value===t});r&&n.push(r)}),i.keepSelectedItems){var r=n.map(function(e){return e.value}),o=i.subjOptionsSelected.value.filter(function(e){return-1===r.indexOf(e.value)});n.push.apply(n,o)}Xd.isEqual(n,i.subjOptionsSelected.value)||(i.subjOptionsSelected.next(n),i.cd.markForCheck())}).subscribe(),this.subjOptions.combineLatest(this.subjOptionsSelected,this.subjSearchText,function(e,t,n){return i.optionsFiltered=i.filterOptions(n,e,t).map(function(e){return e instanceof $d?e.highlightedText=i.highlightOption(e):e instanceof Qd&&e.options.map(function(e){return e.highlightedText=i.highlightOption(e),e}),e}),i.cacheOptionsFilteredFlat=null,i.navigateOption(nf.firstIfOptionActiveInvisible),i.cd.markForCheck(),t}).flatMap(function(e){return i.optionsFilteredFlat().filter(function(t){return i.autoSelectSingleOption&&1===t.length&&!e.length})}).subscribe(function(e){i.subjOptionsSelected.next(e),i.cd.markForCheck()})}return Object.defineProperty(e.prototype,"inputText",{get:function(){return this.inputElRef&&this.inputElRef.nativeElement?this.inputElRef.nativeElement.value:""},enumerable:!0,configurable:!0}),e.prototype.setFormControlSize=function(e,t){return void 0===e&&(e={}),void 0===t&&(t=!0),Object.assign(t?{"form-control-sm input-sm":"small"===this.size,"form-control-lg input-lg":"large"===this.size}:{},e)},e.prototype.setBtnSize=function(){return{"btn-sm":"small"===this.size,"btn-lg":"large"===this.size}},Object.defineProperty(e.prototype,"optionsSelected",{get:function(){return this.subjOptionsSelected.value},enumerable:!0,configurable:!0}),e.prototype.mainClicked=function(e){e.clickedSelectComponent=this,this.isFocused||(this.isFocused=!0,this.focus.emit())},e.prototype.documentClick=function(e){e.clickedSelectComponent!==this&&(this.optionsOpened&&(this.optionsClose(),this.cd.detectChanges()),this.isFocused&&(this.isFocused=!1,this.blur.emit()))},e.prototype.optionsFilteredFlat=function(){var e=this;return this.cacheOptionsFilteredFlat?xd(this.cacheOptionsFilteredFlat):oe(this.optionsFiltered).flatMap(function(e){return e instanceof $d?xd(e):e instanceof Qd?oe(e.optionsFiltered):us}).filter(function(e){return!e.disabled}).toArray().do(function(t){return e.cacheOptionsFilteredFlat=t})},e.prototype.navigateOption=function(e){var t=this;this.optionsFilteredFlat().map(function(n){var r,o={index:-1,activeOption:null,filteredOptionList:n};switch(e){case nf.first:o.index=0;break;case nf.previous:r=n.indexOf(t.optionActive)-1,o.index=r>=0?r:n.length-1;break;case nf.next:r=n.indexOf(t.optionActive)+1,o.index=r0?i:0}return o.activeOption=n[o.index],o}).subscribe(function(e){return t.optionActivate(e)})},e.prototype.ngDoCheck=function(){this.itemsDiffer.diff(this.items)&&this.subjOptions.next(this.buildOptions(this.items));var e=this.defaultValue?[].concat(this.defaultValue):[];this.defaultValueDiffer.diff(e)&&this.subjDefaultValue.next(e)},e.prototype.ngAfterContentChecked=function(){if(this._focusToInput&&this.checkInputVisibility()&&this.inputElRef&&this.inputElRef.nativeElement!==document.activeElement&&(this._focusToInput=!1,this.inputElRef.nativeElement.focus()),this.choiceMenuElRef){var e=this.choiceMenuElRef.nativeElement.querySelector("a.ngx-select__item_active.active");e&&e.offsetHeight>0&&this.ensureVisibleElement(e)}},e.prototype.canClearNotMultiple=function(){return this.allowClear&&!!this.subjOptionsSelected.value.length&&(!this.subjDefaultValue.value.length||this.subjDefaultValue.value[0]!==this.actualValue[0])},e.prototype.focusToInput=function(){this._focusToInput=!0},e.prototype.inputKeyDown=function(e){var t=[].concat(this.keyCodeToOptionsSelect,this.keyCodeToNavigateFirst,this.keyCodeToNavigatePrevious,this.keyCodeToNavigateNext,this.keyCodeToNavigateLast),n=[].concat(this.keyCodeToOptionsOpen,this.keyCodeToRemoveSelected);if(this.optionsOpened&&-1!==t.indexOf(e.code))switch(e.preventDefault(),e.stopPropagation(),e.code){case[].concat(this.keyCodeToOptionsSelect).indexOf(e.code)+1&&e.code:this.optionSelect(this.optionActive),this.navigateOption(nf.next);break;case this.keyCodeToNavigateFirst:this.navigateOption(nf.first);break;case this.keyCodeToNavigatePrevious:this.navigateOption(nf.previous);break;case this.keyCodeToNavigateLast:this.navigateOption(nf.last);break;case this.keyCodeToNavigateNext:this.navigateOption(nf.next)}else if(!this.optionsOpened&&-1!==n.indexOf(e.code))switch(e.preventDefault(),e.stopPropagation(),e.code){case[].concat(this.keyCodeToOptionsOpen).indexOf(e.code)+1&&e.code:this.optionsOpen();break;case this.keyCodeToRemoveSelected:this.optionRemove(this.subjOptionsSelected.value[this.subjOptionsSelected.value.length-1],e)}},e.prototype.trackByOption=function(e,t){return t instanceof $d?t.value:t instanceof Qd?t.label:t},e.prototype.checkInputVisibility=function(){return!0===this.multiple||this.optionsOpened&&!this.noAutoComplete},e.prototype.inputKeyUp=function(e,t){void 0===e&&(e=""),t.code===this.keyCodeToOptionsClose?this.optionsClose():this.optionsOpened?this.typed.emit(e):!this.optionsOpened&&e&&this.optionsOpen(e)},e.prototype.inputClick=function(e){void 0===e&&(e=""),this.optionsOpened||this.optionsOpen(e)},e.prototype.sanitize=function(e){return e?this.sanitizer.bypassSecurityTrustHtml(e):null},e.prototype.highlightOption=function(e){return e.renderText(this.sanitizer,this.inputElRef?this.inputElRef.nativeElement.value:"")},e.prototype.optionSelect=function(e,t){void 0===t&&(t=null),t&&(t.preventDefault(),t.stopPropagation()),e&&!e.disabled&&(this.subjOptionsSelected.next((this.multiple?this.subjOptionsSelected.value:[]).concat([e])),this.select.emit(e.value),this.optionsClose(),this.onTouched())},e.prototype.optionRemove=function(e,t){!this.disabled&&e&&(t.stopPropagation(),this.subjOptionsSelected.next((this.multiple?this.subjOptionsSelected.value:[]).filter(function(t){return t!==e})),this.remove.emit(e.value))},e.prototype.optionActivate=function(e){this.optionActive===e.activeOption||e.activeOption&&e.activeOption.disabled||(this.optionActive&&(this.optionActive.active=!1),this.optionActive=e.activeOption,this.optionActive&&(this.optionActive.active=!0),this.navigated.emit(e),this.cd.detectChanges())},e.prototype.onMouseEnter=function(e){this.autoActiveOnMouseEnter&&this.optionActivate(e)},e.prototype.filterOptions=function(e,t,n){var r=this,o=new RegExp(ef(e),"i"),i=function(t){return r.searchCallback?r.searchCallback(e,t):(!e||o.test(t.text))&&(!r.multiple||-1===n.indexOf(t))};return t.filter(function(e){if(e instanceof $d)return i(e);if(e instanceof Qd){var t=e;return t.filter(function(e){return i(e)}),t.optionsFiltered.length}})},e.prototype.ensureVisibleElement=function(e){if(this.choiceMenuElRef&&this.cacheElementOffsetTop!==e.offsetTop){this.cacheElementOffsetTop=e.offsetTop;var t=this.choiceMenuElRef.nativeElement;this.cacheElementOffsetTopt.scrollTop+t.clientHeight&&(t.scrollTop=this.cacheElementOffsetTop+e.offsetHeight-t.clientHeight)}},e.prototype.optionsOpen=function(e){void 0===e&&(e=""),this.disabled||(this.optionsOpened=!0,this.subjSearchText.next(e),this.navigateOption(!this.multiple&&this.subjOptionsSelected.value.length?nf.firstSelected:nf.first),this.focusToInput(),this.open.emit(),this.cd.markForCheck())},e.prototype.optionsClose=function(){this.optionsOpened=!1,this.close.emit(),this.autoClearSearch&&this.multiple&&this.inputElRef&&(this.inputElRef.nativeElement.value=null)},e.prototype.buildOptions=function(e){var t,n=this,r=[];return Array.isArray(e)&&e.forEach(function(e){if("object"==typeof e&&null!==e&&rf(e,n.optGroupLabelField)&&rf(e,n.optGroupOptionsField)&&Array.isArray(e[n.optGroupOptionsField])){var o=new Qd(e[n.optGroupLabelField]);e[n.optGroupOptionsField].forEach(function(e){(t=n.buildOption(e,o))&&o.options.push(t)}),r.push(o)}else(t=n.buildOption(e,null))&&r.push(t)}),r},e.prototype.buildOption=function(e,t){var n,r,o;if("string"==typeof e||"number"==typeof e)n=r=e,o=!1;else{if("object"!=typeof e||null===e||!rf(e,this.optionValueField)&&!rf(e,this.optionTextField))return null;n=rf(e,this.optionValueField)?e[this.optionValueField]:e[this.optionTextField],r=rf(e,this.optionTextField)?e[this.optionTextField]:e[this.optionValueField],o=!!rf(e,"disabled")&&e.disabled}return new $d(n,r,o,e,t)},e.prototype.writeValue=function(e){this.subjExternalValue.next(e)},e.prototype.registerOnChange=function(e){this.onChange=e,this.subjRegisterOnChange.next()},e.prototype.registerOnTouched=function(e){this.onTouched=e},e.prototype.setDisabledState=function(e){this.disabled=e},e}(),lf=Jr({encapsulation:0,styles:[[".ngx-select_multiple[_ngcontent-%COMP%]{height:auto;padding:3px 3px 0}.ngx-select_multiple[_ngcontent-%COMP%] .ngx-select__search[_ngcontent-%COMP%]{background-color:transparent!important;border:none;outline:0;box-shadow:none;height:1.6666em;padding:0;margin-bottom:3px}.ngx-select__disabled[_ngcontent-%COMP%]{background-color:#eceeef;border-radius:4px;position:absolute;width:100%;height:100%;z-index:5;opacity:.6;top:0;left:0;cursor:not-allowed}.ngx-select__toggle[_ngcontent-%COMP%]{outline:0;position:relative;text-align:left!important;color:#333;background-color:#fff;border-color:#ccc;display:inline-flex;align-items:stretch;justify-content:space-between}.ngx-select__toggle[_ngcontent-%COMP%]:hover{color:#333;background-color:#e6e6e6;border-color:#adadad}.ngx-select__toggle-buttons[_ngcontent-%COMP%]{flex-shrink:0;display:flex;align-items:center}.ngx-select__toggle-caret[_ngcontent-%COMP%]{position:absolute;height:10px;top:50%;right:10px;margin-top:-2px}.ngx-select__placeholder[_ngcontent-%COMP%]{float:left;max-width:100%;text-overflow:ellipsis;overflow:hidden}.ngx-select__clear[_ngcontent-%COMP%]{margin-right:10px;padding:0;border:none}.ngx-select_multiple[_ngcontent-%COMP%] .ngx-select__clear[_ngcontent-%COMP%]{line-height:initial;margin-left:5px;margin-right:0;color:#000;opacity:.5}.ngx-select__clear-icon[_ngcontent-%COMP%]{display:inline-block;font-size:inherit;cursor:pointer;position:relative;width:1em;height:.75em;padding:0}.ngx-select__clear-icon[_ngcontent-%COMP%]:after, .ngx-select__clear-icon[_ngcontent-%COMP%]:before{content:'';position:absolute;border-top:3px solid;width:100%;top:50%;left:0;margin-top:-1px}.ngx-select__clear-icon[_ngcontent-%COMP%]:before{-webkit-transform:rotate(45deg);transform:rotate(45deg)}.ngx-select__clear-icon[_ngcontent-%COMP%]:after{-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}.ngx-select__choices[_ngcontent-%COMP%]{width:100%;height:auto;max-height:200px;overflow-x:hidden;margin-top:0;position:absolute}.ngx-select_multiple[_ngcontent-%COMP%] .ngx-select__choices[_ngcontent-%COMP%]{margin-top:1px}.ngx-select__item[_ngcontent-%COMP%]{display:block;padding:3px 20px;clear:both;font-weight:400;line-height:1.42857143;white-space:nowrap;cursor:pointer;text-decoration:none}.ngx-select__item_disabled[_ngcontent-%COMP%], .ngx-select__item_no-found[_ngcontent-%COMP%]{cursor:default}.ngx-select__item_active[_ngcontent-%COMP%]{color:#fff;outline:0;background-color:#428bca}.ngx-select__selected-plural[_ngcontent-%COMP%], .ngx-select__selected-single[_ngcontent-%COMP%]{display:inline-flex;align-items:center;overflow:hidden}.ngx-select__selected-plural[_ngcontent-%COMP%] span[_ngcontent-%COMP%], .ngx-select__selected-single[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{overflow:hidden;text-overflow:ellipsis}.ngx-select__selected-plural[_ngcontent-%COMP%]{outline:0;margin:0 3px 3px 0}.input-group[_ngcontent-%COMP%] > .dropdown[_ngcontent-%COMP%]{position:static}"]],data:{}});function uf(e){return Gi(0,[(e()(),So(0,0,null,null,1,"span",[["class","ngx-select__placeholder text-muted"]],null,null,null,null,null)),(e()(),So(1,0,null,null,0,"span",[],[[8,"innerHTML",1]],null,null,null,null))],null,function(e,t){e(t,1,0,t.component.placeholder)})}function af(e){return Gi(0,[(e()(),So(0,0,null,null,5,"span",[["class","ngx-select__selected-single pull-left float-left"]],null,null,null,null,null)),hi(1,278528,null,0,Fa,[er,tr,An,Tn],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),Bi(2,{"ngx-select__allow-clear":0}),(e()(),So(3,16777216,null,null,2,null,null,null,null,null,null,null)),hi(4,540672,null,0,qa,[Nn],{ngTemplateOutletContext:[0,"ngTemplateOutletContext"],ngTemplateOutlet:[1,"ngTemplateOutlet"]},null),Bi(5,{$implicit:0,index:1,text:2})],function(e,t){var n=t.component;e(t,1,0,"ngx-select__selected-single pull-left float-left",e(t,2,0,n.allowClear)),e(t,4,0,e(t,5,0,n.optionsSelected[0],0,n.sanitize(n.optionsSelected[0].text)),n.templateSelectedOption||ti(t.parent.parent,17))},null)}function sf(e){return Gi(0,[(e()(),So(0,0,null,null,2,"a",[["class","ngx-select__clear btn btn-sm btn-link"]],null,[[null,"click"]],function(e,t,n){var r=!0,o=e.component;return"click"===t&&(r=!1!==o.optionRemove(o.optionsSelected[0],n)&&r),r},null,null)),hi(1,278528,null,0,Fa,[er,tr,An,Tn],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),(e()(),So(2,0,null,null,0,"i",[["class","ngx-select__clear-icon"]],null,null,null,null,null))],function(e,t){e(t,1,0,"ngx-select__clear btn btn-sm btn-link",t.component.setBtnSize())},null)}function cf(e){return Gi(0,[(e()(),So(0,0,null,null,11,"div",[["class","ngx-select__selected"]],null,null,null,null,null)),(e()(),So(1,0,null,null,10,"div",[["class","ngx-select__toggle btn form-control"]],null,[[null,"click"]],function(e,t,n){var r=!0;return"click"===t&&(r=!1!==e.component.optionsOpen()&&r),r},null,null)),hi(2,278528,null,0,Fa,[er,tr,An,Tn],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),(e()(),Oo(16777216,null,null,1,null,uf)),hi(4,16384,null,0,za,[Nn,In],{ngIf:[0,"ngIf"]},null),(e()(),Oo(16777216,null,null,1,null,af)),hi(6,16384,null,0,za,[Nn,In],{ngIf:[0,"ngIf"]},null),(e()(),So(7,0,null,null,4,"span",[["class","ngx-select__toggle-buttons"]],null,null,null,null,null)),(e()(),Oo(16777216,null,null,1,null,sf)),hi(9,16384,null,0,za,[Nn,In],{ngIf:[0,"ngIf"]},null),(e()(),So(10,0,null,null,0,"i",[["class","dropdown-toggle"]],null,null,null,null,null)),(e()(),So(11,0,null,null,0,"i",[["class","ngx-select__toggle-caret caret"]],null,null,null,null,null))],function(e,t){var n=t.component;e(t,2,0,"ngx-select__toggle btn form-control",n.setFormControlSize(n.setBtnSize())),e(t,4,0,!n.optionsSelected.length),e(t,6,0,n.optionsSelected.length),e(t,9,0,n.canClearNotMultiple())},null)}function df(e){return Gi(0,[(e()(),So(0,0,null,null,8,"span",[],null,null,null,null,null)),(e()(),So(1,0,null,null,7,"span",[["class","ngx-select__selected-plural btn btn-default btn-secondary btn-xs"],["tabindex","-1"]],null,null,null,null,null)),hi(2,278528,null,0,Fa,[er,tr,An,Tn],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),(e()(),So(3,16777216,null,null,2,null,null,null,null,null,null,null)),hi(4,540672,null,0,qa,[Nn],{ngTemplateOutletContext:[0,"ngTemplateOutletContext"],ngTemplateOutlet:[1,"ngTemplateOutlet"]},null),Bi(5,{$implicit:0,index:1,text:2}),(e()(),So(6,0,null,null,2,"a",[["class","ngx-select__clear btn btn-sm btn-link pull-right float-right"]],null,[[null,"click"]],function(e,t,n){var r=!0;return"click"===t&&(r=!1!==e.component.optionRemove(e.context.$implicit,n)&&r),r},null,null)),hi(7,278528,null,0,Fa,[er,tr,An,Tn],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),(e()(),So(8,0,null,null,0,"i",[["class","ngx-select__clear-icon"]],null,null,null,null,null))],function(e,t){var n=t.component;e(t,2,0,"ngx-select__selected-plural btn btn-default btn-secondary btn-xs",n.setBtnSize()),e(t,4,0,e(t,5,0,t.context.$implicit,t.context.index,n.sanitize(t.context.$implicit.text)),n.templateSelectedOption||ti(t.parent.parent,17)),e(t,7,0,"ngx-select__clear btn btn-sm btn-link pull-right float-right",n.setBtnSize())},null)}function ff(e){return Gi(0,[(e()(),So(0,0,null,null,2,"div",[["class","ngx-select__selected"]],null,null,null,null,null)),(e()(),Oo(16777216,null,null,1,null,df)),hi(2,278528,null,0,La,[Nn,In,er],{ngForOf:[0,"ngForOf"],ngForTrackBy:[1,"ngForTrackBy"]},null)],function(e,t){var n=t.component;e(t,2,0,n.optionsSelected,n.trackByOption)},null)}function pf(e){return Gi(0,[(e()(),So(0,0,[[2,0],["input",1]],null,1,"input",[["autocapitalize","off"],["autocomplete","off"],["autocorrect","off"],["class","ngx-select__search form-control"],["role","combobox"],["spellcheck","false"],["type","text"]],[[8,"tabIndex",0],[8,"disabled",0],[8,"placeholder",0]],[[null,"keyup"],[null,"click"]],function(e,t,n){var r=!0,o=e.component;return"keyup"===t&&(r=!1!==o.inputKeyUp(ti(e,0).value,n)&&r),"click"===t&&(r=!1!==o.inputClick(ti(e,0).value)&&r),r},null,null)),hi(1,278528,null,0,Fa,[er,tr,An,Tn],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null)],function(e,t){e(t,1,0,"ngx-select__search form-control",t.component.setFormControlSize())},function(e,t){var n=t.component;e(t,0,0,!1===n.multiple?-1:0,n.disabled,n.optionsSelected.length?"":n.placeholder)})}function hf(e){return Gi(0,[(e()(),So(0,0,null,null,0,"div",[["class","divider dropdown-divider"]],null,null,null,null,null))],null,null)}function gf(e){return Gi(0,[(e()(),So(0,0,null,null,1,"div",[["class","dropdown-header"]],null,null,null,null,null)),(e()(),Hi(1,null,["",""]))],null,function(e,t){e(t,1,0,t.parent.context.$implicit.label)})}function vf(e){return Gi(0,[(e()(),So(0,0,[["choiceItem",1]],null,5,"a",[["class","ngx-select__item dropdown-item"],["href","#"]],null,[[null,"mouseenter"],[null,"click"]],function(e,t,n){var r=!0,o=e.component;return"mouseenter"===t&&(r=!1!==o.onMouseEnter({activeOption:e.context.$implicit,filteredOptionList:o.optionsFiltered,index:e.context.index})&&r),"click"===t&&(r=!1!==o.optionSelect(e.context.$implicit,n)&&r),r},null,null)),hi(1,278528,null,0,Fa,[er,tr,An,Tn],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),Bi(2,{"ngx-select__item_active active":0,"ngx-select__item_disabled disabled":1}),(e()(),So(3,16777216,null,null,2,null,null,null,null,null,null,null)),hi(4,540672,null,0,qa,[Nn],{ngTemplateOutletContext:[0,"ngTemplateOutletContext"],ngTemplateOutlet:[1,"ngTemplateOutlet"]},null),Bi(5,{$implicit:0,text:1,index:2,subIndex:3})],function(e,t){var n=t.component;e(t,1,0,"ngx-select__item dropdown-item",e(t,2,0,t.context.$implicit.active,t.context.$implicit.disabled)),e(t,4,0,e(t,5,0,t.context.$implicit,t.context.$implicit.highlightedText,t.parent.context.index,t.context.index),n.templateOption||ti(t.parent.parent.parent,17))},null)}function mf(e){return Gi(0,[(e()(),So(0,0,null,null,7,"li",[["class","ngx-select__item-group"],["role","menuitem"]],null,null,null,null,null)),(e()(),Oo(16777216,null,null,1,null,hf)),hi(2,16384,null,0,za,[Nn,In],{ngIf:[0,"ngIf"]},null),(e()(),Oo(16777216,null,null,1,null,gf)),hi(4,16384,null,0,za,[Nn,In],{ngIf:[0,"ngIf"]},null),(e()(),Oo(16777216,null,null,2,null,vf)),hi(6,278528,null,0,La,[Nn,In,er],{ngForOf:[0,"ngForOf"],ngForTrackBy:[1,"ngForTrackBy"]},null),Fi(7,1)],function(e,t){var n=t.component;e(t,2,0,"optgroup"===t.context.$implicit.type&&t.context.index>0),e(t,4,0,"optgroup"===t.context.$implicit.type),e(t,6,0,t.context.$implicit.optionsFiltered||e(t,7,0,t.context.$implicit),n.trackByOption)},null)}function yf(e){return Gi(0,[(e()(),So(0,0,null,null,3,"li",[["class","ngx-select__item ngx-select__item_no-found dropdown-header"]],null,null,null,null,null)),(e()(),So(1,16777216,null,null,2,null,null,null,null,null,null,null)),hi(2,540672,null,0,qa,[Nn],{ngTemplateOutletContext:[0,"ngTemplateOutletContext"],ngTemplateOutlet:[1,"ngTemplateOutlet"]},null),Bi(3,{$implicit:0})],function(e,t){var n=t.component;e(t,2,0,e(t,3,0,n.inputText),n.templateOptionNotFound||ti(t.parent.parent,18))},null)}function _f(e){return Gi(0,[(e()(),So(0,0,[[3,0],["choiceMenu",1]],null,4,"ul",[["class","ngx-select__choices dropdown-menu"],["role","menu"]],[[2,"show",null]],null,null,null,null)),(e()(),Oo(16777216,null,null,1,null,mf)),hi(2,278528,null,0,La,[Nn,In,er],{ngForOf:[0,"ngForOf"],ngForTrackBy:[1,"ngForTrackBy"]},null),(e()(),Oo(16777216,null,null,1,null,yf)),hi(4,16384,null,0,za,[Nn,In],{ngIf:[0,"ngIf"]},null)],function(e,t){var n=t.component;e(t,2,0,n.optionsFiltered,n.trackByOption),e(t,4,0,!n.optionsFiltered.length)},function(e,t){e(t,0,0,t.component.optionsOpened)})}function bf(e){return Gi(0,[(e()(),So(0,0,null,null,0,"span",[],[[8,"innerHTML",1]],null,null,null,null))],null,function(e,t){e(t,0,0,t.context.text)})}function wf(e){return Gi(0,[(e()(),Hi(0,null,[" "," "]))],null,function(e,t){e(t,0,0,t.component.noResultsFound)})}function xf(e){return Gi(2,[Ii(402653184,1,{mainElRef:0}),Ii(671088640,2,{inputElRef:0}),Ii(671088640,3,{choiceMenuElRef:0}),(e()(),So(3,0,[[1,0],["main",1]],null,15,"div",[["class","ngx-select dropdown"]],[[8,"tabIndex",0]],[[null,"click"],[null,"focusin"],[null,"focus"],[null,"keydown"]],function(e,t,n){var r=!0,o=e.component;return"click"===t&&(r=!1!==o.mainClicked(n)&&r),"focusin"===t&&(r=!1!==o.mainClicked(n)&&r),"focus"===t&&(r=!1!==o.focusToInput()&&r),"keydown"===t&&(r=!1!==o.inputKeyDown(n)&&r),r},null,null)),hi(4,278528,null,0,Fa,[er,tr,An,Tn],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),Bi(5,{"ngx-select_multiple form-control":0,"open show":1}),(e()(),So(6,0,null,null,2,"div",[],null,null,null,null,null)),hi(7,278528,null,0,Fa,[er,tr,An,Tn],{ngClass:[0,"ngClass"]},null),Bi(8,{"ngx-select__disabled":0}),(e()(),Oo(16777216,null,null,1,null,cf)),hi(10,16384,null,0,za,[Nn,In],{ngIf:[0,"ngIf"]},null),(e()(),Oo(16777216,null,null,1,null,ff)),hi(12,16384,null,0,za,[Nn,In],{ngIf:[0,"ngIf"]},null),(e()(),Oo(16777216,null,null,1,null,pf)),hi(14,16384,null,0,za,[Nn,In],{ngIf:[0,"ngIf"]},null),(e()(),Oo(16777216,null,null,1,null,_f)),hi(16,16384,null,0,za,[Nn,In],{ngIf:[0,"ngIf"]},null),(e()(),Oo(0,[["defaultTemplateOption",2]],null,0,null,bf)),(e()(),Oo(0,[["defaultTemplateOptionNotFound",2]],null,0,null,wf))],function(e,t){var n=t.component;e(t,4,0,"ngx-select dropdown",n.setFormControlSize(e(t,5,0,!0===n.multiple,n.optionsOpened&&n.optionsFiltered.length),!0===n.multiple)),e(t,7,0,e(t,8,0,n.disabled)),e(t,10,0,!1===n.multiple&&(!n.optionsOpened||n.noAutoComplete)),e(t,12,0,!0===n.multiple),e(t,14,0,n.checkInputVisibility()),e(t,16,0,n.isFocused)},function(e,t){e(t,3,0,t.component.disabled?-1:0)})}var Cf=function(){function e(){var e=this;this.items=["Amsterdam","Antwerp","Athens","Barcelona","Berlin","Birmingham","Bradford","Bremen","Brussels","Bucharest","Budapest","Cologne","Copenhagen","Dortmund","Dresden","Dublin","D\xfcsseldorf","Essen","Frankfurt","Genoa","Glasgow","Gothenburg","Hamburg","Hannover","Helsinki","Krak\xf3w","Leeds","Leipzig","Lisbon","London","Madrid","Manchester","Marseille","Milan","Munich","M\xe1laga","Naples","Palermo","Paris","Pozna\u0144","Prague","Riga","Rome","Rotterdam","Seville","Sheffield","Sofia","Stockholm","Stuttgart","The Hague","Turin","Valencia","Vienna","Vilnius","Warsaw","Wroc\u0142aw","Zagreb","Zaragoza","\u0141\xf3d\u017a"],this.ngxControl=new ld,this.inputTyped=function(e,t){return console.log("SingleDemoComponent.inputTyped",e,t)},this.doFocus=function(){return console.log("SingleDemoComponent.doFocus")},this.doBlur=function(){return console.log("SingleDemoComponent.doBlur")},this.doOpen=function(){return console.log("SingleDemoComponent.doOpen")},this.doClose=function(){return console.log("SingleDemoComponent.doClose")},this.doSelect=function(e){return console.log("SingleDemoComponent.doSelect",e)},this.doRemove=function(e){return console.log("SingleDemoComponent.doRemove",e)},this.doSelectOptions=function(e){return console.log("SingleDemoComponent.doSelectOptions",e)},this._ngxDefaultTimeout=setTimeout(function(){e._ngxDefaultInterval=setInterval(function(){var t=Math.floor(Math.random()*(e.items.length-1));e._ngxDefault=e.items[t]},2e3)},2e3)}return e.prototype.ngOnDestroy=function(){clearTimeout(this._ngxDefaultTimeout),clearInterval(this._ngxDefaultInterval)},e.prototype.doNgxDefault=function(){return this._ngxDefault},e}(),Ef=Jr({encapsulation:2,styles:[],data:{}});function kf(e){return Gi(0,[(e()(),So(0,0,null,null,1,"h3",[],null,null,null,null,null)),(e()(),Hi(-1,null,["Select a single city"])),(e()(),So(2,0,null,null,18,"div",[["class","example-block"]],null,null,null,null,null)),(e()(),So(3,0,null,null,17,"div",[["class","example-block__item"]],null,null,null,null,null)),(e()(),So(4,0,null,null,8,"ngx-select",[["placeholder","No city selected"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"typed"],[null,"focus"],[null,"blur"],[null,"open"],[null,"close"],[null,"select"],[null,"remove"],[null,"selectionChanges"],["document","focusin"],["document","click"]],function(e,t,n){var r=!0,o=e.component;return"document:focusin"===t&&(r=!1!==ti(e,5).documentClick(n)&&r),"document:click"===t&&(r=!1!==ti(e,5).documentClick(n)&&r),"typed"===t&&(r=!1!==o.inputTyped("ngx-select",n)&&r),"focus"===t&&(r=!1!==o.doFocus()&&r),"blur"===t&&(r=!1!==o.doBlur()&&r),"open"===t&&(r=!1!==o.doOpen()&&r),"close"===t&&(r=!1!==o.doClose()&&r),"select"===t&&(r=!1!==o.doSelect(n)&&r),"remove"===t&&(r=!1!==o.doRemove(n)&&r),"selectionChanges"===t&&(r=!1!==o.doSelectOptions(n)&&r),r},xf,lf)),hi(5,2408448,null,3,of,[er,ac,Vn,[2,tf]],{items:[0,"items"],allowClear:[1,"allowClear"],placeholder:[2,"placeholder"],defaultValue:[3,"defaultValue"]},{typed:"typed",focus:"focus",blur:"blur",open:"open",close:"close",select:"select",remove:"remove",selectionChanges:"selectionChanges"}),Ii(335544320,1,{templateOption:0}),Ii(335544320,2,{templateSelectedOption:0}),Ii(335544320,3,{templateOptionNotFound:0}),vi(1024,null,Ac,function(e){return[e]},[of]),hi(10,540672,null,0,vd,[[8,null],[8,null],[6,Ac],[2,gd]],{form:[0,"form"]},null),vi(2048,null,jc,null,[vd]),hi(12,16384,null,0,td,[[4,jc]],null,null),(e()(),So(13,0,null,null,0,"p",[],null,null,null,null,null)),(e()(),So(14,0,null,null,3,"div",[["class","alert alert-secondary"]],null,null,null,null,null)),(e()(),So(15,0,null,null,2,"pre",[],null,null,null,null,null)),(e()(),Hi(16,null,["",""])),gi(0,Wa,[]),(e()(),So(18,0,null,null,2,"div",[],null,null,null,null,null)),(e()(),So(19,0,null,null,1,"button",[["class","btn btn-primary"],["type","button"]],null,[[null,"click"]],function(e,t,n){var r=!0,o=e.component;return"click"===t&&(r=!1!==(o.ngxControl.disabled?o.ngxControl.enable():o.ngxControl.disable())&&r),r},null,null)),(e()(),Hi(20,null,[" "," "]))],function(e,t){var n=t.component;e(t,5,0,n.items,!0,"No city selected",n.doNgxDefault()),e(t,10,0,n.ngxControl)},function(e,t){var n=t.component;e(t,4,0,ti(t,12).ngClassUntouched,ti(t,12).ngClassTouched,ti(t,12).ngClassPristine,ti(t,12).ngClassDirty,ti(t,12).ngClassValid,ti(t,12).ngClassInvalid,ti(t,12).ngClassPending),e(t,16,0,Qr(t,16,0,ti(t,17).transform(n.ngxControl.value))),e(t,20,0,n.ngxControl.disabled?"Enable":"Disable")})}var Of=function(){return function(){this.items=["Amsterdam","Antwerp","Athens","Barcelona","Berlin","Birmingham","Bradford","Bremen","Brussels","Bucharest","Budapest","Cologne","Copenhagen","Dortmund","Dresden","Dublin","D\xfcsseldorf","Essen","Frankfurt","Genoa","Glasgow","Gothenburg","Hamburg","Hannover","Helsinki","Leeds","Leipzig","Lisbon","\u0141\xf3d\u017a","London","Krak\xf3w","Madrid","M\xe1laga","Manchester","Marseille","Milan","Munich","Naples","Palermo","Paris","Pozna\u0144","Prague","Riga","Rome","Rotterdam","Seville","Sheffield","Sofia","Stockholm","Stuttgart","The Hague","Turin","Valencia","Vienna","Vilnius","Warsaw","Wroc\u0142aw","Zagreb","Zaragoza"],this.ngxValue=[],this.ngxDisabled=!1,this.doSelectOptions=function(e){return console.log("MultipleDemoComponent.doSelectOptions",e)}}}(),Sf=Jr({encapsulation:2,styles:[],data:{}});function Tf(e){return Gi(0,[(e()(),So(0,0,null,null,1,"h3",[],null,null,null,null,null)),(e()(),Hi(-1,null,["Select multiple cities"])),(e()(),So(2,0,null,null,18,"div",[["class","example-block"]],null,null,null,null,null)),(e()(),So(3,0,null,null,17,"div",[["class","example-block__item"]],null,null,null,null,null)),(e()(),So(4,0,null,null,8,"ngx-select",[["placeholder","No city selected"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"ngModelChange"],[null,"selectionChanges"],["document","focusin"],["document","click"]],function(e,t,n){var r=!0,o=e.component;return"document:focusin"===t&&(r=!1!==ti(e,5).documentClick(n)&&r),"document:click"===t&&(r=!1!==ti(e,5).documentClick(n)&&r),"ngModelChange"===t&&(r=!1!==(o.ngxValue=n)&&r),"selectionChanges"===t&&(r=!1!==o.doSelectOptions(n)&&r),r},xf,lf)),hi(5,2408448,null,3,of,[er,ac,Vn,[2,tf]],{items:[0,"items"],multiple:[1,"multiple"],placeholder:[2,"placeholder"],disabled:[3,"disabled"]},{selectionChanges:"selectionChanges"}),Ii(335544320,1,{templateOption:0}),Ii(335544320,2,{templateSelectedOption:0}),Ii(335544320,3,{templateOptionNotFound:0}),vi(1024,null,Ac,function(e){return[e]},[of]),hi(10,671744,null,0,hd,[[8,null],[8,null],[8,null],[6,Ac]],{isDisabled:[0,"isDisabled"],model:[1,"model"]},{update:"ngModelChange"}),vi(2048,null,jc,null,[hd]),hi(12,16384,null,0,td,[[4,jc]],null,null),(e()(),So(13,0,null,null,0,"p",[],null,null,null,null,null)),(e()(),So(14,0,null,null,3,"div",[["class","alert alert-secondary"]],null,null,null,null,null)),(e()(),So(15,0,null,null,2,"pre",[],null,null,null,null,null)),(e()(),Hi(16,null,["",""])),gi(0,Wa,[]),(e()(),So(18,0,null,null,2,"div",[],null,null,null,null,null)),(e()(),So(19,0,null,null,1,"button",[["class","btn btn-primary"]],null,[[null,"click"]],function(e,t,n){var r=!0,o=e.component;return"click"===t&&(r=0!=(o.ngxDisabled=!o.ngxDisabled)&&r),r},null,null)),(e()(),Hi(20,null,[" "," "]))],function(e,t){var n=t.component;e(t,5,0,n.items,!0,"No city selected",n.ngxDisabled),e(t,10,0,n.ngxDisabled,n.ngxValue)},function(e,t){var n=t.component;e(t,4,0,ti(t,12).ngClassUntouched,ti(t,12).ngClassTouched,ti(t,12).ngClassPristine,ti(t,12).ngClassDirty,ti(t,12).ngClassValid,ti(t,12).ngClassInvalid,ti(t,12).ngClassPending),e(t,16,0,Qr(t,16,0,ti(t,17).transform(n.ngxValue))),e(t,20,0,n.ngxDisabled?"Enable":"Disable")})}var Af=function(){this.items=[{id:100,text:"Austria",children:[{id:54,text:"Vienna"}]},{id:200,text:"Belgium",children:[{id:2,text:"Antwerp"},{id:9,text:"Brussels"}]},{id:300,text:"Bulgaria",children:[{id:48,text:"Sofia"}]},{id:400,text:"Croatia",children:[{id:58,text:"Zagreb"}]},{id:500,text:"Czech Republic",children:[{id:42,text:"Prague"}]},{id:600,text:"Denmark",children:[{id:13,text:"Copenhagen"}]},{id:700,text:"England",children:[{id:6,text:"Birmingham"},{id:7,text:"Bradford"},{id:26,text:"Leeds",disabled:!0},{id:30,text:"London"},{id:34,text:"Manchester"},{id:47,text:"Sheffield"}]},{id:800,text:"Finland",children:[{id:25,text:"Helsinki"}]},{id:900,text:"France",children:[{id:35,text:"Marseille"},{id:40,text:"Paris"}]},{id:1e3,text:"Germany",children:[{id:5,text:"Berlin"},{id:8,text:"Bremen"},{id:12,text:"Cologne"},{id:14,text:"Dortmund"},{id:15,text:"Dresden"},{id:17,text:"D\xfcsseldorf"},{id:18,text:"Essen"},{id:19,text:"Frankfurt"},{id:23,text:"Hamburg"},{id:24,text:"Hannover"},{id:27,text:"Leipzig"},{id:37,text:"Munich"},{id:50,text:"Stuttgart"}]},{id:1100,text:"Greece",children:[{id:3,text:"Athens"}]},{id:1200,text:"Hungary",children:[{id:11,text:"Budapest"}]},{id:1300,text:"Ireland",children:[{id:16,text:"Dublin"}]},{id:1400,text:"Italy",children:[{id:20,text:"Genoa"},{id:36,text:"Milan"},{id:38,text:"Naples"},{id:39,text:"Palermo"},{id:44,text:"Rome"},{id:52,text:"Turin"}]},{id:1500,text:"Latvia",children:[{id:43,text:"Riga"}]},{id:1600,text:"Lithuania",children:[{id:55,text:"Vilnius"}]},{id:1700,text:"Netherlands",children:[{id:1,text:"Amsterdam"},{id:45,text:"Rotterdam"},{id:51,text:"The Hague"}]},{id:1800,text:"Poland",children:[{id:29,text:"\u0141\xf3d\u017a"},{id:31,text:"Krak\xf3w"},{id:41,text:"Pozna\u0144"},{id:56,text:"Warsaw"},{id:57,text:"Wroc\u0142aw"}]},{id:1900,text:"Portugal",children:[{id:28,text:"Lisbon"}]},{id:2e3,text:"Romania",children:[{id:10,text:"Bucharest"}]},{id:2100,text:"Scotland",children:[{id:21,text:"Glasgow"}]},{id:2200,text:"Spain",children:[{id:4,text:"Barcelona"},{id:32,text:"Madrid"},{id:33,text:"M\xe1laga"},{id:46,text:"Seville"},{id:53,text:"Valencia"},{id:59,text:"Zaragoza"}]},{id:2300,text:"Sweden",children:[{id:22,text:"Gothenburg"},{id:49,text:"Stockholm"}]}],this.ngxValue=[],this.ngxDisabled=!1},Df=Jr({encapsulation:2,styles:[],data:{}});function If(e){return Gi(0,[(e()(),So(0,0,null,null,1,"h3",[],null,null,null,null,null)),(e()(),Hi(-1,null,["Select a city by country"])),(e()(),So(2,0,null,null,18,"div",[["class","example-block"]],null,null,null,null,null)),(e()(),So(3,0,null,null,17,"div",[["class","example-block__item"]],null,null,null,null,null)),(e()(),So(4,0,null,null,8,"ngx-select",[["optGroupLabelField","text"],["optGroupOptionsField","children"],["optionTextField","text"],["optionValueField","id"],["placeholder","No city selected"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"ngModelChange"],["document","focusin"],["document","click"]],function(e,t,n){var r=!0,o=e.component;return"document:focusin"===t&&(r=!1!==ti(e,5).documentClick(n)&&r),"document:click"===t&&(r=!1!==ti(e,5).documentClick(n)&&r),"ngModelChange"===t&&(r=!1!==(o.ngxValue=n)&&r),r},xf,lf)),hi(5,2408448,null,3,of,[er,ac,Vn,[2,tf]],{items:[0,"items"],optionValueField:[1,"optionValueField"],optionTextField:[2,"optionTextField"],optGroupLabelField:[3,"optGroupLabelField"],optGroupOptionsField:[4,"optGroupOptionsField"],allowClear:[5,"allowClear"],placeholder:[6,"placeholder"],disabled:[7,"disabled"]},null),Ii(335544320,1,{templateOption:0}),Ii(335544320,2,{templateSelectedOption:0}),Ii(335544320,3,{templateOptionNotFound:0}),vi(1024,null,Ac,function(e){return[e]},[of]),hi(10,671744,null,0,hd,[[8,null],[8,null],[8,null],[6,Ac]],{isDisabled:[0,"isDisabled"],model:[1,"model"]},{update:"ngModelChange"}),vi(2048,null,jc,null,[hd]),hi(12,16384,null,0,td,[[4,jc]],null,null),(e()(),So(13,0,null,null,0,"p",[],null,null,null,null,null)),(e()(),So(14,0,null,null,3,"div",[["class","alert alert-secondary"]],null,null,null,null,null)),(e()(),So(15,0,null,null,2,"pre",[],null,null,null,null,null)),(e()(),Hi(16,null,["",""])),gi(0,Wa,[]),(e()(),So(18,0,null,null,2,"div",[],null,null,null,null,null)),(e()(),So(19,0,null,null,1,"button",[["class","btn btn-primary"]],null,[[null,"click"]],function(e,t,n){var r=!0,o=e.component;return"click"===t&&(r=0!=(o.ngxDisabled=!o.ngxDisabled)&&r),r},null,null)),(e()(),Hi(20,null,[" "," "]))],function(e,t){var n=t.component;e(t,5,0,n.items,"id","text","text","children",!0,"No city selected",n.ngxDisabled),e(t,10,0,n.ngxDisabled,n.ngxValue)},function(e,t){var n=t.component;e(t,4,0,ti(t,12).ngClassUntouched,ti(t,12).ngClassTouched,ti(t,12).ngClassPristine,ti(t,12).ngClassDirty,ti(t,12).ngClassValid,ti(t,12).ngClassInvalid,ti(t,12).ngClassPending),e(t,16,0,Qr(t,16,0,ti(t,17).transform(n.ngxValue))),e(t,20,0,n.ngxDisabled?"Enable":"Disable")})}var Nf=[{name:"Blue 10",hex:"#C0E6FF"},{name:"Blue 20",hex:"#7CC7FF"},{name:"Blue 30",hex:"#5AAAFA",disabled:!0},{name:"Blue 40",hex:"#5596E6"},{name:"Blue 50",hex:"#4178BE"},{name:"Blue 60",hex:"#325C80"},{name:"Blue 70",hex:"#264A60"},{name:"Blue 80",hex:"#1D3649"},{name:"Blue 90",hex:"#152935"},{name:"Blue 100",hex:"#010205"},{name:"Green 10",hex:"#C8F08F"},{name:"Green 20",hex:"#B4E051"},{name:"Green 30",hex:"#8CD211"},{name:"Green 40",hex:"#5AA700"},{name:"Green 50",hex:"#4B8400"},{name:"Green 60",hex:"#2D660A"},{name:"Green 70",hex:"#144D14"},{name:"Green 80",hex:"#0A3C02"},{name:"Green 90",hex:"#0C2808"},{name:"Green 100",hex:"#010200"},{name:"Red 10",hex:"#FFD2DD"},{name:"Red 20",hex:"#FFA5B4"},{name:"Red 30",hex:"#FF7D87"},{name:"Red 40",hex:"#FF5050"},{name:"Red 50",hex:"#E71D32"},{name:"Red 60",hex:"#AD1625"},{name:"Red 70",hex:"#8C101C"},{name:"Red 80",hex:"#6E0A1E"},{name:"Red 90",hex:"#4C0A17"},{name:"Red 100",hex:"#040001"},{name:"Yellow 10",hex:"#FDE876"},{name:"Yellow 20",hex:"#FDD600"},{name:"Yellow 30",hex:"#EFC100"},{name:"Yellow 40",hex:"#BE9B00"},{name:"Yellow 50",hex:"#8C7300"},{name:"Yellow 60",hex:"#735F00"},{name:"Yellow 70",hex:"#574A00"},{name:"Yellow 80",hex:"#3C3200"},{name:"Yellow 90",hex:"#281E00"},{name:"Yellow 100",hex:"#020100"}],Vf=function(){function e(e){this.sanitizer=e,this.items=Nf,this.ngxValue=[],this.ngxDisabled=!1}return e.prototype.style=function(e){return this.sanitizer.bypassSecurityTrustStyle(e)},e}(),Pf=Jr({encapsulation:2,styles:[".color-box {\n display: inline-block;\n height: 14px;\n width: 14px;\n margin-right: 4px;\n border: 1px solid #000;\n }"],data:{}});function Mf(e){return Gi(0,[(e()(),So(0,0,null,null,0,"span",[["class","color-box"]],[[8,"style",2]],null,null,null,null)),(e()(),So(1,0,null,null,0,"span",[],[[8,"innerHTML",1]],null,null,null,null)),(e()(),Hi(2,null,[" (",") "]))],null,function(e,t){e(t,0,0,t.component.style("background-color:"+t.context.$implicit.value)),e(t,1,0,t.context.text),e(t,2,0,t.context.$implicit.data.hex)})}function Rf(e){return Gi(0,[(e()(),Hi(0,null,[' "','" not found ']))],null,function(e,t){e(t,0,0,t.context.$implicit)})}function jf(e){return Gi(0,[(e()(),So(0,0,null,null,1,"h3",[],null,null,null,null,null)),(e()(),Hi(-1,null,["Select a color"])),(e()(),So(2,0,null,null,23,"div",[["class","example-block"]],null,null,null,null,null)),(e()(),So(3,0,null,null,22,"div",[["class","example-block__item"]],null,null,null,null,null)),(e()(),So(4,0,null,null,13,"ngx-select",[["optionTextField","name"],["optionValueField","hex"],["placeholder","No city selected"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"ngModelChange"],["document","focusin"],["document","click"]],function(e,t,n){var r=!0,o=e.component;return"document:focusin"===t&&(r=!1!==ti(e,5).documentClick(n)&&r),"document:click"===t&&(r=!1!==ti(e,5).documentClick(n)&&r),"ngModelChange"===t&&(r=!1!==(o.ngxValue=n)&&r),r},xf,lf)),hi(5,2408448,null,3,of,[er,ac,Vn,[2,tf]],{items:[0,"items"],optionValueField:[1,"optionValueField"],optionTextField:[2,"optionTextField"],allowClear:[3,"allowClear"],placeholder:[4,"placeholder"],disabled:[5,"disabled"]},null),Ii(335544320,1,{templateOption:0}),Ii(335544320,2,{templateSelectedOption:0}),Ii(335544320,3,{templateOptionNotFound:0}),vi(1024,null,Ac,function(e){return[e]},[of]),hi(10,671744,null,0,hd,[[8,null],[8,null],[8,null],[6,Ac]],{isDisabled:[0,"isDisabled"],model:[1,"model"]},{update:"ngModelChange"}),vi(2048,null,jc,null,[hd]),hi(12,16384,null,0,td,[[4,jc]],null,null),(e()(),Oo(0,[[1,2],[2,2]],null,2,null,Mf)),hi(14,16384,null,0,Kd,[In],null,null),hi(15,16384,null,0,Yd,[In],null,null),(e()(),Oo(0,[[3,2]],null,1,null,Rf)),hi(17,16384,null,0,Jd,[In],null,null),(e()(),So(18,0,null,null,0,"p",[],null,null,null,null,null)),(e()(),So(19,0,null,null,3,"div",[["class","alert alert-secondary"]],null,null,null,null,null)),(e()(),So(20,0,null,null,2,"pre",[],null,null,null,null,null)),(e()(),Hi(21,null,["",""])),gi(0,Wa,[]),(e()(),So(23,0,null,null,2,"div",[],null,null,null,null,null)),(e()(),So(24,0,null,null,1,"button",[["class","btn btn-primary"]],null,[[null,"click"]],function(e,t,n){var r=!0,o=e.component;return"click"===t&&(r=0!=(o.ngxDisabled=!o.ngxDisabled)&&r),r},null,null)),(e()(),Hi(25,null,[" "," "]))],function(e,t){var n=t.component;e(t,5,0,n.items,"hex","name",!0,"No city selected",n.ngxDisabled),e(t,10,0,n.ngxDisabled,n.ngxValue)},function(e,t){var n=t.component;e(t,4,0,ti(t,12).ngClassUntouched,ti(t,12).ngClassTouched,ti(t,12).ngClassPristine,ti(t,12).ngClassDirty,ti(t,12).ngClassValid,ti(t,12).ngClassInvalid,ti(t,12).ngClassPending),e(t,21,0,Qr(t,21,0,ti(t,22).transform(n.ngxValue))),e(t,25,0,n.ngxDisabled?"Enable":"Disable")})}var Ff=function(){this._items=["Amsterdam","Antwerp","Athens","Barcelona","Berlin","Birmingham","Bradford","Bremen","Brussels","Bucharest","Budapest","Cologne","Copenhagen","Dortmund","Dresden","Dublin","D\xfcsseldorf","Essen","Frankfurt","Genoa","Glasgow","Gothenburg","Hamburg","Hannover","Helsinki","Krak\xf3w","Leeds","Leipzig","Lisbon","London","Madrid","Manchester","Marseille","Milan","Munich","M\xe1laga","Naples","Palermo","Paris","Pozna\u0144","Prague","Riga","Rome","Rotterdam","Seville","Sheffield","Sofia","Stockholm","Stuttgart","The Hague","Turin","Valencia","Vienna","Vilnius","Warsaw","Wroc\u0142aw","Zagreb","Zaragoza","\u0141\xf3d\u017a"],this.items=[],this.ngxValue=[],this.ngxDisabled=!1;for(var e=[],t=function(t){n._items.forEach(function(n){return e.push(t+" "+n)})},n=this,r=1;r<=20;r++)t(r);this.items=e},Bf=Jr({encapsulation:2,styles:[],data:{}});function Lf(e){return Gi(0,[(e()(),So(0,0,null,null,1,"h3",[],null,null,null,null,null)),(e()(),Hi(1,null,["Select a single city with "," items"])),(e()(),So(2,0,null,null,18,"div",[["class","example-block"]],null,null,null,null,null)),(e()(),So(3,0,null,null,17,"div",[["class","example-block__item"]],null,null,null,null,null)),(e()(),So(4,0,null,null,8,"ngx-select",[["placeholder","No city selected"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"ngModelChange"],["document","focusin"],["document","click"]],function(e,t,n){var r=!0,o=e.component;return"document:focusin"===t&&(r=!1!==ti(e,5).documentClick(n)&&r),"document:click"===t&&(r=!1!==ti(e,5).documentClick(n)&&r),"ngModelChange"===t&&(r=!1!==(o.ngxValue=n)&&r),r},xf,lf)),hi(5,2408448,null,3,of,[er,ac,Vn,[2,tf]],{items:[0,"items"],allowClear:[1,"allowClear"],placeholder:[2,"placeholder"],noAutoComplete:[3,"noAutoComplete"],disabled:[4,"disabled"]},null),Ii(335544320,1,{templateOption:0}),Ii(335544320,2,{templateSelectedOption:0}),Ii(335544320,3,{templateOptionNotFound:0}),vi(1024,null,Ac,function(e){return[e]},[of]),hi(10,671744,null,0,hd,[[8,null],[8,null],[8,null],[6,Ac]],{isDisabled:[0,"isDisabled"],model:[1,"model"]},{update:"ngModelChange"}),vi(2048,null,jc,null,[hd]),hi(12,16384,null,0,td,[[4,jc]],null,null),(e()(),So(13,0,null,null,0,"p",[],null,null,null,null,null)),(e()(),So(14,0,null,null,3,"div",[["class","alert alert-secondary"]],null,null,null,null,null)),(e()(),So(15,0,null,null,2,"pre",[],null,null,null,null,null)),(e()(),Hi(16,null,["",""])),gi(0,Wa,[]),(e()(),So(18,0,null,null,2,"div",[],null,null,null,null,null)),(e()(),So(19,0,null,null,1,"button",[["class","btn btn-primary"]],null,[[null,"click"]],function(e,t,n){var r=!0,o=e.component;return"click"===t&&(r=0!=(o.ngxDisabled=!o.ngxDisabled)&&r),r},null,null)),(e()(),Hi(20,null,[" "," "]))],function(e,t){var n=t.component;e(t,5,0,n.items,!0,"No city selected",!0,n.ngxDisabled),e(t,10,0,n.ngxDisabled,n.ngxValue)},function(e,t){var n=t.component;e(t,1,0,n.items.length),e(t,4,0,ti(t,12).ngClassUntouched,ti(t,12).ngClassTouched,ti(t,12).ngClassPristine,ti(t,12).ngClassDirty,ti(t,12).ngClassValid,ti(t,12).ngClassInvalid,ti(t,12).ngClassPending),e(t,16,0,Qr(t,16,0,ti(t,17).transform(n.ngxValue))),e(t,20,0,n.ngxDisabled?"Enable":"Disable")})}var Hf=n("NzhH"),zf={single:{heading:"Single",ts:n("5O0x"),html:n("wor0")},multiple:{heading:"Multiple",ts:n("ngBM"),html:n("dsz2")},children:{heading:"Children",ts:n("sAJ4"),html:n("xykP")},rich:{heading:"Rich",ts:n("rZW4"),html:n("Fam2")},noAutoComplete:{heading:"noAutoComplete",ts:n("Yqad"),html:n("HfGU")}},Uf=function(){return function(){this.currentHeading="Single",this.tabDesc=zf,this.doc=Hf}}(),Gf=Jr({encapsulation:0,styles:["[_nghost-%COMP%] {\n display: block\n }"],data:{}});function qf(e){return Gi(0,[(e()(),So(0,0,null,null,36,"section",[],null,null,null,null,null)),(e()(),So(1,0,null,null,31,"tabset",[],[[2,"tab-container",null]],null,null,ns,Xa)),hi(2,180224,null,0,Ja,[Ya,Tn],null,null),(e()(),So(3,0,null,0,5,"tab",[["heading","Single"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],null,null,null,null)),hi(4,212992,null,0,rs,[Ja,An,Tn],{heading:[0,"heading"]},null),(e()(),So(5,0,null,null,3,"sample-section",[],null,null,null,ls,is)),hi(6,49152,null,0,os,[],{desc:[0,"desc"]},null),(e()(),So(7,0,null,0,1,"single-demo",[],null,null,null,kf,Ef)),hi(8,180224,null,0,Cf,[],null,null),(e()(),So(9,0,null,0,5,"tab",[["heading","Multiple"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],null,null,null,null)),hi(10,212992,null,0,rs,[Ja,An,Tn],{heading:[0,"heading"]},null),(e()(),So(11,0,null,null,3,"sample-section",[],null,null,null,ls,is)),hi(12,49152,null,0,os,[],{desc:[0,"desc"]},null),(e()(),So(13,0,null,0,1,"multiple-demo",[],null,null,null,Tf,Sf)),hi(14,49152,null,0,Of,[],null,null),(e()(),So(15,0,null,0,5,"tab",[["heading","Children"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],null,null,null,null)),hi(16,212992,null,0,rs,[Ja,An,Tn],{heading:[0,"heading"]},null),(e()(),So(17,0,null,null,3,"sample-section",[],null,null,null,ls,is)),hi(18,49152,null,0,os,[],{desc:[0,"desc"]},null),(e()(),So(19,0,null,0,1,"children-demo",[],null,null,null,If,Df)),hi(20,49152,null,0,Af,[],null,null),(e()(),So(21,0,null,0,5,"tab",[["heading","Rich"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],null,null,null,null)),hi(22,212992,null,0,rs,[Ja,An,Tn],{heading:[0,"heading"]},null),(e()(),So(23,0,null,null,3,"sample-section",[],null,null,null,ls,is)),hi(24,49152,null,0,os,[],{desc:[0,"desc"]},null),(e()(),So(25,0,null,0,1,"rich-demo",[],null,null,null,jf,Pf)),hi(26,49152,null,0,Vf,[ac],null,null),(e()(),So(27,0,null,0,5,"tab",[["heading","No autocomplete"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],null,null,null,null)),hi(28,212992,null,0,rs,[Ja,An,Tn],{heading:[0,"heading"]},null),(e()(),So(29,0,null,null,3,"sample-section",[],null,null,null,ls,is)),hi(30,49152,null,0,os,[],{desc:[0,"desc"]},null),(e()(),So(31,0,null,0,1,"no-autocomplete-demo",[],null,null,null,Lf,Bf)),hi(32,49152,null,0,Ff,[],null,null),(e()(),So(33,0,null,null,1,"h2",[],null,null,null,null,null)),(e()(),Hi(-1,null,["Documentation"])),(e()(),So(35,0,null,null,1,"div",[["class","card card-block panel panel-default panel-body"]],null,null,null,null,null)),(e()(),So(36,0,null,null,0,"div",[["class","card-body doc-api"]],[[8,"innerHTML",1]],null,null,null,null))],function(e,t){var n=t.component;e(t,4,0,"Single"),e(t,6,0,n.tabDesc.single),e(t,10,0,"Multiple"),e(t,12,0,n.tabDesc.multiple),e(t,16,0,"Children"),e(t,18,0,n.tabDesc.children),e(t,22,0,"Rich"),e(t,24,0,n.tabDesc.rich),e(t,28,0,"No autocomplete"),e(t,30,0,n.tabDesc.noAutoComplete)},function(e,t){var n=t.component;e(t,1,0,ti(t,2).clazz),e(t,3,0,ti(t,4).id,ti(t,4).active,ti(t,4).addClass),e(t,9,0,ti(t,10).id,ti(t,10).active,ti(t,10).addClass),e(t,15,0,ti(t,16).id,ti(t,16).active,ti(t,16).addClass),e(t,21,0,ti(t,22).id,ti(t,22).active,ti(t,22).addClass),e(t,27,0,ti(t,28).id,ti(t,28).active,ti(t,28).addClass),e(t,36,0,n.doc)})}var Wf=Jr({encapsulation:0,styles:[[""]],data:{}});function Zf(e){return Gi(0,[(e()(),So(0,0,null,null,20,"main",[["class","bd-pageheader"]],null,null,null,null,null)),(e()(),So(1,0,null,null,19,"div",[["class","container"]],null,null,null,null,null)),(e()(),So(2,0,null,null,1,"h1",[],null,null,null,null,null)),(e()(),Hi(3,null,["ngx-select-ex v",""])),(e()(),So(4,0,null,null,1,"p",[],null,null,null,null,null)),(e()(),Hi(-1,null,["Native Angular2 component for Select"])),(e()(),So(6,0,null,null,7,"p",[],null,null,null,null,null)),(e()(),Hi(-1,null,[" Compatible with "])),(e()(),So(8,0,null,null,1,"a",[["class","badge badge-light"],["href","https://getbootstrap.com/docs/3.3/"],["target","_blank"]],null,null,null,null,null)),(e()(),Hi(-1,null,["Bootstrap 3"])),(e()(),Hi(-1,null,[" and "])),(e()(),So(11,0,null,null,2,"b",[],null,null,null,null,null)),(e()(),So(12,0,null,null,1,"a",[["class","badge badge-light"],["href","https://getbootstrap.com/"],["target","_blank"]],null,null,null,null,null)),(e()(),Hi(-1,null,["Bootstrap 4"])),(e()(),So(14,0,null,null,1,"a",[["class","btn btn-primary"],["href","https://github.com/optimistex/ngx-select-ex"]],null,null,null,null,null)),(e()(),Hi(-1,null,["View on GitHub"])),(e()(),So(16,0,null,null,4,"div",[["class","row"]],null,null,null,null,null)),(e()(),So(17,0,null,null,1,"div",[["class","col-lg-1"]],null,null,null,null,null)),(e()(),So(18,0,null,null,0,"iframe",[["frameborder","0"],["height","20px"],["scrolling","0"],["src","https://ghbtns.com/github-btn.html?user=optimistex&repo=ngx-select-ex&type=star&count=true"],["width","170px"]],null,null,null,null,null)),(e()(),So(19,0,null,null,1,"div",[["class","col-lg-1"]],null,null,null,null,null)),(e()(),So(20,0,null,null,0,"iframe",[["frameborder","0"],["height","20px"],["scrolling","0"],["src","https://ghbtns.com/github-btn.html?user=optimistex&repo=ngx-select-ex&type=fork&count=true"],["width","170px"]],null,null,null,null,null)),(e()(),So(21,0,null,null,3,"div",[["class","container"]],null,null,null,null,null)),(e()(),So(22,0,null,null,0,"section",[["id","getting-started"]],[[8,"innerHTML",1]],null,null,null,null)),(e()(),So(23,0,null,null,1,"select-section",[],null,null,null,qf,Gf)),hi(24,49152,null,0,Uf,[],null,null),(e()(),So(25,0,null,null,8,"footer",[["class","footer"]],null,null,null,null,null)),(e()(),So(26,0,null,null,7,"div",[["class","container"]],null,null,null,null,null)),(e()(),So(27,0,null,null,6,"p",[["class","text-muted text-center"]],null,null,null,null,null)),(e()(),So(28,0,null,null,1,"a",[["href","https://github.com/optimistex/ngx-select-ex"]],null,null,null,null,null)),(e()(),Hi(-1,null,["ngx-select-ex"])),(e()(),Hi(-1,null,[" is maintained by "])),(e()(),So(31,0,null,null,1,"a",[["href","https://github.com/optimistex"]],null,null,null,null,null)),(e()(),Hi(-1,null,["optimistex"])),(e()(),Hi(-1,null,["."]))],null,function(e,t){var n=t.component;e(t,3,0,null==n.p?null:n.p.version),e(t,22,0,n.gettingStarted)})}var $f=function(e,t,n,r,o,i){return new qo("app-demo",Aa,function(e){return Gi(0,[(e()(),So(0,0,null,null,1,"app-demo",[],null,null,null,Zf,Wf)),hi(1,1097728,null,0,Aa,[],null,null)],null,null)},{},{},[])}(),Qf=function(){function e(){}return e.forRoot=function(t){return{ngModule:e,providers:[{provide:tf,useValue:t}]}},e}(),Kf=function(){function e(){}return e.forRoot=function(){return{ngModule:e,providers:[Ya]}},e}(),Yf=(Ie(function(){return Yf}),function(){function e(){this.btnCheckboxTrue=!0,this.btnCheckboxFalse=!1,this.state=!1,this.onChange=Function.prototype,this.onTouched=Function.prototype}return e.prototype.onClick=function(){this.isDisabled||(this.toggle(!this.state),this.onChange(this.value))},e.prototype.ngOnInit=function(){this.toggle(this.trueValue===this.value)},Object.defineProperty(e.prototype,"trueValue",{get:function(){return void 0===this.btnCheckboxTrue||this.btnCheckboxTrue},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"falseValue",{get:function(){return void 0!==this.btnCheckboxFalse&&this.btnCheckboxFalse},enumerable:!0,configurable:!0}),e.prototype.toggle=function(e){this.state=e,this.value=this.state?this.trueValue:this.falseValue},e.prototype.writeValue=function(e){this.state=this.trueValue===e,this.value=e?this.trueValue:this.falseValue},e.prototype.setDisabledState=function(e){this.isDisabled=e},e.prototype.registerOnChange=function(e){this.onChange=e},e.prototype.registerOnTouched=function(e){this.onTouched=e},e}()),Jf=(Ie(function(){return Jf}),function(){function e(e,t){this.el=e,this.cdr=t,this.onChange=Function.prototype,this.onTouched=Function.prototype}return Object.defineProperty(e.prototype,"value",{get:function(){return this._value},set:function(e){this._value=e},enumerable:!0,configurable:!0}),e.prototype.writeValue=function(e){this._value=e,this.cdr.markForCheck()},e.prototype.registerOnChange=function(e){this.onChange=e},e.prototype.registerOnTouched=function(e){this.onTouched=e},e}()),Xf=(Ie(function(){return Xf}),function(){function e(e,t,n,r){this.el=e,this.cdr=t,this.group=n,this.renderer=r,this.onChange=Function.prototype,this.onTouched=Function.prototype}return Object.defineProperty(e.prototype,"value",{get:function(){return this.group?this.group.value:this._value},set:function(e){this.group?this.group.value=e:this._value=e},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"disabled",{get:function(){return this._disabled},set:function(e){this._disabled=e,this.setDisabledState(e)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"isActive",{get:function(){return this.btnRadio===this.value},enumerable:!0,configurable:!0}),e.prototype.onClick=function(){this.el.nativeElement.attributes.disabled||!this.uncheckable&&this.btnRadio===this.value||(this.value=this.uncheckable&&this.btnRadio===this.value?void 0:this.btnRadio,this._onChange(this.value))},e.prototype.ngOnInit=function(){this.uncheckable=void 0!==this.uncheckable},e.prototype.onBlur=function(){this.onTouched()},e.prototype._onChange=function(e){if(this.group)return this.group.onTouched(),void this.group.onChange(e);this.onTouched(),this.onChange(e)},e.prototype.writeValue=function(e){this.value=e,this.cdr.markForCheck()},e.prototype.registerOnChange=function(e){this.onChange=e},e.prototype.registerOnTouched=function(e){this.onTouched=e},e.prototype.setDisabledState=function(e){e?this.renderer.setAttribute(this.el.nativeElement,"disabled","disabled"):this.renderer.removeAttribute(this.el.nativeElement,"disabled")},e}()),ep=function(){function e(){}return e.forRoot=function(){return{ngModule:e,providers:[]}},e}(),tp=function(e,t,n){return new Yl(Oa,[Aa],function(e){return function(e){for(var t={},n=[],r=!1,o=0;o",this._properties=t&&t.properties||{},this._zoneDelegate=new c(this,this._parent&&this._parent._zoneDelegate,t)}return t.assertZonePatched=function(){if(e.Promise!==O.ZoneAwarePromise)throw new Error("Zone.js has detected that ZoneAwarePromise `(window|global).Promise` has been overwritten.\nMost likely cause is that a Promise polyfill has been loaded after Zone.js (Polyfilling Promise api is not necessary when zone.js is loaded. If you must load one, do so before loading zone.js.)")},Object.defineProperty(t,"root",{get:function(){for(var e=t.current;e.parent;)e=e.parent;return e},enumerable:!0,configurable:!0}),Object.defineProperty(t,"current",{get:function(){return D.zone},enumerable:!0,configurable:!0}),Object.defineProperty(t,"currentTask",{get:function(){return j},enumerable:!0,configurable:!0}),t.__load_patch=function(o,i){if(O.hasOwnProperty(o))throw Error("Already loaded patch: "+o);if(!e["__Zone_disable_"+o]){var a="Zone:"+o;n(a),O[o]=i(e,t,S),r(a,a)}},Object.defineProperty(t.prototype,"parent",{get:function(){return this._parent},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"name",{get:function(){return this._name},enumerable:!0,configurable:!0}),t.prototype.get=function(e){var t=this.getZoneWith(e);if(t)return t._properties[e]},t.prototype.getZoneWith=function(e){for(var t=this;t;){if(t._properties.hasOwnProperty(e))return t;t=t._parent}return null},t.prototype.fork=function(e){if(!e)throw new Error("ZoneSpec required!");return this._zoneDelegate.fork(this,e)},t.prototype.wrap=function(e,t){if("function"!=typeof e)throw new Error("Expecting function got: "+e);var n=this._zoneDelegate.intercept(this,e,t),r=this;return function(){return r.runGuarded(n,this,arguments,t)}},t.prototype.run=function(e,t,n,r){void 0===t&&(t=void 0),void 0===n&&(n=null),void 0===r&&(r=null),D={parent:D,zone:this};try{return this._zoneDelegate.invoke(this,e,t,n,r)}finally{D=D.parent}},t.prototype.runGuarded=function(e,t,n,r){void 0===t&&(t=null),void 0===n&&(n=null),void 0===r&&(r=null),D={parent:D,zone:this};try{try{return this._zoneDelegate.invoke(this,e,t,n,r)}catch(e){if(this._zoneDelegate.handleError(this,e))throw e}}finally{D=D.parent}},t.prototype.runTask=function(e,t,n){if(e.zone!=this)throw new Error("A task can only be run in the zone of creation! (Creation: "+(e.zone||g).name+"; Execution: "+this.name+")");if(e.state!==y||e.type!==x){var r=e.state!=k;r&&e._transitionTo(k,m),e.runCount++;var o=j;j=e,D={parent:D,zone:this};try{e.type==E&&e.data&&!e.data.isPeriodic&&(e.cancelFn=null);try{return this._zoneDelegate.invokeTask(this,e,t,n)}catch(e){if(this._zoneDelegate.handleError(this,e))throw e}}finally{e.state!==y&&e.state!==T&&(e.type==x||e.data&&e.data.isPeriodic?r&&e._transitionTo(m,k):(e.runCount=0,this._updateTaskCount(e,-1),r&&e._transitionTo(y,k,y))),D=D.parent,j=o}}},t.prototype.scheduleTask=function(e){if(e.zone&&e.zone!==this)for(var t=this;t;){if(t===e.zone)throw Error("can not reschedule task to "+this.name+" which is descendants of the original zone "+e.zone.name);t=t.parent}e._transitionTo(_,y);var n=[];e._zoneDelegates=n,e._zone=this;try{e=this._zoneDelegate.scheduleTask(this,e)}catch(t){throw e._transitionTo(T,_,y),this._zoneDelegate.handleError(this,t),t}return e._zoneDelegates===n&&this._updateTaskCount(e,1),e.state==_&&e._transitionTo(m,_),e},t.prototype.scheduleMicroTask=function(e,t,n,r){return this.scheduleTask(new u(w,e,t,n,r,null))},t.prototype.scheduleMacroTask=function(e,t,n,r,o){return this.scheduleTask(new u(E,e,t,n,r,o))},t.prototype.scheduleEventTask=function(e,t,n,r,o){return this.scheduleTask(new u(x,e,t,n,r,o))},t.prototype.cancelTask=function(e){if(e.zone!=this)throw new Error("A task can only be cancelled in the zone of creation! (Creation: "+(e.zone||g).name+"; Execution: "+this.name+")");e._transitionTo(b,m,k);try{this._zoneDelegate.cancelTask(this,e)}catch(t){throw e._transitionTo(T,b),this._zoneDelegate.handleError(this,t),t}return this._updateTaskCount(e,-1),e._transitionTo(y,b),e.runCount=0,e},t.prototype._updateTaskCount=function(e,t){var n=e._zoneDelegates;-1==t&&(e._zoneDelegates=null);for(var r=0;r0,macroTask:n.macroTask>0,eventTask:n.eventTask>0,change:e})},e}(),u=function(){function t(n,r,o,i,a,c){this._zone=null,this.runCount=0,this._zoneDelegates=null,this._state="notScheduled",this.type=n,this.source=r,this.data=i,this.scheduleFn=a,this.cancelFn=c,this.callback=o;var u=this;this.invoke=n===x&&i&&i.useG?t.invokeTask:function(){return t.invokeTask.call(e,u,this,arguments)}}return t.invokeTask=function(e,t,n){e||(e=this),P++;try{return e.runCount++,e.zone.runTask(e,t,n)}finally{1==P&&d(),P--}},Object.defineProperty(t.prototype,"zone",{get:function(){return this._zone},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"state",{get:function(){return this._state},enumerable:!0,configurable:!0}),t.prototype.cancelScheduleRequest=function(){this._transitionTo(y,_)},t.prototype._transitionTo=function(e,t,n){if(this._state!==t&&this._state!==n)throw new Error(this.type+" '"+this.source+"': can not transition to '"+e+"', expecting state '"+t+"'"+(n?" or '"+n+"'":"")+", was '"+this._state+"'.");this._state=e,e==y&&(this._zoneDelegates=null)},t.prototype.toString=function(){return this.data&&void 0!==this.data.handleId?this.data.handleId:Object.prototype.toString.call(this)},t.prototype.toJSON=function(){return{type:this.type,state:this.state,source:this.source,zone:this.zone.name,runCount:this.runCount}},t}(),s=z("setTimeout"),l=z("Promise"),f=z("then"),p=[],h=!1;function v(t){0===P&&0===p.length&&(o||e[l]&&(o=e[l].resolve(0)),o?o[f](d):e[s](d,0)),t&&p.push(t)}function d(){if(!h){for(h=!0;p.length;){var e=p;p=[];for(var t=0;t=0;n--)"function"==typeof e[n]&&(e[n]=p(e[n],t+"_"+n));return e}function b(e){return!e||!1!==e.writable&&!("function"==typeof e.get&&void 0===e.set)}var T="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope,w=!("nw"in y)&&void 0!==y.process&&"[object process]"==={}.toString.call(y.process),E=!w&&!T&&!(!d||!g.HTMLElement),x=void 0!==y.process&&"[object process]"==={}.toString.call(y.process)&&!T&&!(!d||!g.HTMLElement),O={},S=function(e){if(e=e||y.event){var t=O[e.type];t||(t=O[e.type]=v("ON_PROPERTY"+e.type));var n=(this||e.target||y)[t],r=n&&n.apply(this,arguments);return void 0==r||r||e.preventDefault(),r}};function D(n,r,o){var i=e(n,r);if(!i&&o&&e(o,r)&&(i={enumerable:!0,configurable:!0}),i&&i.configurable){delete i.writable,delete i.value;var a=i.get,c=i.set,u=r.substr(2),s=O[u];s||(s=O[u]=v("ON_PROPERTY"+u)),i.set=function(e){var t=this;t||n!==y||(t=y),t&&(t[s]&&t.removeEventListener(u,S),c&&c.apply(t,m),"function"==typeof e?(t[s]=e,t.addEventListener(u,S,!1)):t[s]=null)},i.get=function(){var e=this;if(e||n!==y||(e=y),!e)return null;var t=e[s];if(t)return t;if(a){var o=a&&a.call(this);if(o)return i.set.call(this,o),"function"==typeof e[_]&&e.removeAttribute(r),o}return null},t(n,r,i)}}function j(e,t,n){if(t)for(var r=0;r1?new c(t,n):new c(t),f=e(l,"onmessage");return f&&!1===f.configurable?(u=r(l),s=l,[i,a,"send","close"].forEach(function(e){u[e]=function(){var t=o.call(arguments);if(e===i||e===a){var n=t.length>0?t[0]:void 0;if(n){var r=Zone.__symbol__("ON_PROPERTY"+n);l[r]=u[r]}}return l[e].apply(l,t)}})):u=l,j(u,["close","error","message","open"],s),u};var u=n.WebSocket;for(var s in c)u[s]=c[s]}(0,u)}}var fe=v("unbound");Zone.__load_patch("util",function(e,t,n){n.patchOnProperties=j,n.patchMethod=z,n.bindArguments=k}),Zone.__load_patch("timers",function(e){K(e,"set","clear","Timeout"),K(e,"set","clear","Interval"),K(e,"set","clear","Immediate")}),Zone.__load_patch("requestAnimationFrame",function(e){K(e,"request","cancel","AnimationFrame"),K(e,"mozRequest","mozCancel","AnimationFrame"),K(e,"webkitRequest","webkitCancel","AnimationFrame")}),Zone.__load_patch("blocking",function(e,t){for(var n=["alert","prompt","confirm"],r=0;r=0&&"function"==typeof n[r.cbIdx]?h(r.name,n[r.cbIdx],r,i,null):e.apply(t,n)}})}()}),Zone.__load_patch("XHR",function(e,t){!function(t){var s=XMLHttpRequest.prototype,l=s[c],f=s[u];if(!l){var p=e.XMLHttpRequestEventTarget;if(p){var v=p.prototype;l=v[c],f=v[u]}}var d="readystatechange",g="scheduled";function y(e){XMLHttpRequest[i]=!1;var t=e.data,r=t.target,a=r[o];l||(l=r[c],f=r[u]),a&&f.call(r,d,a);var s=r[o]=function(){r.readyState===r.DONE&&!t.aborted&&XMLHttpRequest[i]&&e.state===g&&e.invoke()};return l.call(r,d,s),r[n]||(r[n]=e),b.apply(r,t.args),XMLHttpRequest[i]=!0,e}function _(){}function m(e){var t=e.data;return t.aborted=!0,T.apply(t.target,t.args)}var k=z(s,"open",function(){return function(e,t){return e[r]=0==t[2],e[a]=t[1],k.apply(e,t)}}),b=z(s,"send",function(){return function(e,t){return e[r]?b.apply(e,t):h("XMLHttpRequest.send",_,{target:e,url:e[a],isPeriodic:!1,delay:null,args:t,aborted:!1},y,m)}}),T=z(s,"abort",function(){return function(e){var t=e[n];if(t&&"string"==typeof t.type){if(null==t.cancelFn||t.data&&t.data.aborted)return;t.zone.cancelTask(t)}}})}();var n=v("xhrTask"),r=v("xhrSync"),o=v("xhrListener"),i=v("xhrScheduled"),a=v("xhrURL")}),Zone.__load_patch("geolocation",function(t){t.navigator&&t.navigator.geolocation&&function(t,n){for(var r=t.constructor.name,o=function(o){var i=n[o],a=t[i];if(a){if(!b(e(t,i)))return"continue";t[i]=function(e){var t=function(){return e.apply(this,k(arguments,r+"."+i))};return M(t,e),t}(a)}},i=0;i0?arguments[0]:void 0)}},{get:function(e){var t=r.getEntry(o(this,"Map"),e);return t&&t.v},set:function(e,t){return r.def(o(this,"Map"),0===e?0:e,t)}},r,!0)},"9gX7":function(e,t){e.exports=function(e,t,n,r){if(!(e instanceof t)||void 0!==r&&r in e)throw TypeError(n+": incorrect invocation!");return e}},Afnz:function(e,t,n){"use strict";var r=n("LQAc"),o=n("XKFU"),i=n("KroJ"),a=n("Mukb"),c=n("hPIQ"),u=n("QaDb"),s=n("fyDq"),l=n("OP3Y"),f=n("K0xU")("iterator"),p=!([].keys&&"next"in[].keys()),h=function(){return this};e.exports=function(e,t,n,v,d,g,y){u(n,t,v);var _,m,k,b=function(e){if(!p&&e in x)return x[e];switch(e){case"keys":case"values":return function(){return new n(this,e)}}return function(){return new n(this,e)}},T=t+" Iterator",w="values"==d,E=!1,x=e.prototype,O=x[f]||x["@@iterator"]||d&&x[d],S=O||b(d),D=d?w?b("entries"):S:void 0,j="Array"==t&&x.entries||O;if(j&&(k=l(j.call(new e)))!==Object.prototype&&k.next&&(s(k,T,!0),r||"function"==typeof k[f]||a(k,f,h)),w&&O&&"values"!==O.name&&(E=!0,S=function(){return O.call(this)}),r&&!y||!p&&!E&&x[f]||a(x,f,S),c[t]=S,c[T]=h,d)if(_={values:w?S:b("values"),keys:g?S:b("keys"),entries:D},y)for(m in _)m in x||i(x,m,_[m]);else o(o.P+o.F*(p||E),t,_);return _}},BqfV:function(e,t,n){var r=n("N6cJ"),o=n("y3w9"),i=r.get,a=r.key;r.exp({getOwnMetadata:function(e,t){return i(e,o(t),arguments.length<3?void 0:a(arguments[2]))}})},CkkT:function(e,t,n){var r=n("m0Pp"),o=n("Ymqv"),i=n("S/j/"),a=n("ne8i"),c=n("zRwo");e.exports=function(e,t){var n=1==e,u=2==e,s=3==e,l=4==e,f=6==e,p=5==e||f,h=t||c;return function(t,c,v){for(var d,g,y=i(t),_=o(y),m=r(c,v,3),k=a(_.length),b=0,T=n?h(t,k):u?h(t,0):void 0;k>b;b++)if((p||b in _)&&(g=m(d=_[b],b,y),e))if(n)T[b]=g;else if(g)switch(e){case 3:return!0;case 5:return d;case 6:return b;case 2:T.push(d)}else if(l)return!1;return f?-1:s||l?l:T}}},DVgA:function(e,t,n){var r=n("zhAb"),o=n("4R4u");e.exports=Object.keys||function(e){return r(e,o)}},EK0E:function(e,t,n){"use strict";var r,o=n("CkkT")(0),i=n("KroJ"),a=n("Z6vF"),c=n("czNK"),u=n("ZD67"),s=n("0/R4"),l=n("eeVq"),f=n("s5qY"),p=a.getWeak,h=Object.isExtensible,v=u.ufstore,d={},g=function(e){return function(){return e(this,arguments.length>0?arguments[0]:void 0)}},y={get:function(e){if(s(e)){var t=p(e);return!0===t?v(f(this,"WeakMap")).get(e):t?t[this._i]:void 0}},set:function(e,t){return u.def(f(this,"WeakMap"),e,t)}},_=e.exports=n("4LiD")("WeakMap",g,y,u,!0,!0);l(function(){return 7!=(new _).set((Object.freeze||Object)(d),7).get(d)})&&(c((r=u.getConstructor(g,"WeakMap")).prototype,y),a.NEED=!0,o(["delete","has","get","set"],function(e){var t=_.prototype,n=t[e];i(t,e,function(t,o){if(s(t)&&!h(t)){this._f||(this._f=new r);var i=this._f[e](t,o);return"set"==e?this:i}return n.call(this,t,o)})}))},EWmC:function(e,t,n){var r=n("LZWt");e.exports=Array.isArray||function(e){return"Array"==r(e)}},EemH:function(e,t,n){var r=n("UqcF"),o=n("RjD/"),i=n("aCFj"),a=n("apmT"),c=n("aagx"),u=n("xpql"),s=Object.getOwnPropertyDescriptor;t.f=n("nh4g")?s:function(e,t){if(e=i(e),t=a(t,!0),u)try{return s(e,t)}catch(e){}if(c(e,t))return o(!r.f.call(e,t),e[t])}},FJW5:function(e,t,n){var r=n("hswa"),o=n("y3w9"),i=n("DVgA");e.exports=n("nh4g")?Object.defineProperties:function(e,t){o(e);for(var n,a=i(t),c=a.length,u=0;c>u;)r.f(e,n=a[u++],t[n]);return e}},FZcq:function(e,t,n){n("49D4"),n("zq+C"),n("45Tv"),n("uAtd"),n("BqfV"),n("fN/3"),n("iW+S"),n("7Dlh"),n("Opxb"),e.exports=n("g3g5").Reflect},H6hf:function(e,t,n){var r=n("y3w9");e.exports=function(e,t,n,o){try{return o?t(r(n)[0],n[1]):t(n)}catch(t){var i=e.return;throw void 0!==i&&r(i.call(e)),t}}},"I8a+":function(e,t,n){var r=n("LZWt"),o=n("K0xU")("toStringTag"),i="Arguments"==r(function(){return arguments}());e.exports=function(e){var t,n,a;return void 0===e?"Undefined":null===e?"Null":"string"==typeof(n=function(e,t){try{return e[t]}catch(e){}}(t=Object(e),o))?n:i?r(t):"Object"==(a=r(t))&&"function"==typeof t.callee?"Arguments":a}},Iw71:function(e,t,n){var r=n("0/R4"),o=n("dyZX").document,i=r(o)&&r(o.createElement);e.exports=function(e){return i?o.createElement(e):{}}},"J+6e":function(e,t,n){var r=n("I8a+"),o=n("K0xU")("iterator"),i=n("hPIQ");e.exports=n("g3g5").getIteratorMethod=function(e){if(void 0!=e)return e[o]||e["@@iterator"]||i[r(e)]}},JiEa:function(e,t){t.f=Object.getOwnPropertySymbols},K0xU:function(e,t,n){var r=n("VTer")("wks"),o=n("ylqs"),i=n("dyZX").Symbol,a="function"==typeof i;(e.exports=function(e){return r[e]||(r[e]=a&&i[e]||(a?i:o)("Symbol."+e))}).store=r},KroJ:function(e,t,n){var r=n("dyZX"),o=n("Mukb"),i=n("aagx"),a=n("ylqs")("src"),c=Function.toString,u=(""+c).split("toString");n("g3g5").inspectSource=function(e){return c.call(e)},(e.exports=function(e,t,n,c){var s="function"==typeof n;s&&(i(n,"name")||o(n,"name",t)),e[t]!==n&&(s&&(i(n,a)||o(n,a,e[t]?""+e[t]:u.join(String(t)))),e===r?e[t]=n:c?e[t]?e[t]=n:o(e,t,n):(delete e[t],o(e,t,n)))})(Function.prototype,"toString",function(){return"function"==typeof this&&this[a]||c.call(this)})},Kuth:function(e,t,n){var r=n("y3w9"),o=n("FJW5"),i=n("4R4u"),a=n("YTvA")("IE_PROTO"),c=function(){},u=function(){var e,t=n("Iw71")("iframe"),r=i.length;for(t.style.display="none",n("+rLv").appendChild(t),t.src="javascript:",(e=t.contentWindow.document).open(),e.write(" + + + diff --git a/src/karma.conf.js b/src/karma.conf.js new file mode 100644 index 00000000..b6e00421 --- /dev/null +++ b/src/karma.conf.js @@ -0,0 +1,31 @@ +// Karma configuration file, see link for more information +// https://karma-runner.github.io/1.0/config/configuration-file.html + +module.exports = function (config) { + config.set({ + basePath: '', + frameworks: ['jasmine', '@angular-devkit/build-angular'], + plugins: [ + require('karma-jasmine'), + require('karma-chrome-launcher'), + require('karma-jasmine-html-reporter'), + require('karma-coverage-istanbul-reporter'), + require('@angular-devkit/build-angular/plugins/karma') + ], + client: { + clearContext: false // leave Jasmine Spec Runner output visible in browser + }, + coverageIstanbulReporter: { + dir: require('path').join(__dirname, '../coverage'), + reports: ['html', 'lcovonly'], + fixWebpackSourcePaths: true + }, + reporters: ['progress', 'kjhtml'], + port: 9876, + colors: true, + logLevel: config.LOG_INFO, + autoWatch: true, + browsers: ['Chrome'], + singleRun: false + }); +}; \ No newline at end of file diff --git a/src/main.ts b/src/main.ts new file mode 100644 index 00000000..28bfa9e1 --- /dev/null +++ b/src/main.ts @@ -0,0 +1,13 @@ +import { enableProdMode } from '@angular/core'; +import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; + +import { AppModule } from './app/app.module'; +import { environment } from './environments/environment'; + +if (environment.production) { + enableProdMode(); +} + +platformBrowserDynamic().bootstrapModule(AppModule) + .catch(err => console.error(err)); + diff --git a/src/polyfills.ts b/src/polyfills.ts new file mode 100644 index 00000000..d310405a --- /dev/null +++ b/src/polyfills.ts @@ -0,0 +1,80 @@ +/** + * This file includes polyfills needed by Angular and is loaded before the app. + * You can add your own extra polyfills to this file. + * + * This file is divided into 2 sections: + * 1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers. + * 2. Application imports. Files imported after ZoneJS that should be loaded before your main + * file. + * + * The current setup is for so-called "evergreen" browsers; the last versions of browsers that + * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera), + * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile. + * + * Learn more in https://angular.io/docs/ts/latest/guide/browser-support.html + */ + +/*************************************************************************************************** + * BROWSER POLYFILLS + */ + +/** IE9, IE10 and IE11 requires all of the following polyfills. **/ +// import 'core-js/es6/symbol'; +// import 'core-js/es6/object'; +// import 'core-js/es6/function'; +// import 'core-js/es6/parse-int'; +// import 'core-js/es6/parse-float'; +// import 'core-js/es6/number'; +// import 'core-js/es6/math'; +// import 'core-js/es6/string'; +// import 'core-js/es6/date'; +// import 'core-js/es6/array'; +// import 'core-js/es6/regexp'; +// import 'core-js/es6/map'; +// import 'core-js/es6/weak-map'; +// import 'core-js/es6/set'; + +/** IE10 and IE11 requires the following for NgClass support on SVG elements */ +// import 'classlist.js'; // Run `npm install --save classlist.js`. + +/** IE10 and IE11 requires the following for the Reflect API. */ +// import 'core-js/es6/reflect'; + + +/** Evergreen browsers require these. **/ +// Used for reflect-metadata in JIT. If you use AOT (and only Angular decorators), you can remove. +import 'core-js/es7/reflect'; + + +/** + * Web Animations `@angular/platform-browser/animations` + * Only required if AnimationBuilder is used within the application and using IE/Edge or Safari. + * Standard animation support in Angular DOES NOT require any polyfills (as of Angular 6.0). + **/ +// import 'web-animations-js'; // Run `npm install --save web-animations-js`. + +/** + * By default, zone.js will patch all possible macroTask and DomEvents + * user can disable parts of macroTask/DomEvents patch by setting following flags + */ + + // (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame + // (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick + // (window as any).__zone_symbol__BLACK_LISTED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames + + /* + * in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js + * with the following flag, it will bypass `zone.js` patch for IE/Edge + */ +// (window as any).__Zone_enable_cross_context_check = true; + +/*************************************************************************************************** + * Zone JS is required by default for Angular itself. + */ +import 'zone.js/dist/zone'; // Included with Angular CLI. + + + +/*************************************************************************************************** + * APPLICATION IMPORTS + */ diff --git a/src/styles.css b/src/styles.css new file mode 100644 index 00000000..90d4ee00 --- /dev/null +++ b/src/styles.css @@ -0,0 +1 @@ +/* You can add global styles to this file, and also import other style files */ diff --git a/src/test.ts b/src/test.ts new file mode 100644 index 00000000..16317897 --- /dev/null +++ b/src/test.ts @@ -0,0 +1,20 @@ +// This file is required by karma.conf.js and loads recursively all the .spec and framework files + +import 'zone.js/dist/zone-testing'; +import { getTestBed } from '@angular/core/testing'; +import { + BrowserDynamicTestingModule, + platformBrowserDynamicTesting +} from '@angular/platform-browser-dynamic/testing'; + +declare const require: any; + +// First, initialize the Angular testing environment. +getTestBed().initTestEnvironment( + BrowserDynamicTestingModule, + platformBrowserDynamicTesting() +); +// Then we find all the tests. +const context = require.context('./', true, /\.spec\.ts$/); +// And load the modules. +context.keys().map(context); diff --git a/src/tsconfig.app.json b/src/tsconfig.app.json new file mode 100644 index 00000000..190fd300 --- /dev/null +++ b/src/tsconfig.app.json @@ -0,0 +1,11 @@ +{ + "extends": "../tsconfig.json", + "compilerOptions": { + "outDir": "../out-tsc/app", + "types": [] + }, + "exclude": [ + "test.ts", + "**/*.spec.ts" + ] +} diff --git a/src/tsconfig.spec.json b/src/tsconfig.spec.json new file mode 100644 index 00000000..de773363 --- /dev/null +++ b/src/tsconfig.spec.json @@ -0,0 +1,18 @@ +{ + "extends": "../tsconfig.json", + "compilerOptions": { + "outDir": "../out-tsc/spec", + "types": [ + "jasmine", + "node" + ] + }, + "files": [ + "test.ts", + "polyfills.ts" + ], + "include": [ + "**/*.spec.ts", + "**/*.d.ts" + ] +} diff --git a/src/tslint.json b/src/tslint.json new file mode 100644 index 00000000..f726c534 --- /dev/null +++ b/src/tslint.json @@ -0,0 +1,17 @@ +{ + "extends": "../tslint.json", + "rules": { + "directive-selector": [ + true, + "attribute", + "", + "kebab-case" + ], + "component-selector": [ + true, + "element", + "", + "kebab-case" + ] + } +} diff --git a/src/typings.d.ts b/src/typings.d.ts new file mode 100644 index 00000000..55b21863 --- /dev/null +++ b/src/typings.d.ts @@ -0,0 +1,14 @@ +/* SystemJS module definition */ +declare var module: NodeModule; + +declare const System: any; +declare const ENV: string; +// google code-prettify +declare const PR: any; + +// declare const require: any; +// declare const global:any; + +interface NodeModule { + id: string; +} diff --git a/tsconfig.json b/tsconfig.json index 6fb213a6..45b4bdca 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,22 +1,25 @@ { + "compileOnSave": false, "compilerOptions": { - "target": "es5", - "module": "commonjs", + "baseUrl": "./", + "outDir": "./dist/out-tsc", + "sourceMap": true, + "declaration": false, + "module": "es2015", "moduleResolution": "node", - "sourceMap": false, - "declaration": true, - "removeComments": false, "emitDecoratorMetadata": true, "experimentalDecorators": true, - "noImplicitAny": true, - "listFiles": false, - "noLib": false + "target": "es5", + "typeRoots": [ + "node_modules/@types" + ], + "lib": [ + "es2017", + "dom" + ] }, "exclude": [ - "node_modules" - ], - "files": [ - "./typings/browser.d.ts", - "./ng2-select.ts" + ".ng_build", + ".ng_pkg_build" ] } diff --git a/tslint.json b/tslint.json index 119e1146..6ddb6b29 100644 --- a/tslint.json +++ b/tslint.json @@ -1,4 +1,131 @@ { - "extends": "./node_modules/tslint-config-valorsoft/tslint.json", - "rulesDirectory": "./node_modules/codelyzer/dist/src" + "rulesDirectory": [ + "node_modules/codelyzer" + ], + "rules": { + "arrow-return-shorthand": true, + "callable-types": true, + "class-name": true, + "comment-format": [ + true, + "check-space" + ], + "curly": true, + "deprecation": { + "severity": "warn" + }, + "eofline": true, + "forin": true, + "import-blacklist": [ + true, + "rxjs/Rx" + ], + "import-spacing": true, + "indent": [ + true, + "spaces" + ], + "interface-over-type-literal": true, + "label-position": true, + "max-line-length": [ + true, + 140 + ], + "member-access": false, + "member-ordering": [ + true, + { + "order": [ + "static-field", + "instance-field", + "static-method", + "instance-method" + ] + } + ], + "no-arg": true, + "no-bitwise": true, + "no-console": [ + true, + "debug", + "info", + "time", + "timeEnd", + "trace" + ], + "no-construct": true, + "no-debugger": true, + "no-duplicate-super": true, + "no-empty": false, + "no-empty-interface": true, + "no-eval": true, + "no-inferrable-types": [ + true, + "ignore-params" + ], + "no-misused-new": true, + "no-non-null-assertion": true, + "no-redundant-jsdoc": true, + "no-shadowed-variable": true, + "no-string-literal": false, + "no-string-throw": true, + "no-switch-case-fall-through": true, + "no-trailing-whitespace": true, + "no-unnecessary-initializer": true, + "no-unused-expression": true, + "no-use-before-declare": true, + "no-var-keyword": true, + "object-literal-sort-keys": false, + "one-line": [ + true, + "check-open-brace", + "check-catch", + "check-else", + "check-whitespace" + ], + "prefer-const": true, + "quotemark": [ + true, + "single" + ], + "radix": true, + "semicolon": [ + true, + "always" + ], + "triple-equals": [ + true, + "allow-null-check" + ], + "typedef-whitespace": [ + true, + { + "call-signature": "nospace", + "index-signature": "nospace", + "parameter": "nospace", + "property-declaration": "nospace", + "variable-declaration": "nospace" + } + ], + "unified-signatures": true, + "variable-name": false, + "whitespace": [ + true, + "check-branch", + "check-decl", + "check-operator", + "check-separator", + "check-type" + ], + "no-output-on-prefix": true, + "use-input-property-decorator": true, + "use-output-property-decorator": true, + "use-host-property-decorator": true, + "no-input-rename": true, + "no-output-rename": true, + "use-life-cycle-interface": true, + "use-pipe-transform-interface": true, + "component-class-suffix": true, + "directive-class-suffix": true + } } diff --git a/typings.json b/typings.json deleted file mode 100644 index 1e19f776..00000000 --- a/typings.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "dependencies": { - "webpack": "registry:npm/webpack#1.12.9+20160219013405" - }, - "devDependencies": {}, - "ambientDependencies": { - "es6-shim": "registry:dt/es6-shim#0.31.2+20160317120654", - "jasmine": "registry:dt/jasmine#2.2.0+20160317120654", - "require": "registry:dt/require#2.1.20+20160316155526" - } -} diff --git a/webpack.config.js b/webpack.config.js deleted file mode 100644 index 54fb64d7..00000000 --- a/webpack.config.js +++ /dev/null @@ -1,178 +0,0 @@ -/* eslint global-require: 0 */ -'use strict'; - -const path = require('path'); -const marked = require('marked'); -const webpack = require('webpack'); -const reqPrism = require('prismjs'); -const CompressionPlugin = require('compression-webpack-plugin'); -const CopyWebpackPlugin = require('copy-webpack-plugin'); -const HtmlWebpackPlugin = require('html-webpack-plugin'); - -// marked renderer hack -marked.Renderer.prototype.code = function renderCode(code, lang) { - const out = this.options.highlight(code, lang); - const classMap = this.options.langPrefix + lang; - - if (!lang) { - return `
${out}\n
`; - } - return `
${out}\n
\n`; -}; - -/*eslint no-process-env:0, camelcase:0*/ -const isProduction = (process.env.NODE_ENV || 'development') === 'production'; -const devtool = process.env.NODE_ENV === 'test' ? 'inline-source-map' : 'source-map'; -const dest = 'demo-build'; -const absDest = root(dest); - -const config = { - // isProduction ? 'source-map' : 'evale', - devtool, - debug: false, - - verbose: true, - displayErrorDetails: true, - context: __dirname, - stats: { - colors: true, - reasons: true - }, - - resolve: { - cache: false, - root: __dirname, - extensions: ['', '.ts', '.js', '.json'] - }, - - entry: { - angular2: [ - // Angular 2 Deps - 'es6-shim', - 'es6-promise', - 'zone.js', - 'reflect-metadata', - 'angular2/common', - 'angular2/core' - ], - 'angular2-select': ['ng2-select'], - 'angular2-select-demo': 'demo' - }, - - output: { - path: absDest, - filename: '[name].js', - sourceMapFilename: '[name].js.map', - chunkFilename: '[id].chunk.js' - }, - - // our Development Server configs - devServer: { - inline: true, - colors: true, - historyApiFallback: true, - contentBase: dest, - //publicPath: dest, - outputPath: dest, - watchOptions: {aggregateTimeout: 300, poll: 1000} - }, - - markdownLoader: { - langPrefix: 'language-', - highlight(code, lang) { - const language = !lang || lang === 'html' ? 'markup' : lang; - const Prism = global.Prism || reqPrism; - - if (!Prism.languages[language]) { - require(`prismjs/components/prism-${language}.js`); - } - return Prism.highlight(code, Prism.languages[language]); - } - }, - module: { - loaders: [ - // support markdown - {test: /\.md$/, loader: 'html?minimize=false!markdown'}, - // Support for *.json files. - {test: /\.json$/, loader: 'json'}, - // Support for CSS as raw text - {test: /\.css$/, loader: 'raw'}, - // support for .html as raw text - {test: /\.html$/, loader: 'raw'}, - // Support for .ts files. - { - test: /\.ts$/, - loader: 'ts', - query: { - compilerOptions: { - removeComments: true, - noEmitHelpers: false - } - }, - exclude: [/\.(spec|e2e)\.ts$/] - } - ], - noParse: [ - /rtts_assert\/src\/rtts_assert/, - /reflect-metadata/, - /zone\.js\/dist\/zone-microtask/ - ] - }, - - plugins: [ - //new Clean([dest]), - new webpack.optimize.DedupePlugin(), - new webpack.optimize.OccurenceOrderPlugin(true), - new webpack.optimize.CommonsChunkPlugin({ - name: 'angular2', - minChunks: Infinity, - filename: 'angular2.js' - }), - // static assets - new CopyWebpackPlugin([{from: 'demo/favicon.ico', to: 'favicon.ico'}]), - new CopyWebpackPlugin([{from: 'demo/assets', to: 'assets'}]), - // generating html - new HtmlWebpackPlugin({template: 'demo/index.html'}) - ], - pushPlugins() { - if (!isProduction) { - return; - } - const plugins = [ - //production only - new webpack.optimize.UglifyJsPlugin({ - beautify: false, - mangle: false, - comments: false, - compress: { - screw_ie8: true - //warnings: false, - //drop_debugger: false - } - //verbose: true, - //beautify: false, - //quote_style: 3 - }), - new CompressionPlugin({ - asset: '{file}.gz', - algorithm: 'gzip', - regExp: /\.js$|\.html|\.css|.map$/, - threshold: 10240, - minRatio: 0.8 - }) - ]; - - this - .plugins - .push - .apply(plugins); - } -}; - -config.pushPlugins(); - -module.exports = config; - -function root(partialPath) { - return path.join(__dirname, partialPath); -}