@@ -360,6 +360,30 @@ export class Directive extends Injectable {
360360 */
361361 properties :any ; // StringMap
362362
363+ /**
364+ * Enumerates the set of emitted events.
365+ *
366+ * ## Syntax
367+ *
368+ * ```
369+ * @Component ({
370+ * events: ['status-change']
371+ * })
372+ * class TaskComponent {
373+ * statusChange:EventEmitter;
374+ *
375+ * constructor() {
376+ * this.complete = new EventEmitter();
377+ * }
378+ *
379+ * onComplete() {
380+ * this.statusChange.next("completed");
381+ * }
382+ * }
383+ * ```
384+ */
385+ events :List < string > ;
386+
363387 /**
364388 * Specifies which DOM hostListeners a directive listens to.
365389 *
@@ -426,18 +450,21 @@ export class Directive extends Injectable {
426450 constructor ( {
427451 selector,
428452 properties,
453+ events,
429454 hostListeners,
430455 lifecycle
431456 } :{
432457 selector :string ,
433458 properties :any ,
459+ events :List ,
434460 hostListeners : any ,
435461 lifecycle :List
436462 } = { } )
437463 {
438464 super ( ) ;
439465 this . selector = selector ;
440466 this . properties = properties ;
467+ this . events = events ;
441468 this . hostListeners = hostListeners ;
442469 this . lifecycle = lifecycle ;
443470 }
@@ -551,13 +578,15 @@ export class Component extends Directive {
551578 constructor ( {
552579 selector,
553580 properties,
581+ events,
554582 hostListeners,
555583 injectables,
556584 lifecycle,
557585 changeDetection = DEFAULT
558586 } :{
559587 selector :string ,
560588 properties :Object ,
589+ events :List ,
561590 hostListeners :Object ,
562591 injectables :List ,
563592 lifecycle :List ,
@@ -567,6 +596,7 @@ export class Component extends Directive {
567596 super ( {
568597 selector : selector ,
569598 properties : properties ,
599+ events : events ,
570600 hostListeners : hostListeners ,
571601 lifecycle : lifecycle
572602 } ) ;
@@ -634,19 +664,22 @@ export class DynamicComponent extends Directive {
634664 constructor ( {
635665 selector,
636666 properties,
667+ events,
637668 hostListeners,
638669 injectables,
639670 lifecycle
640671 } :{
641672 selector :string ,
642673 properties :Object ,
674+ events :List ,
643675 hostListeners :Object ,
644676 injectables :List ,
645677 lifecycle :List
646678 } = { } ) {
647679 super ( {
648680 selector : selector ,
649681 properties : properties ,
682+ events : events ,
650683 hostListeners : hostListeners ,
651684 lifecycle : lifecycle
652685 } ) ;
@@ -727,12 +760,14 @@ export class Decorator extends Directive {
727760 constructor ( {
728761 selector,
729762 properties,
763+ events,
730764 hostListeners,
731765 lifecycle,
732766 compileChildren = true ,
733767 } :{
734768 selector :string ,
735769 properties :any ,
770+ events :List ,
736771 hostListeners :any ,
737772 lifecycle :List ,
738773 compileChildren :boolean
@@ -741,6 +776,7 @@ export class Decorator extends Directive {
741776 super ( {
742777 selector : selector ,
743778 properties : properties ,
779+ events : events ,
744780 hostListeners : hostListeners ,
745781 lifecycle : lifecycle
746782 } ) ;
@@ -846,17 +882,20 @@ export class Viewport extends Directive {
846882 constructor ( {
847883 selector,
848884 properties,
885+ events,
849886 hostListeners,
850887 lifecycle
851888 } :{
852889 selector :string ,
853890 properties :any ,
891+ events :List ,
854892 lifecycle :List
855893 } = { } )
856894 {
857895 super ( {
858896 selector : selector ,
859897 properties : properties ,
898+ events : events ,
860899 hostListeners : hostListeners ,
861900 lifecycle : lifecycle
862901 } ) ;
0 commit comments