{"version":3,"file":"Base.mjs","sourceRoot":"","sources":["../../../src/meta/Base.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,GAAG,MAAM,gBAAgB,CAAC;AAGjC,MAAM,WAAY,SAAQ,WAAW;IAQpC,YAAY,UAAgC;QAC3C,KAAK,EAAE,CAAC;QALD,uBAAkB,GAAG,IAAI,GAAG,EAAmB,CAAC;QAOvD,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC,UAAU,CAAC;QACzC,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC,WAAW,CAAC;QAC1C,EAAE,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;YACrB,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC;QAC9B,CAAC;IACF,CAAC;IAEM,GAAG,CAAC,GAAoB;QAC9B,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAClC,CAAC;IAES,OAAO,CAAC,GAAoB;QACrC,MAAM,SAAS,GAAG,GAAG,GAAG,EAAE,CAAC;QAC3B,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAE7C,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;YACtD,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE;gBAClD,MAAM,CAAC,OAAO,EAAE,CAAC;gBACjB,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;gBAC1C,IAAI,CAAC,UAAU,EAAE,CAAC;YACnB,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACjB,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACxC,CAAC;QAED,MAAM,CAAC,IAAI,CAAC;IACb,CAAC;IAES,UAAU;QACnB,IAAI,CAAC,WAAW,EAAE,CAAC;IACpB,CAAC;IAEM,WAAW;QACjB,yBAAyB;IAC1B,CAAC;CACD;AAED,eAAe,IAAI,CAAC","sourcesContent":["import { Destroyable } from '@dojo/core/Destroyable';\nimport Set from '@dojo/shim/Set';\nimport { WidgetMetaBase, WidgetMetaProperties, NodeHandlerInterface, WidgetBaseInterface } from '../interfaces';\n\nexport class Base extends Destroyable implements WidgetMetaBase {\n\tprivate _invalidate: () => void;\n\tprotected nodeHandler: NodeHandlerInterface;\n\n\tprivate _requestedNodeKeys = new Set<string | number>();\n\n\tprotected _bind: WidgetBaseInterface | undefined;\n\n\tconstructor(properties: WidgetMetaProperties) {\n\t\tsuper();\n\n\t\tthis._invalidate = properties.invalidate;\n\t\tthis.nodeHandler = properties.nodeHandler;\n\t\tif (properties.bind) {\n\t\t\tthis._bind = properties.bind;\n\t\t}\n\t}\n\n\tpublic has(key: string | number): boolean {\n\t\treturn this.nodeHandler.has(key);\n\t}\n\n\tprotected getNode(key: string | number): Element | undefined {\n\t\tconst stringKey = `${key}`;\n\t\tconst node = this.nodeHandler.get(stringKey);\n\n\t\tif (!node && !this._requestedNodeKeys.has(stringKey)) {\n\t\t\tconst handle = this.nodeHandler.on(stringKey, () => {\n\t\t\t\thandle.destroy();\n\t\t\t\tthis._requestedNodeKeys.delete(stringKey);\n\t\t\t\tthis.invalidate();\n\t\t\t});\n\n\t\t\tthis.own(handle);\n\t\t\tthis._requestedNodeKeys.add(stringKey);\n\t\t}\n\n\t\treturn node;\n\t}\n\n\tprotected invalidate(): void {\n\t\tthis._invalidate();\n\t}\n\n\tpublic afterRender(): void {\n\t\t// Do nothing by default.\n\t}\n}\n\nexport default Base;\n"]}