@ibyar/elements 2.2.0 → 2.3.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.
@@ -49,11 +49,11 @@ export declare class DirectiveRegistry {
49
49
  */
50
50
  register(directiveName: string, options?: DirectiveNodeOptions): void;
51
51
  /**
52
- * update registry with a new value of directive
52
+ * set value of directive
53
53
  * @param directiveName
54
54
  * @param options
55
55
  */
56
- update(directiveName: string, options?: DirectiveNodeOptions): void;
56
+ set(directiveName: string, options?: DirectiveNodeOptions): void;
57
57
  /**
58
58
  * replace the current options with a new one.
59
59
  *
@@ -1 +1 @@
1
- {"version":3,"file":"register-directive.d.ts","sourceRoot":"","sources":["../../../src/elements/directives/register-directive.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"register-directive.d.ts","sourceRoot":"","sources":["../../../src/elements/directives/register-directive.ts"],"names":[],"mappings":"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"}
@@ -70,16 +70,15 @@ export class DirectiveRegistry {
70
70
  */
71
71
  register(directiveName, options) {
72
72
  if (!this.directives.has(directiveName)) {
73
- const info = new DirectiveNodeInfo(options?.inputs, options?.outputs, options?.successor);
74
- this.directives.set(directiveName, info);
73
+ this.set(directiveName, options);
75
74
  }
76
75
  }
77
76
  /**
78
- * update registry with a new value of directive
77
+ * set value of directive
79
78
  * @param directiveName
80
79
  * @param options
81
80
  */
82
- update(directiveName, options) {
81
+ set(directiveName, options) {
83
82
  const info = new DirectiveNodeInfo(options?.inputs, options?.outputs, options?.successor);
84
83
  this.directives.set(directiveName, info);
85
84
  }
@@ -94,8 +93,7 @@ export class DirectiveRegistry {
94
93
  */
95
94
  replace(directiveName, options) {
96
95
  if (this.directives.has(directiveName)) {
97
- const info = new DirectiveNodeInfo(options?.inputs, options?.outputs);
98
- this.directives.set(directiveName, info);
96
+ this.set(directiveName, options);
99
97
  }
100
98
  }
101
99
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"register-directive.js","sourceRoot":"","sources":["../../../src/elements/directives/register-directive.ts"],"names":[],"mappings":"AAsBA,MAAM,iBAAiB;IACF;IAA2B;IAA4B;IAA3E,YAAoB,MAAiB,EAAU,OAAkB,EAAU,SAAkB;QAAzE,WAAM,GAAN,MAAM,CAAW;QAAU,YAAO,GAAP,OAAO,CAAW;QAAU,cAAS,GAAT,SAAS,CAAS;IAAI,CAAC;IAElG,aAAa;QACZ,OAAO,IAAI,CAAC,SAAS,EAAE,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;IAC9C,CAAC;IAED,SAAS;QACR,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;IACvC,CAAC;IAED,UAAU;QACT,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;IACxC,CAAC;IAED,aAAa;QACZ,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;IACjD,CAAC;IAED,aAAa;QACZ,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjC,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACzC,CAAC;aAAM,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACxB,OAAO,IAAI,CAAC,MAAM,CAAC;QACpB,CAAC;aAAM,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACzB,OAAO,IAAI,CAAC,OAAO,CAAC;QACrB,CAAC;QACD,OAAO,SAAS,CAAC;IAClB,CAAC;IAED,SAAS;QACR,OAAO,IAAI,CAAC,MAAM,CAAC;IACpB,CAAC;IAED,UAAU;QACT,OAAO,IAAI,CAAC,OAAO,CAAC;IACrB,CAAC;IAED,YAAY;QACX,OAAO,IAAI,CAAC,SAAS,CAAC;IACvB,CAAC;IAED,YAAY,CAAC,aAAqB;QACjC,OAAO,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;IACtE,CAAC;IAED,QAAQ,CAAC,SAAiB;QACzB,OAAO,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC;IAClD,CAAC;IAED,SAAS,CAAC,UAAkB;QAC3B,OAAO,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,IAAI,KAAK,CAAC;IACpD,CAAC;IAED,YAAY,CAAC,SAAiB;QAC7B,OAAO,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC;IACpC,CAAC;CAED;AAED,MAAM,OAAO,iBAAiB;IAE7B;;OAEG;IACK,UAAU,GAAG,IAAI,GAAG,EAA6B,CAAC;IAE1D;;;;;;;;;OASG;IACH,QAAQ,CAAC,aAAqB,EAAE,OAA8B;QAC7D,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,CAAC;YACzC,MAAM,IAAI,GAAG,IAAI,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;YAC1F,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;QAC1C,CAAC;IACF,CAAC;IAED;;;;OAIG;IAEH,MAAM,CAAC,aAAqB,EAAE,OAA8B;QAC3D,MAAM,IAAI,GAAG,IAAI,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;QAC1F,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;IAC1C,CAAC;IAED;;;;;;;;OAQG;IACH,OAAO,CAAC,aAAqB,EAAE,OAA6B;QAC3D,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,CAAC;YACxC,MAAM,IAAI,GAAG,IAAI,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;YACtE,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;QAC1C,CAAC;IACF,CAAC;IAED;;;;OAIG;IACH,GAAG,CAAC,aAAqB;QACxB,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IAC3C,CAAC;IAED;;;;OAIG;IACH,GAAG,CAAC,aAAqB;QACxB,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IAC3C,CAAC;IAED;;;;OAIG;IACH,aAAa,CAAC,aAAqB;QAClC,OAAO,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;IACxE,CAAC;IAED,SAAS,CAAC,aAAqB;QAC9B,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,SAAS,EAAE,IAAI,KAAK,CAAC;IACjE,CAAC;IAED,UAAU,CAAC,aAAqB;QAC/B,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,UAAU,EAAE,IAAI,KAAK,CAAC;IAClE,CAAC;IAED,aAAa,CAAC,aAAqB;QAClC,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,aAAa,EAAE,IAAI,KAAK,CAAC;IACrE,CAAC;IAED;;;;OAIG;IACH,aAAa,CAAC,aAAqB;QAClC,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,aAAa,EAAE,CAAC;IAC5D,CAAC;IAED;;;;OAIG;IACH,SAAS,CAAC,aAAqB;QAC9B,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,SAAS,EAAE,CAAC;IACxD,CAAC;IAED;;;;OAIG;IACH,UAAU,CAAC,aAAqB;QAC/B,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,UAAU,EAAE,CAAC;IACzD,CAAC;IAED;;;;OAIG;IACH,YAAY,CAAC,aAAqB;QACjC,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,YAAY,EAAE,CAAC;IAC3D,CAAC;IAED;;;;;OAKG;IACH,YAAY,CAAC,aAAqB,EAAE,aAAqB;QACxD,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,YAAY,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC;IACjF,CAAC;IAED;;;;;OAKG;IACH,QAAQ,CAAC,aAAqB,EAAE,SAAiB;QAChD,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,QAAQ,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC;IACzE,CAAC;IAED;;;;;OAKG;IACH,YAAY,CAAC,aAAqB,EAAE,aAAqB;QACxD,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,YAAY,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC;IACjF,CAAC;IAED;;;;;OAKG;IACH,SAAS,CAAC,aAAqB,EAAE,UAAkB;QAClD,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,SAAS,CAAC,UAAU,CAAC,IAAI,KAAK,CAAC;IAC3E,CAAC;IAED,gBAAgB,CAAC,UAAoB;QACpC,OAAO,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;IAClD,CAAC;CAED;AAED,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,iBAAiB,EAAE,CAAC","sourcesContent":["\n\nexport interface DirectiveNodeOptions {\n\n\t/**\n\t * list of inputs view name\n\t */\n\tinputs?: string[];\n\n\t/**\n\t * list of outputs view name\n\t */\n\toutputs?: string[];\n\n\t/**\n\t * successors block/scope for a directive \n\t * \n\t * ex: [`@if`/`@else`] & [`@for`/`@empty`]\n\t */\n\tsuccessor?: string;\n}\n\nclass DirectiveNodeInfo {\n\tconstructor(private inputs?: string[], private outputs?: string[], private successor?: string) { }\n\n\thasAttributes(): boolean {\n\t\treturn this.hasInputs() || this.hasOutputs();\n\t}\n\n\thasInputs(): boolean {\n\t\treturn (this.inputs?.length ?? 0) > 0;\n\t}\n\n\thasOutputs(): boolean {\n\t\treturn (this.outputs?.length ?? 0) > 0;\n\t}\n\n\thasSuccessors(): boolean {\n\t\treturn (this.successor?.trim().length ?? 0) > 0;\n\t}\n\n\tgetAttributes(): string[] | undefined {\n\t\tif (this.inputs && this.outputs) {\n\t\t\treturn this.inputs.concat(this.outputs);\n\t\t} else if (this.inputs) {\n\t\t\treturn this.inputs;\n\t\t} else if (this.outputs) {\n\t\t\treturn this.outputs;\n\t\t}\n\t\treturn undefined;\n\t}\n\n\tgetInputs(): string[] | undefined {\n\t\treturn this.inputs;\n\t}\n\n\tgetOutputs(): string[] | undefined {\n\t\treturn this.outputs;\n\t}\n\n\tgetSuccessor(): string | undefined {\n\t\treturn this.successor;\n\t}\n\n\thasAttribute(attributeName: string): boolean {\n\t\treturn this.hasInput(attributeName) || this.hasOutput(attributeName);\n\t}\n\n\thasInput(inputName: string): boolean {\n\t\treturn this.inputs?.includes(inputName) || false;\n\t}\n\n\thasOutput(outputName: string): boolean {\n\t\treturn this.outputs?.includes(outputName) || false;\n\t}\n\n\thasSuccessor(successor: string): boolean {\n\t\treturn this.successor == successor;\n\t}\n\n}\n\nexport class DirectiveRegistry {\n\n\t/**\n\t * store options info about directives\n\t */\n\tprivate directives = new Map<string, DirectiveNodeInfo>();\n\n\t/**\n\t * register a directive with a name,\n\t * \n\t * the directive could be a structural directive or an attribute directive.\n\t * \n\t * if the directive name exists, will not replace the old directive options.\n\t * @param directiveName \n\t * @param options contain the attributes of the registered directive name\n\t * @override\n\t */\n\tregister(directiveName: string, options?: DirectiveNodeOptions): void {\n\t\tif (!this.directives.has(directiveName)) {\n\t\t\tconst info = new DirectiveNodeInfo(options?.inputs, options?.outputs, options?.successor);\n\t\t\tthis.directives.set(directiveName, info);\n\t\t}\n\t}\n\n\t/**\n\t * update registry with a new value of directive\n\t * @param directiveName \n\t * @param options \n\t */\n\n\tupdate(directiveName: string, options?: DirectiveNodeOptions): void {\n\t\tconst info = new DirectiveNodeInfo(options?.inputs, options?.outputs, options?.successor);\n\t\tthis.directives.set(directiveName, info);\n\t}\n\n\t/**\n\t * replace the current options with a new one.\n\t * \n\t * the directive could be a structural directive or an attribute directive.\n\t * \n\t * if the directive name not exists, no set options will be done\n\t * @param directiveName \n\t * @param options to be replaced\n\t */\n\treplace(directiveName: string, options: DirectiveNodeOptions): void {\n\t\tif (this.directives.has(directiveName)) {\n\t\t\tconst info = new DirectiveNodeInfo(options?.inputs, options?.outputs);\n\t\t\tthis.directives.set(directiveName, info);\n\t\t}\n\t}\n\n\t/**\n\t * check if directive name is registered\n\t * @param directiveName \n\t * @returns `boolean`\n\t */\n\thas(attributeName: string): boolean {\n\t\treturn this.directives.has(attributeName);\n\t}\n\n\t/**\n\t * get the DirectiveOptions for a directive name\n\t * @param directiveName \n\t * @returns `DirectiveOptions` if the name has been registered, otherwise `undefined`\n\t */\n\tget(directiveName: string): DirectiveNodeInfo | undefined {\n\t\treturn this.directives.get(directiveName);\n\t}\n\n\t/**\n\t * check if the options registered with a `directiveName` has attributes array\n\t * @param directiveName \n\t * @returns `boolean`\n\t */\n\thasAttributes(directiveName: string): boolean {\n\t\treturn this.hasInputs(directiveName) || this.hasOutputs(directiveName);\n\t}\n\n\thasInputs(directiveName: string): boolean {\n\t\treturn this.directives.get(directiveName)?.hasInputs() || false;\n\t}\n\n\thasOutputs(directiveName: string): boolean {\n\t\treturn this.directives.get(directiveName)?.hasOutputs() || false;\n\t}\n\n\thasSuccessors(directiveName: string): boolean {\n\t\treturn this.directives.get(directiveName)?.hasSuccessors() || false;\n\t}\n\n\t/**\n\t * get the value of the registered inputs and outputs by directive name\n\t * @param directiveName \n\t * @returns array of strings if found, otherwise `undefined`\n\t */\n\tgetAttributes(directiveName: string): string[] | undefined {\n\t\treturn this.directives.get(directiveName)?.getAttributes();\n\t}\n\n\t/**\n\t * get the value of the registered inputs by directive name\n\t * @param directiveName \n\t * @returns array of strings if found, otherwise `undefined`\n\t */\n\tgetInputs(directiveName: string): string[] | undefined {\n\t\treturn this.directives.get(directiveName)?.getInputs();\n\t}\n\n\t/**\n\t * get the value of the registered outputs by directive name\n\t * @param directiveName \n\t * @returns array of strings if found, otherwise `undefined`\n\t */\n\tgetOutputs(directiveName: string): string[] | undefined {\n\t\treturn this.directives.get(directiveName)?.getOutputs();\n\t}\n\n\t/**\n\t * get the value of the registered successors by directive name\n\t * @param directiveName \n\t * @returns \n\t */\n\tgetSuccessor(directiveName: string): string | undefined {\n\t\treturn this.directives.get(directiveName)?.getSuccessor();\n\t}\n\n\t/**\n\t * check if a directive has a attribute\n\t * @param directiveName \n\t * @param attributeName \n\t * @returns \n\t */\n\thasAttribute(directiveName: string, attributeName: string): boolean {\n\t\treturn this.directives.get(directiveName)?.hasAttribute(attributeName) || false;\n\t}\n\n\t/**\n\t * check if has input\n\t * @param directiveName \n\t * @param inputName \n\t * @returns \n\t */\n\thasInput(directiveName: string, inputName: string): boolean {\n\t\treturn this.directives.get(directiveName)?.hasInput(inputName) || false;\n\t}\n\n\t/**\n\t * check if has successor\n\t * @param directiveName \n\t * @param successorName \n\t * @returns \n\t */\n\thasSuccessor(directiveName: string, successorName: string): boolean {\n\t\treturn this.directives.get(directiveName)?.hasSuccessor(successorName) || false;\n\t}\n\n\t/**\n\t * check if has output\n\t * @param directiveName \n\t * @param outputName \n\t * @returns \n\t */\n\thasOutput(directiveName: string, outputName: string): boolean {\n\t\treturn this.directives.get(directiveName)?.hasOutput(outputName) || false;\n\t}\n\n\tfilterDirectives(attributes: string[]): string[] {\n\t\treturn attributes.filter(name => this.has(name));\n\t}\n\n}\n\nexport const directiveRegistry = new DirectiveRegistry();\n"]}
1
+ {"version":3,"file":"register-directive.js","sourceRoot":"","sources":["../../../src/elements/directives/register-directive.ts"],"names":[],"mappings":"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","sourcesContent":["\n\nexport interface DirectiveNodeOptions {\n\n\t/**\n\t * list of inputs view name\n\t */\n\tinputs?: string[];\n\n\t/**\n\t * list of outputs view name\n\t */\n\toutputs?: string[];\n\n\t/**\n\t * successors block/scope for a directive \n\t * \n\t * ex: [`@if`/`@else`] & [`@for`/`@empty`]\n\t */\n\tsuccessor?: string;\n}\n\nclass DirectiveNodeInfo {\n\tconstructor(private inputs?: string[], private outputs?: string[], private successor?: string) { }\n\n\thasAttributes(): boolean {\n\t\treturn this.hasInputs() || this.hasOutputs();\n\t}\n\n\thasInputs(): boolean {\n\t\treturn (this.inputs?.length ?? 0) > 0;\n\t}\n\n\thasOutputs(): boolean {\n\t\treturn (this.outputs?.length ?? 0) > 0;\n\t}\n\n\thasSuccessors(): boolean {\n\t\treturn (this.successor?.trim().length ?? 0) > 0;\n\t}\n\n\tgetAttributes(): string[] | undefined {\n\t\tif (this.inputs && this.outputs) {\n\t\t\treturn this.inputs.concat(this.outputs);\n\t\t} else if (this.inputs) {\n\t\t\treturn this.inputs;\n\t\t} else if (this.outputs) {\n\t\t\treturn this.outputs;\n\t\t}\n\t\treturn undefined;\n\t}\n\n\tgetInputs(): string[] | undefined {\n\t\treturn this.inputs;\n\t}\n\n\tgetOutputs(): string[] | undefined {\n\t\treturn this.outputs;\n\t}\n\n\tgetSuccessor(): string | undefined {\n\t\treturn this.successor;\n\t}\n\n\thasAttribute(attributeName: string): boolean {\n\t\treturn this.hasInput(attributeName) || this.hasOutput(attributeName);\n\t}\n\n\thasInput(inputName: string): boolean {\n\t\treturn this.inputs?.includes(inputName) || false;\n\t}\n\n\thasOutput(outputName: string): boolean {\n\t\treturn this.outputs?.includes(outputName) || false;\n\t}\n\n\thasSuccessor(successor: string): boolean {\n\t\treturn this.successor == successor;\n\t}\n\n}\n\nexport class DirectiveRegistry {\n\n\t/**\n\t * store options info about directives\n\t */\n\tprivate directives = new Map<string, DirectiveNodeInfo>();\n\n\t/**\n\t * register a directive with a name,\n\t * \n\t * the directive could be a structural directive or an attribute directive.\n\t * \n\t * if the directive name exists, will not replace the old directive options.\n\t * @param directiveName \n\t * @param options contain the attributes of the registered directive name\n\t * @override\n\t */\n\tregister(directiveName: string, options?: DirectiveNodeOptions): void {\n\t\tif (!this.directives.has(directiveName)) {\n\t\t\tthis.set(directiveName, options);\n\t\t}\n\t}\n\n\t/**\n\t * set value of directive\n\t * @param directiveName \n\t * @param options \n\t */\n\n\tset(directiveName: string, options?: DirectiveNodeOptions): void {\n\t\tconst info = new DirectiveNodeInfo(options?.inputs, options?.outputs, options?.successor);\n\t\tthis.directives.set(directiveName, info);\n\t}\n\n\t/**\n\t * replace the current options with a new one.\n\t * \n\t * the directive could be a structural directive or an attribute directive.\n\t * \n\t * if the directive name not exists, no set options will be done\n\t * @param directiveName \n\t * @param options to be replaced\n\t */\n\treplace(directiveName: string, options: DirectiveNodeOptions): void {\n\t\tif (this.directives.has(directiveName)) {\n\t\t\tthis.set(directiveName, options);\n\t\t}\n\t}\n\n\t/**\n\t * check if directive name is registered\n\t * @param directiveName \n\t * @returns `boolean`\n\t */\n\thas(attributeName: string): boolean {\n\t\treturn this.directives.has(attributeName);\n\t}\n\n\t/**\n\t * get the DirectiveOptions for a directive name\n\t * @param directiveName \n\t * @returns `DirectiveOptions` if the name has been registered, otherwise `undefined`\n\t */\n\tget(directiveName: string): DirectiveNodeInfo | undefined {\n\t\treturn this.directives.get(directiveName);\n\t}\n\n\t/**\n\t * check if the options registered with a `directiveName` has attributes array\n\t * @param directiveName \n\t * @returns `boolean`\n\t */\n\thasAttributes(directiveName: string): boolean {\n\t\treturn this.hasInputs(directiveName) || this.hasOutputs(directiveName);\n\t}\n\n\thasInputs(directiveName: string): boolean {\n\t\treturn this.directives.get(directiveName)?.hasInputs() || false;\n\t}\n\n\thasOutputs(directiveName: string): boolean {\n\t\treturn this.directives.get(directiveName)?.hasOutputs() || false;\n\t}\n\n\thasSuccessors(directiveName: string): boolean {\n\t\treturn this.directives.get(directiveName)?.hasSuccessors() || false;\n\t}\n\n\t/**\n\t * get the value of the registered inputs and outputs by directive name\n\t * @param directiveName \n\t * @returns array of strings if found, otherwise `undefined`\n\t */\n\tgetAttributes(directiveName: string): string[] | undefined {\n\t\treturn this.directives.get(directiveName)?.getAttributes();\n\t}\n\n\t/**\n\t * get the value of the registered inputs by directive name\n\t * @param directiveName \n\t * @returns array of strings if found, otherwise `undefined`\n\t */\n\tgetInputs(directiveName: string): string[] | undefined {\n\t\treturn this.directives.get(directiveName)?.getInputs();\n\t}\n\n\t/**\n\t * get the value of the registered outputs by directive name\n\t * @param directiveName \n\t * @returns array of strings if found, otherwise `undefined`\n\t */\n\tgetOutputs(directiveName: string): string[] | undefined {\n\t\treturn this.directives.get(directiveName)?.getOutputs();\n\t}\n\n\t/**\n\t * get the value of the registered successors by directive name\n\t * @param directiveName \n\t * @returns \n\t */\n\tgetSuccessor(directiveName: string): string | undefined {\n\t\treturn this.directives.get(directiveName)?.getSuccessor();\n\t}\n\n\t/**\n\t * check if a directive has a attribute\n\t * @param directiveName \n\t * @param attributeName \n\t * @returns \n\t */\n\thasAttribute(directiveName: string, attributeName: string): boolean {\n\t\treturn this.directives.get(directiveName)?.hasAttribute(attributeName) || false;\n\t}\n\n\t/**\n\t * check if has input\n\t * @param directiveName \n\t * @param inputName \n\t * @returns \n\t */\n\thasInput(directiveName: string, inputName: string): boolean {\n\t\treturn this.directives.get(directiveName)?.hasInput(inputName) || false;\n\t}\n\n\t/**\n\t * check if has successor\n\t * @param directiveName \n\t * @param successorName \n\t * @returns \n\t */\n\thasSuccessor(directiveName: string, successorName: string): boolean {\n\t\treturn this.directives.get(directiveName)?.hasSuccessor(successorName) || false;\n\t}\n\n\t/**\n\t * check if has output\n\t * @param directiveName \n\t * @param outputName \n\t * @returns \n\t */\n\thasOutput(directiveName: string, outputName: string): boolean {\n\t\treturn this.directives.get(directiveName)?.hasOutput(outputName) || false;\n\t}\n\n\tfilterDirectives(attributes: string[]): string[] {\n\t\treturn attributes.filter(name => this.has(name));\n\t}\n\n}\n\nexport const directiveRegistry = new DirectiveRegistry();\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ibyar/elements",
3
- "version": "2.2.0",
3
+ "version": "2.3.0",
4
4
  "description": "Ibyar elements, hold info about HTMLElements class, attributes and tag name",
5
5
  "license": "MIT",
6
6
  "homepage": "https://github.com/ibyar/aurora/tree/dev/packages/elements",
@@ -51,5 +51,5 @@
51
51
  "a11y",
52
52
  "front-end"
53
53
  ],
54
- "gitHead": "70db847b00908addff4aed9e7e4f545edb5f2526"
54
+ "gitHead": "5bf90bcb6f9139753886e2e38272399af4c7153b"
55
55
  }