98b02e77395882dea88458d78c8d147aabdfe9db0539ac1fca6eca461f2216ea.json 12 KB

1
  1. {"ast":null,"code":"import { AndOrNotEvaluator } from \"./andOrNotEvaluator.js\";\n/**\n * Class used to store custom tags\n */\nexport class Tags {\n /**\n * Adds support for tags on the given object\n * @param obj defines the object to use\n */\n static EnableFor(obj) {\n obj._tags = obj._tags || {};\n obj.hasTags = () => {\n return Tags.HasTags(obj);\n };\n obj.addTags = tagsString => {\n return Tags.AddTagsTo(obj, tagsString);\n };\n obj.removeTags = tagsString => {\n return Tags.RemoveTagsFrom(obj, tagsString);\n };\n obj.matchesTagsQuery = tagsQuery => {\n return Tags.MatchesQuery(obj, tagsQuery);\n };\n }\n /**\n * Removes tags support\n * @param obj defines the object to use\n */\n static DisableFor(obj) {\n delete obj._tags;\n delete obj.hasTags;\n delete obj.addTags;\n delete obj.removeTags;\n delete obj.matchesTagsQuery;\n }\n /**\n * Gets a boolean indicating if the given object has tags\n * @param obj defines the object to use\n * @returns a boolean\n */\n static HasTags(obj) {\n if (!obj._tags) {\n return false;\n }\n const tags = obj._tags;\n for (const i in tags) {\n if (Object.prototype.hasOwnProperty.call(tags, i)) {\n return true;\n }\n }\n return false;\n }\n /**\n * Gets the tags available on a given object\n * @param obj defines the object to use\n * @param asString defines if the tags must be returned as a string instead of an array of strings\n * @returns the tags\n */\n static GetTags(obj, asString = true) {\n if (!obj._tags) {\n return null;\n }\n if (asString) {\n const tagsArray = [];\n for (const tag in obj._tags) {\n if (Object.prototype.hasOwnProperty.call(obj._tags, tag) && obj._tags[tag] === true) {\n tagsArray.push(tag);\n }\n }\n return tagsArray.join(\" \");\n } else {\n return obj._tags;\n }\n }\n /**\n * Adds tags to an object\n * @param obj defines the object to use\n * @param tagsString defines the tag string. The tags 'true' and 'false' are reserved and cannot be used as tags.\n * A tag cannot start with '||', '&&', and '!'. It cannot contain whitespaces\n */\n static AddTagsTo(obj, tagsString) {\n if (!tagsString) {\n return;\n }\n if (typeof tagsString !== \"string\") {\n return;\n }\n const tags = tagsString.split(\" \");\n tags.forEach(function (tag) {\n Tags._AddTagTo(obj, tag);\n });\n }\n /**\n * @internal\n */\n static _AddTagTo(obj, tag) {\n tag = tag.trim();\n if (tag === \"\" || tag === \"true\" || tag === \"false\") {\n return;\n }\n if (tag.match(/[\\s]/) || tag.match(/^([!]|([|]|[&]){2})/)) {\n return;\n }\n Tags.EnableFor(obj);\n obj._tags[tag] = true;\n }\n /**\n * Removes specific tags from a specific object\n * @param obj defines the object to use\n * @param tagsString defines the tags to remove\n */\n static RemoveTagsFrom(obj, tagsString) {\n if (!Tags.HasTags(obj)) {\n return;\n }\n const tags = tagsString.split(\" \");\n for (const t in tags) {\n Tags._RemoveTagFrom(obj, tags[t]);\n }\n }\n /**\n * @internal\n */\n static _RemoveTagFrom(obj, tag) {\n delete obj._tags[tag];\n }\n /**\n * Defines if tags hosted on an object match a given query\n * @param obj defines the object to use\n * @param tagsQuery defines the tag query\n * @returns a boolean\n */\n static MatchesQuery(obj, tagsQuery) {\n if (tagsQuery === undefined) {\n return true;\n }\n if (tagsQuery === \"\") {\n return Tags.HasTags(obj);\n }\n return AndOrNotEvaluator.Eval(tagsQuery, r => Tags.HasTags(obj) && obj._tags[r]);\n }\n}","map":{"version":3,"names":["AndOrNotEvaluator","Tags","EnableFor","obj","_tags","hasTags","HasTags","addTags","tagsString","AddTagsTo","removeTags","RemoveTagsFrom","matchesTagsQuery","tagsQuery","MatchesQuery","DisableFor","tags","i","Object","prototype","hasOwnProperty","call","GetTags","asString","tagsArray","tag","push","join","split","forEach","_AddTagTo","trim","match","t","_RemoveTagFrom","undefined","Eval","r"],"sources":["F:/workspace/202226701027/huinongbao-app/node_modules/@babylonjs/core/Misc/tags.js"],"sourcesContent":["import { AndOrNotEvaluator } from \"./andOrNotEvaluator.js\";\n/**\n * Class used to store custom tags\n */\nexport class Tags {\n /**\n * Adds support for tags on the given object\n * @param obj defines the object to use\n */\n static EnableFor(obj) {\n obj._tags = obj._tags || {};\n obj.hasTags = () => {\n return Tags.HasTags(obj);\n };\n obj.addTags = (tagsString) => {\n return Tags.AddTagsTo(obj, tagsString);\n };\n obj.removeTags = (tagsString) => {\n return Tags.RemoveTagsFrom(obj, tagsString);\n };\n obj.matchesTagsQuery = (tagsQuery) => {\n return Tags.MatchesQuery(obj, tagsQuery);\n };\n }\n /**\n * Removes tags support\n * @param obj defines the object to use\n */\n static DisableFor(obj) {\n delete obj._tags;\n delete obj.hasTags;\n delete obj.addTags;\n delete obj.removeTags;\n delete obj.matchesTagsQuery;\n }\n /**\n * Gets a boolean indicating if the given object has tags\n * @param obj defines the object to use\n * @returns a boolean\n */\n static HasTags(obj) {\n if (!obj._tags) {\n return false;\n }\n const tags = obj._tags;\n for (const i in tags) {\n if (Object.prototype.hasOwnProperty.call(tags, i)) {\n return true;\n }\n }\n return false;\n }\n /**\n * Gets the tags available on a given object\n * @param obj defines the object to use\n * @param asString defines if the tags must be returned as a string instead of an array of strings\n * @returns the tags\n */\n static GetTags(obj, asString = true) {\n if (!obj._tags) {\n return null;\n }\n if (asString) {\n const tagsArray = [];\n for (const tag in obj._tags) {\n if (Object.prototype.hasOwnProperty.call(obj._tags, tag) && obj._tags[tag] === true) {\n tagsArray.push(tag);\n }\n }\n return tagsArray.join(\" \");\n }\n else {\n return obj._tags;\n }\n }\n /**\n * Adds tags to an object\n * @param obj defines the object to use\n * @param tagsString defines the tag string. The tags 'true' and 'false' are reserved and cannot be used as tags.\n * A tag cannot start with '||', '&&', and '!'. It cannot contain whitespaces\n */\n static AddTagsTo(obj, tagsString) {\n if (!tagsString) {\n return;\n }\n if (typeof tagsString !== \"string\") {\n return;\n }\n const tags = tagsString.split(\" \");\n tags.forEach(function (tag) {\n Tags._AddTagTo(obj, tag);\n });\n }\n /**\n * @internal\n */\n static _AddTagTo(obj, tag) {\n tag = tag.trim();\n if (tag === \"\" || tag === \"true\" || tag === \"false\") {\n return;\n }\n if (tag.match(/[\\s]/) || tag.match(/^([!]|([|]|[&]){2})/)) {\n return;\n }\n Tags.EnableFor(obj);\n obj._tags[tag] = true;\n }\n /**\n * Removes specific tags from a specific object\n * @param obj defines the object to use\n * @param tagsString defines the tags to remove\n */\n static RemoveTagsFrom(obj, tagsString) {\n if (!Tags.HasTags(obj)) {\n return;\n }\n const tags = tagsString.split(\" \");\n for (const t in tags) {\n Tags._RemoveTagFrom(obj, tags[t]);\n }\n }\n /**\n * @internal\n */\n static _RemoveTagFrom(obj, tag) {\n delete obj._tags[tag];\n }\n /**\n * Defines if tags hosted on an object match a given query\n * @param obj defines the object to use\n * @param tagsQuery defines the tag query\n * @returns a boolean\n */\n static MatchesQuery(obj, tagsQuery) {\n if (tagsQuery === undefined) {\n return true;\n }\n if (tagsQuery === \"\") {\n return Tags.HasTags(obj);\n }\n return AndOrNotEvaluator.Eval(tagsQuery, (r) => Tags.HasTags(obj) && obj._tags[r]);\n }\n}\n"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}