├── .editorconfig ├── .github └── ISSUE_TEMPLATE.md ├── .gitignore ├── .travis.yml ├── CHANGELOG.md ├── LICENSE.md ├── README.md ├── angular.json ├── browserslist ├── demo ├── app.module.ts ├── home │ ├── home.html │ ├── home.scss │ └── home.ts ├── index.html ├── main.ts └── style.css ├── docs └── custom-themes.md ├── favicon.ico ├── karma.conf.js ├── modules ├── components │ ├── dropdown │ │ ├── index.ts │ │ ├── tag-input-dropdown.component.ts │ │ └── tag-input-dropdown.template.html │ ├── icon │ │ ├── icon.html │ │ ├── icon.scss │ │ ├── icon.ts │ │ └── index.ts │ ├── index.ts │ ├── tag-input-form │ │ ├── index.ts │ │ ├── tag-input-form.component.ts │ │ ├── tag-input-form.style.scss │ │ └── tag-input-form.template.html │ ├── tag-input │ │ ├── animations.ts │ │ ├── index.ts │ │ ├── tag-input.spec.ts │ │ ├── tag-input.style.scss │ │ ├── tag-input.template.html │ │ ├── tag-input.ts │ │ └── tests │ │ │ └── testing-helpers.spec.ts │ └── tag │ │ ├── index.ts │ │ ├── tag-component.style.scss │ │ ├── tag-ripple.component.ts │ │ ├── tag.component.ts │ │ └── tag.template.html ├── core │ ├── accessor.ts │ ├── constants │ │ └── index.ts │ ├── helpers │ │ ├── event-like.ts │ │ ├── index.ts │ │ └── listen.ts │ ├── index.ts │ ├── pipes │ │ ├── highlight.pipe.spec.ts │ │ ├── highlight.pipe.ts │ │ └── index.ts │ ├── providers │ │ ├── drag-provider.ts │ │ ├── index.ts │ │ └── options-provider.ts │ ├── styles │ │ ├── components │ │ │ ├── _components.scss │ │ │ ├── _progress-bar.scss │ │ │ └── _tag.scss │ │ ├── core │ │ │ ├── _colors.scss │ │ │ ├── _core.scss │ │ │ ├── _mixins.scss │ │ │ ├── _palette.scss │ │ │ └── _variables.scss │ │ └── themes │ │ │ ├── _bootstrap-theme.scss │ │ │ ├── _bootstrap3-info-theme.scss │ │ │ ├── _dark-theme.scss │ │ │ ├── _default-theme.scss │ │ │ ├── _minimal-theme.scss │ │ │ └── _themes.scss │ └── tag-model.ts ├── defaults.ts ├── index.ts └── tag-input.module.ts ├── package-lock.json ├── package.json ├── polyfills.ts ├── test.ts ├── tsconfig.app.json ├── tsconfig.json ├── tsconfig.spec.json └── tslint.json /.editorconfig: -------------------------------------------------------------------------------- 1 | # Editor configuration, see https://editorconfig.org 2 | root = true 3 | 4 | [*] 5 | charset = utf-8 6 | indent_style = space 7 | indent_size = 2 8 | insert_final_newline = true 9 | trim_trailing_whitespace = true 10 | 11 | [*.md] 12 | max_line_length = off 13 | trim_trailing_whitespace = false 14 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | 5 | 6 | PLEASE MAKE SURE THAT: 7 | - you searched similar issues online (9/10 issues in this repo are solved by googling, so please...do it) 8 | - you provide an online demo I can see without having to replicate your environment 9 | - you help me by debugging your issue, and if you can't, do go on filling out this form 10 | 11 | **I'm submitting a ...** (check one with "x") 12 | ``` 13 | [ ] bug report => search github for a similar issue or PR before submitting 14 | [ ] support request/question 15 | 16 | Notice: feature requests will be ignored, submit a PR if you'd like 17 | ``` 18 | 19 | 20 | **Current behavior** 21 | 22 | 23 | 24 | 25 | **Expected behavior** 26 | 27 | 28 | 29 | 30 | **Minimal reproduction of the problem with instructions (if applicable)** 31 | 35 | 36 | 37 | **What do you use to build your app?. Please specify the version** 38 | 39 | 40 | 41 | **Angular version:** 42 | 43 | 44 | 45 | 46 | **ngx-chips version:** 47 | 48 | 49 | 50 | **Browser:** [all | Chrome XX | Firefox XX | IE XX | Safari XX | Mobile Chrome XX | Android X.X Web Browser | iOS XX Safari | iOS XX UIWebView | iOS XX WKWebView ] 51 | 52 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # See http://help.github.com/ignore-files/ for more about ignoring files. 2 | 3 | # compiled output 4 | /dist 5 | /tmp 6 | /out-tsc 7 | # Only exists if Bazel was run 8 | /bazel-out 9 | 10 | # dependencies 11 | /node_modules 12 | 13 | # profiling files 14 | chrome-profiler-events.json 15 | speed-measure-plugin.json 16 | 17 | # IDEs and editors 18 | /.idea 19 | .project 20 | .classpath 21 | .c9/ 22 | *.launch 23 | .settings/ 24 | *.sublime-workspace 25 | 26 | # IDE - VSCode 27 | .vscode/* 28 | !.vscode/settings.json 29 | !.vscode/tasks.json 30 | !.vscode/launch.json 31 | !.vscode/extensions.json 32 | .history/* 33 | 34 | # misc 35 | /.sass-cache 36 | /connect.lock 37 | /coverage 38 | /libpeerconnection.log 39 | npm-debug.log 40 | yarn-error.log 41 | testem.log 42 | /typings 43 | .angular 44 | 45 | # System Files 46 | .DS_Store 47 | Thumbs.db 48 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | dist: trusty 3 | sudo: required 4 | node_js: 5 | - "10" 6 | - "12" 7 | 8 | before_install: 9 | - export CHROME_BIN=/usr/bin/google-chrome 10 | - export DISPLAY=:99.0 11 | - sh -e /etc/init.d/xvfb start 12 | 13 | addons: 14 | chrome: stable 15 | 16 | script: 17 | - npm test 18 | - npm run codecov 19 | 20 | notifications: 21 | email: false 22 | -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | ## 1.2.9 2 | 3 | ### Breaking Changes 4 | - `readonly` is not part of the inputs, and is now a property that needs to be added to each tag in order to make it readonly 5 | 6 | ### Bug fixes 7 | - removing tag should not trigger `onSelect` 8 | - OnRemoving does not trigger by backspace and drag remove 9 | - Added max-width for very long tags, and ellipsis at the end 10 | 11 | ## 1.2.3 12 | 13 | ### Features 14 | - Added `onAdding` and `onRemoving` hooks 15 | 16 | ### Maintenance 17 | - removed `Renderer` 18 | 19 | ## 1.1.5-beta.0 20 | 21 | ### Features 22 | - Added `dropZone` attribute to drag and drop tags 23 | 24 | ### Demo 25 | - Fixed missing animations module 26 | 27 | ## 0.7.0 28 | 29 | ### Breaking changes 30 | - The autocomplete properties `autocompleteItems` and `showDropdownIfEmpty` are now part of the `tag-input-dropdown` 31 | component instead. 32 | 33 | ### Refactoring 34 | - Lots of code moved around and refactored 35 | 36 | ## 0.4.8 37 | 38 | ### Bug Fixes 39 | - Custom theme's style is back 40 | 41 | ### Improvements 42 | - Custom theme now uses