import {attribute, ComponentBase} from '../ComponentBase'; import { DomRender, DomRenderRunConfig } from '../../DomRender'; import { RawSet } from '../../rawsets/RawSet'; import { OtherData } from '../../lifecycle/OnChangeAttrRender'; import { OnInitRender } from '../../lifecycle/OnInitRender'; import { Appender as DomRenderAppender } from '../../operators/Appender'; export namespace Appender { export const selector = 'dr-appender'; // export type AppenderInterface = { // push(...data:D[]):void; // set(key: string, ...v:D[]):void // delete(key: string):void // clear():void // } export type Attribute = { value: DomRenderAppender; onCreate?: (appender: DomRenderAppender) => void; } // @Component({ // template: '
#innerHTML#
', // selector: `${selector}` // }) export class Appender extends ComponentBase> implements OnInitRender { private value?:DomRenderAppender @attribute({ name: 'dr-option-item-variable-name', converter: v => v || null }) drOptionItemVariableName: string | null = null; // onCreateRender(...param: any) { // console.log('--onCreateRender') // } // test() { // console.log('t', this.getAttribute('appender')) // } // push(...data:D[]) { // console.log('push/////', data); // this.appender.push(...data); // } // // set(key: string, v: D): void { // this.appender.set(key, v) // } // // delete(key: string): void { // this.appender.delete(key); // } // // clear(): void { // this.appender.clear(); // } onChangeAttrRender(name: string, value: any, other: OtherData) { super.onChangeAttrRender(name, value, other); if(this.equalsAttributeName(name, 'value')) { this.value = value; } // console.log('------>appender', name, value); } } } export default { appender: (config?: DomRenderRunConfig) => { return RawSet.createComponentTargetElement({ name: Appender.selector, template: '
#innerHTML#
', objFactory: (e,o,r2, counstructorParam) => { return DomRender.run({rootObject: new Appender.Appender(...counstructorParam), config: config}); } }) }, }