123456789101112131415161718192021222324252627282930313233343536373839 |
- // @ts-nocheck
- import { type ComponentPublicInstance } from 'vue';
- type SelectOptions = {
- context : ComponentPublicInstance,
- needAll : boolean | null,
-
- }
- export function selectAllComponent(selector : string, options : UTSJSONObject) : ComponentPublicInstance[]|null {
- const context = options.get('context')! as ComponentPublicInstance;
- let needAll = options.get('needAll') as boolean;
- let result:ComponentPublicInstance[] = []
-
- if(needAll == null) { needAll = true };
-
- if(context.$children.length > 0) {
- const queue:ComponentPublicInstance[] = [...context.$children];
- while(queue.length > 0) {
- const child = queue.shift();
- const name = child?.$options?.name;
- if(name == selector) {
- result.push(child as ComponentPublicInstance)
- } else {
- const children = child?.$children
- if(children !== null) {
- queue.push(...children)
- }
- }
- if(result.length > 0 && !needAll) {
- break;
- }
- }
- }
- if(result.length > 0) {
- return result
- }
- return null
- }
|