primeng 11.1.0-rc.1 → 11.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (215) hide show
  1. package/api/primeng-api.metadata.json +1 -1
  2. package/api/translation.d.ts +1 -0
  3. package/api/translationkeys.d.ts +1 -0
  4. package/autocomplete/primeng-autocomplete.metadata.json +1 -1
  5. package/bundles/primeng-api.umd.js +11 -1
  6. package/bundles/primeng-api.umd.js.map +1 -1
  7. package/bundles/primeng-api.umd.min.js +1 -1
  8. package/bundles/primeng-api.umd.min.js.map +1 -1
  9. package/bundles/primeng-autocomplete.umd.js +10 -1
  10. package/bundles/primeng-autocomplete.umd.js.map +1 -1
  11. package/bundles/primeng-autocomplete.umd.min.js +1 -1
  12. package/bundles/primeng-autocomplete.umd.min.js.map +1 -1
  13. package/bundles/primeng-calendar.umd.js +10 -2
  14. package/bundles/primeng-calendar.umd.js.map +1 -1
  15. package/bundles/primeng-calendar.umd.min.js +1 -1
  16. package/bundles/primeng-calendar.umd.min.js.map +1 -1
  17. package/bundles/primeng-carousel.umd.js +9 -1
  18. package/bundles/primeng-carousel.umd.js.map +1 -1
  19. package/bundles/primeng-carousel.umd.min.js.map +1 -1
  20. package/bundles/primeng-cascadeselect.umd.js +9 -1
  21. package/bundles/primeng-cascadeselect.umd.js.map +1 -1
  22. package/bundles/primeng-cascadeselect.umd.min.js.map +1 -1
  23. package/bundles/primeng-checkbox.umd.js +9 -1
  24. package/bundles/primeng-checkbox.umd.js.map +1 -1
  25. package/bundles/primeng-checkbox.umd.min.js.map +1 -1
  26. package/bundles/primeng-chip.umd.js +3 -3
  27. package/bundles/primeng-chip.umd.js.map +1 -1
  28. package/bundles/primeng-chip.umd.min.js +1 -1
  29. package/bundles/primeng-chip.umd.min.js.map +1 -1
  30. package/bundles/primeng-chips.umd.js +9 -1
  31. package/bundles/primeng-chips.umd.js.map +1 -1
  32. package/bundles/primeng-chips.umd.min.js.map +1 -1
  33. package/bundles/primeng-confirmpopup.umd.js +7 -1
  34. package/bundles/primeng-confirmpopup.umd.js.map +1 -1
  35. package/bundles/primeng-confirmpopup.umd.min.js +1 -1
  36. package/bundles/primeng-confirmpopup.umd.min.js.map +1 -1
  37. package/bundles/primeng-contextmenu.umd.js +9 -1
  38. package/bundles/primeng-contextmenu.umd.js.map +1 -1
  39. package/bundles/primeng-contextmenu.umd.min.js.map +1 -1
  40. package/bundles/primeng-dom.umd.js +9 -1
  41. package/bundles/primeng-dom.umd.js.map +1 -1
  42. package/bundles/primeng-dom.umd.min.js.map +1 -1
  43. package/bundles/primeng-dropdown.umd.js +9 -1
  44. package/bundles/primeng-dropdown.umd.js.map +1 -1
  45. package/bundles/primeng-dropdown.umd.min.js.map +1 -1
  46. package/bundles/primeng-editor.umd.js +4 -3
  47. package/bundles/primeng-editor.umd.js.map +1 -1
  48. package/bundles/primeng-editor.umd.min.js +1 -1
  49. package/bundles/primeng-editor.umd.min.js.map +1 -1
  50. package/bundles/primeng-fileupload.umd.js +10 -2
  51. package/bundles/primeng-fileupload.umd.js.map +1 -1
  52. package/bundles/primeng-fileupload.umd.min.js +1 -1
  53. package/bundles/primeng-fileupload.umd.min.js.map +1 -1
  54. package/bundles/primeng-galleria.umd.js +9 -1
  55. package/bundles/primeng-galleria.umd.js.map +1 -1
  56. package/bundles/primeng-galleria.umd.min.js.map +1 -1
  57. package/bundles/primeng-gmap.umd.js +9 -1
  58. package/bundles/primeng-gmap.umd.js.map +1 -1
  59. package/bundles/primeng-gmap.umd.min.js.map +1 -1
  60. package/bundles/primeng-inputnumber.umd.js +9 -1
  61. package/bundles/primeng-inputnumber.umd.js.map +1 -1
  62. package/bundles/primeng-inputnumber.umd.min.js.map +1 -1
  63. package/bundles/primeng-inputtextarea.umd.js +1 -1
  64. package/bundles/primeng-inputtextarea.umd.js.map +1 -1
  65. package/bundles/primeng-inputtextarea.umd.min.js +1 -1
  66. package/bundles/primeng-inputtextarea.umd.min.js.map +1 -1
  67. package/bundles/primeng-keyfilter.umd.js +9 -1
  68. package/bundles/primeng-keyfilter.umd.js.map +1 -1
  69. package/bundles/primeng-keyfilter.umd.min.js.map +1 -1
  70. package/bundles/primeng-listbox.umd.js +9 -1
  71. package/bundles/primeng-listbox.umd.js.map +1 -1
  72. package/bundles/primeng-listbox.umd.min.js.map +1 -1
  73. package/bundles/primeng-menu.umd.js +9 -1
  74. package/bundles/primeng-menu.umd.js.map +1 -1
  75. package/bundles/primeng-menu.umd.min.js.map +1 -1
  76. package/bundles/primeng-messages.umd.js +10 -1
  77. package/bundles/primeng-messages.umd.js.map +1 -1
  78. package/bundles/primeng-messages.umd.min.js +1 -1
  79. package/bundles/primeng-messages.umd.min.js.map +1 -1
  80. package/bundles/primeng-multiselect.umd.js +14 -3
  81. package/bundles/primeng-multiselect.umd.js.map +1 -1
  82. package/bundles/primeng-multiselect.umd.min.js +1 -1
  83. package/bundles/primeng-multiselect.umd.min.js.map +1 -1
  84. package/bundles/primeng-orderlist.umd.js +9 -1
  85. package/bundles/primeng-orderlist.umd.js.map +1 -1
  86. package/bundles/primeng-orderlist.umd.min.js.map +1 -1
  87. package/bundles/primeng-organizationchart.umd.js +9 -1
  88. package/bundles/primeng-organizationchart.umd.js.map +1 -1
  89. package/bundles/primeng-organizationchart.umd.min.js.map +1 -1
  90. package/bundles/primeng-paginator.umd.js +9 -1
  91. package/bundles/primeng-paginator.umd.js.map +1 -1
  92. package/bundles/primeng-paginator.umd.min.js.map +1 -1
  93. package/bundles/primeng-panelmenu.umd.js +9 -1
  94. package/bundles/primeng-panelmenu.umd.js.map +1 -1
  95. package/bundles/primeng-panelmenu.umd.min.js +1 -1
  96. package/bundles/primeng-panelmenu.umd.min.js.map +1 -1
  97. package/bundles/primeng-selectbutton.umd.js +9 -1
  98. package/bundles/primeng-selectbutton.umd.js.map +1 -1
  99. package/bundles/primeng-selectbutton.umd.min.js.map +1 -1
  100. package/bundles/primeng-splitter.umd.js +9 -1
  101. package/bundles/primeng-splitter.umd.js.map +1 -1
  102. package/bundles/primeng-splitter.umd.min.js.map +1 -1
  103. package/bundles/primeng-table.umd.js +24 -7
  104. package/bundles/primeng-table.umd.js.map +1 -1
  105. package/bundles/primeng-table.umd.min.js +1 -1
  106. package/bundles/primeng-table.umd.min.js.map +1 -1
  107. package/bundles/primeng-tabview.umd.js +15 -3
  108. package/bundles/primeng-tabview.umd.js.map +1 -1
  109. package/bundles/primeng-tabview.umd.min.js +1 -1
  110. package/bundles/primeng-tabview.umd.min.js.map +1 -1
  111. package/bundles/primeng-toast.umd.js +10 -2
  112. package/bundles/primeng-toast.umd.js.map +1 -1
  113. package/bundles/primeng-toast.umd.min.js +1 -1
  114. package/bundles/primeng-toast.umd.min.js.map +1 -1
  115. package/bundles/primeng-tree.umd.js +9 -1
  116. package/bundles/primeng-tree.umd.js.map +1 -1
  117. package/bundles/primeng-tree.umd.min.js.map +1 -1
  118. package/bundles/primeng-treetable.umd.js +12 -4
  119. package/bundles/primeng-treetable.umd.js.map +1 -1
  120. package/bundles/primeng-treetable.umd.min.js +1 -1
  121. package/bundles/primeng-treetable.umd.min.js.map +1 -1
  122. package/calendar/primeng-calendar.metadata.json +1 -1
  123. package/chip/chip.d.ts +1 -1
  124. package/chip/primeng-chip.metadata.json +1 -1
  125. package/confirmpopup/confirmpopup.d.ts +1 -0
  126. package/confirmpopup/primeng-confirmpopup.metadata.json +1 -1
  127. package/editor/primeng-editor.metadata.json +1 -1
  128. package/esm2015/api/primengconfig.js +2 -1
  129. package/esm2015/api/translation.js +1 -1
  130. package/esm2015/api/translationkeys.js +2 -1
  131. package/esm2015/autocomplete/autocomplete.js +2 -1
  132. package/esm2015/calendar/calendar.js +2 -2
  133. package/esm2015/chip/chip.js +4 -4
  134. package/esm2015/confirmpopup/confirmpopup.js +8 -2
  135. package/esm2015/editor/editor.js +5 -4
  136. package/esm2015/fileupload/fileupload.js +3 -3
  137. package/esm2015/inputtextarea/inputtextarea.js +2 -2
  138. package/esm2015/messages/messages.js +2 -1
  139. package/esm2015/multiselect/multiselect.js +6 -3
  140. package/esm2015/table/table.js +12 -7
  141. package/esm2015/tabview/tabview.js +12 -4
  142. package/esm2015/toast/toast.js +2 -2
  143. package/esm2015/treetable/treetable.js +4 -4
  144. package/fesm2015/primeng-api.js +2 -0
  145. package/fesm2015/primeng-api.js.map +1 -1
  146. package/fesm2015/primeng-autocomplete.js +1 -0
  147. package/fesm2015/primeng-autocomplete.js.map +1 -1
  148. package/fesm2015/primeng-calendar.js +1 -1
  149. package/fesm2015/primeng-calendar.js.map +1 -1
  150. package/fesm2015/primeng-chip.js +3 -3
  151. package/fesm2015/primeng-chip.js.map +1 -1
  152. package/fesm2015/primeng-confirmpopup.js +7 -1
  153. package/fesm2015/primeng-confirmpopup.js.map +1 -1
  154. package/fesm2015/primeng-editor.js +4 -3
  155. package/fesm2015/primeng-editor.js.map +1 -1
  156. package/fesm2015/primeng-fileupload.js +2 -2
  157. package/fesm2015/primeng-fileupload.js.map +1 -1
  158. package/fesm2015/primeng-inputtextarea.js +1 -1
  159. package/fesm2015/primeng-inputtextarea.js.map +1 -1
  160. package/fesm2015/primeng-messages.js +1 -0
  161. package/fesm2015/primeng-messages.js.map +1 -1
  162. package/fesm2015/primeng-multiselect.js +5 -2
  163. package/fesm2015/primeng-multiselect.js.map +1 -1
  164. package/fesm2015/primeng-table.js +11 -6
  165. package/fesm2015/primeng-table.js.map +1 -1
  166. package/fesm2015/primeng-tabview.js +11 -3
  167. package/fesm2015/primeng-tabview.js.map +1 -1
  168. package/fesm2015/primeng-toast.js +1 -1
  169. package/fesm2015/primeng-toast.js.map +1 -1
  170. package/fesm2015/primeng-treetable.js +3 -3
  171. package/fesm2015/primeng-treetable.js.map +1 -1
  172. package/fileupload/primeng-fileupload.metadata.json +1 -1
  173. package/messages/primeng-messages.metadata.json +1 -1
  174. package/multiselect/multiselect.d.ts +1 -1
  175. package/multiselect/primeng-multiselect.metadata.json +1 -1
  176. package/package.json +1 -1
  177. package/resources/components/editor/editor.css +4 -0
  178. package/resources/themes/arya-blue/theme.css +58 -11
  179. package/resources/themes/arya-green/theme.css +58 -11
  180. package/resources/themes/arya-orange/theme.css +58 -11
  181. package/resources/themes/arya-purple/theme.css +58 -11
  182. package/resources/themes/bootstrap4-dark-blue/theme.css +58 -11
  183. package/resources/themes/bootstrap4-dark-purple/theme.css +58 -11
  184. package/resources/themes/bootstrap4-light-blue/theme.css +58 -11
  185. package/resources/themes/bootstrap4-light-purple/theme.css +58 -11
  186. package/resources/themes/fluent-light/theme.css +58 -11
  187. package/resources/themes/luna-amber/theme.css +58 -11
  188. package/resources/themes/luna-blue/theme.css +58 -11
  189. package/resources/themes/luna-green/theme.css +58 -11
  190. package/resources/themes/luna-pink/theme.css +58 -11
  191. package/resources/themes/md-dark-deeppurple/theme.css +271 -50
  192. package/resources/themes/md-dark-indigo/theme.css +271 -50
  193. package/resources/themes/md-light-deeppurple/theme.css +278 -57
  194. package/resources/themes/md-light-indigo/theme.css +278 -57
  195. package/resources/themes/mdc-dark-deeppurple/theme.css +285 -64
  196. package/resources/themes/mdc-dark-indigo/theme.css +285 -64
  197. package/resources/themes/mdc-light-deeppurple/theme.css +287 -66
  198. package/resources/themes/mdc-light-indigo/theme.css +287 -66
  199. package/resources/themes/nova/theme.css +58 -11
  200. package/resources/themes/nova-accent/theme.css +58 -11
  201. package/resources/themes/nova-alt/theme.css +58 -11
  202. package/resources/themes/rhea/theme.css +58 -11
  203. package/resources/themes/saga-blue/theme.css +58 -11
  204. package/resources/themes/saga-green/theme.css +58 -11
  205. package/resources/themes/saga-orange/theme.css +58 -11
  206. package/resources/themes/saga-purple/theme.css +58 -11
  207. package/resources/themes/vela-blue/theme.css +58 -11
  208. package/resources/themes/vela-green/theme.css +58 -11
  209. package/resources/themes/vela-orange/theme.css +58 -11
  210. package/resources/themes/vela-purple/theme.css +58 -11
  211. package/table/primeng-table.metadata.json +1 -1
  212. package/table/table.d.ts +1 -0
  213. package/tabview/primeng-tabview.metadata.json +1 -1
  214. package/tabview/tabview.d.ts +3 -1
  215. package/toast/primeng-toast.metadata.json +1 -1
@@ -4,7 +4,7 @@ import { CommonModule } from '@angular/common';
4
4
  class Chip {
5
5
  constructor() {
6
6
  this.removeIcon = "pi pi-times-circle";
7
- this.remove = new EventEmitter();
7
+ this.onRemove = new EventEmitter();
8
8
  this.visible = true;
9
9
  }
10
10
  containerClass() {
@@ -15,7 +15,7 @@ class Chip {
15
15
  }
16
16
  close(event) {
17
17
  this.visible = false;
18
- this.remove.emit(event);
18
+ this.onRemove.emit(event);
19
19
  }
20
20
  }
21
21
  Chip.decorators = [
@@ -43,7 +43,7 @@ Chip.propDecorators = {
43
43
  styleClass: [{ type: Input }],
44
44
  removable: [{ type: Input }],
45
45
  removeIcon: [{ type: Input }],
46
- remove: [{ type: Output }]
46
+ onRemove: [{ type: Output }]
47
47
  };
48
48
  class ChipModule {
49
49
  }
@@ -1 +1 @@
1
- {"version":3,"file":"primeng-chip.js","sources":["../../src/app/components/chip/chip.ts","../../src/app/components/chip/primeng-chip.ts"],"sourcesContent":["import { NgModule, Component, ChangeDetectionStrategy, ViewEncapsulation, Input, Output, EventEmitter } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'p-chip',\n template: `\n <div [ngClass]=\"containerClass()\" [class]=\"styleClass\" [ngStyle]=\"style\" *ngIf=\"visible\">\n <ng-content></ng-content>\n <img [src]=\"image\" *ngIf=\"image;else iconTemplate\">\n <ng-template #iconTemplate><span *ngIf=\"icon\" [class]=\"icon\" [ngClass]=\"'p-chip-icon'\"></span></ng-template>\n <div class=\"p-chip-text\" *ngIf=\"label\">{{label}}</div>\n <span *ngIf=\"removable\" tabindex=\"0\" [class]=\"removeIcon\" [ngClass]=\"'pi-chip-remove-icon'\" (click)=\"close($event)\" (keydown.enter)=\"close($event)\"></span>\n </div>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n styleUrls: ['./chip.css']\n})\nexport class Chip {\n\n @Input() label: string;\n\n @Input() icon: string;\n\n @Input() image: string;\n\n @Input() style: any;\n\n @Input() styleClass: string;\n\n @Input() removable: boolean;\n\n @Input() removeIcon: string = \"pi pi-times-circle\";\n\n @Output() remove: EventEmitter<any> = new EventEmitter();\n\n visible: boolean = true;\n\n containerClass() {\n return {\n 'p-chip p-component': true,\n 'p-chip-image': this.image != null\n };\n }\n\n close(event) {\n this.visible = false;\n this.remove.emit(event)\n }\n}\n\n@NgModule({\n imports: [CommonModule],\n exports: [Chip],\n declarations: [Chip]\n})\nexport class ChipModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":";;;MAkBa,IAAI;IAfjB;QA6Ba,eAAU,GAAW,oBAAoB,CAAC;QAEzC,WAAM,GAAsB,IAAI,YAAY,EAAE,CAAC;QAEzD,YAAO,GAAY,IAAI,CAAC;KAa3B;IAXG,cAAc;QACV,OAAO;YACH,oBAAoB,EAAE,IAAI;YAC1B,cAAc,EAAE,IAAI,CAAC,KAAK,IAAI,IAAI;SACrC,CAAC;KACL;IAED,KAAK,CAAC,KAAK;QACP,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACrB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;KAC1B;;;YA7CJ,SAAS,SAAC;gBACP,QAAQ,EAAE,QAAQ;gBAClB,QAAQ,EAAE;;;;;;;;KAQT;gBACD,eAAe,EAAE,uBAAuB,CAAC,MAAM;gBAC/C,aAAa,EAAE,iBAAiB,CAAC,IAAI;;aAExC;;;oBAGI,KAAK;mBAEL,KAAK;oBAEL,KAAK;oBAEL,KAAK;yBAEL,KAAK;wBAEL,KAAK;yBAEL,KAAK;qBAEL,MAAM;;MAsBE,UAAU;;;YALtB,QAAQ,SAAC;gBACN,OAAO,EAAE,CAAC,YAAY,CAAC;gBACvB,OAAO,EAAE,CAAC,IAAI,CAAC;gBACf,YAAY,EAAE,CAAC,IAAI,CAAC;aACvB;;;ACvDD;;;;;;"}
1
+ {"version":3,"file":"primeng-chip.js","sources":["../../src/app/components/chip/chip.ts","../../src/app/components/chip/primeng-chip.ts"],"sourcesContent":["import { NgModule, Component, ChangeDetectionStrategy, ViewEncapsulation, Input, Output, EventEmitter } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'p-chip',\n template: `\n <div [ngClass]=\"containerClass()\" [class]=\"styleClass\" [ngStyle]=\"style\" *ngIf=\"visible\">\n <ng-content></ng-content>\n <img [src]=\"image\" *ngIf=\"image;else iconTemplate\">\n <ng-template #iconTemplate><span *ngIf=\"icon\" [class]=\"icon\" [ngClass]=\"'p-chip-icon'\"></span></ng-template>\n <div class=\"p-chip-text\" *ngIf=\"label\">{{label}}</div>\n <span *ngIf=\"removable\" tabindex=\"0\" [class]=\"removeIcon\" [ngClass]=\"'pi-chip-remove-icon'\" (click)=\"close($event)\" (keydown.enter)=\"close($event)\"></span>\n </div>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n styleUrls: ['./chip.css']\n})\nexport class Chip {\n\n @Input() label: string;\n\n @Input() icon: string;\n\n @Input() image: string;\n\n @Input() style: any;\n\n @Input() styleClass: string;\n\n @Input() removable: boolean;\n\n @Input() removeIcon: string = \"pi pi-times-circle\";\n\n @Output() onRemove: EventEmitter<any> = new EventEmitter();\n\n visible: boolean = true;\n\n containerClass() {\n return {\n 'p-chip p-component': true,\n 'p-chip-image': this.image != null\n };\n }\n\n close(event) {\n this.visible = false;\n this.onRemove.emit(event)\n }\n}\n\n@NgModule({\n imports: [CommonModule],\n exports: [Chip],\n declarations: [Chip]\n})\nexport class ChipModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":";;;MAkBa,IAAI;IAfjB;QA6Ba,eAAU,GAAW,oBAAoB,CAAC;QAEzC,aAAQ,GAAsB,IAAI,YAAY,EAAE,CAAC;QAE3D,YAAO,GAAY,IAAI,CAAC;KAa3B;IAXG,cAAc;QACV,OAAO;YACH,oBAAoB,EAAE,IAAI;YAC1B,cAAc,EAAE,IAAI,CAAC,KAAK,IAAI,IAAI;SACrC,CAAC;KACL;IAED,KAAK,CAAC,KAAK;QACP,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACrB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;KAC5B;;;YA7CJ,SAAS,SAAC;gBACP,QAAQ,EAAE,QAAQ;gBAClB,QAAQ,EAAE;;;;;;;;KAQT;gBACD,eAAe,EAAE,uBAAuB,CAAC,MAAM;gBAC/C,aAAa,EAAE,iBAAiB,CAAC,IAAI;;aAExC;;;oBAGI,KAAK;mBAEL,KAAK;oBAEL,KAAK;oBAEL,KAAK;yBAEL,KAAK;wBAEL,KAAK;yBAEL,KAAK;uBAEL,MAAM;;MAsBE,UAAU;;;YALtB,QAAQ,SAAC;gBACN,OAAO,EAAE,CAAC,YAAY,CAAC;gBACvB,OAAO,EAAE,CAAC,IAAI,CAAC;gBACf,YAAY,EAAE,CAAC,IAAI,CAAC;aACvB;;;ACvDD;;;;;;"}
@@ -161,6 +161,12 @@ class ConfirmPopup {
161
161
  this.confirmation = null;
162
162
  this.container = null;
163
163
  }
164
+ restoreAppend() {
165
+ if (this.container) {
166
+ document.body.removeChild(this.container);
167
+ }
168
+ this.onContainerDestroy();
169
+ }
164
170
  get acceptButtonLabel() {
165
171
  return this.confirmation.acceptLabel || this.config.getTranslation(TranslationKeys.ACCEPT);
166
172
  }
@@ -168,7 +174,7 @@ class ConfirmPopup {
168
174
  return this.confirmation.rejectLabel || this.config.getTranslation(TranslationKeys.REJECT);
169
175
  }
170
176
  ngOnDestroy() {
171
- this.onContainerDestroy();
177
+ this.restoreAppend();
172
178
  if (this.subscription) {
173
179
  this.subscription.unsubscribe();
174
180
  }
@@ -1 +1 @@
1
- {"version":3,"file":"primeng-confirmpopup.js","sources":["../../src/app/components/confirmpopup/confirmpopup.ts","../../src/app/components/confirmpopup/primeng-confirmpopup.ts"],"sourcesContent":["import {NgModule ,Component, ChangeDetectionStrategy, ViewEncapsulation, ElementRef, ChangeDetectorRef, OnDestroy, Input, EventEmitter, Renderer2} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {Confirmation, ConfirmationService, PrimeNGConfig, TranslationKeys} from 'primeng/api';\nimport {Subscription} from 'rxjs';\nimport {ButtonModule} from 'primeng/button';\nimport {trigger,state,style,transition,animate,AnimationEvent} from '@angular/animations';\nimport {DomHandler, ConnectedOverlayScrollHandler} from 'primeng/dom';\n\n@Component({\n selector: 'p-confirmPopup',\n template: `\n <div *ngIf=\"visible\" [ngClass]=\"'p-confirm-popup p-component'\" [ngStyle]=\"style\" [class]=\"styleClass\"\n [@animation]=\"{value: 'open', params: {showTransitionParams: showTransitionOptions, hideTransitionParams: hideTransitionOptions}}\"\n (@animation.start)=\"onAnimationStart($event)\" (@animation.done)=\"onAnimationEnd($event)\">\n <div #content class=\"p-confirm-popup-content\">\n <i [ngClass]=\"'p-confirm-popup-icon'\" [class]=\"confirmation.icon\" *ngIf=\"confirmation.icon\"></i>\n <span class=\"p-confirm-popup-message\">{{confirmation.message}}</span>\n </div>\n <div class=\"p-confirm-popup-footer\">\n <button type=\"button\" pButton [icon]=\"confirmation.rejectIcon\" [label]=\"rejectButtonLabel\" (click)=\"reject()\" [ngClass]=\"'p-confirm-popup-reject p-button-sm'\"\n [class]=\"confirmation.rejectButtonStyleClass || 'p-button-text'\" *ngIf=\"confirmation.rejectVisible !== false\" [attr.aria-label]=\"rejectButtonLabel\"></button>\n <button type=\"button\" pButton [icon]=\"confirmation.acceptIcon\" [label]=\"acceptButtonLabel\" (click)=\"accept()\" [ngClass]=\"'p-confirm-popup-accept p-button-sm'\"\n [class]=\"confirmation.acceptButtonStyleClass\" *ngIf=\"confirmation.acceptVisible !== false\" [attr.aria-label]=\"acceptButtonLabel\"></button>\n </div>\n </div>\n `,\n animations: [\n trigger('animation', [\n state('void', style({\n transform: 'scaleY(0.8)',\n opacity: 0\n })),\n state('open', style({\n transform: 'translateY(0)',\n opacity: 1\n })),\n transition('void => open', animate('{{showTransitionParams}}')),\n transition('open => void', animate('{{hideTransitionParams}}')),\n ])\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n styleUrls: ['./confirmpopup.css']\n})\nexport class ConfirmPopup implements OnDestroy {\n\n @Input() key: string;\n\n @Input() showTransitionOptions: string = '.12s cubic-bezier(0, 0, 0.2, 1)';\n\n @Input() hideTransitionOptions: string = '.1s linear';\n\n @Input() autoZIndex: boolean = true;\n\n @Input() baseZIndex: number = 0;\n\n @Input() style: any;\n\n @Input() styleClass: string;\n\n container: HTMLDivElement;\n\n subscription: Subscription;\n\n confirmation: Confirmation;\n\n _visible: boolean;\n\n documentClickListener: any;\n\n documentResizeListener: any;\n\n scrollHandler: any;\n\n @Input() get visible(): any {\n return this._visible;\n }\n set visible(value:any) {\n this._visible = value;\n this.cd.markForCheck();\n }\n\n constructor(public el: ElementRef, private confirmationService: ConfirmationService, public renderer: Renderer2, private cd: ChangeDetectorRef, public config: PrimeNGConfig) {\n this.subscription = this.confirmationService.requireConfirmation$.subscribe(confirmation => {\n if (!confirmation) {\n this.hide();\n return;\n }\n\n if (confirmation.key === this.key) {\n this.confirmation = confirmation;\n if (this.confirmation.accept) {\n this.confirmation.acceptEvent = new EventEmitter();\n this.confirmation.acceptEvent.subscribe(this.confirmation.accept);\n }\n\n if (this.confirmation.reject) {\n this.confirmation.rejectEvent = new EventEmitter();\n this.confirmation.rejectEvent.subscribe(this.confirmation.reject);\n }\n\n this.visible = true;\n }\n });\n }\n\n onAnimationStart(event: AnimationEvent) {\n if (event.toState === 'open') {\n this.container = event.element;\n document.body.appendChild(this.container);\n this.align();\n this.bindListeners();\n }\n }\n\n onAnimationEnd(event: AnimationEvent) {\n switch (event.toState) {\n case 'void':\n this.onContainerDestroy();\n break;\n }\n }\n\n align() {\n if (this.autoZIndex) {\n this.container.style.zIndex = String(this.baseZIndex + (++DomHandler.zindex));\n }\n\n DomHandler.absolutePosition(this.container, this.confirmation.target);\n\n const containerOffset = DomHandler.getOffset(this.container);\n const targetOffset = DomHandler.getOffset(this.confirmation.target);\n let arrowLeft = 0;\n\n if (containerOffset.left < targetOffset.left) {\n arrowLeft = targetOffset.left - containerOffset.left;\n }\n this.container.style.setProperty('--overlayArrowLeft', `${arrowLeft}px`);\n\n if (containerOffset.top < targetOffset.top) {\n DomHandler.addClass(this.container, 'p-confirm-popup-flipped');\n }\n }\n\n hide() {\n this.visible = false;\n }\n\n accept() {\n if (this.confirmation.acceptEvent) {\n this.confirmation.acceptEvent.emit();\n }\n\n this.hide();\n }\n\n reject() {\n if (this.confirmation.rejectEvent) {\n this.confirmation.rejectEvent.emit();\n }\n\n this.hide();\n }\n\n bindListeners() {\n this.bindDocumentClickListener();\n this.bindDocumentResizeListener();\n this.bindScrollListener();\n }\n\n unbindListeners() {\n this.unbindDocumentClickListener();\n this.unbindDocumentResizeListener();\n this.unbindScrollListener();\n }\n\n bindDocumentClickListener() {\n if (!this.documentClickListener) {\n let documentEvent = DomHandler.isIOS() ? 'touchstart' : 'click';\n const documentTarget: any = this.el ? this.el.nativeElement.ownerDocument : document;\n\n this.documentClickListener = this.renderer.listen(documentTarget, documentEvent, (event) => {\n let targetElement = <HTMLElement> this.confirmation.target;\n if (this.container !== event.target && !this.container.contains(event.target) &&\n targetElement !== event.target && !targetElement.contains(event.target)) {\n this.hide();\n }\n });\n }\n }\n\n unbindDocumentClickListener() {\n if (this.documentClickListener) {\n this.documentClickListener();\n this.documentClickListener = null;\n }\n }\n\n onWindowResize() {\n this.hide();\n }\n\n bindDocumentResizeListener() {\n this.documentResizeListener = this.onWindowResize.bind(this);\n window.addEventListener('resize', this.documentResizeListener);\n }\n\n unbindDocumentResizeListener() {\n if (this.documentResizeListener) {\n window.removeEventListener('resize', this.documentResizeListener);\n this.documentResizeListener = null;\n }\n }\n\n bindScrollListener() {\n if (!this.scrollHandler) {\n this.scrollHandler = new ConnectedOverlayScrollHandler(this.confirmation.target, () => {\n if (this.visible) {\n this.hide();\n }\n });\n }\n\n this.scrollHandler.bindScrollListener();\n }\n\n unbindScrollListener() {\n if (this.scrollHandler) {\n this.scrollHandler.unbindScrollListener();\n }\n }\n\n unsubscribeConfirmationSubscriptions() {\n if (this.confirmation) {\n if (this.confirmation.acceptEvent) {\n this.confirmation.acceptEvent.unsubscribe();\n }\n\n if (this.confirmation.rejectEvent) {\n this.confirmation.rejectEvent.unsubscribe();\n }\n }\n }\n\n onContainerDestroy() {\n this.unbindListeners();\n this.unsubscribeConfirmationSubscriptions();\n this.confirmation = null;\n this.container = null;\n }\n\n get acceptButtonLabel(): string {\n return this.confirmation.acceptLabel || this.config.getTranslation(TranslationKeys.ACCEPT);\n }\n\n get rejectButtonLabel(): string {\n return this.confirmation.rejectLabel || this.config.getTranslation(TranslationKeys.REJECT);\n }\n\n ngOnDestroy() {\n this.onContainerDestroy();\n\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n}\n\n@NgModule({\n imports: [CommonModule,ButtonModule],\n exports: [ConfirmPopup],\n declarations: [ConfirmPopup]\n})\nexport class ConfirmPopupModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"primeng-confirmpopup.js","sources":["../../src/app/components/confirmpopup/confirmpopup.ts","../../src/app/components/confirmpopup/primeng-confirmpopup.ts"],"sourcesContent":["import {NgModule ,Component, ChangeDetectionStrategy, ViewEncapsulation, ElementRef, ChangeDetectorRef, OnDestroy, Input, EventEmitter, Renderer2} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {Confirmation, ConfirmationService, PrimeNGConfig, TranslationKeys} from 'primeng/api';\nimport {Subscription} from 'rxjs';\nimport {ButtonModule} from 'primeng/button';\nimport {trigger,state,style,transition,animate,AnimationEvent} from '@angular/animations';\nimport {DomHandler, ConnectedOverlayScrollHandler} from 'primeng/dom';\n\n@Component({\n selector: 'p-confirmPopup',\n template: `\n <div *ngIf=\"visible\" [ngClass]=\"'p-confirm-popup p-component'\" [ngStyle]=\"style\" [class]=\"styleClass\"\n [@animation]=\"{value: 'open', params: {showTransitionParams: showTransitionOptions, hideTransitionParams: hideTransitionOptions}}\"\n (@animation.start)=\"onAnimationStart($event)\" (@animation.done)=\"onAnimationEnd($event)\">\n <div #content class=\"p-confirm-popup-content\">\n <i [ngClass]=\"'p-confirm-popup-icon'\" [class]=\"confirmation.icon\" *ngIf=\"confirmation.icon\"></i>\n <span class=\"p-confirm-popup-message\">{{confirmation.message}}</span>\n </div>\n <div class=\"p-confirm-popup-footer\">\n <button type=\"button\" pButton [icon]=\"confirmation.rejectIcon\" [label]=\"rejectButtonLabel\" (click)=\"reject()\" [ngClass]=\"'p-confirm-popup-reject p-button-sm'\"\n [class]=\"confirmation.rejectButtonStyleClass || 'p-button-text'\" *ngIf=\"confirmation.rejectVisible !== false\" [attr.aria-label]=\"rejectButtonLabel\"></button>\n <button type=\"button\" pButton [icon]=\"confirmation.acceptIcon\" [label]=\"acceptButtonLabel\" (click)=\"accept()\" [ngClass]=\"'p-confirm-popup-accept p-button-sm'\"\n [class]=\"confirmation.acceptButtonStyleClass\" *ngIf=\"confirmation.acceptVisible !== false\" [attr.aria-label]=\"acceptButtonLabel\"></button>\n </div>\n </div>\n `,\n animations: [\n trigger('animation', [\n state('void', style({\n transform: 'scaleY(0.8)',\n opacity: 0\n })),\n state('open', style({\n transform: 'translateY(0)',\n opacity: 1\n })),\n transition('void => open', animate('{{showTransitionParams}}')),\n transition('open => void', animate('{{hideTransitionParams}}')),\n ])\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n styleUrls: ['./confirmpopup.css']\n})\nexport class ConfirmPopup implements OnDestroy {\n\n @Input() key: string;\n\n @Input() showTransitionOptions: string = '.12s cubic-bezier(0, 0, 0.2, 1)';\n\n @Input() hideTransitionOptions: string = '.1s linear';\n\n @Input() autoZIndex: boolean = true;\n\n @Input() baseZIndex: number = 0;\n\n @Input() style: any;\n\n @Input() styleClass: string;\n\n container: HTMLDivElement;\n\n subscription: Subscription;\n\n confirmation: Confirmation;\n\n _visible: boolean;\n\n documentClickListener: any;\n\n documentResizeListener: any;\n\n scrollHandler: any;\n\n @Input() get visible(): any {\n return this._visible;\n }\n set visible(value:any) {\n this._visible = value;\n this.cd.markForCheck();\n }\n\n constructor(public el: ElementRef, private confirmationService: ConfirmationService, public renderer: Renderer2, private cd: ChangeDetectorRef, public config: PrimeNGConfig) {\n this.subscription = this.confirmationService.requireConfirmation$.subscribe(confirmation => {\n if (!confirmation) {\n this.hide();\n return;\n }\n\n if (confirmation.key === this.key) {\n this.confirmation = confirmation;\n if (this.confirmation.accept) {\n this.confirmation.acceptEvent = new EventEmitter();\n this.confirmation.acceptEvent.subscribe(this.confirmation.accept);\n }\n\n if (this.confirmation.reject) {\n this.confirmation.rejectEvent = new EventEmitter();\n this.confirmation.rejectEvent.subscribe(this.confirmation.reject);\n }\n\n this.visible = true;\n }\n });\n }\n\n onAnimationStart(event: AnimationEvent) {\n if (event.toState === 'open') {\n this.container = event.element;\n document.body.appendChild(this.container);\n this.align();\n this.bindListeners();\n }\n }\n\n onAnimationEnd(event: AnimationEvent) {\n switch (event.toState) {\n case 'void':\n this.onContainerDestroy();\n break;\n }\n }\n\n align() {\n if (this.autoZIndex) {\n this.container.style.zIndex = String(this.baseZIndex + (++DomHandler.zindex));\n }\n\n DomHandler.absolutePosition(this.container, this.confirmation.target);\n\n const containerOffset = DomHandler.getOffset(this.container);\n const targetOffset = DomHandler.getOffset(this.confirmation.target);\n let arrowLeft = 0;\n\n if (containerOffset.left < targetOffset.left) {\n arrowLeft = targetOffset.left - containerOffset.left;\n }\n this.container.style.setProperty('--overlayArrowLeft', `${arrowLeft}px`);\n\n if (containerOffset.top < targetOffset.top) {\n DomHandler.addClass(this.container, 'p-confirm-popup-flipped');\n }\n }\n\n hide() {\n this.visible = false;\n }\n\n accept() {\n if (this.confirmation.acceptEvent) {\n this.confirmation.acceptEvent.emit();\n }\n\n this.hide();\n }\n\n reject() {\n if (this.confirmation.rejectEvent) {\n this.confirmation.rejectEvent.emit();\n }\n\n this.hide();\n }\n\n bindListeners() {\n this.bindDocumentClickListener();\n this.bindDocumentResizeListener();\n this.bindScrollListener();\n }\n\n unbindListeners() {\n this.unbindDocumentClickListener();\n this.unbindDocumentResizeListener();\n this.unbindScrollListener();\n }\n\n bindDocumentClickListener() {\n if (!this.documentClickListener) {\n let documentEvent = DomHandler.isIOS() ? 'touchstart' : 'click';\n const documentTarget: any = this.el ? this.el.nativeElement.ownerDocument : document;\n\n this.documentClickListener = this.renderer.listen(documentTarget, documentEvent, (event) => {\n let targetElement = <HTMLElement> this.confirmation.target;\n if (this.container !== event.target && !this.container.contains(event.target) &&\n targetElement !== event.target && !targetElement.contains(event.target)) {\n this.hide();\n }\n });\n }\n }\n\n unbindDocumentClickListener() {\n if (this.documentClickListener) {\n this.documentClickListener();\n this.documentClickListener = null;\n }\n }\n\n onWindowResize() {\n this.hide();\n }\n\n bindDocumentResizeListener() {\n this.documentResizeListener = this.onWindowResize.bind(this);\n window.addEventListener('resize', this.documentResizeListener);\n }\n\n unbindDocumentResizeListener() {\n if (this.documentResizeListener) {\n window.removeEventListener('resize', this.documentResizeListener);\n this.documentResizeListener = null;\n }\n }\n\n bindScrollListener() {\n if (!this.scrollHandler) {\n this.scrollHandler = new ConnectedOverlayScrollHandler(this.confirmation.target, () => {\n if (this.visible) {\n this.hide();\n }\n });\n }\n\n this.scrollHandler.bindScrollListener();\n }\n\n unbindScrollListener() {\n if (this.scrollHandler) {\n this.scrollHandler.unbindScrollListener();\n }\n }\n\n unsubscribeConfirmationSubscriptions() {\n if (this.confirmation) {\n if (this.confirmation.acceptEvent) {\n this.confirmation.acceptEvent.unsubscribe();\n }\n\n if (this.confirmation.rejectEvent) {\n this.confirmation.rejectEvent.unsubscribe();\n }\n }\n }\n\n onContainerDestroy() {\n this.unbindListeners();\n this.unsubscribeConfirmationSubscriptions();\n this.confirmation = null;\n this.container = null;\n }\n\n restoreAppend() {\n if (this.container) {\n document.body.removeChild(this.container);\n }\n\n this.onContainerDestroy();\n }\n\n get acceptButtonLabel(): string {\n return this.confirmation.acceptLabel || this.config.getTranslation(TranslationKeys.ACCEPT);\n }\n\n get rejectButtonLabel(): string {\n return this.confirmation.rejectLabel || this.config.getTranslation(TranslationKeys.REJECT);\n }\n\n ngOnDestroy() {\n this.restoreAppend();\n\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n}\n\n@NgModule({\n imports: [CommonModule,ButtonModule],\n exports: [ConfirmPopup],\n declarations: [ConfirmPopup]\n})\nexport class ConfirmPopupModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
@@ -35,7 +35,7 @@ class Editor {
35
35
  scrollingContainer: this.scrollingContainer
36
36
  });
37
37
  if (this.value) {
38
- this.quill.pasteHTML(this.value);
38
+ this.quill.setContents(this.quill.clipboard.convert(this.value));
39
39
  }
40
40
  this.quill.on('text-change', (delta, oldContents, source) => {
41
41
  if (source === 'user') {
@@ -81,7 +81,7 @@ class Editor {
81
81
  this.value = value;
82
82
  if (this.quill) {
83
83
  if (value)
84
- this.quill.pasteHTML(value);
84
+ this.quill.setContents(this.quill.clipboard.convert(value));
85
85
  else
86
86
  this.quill.setText('');
87
87
  }
@@ -163,7 +163,8 @@ Editor.decorators = [
163
163
  `,
164
164
  providers: [EDITOR_VALUE_ACCESSOR],
165
165
  changeDetection: ChangeDetectionStrategy.OnPush,
166
- encapsulation: ViewEncapsulation.None
166
+ encapsulation: ViewEncapsulation.None,
167
+ styles: [".p-editor-container .p-editor-toolbar.ql-snow .ql-picker.ql-expanded .ql-picker-options .ql-picker-item{height:auto;width:auto}"]
167
168
  },] }
168
169
  ];
169
170
  Editor.ctorParameters = () => [
@@ -1 +1 @@
1
- {"version":3,"file":"primeng-editor.js","sources":["../../src/app/components/editor/editor.ts","../../src/app/components/editor/primeng-editor.ts"],"sourcesContent":["import {NgModule,Component,ElementRef,AfterViewInit,Input,Output,EventEmitter,ContentChild,forwardRef,ChangeDetectionStrategy, ViewEncapsulation, ContentChildren, QueryList, AfterContentInit, TemplateRef} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {SharedModule,Header, PrimeTemplate} from 'primeng/api'\nimport {DomHandler} from 'primeng/dom';\nimport {NG_VALUE_ACCESSOR, ControlValueAccessor} from '@angular/forms';\nimport * as Quill from \"quill\";\n\nexport const EDITOR_VALUE_ACCESSOR: any = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => Editor),\n multi: true\n};\n\n@Component({\n selector: 'p-editor',\n template: `\n <div [ngClass]=\"'p-editor-container'\" [class]=\"styleClass\">\n <div class=\"p-editor-toolbar\" *ngIf=\"toolbar || toolbarTemplate\">\n <ng-content select=\"p-header\"></ng-content>\n <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\n </div>\n <div class=\"p-editor-toolbar\" *ngIf=\"!toolbar && !toolbarTemplate\">\n <span class=\"ql-formats\">\n <select class=\"ql-header\">\n <option value=\"1\">Heading</option>\n <option value=\"2\">Subheading</option>\n <option selected>Normal</option>\n </select>\n <select class=\"ql-font\">\n <option selected>Sans Serif</option>\n <option value=\"serif\">Serif</option>\n <option value=\"monospace\">Monospace</option>\n </select>\n </span>\n <span class=\"ql-formats\">\n <button class=\"ql-bold\" aria-label=\"Bold\" type=\"button\"></button>\n <button class=\"ql-italic\" aria-label=\"Italic\" type=\"button\"></button>\n <button class=\"ql-underline\" aria-label=\"Underline\" type=\"button\"></button>\n </span>\n <span class=\"ql-formats\">\n <select class=\"ql-color\"></select>\n <select class=\"ql-background\"></select>\n </span>\n <span class=\"ql-formats\">\n <button class=\"ql-list\" value=\"ordered\" aria-label=\"Ordered List\" type=\"button\"></button>\n <button class=\"ql-list\" value=\"bullet\" aria-label=\"Unordered List\" type=\"button\"></button>\n <select class=\"ql-align\">\n <option selected></option>\n <option value=\"center\"></option>\n <option value=\"right\"></option>\n <option value=\"justify\"></option>\n </select>\n </span>\n <span class=\"ql-formats\">\n <button class=\"ql-link\" aria-label=\"Insert Link\" type=\"button\"></button>\n <button class=\"ql-image\" aria-label=\"Insert Image\" type=\"button\"></button>\n <button class=\"ql-code-block\" aria-label=\"Insert Code Block\" type=\"button\"></button>\n </span>\n <span class=\"ql-formats\">\n <button class=\"ql-clean\" aria-label=\"Remove Styles\" type=\"button\"></button>\n </span>\n </div>\n <div class=\"p-editor-content\" [ngStyle]=\"style\"></div>\n </div>\n `,\n providers: [EDITOR_VALUE_ACCESSOR],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n})\nexport class Editor implements AfterViewInit,AfterContentInit,ControlValueAccessor {\n \n @Output() onTextChange: EventEmitter<any> = new EventEmitter();\n \n @Output() onSelectionChange: EventEmitter<any> = new EventEmitter();\n \n @ContentChild(Header) toolbar;\n \n @Input() style: any;\n \n @Input() styleClass: string;\n \n @Input() placeholder: string;\n \n @Input() formats: string[];\n\n @Input() modules: any;\n\n @Input() bounds: any;\n\n @Input() scrollingContainer: any;\n\n @Input() debug: string;\n \n @Output() onInit: EventEmitter<any> = new EventEmitter();\n\n @ContentChildren(PrimeTemplate) templates: QueryList<any>;\n \n value: string;\n \n _readonly: boolean;\n \n onModelChange: Function = () => {};\n \n onModelTouched: Function = () => {};\n \n quill: any;\n\n toolbarTemplate: TemplateRef<any>;\n\n headerTemplate: TemplateRef<any>;\n \n constructor(public el: ElementRef) {}\n\n ngAfterViewInit() {\n let editorElement = DomHandler.findSingle(this.el.nativeElement ,'div.p-editor-content'); \n let toolbarElement = DomHandler.findSingle(this.el.nativeElement ,'div.p-editor-toolbar'); \n let defaultModule = {toolbar: toolbarElement};\n let modules = this.modules ? {...defaultModule, ...this.modules} : defaultModule;\n\n this.quill = new Quill(editorElement, {\n modules: modules,\n placeholder: this.placeholder,\n readOnly: this.readonly,\n theme: 'snow',\n formats: this.formats,\n bounds: this.bounds,\n debug: this.debug,\n scrollingContainer: this.scrollingContainer\n });\n \n if (this.value) {\n this.quill.pasteHTML(this.value);\n }\n \n this.quill.on('text-change', (delta, oldContents, source) => {\n if (source === 'user') {\n let html = editorElement.children[0].innerHTML;\n let text = this.quill.getText().trim();\n if (html === '<p><br></p>') {\n html = null;\n }\n\n this.onTextChange.emit({\n htmlValue: html,\n textValue: text,\n delta: delta,\n source: source\n });\n \n this.onModelChange(html);\n this.onModelTouched();\n }\n });\n \n this.quill.on('selection-change', (range, oldRange, source) => {\n this.onSelectionChange.emit({\n range: range,\n oldRange: oldRange,\n source: source\n });\n });\n \n this.onInit.emit({\n editor: this.quill\n });\n }\n\n ngAfterContentInit() {\n this.templates.forEach((item) => {\n switch(item.getType()) {\n case 'toolbar':\n this.toolbarTemplate = item.template;\n break;\n case 'header':\n this.headerTemplate = item.template;\n break;\n }\n });\n }\n \n writeValue(value: any) : void {\n this.value = value;\n \n if (this.quill) {\n if (value)\n this.quill.pasteHTML(value);\n else\n this.quill.setText('');\n }\n }\n \n registerOnChange(fn: Function): void {\n this.onModelChange = fn;\n }\n\n registerOnTouched(fn: Function): void {\n this.onModelTouched = fn;\n }\n \n getQuill() {\n return this.quill;\n }\n \n @Input() get readonly(): boolean {\n return this._readonly;\n }\n\n set readonly(val:boolean) {\n this._readonly = val;\n \n if (this.quill) {\n if (this._readonly)\n this.quill.disable();\n else\n this.quill.enable();\n }\n }\n}\n\n@NgModule({\n imports: [CommonModule],\n exports: [Editor,SharedModule],\n declarations: [Editor]\n})\nexport class EditorModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"primeng-editor.js","sources":["../../src/app/components/editor/editor.ts","../../src/app/components/editor/primeng-editor.ts"],"sourcesContent":["import {NgModule,Component,ElementRef,AfterViewInit,Input,Output,EventEmitter,ContentChild,forwardRef,ChangeDetectionStrategy, ViewEncapsulation, ContentChildren, QueryList, AfterContentInit, TemplateRef} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {SharedModule,Header, PrimeTemplate} from 'primeng/api'\nimport {DomHandler} from 'primeng/dom';\nimport {NG_VALUE_ACCESSOR, ControlValueAccessor} from '@angular/forms';\nimport * as Quill from \"quill\";\n\nexport const EDITOR_VALUE_ACCESSOR: any = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => Editor),\n multi: true\n};\n\n@Component({\n selector: 'p-editor',\n template: `\n <div [ngClass]=\"'p-editor-container'\" [class]=\"styleClass\">\n <div class=\"p-editor-toolbar\" *ngIf=\"toolbar || toolbarTemplate\">\n <ng-content select=\"p-header\"></ng-content>\n <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\n </div>\n <div class=\"p-editor-toolbar\" *ngIf=\"!toolbar && !toolbarTemplate\">\n <span class=\"ql-formats\">\n <select class=\"ql-header\">\n <option value=\"1\">Heading</option>\n <option value=\"2\">Subheading</option>\n <option selected>Normal</option>\n </select>\n <select class=\"ql-font\">\n <option selected>Sans Serif</option>\n <option value=\"serif\">Serif</option>\n <option value=\"monospace\">Monospace</option>\n </select>\n </span>\n <span class=\"ql-formats\">\n <button class=\"ql-bold\" aria-label=\"Bold\" type=\"button\"></button>\n <button class=\"ql-italic\" aria-label=\"Italic\" type=\"button\"></button>\n <button class=\"ql-underline\" aria-label=\"Underline\" type=\"button\"></button>\n </span>\n <span class=\"ql-formats\">\n <select class=\"ql-color\"></select>\n <select class=\"ql-background\"></select>\n </span>\n <span class=\"ql-formats\">\n <button class=\"ql-list\" value=\"ordered\" aria-label=\"Ordered List\" type=\"button\"></button>\n <button class=\"ql-list\" value=\"bullet\" aria-label=\"Unordered List\" type=\"button\"></button>\n <select class=\"ql-align\">\n <option selected></option>\n <option value=\"center\"></option>\n <option value=\"right\"></option>\n <option value=\"justify\"></option>\n </select>\n </span>\n <span class=\"ql-formats\">\n <button class=\"ql-link\" aria-label=\"Insert Link\" type=\"button\"></button>\n <button class=\"ql-image\" aria-label=\"Insert Image\" type=\"button\"></button>\n <button class=\"ql-code-block\" aria-label=\"Insert Code Block\" type=\"button\"></button>\n </span>\n <span class=\"ql-formats\">\n <button class=\"ql-clean\" aria-label=\"Remove Styles\" type=\"button\"></button>\n </span>\n </div>\n <div class=\"p-editor-content\" [ngStyle]=\"style\"></div>\n </div>\n `,\n providers: [EDITOR_VALUE_ACCESSOR],\n changeDetection: ChangeDetectionStrategy.OnPush,\n styleUrls: ['./editor.css'],\n encapsulation: ViewEncapsulation.None\n})\nexport class Editor implements AfterViewInit,AfterContentInit,ControlValueAccessor {\n \n @Output() onTextChange: EventEmitter<any> = new EventEmitter();\n \n @Output() onSelectionChange: EventEmitter<any> = new EventEmitter();\n \n @ContentChild(Header) toolbar;\n \n @Input() style: any;\n \n @Input() styleClass: string;\n \n @Input() placeholder: string;\n \n @Input() formats: string[];\n\n @Input() modules: any;\n\n @Input() bounds: any;\n\n @Input() scrollingContainer: any;\n\n @Input() debug: string;\n \n @Output() onInit: EventEmitter<any> = new EventEmitter();\n\n @ContentChildren(PrimeTemplate) templates: QueryList<any>;\n \n value: string;\n \n _readonly: boolean;\n \n onModelChange: Function = () => {};\n \n onModelTouched: Function = () => {};\n \n quill: any;\n\n toolbarTemplate: TemplateRef<any>;\n\n headerTemplate: TemplateRef<any>;\n \n constructor(public el: ElementRef) {}\n\n ngAfterViewInit() {\n let editorElement = DomHandler.findSingle(this.el.nativeElement ,'div.p-editor-content'); \n let toolbarElement = DomHandler.findSingle(this.el.nativeElement ,'div.p-editor-toolbar'); \n let defaultModule = {toolbar: toolbarElement};\n let modules = this.modules ? {...defaultModule, ...this.modules} : defaultModule;\n\n this.quill = new Quill(editorElement, {\n modules: modules,\n placeholder: this.placeholder,\n readOnly: this.readonly,\n theme: 'snow',\n formats: this.formats,\n bounds: this.bounds,\n debug: this.debug,\n scrollingContainer: this.scrollingContainer\n });\n \n if (this.value) {\n this.quill.setContents(this.quill.clipboard.convert(this.value));\n }\n \n this.quill.on('text-change', (delta, oldContents, source) => {\n if (source === 'user') {\n let html = editorElement.children[0].innerHTML;\n let text = this.quill.getText().trim();\n if (html === '<p><br></p>') {\n html = null;\n }\n\n this.onTextChange.emit({\n htmlValue: html,\n textValue: text,\n delta: delta,\n source: source\n });\n \n this.onModelChange(html);\n this.onModelTouched();\n }\n });\n \n this.quill.on('selection-change', (range, oldRange, source) => {\n this.onSelectionChange.emit({\n range: range,\n oldRange: oldRange,\n source: source\n });\n });\n \n this.onInit.emit({\n editor: this.quill\n });\n }\n\n ngAfterContentInit() {\n this.templates.forEach((item) => {\n switch(item.getType()) {\n case 'toolbar':\n this.toolbarTemplate = item.template;\n break;\n case 'header':\n this.headerTemplate = item.template;\n break;\n }\n });\n }\n \n writeValue(value: any) : void {\n this.value = value;\n \n if (this.quill) {\n if (value)\n this.quill.setContents(this.quill.clipboard.convert(value));\n else\n this.quill.setText('');\n }\n }\n \n registerOnChange(fn: Function): void {\n this.onModelChange = fn;\n }\n\n registerOnTouched(fn: Function): void {\n this.onModelTouched = fn;\n }\n \n getQuill() {\n return this.quill;\n }\n \n @Input() get readonly(): boolean {\n return this._readonly;\n }\n\n set readonly(val:boolean) {\n this._readonly = val;\n \n if (this.quill) {\n if (this._readonly)\n this.quill.disable();\n else\n this.quill.enable();\n }\n }\n}\n\n@NgModule({\n imports: [CommonModule],\n exports: [Editor,SharedModule],\n declarations: [Editor]\n})\nexport class EditorModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
@@ -395,10 +395,10 @@ FileUpload.decorators = [
395
395
  </div>
396
396
  <div class="p-fileupload p-fileupload-basic p-component" *ngIf="mode === 'basic'">
397
397
  <p-messages [value]="msgs" [enableService]="false"></p-messages>
398
- <span [ngClass]="{'p-button p-component p-fileupload-choose': true, 'p-fil(eupload-choose-selected': hasFiles(),'p-focus': focus, 'p-disabled':disabled}"
398
+ <span [ngClass]="{'p-button p-component p-fileupload-choose': true, 'p-button-icon-only': !chooseLabel, 'p-fileupload-choose-selected': hasFiles(),'p-focus': focus, 'p-disabled':disabled}"
399
399
  [ngStyle]="style" [class]="styleClass" (mouseup)="onBasicUploaderClick()" (keydown)="onBasicUploaderClick()" tabindex="0" pRipple>
400
400
  <span class="p-button-icon p-button-icon-left pi" [ngClass]="hasFiles()&&!auto ? uploadIcon : chooseIcon"></span>
401
- <span class="p-button-label">{{auto ? chooseButtonLabel : hasFiles() ? files[0].name : chooseLabel}}</span>
401
+ <span class="p-button-label">{{auto ? chooseLabel : hasFiles() ? files[0].name : chooseLabel}}</span>
402
402
  <input #basicfileinput type="file" [accept]="accept" [multiple]="multiple" [disabled]="disabled"
403
403
  (change)="onFileSelect($event)" *ngIf="!hasFiles()" (focus)="onFocus()" (blur)="onBlur()">
404
404
  </span>
@@ -1 +1 @@
1
- {"version":3,"file":"primeng-fileupload.js","sources":["../../src/app/components/fileupload/fileupload.ts","../../src/app/components/fileupload/primeng-fileupload.ts"],"sourcesContent":["import {NgModule,Component,OnDestroy,Input,Output,EventEmitter,TemplateRef,AfterViewInit,AfterContentInit,\n ContentChildren,QueryList,ViewChild,ElementRef,NgZone,ChangeDetectionStrategy, ViewEncapsulation, ChangeDetectorRef} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {DomSanitizer} from '@angular/platform-browser';\nimport {ButtonModule} from 'primeng/button';\nimport {MessagesModule} from 'primeng/messages';\nimport {ProgressBarModule} from 'primeng/progressbar';\nimport {DomHandler} from 'primeng/dom';\nimport {Message, TranslationKeys} from 'primeng/api';\nimport {PrimeTemplate,SharedModule,PrimeNGConfig} from 'primeng/api';\nimport {BlockableUI} from 'primeng/api';\nimport {RippleModule} from 'primeng/ripple'; \nimport {HttpClient, HttpEvent, HttpEventType, HttpHeaders} from \"@angular/common/http\";\n\n@Component({\n selector: 'p-fileUpload',\n template: `\n <div [ngClass]=\"'p-fileupload p-fileupload-advanced p-component'\" [ngStyle]=\"style\" [class]=\"styleClass\" *ngIf=\"mode === 'advanced'\">\n <div class=\"p-fileupload-buttonbar\">\n <span class=\"p-button p-component p-fileupload-choose\" [ngClass]=\"{'p-focus': focus, 'p-disabled':disabled || isChooseDisabled()}\" (focus)=\"onFocus()\" (blur)=\"onBlur()\" pRipple\n (click)=\"choose()\" (keydown.enter)=\"choose()\" tabindex=\"0\"> \n <input #advancedfileinput type=\"file\" (change)=\"onFileSelect($event)\" [multiple]=\"multiple\" [accept]=\"accept\" [disabled]=\"disabled || isChooseDisabled()\" [attr.title]=\"''\">\n <span [ngClass]=\"'p-button-icon p-button-icon-left'\" [class]=\"chooseIcon\"></span>\n <span class=\"p-button-label\">{{chooseButtonLabel}}</span>\n </span>\n\n <p-button *ngIf=\"!auto&&showUploadButton\" type=\"button\" [label]=\"uploadButtonLabel\" [icon]=\"uploadIcon\" (onClick)=\"upload()\" [disabled]=\"!hasFiles() || isFileLimitExceeded()\"></p-button>\n <p-button *ngIf=\"!auto&&showCancelButton\" type=\"button\" [label]=\"cancelButtonLabel\" [icon]=\"cancelIcon\" (onClick)=\"clear()\" [disabled]=\"!hasFiles() || uploading\"></p-button>\n\n <ng-container *ngTemplateOutlet=\"toolbarTemplate\"></ng-container>\n </div>\n <div #content class=\"p-fileupload-content\" (dragenter)=\"onDragEnter($event)\" (dragleave)=\"onDragLeave($event)\" (drop)=\"onDrop($event)\">\n <p-progressBar [value]=\"progress\" [showValue]=\"false\" *ngIf=\"hasFiles()\"></p-progressBar>\n\n <p-messages [value]=\"msgs\" [enableService]=\"false\"></p-messages>\n\n <div class=\"p-fileupload-files\" *ngIf=\"hasFiles()\">\n <div *ngIf=\"!fileTemplate\">\n <div class=\"p-fileupload-row\" *ngFor=\"let file of files; let i = index;\">\n <div><img [src]=\"file.objectURL\" *ngIf=\"isImage(file)\" [width]=\"previewWidth\" /></div>\n <div>{{file.name}}</div>\n <div>{{formatSize(file.size)}}</div>\n <div>\n <button type=\"button\" icon=\"pi pi-times\" pButton (click)=\"remove($event,i)\" [disabled]=\"uploading\"></button>\n </div>\n </div>\n </div>\n <div *ngIf=\"fileTemplate\">\n <ng-template ngFor [ngForOf]=\"files\" [ngForTemplate]=\"fileTemplate\"></ng-template>\n </div>\n </div>\n <ng-container *ngTemplateOutlet=\"contentTemplate; context: {$implicit: files}\"></ng-container>\n </div>\n </div>\n <div class=\"p-fileupload p-fileupload-basic p-component\" *ngIf=\"mode === 'basic'\">\n <p-messages [value]=\"msgs\" [enableService]=\"false\"></p-messages>\n <span [ngClass]=\"{'p-button p-component p-fileupload-choose': true, 'p-fil(eupload-choose-selected': hasFiles(),'p-focus': focus, 'p-disabled':disabled}\"\n [ngStyle]=\"style\" [class]=\"styleClass\" (mouseup)=\"onBasicUploaderClick()\" (keydown)=\"onBasicUploaderClick()\" tabindex=\"0\" pRipple>\n <span class=\"p-button-icon p-button-icon-left pi\" [ngClass]=\"hasFiles()&&!auto ? uploadIcon : chooseIcon\"></span>\n <span class=\"p-button-label\">{{auto ? chooseButtonLabel : hasFiles() ? files[0].name : chooseLabel}}</span>\n <input #basicfileinput type=\"file\" [accept]=\"accept\" [multiple]=\"multiple\" [disabled]=\"disabled\"\n (change)=\"onFileSelect($event)\" *ngIf=\"!hasFiles()\" (focus)=\"onFocus()\" (blur)=\"onBlur()\">\n </span>\n </div>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n styleUrls: ['./fileupload.css']\n})\nexport class FileUpload implements AfterViewInit,AfterContentInit,OnDestroy,BlockableUI {\n\n @Input() name: string;\n\n @Input() url: string;\n\n @Input() method: string = 'post';\n\n @Input() multiple: boolean;\n\n @Input() accept: string;\n\n @Input() disabled: boolean;\n\n @Input() auto: boolean;\n\n @Input() withCredentials: boolean;\n\n @Input() maxFileSize: number;\n\n @Input() invalidFileSizeMessageSummary: string = '{0}: Invalid file size, ';\n\n @Input() invalidFileSizeMessageDetail: string = 'maximum upload size is {0}.';\n\n @Input() invalidFileTypeMessageSummary: string = '{0}: Invalid file type, ';\n\n @Input() invalidFileTypeMessageDetail: string = 'allowed file types: {0}.';\n\n @Input() invalidFileLimitMessageDetail: string = 'limit is {0} at most.';\n\n @Input() invalidFileLimitMessageSummary: string = 'Maximum number of files exceeded, ';\n\n @Input() style: any;\n\n @Input() styleClass: string;\n\n @Input() previewWidth: number = 50;\n\n @Input() chooseLabel: string;\n\n @Input() uploadLabel: string;\n\n @Input() cancelLabel: string;\n\n @Input() chooseIcon: string = 'pi pi-plus';\n\n @Input() uploadIcon: string = 'pi pi-upload';\n\n @Input() cancelIcon: string = 'pi pi-times';\n\n @Input() showUploadButton: boolean = true;\n\n @Input() showCancelButton: boolean = true;\n\n @Input() mode: string = 'advanced';\n\n @Input() headers: HttpHeaders;\n \n @Input() customUpload: boolean;\n\n @Input() fileLimit: number;\n\n @Output() onBeforeUpload: EventEmitter<any> = new EventEmitter();\n\n @Output() onSend: EventEmitter<any> = new EventEmitter();\n\n @Output() onUpload: EventEmitter<any> = new EventEmitter();\n\n @Output() onError: EventEmitter<any> = new EventEmitter();\n\n @Output() onClear: EventEmitter<any> = new EventEmitter();\n\n @Output() onRemove: EventEmitter<any> = new EventEmitter();\n\n @Output() onSelect: EventEmitter<any> = new EventEmitter();\n\n @Output() onProgress: EventEmitter<any> = new EventEmitter();\n\n @Output() uploadHandler: EventEmitter<any> = new EventEmitter();\n\n @ContentChildren(PrimeTemplate) templates: QueryList<any>;\n\n @ViewChild('advancedfileinput') advancedFileInput: ElementRef;\n\n @ViewChild('basicfileinput') basicFileInput: ElementRef;\n\n @ViewChild('content') content: ElementRef;\n\n @Input() set files(files) {\n this._files = [];\n\n for(let i = 0; i < files.length; i++) {\n let file = files[i];\n\n if (this.validate(file)) {\n if (this.isImage(file)) {\n (<any>file).objectURL = this.sanitizer.bypassSecurityTrustUrl((window.URL.createObjectURL(files[i])));\n }\n\n this._files.push(files[i]);\n }\n }\n }\n\n get files(): File[] {\n return this._files;\n }\n\n public _files: File[] = [];\n\n public progress: number = 0;\n\n public dragHighlight: boolean;\n\n public msgs: Message[];\n\n public fileTemplate: TemplateRef<any>;\n\n public contentTemplate: TemplateRef<any>;\n\n public toolbarTemplate: TemplateRef<any>;\n\n public uploadedFileCount: number = 0;\n\n focus: boolean;\n\n uploading: boolean;\n\n duplicateIEEvent: boolean; // flag to recognize duplicate onchange event for file input\n\n constructor(private el: ElementRef, public sanitizer: DomSanitizer, public zone: NgZone, private http: HttpClient, public cd: ChangeDetectorRef, public config: PrimeNGConfig){}\n\n ngAfterContentInit() {\n this.templates.forEach((item) => {\n switch(item.getType()) {\n case 'file':\n this.fileTemplate = item.template;\n break;\n\n case 'content':\n this.contentTemplate = item.template;\n break;\n\n case 'toolbar':\n this.toolbarTemplate = item.template;\n break;\n\n default:\n this.fileTemplate = item.template;\n break;\n }\n });\n }\n\n ngAfterViewInit() {\n if (this.mode === 'advanced') {\n this.zone.runOutsideAngular(() => {\n if (this.content)\n this.content.nativeElement.addEventListener('dragover', this.onDragOver.bind(this));\n });\n }\n }\n\n choose() {\n this.advancedFileInput.nativeElement.click();\n }\n\n onFileSelect(event) {\n if (event.type !== 'drop' && this.isIE11() && this.duplicateIEEvent) {\n this.duplicateIEEvent = false;\n return;\n }\n\n this.msgs = [];\n if (!this.multiple) {\n this.files = [];\n }\n\n let files = event.dataTransfer ? event.dataTransfer.files : event.target.files;\n for(let i = 0; i < files.length; i++) {\n let file = files[i];\n\n if (!this.isFileSelected(file)){\n if (this.validate(file)) {\n if (this.isImage(file)) {\n file.objectURL = this.sanitizer.bypassSecurityTrustUrl((window.URL.createObjectURL(files[i])));\n }\n\n this.files.push(files[i]);\n }\n }\n }\n\n this.onSelect.emit({originalEvent: event, files: files, currentFiles: this.files});\n\n if (this.fileLimit && this.mode == \"advanced\") {\n this.checkFileLimit();\n }\n\n if (this.hasFiles() && this.auto && (!(this.mode === \"advanced\") || !this.isFileLimitExceeded())) {\n this.upload();\n }\n\n if (event.type !== 'drop' && this.isIE11()) {\n this.clearIEInput();\n } else {\n this.clearInputElement();\n }\n }\n\n isFileSelected(file: File): boolean{\n for(let sFile of this.files){\n if ((sFile.name + sFile.type + sFile.size) === (file.name + file.type+file.size)) {\n return true;\n }\n }\n\n return false;\n }\n\n isIE11() {\n return !!window['MSInputMethodContext'] && !!document['documentMode'];\n }\n\n validate(file: File): boolean {\n if (this.accept && !this.isFileTypeValid(file)) {\n this.msgs.push({\n severity: 'error',\n summary: this.invalidFileTypeMessageSummary.replace('{0}', file.name),\n detail: this.invalidFileTypeMessageDetail.replace('{0}', this.accept)\n });\n return false;\n }\n\n if (this.maxFileSize && file.size > this.maxFileSize) {\n this.msgs.push({\n severity: 'error',\n summary: this.invalidFileSizeMessageSummary.replace('{0}', file.name),\n detail: this.invalidFileSizeMessageDetail.replace('{0}', this.formatSize(this.maxFileSize))\n });\n return false;\n }\n\n return true;\n }\n\n private isFileTypeValid(file: File): boolean {\n let acceptableTypes = this.accept.split(',').map(type => type.trim());\n for(let type of acceptableTypes) {\n let acceptable = this.isWildcard(type) ? this.getTypeClass(file.type) === this.getTypeClass(type)\n : file.type == type || this.getFileExtension(file).toLowerCase() === type.toLowerCase();\n\n if (acceptable) {\n return true;\n }\n }\n\n return false;\n }\n\n getTypeClass(fileType: string): string {\n return fileType.substring(0, fileType.indexOf('/'));\n }\n\n isWildcard(fileType: string): boolean {\n return fileType.indexOf('*') !== -1;\n }\n\n getFileExtension(file: File): string {\n return '.' + file.name.split('.').pop();\n }\n\n isImage(file: File): boolean {\n return /^image\\//.test(file.type);\n }\n\n onImageLoad(img: any) {\n window.URL.revokeObjectURL(img.src);\n }\n\n upload() {\n if (this.customUpload) {\n if (this.fileLimit) {\n this.uploadedFileCount += this.files.length; \n }\n \n this.uploadHandler.emit({\n files: this.files\n });\n\n this.cd.markForCheck();\n }\n else {\n this.uploading = true;\n this.msgs = [];\n let formData = new FormData();\n\n this.onBeforeUpload.emit({\n 'formData': formData\n });\n\n for (let i = 0; i < this.files.length; i++) {\n formData.append(this.name, this.files[i], this.files[i].name);\n }\n\n this.http[this.method](this.url, formData, {\n headers: this.headers, reportProgress: true, observe: 'events', withCredentials: this.withCredentials\n }).subscribe( (event: HttpEvent<any>) => {\n switch (event.type) {\n case HttpEventType.Sent:\n this.onSend.emit({\n originalEvent: event,\n 'formData': formData\n });\n break;\n case HttpEventType.Response:\n this.uploading = false;\n this.progress = 0;\n\n if (event['status'] >= 200 && event['status'] < 300) {\n if (this.fileLimit) {\n this.uploadedFileCount += this.files.length; \n }\n\n this.onUpload.emit({originalEvent: event, files: this.files});\n } else {\n this.onError.emit({files: this.files});\n }\n\n this.clear();\n break;\n case HttpEventType.UploadProgress: {\n if (event['loaded']) {\n this.progress = Math.round((event['loaded'] * 100) / event['total']);\n }\n\n this.onProgress.emit({originalEvent: event, progress: this.progress});\n break;\n }\n }\n\n this.cd.markForCheck();\n },\n error => {\n this.uploading = false;\n this.onError.emit({files: this.files, error: error});\n });\n }\n }\n\n clear() {\n this.files = [];\n this.onClear.emit();\n this.clearInputElement();\n this.cd.markForCheck();\n }\n\n remove(event: Event, index: number) {\n this.clearInputElement();\n this.onRemove.emit({originalEvent: event, file: this.files[index]});\n this.files.splice(index, 1);\n }\n\n isFileLimitExceeded() {\n if (this.fileLimit && this.fileLimit <= this.files.length + this.uploadedFileCount && this.focus) {\n this.focus = false;\n }\n\n return this.fileLimit && this.fileLimit < this.files.length + this.uploadedFileCount;\n }\n\n isChooseDisabled() {\n return this.fileLimit && this.fileLimit <= this.files.length + this.uploadedFileCount;\n }\n\n checkFileLimit() {\n if (this.isFileLimitExceeded()) {\n this.msgs.push({\n severity: 'error',\n summary: this.invalidFileLimitMessageSummary.replace('{0}', this.fileLimit.toString()),\n detail: this.invalidFileLimitMessageDetail.replace('{0}', this.fileLimit.toString())\n });\n }\n }\n\n clearInputElement() {\n if (this.advancedFileInput && this.advancedFileInput.nativeElement) {\n this.advancedFileInput.nativeElement.value = '';\n }\n\n if (this.basicFileInput && this.basicFileInput.nativeElement) {\n this.basicFileInput.nativeElement.value = '';\n }\n }\n\n clearIEInput() {\n if (this.advancedFileInput && this.advancedFileInput.nativeElement) {\n this.duplicateIEEvent = true; //IE11 fix to prevent onFileChange trigger again\n this.advancedFileInput.nativeElement.value = '';\n }\n }\n\n hasFiles(): boolean {\n return this.files && this.files.length > 0;\n }\n\n onDragEnter(e) {\n if (!this.disabled) {\n e.stopPropagation();\n e.preventDefault();\n }\n }\n\n onDragOver(e) {\n if (!this.disabled) {\n DomHandler.addClass(this.content.nativeElement, 'p-fileupload-highlight');\n this.dragHighlight = true;\n e.stopPropagation();\n e.preventDefault();\n }\n }\n\n onDragLeave(event) {\n if (!this.disabled) {\n DomHandler.removeClass(this.content.nativeElement, 'p-fileupload-highlight');\n }\n }\n\n onDrop(event) {\n if (!this.disabled) {\n DomHandler.removeClass(this.content.nativeElement, 'p-fileupload-highlight');\n event.stopPropagation();\n event.preventDefault();\n\n let files = event.dataTransfer ? event.dataTransfer.files : event.target.files;\n let allowDrop = this.multiple||(files && files.length === 1);\n\n if (allowDrop) {\n this.onFileSelect(event);\n }\n }\n }\n\n onFocus() {\n this.focus = true;\n }\n\n onBlur() {\n this.focus = false;\n }\n\n formatSize(bytes) {\n if (bytes == 0) {\n return '0 B';\n }\n let k = 1024,\n dm = 3,\n sizes = ['B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'],\n i = Math.floor(Math.log(bytes) / Math.log(k));\n\n return parseFloat((bytes / Math.pow(k, i)).toFixed(dm)) + ' ' + sizes[i];\n }\n\n onBasicUploaderClick() {\n if (this.hasFiles())\n this.upload();\n else\n this.basicFileInput.nativeElement.click();\n }\n\n getBlockableElement(): HTMLElement {\n return this.el.nativeElement.children[0];\n }\n\n get chooseButtonLabel(): string {\n return this.chooseLabel || this.config.getTranslation(TranslationKeys.CHOOSE);\n }\n\n get uploadButtonLabel(): string {\n return this.uploadLabel || this.config.getTranslation(TranslationKeys.UPLOAD);\n }\n\n get cancelButtonLabel(): string {\n return this.cancelLabel || this.config.getTranslation(TranslationKeys.CANCEL);\n }\n\n ngOnDestroy() {\n if (this.content && this.content.nativeElement) {\n this.content.nativeElement.removeEventListener('dragover', this.onDragOver);\n }\n }\n}\n\n@NgModule({\n imports: [CommonModule,SharedModule,ButtonModule,ProgressBarModule,MessagesModule,RippleModule],\n exports: [FileUpload,SharedModule,ButtonModule,ProgressBarModule,MessagesModule],\n declarations: [FileUpload]\n})\nexport class FileUploadModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"primeng-fileupload.js","sources":["../../src/app/components/fileupload/fileupload.ts","../../src/app/components/fileupload/primeng-fileupload.ts"],"sourcesContent":["import {NgModule,Component,OnDestroy,Input,Output,EventEmitter,TemplateRef,AfterViewInit,AfterContentInit,\n ContentChildren,QueryList,ViewChild,ElementRef,NgZone,ChangeDetectionStrategy, ViewEncapsulation, ChangeDetectorRef} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {DomSanitizer} from '@angular/platform-browser';\nimport {ButtonModule} from 'primeng/button';\nimport {MessagesModule} from 'primeng/messages';\nimport {ProgressBarModule} from 'primeng/progressbar';\nimport {DomHandler} from 'primeng/dom';\nimport {Message, TranslationKeys} from 'primeng/api';\nimport {PrimeTemplate,SharedModule,PrimeNGConfig} from 'primeng/api';\nimport {BlockableUI} from 'primeng/api';\nimport {RippleModule} from 'primeng/ripple'; \nimport {HttpClient, HttpEvent, HttpEventType, HttpHeaders} from \"@angular/common/http\";\n\n@Component({\n selector: 'p-fileUpload',\n template: `\n <div [ngClass]=\"'p-fileupload p-fileupload-advanced p-component'\" [ngStyle]=\"style\" [class]=\"styleClass\" *ngIf=\"mode === 'advanced'\">\n <div class=\"p-fileupload-buttonbar\">\n <span class=\"p-button p-component p-fileupload-choose\" [ngClass]=\"{'p-focus': focus, 'p-disabled':disabled || isChooseDisabled()}\" (focus)=\"onFocus()\" (blur)=\"onBlur()\" pRipple\n (click)=\"choose()\" (keydown.enter)=\"choose()\" tabindex=\"0\"> \n <input #advancedfileinput type=\"file\" (change)=\"onFileSelect($event)\" [multiple]=\"multiple\" [accept]=\"accept\" [disabled]=\"disabled || isChooseDisabled()\" [attr.title]=\"''\">\n <span [ngClass]=\"'p-button-icon p-button-icon-left'\" [class]=\"chooseIcon\"></span>\n <span class=\"p-button-label\">{{chooseButtonLabel}}</span>\n </span>\n\n <p-button *ngIf=\"!auto&&showUploadButton\" type=\"button\" [label]=\"uploadButtonLabel\" [icon]=\"uploadIcon\" (onClick)=\"upload()\" [disabled]=\"!hasFiles() || isFileLimitExceeded()\"></p-button>\n <p-button *ngIf=\"!auto&&showCancelButton\" type=\"button\" [label]=\"cancelButtonLabel\" [icon]=\"cancelIcon\" (onClick)=\"clear()\" [disabled]=\"!hasFiles() || uploading\"></p-button>\n\n <ng-container *ngTemplateOutlet=\"toolbarTemplate\"></ng-container>\n </div>\n <div #content class=\"p-fileupload-content\" (dragenter)=\"onDragEnter($event)\" (dragleave)=\"onDragLeave($event)\" (drop)=\"onDrop($event)\">\n <p-progressBar [value]=\"progress\" [showValue]=\"false\" *ngIf=\"hasFiles()\"></p-progressBar>\n\n <p-messages [value]=\"msgs\" [enableService]=\"false\"></p-messages>\n\n <div class=\"p-fileupload-files\" *ngIf=\"hasFiles()\">\n <div *ngIf=\"!fileTemplate\">\n <div class=\"p-fileupload-row\" *ngFor=\"let file of files; let i = index;\">\n <div><img [src]=\"file.objectURL\" *ngIf=\"isImage(file)\" [width]=\"previewWidth\" /></div>\n <div>{{file.name}}</div>\n <div>{{formatSize(file.size)}}</div>\n <div>\n <button type=\"button\" icon=\"pi pi-times\" pButton (click)=\"remove($event,i)\" [disabled]=\"uploading\"></button>\n </div>\n </div>\n </div>\n <div *ngIf=\"fileTemplate\">\n <ng-template ngFor [ngForOf]=\"files\" [ngForTemplate]=\"fileTemplate\"></ng-template>\n </div>\n </div>\n <ng-container *ngTemplateOutlet=\"contentTemplate; context: {$implicit: files}\"></ng-container>\n </div>\n </div>\n <div class=\"p-fileupload p-fileupload-basic p-component\" *ngIf=\"mode === 'basic'\">\n <p-messages [value]=\"msgs\" [enableService]=\"false\"></p-messages>\n <span [ngClass]=\"{'p-button p-component p-fileupload-choose': true, 'p-button-icon-only': !chooseLabel, 'p-fileupload-choose-selected': hasFiles(),'p-focus': focus, 'p-disabled':disabled}\"\n [ngStyle]=\"style\" [class]=\"styleClass\" (mouseup)=\"onBasicUploaderClick()\" (keydown)=\"onBasicUploaderClick()\" tabindex=\"0\" pRipple>\n <span class=\"p-button-icon p-button-icon-left pi\" [ngClass]=\"hasFiles()&&!auto ? uploadIcon : chooseIcon\"></span>\n <span class=\"p-button-label\">{{auto ? chooseLabel : hasFiles() ? files[0].name : chooseLabel}}</span>\n <input #basicfileinput type=\"file\" [accept]=\"accept\" [multiple]=\"multiple\" [disabled]=\"disabled\"\n (change)=\"onFileSelect($event)\" *ngIf=\"!hasFiles()\" (focus)=\"onFocus()\" (blur)=\"onBlur()\">\n </span>\n </div>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n styleUrls: ['./fileupload.css']\n})\nexport class FileUpload implements AfterViewInit,AfterContentInit,OnDestroy,BlockableUI {\n\n @Input() name: string;\n\n @Input() url: string;\n\n @Input() method: string = 'post';\n\n @Input() multiple: boolean;\n\n @Input() accept: string;\n\n @Input() disabled: boolean;\n\n @Input() auto: boolean;\n\n @Input() withCredentials: boolean;\n\n @Input() maxFileSize: number;\n\n @Input() invalidFileSizeMessageSummary: string = '{0}: Invalid file size, ';\n\n @Input() invalidFileSizeMessageDetail: string = 'maximum upload size is {0}.';\n\n @Input() invalidFileTypeMessageSummary: string = '{0}: Invalid file type, ';\n\n @Input() invalidFileTypeMessageDetail: string = 'allowed file types: {0}.';\n\n @Input() invalidFileLimitMessageDetail: string = 'limit is {0} at most.';\n\n @Input() invalidFileLimitMessageSummary: string = 'Maximum number of files exceeded, ';\n\n @Input() style: any;\n\n @Input() styleClass: string;\n\n @Input() previewWidth: number = 50;\n\n @Input() chooseLabel: string;\n\n @Input() uploadLabel: string;\n\n @Input() cancelLabel: string;\n\n @Input() chooseIcon: string = 'pi pi-plus';\n\n @Input() uploadIcon: string = 'pi pi-upload';\n\n @Input() cancelIcon: string = 'pi pi-times';\n\n @Input() showUploadButton: boolean = true;\n\n @Input() showCancelButton: boolean = true;\n\n @Input() mode: string = 'advanced';\n\n @Input() headers: HttpHeaders;\n \n @Input() customUpload: boolean;\n\n @Input() fileLimit: number;\n\n @Output() onBeforeUpload: EventEmitter<any> = new EventEmitter();\n\n @Output() onSend: EventEmitter<any> = new EventEmitter();\n\n @Output() onUpload: EventEmitter<any> = new EventEmitter();\n\n @Output() onError: EventEmitter<any> = new EventEmitter();\n\n @Output() onClear: EventEmitter<any> = new EventEmitter();\n\n @Output() onRemove: EventEmitter<any> = new EventEmitter();\n\n @Output() onSelect: EventEmitter<any> = new EventEmitter();\n\n @Output() onProgress: EventEmitter<any> = new EventEmitter();\n\n @Output() uploadHandler: EventEmitter<any> = new EventEmitter();\n\n @ContentChildren(PrimeTemplate) templates: QueryList<any>;\n\n @ViewChild('advancedfileinput') advancedFileInput: ElementRef;\n\n @ViewChild('basicfileinput') basicFileInput: ElementRef;\n\n @ViewChild('content') content: ElementRef;\n\n @Input() set files(files) {\n this._files = [];\n\n for(let i = 0; i < files.length; i++) {\n let file = files[i];\n\n if (this.validate(file)) {\n if (this.isImage(file)) {\n (<any>file).objectURL = this.sanitizer.bypassSecurityTrustUrl((window.URL.createObjectURL(files[i])));\n }\n\n this._files.push(files[i]);\n }\n }\n }\n\n get files(): File[] {\n return this._files;\n }\n\n public _files: File[] = [];\n\n public progress: number = 0;\n\n public dragHighlight: boolean;\n\n public msgs: Message[];\n\n public fileTemplate: TemplateRef<any>;\n\n public contentTemplate: TemplateRef<any>;\n\n public toolbarTemplate: TemplateRef<any>;\n\n public uploadedFileCount: number = 0;\n\n focus: boolean;\n\n uploading: boolean;\n\n duplicateIEEvent: boolean; // flag to recognize duplicate onchange event for file input\n\n constructor(private el: ElementRef, public sanitizer: DomSanitizer, public zone: NgZone, private http: HttpClient, public cd: ChangeDetectorRef, public config: PrimeNGConfig){}\n\n ngAfterContentInit() {\n this.templates.forEach((item) => {\n switch(item.getType()) {\n case 'file':\n this.fileTemplate = item.template;\n break;\n\n case 'content':\n this.contentTemplate = item.template;\n break;\n\n case 'toolbar':\n this.toolbarTemplate = item.template;\n break;\n\n default:\n this.fileTemplate = item.template;\n break;\n }\n });\n }\n\n ngAfterViewInit() {\n if (this.mode === 'advanced') {\n this.zone.runOutsideAngular(() => {\n if (this.content)\n this.content.nativeElement.addEventListener('dragover', this.onDragOver.bind(this));\n });\n }\n }\n\n choose() {\n this.advancedFileInput.nativeElement.click();\n }\n\n onFileSelect(event) {\n if (event.type !== 'drop' && this.isIE11() && this.duplicateIEEvent) {\n this.duplicateIEEvent = false;\n return;\n }\n\n this.msgs = [];\n if (!this.multiple) {\n this.files = [];\n }\n\n let files = event.dataTransfer ? event.dataTransfer.files : event.target.files;\n for(let i = 0; i < files.length; i++) {\n let file = files[i];\n\n if (!this.isFileSelected(file)){\n if (this.validate(file)) {\n if (this.isImage(file)) {\n file.objectURL = this.sanitizer.bypassSecurityTrustUrl((window.URL.createObjectURL(files[i])));\n }\n\n this.files.push(files[i]);\n }\n }\n }\n\n this.onSelect.emit({originalEvent: event, files: files, currentFiles: this.files});\n\n if (this.fileLimit && this.mode == \"advanced\") {\n this.checkFileLimit();\n }\n\n if (this.hasFiles() && this.auto && (!(this.mode === \"advanced\") || !this.isFileLimitExceeded())) {\n this.upload();\n }\n\n if (event.type !== 'drop' && this.isIE11()) {\n this.clearIEInput();\n } else {\n this.clearInputElement();\n }\n }\n\n isFileSelected(file: File): boolean{\n for(let sFile of this.files){\n if ((sFile.name + sFile.type + sFile.size) === (file.name + file.type+file.size)) {\n return true;\n }\n }\n\n return false;\n }\n\n isIE11() {\n return !!window['MSInputMethodContext'] && !!document['documentMode'];\n }\n\n validate(file: File): boolean {\n if (this.accept && !this.isFileTypeValid(file)) {\n this.msgs.push({\n severity: 'error',\n summary: this.invalidFileTypeMessageSummary.replace('{0}', file.name),\n detail: this.invalidFileTypeMessageDetail.replace('{0}', this.accept)\n });\n return false;\n }\n\n if (this.maxFileSize && file.size > this.maxFileSize) {\n this.msgs.push({\n severity: 'error',\n summary: this.invalidFileSizeMessageSummary.replace('{0}', file.name),\n detail: this.invalidFileSizeMessageDetail.replace('{0}', this.formatSize(this.maxFileSize))\n });\n return false;\n }\n\n return true;\n }\n\n private isFileTypeValid(file: File): boolean {\n let acceptableTypes = this.accept.split(',').map(type => type.trim());\n for(let type of acceptableTypes) {\n let acceptable = this.isWildcard(type) ? this.getTypeClass(file.type) === this.getTypeClass(type)\n : file.type == type || this.getFileExtension(file).toLowerCase() === type.toLowerCase();\n\n if (acceptable) {\n return true;\n }\n }\n\n return false;\n }\n\n getTypeClass(fileType: string): string {\n return fileType.substring(0, fileType.indexOf('/'));\n }\n\n isWildcard(fileType: string): boolean {\n return fileType.indexOf('*') !== -1;\n }\n\n getFileExtension(file: File): string {\n return '.' + file.name.split('.').pop();\n }\n\n isImage(file: File): boolean {\n return /^image\\//.test(file.type);\n }\n\n onImageLoad(img: any) {\n window.URL.revokeObjectURL(img.src);\n }\n\n upload() {\n if (this.customUpload) {\n if (this.fileLimit) {\n this.uploadedFileCount += this.files.length; \n }\n \n this.uploadHandler.emit({\n files: this.files\n });\n\n this.cd.markForCheck();\n }\n else {\n this.uploading = true;\n this.msgs = [];\n let formData = new FormData();\n\n this.onBeforeUpload.emit({\n 'formData': formData\n });\n\n for (let i = 0; i < this.files.length; i++) {\n formData.append(this.name, this.files[i], this.files[i].name);\n }\n\n this.http[this.method](this.url, formData, {\n headers: this.headers, reportProgress: true, observe: 'events', withCredentials: this.withCredentials\n }).subscribe( (event: HttpEvent<any>) => {\n switch (event.type) {\n case HttpEventType.Sent:\n this.onSend.emit({\n originalEvent: event,\n 'formData': formData\n });\n break;\n case HttpEventType.Response:\n this.uploading = false;\n this.progress = 0;\n\n if (event['status'] >= 200 && event['status'] < 300) {\n if (this.fileLimit) {\n this.uploadedFileCount += this.files.length; \n }\n\n this.onUpload.emit({originalEvent: event, files: this.files});\n } else {\n this.onError.emit({files: this.files});\n }\n\n this.clear();\n break;\n case HttpEventType.UploadProgress: {\n if (event['loaded']) {\n this.progress = Math.round((event['loaded'] * 100) / event['total']);\n }\n\n this.onProgress.emit({originalEvent: event, progress: this.progress});\n break;\n }\n }\n\n this.cd.markForCheck();\n },\n error => {\n this.uploading = false;\n this.onError.emit({files: this.files, error: error});\n });\n }\n }\n\n clear() {\n this.files = [];\n this.onClear.emit();\n this.clearInputElement();\n this.cd.markForCheck();\n }\n\n remove(event: Event, index: number) {\n this.clearInputElement();\n this.onRemove.emit({originalEvent: event, file: this.files[index]});\n this.files.splice(index, 1);\n }\n\n isFileLimitExceeded() {\n if (this.fileLimit && this.fileLimit <= this.files.length + this.uploadedFileCount && this.focus) {\n this.focus = false;\n }\n\n return this.fileLimit && this.fileLimit < this.files.length + this.uploadedFileCount;\n }\n\n isChooseDisabled() {\n return this.fileLimit && this.fileLimit <= this.files.length + this.uploadedFileCount;\n }\n\n checkFileLimit() {\n if (this.isFileLimitExceeded()) {\n this.msgs.push({\n severity: 'error',\n summary: this.invalidFileLimitMessageSummary.replace('{0}', this.fileLimit.toString()),\n detail: this.invalidFileLimitMessageDetail.replace('{0}', this.fileLimit.toString())\n });\n }\n }\n\n clearInputElement() {\n if (this.advancedFileInput && this.advancedFileInput.nativeElement) {\n this.advancedFileInput.nativeElement.value = '';\n }\n\n if (this.basicFileInput && this.basicFileInput.nativeElement) {\n this.basicFileInput.nativeElement.value = '';\n }\n }\n\n clearIEInput() {\n if (this.advancedFileInput && this.advancedFileInput.nativeElement) {\n this.duplicateIEEvent = true; //IE11 fix to prevent onFileChange trigger again\n this.advancedFileInput.nativeElement.value = '';\n }\n }\n\n hasFiles(): boolean {\n return this.files && this.files.length > 0;\n }\n\n onDragEnter(e) {\n if (!this.disabled) {\n e.stopPropagation();\n e.preventDefault();\n }\n }\n\n onDragOver(e) {\n if (!this.disabled) {\n DomHandler.addClass(this.content.nativeElement, 'p-fileupload-highlight');\n this.dragHighlight = true;\n e.stopPropagation();\n e.preventDefault();\n }\n }\n\n onDragLeave(event) {\n if (!this.disabled) {\n DomHandler.removeClass(this.content.nativeElement, 'p-fileupload-highlight');\n }\n }\n\n onDrop(event) {\n if (!this.disabled) {\n DomHandler.removeClass(this.content.nativeElement, 'p-fileupload-highlight');\n event.stopPropagation();\n event.preventDefault();\n\n let files = event.dataTransfer ? event.dataTransfer.files : event.target.files;\n let allowDrop = this.multiple||(files && files.length === 1);\n\n if (allowDrop) {\n this.onFileSelect(event);\n }\n }\n }\n\n onFocus() {\n this.focus = true;\n }\n\n onBlur() {\n this.focus = false;\n }\n\n formatSize(bytes) {\n if (bytes == 0) {\n return '0 B';\n }\n let k = 1024,\n dm = 3,\n sizes = ['B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'],\n i = Math.floor(Math.log(bytes) / Math.log(k));\n\n return parseFloat((bytes / Math.pow(k, i)).toFixed(dm)) + ' ' + sizes[i];\n }\n\n onBasicUploaderClick() {\n if (this.hasFiles())\n this.upload();\n else\n this.basicFileInput.nativeElement.click();\n }\n\n getBlockableElement(): HTMLElement {\n return this.el.nativeElement.children[0];\n }\n\n get chooseButtonLabel(): string {\n return this.chooseLabel || this.config.getTranslation(TranslationKeys.CHOOSE);\n }\n\n get uploadButtonLabel(): string {\n return this.uploadLabel || this.config.getTranslation(TranslationKeys.UPLOAD);\n }\n\n get cancelButtonLabel(): string {\n return this.cancelLabel || this.config.getTranslation(TranslationKeys.CANCEL);\n }\n\n ngOnDestroy() {\n if (this.content && this.content.nativeElement) {\n this.content.nativeElement.removeEventListener('dragover', this.onDragOver);\n }\n }\n}\n\n@NgModule({\n imports: [CommonModule,SharedModule,ButtonModule,ProgressBarModule,MessagesModule,RippleModule],\n exports: [FileUpload,SharedModule,ButtonModule,ProgressBarModule,MessagesModule],\n declarations: [FileUpload]\n})\nexport class FileUploadModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
@@ -32,7 +32,7 @@ class InputTextarea {
32
32
  this.updateState();
33
33
  }
34
34
  updateFilledState() {
35
- this.filled = (this.el.nativeElement.value && this.el.nativeElement.value.length) || (this.ngModel && this.ngModel.model);
35
+ this.filled = this.el.nativeElement.value && this.el.nativeElement.value.length;
36
36
  }
37
37
  onFocus(e) {
38
38
  if (this.autoResize) {
@@ -1 +1 @@
1
- {"version":3,"file":"primeng-inputtextarea.js","sources":["../../src/app/components/inputtextarea/inputtextarea.ts","../../src/app/components/inputtextarea/primeng-inputtextarea.ts"],"sourcesContent":["import {NgModule,Directive,ElementRef,HostListener,Input,Output, EventEmitter,Optional, AfterViewInit, OnInit, OnDestroy, ChangeDetectorRef} from '@angular/core';\nimport {NgModel, NgControl} from '@angular/forms';\nimport {CommonModule} from '@angular/common';\nimport { Subscription } from 'rxjs';\n\n@Directive({\n selector: '[pInputTextarea]',\n host: {\n '[class.p-inputtextarea]': 'true',\n '[class.p-inputtext]': 'true',\n '[class.p-component]': 'true',\n '[class.p-filled]': 'filled',\n '[class.p-inputtextarea-resizable]': 'autoResize'\n }\n})\nexport class InputTextarea implements OnInit, AfterViewInit, OnDestroy {\n \n @Input() autoResize: boolean;\n \n @Output() onResize: EventEmitter<any> = new EventEmitter();\n \n filled: boolean;\n\n cachedScrollHeight:number;\n\n ngModelSubscription: Subscription;\n\n ngControlSubscription: Subscription;\n\n constructor(public el: ElementRef, @Optional() public ngModel: NgModel, @Optional() public control : NgControl, private cd: ChangeDetectorRef) {}\n \n ngOnInit() {\n if (this.ngModel) {\n this.ngModelSubscription = this.ngModel.valueChanges.subscribe(() =>{\n this.updateState();\n })\n }\n\n if (this.control) {\n this.ngControlSubscription = this.control.valueChanges.subscribe(() => {\n this.updateState();\n });\n }\n }\n\n ngAfterViewInit() {\n if (this.autoResize)\n this.resize();\n\n this.updateFilledState();\n this.cd.detectChanges();\n }\n\n @HostListener('input', ['$event'])\n onInput(e) {\n this.updateState();\n }\n \n updateFilledState() {\n this.filled = (this.el.nativeElement.value && this.el.nativeElement.value.length) || (this.ngModel && this.ngModel.model);\n }\n \n @HostListener('focus', ['$event'])\n onFocus(e) {\n if (this.autoResize) {\n this.resize(e);\n }\n }\n \n @HostListener('blur', ['$event'])\n onBlur(e) {\n if (this.autoResize) {\n this.resize(e);\n }\n }\n \n resize(event?: Event) {\n this.el.nativeElement.style.height = 'auto';\n this.el.nativeElement.style.height = this.el.nativeElement.scrollHeight + 'px';\n\n if (parseFloat(this.el.nativeElement.style.height) >= parseFloat(this.el.nativeElement.style.maxHeight)) {\n this.el.nativeElement.style.overflowY = \"scroll\";\n this.el.nativeElement.style.height = this.el.nativeElement.style.maxHeight;\n }\n else {\n this.el.nativeElement.style.overflow = \"hidden\";\n }\n\n this.onResize.emit(event||{});\n }\n\n updateState() {\n this.updateFilledState();\n \n if (this.autoResize) {\n this.resize();\n }\n }\n\n ngOnDestroy() {\n if (this.ngModelSubscription) {\n this.ngModelSubscription.unsubscribe();\n }\n\n if (this.ngControlSubscription) {\n this.ngControlSubscription.unsubscribe();\n }\n }\n}\n\n@NgModule({\n imports: [CommonModule],\n exports: [InputTextarea],\n declarations: [InputTextarea]\n})\nexport class InputTextareaModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":";;;;MAea,aAAa;IActB,YAAmB,EAAc,EAAqB,OAAgB,EAAqB,OAAmB,EAAU,EAAqB;QAA1H,OAAE,GAAF,EAAE,CAAY;QAAqB,YAAO,GAAP,OAAO,CAAS;QAAqB,YAAO,GAAP,OAAO,CAAY;QAAU,OAAE,GAAF,EAAE,CAAmB;QAVnI,aAAQ,GAAsB,IAAI,YAAY,EAAE,CAAC;KAUsF;IAEjJ,QAAQ;QACJ,IAAI,IAAI,CAAC,OAAO,EAAE;YACd,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,SAAS,CAAC;gBAC3D,IAAI,CAAC,WAAW,EAAE,CAAC;aACtB,CAAC,CAAA;SACL;QAED,IAAI,IAAI,CAAC,OAAO,EAAE;YACd,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,SAAS,CAAC;gBAC7D,IAAI,CAAC,WAAW,EAAE,CAAC;aACtB,CAAC,CAAC;SACN;KACJ;IAED,eAAe;QACX,IAAI,IAAI,CAAC,UAAU;YACf,IAAI,CAAC,MAAM,EAAE,CAAC;QAElB,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC;KAC3B;IAGD,OAAO,CAAC,CAAC;QACL,IAAI,CAAC,WAAW,EAAE,CAAC;KACtB;IAED,iBAAiB;QACb,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,KAAK,IAAI,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,MAAM,MAAM,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;KAC7H;IAGD,OAAO,CAAC,CAAC;QACL,IAAI,IAAI,CAAC,UAAU,EAAE;YACjB,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;SAClB;KACJ;IAGD,MAAM,CAAC,CAAC;QACJ,IAAI,IAAI,CAAC,UAAU,EAAE;YACjB,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;SAClB;KACJ;IAED,MAAM,CAAC,KAAa;QAChB,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;QAC5C,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,YAAY,GAAG,IAAI,CAAC;QAE/E,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE;YACrG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,SAAS,GAAG,QAAQ,CAAC;YACjD,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,SAAS,CAAC;SAC9E;aACI;YACD,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,QAAQ,GAAG,QAAQ,CAAC;SACnD;QAED,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,IAAE,EAAE,CAAC,CAAC;KACjC;IAED,WAAW;QACP,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAEzB,IAAI,IAAI,CAAC,UAAU,EAAE;YACjB,IAAI,CAAC,MAAM,EAAE,CAAC;SACjB;KACJ;IAED,WAAW;QACP,IAAI,IAAI,CAAC,mBAAmB,EAAE;YAC1B,IAAI,CAAC,mBAAmB,CAAC,WAAW,EAAE,CAAC;SAC1C;QAED,IAAI,IAAI,CAAC,qBAAqB,EAAE;YAC5B,IAAI,CAAC,qBAAqB,CAAC,WAAW,EAAE,CAAC;SAC5C;KACJ;;;YAtGJ,SAAS,SAAC;gBACP,QAAQ,EAAE,kBAAkB;gBAC5B,IAAI,EAAE;oBACF,yBAAyB,EAAE,MAAM;oBACjC,qBAAqB,EAAE,MAAM;oBAC7B,qBAAqB,EAAE,MAAM;oBAC7B,kBAAkB,EAAE,QAAQ;oBAC5B,mCAAmC,EAAE,YAAY;iBACpD;aACJ;;;YAd0B,UAAU;YAC7B,OAAO,uBA4ByB,QAAQ;YA5B/B,SAAS,uBA4BmD,QAAQ;YA7BqC,iBAAiB;;;yBAiBtI,KAAK;uBAEL,MAAM;sBAkCN,YAAY,SAAC,OAAO,EAAE,CAAC,QAAQ,CAAC;sBAShC,YAAY,SAAC,OAAO,EAAE,CAAC,QAAQ,CAAC;qBAOhC,YAAY,SAAC,MAAM,EAAE,CAAC,QAAQ,CAAC;;MA8CvB,mBAAmB;;;YAL/B,QAAQ,SAAC;gBACN,OAAO,EAAE,CAAC,YAAY,CAAC;gBACvB,OAAO,EAAE,CAAC,aAAa,CAAC;gBACxB,YAAY,EAAE,CAAC,aAAa,CAAC;aAChC;;;AClHD;;;;;;"}
1
+ {"version":3,"file":"primeng-inputtextarea.js","sources":["../../src/app/components/inputtextarea/inputtextarea.ts","../../src/app/components/inputtextarea/primeng-inputtextarea.ts"],"sourcesContent":["import {NgModule,Directive,ElementRef,HostListener,Input,Output, EventEmitter,Optional, AfterViewInit, OnInit, OnDestroy, ChangeDetectorRef} from '@angular/core';\nimport {NgModel, NgControl} from '@angular/forms';\nimport {CommonModule} from '@angular/common';\nimport { Subscription } from 'rxjs';\n\n@Directive({\n selector: '[pInputTextarea]',\n host: {\n '[class.p-inputtextarea]': 'true',\n '[class.p-inputtext]': 'true',\n '[class.p-component]': 'true',\n '[class.p-filled]': 'filled',\n '[class.p-inputtextarea-resizable]': 'autoResize'\n }\n})\nexport class InputTextarea implements OnInit, AfterViewInit, OnDestroy {\n \n @Input() autoResize: boolean;\n \n @Output() onResize: EventEmitter<any> = new EventEmitter();\n \n filled: boolean;\n\n cachedScrollHeight:number;\n\n ngModelSubscription: Subscription;\n\n ngControlSubscription: Subscription;\n\n constructor(public el: ElementRef, @Optional() public ngModel: NgModel, @Optional() public control : NgControl, private cd: ChangeDetectorRef) {}\n \n ngOnInit() {\n if (this.ngModel) {\n this.ngModelSubscription = this.ngModel.valueChanges.subscribe(() =>{\n this.updateState();\n })\n }\n\n if (this.control) {\n this.ngControlSubscription = this.control.valueChanges.subscribe(() => {\n this.updateState();\n });\n }\n }\n\n ngAfterViewInit() {\n if (this.autoResize)\n this.resize();\n\n this.updateFilledState();\n this.cd.detectChanges();\n }\n\n @HostListener('input', ['$event'])\n onInput(e) {\n this.updateState();\n }\n \n updateFilledState() {\n this.filled = this.el.nativeElement.value && this.el.nativeElement.value.length;\n }\n \n @HostListener('focus', ['$event'])\n onFocus(e) {\n if (this.autoResize) {\n this.resize(e);\n }\n }\n \n @HostListener('blur', ['$event'])\n onBlur(e) {\n if (this.autoResize) {\n this.resize(e);\n }\n }\n \n resize(event?: Event) {\n this.el.nativeElement.style.height = 'auto';\n this.el.nativeElement.style.height = this.el.nativeElement.scrollHeight + 'px';\n\n if (parseFloat(this.el.nativeElement.style.height) >= parseFloat(this.el.nativeElement.style.maxHeight)) {\n this.el.nativeElement.style.overflowY = \"scroll\";\n this.el.nativeElement.style.height = this.el.nativeElement.style.maxHeight;\n }\n else {\n this.el.nativeElement.style.overflow = \"hidden\";\n }\n\n this.onResize.emit(event||{});\n }\n\n updateState() {\n this.updateFilledState();\n \n if (this.autoResize) {\n this.resize();\n }\n }\n\n ngOnDestroy() {\n if (this.ngModelSubscription) {\n this.ngModelSubscription.unsubscribe();\n }\n\n if (this.ngControlSubscription) {\n this.ngControlSubscription.unsubscribe();\n }\n }\n}\n\n@NgModule({\n imports: [CommonModule],\n exports: [InputTextarea],\n declarations: [InputTextarea]\n})\nexport class InputTextareaModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
@@ -66,6 +66,7 @@ class Messages {
66
66
  }
67
67
  removeMessage(i) {
68
68
  this.value = this.value.filter((msg, index) => index !== i);
69
+ this.valueChange.emit(this.value);
69
70
  }
70
71
  get icon() {
71
72
  const severity = this.severity || (this.hasMessages() ? this.value[0].severity : null);
@@ -1 +1 @@
1
- {"version":3,"file":"primeng-messages.js","sources":["../../src/app/components/messages/messages.ts","../../src/app/components/messages/primeng-messages.ts"],"sourcesContent":["import {NgModule,Component,OnDestroy,Input,Output,EventEmitter,AfterContentInit,Optional,ElementRef,ChangeDetectionStrategy,ContentChildren,QueryList,TemplateRef, ViewEncapsulation, ChangeDetectorRef} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {trigger,state,style,transition,animate} from '@angular/animations';\nimport {Message,PrimeTemplate,MessageService} from 'primeng/api';\nimport {Subscription} from 'rxjs';\nimport {RippleModule} from 'primeng/ripple';\n\n@Component({\n selector: 'p-messages',\n template: `\n <div class=\"p-messages p-component\" role=\"alert\" [ngStyle]=\"style\" [class]=\"styleClass\">\n <ng-container *ngIf=\"!contentTemplate; else staticMessage\">\n <div *ngFor=\"let msg of value; let i=index\" [ngClass]=\"'p-message p-message-' + msg.severity\" role=\"alert\" \n [@messageAnimation]=\"{value: 'visible', params: {showTransitionParams: showTransitionOptions, hideTransitionParams: hideTransitionOptions}}\">\n <div class=\"p-message-wrapper\">\n <span [class]=\"'p-message-icon pi' + (msg.icon ? ' ' + msg.icon : '')\" [ngClass]=\"{'pi-info-circle': msg.severity === 'info', \n 'pi-check': msg.severity === 'success',\n 'pi-exclamation-triangle': msg.severity === 'warn',\n 'pi-times-circle': msg.severity === 'error'}\"></span>\n <ng-container *ngIf=\"!escape; else escapeOut\">\n <span *ngIf=\"msg.summary\" class=\"p-message-summary\" [innerHTML]=\"msg.summary\"></span>\n <span *ngIf=\"msg.detail\" class=\"p-message-detail\" [innerHTML]=\"msg.detail\"></span>\n </ng-container>\n <ng-template #escapeOut>\n <span *ngIf=\"msg.summary\" class=\"p-message-summary\">{{msg.summary}}</span>\n <span *ngIf=\"msg.detail\" class=\"p-message-detail\">{{msg.detail}}</span>\n </ng-template>\n <button class=\"p-message-close p-link\" (click)=\"removeMessage(i)\" *ngIf=\"closable\" type=\"button\" pRipple>\n <i class=\"p-message-close-icon pi pi-times\"></i>\n </button>\n </div>\n </div>\n </ng-container>\n <ng-template #staticMessage>\n <div [ngClass]=\"'p-message p-message-' + severity\" role=\"alert\">\n <div class=\"p-message-wrapper\">\n <ng-container *ngTemplateOutlet=\"contentTemplate\"></ng-container>\n </div>\n </div>\n </ng-template>\n </div>\n `,\n animations: [\n trigger('messageAnimation', [\n transition(':enter', [\n style({opacity: 0, transform: 'translateY(-25%)'}),\n animate('{{showTransitionParams}}')\n ]),\n transition(':leave', [\n animate('{{hideTransitionParams}}', style({ height: 0, marginTop: 0, marginBottom: 0, marginLeft: 0, marginRight: 0, overflow: 'hidden', opacity: 0 }))\n ])\n ])\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n styleUrls: ['./messages.css']\n})\nexport class Messages implements AfterContentInit, OnDestroy {\n\n @Input() value: Message[];\n\n @Input() closable: boolean = true;\n\n @Input() style: any;\n\n @Input() styleClass: string;\n\n @Input() enableService: boolean = true;\n\n @Input() key: string;\n\n @Input() escape: boolean = true;\n\n @Input() severity: string;\n\n @Input() showTransitionOptions: string = '300ms ease-out';\n\n @Input() hideTransitionOptions: string = '200ms cubic-bezier(0.86, 0, 0.07, 1)';\n\n @ContentChildren(PrimeTemplate) templates: QueryList<any>;\n\n @Output() valueChange: EventEmitter<Message[]> = new EventEmitter<Message[]>();\n\n messageSubscription: Subscription;\n\n clearSubscription: Subscription;\n\n contentTemplate: TemplateRef<any>;\n\n constructor(@Optional() public messageService: MessageService, public el: ElementRef, public cd: ChangeDetectorRef) {}\n\n ngAfterContentInit() {\n this.templates.forEach((item) => {\n switch(item.getType()) {\n case 'content':\n this.contentTemplate = item.template;\n break;\n\n default:\n this.contentTemplate = item.template;\n break;\n }\n });\n\n if (this.messageService && this.enableService && !this.contentTemplate) {\n this.messageSubscription = this.messageService.messageObserver.subscribe((messages: any) => {\n if (messages) {\n if (messages instanceof Array) {\n let filteredMessages = messages.filter(m => this.key === m.key);\n this.value = this.value ? [...this.value, ...filteredMessages] : [...filteredMessages];\n }\n else if (this.key === messages.key) {\n this.value = this.value ? [...this.value, ...[messages]] : [messages];\n }\n\n this.cd.markForCheck();\n }\n });\n\n this.clearSubscription = this.messageService.clearObserver.subscribe(key => {\n if (key) {\n if (this.key === key) {\n this.value = null;\n }\n }\n else {\n this.value = null;\n }\n\n this.cd.markForCheck();\n });\n }\n }\n\n hasMessages() {\n let parentEl = this.el.nativeElement.parentElement;\n if (parentEl && parentEl.offsetParent) {\n return this.contentTemplate != null || this.value && this.value.length > 0;\n }\n\n return false;\n }\n\n clear() {\n this.value = [];\n this.valueChange.emit(this.value);\n }\n\n removeMessage(i: number) {\n this.value = this.value.filter((msg, index) => index !== i);\n }\n\n get icon(): string {\n const severity = this.severity || (this.hasMessages() ? this.value[0].severity : null);\n\n if (this.hasMessages()) {\n switch(severity) {\n case 'success':\n return 'pi-check';\n break;\n\n case 'info':\n return 'pi-info-circle';\n break;\n\n case 'error':\n return 'pi-times';\n break;\n\n case 'warn':\n return 'pi-exclamation-triangle';\n break;\n\n default:\n return 'pi-info-circle';\n break;\n }\n }\n\n return null;\n }\n\n ngOnDestroy() {\n if (this.messageSubscription) {\n this.messageSubscription.unsubscribe();\n }\n\n if (this.clearSubscription) {\n this.clearSubscription.unsubscribe();\n }\n }\n}\n\n@NgModule({\n imports: [CommonModule,RippleModule],\n exports: [Messages],\n declarations: [Messages]\n})\nexport class MessagesModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"primeng-messages.js","sources":["../../src/app/components/messages/messages.ts","../../src/app/components/messages/primeng-messages.ts"],"sourcesContent":["import {NgModule,Component,OnDestroy,Input,Output,EventEmitter,AfterContentInit,Optional,ElementRef,ChangeDetectionStrategy,ContentChildren,QueryList,TemplateRef, ViewEncapsulation, ChangeDetectorRef} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {trigger,state,style,transition,animate} from '@angular/animations';\nimport {Message,PrimeTemplate,MessageService} from 'primeng/api';\nimport {Subscription} from 'rxjs';\nimport {RippleModule} from 'primeng/ripple';\n\n@Component({\n selector: 'p-messages',\n template: `\n <div class=\"p-messages p-component\" role=\"alert\" [ngStyle]=\"style\" [class]=\"styleClass\">\n <ng-container *ngIf=\"!contentTemplate; else staticMessage\">\n <div *ngFor=\"let msg of value; let i=index\" [ngClass]=\"'p-message p-message-' + msg.severity\" role=\"alert\" \n [@messageAnimation]=\"{value: 'visible', params: {showTransitionParams: showTransitionOptions, hideTransitionParams: hideTransitionOptions}}\">\n <div class=\"p-message-wrapper\">\n <span [class]=\"'p-message-icon pi' + (msg.icon ? ' ' + msg.icon : '')\" [ngClass]=\"{'pi-info-circle': msg.severity === 'info', \n 'pi-check': msg.severity === 'success',\n 'pi-exclamation-triangle': msg.severity === 'warn',\n 'pi-times-circle': msg.severity === 'error'}\"></span>\n <ng-container *ngIf=\"!escape; else escapeOut\">\n <span *ngIf=\"msg.summary\" class=\"p-message-summary\" [innerHTML]=\"msg.summary\"></span>\n <span *ngIf=\"msg.detail\" class=\"p-message-detail\" [innerHTML]=\"msg.detail\"></span>\n </ng-container>\n <ng-template #escapeOut>\n <span *ngIf=\"msg.summary\" class=\"p-message-summary\">{{msg.summary}}</span>\n <span *ngIf=\"msg.detail\" class=\"p-message-detail\">{{msg.detail}}</span>\n </ng-template>\n <button class=\"p-message-close p-link\" (click)=\"removeMessage(i)\" *ngIf=\"closable\" type=\"button\" pRipple>\n <i class=\"p-message-close-icon pi pi-times\"></i>\n </button>\n </div>\n </div>\n </ng-container>\n <ng-template #staticMessage>\n <div [ngClass]=\"'p-message p-message-' + severity\" role=\"alert\">\n <div class=\"p-message-wrapper\">\n <ng-container *ngTemplateOutlet=\"contentTemplate\"></ng-container>\n </div>\n </div>\n </ng-template>\n </div>\n `,\n animations: [\n trigger('messageAnimation', [\n transition(':enter', [\n style({opacity: 0, transform: 'translateY(-25%)'}),\n animate('{{showTransitionParams}}')\n ]),\n transition(':leave', [\n animate('{{hideTransitionParams}}', style({ height: 0, marginTop: 0, marginBottom: 0, marginLeft: 0, marginRight: 0, overflow: 'hidden', opacity: 0 }))\n ])\n ])\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n styleUrls: ['./messages.css']\n})\nexport class Messages implements AfterContentInit, OnDestroy {\n\n @Input() value: Message[];\n\n @Input() closable: boolean = true;\n\n @Input() style: any;\n\n @Input() styleClass: string;\n\n @Input() enableService: boolean = true;\n\n @Input() key: string;\n\n @Input() escape: boolean = true;\n\n @Input() severity: string;\n\n @Input() showTransitionOptions: string = '300ms ease-out';\n\n @Input() hideTransitionOptions: string = '200ms cubic-bezier(0.86, 0, 0.07, 1)';\n\n @ContentChildren(PrimeTemplate) templates: QueryList<any>;\n\n @Output() valueChange: EventEmitter<Message[]> = new EventEmitter<Message[]>();\n\n messageSubscription: Subscription;\n\n clearSubscription: Subscription;\n\n contentTemplate: TemplateRef<any>;\n\n constructor(@Optional() public messageService: MessageService, public el: ElementRef, public cd: ChangeDetectorRef) {}\n\n ngAfterContentInit() {\n this.templates.forEach((item) => {\n switch(item.getType()) {\n case 'content':\n this.contentTemplate = item.template;\n break;\n\n default:\n this.contentTemplate = item.template;\n break;\n }\n });\n\n if (this.messageService && this.enableService && !this.contentTemplate) {\n this.messageSubscription = this.messageService.messageObserver.subscribe((messages: any) => {\n if (messages) {\n if (messages instanceof Array) {\n let filteredMessages = messages.filter(m => this.key === m.key);\n this.value = this.value ? [...this.value, ...filteredMessages] : [...filteredMessages];\n }\n else if (this.key === messages.key) {\n this.value = this.value ? [...this.value, ...[messages]] : [messages];\n }\n\n this.cd.markForCheck();\n }\n });\n\n this.clearSubscription = this.messageService.clearObserver.subscribe(key => {\n if (key) {\n if (this.key === key) {\n this.value = null;\n }\n }\n else {\n this.value = null;\n }\n\n this.cd.markForCheck();\n });\n }\n }\n\n hasMessages() {\n let parentEl = this.el.nativeElement.parentElement;\n if (parentEl && parentEl.offsetParent) {\n return this.contentTemplate != null || this.value && this.value.length > 0;\n }\n\n return false;\n }\n\n clear() {\n this.value = [];\n this.valueChange.emit(this.value);\n }\n\n removeMessage(i: number) {\n this.value = this.value.filter((msg, index) => index !== i);\n this.valueChange.emit(this.value);\n }\n\n get icon(): string {\n const severity = this.severity || (this.hasMessages() ? this.value[0].severity : null);\n\n if (this.hasMessages()) {\n switch(severity) {\n case 'success':\n return 'pi-check';\n break;\n\n case 'info':\n return 'pi-info-circle';\n break;\n\n case 'error':\n return 'pi-times';\n break;\n\n case 'warn':\n return 'pi-exclamation-triangle';\n break;\n\n default:\n return 'pi-info-circle';\n break;\n }\n }\n\n return null;\n }\n\n ngOnDestroy() {\n if (this.messageSubscription) {\n this.messageSubscription.unsubscribe();\n }\n\n if (this.clearSubscription) {\n this.clearSubscription.unsubscribe();\n }\n }\n}\n\n@NgModule({\n imports: [CommonModule,RippleModule],\n exports: [Messages],\n declarations: [Messages]\n})\nexport class MessagesModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":";;;;;;MAyDa,QAAQ;IAgCjB,YAA+B,cAA8B,EAAS,EAAc,EAAS,EAAqB;QAAnF,mBAAc,GAAd,cAAc,CAAgB;QAAS,OAAE,GAAF,EAAE,CAAY;QAAS,OAAE,GAAF,EAAE,CAAmB;QA5BzG,aAAQ,GAAY,IAAI,CAAC;QAMzB,kBAAa,GAAY,IAAI,CAAC;QAI9B,WAAM,GAAY,IAAI,CAAC;QAIvB,0BAAqB,GAAW,gBAAgB,CAAC;QAEjD,0BAAqB,GAAW,sCAAsC,CAAC;QAItE,gBAAW,GAA4B,IAAI,YAAY,EAAa,CAAC;KAQuC;IAEtH,kBAAkB;QACd,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,IAAI;YACxB,QAAO,IAAI,CAAC,OAAO,EAAE;gBACjB,KAAK,SAAS;oBACV,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,QAAQ,CAAC;oBACzC,MAAM;gBAEN;oBACI,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,QAAQ,CAAC;oBACzC,MAAM;aACT;SACJ,CAAC,CAAC;QAEH,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;YACpE,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,QAAa;gBACnF,IAAI,QAAQ,EAAE;oBACV,IAAI,QAAQ,YAAY,KAAK,EAAE;wBAC3B,IAAI,gBAAgB,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC;wBAChE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,GAAG,gBAAgB,CAAC,GAAG,CAAC,GAAG,gBAAgB,CAAC,CAAC;qBAC1F;yBACI,IAAI,IAAI,CAAC,GAAG,KAAK,QAAQ,CAAC,GAAG,EAAE;wBAChC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;qBACzE;oBAED,IAAI,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC;iBAC1B;aACJ,CAAC,CAAC;YAEH,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,SAAS,CAAC,GAAG;gBACpE,IAAI,GAAG,EAAE;oBACL,IAAI,IAAI,CAAC,GAAG,KAAK,GAAG,EAAE;wBAClB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;qBACrB;iBACJ;qBACI;oBACD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;iBACrB;gBAED,IAAI,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC;aAC1B,CAAC,CAAC;SACN;KACJ;IAED,WAAW;QACP,IAAI,QAAQ,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,aAAa,CAAC;QACnD,IAAI,QAAQ,IAAI,QAAQ,CAAC,YAAY,EAAE;YACnC,OAAO,IAAI,CAAC,eAAe,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;SAC9E;QAED,OAAO,KAAK,CAAC;KAChB;IAED,KAAK;QACD,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAChB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACrC;IAED,aAAa,CAAC,CAAS;QACnB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,KAAK,KAAK,KAAK,KAAK,CAAC,CAAC,CAAC;QAC5D,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACrC;IAED,IAAI,IAAI;QACJ,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC;QAEvF,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE;YACpB,QAAO,QAAQ;gBACX,KAAK,SAAS;oBACV,OAAO,UAAU,CAAC;oBACtB,MAAM;gBAEN,KAAK,MAAM;oBACP,OAAO,gBAAgB,CAAC;oBAC5B,MAAM;gBAEN,KAAK,OAAO;oBACR,OAAO,UAAU,CAAC;oBACtB,MAAM;gBAEN,KAAK,MAAM;oBACP,OAAO,yBAAyB,CAAC;oBACrC,MAAM;gBAEN;oBACI,OAAO,gBAAgB,CAAC;oBAC5B,MAAM;aACT;SACJ;QAED,OAAO,IAAI,CAAC;KACf;IAED,WAAW;QACP,IAAI,IAAI,CAAC,mBAAmB,EAAE;YAC1B,IAAI,CAAC,mBAAmB,CAAC,WAAW,EAAE,CAAC;SAC1C;QAED,IAAI,IAAI,CAAC,iBAAiB,EAAE;YACxB,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE,CAAC;SACxC;KACJ;;;YAxLJ,SAAS,SAAC;gBACP,QAAQ,EAAE,YAAY;gBACtB,QAAQ,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAgCT;gBACD,UAAU,EAAE;oBACR,OAAO,CAAC,kBAAkB,EAAE;wBACxB,UAAU,CAAC,QAAQ,EAAE;4BACjB,KAAK,CAAC,EAAC,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,kBAAkB,EAAC,CAAC;4BAClD,OAAO,CAAC,0BAA0B,CAAC;yBACtC,CAAC;wBACF,UAAU,CAAC,QAAQ,EAAE;4BACjB,OAAO,CAAC,0BAA0B,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;yBAC1J,CAAC;qBACL,CAAC;iBACL;gBACD,eAAe,EAAE,uBAAuB,CAAC,MAAM;gBAC/C,aAAa,EAAE,iBAAiB,CAAC,IAAI;;aAExC;;;YArD6B,cAAc,uBAsF3B,QAAQ;YAzFgE,UAAU;YAAmF,iBAAiB;;;oBA2DlM,KAAK;uBAEL,KAAK;oBAEL,KAAK;yBAEL,KAAK;4BAEL,KAAK;kBAEL,KAAK;qBAEL,KAAK;uBAEL,KAAK;oCAEL,KAAK;oCAEL,KAAK;wBAEL,eAAe,SAAC,aAAa;0BAE7B,MAAM;;MAsHE,cAAc;;;YAL1B,QAAQ,SAAC;gBACN,OAAO,EAAE,CAAC,YAAY,EAAC,YAAY,CAAC;gBACpC,OAAO,EAAE,CAAC,QAAQ,CAAC;gBACnB,YAAY,EAAE,CAAC,QAAQ,CAAC;aAC3B;;;ACtMD;;;;;;"}
@@ -370,8 +370,11 @@ class MultiSelect {
370
370
  }
371
371
  }
372
372
  }
373
- removeChip(chip) {
373
+ removeChip(chip, event) {
374
374
  this.value = this.value.filter(val => !ObjectUtils.equals(val, chip, this.dataKey));
375
+ this.onModelChange(this.value);
376
+ this.onChange.emit({ originalEvent: event, value: this.value });
377
+ this.updateLabel();
375
378
  this.updateFilledState();
376
379
  }
377
380
  isOverlayClick(event) {
@@ -641,7 +644,7 @@ MultiSelect.decorators = [
641
644
  <ng-container *ngIf="display === 'chip'">
642
645
  <div #token *ngFor="let item of value; let i = index;" class="p-multiselect-token">
643
646
  <span class="p-multiselect-token-label">{{findLabelByValue(item)}}</span>
644
- <span *ngIf="!disabled" class="p-multiselect-token-icon pi pi-times-circle" (click)="removeChip(item)"></span>
647
+ <span *ngIf="!disabled" class="p-multiselect-token-icon pi pi-times-circle" (click)="removeChip(item, $event)"></span>
645
648
  </div>
646
649
  <ng-container *ngIf="!value || value.length === 0">{{placeholder || defaultLabel || 'empty'}}</ng-container>
647
650
  </ng-container>