94 lines
2.9 KiB
JavaScript
94 lines
2.9 KiB
JavaScript
'use strict';
|
|
|
|
var deprecation = require('../../../utils/logging/deprecation.js');
|
|
|
|
"use strict";
|
|
const findMixin = {
|
|
/**
|
|
* The instance label of the object.
|
|
* @memberof scene.Container#
|
|
* @member {string} label
|
|
*/
|
|
label: null,
|
|
/**
|
|
* The instance name of the object.
|
|
* @deprecated since 8.0.0
|
|
* @see scene.Container#label
|
|
* @member {string} name
|
|
* @memberof scene.Container#
|
|
*/
|
|
get name() {
|
|
deprecation.deprecation(deprecation.v8_0_0, "Container.name property has been removed, use Container.label instead");
|
|
return this.label;
|
|
},
|
|
set name(value) {
|
|
deprecation.deprecation(deprecation.v8_0_0, "Container.name property has been removed, use Container.label instead");
|
|
this.label = value;
|
|
},
|
|
/**
|
|
* @method getChildByName
|
|
* @deprecated since 8.0.0
|
|
* @param {string} name - Instance name.
|
|
* @param {boolean}[deep=false] - Whether to search recursively
|
|
* @returns {Container} The child with the specified name.
|
|
* @see scene.Container#getChildByLabel
|
|
* @memberof scene.Container#
|
|
*/
|
|
getChildByName(name, deep = false) {
|
|
return this.getChildByLabel(name, deep);
|
|
},
|
|
/**
|
|
* Returns the first child in the container with the specified label.
|
|
*
|
|
* Recursive searches are done in a pre-order traversal.
|
|
* @memberof scene.Container#
|
|
* @param {string|RegExp} label - Instance label.
|
|
* @param {boolean}[deep=false] - Whether to search recursively
|
|
* @returns {Container} The child with the specified label.
|
|
*/
|
|
getChildByLabel(label, deep = false) {
|
|
const children = this.children;
|
|
for (let i = 0; i < children.length; i++) {
|
|
const child = children[i];
|
|
if (child.label === label || label instanceof RegExp && label.test(child.label))
|
|
return child;
|
|
}
|
|
if (deep) {
|
|
for (let i = 0; i < children.length; i++) {
|
|
const child = children[i];
|
|
const found = child.getChildByLabel(label, true);
|
|
if (found) {
|
|
return found;
|
|
}
|
|
}
|
|
}
|
|
return null;
|
|
},
|
|
/**
|
|
* Returns all children in the container with the specified label.
|
|
* @memberof scene.Container#
|
|
* @param {string|RegExp} label - Instance label.
|
|
* @param {boolean}[deep=false] - Whether to search recursively
|
|
* @param {Container[]} [out=[]] - The array to store matching children in.
|
|
* @returns {Container[]} An array of children with the specified label.
|
|
*/
|
|
getChildrenByLabel(label, deep = false, out = []) {
|
|
const children = this.children;
|
|
for (let i = 0; i < children.length; i++) {
|
|
const child = children[i];
|
|
if (child.label === label || label instanceof RegExp && label.test(child.label)) {
|
|
out.push(child);
|
|
}
|
|
}
|
|
if (deep) {
|
|
for (let i = 0; i < children.length; i++) {
|
|
children[i].getChildrenByLabel(label, true, out);
|
|
}
|
|
}
|
|
return out;
|
|
}
|
|
};
|
|
|
|
exports.findMixin = findMixin;
|
|
//# sourceMappingURL=findMixin.js.map
|