diff --git a/README.md b/README.md
index 43cb0711b..4edf3fe20 100644
--- a/README.md
+++ b/README.md
@@ -36,7 +36,7 @@ import { Md2Module } from 'md2';
@NgModule({
imports: [
...,
- Md2Module.forRoot(),
+ Md2Module,
],
...
})
diff --git a/accordion/accordion.css b/accordion/accordion.css
index 980651147..52e586310 100644
--- a/accordion/accordion.css
+++ b/accordion/accordion.css
@@ -1,2 +1,2 @@
-md2-accordion{display:block}md2-accordion-tab{position:relative;display:block;outline:0;box-sizing:border-box}md2-accordion-tab[hidden]{display:none}.md2-accordion-header{position:relative;display:block;padding-right:30px;font-weight:500;line-height:40px;text-align:left;color:rgba(0,0,0,.87);cursor:pointer;white-space:nowrap;border-bottom:1px solid rgba(0,0,0,.12);border-radius:0;box-sizing:border-box;user-select:none}md2-accordion-tab.md2-accordion-tab-active>.md2-accordion-header{border-color:#106cc8;box-shadow:0 1px 0 #106cc8}md2-accordion-tab.md2-accordion-tab-disabled>.md2-accordion-header{pointer-events:none;color:rgba(0,0,0,.26);background-image:linear-gradient(to right,rgba(0,0,0,.26) 0,rgba(0,0,0,.26) 33%,transparent 0);background-size:4px 1px;background-repeat:repeat-x;background-position:0 bottom;border-color:transparent;box-shadow:none;cursor:default}.md2-accordion-header-icon{position:absolute;top:12px;right:8px;width:8px;height:8px;overflow:hidden;display:inline-block;border-width:0 2px 2px 0;border-style:solid;border-color:currentColor;opacity:.64;transform:rotate(45deg);transition:.3s ease-in-out}md2-accordion-tab.md2-accordion-tab-active>.md2-accordion-header>.md2-accordion-header-icon{transform:rotate(225deg);top:16px}.md2-accordion-tab-body{position:relative;overflow:hidden}.md2-accordion-tab-content{position:relative;padding:20px 0;border-bottom:1px solid rgba(0,0,0,.12)}
+md2-accordion{display:block}md2-accordion-tab{position:relative;display:block;outline:0;box-sizing:border-box}md2-accordion-tab[hidden]{display:none}.md2-accordion-header{position:relative;display:block;padding-right:30px;font-weight:500;line-height:40px;text-align:left;color:rgba(0,0,0,.87);cursor:pointer;white-space:nowrap;border-bottom:1px solid rgba(0,0,0,.12);border-radius:0;box-sizing:border-box;user-select:none}md2-accordion-tab.md2-accordion-tab-active>.md2-accordion-header{border-color:#106cc8;box-shadow:0 1px 0 #106cc8}md2-accordion-tab.md2-accordion-tab-disabled>.md2-accordion-header{pointer-events:none;color:rgba(0,0,0,.26);background-image:linear-gradient(to right,rgba(0,0,0,.26) 0,rgba(0,0,0,.26) 33%,transparent 0);background-size:4px 1px;background-repeat:repeat-x;background-position:0 bottom;border-color:transparent;box-shadow:none;cursor:default}.md2-accordion-header-icon{position:absolute;top:12px;right:8px;width:8px;height:8px;overflow:hidden;display:inline-block;border-width:0 2px 2px 0;border-style:solid;border-color:currentColor;opacity:.64;transform:rotate(45deg);transition:.3s ease-in-out}md2-accordion-tab.md2-accordion-tab-active>.md2-accordion-header>.md2-accordion-header-icon{transform:rotate(225deg);top:16px}.md2-accordion-tab-body{position:relative;overflow:hidden}md2-accordion-tab.md2-accordion-tab-active .md2-accordion-tab-body{overflow:visible}.md2-accordion-tab-content{position:relative;padding:20px 0;border-bottom:1px solid rgba(0,0,0,.12)}
/*# sourceMappingURL=accordion.css.map */
diff --git a/accordion/accordion.css.map b/accordion/accordion.css.map
index 53987bee0..768fdea0b 100644
--- a/accordion/accordion.css.map
+++ b/accordion/accordion.css.map
@@ -1 +1 @@
-{"version":3,"sources":["accordion/accordion.scss"],"names":[],"mappings":"AAEA,cACE,QAAS,MAGX,kBACE,SAAU,SACV,QAAS,MACT,QAAS,EACT,WAAY,WAJd,0BAOI,QAAS,KAIb,sBACE,SAAU,SACV,QAAS,MACT,cAAe,KACf,YAAa,IACb,YAAa,KACb,WAAY,KACZ,MAAY,gBACZ,OAAQ,QACR,YAAa,OACb,cAAe,IAAI,MAAW,gBAC9B,cAAe,EACf,WAAY,WACZ,YAAa,KAEb,iEACE,aAjCM,QAkCN,WAAY,EAAE,IAAI,EAlCZ,QAqCR,mEACE,eAAgB,KAChB,MAAY,gBACZ,iBAAkB,8EAClB,gBAAiB,IAAA,IACjB,kBAAmB,SACnB,oBAAqB,EAAA,OACrB,aAAc,YACd,WAAY,KACZ,OAAQ,QAIZ,2BACE,SAAU,SACV,IAAK,KACL,MAAO,IACP,MAAO,IACP,OAAQ,IACR,SAAU,OACV,QAAS,aACT,aAAc,EAAA,IAAA,IAAA,EACd,aAAc,MACd,aAAc,aACd,QAAS,IACT,UAAW,cACX,WAAY,IAAA,YAEZ,4FACE,UAAW,eACX,IAAK,KAIT,wBACE,SAAU,SACV,SAAU,OAGZ,2BACE,SAAU,SACV,QAAS,KAAA,EACT,cAAe,IAAI,MAAW","file":"accordion.css","sourcesContent":["$primary: #106cc8 !default;\n\nmd2-accordion {\n display: block;\n}\n\nmd2-accordion-tab {\n position: relative;\n display: block;\n outline: 0;\n box-sizing: border-box;\n\n &[hidden] {\n display: none;\n }\n}\n\n.md2-accordion-header {\n position: relative;\n display: block;\n padding-right: 30px;\n font-weight: 500;\n line-height: 40px;\n text-align: left;\n color: rgba(black, 0.87);\n cursor: pointer;\n white-space: nowrap;\n border-bottom: 1px solid rgba(black, 0.12);\n border-radius: 0;\n box-sizing: border-box;\n user-select: none;\n\n md2-accordion-tab.md2-accordion-tab-active > & {\n border-color: $primary;\n box-shadow: 0 1px 0 $primary;\n }\n\n md2-accordion-tab.md2-accordion-tab-disabled > & {\n pointer-events: none;\n color: rgba(black, 0.26);\n background-image: linear-gradient(to right, rgba(black, 0.26) 0, rgba(black, 0.26) 33%, transparent 0);\n background-size: 4px 1px;\n background-repeat: repeat-x;\n background-position: 0 bottom;\n border-color: transparent;\n box-shadow: none;\n cursor: default;\n }\n}\n\n.md2-accordion-header-icon {\n position: absolute;\n top: 12px;\n right: 8px;\n width: 8px;\n height: 8px;\n overflow: hidden;\n display: inline-block;\n border-width: 0 2px 2px 0;\n border-style: solid;\n border-color: currentColor;\n opacity: 0.64;\n transform: rotate(45deg);\n transition: 300ms ease-in-out;\n\n md2-accordion-tab.md2-accordion-tab-active > .md2-accordion-header > & {\n transform: rotate(225deg);\n top: 16px;\n }\n}\n\n.md2-accordion-tab-body {\n position: relative;\n overflow: hidden;\n}\n\n.md2-accordion-tab-content {\n position: relative;\n padding: 20px 0;\n border-bottom: 1px solid rgba(black, 0.12);\n}\n"]}
\ No newline at end of file
+{"version":3,"sources":["accordion/accordion.scss"],"names":[],"mappings":"AAEA,cACE,QAAS,MAGX,kBACE,SAAU,SACV,QAAS,MACT,QAAS,EACT,WAAY,WAJd,0BAOI,QAAS,KAIb,sBACE,SAAU,SACV,QAAS,MACT,cAAe,KACf,YAAa,IACb,YAAa,KACb,WAAY,KACZ,MAAY,gBACZ,OAAQ,QACR,YAAa,OACb,cAAe,IAAI,MAAW,gBAC9B,cAAe,EACf,WAAY,WACZ,YAAa,KAEb,iEACE,aAjCM,QAkCN,WAAY,EAAE,IAAI,EAlCZ,QAqCR,mEACE,eAAgB,KAChB,MAAY,gBACZ,iBAAkB,8EAClB,gBAAiB,IAAA,IACjB,kBAAmB,SACnB,oBAAqB,EAAA,OACrB,aAAc,YACd,WAAY,KACZ,OAAQ,QAIZ,2BACE,SAAU,SACV,IAAK,KACL,MAAO,IACP,MAAO,IACP,OAAQ,IACR,SAAU,OACV,QAAS,aACT,aAAc,EAAA,IAAA,IAAA,EACd,aAAc,MACd,aAAc,aACd,QAAS,IACT,UAAW,cACX,WAAY,IAAA,YAEZ,4FACE,UAAW,eACX,IAAK,KAIT,wBACE,SAAU,SACV,SAAU,OAEV,mEACE,SAAU,QAId,2BACE,SAAU,SACV,QAAS,KAAA,EACT,cAAe,IAAI,MAAW","file":"accordion.css","sourcesContent":["$primary: #106cc8 !default;\n\nmd2-accordion {\n display: block;\n}\n\nmd2-accordion-tab {\n position: relative;\n display: block;\n outline: 0;\n box-sizing: border-box;\n\n &[hidden] {\n display: none;\n }\n}\n\n.md2-accordion-header {\n position: relative;\n display: block;\n padding-right: 30px;\n font-weight: 500;\n line-height: 40px;\n text-align: left;\n color: rgba(black, 0.87);\n cursor: pointer;\n white-space: nowrap;\n border-bottom: 1px solid rgba(black, 0.12);\n border-radius: 0;\n box-sizing: border-box;\n user-select: none;\n\n md2-accordion-tab.md2-accordion-tab-active > & {\n border-color: $primary;\n box-shadow: 0 1px 0 $primary;\n }\n\n md2-accordion-tab.md2-accordion-tab-disabled > & {\n pointer-events: none;\n color: rgba(black, 0.26);\n background-image: linear-gradient(to right, rgba(black, 0.26) 0, rgba(black, 0.26) 33%, transparent 0);\n background-size: 4px 1px;\n background-repeat: repeat-x;\n background-position: 0 bottom;\n border-color: transparent;\n box-shadow: none;\n cursor: default;\n }\n}\n\n.md2-accordion-header-icon {\n position: absolute;\n top: 12px;\n right: 8px;\n width: 8px;\n height: 8px;\n overflow: hidden;\n display: inline-block;\n border-width: 0 2px 2px 0;\n border-style: solid;\n border-color: currentColor;\n opacity: 0.64;\n transform: rotate(45deg);\n transition: 300ms ease-in-out;\n\n md2-accordion-tab.md2-accordion-tab-active > .md2-accordion-header > & {\n transform: rotate(225deg);\n top: 16px;\n }\n}\n\n.md2-accordion-tab-body {\n position: relative;\n overflow: hidden;\n\n md2-accordion-tab.md2-accordion-tab-active & {\n overflow: visible;\n }\n}\n\n.md2-accordion-tab-content {\n position: relative;\n padding: 20px 0;\n border-bottom: 1px solid rgba(black, 0.12);\n}\n"]}
\ No newline at end of file
diff --git a/accordion/accordion.js b/accordion/accordion.js
index 7efd09cab..430136e47 100644
--- a/accordion/accordion.js
+++ b/accordion/accordion.js
@@ -46,7 +46,7 @@ __decorate([
Md2Accordion = __decorate([
Component({selector: 'md2-accordion',
template: "",
- styles: ["md2-accordion{display:block}md2-accordion-tab{position:relative;display:block;outline:0;box-sizing:border-box}md2-accordion-tab[hidden]{display:none}.md2-accordion-header{position:relative;display:block;padding-right:30px;font-weight:500;line-height:40px;text-align:left;color:rgba(0,0,0,.87);cursor:pointer;white-space:nowrap;border-bottom:1px solid rgba(0,0,0,.12);border-radius:0;box-sizing:border-box;user-select:none}md2-accordion-tab.md2-accordion-tab-active>.md2-accordion-header{border-color:#106cc8;box-shadow:0 1px 0 #106cc8}md2-accordion-tab.md2-accordion-tab-disabled>.md2-accordion-header{pointer-events:none;color:rgba(0,0,0,.26);background-image:linear-gradient(to right,rgba(0,0,0,.26) 0,rgba(0,0,0,.26) 33%,transparent 0);background-size:4px 1px;background-repeat:repeat-x;background-position:0 bottom;border-color:transparent;box-shadow:none;cursor:default}.md2-accordion-header-icon{position:absolute;top:12px;right:8px;width:8px;height:8px;overflow:hidden;display:inline-block;border-width:0 2px 2px 0;border-style:solid;border-color:currentColor;opacity:.64;transform:rotate(45deg);transition:.3s ease-in-out}md2-accordion-tab.md2-accordion-tab-active>.md2-accordion-header>.md2-accordion-header-icon{transform:rotate(225deg);top:16px}.md2-accordion-tab-body{position:relative;overflow:hidden}.md2-accordion-tab-content{position:relative;padding:20px 0;border-bottom:1px solid rgba(0,0,0,.12)} /*# sourceMappingURL=accordion.css.map */ "],
+ styles: ["md2-accordion{display:block}md2-accordion-tab{position:relative;display:block;outline:0;box-sizing:border-box}md2-accordion-tab[hidden]{display:none}.md2-accordion-header{position:relative;display:block;padding-right:30px;font-weight:500;line-height:40px;text-align:left;color:rgba(0,0,0,.87);cursor:pointer;white-space:nowrap;border-bottom:1px solid rgba(0,0,0,.12);border-radius:0;box-sizing:border-box;user-select:none}md2-accordion-tab.md2-accordion-tab-active>.md2-accordion-header{border-color:#106cc8;box-shadow:0 1px 0 #106cc8}md2-accordion-tab.md2-accordion-tab-disabled>.md2-accordion-header{pointer-events:none;color:rgba(0,0,0,.26);background-image:linear-gradient(to right,rgba(0,0,0,.26) 0,rgba(0,0,0,.26) 33%,transparent 0);background-size:4px 1px;background-repeat:repeat-x;background-position:0 bottom;border-color:transparent;box-shadow:none;cursor:default}.md2-accordion-header-icon{position:absolute;top:12px;right:8px;width:8px;height:8px;overflow:hidden;display:inline-block;border-width:0 2px 2px 0;border-style:solid;border-color:currentColor;opacity:.64;transform:rotate(45deg);transition:.3s ease-in-out}md2-accordion-tab.md2-accordion-tab-active>.md2-accordion-header>.md2-accordion-header-icon{transform:rotate(225deg);top:16px}.md2-accordion-tab-body{position:relative;overflow:hidden}md2-accordion-tab.md2-accordion-tab-active .md2-accordion-tab-body{overflow:visible}.md2-accordion-tab-content{position:relative;padding:20px 0;border-bottom:1px solid rgba(0,0,0,.12)} /*# sourceMappingURL=accordion.css.map */ "],
encapsulation: ViewEncapsulation.None,
exportAs: 'md2Accordion'
})
diff --git a/accordion/accordion.scss b/accordion/accordion.scss
index 7bd1815a6..6d6e78242 100644
--- a/accordion/accordion.scss
+++ b/accordion/accordion.scss
@@ -72,6 +72,10 @@ md2-accordion-tab {
.md2-accordion-tab-body {
position: relative;
overflow: hidden;
+
+ md2-accordion-tab.md2-accordion-tab-active & {
+ overflow: visible;
+ }
}
.md2-accordion-tab-content {
diff --git a/accordion/accordiontab.js b/accordion/accordiontab.js
index a3d6b6e09..1856be523 100644
--- a/accordion/accordiontab.js
+++ b/accordion/accordiontab.js
@@ -115,16 +115,14 @@ __decorate([
Md2AccordionTab = __decorate([
Component({selector: 'md2-accordion-tab',
template: "\n
\n \n ",
- styles: ["md2-accordion{display:block}md2-accordion-tab{position:relative;display:block;outline:0;box-sizing:border-box}md2-accordion-tab[hidden]{display:none}.md2-accordion-header{position:relative;display:block;padding-right:30px;font-weight:500;line-height:40px;text-align:left;color:rgba(0,0,0,.87);cursor:pointer;white-space:nowrap;border-bottom:1px solid rgba(0,0,0,.12);border-radius:0;box-sizing:border-box;user-select:none}md2-accordion-tab.md2-accordion-tab-active>.md2-accordion-header{border-color:#106cc8;box-shadow:0 1px 0 #106cc8}md2-accordion-tab.md2-accordion-tab-disabled>.md2-accordion-header{pointer-events:none;color:rgba(0,0,0,.26);background-image:linear-gradient(to right,rgba(0,0,0,.26) 0,rgba(0,0,0,.26) 33%,transparent 0);background-size:4px 1px;background-repeat:repeat-x;background-position:0 bottom;border-color:transparent;box-shadow:none;cursor:default}.md2-accordion-header-icon{position:absolute;top:12px;right:8px;width:8px;height:8px;overflow:hidden;display:inline-block;border-width:0 2px 2px 0;border-style:solid;border-color:currentColor;opacity:.64;transform:rotate(45deg);transition:.3s ease-in-out}md2-accordion-tab.md2-accordion-tab-active>.md2-accordion-header>.md2-accordion-header-icon{transform:rotate(225deg);top:16px}.md2-accordion-tab-body{position:relative;overflow:hidden}.md2-accordion-tab-content{position:relative;padding:20px 0;border-bottom:1px solid rgba(0,0,0,.12)} /*# sourceMappingURL=accordion.css.map */ "],
+ styles: ["md2-accordion{display:block}md2-accordion-tab{position:relative;display:block;outline:0;box-sizing:border-box}md2-accordion-tab[hidden]{display:none}.md2-accordion-header{position:relative;display:block;padding-right:30px;font-weight:500;line-height:40px;text-align:left;color:rgba(0,0,0,.87);cursor:pointer;white-space:nowrap;border-bottom:1px solid rgba(0,0,0,.12);border-radius:0;box-sizing:border-box;user-select:none}md2-accordion-tab.md2-accordion-tab-active>.md2-accordion-header{border-color:#106cc8;box-shadow:0 1px 0 #106cc8}md2-accordion-tab.md2-accordion-tab-disabled>.md2-accordion-header{pointer-events:none;color:rgba(0,0,0,.26);background-image:linear-gradient(to right,rgba(0,0,0,.26) 0,rgba(0,0,0,.26) 33%,transparent 0);background-size:4px 1px;background-repeat:repeat-x;background-position:0 bottom;border-color:transparent;box-shadow:none;cursor:default}.md2-accordion-header-icon{position:absolute;top:12px;right:8px;width:8px;height:8px;overflow:hidden;display:inline-block;border-width:0 2px 2px 0;border-style:solid;border-color:currentColor;opacity:.64;transform:rotate(45deg);transition:.3s ease-in-out}md2-accordion-tab.md2-accordion-tab-active>.md2-accordion-header>.md2-accordion-header-icon{transform:rotate(225deg);top:16px}.md2-accordion-tab-body{position:relative;overflow:hidden}md2-accordion-tab.md2-accordion-tab-active .md2-accordion-tab-body{overflow:visible}.md2-accordion-tab-content{position:relative;padding:20px 0;border-bottom:1px solid rgba(0,0,0,.12)} /*# sourceMappingURL=accordion.css.map */ "],
animations: [
trigger('slide', [
state('up', style({ height: 0 })),
state('down', style({ height: '*' })),
transition('down => up', [
style({ height: '*' }),
- animate(300, style({
- height: 0
- }))
+ animate(300, style({ height: 0 }))
]),
transition('up => down', [
style({ height: 0 }),
diff --git a/accordion/accordiontab.js.map b/accordion/accordiontab.js.map
index 7ceb5aed0..1185f0541 100644
--- a/accordion/accordiontab.js.map
+++ b/accordion/accordiontab.js.map
@@ -1 +1 @@
-{"version":3,"file":"accordiontab.js","sourceRoot":"","sources":["../../../src/lib/accordion/accordiontab.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Directive,\n Input,\n ViewEncapsulation,\n} from '@angular/core';\nimport {\n animate,\n state,\n style,\n transition,\n trigger,\n} from '@angular/animations';\nimport { Md2Accordion } from './accordion';\nimport { coerceBooleanProperty } from '../core';\n\n@Directive({ selector: 'md2-accordion-header' })\nexport class Md2AccordionHeader { }\n\n@Component({\n moduleId: module.id,\n selector: 'md2-accordion-tab',\n template: `\n \n \n `,\n styleUrls: ['accordion.css'],\n animations: [\n trigger('slide', [\n state('up', style({ height: 0 })),\n state('down', style({ height: '*' })),\n transition('down => up', [\n style({ height: '*' }),\n animate(300, style({\n height: 0\n }))\n ]),\n transition('up => down', [\n style({ height: 0 }),\n animate(300, style({\n height: '*'\n }))\n ])\n ])\n ],\n host: {\n 'role': 'accordion-tab',\n '[class.md2-accordion-tab-active]': 'active',\n '[class.md2-accordion-tab-disabled]': 'disabled'\n },\n encapsulation: ViewEncapsulation.None,\n exportAs: 'md2AccordionTab'\n})\nexport class Md2AccordionTab {\n\n private _disabled: boolean = false;\n private _active: boolean = false;\n\n @Input() header: string;\n\n @Input()\n get active(): boolean { return this._active; }\n set active(value) {\n this._active = coerceBooleanProperty(value);\n if (this._active && !this._accordion.multiple) {\n for (let i = 0; i < this._accordion.tabs.length; i++) {\n if (this._accordion.tabs[i] !== this) { this._accordion.tabs[i].active = false; }\n }\n }\n }\n\n get slide(): string {\n return this.active ? 'down' : 'up';\n }\n\n @Input()\n get disabled(): boolean { return this._disabled; }\n set disabled(value) { this._disabled = coerceBooleanProperty(value); }\n\n constructor(private _accordion: Md2Accordion) {\n this._accordion.addTab(this);\n }\n\n /**\n * Toggle the accordion\n * @param event\n * @return if it is disabled\n */\n _handleClick(event: Event) {\n if (this.disabled) { return; }\n\n let index = this.findTabIndex();\n\n if (this.active) {\n this.active = !this.active;\n this._accordion.close.emit({ originalEvent: event, index: index });\n } else if (!this._accordion.multiple) {\n for (let i = 0; i < this._accordion.tabs.length; i++) {\n this._accordion.tabs[i].active = false;\n }\n this._active = true;\n this._accordion.open.emit({ originalEvent: event, index: index });\n } else {\n this._active = true;\n this._accordion.open.emit({ originalEvent: event, index: index });\n }\n\n event.preventDefault();\n }\n\n /**\n * Find index of specific tab of accordion\n * @return index number of this tab\n */\n findTabIndex() {\n let index = -1;\n for (let i = 0; i < this._accordion.tabs.length; i++) {\n if (this._accordion.tabs[i] === this) {\n index = i;\n break;\n }\n }\n return index;\n }\n}\n"]}
\ No newline at end of file
+{"version":3,"file":"accordiontab.js","sourceRoot":"","sources":["../../../src/lib/accordion/accordiontab.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Directive,\n Input,\n ViewEncapsulation,\n} from '@angular/core';\nimport {\n animate,\n state,\n style,\n transition,\n trigger,\n} from '@angular/animations';\nimport { Md2Accordion } from './accordion';\nimport { coerceBooleanProperty } from '../core';\n\n@Directive({ selector: 'md2-accordion-header' })\nexport class Md2AccordionHeader { }\n\n@Component({\n moduleId: module.id,\n selector: 'md2-accordion-tab',\n template: `\n \n \n `,\n styleUrls: ['accordion.css'],\n animations: [\n trigger('slide', [\n state('up', style({ height: 0 })),\n state('down', style({ height: '*' })),\n transition('down => up', [\n style({ height: '*' }),\n animate(300, style({ height: 0 }))\n ]),\n transition('up => down', [\n style({ height: 0 }),\n animate(300, style({\n height: '*'\n }))\n ])\n ])\n ],\n host: {\n 'role': 'accordion-tab',\n '[class.md2-accordion-tab-active]': 'active',\n '[class.md2-accordion-tab-disabled]': 'disabled'\n },\n encapsulation: ViewEncapsulation.None,\n exportAs: 'md2AccordionTab'\n})\nexport class Md2AccordionTab {\n\n private _disabled: boolean = false;\n private _active: boolean = false;\n\n @Input() header: string;\n\n @Input()\n get active(): boolean { return this._active; }\n set active(value) {\n this._active = coerceBooleanProperty(value);\n if (this._active && !this._accordion.multiple) {\n for (let i = 0; i < this._accordion.tabs.length; i++) {\n if (this._accordion.tabs[i] !== this) { this._accordion.tabs[i].active = false; }\n }\n }\n }\n\n get slide(): string {\n return this.active ? 'down' : 'up';\n }\n\n @Input()\n get disabled(): boolean { return this._disabled; }\n set disabled(value) { this._disabled = coerceBooleanProperty(value); }\n\n constructor(private _accordion: Md2Accordion) {\n this._accordion.addTab(this);\n }\n\n /**\n * Toggle the accordion\n * @param event\n * @return if it is disabled\n */\n _handleClick(event: Event) {\n if (this.disabled) { return; }\n\n let index = this.findTabIndex();\n\n if (this.active) {\n this.active = !this.active;\n this._accordion.close.emit({ originalEvent: event, index: index });\n } else if (!this._accordion.multiple) {\n for (let i = 0; i < this._accordion.tabs.length; i++) {\n this._accordion.tabs[i].active = false;\n }\n this._active = true;\n this._accordion.open.emit({ originalEvent: event, index: index });\n } else {\n this._active = true;\n this._accordion.open.emit({ originalEvent: event, index: index });\n }\n\n event.preventDefault();\n }\n\n /**\n * Find index of specific tab of accordion\n * @return index number of this tab\n */\n findTabIndex() {\n let index = -1;\n for (let i = 0; i < this._accordion.tabs.length; i++) {\n if (this._accordion.tabs[i] === this) {\n index = i;\n break;\n }\n }\n return index;\n }\n}\n"]}
\ No newline at end of file
diff --git a/bundles/md2.js b/bundles/md2.js
index b35d391c6..6f54a5489 100644
--- a/bundles/md2.js
+++ b/bundles/md2.js
@@ -1,5 +1,5 @@
/**
- * @license Md2 v0.0.25
+ * @license Md2 v0.0.26
* Copyright (c) 2017 Promact, Inc. http://code.promactinfo.com/md2/
* License: MIT
*/
@@ -4921,7 +4921,7 @@ __decorate$38([
Md2Accordion = __decorate$38([
Component({selector: 'md2-accordion',
template: ``,
- styles: ["md2-accordion{display:block}md2-accordion-tab{position:relative;display:block;outline:0;box-sizing:border-box}md2-accordion-tab[hidden]{display:none}.md2-accordion-header{position:relative;display:block;padding-right:30px;font-weight:500;line-height:40px;text-align:left;color:rgba(0,0,0,.87);cursor:pointer;white-space:nowrap;border-bottom:1px solid rgba(0,0,0,.12);border-radius:0;box-sizing:border-box;user-select:none}md2-accordion-tab.md2-accordion-tab-active>.md2-accordion-header{border-color:#106cc8;box-shadow:0 1px 0 #106cc8}md2-accordion-tab.md2-accordion-tab-disabled>.md2-accordion-header{pointer-events:none;color:rgba(0,0,0,.26);background-image:linear-gradient(to right,rgba(0,0,0,.26) 0,rgba(0,0,0,.26) 33%,transparent 0);background-size:4px 1px;background-repeat:repeat-x;background-position:0 bottom;border-color:transparent;box-shadow:none;cursor:default}.md2-accordion-header-icon{position:absolute;top:12px;right:8px;width:8px;height:8px;overflow:hidden;display:inline-block;border-width:0 2px 2px 0;border-style:solid;border-color:currentColor;opacity:.64;transform:rotate(45deg);transition:.3s ease-in-out}md2-accordion-tab.md2-accordion-tab-active>.md2-accordion-header>.md2-accordion-header-icon{transform:rotate(225deg);top:16px}.md2-accordion-tab-body{position:relative;overflow:hidden}.md2-accordion-tab-content{position:relative;padding:20px 0;border-bottom:1px solid rgba(0,0,0,.12)} /*# sourceMappingURL=accordion.css.map */ "],
+ styles: ["md2-accordion{display:block}md2-accordion-tab{position:relative;display:block;outline:0;box-sizing:border-box}md2-accordion-tab[hidden]{display:none}.md2-accordion-header{position:relative;display:block;padding-right:30px;font-weight:500;line-height:40px;text-align:left;color:rgba(0,0,0,.87);cursor:pointer;white-space:nowrap;border-bottom:1px solid rgba(0,0,0,.12);border-radius:0;box-sizing:border-box;user-select:none}md2-accordion-tab.md2-accordion-tab-active>.md2-accordion-header{border-color:#106cc8;box-shadow:0 1px 0 #106cc8}md2-accordion-tab.md2-accordion-tab-disabled>.md2-accordion-header{pointer-events:none;color:rgba(0,0,0,.26);background-image:linear-gradient(to right,rgba(0,0,0,.26) 0,rgba(0,0,0,.26) 33%,transparent 0);background-size:4px 1px;background-repeat:repeat-x;background-position:0 bottom;border-color:transparent;box-shadow:none;cursor:default}.md2-accordion-header-icon{position:absolute;top:12px;right:8px;width:8px;height:8px;overflow:hidden;display:inline-block;border-width:0 2px 2px 0;border-style:solid;border-color:currentColor;opacity:.64;transform:rotate(45deg);transition:.3s ease-in-out}md2-accordion-tab.md2-accordion-tab-active>.md2-accordion-header>.md2-accordion-header-icon{transform:rotate(225deg);top:16px}.md2-accordion-tab-body{position:relative;overflow:hidden}md2-accordion-tab.md2-accordion-tab-active .md2-accordion-tab-body{overflow:visible}.md2-accordion-tab-content{position:relative;padding:20px 0;border-bottom:1px solid rgba(0,0,0,.12)} /*# sourceMappingURL=accordion.css.map */ "],
encapsulation: ViewEncapsulation.None,
exportAs: 'md2Accordion'
})
@@ -5034,16 +5034,14 @@ Md2AccordionTab = __decorate$39([
`,
- styles: ["md2-accordion{display:block}md2-accordion-tab{position:relative;display:block;outline:0;box-sizing:border-box}md2-accordion-tab[hidden]{display:none}.md2-accordion-header{position:relative;display:block;padding-right:30px;font-weight:500;line-height:40px;text-align:left;color:rgba(0,0,0,.87);cursor:pointer;white-space:nowrap;border-bottom:1px solid rgba(0,0,0,.12);border-radius:0;box-sizing:border-box;user-select:none}md2-accordion-tab.md2-accordion-tab-active>.md2-accordion-header{border-color:#106cc8;box-shadow:0 1px 0 #106cc8}md2-accordion-tab.md2-accordion-tab-disabled>.md2-accordion-header{pointer-events:none;color:rgba(0,0,0,.26);background-image:linear-gradient(to right,rgba(0,0,0,.26) 0,rgba(0,0,0,.26) 33%,transparent 0);background-size:4px 1px;background-repeat:repeat-x;background-position:0 bottom;border-color:transparent;box-shadow:none;cursor:default}.md2-accordion-header-icon{position:absolute;top:12px;right:8px;width:8px;height:8px;overflow:hidden;display:inline-block;border-width:0 2px 2px 0;border-style:solid;border-color:currentColor;opacity:.64;transform:rotate(45deg);transition:.3s ease-in-out}md2-accordion-tab.md2-accordion-tab-active>.md2-accordion-header>.md2-accordion-header-icon{transform:rotate(225deg);top:16px}.md2-accordion-tab-body{position:relative;overflow:hidden}.md2-accordion-tab-content{position:relative;padding:20px 0;border-bottom:1px solid rgba(0,0,0,.12)} /*# sourceMappingURL=accordion.css.map */ "],
+ styles: ["md2-accordion{display:block}md2-accordion-tab{position:relative;display:block;outline:0;box-sizing:border-box}md2-accordion-tab[hidden]{display:none}.md2-accordion-header{position:relative;display:block;padding-right:30px;font-weight:500;line-height:40px;text-align:left;color:rgba(0,0,0,.87);cursor:pointer;white-space:nowrap;border-bottom:1px solid rgba(0,0,0,.12);border-radius:0;box-sizing:border-box;user-select:none}md2-accordion-tab.md2-accordion-tab-active>.md2-accordion-header{border-color:#106cc8;box-shadow:0 1px 0 #106cc8}md2-accordion-tab.md2-accordion-tab-disabled>.md2-accordion-header{pointer-events:none;color:rgba(0,0,0,.26);background-image:linear-gradient(to right,rgba(0,0,0,.26) 0,rgba(0,0,0,.26) 33%,transparent 0);background-size:4px 1px;background-repeat:repeat-x;background-position:0 bottom;border-color:transparent;box-shadow:none;cursor:default}.md2-accordion-header-icon{position:absolute;top:12px;right:8px;width:8px;height:8px;overflow:hidden;display:inline-block;border-width:0 2px 2px 0;border-style:solid;border-color:currentColor;opacity:.64;transform:rotate(45deg);transition:.3s ease-in-out}md2-accordion-tab.md2-accordion-tab-active>.md2-accordion-header>.md2-accordion-header-icon{transform:rotate(225deg);top:16px}.md2-accordion-tab-body{position:relative;overflow:hidden}md2-accordion-tab.md2-accordion-tab-active .md2-accordion-tab-body{overflow:visible}.md2-accordion-tab-content{position:relative;padding:20px 0;border-bottom:1px solid rgba(0,0,0,.12)} /*# sourceMappingURL=accordion.css.map */ "],
animations: [
trigger('slide', [
state('up', style({ height: 0 })),
state('down', style({ height: '*' })),
transition('down => up', [
style({ height: '*' }),
- animate(300, style({
- height: 0
- }))
+ animate(300, style({ height: 0 }))
]),
transition('up => down', [
style({ height: 0 }),
@@ -5711,10 +5709,8 @@ let Md2Chips = class Md2Chips {
inputPaste(event) {
let clipboardData = event.clipboardData ||
(event.originalEvent && event.originalEvent.clipboardData);
- let pastedString = clipboardData.getData('text/plain');
- let chips = this.addRegExpString(pastedString);
- let chipsToAdd = chips.filter((chip) => this._isValid(chip));
- this.addNewChip(chipsToAdd);
+ let pastedString = clipboardData.getData('text/plain').trim();
+ this.addNewChip(pastedString);
setTimeout(() => this._resetInput());
}
leftArrowKeyEvents() {
@@ -5739,18 +5735,16 @@ let Md2Chips = class Md2Chips {
}
}
}
- addRegExpString(chipInputString) {
- chipInputString = chipInputString.trim();
- let chips = chipInputString.split(this.splitRegExp);
- return chips.filter((chip) => !!chip);
- }
_isValid(chipString) {
let typeString = typeof chipString;
+ let isExist;
if (typeString === 'string') {
chipString = chipString.trim();
+ isExist = this.chipItemList.filter((chip) => chip.text === chipString);
+ }
+ else {
+ isExist = this.chipItemList.filter((chip) => chip.text === chipString.text);
}
- let isExist;
- isExist = this.chipItemList.filter((chip) => chip.text === chipString);
if (this.chipItemList.indexOf(chipString) === -1 && (isExist.length ? false : true)) {
return this.allowedPattern.test(chipString);
}
@@ -8735,7 +8729,7 @@ var __decorate$58 = (this && this.__decorate) || function (decorators, target, k
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
-const SUPPORTS_INTL_API$1 = typeof Intl != 'undefined';
+const SUPPORTS_INTL_API$1 = false; // typeof Intl != 'undefined';
/** The default month names to use if Intl API is not available. */
const DEFAULT_MONTH_NAMES$1 = {
'long': [
@@ -9981,8 +9975,6 @@ let Md2Datepicker = class Md2Datepicker {
this.selectedChanged = new EventEmitter();
/** Whether the calendar is open. */
this.opened = false;
- /** The id for the datepicker calendar. */
- this.id = `md2-datepicker-${datepickerUid++}`;
/** The currently selected date. */
this._selected = null;
/** The form control validator for the min date. */
@@ -10004,6 +9996,7 @@ let Md2Datepicker = class Md2Datepicker {
};
/** The combined form control validator for this input. */
this._validator = Validators.compose([this._minValidator, this._maxValidator, this._filterValidator]);
+ this.id = (this.id) ? this.id : `md2-datepicker-${datepickerUid++}`;
}
get type() { return this._type; }
set type(value) {
@@ -10352,6 +10345,10 @@ __decorate$56([
Input(),
__metadata$32("design:type", Number)
], Md2Datepicker.prototype, "timeInterval", void 0);
+__decorate$56([
+ Input(),
+ __metadata$32("design:type", String)
+], Md2Datepicker.prototype, "id", void 0);
__decorate$56([
Input(),
__metadata$32("design:type", Object),
diff --git a/bundles/md2.umd.js b/bundles/md2.umd.js
index 8c27dd38e..de01d256a 100644
--- a/bundles/md2.umd.js
+++ b/bundles/md2.umd.js
@@ -1,5 +1,5 @@
/**
- * @license Md2 v0.0.25
+ * @license Md2 v0.0.26
* Copyright (c) 2017 Promact, Inc. http://code.promactinfo.com/md2/
* License: MIT
*/
@@ -5224,7 +5224,7 @@ __decorate$38([
exports.Md2Accordion = __decorate$38([
_angular_core.Component({selector: 'md2-accordion',
template: "",
- styles: ["md2-accordion{display:block}md2-accordion-tab{position:relative;display:block;outline:0;box-sizing:border-box}md2-accordion-tab[hidden]{display:none}.md2-accordion-header{position:relative;display:block;padding-right:30px;font-weight:500;line-height:40px;text-align:left;color:rgba(0,0,0,.87);cursor:pointer;white-space:nowrap;border-bottom:1px solid rgba(0,0,0,.12);border-radius:0;box-sizing:border-box;user-select:none}md2-accordion-tab.md2-accordion-tab-active>.md2-accordion-header{border-color:#106cc8;box-shadow:0 1px 0 #106cc8}md2-accordion-tab.md2-accordion-tab-disabled>.md2-accordion-header{pointer-events:none;color:rgba(0,0,0,.26);background-image:linear-gradient(to right,rgba(0,0,0,.26) 0,rgba(0,0,0,.26) 33%,transparent 0);background-size:4px 1px;background-repeat:repeat-x;background-position:0 bottom;border-color:transparent;box-shadow:none;cursor:default}.md2-accordion-header-icon{position:absolute;top:12px;right:8px;width:8px;height:8px;overflow:hidden;display:inline-block;border-width:0 2px 2px 0;border-style:solid;border-color:currentColor;opacity:.64;transform:rotate(45deg);transition:.3s ease-in-out}md2-accordion-tab.md2-accordion-tab-active>.md2-accordion-header>.md2-accordion-header-icon{transform:rotate(225deg);top:16px}.md2-accordion-tab-body{position:relative;overflow:hidden}.md2-accordion-tab-content{position:relative;padding:20px 0;border-bottom:1px solid rgba(0,0,0,.12)} /*# sourceMappingURL=accordion.css.map */ "],
+ styles: ["md2-accordion{display:block}md2-accordion-tab{position:relative;display:block;outline:0;box-sizing:border-box}md2-accordion-tab[hidden]{display:none}.md2-accordion-header{position:relative;display:block;padding-right:30px;font-weight:500;line-height:40px;text-align:left;color:rgba(0,0,0,.87);cursor:pointer;white-space:nowrap;border-bottom:1px solid rgba(0,0,0,.12);border-radius:0;box-sizing:border-box;user-select:none}md2-accordion-tab.md2-accordion-tab-active>.md2-accordion-header{border-color:#106cc8;box-shadow:0 1px 0 #106cc8}md2-accordion-tab.md2-accordion-tab-disabled>.md2-accordion-header{pointer-events:none;color:rgba(0,0,0,.26);background-image:linear-gradient(to right,rgba(0,0,0,.26) 0,rgba(0,0,0,.26) 33%,transparent 0);background-size:4px 1px;background-repeat:repeat-x;background-position:0 bottom;border-color:transparent;box-shadow:none;cursor:default}.md2-accordion-header-icon{position:absolute;top:12px;right:8px;width:8px;height:8px;overflow:hidden;display:inline-block;border-width:0 2px 2px 0;border-style:solid;border-color:currentColor;opacity:.64;transform:rotate(45deg);transition:.3s ease-in-out}md2-accordion-tab.md2-accordion-tab-active>.md2-accordion-header>.md2-accordion-header-icon{transform:rotate(225deg);top:16px}.md2-accordion-tab-body{position:relative;overflow:hidden}md2-accordion-tab.md2-accordion-tab-active .md2-accordion-tab-body{overflow:visible}.md2-accordion-tab-content{position:relative;padding:20px 0;border-bottom:1px solid rgba(0,0,0,.12)} /*# sourceMappingURL=accordion.css.map */ "],
encapsulation: _angular_core.ViewEncapsulation.None,
exportAs: 'md2Accordion'
})
@@ -5342,16 +5342,14 @@ __decorate$39([
exports.Md2AccordionTab = __decorate$39([
_angular_core.Component({selector: 'md2-accordion-tab',
template: "\n \n \n ",
- styles: ["md2-accordion{display:block}md2-accordion-tab{position:relative;display:block;outline:0;box-sizing:border-box}md2-accordion-tab[hidden]{display:none}.md2-accordion-header{position:relative;display:block;padding-right:30px;font-weight:500;line-height:40px;text-align:left;color:rgba(0,0,0,.87);cursor:pointer;white-space:nowrap;border-bottom:1px solid rgba(0,0,0,.12);border-radius:0;box-sizing:border-box;user-select:none}md2-accordion-tab.md2-accordion-tab-active>.md2-accordion-header{border-color:#106cc8;box-shadow:0 1px 0 #106cc8}md2-accordion-tab.md2-accordion-tab-disabled>.md2-accordion-header{pointer-events:none;color:rgba(0,0,0,.26);background-image:linear-gradient(to right,rgba(0,0,0,.26) 0,rgba(0,0,0,.26) 33%,transparent 0);background-size:4px 1px;background-repeat:repeat-x;background-position:0 bottom;border-color:transparent;box-shadow:none;cursor:default}.md2-accordion-header-icon{position:absolute;top:12px;right:8px;width:8px;height:8px;overflow:hidden;display:inline-block;border-width:0 2px 2px 0;border-style:solid;border-color:currentColor;opacity:.64;transform:rotate(45deg);transition:.3s ease-in-out}md2-accordion-tab.md2-accordion-tab-active>.md2-accordion-header>.md2-accordion-header-icon{transform:rotate(225deg);top:16px}.md2-accordion-tab-body{position:relative;overflow:hidden}.md2-accordion-tab-content{position:relative;padding:20px 0;border-bottom:1px solid rgba(0,0,0,.12)} /*# sourceMappingURL=accordion.css.map */ "],
+ styles: ["md2-accordion{display:block}md2-accordion-tab{position:relative;display:block;outline:0;box-sizing:border-box}md2-accordion-tab[hidden]{display:none}.md2-accordion-header{position:relative;display:block;padding-right:30px;font-weight:500;line-height:40px;text-align:left;color:rgba(0,0,0,.87);cursor:pointer;white-space:nowrap;border-bottom:1px solid rgba(0,0,0,.12);border-radius:0;box-sizing:border-box;user-select:none}md2-accordion-tab.md2-accordion-tab-active>.md2-accordion-header{border-color:#106cc8;box-shadow:0 1px 0 #106cc8}md2-accordion-tab.md2-accordion-tab-disabled>.md2-accordion-header{pointer-events:none;color:rgba(0,0,0,.26);background-image:linear-gradient(to right,rgba(0,0,0,.26) 0,rgba(0,0,0,.26) 33%,transparent 0);background-size:4px 1px;background-repeat:repeat-x;background-position:0 bottom;border-color:transparent;box-shadow:none;cursor:default}.md2-accordion-header-icon{position:absolute;top:12px;right:8px;width:8px;height:8px;overflow:hidden;display:inline-block;border-width:0 2px 2px 0;border-style:solid;border-color:currentColor;opacity:.64;transform:rotate(45deg);transition:.3s ease-in-out}md2-accordion-tab.md2-accordion-tab-active>.md2-accordion-header>.md2-accordion-header-icon{transform:rotate(225deg);top:16px}.md2-accordion-tab-body{position:relative;overflow:hidden}md2-accordion-tab.md2-accordion-tab-active .md2-accordion-tab-body{overflow:visible}.md2-accordion-tab-content{position:relative;padding:20px 0;border-bottom:1px solid rgba(0,0,0,.12)} /*# sourceMappingURL=accordion.css.map */ "],
animations: [
_angular_animations.trigger('slide', [
_angular_animations.state('up', _angular_animations.style({ height: 0 })),
_angular_animations.state('down', _angular_animations.style({ height: '*' })),
_angular_animations.transition('down => up', [
_angular_animations.style({ height: '*' }),
- _angular_animations.animate(300, _angular_animations.style({
- height: 0
- }))
+ _angular_animations.animate(300, _angular_animations.style({ height: 0 }))
]),
_angular_animations.transition('up => down', [
_angular_animations.style({ height: 0 }),
@@ -6078,10 +6076,8 @@ exports.Md2Chips = (function () {
var _this = this;
var clipboardData = event.clipboardData ||
(event.originalEvent && event.originalEvent.clipboardData);
- var pastedString = clipboardData.getData('text/plain');
- var chips = this.addRegExpString(pastedString);
- var chipsToAdd = chips.filter(function (chip) { return _this._isValid(chip); });
- this.addNewChip(chipsToAdd);
+ var pastedString = clipboardData.getData('text/plain').trim();
+ this.addNewChip(pastedString);
setTimeout(function () { return _this._resetInput(); });
};
Md2Chips.prototype.leftArrowKeyEvents = function () {
@@ -6106,18 +6102,16 @@ exports.Md2Chips = (function () {
}
}
};
- Md2Chips.prototype.addRegExpString = function (chipInputString) {
- chipInputString = chipInputString.trim();
- var chips = chipInputString.split(this.splitRegExp);
- return chips.filter(function (chip) { return !!chip; });
- };
Md2Chips.prototype._isValid = function (chipString) {
var typeString = typeof chipString;
+ var isExist;
if (typeString === 'string') {
chipString = chipString.trim();
+ isExist = this.chipItemList.filter(function (chip) { return chip.text === chipString; });
+ }
+ else {
+ isExist = this.chipItemList.filter(function (chip) { return chip.text === chipString.text; });
}
- var isExist;
- isExist = this.chipItemList.filter(function (chip) { return chip.text === chipString; });
if (this.chipItemList.indexOf(chipString) === -1 && (isExist.length ? false : true)) {
return this.allowedPattern.test(chipString);
}
@@ -9329,7 +9323,7 @@ var __decorate$58 = (this && this.__decorate) || function (decorators, target, k
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
-var SUPPORTS_INTL_API$1 = typeof Intl != 'undefined';
+var SUPPORTS_INTL_API$1 = false; // typeof Intl != 'undefined';
/** The default month names to use if Intl API is not available. */
var DEFAULT_MONTH_NAMES$1 = {
'long': [
@@ -10620,8 +10614,6 @@ exports.Md2Datepicker = (function () {
this.selectedChanged = new _angular_core.EventEmitter();
/** Whether the calendar is open. */
this.opened = false;
- /** The id for the datepicker calendar. */
- this.id = "md2-datepicker-" + datepickerUid++;
/** The currently selected date. */
this._selected = null;
/** The form control validator for the min date. */
@@ -10643,6 +10635,7 @@ exports.Md2Datepicker = (function () {
};
/** The combined form control validator for this input. */
this._validator = _angular_forms.Validators.compose([this._minValidator, this._maxValidator, this._filterValidator]);
+ this.id = (this.id) ? this.id : "md2-datepicker-" + datepickerUid++;
}
Object.defineProperty(Md2Datepicker.prototype, "type", {
get: function () { return this._type; },
@@ -11035,6 +11028,10 @@ __decorate$56([
_angular_core.Input(),
__metadata$32("design:type", Number)
], exports.Md2Datepicker.prototype, "timeInterval", void 0);
+__decorate$56([
+ _angular_core.Input(),
+ __metadata$32("design:type", String)
+], exports.Md2Datepicker.prototype, "id", void 0);
__decorate$56([
_angular_core.Input(),
__metadata$32("design:type", Object),
diff --git a/chips/chips.d.ts b/chips/chips.d.ts
index d8c1645e3..8f92a0018 100644
--- a/chips/chips.d.ts
+++ b/chips/chips.d.ts
@@ -71,7 +71,6 @@ export declare class Md2Chips implements ControlValueAccessor, AfterContentInit
inputPaste(event: any): void;
leftArrowKeyEvents(): void;
rightArrowKeyEvents(): void;
- private addRegExpString(chipInputString);
private _isValid(chipString);
/**
* add new chip
diff --git a/chips/chips.js b/chips/chips.js
index dff02dd1e..ae141ff8f 100644
--- a/chips/chips.js
+++ b/chips/chips.js
@@ -217,10 +217,8 @@ var Md2Chips = (function () {
var _this = this;
var clipboardData = event.clipboardData ||
(event.originalEvent && event.originalEvent.clipboardData);
- var pastedString = clipboardData.getData('text/plain');
- var chips = this.addRegExpString(pastedString);
- var chipsToAdd = chips.filter(function (chip) { return _this._isValid(chip); });
- this.addNewChip(chipsToAdd);
+ var pastedString = clipboardData.getData('text/plain').trim();
+ this.addNewChip(pastedString);
setTimeout(function () { return _this._resetInput(); });
};
Md2Chips.prototype.leftArrowKeyEvents = function () {
@@ -245,18 +243,16 @@ var Md2Chips = (function () {
}
}
};
- Md2Chips.prototype.addRegExpString = function (chipInputString) {
- chipInputString = chipInputString.trim();
- var chips = chipInputString.split(this.splitRegExp);
- return chips.filter(function (chip) { return !!chip; });
- };
Md2Chips.prototype._isValid = function (chipString) {
var typeString = typeof chipString;
+ var isExist;
if (typeString === 'string') {
chipString = chipString.trim();
+ isExist = this.chipItemList.filter(function (chip) { return chip.text === chipString; });
+ }
+ else {
+ isExist = this.chipItemList.filter(function (chip) { return chip.text === chipString.text; });
}
- var isExist;
- isExist = this.chipItemList.filter(function (chip) { return chip.text === chipString; });
if (this.chipItemList.indexOf(chipString) === -1 && (isExist.length ? false : true)) {
return this.allowedPattern.test(chipString);
}
diff --git a/chips/chips.js.map b/chips/chips.js.map
index 48869389f..8ef611d3b 100644
--- a/chips/chips.js.map
+++ b/chips/chips.js.map
@@ -1 +1 @@
-{"version":3,"file":"chips.js","sourceRoot":"","sources":["../../../src/lib/chips/chips.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EACL,SAAS,EACT,KAAK,EACL,UAAU,EACV,MAAM,EACN,SAAS,EACT,QAAQ,EACR,UAAU,EACV,YAAY,EAEZ,YAAY,EACZ,iBAAiB,EAClB,MAAM,eAAe,CAAC;AACvB,OAAO,EAEL,iBAAiB,EACjB,MAAM,EACN,WAAW,EACZ,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EACL,KAAK,EACL,KAAK,EACL,SAAS,EACT,MAAM,EACN,KAAK,EACL,UAAU,EACV,WAAW,EACZ,MAAM,2BAA2B,CAAC;AAEnC;IAIE,cAAY,MAAW,EAAE,OAAe,EAAE,QAAgB;QACxD,EAAE,CAAC,CAAC,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC;YAC/B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC;QAClC,CAAC;QACD,EAAE,CAAC,CAAC,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC;YAC/B,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;YAC5B,IAAI,CAAC,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC;QACpD,CAAC;IACH,CAAC;IACH,WAAC;AAAD,CAAC,AAbD,IAaC;;AAED,IAAI,MAAM,GAAG,CAAC,CAAC;AACf,MAAM,CAAC,IAAM,gCAAgC,GAAQ;IACnD,OAAO,EAAE,iBAAiB;IAC1B,WAAW,EAAE,UAAU,CAAC,cAAM,OAAA,QAAQ,EAAR,CAAQ,CAAC;IACvC,KAAK,EAAE,IAAI;CACZ,CAAC;AAEF,+CAA+C;AAC/C;IAAA;IAGA,CAAC;IAAD,qBAAC;AAAD,CAAC,AAHD,IAGC;;AAiBD,IAAa,QAAQ;IAyCnB,kBAAoB,UAAsB;QAAtB,eAAU,GAAV,UAAU,CAAY;QAxCjC,aAAQ,GAAW,CAAC,CAAC;QACrB,eAAU,GAAY,IAAI,CAAC;QAC3B,eAAU,GAAY,IAAI,CAAC;QAC3B,eAAU,GAAY,IAAI,CAAC;QAC3B,eAAU,GAAY,KAAK,CAAC;QAC5B,mBAAc,GAAW,IAAI,CAAC;QAE9B,sBAAiB,GAAW,GAAG,CAAC;QAChC,gBAAW,GAAW,EAAE,CAAC;QAEzB,mBAAc,GAAY,KAAK,CAAC;QAChC,gBAAW,GAAY,IAAI,CAAC;QAC5B,aAAQ,GAAY,KAAK,CAAC;QAC1B,aAAQ,GAAW,CAAC,CAAC;QACrB,aAAQ,GAAW,KAAK,CAAC;QACzB,SAAI,GAAW,MAAM,CAAC;QACtB,OAAE,GAAW,YAAY,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC;QACf,yBAAoB,GAAW,MAAM,CAAC;QACrC,0BAAqB,GAAW,OAAO,CAAC;QACtD,YAAO,GAAW,MAAM,CAAC;QACxB,aAAQ,GAAW,IAAI,CAAC;QAEnC,WAAM,GAAsB,IAAI,YAAY,EAAO,CAAC;QAG9D,cAAS,GAAyB,cAAQ,CAAC,CAAC;QAC5C,eAAU,GAAG,cAAQ,CAAC,CAAC;QAEvB,iBAAY,GAAgB,EAAE,CAAC;QAC/B,eAAU,GAAW,EAAE,CAAC;QACxB,iBAAY,GAAW,CAAC,CAAC,CAAC;QAC1B,iBAAY,GAAY,KAAK,CAAC;QAC9B,uBAAkB,GAAY,KAAK,CAAC;QAE5B,WAAM,GAAQ,EAAE,CAAC;QAIjB,wBAAmB,GAAY,IAAI,CAAC;IAEE,CAAC;IAE/C,sBAAI,6BAAO;aAAX;YACE,IAAM,QAAQ,GAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;YAC7F,QAAQ,CAAC,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,sBAAsB,CAAC,CAAC;YACvE,QAAQ,CAAC,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC;YACpE,MAAM,CAAC,QAAQ,CAAC;QAClB,CAAC;;;OAAA;IAED,sBAAI,2BAAK;aAAT,cAAmB,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;aACxC,UAAU,KAAU,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;;;OADP;IAOxC,sBAAI,8BAAQ;QAJZ;;;WAGG;aACH,UAAa,KAAU;YACrB,EAAE,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;gBAC1B,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;gBACpB,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;gBACvB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;oBACV,EAAE,CAAC,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;wBAClD,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;4BACtC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;wBAC1E,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;YACD,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC1B,CAAC;;;OAAA;IAED,uCAAoB,GAApB;QACE,IAAI,CAAC,UAAU,EAAE,CAAC;IACpB,CAAC;IAED,qCAAkB,GAAlB,UAAmB,KAAU;QAC3B,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YACV,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAC7B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACnB,CAAC;IACH,CAAC;IAED,qCAAkB,GAAlB;QACE,IAAI,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC;QAC5B,IAAI,CAAC,WAAW,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACtD,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;YACtB,IAAI,CAAC,kBAAkB,GAAG,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC;QACxD,CAAC;IACH,CAAC;IAED,2CAA2C;IAC3C,8BAAW,GAAX,UAAY,GAAU;QACpB,IAAI,CAAC,mBAAmB,GAAG,GAAG,GAAG,KAAK,GAAG,IAAI,CAAC;IAChD,CAAC;IAED;;;OAGG;IACH,+BAAY,GAAZ,UAAa,KAAoB;QAC/B,IAAI,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC;QACxB,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YACZ,aAAa;YACb,KAAK,SAAS;gBACZ,IAAI,CAAC,cAAc,EAAE,CAAC;gBACtB,KAAK,CAAC;YACR,SAAS;YACT,KAAK,MAAM;gBACT,IAAI,CAAC,cAAc,EAAE,CAAC;gBACtB,KAAK,CAAC;YACR,aAAa;YACb,KAAK,UAAU;gBACb,EAAE,CAAC,CAAC,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC;oBACpD,IAAI,CAAC,kBAAkB,EAAE,CAAC;gBAC5B,CAAC;gBAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;oBACpD,IAAI,CAAC,kBAAkB,EAAE,CAAC;gBAC5B,CAAC;gBACD,KAAK,CAAC;YACR,cAAc;YACd,KAAK,WAAW;gBACd,EAAE,CAAC,CAAC,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC;oBACpD,IAAI,CAAC,mBAAmB,EAAE,CAAC;gBAC7B,CAAC;gBAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;oBACpD,IAAI,CAAC,mBAAmB,EAAE,CAAC;gBAC7B,CAAC;gBACD,KAAK,CAAC;YACR,QAAQ;YACR,KAAK,KAAK;gBACR,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;oBACpB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;oBACjC,KAAK,CAAC,cAAc,EAAE,CAAC;gBACzB,CAAC;gBACD,KAAK,CAAC;YACR,QAAQ;YACR,KAAK,KAAK;gBACR,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;oBACpB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;oBACjC,KAAK,CAAC,cAAc,EAAE,CAAC;gBACzB,CAAC;gBACD,KAAK,CAAC;YACR,QAAQ;YACR,KAAK,KAAK;gBACR,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;oBACpB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;oBACjC,KAAK,CAAC,cAAc,EAAE,CAAC;gBACzB,CAAC;gBACD,KAAK,CAAC;YAER;gBACE,KAAK,CAAC;QACV,CAAC;IACH,CAAC;IAGD,+BAAY,GAAZ;QACE,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;YAAC,MAAM,CAAC;QAAC,CAAC;QAC9B,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;YACzB,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,aAAa,CAAC,kBAAkB,CAAC,CAAC,KAAK,EAAE,CAAC;QAC1E,CAAC;QAAC,IAAI,CAAC,CAAC;YACN,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;YAC/B,IAAI,CAAC,UAAU,EAAE,CAAC;QACpB,CAAC;QACD,IAAI,CAAC,cAAc,EAAE,CAAC;IACxB,CAAC;IAED,+BAAY,GAAZ;QACE,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAC1B,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;YACpB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACnC,CAAC;QACD,IAAI,CAAC,UAAU,EAAE,CAAC;IACpB,CAAC;IAED,6BAAU,GAAV;QACE,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;YAAC,MAAM,CAAC;QAAC,CAAC;QAC9B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;IAC3B,CAAC;IAED,6BAAU,GAAV,UAAW,KAAU;QAArB,iBAQC;QAPC,IAAI,aAAa,GAAG,KAAK,CAAC,aAAa;YACrC,CAAC,KAAK,CAAC,aAAa,IAAI,KAAK,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;QAC7D,IAAI,YAAY,GAAG,aAAa,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;QACvD,IAAI,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;QAC/C,IAAI,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,UAAC,IAAI,IAAK,OAAA,KAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAnB,CAAmB,CAAC,CAAC;QAC7D,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QAC5B,UAAU,CAAC,cAAM,OAAA,KAAI,CAAC,WAAW,EAAE,EAAlB,CAAkB,CAAC,CAAC;IACvC,CAAC;IAED,qCAAkB,GAAlB;QACE,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;YACtB,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC;gBAC1B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC;YACnD,CAAC;YAAC,IAAI,CAAC,CAAC;gBACN,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;YAC5C,CAAC;QACH,CAAC;IACH,CAAC;IACD,sCAAmB,GAAnB;QACE,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;YAC5B,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC;gBAClD,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;YACxB,CAAC;YAAC,IAAI,CAAC,CAAC;gBACN,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;YAC5C,CAAC;QACH,CAAC;IACH,CAAC;IAEO,kCAAe,GAAvB,UAAwB,eAAuB;QAC7C,eAAe,GAAG,eAAe,CAAC,IAAI,EAAE,CAAC;QACzC,IAAI,KAAK,GAAG,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACpD,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,UAAC,IAAI,IAAK,OAAA,CAAC,CAAC,IAAI,EAAN,CAAM,CAAC,CAAC;IACxC,CAAC;IAEO,2BAAQ,GAAhB,UAAiB,UAAe;QAC9B,IAAI,UAAU,GAAG,OAAO,UAAU,CAAC;QACnC,EAAE,CAAC,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC;YAC5B,UAAU,GAAG,UAAU,CAAC,IAAI,EAAE,CAAC;QACjC,CAAC;QACD,IAAI,OAAY,CAAC;QACjB,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,UAAC,IAAI,IAAK,OAAA,IAAI,CAAC,IAAI,KAAK,UAAU,EAAxB,CAAwB,CAAC,CAAC;QACvE,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YACpF,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC;IACD;;;MAGE;IACM,6BAAU,GAAlB,UAAmB,KAAU;QAC3B,IAAI,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACtC,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;YACf,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;gBAClE,MAAM,CAAC;YACT,CAAC;YAAC,IAAI,CAAC,CAAC;gBACN,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,oBAAoB,EAAE,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC;gBAC/F,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;YACnB,CAAC;QACH,CAAC;QACD,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IAED;;;KAGC;IACO,qCAAkB,GAA1B,UAA2B,iBAAyB;QAClD,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC;QAC/C,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IAEO,iCAAc,GAAtB;QACE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM;YACrD,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC;YAC/C,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC5B,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;gBAC3C,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC;YACnD,CAAC;YAAC,IAAI,CAAC,CAAC;gBACN,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC;YACnD,CAAC;QACH,CAAC;IACH,CAAC;IAEO,iCAAc,GAAtB;QACE,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC;IACzB,CAAC;IAEO,8BAAW,GAAnB;QACE,EAAE,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;YACxB,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAC3D,CAAC;QAAC,IAAI,CAAC,CAAC;YACN,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QACxD,CAAC;IACH,CAAC;IACD;;OAEG;IACK,8BAAW,GAAnB;QAAA,iBAaC;QAZC,IAAI,CAAC,MAAM,GAAG,IAAI,KAAK,EAAO,CAAC;QAC/B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,UAAC,IAAS;YAC5C,EAAE,CAAC,CAAC,KAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;gBAClB,IAAI,CAAC,GAAQ,EAAE,CAAC;gBAChB,CAAC,CAAC,KAAI,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC;gBAC5B,CAAC,CAAC,KAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;gBAC9B,MAAM,CAAC,CAAC,CAAC;YACX,CAAC;YAAC,IAAI,CAAC,CAAC;gBACN,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;YACpB,CAAC;QACH,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAC1B,CAAC;IAED,oDAAoD;IACpD,mCAAgB,GAAhB;QACE,IAAI,KAAK,GAAG,IAAI,cAAc,EAAE,CAAC;QACjC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC;QACpB,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC;QAC1B,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC5B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC1B,CAAC;IAED,6BAAU,GAAV,UAAW,KAAU;QACnB,EAAE,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;YAC1B,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;YACpB,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;YACvB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;gBACV,EAAE,CAAC,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;oBAClD,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;wBACtC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;oBAC1E,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IACD,mCAAgB,GAAhB,UAAiB,EAAwB,IAAU,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC,CAAC,CAAC;IACzE,oCAAiB,GAAjB,UAAkB,EAAY,IAAU,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC,CAAC,CAAC;IACjE,eAAC;AAAD,CAAC,AAjUD,IAiUC;AAhUU;IAAR,KAAK,EAAE;;0CAAsB;AACrB;IAAR,KAAK,EAAE;;4CAA4B;AAC3B;IAAR,KAAK,EAAE;;4CAA4B;AAC3B;IAAR,KAAK,EAAE;;4CAA4B;AAC3B;IAAR,KAAK,EAAE;;4CAA6B;AAC5B;IAAR,KAAK,EAAE;8BAAiB,MAAM;gDAAQ;AAC9B;IAAR,KAAK,EAAE;;yCAAmB;AAClB;IAAR,KAAK,EAAE;;mDAAiC;AAChC;IAAR,KAAK,EAAE;;6CAA0B;AACzB;IAAR,KAAK,EAAE;;sDAAgC;AAC/B;IAAR,KAAK,EAAE;;gDAAiC;AAChC;IAAR,KAAK,EAAE;;6CAA6B;AAC5B;IAAR,KAAK,EAAE;;0CAA2B;AAC1B;IAAR,KAAK,EAAE;;0CAAsB;AACrB;IAAR,KAAK,EAAE;;0CAA0B;AACzB;IAAR,KAAK,EAAE;;sCAAuB;AACtB;IAAR,KAAK,EAAE;;oCAAwC;AACf;IAAhC,KAAK,CAAC,wBAAwB,CAAC;;sDAAuC;AACrC;IAAjC,KAAK,CAAC,yBAAyB,CAAC;;uDAAyC;AACtD;IAAnB,KAAK,CAAC,WAAW,CAAC;;yCAA0B;AACxB;IAApB,KAAK,CAAC,YAAY,CAAC;;0CAAyB;AAEnC;IAAT,MAAM,EAAE;8BAAS,YAAY;wCAAgC;AAClC;IAA3B,SAAS,CAAC,eAAe,CAAC;8BAAgB,MAAM;+CAAC;AA0BlD;IADC,KAAK,EAAE;;;qCACgC;AAyGxC;IADC,YAAY,CAAC,OAAO,CAAC;;;;4CAUrB;AApKU,QAAQ;IAfpB,SAAS,CAAC;QACT,QAAQ,EAAE,WAAW;QACrB,WAAW,EAAE,YAAY;QACzB,SAAS,EAAE,CAAC,WAAW,CAAC;QACxB,SAAS,EAAE,CAAC,gCAAgC,CAAC;QAE7C,IAAI,EAAE;YACJ,MAAM,EAAE,OAAO;YACf,MAAM,EAAE,IAAI;YACZ,YAAY,EAAE,0BAA0B;YACxC,0BAA0B,EAAE,mCAAmC;SAChE;QACD,aAAa,EAAE,iBAAiB,CAAC,IAAI;KACtC,CAAC;qCA2CgC,UAAU;GAzC/B,QAAQ,CAiUpB;SAjUY,QAAQ;AAmUrB,MAAM,CAAC,IAAM,oBAAoB,GAAU,CAAC,QAAQ,CAAC,CAAC;AAOtD,IAAa,cAAc;IAA3B;IAA8B,CAAC;IAAD,qBAAC;AAAD,CAAC,AAA/B,IAA+B;AAAlB,cAAc;IAL1B,QAAQ,CAAC;QACR,OAAO,EAAE,CAAC,YAAY,EAAE,WAAW,EAAE,qBAAqB,CAAC;QAC3D,YAAY,EAAE,oBAAoB;QAClC,OAAO,EAAE,oBAAoB;KAC9B,CAAC;GACW,cAAc,CAAI;SAAlB,cAAc","sourcesContent":["import {\n Component,\n Input,\n forwardRef,\n Output,\n ViewChild,\n NgModule,\n ElementRef,\n EventEmitter,\n AfterContentInit,\n HostListener,\n ViewEncapsulation\n} from '@angular/core';\nimport {\n ControlValueAccessor,\n NG_VALUE_ACCESSOR,\n NgForm,\n FormsModule\n} from '@angular/forms';\n\nimport { CommonModule } from '@angular/common';\nimport { Md2AutocompleteModule } from '../autocomplete/index';\nimport {\n ENTER,\n SPACE,\n BACKSPACE,\n DELETE,\n COMMA,\n LEFT_ARROW,\n RIGHT_ARROW\n} from '../core/keyboard/keycodes';\n\nexport class Chip {\n public text: string;\n public value: string;\n\n constructor(source: any, textKey: string, valueKey: string) {\n if (typeof source === 'string') {\n this.text = this.value = source;\n }\n if (typeof source === 'object') {\n this.text = source[textKey];\n this.value = valueKey ? source[valueKey] : source;\n }\n }\n}\n\nlet nextId = 0;\nexport const MD2_CHIPS_CONTROL_VALUE_ACCESSOR: any = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => Md2Chips),\n multi: true\n};\n\n/** Change event object emitted by Md2Chips. */\nexport class Md2ChipsChange {\n source: Md2Chips;\n value: any;\n}\n\n@Component({\n selector: 'md2-chips',\n templateUrl: 'chips.html',\n styleUrls: ['chips.css'],\n providers: [MD2_CHIPS_CONTROL_VALUE_ACCESSOR],\n\n host: {\n 'role': 'chips',\n '[id]': 'id',\n '[tabindex]': 'disabled ? -1 : tabindex',\n '[class.chip-input-focus]': 'inputFocused || selectedChip >= 0',\n },\n encapsulation: ViewEncapsulation.None\n})\n\nexport class Md2Chips implements ControlValueAccessor, AfterContentInit {\n @Input() tabindex: number = 0;\n @Input() addOnComma: boolean = true;\n @Input() addOnEnter: boolean = true;\n @Input() addOnPaste: boolean = true;\n @Input() addOnSpace: boolean = false;\n @Input() allowedPattern: RegExp = /.+/;\n @Input() ngModel: string[];\n @Input() pasteSplitPattern: string = ',';\n @Input() placeholder: string = '';\n @Input() autocompleteDataList: string[];\n @Input() isAutoComplete: boolean = false;\n @Input() isRemovable: boolean = true;\n @Input() disabled: boolean = false;\n @Input() minChips: number = 0;\n @Input() maxChips: number = 10000;\n @Input() type: string = 'text';\n @Input() id: string = 'md2-chips-' + (++nextId);\n @Input('autocomplete-item-text') autocompleteItemText: string = 'text';\n @Input('autocomplete-item-value') autocompleteItemValue: string = 'value';\n @Input('item-text') textKey: string = 'text';\n @Input('item-value') valueKey: string = null;\n\n @Output() change: EventEmitter = new EventEmitter();\n @ViewChild('chipInputForm') chipInputForm: NgForm;\n\n _onChange: (value: any) => void = () => { };\n _onTouched = () => { };\n\n chipItemList: Array = [];\n inputValue: string = '';\n selectedChip: number = -1;\n inputFocused: boolean = false;\n autoCompleteFocued: boolean = false;\n\n private _value: any = '';\n private splitRegExp: RegExp;\n private templateHtmlString: any;\n private item: any;\n private isEmptyAutoComplete: boolean = true;\n\n constructor(private elementRef: ElementRef) { }\n\n get element() {\n const elements: any = { root: this.elementRef.nativeElement, mainDiv: null, template: null };\n elements.mainDiv = elements.root.querySelector('.md2-chips-container');\n elements.template = elements.mainDiv.querySelector('.md2-template');\n return elements;\n }\n @Input()\n get value(): any { return this._value; }\n set value(value: any) { this.setValue(value); }\n\n /**\n * set value\n * @param value\n */\n set setValue(value: any) {\n if (value !== this._value) {\n this._value = value;\n this.chipItemList = [];\n if (value) {\n if (value && value.length && Array.isArray(value)) {\n for (let i = 0; i < value.length; i++) {\n this.chipItemList.push(new Chip(value[i], this.textKey, this.valueKey));\n }\n }\n }\n }\n this._emitChangeEvent();\n }\n\n getFocusAutocomplete() {\n this._onTouched();\n }\n\n changeAutocomplete(value: any) {\n if (value) {\n this.addNewChip(value.value);\n this.item = null;\n }\n }\n\n ngAfterContentInit() {\n let elements = this.element;\n this.splitRegExp = new RegExp(this.pasteSplitPattern);\n if (elements.template) {\n this.templateHtmlString = elements.template.innerHTML;\n }\n }\n\n // check autocomplete input is empty or not\n valueupdate(evt: Event) {\n this.isEmptyAutoComplete = evt ? false : true;\n }\n\n /**\n * input key listener\n * @param event\n */\n inputChanged(event: KeyboardEvent): void {\n let key = event.keyCode;\n switch (key) {\n // back space\n case BACKSPACE:\n this.backspaceEvent();\n break;\n // delete\n case DELETE:\n this.backspaceEvent();\n break;\n // left arrow\n case LEFT_ARROW:\n if (this.isAutoComplete && this.isEmptyAutoComplete) {\n this.leftArrowKeyEvents();\n } else if (!this.isAutoComplete && !this.inputValue) {\n this.leftArrowKeyEvents();\n }\n break;\n // right arrow\n case RIGHT_ARROW:\n if (this.isAutoComplete && this.isEmptyAutoComplete) {\n this.rightArrowKeyEvents();\n } else if (!this.isAutoComplete && !this.inputValue) {\n this.rightArrowKeyEvents();\n }\n break;\n // enter\n case ENTER:\n if (this.addOnEnter) {\n this.addNewChip(this.inputValue);\n event.preventDefault();\n }\n break;\n // comma\n case COMMA:\n if (this.addOnComma) {\n this.addNewChip(this.inputValue);\n event.preventDefault();\n }\n break;\n // space\n case SPACE:\n if (this.addOnSpace) {\n this.addNewChip(this.inputValue);\n event.preventDefault();\n }\n break;\n\n default:\n break;\n }\n }\n\n @HostListener('focus')\n _handleFocus() {\n if (this.disabled) { return; }\n if (!this.isAutoComplete) {\n this.elementRef.nativeElement.querySelector('input.chip-input').focus();\n } else {\n this.autoCompleteFocued = true;\n this._onTouched();\n }\n this._resetSelected();\n }\n\n inputBlurred(): void {\n this.inputFocused = false;\n if (this.inputValue) {\n this.addNewChip(this.inputValue);\n }\n this._onTouched();\n }\n\n inputFocus(): void {\n if (this.disabled) { return; }\n this.inputFocused = true;\n }\n\n inputPaste(event: any): void {\n let clipboardData = event.clipboardData ||\n (event.originalEvent && event.originalEvent.clipboardData);\n let pastedString = clipboardData.getData('text/plain');\n let chips = this.addRegExpString(pastedString);\n let chipsToAdd = chips.filter((chip) => this._isValid(chip));\n this.addNewChip(chipsToAdd);\n setTimeout(() => this._resetInput());\n }\n\n leftArrowKeyEvents() {\n event.preventDefault();\n if (this.selectedChip) {\n if (this.selectedChip < 0) {\n this.selectedChip = this.chipItemList.length - 1;\n } else {\n this.selectedChip = this.selectedChip - 1;\n }\n }\n }\n rightArrowKeyEvents() {\n event.preventDefault();\n if (this.selectedChip != -1) {\n if (this.selectedChip >= this.chipItemList.length) {\n this.selectedChip = 0;\n } else {\n this.selectedChip = this.selectedChip + 1;\n }\n }\n }\n\n private addRegExpString(chipInputString: string): string[] {\n chipInputString = chipInputString.trim();\n let chips = chipInputString.split(this.splitRegExp);\n return chips.filter((chip) => !!chip);\n }\n\n private _isValid(chipString: any): boolean {\n let typeString = typeof chipString;\n if (typeString === 'string') {\n chipString = chipString.trim();\n }\n let isExist: any;\n isExist = this.chipItemList.filter((chip) => chip.text === chipString);\n if (this.chipItemList.indexOf(chipString) === -1 && (isExist.length ? false : true)) {\n return this.allowedPattern.test(chipString);\n }\n }\n /**\n * add new chip\n * @param chips\n */\n private addNewChip(chips: any): void {\n let validInput = this._isValid(chips);\n if (validInput) {\n if (this.maxChips && this.maxChips < this.chipItemList.length - 1) {\n return;\n } else {\n this.chipItemList.push(new Chip(chips, this.autocompleteItemText, this.autocompleteItemValue));\n this.item = null;\n }\n }\n this._resetSelected();\n this._resetInput();\n this.updateValue();\n }\n\n /**\n * remove selected chip\n * @param chipIndexToRemove index of selected chip\n */\n private removeSelectedChip(chipIndexToRemove: number): void {\n this.chipItemList.splice(chipIndexToRemove, 1);\n this._resetSelected();\n this.updateValue();\n }\n\n private backspaceEvent(): void {\n if (!this.inputValue.length && this.chipItemList.length &&\n this.isRemovable && this.isEmptyAutoComplete) {\n if (this.selectedChip != -1) {\n this.removeSelectedChip(this.selectedChip);\n this.selectedChip = this.chipItemList.length - 1;\n } else {\n this.selectedChip = this.chipItemList.length - 1;\n }\n }\n }\n\n private _resetSelected(): void {\n this.selectedChip = -1;\n }\n\n private _resetInput(): void {\n if (this.isAutoComplete) {\n this.chipInputForm.controls['autocomplete'].setValue('');\n } else {\n this.chipInputForm.controls['chipInput'].setValue('');\n }\n }\n /**\n * update value\n */\n private updateValue() {\n this._value = new Array();\n this._value = this.chipItemList.map((chip: any) => {\n if (this.valueKey) {\n let c: any = {};\n c[this.textKey] = chip.text;\n c[this.valueKey] = chip.value;\n return c;\n } else {\n return chip.value;\n }\n });\n this._emitChangeEvent();\n }\n\n /** Emits an event when the user selects a color. */\n _emitChangeEvent(): void {\n let event = new Md2ChipsChange();\n event.source = this;\n event.value = this._value;\n this._onChange(event.value);\n this.change.emit(event);\n }\n\n writeValue(value: any): void {\n if (value !== this._value) {\n this._value = value;\n this.chipItemList = [];\n if (value) {\n if (value && value.length && Array.isArray(value)) {\n for (let i = 0; i < value.length; i++) {\n this.chipItemList.push(new Chip(value[i], this.textKey, this.valueKey));\n }\n }\n }\n }\n }\n registerOnChange(fn: (value: any) => void): void { this._onChange = fn; }\n registerOnTouched(fn: () => {}): void { this._onTouched = fn; }\n}\n\nexport const MD2_CHIPS_DIRECTIVES: any[] = [Md2Chips];\n\n@NgModule({\n imports: [CommonModule, FormsModule, Md2AutocompleteModule],\n declarations: MD2_CHIPS_DIRECTIVES,\n exports: MD2_CHIPS_DIRECTIVES\n})\nexport class Md2ChipsModule { }\n"]}
\ No newline at end of file
+{"version":3,"file":"chips.js","sourceRoot":"","sources":["../../../src/lib/chips/chips.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Input,\n forwardRef,\n Output,\n ViewChild,\n NgModule,\n ElementRef,\n EventEmitter,\n AfterContentInit,\n HostListener,\n ViewEncapsulation\n} from '@angular/core';\nimport {\n ControlValueAccessor,\n NG_VALUE_ACCESSOR,\n NgForm,\n FormsModule\n} from '@angular/forms';\n\nimport { CommonModule } from '@angular/common';\nimport { Md2AutocompleteModule } from '../autocomplete/index';\nimport {\n ENTER,\n SPACE,\n BACKSPACE,\n DELETE,\n COMMA,\n LEFT_ARROW,\n RIGHT_ARROW\n} from '../core/keyboard/keycodes';\n\nexport class Chip {\n public text: string;\n public value: string;\n\n constructor(source: any, textKey: string, valueKey: string) {\n if (typeof source === 'string') {\n this.text = this.value = source;\n }\n if (typeof source === 'object') {\n this.text = source[textKey];\n this.value = valueKey ? source[valueKey] : source;\n }\n }\n}\n\nlet nextId = 0;\nexport const MD2_CHIPS_CONTROL_VALUE_ACCESSOR: any = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => Md2Chips),\n multi: true\n};\n\n/** Change event object emitted by Md2Chips. */\nexport class Md2ChipsChange {\n source: Md2Chips;\n value: any;\n}\n\n@Component({\n selector: 'md2-chips',\n templateUrl: 'chips.html',\n styleUrls: ['chips.css'],\n providers: [MD2_CHIPS_CONTROL_VALUE_ACCESSOR],\n\n host: {\n 'role': 'chips',\n '[id]': 'id',\n '[tabindex]': 'disabled ? -1 : tabindex',\n '[class.chip-input-focus]': 'inputFocused || selectedChip >= 0',\n },\n encapsulation: ViewEncapsulation.None\n})\n\nexport class Md2Chips implements ControlValueAccessor, AfterContentInit {\n @Input() tabindex: number = 0;\n @Input() addOnComma: boolean = true;\n @Input() addOnEnter: boolean = true;\n @Input() addOnPaste: boolean = true;\n @Input() addOnSpace: boolean = false;\n @Input() allowedPattern: RegExp = /.+/;\n @Input() ngModel: string[];\n @Input() pasteSplitPattern: string = ',';\n @Input() placeholder: string = '';\n @Input() autocompleteDataList: string[];\n @Input() isAutoComplete: boolean = false;\n @Input() isRemovable: boolean = true;\n @Input() disabled: boolean = false;\n @Input() minChips: number = 0;\n @Input() maxChips: number = 10000;\n @Input() type: string = 'text';\n @Input() id: string = 'md2-chips-' + (++nextId);\n @Input('autocomplete-item-text') autocompleteItemText: string = 'text';\n @Input('autocomplete-item-value') autocompleteItemValue: string = 'value';\n @Input('item-text') textKey: string = 'text';\n @Input('item-value') valueKey: string = null;\n\n @Output() change: EventEmitter = new EventEmitter();\n @ViewChild('chipInputForm') chipInputForm: NgForm;\n\n _onChange: (value: any) => void = () => { };\n _onTouched = () => { };\n\n chipItemList: Array = [];\n inputValue: string = '';\n selectedChip: number = -1;\n inputFocused: boolean = false;\n autoCompleteFocued: boolean = false;\n\n private _value: any = '';\n private splitRegExp: RegExp;\n private templateHtmlString: any;\n private item: any;\n private isEmptyAutoComplete: boolean = true;\n\n constructor(private elementRef: ElementRef) { }\n\n get element() {\n const elements: any = { root: this.elementRef.nativeElement, mainDiv: null, template: null };\n elements.mainDiv = elements.root.querySelector('.md2-chips-container');\n elements.template = elements.mainDiv.querySelector('.md2-template');\n return elements;\n }\n @Input()\n get value(): any { return this._value; }\n set value(value: any) { this.setValue(value); }\n\n /**\n * set value\n * @param value\n */\n set setValue(value: any) {\n if (value !== this._value) {\n this._value = value;\n this.chipItemList = [];\n if (value) {\n if (value && value.length && Array.isArray(value)) {\n for (let i = 0; i < value.length; i++) {\n this.chipItemList.push(new Chip(value[i], this.textKey, this.valueKey));\n }\n }\n }\n }\n this._emitChangeEvent();\n }\n\n getFocusAutocomplete() {\n this._onTouched();\n }\n\n changeAutocomplete(value: any) {\n if (value) {\n this.addNewChip(value.value);\n this.item = null;\n }\n }\n\n ngAfterContentInit() {\n let elements = this.element;\n this.splitRegExp = new RegExp(this.pasteSplitPattern);\n if (elements.template) {\n this.templateHtmlString = elements.template.innerHTML;\n }\n }\n\n // check autocomplete input is empty or not\n valueupdate(evt: Event) {\n this.isEmptyAutoComplete = evt ? false : true;\n }\n\n /**\n * input key listener\n * @param event\n */\n inputChanged(event: KeyboardEvent): void {\n let key = event.keyCode;\n switch (key) {\n // back space\n case BACKSPACE:\n this.backspaceEvent();\n break;\n // delete\n case DELETE:\n this.backspaceEvent();\n break;\n // left arrow\n case LEFT_ARROW:\n if (this.isAutoComplete && this.isEmptyAutoComplete) {\n this.leftArrowKeyEvents();\n } else if (!this.isAutoComplete && !this.inputValue) {\n this.leftArrowKeyEvents();\n }\n break;\n // right arrow\n case RIGHT_ARROW:\n if (this.isAutoComplete && this.isEmptyAutoComplete) {\n this.rightArrowKeyEvents();\n } else if (!this.isAutoComplete && !this.inputValue) {\n this.rightArrowKeyEvents();\n }\n break;\n // enter\n case ENTER:\n if (this.addOnEnter) {\n this.addNewChip(this.inputValue);\n event.preventDefault();\n }\n break;\n // comma\n case COMMA:\n if (this.addOnComma) {\n this.addNewChip(this.inputValue);\n event.preventDefault();\n }\n break;\n // space\n case SPACE:\n if (this.addOnSpace) {\n this.addNewChip(this.inputValue);\n event.preventDefault();\n }\n break;\n\n default:\n break;\n }\n }\n\n @HostListener('focus')\n _handleFocus() {\n if (this.disabled) { return; }\n if (!this.isAutoComplete) {\n this.elementRef.nativeElement.querySelector('input.chip-input').focus();\n } else {\n this.autoCompleteFocued = true;\n this._onTouched();\n }\n this._resetSelected();\n }\n\n inputBlurred(): void {\n this.inputFocused = false;\n if (this.inputValue) {\n this.addNewChip(this.inputValue);\n }\n this._onTouched();\n }\n\n inputFocus(): void {\n if (this.disabled) { return; }\n this.inputFocused = true;\n }\n\n inputPaste(event: any): void {\n let clipboardData = event.clipboardData ||\n (event.originalEvent && event.originalEvent.clipboardData);\n let pastedString = clipboardData.getData('text/plain').trim();\n this.addNewChip(pastedString);\n setTimeout(() => this._resetInput());\n }\n\n leftArrowKeyEvents() {\n event.preventDefault();\n if (this.selectedChip) {\n if (this.selectedChip < 0) {\n this.selectedChip = this.chipItemList.length - 1;\n } else {\n this.selectedChip = this.selectedChip - 1;\n }\n }\n }\n rightArrowKeyEvents() {\n event.preventDefault();\n if (this.selectedChip != -1) {\n if (this.selectedChip >= this.chipItemList.length) {\n this.selectedChip = 0;\n } else {\n this.selectedChip = this.selectedChip + 1;\n }\n }\n }\n\n private _isValid(chipString: any): boolean {\n let typeString = typeof chipString;\n let isExist: any;\n if (typeString === 'string') {\n chipString = chipString.trim();\n isExist = this.chipItemList.filter((chip) => chip.text === chipString);\n } else {\n isExist = this.chipItemList.filter((chip) => chip.text === chipString.text);\n }\n if (this.chipItemList.indexOf(chipString) === -1 && (isExist.length ? false : true)) {\n return this.allowedPattern.test(chipString);\n }\n }\n /**\n * add new chip\n * @param chips\n */\n private addNewChip(chips: any): void {\n let validInput = this._isValid(chips);\n if (validInput) {\n if (this.maxChips && this.maxChips < this.chipItemList.length - 1) {\n return;\n } else {\n this.chipItemList.push(new Chip(chips, this.autocompleteItemText, this.autocompleteItemValue));\n this.item = null;\n }\n }\n this._resetSelected();\n this._resetInput();\n this.updateValue();\n }\n\n /**\n * remove selected chip\n * @param chipIndexToRemove index of selected chip\n */\n private removeSelectedChip(chipIndexToRemove: number): void {\n this.chipItemList.splice(chipIndexToRemove, 1);\n this._resetSelected();\n this.updateValue();\n }\n\n private backspaceEvent(): void {\n if (!this.inputValue.length && this.chipItemList.length &&\n this.isRemovable && this.isEmptyAutoComplete) {\n if (this.selectedChip != -1) {\n this.removeSelectedChip(this.selectedChip);\n this.selectedChip = this.chipItemList.length - 1;\n } else {\n this.selectedChip = this.chipItemList.length - 1;\n }\n }\n }\n\n private _resetSelected(): void {\n this.selectedChip = -1;\n }\n\n private _resetInput(): void {\n if (this.isAutoComplete) {\n this.chipInputForm.controls['autocomplete'].setValue('');\n } else {\n this.chipInputForm.controls['chipInput'].setValue('');\n }\n }\n /**\n * update value\n */\n private updateValue() {\n this._value = new Array();\n this._value = this.chipItemList.map((chip: any) => {\n if (this.valueKey) {\n let c: any = {};\n c[this.textKey] = chip.text;\n c[this.valueKey] = chip.value;\n return c;\n } else {\n return chip.value;\n }\n });\n this._emitChangeEvent();\n }\n\n /** Emits an event when the user selects a color. */\n _emitChangeEvent(): void {\n let event = new Md2ChipsChange();\n event.source = this;\n event.value = this._value;\n this._onChange(event.value);\n this.change.emit(event);\n }\n\n writeValue(value: any): void {\n if (value !== this._value) {\n this._value = value;\n this.chipItemList = [];\n if (value) {\n if (value && value.length && Array.isArray(value)) {\n for (let i = 0; i < value.length; i++) {\n this.chipItemList.push(new Chip(value[i], this.textKey, this.valueKey));\n }\n }\n }\n }\n }\n registerOnChange(fn: (value: any) => void): void { this._onChange = fn; }\n registerOnTouched(fn: () => {}): void { this._onTouched = fn; }\n}\n\nexport const MD2_CHIPS_DIRECTIVES: any[] = [Md2Chips];\n\n@NgModule({\n imports: [CommonModule, FormsModule, Md2AutocompleteModule],\n declarations: MD2_CHIPS_DIRECTIVES,\n exports: MD2_CHIPS_DIRECTIVES\n})\nexport class Md2ChipsModule { }\n"]}
\ No newline at end of file
diff --git a/chips/chips.metadata.json b/chips/chips.metadata.json
index 4ca4702ac..f4abd8bb1 100644
--- a/chips/chips.metadata.json
+++ b/chips/chips.metadata.json
@@ -1 +1 @@
-[{"__symbolic":"module","version":3,"metadata":{"Chip":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"any"},{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"string"}]}]}},"MD2_CHIPS_CONTROL_VALUE_ACCESSOR":{"provide":{"__symbolic":"reference","module":"@angular/forms","name":"NG_VALUE_ACCESSOR"},"useExisting":{"__symbolic":"reference","name":"Md2Chips"},"multi":true},"Md2ChipsChange":{"__symbolic":"class"},"Md2Chips":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component"},"arguments":[{"selector":"md2-chips","templateUrl":"chips.html","styleUrls":["chips.css"],"providers":[{"__symbolic":"reference","name":"MD2_CHIPS_CONTROL_VALUE_ACCESSOR"}],"host":{"role":"chips","[id]":"id","[tabindex]":"disabled ? -1 : tabindex","[class.chip-input-focus]":"inputFocused || selectedChip >= 0","$quoted$":["role","[id]","[tabindex]","[class.chip-input-focus]"]},"encapsulation":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewEncapsulation"},"member":"None"}}]}],"members":{"tabindex":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"addOnComma":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"addOnEnter":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"addOnPaste":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"addOnSpace":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"allowedPattern":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"ngModel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"pasteSplitPattern":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"placeholder":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"autocompleteDataList":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"isAutoComplete":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"isRemovable":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"disabled":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"minChips":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"maxChips":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"type":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"id":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"autocompleteItemText":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"},"arguments":["autocomplete-item-text"]}]}],"autocompleteItemValue":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"},"arguments":["autocomplete-item-value"]}]}],"textKey":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"},"arguments":["item-text"]}]}],"valueKey":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"},"arguments":["item-value"]}]}],"change":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output"}}]}],"chipInputForm":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild"},"arguments":["chipInputForm"]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ElementRef"}]}],"value":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"getFocusAutocomplete":[{"__symbolic":"method"}],"changeAutocomplete":[{"__symbolic":"method"}],"ngAfterContentInit":[{"__symbolic":"method"}],"valueupdate":[{"__symbolic":"method"}],"inputChanged":[{"__symbolic":"method"}],"_handleFocus":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener"},"arguments":["focus"]}]}],"inputBlurred":[{"__symbolic":"method"}],"inputFocus":[{"__symbolic":"method"}],"inputPaste":[{"__symbolic":"method"}],"leftArrowKeyEvents":[{"__symbolic":"method"}],"rightArrowKeyEvents":[{"__symbolic":"method"}],"addRegExpString":[{"__symbolic":"method"}],"_isValid":[{"__symbolic":"method"}],"addNewChip":[{"__symbolic":"method"}],"removeSelectedChip":[{"__symbolic":"method"}],"backspaceEvent":[{"__symbolic":"method"}],"_resetSelected":[{"__symbolic":"method"}],"_resetInput":[{"__symbolic":"method"}],"updateValue":[{"__symbolic":"method"}],"_emitChangeEvent":[{"__symbolic":"method"}],"writeValue":[{"__symbolic":"method"}],"registerOnChange":[{"__symbolic":"method"}],"registerOnTouched":[{"__symbolic":"method"}]}},"MD2_CHIPS_DIRECTIVES":[{"__symbolic":"reference","name":"Md2Chips"}],"Md2ChipsModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule"},"arguments":[{"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule"},{"__symbolic":"reference","module":"@angular/forms","name":"FormsModule"},{"__symbolic":"reference","module":"../autocomplete/index","name":"Md2AutocompleteModule"}],"declarations":{"__symbolic":"reference","name":"MD2_CHIPS_DIRECTIVES"},"exports":{"__symbolic":"reference","name":"MD2_CHIPS_DIRECTIVES"}}]}]}}},{"__symbolic":"module","version":1,"metadata":{"Chip":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"any"},{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"string"}]}]}},"MD2_CHIPS_CONTROL_VALUE_ACCESSOR":{"provide":{"__symbolic":"reference","module":"@angular/forms","name":"NG_VALUE_ACCESSOR"},"useExisting":{"__symbolic":"reference","name":"Md2Chips"},"multi":true},"Md2ChipsChange":{"__symbolic":"class"},"Md2Chips":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component"},"arguments":[{"selector":"md2-chips","templateUrl":"chips.html","styleUrls":["chips.css"],"providers":[{"__symbolic":"reference","name":"MD2_CHIPS_CONTROL_VALUE_ACCESSOR"}],"host":{"role":"chips","[id]":"id","[tabindex]":"disabled ? -1 : tabindex","[class.chip-input-focus]":"inputFocused || selectedChip >= 0"},"encapsulation":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewEncapsulation"},"member":"None"}}]}],"members":{"tabindex":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"addOnComma":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"addOnEnter":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"addOnPaste":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"addOnSpace":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"allowedPattern":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"ngModel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"pasteSplitPattern":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"placeholder":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"autocompleteDataList":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"isAutoComplete":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"isRemovable":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"disabled":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"minChips":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"maxChips":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"type":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"id":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"autocompleteItemText":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"},"arguments":["autocomplete-item-text"]}]}],"autocompleteItemValue":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"},"arguments":["autocomplete-item-value"]}]}],"textKey":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"},"arguments":["item-text"]}]}],"valueKey":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"},"arguments":["item-value"]}]}],"change":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output"}}]}],"chipInputForm":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild"},"arguments":["chipInputForm"]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ElementRef"}]}],"value":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"getFocusAutocomplete":[{"__symbolic":"method"}],"changeAutocomplete":[{"__symbolic":"method"}],"ngAfterContentInit":[{"__symbolic":"method"}],"valueupdate":[{"__symbolic":"method"}],"inputChanged":[{"__symbolic":"method"}],"_handleFocus":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener"},"arguments":["focus"]}]}],"inputBlurred":[{"__symbolic":"method"}],"inputFocus":[{"__symbolic":"method"}],"inputPaste":[{"__symbolic":"method"}],"leftArrowKeyEvents":[{"__symbolic":"method"}],"rightArrowKeyEvents":[{"__symbolic":"method"}],"addRegExpString":[{"__symbolic":"method"}],"_isValid":[{"__symbolic":"method"}],"addNewChip":[{"__symbolic":"method"}],"removeSelectedChip":[{"__symbolic":"method"}],"backspaceEvent":[{"__symbolic":"method"}],"_resetSelected":[{"__symbolic":"method"}],"_resetInput":[{"__symbolic":"method"}],"updateValue":[{"__symbolic":"method"}],"_emitChangeEvent":[{"__symbolic":"method"}],"writeValue":[{"__symbolic":"method"}],"registerOnChange":[{"__symbolic":"method"}],"registerOnTouched":[{"__symbolic":"method"}]}},"MD2_CHIPS_DIRECTIVES":[{"__symbolic":"reference","name":"Md2Chips"}],"Md2ChipsModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule"},"arguments":[{"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule"},{"__symbolic":"reference","module":"@angular/forms","name":"FormsModule"},{"__symbolic":"reference","module":"../autocomplete/index","name":"Md2AutocompleteModule"}],"declarations":{"__symbolic":"reference","name":"MD2_CHIPS_DIRECTIVES"},"exports":{"__symbolic":"reference","name":"MD2_CHIPS_DIRECTIVES"}}]}]}}}]
\ No newline at end of file
+[{"__symbolic":"module","version":3,"metadata":{"Chip":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"any"},{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"string"}]}]}},"MD2_CHIPS_CONTROL_VALUE_ACCESSOR":{"provide":{"__symbolic":"reference","module":"@angular/forms","name":"NG_VALUE_ACCESSOR"},"useExisting":{"__symbolic":"reference","name":"Md2Chips"},"multi":true},"Md2ChipsChange":{"__symbolic":"class"},"Md2Chips":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component"},"arguments":[{"selector":"md2-chips","templateUrl":"chips.html","styleUrls":["chips.css"],"providers":[{"__symbolic":"reference","name":"MD2_CHIPS_CONTROL_VALUE_ACCESSOR"}],"host":{"role":"chips","[id]":"id","[tabindex]":"disabled ? -1 : tabindex","[class.chip-input-focus]":"inputFocused || selectedChip >= 0","$quoted$":["role","[id]","[tabindex]","[class.chip-input-focus]"]},"encapsulation":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewEncapsulation"},"member":"None"}}]}],"members":{"tabindex":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"addOnComma":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"addOnEnter":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"addOnPaste":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"addOnSpace":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"allowedPattern":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"ngModel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"pasteSplitPattern":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"placeholder":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"autocompleteDataList":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"isAutoComplete":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"isRemovable":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"disabled":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"minChips":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"maxChips":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"type":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"id":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"autocompleteItemText":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"},"arguments":["autocomplete-item-text"]}]}],"autocompleteItemValue":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"},"arguments":["autocomplete-item-value"]}]}],"textKey":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"},"arguments":["item-text"]}]}],"valueKey":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"},"arguments":["item-value"]}]}],"change":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output"}}]}],"chipInputForm":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild"},"arguments":["chipInputForm"]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ElementRef"}]}],"value":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"getFocusAutocomplete":[{"__symbolic":"method"}],"changeAutocomplete":[{"__symbolic":"method"}],"ngAfterContentInit":[{"__symbolic":"method"}],"valueupdate":[{"__symbolic":"method"}],"inputChanged":[{"__symbolic":"method"}],"_handleFocus":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener"},"arguments":["focus"]}]}],"inputBlurred":[{"__symbolic":"method"}],"inputFocus":[{"__symbolic":"method"}],"inputPaste":[{"__symbolic":"method"}],"leftArrowKeyEvents":[{"__symbolic":"method"}],"rightArrowKeyEvents":[{"__symbolic":"method"}],"_isValid":[{"__symbolic":"method"}],"addNewChip":[{"__symbolic":"method"}],"removeSelectedChip":[{"__symbolic":"method"}],"backspaceEvent":[{"__symbolic":"method"}],"_resetSelected":[{"__symbolic":"method"}],"_resetInput":[{"__symbolic":"method"}],"updateValue":[{"__symbolic":"method"}],"_emitChangeEvent":[{"__symbolic":"method"}],"writeValue":[{"__symbolic":"method"}],"registerOnChange":[{"__symbolic":"method"}],"registerOnTouched":[{"__symbolic":"method"}]}},"MD2_CHIPS_DIRECTIVES":[{"__symbolic":"reference","name":"Md2Chips"}],"Md2ChipsModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule"},"arguments":[{"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule"},{"__symbolic":"reference","module":"@angular/forms","name":"FormsModule"},{"__symbolic":"reference","module":"../autocomplete/index","name":"Md2AutocompleteModule"}],"declarations":{"__symbolic":"reference","name":"MD2_CHIPS_DIRECTIVES"},"exports":{"__symbolic":"reference","name":"MD2_CHIPS_DIRECTIVES"}}]}]}}},{"__symbolic":"module","version":1,"metadata":{"Chip":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"any"},{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"string"}]}]}},"MD2_CHIPS_CONTROL_VALUE_ACCESSOR":{"provide":{"__symbolic":"reference","module":"@angular/forms","name":"NG_VALUE_ACCESSOR"},"useExisting":{"__symbolic":"reference","name":"Md2Chips"},"multi":true},"Md2ChipsChange":{"__symbolic":"class"},"Md2Chips":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component"},"arguments":[{"selector":"md2-chips","templateUrl":"chips.html","styleUrls":["chips.css"],"providers":[{"__symbolic":"reference","name":"MD2_CHIPS_CONTROL_VALUE_ACCESSOR"}],"host":{"role":"chips","[id]":"id","[tabindex]":"disabled ? -1 : tabindex","[class.chip-input-focus]":"inputFocused || selectedChip >= 0"},"encapsulation":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewEncapsulation"},"member":"None"}}]}],"members":{"tabindex":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"addOnComma":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"addOnEnter":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"addOnPaste":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"addOnSpace":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"allowedPattern":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"ngModel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"pasteSplitPattern":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"placeholder":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"autocompleteDataList":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"isAutoComplete":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"isRemovable":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"disabled":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"minChips":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"maxChips":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"type":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"id":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"autocompleteItemText":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"},"arguments":["autocomplete-item-text"]}]}],"autocompleteItemValue":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"},"arguments":["autocomplete-item-value"]}]}],"textKey":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"},"arguments":["item-text"]}]}],"valueKey":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"},"arguments":["item-value"]}]}],"change":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output"}}]}],"chipInputForm":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild"},"arguments":["chipInputForm"]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ElementRef"}]}],"value":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"getFocusAutocomplete":[{"__symbolic":"method"}],"changeAutocomplete":[{"__symbolic":"method"}],"ngAfterContentInit":[{"__symbolic":"method"}],"valueupdate":[{"__symbolic":"method"}],"inputChanged":[{"__symbolic":"method"}],"_handleFocus":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener"},"arguments":["focus"]}]}],"inputBlurred":[{"__symbolic":"method"}],"inputFocus":[{"__symbolic":"method"}],"inputPaste":[{"__symbolic":"method"}],"leftArrowKeyEvents":[{"__symbolic":"method"}],"rightArrowKeyEvents":[{"__symbolic":"method"}],"_isValid":[{"__symbolic":"method"}],"addNewChip":[{"__symbolic":"method"}],"removeSelectedChip":[{"__symbolic":"method"}],"backspaceEvent":[{"__symbolic":"method"}],"_resetSelected":[{"__symbolic":"method"}],"_resetInput":[{"__symbolic":"method"}],"updateValue":[{"__symbolic":"method"}],"_emitChangeEvent":[{"__symbolic":"method"}],"writeValue":[{"__symbolic":"method"}],"registerOnChange":[{"__symbolic":"method"}],"registerOnTouched":[{"__symbolic":"method"}]}},"MD2_CHIPS_DIRECTIVES":[{"__symbolic":"reference","name":"Md2Chips"}],"Md2ChipsModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule"},"arguments":[{"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule"},{"__symbolic":"reference","module":"@angular/forms","name":"FormsModule"},{"__symbolic":"reference","module":"../autocomplete/index","name":"Md2AutocompleteModule"}],"declarations":{"__symbolic":"reference","name":"MD2_CHIPS_DIRECTIVES"},"exports":{"__symbolic":"reference","name":"MD2_CHIPS_DIRECTIVES"}}]}]}}}]
\ No newline at end of file
diff --git a/datepicker/date-locale.js b/datepicker/date-locale.js
index ddbc82bbe..92bdd0707 100644
--- a/datepicker/date-locale.js
+++ b/datepicker/date-locale.js
@@ -5,7 +5,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
import { Injectable } from '@angular/core';
-var SUPPORTS_INTL_API = typeof Intl != 'undefined';
+var SUPPORTS_INTL_API = false; // typeof Intl != 'undefined';
/** The default month names to use if Intl API is not available. */
var DEFAULT_MONTH_NAMES = {
'long': [
diff --git a/datepicker/date-locale.js.map b/datepicker/date-locale.js.map
index c4b99e672..bc0b9dbdc 100644
--- a/datepicker/date-locale.js.map
+++ b/datepicker/date-locale.js.map
@@ -1 +1 @@
-{"version":3,"file":"date-locale.js","sourceRoot":"","sources":["../../../src/lib/datepicker/date-locale.ts"],"names":[],"mappings":"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","sourcesContent":["import { Injectable } from '@angular/core';\n\nconst SUPPORTS_INTL_API = typeof Intl != 'undefined';\n\n\n/** The default month names to use if Intl API is not available. */\nconst DEFAULT_MONTH_NAMES = {\n 'long': [\n 'January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September',\n 'October', 'November', 'December'\n ],\n 'short': ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n 'narrow': ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D']\n};\n\n\n/** The default date names to use if Intl API is not available. */\nconst DEFAULT_DATE_NAMES = range(31, i => String(i + 1));\n\n/** The default hour names to use if Intl API is not available. */\nconst DEFAULT_HOUR_NAMES = range(24, i => String(i));\n\n/** The default minute names to use if Intl API is not available. */\nconst DEFAULT_MINUTE_NAMES = range(60, i => String(i));\n\n\n/** The default day of the week names to use if Intl API is not available. */\nconst DEFAULT_DAY_OF_WEEK_NAMES = {\n 'long': ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],\n 'short': ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n 'narrow': ['S', 'M', 'T', 'W', 'T', 'F', 'S']\n};\n\n\n/** Creates an array and fills it with values. */\nfunction range(length: number, valueFunction: (index: number) => T): T[] {\n const valuesArray = Array(length);\n for (let i = 0; i < length; i++) {\n valuesArray[i] = valueFunction(i);\n }\n return valuesArray;\n}\n\nexport interface Months {\n long: Array;\n short: Array;\n narrow: Array;\n}\n\nexport interface DaysOfWeek {\n long: Array;\n short: Array;\n narrow: Array;\n}\n\n@Injectable()\nexport class DateLocale {\n\n locale: any;\n months: Months;\n daysOfWeek: DaysOfWeek;\n dates: Array;\n hours: Array;\n minutes: Array;\n firstDayOfWeek: number = 0;\n\n getDayOfWeek(date: Date): number {\n return date.getDay();\n }\n\n getMonthNames(style: 'long' | 'short' | 'narrow'): string[] {\n if (this.months) { return this.months[style]; }\n if (SUPPORTS_INTL_API) {\n let dtf = new Intl.DateTimeFormat(this.locale, { month: style });\n return range(12, i => this._stripDirectionalityCharacters(dtf.format(new Date(2017, i, 1))));\n }\n return DEFAULT_MONTH_NAMES[style];\n }\n\n getDateNames(): string[] {\n if (this.dates) { return this.dates; }\n if (SUPPORTS_INTL_API) {\n let dtf = new Intl.DateTimeFormat(this.locale, { day: 'numeric' });\n return range(31, i => this._stripDirectionalityCharacters(\n dtf.format(new Date(2017, 0, i + 1))));\n }\n return DEFAULT_DATE_NAMES;\n }\n\n getHourNames(): string[] {\n if (this.hours) { return this.hours; }\n if (SUPPORTS_INTL_API) {\n let dtf = new Intl.DateTimeFormat(this.locale, { hour: 'numeric' });\n return range(24, i => this._stripDirectionalityCharacters(\n dtf.format(new Date(2017, 0, 0, i))));\n }\n return DEFAULT_HOUR_NAMES;\n }\n\n getMinuteNames(): string[] {\n if (this.minutes) { return this.minutes; }\n if (SUPPORTS_INTL_API) {\n let dtf = new Intl.DateTimeFormat(this.locale, { minute: 'numeric' });\n return range(60, i => this._stripDirectionalityCharacters(\n dtf.format(new Date(2017, 0, 0, 0, i))));\n }\n return DEFAULT_MINUTE_NAMES;\n }\n\n getDayOfWeekNames(style: 'long' | 'short' | 'narrow'): string[] {\n if (this.daysOfWeek) { return this.daysOfWeek[style]; }\n if (SUPPORTS_INTL_API) {\n let dtf = new Intl.DateTimeFormat(this.locale, { weekday: style });\n return range(7, i => this._stripDirectionalityCharacters(\n dtf.format(new Date(2017, 0, i + 1))));\n }\n return DEFAULT_DAY_OF_WEEK_NAMES[style];\n }\n\n getYearName(date: Date): string {\n if (SUPPORTS_INTL_API) {\n let dtf = new Intl.DateTimeFormat(this.locale, { year: 'numeric' });\n return this._stripDirectionalityCharacters(dtf.format(date));\n }\n return String(date.getFullYear());\n }\n\n getFirstDayOfWeek(): number {\n // We can't tell using native JS Date what the first day of the week is, we default to Sunday.\n return this.firstDayOfWeek;\n }\n\n format(date: Date, displayFormat: Object): string {\n if (SUPPORTS_INTL_API) {\n let dtf = new Intl.DateTimeFormat(this.locale, displayFormat);\n return this._stripDirectionalityCharacters(dtf.format(date));\n }\n return this._stripDirectionalityCharacters(date.toDateString());\n }\n\n getDateLabel(d: Date): string {\n let day: string = this.getDayOfWeekNames('short')[d.getDay()];\n let date: string = this.getDateNames()[d.getDate() - 1];\n let month: string = this.getMonthNames('short')[d.getMonth()];\n return `${day}, ${month} ${date}`;\n }\n\n getHoursLabel(d: Date): string { return `${this.getHourNames()[d.getHours()]}`; }\n\n getMinutesLabel(d: Date): string { return `${this.getMinuteNames()[d.getMinutes()]}`; }\n\n getMonthLabel(d: Date): string {\n return `${this.getMonthNames('long')[d.getMonth()]} ${this.getYearName(d)}`;\n }\n\n /**\n * Strip out unicode LTR and RTL characters. Edge and IE insert these into formatted dates while\n * other browsers do not. We remove them to make output consistent and because they interfere with\n * date parsing.\n * @param s The string to strip direction characters from.\n * @returns The stripped string.\n */\n private _stripDirectionalityCharacters(s: string) {\n return s.replace(/[\\u200e\\u200f]/g, '');\n }\n}\n"]}
\ No newline at end of file
+{"version":3,"file":"date-locale.js","sourceRoot":"","sources":["../../../src/lib/datepicker/date-locale.ts"],"names":[],"mappings":"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","sourcesContent":["import { Injectable } from '@angular/core';\n\nconst SUPPORTS_INTL_API = false; // typeof Intl != 'undefined';\n\n\n/** The default month names to use if Intl API is not available. */\nconst DEFAULT_MONTH_NAMES = {\n 'long': [\n 'January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September',\n 'October', 'November', 'December'\n ],\n 'short': ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n 'narrow': ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D']\n};\n\n\n/** The default date names to use if Intl API is not available. */\nconst DEFAULT_DATE_NAMES = range(31, i => String(i + 1));\n\n/** The default hour names to use if Intl API is not available. */\nconst DEFAULT_HOUR_NAMES = range(24, i => String(i));\n\n/** The default minute names to use if Intl API is not available. */\nconst DEFAULT_MINUTE_NAMES = range(60, i => String(i));\n\n\n/** The default day of the week names to use if Intl API is not available. */\nconst DEFAULT_DAY_OF_WEEK_NAMES = {\n 'long': ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],\n 'short': ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n 'narrow': ['S', 'M', 'T', 'W', 'T', 'F', 'S']\n};\n\n\n/** Creates an array and fills it with values. */\nfunction range(length: number, valueFunction: (index: number) => T): T[] {\n const valuesArray = Array(length);\n for (let i = 0; i < length; i++) {\n valuesArray[i] = valueFunction(i);\n }\n return valuesArray;\n}\n\nexport interface Months {\n long: Array;\n short: Array;\n narrow: Array;\n}\n\nexport interface DaysOfWeek {\n long: Array;\n short: Array;\n narrow: Array;\n}\n\n@Injectable()\nexport class DateLocale {\n\n locale: any;\n months: Months;\n daysOfWeek: DaysOfWeek;\n dates: Array;\n hours: Array;\n minutes: Array;\n firstDayOfWeek: number = 0;\n\n getDayOfWeek(date: Date): number {\n return date.getDay();\n }\n\n getMonthNames(style: 'long' | 'short' | 'narrow'): string[] {\n if (this.months) { return this.months[style]; }\n if (SUPPORTS_INTL_API) {\n let dtf = new Intl.DateTimeFormat(this.locale, { month: style });\n return range(12, i => this._stripDirectionalityCharacters(dtf.format(new Date(2017, i, 1))));\n }\n return DEFAULT_MONTH_NAMES[style];\n }\n\n getDateNames(): string[] {\n if (this.dates) { return this.dates; }\n if (SUPPORTS_INTL_API) {\n let dtf = new Intl.DateTimeFormat(this.locale, { day: 'numeric' });\n return range(31, i => this._stripDirectionalityCharacters(\n dtf.format(new Date(2017, 0, i + 1))));\n }\n return DEFAULT_DATE_NAMES;\n }\n\n getHourNames(): string[] {\n if (this.hours) { return this.hours; }\n if (SUPPORTS_INTL_API) {\n let dtf = new Intl.DateTimeFormat(this.locale, { hour: 'numeric' });\n return range(24, i => this._stripDirectionalityCharacters(\n dtf.format(new Date(2017, 0, 0, i))));\n }\n return DEFAULT_HOUR_NAMES;\n }\n\n getMinuteNames(): string[] {\n if (this.minutes) { return this.minutes; }\n if (SUPPORTS_INTL_API) {\n let dtf = new Intl.DateTimeFormat(this.locale, { minute: 'numeric' });\n return range(60, i => this._stripDirectionalityCharacters(\n dtf.format(new Date(2017, 0, 0, 0, i))));\n }\n return DEFAULT_MINUTE_NAMES;\n }\n\n getDayOfWeekNames(style: 'long' | 'short' | 'narrow'): string[] {\n if (this.daysOfWeek) { return this.daysOfWeek[style]; }\n if (SUPPORTS_INTL_API) {\n let dtf = new Intl.DateTimeFormat(this.locale, { weekday: style });\n return range(7, i => this._stripDirectionalityCharacters(\n dtf.format(new Date(2017, 0, i + 1))));\n }\n return DEFAULT_DAY_OF_WEEK_NAMES[style];\n }\n\n getYearName(date: Date): string {\n if (SUPPORTS_INTL_API) {\n let dtf = new Intl.DateTimeFormat(this.locale, { year: 'numeric' });\n return this._stripDirectionalityCharacters(dtf.format(date));\n }\n return String(date.getFullYear());\n }\n\n getFirstDayOfWeek(): number {\n // We can't tell using native JS Date what the first day of the week is, we default to Sunday.\n return this.firstDayOfWeek;\n }\n\n format(date: Date, displayFormat: Object): string {\n if (SUPPORTS_INTL_API) {\n let dtf = new Intl.DateTimeFormat(this.locale, displayFormat);\n return this._stripDirectionalityCharacters(dtf.format(date));\n }\n return this._stripDirectionalityCharacters(date.toDateString());\n }\n\n getDateLabel(d: Date): string {\n let day: string = this.getDayOfWeekNames('short')[d.getDay()];\n let date: string = this.getDateNames()[d.getDate() - 1];\n let month: string = this.getMonthNames('short')[d.getMonth()];\n return `${day}, ${month} ${date}`;\n }\n\n getHoursLabel(d: Date): string { return `${this.getHourNames()[d.getHours()]}`; }\n\n getMinutesLabel(d: Date): string { return `${this.getMinuteNames()[d.getMinutes()]}`; }\n\n getMonthLabel(d: Date): string {\n return `${this.getMonthNames('long')[d.getMonth()]} ${this.getYearName(d)}`;\n }\n\n /**\n * Strip out unicode LTR and RTL characters. Edge and IE insert these into formatted dates while\n * other browsers do not. We remove them to make output consistent and because they interfere with\n * date parsing.\n * @param s The string to strip direction characters from.\n * @returns The stripped string.\n */\n private _stripDirectionalityCharacters(s: string) {\n return s.replace(/[\\u200e\\u200f]/g, '');\n }\n}\n"]}
\ No newline at end of file
diff --git a/datepicker/datepicker.d.ts b/datepicker/datepicker.d.ts
index 3a0c999a7..621c4f4de 100644
--- a/datepicker/datepicker.d.ts
+++ b/datepicker/datepicker.d.ts
@@ -55,6 +55,7 @@ export declare class Md2Datepicker implements OnDestroy, ControlValueAccessor {
mode: 'auto' | 'portrait' | 'landscape';
placeholder: string;
timeInterval: number;
+ id: string;
type: 'date' | 'time' | 'month' | 'datetime';
private _type;
format: string;
@@ -87,8 +88,6 @@ export declare class Md2Datepicker implements OnDestroy, ControlValueAccessor {
selectedChanged: EventEmitter;
/** Whether the calendar is open. */
opened: boolean;
- /** The id for the datepicker calendar. */
- id: string;
/** The currently selected date. */
_selected: Date;
/** A reference to the overlay when the calendar is opened as a popup. */
diff --git a/datepicker/datepicker.js b/datepicker/datepicker.js
index 5ad48e10d..3c468bc1d 100644
--- a/datepicker/datepicker.js
+++ b/datepicker/datepicker.js
@@ -127,8 +127,6 @@ var Md2Datepicker = (function () {
this.selectedChanged = new EventEmitter();
/** Whether the calendar is open. */
this.opened = false;
- /** The id for the datepicker calendar. */
- this.id = "md2-datepicker-" + datepickerUid++;
/** The currently selected date. */
this._selected = null;
/** The form control validator for the min date. */
@@ -150,6 +148,7 @@ var Md2Datepicker = (function () {
};
/** The combined form control validator for this input. */
this._validator = Validators.compose([this._minValidator, this._maxValidator, this._filterValidator]);
+ this.id = (this.id) ? this.id : "md2-datepicker-" + datepickerUid++;
}
Object.defineProperty(Md2Datepicker.prototype, "type", {
get: function () { return this._type; },
@@ -542,6 +541,10 @@ __decorate([
Input(),
__metadata("design:type", Number)
], Md2Datepicker.prototype, "timeInterval", void 0);
+__decorate([
+ Input(),
+ __metadata("design:type", String)
+], Md2Datepicker.prototype, "id", void 0);
__decorate([
Input(),
__metadata("design:type", Object),
diff --git a/datepicker/datepicker.js.map b/datepicker/datepicker.js.map
index 94898ad7a..349505aad 100644
--- a/datepicker/datepicker.js.map
+++ b/datepicker/datepicker.js.map
@@ -1 +1 @@
-{"version":3,"file":"datepicker.js","sourceRoot":"","sources":["../../../src/lib/datepicker/datepicker.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n ComponentRef,\n ElementRef,\n EventEmitter,\n forwardRef,\n Input,\n OnDestroy,\n Optional,\n Output,\n ViewChild,\n ViewContainerRef,\n ViewEncapsulation,\n NgZone,\n Self,\n} from '@angular/core';\nimport {\n AbstractControl,\n ControlValueAccessor,\n NG_VALIDATORS,\n NG_VALUE_ACCESSOR,\n ValidationErrors,\n Validator,\n ValidatorFn,\n Validators,\n} from '@angular/forms';\nimport { coerceBooleanProperty } from '../core';\nimport { Overlay } from '../core/overlay/overlay';\nimport { OverlayRef } from '../core/overlay/overlay-ref';\nimport { ComponentPortal } from '../core/portal/portal';\nimport { OverlayState } from '../core/overlay/overlay-state';\nimport { Dir } from '../core/rtl/dir';\nimport { PositionStrategy } from '../core/overlay/position/position-strategy';\nimport { Subscription } from 'rxjs/Subscription';\nimport { DateAdapter } from '../core/datetime/index';\nimport { ESCAPE } from '../core/keyboard/keycodes';\nimport { Md2Calendar } from './calendar';\nimport { DateLocale } from './date-locale';\nimport { DateUtil } from './date-util';\nimport 'rxjs/add/operator/first';\n\n/** Change event object emitted by Md2Select. */\nexport class Md2DateChange {\n constructor(public source: Md2Datepicker, public value: Date) { }\n}\n\n/** Used to generate a unique ID for each datepicker instance. */\nlet datepickerUid = 0;\n\n\n/**\n * Component used as the content for the datepicker dialog and popup. We use this instead of using\n * Md2Calendar directly as the content so we can control the initial focus. This also gives us a\n * place to put additional features of the popup that are not part of the calendar itself in the\n * future. (e.g. confirmation buttons).\n * @docs-private\n */\n@Component({\n moduleId: module.id,\n selector: 'md2-datepicker-content',\n templateUrl: 'datepicker-content.html',\n styleUrls: ['datepicker-content.css'],\n host: {\n 'class': 'md2-datepicker-content',\n '[class.md2-datepicker-content-touch]': 'datepicker?.touchUi',\n '(keydown)': '_handleKeydown($event)',\n },\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class Md2DatepickerContent {\n datepicker: Md2Datepicker;\n\n @ViewChild(Md2Calendar) _calendar: Md2Calendar;\n\n /**\n * Handles keydown event on datepicker content.\n * @param event The event.\n */\n _handleKeydown(event: KeyboardEvent): void {\n switch (event.keyCode) {\n case ESCAPE:\n this.datepicker.close();\n break;\n default:\n /* Return so that we don't preventDefault on keys that are not explicitly handled. */\n return;\n }\n\n event.preventDefault();\n }\n}\n\n\nexport const MD2_DATEPICKER_VALUE_ACCESSOR: any = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => Md2Datepicker),\n multi: true\n};\n\nexport const MD2_DATEPICKER_VALIDATORS: any = {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => Md2Datepicker),\n multi: true\n};\n\n/* Component responsible for managing the datepicker popup/dialog. */\n@Component({\n moduleId: module.id,\n selector: 'md2-datepicker',\n templateUrl: 'datepicker.html',\n styleUrls: ['datepicker.css'],\n providers: [MD2_DATEPICKER_VALUE_ACCESSOR, MD2_DATEPICKER_VALIDATORS],\n host: {\n 'role': 'datepicker',\n '[class.md2-datepicker-disabled]': 'disabled',\n '[class.md2-datepicker-opened]': 'opened',\n '[attr.aria-label]': 'placeholder',\n '[attr.aria-required]': 'required.toString()',\n '[attr.aria-disabled]': 'disabled.toString()',\n },\n encapsulation: ViewEncapsulation.None,\n})\nexport class Md2Datepicker implements OnDestroy, ControlValueAccessor {\n\n _onChange: (value: any) => void = () => { };\n _onTouched = () => { };\n _validatorOnChange = () => { };\n\n _inputFocused: boolean = false;\n\n /** The date to open the calendar to initially. */\n @Input() startAt: Date;\n\n /** The view that the calendar should start in. */\n @Input() startView: 'clock' | 'month' | 'year' = 'month';\n\n /**\n * Whether the calendar UI is in touch mode. In touch mode the calendar opens in a dialog rather\n * than a popup and elements have more padding to allow for bigger touch targets.\n */\n @Input() touchUi = false;\n @Input() tabindex: number = 0;\n @Input() mode: 'auto' | 'portrait' | 'landscape' = 'auto';\n @Input() placeholder: string;\n @Input() timeInterval: number = 1;\n\n\n @Input()\n get type() { return this._type; }\n set type(value: 'date' | 'time' | 'month' | 'datetime') {\n this._type = value || 'date';\n this._inputValue = this._formatDate(this._value);\n }\n private _type: 'date' | 'time' | 'month' | 'datetime' = 'date';\n\n @Input()\n get format() {\n return this._format || (this.type === 'month' ? 'MMMM y' : this.type === 'date' ?\n 'dd/MM/y' : this.type === 'time' ? 'HH:mm' : this.type === 'datetime' ?\n 'dd/MM/y HH:mm' : 'dd/MM/y');\n }\n set format(value: string) {\n if (this._format !== value) {\n this._format = value;\n this._inputValue = this._formatDate(this._value);\n }\n }\n private _format: string;\n\n /** The minimum valid date. */\n @Input()\n get min(): Date { return this._minDate; }\n set min(value: Date) {\n this._minDate = value;\n this._validatorOnChange();\n }\n _minDate: Date;\n\n /** The maximum valid date. */\n @Input()\n get max(): Date { return this._maxDate; }\n set max(value: Date) {\n this._maxDate = value;\n this._validatorOnChange();\n }\n _maxDate: Date;\n\n @Input() set dateFilter(filter: (date: Date | null) => boolean) {\n this._dateFilter = filter;\n this._validatorOnChange();\n }\n _dateFilter: (date: Date | null) => boolean;\n\n @Input()\n get required(): boolean { return this._required; }\n set required(value) { this._required = coerceBooleanProperty(value); }\n private _required: boolean = false;\n\n @Input()\n get disabled(): boolean { return this._disabled; }\n set disabled(value) { this._disabled = coerceBooleanProperty(value); }\n private _disabled: boolean = false;\n\n @Input()\n get value() { return this._value; }\n set value(value: Date) {\n this._value = this.coerceDateProperty(value);\n this._selected = this._value;\n this.startAt = this._value;\n setTimeout(() => {\n this._inputValue = this._formatDate(this._value);\n });\n }\n private _value: Date;\n\n _inputValue: string = '';\n\n @Input()\n get openOnFocus(): boolean { return this._openOnFocus; }\n set openOnFocus(value: boolean) { this._openOnFocus = coerceBooleanProperty(value); }\n private _openOnFocus: boolean;\n\n @Input()\n set isOpen(value: boolean) {\n if (value && !this.opened) { this.open(); }\n }\n\n /** Event emitted when the select has been opened. */\n @Output() onOpen: EventEmitter = new EventEmitter();\n\n /** Event emitted when the select has been closed. */\n @Output() onClose: EventEmitter = new EventEmitter();\n\n /** Event emitted when the selected date has been changed by the user. */\n @Output() change: EventEmitter = new EventEmitter();\n\n /** Emits new selected date when selected date changes. */\n @Output() selectedChanged = new EventEmitter();\n\n /** Whether the calendar is open. */\n opened = false;\n\n /** The id for the datepicker calendar. */\n id = `md2-datepicker-${datepickerUid++}`;\n\n /** The currently selected date. */\n _selected: Date = null;\n\n /** A reference to the overlay when the calendar is opened as a popup. */\n private _popupRef: OverlayRef;\n\n /** A reference to the overlay when the calendar is opened as a dialog. */\n private _dialogRef: OverlayRef;\n\n /** A portal containing the calendar for this datepicker. */\n private _calendarPortal: ComponentPortal;\n\n private _inputSubscription: Subscription;\n\n /** The form control validator for the min date. */\n private _minValidator: ValidatorFn = (control: AbstractControl): ValidationErrors | null => {\n return (!this.min || !control.value ||\n this._util.compareDate(this.min, control.value) <= 0) ?\n null : { 'md2DatepickerMin': { 'min': this.min, 'actual': control.value } };\n }\n\n /** The form control validator for the max date. */\n private _maxValidator: ValidatorFn = (control: AbstractControl): ValidationErrors | null => {\n return (!this.max || !control.value ||\n this._util.compareDate(this.max, control.value) >= 0) ?\n null : { 'md2DatepickerMax': { 'max': this.max, 'actual': control.value } };\n }\n\n /** The form control validator for the date filter. */\n private _filterValidator: ValidatorFn = (control: AbstractControl): ValidationErrors | null => {\n return !this._dateFilter || !control.value || this._dateFilter(control.value) ?\n null : { 'md2DatepickerFilter': true };\n }\n\n /** The combined form control validator for this input. */\n private _validator: ValidatorFn =\n Validators.compose([this._minValidator, this._maxValidator, this._filterValidator]);\n\n constructor(private _element: ElementRef,\n private _overlay: Overlay,\n private _ngZone: NgZone,\n private _viewContainerRef: ViewContainerRef,\n private _locale: DateLocale,\n private _util: DateUtil,\n @Optional() private _dir: Dir) {\n }\n\n ngOnDestroy() {\n this.close();\n if (this._popupRef) {\n this._popupRef.dispose();\n }\n if (this._dialogRef) {\n this._dialogRef.dispose();\n }\n if (this._inputSubscription) {\n this._inputSubscription.unsubscribe();\n }\n }\n\n registerOnValidatorChange(fn: () => void): void {\n this._validatorOnChange = fn;\n }\n\n validate(c: AbstractControl): ValidationErrors | null {\n return this._validator ? this._validator(c) : null;\n }\n\n writeValue(value: any): void {\n this.value = value;\n }\n\n registerOnChange(fn: (value: any) => void): void { this._onChange = fn; }\n\n registerOnTouched(fn: () => {}): void { this._onTouched = fn; }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n _handleFocus() {\n this._inputFocused = true;\n if (!this.opened && this.openOnFocus) {\n this.open();\n }\n }\n\n _handleBlur(event: Event) {\n this._inputFocused = false;\n if (!this.opened) {\n this._onTouched();\n }\n let el: any = event.target;\n let date: Date = this._util.parseDate(el.value, this.format);\n if (!date) {\n date = this._util.parse(el.value);\n }\n if (date != null && date.getTime && !isNaN(date.getTime())) {\n\n let d: Date = new Date(this.value);\n if (this.type !== 'time') {\n d.setFullYear(date.getFullYear(), date.getMonth(), date.getDate());\n }\n if (this.type !== 'date') {\n d.setHours(date.getHours(), date.getMinutes());\n }\n if (!this._util.isSameMinute(this.value, d)) {\n this.value = this._util.createDate(d.getFullYear(),\n d.getMonth(),\n d.getDate(),\n d.getHours(),\n d.getMinutes(),\n d.getSeconds());\n this._emitChangeEvent();\n }\n } else {\n if (this.value) {\n this.value = null;\n this._emitChangeEvent();\n }\n }\n }\n\n private coerceDateProperty(value: any): Date {\n let v: Date = null;\n if (value != null && value.getTime && !isNaN(value.getTime())) {\n v = value;\n } else {\n if (value && this.type === 'time') {\n let t = value + '';\n v = new Date();\n v.setHours(parseInt(t.substring(0, 2)));\n v.setMinutes(parseInt(t.substring(3, 5)));\n } else {\n let timestamp = Date.parse(value);\n v = isNaN(timestamp) ? null : new Date(timestamp);\n }\n }\n let d: Date = v ? this._util.createDate(v.getFullYear(),\n v.getMonth(),\n v.getDate(),\n v.getHours(),\n v.getMinutes(),\n v.getSeconds()) : null;\n return d;\n }\n\n /**\n * format date\n * @param date Date Object\n * @return string with formatted date\n */\n private _formatDate(date: Date): string {\n if (!this.format || !date) { return ''; }\n\n let format = this.format;\n\n /* Years */\n if (format.indexOf('yy') > -1) {\n format = format.replace('yy', ('00' + this._util.getYear(date)).slice(-2));\n } else if (format.indexOf('y') > -1) {\n format = format.replace('y', '' + this._util.getYear(date));\n }\n\n /* Days */\n if (format.indexOf('dd') > -1) {\n format = format.replace('dd', ('0' + this._util.getDate(date)).slice(-2));\n } else if (format.indexOf('d') > -1) {\n format = format.replace('d', '' + this._util.getDate(date));\n }\n\n /* Hours */\n if (/[aA]/.test(format)) {\n /* 12-hour */\n if (format.indexOf('HH') > -1) {\n format = format.replace('HH',\n ('0' + this._getHours12(this._util.getHours(date))).slice(-2));\n } else if (format.indexOf('H') > -1) {\n format = format.replace('H',\n '' + this._getHours12(this._util.getHours(date)));\n }\n format = format.replace('A', ((this._util.getHours(date) < 12) ? 'AM' : 'PM'))\n .replace('a', ((this._util.getHours(date) < 12) ? 'am' : 'pm'));\n } else {\n /* 24-hour */\n if (format.indexOf('HH') > -1) {\n format = format.replace('HH', ('0' + this._util.getHours(date)).slice(-2));\n } else if (format.indexOf('H') > -1) {\n format = format.replace('H', '' + this._util.getHours(date));\n }\n }\n\n /* Minutes */\n if (format.indexOf('mm') > -1) {\n format = format.replace('mm', ('0' + this._util.getMinutes(date)).slice(-2));\n } else if (format.indexOf('m') > -1) {\n format = format.replace('m', '' + this._util.getMinutes(date));\n }\n\n /* Seconds */\n if (format.indexOf('ss') > -1) {\n format = format.replace('ss', ('0' + this._util.getSeconds(date)).slice(-2));\n } else if (format.indexOf('s') > -1) {\n format = format.replace('s', '' + this._util.getSeconds(date));\n }\n\n /* Months */\n if (format.indexOf('MMMM') > -1) {\n format = format.replace('MMMM',\n this._locale.getMonthNames('long')[this._util.getMonth(date)]);\n } else if (format.indexOf('MMM') > -1) {\n format = format.replace('MMM',\n this._locale.getMonthNames('short')[this._util.getMonth(date)]);\n } else if (format.indexOf('MM') > -1) {\n format = format.replace('MM', ('0' + (this._util.getMonth(date) + 1)).slice(-2));\n } else if (format.indexOf('M') > -1) {\n format = format.replace('M', '' + (this._util.getMonth(date) + 1));\n }\n\n return format;\n }\n\n /**\n * Get an hour of the date in the 12-hour format\n * @param date Date Object\n * @return hour of the date in the 12-hour format\n */\n private _getHours12(hours: number): number {\n if (hours == 0) {\n hours = 12;\n } else if (hours > 12) {\n hours -= 12;\n }\n return hours;\n }\n\n /** Selects the given date and closes the currently open popup or dialog. */\n _selectAndClose(date: Date): void {\n let oldValue = this._selected;\n this.value = date;\n if (!this._util.sameDateAndTime(oldValue, this._selected)) {\n this._emitChangeEvent();\n }\n this.close();\n }\n\n /** Emits an event when the user selects a date. */\n _emitChangeEvent(): void {\n this._onChange(this.value);\n this.change.emit(new Md2DateChange(this, this.value));\n }\n\n /** Open the calendar. */\n open(): void {\n if (this.opened) { return; }\n\n if (!this._calendarPortal) {\n this._calendarPortal = new ComponentPortal(Md2DatepickerContent, this._viewContainerRef);\n }\n\n this.touchUi ? this._openAsDialog() : this._openAsPopup();\n this.opened = true;\n this.onOpen.emit();\n }\n\n /** Close the calendar. */\n close(): void {\n if (!this.opened) {\n return;\n }\n if (this._popupRef && this._popupRef.hasAttached()) {\n this._popupRef.detach();\n }\n if (this._dialogRef && this._dialogRef.hasAttached()) {\n this._dialogRef.detach();\n }\n if (this._calendarPortal && this._calendarPortal.isAttached) {\n this._calendarPortal.detach();\n }\n this.opened = false;\n this.onClose.emit();\n }\n\n /** Open the calendar as a dialog. */\n private _openAsDialog(): void {\n if (!this._dialogRef) {\n this._createDialog();\n }\n\n if (!this._dialogRef.hasAttached()) {\n let componentRef: ComponentRef =\n this._dialogRef.attach(this._calendarPortal);\n componentRef.instance.datepicker = this;\n }\n\n this._dialogRef.backdropClick().subscribe(() => this.close());\n }\n\n /** Open the calendar as a popup. */\n private _openAsPopup(): void {\n if (!this._popupRef) {\n this._createPopup();\n }\n\n if (!this._popupRef.hasAttached()) {\n let componentRef: ComponentRef =\n this._popupRef.attach(this._calendarPortal);\n componentRef.instance.datepicker = this;\n\n /* Update the position once the calendar has rendered. */\n this._ngZone.onStable.first().subscribe(() => this._popupRef.updatePosition());\n }\n\n this._popupRef.backdropClick().subscribe(() => this.close());\n }\n\n /** Create the dialog. */\n private _createDialog(): void {\n const overlayState = new OverlayState();\n overlayState.positionStrategy = this._overlay.position().global()\n .centerHorizontally()\n .centerVertically();\n overlayState.hasBackdrop = true;\n overlayState.backdropClass = 'cdk-overlay-dark-backdrop';\n overlayState.direction = this._dir ? this._dir.value : 'ltr';\n this._dialogRef = this._overlay.create(overlayState);\n }\n\n /** Create the popup. */\n private _createPopup(): void {\n const overlayState = new OverlayState();\n overlayState.positionStrategy = this._createPopupPositionStrategy();\n overlayState.hasBackdrop = true;\n overlayState.backdropClass = 'cdk-overlay-transparent-backdrop';\n overlayState.direction = this._dir ? this._dir.value : 'ltr';\n overlayState.scrollStrategy = this._overlay.scrollStrategies.reposition();\n\n this._popupRef = this._overlay.create(overlayState);\n }\n\n /** Create the popup PositionStrategy. */\n private _createPopupPositionStrategy(): PositionStrategy {\n return this._overlay.position()\n .connectedTo(this._element,\n { originX: 'start', originY: 'bottom' },\n { overlayX: 'start', overlayY: 'top' })\n .withFallbackPosition(\n { originX: 'start', originY: 'top' },\n { overlayX: 'start', overlayY: 'bottom' })\n .withFallbackPosition(\n { originX: 'end', originY: 'bottom' },\n { overlayX: 'end', overlayY: 'top' })\n .withFallbackPosition(\n { originX: 'end', originY: 'top' },\n { overlayX: 'end', overlayY: 'bottom' });\n }\n}\n"]}
\ No newline at end of file
+{"version":3,"file":"datepicker.js","sourceRoot":"","sources":["../../../src/lib/datepicker/datepicker.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n ComponentRef,\n ElementRef,\n EventEmitter,\n forwardRef,\n Input,\n OnDestroy,\n Optional,\n Output,\n ViewChild,\n ViewContainerRef,\n ViewEncapsulation,\n NgZone,\n Self,\n} from '@angular/core';\nimport {\n AbstractControl,\n ControlValueAccessor,\n NG_VALIDATORS,\n NG_VALUE_ACCESSOR,\n ValidationErrors,\n Validator,\n ValidatorFn,\n Validators,\n} from '@angular/forms';\nimport { coerceBooleanProperty } from '../core';\nimport { Overlay } from '../core/overlay/overlay';\nimport { OverlayRef } from '../core/overlay/overlay-ref';\nimport { ComponentPortal } from '../core/portal/portal';\nimport { OverlayState } from '../core/overlay/overlay-state';\nimport { Dir } from '../core/rtl/dir';\nimport { PositionStrategy } from '../core/overlay/position/position-strategy';\nimport { Subscription } from 'rxjs/Subscription';\nimport { DateAdapter } from '../core/datetime/index';\nimport { ESCAPE } from '../core/keyboard/keycodes';\nimport { Md2Calendar } from './calendar';\nimport { DateLocale } from './date-locale';\nimport { DateUtil } from './date-util';\nimport 'rxjs/add/operator/first';\n\n/** Change event object emitted by Md2Select. */\nexport class Md2DateChange {\n constructor(public source: Md2Datepicker, public value: Date) { }\n}\n\n/** Used to generate a unique ID for each datepicker instance. */\nlet datepickerUid = 0;\n\n\n/**\n * Component used as the content for the datepicker dialog and popup. We use this instead of using\n * Md2Calendar directly as the content so we can control the initial focus. This also gives us a\n * place to put additional features of the popup that are not part of the calendar itself in the\n * future. (e.g. confirmation buttons).\n * @docs-private\n */\n@Component({\n moduleId: module.id,\n selector: 'md2-datepicker-content',\n templateUrl: 'datepicker-content.html',\n styleUrls: ['datepicker-content.css'],\n host: {\n 'class': 'md2-datepicker-content',\n '[class.md2-datepicker-content-touch]': 'datepicker?.touchUi',\n '(keydown)': '_handleKeydown($event)',\n },\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class Md2DatepickerContent {\n datepicker: Md2Datepicker;\n\n @ViewChild(Md2Calendar) _calendar: Md2Calendar;\n\n /**\n * Handles keydown event on datepicker content.\n * @param event The event.\n */\n _handleKeydown(event: KeyboardEvent): void {\n switch (event.keyCode) {\n case ESCAPE:\n this.datepicker.close();\n break;\n default:\n /* Return so that we don't preventDefault on keys that are not explicitly handled. */\n return;\n }\n\n event.preventDefault();\n }\n}\n\n\nexport const MD2_DATEPICKER_VALUE_ACCESSOR: any = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => Md2Datepicker),\n multi: true\n};\n\nexport const MD2_DATEPICKER_VALIDATORS: any = {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => Md2Datepicker),\n multi: true\n};\n\n/* Component responsible for managing the datepicker popup/dialog. */\n@Component({\n moduleId: module.id,\n selector: 'md2-datepicker',\n templateUrl: 'datepicker.html',\n styleUrls: ['datepicker.css'],\n providers: [MD2_DATEPICKER_VALUE_ACCESSOR, MD2_DATEPICKER_VALIDATORS],\n host: {\n 'role': 'datepicker',\n '[class.md2-datepicker-disabled]': 'disabled',\n '[class.md2-datepicker-opened]': 'opened',\n '[attr.aria-label]': 'placeholder',\n '[attr.aria-required]': 'required.toString()',\n '[attr.aria-disabled]': 'disabled.toString()',\n },\n encapsulation: ViewEncapsulation.None,\n})\nexport class Md2Datepicker implements OnDestroy, ControlValueAccessor {\n\n _onChange: (value: any) => void = () => { };\n _onTouched = () => { };\n _validatorOnChange = () => { };\n\n _inputFocused: boolean = false;\n\n /** The date to open the calendar to initially. */\n @Input() startAt: Date;\n\n /** The view that the calendar should start in. */\n @Input() startView: 'clock' | 'month' | 'year' = 'month';\n\n /**\n * Whether the calendar UI is in touch mode. In touch mode the calendar opens in a dialog rather\n * than a popup and elements have more padding to allow for bigger touch targets.\n */\n @Input() touchUi = false;\n @Input() tabindex: number = 0;\n @Input() mode: 'auto' | 'portrait' | 'landscape' = 'auto';\n @Input() placeholder: string;\n @Input() timeInterval: number = 1;\n @Input() id: string;\n\n @Input()\n get type() { return this._type; }\n set type(value: 'date' | 'time' | 'month' | 'datetime') {\n this._type = value || 'date';\n this._inputValue = this._formatDate(this._value);\n }\n private _type: 'date' | 'time' | 'month' | 'datetime' = 'date';\n\n @Input()\n get format() {\n return this._format || (this.type === 'month' ? 'MMMM y' : this.type === 'date' ?\n 'dd/MM/y' : this.type === 'time' ? 'HH:mm' : this.type === 'datetime' ?\n 'dd/MM/y HH:mm' : 'dd/MM/y');\n }\n set format(value: string) {\n if (this._format !== value) {\n this._format = value;\n this._inputValue = this._formatDate(this._value);\n }\n }\n private _format: string;\n\n /** The minimum valid date. */\n @Input()\n get min(): Date { return this._minDate; }\n set min(value: Date) {\n this._minDate = value;\n this._validatorOnChange();\n }\n _minDate: Date;\n\n /** The maximum valid date. */\n @Input()\n get max(): Date { return this._maxDate; }\n set max(value: Date) {\n this._maxDate = value;\n this._validatorOnChange();\n }\n _maxDate: Date;\n\n @Input() set dateFilter(filter: (date: Date | null) => boolean) {\n this._dateFilter = filter;\n this._validatorOnChange();\n }\n _dateFilter: (date: Date | null) => boolean;\n\n @Input()\n get required(): boolean { return this._required; }\n set required(value) { this._required = coerceBooleanProperty(value); }\n private _required: boolean = false;\n\n @Input()\n get disabled(): boolean { return this._disabled; }\n set disabled(value) { this._disabled = coerceBooleanProperty(value); }\n private _disabled: boolean = false;\n\n @Input()\n get value() { return this._value; }\n set value(value: Date) {\n this._value = this.coerceDateProperty(value);\n this._selected = this._value;\n this.startAt = this._value;\n setTimeout(() => {\n this._inputValue = this._formatDate(this._value);\n });\n }\n private _value: Date;\n\n _inputValue: string = '';\n\n @Input()\n get openOnFocus(): boolean { return this._openOnFocus; }\n set openOnFocus(value: boolean) { this._openOnFocus = coerceBooleanProperty(value); }\n private _openOnFocus: boolean;\n\n @Input()\n set isOpen(value: boolean) {\n if (value && !this.opened) { this.open(); }\n }\n\n /** Event emitted when the select has been opened. */\n @Output() onOpen: EventEmitter = new EventEmitter();\n\n /** Event emitted when the select has been closed. */\n @Output() onClose: EventEmitter = new EventEmitter();\n\n /** Event emitted when the selected date has been changed by the user. */\n @Output() change: EventEmitter = new EventEmitter();\n\n /** Emits new selected date when selected date changes. */\n @Output() selectedChanged = new EventEmitter();\n\n /** Whether the calendar is open. */\n opened = false;\n\n /** The currently selected date. */\n _selected: Date = null;\n\n /** A reference to the overlay when the calendar is opened as a popup. */\n private _popupRef: OverlayRef;\n\n /** A reference to the overlay when the calendar is opened as a dialog. */\n private _dialogRef: OverlayRef;\n\n /** A portal containing the calendar for this datepicker. */\n private _calendarPortal: ComponentPortal;\n\n private _inputSubscription: Subscription;\n\n /** The form control validator for the min date. */\n private _minValidator: ValidatorFn = (control: AbstractControl): ValidationErrors | null => {\n return (!this.min || !control.value ||\n this._util.compareDate(this.min, control.value) <= 0) ?\n null : { 'md2DatepickerMin': { 'min': this.min, 'actual': control.value } };\n }\n\n /** The form control validator for the max date. */\n private _maxValidator: ValidatorFn = (control: AbstractControl): ValidationErrors | null => {\n return (!this.max || !control.value ||\n this._util.compareDate(this.max, control.value) >= 0) ?\n null : { 'md2DatepickerMax': { 'max': this.max, 'actual': control.value } };\n }\n\n /** The form control validator for the date filter. */\n private _filterValidator: ValidatorFn = (control: AbstractControl): ValidationErrors | null => {\n return !this._dateFilter || !control.value || this._dateFilter(control.value) ?\n null : { 'md2DatepickerFilter': true };\n }\n\n /** The combined form control validator for this input. */\n private _validator: ValidatorFn =\n Validators.compose([this._minValidator, this._maxValidator, this._filterValidator]);\n\n constructor(private _element: ElementRef,\n private _overlay: Overlay,\n private _ngZone: NgZone,\n private _viewContainerRef: ViewContainerRef,\n private _locale: DateLocale,\n private _util: DateUtil,\n @Optional() private _dir: Dir) {\n this.id = (this.id) ? this.id : `md2-datepicker-${datepickerUid++}`;\n }\n\n ngOnDestroy() {\n this.close();\n if (this._popupRef) {\n this._popupRef.dispose();\n }\n if (this._dialogRef) {\n this._dialogRef.dispose();\n }\n if (this._inputSubscription) {\n this._inputSubscription.unsubscribe();\n }\n }\n\n registerOnValidatorChange(fn: () => void): void {\n this._validatorOnChange = fn;\n }\n\n validate(c: AbstractControl): ValidationErrors | null {\n return this._validator ? this._validator(c) : null;\n }\n\n writeValue(value: any): void {\n this.value = value;\n }\n\n registerOnChange(fn: (value: any) => void): void { this._onChange = fn; }\n\n registerOnTouched(fn: () => {}): void { this._onTouched = fn; }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n _handleFocus() {\n this._inputFocused = true;\n if (!this.opened && this.openOnFocus) {\n this.open();\n }\n }\n\n _handleBlur(event: Event) {\n this._inputFocused = false;\n if (!this.opened) {\n this._onTouched();\n }\n let el: any = event.target;\n let date: Date = this._util.parseDate(el.value, this.format);\n if (!date) {\n date = this._util.parse(el.value);\n }\n if (date != null && date.getTime && !isNaN(date.getTime())) {\n\n let d: Date = new Date(this.value);\n if (this.type !== 'time') {\n d.setFullYear(date.getFullYear(), date.getMonth(), date.getDate());\n }\n if (this.type !== 'date') {\n d.setHours(date.getHours(), date.getMinutes());\n }\n if (!this._util.isSameMinute(this.value, d)) {\n this.value = this._util.createDate(d.getFullYear(),\n d.getMonth(),\n d.getDate(),\n d.getHours(),\n d.getMinutes(),\n d.getSeconds());\n this._emitChangeEvent();\n }\n } else {\n if (this.value) {\n this.value = null;\n this._emitChangeEvent();\n }\n }\n }\n\n private coerceDateProperty(value: any): Date {\n let v: Date = null;\n if (value != null && value.getTime && !isNaN(value.getTime())) {\n v = value;\n } else {\n if (value && this.type === 'time') {\n let t = value + '';\n v = new Date();\n v.setHours(parseInt(t.substring(0, 2)));\n v.setMinutes(parseInt(t.substring(3, 5)));\n } else {\n let timestamp = Date.parse(value);\n v = isNaN(timestamp) ? null : new Date(timestamp);\n }\n }\n let d: Date = v ? this._util.createDate(v.getFullYear(),\n v.getMonth(),\n v.getDate(),\n v.getHours(),\n v.getMinutes(),\n v.getSeconds()) : null;\n return d;\n }\n\n /**\n * format date\n * @param date Date Object\n * @return string with formatted date\n */\n private _formatDate(date: Date): string {\n if (!this.format || !date) { return ''; }\n\n let format = this.format;\n\n /* Years */\n if (format.indexOf('yy') > -1) {\n format = format.replace('yy', ('00' + this._util.getYear(date)).slice(-2));\n } else if (format.indexOf('y') > -1) {\n format = format.replace('y', '' + this._util.getYear(date));\n }\n\n /* Days */\n if (format.indexOf('dd') > -1) {\n format = format.replace('dd', ('0' + this._util.getDate(date)).slice(-2));\n } else if (format.indexOf('d') > -1) {\n format = format.replace('d', '' + this._util.getDate(date));\n }\n\n /* Hours */\n if (/[aA]/.test(format)) {\n /* 12-hour */\n if (format.indexOf('HH') > -1) {\n format = format.replace('HH',\n ('0' + this._getHours12(this._util.getHours(date))).slice(-2));\n } else if (format.indexOf('H') > -1) {\n format = format.replace('H',\n '' + this._getHours12(this._util.getHours(date)));\n }\n format = format.replace('A', ((this._util.getHours(date) < 12) ? 'AM' : 'PM'))\n .replace('a', ((this._util.getHours(date) < 12) ? 'am' : 'pm'));\n } else {\n /* 24-hour */\n if (format.indexOf('HH') > -1) {\n format = format.replace('HH', ('0' + this._util.getHours(date)).slice(-2));\n } else if (format.indexOf('H') > -1) {\n format = format.replace('H', '' + this._util.getHours(date));\n }\n }\n\n /* Minutes */\n if (format.indexOf('mm') > -1) {\n format = format.replace('mm', ('0' + this._util.getMinutes(date)).slice(-2));\n } else if (format.indexOf('m') > -1) {\n format = format.replace('m', '' + this._util.getMinutes(date));\n }\n\n /* Seconds */\n if (format.indexOf('ss') > -1) {\n format = format.replace('ss', ('0' + this._util.getSeconds(date)).slice(-2));\n } else if (format.indexOf('s') > -1) {\n format = format.replace('s', '' + this._util.getSeconds(date));\n }\n\n /* Months */\n if (format.indexOf('MMMM') > -1) {\n format = format.replace('MMMM',\n this._locale.getMonthNames('long')[this._util.getMonth(date)]);\n } else if (format.indexOf('MMM') > -1) {\n format = format.replace('MMM',\n this._locale.getMonthNames('short')[this._util.getMonth(date)]);\n } else if (format.indexOf('MM') > -1) {\n format = format.replace('MM', ('0' + (this._util.getMonth(date) + 1)).slice(-2));\n } else if (format.indexOf('M') > -1) {\n format = format.replace('M', '' + (this._util.getMonth(date) + 1));\n }\n\n return format;\n }\n\n /**\n * Get an hour of the date in the 12-hour format\n * @param date Date Object\n * @return hour of the date in the 12-hour format\n */\n private _getHours12(hours: number): number {\n if (hours == 0) {\n hours = 12;\n } else if (hours > 12) {\n hours -= 12;\n }\n return hours;\n }\n\n /** Selects the given date and closes the currently open popup or dialog. */\n _selectAndClose(date: Date): void {\n let oldValue = this._selected;\n this.value = date;\n if (!this._util.sameDateAndTime(oldValue, this._selected)) {\n this._emitChangeEvent();\n }\n this.close();\n }\n\n /** Emits an event when the user selects a date. */\n _emitChangeEvent(): void {\n this._onChange(this.value);\n this.change.emit(new Md2DateChange(this, this.value));\n }\n\n /** Open the calendar. */\n open(): void {\n if (this.opened) { return; }\n\n if (!this._calendarPortal) {\n this._calendarPortal = new ComponentPortal(Md2DatepickerContent, this._viewContainerRef);\n }\n\n this.touchUi ? this._openAsDialog() : this._openAsPopup();\n this.opened = true;\n this.onOpen.emit();\n }\n\n /** Close the calendar. */\n close(): void {\n if (!this.opened) {\n return;\n }\n if (this._popupRef && this._popupRef.hasAttached()) {\n this._popupRef.detach();\n }\n if (this._dialogRef && this._dialogRef.hasAttached()) {\n this._dialogRef.detach();\n }\n if (this._calendarPortal && this._calendarPortal.isAttached) {\n this._calendarPortal.detach();\n }\n this.opened = false;\n this.onClose.emit();\n }\n\n /** Open the calendar as a dialog. */\n private _openAsDialog(): void {\n if (!this._dialogRef) {\n this._createDialog();\n }\n\n if (!this._dialogRef.hasAttached()) {\n let componentRef: ComponentRef =\n this._dialogRef.attach(this._calendarPortal);\n componentRef.instance.datepicker = this;\n }\n\n this._dialogRef.backdropClick().subscribe(() => this.close());\n }\n\n /** Open the calendar as a popup. */\n private _openAsPopup(): void {\n if (!this._popupRef) {\n this._createPopup();\n }\n\n if (!this._popupRef.hasAttached()) {\n let componentRef: ComponentRef =\n this._popupRef.attach(this._calendarPortal);\n componentRef.instance.datepicker = this;\n\n /* Update the position once the calendar has rendered. */\n this._ngZone.onStable.first().subscribe(() => this._popupRef.updatePosition());\n }\n\n this._popupRef.backdropClick().subscribe(() => this.close());\n }\n\n /** Create the dialog. */\n private _createDialog(): void {\n const overlayState = new OverlayState();\n overlayState.positionStrategy = this._overlay.position().global()\n .centerHorizontally()\n .centerVertically();\n overlayState.hasBackdrop = true;\n overlayState.backdropClass = 'cdk-overlay-dark-backdrop';\n overlayState.direction = this._dir ? this._dir.value : 'ltr';\n this._dialogRef = this._overlay.create(overlayState);\n }\n\n /** Create the popup. */\n private _createPopup(): void {\n const overlayState = new OverlayState();\n overlayState.positionStrategy = this._createPopupPositionStrategy();\n overlayState.hasBackdrop = true;\n overlayState.backdropClass = 'cdk-overlay-transparent-backdrop';\n overlayState.direction = this._dir ? this._dir.value : 'ltr';\n overlayState.scrollStrategy = this._overlay.scrollStrategies.reposition();\n\n this._popupRef = this._overlay.create(overlayState);\n }\n\n /** Create the popup PositionStrategy. */\n private _createPopupPositionStrategy(): PositionStrategy {\n return this._overlay.position()\n .connectedTo(this._element,\n { originX: 'start', originY: 'bottom' },\n { overlayX: 'start', overlayY: 'top' })\n .withFallbackPosition(\n { originX: 'start', originY: 'top' },\n { overlayX: 'start', overlayY: 'bottom' })\n .withFallbackPosition(\n { originX: 'end', originY: 'bottom' },\n { overlayX: 'end', overlayY: 'top' })\n .withFallbackPosition(\n { originX: 'end', originY: 'top' },\n { overlayX: 'end', overlayY: 'bottom' });\n }\n}\n"]}
\ No newline at end of file
diff --git a/datepicker/datepicker.metadata.json b/datepicker/datepicker.metadata.json
index d79fd1a75..4603c6336 100644
--- a/datepicker/datepicker.metadata.json
+++ b/datepicker/datepicker.metadata.json
@@ -1 +1 @@
-[{"__symbolic":"module","version":3,"metadata":{"Md2DateChange":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"Md2Datepicker"},{"__symbolic":"reference","name":"Date"}]}]}},"Md2DatepickerContent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component"},"arguments":[{"moduleId":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"module"},"member":"id"},"selector":"md2-datepicker-content","templateUrl":"datepicker-content.html","styleUrls":["datepicker-content.css"],"host":{"class":"md2-datepicker-content","[class.md2-datepicker-content-touch]":"datepicker?.touchUi","(keydown)":"_handleKeydown($event)","$quoted$":["class","[class.md2-datepicker-content-touch]","(keydown)"]},"encapsulation":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewEncapsulation"},"member":"None"},"changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy"},"member":"OnPush"}}]}],"members":{"_calendar":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild"},"arguments":[{"__symbolic":"reference","module":"./calendar","name":"Md2Calendar"}]}]}],"_handleKeydown":[{"__symbolic":"method"}]}},"MD2_DATEPICKER_VALUE_ACCESSOR":{"provide":{"__symbolic":"reference","module":"@angular/forms","name":"NG_VALUE_ACCESSOR"},"useExisting":{"__symbolic":"reference","name":"Md2Datepicker"},"multi":true},"MD2_DATEPICKER_VALIDATORS":{"provide":{"__symbolic":"reference","module":"@angular/forms","name":"NG_VALIDATORS"},"useExisting":{"__symbolic":"reference","name":"Md2Datepicker"},"multi":true},"Md2Datepicker":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component"},"arguments":[{"moduleId":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"module"},"member":"id"},"selector":"md2-datepicker","templateUrl":"datepicker.html","styleUrls":["datepicker.css"],"providers":[{"__symbolic":"reference","name":"MD2_DATEPICKER_VALUE_ACCESSOR"},{"__symbolic":"reference","name":"MD2_DATEPICKER_VALIDATORS"}],"host":{"role":"datepicker","[class.md2-datepicker-disabled]":"disabled","[class.md2-datepicker-opened]":"opened","[attr.aria-label]":"placeholder","[attr.aria-required]":"required.toString()","[attr.aria-disabled]":"disabled.toString()","$quoted$":["role","[class.md2-datepicker-disabled]","[class.md2-datepicker-opened]","[attr.aria-label]","[attr.aria-required]","[attr.aria-disabled]"]},"encapsulation":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewEncapsulation"},"member":"None"}}]}],"members":{"startAt":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"startView":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"touchUi":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"tabindex":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"mode":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"placeholder":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"timeInterval":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"type":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"format":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"min":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"max":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"dateFilter":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"required":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"disabled":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"value":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"openOnFocus":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"isOpen":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"onOpen":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output"}}]}],"onClose":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output"}}]}],"change":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output"}}]}],"selectedChanged":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output"}}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,null,null,null,null,null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional"}}]],"parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ElementRef"},{"__symbolic":"reference","module":"../core/overlay/overlay","name":"Overlay"},{"__symbolic":"reference","module":"@angular/core","name":"NgZone"},{"__symbolic":"reference","module":"@angular/core","name":"ViewContainerRef"},{"__symbolic":"reference","module":"./date-locale","name":"DateLocale"},{"__symbolic":"reference","module":"./date-util","name":"DateUtil"},{"__symbolic":"reference","module":"../core/rtl/dir","name":"Dir"}]}],"ngOnDestroy":[{"__symbolic":"method"}],"registerOnValidatorChange":[{"__symbolic":"method"}],"validate":[{"__symbolic":"method"}],"writeValue":[{"__symbolic":"method"}],"registerOnChange":[{"__symbolic":"method"}],"registerOnTouched":[{"__symbolic":"method"}],"setDisabledState":[{"__symbolic":"method"}],"_handleFocus":[{"__symbolic":"method"}],"_handleBlur":[{"__symbolic":"method"}],"coerceDateProperty":[{"__symbolic":"method"}],"_formatDate":[{"__symbolic":"method"}],"_getHours12":[{"__symbolic":"method"}],"_selectAndClose":[{"__symbolic":"method"}],"_emitChangeEvent":[{"__symbolic":"method"}],"open":[{"__symbolic":"method"}],"close":[{"__symbolic":"method"}],"_openAsDialog":[{"__symbolic":"method"}],"_openAsPopup":[{"__symbolic":"method"}],"_createDialog":[{"__symbolic":"method"}],"_createPopup":[{"__symbolic":"method"}],"_createPopupPositionStrategy":[{"__symbolic":"method"}]}}}},{"__symbolic":"module","version":1,"metadata":{"Md2DateChange":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"Md2Datepicker"},{"__symbolic":"reference","name":"Date"}]}]}},"Md2DatepickerContent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component"},"arguments":[{"moduleId":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"module"},"member":"id"},"selector":"md2-datepicker-content","templateUrl":"datepicker-content.html","styleUrls":["datepicker-content.css"],"host":{"class":"md2-datepicker-content","[class.md2-datepicker-content-touch]":"datepicker?.touchUi","(keydown)":"_handleKeydown($event)"},"encapsulation":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewEncapsulation"},"member":"None"},"changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy"},"member":"OnPush"}}]}],"members":{"_calendar":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild"},"arguments":[{"__symbolic":"reference","module":"./calendar","name":"Md2Calendar"}]}]}],"_handleKeydown":[{"__symbolic":"method"}]}},"MD2_DATEPICKER_VALUE_ACCESSOR":{"provide":{"__symbolic":"reference","module":"@angular/forms","name":"NG_VALUE_ACCESSOR"},"useExisting":{"__symbolic":"reference","name":"Md2Datepicker"},"multi":true},"MD2_DATEPICKER_VALIDATORS":{"provide":{"__symbolic":"reference","module":"@angular/forms","name":"NG_VALIDATORS"},"useExisting":{"__symbolic":"reference","name":"Md2Datepicker"},"multi":true},"Md2Datepicker":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component"},"arguments":[{"moduleId":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"module"},"member":"id"},"selector":"md2-datepicker","templateUrl":"datepicker.html","styleUrls":["datepicker.css"],"providers":[{"__symbolic":"reference","name":"MD2_DATEPICKER_VALUE_ACCESSOR"},{"__symbolic":"reference","name":"MD2_DATEPICKER_VALIDATORS"}],"host":{"role":"datepicker","[class.md2-datepicker-disabled]":"disabled","[class.md2-datepicker-opened]":"opened","[attr.aria-label]":"placeholder","[attr.aria-required]":"required.toString()","[attr.aria-disabled]":"disabled.toString()"},"encapsulation":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewEncapsulation"},"member":"None"}}]}],"members":{"startAt":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"startView":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"touchUi":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"tabindex":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"mode":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"placeholder":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"timeInterval":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"type":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"format":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"min":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"max":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"dateFilter":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"required":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"disabled":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"value":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"openOnFocus":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"isOpen":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"onOpen":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output"}}]}],"onClose":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output"}}]}],"change":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output"}}]}],"selectedChanged":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output"}}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,null,null,null,null,null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional"}}]],"parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ElementRef"},{"__symbolic":"reference","module":"../core/overlay/overlay","name":"Overlay"},{"__symbolic":"reference","module":"@angular/core","name":"NgZone"},{"__symbolic":"reference","module":"@angular/core","name":"ViewContainerRef"},{"__symbolic":"reference","module":"./date-locale","name":"DateLocale"},{"__symbolic":"reference","module":"./date-util","name":"DateUtil"},{"__symbolic":"reference","module":"../core/rtl/dir","name":"Dir"}]}],"ngOnDestroy":[{"__symbolic":"method"}],"registerOnValidatorChange":[{"__symbolic":"method"}],"validate":[{"__symbolic":"method"}],"writeValue":[{"__symbolic":"method"}],"registerOnChange":[{"__symbolic":"method"}],"registerOnTouched":[{"__symbolic":"method"}],"setDisabledState":[{"__symbolic":"method"}],"_handleFocus":[{"__symbolic":"method"}],"_handleBlur":[{"__symbolic":"method"}],"coerceDateProperty":[{"__symbolic":"method"}],"_formatDate":[{"__symbolic":"method"}],"_getHours12":[{"__symbolic":"method"}],"_selectAndClose":[{"__symbolic":"method"}],"_emitChangeEvent":[{"__symbolic":"method"}],"open":[{"__symbolic":"method"}],"close":[{"__symbolic":"method"}],"_openAsDialog":[{"__symbolic":"method"}],"_openAsPopup":[{"__symbolic":"method"}],"_createDialog":[{"__symbolic":"method"}],"_createPopup":[{"__symbolic":"method"}],"_createPopupPositionStrategy":[{"__symbolic":"method"}]}}}}]
\ No newline at end of file
+[{"__symbolic":"module","version":3,"metadata":{"Md2DateChange":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"Md2Datepicker"},{"__symbolic":"reference","name":"Date"}]}]}},"Md2DatepickerContent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component"},"arguments":[{"moduleId":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"module"},"member":"id"},"selector":"md2-datepicker-content","templateUrl":"datepicker-content.html","styleUrls":["datepicker-content.css"],"host":{"class":"md2-datepicker-content","[class.md2-datepicker-content-touch]":"datepicker?.touchUi","(keydown)":"_handleKeydown($event)","$quoted$":["class","[class.md2-datepicker-content-touch]","(keydown)"]},"encapsulation":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewEncapsulation"},"member":"None"},"changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy"},"member":"OnPush"}}]}],"members":{"_calendar":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild"},"arguments":[{"__symbolic":"reference","module":"./calendar","name":"Md2Calendar"}]}]}],"_handleKeydown":[{"__symbolic":"method"}]}},"MD2_DATEPICKER_VALUE_ACCESSOR":{"provide":{"__symbolic":"reference","module":"@angular/forms","name":"NG_VALUE_ACCESSOR"},"useExisting":{"__symbolic":"reference","name":"Md2Datepicker"},"multi":true},"MD2_DATEPICKER_VALIDATORS":{"provide":{"__symbolic":"reference","module":"@angular/forms","name":"NG_VALIDATORS"},"useExisting":{"__symbolic":"reference","name":"Md2Datepicker"},"multi":true},"Md2Datepicker":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component"},"arguments":[{"moduleId":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"module"},"member":"id"},"selector":"md2-datepicker","templateUrl":"datepicker.html","styleUrls":["datepicker.css"],"providers":[{"__symbolic":"reference","name":"MD2_DATEPICKER_VALUE_ACCESSOR"},{"__symbolic":"reference","name":"MD2_DATEPICKER_VALIDATORS"}],"host":{"role":"datepicker","[class.md2-datepicker-disabled]":"disabled","[class.md2-datepicker-opened]":"opened","[attr.aria-label]":"placeholder","[attr.aria-required]":"required.toString()","[attr.aria-disabled]":"disabled.toString()","$quoted$":["role","[class.md2-datepicker-disabled]","[class.md2-datepicker-opened]","[attr.aria-label]","[attr.aria-required]","[attr.aria-disabled]"]},"encapsulation":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewEncapsulation"},"member":"None"}}]}],"members":{"startAt":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"startView":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"touchUi":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"tabindex":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"mode":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"placeholder":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"timeInterval":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"id":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"type":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"format":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"min":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"max":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"dateFilter":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"required":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"disabled":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"value":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"openOnFocus":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"isOpen":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"onOpen":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output"}}]}],"onClose":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output"}}]}],"change":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output"}}]}],"selectedChanged":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output"}}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,null,null,null,null,null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional"}}]],"parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ElementRef"},{"__symbolic":"reference","module":"../core/overlay/overlay","name":"Overlay"},{"__symbolic":"reference","module":"@angular/core","name":"NgZone"},{"__symbolic":"reference","module":"@angular/core","name":"ViewContainerRef"},{"__symbolic":"reference","module":"./date-locale","name":"DateLocale"},{"__symbolic":"reference","module":"./date-util","name":"DateUtil"},{"__symbolic":"reference","module":"../core/rtl/dir","name":"Dir"}]}],"ngOnDestroy":[{"__symbolic":"method"}],"registerOnValidatorChange":[{"__symbolic":"method"}],"validate":[{"__symbolic":"method"}],"writeValue":[{"__symbolic":"method"}],"registerOnChange":[{"__symbolic":"method"}],"registerOnTouched":[{"__symbolic":"method"}],"setDisabledState":[{"__symbolic":"method"}],"_handleFocus":[{"__symbolic":"method"}],"_handleBlur":[{"__symbolic":"method"}],"coerceDateProperty":[{"__symbolic":"method"}],"_formatDate":[{"__symbolic":"method"}],"_getHours12":[{"__symbolic":"method"}],"_selectAndClose":[{"__symbolic":"method"}],"_emitChangeEvent":[{"__symbolic":"method"}],"open":[{"__symbolic":"method"}],"close":[{"__symbolic":"method"}],"_openAsDialog":[{"__symbolic":"method"}],"_openAsPopup":[{"__symbolic":"method"}],"_createDialog":[{"__symbolic":"method"}],"_createPopup":[{"__symbolic":"method"}],"_createPopupPositionStrategy":[{"__symbolic":"method"}]}}}},{"__symbolic":"module","version":1,"metadata":{"Md2DateChange":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"Md2Datepicker"},{"__symbolic":"reference","name":"Date"}]}]}},"Md2DatepickerContent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component"},"arguments":[{"moduleId":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"module"},"member":"id"},"selector":"md2-datepicker-content","templateUrl":"datepicker-content.html","styleUrls":["datepicker-content.css"],"host":{"class":"md2-datepicker-content","[class.md2-datepicker-content-touch]":"datepicker?.touchUi","(keydown)":"_handleKeydown($event)"},"encapsulation":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewEncapsulation"},"member":"None"},"changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy"},"member":"OnPush"}}]}],"members":{"_calendar":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild"},"arguments":[{"__symbolic":"reference","module":"./calendar","name":"Md2Calendar"}]}]}],"_handleKeydown":[{"__symbolic":"method"}]}},"MD2_DATEPICKER_VALUE_ACCESSOR":{"provide":{"__symbolic":"reference","module":"@angular/forms","name":"NG_VALUE_ACCESSOR"},"useExisting":{"__symbolic":"reference","name":"Md2Datepicker"},"multi":true},"MD2_DATEPICKER_VALIDATORS":{"provide":{"__symbolic":"reference","module":"@angular/forms","name":"NG_VALIDATORS"},"useExisting":{"__symbolic":"reference","name":"Md2Datepicker"},"multi":true},"Md2Datepicker":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component"},"arguments":[{"moduleId":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"module"},"member":"id"},"selector":"md2-datepicker","templateUrl":"datepicker.html","styleUrls":["datepicker.css"],"providers":[{"__symbolic":"reference","name":"MD2_DATEPICKER_VALUE_ACCESSOR"},{"__symbolic":"reference","name":"MD2_DATEPICKER_VALIDATORS"}],"host":{"role":"datepicker","[class.md2-datepicker-disabled]":"disabled","[class.md2-datepicker-opened]":"opened","[attr.aria-label]":"placeholder","[attr.aria-required]":"required.toString()","[attr.aria-disabled]":"disabled.toString()"},"encapsulation":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewEncapsulation"},"member":"None"}}]}],"members":{"startAt":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"startView":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"touchUi":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"tabindex":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"mode":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"placeholder":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"timeInterval":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"id":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"type":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"format":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"min":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"max":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"dateFilter":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"required":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"disabled":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"value":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"openOnFocus":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"isOpen":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"onOpen":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output"}}]}],"onClose":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output"}}]}],"change":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output"}}]}],"selectedChanged":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output"}}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,null,null,null,null,null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional"}}]],"parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ElementRef"},{"__symbolic":"reference","module":"../core/overlay/overlay","name":"Overlay"},{"__symbolic":"reference","module":"@angular/core","name":"NgZone"},{"__symbolic":"reference","module":"@angular/core","name":"ViewContainerRef"},{"__symbolic":"reference","module":"./date-locale","name":"DateLocale"},{"__symbolic":"reference","module":"./date-util","name":"DateUtil"},{"__symbolic":"reference","module":"../core/rtl/dir","name":"Dir"}]}],"ngOnDestroy":[{"__symbolic":"method"}],"registerOnValidatorChange":[{"__symbolic":"method"}],"validate":[{"__symbolic":"method"}],"writeValue":[{"__symbolic":"method"}],"registerOnChange":[{"__symbolic":"method"}],"registerOnTouched":[{"__symbolic":"method"}],"setDisabledState":[{"__symbolic":"method"}],"_handleFocus":[{"__symbolic":"method"}],"_handleBlur":[{"__symbolic":"method"}],"coerceDateProperty":[{"__symbolic":"method"}],"_formatDate":[{"__symbolic":"method"}],"_getHours12":[{"__symbolic":"method"}],"_selectAndClose":[{"__symbolic":"method"}],"_emitChangeEvent":[{"__symbolic":"method"}],"open":[{"__symbolic":"method"}],"close":[{"__symbolic":"method"}],"_openAsDialog":[{"__symbolic":"method"}],"_openAsPopup":[{"__symbolic":"method"}],"_createDialog":[{"__symbolic":"method"}],"_createPopup":[{"__symbolic":"method"}],"_createPopupPositionStrategy":[{"__symbolic":"method"}]}}}}]
\ No newline at end of file
diff --git a/package.json b/package.json
index aadbc0bdf..7b1896075 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "md2",
- "version": "0.0.25",
+ "version": "0.0.26",
"description": "Angular2 based Material Design components, directives and services are Accordion, Autocomplete, Chips(Tags), Collapse, Colorpicker, Data Table, Datepicker, Dialog(Modal), Menu, Multiselect, Select, Tabs, Tags(Chips), Toast and Tooltip.",
"main": "./md2.umd.js",
"module": "./index.js",