{"version":3,"file":"findMixin.mjs","sources":["../../../../src/scene/container/container-mixins/findMixin.ts"],"sourcesContent":["import { deprecation, v8_0_0 } from '../../../utils/logging/deprecation';\n\nimport type { Container } from '../Container';\n\nexport interface FindMixinConstructor\n{\n label?: string;\n}\nexport interface FindMixin extends Required\n{\n /**\n * @deprecated since 8.0.0\n * @see Container#label\n */\n name: string;\n getChildByName(label: RegExp | string, deep?: boolean): Container | null;\n getChildByLabel(label: RegExp | string, deep?: boolean): Container | null;\n getChildrenByLabel(label: RegExp | string, deep?: boolean, out?: Container[]): Container[];\n}\n\nexport const findMixin: Partial = {\n /**\n * The instance label of the object.\n * @memberof scene.Container#\n * @member {string} label\n */\n label: null,\n\n /**\n * The instance name of the object.\n * @deprecated since 8.0.0\n * @see scene.Container#label\n * @member {string} name\n * @memberof scene.Container#\n */\n get name(): string\n {\n // #if _DEBUG\n deprecation(v8_0_0, 'Container.name property has been removed, use Container.label instead');\n // #endif\n\n return this.label;\n },\n set name(value: string)\n {\n // #if _DEBUG\n deprecation(v8_0_0, 'Container.name property has been removed, use Container.label instead');\n // #endif\n\n this.label = value;\n },\n\n /**\n * @method getChildByName\n * @deprecated since 8.0.0\n * @param {string} name - Instance name.\n * @param {boolean}[deep=false] - Whether to search recursively\n * @returns {Container} The child with the specified name.\n * @see scene.Container#getChildByLabel\n * @memberof scene.Container#\n */\n getChildByName(name: string, deep = false): Container | null\n {\n return this.getChildByLabel(name, deep);\n },\n /**\n * Returns the first child in the container with the specified label.\n *\n * Recursive searches are done in a pre-order traversal.\n * @memberof scene.Container#\n * @param {string|RegExp} label - Instance label.\n * @param {boolean}[deep=false] - Whether to search recursively\n * @returns {Container} The child with the specified label.\n */\n getChildByLabel(label: string | RegExp, deep = false): Container | null\n {\n const children = this.children;\n\n for (let i = 0; i < children.length; i++)\n {\n const child = children[i];\n\n if (child.label === label || (label instanceof RegExp && label.test(child.label))) return child;\n }\n\n if (deep)\n {\n for (let i = 0; i < children.length; i++)\n {\n const child = children[i];\n const found = child.getChildByLabel(label, true);\n\n if (found)\n {\n return found;\n }\n }\n }\n\n return null;\n },\n\n /**\n * Returns all children in the container with the specified label.\n * @memberof scene.Container#\n * @param {string|RegExp} label - Instance label.\n * @param {boolean}[deep=false] - Whether to search recursively\n * @param {Container[]} [out=[]] - The array to store matching children in.\n * @returns {Container[]} An array of children with the specified label.\n */\n getChildrenByLabel(label: string | RegExp, deep = false, out = []): Container[]\n {\n const children = this.children;\n\n for (let i = 0; i < children.length; i++)\n {\n const child = children[i];\n\n if (child.label === label || (label instanceof RegExp && label.test(child.label)))\n {\n out.push(child);\n }\n }\n\n if (deep)\n {\n for (let i = 0; i < children.length; i++)\n {\n children[i].getChildrenByLabel(label, true, out);\n }\n }\n\n return out;\n },\n} as Container;\n"],"names":[],"mappings":";;;AAoBO,MAAM,SAAgC,GAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMzC,KAAO,EAAA,IAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASP,IAAI,IACJ,GAAA;AAEI,IAAA,WAAA,CAAY,QAAQ,uEAAuE,CAAA,CAAA;AAG3F,IAAA,OAAO,IAAK,CAAA,KAAA,CAAA;AAAA,GAChB;AAAA,EACA,IAAI,KAAK,KACT,EAAA;AAEI,IAAA,WAAA,CAAY,QAAQ,uEAAuE,CAAA,CAAA;AAG3F,IAAA,IAAA,CAAK,KAAQ,GAAA,KAAA,CAAA;AAAA,GACjB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAWA,cAAA,CAAe,IAAc,EAAA,IAAA,GAAO,KACpC,EAAA;AACI,IAAO,OAAA,IAAA,CAAK,eAAgB,CAAA,IAAA,EAAM,IAAI,CAAA,CAAA;AAAA,GAC1C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA,eAAA,CAAgB,KAAwB,EAAA,IAAA,GAAO,KAC/C,EAAA;AACI,IAAA,MAAM,WAAW,IAAK,CAAA,QAAA,CAAA;AAEtB,IAAA,KAAA,IAAS,CAAI,GAAA,CAAA,EAAG,CAAI,GAAA,QAAA,CAAS,QAAQ,CACrC,EAAA,EAAA;AACI,MAAM,MAAA,KAAA,GAAQ,SAAS,CAAC,CAAA,CAAA;AAExB,MAAI,IAAA,KAAA,CAAM,UAAU,KAAU,IAAA,KAAA,YAAiB,UAAU,KAAM,CAAA,IAAA,CAAK,MAAM,KAAK,CAAA;AAAI,QAAO,OAAA,KAAA,CAAA;AAAA,KAC9F;AAEA,IAAA,IAAI,IACJ,EAAA;AACI,MAAA,KAAA,IAAS,CAAI,GAAA,CAAA,EAAG,CAAI,GAAA,QAAA,CAAS,QAAQ,CACrC,EAAA,EAAA;AACI,QAAM,MAAA,KAAA,GAAQ,SAAS,CAAC,CAAA,CAAA;AACxB,QAAA,MAAM,KAAQ,GAAA,KAAA,CAAM,eAAgB,CAAA,KAAA,EAAO,IAAI,CAAA,CAAA;AAE/C,QAAA,IAAI,KACJ,EAAA;AACI,UAAO,OAAA,KAAA,CAAA;AAAA,SACX;AAAA,OACJ;AAAA,KACJ;AAEA,IAAO,OAAA,IAAA,CAAA;AAAA,GACX;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA,mBAAmB,KAAwB,EAAA,IAAA,GAAO,KAAO,EAAA,GAAA,GAAM,EAC/D,EAAA;AACI,IAAA,MAAM,WAAW,IAAK,CAAA,QAAA,CAAA;AAEtB,IAAA,KAAA,IAAS,CAAI,GAAA,CAAA,EAAG,CAAI,GAAA,QAAA,CAAS,QAAQ,CACrC,EAAA,EAAA;AACI,MAAM,MAAA,KAAA,GAAQ,SAAS,CAAC,CAAA,CAAA;AAExB,MAAI,IAAA,KAAA,CAAM,UAAU,KAAU,IAAA,KAAA,YAAiB,UAAU,KAAM,CAAA,IAAA,CAAK,KAAM,CAAA,KAAK,CAC/E,EAAA;AACI,QAAA,GAAA,CAAI,KAAK,KAAK,CAAA,CAAA;AAAA,OAClB;AAAA,KACJ;AAEA,IAAA,IAAI,IACJ,EAAA;AACI,MAAA,KAAA,IAAS,CAAI,GAAA,CAAA,EAAG,CAAI,GAAA,QAAA,CAAS,QAAQ,CACrC,EAAA,EAAA;AACI,QAAA,QAAA,CAAS,CAAC,CAAA,CAAE,kBAAmB,CAAA,KAAA,EAAO,MAAM,GAAG,CAAA,CAAA;AAAA,OACnD;AAAA,KACJ;AAEA,IAAO,OAAA,GAAA,CAAA;AAAA,GACX;AACJ;;;;"}