import {
    {{#each imports}}
    {{{this}}},
    {{/each}}
    RenderingContext
} from '@ibm-wch-sdk/ng';
import { Component } from '@angular/core';
import { {{{baseClassName}}} } from '{{{baseFileName}}}';

/** Useful imports */
// import { map, takeUntil, distinctUntilChanged } from 'rxjs/operators/map';

/*
{{#if name}}
 * @name {{{name}}}
{{/if}}
{{#if id}}
 * @id {{{id}}}
{{/if}}
{{#if description}}
 * @description {{{description}}}
{{/if}}
{{#if creator}}
 * @author {{{creator}}}
{{/if}}
 */
/* TODO uncomment this if you plan to use the component standalone, i.e. not as the basis of a layout.
@Component({
  selector: '{{{jsEscape selector}}}',
  templateUrl: '{{{jsEscape templateUrl}}}',
  styleUrls: ['{{{jsEscape styleUrl}}}'],
  preserveWhitespaces: false
})
*/
export class {{{className}}} extends {{{baseClassName}}} {

    /*
     * TODO add custom fields here. These fields should be those
     * common to all layouts.
     */

    constructor() {
        super();
        /*
         * TODO initialize your custom fields here, note that
         * you can refer to the values bound via @RenderingContextBinding from
         * your super class.
         *
         * Expose your custom fields as observables in your class
         * and subscribe from the template via the async pipe.
         */

         /*
          * Sample
          *
          * const that = this;
          * const onDestroy = that.onOnDestroy;
          */
    }

}
