diff --git a/docs/.nojekyll b/docs/.nojekyll new file mode 100644 index 000000000..e2ac6616a --- /dev/null +++ b/docs/.nojekyll @@ -0,0 +1 @@ +TypeDoc added this file to prevent GitHub Pages from using Jekyll. You can turn off this behavior by setting the `githubPages` option to false. \ No newline at end of file diff --git a/docs/.typedoc-plugin-versions b/docs/.typedoc-plugin-versions new file mode 100644 index 000000000..fcbd628a7 --- /dev/null +++ b/docs/.typedoc-plugin-versions @@ -0,0 +1 @@ +{"versions":["v1.0.0-beta01"],"stable":"v1.0.0-beta01","dev":"v1.0.0-beta01"} diff --git a/datas/README.md b/docs/datas/README.md similarity index 100% rename from datas/README.md rename to docs/datas/README.md diff --git a/datas/linux-commands.json b/docs/datas/linux-commands.json similarity index 100% rename from datas/linux-commands.json rename to docs/datas/linux-commands.json diff --git a/datas/moo-css.json b/docs/datas/moo-css.json similarity index 100% rename from datas/moo-css.json rename to docs/datas/moo-css.json diff --git a/datas/regex.json b/docs/datas/regex.json similarity index 100% rename from datas/regex.json rename to docs/datas/regex.json diff --git a/datas/tools.json b/docs/datas/tools.json similarity index 100% rename from datas/tools.json rename to docs/datas/tools.json diff --git a/docs/dev b/docs/dev new file mode 120000 index 000000000..7773aaa15 --- /dev/null +++ b/docs/dev @@ -0,0 +1 @@ +/home/runner/work/fe-tools/fe-tools/docs/v1.0.0-beta01 \ No newline at end of file diff --git a/docs/index.html b/docs/index.html new file mode 100644 index 000000000..a850b02a9 --- /dev/null +++ b/docs/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/docs/stable b/docs/stable new file mode 120000 index 000000000..7773aaa15 --- /dev/null +++ b/docs/stable @@ -0,0 +1 @@ +/home/runner/work/fe-tools/fe-tools/docs/v1.0.0-beta01 \ No newline at end of file diff --git a/docs/v1.0 b/docs/v1.0 new file mode 120000 index 000000000..7773aaa15 --- /dev/null +++ b/docs/v1.0 @@ -0,0 +1 @@ +/home/runner/work/fe-tools/fe-tools/docs/v1.0.0-beta01 \ No newline at end of file diff --git a/docs/v1.0.0-beta01/data/AIUtils.Function.applyTemplate.json b/docs/v1.0.0-beta01/data/AIUtils.Function.applyTemplate.json new file mode 100644 index 000000000..be7860eeb --- /dev/null +++ b/docs/v1.0.0-beta01/data/AIUtils.Function.applyTemplate.json @@ -0,0 +1 @@ +{"id":2232,"name":"applyTemplate","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/ai-utils/src/utils/prompt/applyTemplate.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/ai-utils/src/utils/prompt/applyTemplate.ts","line":25,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/ai-utils/src/utils/prompt/applyTemplate.ts#L25"}],"signatures":[{"id":2233,"name":"applyTemplate","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[{"kind":"text","text":"Replaces placeholders in a template string with provided values."}],"blockTags":[{"tag":"@returns","content":[{"kind":"text","text":"The template string with placeholders replaced by their corresponding values."}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\nconst template = \"Hello, {{name}}!\";\nconst result = applyTemplate(template, { name: \"World\" });\nconsole.log(result); // Output: \"Hello, World!\"\n```"}]}]},"parameters":[{"id":2234,"name":"template","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"The template string containing placeholders like {{key}}."}]},"type":{"type":"intrinsic","name":"string"},"text":{"comment":"

The template string containing placeholders like {{key}}.

\n"}},{"id":2235,"name":"replacements","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"An object mapping placeholder keys to their replacement values."}]},"type":{"type":"reference","typeArguments":[{"type":"intrinsic","name":"string"},{"type":"intrinsic","name":"string"}],"name":"Record","qualifiedName":"Record","package":"typescript"},"text":{"comment":"

An object mapping placeholder keys to their replacement values.

\n"}}],"type":{"type":"intrinsic","name":"string"},"is":{"declaration":false},"location":{"query":"AIUtils.Function.applyTemplate","hash":"applyTemplate"},"text":{"comment":"

Replaces placeholders in a template string with provided values.

\n
Returns:

The template string with placeholders replaced by their corresponding values.

\n
Example:
const template = \"Hello, {{name}}!\";\nconst result = applyTemplate(template, { name: \"World\" });\nconsole.log(result); // Output: \"Hello, World!\"\n
\n"},"sources":[{"fileName":"packages/ai-utils/src/utils/prompt/applyTemplate.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/ai-utils/src/utils/prompt/applyTemplate.ts","line":25,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/ai-utils/src/utils/prompt/applyTemplate.ts#L25"}],"parentId":2232}],"is":{"declaration":true},"location":{"query":"AIUtils.Function.applyTemplate","hash":""},"text":{},"parentId":1452} diff --git a/docs/v1.0.0-beta01/data/AIUtils.Function.createPromptGenerator.json b/docs/v1.0.0-beta01/data/AIUtils.Function.createPromptGenerator.json new file mode 100644 index 000000000..c7311e27c --- /dev/null +++ b/docs/v1.0.0-beta01/data/AIUtils.Function.createPromptGenerator.json @@ -0,0 +1 @@ +{"id":2221,"name":"createPromptGenerator","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/ai-utils/src/utils/prompt/generator.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/ai-utils/src/utils/prompt/generator.ts","line":42,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/ai-utils/src/utils/prompt/generator.ts#L42"}],"signatures":[{"id":2222,"name":"createPromptGenerator","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[{"kind":"text","text":"Creates a reusable prompt generator function.\n\nThis higher-order function encapsulates common logic like token length checking,\nallowing specific prompt content generation to be handled by the provided "},{"kind":"code","text":"`contentGenerator`"},{"kind":"text","text":"."}],"blockTags":[{"tag":"@returns","content":[{"kind":"text","text":"A function that generates the full prompt string based on the input, or an empty string if it exceeds the token limit."}]},{"tag":"@example","content":[{"kind":"text","text":"const myPromptGenerator = createPromptGenerator(\n { maxTokenLength: 10000 },\n (userQuery: string) => "},{"kind":"code","text":"`Answer the following question: ${userQuery}`"},{"kind":"text","text":"\n);\nconst prompt = myPromptGenerator(\"What is the weather today?\");\nif (prompt) {\n // Use the prompt with an LLM API\n} else {\n console.error(\"Prompt was too long\");\n}"}]}]},"typeParameter":[{"id":2223,"name":"T","kind":131072,"kindString":"Type parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"The type of the input parameter for the content generator function."}]}}],"parameters":[{"id":2224,"name":"config","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"Configuration for the prompt generator, including maximum token length."}]},"type":{"type":"reference","id":2219,"name":"PromptConfig"},"text":{"comment":"

Configuration for the prompt generator, including maximum token length.

\n"}},{"id":2225,"name":"contentGenerator","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"A function that takes the input and returns the core prompt content."}]},"type":{"type":"reflection","declaration":{"id":2226,"name":"__type","kind":65536,"kindString":"Type literal","flags":{},"sources":[{"fileName":"packages/ai-utils/src/utils/prompt/generator.ts","line":44,"character":20,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/ai-utils/src/utils/prompt/generator.ts#L44"}],"signatures":[{"id":2227,"name":"__type","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":2228,"name":"input","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","id":2223,"name":"T"}}],"type":{"type":"intrinsic","name":"string"}}]}},"text":{"comment":"

A function that takes the input and returns the core prompt content.

\n"}}],"type":{"type":"reflection","declaration":{"id":2229,"name":"createPromptGenerator","kind":65536,"kindString":"Type literal","flags":{},"sources":[{"fileName":"packages/ai-utils/src/utils/prompt/generator.ts","line":45,"character":3,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/ai-utils/src/utils/prompt/generator.ts#L45"}],"signatures":[{"id":2230,"name":"createPromptGenerator","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":2231,"name":"input","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","id":2223,"name":"T"},"text":{}}],"type":{"type":"intrinsic","name":"string"},"is":{"declaration":false},"location":{"query":"AIUtils.Function.createPromptGenerator","hash":"createPromptGenerator.__type"},"text":{},"parentId":2221}],"location":{"query":"AIUtils.Function.createPromptGenerator","hash":"createPromptGenerator"}}},"is":{"declaration":false},"location":{"query":"AIUtils.Function.createPromptGenerator","hash":"createPromptGenerator"},"text":{"comment":"

Creates a reusable prompt generator function.

\n

This higher-order function encapsulates common logic like token length checking,\nallowing specific prompt content generation to be handled by the provided contentGenerator.

\n
Returns:

A function that generates the full prompt string based on the input, or an empty string if it exceeds the token limit.

\n
Example:

const myPromptGenerator = createPromptGenerator(\n { maxTokenLength: 10000 },\n (userQuery: string) => Answer the following question: ${userQuery}\n);\nconst prompt = myPromptGenerator("What is the weather today?");\nif (prompt) {\n // Use the prompt with an LLM API\n} else {\n console.error("Prompt was too long");\n}

\n"},"sources":[{"fileName":"packages/ai-utils/src/utils/prompt/generator.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/ai-utils/src/utils/prompt/generator.ts","line":42,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/ai-utils/src/utils/prompt/generator.ts#L42"}],"parentId":2221}],"is":{"declaration":true},"location":{"query":"AIUtils.Function.createPromptGenerator","hash":""},"text":{},"parentId":1452} diff --git a/docs/v1.0.0-beta01/data/AIUtils.Function.estimateTokenLength.json b/docs/v1.0.0-beta01/data/AIUtils.Function.estimateTokenLength.json new file mode 100644 index 000000000..49153f75b --- /dev/null +++ b/docs/v1.0.0-beta01/data/AIUtils.Function.estimateTokenLength.json @@ -0,0 +1 @@ +{"id":2214,"name":"estimateTokenLength","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/ai-utils/src/llm/prompts/token.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/ai-utils/src/llm/prompts/token.ts","line":45,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/ai-utils/src/llm/prompts/token.ts#L45"}],"signatures":[{"id":2215,"name":"estimateTokenLength","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"estimateTokenLength"}]},{"tag":"@description","content":[{"kind":"text","text":"估算字符串中的token数量。A simple heuristic to estimate the number of tokens in a string using character-based approximation for various language models."}]},{"tag":"@returns","content":[{"kind":"text","text":"估算的token数量。The estimated number of tokens (rough approximation)"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Estimate tokens for English text\nconst englishTokens = estimateTokenLength('Hello, how are you today?');\nconsole.log(englishTokens); // Approximately 6-8 tokens\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Estimate tokens for Chinese text\nconst chineseTokens = estimateTokenLength('你好,今天怎么样?');\nconsole.log(chineseTokens); // Approximately 8-10 tokens\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Estimate tokens for code\nconst codeTokens = estimateTokenLength('function hello() { return \"world\"; }');\nconsole.log(codeTokens); // Approximately 8-12 tokens\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Check if prompt fits within model limits\nconst prompt = 'Generate a summary of this article...';\nconst tokens = estimateTokenLength(prompt);\nconst maxTokens = 4096;\nif (tokens > maxTokens * 0.8) {\n console.warn('Prompt may be too long for model');\n}\n```"}]},{"tag":"@see","content":[{"kind":"inline-tag","tag":"@link","text":"https://www.npmjs.com/package/tiktoken","target":"https://www.npmjs.com/package/tiktoken"},{"kind":"text","text":" - For precise OpenAI token counting"}]}]},"parameters":[{"id":2216,"name":"input","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"需要估算token数量的字符串。The string to estimate token length for (supports multilingual text)"}]},"type":{"type":"intrinsic","name":"string"},"text":{"comment":"

需要估算token数量的字符串。The string to estimate token length for (supports multilingual text)

\n"}}],"type":{"type":"intrinsic","name":"number"},"is":{"declaration":false},"location":{"query":"AIUtils.Function.estimateTokenLength","hash":"estimateTokenLength"},"text":{"comment":"
Function:

estimateTokenLength

\n
Description:

估算字符串中的token数量。A simple heuristic to estimate the number of tokens in a string using character-based approximation for various language models.

\n
Returns:

估算的token数量。The estimated number of tokens (rough approximation)

\n
Example:
// Estimate tokens for English text\nconst englishTokens = estimateTokenLength('Hello, how are you today?');\nconsole.log(englishTokens); // Approximately 6-8 tokens\n
\n
Example:
// Estimate tokens for Chinese text\nconst chineseTokens = estimateTokenLength('你好,今天怎么样?');\nconsole.log(chineseTokens); // Approximately 8-10 tokens\n
\n
Example:
// Estimate tokens for code\nconst codeTokens = estimateTokenLength('function hello() { return \"world\"; }');\nconsole.log(codeTokens); // Approximately 8-12 tokens\n
\n
Example:
// Check if prompt fits within model limits\nconst prompt = 'Generate a summary of this article...';\nconst tokens = estimateTokenLength(prompt);\nconst maxTokens = 4096;\nif (tokens > maxTokens * 0.8) {\n  console.warn('Prompt may be too long for model');\n}\n
\n
See:

https://www.npmjs.com/package/tiktoken - For precise OpenAI token counting

\n"},"sources":[{"fileName":"packages/ai-utils/src/llm/prompts/token.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/ai-utils/src/llm/prompts/token.ts","line":45,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/ai-utils/src/llm/prompts/token.ts#L45"}],"parentId":2214}],"is":{"declaration":true},"location":{"query":"AIUtils.Function.estimateTokenLength","hash":""},"text":{},"parentId":1452} diff --git a/docs/v1.0.0-beta01/data/AIUtils.Function.genCodeReviewPrompt.json b/docs/v1.0.0-beta01/data/AIUtils.Function.genCodeReviewPrompt.json new file mode 100644 index 000000000..9aa53cc1b --- /dev/null +++ b/docs/v1.0.0-beta01/data/AIUtils.Function.genCodeReviewPrompt.json @@ -0,0 +1 @@ +{"id":2183,"name":"genCodeReviewPrompt","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/ai-utils/src/applications/codeReview.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/ai-utils/src/applications/codeReview.ts","line":71,"character":13,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/ai-utils/src/applications/codeReview.ts#L71"}],"signatures":[{"id":2184,"name":"genCodeReviewPrompt","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"genCodeReviewPrompt"}]},{"tag":"@description","content":[{"kind":"text","text":"生成用于代码审查的Prompt"}]},{"tag":"@returns","content":[{"kind":"text","text":"符合要求的Prompt文本,如果超过长度限制则返回空字符串"}]}]},"parameters":[{"id":2185,"name":"input","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"intrinsic","name":"string"},"text":{}}],"type":{"type":"intrinsic","name":"string"},"is":{"declaration":false},"location":{"query":"AIUtils.Function.genCodeReviewPrompt","hash":"genCodeReviewPrompt"},"text":{"comment":"
Function:

genCodeReviewPrompt

\n
Description:

生成用于代码审查的Prompt

\n
Returns:

符合要求的Prompt文本,如果超过长度限制则返回空字符串

\n"},"sources":[{"fileName":"packages/ai-utils/src/utils/prompt/generator.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/ai-utils/src/utils/prompt/generator.ts","line":45,"character":3,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/ai-utils/src/utils/prompt/generator.ts#L45"}],"parentId":2183}],"is":{"declaration":true},"location":{"query":"AIUtils.Function.genCodeReviewPrompt","hash":""},"text":{},"parentId":1452} diff --git a/docs/v1.0.0-beta01/data/AIUtils.Function.genCreateReactComponentPrompt.json b/docs/v1.0.0-beta01/data/AIUtils.Function.genCreateReactComponentPrompt.json new file mode 100644 index 000000000..a02ca0cda --- /dev/null +++ b/docs/v1.0.0-beta01/data/AIUtils.Function.genCreateReactComponentPrompt.json @@ -0,0 +1 @@ +{"id":2197,"name":"genCreateReactComponentPrompt","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/ai-utils/src/applications/createReactComponent.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/ai-utils/src/applications/createReactComponent.ts","line":76,"character":13,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/ai-utils/src/applications/createReactComponent.ts#L76"}],"signatures":[{"id":2198,"name":"genCreateReactComponentPrompt","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"genCreateReactComponentPrompt"}]},{"tag":"@description","content":[{"kind":"text","text":"生成用于创建React组件的Prompt"}]},{"tag":"@returns","content":[{"kind":"text","text":"符合要求的Prompt文本,如果超过长度限制则返回空字符串"}]}]},"parameters":[{"id":2199,"name":"input","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"intrinsic","name":"string"},"text":{}}],"type":{"type":"intrinsic","name":"string"},"is":{"declaration":false},"location":{"query":"AIUtils.Function.genCreateReactComponentPrompt","hash":"genCreateReactComponentPrompt"},"text":{"comment":"
Function:

genCreateReactComponentPrompt

\n
Description:

生成用于创建React组件的Prompt

\n
Returns:

符合要求的Prompt文本,如果超过长度限制则返回空字符串

\n"},"sources":[{"fileName":"packages/ai-utils/src/utils/prompt/generator.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/ai-utils/src/utils/prompt/generator.ts","line":45,"character":3,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/ai-utils/src/utils/prompt/generator.ts#L45"}],"parentId":2197}],"is":{"declaration":true},"location":{"query":"AIUtils.Function.genCreateReactComponentPrompt","hash":""},"text":{},"parentId":1452} diff --git a/docs/v1.0.0-beta01/data/AIUtils.Function.genEnhancePrompt.json b/docs/v1.0.0-beta01/data/AIUtils.Function.genEnhancePrompt.json new file mode 100644 index 000000000..3d9f1834e --- /dev/null +++ b/docs/v1.0.0-beta01/data/AIUtils.Function.genEnhancePrompt.json @@ -0,0 +1 @@ +{"id":2193,"name":"genEnhancePrompt","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/ai-utils/src/applications/enhancePrompt.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/ai-utils/src/applications/enhancePrompt.ts","line":56,"character":13,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/ai-utils/src/applications/enhancePrompt.ts#L56"}],"signatures":[{"id":2194,"name":"genEnhancePrompt","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"genEnhancePrompt"}]},{"tag":"@description","content":[{"kind":"text","text":"生成用于增强Prompt的Prompt"}]},{"tag":"@returns","content":[{"kind":"text","text":"符合要求的Prompt文本,如果超过长度限制则返回空字符串"}]}]},"parameters":[{"id":2195,"name":"input","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"intrinsic","name":"string"},"text":{}}],"type":{"type":"intrinsic","name":"string"},"is":{"declaration":false},"location":{"query":"AIUtils.Function.genEnhancePrompt","hash":"genEnhancePrompt"},"text":{"comment":"
Function:

genEnhancePrompt

\n
Description:

生成用于增强Prompt的Prompt

\n
Returns:

符合要求的Prompt文本,如果超过长度限制则返回空字符串

\n"},"sources":[{"fileName":"packages/ai-utils/src/utils/prompt/generator.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/ai-utils/src/utils/prompt/generator.ts","line":45,"character":3,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/ai-utils/src/utils/prompt/generator.ts#L45"}],"parentId":2193}],"is":{"declaration":true},"location":{"query":"AIUtils.Function.genEnhancePrompt","hash":""},"text":{},"parentId":1452} diff --git a/docs/v1.0.0-beta01/data/AIUtils.Function.genSqlPrompt.json b/docs/v1.0.0-beta01/data/AIUtils.Function.genSqlPrompt.json new file mode 100644 index 000000000..ffcab28a5 --- /dev/null +++ b/docs/v1.0.0-beta01/data/AIUtils.Function.genSqlPrompt.json @@ -0,0 +1 @@ +{"id":2186,"name":"genSqlPrompt","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/ai-utils/src/applications/createSQL.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/ai-utils/src/applications/createSQL.ts","line":60,"character":13,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/ai-utils/src/applications/createSQL.ts#L60"}],"signatures":[{"id":2187,"name":"genSqlPrompt","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"genSqlPrompt"}]},{"tag":"@description","content":[{"kind":"text","text":"生成用于SQL查询的Prompt"}]},{"tag":"@returns","content":[{"kind":"text","text":"符合要求的Prompt文本,如果超过长度限制则返回空字符串"}]}]},"parameters":[{"id":2188,"name":"input","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"SqlPromptOptions"},"text":{}}],"type":{"type":"intrinsic","name":"string"},"is":{"declaration":false},"location":{"query":"AIUtils.Function.genSqlPrompt","hash":"genSqlPrompt"},"text":{"comment":"
Function:

genSqlPrompt

\n
Description:

生成用于SQL查询的Prompt

\n
Returns:

符合要求的Prompt文本,如果超过长度限制则返回空字符串

\n"},"sources":[{"fileName":"packages/ai-utils/src/utils/prompt/generator.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/ai-utils/src/utils/prompt/generator.ts","line":45,"character":3,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/ai-utils/src/utils/prompt/generator.ts#L45"}],"parentId":2186}],"is":{"declaration":true},"location":{"query":"AIUtils.Function.genSqlPrompt","hash":""},"text":{},"parentId":1452} diff --git a/docs/v1.0.0-beta01/data/AIUtils.Function.genSummaryPrompt.json b/docs/v1.0.0-beta01/data/AIUtils.Function.genSummaryPrompt.json new file mode 100644 index 000000000..f737db630 --- /dev/null +++ b/docs/v1.0.0-beta01/data/AIUtils.Function.genSummaryPrompt.json @@ -0,0 +1 @@ +{"id":2204,"name":"genSummaryPrompt","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/ai-utils/src/applications/createSummary.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/ai-utils/src/applications/createSummary.ts","line":68,"character":13,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/ai-utils/src/applications/createSummary.ts#L68"}],"signatures":[{"id":2205,"name":"genSummaryPrompt","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[{"kind":"text","text":"Generates a prompt for summarizing text."}],"blockTags":[{"tag":"@returns","content":[{"kind":"text","text":"A prompt string for the LLM, or an empty string if it exceeds token limits."}]}]},"parameters":[{"id":2206,"name":"input","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"SummaryInput"},"text":{}}],"type":{"type":"intrinsic","name":"string"},"is":{"declaration":false},"location":{"query":"AIUtils.Function.genSummaryPrompt","hash":"genSummaryPrompt"},"text":{"comment":"

Generates a prompt for summarizing text.

\n
Returns:

A prompt string for the LLM, or an empty string if it exceeds token limits.

\n"},"sources":[{"fileName":"packages/ai-utils/src/utils/prompt/generator.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/ai-utils/src/utils/prompt/generator.ts","line":45,"character":3,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/ai-utils/src/utils/prompt/generator.ts#L45"}],"parentId":2204}],"is":{"declaration":true},"location":{"query":"AIUtils.Function.genSummaryPrompt","hash":""},"text":{},"parentId":1452} diff --git a/docs/v1.0.0-beta01/data/AIUtils.Function.genTranslatePrompt.json b/docs/v1.0.0-beta01/data/AIUtils.Function.genTranslatePrompt.json new file mode 100644 index 000000000..3e3bf1d12 --- /dev/null +++ b/docs/v1.0.0-beta01/data/AIUtils.Function.genTranslatePrompt.json @@ -0,0 +1 @@ +{"id":2211,"name":"genTranslatePrompt","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/ai-utils/src/applications/translate.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/ai-utils/src/applications/translate.ts","line":88,"character":13,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/ai-utils/src/applications/translate.ts#L88"}],"signatures":[{"id":2212,"name":"genTranslatePrompt","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[{"kind":"text","text":"Generates a prompt for translating text."}],"blockTags":[{"tag":"@returns","content":[{"kind":"text","text":"A prompt string for the LLM, or an empty string if it exceeds token limits."}]}]},"parameters":[{"id":2213,"name":"input","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"TranslateInput"},"text":{}}],"type":{"type":"intrinsic","name":"string"},"is":{"declaration":false},"location":{"query":"AIUtils.Function.genTranslatePrompt","hash":"genTranslatePrompt"},"text":{"comment":"

Generates a prompt for translating text.

\n
Returns:

A prompt string for the LLM, or an empty string if it exceeds token limits.

\n"},"sources":[{"fileName":"packages/ai-utils/src/utils/prompt/generator.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/ai-utils/src/utils/prompt/generator.ts","line":45,"character":3,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/ai-utils/src/utils/prompt/generator.ts#L45"}],"parentId":2211}],"is":{"declaration":true},"location":{"query":"AIUtils.Function.genTranslatePrompt","hash":""},"text":{},"parentId":1452} diff --git a/docs/v1.0.0-beta01/data/AIUtils.Function.genUnitTestCasesPrompt.json b/docs/v1.0.0-beta01/data/AIUtils.Function.genUnitTestCasesPrompt.json new file mode 100644 index 000000000..4a4a9f789 --- /dev/null +++ b/docs/v1.0.0-beta01/data/AIUtils.Function.genUnitTestCasesPrompt.json @@ -0,0 +1 @@ +{"id":2190,"name":"genUnitTestCasesPrompt","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/ai-utils/src/applications/createUnitTestCases.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/ai-utils/src/applications/createUnitTestCases.ts","line":47,"character":13,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/ai-utils/src/applications/createUnitTestCases.ts#L47"}],"signatures":[{"id":2191,"name":"genUnitTestCasesPrompt","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"genUnitTestCasesPrompt"}]},{"tag":"@description","content":[{"kind":"text","text":"生成用于创建单元测试的Prompt"}]},{"tag":"@returns","content":[{"kind":"text","text":"符合要求的Prompt文本,如果超过长度限制则返回空字符串"}]}]},"parameters":[{"id":2192,"name":"input","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"intrinsic","name":"string"},"text":{}}],"type":{"type":"intrinsic","name":"string"},"is":{"declaration":false},"location":{"query":"AIUtils.Function.genUnitTestCasesPrompt","hash":"genUnitTestCasesPrompt"},"text":{"comment":"
Function:

genUnitTestCasesPrompt

\n
Description:

生成用于创建单元测试的Prompt

\n
Returns:

符合要求的Prompt文本,如果超过长度限制则返回空字符串

\n"},"sources":[{"fileName":"packages/ai-utils/src/utils/prompt/generator.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/ai-utils/src/utils/prompt/generator.ts","line":45,"character":3,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/ai-utils/src/utils/prompt/generator.ts#L45"}],"parentId":2190}],"is":{"declaration":true},"location":{"query":"AIUtils.Function.genUnitTestCasesPrompt","hash":""},"text":{},"parentId":1452} diff --git a/docs/v1.0.0-beta01/data/AIUtils.Function.getBoa.json b/docs/v1.0.0-beta01/data/AIUtils.Function.getBoa.json new file mode 100644 index 000000000..290806269 --- /dev/null +++ b/docs/v1.0.0-beta01/data/AIUtils.Function.getBoa.json @@ -0,0 +1 @@ +{"id":2217,"name":"getBoa","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/ai-utils/src/utils/python.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/ai-utils/src/utils/python.ts","line":42,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/ai-utils/src/utils/python.ts#L42"}],"signatures":[{"id":2218,"name":"getBoa","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"getBoa"}]},{"tag":"@description","content":[{"kind":"text","text":"获取Boa进程ID用于进程管理和调试。Gets the Boa process ID for process management and debugging purposes in Python-JavaScript integration."}]},{"tag":"@returns","content":[{"kind":"text","text":"Boa进程ID。The process ID of the current Boa Python interpreter instance"}]},{"tag":"@example","content":[{"kind":"text","text":"// Get current Boa process ID\nconst processId = getBoa();\nconsole.log("},{"kind":"code","text":"`Boa process ID: ${processId}`"},{"kind":"text","text":");"}]},{"tag":"@example","content":[{"kind":"text","text":"// Use for process monitoring\nconst pid = getBoa();\nconsole.log("},{"kind":"code","text":"`Python interpreter running on PID: ${pid}`"},{"kind":"text","text":");"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Debug Python integration\ntry {\n const boaPid = getBoa();\n console.log('Python integration active, PID:', boaPid);\n} catch (error) {\n console.error('Boa not available:', error.message);\n}\n```"}]}]},"type":{"type":"intrinsic","name":"any"},"is":{"declaration":false},"location":{"query":"AIUtils.Function.getBoa","hash":"getBoa"},"text":{"comment":"
Function:

getBoa

\n
Description:

获取Boa进程ID用于进程管理和调试。Gets the Boa process ID for process management and debugging purposes in Python-JavaScript integration.

\n
Returns:

Boa进程ID。The process ID of the current Boa Python interpreter instance

\n
Example:

// Get current Boa process ID\nconst processId = getBoa();\nconsole.log(Boa process ID: ${processId});

\n
Example:

// Use for process monitoring\nconst pid = getBoa();\nconsole.log(Python interpreter running on PID: ${pid});

\n
Example:
// Debug Python integration\ntry {\n  const boaPid = getBoa();\n  console.log('Python integration active, PID:', boaPid);\n} catch (error) {\n  console.error('Boa not available:', error.message);\n}\n
\n"},"sources":[{"fileName":"packages/ai-utils/src/utils/python.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/ai-utils/src/utils/python.ts","line":42,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/ai-utils/src/utils/python.ts#L42"}],"parentId":2217}],"is":{"declaration":true},"location":{"query":"AIUtils.Function.getBoa","hash":""},"text":{},"parentId":1452} diff --git a/docs/v1.0.0-beta01/data/AIUtils.Interface.PromptConfig.json b/docs/v1.0.0-beta01/data/AIUtils.Interface.PromptConfig.json new file mode 100644 index 000000000..24f1efdbd --- /dev/null +++ b/docs/v1.0.0-beta01/data/AIUtils.Interface.PromptConfig.json @@ -0,0 +1 @@ +{"id":2219,"name":"PromptConfig","kind":256,"kindString":"Interface","flags":{},"comment":{"summary":[{"kind":"text","text":"Configuration options for the prompt generator."}]},"children":[{"id":2220,"name":"maxTokenLength","kind":1024,"kindString":"Property","flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Maximum allowed token length for the generated prompt.\nIf the generated prompt exceeds this length, the generator may return an empty string or throw an error."}]},"sources":[{"fileName":"packages/ai-utils/src/utils/prompt/types.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/ai-utils/src/utils/prompt/types.ts","line":21,"character":2,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/ai-utils/src/utils/prompt/types.ts#L21"}],"type":{"type":"intrinsic","name":"number"},"is":{"declaration":true},"location":{"query":"AIUtils.Interface.PromptConfig","hash":"maxTokenLength"},"text":{"comment":"

Maximum allowed token length for the generated prompt.\nIf the generated prompt exceeds this length, the generator may return an empty string or throw an error.

\n"},"parentId":2219}],"groups":[{"title":"Properties","children":[2220]}],"sources":[{"fileName":"packages/ai-utils/src/utils/prompt/types.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/ai-utils/src/utils/prompt/types.ts","line":16,"character":17,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/ai-utils/src/utils/prompt/types.ts#L16"}],"is":{"declaration":true},"location":{"query":"AIUtils.Interface.PromptConfig","hash":""},"text":{"comment":"

Configuration options for the prompt generator.

\n"},"parentId":1452,"hierarchy":[{"name":"PromptConfig","isTarget":true,"linkId":"2219"}]} diff --git a/docs/v1.0.0-beta01/data/AIUtils.Interface.SummaryOptions.json b/docs/v1.0.0-beta01/data/AIUtils.Interface.SummaryOptions.json new file mode 100644 index 000000000..8ceff4214 --- /dev/null +++ b/docs/v1.0.0-beta01/data/AIUtils.Interface.SummaryOptions.json @@ -0,0 +1 @@ +{"id":2201,"name":"SummaryOptions","kind":256,"kindString":"Interface","flags":{},"comment":{"summary":[{"kind":"text","text":"Options for generating a text summary."}]},"children":[{"id":2203,"name":"language","kind":1024,"kindString":"Property","flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The language for the summary (e.g., 'en', 'zh')."}]},"sources":[{"fileName":"packages/ai-utils/src/applications/createSummary.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/ai-utils/src/applications/createSummary.ts","line":28,"character":2,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/ai-utils/src/applications/createSummary.ts#L28"}],"type":{"type":"intrinsic","name":"string"},"is":{"declaration":true},"location":{"query":"AIUtils.Interface.SummaryOptions","hash":"language"},"text":{"comment":"

The language for the summary (e.g., 'en', 'zh').

\n"},"parentId":2201},{"id":2202,"name":"length","kind":1024,"kindString":"Property","flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The desired length of the summary (e.g., 'short', 'medium', 'long').\nThe exact interpretation is up to the LLM."}]},"sources":[{"fileName":"packages/ai-utils/src/applications/createSummary.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/ai-utils/src/applications/createSummary.ts","line":24,"character":2,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/ai-utils/src/applications/createSummary.ts#L24"}],"type":{"type":"union","types":[{"type":"literal","value":"short"},{"type":"literal","value":"medium"},{"type":"literal","value":"long"}]},"is":{"declaration":true},"location":{"query":"AIUtils.Interface.SummaryOptions","hash":"length"},"text":{"comment":"

The desired length of the summary (e.g., 'short', 'medium', 'long').\nThe exact interpretation is up to the LLM.

\n"},"parentId":2201}],"groups":[{"title":"Properties","children":[2203,2202]}],"sources":[{"fileName":"packages/ai-utils/src/applications/createSummary.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/ai-utils/src/applications/createSummary.ts","line":19,"character":17,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/ai-utils/src/applications/createSummary.ts#L19"}],"is":{"declaration":true},"location":{"query":"AIUtils.Interface.SummaryOptions","hash":""},"text":{"comment":"

Options for generating a text summary.

\n"},"parentId":1452,"hierarchy":[{"name":"SummaryOptions","isTarget":true,"linkId":"2201"}]} diff --git a/docs/v1.0.0-beta01/data/AIUtils.Interface.TranslateOptions.json b/docs/v1.0.0-beta01/data/AIUtils.Interface.TranslateOptions.json new file mode 100644 index 000000000..1ec13de1e --- /dev/null +++ b/docs/v1.0.0-beta01/data/AIUtils.Interface.TranslateOptions.json @@ -0,0 +1 @@ +{"id":2207,"name":"TranslateOptions","kind":256,"kindString":"Interface","flags":{},"comment":{"summary":[{"kind":"text","text":"Options for translating text."}]},"children":[{"id":2208,"name":"sourceLanguage","kind":1024,"kindString":"Property","flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The source language code (e.g., 'en', 'zh', 'fr').\nIf not provided, the LLM might attempt to auto-detect."}]},"sources":[{"fileName":"packages/ai-utils/src/applications/translate.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/ai-utils/src/applications/translate.ts","line":24,"character":2,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/ai-utils/src/applications/translate.ts#L24"}],"type":{"type":"intrinsic","name":"string"},"is":{"declaration":true},"location":{"query":"AIUtils.Interface.TranslateOptions","hash":"sourceLanguage"},"text":{"comment":"

The source language code (e.g., 'en', 'zh', 'fr').\nIf not provided, the LLM might attempt to auto-detect.

\n"},"parentId":2207},{"id":2210,"name":"style","kind":1024,"kindString":"Property","flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The style or tone for the translation (e.g., 'formal', 'informal', 'technical')."}]},"sources":[{"fileName":"packages/ai-utils/src/applications/translate.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/ai-utils/src/applications/translate.ts","line":32,"character":2,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/ai-utils/src/applications/translate.ts#L32"}],"type":{"type":"union","types":[{"type":"literal","value":"formal"},{"type":"literal","value":"informal"},{"type":"literal","value":"technical"},{"type":"literal","value":"casual"},{"type":"literal","value":"literary"}]},"is":{"declaration":true},"location":{"query":"AIUtils.Interface.TranslateOptions","hash":"style"},"text":{"comment":"

The style or tone for the translation (e.g., 'formal', 'informal', 'technical').

\n"},"parentId":2207},{"id":2209,"name":"targetLanguage","kind":1024,"kindString":"Property","flags":{},"comment":{"summary":[{"kind":"text","text":"The target language code (e.g., 'en', 'zh', 'fr')."}]},"sources":[{"fileName":"packages/ai-utils/src/applications/translate.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/ai-utils/src/applications/translate.ts","line":28,"character":2,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/ai-utils/src/applications/translate.ts#L28"}],"type":{"type":"intrinsic","name":"string"},"is":{"declaration":true},"location":{"query":"AIUtils.Interface.TranslateOptions","hash":"targetLanguage"},"text":{"comment":"

The target language code (e.g., 'en', 'zh', 'fr').

\n"},"parentId":2207}],"groups":[{"title":"Properties","children":[2208,2210,2209]}],"sources":[{"fileName":"packages/ai-utils/src/applications/translate.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/ai-utils/src/applications/translate.ts","line":19,"character":17,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/ai-utils/src/applications/translate.ts#L19"}],"is":{"declaration":true},"location":{"query":"AIUtils.Interface.TranslateOptions","hash":""},"text":{"comment":"

Options for translating text.

\n"},"parentId":1452,"hierarchy":[{"name":"TranslateOptions","isTarget":true,"linkId":"2207"}]} diff --git a/docs/v1.0.0-beta01/data/Array.Function.allEqual.json b/docs/v1.0.0-beta01/data/Array.Function.allEqual.json new file mode 100644 index 000000000..a9a2cf440 --- /dev/null +++ b/docs/v1.0.0-beta01/data/Array.Function.allEqual.json @@ -0,0 +1 @@ +{"id":301,"name":"allEqual","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/utils/src/array.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/array.ts","line":119,"character":13,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/array.ts#L119"}],"signatures":[{"id":302,"name":"allEqual","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"allEqual"}]},{"tag":"@description","content":[{"kind":"text","text":"检查数组中的所有元素是否使用严格相等(===)相等。Checks if all elements in an array are equal using strict equality (===)"}]},{"tag":"@returns","content":[{"kind":"text","text":"如果所有元素都相等则返回true,否则返回false。对于空数组返回true。True if all elements are equal, false otherwise. Returns true for empty arrays"}]},{"tag":"@throws","content":[{"kind":"text","text":"当arr不是数组时抛出错误。When arr is not an array"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Basic usage\nallEqual([0, 1, 2]); // -> false\nallEqual([2, 2, 2]); // -> true\nallEqual([2, 2, '2']); // -> false\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Edge cases\nallEqual([]); // -> true\nallEqual([5]); // -> true\nallEqual([NaN, NaN, NaN]); // -> false (NaN !== NaN)\nallEqual([null, null]); // -> true\nallEqual([undefined, undefined]); // -> true\n```"}]}]},"parameters":[{"id":303,"name":"arr","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"要检查所有元素是否相等的数组。Array to check for equality of all elements"}]},"type":{"type":"reference","id":300,"name":"AnyArr"},"text":{"comment":"

要检查所有元素是否相等的数组。Array to check for equality of all elements

\n"}}],"type":{"type":"intrinsic","name":"boolean"},"is":{"declaration":false},"location":{"query":"Array.Function.allEqual","hash":"allEqual"},"text":{"comment":"
Function:

allEqual

\n
Description:

检查数组中的所有元素是否使用严格相等(===)相等。Checks if all elements in an array are equal using strict equality (===)

\n
Returns:

如果所有元素都相等则返回true,否则返回false。对于空数组返回true。True if all elements are equal, false otherwise. Returns true for empty arrays

\n
Throws:

当arr不是数组时抛出错误。When arr is not an array

\n
Example:
// Basic usage\nallEqual([0, 1, 2]); // -> false\nallEqual([2, 2, 2]); // -> true\nallEqual([2, 2, '2']); // -> false\n
\n
Example:
// Edge cases\nallEqual([]); // -> true\nallEqual([5]); // -> true\nallEqual([NaN, NaN, NaN]); // -> false (NaN !== NaN)\nallEqual([null, null]); // -> true\nallEqual([undefined, undefined]); // -> true\n
\n"},"sources":[{"fileName":"packages/utils/src/array.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/array.ts","line":119,"character":24,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/array.ts#L119"}],"parentId":301}],"is":{"declaration":true},"location":{"query":"Array.Function.allEqual","hash":""},"text":{},"parentId":154} diff --git a/docs/v1.0.0-beta01/data/Array.Function.arrayAverage.json b/docs/v1.0.0-beta01/data/Array.Function.arrayAverage.json new file mode 100644 index 000000000..d7d360e8a --- /dev/null +++ b/docs/v1.0.0-beta01/data/Array.Function.arrayAverage.json @@ -0,0 +1 @@ +{"id":161,"name":"arrayAverage","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/utils/src/array.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/array.ts","line":73,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/array.ts#L73"}],"signatures":[{"id":162,"name":"arrayAverage","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"arrayAverage"}]},{"tag":"@description","content":[{"kind":"text","text":"计算数组中数字的平均值(算术平均数)。Calculates the average (arithmetic mean) of numbers in an array"}]},{"tag":"@returns","content":[{"kind":"text","text":"数组中所有数字的平均值。对于空数组返回NaN。The average value of all numbers in the array. Returns NaN for empty arrays"}]},{"tag":"@throws","content":[{"kind":"text","text":"当arr不是数组时抛出错误。When arr is not an array"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Basic usage\narrayAverage([1, 2, 3, 0, -1, -5]); // -> 0\narrayAverage([1, 2, 3]); // -> 2\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Edge cases\narrayAverage([]); // -> NaN\narrayAverage([5]); // -> 5\narrayAverage([1.5, 2.5, 3.5]); // -> 2.5\n```"}]}]},"parameters":[{"id":163,"name":"arr","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"要计算平均值的数字数组。Array of numbers to calculate average from"}]},"type":{"type":"array","elementType":{"type":"intrinsic","name":"number"}},"text":{"comment":"

要计算平均值的数字数组。Array of numbers to calculate average from

\n"}}],"type":{"type":"intrinsic","name":"number"},"is":{"declaration":false},"location":{"query":"Array.Function.arrayAverage","hash":"arrayAverage"},"text":{"comment":"
Function:

arrayAverage

\n
Description:

计算数组中数字的平均值(算术平均数)。Calculates the average (arithmetic mean) of numbers in an array

\n
Returns:

数组中所有数字的平均值。对于空数组返回NaN。The average value of all numbers in the array. Returns NaN for empty arrays

\n
Throws:

当arr不是数组时抛出错误。When arr is not an array

\n
Example:
// Basic usage\narrayAverage([1, 2, 3, 0, -1, -5]); // -> 0\narrayAverage([1, 2, 3]); // -> 2\n
\n
Example:
// Edge cases\narrayAverage([]); // -> NaN\narrayAverage([5]); // -> 5\narrayAverage([1.5, 2.5, 3.5]); // -> 2.5\n
\n"},"sources":[{"fileName":"packages/utils/src/array.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/array.ts","line":73,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/array.ts#L73"}],"parentId":161}],"is":{"declaration":true},"location":{"query":"Array.Function.arrayAverage","hash":""},"text":{},"parentId":154} diff --git a/docs/v1.0.0-beta01/data/Array.Function.arrayMax.json b/docs/v1.0.0-beta01/data/Array.Function.arrayMax.json new file mode 100644 index 000000000..6bd992c62 --- /dev/null +++ b/docs/v1.0.0-beta01/data/Array.Function.arrayMax.json @@ -0,0 +1 @@ +{"id":155,"name":"arrayMax","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/utils/src/array.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/array.ts","line":31,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/array.ts#L31"}],"signatures":[{"id":156,"name":"arrayMax","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"arrayMax"}]},{"tag":"@description","content":[{"kind":"text","text":"查找数字数组中的最大值。Finds the maximum value in a numeric array"}]},{"tag":"@returns","content":[{"kind":"text","text":"数组中的最大值。对于空数组返回-Infinity,如果数组包含非数字值则返回NaN。The maximum value in the array. Returns -Infinity for empty arrays, NaN if array contains non-numeric values"}]},{"tag":"@throws","content":[{"kind":"text","text":"当arr不是数组时抛出错误。When arr is not an array"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Basic usage\narrayMax([1, 2, 3, 0, -1, -5]); // -> 3\narrayMax([1, 2, 3]); // -> 3\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Edge cases\narrayMax([]); // -> -Infinity\narrayMax([1, 2, NaN]); // -> NaN\narrayMax([-5, -10, -1]); // -> -1\n```"}]}]},"parameters":[{"id":157,"name":"arr","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"要查找最大值的数字数组。Array of numbers to find maximum from"}]},"type":{"type":"reference","id":299,"name":"NumberArr"},"text":{"comment":"

要查找最大值的数字数组。Array of numbers to find maximum from

\n"}}],"type":{"type":"intrinsic","name":"number"},"is":{"declaration":false},"location":{"query":"Array.Function.arrayMax","hash":"arrayMax"},"text":{"comment":"
Function:

arrayMax

\n
Description:

查找数字数组中的最大值。Finds the maximum value in a numeric array

\n
Returns:

数组中的最大值。对于空数组返回-Infinity,如果数组包含非数字值则返回NaN。The maximum value in the array. Returns -Infinity for empty arrays, NaN if array contains non-numeric values

\n
Throws:

当arr不是数组时抛出错误。When arr is not an array

\n
Example:
// Basic usage\narrayMax([1, 2, 3, 0, -1, -5]); // -> 3\narrayMax([1, 2, 3]); // -> 3\n
\n
Example:
// Edge cases\narrayMax([]); // -> -Infinity\narrayMax([1, 2, NaN]); // -> NaN\narrayMax([-5, -10, -1]); // -> -1\n
\n"},"sources":[{"fileName":"packages/utils/src/array.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/array.ts","line":31,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/array.ts#L31"}],"parentId":155}],"is":{"declaration":true},"location":{"query":"Array.Function.arrayMax","hash":""},"text":{},"parentId":154} diff --git a/docs/v1.0.0-beta01/data/Array.Function.arrayMin.json b/docs/v1.0.0-beta01/data/Array.Function.arrayMin.json new file mode 100644 index 000000000..984271044 --- /dev/null +++ b/docs/v1.0.0-beta01/data/Array.Function.arrayMin.json @@ -0,0 +1 @@ +{"id":158,"name":"arrayMin","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/utils/src/array.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/array.ts","line":52,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/array.ts#L52"}],"signatures":[{"id":159,"name":"arrayMin","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"arrayMin"}]},{"tag":"@description","content":[{"kind":"text","text":"查找数字数组中的最小值。Finds the minimum value in a numeric array"}]},{"tag":"@returns","content":[{"kind":"text","text":"数组中的最小值。对于空数组返回Infinity,如果数组包含非数字值则返回NaN。The minimum value in the array. Returns Infinity for empty arrays, NaN if array contains non-numeric values"}]},{"tag":"@throws","content":[{"kind":"text","text":"当arr不是数组时抛出错误。When arr is not an array"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Basic usage\narrayMin([1, 2, 3, 0, -1, -5]); // -> -5\narrayMin([1, 2, 3]); // -> 1\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Edge cases\narrayMin([]); // -> Infinity\narrayMin([1, 2, NaN]); // -> NaN\narrayMin([-5, -10, -1]); // -> -10\n```"}]}]},"parameters":[{"id":160,"name":"arr","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"要查找最小值的数字数组。Array of numbers to find minimum from"}]},"type":{"type":"reference","id":299,"name":"NumberArr"},"text":{"comment":"

要查找最小值的数字数组。Array of numbers to find minimum from

\n"}}],"type":{"type":"intrinsic","name":"number"},"is":{"declaration":false},"location":{"query":"Array.Function.arrayMin","hash":"arrayMin"},"text":{"comment":"
Function:

arrayMin

\n
Description:

查找数字数组中的最小值。Finds the minimum value in a numeric array

\n
Returns:

数组中的最小值。对于空数组返回Infinity,如果数组包含非数字值则返回NaN。The minimum value in the array. Returns Infinity for empty arrays, NaN if array contains non-numeric values

\n
Throws:

当arr不是数组时抛出错误。When arr is not an array

\n
Example:
// Basic usage\narrayMin([1, 2, 3, 0, -1, -5]); // -> -5\narrayMin([1, 2, 3]); // -> 1\n
\n
Example:
// Edge cases\narrayMin([]); // -> Infinity\narrayMin([1, 2, NaN]); // -> NaN\narrayMin([-5, -10, -1]); // -> -10\n
\n"},"sources":[{"fileName":"packages/utils/src/array.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/array.ts","line":52,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/array.ts#L52"}],"parentId":158}],"is":{"declaration":true},"location":{"query":"Array.Function.arrayMin","hash":""},"text":{},"parentId":154} diff --git a/docs/v1.0.0-beta01/data/Array.Function.arraySum.json b/docs/v1.0.0-beta01/data/Array.Function.arraySum.json new file mode 100644 index 000000000..306fd195e --- /dev/null +++ b/docs/v1.0.0-beta01/data/Array.Function.arraySum.json @@ -0,0 +1 @@ +{"id":164,"name":"arraySum","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/utils/src/array.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/array.ts","line":95,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/array.ts#L95"}],"signatures":[{"id":165,"name":"arraySum","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"arraySum"}]},{"tag":"@description","content":[{"kind":"text","text":"计算数组中所有数字的总和。Calculates the sum of all numbers in an array"}]},{"tag":"@returns","content":[{"kind":"text","text":"数组中所有数字的总和。对于空数组返回0。The sum of all numbers in the array. Returns 0 for empty arrays"}]},{"tag":"@throws","content":[{"kind":"text","text":"当arr不是数组时抛出错误。When arr is not an array"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Basic usage\narraySum([1, 2, 3]); // -> 6\narraySum([-1, 2, 3]); // -> 4\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Edge cases\narraySum([]); // -> 0\narraySum([5]); // -> 5\narraySum([-1, -2, -3]); // -> -6\narraySum([1.5, 2.5]); // -> 4\n```"}]}]},"parameters":[{"id":166,"name":"arr","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"要求和的数字数组。Array of numbers to sum"}]},"type":{"type":"array","elementType":{"type":"intrinsic","name":"number"}},"text":{"comment":"

要求和的数字数组。Array of numbers to sum

\n"}}],"type":{"type":"intrinsic","name":"number"},"is":{"declaration":false},"location":{"query":"Array.Function.arraySum","hash":"arraySum"},"text":{"comment":"
Function:

arraySum

\n
Description:

计算数组中所有数字的总和。Calculates the sum of all numbers in an array

\n
Returns:

数组中所有数字的总和。对于空数组返回0。The sum of all numbers in the array. Returns 0 for empty arrays

\n
Throws:

当arr不是数组时抛出错误。When arr is not an array

\n
Example:
// Basic usage\narraySum([1, 2, 3]); // -> 6\narraySum([-1, 2, 3]); // -> 4\n
\n
Example:
// Edge cases\narraySum([]); // -> 0\narraySum([5]); // -> 5\narraySum([-1, -2, -3]); // -> -6\narraySum([1.5, 2.5]); // -> 4\n
\n"},"sources":[{"fileName":"packages/utils/src/array.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/array.ts","line":95,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/array.ts#L95"}],"parentId":164}],"is":{"declaration":true},"location":{"query":"Array.Function.arraySum","hash":""},"text":{},"parentId":154} diff --git a/docs/v1.0.0-beta01/data/Array.Function.arrayToCSV.json b/docs/v1.0.0-beta01/data/Array.Function.arrayToCSV.json new file mode 100644 index 000000000..bbb7a71c9 --- /dev/null +++ b/docs/v1.0.0-beta01/data/Array.Function.arrayToCSV.json @@ -0,0 +1 @@ +{"id":170,"name":"arrayToCSV","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/utils/src/array.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/array.ts","line":216,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/array.ts#L216"}],"signatures":[{"id":171,"name":"arrayToCSV","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"arrayToCSV"}]},{"tag":"@description","content":[{"kind":"text","text":"将二维数组转换为带适当转义的CSV字符串。Converts a 2D array to a CSV string with proper escaping"}]},{"tag":"@returns","content":[{"kind":"text","text":"带引号值和换行分隔符的CSV格式字符串。CSV formatted string with quoted values and newline separators"}]},{"tag":"@throws","content":[{"kind":"text","text":"当arr不是数组或包含非数组元素时抛出错误。When arr is not an array or contains non-array elements"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Basic usage\narrayToCSV([['a', 'b'], ['c', 'd']]); // -> '\"a\",\"b\"\\n\"c\",\"d\"'\narrayToCSV([['Name', 'Age'], ['John', 25], ['Jane', 30]]); // -> '\"Name\",\"Age\"\\n\"John\",\"25\"\\n\"Jane\",\"30\"'\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Custom delimiter\narrayToCSV([['a', 'b'], ['c', 'd']], ';'); // -> '\"a\";\"b\"\\n\"c\";\"d\"'\narrayToCSV([['a', 'b'], ['c', 'd']], '\\t'); // -> '\"a\"\\t\"b\"\\n\"c\"\\t\"d\"'\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Edge cases\narrayToCSV([]); // -> ''\narrayToCSV([['single']]); // -> '\"single\"'\narrayToCSV([['with,comma', 'normal']]); // -> '\"with,comma\",\"normal\"'\n```"}]}]},"parameters":[{"id":172,"name":"arr","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"要转换为CSV格式的二维数组。2D array to convert to CSV format"}]},"type":{"type":"array","elementType":{"type":"reference","id":300,"name":"AnyArr"}},"text":{"comment":"

要转换为CSV格式的二维数组。2D array to convert to CSV format

\n"}},{"id":173,"name":"delimiter","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"用作字段分隔符的字符(默认:',')。Character to use as field delimiter (default: ',')"}]},"type":{"type":"intrinsic","name":"string"},"defaultValue":"','","text":{"comment":"

用作字段分隔符的字符(默认:',')。Character to use as field delimiter (default: ',')

\n"}}],"type":{"type":"intrinsic","name":"string"},"is":{"declaration":false},"location":{"query":"Array.Function.arrayToCSV","hash":"arrayToCSV"},"text":{"comment":"
Function:

arrayToCSV

\n
Description:

将二维数组转换为带适当转义的CSV字符串。Converts a 2D array to a CSV string with proper escaping

\n
Returns:

带引号值和换行分隔符的CSV格式字符串。CSV formatted string with quoted values and newline separators

\n
Throws:

当arr不是数组或包含非数组元素时抛出错误。When arr is not an array or contains non-array elements

\n
Example:
// Basic usage\narrayToCSV([['a', 'b'], ['c', 'd']]); // -> '\"a\",\"b\"\\n\"c\",\"d\"'\narrayToCSV([['Name', 'Age'], ['John', 25], ['Jane', 30]]); // -> '\"Name\",\"Age\"\\n\"John\",\"25\"\\n\"Jane\",\"30\"'\n
\n
Example:
// Custom delimiter\narrayToCSV([['a', 'b'], ['c', 'd']], ';'); // -> '\"a\";\"b\"\\n\"c\";\"d\"'\narrayToCSV([['a', 'b'], ['c', 'd']], '\\t'); // -> '\"a\"\\t\"b\"\\n\"c\"\\t\"d\"'\n
\n
Example:
// Edge cases\narrayToCSV([]); // -> ''\narrayToCSV([['single']]); // -> '\"single\"'\narrayToCSV([['with,comma', 'normal']]); // -> '\"with,comma\",\"normal\"'\n
\n"},"sources":[{"fileName":"packages/utils/src/array.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/array.ts","line":216,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/array.ts#L216"}],"parentId":170}],"is":{"declaration":true},"location":{"query":"Array.Function.arrayToCSV","hash":""},"text":{},"parentId":154} diff --git a/docs/v1.0.0-beta01/data/Array.Function.castArray.json b/docs/v1.0.0-beta01/data/Array.Function.castArray.json new file mode 100644 index 000000000..2bd2a9b76 --- /dev/null +++ b/docs/v1.0.0-beta01/data/Array.Function.castArray.json @@ -0,0 +1 @@ +{"id":174,"name":"castArray","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/utils/src/array.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/array.ts","line":252,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/array.ts#L252"}],"signatures":[{"id":175,"name":"castArray","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"castArray"}]},{"tag":"@description","content":[{"kind":"text","text":"将值转换为数组。如果值已经是数组,则返回 unchanged。Converts a value to an array. If the value is already an array, returns it unchanged"}]},{"tag":"@returns","content":[{"kind":"text","text":"包含该值的数组,如果输入已经是数组则返回原数组。Array containing the value, or the original array if input was already an array"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Converting single values\ncastArray('foo'); // -> ['foo']\ncastArray(42); // -> [42]\ncastArray(null); // -> [null]\ncastArray(undefined); // -> [undefined]\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Already arrays remain unchanged\ncastArray([1, 2, 3]); // -> [1, 2, 3]\ncastArray([]); // -> []\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Objects and complex types\ncastArray({ a: 1 }); // -> [{ a: 1 }]\ncastArray(new Date()); // -> [Date object]\n```"}]}]},"typeParameter":[{"id":176,"name":"T","kind":131072,"kindString":"Type parameter","flags":{}}],"parameters":[{"id":177,"name":"val","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"要转换为数组的值(可以是任何类型或已经是数组)。Value to convert to array (can be any type or already an array)"}]},"type":{"type":"union","types":[{"type":"reference","id":176,"name":"T"},{"type":"array","elementType":{"type":"reference","id":176,"name":"T"}}]},"text":{"comment":"

要转换为数组的值(可以是任何类型或已经是数组)。Value to convert to array (can be any type or already an array)

\n"}}],"type":{"type":"array","elementType":{"type":"reference","id":176,"name":"T"}},"is":{"declaration":false},"location":{"query":"Array.Function.castArray","hash":"castArray"},"text":{"comment":"
Function:

castArray

\n
Description:

将值转换为数组。如果值已经是数组,则返回 unchanged。Converts a value to an array. If the value is already an array, returns it unchanged

\n
Returns:

包含该值的数组,如果输入已经是数组则返回原数组。Array containing the value, or the original array if input was already an array

\n
Example:
// Converting single values\ncastArray('foo'); // -> ['foo']\ncastArray(42); // -> [42]\ncastArray(null); // -> [null]\ncastArray(undefined); // -> [undefined]\n
\n
Example:
// Already arrays remain unchanged\ncastArray([1, 2, 3]); // -> [1, 2, 3]\ncastArray([]); // -> []\n
\n
Example:
// Objects and complex types\ncastArray({ a: 1 }); // -> [{ a: 1 }]\ncastArray(new Date()); // -> [Date object]\n
\n"},"sources":[{"fileName":"packages/utils/src/array.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/array.ts","line":252,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/array.ts#L252"}],"parentId":174}],"is":{"declaration":true},"location":{"query":"Array.Function.castArray","hash":""},"text":{},"parentId":154} diff --git a/docs/v1.0.0-beta01/data/Array.Function.chunk.json b/docs/v1.0.0-beta01/data/Array.Function.chunk.json new file mode 100644 index 000000000..a600d1bb6 --- /dev/null +++ b/docs/v1.0.0-beta01/data/Array.Function.chunk.json @@ -0,0 +1 @@ +{"id":178,"name":"chunk","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/utils/src/array.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/array.ts","line":288,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/array.ts#L288"}],"signatures":[{"id":179,"name":"chunk","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"chunk"}]},{"tag":"@description","content":[{"kind":"text","text":"将数组拆分为指定大小的块。Splits an array into chunks of specified size"}]},{"tag":"@returns","content":[{"kind":"text","text":"块数组,其中每个块是指定大小的数组(最后一个块可能较小)。Array of chunks, where each chunk is an array of the specified size (last chunk may be smaller)"}]},{"tag":"@throws","content":[{"kind":"text","text":"当size小于1时抛出错误。When size is less than 1"}]},{"tag":"@throws","content":[{"kind":"text","text":"当arr不是数组或size不是数字时抛出错误。When arr is not an array or size is not a number"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Basic chunking\nchunk([1, 2, 3, 4, 5], 3); // -> [[1, 2, 3], [4, 5]]\nchunk([1, 2, 3, 4, 5], 2); // -> [[1, 2], [3, 4], [5]]\nchunk([1, 2, 3, 4, 5], 1); // -> [[1], [2], [3], [4], [5]]\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Edge cases\nchunk([], 2); // -> []\nchunk([1, 2, 3], 5); // -> [[1, 2, 3]]\nchunk(['a', 'b', 'c', 'd'], 2); // -> [['a', 'b'], ['c', 'd']]\n```"}]},{"tag":"@example","content":[{"kind":"text","text":"// Processing data in batches\nconst data = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];\nconst batches = chunk(data, 3);\nbatches.forEach((batch, index) => {\n console.log("},{"kind":"code","text":"`Batch ${index + 1}:`"},{"kind":"text","text":", batch);\n});\n// Batch 1: [1, 2, 3]\n// Batch 2: [4, 5, 6]\n// Batch 3: [7, 8, 9]\n// Batch 4: [10]"}]}]},"typeParameter":[{"id":180,"name":"T","kind":131072,"kindString":"Type parameter","flags":{}}],"parameters":[{"id":181,"name":"arr","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"要拆分为块的数组。Array to split into chunks"}]},"type":{"type":"array","elementType":{"type":"reference","id":180,"name":"T"}},"text":{"comment":"

要拆分为块的数组。Array to split into chunks

\n"}},{"id":182,"name":"size","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"每个块的大小(必须是正整数)。Size of each chunk (must be positive integer)"}]},"type":{"type":"intrinsic","name":"number"},"text":{"comment":"

每个块的大小(必须是正整数)。Size of each chunk (must be positive integer)

\n"}}],"type":{"type":"array","elementType":{"type":"array","elementType":{"type":"reference","id":180,"name":"T"}}},"is":{"declaration":false},"location":{"query":"Array.Function.chunk","hash":"chunk"},"text":{"comment":"
Function:

chunk

\n
Description:

将数组拆分为指定大小的块。Splits an array into chunks of specified size

\n
Returns:

块数组,其中每个块是指定大小的数组(最后一个块可能较小)。Array of chunks, where each chunk is an array of the specified size (last chunk may be smaller)

\n
Throws:

当size小于1时抛出错误。When size is less than 1

\n
Throws:

当arr不是数组或size不是数字时抛出错误。When arr is not an array or size is not a number

\n
Example:
// Basic chunking\nchunk([1, 2, 3, 4, 5], 3); // -> [[1, 2, 3], [4, 5]]\nchunk([1, 2, 3, 4, 5], 2); // -> [[1, 2], [3, 4], [5]]\nchunk([1, 2, 3, 4, 5], 1); // -> [[1], [2], [3], [4], [5]]\n
\n
Example:
// Edge cases\nchunk([], 2); // -> []\nchunk([1, 2, 3], 5); // -> [[1, 2, 3]]\nchunk(['a', 'b', 'c', 'd'], 2); // -> [['a', 'b'], ['c', 'd']]\n
\n
Example:

// Processing data in batches\nconst data = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];\nconst batches = chunk(data, 3);\nbatches.forEach((batch, index) => {\n console.log(Batch ${index + 1}:, batch);\n});\n// Batch 1: [1, 2, 3]\n// Batch 2: [4, 5, 6]\n// Batch 3: [7, 8, 9]\n// Batch 4: [10]

\n"},"sources":[{"fileName":"packages/utils/src/array.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/array.ts","line":288,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/array.ts#L288"}],"parentId":178}],"is":{"declaration":true},"location":{"query":"Array.Function.chunk","hash":""},"text":{},"parentId":154} diff --git a/docs/v1.0.0-beta01/data/Array.Function.compact.json b/docs/v1.0.0-beta01/data/Array.Function.compact.json new file mode 100644 index 000000000..c50603719 --- /dev/null +++ b/docs/v1.0.0-beta01/data/Array.Function.compact.json @@ -0,0 +1 @@ +{"id":183,"name":"compact","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/utils/src/array.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/array.ts","line":323,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/array.ts#L323"}],"signatures":[{"id":184,"name":"compact","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"compact"}]},{"tag":"@description","content":[{"kind":"text","text":"从数组中过滤掉假值(false, 0, '', null, undefined, NaN)。Filters out falsy values from an array (false, 0, '', null, undefined, NaN)"}]},{"tag":"@returns","content":[{"kind":"text","text":"仅包含真值的新数组。New array with only truthy values"}]},{"tag":"@throws","content":[{"kind":"text","text":"当arr不是数组时抛出错误。When arr is not an array"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Basic usage\ncompact([0, 1, false, 2, '', 3]); // -> [1, 2, 3]\ncompact([0, 1, false, 2, '', 3, null, undefined, NaN]); // -> [1, 2, 3]\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Various falsy values\ncompact([false, 0, '', null, undefined, NaN, 'hello', 42, true]); // -> ['hello', 42, true]\ncompact(['', '0', 'false']); // -> ['0', 'false'] (strings are truthy except empty string)\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Edge cases\ncompact([]); // -> []\ncompact([false, 0, '', null, undefined, NaN]); // -> []\ncompact([1, 2, 3]); // -> [1, 2, 3] (no change)\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Objects and arrays (always truthy)\ncompact([{}, [], 0, false]); // -> [{}, []]\n```"}]}]},"typeParameter":[{"id":185,"name":"T","kind":131072,"kindString":"Type parameter","flags":{}}],"parameters":[{"id":186,"name":"arr","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"要过滤假值的数组。Array to filter falsy values from"}]},"type":{"type":"array","elementType":{"type":"reference","id":185,"name":"T"}},"text":{"comment":"

要过滤假值的数组。Array to filter falsy values from

\n"}}],"type":{"type":"array","elementType":{"type":"reference","id":185,"name":"T"}},"is":{"declaration":false},"location":{"query":"Array.Function.compact","hash":"compact"},"text":{"comment":"
Function:

compact

\n
Description:

从数组中过滤掉假值(false, 0, '', null, undefined, NaN)。Filters out falsy values from an array (false, 0, '', null, undefined, NaN)

\n
Returns:

仅包含真值的新数组。New array with only truthy values

\n
Throws:

当arr不是数组时抛出错误。When arr is not an array

\n
Example:
// Basic usage\ncompact([0, 1, false, 2, '', 3]); // -> [1, 2, 3]\ncompact([0, 1, false, 2, '', 3, null, undefined, NaN]); // -> [1, 2, 3]\n
\n
Example:
// Various falsy values\ncompact([false, 0, '', null, undefined, NaN, 'hello', 42, true]); // -> ['hello', 42, true]\ncompact(['', '0', 'false']); // -> ['0', 'false'] (strings are truthy except empty string)\n
\n
Example:
// Edge cases\ncompact([]); // -> []\ncompact([false, 0, '', null, undefined, NaN]); // -> []\ncompact([1, 2, 3]); // -> [1, 2, 3] (no change)\n
\n
Example:
// Objects and arrays (always truthy)\ncompact([{}, [], 0, false]); // -> [{}, []]\n
\n"},"sources":[{"fileName":"packages/utils/src/array.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/array.ts","line":323,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/array.ts#L323"}],"parentId":183}],"is":{"declaration":true},"location":{"query":"Array.Function.compact","hash":""},"text":{},"parentId":154} diff --git a/docs/v1.0.0-beta01/data/Array.Function.countOccurrences.json b/docs/v1.0.0-beta01/data/Array.Function.countOccurrences.json new file mode 100644 index 000000000..4d8f61456 --- /dev/null +++ b/docs/v1.0.0-beta01/data/Array.Function.countOccurrences.json @@ -0,0 +1 @@ +{"id":187,"name":"countOccurrences","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/utils/src/array.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/array.ts","line":351,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/array.ts#L351"}],"signatures":[{"id":188,"name":"countOccurrences","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"countOccurrences"}]},{"tag":"@description","content":[{"kind":"text","text":"计算数组中特定值的出现次数。Counts the number of occurrences of a specific value in an array"}]},{"tag":"@returns","content":[{"kind":"text","text":"该值在数组中出现的次数。Number of times the value appears in the array"}]},{"tag":"@throws","content":[{"kind":"text","text":"当arr不是数组时抛出错误。When arr is not an array"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Basic usage\ncountOccurrences([1, 2, 4, 5, 2, 6, 3], 2); // -> 2\ncountOccurrences([1, 2, 4, 5, 2, 6, 3], 3); // -> 1\ncountOccurrences([1, 2, 4, 5, 2, 6, 3], 7); // -> 0\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// String arrays\ncountOccurrences(['a', 'b', 'a', 'c', 'a'], 'a'); // -> 3\ncountOccurrences(['hello', 'world', 'hello'], 'hello'); // -> 2\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Edge cases\ncountOccurrences([], 1); // -> 0\ncountOccurrences([null, null, undefined], null); // -> 2\ncountOccurrences([NaN, NaN, 1], NaN); // -> 0 (NaN !== NaN)\n```"}]}]},"typeParameter":[{"id":189,"name":"T","kind":131072,"kindString":"Type parameter","flags":{}}],"parameters":[{"id":190,"name":"arr","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"要搜索的数组。Array to search in"}]},"type":{"type":"array","elementType":{"type":"reference","id":189,"name":"T"}},"text":{"comment":"

要搜索的数组。Array to search in

\n"}},{"id":191,"name":"val","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"要计算出现次数的值。Value to count occurrences of"}]},"type":{"type":"reference","id":189,"name":"T"},"text":{"comment":"

要计算出现次数的值。Value to count occurrences of

\n"}}],"type":{"type":"intrinsic","name":"number"},"is":{"declaration":false},"location":{"query":"Array.Function.countOccurrences","hash":"countOccurrences"},"text":{"comment":"
Function:

countOccurrences

\n
Description:

计算数组中特定值的出现次数。Counts the number of occurrences of a specific value in an array

\n
Returns:

该值在数组中出现的次数。Number of times the value appears in the array

\n
Throws:

当arr不是数组时抛出错误。When arr is not an array

\n
Example:
// Basic usage\ncountOccurrences([1, 2, 4, 5, 2, 6, 3], 2); // -> 2\ncountOccurrences([1, 2, 4, 5, 2, 6, 3], 3); // -> 1\ncountOccurrences([1, 2, 4, 5, 2, 6, 3], 7); // -> 0\n
\n
Example:
// String arrays\ncountOccurrences(['a', 'b', 'a', 'c', 'a'], 'a'); // -> 3\ncountOccurrences(['hello', 'world', 'hello'], 'hello'); // -> 2\n
\n
Example:
// Edge cases\ncountOccurrences([], 1); // -> 0\ncountOccurrences([null, null, undefined], null); // -> 2\ncountOccurrences([NaN, NaN, 1], NaN); // -> 0 (NaN !== NaN)\n
\n"},"sources":[{"fileName":"packages/utils/src/array.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/array.ts","line":351,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/array.ts#L351"}],"parentId":187}],"is":{"declaration":true},"location":{"query":"Array.Function.countOccurrences","hash":""},"text":{},"parentId":154} diff --git a/docs/v1.0.0-beta01/data/Array.Function.deepFlatten.json b/docs/v1.0.0-beta01/data/Array.Function.deepFlatten.json new file mode 100644 index 000000000..9f139f79f --- /dev/null +++ b/docs/v1.0.0-beta01/data/Array.Function.deepFlatten.json @@ -0,0 +1 @@ +{"id":192,"name":"deepFlatten","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/utils/src/array.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/array.ts","line":375,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/array.ts#L375"}],"signatures":[{"id":193,"name":"deepFlatten","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"deepFlatten"}]},{"tag":"@description","content":[{"kind":"text","text":"递归地将数组展平到任何深度(替代Array.flat(Infinity))。Recursively flattens an array to any depth (alternative to Array.flat(Infinity))"}]},{"tag":"@returns","content":[{"kind":"text","text":"完全展平的数组,所有嵌套数组都已展开。Completely flattened array with all nested arrays expanded"}]},{"tag":"@throws","content":[{"kind":"text","text":"当arr不是数组时抛出错误。When arr is not an array"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Basic usage\ndeepFlatten([[1, 2, 3], 4, [5, 6, [7, 8, [9]]]]); // -> [1, 2, 3, 4, 5, 6, 7, 8, 9]\ndeepFlatten([1, [2, [3, [4]]]]); // -> [1, 2, 3, 4]\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Mixed types\ndeepFlatten([1, ['a', [true, [null]]], 2]); // -> [1, 'a', true, null, 2]\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Edge cases\ndeepFlatten([]); // -> []\ndeepFlatten([1, 2, 3]); // -> [1, 2, 3] (no nesting)\ndeepFlatten([[]]); // -> []\n```"}]}]},"parameters":[{"id":194,"name":"arr","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"要递归展平的数组。Array to flatten recursively"}]},"type":{"type":"array","elementType":{"type":"intrinsic","name":"unknown"}},"text":{"comment":"

要递归展平的数组。Array to flatten recursively

\n"}}],"type":{"type":"array","elementType":{"type":"intrinsic","name":"unknown"}},"is":{"declaration":false},"location":{"query":"Array.Function.deepFlatten","hash":"deepFlatten"},"text":{"comment":"
Function:

deepFlatten

\n
Description:

递归地将数组展平到任何深度(替代Array.flat(Infinity))。Recursively flattens an array to any depth (alternative to Array.flat(Infinity))

\n
Returns:

完全展平的数组,所有嵌套数组都已展开。Completely flattened array with all nested arrays expanded

\n
Throws:

当arr不是数组时抛出错误。When arr is not an array

\n
Example:
// Basic usage\ndeepFlatten([[1, 2, 3], 4, [5, 6, [7, 8, [9]]]]); // -> [1, 2, 3, 4, 5, 6, 7, 8, 9]\ndeepFlatten([1, [2, [3, [4]]]]); // -> [1, 2, 3, 4]\n
\n
Example:
// Mixed types\ndeepFlatten([1, ['a', [true, [null]]], 2]); // -> [1, 'a', true, null, 2]\n
\n
Example:
// Edge cases\ndeepFlatten([]); // -> []\ndeepFlatten([1, 2, 3]); // -> [1, 2, 3] (no nesting)\ndeepFlatten([[]]); // -> []\n
\n"},"sources":[{"fileName":"packages/utils/src/array.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/array.ts","line":375,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/array.ts#L375"}],"parentId":192}],"is":{"declaration":true},"location":{"query":"Array.Function.deepFlatten","hash":""},"text":{},"parentId":154} diff --git a/docs/v1.0.0-beta01/data/Array.Function.difference.json b/docs/v1.0.0-beta01/data/Array.Function.difference.json new file mode 100644 index 000000000..e875ccd07 --- /dev/null +++ b/docs/v1.0.0-beta01/data/Array.Function.difference.json @@ -0,0 +1 @@ +{"id":199,"name":"difference","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/utils/src/array.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/array.ts","line":434,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/array.ts#L434"}],"signatures":[{"id":200,"name":"difference","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"difference"}]},{"tag":"@description","content":[{"kind":"text","text":"返回第一个数组中不存在于第二个数组中的元素。Returns elements from the first array that are not present in the second array"}]},{"tag":"@returns","content":[{"kind":"text","text":"包含arr1中不在arr2中的元素的数组。Array containing elements from arr1 that are not in arr2"}]},{"tag":"@throws","content":[{"kind":"text","text":"当arr1或arr2不是数组时抛出错误。When arr1 or arr2 is not an array"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Basic usage\ndifference([1, 2, 3], [1, 2]); // -> [3]\ndifference([1, 2, 3, 4], [2, 4]); // -> [1, 3]\ndifference(['a', 'b', 'c'], ['b']); // -> ['a', 'c']\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// No differences\ndifference([1, 2, 3], [1, 2, 3]); // -> []\ndifference([1, 2, 3], [1, 2, 3, 4, 5]); // -> []\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Edge cases\ndifference([], [1, 2, 3]); // -> []\ndifference([1, 2, 3], []); // -> [1, 2, 3]\ndifference([1, 1, 2], [1]); // -> [2] (duplicates in first array are preserved)\n```"}]}]},"parameters":[{"id":201,"name":"arr1","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"要比较的第一个数组。First array to compare"}]},"type":{"type":"reference","id":300,"name":"AnyArr"},"text":{"comment":"

要比较的第一个数组。First array to compare

\n"}},{"id":202,"name":"arr2","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"要比较的第二个数组。Second array to compare against"}]},"type":{"type":"reference","id":300,"name":"AnyArr"},"text":{"comment":"

要比较的第二个数组。Second array to compare against

\n"}}],"type":{"type":"array","elementType":{"type":"intrinsic","name":"unknown"}},"is":{"declaration":false},"location":{"query":"Array.Function.difference","hash":"difference"},"text":{"comment":"
Function:

difference

\n
Description:

返回第一个数组中不存在于第二个数组中的元素。Returns elements from the first array that are not present in the second array

\n
Returns:

包含arr1中不在arr2中的元素的数组。Array containing elements from arr1 that are not in arr2

\n
Throws:

当arr1或arr2不是数组时抛出错误。When arr1 or arr2 is not an array

\n
Example:
// Basic usage\ndifference([1, 2, 3], [1, 2]); // -> [3]\ndifference([1, 2, 3, 4], [2, 4]); // -> [1, 3]\ndifference(['a', 'b', 'c'], ['b']); // -> ['a', 'c']\n
\n
Example:
// No differences\ndifference([1, 2, 3], [1, 2, 3]); // -> []\ndifference([1, 2, 3], [1, 2, 3, 4, 5]); // -> []\n
\n
Example:
// Edge cases\ndifference([], [1, 2, 3]); // -> []\ndifference([1, 2, 3], []); // -> [1, 2, 3]\ndifference([1, 1, 2], [1]); // -> [2] (duplicates in first array are preserved)\n
\n"},"sources":[{"fileName":"packages/utils/src/array.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/array.ts","line":434,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/array.ts#L434"}],"parentId":199}],"is":{"declaration":true},"location":{"query":"Array.Function.difference","hash":""},"text":{},"parentId":154} diff --git a/docs/v1.0.0-beta01/data/Array.Function.differenceBy.json b/docs/v1.0.0-beta01/data/Array.Function.differenceBy.json new file mode 100644 index 000000000..93cd6fdc1 --- /dev/null +++ b/docs/v1.0.0-beta01/data/Array.Function.differenceBy.json @@ -0,0 +1 @@ +{"id":203,"name":"differenceBy","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/utils/src/array.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/array.ts","line":463,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/array.ts#L463"}],"signatures":[{"id":204,"name":"differenceBy","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"differenceBy"}]},{"tag":"@description","content":[{"kind":"text","text":"返回第一个数组中不存在于第二个数组中的元素,使用函数在比较前转换值。Returns elements from the first array that are not present in the second array, using a function to transform values before comparison"}]},{"tag":"@returns","content":[{"kind":"text","text":"包含arr1中没有匹配转换值的元素的数组。Array containing elements from arr1 that don't have matching transformed values in arr2"}]},{"tag":"@throws","content":[{"kind":"text","text":"当arr1或arr2不是数组,或fn不是函数时抛出错误。When arr1 or arr2 is not an array, or fn is not a function"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Basic usage with transformation\ndifferenceBy([2.1, 1.2], [2.3, 3.4], Math.floor); // -> [1.2]\ndifferenceBy(['apple', 'banana'], ['APPLE'], s => s.toLowerCase()); // -> ['banana']\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Object comparison\nconst users1 = [{ id: 1, name: 'John' }, { id: 2, name: 'Jane' }];\nconst users2 = [{ id: 1, name: 'Johnny' }];\ndifferenceBy(users1, users2, u => u.id); // -> [{ id: 2, name: 'Jane' }]\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Edge cases\ndifferenceBy([], [1, 2], x => x); // -> []\ndifferenceBy([1, 2], [], x => x); // -> [1, 2]\n```"}]}]},"parameters":[{"id":205,"name":"arr1","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"要比较的第一个数组。First array to compare"}]},"type":{"type":"reference","id":300,"name":"AnyArr"},"text":{"comment":"

要比较的第一个数组。First array to compare

\n"}},{"id":206,"name":"arr2","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"要比较的第二个数组。Second array to compare against"}]},"type":{"type":"reference","id":300,"name":"AnyArr"},"text":{"comment":"

要比较的第二个数组。Second array to compare against

\n"}},{"id":207,"name":"fn","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"在比较前转换值的函数。Function to transform values before comparison"}]},"type":{"type":"reflection","declaration":{"id":208,"name":"__type","kind":65536,"kindString":"Type literal","flags":{},"sources":[{"fileName":"packages/utils/src/array.ts","line":463,"character":61,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/array.ts#L463"}],"signatures":[{"id":209,"name":"__type","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":210,"name":"v","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"intrinsic","name":"unknown"}}],"type":{"type":"intrinsic","name":"unknown"}}]}},"text":{"comment":"

在比较前转换值的函数。Function to transform values before comparison

\n"}}],"type":{"type":"array","elementType":{"type":"intrinsic","name":"unknown"}},"is":{"declaration":false},"location":{"query":"Array.Function.differenceBy","hash":"differenceBy"},"text":{"comment":"
Function:

differenceBy

\n
Description:

返回第一个数组中不存在于第二个数组中的元素,使用函数在比较前转换值。Returns elements from the first array that are not present in the second array, using a function to transform values before comparison

\n
Returns:

包含arr1中没有匹配转换值的元素的数组。Array containing elements from arr1 that don't have matching transformed values in arr2

\n
Throws:

当arr1或arr2不是数组,或fn不是函数时抛出错误。When arr1 or arr2 is not an array, or fn is not a function

\n
Example:
// Basic usage with transformation\ndifferenceBy([2.1, 1.2], [2.3, 3.4], Math.floor); // -> [1.2]\ndifferenceBy(['apple', 'banana'], ['APPLE'], s => s.toLowerCase()); // -> ['banana']\n
\n
Example:
// Object comparison\nconst users1 = [{ id: 1, name: 'John' }, { id: 2, name: 'Jane' }];\nconst users2 = [{ id: 1, name: 'Johnny' }];\ndifferenceBy(users1, users2, u => u.id); // -> [{ id: 2, name: 'Jane' }]\n
\n
Example:
// Edge cases\ndifferenceBy([], [1, 2], x => x); // -> []\ndifferenceBy([1, 2], [], x => x); // -> [1, 2]\n
\n"},"sources":[{"fileName":"packages/utils/src/array.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/array.ts","line":463,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/array.ts#L463"}],"parentId":203}],"is":{"declaration":true},"location":{"query":"Array.Function.differenceBy","hash":""},"text":{},"parentId":154} diff --git a/docs/v1.0.0-beta01/data/Array.Function.digitize.json b/docs/v1.0.0-beta01/data/Array.Function.digitize.json new file mode 100644 index 000000000..efe23adb0 --- /dev/null +++ b/docs/v1.0.0-beta01/data/Array.Function.digitize.json @@ -0,0 +1 @@ +{"id":290,"name":"digitize","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/utils/src/array.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/array.ts","line":952,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/array.ts#L952"}],"signatures":[{"id":291,"name":"digitize","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"digitize"}]},{"tag":"@description","content":[{"kind":"text","text":"将数字转换为单个数字的数组。Converts a number into an array of its individual digits"}]},{"tag":"@returns","content":[{"kind":"text","text":"包含数字各个位数的数组。Array containing individual digits of the number"}]},{"tag":"@throws","content":[{"kind":"text","text":"当num不是数字时抛出错误。When num is not a number"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Basic usage\ndigitize(12345); // -> [1, 2, 3, 4, 5]\ndigitize(987); // -> [9, 8, 7]\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Single digit\ndigitize(7); // -> [7]\ndigitize(0); // -> [0]\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Negative numbers (sign ignored)\ndigitize(-123); // -> [1, 2, 3]\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Decimal numbers (decimal point ignored)\ndigitize(12.34); // -> [1, 2, 3, 4]\ndigitize(0.567); // -> [0, 5, 6, 7]\n```"}]}]},"parameters":[{"id":292,"name":"num","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"要转换为数字数组的数字。Number to convert to digit array"}]},"type":{"type":"intrinsic","name":"number"},"text":{"comment":"

要转换为数字数组的数字。Number to convert to digit array

\n"}}],"type":{"type":"array","elementType":{"type":"intrinsic","name":"number"}},"is":{"declaration":false},"location":{"query":"Array.Function.digitize","hash":"digitize"},"text":{"comment":"
Function:

digitize

\n
Description:

将数字转换为单个数字的数组。Converts a number into an array of its individual digits

\n
Returns:

包含数字各个位数的数组。Array containing individual digits of the number

\n
Throws:

当num不是数字时抛出错误。When num is not a number

\n
Example:
// Basic usage\ndigitize(12345); // -> [1, 2, 3, 4, 5]\ndigitize(987); // -> [9, 8, 7]\n
\n
Example:
// Single digit\ndigitize(7); // -> [7]\ndigitize(0); // -> [0]\n
\n
Example:
// Negative numbers (sign ignored)\ndigitize(-123); // -> [1, 2, 3]\n
\n
Example:
// Decimal numbers (decimal point ignored)\ndigitize(12.34); // -> [1, 2, 3, 4]\ndigitize(0.567); // -> [0, 5, 6, 7]\n
\n"},"sources":[{"fileName":"packages/utils/src/array.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/array.ts","line":952,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/array.ts#L952"}],"parentId":290}],"is":{"declaration":true},"location":{"query":"Array.Function.digitize","hash":""},"text":{},"parentId":154} diff --git a/docs/v1.0.0-beta01/data/Array.Function.drop.json b/docs/v1.0.0-beta01/data/Array.Function.drop.json new file mode 100644 index 000000000..3c60a1949 --- /dev/null +++ b/docs/v1.0.0-beta01/data/Array.Function.drop.json @@ -0,0 +1 @@ +{"id":211,"name":"drop","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/utils/src/array.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/array.ts","line":492,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/array.ts#L492"}],"signatures":[{"id":212,"name":"drop","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"drop"}]},{"tag":"@description","content":[{"kind":"text","text":"从数组的开头删除元素。Removes elements from the beginning of an array"}]},{"tag":"@returns","content":[{"kind":"text","text":"从开头删除指定数量元素的新数组。New array with specified number of elements removed from the beginning"}]},{"tag":"@throws","content":[{"kind":"text","text":"当arr不是数组或itemsCount不是数字时抛出错误。When arr is not an array or itemsCount is not a number"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Basic usage\ndrop([1, 2, 3], 1); // -> [2, 3]\ndrop([1, 2, 3], 2); // -> [3]\ndrop([1, 2, 3, 4, 5], 3); // -> [4, 5]\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Edge cases\ndrop([1, 2, 3], 0); // -> [1, 2, 3]\ndrop([1, 2, 3], 4); // -> []\ndrop([], 2); // -> []\ndrop([1, 2, 3], -1); // -> [1, 2, 3] (negative values treated as 0)\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// String arrays\ndrop(['a', 'b', 'c', 'd'], 2); // -> ['c', 'd']\n```"}]}]},"typeParameter":[{"id":213,"name":"T","kind":131072,"kindString":"Type parameter","flags":{}}],"parameters":[{"id":214,"name":"arr","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"要从中删除元素的数组。Array to drop elements from"}]},"type":{"type":"typeOperator","operator":"readonly","target":{"type":"array","elementType":{"type":"reference","id":213,"name":"T"}}},"text":{"comment":"

要从中删除元素的数组。Array to drop elements from

\n"}},{"id":215,"name":"itemsCount","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"要从开头删除的元素数量(默认:1)。Number of elements to drop from the beginning (default: 1)"}]},"type":{"type":"intrinsic","name":"number"},"text":{"comment":"

要从开头删除的元素数量(默认:1)。Number of elements to drop from the beginning (default: 1)

\n"}}],"type":{"type":"array","elementType":{"type":"reference","id":213,"name":"T"}},"is":{"declaration":false},"location":{"query":"Array.Function.drop","hash":"drop"},"text":{"comment":"
Function:

drop

\n
Description:

从数组的开头删除元素。Removes elements from the beginning of an array

\n
Returns:

从开头删除指定数量元素的新数组。New array with specified number of elements removed from the beginning

\n
Throws:

当arr不是数组或itemsCount不是数字时抛出错误。When arr is not an array or itemsCount is not a number

\n
Example:
// Basic usage\ndrop([1, 2, 3], 1); // -> [2, 3]\ndrop([1, 2, 3], 2); // -> [3]\ndrop([1, 2, 3, 4, 5], 3); // -> [4, 5]\n
\n
Example:
// Edge cases\ndrop([1, 2, 3], 0); // -> [1, 2, 3]\ndrop([1, 2, 3], 4); // -> []\ndrop([], 2); // -> []\ndrop([1, 2, 3], -1); // -> [1, 2, 3] (negative values treated as 0)\n
\n
Example:
// String arrays\ndrop(['a', 'b', 'c', 'd'], 2); // -> ['c', 'd']\n
\n"},"sources":[{"fileName":"packages/utils/src/array.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/array.ts","line":492,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/array.ts#L492"}],"parentId":211}],"is":{"declaration":true},"location":{"query":"Array.Function.drop","hash":""},"text":{},"parentId":154} diff --git a/docs/v1.0.0-beta01/data/Array.Function.dropWhile.json b/docs/v1.0.0-beta01/data/Array.Function.dropWhile.json new file mode 100644 index 000000000..3e390da60 --- /dev/null +++ b/docs/v1.0.0-beta01/data/Array.Function.dropWhile.json @@ -0,0 +1 @@ +{"id":216,"name":"dropWhile","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/utils/src/array.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/array.ts","line":519,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/array.ts#L519"}],"signatures":[{"id":217,"name":"dropWhile","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"dropWhile"}]},{"tag":"@description","content":[{"kind":"text","text":"当条件为false时从数组的开头删除元素。Removes elements from the beginning of an array while a condition is false"}]},{"tag":"@returns","content":[{"kind":"text","text":"从开头删除元素直到条件变为true的新数组。New array with elements dropped from the beginning until condition becomes true"}]},{"tag":"@throws","content":[{"kind":"text","text":"当_arr不是数组或canContinueDropping不是函数时抛出错误。When _arr is not an array or canContinueDropping is not a function"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Basic usage\ndropWhile([1, 2, 3, 4], n => n >= 3); // -> [3, 4]\ndropWhile([1, 2, 3, 4, 1], n => n >= 2); // -> [2, 3, 4, 1]\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// String arrays\ndropWhile(['a', 'b', 'c'], s => s >= 'b'); // -> ['b', 'c']\ndropWhile(['apple', 'banana', 'cherry'], s => s.length > 5); // -> ['banana', 'cherry']\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Edge cases\ndropWhile([], n => n > 0); // -> []\ndropWhile([1, 2, 3], n => n > 10); // -> [] (all elements dropped)\ndropWhile([1, 2, 3], n => n < 10); // -> [1, 2, 3] (no elements dropped)\n```"}]}]},"typeParameter":[{"id":218,"name":"T","kind":131072,"kindString":"Type parameter","flags":{}}],"parameters":[{"id":219,"name":"_arr","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"要处理的数组。Array to process"}]},"type":{"type":"array","elementType":{"type":"reference","id":218,"name":"T"}},"text":{"comment":"

要处理的数组。Array to process

\n"}},{"id":220,"name":"canContinueDropping","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"当元素应该保留时返回true,当应该删除时返回false的函数。Function that returns true when element should be kept, false when it should be dropped"}]},"type":{"type":"reflection","declaration":{"id":221,"name":"__type","kind":65536,"kindString":"Type literal","flags":{},"sources":[{"fileName":"packages/utils/src/array.ts","line":519,"character":61,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/array.ts#L519"}],"signatures":[{"id":222,"name":"__type","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":223,"name":"item","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","id":218,"name":"T"}}],"type":{"type":"intrinsic","name":"boolean"}}]}},"text":{"comment":"

当元素应该保留时返回true,当应该删除时返回false的函数。Function that returns true when element should be kept, false when it should be dropped

\n"}}],"type":{"type":"array","elementType":{"type":"reference","id":218,"name":"T"}},"is":{"declaration":false},"location":{"query":"Array.Function.dropWhile","hash":"dropWhile"},"text":{"comment":"
Function:

dropWhile

\n
Description:

当条件为false时从数组的开头删除元素。Removes elements from the beginning of an array while a condition is false

\n
Returns:

从开头删除元素直到条件变为true的新数组。New array with elements dropped from the beginning until condition becomes true

\n
Throws:

当_arr不是数组或canContinueDropping不是函数时抛出错误。When _arr is not an array or canContinueDropping is not a function

\n
Example:
// Basic usage\ndropWhile([1, 2, 3, 4], n => n >= 3); // -> [3, 4]\ndropWhile([1, 2, 3, 4, 1], n => n >= 2); // -> [2, 3, 4, 1]\n
\n
Example:
// String arrays\ndropWhile(['a', 'b', 'c'], s => s >= 'b'); // -> ['b', 'c']\ndropWhile(['apple', 'banana', 'cherry'], s => s.length > 5); // -> ['banana', 'cherry']\n
\n
Example:
// Edge cases\ndropWhile([], n => n > 0); // -> []\ndropWhile([1, 2, 3], n => n > 10); // -> [] (all elements dropped)\ndropWhile([1, 2, 3], n => n < 10); // -> [1, 2, 3] (no elements dropped)\n
\n"},"sources":[{"fileName":"packages/utils/src/array.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/array.ts","line":519,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/array.ts#L519"}],"parentId":216}],"is":{"declaration":true},"location":{"query":"Array.Function.dropWhile","hash":""},"text":{},"parentId":154} diff --git a/docs/v1.0.0-beta01/data/Array.Function.everyNth.json b/docs/v1.0.0-beta01/data/Array.Function.everyNth.json new file mode 100644 index 000000000..58efa56fd --- /dev/null +++ b/docs/v1.0.0-beta01/data/Array.Function.everyNth.json @@ -0,0 +1 @@ +{"id":268,"name":"everyNth","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/utils/src/array.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/array.ts","line":784,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/array.ts#L784"}],"signatures":[{"id":269,"name":"everyNth","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"everyNth"}]},{"tag":"@description","content":[{"kind":"text","text":"从数组中返回每个第n个元素,从索引0开始。Returns every nth element from an array, starting from index 0"}]},{"tag":"@returns","content":[{"kind":"text","text":"包含每个第n个元素的数组。Array containing every nth element"}]},{"tag":"@throws","content":[{"kind":"text","text":"当arr不是数组或nth不是数字时抛出错误。When arr is not an array or nth is not a number"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Basic usage\neveryNth([1, 2, 3, 4, 5, 6], 2); // -> [1, 3, 5]\neveryNth([1, 2, 3, 4, 5, 6, 7, 8], 3); // -> [1, 4, 7]\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// String arrays\neveryNth(['a', 'b', 'c', 'd', 'e', 'f'], 2); // -> ['a', 'c', 'e']\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Edge cases\neveryNth([], 2); // -> []\neveryNth([1, 2, 3], 1); // -> [1, 2, 3] (every element)\neveryNth([1, 2, 3], 5); // -> [1] (only first element when nth > length)\n```"}]}]},"parameters":[{"id":270,"name":"arr","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"要从中采样的数组。Array to sample from"}]},"type":{"type":"reference","id":300,"name":"AnyArr"},"text":{"comment":"

要从中采样的数组。Array to sample from

\n"}},{"id":271,"name":"nth","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"采样的间隔(每个第n个元素)。Interval for sampling (every nth element)"}]},"type":{"type":"intrinsic","name":"number"},"text":{"comment":"

采样的间隔(每个第n个元素)。Interval for sampling (every nth element)

\n"}}],"type":{"type":"array","elementType":{"type":"intrinsic","name":"unknown"}},"is":{"declaration":false},"location":{"query":"Array.Function.everyNth","hash":"everyNth"},"text":{"comment":"
Function:

everyNth

\n
Description:

从数组中返回每个第n个元素,从索引0开始。Returns every nth element from an array, starting from index 0

\n
Returns:

包含每个第n个元素的数组。Array containing every nth element

\n
Throws:

当arr不是数组或nth不是数字时抛出错误。When arr is not an array or nth is not a number

\n
Example:
// Basic usage\neveryNth([1, 2, 3, 4, 5, 6], 2); // -> [1, 3, 5]\neveryNth([1, 2, 3, 4, 5, 6, 7, 8], 3); // -> [1, 4, 7]\n
\n
Example:
// String arrays\neveryNth(['a', 'b', 'c', 'd', 'e', 'f'], 2); // -> ['a', 'c', 'e']\n
\n
Example:
// Edge cases\neveryNth([], 2); // -> []\neveryNth([1, 2, 3], 1); // -> [1, 2, 3] (every element)\neveryNth([1, 2, 3], 5); // -> [1] (only first element when nth > length)\n
\n"},"sources":[{"fileName":"packages/utils/src/array.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/array.ts","line":784,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/array.ts#L784"}],"parentId":268}],"is":{"declaration":true},"location":{"query":"Array.Function.everyNth","hash":""},"text":{},"parentId":154} diff --git a/docs/v1.0.0-beta01/data/Array.Function.fibonacci.json b/docs/v1.0.0-beta01/data/Array.Function.fibonacci.json new file mode 100644 index 000000000..75dd2f762 --- /dev/null +++ b/docs/v1.0.0-beta01/data/Array.Function.fibonacci.json @@ -0,0 +1 @@ +{"id":293,"name":"fibonacci","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/utils/src/array.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/array.ts","line":979,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/array.ts#L979"}],"signatures":[{"id":294,"name":"fibonacci","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"fibonacci"}]},{"tag":"@description","content":[{"kind":"text","text":"生成指定长度的斐波那契数列。Generates a Fibonacci sequence of specified length"}]},{"tag":"@returns","content":[{"kind":"text","text":"包含前n个斐波那契数的数组。Array containing the first n numbers of the Fibonacci sequence"}]},{"tag":"@throws","content":[{"kind":"text","text":"当n不是数字时抛出错误。When n is not a number"}]},{"tag":"@throws","content":[{"kind":"text","text":"当n为负数时抛出错误。When n is negative"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Basic usage\nfibonacci(5); // -> [0, 1, 1, 2, 3]\nfibonacci(8); // -> [0, 1, 1, 2, 3, 5, 8, 13]\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Edge cases\nfibonacci(0); // -> []\nfibonacci(1); // -> [0]\nfibonacci(2); // -> [0, 1]\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Larger sequences\nfibonacci(10); // -> [0, 1, 1, 2, 3, 5, 8, 13, 21, 34]\n```"}]}]},"parameters":[{"id":295,"name":"n","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"要生成的斐波那契数列的长度。Length of the Fibonacci sequence to generate"}]},"type":{"type":"intrinsic","name":"number"},"text":{"comment":"

要生成的斐波那契数列的长度。Length of the Fibonacci sequence to generate

\n"}}],"type":{"type":"intrinsic","name":"any"},"is":{"declaration":false},"location":{"query":"Array.Function.fibonacci","hash":"fibonacci"},"text":{"comment":"
Function:

fibonacci

\n
Description:

生成指定长度的斐波那契数列。Generates a Fibonacci sequence of specified length

\n
Returns:

包含前n个斐波那契数的数组。Array containing the first n numbers of the Fibonacci sequence

\n
Throws:

当n不是数字时抛出错误。When n is not a number

\n
Throws:

当n为负数时抛出错误。When n is negative

\n
Example:
// Basic usage\nfibonacci(5); // -> [0, 1, 1, 2, 3]\nfibonacci(8); // -> [0, 1, 1, 2, 3, 5, 8, 13]\n
\n
Example:
// Edge cases\nfibonacci(0); // -> []\nfibonacci(1); // -> [0]\nfibonacci(2); // -> [0, 1]\n
\n
Example:
// Larger sequences\nfibonacci(10); // -> [0, 1, 1, 2, 3, 5, 8, 13, 21, 34]\n
\n"},"sources":[{"fileName":"packages/utils/src/array.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/array.ts","line":979,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/array.ts#L979"}],"parentId":293}],"is":{"declaration":true},"location":{"query":"Array.Function.fibonacci","hash":""},"text":{},"parentId":154} diff --git a/docs/v1.0.0-beta01/data/Array.Function.filterNonUnique.json b/docs/v1.0.0-beta01/data/Array.Function.filterNonUnique.json new file mode 100644 index 000000000..bd416b958 --- /dev/null +++ b/docs/v1.0.0-beta01/data/Array.Function.filterNonUnique.json @@ -0,0 +1 @@ +{"id":275,"name":"filterNonUnique","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/utils/src/array.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/array.ts","line":845,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/array.ts#L845"}],"signatures":[{"id":276,"name":"filterNonUnique","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"filterNonUnique"}]},{"tag":"@description","content":[{"kind":"text","text":"过滤掉在数组中出现多次的元素,仅保留唯一元素。Filters out elements that appear more than once in an array, keeping only unique elements"}]},{"tag":"@returns","content":[{"kind":"text","text":"仅包含恰好出现一次的元素的新数组。New array containing only elements that appear exactly once"}]},{"tag":"@throws","content":[{"kind":"text","text":"当arr不是数组时抛出错误。When arr is not an array"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Basic usage\nfilterNonUnique([1, 2, 2, 3, 4, 4, 5]); // -> [1, 3, 5]\nfilterNonUnique(['a', 'b', 'a', 'c', 'b', 'd']); // -> ['c', 'd']\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// All elements unique\nfilterNonUnique([1, 2, 3, 4]); // -> [1, 2, 3, 4]\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// All elements duplicated\nfilterNonUnique([1, 1, 2, 2, 3, 3]); // -> []\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Edge cases\nfilterNonUnique([]); // -> []\nfilterNonUnique([1]); // -> [1]\nfilterNonUnique([null, null, undefined]); // -> [undefined]\n```"}]}]},"parameters":[{"id":277,"name":"arr","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"要过滤的数组。Array to filter"}]},"type":{"type":"reference","id":300,"name":"AnyArr"},"text":{"comment":"

要过滤的数组。Array to filter

\n"}}],"type":{"type":"array","elementType":{"type":"intrinsic","name":"unknown"}},"is":{"declaration":false},"location":{"query":"Array.Function.filterNonUnique","hash":"filterNonUnique"},"text":{"comment":"
Function:

filterNonUnique

\n
Description:

过滤掉在数组中出现多次的元素,仅保留唯一元素。Filters out elements that appear more than once in an array, keeping only unique elements

\n
Returns:

仅包含恰好出现一次的元素的新数组。New array containing only elements that appear exactly once

\n
Throws:

当arr不是数组时抛出错误。When arr is not an array

\n
Example:
// Basic usage\nfilterNonUnique([1, 2, 2, 3, 4, 4, 5]); // -> [1, 3, 5]\nfilterNonUnique(['a', 'b', 'a', 'c', 'b', 'd']); // -> ['c', 'd']\n
\n
Example:
// All elements unique\nfilterNonUnique([1, 2, 3, 4]); // -> [1, 2, 3, 4]\n
\n
Example:
// All elements duplicated\nfilterNonUnique([1, 1, 2, 2, 3, 3]); // -> []\n
\n
Example:
// Edge cases\nfilterNonUnique([]); // -> []\nfilterNonUnique([1]); // -> [1]\nfilterNonUnique([null, null, undefined]); // -> [undefined]\n
\n"},"sources":[{"fileName":"packages/utils/src/array.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/array.ts","line":845,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/array.ts#L845"}],"parentId":275}],"is":{"declaration":true},"location":{"query":"Array.Function.filterNonUnique","hash":""},"text":{},"parentId":154} diff --git a/docs/v1.0.0-beta01/data/Array.Function.flatten.json b/docs/v1.0.0-beta01/data/Array.Function.flatten.json new file mode 100644 index 000000000..8747863df --- /dev/null +++ b/docs/v1.0.0-beta01/data/Array.Function.flatten.json @@ -0,0 +1 @@ +{"id":195,"name":"flatten","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/utils/src/array.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/array.ts","line":402,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/array.ts#L402"}],"signatures":[{"id":196,"name":"flatten","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"flatten"}]},{"tag":"@description","content":[{"kind":"text","text":"将数组展平到指定的深度级别。Flattens an array to a specified depth level"}]},{"tag":"@returns","content":[{"kind":"text","text":"展平到指定深度的数组。Flattened array up to the specified depth"}]},{"tag":"@throws","content":[{"kind":"text","text":"当arr不是数组或depth不是数字时抛出错误。When arr is not an array or depth is not a number"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Basic usage\nflatten([1, 2, [3, 4, [5, 6]]]); // -> [1, 2, 3, 4, [5, 6]]\nflatten([1, 2, [3, 4, [5, 6]]], 2); // -> [1, 2, 3, 4, 5, 6]\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Different depth levels\nflatten([1, [2, [3, [4]]]], 0); // -> [1, [2, [3, [4]]]] (no flattening)\nflatten([1, [2, [3, [4]]]], 1); // -> [1, 2, [3, [4]]]\nflatten([1, [2, [3, [4]]]], 3); // -> [1, 2, 3, 4]\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Edge cases\nflatten([], 5); // -> []\nflatten([1, 2, 3], 1); // -> [1, 2, 3] (no nesting)\n```"}]}]},"parameters":[{"id":197,"name":"arr","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"要展平的数组。Array to flatten"}]},"type":{"type":"reference","id":300,"name":"AnyArr"},"text":{"comment":"

要展平的数组。Array to flatten

\n"}},{"id":198,"name":"depth","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"要展平的最大深度(默认:1)。Maximum depth to flatten (default: 1)"}]},"type":{"type":"intrinsic","name":"number"},"defaultValue":"1","text":{"comment":"

要展平的最大深度(默认:1)。Maximum depth to flatten (default: 1)

\n"}}],"type":{"type":"array","elementType":{"type":"intrinsic","name":"unknown"}},"is":{"declaration":false},"location":{"query":"Array.Function.flatten","hash":"flatten"},"text":{"comment":"
Function:

flatten

\n
Description:

将数组展平到指定的深度级别。Flattens an array to a specified depth level

\n
Returns:

展平到指定深度的数组。Flattened array up to the specified depth

\n
Throws:

当arr不是数组或depth不是数字时抛出错误。When arr is not an array or depth is not a number

\n
Example:
// Basic usage\nflatten([1, 2, [3, 4, [5, 6]]]); // -> [1, 2, 3, 4, [5, 6]]\nflatten([1, 2, [3, 4, [5, 6]]], 2); // -> [1, 2, 3, 4, 5, 6]\n
\n
Example:
// Different depth levels\nflatten([1, [2, [3, [4]]]], 0); // -> [1, [2, [3, [4]]]] (no flattening)\nflatten([1, [2, [3, [4]]]], 1); // -> [1, 2, [3, [4]]]\nflatten([1, [2, [3, [4]]]], 3); // -> [1, 2, 3, 4]\n
\n
Example:
// Edge cases\nflatten([], 5); // -> []\nflatten([1, 2, 3], 1); // -> [1, 2, 3] (no nesting)\n
\n"},"sources":[{"fileName":"packages/utils/src/array.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/array.ts","line":402,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/array.ts#L402"}],"parentId":195}],"is":{"declaration":true},"location":{"query":"Array.Function.flatten","hash":""},"text":{},"parentId":154} diff --git a/docs/v1.0.0-beta01/data/Array.Function.getStringByteLength.json b/docs/v1.0.0-beta01/data/Array.Function.getStringByteLength.json new file mode 100644 index 000000000..8f9135f47 --- /dev/null +++ b/docs/v1.0.0-beta01/data/Array.Function.getStringByteLength.json @@ -0,0 +1 @@ +{"id":304,"name":"getStringByteLength","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/utils/src/array.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/array.ts","line":132,"character":13,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/array.ts#L132"}],"signatures":[{"id":305,"name":"getStringByteLength","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"getStringByteLength"}]},{"tag":"@description","content":[{"kind":"text","text":"获取字符串的字节长度。Gets the byte length of a string"}]},{"tag":"@returns","content":[{"kind":"text","text":"字符串的字节长度。The byte length of the string"}]},{"tag":"@throws","content":[{"kind":"text","text":"当浏览器不支持TextEncoder时抛出错误。Throws an error when the browser does not support TextEncoder"}]}]},"parameters":[{"id":306,"name":"value","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"intrinsic","name":"string"},"text":{}}],"type":{"type":"intrinsic","name":"number"},"is":{"declaration":false},"location":{"query":"Array.Function.getStringByteLength","hash":"getStringByteLength"},"text":{"comment":"
Function:

getStringByteLength

\n
Description:

获取字符串的字节长度。Gets the byte length of a string

\n
Returns:

字符串的字节长度。The byte length of the string

\n
Throws:

当浏览器不支持TextEncoder时抛出错误。Throws an error when the browser does not support TextEncoder

\n"},"sources":[{"fileName":"packages/utils/src/array.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/array.ts","line":132,"character":35,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/array.ts#L132"}],"parentId":304}],"is":{"declaration":true},"location":{"query":"Array.Function.getStringByteLength","hash":""},"text":{},"parentId":154} diff --git a/docs/v1.0.0-beta01/data/Array.Function.indexOfAll.json b/docs/v1.0.0-beta01/data/Array.Function.indexOfAll.json new file mode 100644 index 000000000..2223245b5 --- /dev/null +++ b/docs/v1.0.0-beta01/data/Array.Function.indexOfAll.json @@ -0,0 +1 @@ +{"id":224,"name":"indexOfAll","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/utils/src/array.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/array.ts","line":552,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/array.ts#L552"}],"signatures":[{"id":225,"name":"indexOfAll","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"indexOfAll"}]},{"tag":"@description","content":[{"kind":"text","text":"查找数组中特定值出现的所有索引。Finds all indices where a specific value occurs in an array"}]},{"tag":"@returns","content":[{"kind":"text","text":"找到该值的索引数组。Array of indices where the value was found"}]},{"tag":"@throws","content":[{"kind":"text","text":"当arr不是数组时抛出错误。When arr is not an array"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Basic usage\nindexOfAll([1, 2, 3, 4, 2, 2], 2); // -> [1, 4, 5]\nindexOfAll([1, 2, 3, 4, 2, 2], 5); // -> []\nindexOfAll(['a', 'b', 'a', 'c', 'a'], 'a'); // -> [0, 2, 4]\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Edge cases\nindexOfAll([], 1); // -> []\nindexOfAll([1, 2, 3], 4); // -> []\nindexOfAll([null, null, 1], null); // -> [0, 1]\nindexOfAll([NaN, NaN, 1], NaN); // -> [] (NaN !== NaN)\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Object arrays\nconst obj = { id: 1 };\nindexOfAll([obj, { id: 2 }, obj], obj); // -> [0, 2]\n```"}]}]},"parameters":[{"id":226,"name":"arr","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"要搜索的数组。Array to search in"}]},"type":{"type":"array","elementType":{"type":"intrinsic","name":"any"}},"text":{"comment":"

要搜索的数组。Array to search in

\n"}},{"id":227,"name":"val","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"要查找索引的值。Value to find indices for"}]},"type":{"type":"intrinsic","name":"unknown"},"text":{"comment":"

要查找索引的值。Value to find indices for

\n"}}],"type":{"type":"array","elementType":{"type":"intrinsic","name":"unknown"}},"is":{"declaration":false},"location":{"query":"Array.Function.indexOfAll","hash":"indexOfAll"},"text":{"comment":"
Function:

indexOfAll

\n
Description:

查找数组中特定值出现的所有索引。Finds all indices where a specific value occurs in an array

\n
Returns:

找到该值的索引数组。Array of indices where the value was found

\n
Throws:

当arr不是数组时抛出错误。When arr is not an array

\n
Example:
// Basic usage\nindexOfAll([1, 2, 3, 4, 2, 2], 2); // -> [1, 4, 5]\nindexOfAll([1, 2, 3, 4, 2, 2], 5); // -> []\nindexOfAll(['a', 'b', 'a', 'c', 'a'], 'a'); // -> [0, 2, 4]\n
\n
Example:
// Edge cases\nindexOfAll([], 1); // -> []\nindexOfAll([1, 2, 3], 4); // -> []\nindexOfAll([null, null, 1], null); // -> [0, 1]\nindexOfAll([NaN, NaN, 1], NaN); // -> [] (NaN !== NaN)\n
\n
Example:
// Object arrays\nconst obj = { id: 1 };\nindexOfAll([obj, { id: 2 }, obj], obj); // -> [0, 2]\n
\n"},"sources":[{"fileName":"packages/utils/src/array.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/array.ts","line":552,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/array.ts#L552"}],"parentId":224}],"is":{"declaration":true},"location":{"query":"Array.Function.indexOfAll","hash":""},"text":{},"parentId":154} diff --git a/docs/v1.0.0-beta01/data/Array.Function.initializeArrayWithValues.json b/docs/v1.0.0-beta01/data/Array.Function.initializeArrayWithValues.json new file mode 100644 index 000000000..7e365be5c --- /dev/null +++ b/docs/v1.0.0-beta01/data/Array.Function.initializeArrayWithValues.json @@ -0,0 +1 @@ +{"id":278,"name":"initializeArrayWithValues","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/utils/src/array.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/array.ts","line":877,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/array.ts#L877"}],"signatures":[{"id":279,"name":"initializeArrayWithValues","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"initializeArrayWithValues"}]},{"tag":"@description","content":[{"kind":"text","text":"创建指定长度并用特定值填充的数组。Creates an array of specified length filled with a specific value"}]},{"tag":"@returns","content":[{"kind":"text","text":"指定长度并用给定值填充的新数组。New array of specified length filled with the given value"}]},{"tag":"@throws","content":[{"kind":"text","text":"当len不是数字时抛出错误。When len is not a number"}]},{"tag":"@throws","content":[{"kind":"text","text":"当len为负数时抛出错误。When len is negative"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Basic usage\ninitializeArrayWithValues(5, 2); // -> [2, 2, 2, 2, 2]\ninitializeArrayWithValues(3, 'hello'); // -> ['hello', 'hello', 'hello']\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Default value (0)\ninitializeArrayWithValues(4); // -> [0, 0, 0, 0]\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Different value types\ninitializeArrayWithValues(3, true); // -> [true, true, true]\ninitializeArrayWithValues(2, null); // -> [null, null]\ninitializeArrayWithValues(3, { id: 1 }); // -> [{ id: 1 }, { id: 1 }, { id: 1 }]\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Edge cases\ninitializeArrayWithValues(0); // -> []\ninitializeArrayWithValues(1, 'single'); // -> ['single']\n```"}]}]},"parameters":[{"id":280,"name":"len","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"要创建的数组长度。Length of the array to create"}]},"type":{"type":"intrinsic","name":"number"},"text":{"comment":"

要创建的数组长度。Length of the array to create

\n"}},{"id":281,"name":"value","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"用于填充数组的值(默认:0)。Value to fill the array with (default: 0)"}]},"type":{"type":"intrinsic","name":"number"},"defaultValue":"0","text":{"comment":"

用于填充数组的值(默认:0)。Value to fill the array with (default: 0)

\n"}}],"type":{"type":"array","elementType":{"type":"intrinsic","name":"any"}},"is":{"declaration":false},"location":{"query":"Array.Function.initializeArrayWithValues","hash":"initializeArrayWithValues"},"text":{"comment":"
Function:

initializeArrayWithValues

\n
Description:

创建指定长度并用特定值填充的数组。Creates an array of specified length filled with a specific value

\n
Returns:

指定长度并用给定值填充的新数组。New array of specified length filled with the given value

\n
Throws:

当len不是数字时抛出错误。When len is not a number

\n
Throws:

当len为负数时抛出错误。When len is negative

\n
Example:
// Basic usage\ninitializeArrayWithValues(5, 2); // -> [2, 2, 2, 2, 2]\ninitializeArrayWithValues(3, 'hello'); // -> ['hello', 'hello', 'hello']\n
\n
Example:
// Default value (0)\ninitializeArrayWithValues(4); // -> [0, 0, 0, 0]\n
\n
Example:
// Different value types\ninitializeArrayWithValues(3, true); // -> [true, true, true]\ninitializeArrayWithValues(2, null); // -> [null, null]\ninitializeArrayWithValues(3, { id: 1 }); // -> [{ id: 1 }, { id: 1 }, { id: 1 }]\n
\n
Example:
// Edge cases\ninitializeArrayWithValues(0); // -> []\ninitializeArrayWithValues(1, 'single'); // -> ['single']\n
\n"},"sources":[{"fileName":"packages/utils/src/array.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/array.ts","line":877,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/array.ts#L877"}],"parentId":278}],"is":{"declaration":true},"location":{"query":"Array.Function.initializeArrayWithValues","hash":""},"text":{},"parentId":154} diff --git a/docs/v1.0.0-beta01/data/Array.Function.intersection.json b/docs/v1.0.0-beta01/data/Array.Function.intersection.json new file mode 100644 index 000000000..2403e175a --- /dev/null +++ b/docs/v1.0.0-beta01/data/Array.Function.intersection.json @@ -0,0 +1 @@ +{"id":228,"name":"intersection","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/utils/src/array.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/array.ts","line":579,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/array.ts#L579"}],"signatures":[{"id":229,"name":"intersection","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"intersection"}]},{"tag":"@description","content":[{"kind":"text","text":"返回两个数组中存在的元素(交集)。Returns elements that exist in both arrays (intersection)"}]},{"tag":"@returns","content":[{"kind":"text","text":"包含两个输入数组中都存在的元素的数组。Array containing elements that exist in both input arrays"}]},{"tag":"@throws","content":[{"kind":"text","text":"当arr1或arr2不是数组时抛出错误。When arr1 or arr2 is not an array"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Basic usage\nintersection([1, 2, 3, 4], [1, 2]); // -> [1, 2]\nintersection([1, 2, 3, 4], [1, 5]); // -> [1]\nintersection(['a', 'b', 'c'], ['b', 'c', 'd']); // -> ['b', 'c']\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// No intersection\nintersection([1, 2, 3], [4, 5, 6]); // -> []\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Edge cases\nintersection([], [1, 2, 3]); // -> []\nintersection([1, 2, 3], []); // -> []\nintersection([1, 1, 2], [1, 3]); // -> [1, 1] (duplicates preserved from first array)\n```"}]}]},"parameters":[{"id":230,"name":"arr1","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"第一个数组。First array"}]},"type":{"type":"reference","id":300,"name":"AnyArr"},"text":{"comment":"

第一个数组。First array

\n"}},{"id":231,"name":"arr2","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"第二个数组。Second array"}]},"type":{"type":"reference","id":300,"name":"AnyArr"},"text":{"comment":"

第二个数组。Second array

\n"}}],"type":{"type":"array","elementType":{"type":"intrinsic","name":"unknown"}},"is":{"declaration":false},"location":{"query":"Array.Function.intersection","hash":"intersection"},"text":{"comment":"
Function:

intersection

\n
Description:

返回两个数组中存在的元素(交集)。Returns elements that exist in both arrays (intersection)

\n
Returns:

包含两个输入数组中都存在的元素的数组。Array containing elements that exist in both input arrays

\n
Throws:

当arr1或arr2不是数组时抛出错误。When arr1 or arr2 is not an array

\n
Example:
// Basic usage\nintersection([1, 2, 3, 4], [1, 2]); // -> [1, 2]\nintersection([1, 2, 3, 4], [1, 5]); // -> [1]\nintersection(['a', 'b', 'c'], ['b', 'c', 'd']); // -> ['b', 'c']\n
\n
Example:
// No intersection\nintersection([1, 2, 3], [4, 5, 6]); // -> []\n
\n
Example:
// Edge cases\nintersection([], [1, 2, 3]); // -> []\nintersection([1, 2, 3], []); // -> []\nintersection([1, 1, 2], [1, 3]); // -> [1, 1] (duplicates preserved from first array)\n
\n"},"sources":[{"fileName":"packages/utils/src/array.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/array.ts","line":579,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/array.ts#L579"}],"parentId":228}],"is":{"declaration":true},"location":{"query":"Array.Function.intersection","hash":""},"text":{},"parentId":154} diff --git a/docs/v1.0.0-beta01/data/Array.Function.intersectionBy.json b/docs/v1.0.0-beta01/data/Array.Function.intersectionBy.json new file mode 100644 index 000000000..a3cab4d35 --- /dev/null +++ b/docs/v1.0.0-beta01/data/Array.Function.intersectionBy.json @@ -0,0 +1 @@ +{"id":232,"name":"intersectionBy","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/utils/src/array.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/array.ts","line":608,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/array.ts#L608"}],"signatures":[{"id":233,"name":"intersectionBy","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"intersectionBy"}]},{"tag":"@description","content":[{"kind":"text","text":"在应用转换函数后返回两个数组中存在的元素。Returns elements that exist in both arrays after applying a transformation function"}]},{"tag":"@returns","content":[{"kind":"text","text":"包含arr1中具有与arr2匹配的转换值的元素的数组。Array containing elements from arr1 that have matching transformed values in arr2"}]},{"tag":"@throws","content":[{"kind":"text","text":"当arr1或arr2不是数组,或fn不是函数时抛出错误。When arr1 or arr2 is not an array, or fn is not a function"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Basic usage\nintersectionBy([2.1, 1.2], [2.3, 3.4], Math.floor); // -> [2.1]\nintersectionBy(['apple', 'BANANA'], ['banana', 'cherry'], s => s.toLowerCase()); // -> ['BANANA']\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Object comparison\nconst users1 = [{ id: 1, name: 'John' }, { id: 2, name: 'Jane' }];\nconst users2 = [{ id: 1, name: 'Johnny' }, { id: 3, name: 'Bob' }];\nintersectionBy(users1, users2, u => u.id); // -> [{ id: 1, name: 'John' }]\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Edge cases\nintersectionBy([], [1, 2], x => x); // -> []\nintersectionBy([1, 2], [], x => x); // -> []\n```"}]}]},"parameters":[{"id":234,"name":"arr1","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"第一个数组。First array"}]},"type":{"type":"reference","id":300,"name":"AnyArr"},"text":{"comment":"

第一个数组。First array

\n"}},{"id":235,"name":"arr2","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"第二个数组。Second array"}]},"type":{"type":"reference","id":300,"name":"AnyArr"},"text":{"comment":"

第二个数组。Second array

\n"}},{"id":236,"name":"fn","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"在比较前转换值的函数。Function to transform values before comparison"}]},"type":{"type":"reflection","declaration":{"id":237,"name":"__type","kind":65536,"kindString":"Type literal","flags":{},"sources":[{"fileName":"packages/utils/src/array.ts","line":608,"character":63,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/array.ts#L608"}],"signatures":[{"id":238,"name":"__type","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":239,"name":"v","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"intrinsic","name":"unknown"}}],"type":{"type":"intrinsic","name":"unknown"}}]}},"text":{"comment":"

在比较前转换值的函数。Function to transform values before comparison

\n"}}],"type":{"type":"array","elementType":{"type":"intrinsic","name":"unknown"}},"is":{"declaration":false},"location":{"query":"Array.Function.intersectionBy","hash":"intersectionBy"},"text":{"comment":"
Function:

intersectionBy

\n
Description:

在应用转换函数后返回两个数组中存在的元素。Returns elements that exist in both arrays after applying a transformation function

\n
Returns:

包含arr1中具有与arr2匹配的转换值的元素的数组。Array containing elements from arr1 that have matching transformed values in arr2

\n
Throws:

当arr1或arr2不是数组,或fn不是函数时抛出错误。When arr1 or arr2 is not an array, or fn is not a function

\n
Example:
// Basic usage\nintersectionBy([2.1, 1.2], [2.3, 3.4], Math.floor); // -> [2.1]\nintersectionBy(['apple', 'BANANA'], ['banana', 'cherry'], s => s.toLowerCase()); // -> ['BANANA']\n
\n
Example:
// Object comparison\nconst users1 = [{ id: 1, name: 'John' }, { id: 2, name: 'Jane' }];\nconst users2 = [{ id: 1, name: 'Johnny' }, { id: 3, name: 'Bob' }];\nintersectionBy(users1, users2, u => u.id); // -> [{ id: 1, name: 'John' }]\n
\n
Example:
// Edge cases\nintersectionBy([], [1, 2], x => x); // -> []\nintersectionBy([1, 2], [], x => x); // -> []\n
\n"},"sources":[{"fileName":"packages/utils/src/array.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/array.ts","line":608,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/array.ts#L608"}],"parentId":232}],"is":{"declaration":true},"location":{"query":"Array.Function.intersectionBy","hash":""},"text":{},"parentId":154} diff --git a/docs/v1.0.0-beta01/data/Array.Function.intersectionWith.json b/docs/v1.0.0-beta01/data/Array.Function.intersectionWith.json new file mode 100644 index 000000000..a08cfa47f --- /dev/null +++ b/docs/v1.0.0-beta01/data/Array.Function.intersectionWith.json @@ -0,0 +1 @@ +{"id":240,"name":"intersectionWith","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/utils/src/array.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/array.ts","line":635,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/array.ts#L635"}],"signatures":[{"id":241,"name":"intersectionWith","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"intersectionWith"}]},{"tag":"@description","content":[{"kind":"text","text":"使用自定义比较函数返回两个数组中存在的元素。Returns elements that exist in both arrays using a custom comparison function"}]},{"tag":"@returns","content":[{"kind":"text","text":"包含arr1中根据比较函数与arr2中的元素匹配的元素的数组。Array containing elements from arr1 that match elements in arr2 according to the comparison function"}]},{"tag":"@throws","content":[{"kind":"text","text":"当arr1或arr2不是数组,或fn不是函数时抛出错误。When arr1 or arr2 is not an array, or fn is not a function"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Basic usage with custom comparison\nintersectionWith([1, 1.2, 1.5, 3, 0], [1.9, 3, 0], (a, b) => Math.round(a) === Math.round(b)); // -> [1.5, 3, 0]\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Object comparison\nconst arr1 = [{ x: 1, y: 2 }, { x: 2, y: 1 }];\nconst arr2 = [{ x: 1, y: 1 }, { x: 1, y: 2 }];\nintersectionWith(arr1, arr2, (a, b) => a.x === b.x && a.y === b.y); // -> [{ x: 1, y: 2 }]\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// String comparison (case insensitive)\nintersectionWith(['Apple', 'Banana'], ['apple', 'cherry'], (a, b) => a.toLowerCase() === b.toLowerCase()); // -> ['Apple']\n```"}]}]},"parameters":[{"id":242,"name":"arr1","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"第一个数组。First array"}]},"type":{"type":"reference","id":300,"name":"AnyArr"},"text":{"comment":"

第一个数组。First array

\n"}},{"id":243,"name":"arr2","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"第二个数组。Second array"}]},"type":{"type":"reference","id":300,"name":"AnyArr"},"text":{"comment":"

第二个数组。Second array

\n"}},{"id":244,"name":"fn","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"比较两个数组中元素的函数。Function to compare elements from both arrays"}]},"type":{"type":"reflection","declaration":{"id":245,"name":"__type","kind":65536,"kindString":"Type literal","flags":{},"sources":[{"fileName":"packages/utils/src/array.ts","line":638,"character":6,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/array.ts#L638"}],"signatures":[{"id":246,"name":"__type","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":247,"name":"v","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"intrinsic","name":"unknown"}},{"id":248,"name":"k","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"intrinsic","name":"unknown"}}],"type":{"type":"intrinsic","name":"unknown"}}]}},"text":{"comment":"

比较两个数组中元素的函数。Function to compare elements from both arrays

\n"}}],"type":{"type":"array","elementType":{"type":"intrinsic","name":"unknown"}},"is":{"declaration":false},"location":{"query":"Array.Function.intersectionWith","hash":"intersectionWith"},"text":{"comment":"
Function:

intersectionWith

\n
Description:

使用自定义比较函数返回两个数组中存在的元素。Returns elements that exist in both arrays using a custom comparison function

\n
Returns:

包含arr1中根据比较函数与arr2中的元素匹配的元素的数组。Array containing elements from arr1 that match elements in arr2 according to the comparison function

\n
Throws:

当arr1或arr2不是数组,或fn不是函数时抛出错误。When arr1 or arr2 is not an array, or fn is not a function

\n
Example:
// Basic usage with custom comparison\nintersectionWith([1, 1.2, 1.5, 3, 0], [1.9, 3, 0], (a, b) => Math.round(a) === Math.round(b)); // -> [1.5, 3, 0]\n
\n
Example:
// Object comparison\nconst arr1 = [{ x: 1, y: 2 }, { x: 2, y: 1 }];\nconst arr2 = [{ x: 1, y: 1 }, { x: 1, y: 2 }];\nintersectionWith(arr1, arr2, (a, b) => a.x === b.x && a.y === b.y); // -> [{ x: 1, y: 2 }]\n
\n
Example:
// String comparison (case insensitive)\nintersectionWith(['Apple', 'Banana'], ['apple', 'cherry'], (a, b) => a.toLowerCase() === b.toLowerCase()); // -> ['Apple']\n
\n"},"sources":[{"fileName":"packages/utils/src/array.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/array.ts","line":635,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/array.ts#L635"}],"parentId":240}],"is":{"declaration":true},"location":{"query":"Array.Function.intersectionWith","hash":""},"text":{},"parentId":154} diff --git a/docs/v1.0.0-beta01/data/Array.Function.median.json b/docs/v1.0.0-beta01/data/Array.Function.median.json new file mode 100644 index 000000000..6c03305eb --- /dev/null +++ b/docs/v1.0.0-beta01/data/Array.Function.median.json @@ -0,0 +1 @@ +{"id":296,"name":"median","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/utils/src/array.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/array.ts","line":1012,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/array.ts#L1012"}],"signatures":[{"id":297,"name":"median","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"median"}]},{"tag":"@description","content":[{"kind":"text","text":"查找数字数组的中位数值。Finds the median value of a numeric array"}]},{"tag":"@returns","content":[{"kind":"text","text":"中位数值。对于偶数长度的数组,返回两个中间值的平均值。The median value. For even-length arrays, returns the average of the two middle values"}]},{"tag":"@throws","content":[{"kind":"text","text":"当arr不是数组或包含非数字值时抛出错误。When arr is not an array or contains non-numeric values"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Odd length arrays\nmedian([1, 2, 3, 4, 5]); // -> 3\nmedian([7, 2, 10, 9]); // -> 8 (sorted: [2, 7, 9, 10], median of 7 and 9)\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Even length arrays\nmedian([1, 2, 3, 4, 5, 6]); // -> 3.5 (average of 3 and 4)\nmedian([1, 3]); // -> 2 (average of 1 and 3)\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Unsorted arrays\nmedian([1, 2, 10, 2, 20]); // -> 2 (sorted: [1, 2, 2, 10, 20])\nmedian([5, 1, 9, 3]); // -> 4 (sorted: [1, 3, 5, 9], average of 3 and 5)\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Edge cases\nmedian([]); // -> NaN\nmedian([42]); // -> 42\nmedian([1, 1, 1]); // -> 1\n```"}]}]},"parameters":[{"id":298,"name":"arr","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"要查找中位数的数字数组。Array of numbers to find median of"}]},"type":{"type":"reference","id":299,"name":"NumberArr"},"text":{"comment":"

要查找中位数的数字数组。Array of numbers to find median of

\n"}}],"type":{"type":"intrinsic","name":"number"},"is":{"declaration":false},"location":{"query":"Array.Function.median","hash":"median"},"text":{"comment":"
Function:

median

\n
Description:

查找数字数组的中位数值。Finds the median value of a numeric array

\n
Returns:

中位数值。对于偶数长度的数组,返回两个中间值的平均值。The median value. For even-length arrays, returns the average of the two middle values

\n
Throws:

当arr不是数组或包含非数字值时抛出错误。When arr is not an array or contains non-numeric values

\n
Example:
// Odd length arrays\nmedian([1, 2, 3, 4, 5]); // -> 3\nmedian([7, 2, 10, 9]); // -> 8 (sorted: [2, 7, 9, 10], median of 7 and 9)\n
\n
Example:
// Even length arrays\nmedian([1, 2, 3, 4, 5, 6]); // -> 3.5 (average of 3 and 4)\nmedian([1, 3]); // -> 2 (average of 1 and 3)\n
\n
Example:
// Unsorted arrays\nmedian([1, 2, 10, 2, 20]); // -> 2 (sorted: [1, 2, 2, 10, 20])\nmedian([5, 1, 9, 3]); // -> 4 (sorted: [1, 3, 5, 9], average of 3 and 5)\n
\n
Example:
// Edge cases\nmedian([]); // -> NaN\nmedian([42]); // -> 42\nmedian([1, 1, 1]); // -> 1\n
\n"},"sources":[{"fileName":"packages/utils/src/array.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/array.ts","line":1012,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/array.ts#L1012"}],"parentId":296}],"is":{"declaration":true},"location":{"query":"Array.Function.median","hash":""},"text":{},"parentId":154} diff --git a/docs/v1.0.0-beta01/data/Array.Function.negate.json b/docs/v1.0.0-beta01/data/Array.Function.negate.json new file mode 100644 index 000000000..b3a34d0ef --- /dev/null +++ b/docs/v1.0.0-beta01/data/Array.Function.negate.json @@ -0,0 +1 @@ +{"id":249,"name":"negate","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/utils/src/array.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/array.ts","line":668,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/array.ts#L668"}],"signatures":[{"id":250,"name":"negate","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"negate"}]},{"tag":"@description","content":[{"kind":"text","text":"创建一个函数,该函数否定提供的谓词函数的结果。Creates a function that negates the result of the provided predicate function"}]},{"tag":"@returns","content":[{"kind":"text","text":"返回输入函数相反布尔结果的函数。Function that returns the opposite boolean result of the input function"}]},{"tag":"@throws","content":[{"kind":"text","text":"当fn不是函数时抛出错误。When fn is not a function"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Basic usage with array filtering\n[1, 2, 3, 4, 5].filter(negate(n => n % 2 === 0)); // -> [1, 3, 5] (odd numbers)\n[1, 2, 3, 4, 5].filter(negate(n => n % 2 === 1)); // -> [2, 4] (even numbers)\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// String filtering\n['apple', 'banana', 'cherry'].filter(negate(s => s.includes('a'))); // -> ['cherry']\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Object filtering\nconst users = [{ active: true }, { active: false }, { active: true }];\nusers.filter(negate(u => u.active)); // -> [{ active: false }]\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Custom predicate functions\nconst isPositive = n => n > 0;\nconst isNegative = negate(isPositive);\n[-1, 0, 1, 2].filter(isNegative); // -> [-1, 0]\n```"}]}]},"parameters":[{"id":251,"name":"fn","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"要否定的谓词函数。Predicate function to negate"}]},"type":{"type":"reflection","declaration":{"id":252,"name":"__type","kind":65536,"kindString":"Type literal","flags":{},"sources":[{"fileName":"packages/utils/src/array.ts","line":668,"character":27,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/array.ts#L668"}],"signatures":[{"id":253,"name":"__type","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":254,"name":"args","kind":32768,"kindString":"Parameter","flags":{"isRest":true},"type":{"type":"array","elementType":{"type":"intrinsic","name":"unknown"}}}],"type":{"type":"intrinsic","name":"unknown"}}]}},"text":{"comment":"

要否定的谓词函数。Predicate function to negate

\n"}}],"type":{"type":"reflection","declaration":{"id":255,"name":"negate","kind":65536,"kindString":"Type literal","flags":{},"sources":[{"fileName":"packages/utils/src/array.ts","line":669,"character":9,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/array.ts#L669"}],"signatures":[{"id":256,"name":"negate","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":257,"name":"args","kind":32768,"kindString":"Parameter","flags":{"isRest":true},"type":{"type":"array","elementType":{"type":"intrinsic","name":"unknown"}},"text":{}}],"type":{"type":"intrinsic","name":"boolean"},"is":{"declaration":false},"location":{"query":"Array.Function.negate","hash":"negate.__type"},"text":{},"sources":[{"fileName":"packages/utils/src/array.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/array.ts","line":669,"character":9,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/array.ts#L669"}],"parentId":249}],"location":{"query":"Array.Function.negate","hash":"negate"}}},"is":{"declaration":false},"location":{"query":"Array.Function.negate","hash":"negate"},"text":{"comment":"
Function:

negate

\n
Description:

创建一个函数,该函数否定提供的谓词函数的结果。Creates a function that negates the result of the provided predicate function

\n
Returns:

返回输入函数相反布尔结果的函数。Function that returns the opposite boolean result of the input function

\n
Throws:

当fn不是函数时抛出错误。When fn is not a function

\n
Example:
// Basic usage with array filtering\n[1, 2, 3, 4, 5].filter(negate(n => n % 2 === 0)); // -> [1, 3, 5] (odd numbers)\n[1, 2, 3, 4, 5].filter(negate(n => n % 2 === 1)); // -> [2, 4] (even numbers)\n
\n
Example:
// String filtering\n['apple', 'banana', 'cherry'].filter(negate(s => s.includes('a'))); // -> ['cherry']\n
\n
Example:
// Object filtering\nconst users = [{ active: true }, { active: false }, { active: true }];\nusers.filter(negate(u => u.active)); // -> [{ active: false }]\n
\n
Example:
// Custom predicate functions\nconst isPositive = n => n > 0;\nconst isNegative = negate(isPositive);\n[-1, 0, 1, 2].filter(isNegative); // -> [-1, 0]\n
\n"},"sources":[{"fileName":"packages/utils/src/array.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/array.ts","line":668,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/array.ts#L668"}],"parentId":249}],"is":{"declaration":true},"location":{"query":"Array.Function.negate","hash":""},"text":{},"parentId":154} diff --git a/docs/v1.0.0-beta01/data/Array.Function.remove.json b/docs/v1.0.0-beta01/data/Array.Function.remove.json new file mode 100644 index 000000000..d5363deb5 --- /dev/null +++ b/docs/v1.0.0-beta01/data/Array.Function.remove.json @@ -0,0 +1 @@ +{"id":282,"name":"remove","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/utils/src/array.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/array.ts","line":915,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/array.ts#L915"}],"signatures":[{"id":283,"name":"remove","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"remove"}]},{"tag":"@description","content":[{"kind":"text","text":"删除与谓词函数匹配的数组元素并返回已删除的元素。Removes elements from an array that match a predicate function and returns the removed elements"}]},{"tag":"@returns","content":[{"kind":"text","text":"包含已删除元素的数组。Array containing the removed elements"}]},{"tag":"@throws","content":[{"kind":"text","text":"当arr不是数组或fn不是函数时抛出错误。When arr is not an array or fn is not a function"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Basic usage\nconst arr = [1, 2, 3, 4, 5];\nconst removed = remove(arr, v => v % 2 === 0); // -> [2, 4]\nconsole.log(arr); // -> [1, 3, 5] (original array modified)\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// String arrays\nconst fruits = ['apple', 'banana', 'cherry', 'date'];\nconst longNames = remove(fruits, f => f.length > 5); // -> ['banana', 'cherry']\nconsole.log(fruits); // -> ['apple', 'date']\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Object arrays\nconst users = [{ active: true, name: 'John' }, { active: false, name: 'Jane' }];\nconst inactive = remove(users, u => !u.active); // -> [{ active: false, name: 'Jane' }]\nconsole.log(users); // -> [{ active: true, name: 'John' }]\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Edge cases\nconst empty = [];\nremove(empty, x => x > 0); // -> []\n\nconst noMatch = [1, 2, 3];\nremove(noMatch, x => x > 10); // -> []\nconsole.log(noMatch); // -> [1, 2, 3] (unchanged)\n```"}]}]},"typeParameter":[{"id":284,"name":"T","kind":131072,"kindString":"Type parameter","flags":{}}],"parameters":[{"id":285,"name":"arr","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"要从中删除元素的数组(就地修改)。Array to remove elements from (modified in place)"}]},"type":{"type":"array","elementType":{"type":"reference","id":284,"name":"T"}},"text":{"comment":"

要从中删除元素的数组(就地修改)。Array to remove elements from (modified in place)

\n"}},{"id":286,"name":"fn","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"测试元素的谓词函数。Predicate function to test elements"}]},"type":{"type":"reflection","declaration":{"id":287,"name":"__type","kind":65536,"kindString":"Type literal","flags":{},"sources":[{"fileName":"packages/utils/src/array.ts","line":915,"character":40,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/array.ts#L915"}],"signatures":[{"id":288,"name":"__type","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":289,"name":"v","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","id":284,"name":"T"}}],"type":{"type":"intrinsic","name":"boolean"}}]}},"text":{"comment":"

测试元素的谓词函数。Predicate function to test elements

\n"}}],"type":{"type":"array","elementType":{"type":"reference","id":284,"name":"T"}},"is":{"declaration":false},"location":{"query":"Array.Function.remove","hash":"remove"},"text":{"comment":"
Function:

remove

\n
Description:

删除与谓词函数匹配的数组元素并返回已删除的元素。Removes elements from an array that match a predicate function and returns the removed elements

\n
Returns:

包含已删除元素的数组。Array containing the removed elements

\n
Throws:

当arr不是数组或fn不是函数时抛出错误。When arr is not an array or fn is not a function

\n
Example:
// Basic usage\nconst arr = [1, 2, 3, 4, 5];\nconst removed = remove(arr, v => v % 2 === 0); // -> [2, 4]\nconsole.log(arr); // -> [1, 3, 5] (original array modified)\n
\n
Example:
// String arrays\nconst fruits = ['apple', 'banana', 'cherry', 'date'];\nconst longNames = remove(fruits, f => f.length > 5); // -> ['banana', 'cherry']\nconsole.log(fruits); // -> ['apple', 'date']\n
\n
Example:
// Object arrays\nconst users = [{ active: true, name: 'John' }, { active: false, name: 'Jane' }];\nconst inactive = remove(users, u => !u.active); // -> [{ active: false, name: 'Jane' }]\nconsole.log(users); // -> [{ active: true, name: 'John' }]\n
\n
Example:
// Edge cases\nconst empty = [];\nremove(empty, x => x > 0); // -> []\n\nconst noMatch = [1, 2, 3];\nremove(noMatch, x => x > 10); // -> []\nconsole.log(noMatch); // -> [1, 2, 3] (unchanged)\n
\n"},"sources":[{"fileName":"packages/utils/src/array.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/array.ts","line":915,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/array.ts#L915"}],"parentId":282}],"is":{"declaration":true},"location":{"query":"Array.Function.remove","hash":""},"text":{},"parentId":154} diff --git a/docs/v1.0.0-beta01/data/Array.Function.sample.json b/docs/v1.0.0-beta01/data/Array.Function.sample.json new file mode 100644 index 000000000..afe1c1e3f --- /dev/null +++ b/docs/v1.0.0-beta01/data/Array.Function.sample.json @@ -0,0 +1 @@ +{"id":258,"name":"sample","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/utils/src/array.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/array.ts","line":695,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/array.ts#L695"}],"signatures":[{"id":259,"name":"sample","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"sample"}]},{"tag":"@description","content":[{"kind":"text","text":"从数组中返回一个随机元素。Returns a random element from an array"}]},{"tag":"@returns","content":[{"kind":"text","text":"数组中的随机元素,如果数组为空则返回undefined。Random element from the array, or undefined if array is empty"}]},{"tag":"@throws","content":[{"kind":"text","text":"当arr不是数组时抛出错误。When arr is not an array"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Basic usage\nsample([3, 7, 9, 11]); // -> 9 (randomly selected)\nsample(['apple', 'banana', 'cherry']); // -> 'banana' (randomly selected)\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Edge cases\nsample([]); // -> undefined\nsample([42]); // -> 42 (only one element)\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Object arrays\nconst users = [{ name: 'John' }, { name: 'Jane' }, { name: 'Bob' }];\nsample(users); // -> { name: 'Jane' } (randomly selected)\n```"}]}]},"parameters":[{"id":260,"name":"arr","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"要从中采样的数组。Array to sample from"}]},"type":{"type":"reference","id":300,"name":"AnyArr"},"text":{"comment":"

要从中采样的数组。Array to sample from

\n"}}],"type":{"type":"intrinsic","name":"unknown"},"is":{"declaration":false},"location":{"query":"Array.Function.sample","hash":"sample"},"text":{"comment":"
Function:

sample

\n
Description:

从数组中返回一个随机元素。Returns a random element from an array

\n
Returns:

数组中的随机元素,如果数组为空则返回undefined。Random element from the array, or undefined if array is empty

\n
Throws:

当arr不是数组时抛出错误。When arr is not an array

\n
Example:
// Basic usage\nsample([3, 7, 9, 11]); // -> 9 (randomly selected)\nsample(['apple', 'banana', 'cherry']); // -> 'banana' (randomly selected)\n
\n
Example:
// Edge cases\nsample([]); // -> undefined\nsample([42]); // -> 42 (only one element)\n
\n
Example:
// Object arrays\nconst users = [{ name: 'John' }, { name: 'Jane' }, { name: 'Bob' }];\nsample(users); // -> { name: 'Jane' } (randomly selected)\n
\n"},"sources":[{"fileName":"packages/utils/src/array.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/array.ts","line":695,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/array.ts#L695"}],"parentId":258}],"is":{"declaration":true},"location":{"query":"Array.Function.sample","hash":""},"text":{},"parentId":154} diff --git a/docs/v1.0.0-beta01/data/Array.Function.sampleSize.json b/docs/v1.0.0-beta01/data/Array.Function.sampleSize.json new file mode 100644 index 000000000..b70a6ad63 --- /dev/null +++ b/docs/v1.0.0-beta01/data/Array.Function.sampleSize.json @@ -0,0 +1 @@ +{"id":261,"name":"sampleSize","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/utils/src/array.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/array.ts","line":721,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/array.ts#L721"}],"signatures":[{"id":262,"name":"sampleSize","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"sampleSize"}]},{"tag":"@description","content":[{"kind":"text","text":"在不替换的情况下从数组中返回多个随机元素。Returns multiple random elements from an array without replacement"}]},{"tag":"@returns","content":[{"kind":"text","text":"包含随机选择元素的数组。Array containing randomly selected elements"}]},{"tag":"@throws","content":[{"kind":"text","text":"当arr不是数组或num不是数字时抛出错误。When arr is not an array or num is not a number"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Basic usage\nsampleSize([1, 2, 3, 4, 5], 2); // -> [3, 1] (randomly selected)\nsampleSize([1, 2, 3, 4, 5], 3); // -> [5, 2, 4] (randomly selected)\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Edge cases\nsampleSize([], 2); // -> []\nsampleSize([1, 2, 3], 0); // -> []\nsampleSize([1, 2, 3], 5); // -> [2, 1, 3] (returns all elements when num > array length)\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// String arrays\nsampleSize(['a', 'b', 'c', 'd'], 2); // -> ['c', 'a'] (randomly selected)\n```"}]}]},"parameters":[{"id":263,"name":"arr","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"要从中采样的数组(将被复制以避免变异)。Array to sample from (will be copied to avoid mutation)"}]},"type":{"type":"reference","id":300,"name":"AnyArr"},"text":{"comment":"

要从中采样的数组(将被复制以避免变异)。Array to sample from (will be copied to avoid mutation)

\n"}},{"id":264,"name":"num","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"要采样的元素数量(默认:1)。Number of elements to sample (default: 1)"}]},"type":{"type":"intrinsic","name":"number"},"defaultValue":"1","text":{"comment":"

要采样的元素数量(默认:1)。Number of elements to sample (default: 1)

\n"}}],"type":{"type":"array","elementType":{"type":"intrinsic","name":"unknown"}},"is":{"declaration":false},"location":{"query":"Array.Function.sampleSize","hash":"sampleSize"},"text":{"comment":"
Function:

sampleSize

\n
Description:

在不替换的情况下从数组中返回多个随机元素。Returns multiple random elements from an array without replacement

\n
Returns:

包含随机选择元素的数组。Array containing randomly selected elements

\n
Throws:

当arr不是数组或num不是数字时抛出错误。When arr is not an array or num is not a number

\n
Example:
// Basic usage\nsampleSize([1, 2, 3, 4, 5], 2); // -> [3, 1] (randomly selected)\nsampleSize([1, 2, 3, 4, 5], 3); // -> [5, 2, 4] (randomly selected)\n
\n
Example:
// Edge cases\nsampleSize([], 2); // -> []\nsampleSize([1, 2, 3], 0); // -> []\nsampleSize([1, 2, 3], 5); // -> [2, 1, 3] (returns all elements when num > array length)\n
\n
Example:
// String arrays\nsampleSize(['a', 'b', 'c', 'd'], 2); // -> ['c', 'a'] (randomly selected)\n
\n"},"sources":[{"fileName":"packages/utils/src/array.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/array.ts","line":721,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/array.ts#L721"}],"parentId":261}],"is":{"declaration":true},"location":{"query":"Array.Function.sampleSize","hash":""},"text":{},"parentId":154} diff --git a/docs/v1.0.0-beta01/data/Array.Function.shuffle.json b/docs/v1.0.0-beta01/data/Array.Function.shuffle.json new file mode 100644 index 000000000..7948709cb --- /dev/null +++ b/docs/v1.0.0-beta01/data/Array.Function.shuffle.json @@ -0,0 +1 @@ +{"id":265,"name":"shuffle","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/utils/src/array.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/array.ts","line":752,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/array.ts#L752"}],"signatures":[{"id":266,"name":"shuffle","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"shuffle"}]},{"tag":"@description","content":[{"kind":"text","text":"使用Fisher-Yates算法随机打乱数组元素。Randomly shuffles the elements of an array using Fisher-Yates algorithm"}]},{"tag":"@returns","content":[{"kind":"text","text":"元素随机排序的新数组。New array with elements in random order"}]},{"tag":"@throws","content":[{"kind":"text","text":"当arr不是数组时抛出错误。When arr is not an array"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Basic usage\nshuffle([1, 2, 3, 4, 5]); // -> [3, 1, 5, 2, 4] (randomly shuffled)\nshuffle(['a', 'b', 'c']); // -> ['c', 'a', 'b'] (randomly shuffled)\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Edge cases\nshuffle([]); // -> []\nshuffle([42]); // -> [42] (single element)\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Object arrays\nconst cards = [{ suit: 'hearts', value: 'A' }, { suit: 'spades', value: 'K' }];\nshuffle(cards); // -> randomly shuffled array of card objects\n```"}]}]},"parameters":[{"id":267,"name":"arr","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"要打乱的数组(将被复制以避免变异)。Array to shuffle (will be copied to avoid mutation)"}]},"type":{"type":"reference","id":300,"name":"AnyArr"},"text":{"comment":"

要打乱的数组(将被复制以避免变异)。Array to shuffle (will be copied to avoid mutation)

\n"}}],"type":{"type":"array","elementType":{"type":"intrinsic","name":"unknown"}},"is":{"declaration":false},"location":{"query":"Array.Function.shuffle","hash":"shuffle"},"text":{"comment":"
Function:

shuffle

\n
Description:

使用Fisher-Yates算法随机打乱数组元素。Randomly shuffles the elements of an array using Fisher-Yates algorithm

\n
Returns:

元素随机排序的新数组。New array with elements in random order

\n
Throws:

当arr不是数组时抛出错误。When arr is not an array

\n
Example:
// Basic usage\nshuffle([1, 2, 3, 4, 5]); // -> [3, 1, 5, 2, 4] (randomly shuffled)\nshuffle(['a', 'b', 'c']); // -> ['c', 'a', 'b'] (randomly shuffled)\n
\n
Example:
// Edge cases\nshuffle([]); // -> []\nshuffle([42]); // -> [42] (single element)\n
\n
Example:
// Object arrays\nconst cards = [{ suit: 'hearts', value: 'A' }, { suit: 'spades', value: 'K' }];\nshuffle(cards); // -> randomly shuffled array of card objects\n
\n"},"sources":[{"fileName":"packages/utils/src/array.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/array.ts","line":752,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/array.ts#L752"}],"parentId":265}],"is":{"declaration":true},"location":{"query":"Array.Function.shuffle","hash":""},"text":{},"parentId":154} diff --git a/docs/v1.0.0-beta01/data/Array.Function.size.json b/docs/v1.0.0-beta01/data/Array.Function.size.json new file mode 100644 index 000000000..c02545957 --- /dev/null +++ b/docs/v1.0.0-beta01/data/Array.Function.size.json @@ -0,0 +1 @@ +{"id":167,"name":"size","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/utils/src/array.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/array.ts","line":181,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/array.ts#L181"}],"signatures":[{"id":168,"name":"size","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"size"}]},{"tag":"@description","content":[{"kind":"text","text":"获取各种数据类型的大小/长度,包括数组、字符串、Maps、Sets、对象和Blobs。Gets the size/length of various data types including arrays, strings, Maps, Sets, objects, and Blobs"}]},{"tag":"@returns","content":[{"kind":"text","text":"输入值的大小/长度。对于null、undefined或不支持的类型返回0。The size/length of the input value. Returns 0 for null, undefined, or unsupported types"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Array size\nconst arr = [1, 2, 3, 4, 5];\nsize(arr); // -> 5\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// String size (byte length)\nconst str = 'Hello, world!';\nsize(str); // -> 13\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Map and Set size\nconst myMap = new Map([['key1', 'value1'], ['key2', 'value2']]);\nsize(myMap); // -> 2\n\nconst mySet = new Set([1, 2, 3, 4, 5]);\nsize(mySet); // -> 5\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Object property count\nconst obj = { a: 1, b: 2, c: 3 };\nsize(obj); // -> 3\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Blob size\nconst blob = new Blob(['Hello, world!'], { type: 'text/plain' });\nsize(blob); // -> 13\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Edge cases\nsize(null); // -> 0\nsize(undefined); // -> 0\nsize(42); // -> 0\n```"}]}]},"parameters":[{"id":169,"name":"val","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"要获取大小的值(数组、字符串、Map、Set、对象或Blob)。The value to get the size of (array, string, Map, Set, object, or Blob)"}]},"type":{"type":"intrinsic","name":"unknown"},"text":{"comment":"

要获取大小的值(数组、字符串、Map、Set、对象或Blob)。The value to get the size of (array, string, Map, Set, object, or Blob)

\n"}}],"type":{"type":"intrinsic","name":"number"},"is":{"declaration":false},"location":{"query":"Array.Function.size","hash":"size"},"text":{"comment":"
Function:

size

\n
Description:

获取各种数据类型的大小/长度,包括数组、字符串、Maps、Sets、对象和Blobs。Gets the size/length of various data types including arrays, strings, Maps, Sets, objects, and Blobs

\n
Returns:

输入值的大小/长度。对于null、undefined或不支持的类型返回0。The size/length of the input value. Returns 0 for null, undefined, or unsupported types

\n
Example:
// Array size\nconst arr = [1, 2, 3, 4, 5];\nsize(arr); // -> 5\n
\n
Example:
// String size (byte length)\nconst str = 'Hello, world!';\nsize(str); // -> 13\n
\n
Example:
// Map and Set size\nconst myMap = new Map([['key1', 'value1'], ['key2', 'value2']]);\nsize(myMap); // -> 2\n\nconst mySet = new Set([1, 2, 3, 4, 5]);\nsize(mySet); // -> 5\n
\n
Example:
// Object property count\nconst obj = { a: 1, b: 2, c: 3 };\nsize(obj); // -> 3\n
\n
Example:
// Blob size\nconst blob = new Blob(['Hello, world!'], { type: 'text/plain' });\nsize(blob); // -> 13\n
\n
Example:
// Edge cases\nsize(null); // -> 0\nsize(undefined); // -> 0\nsize(42); // -> 0\n
\n"},"sources":[{"fileName":"packages/utils/src/array.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/array.ts","line":181,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/array.ts#L181"}],"parentId":167}],"is":{"declaration":true},"location":{"query":"Array.Function.size","hash":""},"text":{},"parentId":154} diff --git a/docs/v1.0.0-beta01/data/Array.Function.unique.json b/docs/v1.0.0-beta01/data/Array.Function.unique.json new file mode 100644 index 000000000..8ceb468e5 --- /dev/null +++ b/docs/v1.0.0-beta01/data/Array.Function.unique.json @@ -0,0 +1 @@ +{"id":272,"name":"unique","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/utils/src/array.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/array.ts","line":816,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/array.ts#L816"}],"signatures":[{"id":273,"name":"unique","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"unique"}]},{"tag":"@description","content":[{"kind":"text","text":"从数组中删除重复值,仅保留唯一元素。Removes duplicate values from an array, keeping only unique elements"}]},{"tag":"@returns","content":[{"kind":"text","text":"删除重复值的新数组。New array with duplicate values removed"}]},{"tag":"@throws","content":[{"kind":"text","text":"当arr不是数组时抛出错误。When arr is not an array"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Basic usage\nunique([1, 2, 2, 3, 4, 4, 5]); // -> [1, 2, 3, 4, 5]\nunique(['a', 'b', 'a', 'c', 'b']); // -> ['a', 'b', 'c']\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Mixed types\nunique([1, '1', 2, '2', 1]); // -> [1, '1', 2, '2']\nunique([true, false, 1, 0, true]); // -> [true, false, 1, 0]\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Edge cases\nunique([]); // -> []\nunique([1]); // -> [1]\nunique([null, undefined, null, undefined]); // -> [null, undefined]\nunique([NaN, NaN, 1]); // -> [NaN, 1] (NaN is treated as unique)\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Object arrays (by reference)\nconst obj1 = { id: 1 };\nconst obj2 = { id: 2 };\nunique([obj1, obj2, obj1]); // -> [obj1, obj2]\n```"}]}]},"parameters":[{"id":274,"name":"arr","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"要从中删除重复项的数组。Array to remove duplicates from"}]},"type":{"type":"reference","id":300,"name":"AnyArr"},"text":{"comment":"

要从中删除重复项的数组。Array to remove duplicates from

\n"}}],"type":{"type":"array","elementType":{"type":"intrinsic","name":"unknown"}},"is":{"declaration":false},"location":{"query":"Array.Function.unique","hash":"unique"},"text":{"comment":"
Function:

unique

\n
Description:

从数组中删除重复值,仅保留唯一元素。Removes duplicate values from an array, keeping only unique elements

\n
Returns:

删除重复值的新数组。New array with duplicate values removed

\n
Throws:

当arr不是数组时抛出错误。When arr is not an array

\n
Example:
// Basic usage\nunique([1, 2, 2, 3, 4, 4, 5]); // -> [1, 2, 3, 4, 5]\nunique(['a', 'b', 'a', 'c', 'b']); // -> ['a', 'b', 'c']\n
\n
Example:
// Mixed types\nunique([1, '1', 2, '2', 1]); // -> [1, '1', 2, '2']\nunique([true, false, 1, 0, true]); // -> [true, false, 1, 0]\n
\n
Example:
// Edge cases\nunique([]); // -> []\nunique([1]); // -> [1]\nunique([null, undefined, null, undefined]); // -> [null, undefined]\nunique([NaN, NaN, 1]); // -> [NaN, 1] (NaN is treated as unique)\n
\n
Example:
// Object arrays (by reference)\nconst obj1 = { id: 1 };\nconst obj2 = { id: 2 };\nunique([obj1, obj2, obj1]); // -> [obj1, obj2]\n
\n"},"sources":[{"fileName":"packages/utils/src/array.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/array.ts","line":816,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/array.ts#L816"}],"parentId":272}],"is":{"declaration":true},"location":{"query":"Array.Function.unique","hash":""},"text":{},"parentId":154} diff --git a/docs/v1.0.0-beta01/data/Array.TypeAlias.AnyArr.json b/docs/v1.0.0-beta01/data/Array.TypeAlias.AnyArr.json new file mode 100644 index 000000000..9590b1274 --- /dev/null +++ b/docs/v1.0.0-beta01/data/Array.TypeAlias.AnyArr.json @@ -0,0 +1 @@ +{"id":300,"name":"AnyArr","kind":4194304,"kindString":"Type alias","flags":{},"children":[],"sources":[{"fileName":"packages/utils/src/array.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/array.ts","line":12,"character":12,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/array.ts#L12"}],"type":{"type":"array","elementType":{"type":"intrinsic","name":"unknown"}},"is":{"declaration":true},"location":{"query":"Array.TypeAlias.AnyArr","hash":""},"text":{},"parentId":154} diff --git a/docs/v1.0.0-beta01/data/Array.TypeAlias.NumberArr.json b/docs/v1.0.0-beta01/data/Array.TypeAlias.NumberArr.json new file mode 100644 index 000000000..87103032d --- /dev/null +++ b/docs/v1.0.0-beta01/data/Array.TypeAlias.NumberArr.json @@ -0,0 +1 @@ +{"id":299,"name":"NumberArr","kind":4194304,"kindString":"Type alias","flags":{},"children":[],"sources":[{"fileName":"packages/utils/src/array.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/array.ts","line":10,"character":12,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/array.ts#L10"}],"type":{"type":"array","elementType":{"type":"intrinsic","name":"number"}},"is":{"declaration":true},"location":{"query":"Array.TypeAlias.NumberArr","hash":""},"text":{},"parentId":154} diff --git a/docs/v1.0.0-beta01/data/Await-to.Function.to.json b/docs/v1.0.0-beta01/data/Await-to.Function.to.json new file mode 100644 index 000000000..f2729be65 --- /dev/null +++ b/docs/v1.0.0-beta01/data/Await-to.Function.to.json @@ -0,0 +1 @@ +{"id":308,"name":"to","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/utils/src/await-to.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/await-to.ts","line":27,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/await-to.ts#L27"}],"signatures":[{"id":309,"name":"to","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"to"}]},{"tag":"@description","content":[{"kind":"text","text":"将Promise的错误和数据分离。Separates Promise errors and data"}]},{"tag":"@returns","content":[{"kind":"text","text":"返回一个Promise,成功时为[null, data],失败时为[error, undefined]。Returns a Promise that resolves to [null, data] on success or [error, undefined] on failure"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\nconst [err, data] = await to(promise); // some promise instance\nif (err) {\n console.error(err);\n} else {\n console.log(data);\n}\n```"}]}]},"typeParameter":[{"id":310,"name":"T","kind":131072,"kindString":"Type parameter","flags":{}},{"id":311,"name":"U","kind":131072,"kindString":"Type parameter","flags":{},"default":{"type":"reference","name":"Error","qualifiedName":"Error","package":"typescript"}}],"parameters":[{"id":312,"name":"promise","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"Promise实例。The Promise instance"}]},"type":{"type":"reference","typeArguments":[{"type":"reference","id":310,"name":"T"}],"name":"Promise","qualifiedName":"Promise","package":"typescript"},"text":{"comment":"

Promise实例。The Promise instance

\n"}},{"id":313,"name":"errorExt","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"错误扩展对象。Error extension object"}]},"type":{"type":"intrinsic","name":"object"},"text":{"comment":"

错误扩展对象。Error extension object

\n"}}],"type":{"type":"reference","typeArguments":[{"type":"union","types":[{"type":"tuple","elements":[{"type":"reference","id":311,"name":"U"},{"type":"intrinsic","name":"undefined"}]},{"type":"tuple","elements":[{"type":"literal","value":null},{"type":"reference","id":310,"name":"T"}]}]}],"name":"Promise","qualifiedName":"Promise","package":"typescript"},"is":{"declaration":false},"location":{"query":"Await-to.Function.to","hash":"to"},"text":{"comment":"
Function:

to

\n
Description:

将Promise的错误和数据分离。Separates Promise errors and data

\n
Returns:

返回一个Promise,成功时为[null, data],失败时为[error, undefined]。Returns a Promise that resolves to [null, data] on success or [error, undefined] on failure

\n
Example:
const [err, data] = await to(promise); // some promise instance\nif (err) {\n console.error(err);\n} else {\n console.log(data);\n}\n
\n"},"sources":[{"fileName":"packages/utils/src/await-to.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/await-to.ts","line":27,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/await-to.ts#L27"}],"parentId":308}],"is":{"declaration":true},"location":{"query":"Await-to.Function.to","hash":""},"text":{},"parentId":307} diff --git a/docs/v1.0.0-beta01/data/CSS.Function.getElementSize.json b/docs/v1.0.0-beta01/data/CSS.Function.getElementSize.json new file mode 100644 index 000000000..49fa7a11a --- /dev/null +++ b/docs/v1.0.0-beta01/data/CSS.Function.getElementSize.json @@ -0,0 +1 @@ +{"id":909,"name":"getElementSize","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/web-utils/src/css.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/css.ts","line":135,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/css.ts#L135"}],"signatures":[{"id":910,"name":"getElementSize","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"getElementSize"}]},{"tag":"@description","content":[{"kind":"text","text":"获取元素的尺寸数据,如width/height。Gets the computed size data of an element, such as width/height"}]},{"tag":"@returns","content":[{"kind":"text","text":"返回尺寸数值。Returns the size value"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\nconst bodyWidth = getElementStyle(document.querySelector('body'), 'width')\n```"}]}]},"parameters":[{"id":911,"name":"elem","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"DOM元素。The DOM element"}]},"type":{"type":"reference","name":"HTMLElement","qualifiedName":"HTMLElement","package":"typescript"},"text":{"comment":"

DOM元素。The DOM element

\n"}},{"id":912,"name":"property","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"CSS属性。The CSS property"}]},"type":{"type":"intrinsic","name":"string"},"text":{"comment":"

CSS属性。The CSS property

\n"}}],"type":{"type":"intrinsic","name":"number"},"is":{"declaration":false},"location":{"query":"CSS.Function.getElementSize","hash":"getElementSize"},"text":{"comment":"
Function:

getElementSize

\n
Description:

获取元素的尺寸数据,如width/height。Gets the computed size data of an element, such as width/height

\n
Returns:

返回尺寸数值。Returns the size value

\n
Example:
const bodyWidth = getElementStyle(document.querySelector('body'), 'width')\n
\n"},"sources":[{"fileName":"packages/web-utils/src/css.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/css.ts","line":135,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/css.ts#L135"}],"parentId":909}],"is":{"declaration":true},"location":{"query":"CSS.Function.getElementSize","hash":""},"text":{},"parentId":902} diff --git a/docs/v1.0.0-beta01/data/CSS.Function.getPrefix.json b/docs/v1.0.0-beta01/data/CSS.Function.getPrefix.json new file mode 100644 index 000000000..19aeea19d --- /dev/null +++ b/docs/v1.0.0-beta01/data/CSS.Function.getPrefix.json @@ -0,0 +1 @@ +{"id":903,"name":"getPrefix","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/web-utils/src/css.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/css.ts","line":58,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/css.ts#L58"}],"signatures":[{"id":904,"name":"getPrefix","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"getPrefix"}]},{"tag":"@description","content":[{"kind":"text","text":"检测当前浏览器所需的CSS供应商前缀。Detects the CSS vendor prefix required for the current browser"}]},{"tag":"@returns","content":[{"kind":"text","text":"供应商前缀:'webkit'(Chrome/Safari),'o'(Opera),或''(Firefox/标准)。The vendor prefix: 'webkit' (Chrome/Safari), 'o' (Opera), or '' (Firefox/standard)"}]},{"tag":"@example","content":[{"kind":"text","text":"// Apply vendor-prefixed CSS properties\r\nconst prefix = getPrefix();\r\nconst element = document.createElement('div');\r\n\r\n// Set transform with proper prefix\r\nelement.style["},{"kind":"code","text":"`${prefix}Transform`"},{"kind":"text","text":"] = 'translate3d(0, 0, 0)';\r\nelement.style["},{"kind":"code","text":"`${prefix}Transition`"},{"kind":"text","text":"] = 'all 0.3s ease-in-out';"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Cross-browser animation event handling\r\nconst prefix = getPrefix();\r\nconst animationEvents = {\r\n webkit: 'webkitAnimationEnd',\r\n o: 'oAnimationEnd',\r\n '': 'animationend'\r\n};\r\n\r\nelement.addEventListener(animationEvents[prefix], () => {\r\n console.log('Animation completed');\r\n});\n```"}]},{"tag":"@example","content":[{"kind":"text","text":"// Feature detection with fallback\r\nfunction applyModernCSS(element) {\r\n const prefix = getPrefix();\r\n\r\n if (prefix !== null) {\r\n // Modern browser with CSS3 support\r\n element.style["},{"kind":"code","text":"`${prefix}Transform`"},{"kind":"text","text":"] = 'scale(1.1)';\r\n element.style["},{"kind":"code","text":"`${prefix}Filter`"},{"kind":"text","text":"] = 'blur(2px)';\r\n } else {\r\n // Fallback for older browsers\r\n element.style.zoom = '1.1';\r\n element.className += ' blur-fallback';\r\n }\r\n}"}]},{"tag":"@since","content":[{"kind":"text","text":"1.0.0"}]},{"tag":"@see","content":[{"kind":"text","text":" - "},{"kind":"inline-tag","tag":"@link","text":"https://developer.mozilla.org/en-US/docs/Glossary/Vendor_Prefix","target":"https://developer.mozilla.org/en-US/docs/Glossary/Vendor_Prefix"},{"kind":"text","text":" - CSS vendor prefixes"},{"kind":"text","text":"\n"},{"kind":"text","text":" - "},{"kind":"inline-tag","tag":"@link","text":"https://caniuse.com/css-transitions","target":"https://caniuse.com/css-transitions"},{"kind":"text","text":" - CSS transitions browser support"},{"kind":"text","text":"\n"},{"kind":"text","text":" - "},{"kind":"inline-tag","tag":"@link","text":"https://autoprefixer.github.io/","target":"https://autoprefixer.github.io/"},{"kind":"text","text":" - Automated CSS prefixing tool"},{"kind":"text","text":"\n"},{"kind":"text","text":" - "},{"kind":"inline-tag","tag":"@link","text":"https://www.w3.org/WAI/WCAG21/Understanding/animation-from-interactions.html","target":"https://www.w3.org/WAI/WCAG21/Understanding/animation-from-interactions.html"},{"kind":"text","text":" - WCAG: Animation accessibility"},{"kind":"text","text":"\n"}]}]},"type":{"type":"intrinsic","name":"string"},"is":{"declaration":false},"location":{"query":"CSS.Function.getPrefix","hash":"getPrefix"},"text":{"comment":"
Function:

getPrefix

\n
Description:

检测当前浏览器所需的CSS供应商前缀。Detects the CSS vendor prefix required for the current browser

\n
Returns:

供应商前缀:'webkit'(Chrome/Safari),'o'(Opera),或''(Firefox/标准)。The vendor prefix: 'webkit' (Chrome/Safari), 'o' (Opera), or '' (Firefox/standard)

\n
Example:

// Apply vendor-prefixed CSS properties\nconst prefix = getPrefix();\nconst element = document.createElement('div');

\n

// Set transform with proper prefix\nelement.style[${prefix}Transform] = 'translate3d(0, 0, 0)';\nelement.style[${prefix}Transition] = 'all 0.3s ease-in-out';

\n
Example:
// Cross-browser animation event handling\nconst prefix = getPrefix();\nconst animationEvents = {\n  webkit: 'webkitAnimationEnd',\n  o: 'oAnimationEnd',\n  '': 'animationend'\n};\n\nelement.addEventListener(animationEvents[prefix], () => {\n  console.log('Animation completed');\n});\n
\n
Example:

// Feature detection with fallback\nfunction applyModernCSS(element) {\n const prefix = getPrefix();

\n

if (prefix !== null) {\n // Modern browser with CSS3 support\n element.style[${prefix}Transform] = 'scale(1.1)';\n element.style[${prefix}Filter] = 'blur(2px)';\n } else {\n // Fallback for older browsers\n element.style.zoom = '1.1';\n element.className += ' blur-fallback';\n }\n}

\n
Since:

1.0.0

\n
See:
\n"},"sources":[{"fileName":"packages/web-utils/src/css.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/css.ts","line":58,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/css.ts#L58"}],"parentId":903}],"is":{"declaration":true},"location":{"query":"CSS.Function.getPrefix","hash":""},"text":{},"parentId":902} diff --git a/docs/v1.0.0-beta01/data/CSS.Function.getStyle.json b/docs/v1.0.0-beta01/data/CSS.Function.getStyle.json new file mode 100644 index 000000000..95246e23d --- /dev/null +++ b/docs/v1.0.0-beta01/data/CSS.Function.getStyle.json @@ -0,0 +1 @@ +{"id":905,"name":"getStyle","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/web-utils/src/css.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/css.ts","line":117,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/css.ts#L117"}],"signatures":[{"id":906,"name":"getStyle","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"getStyle"}]},{"tag":"@description","content":[{"kind":"text","text":"获取DOM元素特定属性的计算CSS样式值。Gets the computed CSS style value for a specific property of a DOM element"}]},{"tag":"@returns","content":[{"kind":"text","text":"像素中的数值,如果不是像素值则为undefined。The numeric value in pixels, or undefined if not a pixel value"}]},{"tag":"@example","content":[{"kind":"text","text":"// Get element dimensions\r\nconst element = document.getElementById('my-element');\r\nconst width = getStyle(element, 'width');\r\nconst height = getStyle(element, 'height');\r\nconsole.log("},{"kind":"code","text":"`Element size: ${width}x${height}px`"},{"kind":"text","text":");"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Check element positioning\r\nconst sidebar = document.querySelector('.sidebar');\r\nconst leftPosition = getStyle(sidebar, 'left');\r\nconst topPosition = getStyle(sidebar, 'top');\r\n\r\nif (leftPosition < 0) {\r\n // Element is positioned off-screen\r\n sidebar.style.left = '0px';\r\n}\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Responsive design calculations\r\nfunction adjustLayout() {\r\n const container = document.querySelector('.container');\r\n const containerWidth = getStyle(container, 'width');\r\n\r\n if (containerWidth && containerWidth < 768) {\r\n // Apply mobile layout\r\n container.classList.add('mobile-layout');\r\n }\r\n}\n```"}]},{"tag":"@since","content":[{"kind":"text","text":"1.0.0"}]},{"tag":"@see","content":[{"kind":"text","text":" - "},{"kind":"inline-tag","tag":"@link","text":"getElementSize","target":909},{"kind":"text","text":" - Get element size with better cross-browser support"},{"kind":"text","text":"\n"},{"kind":"text","text":" - "},{"kind":"inline-tag","tag":"@link","text":"https://developer.mozilla.org/en-US/docs/Web/API/Window/getComputedStyle","target":"https://developer.mozilla.org/en-US/docs/Web/API/Window/getComputedStyle"},{"kind":"text","text":" - Browser support: IE 9+, all modern browsers"},{"kind":"text","text":"\n"},{"kind":"text","text":" - "},{"kind":"inline-tag","tag":"@link","text":"https://developer.mozilla.org/en-US/docs/Web/API/Element/currentStyle","target":"https://developer.mozilla.org/en-US/docs/Web/API/Element/currentStyle"},{"kind":"text","text":" - IE-specific currentStyle property"},{"kind":"text","text":"\n"}]}]},"parameters":[{"id":907,"name":"elem","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"要获取样式的DOM元素。The DOM element to get styles from"}]},"type":{"type":"intrinsic","name":"any"},"text":{"comment":"

要获取样式的DOM元素。The DOM element to get styles from

\n"}},{"id":908,"name":"property","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"CSS属性名称(例如,'width','height','margin-top')。The CSS property name (e.g., 'width', 'height', 'margin-top')"}]},"type":{"type":"intrinsic","name":"string"},"text":{"comment":"

CSS属性名称(例如,'width','height','margin-top')。The CSS property name (e.g., 'width', 'height', 'margin-top')

\n"}}],"type":{"type":"union","types":[{"type":"intrinsic","name":"undefined"},{"type":"intrinsic","name":"number"}]},"is":{"declaration":false},"location":{"query":"CSS.Function.getStyle","hash":"getStyle"},"text":{"comment":"
Function:

getStyle

\n
Description:

获取DOM元素特定属性的计算CSS样式值。Gets the computed CSS style value for a specific property of a DOM element

\n
Returns:

像素中的数值,如果不是像素值则为undefined。The numeric value in pixels, or undefined if not a pixel value

\n
Example:

// Get element dimensions\nconst element = document.getElementById('my-element');\nconst width = getStyle(element, 'width');\nconst height = getStyle(element, 'height');\nconsole.log(Element size: ${width}x${height}px);

\n
Example:
// Check element positioning\nconst sidebar = document.querySelector('.sidebar');\nconst leftPosition = getStyle(sidebar, 'left');\nconst topPosition = getStyle(sidebar, 'top');\n\nif (leftPosition < 0) {\n  // Element is positioned off-screen\n  sidebar.style.left = '0px';\n}\n
\n
Example:
// Responsive design calculations\nfunction adjustLayout() {\n  const container = document.querySelector('.container');\n  const containerWidth = getStyle(container, 'width');\n\n  if (containerWidth && containerWidth < 768) {\n    // Apply mobile layout\n    container.classList.add('mobile-layout');\n  }\n}\n
\n
Since:

1.0.0

\n
See:
\n"},"sources":[{"fileName":"packages/web-utils/src/css.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/css.ts","line":117,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/css.ts#L117"}],"parentId":905}],"is":{"declaration":true},"location":{"query":"CSS.Function.getStyle","hash":""},"text":{},"parentId":902} diff --git a/docs/v1.0.0-beta01/data/Check.Function.isBankCard.json b/docs/v1.0.0-beta01/data/Check.Function.isBankCard.json new file mode 100644 index 000000000..73dd852de --- /dev/null +++ b/docs/v1.0.0-beta01/data/Check.Function.isBankCard.json @@ -0,0 +1 @@ +{"id":346,"name":"isBankCard","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/utils/src/check.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/check.ts","line":106,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/check.ts#L106"}],"signatures":[{"id":347,"name":"isBankCard","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"isBankCard"}]},{"tag":"@description","content":[{"kind":"text","text":"校验银行卡号。Validates bank card number"}]},{"tag":"@returns","content":[{"kind":"text","text":"是否为银行卡号。Whether it is a valid bank card number"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\nisBankCard('6222600584855931'); // true\r\nisBankCard('023456789012345'); // false\r\nisBankCard('1234567890123456'); // true\r\nisBankCard('12345678901234'); // false\n```"}]}]},"parameters":[{"id":348,"name":"bankCard","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"银行卡号。The bank card number to validate"}]},"type":{"type":"intrinsic","name":"string"},"text":{"comment":"

银行卡号。The bank card number to validate

\n"}}],"type":{"type":"intrinsic","name":"boolean"},"is":{"declaration":false},"location":{"query":"Check.Function.isBankCard","hash":"isBankCard"},"text":{"comment":"
Function:

isBankCard

\n
Description:

校验银行卡号。Validates bank card number

\n
Returns:

是否为银行卡号。Whether it is a valid bank card number

\n
Example:
isBankCard('6222600584855931'); // true\nisBankCard('023456789012345'); // false\nisBankCard('1234567890123456'); // true\nisBankCard('12345678901234'); // false\n
\n"},"sources":[{"fileName":"packages/utils/src/check.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/check.ts","line":106,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/check.ts#L106"}],"parentId":346}],"is":{"declaration":true},"location":{"query":"Check.Function.isBankCard","hash":""},"text":{},"parentId":330} diff --git a/docs/v1.0.0-beta01/data/Check.Function.isEmail.json b/docs/v1.0.0-beta01/data/Check.Function.isEmail.json new file mode 100644 index 000000000..146b3d62c --- /dev/null +++ b/docs/v1.0.0-beta01/data/Check.Function.isEmail.json @@ -0,0 +1 @@ +{"id":331,"name":"isEmail","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/utils/src/check.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/check.ts","line":22,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/check.ts#L22"}],"signatures":[{"id":332,"name":"isEmail","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"isEmail"}]},{"tag":"@description","content":[{"kind":"text","text":"验证电子邮件地址的格式。Validates email address format"}]},{"tag":"@returns","content":[{"kind":"text","text":"是否为电子邮件地址。Whether it is a valid email address"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\nisEmail('example@domain.com'); // true\r\nisEmail('example@'); // false\r\nisEmail('example@domain'); // false\r\nisEmail('example@domain.'); // false\r\nisEmail('example@domain..com'); // false\n```"}]}]},"parameters":[{"id":333,"name":"str","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"电子邮件地址。The email address to validate"}]},"type":{"type":"intrinsic","name":"string"},"text":{"comment":"

电子邮件地址。The email address to validate

\n"}}],"type":{"type":"intrinsic","name":"boolean"},"is":{"declaration":false},"location":{"query":"Check.Function.isEmail","hash":"isEmail"},"text":{"comment":"
Function:

isEmail

\n
Description:

验证电子邮件地址的格式。Validates email address format

\n
Returns:

是否为电子邮件地址。Whether it is a valid email address

\n
Example:
isEmail('example@domain.com'); // true\nisEmail('example@');  // false\nisEmail('example@domain'); // false\nisEmail('example@domain.'); // false\nisEmail('example@domain..com'); // false\n
\n"},"sources":[{"fileName":"packages/utils/src/check.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/check.ts","line":22,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/check.ts#L22"}],"parentId":331}],"is":{"declaration":true},"location":{"query":"Check.Function.isEmail","hash":""},"text":{},"parentId":330} diff --git a/docs/v1.0.0-beta01/data/Check.Function.isIdCard.json b/docs/v1.0.0-beta01/data/Check.Function.isIdCard.json new file mode 100644 index 000000000..f5799c236 --- /dev/null +++ b/docs/v1.0.0-beta01/data/Check.Function.isIdCard.json @@ -0,0 +1 @@ +{"id":334,"name":"isIdCard","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/utils/src/check.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/check.ts","line":39,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/check.ts#L39"}],"signatures":[{"id":335,"name":"isIdCard","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"isIdCard"}]},{"tag":"@description","content":[{"kind":"text","text":"中国大陆身份证验证。简单验证,如仔细验证可用check.plus.ts/checkIdcard()。Chinese mainland ID card validation. Simple validation, use check.plus.ts/checkIdcard() for detailed validation"}]},{"tag":"@returns","content":[{"kind":"text","text":"是否为身份证号码。Whether it is a valid ID card number"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\nisIdCard('610527199201015209'); // true\r\nisIdCard('11010519491231002X'); // true\r\nisIdCard('1101051949123100'); // false\r\nisIdCard('11010519490231123X'); // false\r\nisIdCard('11010519491231002A'); // false\r\nisIdCard('123456789012345'); // false\n```"}]}]},"parameters":[{"id":336,"name":"str","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"身份证号码。The ID card number to validate"}]},"type":{"type":"intrinsic","name":"string"},"text":{"comment":"

身份证号码。The ID card number to validate

\n"}}],"type":{"type":"intrinsic","name":"boolean"},"is":{"declaration":false},"location":{"query":"Check.Function.isIdCard","hash":"isIdCard"},"text":{"comment":"
Function:

isIdCard

\n
Description:

中国大陆身份证验证。简单验证,如仔细验证可用check.plus.ts/checkIdcard()。Chinese mainland ID card validation. Simple validation, use check.plus.ts/checkIdcard() for detailed validation

\n
Returns:

是否为身份证号码。Whether it is a valid ID card number

\n
Example:
isIdCard('610527199201015209'); // true\nisIdCard('11010519491231002X'); // true\nisIdCard('1101051949123100'); // false\nisIdCard('11010519490231123X'); // false\nisIdCard('11010519491231002A'); // false\nisIdCard('123456789012345'); // false\n
\n"},"sources":[{"fileName":"packages/utils/src/check.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/check.ts","line":39,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/check.ts#L39"}],"parentId":334}],"is":{"declaration":true},"location":{"query":"Check.Function.isIdCard","hash":""},"text":{},"parentId":330} diff --git a/docs/v1.0.0-beta01/data/Check.Function.isPhoneNumber.json b/docs/v1.0.0-beta01/data/Check.Function.isPhoneNumber.json new file mode 100644 index 000000000..65111e408 --- /dev/null +++ b/docs/v1.0.0-beta01/data/Check.Function.isPhoneNumber.json @@ -0,0 +1 @@ +{"id":340,"name":"isPhoneNumber","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/utils/src/check.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/check.ts","line":76,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/check.ts#L76"}],"signatures":[{"id":341,"name":"isPhoneNumber","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"isPhoneNumber"}]},{"tag":"@description","content":[{"kind":"text","text":"中国大陆手机号验证。(如果要国际通用请用三方库或/^\\+?\\d+$/)。Chinese mainland phone number validation. Use third-party library or /^\\+?\\d+$/ for international use"}]},{"tag":"@returns","content":[{"kind":"text","text":"是否为手机号码。Whether it is a valid phone number"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\nisPhoneNumber('08613812345678'); // true\r\nisPhoneNumber('8613812345678'); // true\r\nisPhoneNumber('013812345678'); // true\r\nisPhoneNumber('13812345678'); // true\r\nisPhoneNumber('008613812345678'); // true\r\nisPhoneNumber('086138123456789'); //false\r\nisPhoneNumber('86-13812345678'); // false\r\nisPhoneNumber('13812345'); //false\n```"}]}]},"parameters":[{"id":342,"name":"str","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"手机号码。The phone number to validate"}]},"type":{"type":"intrinsic","name":"string"},"text":{"comment":"

手机号码。The phone number to validate

\n"}}],"type":{"type":"intrinsic","name":"boolean"},"is":{"declaration":false},"location":{"query":"Check.Function.isPhoneNumber","hash":"isPhoneNumber"},"text":{"comment":"
Function:

isPhoneNumber

\n
Description:

中国大陆手机号验证。(如果要国际通用请用三方库或/^+?\\d+$/)。Chinese mainland phone number validation. Use third-party library or /^+?\\d+$/ for international use

\n
Returns:

是否为手机号码。Whether it is a valid phone number

\n
Example:
isPhoneNumber('08613812345678'); // true\nisPhoneNumber('8613812345678'); // true\nisPhoneNumber('013812345678'); // true\nisPhoneNumber('13812345678'); // true\nisPhoneNumber('008613812345678'); // true\nisPhoneNumber('086138123456789'); //false\nisPhoneNumber('86-13812345678'); // false\nisPhoneNumber('13812345'); //false\n
\n"},"sources":[{"fileName":"packages/utils/src/check.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/check.ts","line":76,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/check.ts#L76"}],"parentId":340}],"is":{"declaration":true},"location":{"query":"Check.Function.isPhoneNumber","hash":""},"text":{},"parentId":330} diff --git a/docs/v1.0.0-beta01/data/Check.Function.isPostalCode.json b/docs/v1.0.0-beta01/data/Check.Function.isPostalCode.json new file mode 100644 index 000000000..2375700ec --- /dev/null +++ b/docs/v1.0.0-beta01/data/Check.Function.isPostalCode.json @@ -0,0 +1 @@ +{"id":343,"name":"isPostalCode","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/utils/src/check.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/check.ts","line":91,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/check.ts#L91"}],"signatures":[{"id":344,"name":"isPostalCode","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"isPostalCode"}]},{"tag":"@description","content":[{"kind":"text","text":"校验(中国)邮政编码。Validates Chinese postal code"}]},{"tag":"@returns","content":[{"kind":"text","text":"是否为邮政编码。Whether it is a valid postal code"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\nisPostalCode('311100'); // true\r\nisPostalCode('31110'); // false\r\nisPostalCode('3111000'); // false\r\nisPostalCode('031110'); // false\n```"}]}]},"parameters":[{"id":345,"name":"postalCode","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"邮政编码。The postal code to validate"}]},"type":{"type":"intrinsic","name":"string"},"text":{"comment":"

邮政编码。The postal code to validate

\n"}}],"type":{"type":"intrinsic","name":"boolean"},"is":{"declaration":false},"location":{"query":"Check.Function.isPostalCode","hash":"isPostalCode"},"text":{"comment":"
Function:

isPostalCode

\n
Description:

校验(中国)邮政编码。Validates Chinese postal code

\n
Returns:

是否为邮政编码。Whether it is a valid postal code

\n
Example:
isPostalCode('311100'); // true\nisPostalCode('31110'); // false\nisPostalCode('3111000'); // false\nisPostalCode('031110'); // false\n
\n"},"sources":[{"fileName":"packages/utils/src/check.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/check.ts","line":91,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/check.ts#L91"}],"parentId":343}],"is":{"declaration":true},"location":{"query":"Check.Function.isPostalCode","hash":""},"text":{},"parentId":330} diff --git a/docs/v1.0.0-beta01/data/Check.Function.isUrl.json b/docs/v1.0.0-beta01/data/Check.Function.isUrl.json new file mode 100644 index 000000000..468d36c41 --- /dev/null +++ b/docs/v1.0.0-beta01/data/Check.Function.isUrl.json @@ -0,0 +1 @@ +{"id":337,"name":"isUrl","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/utils/src/check.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/check.ts","line":57,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/check.ts#L57"}],"signatures":[{"id":338,"name":"isUrl","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"isUrl"}]},{"tag":"@description","content":[{"kind":"text","text":"检查是否能够正确地验证 URL 的格式。Validates URL format"}]},{"tag":"@returns","content":[{"kind":"text","text":"是否为url地址。Whether it is a valid URL"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\nisUrl('https://www.example.com'); // true\r\nisUrl('https://subdomain.example.com/path/page.html?query=string'); // true\r\nisUrl('ftp://ftp.example.com'); // true\r\nisUrl('example.com'); // true\r\nisUrl('http://example'); // false\n```"}]}]},"parameters":[{"id":339,"name":"str","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"url地址。The URL to validate"}]},"type":{"type":"intrinsic","name":"string"},"text":{"comment":"

url地址。The URL to validate

\n"}}],"type":{"type":"intrinsic","name":"boolean"},"is":{"declaration":false},"location":{"query":"Check.Function.isUrl","hash":"isUrl"},"text":{"comment":"
Function:

isUrl

\n
Description:

检查是否能够正确地验证 URL 的格式。Validates URL format

\n
Returns:

是否为url地址。Whether it is a valid URL

\n
Example:
isUrl('https://www.example.com');  // true\nisUrl('https://subdomain.example.com/path/page.html?query=string'); // true\nisUrl('ftp://ftp.example.com'); // true\nisUrl('example.com'); // true\nisUrl('http://example'); // false\n
\n"},"sources":[{"fileName":"packages/utils/src/check.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/check.ts","line":57,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/check.ts#L57"}],"parentId":337}],"is":{"declaration":true},"location":{"query":"Check.Function.isUrl","hash":""},"text":{},"parentId":330} diff --git a/docs/v1.0.0-beta01/data/Check.Module.plus.json b/docs/v1.0.0-beta01/data/Check.Module.plus.json new file mode 100644 index 000000000..c7aa46db3 --- /dev/null +++ b/docs/v1.0.0-beta01/data/Check.Module.plus.json @@ -0,0 +1 @@ +{"id":315,"name":"Check.plus","kind":2,"kindString":"Module","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@description","content":[{"kind":"text","text":"check password functions"}]},{"tag":"@Date","content":[{"kind":"text","text":"2020-04-11 21:55:46"}]},{"tag":"@LastEditTime","content":[{"kind":"text","text":"2025-06-15 19:27:39"}]}]},"originalName":"utils/src/check.plus","children":[],"groups":[{"title":"Functions","children":[326,322,319,316]}],"sources":[{"fileName":"packages/utils/src/check.plus.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/check.plus.ts","line":23,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/check.plus.ts#L23"}],"is":{"declaration":true},"location":{"query":"Check.Module.plus","hash":""},"text":{"comment":"
Description:

check password functions

\n
Date:

2020-04-11 21:55:46

\n
Lastedittime:

2025-06-15 19:27:39

\n"}} diff --git a/docs/v1.0.0-beta01/data/Check.plus.Function.checkIdcard.json b/docs/v1.0.0-beta01/data/Check.plus.Function.checkIdcard.json new file mode 100644 index 000000000..4c0b9bc1d --- /dev/null +++ b/docs/v1.0.0-beta01/data/Check.plus.Function.checkIdcard.json @@ -0,0 +1 @@ +{"id":326,"name":"checkIdcard","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/utils/src/check.plus.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/check.plus.ts","line":288,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/check.plus.ts#L288"}],"signatures":[{"id":327,"name":"checkIdcard","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"checkIdcard"}]},{"tag":"@description","content":[{"kind":"text","text":"身份证正确性校验。ID card validation"}]},{"tag":"@returns","content":[{"kind":"text","text":"身份证验证结果。ID card validation result"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\ncheckIdcard('11010519491231002X'); // '身份证验证通过'\ncheckIdcard('11010519491231002'); // '请填写正确的身份证号码'\ncheckIdcard('11010519491231002X', {\n success: '身份证验证通过',\n fail: '请填写正确的身份证号码',\n not18: '未满18岁暂不支持开户',\n});\n```"}]}]},"parameters":[{"id":328,"name":"idcard","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"身份证号码。The ID card number to validate"}]},"type":{"type":"intrinsic","name":"string"},"text":{"comment":"

身份证号码。The ID card number to validate

\n"}},{"id":329,"name":"TipEnum","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"提示信息。Tip messages for validation results"}]},"type":{"type":"query","queryType":{"type":"reference","name":"DefaultIdcardTips"}},"defaultValue":"DefaultIdcardTips","text":{"comment":"

提示信息。Tip messages for validation results

\n"}}],"type":{"type":"reference","name":"DefaultIdcardTips"},"is":{"declaration":false},"location":{"query":"Check.plus.Function.checkIdcard","hash":"checkIdcard"},"text":{"comment":"
Function:

checkIdcard

\n
Description:

身份证正确性校验。ID card validation

\n
Returns:

身份证验证结果。ID card validation result

\n
Example:
checkIdcard('11010519491231002X'); // '身份证验证通过'\ncheckIdcard('11010519491231002'); // '请填写正确的身份证号码'\ncheckIdcard('11010519491231002X', {\n  success: '身份证验证通过',\n  fail: '请填写正确的身份证号码',\n  not18: '未满18岁暂不支持开户',\n});\n
\n"},"sources":[{"fileName":"packages/utils/src/check.plus.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/check.plus.ts","line":288,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/check.plus.ts#L288"}],"parentId":326}],"is":{"declaration":true},"location":{"query":"Check.plus.Function.checkIdcard","hash":""},"text":{},"parentId":315} diff --git a/docs/v1.0.0-beta01/data/Check.plus.Function.checkPwdStrength.json b/docs/v1.0.0-beta01/data/Check.plus.Function.checkPwdStrength.json new file mode 100644 index 000000000..ebc76e7f8 --- /dev/null +++ b/docs/v1.0.0-beta01/data/Check.plus.Function.checkPwdStrength.json @@ -0,0 +1 @@ +{"id":322,"name":"checkPwdStrength","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/utils/src/check.plus.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/check.plus.ts","line":82,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/check.plus.ts#L82"}],"signatures":[{"id":323,"name":"checkPwdStrength","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"checkPwdStrength"}]},{"tag":"@description","content":[{"kind":"text","text":"检验密码强度(数字+字母+符号)。Validates password strength (numbers + letters + symbols)"}]},{"tag":"@returns","content":[{"kind":"text","text":"密码强度类型或提示信息。Password strength type or tip message"}]}]},"parameters":[{"id":324,"name":"pwd","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"待检查的密码。The password to check"}]},"type":{"type":"intrinsic","name":"string"},"text":{"comment":"

待检查的密码。The password to check

\n"}},{"id":325,"name":"tips","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"自定义密码强度提示信息。Custom password strength tip messages"}]},"type":{"type":"reference","name":"PwdStrengthTips"},"defaultValue":"DEFAULT_PWD_STRENGTH_TIPS","text":{"comment":"

自定义密码强度提示信息。Custom password strength tip messages

\n"}}],"type":{"type":"union","types":[{"type":"reference","name":"PwdStrengthTypes"},{"type":"intrinsic","name":"string"}]},"is":{"declaration":false},"location":{"query":"Check.plus.Function.checkPwdStrength","hash":"checkPwdStrength"},"text":{"comment":"
Function:

checkPwdStrength

\n
Description:

检验密码强度(数字+字母+符号)。Validates password strength (numbers + letters + symbols)

\n
Returns:

密码强度类型或提示信息。Password strength type or tip message

\n"},"sources":[{"fileName":"packages/utils/src/check.plus.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/check.plus.ts","line":82,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/check.plus.ts#L82"}],"parentId":322}],"is":{"declaration":true},"location":{"query":"Check.plus.Function.checkPwdStrength","hash":""},"text":{},"parentId":315} diff --git a/docs/v1.0.0-beta01/data/Check.plus.Function.validateLicensePlate.json b/docs/v1.0.0-beta01/data/Check.plus.Function.validateLicensePlate.json new file mode 100644 index 000000000..d051d397d --- /dev/null +++ b/docs/v1.0.0-beta01/data/Check.plus.Function.validateLicensePlate.json @@ -0,0 +1 @@ +{"id":319,"name":"validateLicensePlate","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/utils/src/check.plus.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/check.plus.ts","line":40,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/check.plus.ts#L40"}],"signatures":[{"id":320,"name":"validateLicensePlate","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"validateLicensePlate"}]},{"tag":"@description","content":[{"kind":"text","text":"(中国)车牌号校验。Chinese license plate validation"}]},{"tag":"@returns","content":[{"kind":"text","text":"是否为车牌号。Whether it is a valid license plate number"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\nvalidateLicensePlate('A12345X'); // true\nvalidateLicensePlate('京A12345'); // true\nvalidateLicensePlate('A12345'); // false\nvalidateLicensePlate('浙123456'); // false\n```"}]}]},"parameters":[{"id":321,"name":"licensePlate","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"车牌号。The license plate number to validate"}]},"type":{"type":"intrinsic","name":"string"},"text":{"comment":"

车牌号。The license plate number to validate

\n"}}],"type":{"type":"intrinsic","name":"boolean"},"is":{"declaration":false},"location":{"query":"Check.plus.Function.validateLicensePlate","hash":"validateLicensePlate"},"text":{"comment":"
Function:

validateLicensePlate

\n
Description:

(中国)车牌号校验。Chinese license plate validation

\n
Returns:

是否为车牌号。Whether it is a valid license plate number

\n
Example:
validateLicensePlate('A12345X'); // true\nvalidateLicensePlate('京A12345'); // true\nvalidateLicensePlate('A12345'); // false\nvalidateLicensePlate('浙123456'); // false\n
\n"},"sources":[{"fileName":"packages/utils/src/check.plus.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/check.plus.ts","line":40,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/check.plus.ts#L40"}],"parentId":319}],"is":{"declaration":true},"location":{"query":"Check.plus.Function.validateLicensePlate","hash":""},"text":{},"parentId":315} diff --git a/docs/v1.0.0-beta01/data/Check.plus.Function.validatePassport.json b/docs/v1.0.0-beta01/data/Check.plus.Function.validatePassport.json new file mode 100644 index 000000000..87353f1d5 --- /dev/null +++ b/docs/v1.0.0-beta01/data/Check.plus.Function.validatePassport.json @@ -0,0 +1 @@ +{"id":316,"name":"validatePassport","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/utils/src/check.plus.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/check.plus.ts","line":23,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/check.plus.ts#L23"}],"signatures":[{"id":317,"name":"validatePassport","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"validatePassport"}]},{"tag":"@description","content":[{"kind":"text","text":"(中国)护照号码校验。Chinese passport number validation"}]},{"tag":"@returns","content":[{"kind":"text","text":"是否为护照号码。Whether it is a valid passport number"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\nvalidatePassport('G12345678'); // false\nvalidatePassport('D012345678'); // true\nvalidatePassport('140123456'); // true\nvalidatePassport('A12345678'); // false\nvalidatePassport('111234567'); // false\nvalidatePassport('G1234567'); // false\nvalidatePassport('G1234567A'); // false\n```"}]}]},"parameters":[{"id":318,"name":"passport","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"护照号码。The passport number to validate"}]},"type":{"type":"intrinsic","name":"string"},"text":{"comment":"

护照号码。The passport number to validate

\n"}}],"type":{"type":"intrinsic","name":"boolean"},"is":{"declaration":false},"location":{"query":"Check.plus.Function.validatePassport","hash":"validatePassport"},"text":{"comment":"
Function:

validatePassport

\n
Description:

(中国)护照号码校验。Chinese passport number validation

\n
Returns:

是否为护照号码。Whether it is a valid passport number

\n
Example:
validatePassport('G12345678'); // false\nvalidatePassport('D012345678'); // true\nvalidatePassport('140123456'); // true\nvalidatePassport('A12345678'); // false\nvalidatePassport('111234567'); // false\nvalidatePassport('G1234567'); // false\nvalidatePassport('G1234567A'); // false\n
\n"},"sources":[{"fileName":"packages/utils/src/check.plus.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/check.plus.ts","line":23,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/check.plus.ts#L23"}],"parentId":316}],"is":{"declaration":true},"location":{"query":"Check.plus.Function.validatePassport","hash":""},"text":{},"parentId":315} diff --git a/docs/v1.0.0-beta01/data/Collection.Function.cartesianProduct.json b/docs/v1.0.0-beta01/data/Collection.Function.cartesianProduct.json new file mode 100644 index 000000000..99e8c780e --- /dev/null +++ b/docs/v1.0.0-beta01/data/Collection.Function.cartesianProduct.json @@ -0,0 +1 @@ +{"id":380,"name":"cartesianProduct","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/utils/src/collection.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/collection.ts","line":172,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/collection.ts#L172"}],"signatures":[{"id":381,"name":"cartesianProduct","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"cartesianProduct"}]},{"tag":"@description","content":[{"kind":"text","text":"计算多个数组的笛卡尔积。Computes the Cartesian product of multiple arrays"}]},{"tag":"@returns","content":[{"kind":"text","text":"笛卡尔积结果。Cartesian product result"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Generate all combinations\nconst colors = ['red', 'blue'];\nconst sizes = ['S', 'M', 'L'];\ncartesianProduct(colors, sizes);\n// -> [['red', 'S'], ['red', 'M'], ['red', 'L'], ['blue', 'S'], ['blue', 'M'], ['blue', 'L']]\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Generate test cases\nconst browsers = ['Chrome', 'Firefox'];\nconst os = ['Windows', 'Mac'];\nconst versions = ['v1', 'v2'];\ncartesianProduct(browsers, os, versions);\n// -> All combinations of browser, OS, and version\n```"}]}]},"parameters":[{"id":382,"name":"arrays","kind":32768,"kindString":"Parameter","flags":{"isRest":true},"comment":{"summary":[{"kind":"text","text":"输入数组。Input arrays"}]},"type":{"type":"array","elementType":{"type":"array","elementType":{"type":"intrinsic","name":"any"}}},"text":{"comment":"

输入数组。Input arrays

\n"}}],"type":{"type":"array","elementType":{"type":"array","elementType":{"type":"intrinsic","name":"any"}}},"is":{"declaration":false},"location":{"query":"Collection.Function.cartesianProduct","hash":"cartesianProduct"},"text":{"comment":"
Function:

cartesianProduct

\n
Description:

计算多个数组的笛卡尔积。Computes the Cartesian product of multiple arrays

\n
Returns:

笛卡尔积结果。Cartesian product result

\n
Example:
// Generate all combinations\nconst colors = ['red', 'blue'];\nconst sizes = ['S', 'M', 'L'];\ncartesianProduct(colors, sizes);\n// -> [['red', 'S'], ['red', 'M'], ['red', 'L'], ['blue', 'S'], ['blue', 'M'], ['blue', 'L']]\n
\n
Example:
// Generate test cases\nconst browsers = ['Chrome', 'Firefox'];\nconst os = ['Windows', 'Mac'];\nconst versions = ['v1', 'v2'];\ncartesianProduct(browsers, os, versions);\n// -> All combinations of browser, OS, and version\n
\n"},"sources":[{"fileName":"packages/utils/src/collection.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/collection.ts","line":172,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/collection.ts#L172"}],"parentId":380}],"is":{"declaration":true},"location":{"query":"Collection.Function.cartesianProduct","hash":""},"text":{},"parentId":349} diff --git a/docs/v1.0.0-beta01/data/Collection.Function.groupBy.json b/docs/v1.0.0-beta01/data/Collection.Function.groupBy.json new file mode 100644 index 000000000..0a268f2fd --- /dev/null +++ b/docs/v1.0.0-beta01/data/Collection.Function.groupBy.json @@ -0,0 +1 @@ +{"id":350,"name":"groupBy","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/utils/src/collection.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/collection.ts","line":35,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/collection.ts#L35"}],"signatures":[{"id":351,"name":"groupBy","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"groupBy"}]},{"tag":"@description","content":[{"kind":"text","text":"根据提供的函数对数组元素进行分组。Groups array elements by a provided function"}]},{"tag":"@returns","content":[{"kind":"text","text":"包含分组元素的对象。Object containing grouped elements"}]},{"tag":"@throws","content":[{"kind":"text","text":"当arr不是数组或fn不是函数时。When arr is not an array or fn is not a function"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Group by property\nconst users = [\n { name: 'John', age: 25 },\n { name: 'Jane', age: 25 },\n { name: 'Bob', age: 30 }\n];\ngroupBy(users, u => u.age); // -> { '25': [{...}, {...}], '30': [{...}] }\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Group by first letter\nconst words = ['apple', 'banana', 'apricot', 'blueberry'];\ngroupBy(words, w => w[0]); // -> { a: ['apple', 'apricot'], b: ['banana', 'blueberry'] }\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Group numbers by even/odd\nconst numbers = [1, 2, 3, 4, 5, 6];\ngroupBy(numbers, n => n % 2 === 0 ? 'even' : 'odd'); // -> { odd: [1, 3, 5], even: [2, 4, 6] }\n```"}]}]},"typeParameter":[{"id":352,"name":"T","kind":131072,"kindString":"Type parameter","flags":{}}],"parameters":[{"id":353,"name":"arr","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"要分组的数组。Array to group"}]},"type":{"type":"array","elementType":{"type":"reference","id":352,"name":"T"}},"text":{"comment":"

要分组的数组。Array to group

\n"}},{"id":354,"name":"fn","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"生成分组键的函数。Function to generate grouping keys"}]},"type":{"type":"reflection","declaration":{"id":355,"name":"__type","kind":65536,"kindString":"Type literal","flags":{},"sources":[{"fileName":"packages/utils/src/collection.ts","line":35,"character":41,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/collection.ts#L35"}],"signatures":[{"id":356,"name":"__type","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":357,"name":"item","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","id":352,"name":"T"}}],"type":{"type":"union","types":[{"type":"intrinsic","name":"string"},{"type":"intrinsic","name":"number"}]}}]}},"text":{"comment":"

生成分组键的函数。Function to generate grouping keys

\n"}}],"type":{"type":"reference","typeArguments":[{"type":"intrinsic","name":"string"},{"type":"array","elementType":{"type":"reference","id":352,"name":"T"}}],"name":"Record","qualifiedName":"Record","package":"typescript"},"is":{"declaration":false},"location":{"query":"Collection.Function.groupBy","hash":"groupBy"},"text":{"comment":"
Function:

groupBy

\n
Description:

根据提供的函数对数组元素进行分组。Groups array elements by a provided function

\n
Returns:

包含分组元素的对象。Object containing grouped elements

\n
Throws:

当arr不是数组或fn不是函数时。When arr is not an array or fn is not a function

\n
Example:
// Group by property\nconst users = [\n  { name: 'John', age: 25 },\n  { name: 'Jane', age: 25 },\n  { name: 'Bob', age: 30 }\n];\ngroupBy(users, u => u.age); // -> { '25': [{...}, {...}], '30': [{...}] }\n
\n
Example:
// Group by first letter\nconst words = ['apple', 'banana', 'apricot', 'blueberry'];\ngroupBy(words, w => w[0]); // -> { a: ['apple', 'apricot'], b: ['banana', 'blueberry'] }\n
\n
Example:
// Group numbers by even/odd\nconst numbers = [1, 2, 3, 4, 5, 6];\ngroupBy(numbers, n => n % 2 === 0 ? 'even' : 'odd'); // -> { odd: [1, 3, 5], even: [2, 4, 6] }\n
\n"},"sources":[{"fileName":"packages/utils/src/collection.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/collection.ts","line":35,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/collection.ts#L35"}],"parentId":350}],"is":{"declaration":true},"location":{"query":"Collection.Function.groupBy","hash":""},"text":{},"parentId":349} diff --git a/docs/v1.0.0-beta01/data/Collection.Function.mergeSorted.json b/docs/v1.0.0-beta01/data/Collection.Function.mergeSorted.json new file mode 100644 index 000000000..817ad7338 --- /dev/null +++ b/docs/v1.0.0-beta01/data/Collection.Function.mergeSorted.json @@ -0,0 +1 @@ +{"id":383,"name":"mergeSorted","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/utils/src/collection.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/collection.ts","line":200,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/collection.ts#L200"}],"signatures":[{"id":384,"name":"mergeSorted","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"mergeSorted"}]},{"tag":"@description","content":[{"kind":"text","text":"合并多个已排序数组为一个已排序数组。Merges multiple sorted arrays into one sorted array"}]},{"tag":"@returns","content":[{"kind":"text","text":"合并后的已排序数组。Merged sorted array"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Merge sorted number arrays\nmergeSorted([1, 3, 5], [2, 4, 6]); // -> [1, 2, 3, 4, 5, 6]\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Merge multiple arrays\nmergeSorted([1, 5, 9], [2, 6], [3, 7, 8]); // -> [1, 2, 3, 5, 6, 7, 8, 9]\n```"}]}]},"typeParameter":[{"id":385,"name":"T","kind":131072,"kindString":"Type parameter","flags":{}}],"parameters":[{"id":386,"name":"arrays","kind":32768,"kindString":"Parameter","flags":{"isRest":true},"comment":{"summary":[{"kind":"text","text":"已排序的数组。Sorted arrays"}]},"type":{"type":"array","elementType":{"type":"array","elementType":{"type":"reference","id":385,"name":"T"}}},"text":{"comment":"

已排序的数组。Sorted arrays

\n"}}],"type":{"type":"array","elementType":{"type":"reference","id":385,"name":"T"}},"is":{"declaration":false},"location":{"query":"Collection.Function.mergeSorted","hash":"mergeSorted"},"text":{"comment":"
Function:

mergeSorted

\n
Description:

合并多个已排序数组为一个已排序数组。Merges multiple sorted arrays into one sorted array

\n
Returns:

合并后的已排序数组。Merged sorted array

\n
Example:
// Merge sorted number arrays\nmergeSorted([1, 3, 5], [2, 4, 6]); // -> [1, 2, 3, 4, 5, 6]\n
\n
Example:
// Merge multiple arrays\nmergeSorted([1, 5, 9], [2, 6], [3, 7, 8]); // -> [1, 2, 3, 5, 6, 7, 8, 9]\n
\n"},"sources":[{"fileName":"packages/utils/src/collection.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/collection.ts","line":200,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/collection.ts#L200"}],"parentId":383}],"is":{"declaration":true},"location":{"query":"Collection.Function.mergeSorted","hash":""},"text":{},"parentId":349} diff --git a/docs/v1.0.0-beta01/data/Collection.Function.partition.json b/docs/v1.0.0-beta01/data/Collection.Function.partition.json new file mode 100644 index 000000000..a6c41ace6 --- /dev/null +++ b/docs/v1.0.0-beta01/data/Collection.Function.partition.json @@ -0,0 +1 @@ +{"id":358,"name":"partition","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/utils/src/collection.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/collection.ts","line":67,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/collection.ts#L67"}],"signatures":[{"id":359,"name":"partition","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"partition"}]},{"tag":"@description","content":[{"kind":"text","text":"根据谓词函数将数组分为两个数组。Partitions array into two arrays based on a predicate function"}]},{"tag":"@returns","content":[{"kind":"text","text":"包含两个数组的元组:[匹配项, 不匹配项]。Tuple containing two arrays: [matching, non-matching]"}]},{"tag":"@throws","content":[{"kind":"text","text":"当arr不是数组或fn不是函数时。When arr is not an array or fn is not a function"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Partition by even/odd\nconst numbers = [1, 2, 3, 4, 5, 6];\npartition(numbers, n => n % 2 === 0); // -> [[2, 4, 6], [1, 3, 5]]\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Partition users by status\nconst users = [\n { name: 'John', active: true },\n { name: 'Jane', active: false },\n { name: 'Bob', active: true }\n];\npartition(users, u => u.active); // -> [[{John}, {Bob}], [{Jane}]]\n```"}]}]},"typeParameter":[{"id":360,"name":"T","kind":131072,"kindString":"Type parameter","flags":{}}],"parameters":[{"id":361,"name":"arr","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"要分区的数组。Array to partition"}]},"type":{"type":"array","elementType":{"type":"reference","id":360,"name":"T"}},"text":{"comment":"

要分区的数组。Array to partition

\n"}},{"id":362,"name":"fn","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"测试函数,返回true的进入第一个数组。Test function, items returning true go to first array"}]},"type":{"type":"reflection","declaration":{"id":363,"name":"__type","kind":65536,"kindString":"Type literal","flags":{},"sources":[{"fileName":"packages/utils/src/collection.ts","line":67,"character":43,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/collection.ts#L67"}],"signatures":[{"id":364,"name":"__type","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":365,"name":"item","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","id":360,"name":"T"}}],"type":{"type":"intrinsic","name":"boolean"}}]}},"text":{"comment":"

测试函数,返回true的进入第一个数组。Test function, items returning true go to first array

\n"}}],"type":{"type":"tuple","elements":[{"type":"array","elementType":{"type":"reference","id":360,"name":"T"}},{"type":"array","elementType":{"type":"reference","id":360,"name":"T"}}]},"is":{"declaration":false},"location":{"query":"Collection.Function.partition","hash":"partition"},"text":{"comment":"
Function:

partition

\n
Description:

根据谓词函数将数组分为两个数组。Partitions array into two arrays based on a predicate function

\n
Returns:

包含两个数组的元组:[匹配项, 不匹配项]。Tuple containing two arrays: [matching, non-matching]

\n
Throws:

当arr不是数组或fn不是函数时。When arr is not an array or fn is not a function

\n
Example:
// Partition by even/odd\nconst numbers = [1, 2, 3, 4, 5, 6];\npartition(numbers, n => n % 2 === 0); // -> [[2, 4, 6], [1, 3, 5]]\n
\n
Example:
// Partition users by status\nconst users = [\n  { name: 'John', active: true },\n  { name: 'Jane', active: false },\n  { name: 'Bob', active: true }\n];\npartition(users, u => u.active); // -> [[{John}, {Bob}], [{Jane}]]\n
\n"},"sources":[{"fileName":"packages/utils/src/collection.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/collection.ts","line":67,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/collection.ts#L67"}],"parentId":358}],"is":{"declaration":true},"location":{"query":"Collection.Function.partition","hash":""},"text":{},"parentId":349} diff --git a/docs/v1.0.0-beta01/data/Collection.Function.sortBy.json b/docs/v1.0.0-beta01/data/Collection.Function.sortBy.json new file mode 100644 index 000000000..6afc6e174 --- /dev/null +++ b/docs/v1.0.0-beta01/data/Collection.Function.sortBy.json @@ -0,0 +1 @@ +{"id":372,"name":"sortBy","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/utils/src/collection.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/collection.ts","line":140,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/collection.ts#L140"}],"signatures":[{"id":373,"name":"sortBy","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"sortBy"}]},{"tag":"@description","content":[{"kind":"text","text":"根据一个或多个字段对数组进行排序。Sorts array by one or more fields"}]},{"tag":"@returns","content":[{"kind":"text","text":"排序后的新数组。New sorted array"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Sort by single field\nconst users = [{ name: 'John', age: 30 }, { name: 'Jane', age: 25 }];\nsortBy(users, u => u.age); // -> [{ name: 'Jane', age: 25 }, { name: 'John', age: 30 }]\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Sort by multiple fields\nconst data = [\n { dept: 'Sales', name: 'John', age: 30 },\n { dept: 'Sales', name: 'Jane', age: 25 },\n { dept: 'IT', name: 'Bob', age: 28 }\n];\nsortBy(data, d => d.dept, d => d.age);\n// -> Sorted by dept first, then age within each dept\n```"}]}]},"typeParameter":[{"id":374,"name":"T","kind":131072,"kindString":"Type parameter","flags":{}}],"parameters":[{"id":375,"name":"arr","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"要排序的数组。Array to sort"}]},"type":{"type":"array","elementType":{"type":"reference","id":374,"name":"T"}},"text":{"comment":"

要排序的数组。Array to sort

\n"}},{"id":376,"name":"fns","kind":32768,"kindString":"Parameter","flags":{"isRest":true},"comment":{"summary":[{"kind":"text","text":"提取排序键的函数数组。Functions to extract sort keys"}]},"type":{"type":"array","elementType":{"type":"reflection","declaration":{"id":377,"name":"__type","kind":65536,"kindString":"Type literal","flags":{},"sources":[{"fileName":"packages/utils/src/collection.ts","line":140,"character":50,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/collection.ts#L140"}],"signatures":[{"id":378,"name":"__type","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":379,"name":"item","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","id":374,"name":"T"}}],"type":{"type":"intrinsic","name":"any"}}]}}},"text":{"comment":"

提取排序键的函数数组。Functions to extract sort keys

\n"}}],"type":{"type":"array","elementType":{"type":"reference","id":374,"name":"T"}},"is":{"declaration":false},"location":{"query":"Collection.Function.sortBy","hash":"sortBy"},"text":{"comment":"
Function:

sortBy

\n
Description:

根据一个或多个字段对数组进行排序。Sorts array by one or more fields

\n
Returns:

排序后的新数组。New sorted array

\n
Example:
// Sort by single field\nconst users = [{ name: 'John', age: 30 }, { name: 'Jane', age: 25 }];\nsortBy(users, u => u.age); // -> [{ name: 'Jane', age: 25 }, { name: 'John', age: 30 }]\n
\n
Example:
// Sort by multiple fields\nconst data = [\n  { dept: 'Sales', name: 'John', age: 30 },\n  { dept: 'Sales', name: 'Jane', age: 25 },\n  { dept: 'IT', name: 'Bob', age: 28 }\n];\nsortBy(data, d => d.dept, d => d.age);\n// -> Sorted by dept first, then age within each dept\n
\n"},"sources":[{"fileName":"packages/utils/src/collection.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/collection.ts","line":140,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/collection.ts#L140"}],"parentId":372}],"is":{"declaration":true},"location":{"query":"Collection.Function.sortBy","hash":""},"text":{},"parentId":349} diff --git a/docs/v1.0.0-beta01/data/Collection.Function.unzip.json b/docs/v1.0.0-beta01/data/Collection.Function.unzip.json new file mode 100644 index 000000000..cea8f2f12 --- /dev/null +++ b/docs/v1.0.0-beta01/data/Collection.Function.unzip.json @@ -0,0 +1 @@ +{"id":369,"name":"unzip","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/utils/src/collection.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/collection.ts","line":112,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/collection.ts#L112"}],"signatures":[{"id":370,"name":"unzip","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"unzip"}]},{"tag":"@description","content":[{"kind":"text","text":"将元组数组拆分为单独的数组(zip的反向操作)。Splits an array of tuples into separate arrays (reverse of zip)"}]},{"tag":"@returns","content":[{"kind":"text","text":"单独数组的数组。Array of separate arrays"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Unzip key-value pairs\nconst pairs = [['a', 1], ['b', 2], ['c', 3]];\nunzip(pairs); // -> [['a', 'b', 'c'], [1, 2, 3]]\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Unzip coordinates\nconst points = [[1, 2], [3, 4], [5, 6]];\nunzip(points); // -> [[1, 3, 5], [2, 4, 6]]\n```"}]}]},"parameters":[{"id":371,"name":"arr","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"要拆分的元组数组。Array of tuples to split"}]},"type":{"type":"array","elementType":{"type":"array","elementType":{"type":"intrinsic","name":"any"}}},"text":{"comment":"

要拆分的元组数组。Array of tuples to split

\n"}}],"type":{"type":"array","elementType":{"type":"array","elementType":{"type":"intrinsic","name":"any"}}},"is":{"declaration":false},"location":{"query":"Collection.Function.unzip","hash":"unzip"},"text":{"comment":"
Function:

unzip

\n
Description:

将元组数组拆分为单独的数组(zip的反向操作)。Splits an array of tuples into separate arrays (reverse of zip)

\n
Returns:

单独数组的数组。Array of separate arrays

\n
Example:
// Unzip key-value pairs\nconst pairs = [['a', 1], ['b', 2], ['c', 3]];\nunzip(pairs); // -> [['a', 'b', 'c'], [1, 2, 3]]\n
\n
Example:
// Unzip coordinates\nconst points = [[1, 2], [3, 4], [5, 6]];\nunzip(points); // -> [[1, 3, 5], [2, 4, 6]]\n
\n"},"sources":[{"fileName":"packages/utils/src/collection.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/collection.ts","line":112,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/collection.ts#L112"}],"parentId":369}],"is":{"declaration":true},"location":{"query":"Collection.Function.unzip","hash":""},"text":{},"parentId":349} diff --git a/docs/v1.0.0-beta01/data/Collection.Function.zip.json b/docs/v1.0.0-beta01/data/Collection.Function.zip.json new file mode 100644 index 000000000..5f86e12d4 --- /dev/null +++ b/docs/v1.0.0-beta01/data/Collection.Function.zip.json @@ -0,0 +1 @@ +{"id":366,"name":"zip","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/utils/src/collection.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/collection.ts","line":92,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/collection.ts#L92"}],"signatures":[{"id":367,"name":"zip","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"zip"}]},{"tag":"@description","content":[{"kind":"text","text":"将多个数组组合成元组数组。Combines multiple arrays into an array of tuples"}]},{"tag":"@returns","content":[{"kind":"text","text":"元组数组。Array of tuples"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Combine parallel arrays\nconst names = ['John', 'Jane', 'Bob'];\nconst ages = [25, 30, 35];\nconst cities = ['NYC', 'LA', 'SF'];\nzip(names, ages, cities); // -> [['John', 25, 'NYC'], ['Jane', 30, 'LA'], ['Bob', 35, 'SF']]\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Create key-value pairs\nconst keys = ['a', 'b', 'c'];\nconst values = [1, 2, 3];\nzip(keys, values); // -> [['a', 1], ['b', 2], ['c', 3]]\n```"}]}]},"parameters":[{"id":368,"name":"arrays","kind":32768,"kindString":"Parameter","flags":{"isRest":true},"comment":{"summary":[{"kind":"text","text":"要组合的数组。Arrays to combine"}]},"type":{"type":"array","elementType":{"type":"array","elementType":{"type":"intrinsic","name":"any"}}},"text":{"comment":"

要组合的数组。Arrays to combine

\n"}}],"type":{"type":"array","elementType":{"type":"array","elementType":{"type":"intrinsic","name":"any"}}},"is":{"declaration":false},"location":{"query":"Collection.Function.zip","hash":"zip"},"text":{"comment":"
Function:

zip

\n
Description:

将多个数组组合成元组数组。Combines multiple arrays into an array of tuples

\n
Returns:

元组数组。Array of tuples

\n
Example:
// Combine parallel arrays\nconst names = ['John', 'Jane', 'Bob'];\nconst ages = [25, 30, 35];\nconst cities = ['NYC', 'LA', 'SF'];\nzip(names, ages, cities); // -> [['John', 25, 'NYC'], ['Jane', 30, 'LA'], ['Bob', 35, 'SF']]\n
\n
Example:
// Create key-value pairs\nconst keys = ['a', 'b', 'c'];\nconst values = [1, 2, 3];\nzip(keys, values); // -> [['a', 1], ['b', 2], ['c', 3]]\n
\n"},"sources":[{"fileName":"packages/utils/src/collection.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/collection.ts","line":92,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/collection.ts#L92"}],"parentId":366}],"is":{"declaration":true},"location":{"query":"Collection.Function.zip","hash":""},"text":{},"parentId":349} diff --git a/docs/v1.0.0-beta01/data/Color.Function.getColorRgbArr.json b/docs/v1.0.0-beta01/data/Color.Function.getColorRgbArr.json new file mode 100644 index 000000000..4be431bf3 --- /dev/null +++ b/docs/v1.0.0-beta01/data/Color.Function.getColorRgbArr.json @@ -0,0 +1 @@ +{"id":390,"name":"getColorRgbArr","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/utils/src/color.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/color.ts","line":28,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/color.ts#L28"}],"signatures":[{"id":391,"name":"getColorRgbArr","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"getColorRgbArr"}]},{"tag":"@description","content":[{"kind":"text","text":"颜色格式转换。hexadecimal color to 255.#ff0000 -> [255, 0, 0];。Color format conversion. Converts hexadecimal color to RGB array"}]},{"tag":"@returns","content":[{"kind":"text","text":"转换后的颜色值。The converted RGB color array"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\ngetColorRgbArr('#ff0000'); // [255,0,0]\r\ngetColorRgbArr('#f00'); // [255,0,0]\n```"}]}]},"parameters":[{"id":392,"name":"color","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"原始十六进制颜色值。The original hexadecimal color value"}]},"type":{"type":"intrinsic","name":"string"},"text":{"comment":"

原始十六进制颜色值。The original hexadecimal color value

\n"}}],"type":{"type":"array","elementType":{"type":"intrinsic","name":"number"}},"is":{"declaration":false},"location":{"query":"Color.Function.getColorRgbArr","hash":"getColorRgbArr"},"text":{"comment":"
Function:

getColorRgbArr

\n
Description:

颜色格式转换。hexadecimal color to 255.#ff0000 -> [255, 0, 0];。Color format conversion. Converts hexadecimal color to RGB array

\n
Returns:

转换后的颜色值。The converted RGB color array

\n
Example:
getColorRgbArr('#ff0000'); // [255,0,0]\ngetColorRgbArr('#f00'); // [255,0,0]\n
\n"},"sources":[{"fileName":"packages/utils/src/color.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/color.ts","line":28,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/color.ts#L28"}],"parentId":390}],"is":{"declaration":true},"location":{"query":"Color.Function.getColorRgbArr","hash":""},"text":{},"parentId":387} diff --git a/docs/v1.0.0-beta01/data/Color.Function.getColorRgba.json b/docs/v1.0.0-beta01/data/Color.Function.getColorRgba.json new file mode 100644 index 000000000..a04fca61e --- /dev/null +++ b/docs/v1.0.0-beta01/data/Color.Function.getColorRgba.json @@ -0,0 +1 @@ +{"id":393,"name":"getColorRgba","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/utils/src/color.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/color.ts","line":59,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/color.ts#L59"}],"signatures":[{"id":394,"name":"getColorRgba","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"getColorRgba"}]},{"tag":"@description","content":[{"kind":"text","text":"hexadecimal color string -> rgba。Converts hexadecimal color string to rgba format"}]},{"tag":"@returns","content":[{"kind":"text","text":"rgba颜色值,如'rgba(255,0,0,0.5)'。RGBA color value, e.g. 'rgba(255,0,0,0.5)'"}]},{"tag":"@need","content":[{"kind":"text","text":"getColorRgb"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\ngetColorRgba('#ff0000', 0.5); // 'rgba(255,0,0,0.5)'\r\ngetColorRgba('#ff0000'); // 'rgba(255,0,0,1)'\n```"}]}]},"parameters":[{"id":395,"name":"str","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"原始十六进制颜色值。The original hexadecimal color value"}]},"type":{"type":"intrinsic","name":"string"},"text":{"comment":"

原始十六进制颜色值。The original hexadecimal color value

\n"}},{"id":396,"name":"rate","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"透明度,默认为1,取值范围[0,1]。Opacity, default is 1, range [0,1]"}]},"type":{"type":"intrinsic","name":"number"},"defaultValue":"1","text":{"comment":"

透明度,默认为1,取值范围[0,1]。Opacity, default is 1, range [0,1]

\n"}}],"type":{"type":"intrinsic","name":"string"},"is":{"declaration":false},"location":{"query":"Color.Function.getColorRgba","hash":"getColorRgba"},"text":{"comment":"
Function:

getColorRgba

\n
Description:

hexadecimal color string -> rgba。Converts hexadecimal color string to rgba format

\n
Returns:

rgba颜色值,如'rgba(255,0,0,0.5)'。RGBA color value, e.g. 'rgba(255,0,0,0.5)'

\n
Need:

getColorRgb

\n
Example:
getColorRgba('#ff0000', 0.5); // 'rgba(255,0,0,0.5)'\ngetColorRgba('#ff0000'); // 'rgba(255,0,0,1)'\n
\n"},"sources":[{"fileName":"packages/utils/src/color.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/color.ts","line":59,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/color.ts#L59"}],"parentId":393}],"is":{"declaration":true},"location":{"query":"Color.Function.getColorRgba","hash":""},"text":{},"parentId":387} diff --git a/docs/v1.0.0-beta01/data/Color.Function.isTransparentColor.json b/docs/v1.0.0-beta01/data/Color.Function.isTransparentColor.json new file mode 100644 index 000000000..48e53ba06 --- /dev/null +++ b/docs/v1.0.0-beta01/data/Color.Function.isTransparentColor.json @@ -0,0 +1 @@ +{"id":397,"name":"isTransparentColor","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/utils/src/color.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/color.ts","line":75,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/color.ts#L75"}],"signatures":[{"id":398,"name":"isTransparentColor","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"isTransparentColor"}]},{"tag":"@description","content":[{"kind":"text","text":"rgb/rgba色值是否为透明色。Checks if rgb/rgba color value is transparent"}]},{"tag":"@returns","content":[{"kind":"text","text":"是否为透明色。Whether it is a transparent color"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\nisTransparentColor('rgba(0, 0, 0, 0)'); // true\r\nisTransparentColor('rgba(255, 255, 255, 1)'); // false\r\nisTransparentColor('rgba(255, 255, 255, 0)'); // true\n```"}]}]},"parameters":[{"id":399,"name":"colorStr","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"颜色值。The color value to check"}]},"type":{"type":"intrinsic","name":"string"},"text":{"comment":"

颜色值。The color value to check

\n"}}],"type":{"type":"intrinsic","name":"boolean"},"is":{"declaration":false},"location":{"query":"Color.Function.isTransparentColor","hash":"isTransparentColor"},"text":{"comment":"
Function:

isTransparentColor

\n
Description:

rgb/rgba色值是否为透明色。Checks if rgb/rgba color value is transparent

\n
Returns:

是否为透明色。Whether it is a transparent color

\n
Example:
isTransparentColor('rgba(0, 0, 0, 0)'); // true\nisTransparentColor('rgba(255, 255, 255, 1)'); // false\nisTransparentColor('rgba(255, 255, 255, 0)'); // true\n
\n"},"sources":[{"fileName":"packages/utils/src/color.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/color.ts","line":75,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/color.ts#L75"}],"parentId":397}],"is":{"declaration":true},"location":{"query":"Color.Function.isTransparentColor","hash":""},"text":{},"parentId":387} diff --git a/docs/v1.0.0-beta01/data/Color.Function.randomHexColor.json b/docs/v1.0.0-beta01/data/Color.Function.randomHexColor.json new file mode 100644 index 000000000..d06b8feed --- /dev/null +++ b/docs/v1.0.0-beta01/data/Color.Function.randomHexColor.json @@ -0,0 +1 @@ +{"id":388,"name":"randomHexColor","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/utils/src/color.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/color.ts","line":15,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/color.ts#L15"}],"signatures":[{"id":389,"name":"randomHexColor","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"randomHexColor"}]},{"tag":"@description","content":[{"kind":"text","text":"生成随机十六进制颜色。Generates random hexadecimal color"}]},{"tag":"@returns","content":[{"kind":"text","text":"随机颜色值。Random color value"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\nrandomHexColor(); // '#ff0000'(randomly)\n```"}]}]},"type":{"type":"intrinsic","name":"string"},"is":{"declaration":false},"location":{"query":"Color.Function.randomHexColor","hash":"randomHexColor"},"text":{"comment":"
Function:

randomHexColor

\n
Description:

生成随机十六进制颜色。Generates random hexadecimal color

\n
Returns:

随机颜色值。Random color value

\n
Example:
randomHexColor(); // '#ff0000'(randomly)\n
\n"},"sources":[{"fileName":"packages/utils/src/color.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/color.ts","line":15,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/color.ts#L15"}],"parentId":388}],"is":{"declaration":true},"location":{"query":"Color.Function.randomHexColor","hash":""},"text":{},"parentId":387} diff --git a/docs/v1.0.0-beta01/data/Cookie.Function.delCookie.json b/docs/v1.0.0-beta01/data/Cookie.Function.delCookie.json new file mode 100644 index 000000000..64345067f --- /dev/null +++ b/docs/v1.0.0-beta01/data/Cookie.Function.delCookie.json @@ -0,0 +1 @@ +{"id":899,"name":"delCookie","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/web-utils/src/cookies.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/cookies.ts","line":179,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/cookies.ts#L179"}],"signatures":[{"id":900,"name":"delCookie","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"delCookie"}]},{"tag":"@description","content":[{"kind":"text","text":"通过将过期日期设置为过去来删除cookie。Deletes a cookie by setting its expiration date to the past"}]},{"tag":"@returns","content":[]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Delete a specific cookie\r\ndelCookie('username');\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Logout function that clears authentication cookies\r\nfunction logout() {\r\n delCookie('auth_token');\r\n delCookie('session_id');\r\n delCookie('user_preferences');\r\n\r\n // Redirect to login page\r\n window.location.href = '/login';\r\n}\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Clear user data on privacy settings change\r\nfunction clearUserData() {\r\n const cookiesToClear = ['tracking_id', 'analytics_data', 'ad_preferences'];\r\n cookiesToClear.forEach(cookieName => {\r\n if (getCookie(cookieName)) {\r\n delCookie(cookieName);\r\n }\r\n });\r\n\r\n showNotification('User data cleared successfully');\r\n}\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Conditional cookie cleanup\r\nfunction cleanupExpiredSessions() {\r\n const sessionCookie = getCookie('session_token');\r\n if (sessionCookie && isSessionExpired(sessionCookie)) {\r\n delCookie('session_token');\r\n delCookie('user_state');\r\n redirectToLogin();\r\n }\r\n}\n```"}]},{"tag":"@since","content":[{"kind":"text","text":"1.0.0"}]},{"tag":"@see","content":[{"kind":"text","text":" - "},{"kind":"inline-tag","tag":"@link","text":"getCookie","target":889},{"kind":"text","text":" - Retrieve cookie values"},{"kind":"text","text":"\n"},{"kind":"text","text":" - "},{"kind":"inline-tag","tag":"@link","text":"setCookie","target":892},{"kind":"text","text":" - Set cookie values"},{"kind":"text","text":"\n"},{"kind":"text","text":" - "},{"kind":"inline-tag","tag":"@link","text":"https://developer.mozilla.org/en-US/docs/Web/API/Document/cookie","target":"https://developer.mozilla.org/en-US/docs/Web/API/Document/cookie"},{"kind":"text","text":" - Browser support: All browsers"},{"kind":"text","text":"\n"},{"kind":"text","text":" - "},{"kind":"inline-tag","tag":"@link","text":"https://gdpr.eu/cookies/","target":"https://gdpr.eu/cookies/"},{"kind":"text","text":" - GDPR compliance for cookie management"},{"kind":"text","text":"\n"},{"kind":"text","text":" - "},{"kind":"inline-tag","tag":"@link","text":"https://www.w3.org/WAI/WCAG21/Understanding/consistent-identification.html","target":"https://www.w3.org/WAI/WCAG21/Understanding/consistent-identification.html"},{"kind":"text","text":" - WCAG: Consistent user experience"},{"kind":"text","text":"\n"}]}]},"parameters":[{"id":901,"name":"name","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"要删除的cookie的名称。The name of the cookie to delete"}]},"type":{"type":"intrinsic","name":"string"},"text":{"comment":"

要删除的cookie的名称。The name of the cookie to delete

\n"}}],"type":{"type":"intrinsic","name":"void"},"is":{"declaration":false},"location":{"query":"Cookie.Function.delCookie","hash":"delCookie"},"text":{"comment":"
Function:

delCookie

\n
Description:

通过将过期日期设置为过去来删除cookie。Deletes a cookie by setting its expiration date to the past

\n
Returns:
Example:
// Delete a specific cookie\ndelCookie('username');\n
\n
Example:
// Logout function that clears authentication cookies\nfunction logout() {\n  delCookie('auth_token');\n  delCookie('session_id');\n  delCookie('user_preferences');\n\n  // Redirect to login page\n  window.location.href = '/login';\n}\n
\n
Example:
// Clear user data on privacy settings change\nfunction clearUserData() {\n  const cookiesToClear = ['tracking_id', 'analytics_data', 'ad_preferences'];\n  cookiesToClear.forEach(cookieName => {\n    if (getCookie(cookieName)) {\n      delCookie(cookieName);\n    }\n  });\n\n  showNotification('User data cleared successfully');\n}\n
\n
Example:
// Conditional cookie cleanup\nfunction cleanupExpiredSessions() {\n  const sessionCookie = getCookie('session_token');\n  if (sessionCookie && isSessionExpired(sessionCookie)) {\n    delCookie('session_token');\n    delCookie('user_state');\n    redirectToLogin();\n  }\n}\n
\n
Since:

1.0.0

\n
See:
\n"},"sources":[{"fileName":"packages/web-utils/src/cookies.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/cookies.ts","line":179,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/cookies.ts#L179"}],"parentId":899}],"is":{"declaration":true},"location":{"query":"Cookie.Function.delCookie","hash":""},"text":{},"parentId":888} diff --git a/docs/v1.0.0-beta01/data/Cookie.Function.getCookie.json b/docs/v1.0.0-beta01/data/Cookie.Function.getCookie.json new file mode 100644 index 000000000..e56022e16 --- /dev/null +++ b/docs/v1.0.0-beta01/data/Cookie.Function.getCookie.json @@ -0,0 +1 @@ +{"id":889,"name":"getCookie","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/web-utils/src/cookies.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/cookies.ts","line":46,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/cookies.ts#L46"}],"signatures":[{"id":890,"name":"getCookie","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"getCookie"}]},{"tag":"@description","content":[{"kind":"text","text":"从浏览器的cookie存储中按名称检索cookie值。Retrieves a cookie value by name from the browser's cookie store"}]},{"tag":"@returns","content":[{"kind":"text","text":"如果找到则返回cookie值,否则返回null。The cookie value if found, null otherwise"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Get a simple cookie value\r\nconst username = getCookie('username');\r\nif (username) {\r\n console.log('Welcome back,', username);\r\n}\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Check for authentication token\r\nconst authToken = getCookie('auth_token');\r\nif (!authToken) {\r\n redirectToLogin();\r\n} else {\r\n initializeApp(authToken);\r\n}\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Get user preferences with fallback\r\nconst theme = getCookie('theme') || 'light';\r\nconst language = getCookie('language') || 'en';\r\napplyUserPreferences({ theme, language });\n```"}]},{"tag":"@since","content":[{"kind":"text","text":"1.0.0"}]},{"tag":"@see","content":[{"kind":"text","text":" - "},{"kind":"inline-tag","tag":"@link","text":"setCookie","target":892},{"kind":"text","text":" - Set cookie values"},{"kind":"text","text":"\n"},{"kind":"text","text":" - "},{"kind":"inline-tag","tag":"@link","text":"delCookie","target":899},{"kind":"text","text":" - Delete cookies"},{"kind":"text","text":"\n"},{"kind":"text","text":" - "},{"kind":"inline-tag","tag":"@link","text":"https://developer.mozilla.org/en-US/docs/Web/API/Document/cookie","target":"https://developer.mozilla.org/en-US/docs/Web/API/Document/cookie"},{"kind":"text","text":" - Browser support: All browsers"},{"kind":"text","text":"\n"},{"kind":"text","text":" - "},{"kind":"inline-tag","tag":"@link","text":"https://developers.google.com/privacy-sandbox/3pcd","target":"https://developers.google.com/privacy-sandbox/3pcd"},{"kind":"text","text":" - Third-party cookie deprecation"},{"kind":"text","text":"\n"},{"kind":"text","text":" - "},{"kind":"inline-tag","tag":"@link","text":"https://www.rfc-editor.org/rfc/rfc6265.html","target":"https://www.rfc-editor.org/rfc/rfc6265.html"},{"kind":"text","text":" - HTTP State Management Mechanism (Cookies)"},{"kind":"text","text":"\n"}]},{"tag":"@deprecated","content":[{"kind":"text","text":"Consider using modern storage APIs like localStorage or sessionStorage for client-side data"}]}]},"parameters":[{"id":891,"name":"name","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"要检索的cookie的名称。The name of the cookie to retrieve"}]},"type":{"type":"intrinsic","name":"string"},"text":{"comment":"

要检索的cookie的名称。The name of the cookie to retrieve

\n"}}],"type":{"type":"union","types":[{"type":"literal","value":null},{"type":"intrinsic","name":"string"}]},"is":{"declaration":false},"location":{"query":"Cookie.Function.getCookie","hash":"getCookie"},"text":{"comment":"
Function:

getCookie

\n
Description:

从浏览器的cookie存储中按名称检索cookie值。Retrieves a cookie value by name from the browser's cookie store

\n
Returns:

如果找到则返回cookie值,否则返回null。The cookie value if found, null otherwise

\n
Example:
// Get a simple cookie value\nconst username = getCookie('username');\nif (username) {\n  console.log('Welcome back,', username);\n}\n
\n
Example:
// Check for authentication token\nconst authToken = getCookie('auth_token');\nif (!authToken) {\n  redirectToLogin();\n} else {\n  initializeApp(authToken);\n}\n
\n
Example:
// Get user preferences with fallback\nconst theme = getCookie('theme') || 'light';\nconst language = getCookie('language') || 'en';\napplyUserPreferences({ theme, language });\n
\n
Since:

1.0.0

\n
See:
\n
Deprecated:

Consider using modern storage APIs like localStorage or sessionStorage for client-side data

\n"},"sources":[{"fileName":"packages/web-utils/src/cookies.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/cookies.ts","line":46,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/cookies.ts#L46"}],"parentId":889}],"is":{"declaration":true},"location":{"query":"Cookie.Function.getCookie","hash":""},"text":{},"parentId":888} diff --git a/docs/v1.0.0-beta01/data/Cookie.Function.setCookie.json b/docs/v1.0.0-beta01/data/Cookie.Function.setCookie.json new file mode 100644 index 000000000..2b5f6d4a8 --- /dev/null +++ b/docs/v1.0.0-beta01/data/Cookie.Function.setCookie.json @@ -0,0 +1 @@ +{"id":892,"name":"setCookie","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/web-utils/src/cookies.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/cookies.ts","line":118,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/cookies.ts#L118"}],"signatures":[{"id":893,"name":"setCookie","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"setCookie"}]},{"tag":"@description","content":[{"kind":"text","text":"使用指定的名称、值和可选配置设置cookie。Sets a cookie with specified name, value, and optional configuration"}]},{"tag":"@returns","content":[]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Set basic cookie (expires in 1 day)\r\nsetCookie('username', 'john_doe');\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Set cookie with custom expiration\r\nsetCookie('session_token', 'abc123', 'h2'); // Expires in 2 hours\r\nsetCookie('remember_me', 'true', 'd30'); // Expires in 30 days\r\nsetCookie('temp_data', 'value', 's300'); // Expires in 5 minutes\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Set cookie for specific domain and path\r\nsetCookie('api_key', 'secret123', 'd7', '.example.com', '/api');\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Set user preferences with proper encoding\r\nconst preferences = JSON.stringify({ theme: 'dark', lang: 'en' });\r\nsetCookie('user_prefs', encodeURIComponent(preferences), 'd365');\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Set secure cookie for authentication (consider SameSite and Secure flags)\r\nsetCookie('auth_token', token, 'h8', '', '/');\r\n// Note: For production, consider using secure, httpOnly, and sameSite attributes\n```"}]},{"tag":"@since","content":[{"kind":"text","text":"1.0.0"}]},{"tag":"@see","content":[{"kind":"text","text":" - "},{"kind":"inline-tag","tag":"@link","text":"getCookie","target":889},{"kind":"text","text":" - Retrieve cookie values"},{"kind":"text","text":"\n"},{"kind":"text","text":" - "},{"kind":"inline-tag","tag":"@link","text":"delCookie","target":899},{"kind":"text","text":" - Delete cookies"},{"kind":"text","text":"\n"},{"kind":"text","text":" - "},{"kind":"inline-tag","tag":"@link","text":"https://developer.mozilla.org/en-US/docs/Web/API/Document/cookie","target":"https://developer.mozilla.org/en-US/docs/Web/API/Document/cookie"},{"kind":"text","text":" - Browser support: All browsers"},{"kind":"text","text":"\n"},{"kind":"text","text":" - "},{"kind":"inline-tag","tag":"@link","text":"https://web.dev/samesite-cookies-explained/","target":"https://web.dev/samesite-cookies-explained/"},{"kind":"text","text":" - SameSite cookie security"},{"kind":"text","text":"\n"},{"kind":"text","text":" - "},{"kind":"inline-tag","tag":"@link","text":"https://developers.google.com/privacy-sandbox/3pcd","target":"https://developers.google.com/privacy-sandbox/3pcd"},{"kind":"text","text":" - Third-party cookie deprecation timeline"},{"kind":"text","text":"\n"}]},{"tag":"@deprecated","content":[{"kind":"text","text":"Consider using modern storage APIs or server-side sessions for sensitive data"}]}]},"parameters":[{"id":894,"name":"name","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"Cookie名称(不应包含特殊字符)。Cookie name (should not contain special characters)"}]},"type":{"type":"intrinsic","name":"string"},"text":{"comment":"

Cookie名称(不应包含特殊字符)。Cookie name (should not contain special characters)

\n"}},{"id":895,"name":"value","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"Cookie值(如需要将进行URL编码)。Cookie value (will be URL encoded if needed)"}]},"type":{"type":"intrinsic","name":"string"},"text":{"comment":"

Cookie值(如需要将进行URL编码)。Cookie value (will be URL encoded if needed)

\n"}},{"id":896,"name":"time","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"过期时间:'s20'(20秒),'h12'(12小时),'d30'(30天)。默认:1天。Expiration time: 's20' (20 sec), 'h12' (12 hours), 'd30' (30 days). Default: 1 day"}]},"type":{"type":"intrinsic","name":"string"},"text":{"comment":"

过期时间:'s20'(20秒),'h12'(12小时),'d30'(30天)。默认:1天。Expiration time: 's20' (20 sec), 'h12' (12 hours), 'd30' (30 days). Default: 1 day

\n"}},{"id":897,"name":"domain","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Cookie域(例如,'.example.com'用于子域访问)。Cookie domain (e.g., '.example.com' for subdomain access)"}]},"type":{"type":"intrinsic","name":"string"},"defaultValue":"''","text":{"comment":"

Cookie域(例如,'.example.com'用于子域访问)。Cookie domain (e.g., '.example.com' for subdomain access)

\n"}},{"id":898,"name":"path","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Cookie路径(默认为根路径)。Cookie path (defaults to root path)"}]},"type":{"type":"intrinsic","name":"string"},"defaultValue":"''","text":{"comment":"

Cookie路径(默认为根路径)。Cookie path (defaults to root path)

\n"}}],"type":{"type":"intrinsic","name":"void"},"is":{"declaration":false},"location":{"query":"Cookie.Function.setCookie","hash":"setCookie"},"text":{"comment":"
Function:

setCookie

\n
Description:

使用指定的名称、值和可选配置设置cookie。Sets a cookie with specified name, value, and optional configuration

\n
Returns:
Example:
// Set basic cookie (expires in 1 day)\nsetCookie('username', 'john_doe');\n
\n
Example:
// Set cookie with custom expiration\nsetCookie('session_token', 'abc123', 'h2'); // Expires in 2 hours\nsetCookie('remember_me', 'true', 'd30');    // Expires in 30 days\nsetCookie('temp_data', 'value', 's300');    // Expires in 5 minutes\n
\n
Example:
// Set cookie for specific domain and path\nsetCookie('api_key', 'secret123', 'd7', '.example.com', '/api');\n
\n
Example:
// Set user preferences with proper encoding\nconst preferences = JSON.stringify({ theme: 'dark', lang: 'en' });\nsetCookie('user_prefs', encodeURIComponent(preferences), 'd365');\n
\n
Example:
// Set secure cookie for authentication (consider SameSite and Secure flags)\nsetCookie('auth_token', token, 'h8', '', '/');\n// Note: For production, consider using secure, httpOnly, and sameSite attributes\n
\n
Since:

1.0.0

\n
See:
\n
Deprecated:

Consider using modern storage APIs or server-side sessions for sensitive data

\n"},"sources":[{"fileName":"packages/web-utils/src/cookies.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/cookies.ts","line":118,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/cookies.ts#L118"}],"parentId":892}],"is":{"declaration":true},"location":{"query":"Cookie.Function.setCookie","hash":""},"text":{},"parentId":888} diff --git a/docs/v1.0.0-beta01/data/DOM.Function.addClass.json b/docs/v1.0.0-beta01/data/DOM.Function.addClass.json new file mode 100644 index 000000000..e911c1232 --- /dev/null +++ b/docs/v1.0.0-beta01/data/DOM.Function.addClass.json @@ -0,0 +1 @@ +{"id":920,"name":"addClass","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/web-utils/src/dom.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/dom.ts","line":111,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/dom.ts#L111"}],"signatures":[{"id":921,"name":"addClass","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"addClass"}]},{"tag":"@description","content":[{"kind":"text","text":"向DOM元素添加CSS类,为旧版浏览器提供回退方案。Adds a CSS class to a DOM element, with fallback for older browsers"}]},{"tag":"@returns","content":[]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Basic usage\r\nconst button = document.querySelector('.my-button');\r\naddClass(button, 'active');\r\naddClass(button, 'highlighted');\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Safe usage with null checks\r\nconst elem = document.getElementById('optional-element');\r\naddClass(elem, 'new-class'); // Safely handles null elements\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Adding state classes for accessibility\r\nconst menuItem = document.querySelector('[role=\"menuitem\"]');\r\naddClass(menuItem, 'aria-selected'); // Visual indicator\r\nmenuItem.setAttribute('aria-selected', 'true'); // Screen reader support\n```"}]},{"tag":"@since","content":[{"kind":"text","text":"1.0.0"}]},{"tag":"@see","content":[{"kind":"text","text":" - "},{"kind":"inline-tag","tag":"@link","text":"hasClass","target":916},{"kind":"text","text":" - Check if element has a class"},{"kind":"text","text":"\n"},{"kind":"text","text":" - "},{"kind":"inline-tag","tag":"@link","text":"removeClass","target":924},{"kind":"text","text":" - Remove CSS classes from elements"},{"kind":"text","text":"\n"},{"kind":"text","text":" - "},{"kind":"inline-tag","tag":"@link","text":"https://developer.mozilla.org/en-US/docs/Web/API/Element/classList","target":"https://developer.mozilla.org/en-US/docs/Web/API/Element/classList"},{"kind":"text","text":" - Modern classList API (IE 10+)"},{"kind":"text","text":"\n"},{"kind":"text","text":" - "},{"kind":"inline-tag","tag":"@link","text":"https://caniuse.com/classlist","target":"https://caniuse.com/classlist"},{"kind":"text","text":" - Browser support: IE 10+, all modern browsers"},{"kind":"text","text":"\n"},{"kind":"text","text":" - "},{"kind":"inline-tag","tag":"@link","text":"https://www.w3.org/WAI/ARIA/apg/practices/names-and-descriptions/","target":"https://www.w3.org/WAI/ARIA/apg/practices/names-and-descriptions/"},{"kind":"text","text":" - ARIA naming practices"},{"kind":"text","text":"\n"}]}]},"parameters":[{"id":922,"name":"elem","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"要添加类的DOM元素。The DOM element to add the class to"}]},"type":{"type":"reference","name":"HTMLElement","qualifiedName":"HTMLElement","package":"typescript"},"text":{"comment":"

要添加类的DOM元素。The DOM element to add the class to

\n"}},{"id":923,"name":"className","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"要添加的CSS类名(不带前导点)。The CSS class name to add (without leading dot)"}]},"type":{"type":"intrinsic","name":"string"},"text":{"comment":"

要添加的CSS类名(不带前导点)。The CSS class name to add (without leading dot)

\n"}}],"type":{"type":"intrinsic","name":"void"},"is":{"declaration":false},"location":{"query":"DOM.Function.addClass","hash":"addClass"},"text":{"comment":"
Function:

addClass

\n
Description:

向DOM元素添加CSS类,为旧版浏览器提供回退方案。Adds a CSS class to a DOM element, with fallback for older browsers

\n
Returns:
Example:
// Basic usage\nconst button = document.querySelector('.my-button');\naddClass(button, 'active');\naddClass(button, 'highlighted');\n
\n
Example:
// Safe usage with null checks\nconst elem = document.getElementById('optional-element');\naddClass(elem, 'new-class'); // Safely handles null elements\n
\n
Example:
// Adding state classes for accessibility\nconst menuItem = document.querySelector('[role=\"menuitem\"]');\naddClass(menuItem, 'aria-selected'); // Visual indicator\nmenuItem.setAttribute('aria-selected', 'true'); // Screen reader support\n
\n
Since:

1.0.0

\n
See:
\n"},"sources":[{"fileName":"packages/web-utils/src/dom.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/dom.ts","line":111,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/dom.ts#L111"}],"parentId":920}],"is":{"declaration":true},"location":{"query":"DOM.Function.addClass","hash":""},"text":{},"parentId":913} diff --git a/docs/v1.0.0-beta01/data/DOM.Function.animateScrollTo.json b/docs/v1.0.0-beta01/data/DOM.Function.animateScrollTo.json new file mode 100644 index 000000000..05a9d0748 --- /dev/null +++ b/docs/v1.0.0-beta01/data/DOM.Function.animateScrollTo.json @@ -0,0 +1 @@ +{"id":971,"name":"animateScrollTo","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/web-utils/src/dom.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/dom.ts","line":834,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/dom.ts#L834"}],"signatures":[{"id":972,"name":"animateScrollTo","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@description","content":[{"kind":"text","text":"Smoothly animates scrolling to a specific vertical position over a given duration"}]},{"tag":"@returns","content":[]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Smooth scroll to top over 500ms\r\nanimateScrollTo(0, 500);\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Scroll to specific section with smooth animation\r\nconst targetSection = document.getElementById('contact');\r\nconst targetPosition = getOffsetPos(targetSection).top - 60; // Account for fixed header\r\nanimateScrollTo(targetPosition, 800);\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Accessible smooth scrolling with reduced motion support\r\nfunction scrollToSection(sectionId) {\r\n const section = document.getElementById(sectionId);\r\n const targetPos = getOffsetPos(section).top;\r\n\r\n // Respect user's motion preferences\r\n const prefersReducedMotion = window.matchMedia('(prefers-reduced-motion: reduce)').matches;\r\n const duration = prefersReducedMotion ? 0 : 600;\r\n\r\n animateScrollTo(targetPos, duration);\r\n\r\n // Update focus for accessibility\r\n section.setAttribute('tabindex', '-1');\r\n section.focus();\r\n}\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Scroll to form errors with animation\r\nfunction scrollToFirstError() {\r\n const firstError = document.querySelector('.field-error');\r\n if (firstError) {\r\n const errorPos = getOffsetPos(firstError).top - 100;\r\n animateScrollTo(errorPos, 400);\r\n\r\n // Announce error to screen readers\r\n firstError.setAttribute('aria-live', 'assertive');\r\n }\r\n}\n```"}]},{"tag":"@since","content":[{"kind":"text","text":"1.0.0"}]},{"tag":"@see","content":[{"kind":"text","text":" - "},{"kind":"inline-tag","tag":"@link","text":"setScrollTop","target":968},{"kind":"text","text":" - Instant scroll positioning"},{"kind":"text","text":"\n"},{"kind":"text","text":" - "},{"kind":"inline-tag","tag":"@link","text":"smoothScroll","target":975},{"kind":"text","text":" - CSS-based smooth scrolling"},{"kind":"text","text":"\n"},{"kind":"text","text":" - "},{"kind":"inline-tag","tag":"@link","text":"requestAnimFrame","target":982},{"kind":"text","text":" - Animation frame utility"},{"kind":"text","text":"\n"},{"kind":"text","text":" - "},{"kind":"inline-tag","tag":"@link","text":"https://developer.mozilla.org/en-US/docs/Web/API/window/requestAnimationFrame","target":"https://developer.mozilla.org/en-US/docs/Web/API/window/requestAnimationFrame"},{"kind":"text","text":" - Browser support: IE 10+, all modern browsers"},{"kind":"text","text":"\n"},{"kind":"text","text":" - "},{"kind":"inline-tag","tag":"@link","text":"https://web.dev/prefers-reduced-motion/","target":"https://web.dev/prefers-reduced-motion/"},{"kind":"text","text":" - Respecting motion preferences"},{"kind":"text","text":"\n"},{"kind":"text","text":" - "},{"kind":"inline-tag","tag":"@link","text":"https://www.w3.org/WAI/WCAG21/Understanding/focus-order.html","target":"https://www.w3.org/WAI/WCAG21/Understanding/focus-order.html"},{"kind":"text","text":" - WCAG: Focus management during scroll"},{"kind":"text","text":"\n"}]}]},"parameters":[{"id":973,"name":"to","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"Target scroll position in pixels"}]},"type":{"type":"intrinsic","name":"number"},"text":{"comment":"

Target scroll position in pixels

\n"}},{"id":974,"name":"duration","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"Animation duration in milliseconds"}]},"type":{"type":"intrinsic","name":"number"},"text":{"comment":"

Animation duration in milliseconds

\n"}}],"type":{"type":"intrinsic","name":"void"},"is":{"declaration":false},"location":{"query":"DOM.Function.animateScrollTo","hash":"animateScrollTo"},"text":{"comment":"
Description:

Smoothly animates scrolling to a specific vertical position over a given duration

\n
Returns:
Example:
// Smooth scroll to top over 500ms\nanimateScrollTo(0, 500);\n
\n
Example:
// Scroll to specific section with smooth animation\nconst targetSection = document.getElementById('contact');\nconst targetPosition = getOffsetPos(targetSection).top - 60; // Account for fixed header\nanimateScrollTo(targetPosition, 800);\n
\n
Example:
// Accessible smooth scrolling with reduced motion support\nfunction scrollToSection(sectionId) {\n  const section = document.getElementById(sectionId);\n  const targetPos = getOffsetPos(section).top;\n\n  // Respect user's motion preferences\n  const prefersReducedMotion = window.matchMedia('(prefers-reduced-motion: reduce)').matches;\n  const duration = prefersReducedMotion ? 0 : 600;\n\n  animateScrollTo(targetPos, duration);\n\n  // Update focus for accessibility\n  section.setAttribute('tabindex', '-1');\n  section.focus();\n}\n
\n
Example:
// Scroll to form errors with animation\nfunction scrollToFirstError() {\n  const firstError = document.querySelector('.field-error');\n  if (firstError) {\n    const errorPos = getOffsetPos(firstError).top - 100;\n    animateScrollTo(errorPos, 400);\n\n    // Announce error to screen readers\n    firstError.setAttribute('aria-live', 'assertive');\n  }\n}\n
\n
Since:

1.0.0

\n
See:
\n"},"sources":[{"fileName":"packages/web-utils/src/dom.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/dom.ts","line":834,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/dom.ts#L834"}],"parentId":971}],"is":{"declaration":true},"location":{"query":"DOM.Function.animateScrollTo","hash":""},"text":{},"parentId":913} diff --git a/docs/v1.0.0-beta01/data/DOM.Function.disableCopy.json b/docs/v1.0.0-beta01/data/DOM.Function.disableCopy.json new file mode 100644 index 000000000..dd6808cd4 --- /dev/null +++ b/docs/v1.0.0-beta01/data/DOM.Function.disableCopy.json @@ -0,0 +1 @@ +{"id":978,"name":"disableCopy","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/web-utils/src/dom.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/dom.ts","line":961,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/dom.ts#L961"}],"signatures":[{"id":979,"name":"disableCopy","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@description","content":[{"kind":"text","text":"Disables copy and paste functionality on the webpage (use with caution for accessibility)"}]},{"tag":"@returns","content":[{"kind":"text","text":"Cleanup function to restore original copy/paste behavior"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Temporarily disable copy/paste for sensitive content\r\nconst restoreCopyPaste = disableCopy();\r\n\r\n// Later, restore functionality\r\nsetTimeout(() => {\r\n restoreCopyPaste();\r\n}, 5000);\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Disable copy/paste during exam or secure content viewing\r\nlet copyPasteDisabled = false;\r\nconst toggleCopyPaste = document.getElementById('toggle-security');\r\n\r\ntoggleCopyPaste.addEventListener('click', () => {\r\n if (copyPasteDisabled) {\r\n restoreFunction();\r\n copyPasteDisabled = false;\r\n toggleCopyPaste.textContent = 'Disable Copy/Paste';\r\n } else {\r\n restoreFunction = disableCopy();\r\n copyPasteDisabled = true;\r\n toggleCopyPaste.textContent = 'Enable Copy/Paste';\r\n }\r\n});\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Provide alternative for accessibility when disabling copy\r\nconst restoreCopy = disableCopy();\r\n\r\n// Add accessible alternative\r\nconst copyButton = document.createElement('button');\r\ncopyButton.textContent = 'Copy Content';\r\ncopyButton.setAttribute('aria-label', 'Copy page content to clipboard');\r\ncopyButton.addEventListener('click', () => {\r\n navigator.clipboard.writeText(document.body.textContent);\r\n});\r\ndocument.body.appendChild(copyButton);\n```"}]},{"tag":"@since","content":[{"kind":"text","text":"1.0.0"}]},{"tag":"@see","content":[{"kind":"text","text":" - "},{"kind":"inline-tag","tag":"@link","text":"https://developer.mozilla.org/en-US/docs/Web/API/Navigator/clipboard","target":"https://developer.mozilla.org/en-US/docs/Web/API/Navigator/clipboard"},{"kind":"text","text":" - Modern clipboard API"},{"kind":"text","text":"\n"},{"kind":"text","text":" - "},{"kind":"inline-tag","tag":"@link","text":"https://www.w3.org/WAI/WCAG21/Understanding/keyboard.html","target":"https://www.w3.org/WAI/WCAG21/Understanding/keyboard.html"},{"kind":"text","text":" - WCAG: Keyboard accessibility considerations"},{"kind":"text","text":"\n"},{"kind":"text","text":" - "},{"kind":"inline-tag","tag":"@link","text":"https://webaim.org/articles/usability/","target":"https://webaim.org/articles/usability/"},{"kind":"text","text":" - Web accessibility and usability guidelines"},{"kind":"text","text":"\n"}]},{"tag":"@deprecated","content":[{"kind":"text","text":"Consider accessibility implications before disabling copy/paste functionality"}]}]},"type":{"type":"reflection","declaration":{"id":980,"name":"disableCopy","kind":65536,"kindString":"Type literal","flags":{},"sources":[{"fileName":"packages/web-utils/src/dom.ts","line":964,"character":11,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/dom.ts#L964"}],"signatures":[{"id":981,"name":"disableCopy","kind":4096,"kindString":"Call signature","flags":{},"type":{"type":"intrinsic","name":"void"},"is":{"declaration":false},"location":{"query":"DOM.Function.disableCopy","hash":"disableCopy.__type"},"text":{},"sources":[{"fileName":"packages/web-utils/src/dom.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/dom.ts","line":964,"character":11,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/dom.ts#L964"}],"parentId":978}],"location":{"query":"DOM.Function.disableCopy","hash":"disableCopy"}}},"is":{"declaration":false},"location":{"query":"DOM.Function.disableCopy","hash":"disableCopy"},"text":{"comment":"
Description:

Disables copy and paste functionality on the webpage (use with caution for accessibility)

\n
Returns:

Cleanup function to restore original copy/paste behavior

\n
Example:
// Temporarily disable copy/paste for sensitive content\nconst restoreCopyPaste = disableCopy();\n\n// Later, restore functionality\nsetTimeout(() => {\n  restoreCopyPaste();\n}, 5000);\n
\n
Example:
// Disable copy/paste during exam or secure content viewing\nlet copyPasteDisabled = false;\nconst toggleCopyPaste = document.getElementById('toggle-security');\n\ntoggleCopyPaste.addEventListener('click', () => {\n  if (copyPasteDisabled) {\n    restoreFunction();\n    copyPasteDisabled = false;\n    toggleCopyPaste.textContent = 'Disable Copy/Paste';\n  } else {\n    restoreFunction = disableCopy();\n    copyPasteDisabled = true;\n    toggleCopyPaste.textContent = 'Enable Copy/Paste';\n  }\n});\n
\n
Example:
// Provide alternative for accessibility when disabling copy\nconst restoreCopy = disableCopy();\n\n// Add accessible alternative\nconst copyButton = document.createElement('button');\ncopyButton.textContent = 'Copy Content';\ncopyButton.setAttribute('aria-label', 'Copy page content to clipboard');\ncopyButton.addEventListener('click', () => {\n  navigator.clipboard.writeText(document.body.textContent);\n});\ndocument.body.appendChild(copyButton);\n
\n
Since:

1.0.0

\n
See:
\n
Deprecated:

Consider accessibility implications before disabling copy/paste functionality

\n"},"sources":[{"fileName":"packages/web-utils/src/dom.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/dom.ts","line":961,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/dom.ts#L961"}],"parentId":978}],"is":{"declaration":true},"location":{"query":"DOM.Function.disableCopy","hash":""},"text":{},"parentId":913} diff --git a/docs/v1.0.0-beta01/data/DOM.Function.elementContains.json b/docs/v1.0.0-beta01/data/DOM.Function.elementContains.json new file mode 100644 index 000000000..18cef5fc9 --- /dev/null +++ b/docs/v1.0.0-beta01/data/DOM.Function.elementContains.json @@ -0,0 +1 @@ +{"id":936,"name":"elementContains","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/web-utils/src/dom.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/dom.ts","line":293,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/dom.ts#L293"}],"signatures":[{"id":937,"name":"elementContains","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@description","content":[{"kind":"text","text":"Checks if a parent element contains a child element (excluding self-containment)"}]},{"tag":"@returns","content":[{"kind":"text","text":"True if parent contains child (but parent !== child), false otherwise"}]},{"tag":"@throws","content":[{"kind":"text","text":"Throws if parent or child is null/undefined"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Basic containment check\r\nconst container = document.getElementById('container');\r\nconst button = document.querySelector('.submit-button');\r\nif (elementContains(container, button)) {\r\n console.log('Button is inside container');\r\n}\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Event delegation - check if clicked element is within a specific area\r\ndocument.addEventListener('click', (event) => {\r\n const sidebar = document.getElementById('sidebar');\r\n if (elementContains(sidebar, event.target)) {\r\n console.log('Clicked inside sidebar');\r\n }\r\n});\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Accessibility - check if focused element is within a modal\r\nconst modal = document.querySelector('[role=\"dialog\"]');\r\nconst focusedElement = document.activeElement;\r\nif (!elementContains(modal, focusedElement)) {\r\n // Return focus to modal if it escaped\r\n modal.querySelector('[tabindex=\"0\"]')?.focus();\r\n}\n```"}]},{"tag":"@since","content":[{"kind":"text","text":"1.0.0"}]},{"tag":"@see","content":[{"kind":"text","text":" - "},{"kind":"inline-tag","tag":"@link","text":"https://developer.mozilla.org/en-US/docs/Web/API/Node/contains","target":"https://developer.mozilla.org/en-US/docs/Web/API/Node/contains"},{"kind":"text","text":" - Browser support: IE 9+, all modern browsers"},{"kind":"text","text":"\n"},{"kind":"text","text":" - "},{"kind":"inline-tag","tag":"@link","text":"https://www.w3.org/WAI/ARIA/apg/practices/keyboard-interface/","target":"https://www.w3.org/WAI/ARIA/apg/practices/keyboard-interface/"},{"kind":"text","text":" - ARIA keyboard navigation practices"},{"kind":"text","text":"\n"},{"kind":"text","text":" - "},{"kind":"inline-tag","tag":"@link","text":"https://www.w3.org/WAI/ARIA/apg/patterns/dialog-modal/","target":"https://www.w3.org/WAI/ARIA/apg/patterns/dialog-modal/"},{"kind":"text","text":" - Modal dialog accessibility patterns"},{"kind":"text","text":"\n"}]}]},"parameters":[{"id":938,"name":"parent","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"The potential parent element"}]},"type":{"type":"reference","name":"HTMLElement","qualifiedName":"HTMLElement","package":"typescript"},"text":{"comment":"

The potential parent element

\n"}},{"id":939,"name":"child","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"The potential child element to check for"}]},"type":{"type":"reference","name":"HTMLElement","qualifiedName":"HTMLElement","package":"typescript"},"text":{"comment":"

The potential child element to check for

\n"}}],"type":{"type":"intrinsic","name":"boolean"},"is":{"declaration":false},"location":{"query":"DOM.Function.elementContains","hash":"elementContains"},"text":{"comment":"
Description:

Checks if a parent element contains a child element (excluding self-containment)

\n
Returns:

True if parent contains child (but parent !== child), false otherwise

\n
Throws:

Throws if parent or child is null/undefined

\n
Example:
// Basic containment check\nconst container = document.getElementById('container');\nconst button = document.querySelector('.submit-button');\nif (elementContains(container, button)) {\n  console.log('Button is inside container');\n}\n
\n
Example:
// Event delegation - check if clicked element is within a specific area\ndocument.addEventListener('click', (event) => {\n  const sidebar = document.getElementById('sidebar');\n  if (elementContains(sidebar, event.target)) {\n    console.log('Clicked inside sidebar');\n  }\n});\n
\n
Example:
// Accessibility - check if focused element is within a modal\nconst modal = document.querySelector('[role=\"dialog\"]');\nconst focusedElement = document.activeElement;\nif (!elementContains(modal, focusedElement)) {\n  // Return focus to modal if it escaped\n  modal.querySelector('[tabindex=\"0\"]')?.focus();\n}\n
\n
Since:

1.0.0

\n
See:
\n"},"sources":[{"fileName":"packages/web-utils/src/dom.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/dom.ts","line":293,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/dom.ts#L293"}],"parentId":936}],"is":{"declaration":true},"location":{"query":"DOM.Function.elementContains","hash":""},"text":{},"parentId":913} diff --git a/docs/v1.0.0-beta01/data/DOM.Function.escapeHTML.json b/docs/v1.0.0-beta01/data/DOM.Function.escapeHTML.json new file mode 100644 index 000000000..3e80e0f8f --- /dev/null +++ b/docs/v1.0.0-beta01/data/DOM.Function.escapeHTML.json @@ -0,0 +1 @@ +{"id":951,"name":"escapeHTML","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/web-utils/src/dom.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/dom.ts","line":468,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/dom.ts#L468"}],"signatures":[{"id":952,"name":"escapeHTML","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@description","content":[{"kind":"text","text":"Escapes HTML special characters to prevent XSS attacks and ensure safe text display"}]},{"tag":"@returns","content":[{"kind":"text","text":"The escaped string with HTML entities, or original if null/undefined"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Basic XSS prevention\r\nconst userInput = '';\r\nconst safeText = escapeHTML(userInput);\r\nconsole.log(safeText); // '<script>alert("XSS")</script>'\n```"}]},{"tag":"@example","content":[{"kind":"text","text":"// Safe display of user content\r\nconst commentText = escapeHTML(user.comment);\r\ndocument.getElementById('comment').innerHTML = "},{"kind":"code","text":"`

${commentText}

`"},{"kind":"text","text":";"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Real-time input sanitization\r\nconst inputBox = document.getElementById('input-box');\r\nconst outputBox = document.getElementById('output-box');\r\n\r\ninputBox.addEventListener('input', () => {\r\n const escapedText = escapeHTML(inputBox.value);\r\n outputBox.textContent = escapedText; // Use textContent for additional safety\r\n});\n```"}]},{"tag":"@example","content":[{"kind":"text","text":"// Escape quotes for HTML attributes\r\nconst title = "},{"kind":"code","text":"`User said: \"Hello & goodbye\"`"},{"kind":"text","text":";\r\nconst escapedTitle = escapeHTML(title);\r\nelement.setAttribute('title', escapedTitle);"}]},{"tag":"@since","content":[{"kind":"text","text":"1.0.0"}]},{"tag":"@see","content":[{"kind":"text","text":" - "},{"kind":"inline-tag","tag":"@link","text":"https://cheatsheetseries.owasp.org/cheatsheets/Cross_Site_Scripting_Prevention_Cheat_Sheet.html","target":"https://cheatsheetseries.owasp.org/cheatsheets/Cross_Site_Scripting_Prevention_Cheat_Sheet.html"},{"kind":"text","text":" - OWASP XSS Prevention"},{"kind":"text","text":"\n"},{"kind":"text","text":" - "},{"kind":"inline-tag","tag":"@link","text":"https://developer.mozilla.org/en-US/docs/Glossary/Entity","target":"https://developer.mozilla.org/en-US/docs/Glossary/Entity"},{"kind":"text","text":" - HTML entities reference"},{"kind":"text","text":"\n"},{"kind":"text","text":" - "},{"kind":"inline-tag","tag":"@link","text":"https://www.w3.org/International/questions/qa-escapes","target":"https://www.w3.org/International/questions/qa-escapes"},{"kind":"text","text":" - W3C character escaping guidelines"},{"kind":"text","text":"\n"}]}]},"parameters":[{"id":953,"name":"str","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"The string to escape (handles null/undefined gracefully)"}]},"type":{"type":"intrinsic","name":"string"},"text":{"comment":"

The string to escape (handles null/undefined gracefully)

\n"}}],"type":{"type":"intrinsic","name":"string"},"is":{"declaration":false},"location":{"query":"DOM.Function.escapeHTML","hash":"escapeHTML"},"text":{"comment":"
Description:

Escapes HTML special characters to prevent XSS attacks and ensure safe text display

\n
Returns:

The escaped string with HTML entities, or original if null/undefined

\n
Example:
// Basic XSS prevention\nconst userInput = '<script>alert(\"XSS\")</script>';\nconst safeText = escapeHTML(userInput);\nconsole.log(safeText); // '&lt;script&gt;alert(&quot;XSS&quot;)&lt;/script&gt;'\n
\n
Example:

// Safe display of user content\nconst commentText = escapeHTML(user.comment);\ndocument.getElementById('comment').innerHTML = <p>${commentText}</p>;

\n
Example:
// Real-time input sanitization\nconst inputBox = document.getElementById('input-box');\nconst outputBox = document.getElementById('output-box');\n\ninputBox.addEventListener('input', () => {\n  const escapedText = escapeHTML(inputBox.value);\n  outputBox.textContent = escapedText; // Use textContent for additional safety\n});\n
\n
Example:

// Escape quotes for HTML attributes\nconst title = User said: "Hello & goodbye";\nconst escapedTitle = escapeHTML(title);\nelement.setAttribute('title', escapedTitle);

\n
Since:

1.0.0

\n
See:
\n"},"sources":[{"fileName":"packages/web-utils/src/dom.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/dom.ts","line":468,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/dom.ts#L468"}],"parentId":951}],"is":{"declaration":true},"location":{"query":"DOM.Function.escapeHTML","hash":""},"text":{},"parentId":913} diff --git a/docs/v1.0.0-beta01/data/DOM.Function.getOffsetPos.json b/docs/v1.0.0-beta01/data/DOM.Function.getOffsetPos.json new file mode 100644 index 000000000..8db271b25 --- /dev/null +++ b/docs/v1.0.0-beta01/data/DOM.Function.getOffsetPos.json @@ -0,0 +1 @@ +{"id":954,"name":"getOffsetPos","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/web-utils/src/dom.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/dom.ts","line":525,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/dom.ts#L525"}],"signatures":[{"id":955,"name":"getOffsetPos","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@description","content":[{"kind":"text","text":"Gets the absolute position of an element relative to the document, similar to jQuery's offset()"}]},{"tag":"@returns","content":[{"kind":"text","text":"Object containing left and top coordinates in pixels"}]},{"tag":"@example","content":[{"kind":"text","text":"// Get element position for tooltip placement\r\nconst button = document.getElementById('help-button');\r\nconst pos = getOffsetPos(button);\r\n\r\nconst tooltip = document.getElementById('tooltip');\r\ntooltip.style.left = "},{"kind":"code","text":"`${pos.left}px`"},{"kind":"text","text":";\r\ntooltip.style.top = "},{"kind":"code","text":"`${pos.top + button.offsetHeight + 5}px`"},{"kind":"text","text":";"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Calculate if element is in viewport\r\nconst element = document.querySelector('.lazy-load');\r\nconst elementPos = getOffsetPos(element);\r\nconst viewportHeight = window.innerHeight;\r\nconst scrollTop = getScrollTop();\r\n\r\nif (elementPos.top < scrollTop + viewportHeight) {\r\n // Element is visible, load content\r\n loadContent(element);\r\n}\n```"}]},{"tag":"@example","content":[{"kind":"text","text":"// Position floating elements relative to target\r\nconst targetElement = document.getElementById('anchor');\r\nconst floatingPanel = document.getElementById('panel');\r\nconst targetPos = getOffsetPos(targetElement);\r\n\r\nfloatingPanel.style.position = 'absolute';\r\nfloatingPanel.style.left = "},{"kind":"code","text":"`${targetPos.left}px`"},{"kind":"text","text":";\r\nfloatingPanel.style.top = "},{"kind":"code","text":"`${targetPos.top}px`"},{"kind":"text","text":";"}]},{"tag":"@since","content":[{"kind":"text","text":"1.0.0"}]},{"tag":"@see","content":[{"kind":"text","text":" - "},{"kind":"inline-tag","tag":"@link","text":"https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/offsetLeft","target":"https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/offsetLeft"},{"kind":"text","text":" - Browser support: All browsers"},{"kind":"text","text":"\n"},{"kind":"text","text":" - "},{"kind":"inline-tag","tag":"@link","text":"https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/offsetParent","target":"https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/offsetParent"},{"kind":"text","text":" - offsetParent documentation"},{"kind":"text","text":"\n"},{"kind":"text","text":" - "},{"kind":"inline-tag","tag":"@link","text":"https://www.w3.org/WAI/WCAG21/Understanding/focus-visible.html","target":"https://www.w3.org/WAI/WCAG21/Understanding/focus-visible.html"},{"kind":"text","text":" - WCAG: Focus indicators and positioning"},{"kind":"text","text":"\n"}]}]},"parameters":[{"id":956,"name":"elem","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The DOM element to get position for"}]},"type":{"type":"reference","name":"HTMLElement","qualifiedName":"HTMLElement","package":"typescript"},"text":{"comment":"

The DOM element to get position for

\n"}}],"type":{"type":"reflection","declaration":{"id":957,"name":"getOffsetPos","kind":65536,"kindString":"Type literal","flags":{},"children":[{"id":958,"name":"left","kind":1024,"kindString":"Property","flags":{},"sources":[{"fileName":"packages/web-utils/src/dom.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/dom.ts","line":527,"character":4,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/dom.ts#L527"}],"type":{"type":"intrinsic","name":"number"},"defaultValue":"0","is":{"declaration":true},"location":{"query":"DOM.Function.getOffsetPos","hash":"getOffsetPos.left"},"text":{},"parentId":954},{"id":959,"name":"top","kind":1024,"kindString":"Property","flags":{},"sources":[{"fileName":"packages/web-utils/src/dom.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/dom.ts","line":528,"character":4,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/dom.ts#L528"}],"type":{"type":"intrinsic","name":"number"},"defaultValue":"0","is":{"declaration":true},"location":{"query":"DOM.Function.getOffsetPos","hash":"getOffsetPos.top"},"text":{},"parentId":954}],"groups":[{"title":"Properties","children":[958,959]}],"sources":[{"fileName":"packages/web-utils/src/dom.ts","line":526,"character":14,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/dom.ts#L526"}],"location":{"query":"DOM.Function.getOffsetPos","hash":"getOffsetPos"}}},"is":{"declaration":false},"location":{"query":"DOM.Function.getOffsetPos","hash":"getOffsetPos"},"text":{"comment":"
Description:

Gets the absolute position of an element relative to the document, similar to jQuery's offset()

\n
Returns:

Object containing left and top coordinates in pixels

\n
Example:

// Get element position for tooltip placement\nconst button = document.getElementById('help-button');\nconst pos = getOffsetPos(button);

\n

const tooltip = document.getElementById('tooltip');\ntooltip.style.left = ${pos.left}px;\ntooltip.style.top = ${pos.top + button.offsetHeight + 5}px;

\n
Example:
// Calculate if element is in viewport\nconst element = document.querySelector('.lazy-load');\nconst elementPos = getOffsetPos(element);\nconst viewportHeight = window.innerHeight;\nconst scrollTop = getScrollTop();\n\nif (elementPos.top < scrollTop + viewportHeight) {\n  // Element is visible, load content\n  loadContent(element);\n}\n
\n
Example:

// Position floating elements relative to target\nconst targetElement = document.getElementById('anchor');\nconst floatingPanel = document.getElementById('panel');\nconst targetPos = getOffsetPos(targetElement);

\n

floatingPanel.style.position = 'absolute';\nfloatingPanel.style.left = ${targetPos.left}px;\nfloatingPanel.style.top = ${targetPos.top}px;

\n
Since:

1.0.0

\n
See:
\n"},"sources":[{"fileName":"packages/web-utils/src/dom.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/dom.ts","line":525,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/dom.ts#L525"}],"parentId":954}],"is":{"declaration":true},"location":{"query":"DOM.Function.getOffsetPos","hash":""},"text":{},"parentId":913} diff --git a/docs/v1.0.0-beta01/data/DOM.Function.getScrollPosition.json b/docs/v1.0.0-beta01/data/DOM.Function.getScrollPosition.json new file mode 100644 index 000000000..9baac77aa --- /dev/null +++ b/docs/v1.0.0-beta01/data/DOM.Function.getScrollPosition.json @@ -0,0 +1 @@ +{"id":962,"name":"getScrollPosition","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/web-utils/src/dom.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/dom.ts","line":641,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/dom.ts#L641"}],"signatures":[{"id":963,"name":"getScrollPosition","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@description","content":[{"kind":"text","text":"Gets the current scroll position (both X and Y) of the document or specified element"}]},{"tag":"@returns","content":[{"kind":"text","text":"Object containing horizontal (x) and vertical (y) scroll positions"}]},{"tag":"@example","content":[{"kind":"text","text":"// Get current document scroll position\r\nconst scrollPos = getScrollPosition();\r\nconsole.log("},{"kind":"code","text":"`Scrolled ${scrollPos.x}px horizontally, ${scrollPos.y}px vertically`"},{"kind":"text","text":");"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Save and restore scroll position (useful for SPAs)\r\nconst savedPosition = getScrollPosition();\r\nlocalStorage.setItem('scrollPosition', JSON.stringify(savedPosition));\r\n\r\n// Later, restore position\r\nconst restored = JSON.parse(localStorage.getItem('scrollPosition'));\r\nwindow.scrollTo(restored.x, restored.y);\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Get scroll position of specific scrollable element\r\nconst scrollableDiv = document.getElementById('scrollable-content');\r\nconst divScrollPos = getScrollPosition(scrollableDiv);\r\n\r\n// Sync scroll positions between elements\r\nconst otherDiv = document.getElementById('other-scrollable');\r\notherDiv.scrollTo(divScrollPos.x, divScrollPos.y);\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Implement scroll synchronization for accessibility\r\nconst mainContent = document.getElementById('main-content');\r\nconst minimap = document.getElementById('minimap');\r\n\r\nmainContent.addEventListener('scroll', () => {\r\n const pos = getScrollPosition(mainContent);\r\n const ratio = minimap.scrollHeight / mainContent.scrollHeight;\r\n minimap.scrollTo(pos.x * ratio, pos.y * ratio);\r\n});\n```"}]},{"tag":"@since","content":[{"kind":"text","text":"1.0.0"}]},{"tag":"@see","content":[{"kind":"text","text":" - "},{"kind":"inline-tag","tag":"@link","text":"getScrollTop","target":960},{"kind":"text","text":" - Get vertical scroll position only"},{"kind":"text","text":"\n"},{"kind":"text","text":" - "},{"kind":"inline-tag","tag":"@link","text":"setScrollTop","target":968},{"kind":"text","text":" - Set vertical scroll position"},{"kind":"text","text":"\n"},{"kind":"text","text":" - "},{"kind":"inline-tag","tag":"@link","text":"https://developer.mozilla.org/en-US/docs/Web/API/Window/pageXOffset","target":"https://developer.mozilla.org/en-US/docs/Web/API/Window/pageXOffset"},{"kind":"text","text":" - Browser support: All browsers"},{"kind":"text","text":"\n"},{"kind":"text","text":" - "},{"kind":"inline-tag","tag":"@link","text":"https://www.w3.org/WAI/WCAG21/Understanding/focus-order.html","target":"https://www.w3.org/WAI/WCAG21/Understanding/focus-order.html"},{"kind":"text","text":" - WCAG: Focus management during navigation"},{"kind":"text","text":"\n"}]}]},"parameters":[{"id":964,"name":"elem","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The element to get scroll position from (defaults to window)"}]},"type":{"type":"intersection","types":[{"type":"reference","name":"Window","qualifiedName":"Window","package":"typescript"},{"type":"query","queryType":{"type":"reference","name":"globalThis"}}]},"defaultValue":"window","text":{"comment":"

The element to get scroll position from (defaults to window)

\n"}}],"type":{"type":"reflection","declaration":{"id":965,"name":"getScrollPosition","kind":65536,"kindString":"Type literal","flags":{},"children":[{"id":966,"name":"x","kind":1024,"kindString":"Property","flags":{},"sources":[{"fileName":"packages/web-utils/src/dom.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/dom.ts","line":643,"character":4,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/dom.ts#L643"}],"type":{"type":"intrinsic","name":"number"},"defaultValue":"...","is":{"declaration":true},"location":{"query":"DOM.Function.getScrollPosition","hash":"getScrollPosition.x"},"text":{},"parentId":962},{"id":967,"name":"y","kind":1024,"kindString":"Property","flags":{},"sources":[{"fileName":"packages/web-utils/src/dom.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/dom.ts","line":644,"character":4,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/dom.ts#L644"}],"type":{"type":"intrinsic","name":"number"},"defaultValue":"...","is":{"declaration":true},"location":{"query":"DOM.Function.getScrollPosition","hash":"getScrollPosition.y"},"text":{},"parentId":962}],"groups":[{"title":"Properties","children":[966,967]}],"sources":[{"fileName":"packages/web-utils/src/dom.ts","line":642,"character":9,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/dom.ts#L642"}],"location":{"query":"DOM.Function.getScrollPosition","hash":"getScrollPosition"}}},"is":{"declaration":false},"location":{"query":"DOM.Function.getScrollPosition","hash":"getScrollPosition"},"text":{"comment":"
Description:

Gets the current scroll position (both X and Y) of the document or specified element

\n
Returns:

Object containing horizontal (x) and vertical (y) scroll positions

\n
Example:

// Get current document scroll position\nconst scrollPos = getScrollPosition();\nconsole.log(Scrolled ${scrollPos.x}px horizontally, ${scrollPos.y}px vertically);

\n
Example:
// Save and restore scroll position (useful for SPAs)\nconst savedPosition = getScrollPosition();\nlocalStorage.setItem('scrollPosition', JSON.stringify(savedPosition));\n\n// Later, restore position\nconst restored = JSON.parse(localStorage.getItem('scrollPosition'));\nwindow.scrollTo(restored.x, restored.y);\n
\n
Example:
// Get scroll position of specific scrollable element\nconst scrollableDiv = document.getElementById('scrollable-content');\nconst divScrollPos = getScrollPosition(scrollableDiv);\n\n// Sync scroll positions between elements\nconst otherDiv = document.getElementById('other-scrollable');\notherDiv.scrollTo(divScrollPos.x, divScrollPos.y);\n
\n
Example:
// Implement scroll synchronization for accessibility\nconst mainContent = document.getElementById('main-content');\nconst minimap = document.getElementById('minimap');\n\nmainContent.addEventListener('scroll', () => {\n  const pos = getScrollPosition(mainContent);\n  const ratio = minimap.scrollHeight / mainContent.scrollHeight;\n  minimap.scrollTo(pos.x * ratio, pos.y * ratio);\n});\n
\n
Since:

1.0.0

\n
See:
\n"},"sources":[{"fileName":"packages/web-utils/src/dom.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/dom.ts","line":641,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/dom.ts#L641"}],"parentId":962}],"is":{"declaration":true},"location":{"query":"DOM.Function.getScrollPosition","hash":""},"text":{},"parentId":913} diff --git a/docs/v1.0.0-beta01/data/DOM.Function.getScrollTop.json b/docs/v1.0.0-beta01/data/DOM.Function.getScrollTop.json new file mode 100644 index 000000000..10cd37915 --- /dev/null +++ b/docs/v1.0.0-beta01/data/DOM.Function.getScrollTop.json @@ -0,0 +1 @@ +{"id":960,"name":"getScrollTop","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/web-utils/src/dom.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/dom.ts","line":593,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/dom.ts#L593"}],"signatures":[{"id":961,"name":"getScrollTop","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@description","content":[{"kind":"text","text":"Gets the current vertical scroll position of the document"}]},{"tag":"@returns","content":[{"kind":"text","text":"The number of pixels scrolled from the top of the document"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Show/hide scroll-to-top button based on scroll position\r\nwindow.addEventListener('scroll', () => {\r\n const scrollTop = getScrollTop();\r\n const scrollButton = document.getElementById('scroll-to-top');\r\n\r\n if (scrollTop > 300) {\r\n scrollButton.style.display = 'block';\r\n scrollButton.setAttribute('aria-hidden', 'false');\r\n } else {\r\n scrollButton.style.display = 'none';\r\n scrollButton.setAttribute('aria-hidden', 'true');\r\n }\r\n});\n```"}]},{"tag":"@example","content":[{"kind":"text","text":"// Implement scroll progress indicator\r\nfunction updateScrollProgress() {\r\n const scrollTop = getScrollTop();\r\n const docHeight = document.documentElement.scrollHeight - window.innerHeight;\r\n const scrollPercent = (scrollTop / docHeight) * 100;\r\n\r\n const progressBar = document.getElementById('scroll-progress');\r\n progressBar.style.width = "},{"kind":"code","text":"`${scrollPercent}%`"},{"kind":"text","text":";\r\n progressBar.setAttribute('aria-valuenow', scrollPercent.toString());\r\n}"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Lazy loading based on scroll position\r\nconst images = document.querySelectorAll('img[data-src]');\r\nwindow.addEventListener('scroll', () => {\r\n const scrollTop = getScrollTop();\r\n const viewportHeight = window.innerHeight;\r\n\r\n images.forEach(img => {\r\n const imgTop = getOffsetPos(img).top;\r\n if (imgTop < scrollTop + viewportHeight + 100) {\r\n img.src = img.dataset.src;\r\n img.removeAttribute('data-src');\r\n }\r\n });\r\n});\n```"}]},{"tag":"@since","content":[{"kind":"text","text":"1.0.0"}]},{"tag":"@see","content":[{"kind":"text","text":" - "},{"kind":"inline-tag","tag":"@link","text":"setScrollTop","target":968},{"kind":"text","text":" - Set scroll position"},{"kind":"text","text":"\n"},{"kind":"text","text":" - "},{"kind":"inline-tag","tag":"@link","text":"getScrollPosition","target":962},{"kind":"text","text":" - Get both X and Y scroll positions"},{"kind":"text","text":"\n"},{"kind":"text","text":" - "},{"kind":"inline-tag","tag":"@link","text":"https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollTop","target":"https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollTop"},{"kind":"text","text":" - Browser support: All browsers"},{"kind":"text","text":"\n"},{"kind":"text","text":" - "},{"kind":"inline-tag","tag":"@link","text":"https://www.w3.org/WAI/WCAG21/Understanding/focus-order.html","target":"https://www.w3.org/WAI/WCAG21/Understanding/focus-order.html"},{"kind":"text","text":" - WCAG: Maintaining focus during scroll"},{"kind":"text","text":"\n"}]}]},"type":{"type":"intrinsic","name":"number"},"is":{"declaration":false},"location":{"query":"DOM.Function.getScrollTop","hash":"getScrollTop"},"text":{"comment":"
Description:

Gets the current vertical scroll position of the document

\n
Returns:

The number of pixels scrolled from the top of the document

\n
Example:
// Show/hide scroll-to-top button based on scroll position\nwindow.addEventListener('scroll', () => {\n  const scrollTop = getScrollTop();\n  const scrollButton = document.getElementById('scroll-to-top');\n\n  if (scrollTop > 300) {\n    scrollButton.style.display = 'block';\n    scrollButton.setAttribute('aria-hidden', 'false');\n  } else {\n    scrollButton.style.display = 'none';\n    scrollButton.setAttribute('aria-hidden', 'true');\n  }\n});\n
\n
Example:

// Implement scroll progress indicator\nfunction updateScrollProgress() {\n const scrollTop = getScrollTop();\n const docHeight = document.documentElement.scrollHeight - window.innerHeight;\n const scrollPercent = (scrollTop / docHeight) * 100;

\n

const progressBar = document.getElementById('scroll-progress');\n progressBar.style.width = ${scrollPercent}%;\n progressBar.setAttribute('aria-valuenow', scrollPercent.toString());\n}

\n
Example:
// Lazy loading based on scroll position\nconst images = document.querySelectorAll('img[data-src]');\nwindow.addEventListener('scroll', () => {\n  const scrollTop = getScrollTop();\n  const viewportHeight = window.innerHeight;\n\n  images.forEach(img => {\n    const imgTop = getOffsetPos(img).top;\n    if (imgTop < scrollTop + viewportHeight + 100) {\n      img.src = img.dataset.src;\n      img.removeAttribute('data-src');\n    }\n  });\n});\n
\n
Since:

1.0.0

\n
See:
\n"},"sources":[{"fileName":"packages/web-utils/src/dom.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/dom.ts","line":593,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/dom.ts#L593"}],"parentId":960}],"is":{"declaration":true},"location":{"query":"DOM.Function.getScrollTop","hash":""},"text":{},"parentId":913} diff --git a/docs/v1.0.0-beta01/data/DOM.Function.hasClass.json b/docs/v1.0.0-beta01/data/DOM.Function.hasClass.json new file mode 100644 index 000000000..6ea75b900 --- /dev/null +++ b/docs/v1.0.0-beta01/data/DOM.Function.hasClass.json @@ -0,0 +1 @@ +{"id":916,"name":"hasClass","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/web-utils/src/dom.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/dom.ts","line":77,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/dom.ts#L77"}],"signatures":[{"id":917,"name":"hasClass","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"hasClass"}]},{"tag":"@description","content":[{"kind":"text","text":"检查DOM元素是否包含特定的CSS类名。Checks if a DOM element contains a specific CSS class name"}]},{"tag":"@returns","content":[{"kind":"text","text":"如果元素包含指定类则为true,否则为false。True if the element contains the specified class, false otherwise"}]},{"tag":"@throws","content":[{"kind":"text","text":"如果elem为null/undefined或className为空则抛出错误。Throws if elem is null/undefined or className is empty"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Basic usage\r\nconst button = document.querySelector('.my-button');\r\nif (hasClass(button, 'active')) {\r\n console.log('Button is active');\r\n}\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Check multiple classes\r\nconst elem = document.createElement('div');\r\nelem.className = 'nav-item active highlighted';\r\nconsole.log(hasClass(elem, 'active')); // true\r\nconsole.log(hasClass(elem, 'nav-item')); // true\r\nconsole.log(hasClass(elem, 'disabled')); // false\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Handles edge cases with whitespace\r\nconst elem = document.createElement('div');\r\nelem.className = ' spaced-class ';\r\nconsole.log(hasClass(elem, 'spaced-class')); // true\r\nconsole.log(hasClass(elem, ' spaced-class ')); // false (exact match required)\n```"}]},{"tag":"@since","content":[{"kind":"text","text":"1.0.0"}]},{"tag":"@see","content":[{"kind":"text","text":" - "},{"kind":"inline-tag","tag":"@link","text":"addClass","target":920},{"kind":"text","text":" - Add CSS classes to elements"},{"kind":"text","text":"\n"},{"kind":"text","text":" - "},{"kind":"inline-tag","tag":"@link","text":"removeClass","target":924},{"kind":"text","text":" - Remove CSS classes from elements"},{"kind":"text","text":"\n"},{"kind":"text","text":" - "},{"kind":"inline-tag","tag":"@link","text":"https://developer.mozilla.org/en-US/docs/Web/API/Element/classList","target":"https://developer.mozilla.org/en-US/docs/Web/API/Element/classList"},{"kind":"text","text":" - Modern classList API (IE 10+)"},{"kind":"text","text":"\n"},{"kind":"text","text":" - "},{"kind":"inline-tag","tag":"@link","text":"https://www.w3.org/WAI/WCAG21/Understanding/info-and-relationships.html","target":"https://www.w3.org/WAI/WCAG21/Understanding/info-and-relationships.html"},{"kind":"text","text":" - WCAG: Use semantic classes for accessibility"},{"kind":"text","text":"\n"}]}]},"parameters":[{"id":918,"name":"elem","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"要检查的DOM元素。The DOM element to check"}]},"type":{"type":"reference","name":"HTMLElement","qualifiedName":"HTMLElement","package":"typescript"},"text":{"comment":"

要检查的DOM元素。The DOM element to check

\n"}},{"id":919,"name":"className","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"要查找的CSS类名(不带前导点)。The CSS class name to look for (without leading dot)"}]},"type":{"type":"intrinsic","name":"string"},"text":{"comment":"

要查找的CSS类名(不带前导点)。The CSS class name to look for (without leading dot)

\n"}}],"type":{"type":"intrinsic","name":"boolean"},"is":{"declaration":false},"location":{"query":"DOM.Function.hasClass","hash":"hasClass"},"text":{"comment":"
Function:

hasClass

\n
Description:

检查DOM元素是否包含特定的CSS类名。Checks if a DOM element contains a specific CSS class name

\n
Returns:

如果元素包含指定类则为true,否则为false。True if the element contains the specified class, false otherwise

\n
Throws:

如果elem为null/undefined或className为空则抛出错误。Throws if elem is null/undefined or className is empty

\n
Example:
// Basic usage\nconst button = document.querySelector('.my-button');\nif (hasClass(button, 'active')) {\n  console.log('Button is active');\n}\n
\n
Example:
// Check multiple classes\nconst elem = document.createElement('div');\nelem.className = 'nav-item active highlighted';\nconsole.log(hasClass(elem, 'active')); // true\nconsole.log(hasClass(elem, 'nav-item')); // true\nconsole.log(hasClass(elem, 'disabled')); // false\n
\n
Example:
// Handles edge cases with whitespace\nconst elem = document.createElement('div');\nelem.className = '  spaced-class  ';\nconsole.log(hasClass(elem, 'spaced-class')); // true\nconsole.log(hasClass(elem, '  spaced-class  ')); // false (exact match required)\n
\n
Since:

1.0.0

\n
See:
\n"},"sources":[{"fileName":"packages/web-utils/src/dom.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/dom.ts","line":77,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/dom.ts#L77"}],"parentId":916}],"is":{"declaration":true},"location":{"query":"DOM.Function.hasClass","hash":""},"text":{},"parentId":913} diff --git a/docs/v1.0.0-beta01/data/DOM.Function.hide.json b/docs/v1.0.0-beta01/data/DOM.Function.hide.json new file mode 100644 index 000000000..455ee36b2 --- /dev/null +++ b/docs/v1.0.0-beta01/data/DOM.Function.hide.json @@ -0,0 +1 @@ +{"id":940,"name":"hide","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/web-utils/src/dom.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/dom.ts","line":330,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/dom.ts#L330"}],"signatures":[{"id":941,"name":"hide","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@description","content":[{"kind":"text","text":"Hides one or more DOM elements by setting display: none"}]},{"tag":"@returns","content":[]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Hide single element\r\nconst modal = document.getElementById('modal');\r\nhide(modal);\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Hide multiple elements at once\r\nconst buttons = document.querySelectorAll('.temporary-button');\r\nhide(...buttons);\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Accessible hiding with proper ARIA attributes\r\nconst tooltip = document.getElementById('tooltip');\r\nhide(tooltip);\r\ntooltip.setAttribute('aria-hidden', 'true');\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Conditional hiding based on user preferences\r\nconst animations = document.querySelectorAll('.animated');\r\nif (window.matchMedia('(prefers-reduced-motion: reduce)').matches) {\r\n hide(...animations);\r\n}\n```"}]},{"tag":"@since","content":[{"kind":"text","text":"1.0.0"}]},{"tag":"@see","content":[{"kind":"text","text":" - "},{"kind":"inline-tag","tag":"@link","text":"https://developer.mozilla.org/en-US/docs/Web/CSS/display","target":"https://developer.mozilla.org/en-US/docs/Web/CSS/display"},{"kind":"text","text":" - CSS display property"},{"kind":"text","text":"\n"},{"kind":"text","text":" - "},{"kind":"inline-tag","tag":"@link","text":"https://www.w3.org/WAI/WCAG21/Understanding/content-on-hover-or-focus.html","target":"https://www.w3.org/WAI/WCAG21/Understanding/content-on-hover-or-focus.html"},{"kind":"text","text":" - WCAG: Content on hover or focus"},{"kind":"text","text":"\n"},{"kind":"text","text":" - "},{"kind":"inline-tag","tag":"@link","text":"https://www.w3.org/WAI/ARIA/apg/practices/hiding/","target":"https://www.w3.org/WAI/ARIA/apg/practices/hiding/"},{"kind":"text","text":" - ARIA hiding techniques"},{"kind":"text","text":"\n"},{"kind":"text","text":" - "},{"kind":"inline-tag","tag":"@link","text":"https://web.dev/prefers-reduced-motion/","target":"https://web.dev/prefers-reduced-motion/"},{"kind":"text","text":" - Respecting user motion preferences"},{"kind":"text","text":"\n"}]}]},"parameters":[{"id":942,"name":"elems","kind":32768,"kindString":"Parameter","flags":{"isRest":true},"comment":{"summary":[{"kind":"text","text":"Variable number of DOM elements to hide"}]},"type":{"type":"array","elementType":{"type":"reference","name":"HTMLElement","qualifiedName":"HTMLElement","package":"typescript"}},"text":{"comment":"

Variable number of DOM elements to hide

\n"}}],"type":{"type":"intrinsic","name":"void"},"is":{"declaration":false},"location":{"query":"DOM.Function.hide","hash":"hide"},"text":{"comment":"
Description:

Hides one or more DOM elements by setting display: none

\n
Returns:
Example:
// Hide single element\nconst modal = document.getElementById('modal');\nhide(modal);\n
\n
Example:
// Hide multiple elements at once\nconst buttons = document.querySelectorAll('.temporary-button');\nhide(...buttons);\n
\n
Example:
// Accessible hiding with proper ARIA attributes\nconst tooltip = document.getElementById('tooltip');\nhide(tooltip);\ntooltip.setAttribute('aria-hidden', 'true');\n
\n
Example:
// Conditional hiding based on user preferences\nconst animations = document.querySelectorAll('.animated');\nif (window.matchMedia('(prefers-reduced-motion: reduce)').matches) {\n  hide(...animations);\n}\n
\n
Since:

1.0.0

\n
See:
\n"},"sources":[{"fileName":"packages/web-utils/src/dom.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/dom.ts","line":330,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/dom.ts#L330"}],"parentId":940}],"is":{"declaration":true},"location":{"query":"DOM.Function.hide","hash":""},"text":{},"parentId":913} diff --git a/docs/v1.0.0-beta01/data/DOM.Function.insertAfter.json b/docs/v1.0.0-beta01/data/DOM.Function.insertAfter.json new file mode 100644 index 000000000..9dab78ebc --- /dev/null +++ b/docs/v1.0.0-beta01/data/DOM.Function.insertAfter.json @@ -0,0 +1 @@ +{"id":928,"name":"insertAfter","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/web-utils/src/dom.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/dom.ts","line":211,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/dom.ts#L211"}],"signatures":[{"id":929,"name":"insertAfter","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@description","content":[{"kind":"text","text":"Inserts HTML content immediately after the specified element"}]},{"tag":"@returns","content":[]},{"tag":"@throws","content":[{"kind":"text","text":"Throws if htmlString contains invalid HTML"}]},{"tag":"@throws","content":[{"kind":"text","text":"Throws if elem is null or not an HTMLElement"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Insert a simple element after another\r\nconst target = document.getElementById('target');\r\ninsertAfter(target, '
Content added!
');\n```"}]},{"tag":"@example","content":[{"kind":"text","text":"// Insert complex HTML structure\r\nconst listItem = document.querySelector('li:last-child');\r\nconst newItemHTML = "},{"kind":"code","text":"`\r\n
  • \r\n New Item\r\n \r\n
  • \r\n`"},{"kind":"text","text":";\r\ninsertAfter(listItem, newItemHTML);"}]},{"tag":"@example","content":[{"kind":"text","text":"// Security consideration - sanitize user input\r\nconst userContent = escapeHTML(userInput);\r\nconst safeHTML = "},{"kind":"code","text":"`
    ${userContent}
    `"},{"kind":"text","text":";\r\ninsertAfter(targetElement, safeHTML);"}]},{"tag":"@since","content":[{"kind":"text","text":"1.0.0"}]},{"tag":"@see","content":[{"kind":"text","text":" - "},{"kind":"inline-tag","tag":"@link","text":"insertBefore","target":932},{"kind":"text","text":" - Insert content before an element"},{"kind":"text","text":"\n"},{"kind":"text","text":" - "},{"kind":"inline-tag","tag":"@link","text":"escapeHTML","target":951},{"kind":"text","text":" - Sanitize HTML content to prevent XSS"},{"kind":"text","text":"\n"},{"kind":"text","text":" - "},{"kind":"inline-tag","tag":"@link","text":"https://developer.mozilla.org/en-US/docs/Web/API/Element/insertAdjacentHTML","target":"https://developer.mozilla.org/en-US/docs/Web/API/Element/insertAdjacentHTML"},{"kind":"text","text":" - Browser support: IE 4+, all browsers"},{"kind":"text","text":"\n"},{"kind":"text","text":" - "},{"kind":"inline-tag","tag":"@link","text":"https://www.w3.org/WAI/WCAG21/Understanding/parsing.html","target":"https://www.w3.org/WAI/WCAG21/Understanding/parsing.html"},{"kind":"text","text":" - WCAG: Ensure valid HTML markup"},{"kind":"text","text":"\n"},{"kind":"text","text":" - "},{"kind":"inline-tag","tag":"@link","text":"https://cheatsheetseries.owasp.org/cheatsheets/Cross_Site_Scripting_Prevention_Cheat_Sheet.html","target":"https://cheatsheetseries.owasp.org/cheatsheets/Cross_Site_Scripting_Prevention_Cheat_Sheet.html"},{"kind":"text","text":" - XSS prevention guidelines"},{"kind":"text","text":"\n"}]}]},"parameters":[{"id":930,"name":"elem","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"The reference element to insert content after"}]},"type":{"type":"reference","name":"HTMLElement","qualifiedName":"HTMLElement","package":"typescript"},"text":{"comment":"

    The reference element to insert content after

    \n"}},{"id":931,"name":"htmlString","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"The HTML string to insert (must be valid HTML)"}]},"type":{"type":"intrinsic","name":"string"},"text":{"comment":"

    The HTML string to insert (must be valid HTML)

    \n"}}],"type":{"type":"intrinsic","name":"void"},"is":{"declaration":false},"location":{"query":"DOM.Function.insertAfter","hash":"insertAfter"},"text":{"comment":"
    Description:

    Inserts HTML content immediately after the specified element

    \n
    Returns:
    Throws:

    Throws if htmlString contains invalid HTML

    \n
    Throws:

    Throws if elem is null or not an HTMLElement

    \n
    Example:
    // Insert a simple element after another\nconst target = document.getElementById('target');\ninsertAfter(target, '<div class=\"notification\">Content added!</div>');\n
    \n
    Example:

    // Insert complex HTML structure\nconst listItem = document.querySelector('li:last-child');\nconst newItemHTML = <li role="listitem"> <span>New Item</span> <button aria-label="Remove item">×</button> </li>;\ninsertAfter(listItem, newItemHTML);

    \n
    Example:

    // Security consideration - sanitize user input\nconst userContent = escapeHTML(userInput);\nconst safeHTML = <div class="user-content">${userContent}</div>;\ninsertAfter(targetElement, safeHTML);

    \n
    Since:

    1.0.0

    \n
    See:
    \n"},"sources":[{"fileName":"packages/web-utils/src/dom.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/dom.ts","line":211,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/dom.ts#L211"}],"parentId":928}],"is":{"declaration":true},"location":{"query":"DOM.Function.insertAfter","hash":""},"text":{},"parentId":913} diff --git a/docs/v1.0.0-beta01/data/DOM.Function.insertBefore.json b/docs/v1.0.0-beta01/data/DOM.Function.insertBefore.json new file mode 100644 index 000000000..0d2a708b9 --- /dev/null +++ b/docs/v1.0.0-beta01/data/DOM.Function.insertBefore.json @@ -0,0 +1 @@ +{"id":932,"name":"insertBefore","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/web-utils/src/dom.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/dom.ts","line":252,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/dom.ts#L252"}],"signatures":[{"id":933,"name":"insertBefore","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@description","content":[{"kind":"text","text":"Inserts HTML content immediately before the specified element"}]},{"tag":"@returns","content":[]},{"tag":"@throws","content":[{"kind":"text","text":"Throws if htmlString contains invalid HTML"}]},{"tag":"@throws","content":[{"kind":"text","text":"Throws if elem is null or not an HTMLElement"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Insert a warning message before a form\r\nconst form = document.getElementById('signup-form');\r\ninsertBefore(form, '
    Please review your information
    ');\n```"}]},{"tag":"@example","content":[{"kind":"text","text":"// Insert navigation breadcrumbs\r\nconst mainContent = document.querySelector('main');\r\nconst breadcrumbHTML = "},{"kind":"code","text":"`\r\n \r\n`"},{"kind":"text","text":";\r\ninsertBefore(mainContent, breadcrumbHTML);"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Insert loading indicator before content\r\nconst contentArea = document.getElementById('content');\r\ninsertBefore(contentArea, '
    Loading...
    ');\n```"}]},{"tag":"@since","content":[{"kind":"text","text":"1.0.0"}]},{"tag":"@see","content":[{"kind":"text","text":" - "},{"kind":"inline-tag","tag":"@link","text":"insertAfter","target":928},{"kind":"text","text":" - Insert content after an element"},{"kind":"text","text":"\n"},{"kind":"text","text":" - "},{"kind":"inline-tag","tag":"@link","text":"escapeHTML","target":951},{"kind":"text","text":" - Sanitize HTML content to prevent XSS"},{"kind":"text","text":"\n"},{"kind":"text","text":" - "},{"kind":"inline-tag","tag":"@link","text":"https://developer.mozilla.org/en-US/docs/Web/API/Element/insertAdjacentHTML","target":"https://developer.mozilla.org/en-US/docs/Web/API/Element/insertAdjacentHTML"},{"kind":"text","text":" - Browser support: IE 4+, all browsers"},{"kind":"text","text":"\n"},{"kind":"text","text":" - "},{"kind":"inline-tag","tag":"@link","text":"https://www.w3.org/WAI/WCAG21/Understanding/parsing.html","target":"https://www.w3.org/WAI/WCAG21/Understanding/parsing.html"},{"kind":"text","text":" - WCAG: Ensure valid HTML markup"},{"kind":"text","text":"\n"},{"kind":"text","text":" - "},{"kind":"inline-tag","tag":"@link","text":"https://www.w3.org/WAI/ARIA/apg/practices/landmarks/","target":"https://www.w3.org/WAI/ARIA/apg/practices/landmarks/"},{"kind":"text","text":" - ARIA landmark practices"},{"kind":"text","text":"\n"}]}]},"parameters":[{"id":934,"name":"elem","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"The reference element to insert content before"}]},"type":{"type":"reference","name":"HTMLElement","qualifiedName":"HTMLElement","package":"typescript"},"text":{"comment":"

    The reference element to insert content before

    \n"}},{"id":935,"name":"htmlString","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"The HTML string to insert (must be valid HTML)"}]},"type":{"type":"intrinsic","name":"string"},"text":{"comment":"

    The HTML string to insert (must be valid HTML)

    \n"}}],"type":{"type":"intrinsic","name":"void"},"is":{"declaration":false},"location":{"query":"DOM.Function.insertBefore","hash":"insertBefore"},"text":{"comment":"
    Description:

    Inserts HTML content immediately before the specified element

    \n
    Returns:
    Throws:

    Throws if htmlString contains invalid HTML

    \n
    Throws:

    Throws if elem is null or not an HTMLElement

    \n
    Example:
    // Insert a warning message before a form\nconst form = document.getElementById('signup-form');\ninsertBefore(form, '<div class=\"alert alert-warning\">Please review your information</div>');\n
    \n
    Example:

    // Insert navigation breadcrumbs\nconst mainContent = document.querySelector('main');\nconst breadcrumbHTML = <nav aria-label="Breadcrumb"> <ol class="breadcrumb"> <li><a href="/">Home</a></li> <li aria-current="page">Current Page</li> </ol> </nav>;\ninsertBefore(mainContent, breadcrumbHTML);

    \n
    Example:
    // Insert loading indicator before content\nconst contentArea = document.getElementById('content');\ninsertBefore(contentArea, '<div class=\"loading\" aria-live=\"polite\">Loading...</div>');\n
    \n
    Since:

    1.0.0

    \n
    See:
    \n"},"sources":[{"fileName":"packages/web-utils/src/dom.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/dom.ts","line":252,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/dom.ts#L252"}],"parentId":932}],"is":{"declaration":true},"location":{"query":"DOM.Function.insertBefore","hash":""},"text":{},"parentId":913} diff --git a/docs/v1.0.0-beta01/data/DOM.Function.isPageVisible.json b/docs/v1.0.0-beta01/data/DOM.Function.isPageVisible.json new file mode 100644 index 000000000..38038d253 --- /dev/null +++ b/docs/v1.0.0-beta01/data/DOM.Function.isPageVisible.json @@ -0,0 +1 @@ +{"id":914,"name":"isPageVisible","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/web-utils/src/dom.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/dom.ts","line":38,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/dom.ts#L38"}],"signatures":[{"id":915,"name":"isPageVisible","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"isPageVisible"}]},{"tag":"@description","content":[{"kind":"text","text":"检查当前页面是否对用户可见(未隐藏或最小化)。Checks if the current page is visible to the user (not hidden or minimized)"}]},{"tag":"@returns","content":[{"kind":"text","text":"如果页面可见则为true,如果隐藏/最小化则为false。True if the page is visible, false if hidden/minimized"}]},{"tag":"@throws","content":[{"kind":"text","text":"如果document不可用(非浏览器环境)则抛出错误。Throws if document is not available (non-browser environment)"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Basic usage - pause animations when page is hidden\r\nif (!isPageVisible()) {\r\n // Cancel requests, pause animations, etc.\r\n pauseVideoPlayback();\r\n clearInterval(animationTimer);\r\n}\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Listen for visibility changes\r\ndocument.addEventListener('visibilitychange', () => {\r\n if (isPageVisible()) {\r\n console.log('Page is now visible');\r\n resumeOperations();\r\n } else {\r\n console.log('Page is now hidden');\r\n pauseOperations();\r\n }\r\n});\n```"}]},{"tag":"@since","content":[{"kind":"text","text":"1.0.0"}]},{"tag":"@see","content":[{"kind":"text","text":" - "},{"kind":"inline-tag","tag":"@link","text":"https://developer.mozilla.org/en-US/docs/Web/API/Document/hidden","target":"https://developer.mozilla.org/en-US/docs/Web/API/Document/hidden"},{"kind":"text","text":" - Browser compatibility: IE 10+, all modern browsers"},{"kind":"text","text":"\n"},{"kind":"text","text":" - "},{"kind":"inline-tag","tag":"@link","text":"https://www.w3.org/WAI/WCAG21/Understanding/pause-stop-hide.html","target":"https://www.w3.org/WAI/WCAG21/Understanding/pause-stop-hide.html"},{"kind":"text","text":" - WCAG accessibility guidelines for auto-playing content"},{"kind":"text","text":"\n"}]}]},"type":{"type":"intrinsic","name":"boolean"},"is":{"declaration":false},"location":{"query":"DOM.Function.isPageVisible","hash":"isPageVisible"},"text":{"comment":"
    Function:

    isPageVisible

    \n
    Description:

    检查当前页面是否对用户可见(未隐藏或最小化)。Checks if the current page is visible to the user (not hidden or minimized)

    \n
    Returns:

    如果页面可见则为true,如果隐藏/最小化则为false。True if the page is visible, false if hidden/minimized

    \n
    Throws:

    如果document不可用(非浏览器环境)则抛出错误。Throws if document is not available (non-browser environment)

    \n
    Example:
    // Basic usage - pause animations when page is hidden\nif (!isPageVisible()) {\n  // Cancel requests, pause animations, etc.\n  pauseVideoPlayback();\n  clearInterval(animationTimer);\n}\n
    \n
    Example:
    // Listen for visibility changes\ndocument.addEventListener('visibilitychange', () => {\n  if (isPageVisible()) {\n    console.log('Page is now visible');\n    resumeOperations();\n  } else {\n    console.log('Page is now hidden');\n    pauseOperations();\n  }\n});\n
    \n
    Since:

    1.0.0

    \n
    See:
    \n"},"sources":[{"fileName":"packages/web-utils/src/dom.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/dom.ts","line":38,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/dom.ts#L38"}],"parentId":914}],"is":{"declaration":true},"location":{"query":"DOM.Function.isPageVisible","hash":""},"text":{},"parentId":913} diff --git a/docs/v1.0.0-beta01/data/DOM.Function.nodeListToArray.json b/docs/v1.0.0-beta01/data/DOM.Function.nodeListToArray.json new file mode 100644 index 000000000..1a2f87431 --- /dev/null +++ b/docs/v1.0.0-beta01/data/DOM.Function.nodeListToArray.json @@ -0,0 +1 @@ +{"id":943,"name":"nodeListToArray","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/web-utils/src/dom.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/dom.ts","line":372,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/dom.ts#L372"}],"signatures":[{"id":944,"name":"nodeListToArray","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@description","content":[{"kind":"text","text":"Converts a NodeList or HTMLCollection to a proper Array for easier manipulation"}]},{"tag":"@returns","content":[{"kind":"text","text":"A new array containing all elements from the node list"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Convert NodeList from querySelectorAll to array\r\nconst divs = document.querySelectorAll('div');\r\nconst divArray = nodeListToArray(divs);\r\n\r\n// Now you can use array methods\r\ndivArray.forEach(div => {\r\n div.classList.add('processed');\r\n});\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Filter and map operations on DOM elements\r\nconst buttons = document.querySelectorAll('button');\r\nconst buttonArray = nodeListToArray(buttons);\r\n\r\nconst enabledButtons = buttonArray\r\n .filter(btn => !btn.disabled)\r\n .map(btn => btn.textContent);\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Convert HTMLCollection (live collection) to static array\r\nconst forms = document.forms; // HTMLCollection\r\nconst formArray = nodeListToArray(forms);\r\n\r\n// Safe to iterate even if DOM changes\r\nformArray.forEach(form => {\r\n form.addEventListener('submit', handleSubmit);\r\n});\n```"}]},{"tag":"@since","content":[{"kind":"text","text":"1.0.0"}]},{"tag":"@see","content":[{"kind":"text","text":" - "},{"kind":"inline-tag","tag":"@link","text":"https://developer.mozilla.org/en-US/docs/Web/API/NodeList","target":"https://developer.mozilla.org/en-US/docs/Web/API/NodeList"},{"kind":"text","text":" - NodeList documentation"},{"kind":"text","text":"\n"},{"kind":"text","text":" - "},{"kind":"inline-tag","tag":"@link","text":"https://developer.mozilla.org/en-US/docs/Web/API/HTMLCollection","target":"https://developer.mozilla.org/en-US/docs/Web/API/HTMLCollection"},{"kind":"text","text":" - HTMLCollection documentation"},{"kind":"text","text":"\n"},{"kind":"text","text":" - "},{"kind":"inline-tag","tag":"@link","text":"https://caniuse.com/es6-array-from","target":"https://caniuse.com/es6-array-from"},{"kind":"text","text":" - Browser support for Array.from (IE 9+ with polyfill)"},{"kind":"text","text":"\n"}]}]},"parameters":[{"id":945,"name":"nodeList","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"The node collection to convert"}]},"type":{"type":"array","elementType":{"type":"reference","name":"HTMLElement","qualifiedName":"HTMLElement","package":"typescript"}},"text":{"comment":"

    The node collection to convert

    \n"}}],"type":{"type":"array","elementType":{"type":"reference","name":"HTMLElement","qualifiedName":"HTMLElement","package":"typescript"}},"is":{"declaration":false},"location":{"query":"DOM.Function.nodeListToArray","hash":"nodeListToArray"},"text":{"comment":"
    Description:

    Converts a NodeList or HTMLCollection to a proper Array for easier manipulation

    \n
    Returns:

    A new array containing all elements from the node list

    \n
    Example:
    // Convert NodeList from querySelectorAll to array\nconst divs = document.querySelectorAll('div');\nconst divArray = nodeListToArray(divs);\n\n// Now you can use array methods\ndivArray.forEach(div => {\n  div.classList.add('processed');\n});\n
    \n
    Example:
    // Filter and map operations on DOM elements\nconst buttons = document.querySelectorAll('button');\nconst buttonArray = nodeListToArray(buttons);\n\nconst enabledButtons = buttonArray\n  .filter(btn => !btn.disabled)\n  .map(btn => btn.textContent);\n
    \n
    Example:
    // Convert HTMLCollection (live collection) to static array\nconst forms = document.forms; // HTMLCollection\nconst formArray = nodeListToArray(forms);\n\n// Safe to iterate even if DOM changes\nformArray.forEach(form => {\n  form.addEventListener('submit', handleSubmit);\n});\n
    \n
    Since:

    1.0.0

    \n
    See:
    \n"},"sources":[{"fileName":"packages/web-utils/src/dom.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/dom.ts","line":372,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/dom.ts#L372"}],"parentId":943}],"is":{"declaration":true},"location":{"query":"DOM.Function.nodeListToArray","hash":""},"text":{},"parentId":913} diff --git a/docs/v1.0.0-beta01/data/DOM.Function.removeClass.json b/docs/v1.0.0-beta01/data/DOM.Function.removeClass.json new file mode 100644 index 000000000..4a16b6b0d --- /dev/null +++ b/docs/v1.0.0-beta01/data/DOM.Function.removeClass.json @@ -0,0 +1 @@ +{"id":924,"name":"removeClass","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/web-utils/src/dom.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/dom.ts","line":161,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/dom.ts#L161"}],"signatures":[{"id":925,"name":"removeClass","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"removeClass"}]},{"tag":"@description","content":[{"kind":"text","text":"从DOM元素中移除CSS类,为旧版浏览器提供回退方案。Removes a CSS class from a DOM element, with fallback for older browsers"}]},{"tag":"@returns","content":[]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Basic usage\r\nconst button = document.querySelector('.my-button');\r\nremoveClass(button, 'active');\r\nremoveClass(button, 'highlighted');\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Toggle functionality\r\nconst toggleButton = document.getElementById('toggle');\r\nif (hasClass(toggleButton, 'expanded')) {\r\n removeClass(toggleButton, 'expanded');\r\n toggleButton.setAttribute('aria-expanded', 'false');\r\n} else {\r\n addClass(toggleButton, 'expanded');\r\n toggleButton.setAttribute('aria-expanded', 'true');\r\n}\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Clean up multiple classes\r\nconst elem = document.createElement('div');\r\nelem.className = 'nav-item active selected';\r\nremoveClass(elem, 'active');\r\nconsole.log(elem.className); // 'nav-item selected'\n```"}]},{"tag":"@since","content":[{"kind":"text","text":"1.0.0"}]},{"tag":"@see","content":[{"kind":"text","text":" - "},{"kind":"inline-tag","tag":"@link","text":"addClass","target":920},{"kind":"text","text":" - Add CSS classes to elements"},{"kind":"text","text":"\n"},{"kind":"text","text":" - "},{"kind":"inline-tag","tag":"@link","text":"hasClass","target":916},{"kind":"text","text":" - Check if element has a class"},{"kind":"text","text":"\n"},{"kind":"text","text":" - "},{"kind":"inline-tag","tag":"@link","text":"https://developer.mozilla.org/en-US/docs/Web/API/Element/classList","target":"https://developer.mozilla.org/en-US/docs/Web/API/Element/classList"},{"kind":"text","text":" - Modern classList API (IE 10+)"},{"kind":"text","text":"\n"},{"kind":"text","text":" - "},{"kind":"inline-tag","tag":"@link","text":"https://caniuse.com/classlist","target":"https://caniuse.com/classlist"},{"kind":"text","text":" - Browser support: IE 10+, all modern browsers"},{"kind":"text","text":"\n"},{"kind":"text","text":" - "},{"kind":"inline-tag","tag":"@link","text":"https://www.w3.org/WAI/ARIA/apg/practices/disclosure/","target":"https://www.w3.org/WAI/ARIA/apg/practices/disclosure/"},{"kind":"text","text":" - ARIA disclosure patterns"},{"kind":"text","text":"\n"}]}]},"parameters":[{"id":926,"name":"elem","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"要移除类的DOM元素。The DOM element to remove the class from"}]},"type":{"type":"reference","name":"HTMLElement","qualifiedName":"HTMLElement","package":"typescript"},"text":{"comment":"

    要移除类的DOM元素。The DOM element to remove the class from

    \n"}},{"id":927,"name":"className","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"要移除的CSS类名(不带前导点)。The CSS class name to remove (without leading dot)"}]},"type":{"type":"intrinsic","name":"string"},"text":{"comment":"

    要移除的CSS类名(不带前导点)。The CSS class name to remove (without leading dot)

    \n"}}],"type":{"type":"intrinsic","name":"void"},"is":{"declaration":false},"location":{"query":"DOM.Function.removeClass","hash":"removeClass"},"text":{"comment":"
    Function:

    removeClass

    \n
    Description:

    从DOM元素中移除CSS类,为旧版浏览器提供回退方案。Removes a CSS class from a DOM element, with fallback for older browsers

    \n
    Returns:
    Example:
    // Basic usage\nconst button = document.querySelector('.my-button');\nremoveClass(button, 'active');\nremoveClass(button, 'highlighted');\n
    \n
    Example:
    // Toggle functionality\nconst toggleButton = document.getElementById('toggle');\nif (hasClass(toggleButton, 'expanded')) {\n  removeClass(toggleButton, 'expanded');\n  toggleButton.setAttribute('aria-expanded', 'false');\n} else {\n  addClass(toggleButton, 'expanded');\n  toggleButton.setAttribute('aria-expanded', 'true');\n}\n
    \n
    Example:
    // Clean up multiple classes\nconst elem = document.createElement('div');\nelem.className = 'nav-item active selected';\nremoveClass(elem, 'active');\nconsole.log(elem.className); // 'nav-item selected'\n
    \n
    Since:

    1.0.0

    \n
    See:
    \n"},"sources":[{"fileName":"packages/web-utils/src/dom.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/dom.ts","line":161,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/dom.ts#L161"}],"parentId":924}],"is":{"declaration":true},"location":{"query":"DOM.Function.removeClass","hash":""},"text":{},"parentId":913} diff --git a/docs/v1.0.0-beta01/data/DOM.Function.requestAnimFrame.json b/docs/v1.0.0-beta01/data/DOM.Function.requestAnimFrame.json new file mode 100644 index 000000000..508b8100e --- /dev/null +++ b/docs/v1.0.0-beta01/data/DOM.Function.requestAnimFrame.json @@ -0,0 +1 @@ +{"id":982,"name":"requestAnimFrame","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/web-utils/src/dom.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/dom.ts","line":767,"character":13,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/dom.ts#L767"}],"signatures":[{"id":983,"name":"requestAnimFrame","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":984,"name":"callback","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reflection","declaration":{"id":985,"name":"__type","kind":65536,"kindString":"Type literal","flags":{},"sources":[{"fileName":"packages/web-utils/src/dom.ts","line":776,"character":29,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/dom.ts#L776"}],"signatures":[{"id":986,"name":"__type","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":987,"name":"args","kind":32768,"kindString":"Parameter","flags":{"isRest":true},"type":{"type":"array","elementType":{"type":"intrinsic","name":"unknown"}}}],"type":{"type":"intrinsic","name":"unknown"}}]}},"text":{}}],"type":{"type":"union","types":[{"type":"intrinsic","name":"number"},{"type":"intrinsic","name":"void"}]},"is":{"declaration":false},"location":{"query":"DOM.Function.requestAnimFrame","hash":"requestAnimFrame"},"text":{},"sources":[{"fileName":"packages/web-utils/src/dom.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/dom.ts","line":776,"character":9,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/dom.ts#L776"}],"parentId":982}],"is":{"declaration":true},"location":{"query":"DOM.Function.requestAnimFrame","hash":""},"text":{},"parentId":913} diff --git a/docs/v1.0.0-beta01/data/DOM.Function.setAttribute.json b/docs/v1.0.0-beta01/data/DOM.Function.setAttribute.json new file mode 100644 index 000000000..7e6e6cd02 --- /dev/null +++ b/docs/v1.0.0-beta01/data/DOM.Function.setAttribute.json @@ -0,0 +1 @@ +{"id":946,"name":"setAttribute","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/web-utils/src/dom.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/dom.ts","line":413,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/dom.ts#L413"}],"signatures":[{"id":947,"name":"setAttribute","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@description","content":[{"kind":"text","text":"Sets an attribute on a DOM element with special handling for style and value attributes"}]},{"tag":"@returns","content":[]},{"tag":"@throws","content":[{"kind":"text","text":"Throws if elem is null/undefined"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Set basic attributes\r\nconst button = document.createElement('button');\r\nsetAttribute(button, 'id', 'submit-btn');\r\nsetAttribute(button, 'class', 'btn btn-primary');\r\nsetAttribute(button, 'type', 'submit');\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Set styles (uses cssText for better performance)\r\nconst elem = document.getElementById('myElement');\r\nsetAttribute(elem, 'style', 'color: red; font-size: 16px; margin: 10px;');\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Set form input values (handles input/textarea specially)\r\nconst input = document.getElementById('username');\r\nsetAttribute(input, 'value', 'john_doe');\r\nsetAttribute(input, 'placeholder', 'Enter username');\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Set accessibility attributes\r\nconst menuButton = document.querySelector('.menu-toggle');\r\nsetAttribute(menuButton, 'aria-expanded', 'false');\r\nsetAttribute(menuButton, 'aria-controls', 'main-menu');\r\nsetAttribute(menuButton, 'aria-label', 'Toggle navigation menu');\n```"}]},{"tag":"@since","content":[{"kind":"text","text":"1.0.0"}]},{"tag":"@see","content":[{"kind":"text","text":" - "},{"kind":"inline-tag","tag":"@link","text":"https://developer.mozilla.org/en-US/docs/Web/API/Element/setAttribute","target":"https://developer.mozilla.org/en-US/docs/Web/API/Element/setAttribute"},{"kind":"text","text":" - Browser support: All browsers"},{"kind":"text","text":"\n"},{"kind":"text","text":" - "},{"kind":"inline-tag","tag":"@link","text":"https://www.w3.org/WAI/ARIA/apg/practices/names-and-descriptions/","target":"https://www.w3.org/WAI/ARIA/apg/practices/names-and-descriptions/"},{"kind":"text","text":" - ARIA attribute practices"},{"kind":"text","text":"\n"},{"kind":"text","text":" - "},{"kind":"inline-tag","tag":"@link","text":"https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/style","target":"https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/style"},{"kind":"text","text":" - Style property documentation"},{"kind":"text","text":"\n"}]}]},"parameters":[{"id":948,"name":"elem","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"The DOM element to set the attribute on"}]},"type":{"type":"reference","name":"HTMLElement","qualifiedName":"HTMLElement","package":"typescript"},"text":{"comment":"

    The DOM element to set the attribute on

    \n"}},{"id":949,"name":"key","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"The attribute name (e.g., 'id', 'class', 'style', 'value')"}]},"type":{"type":"intrinsic","name":"string"},"text":{"comment":"

    The attribute name (e.g., 'id', 'class', 'style', 'value')

    \n"}},{"id":950,"name":"value","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"The attribute value to set"}]},"type":{"type":"intrinsic","name":"string"},"text":{"comment":"

    The attribute value to set

    \n"}}],"type":{"type":"intrinsic","name":"void"},"is":{"declaration":false},"location":{"query":"DOM.Function.setAttribute","hash":"setAttribute"},"text":{"comment":"
    Description:

    Sets an attribute on a DOM element with special handling for style and value attributes

    \n
    Returns:
    Throws:

    Throws if elem is null/undefined

    \n
    Example:
    // Set basic attributes\nconst button = document.createElement('button');\nsetAttribute(button, 'id', 'submit-btn');\nsetAttribute(button, 'class', 'btn btn-primary');\nsetAttribute(button, 'type', 'submit');\n
    \n
    Example:
    // Set styles (uses cssText for better performance)\nconst elem = document.getElementById('myElement');\nsetAttribute(elem, 'style', 'color: red; font-size: 16px; margin: 10px;');\n
    \n
    Example:
    // Set form input values (handles input/textarea specially)\nconst input = document.getElementById('username');\nsetAttribute(input, 'value', 'john_doe');\nsetAttribute(input, 'placeholder', 'Enter username');\n
    \n
    Example:
    // Set accessibility attributes\nconst menuButton = document.querySelector('.menu-toggle');\nsetAttribute(menuButton, 'aria-expanded', 'false');\nsetAttribute(menuButton, 'aria-controls', 'main-menu');\nsetAttribute(menuButton, 'aria-label', 'Toggle navigation menu');\n
    \n
    Since:

    1.0.0

    \n
    See:
    \n"},"sources":[{"fileName":"packages/web-utils/src/dom.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/dom.ts","line":413,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/dom.ts#L413"}],"parentId":946}],"is":{"declaration":true},"location":{"query":"DOM.Function.setAttribute","hash":""},"text":{},"parentId":913} diff --git a/docs/v1.0.0-beta01/data/DOM.Function.setScrollTop.json b/docs/v1.0.0-beta01/data/DOM.Function.setScrollTop.json new file mode 100644 index 000000000..428beed32 --- /dev/null +++ b/docs/v1.0.0-beta01/data/DOM.Function.setScrollTop.json @@ -0,0 +1 @@ +{"id":968,"name":"setScrollTop","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/web-utils/src/dom.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/dom.ts","line":696,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/dom.ts#L696"}],"signatures":[{"id":969,"name":"setScrollTop","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@description","content":[{"kind":"text","text":"Sets the vertical scroll position of the document"}]},{"tag":"@returns","content":[{"kind":"text","text":"The height value that was set"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Scroll to top of page\r\nsetScrollTop(0);\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Scroll to specific section\r\nconst section = document.getElementById('target-section');\r\nconst sectionTop = getOffsetPos(section).top;\r\nsetScrollTop(sectionTop - 20); // 20px offset for better UX\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Implement \"scroll to top\" button with accessibility\r\nconst scrollToTopButton = document.getElementById('scroll-to-top');\r\nscrollToTopButton.addEventListener('click', () => {\r\n setScrollTop(0);\r\n\r\n // Announce to screen readers\r\n const announcement = document.createElement('div');\r\n announcement.setAttribute('aria-live', 'polite');\r\n announcement.textContent = 'Scrolled to top of page';\r\n document.body.appendChild(announcement);\r\n\r\n setTimeout(() => document.body.removeChild(announcement), 1000);\r\n});\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Restore scroll position after page reload\r\nwindow.addEventListener('beforeunload', () => {\r\n sessionStorage.setItem('scrollTop', getScrollTop().toString());\r\n});\r\n\r\nwindow.addEventListener('load', () => {\r\n const savedScrollTop = sessionStorage.getItem('scrollTop');\r\n if (savedScrollTop) {\r\n setScrollTop(parseInt(savedScrollTop, 10));\r\n }\r\n});\n```"}]},{"tag":"@since","content":[{"kind":"text","text":"1.0.0"}]},{"tag":"@see","content":[{"kind":"text","text":" - "},{"kind":"inline-tag","tag":"@link","text":"getScrollTop","target":960},{"kind":"text","text":" - Get current scroll position"},{"kind":"text","text":"\n"},{"kind":"text","text":" - "},{"kind":"inline-tag","tag":"@link","text":"animateScrollTo","target":971},{"kind":"text","text":" - Smooth animated scrolling"},{"kind":"text","text":"\n"},{"kind":"text","text":" - "},{"kind":"inline-tag","tag":"@link","text":"https://developer.mozilla.org/en-US/docs/Web/API/Window/scrollTo","target":"https://developer.mozilla.org/en-US/docs/Web/API/Window/scrollTo"},{"kind":"text","text":" - Browser support: All browsers"},{"kind":"text","text":"\n"},{"kind":"text","text":" - "},{"kind":"inline-tag","tag":"@link","text":"https://www.w3.org/WAI/WCAG21/Understanding/focus-order.html","target":"https://www.w3.org/WAI/WCAG21/Understanding/focus-order.html"},{"kind":"text","text":" - WCAG: Managing focus during scroll"},{"kind":"text","text":"\n"}]}]},"parameters":[{"id":970,"name":"height","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"The vertical scroll position in pixels"}]},"type":{"type":"intrinsic","name":"number"},"text":{"comment":"

    The vertical scroll position in pixels

    \n"}}],"type":{"type":"intrinsic","name":"number"},"is":{"declaration":false},"location":{"query":"DOM.Function.setScrollTop","hash":"setScrollTop"},"text":{"comment":"
    Description:

    Sets the vertical scroll position of the document

    \n
    Returns:

    The height value that was set

    \n
    Example:
    // Scroll to top of page\nsetScrollTop(0);\n
    \n
    Example:
    // Scroll to specific section\nconst section = document.getElementById('target-section');\nconst sectionTop = getOffsetPos(section).top;\nsetScrollTop(sectionTop - 20); // 20px offset for better UX\n
    \n
    Example:
    // Implement \"scroll to top\" button with accessibility\nconst scrollToTopButton = document.getElementById('scroll-to-top');\nscrollToTopButton.addEventListener('click', () => {\n  setScrollTop(0);\n\n  // Announce to screen readers\n  const announcement = document.createElement('div');\n  announcement.setAttribute('aria-live', 'polite');\n  announcement.textContent = 'Scrolled to top of page';\n  document.body.appendChild(announcement);\n\n  setTimeout(() => document.body.removeChild(announcement), 1000);\n});\n
    \n
    Example:
    // Restore scroll position after page reload\nwindow.addEventListener('beforeunload', () => {\n  sessionStorage.setItem('scrollTop', getScrollTop().toString());\n});\n\nwindow.addEventListener('load', () => {\n  const savedScrollTop = sessionStorage.getItem('scrollTop');\n  if (savedScrollTop) {\n    setScrollTop(parseInt(savedScrollTop, 10));\n  }\n});\n
    \n
    Since:

    1.0.0

    \n
    See:
    \n"},"sources":[{"fileName":"packages/web-utils/src/dom.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/dom.ts","line":696,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/dom.ts#L696"}],"parentId":968}],"is":{"declaration":true},"location":{"query":"DOM.Function.setScrollTop","hash":""},"text":{},"parentId":913} diff --git a/docs/v1.0.0-beta01/data/DOM.Function.smoothScroll.json b/docs/v1.0.0-beta01/data/DOM.Function.smoothScroll.json new file mode 100644 index 000000000..7b0f4e777 --- /dev/null +++ b/docs/v1.0.0-beta01/data/DOM.Function.smoothScroll.json @@ -0,0 +1 @@ +{"id":975,"name":"smoothScroll","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/web-utils/src/dom.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/dom.ts","line":907,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/dom.ts#L907"}],"signatures":[{"id":976,"name":"smoothScroll","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@description","content":[{"kind":"text","text":"Smoothly scrolls an element into view using native CSS scroll behavior"}]},{"tag":"@returns","content":[]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Scroll to a specific section\r\nsmoothScroll('#about-section');\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Scroll to form validation errors\r\nconst firstError = document.querySelector('.error');\r\nif (firstError) {\r\n smoothScroll('.error');\r\n firstError.focus(); // Improve accessibility\r\n}\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Navigation menu with smooth scrolling\r\ndocument.querySelectorAll('.nav-link').forEach(link => {\r\n link.addEventListener('click', (e) => {\r\n e.preventDefault();\r\n const targetId = link.getAttribute('href');\r\n smoothScroll(targetId);\r\n\r\n // Update URL without jumping\r\n history.pushState(null, null, targetId);\r\n });\r\n});\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Accessible skip link implementation\r\nconst skipLink = document.getElementById('skip-to-main');\r\nskipLink.addEventListener('click', (e) => {\r\n e.preventDefault();\r\n smoothScroll('#main-content');\r\n\r\n // Set focus for screen readers\r\n const mainContent = document.getElementById('main-content');\r\n mainContent.setAttribute('tabindex', '-1');\r\n mainContent.focus();\r\n});\n```"}]},{"tag":"@since","content":[{"kind":"text","text":"1.0.0"}]},{"tag":"@see","content":[{"kind":"text","text":" - "},{"kind":"inline-tag","tag":"@link","text":"animateScrollTo","target":971},{"kind":"text","text":" - Custom animated scrolling with duration control"},{"kind":"text","text":"\n"},{"kind":"text","text":" - "},{"kind":"inline-tag","tag":"@link","text":"https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollIntoView","target":"https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollIntoView"},{"kind":"text","text":" - Browser support: IE 6+, smooth behavior in modern browsers"},{"kind":"text","text":"\n"},{"kind":"text","text":" - "},{"kind":"inline-tag","tag":"@link","text":"https://caniuse.com/css-scroll-behavior","target":"https://caniuse.com/css-scroll-behavior"},{"kind":"text","text":" - CSS scroll-behavior support"},{"kind":"text","text":"\n"},{"kind":"text","text":" - "},{"kind":"inline-tag","tag":"@link","text":"https://www.w3.org/WAI/WCAG21/Understanding/bypass-blocks.html","target":"https://www.w3.org/WAI/WCAG21/Understanding/bypass-blocks.html"},{"kind":"text","text":" - WCAG: Skip navigation mechanisms"},{"kind":"text","text":"\n"}]}]},"parameters":[{"id":977,"name":"elemSelector","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"CSS selector for the target element"}]},"type":{"type":"intrinsic","name":"string"},"text":{"comment":"

    CSS selector for the target element

    \n"}}],"type":{"type":"intrinsic","name":"void"},"is":{"declaration":false},"location":{"query":"DOM.Function.smoothScroll","hash":"smoothScroll"},"text":{"comment":"
    Description:

    Smoothly scrolls an element into view using native CSS scroll behavior

    \n
    Returns:
    Example:
    // Scroll to a specific section\nsmoothScroll('#about-section');\n
    \n
    Example:
    // Scroll to form validation errors\nconst firstError = document.querySelector('.error');\nif (firstError) {\n  smoothScroll('.error');\n  firstError.focus(); // Improve accessibility\n}\n
    \n
    Example:
    // Navigation menu with smooth scrolling\ndocument.querySelectorAll('.nav-link').forEach(link => {\n  link.addEventListener('click', (e) => {\n    e.preventDefault();\n    const targetId = link.getAttribute('href');\n    smoothScroll(targetId);\n\n    // Update URL without jumping\n    history.pushState(null, null, targetId);\n  });\n});\n
    \n
    Example:
    // Accessible skip link implementation\nconst skipLink = document.getElementById('skip-to-main');\nskipLink.addEventListener('click', (e) => {\n  e.preventDefault();\n  smoothScroll('#main-content');\n\n  // Set focus for screen readers\n  const mainContent = document.getElementById('main-content');\n  mainContent.setAttribute('tabindex', '-1');\n  mainContent.focus();\n});\n
    \n
    Since:

    1.0.0

    \n
    See:
    \n"},"sources":[{"fileName":"packages/web-utils/src/dom.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/dom.ts","line":907,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/dom.ts#L907"}],"parentId":975}],"is":{"declaration":true},"location":{"query":"DOM.Function.smoothScroll","hash":""},"text":{},"parentId":913} diff --git a/docs/v1.0.0-beta01/data/Date.Function.dayOfYear.json b/docs/v1.0.0-beta01/data/Date.Function.dayOfYear.json new file mode 100644 index 000000000..4a9ed2516 --- /dev/null +++ b/docs/v1.0.0-beta01/data/Date.Function.dayOfYear.json @@ -0,0 +1 @@ +{"id":401,"name":"dayOfYear","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/utils/src/date.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/date.ts","line":18,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/date.ts#L18"}],"signatures":[{"id":402,"name":"dayOfYear","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"dayOfYear"}]},{"tag":"@description","content":[{"kind":"text","text":"此日期是当年中的第几天。Gets the day of year for the given date"}]},{"tag":"@returns","content":[{"kind":"text","text":"返回天数。The day number of the year"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\ndayOfYear(new Date('2022/02/20')); // 51\r\ndayOfYear(new Date('2024/12/31')); // 366\n```"}]}]},"parameters":[{"id":403,"name":"date","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"日期。The date to check"}]},"type":{"type":"reference","name":"Date","qualifiedName":"Date","package":"typescript"},"defaultValue":"...","text":{"comment":"

    日期。The date to check

    \n"}}],"type":{"type":"intrinsic","name":"number"},"is":{"declaration":false},"location":{"query":"Date.Function.dayOfYear","hash":"dayOfYear"},"text":{"comment":"
    Function:

    dayOfYear

    \n
    Description:

    此日期是当年中的第几天。Gets the day of year for the given date

    \n
    Returns:

    返回天数。The day number of the year

    \n
    Example:
    dayOfYear(new Date('2022/02/20')); // 51\ndayOfYear(new Date('2024/12/31')); // 366\n
    \n"},"sources":[{"fileName":"packages/utils/src/date.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/date.ts","line":18,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/date.ts#L18"}],"parentId":401}],"is":{"declaration":true},"location":{"query":"Date.Function.dayOfYear","hash":""},"text":{},"parentId":400} diff --git a/docs/v1.0.0-beta01/data/Date.Function.daysLater.json b/docs/v1.0.0-beta01/data/Date.Function.daysLater.json new file mode 100644 index 000000000..ac32ebae1 --- /dev/null +++ b/docs/v1.0.0-beta01/data/Date.Function.daysLater.json @@ -0,0 +1 @@ +{"id":419,"name":"daysLater","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/utils/src/date.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/date.ts","line":90,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/date.ts#L90"}],"signatures":[{"id":420,"name":"daysLater","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"daysLater"}]},{"tag":"@description","content":[{"kind":"text","text":"获取几天后的日期。Gets the date after specified days"}]},{"tag":"@returns","content":[{"kind":"text","text":"返回日期。The resulting date string"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\nconst date = new Date('2023-01-01');\r\nconst days = 5;\r\ndaysLater(date, days); // '2023-01-06'\n```"}]}]},"parameters":[{"id":421,"name":"date","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"日期。The base date"}]},"type":{"type":"reference","name":"Date","qualifiedName":"Date","package":"typescript"},"defaultValue":"...","text":{"comment":"

    日期。The base date

    \n"}},{"id":422,"name":"days","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"天数,默认为1。Number of days to add, default is 1"}]},"type":{"type":"intrinsic","name":"number"},"defaultValue":"1","text":{"comment":"

    天数,默认为1。Number of days to add, default is 1

    \n"}}],"type":{"type":"intrinsic","name":"string"},"is":{"declaration":false},"location":{"query":"Date.Function.daysLater","hash":"daysLater"},"text":{"comment":"
    Function:

    daysLater

    \n
    Description:

    获取几天后的日期。Gets the date after specified days

    \n
    Returns:

    返回日期。The resulting date string

    \n
    Example:
    const date = new Date('2023-01-01');\nconst days = 5;\ndaysLater(date, days); // '2023-01-06'\n
    \n"},"sources":[{"fileName":"packages/utils/src/date.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/date.ts","line":90,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/date.ts#L90"}],"parentId":419}],"is":{"declaration":true},"location":{"query":"Date.Function.daysLater","hash":""},"text":{},"parentId":400} diff --git a/docs/v1.0.0-beta01/data/Date.Function.getColonTimeFromDate.json b/docs/v1.0.0-beta01/data/Date.Function.getColonTimeFromDate.json new file mode 100644 index 000000000..2d6605003 --- /dev/null +++ b/docs/v1.0.0-beta01/data/Date.Function.getColonTimeFromDate.json @@ -0,0 +1 @@ +{"id":404,"name":"getColonTimeFromDate","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/utils/src/date.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/date.ts","line":32,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/date.ts#L32"}],"signatures":[{"id":405,"name":"getColonTimeFromDate","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"getColonTimeFromDate"}]},{"tag":"@description","content":[{"kind":"text","text":"获取hh:mm:ss时间。Gets hh:mm:ss time format from date"}]},{"tag":"@returns","content":[{"kind":"text","text":"返回时间。The formatted time string"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\ngetColonTimeFromDate(new Date()); // '15:58:40'\r\ngetColonTimeFromDate(); // '15:58:40'\r\ngetColonTimeFromDate(new Date('2022-02-20 11:10:20')); // '11:10:20'\n```"}]}]},"parameters":[{"id":406,"name":"date","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"日期。The date to format"}]},"type":{"type":"reference","name":"Date","qualifiedName":"Date","package":"typescript"},"defaultValue":"...","text":{"comment":"

    日期。The date to format

    \n"}}],"type":{"type":"intrinsic","name":"string"},"is":{"declaration":false},"location":{"query":"Date.Function.getColonTimeFromDate","hash":"getColonTimeFromDate"},"text":{"comment":"
    Function:

    getColonTimeFromDate

    \n
    Description:

    获取hh:mm:ss时间。Gets hh:mm:ss time format from date

    \n
    Returns:

    返回时间。The formatted time string

    \n
    Example:
    getColonTimeFromDate(new Date()); // '15:58:40'\ngetColonTimeFromDate(); // '15:58:40'\ngetColonTimeFromDate(new Date('2022-02-20 11:10:20')); // '11:10:20'\n
    \n"},"sources":[{"fileName":"packages/utils/src/date.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/date.ts","line":32,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/date.ts#L32"}],"parentId":404}],"is":{"declaration":true},"location":{"query":"Date.Function.getColonTimeFromDate","hash":""},"text":{},"parentId":400} diff --git a/docs/v1.0.0-beta01/data/Date.Function.getDaysDiffBetweenDates.json b/docs/v1.0.0-beta01/data/Date.Function.getDaysDiffBetweenDates.json new file mode 100644 index 000000000..1213ed588 --- /dev/null +++ b/docs/v1.0.0-beta01/data/Date.Function.getDaysDiffBetweenDates.json @@ -0,0 +1 @@ +{"id":407,"name":"getDaysDiffBetweenDates","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/utils/src/date.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/date.ts","line":47,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/date.ts#L47"}],"signatures":[{"id":408,"name":"getDaysDiffBetweenDates","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"getDaysDiffBetweenDates"}]},{"tag":"@description","content":[{"kind":"text","text":"判断两个日期差了几天。Calculates the difference in days between two dates"}]},{"tag":"@returns","content":[{"kind":"text","text":"日期差值(天数)。The difference in days"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\nconst dateInitial = new Date('2023-01-01');\r\nconst dateFinal = new Date('2023-01-05');\r\ngetDaysDiffBetweenDates(dateInitial, dateFinal); // 4\n```"}]}]},"parameters":[{"id":409,"name":"dateInitial","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"开始日期。The initial date"}]},"type":{"type":"reference","name":"Date","qualifiedName":"Date","package":"typescript"},"text":{"comment":"

    开始日期。The initial date

    \n"}},{"id":410,"name":"dateFinal","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"结束日期。The final date"}]},"type":{"type":"reference","name":"Date","qualifiedName":"Date","package":"typescript"},"text":{"comment":"

    结束日期。The final date

    \n"}}],"type":{"type":"intrinsic","name":"number"},"is":{"declaration":false},"location":{"query":"Date.Function.getDaysDiffBetweenDates","hash":"getDaysDiffBetweenDates"},"text":{"comment":"
    Function:

    getDaysDiffBetweenDates

    \n
    Description:

    判断两个日期差了几天。Calculates the difference in days between two dates

    \n
    Returns:

    日期差值(天数)。The difference in days

    \n
    Example:
    const dateInitial = new Date('2023-01-01');\nconst dateFinal = new Date('2023-01-05');\ngetDaysDiffBetweenDates(dateInitial, dateFinal);  // 4\n
    \n"},"sources":[{"fileName":"packages/utils/src/date.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/date.ts","line":47,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/date.ts#L47"}],"parentId":407}],"is":{"declaration":true},"location":{"query":"Date.Function.getDaysDiffBetweenDates","hash":""},"text":{},"parentId":400} diff --git a/docs/v1.0.0-beta01/data/Date.Function.getFormattedRemainTime.json b/docs/v1.0.0-beta01/data/Date.Function.getFormattedRemainTime.json new file mode 100644 index 000000000..ca698bbec --- /dev/null +++ b/docs/v1.0.0-beta01/data/Date.Function.getFormattedRemainTime.json @@ -0,0 +1 @@ +{"id":423,"name":"getFormattedRemainTime","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/utils/src/date.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/date.ts","line":106,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/date.ts#L106"}],"signatures":[{"id":424,"name":"getFormattedRemainTime","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"getFormattedRemainTime"}]},{"tag":"@description","content":[{"kind":"text","text":"该函数的作用是计算两个日期之间的时间差,并返回以日、小时、分钟和秒为单位的格式化结果。Calculates time difference between two dates and returns formatted result in days, hours, minutes and seconds"}]},{"tag":"@returns","content":[{"kind":"text","text":"返回格式化后的时间对象。The formatted time object with day, hour, minute, second properties"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\nconst dateInitial = new Date('2023-03-22T08:00:00.000Z');\r\nconst dateFinal = new Date('2023-03-23T14:15:30.000Z');\r\ngetFormattedRemainTime(dateInitial, dateFinal); // { day: 1, hour: 6, minute: 15, second: 30, }\n```"}]}]},"parameters":[{"id":425,"name":"dateInitial","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"开始日期。The initial date"}]},"type":{"type":"reference","name":"Date","qualifiedName":"Date","package":"typescript"},"text":{"comment":"

    开始日期。The initial date

    \n"}},{"id":426,"name":"dateFinal","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"结束日期。The final date"}]},"type":{"type":"reference","name":"Date","qualifiedName":"Date","package":"typescript"},"text":{"comment":"

    结束日期。The final date

    \n"}}],"type":{"type":"reflection","declaration":{"id":427,"name":"getFormattedRemainTime","kind":65536,"kindString":"Type literal","flags":{},"children":[{"id":428,"name":"day","kind":1024,"kindString":"Property","flags":{},"sources":[{"fileName":"packages/utils/src/date.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/date.ts","line":120,"character":4,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/date.ts#L120"}],"type":{"type":"intrinsic","name":"number"},"is":{"declaration":true},"location":{"query":"Date.Function.getFormattedRemainTime","hash":"getFormattedRemainTime.day"},"text":{},"parentId":423},{"id":429,"name":"hour","kind":1024,"kindString":"Property","flags":{},"sources":[{"fileName":"packages/utils/src/date.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/date.ts","line":121,"character":4,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/date.ts#L121"}],"type":{"type":"intrinsic","name":"number"},"is":{"declaration":true},"location":{"query":"Date.Function.getFormattedRemainTime","hash":"getFormattedRemainTime.hour"},"text":{},"parentId":423},{"id":430,"name":"minute","kind":1024,"kindString":"Property","flags":{},"sources":[{"fileName":"packages/utils/src/date.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/date.ts","line":122,"character":4,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/date.ts#L122"}],"type":{"type":"intrinsic","name":"number"},"is":{"declaration":true},"location":{"query":"Date.Function.getFormattedRemainTime","hash":"getFormattedRemainTime.minute"},"text":{},"parentId":423},{"id":431,"name":"second","kind":1024,"kindString":"Property","flags":{},"sources":[{"fileName":"packages/utils/src/date.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/date.ts","line":123,"character":4,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/date.ts#L123"}],"type":{"type":"intrinsic","name":"number"},"is":{"declaration":true},"location":{"query":"Date.Function.getFormattedRemainTime","hash":"getFormattedRemainTime.second"},"text":{},"parentId":423}],"groups":[{"title":"Properties","children":[428,429,430,431]}],"sources":[{"fileName":"packages/utils/src/date.ts","line":119,"character":9,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/date.ts#L119"}],"location":{"query":"Date.Function.getFormattedRemainTime","hash":"getFormattedRemainTime"}}},"is":{"declaration":false},"location":{"query":"Date.Function.getFormattedRemainTime","hash":"getFormattedRemainTime"},"text":{"comment":"
    Function:

    getFormattedRemainTime

    \n
    Description:

    该函数的作用是计算两个日期之间的时间差,并返回以日、小时、分钟和秒为单位的格式化结果。Calculates time difference between two dates and returns formatted result in days, hours, minutes and seconds

    \n
    Returns:

    返回格式化后的时间对象。The formatted time object with day, hour, minute, second properties

    \n
    Example:
    const dateInitial = new Date('2023-03-22T08:00:00.000Z');\nconst dateFinal = new Date('2023-03-23T14:15:30.000Z');\ngetFormattedRemainTime(dateInitial, dateFinal); // { day: 1, hour: 6, minute: 15, second: 30, }\n
    \n"},"sources":[{"fileName":"packages/utils/src/date.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/date.ts","line":106,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/date.ts#L106"}],"parentId":423}],"is":{"declaration":true},"location":{"query":"Date.Function.getFormattedRemainTime","hash":""},"text":{},"parentId":400} diff --git a/docs/v1.0.0-beta01/data/Date.Function.isAfterDate.json b/docs/v1.0.0-beta01/data/Date.Function.isAfterDate.json new file mode 100644 index 000000000..a0407e621 --- /dev/null +++ b/docs/v1.0.0-beta01/data/Date.Function.isAfterDate.json @@ -0,0 +1 @@ +{"id":411,"name":"isAfterDate","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/utils/src/date.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/date.ts","line":61,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/date.ts#L61"}],"signatures":[{"id":412,"name":"isAfterDate","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"isAfterDate"}]},{"tag":"@description","content":[{"kind":"text","text":"判断dateA是否在dateB之后。Checks if dateA is after dateB"}]},{"tag":"@returns","content":[{"kind":"text","text":"日期A是否在日期B之后。Whether date A is after date B"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\nisAfterDate(new Date('2023-01-01'), new Date('2023-01-02')); // false\r\nisAfterDate(new Date('2023-01-01'), new Date('2022-01-02')); // true\n```"}]}]},"parameters":[{"id":413,"name":"dateA","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"日期A。Date A to compare"}]},"type":{"type":"reference","name":"Date","qualifiedName":"Date","package":"typescript"},"text":{"comment":"

    日期A。Date A to compare

    \n"}},{"id":414,"name":"dateB","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"日期B。Date B to compare against"}]},"type":{"type":"reference","name":"Date","qualifiedName":"Date","package":"typescript"},"defaultValue":"...","text":{"comment":"

    日期B。Date B to compare against

    \n"}}],"type":{"type":"intrinsic","name":"boolean"},"is":{"declaration":false},"location":{"query":"Date.Function.isAfterDate","hash":"isAfterDate"},"text":{"comment":"
    Function:

    isAfterDate

    \n
    Description:

    判断dateA是否在dateB之后。Checks if dateA is after dateB

    \n
    Returns:

    日期A是否在日期B之后。Whether date A is after date B

    \n
    Example:
    isAfterDate(new Date('2023-01-01'), new Date('2023-01-02')); // false\nisAfterDate(new Date('2023-01-01'), new Date('2022-01-02')); // true\n
    \n"},"sources":[{"fileName":"packages/utils/src/date.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/date.ts","line":61,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/date.ts#L61"}],"parentId":411}],"is":{"declaration":true},"location":{"query":"Date.Function.isAfterDate","hash":""},"text":{},"parentId":400} diff --git a/docs/v1.0.0-beta01/data/Date.Function.isBeforeDate.json b/docs/v1.0.0-beta01/data/Date.Function.isBeforeDate.json new file mode 100644 index 000000000..cc7f7104b --- /dev/null +++ b/docs/v1.0.0-beta01/data/Date.Function.isBeforeDate.json @@ -0,0 +1 @@ +{"id":415,"name":"isBeforeDate","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/utils/src/date.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/date.ts","line":75,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/date.ts#L75"}],"signatures":[{"id":416,"name":"isBeforeDate","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"isBeforeDate"}]},{"tag":"@description","content":[{"kind":"text","text":"判断date1是否在date2之前。Checks if dateA is before dateB"}]},{"tag":"@returns","content":[{"kind":"text","text":"日期A是否在日期B之前。Whether date A is before date B"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\nisBeforeDate(new Date('2023-01-01'), new Date('2023-01-02')); // true\r\nisBeforeDate(new Date('2023-01-01'), new Date('2022-01-02')); // false\n```"}]}]},"parameters":[{"id":417,"name":"dateA","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"日期A。Date A to compare"}]},"type":{"type":"reference","name":"Date","qualifiedName":"Date","package":"typescript"},"text":{"comment":"

    日期A。Date A to compare

    \n"}},{"id":418,"name":"dateB","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"日期B。Date B to compare against"}]},"type":{"type":"reference","name":"Date","qualifiedName":"Date","package":"typescript"},"defaultValue":"...","text":{"comment":"

    日期B。Date B to compare against

    \n"}}],"type":{"type":"intrinsic","name":"boolean"},"is":{"declaration":false},"location":{"query":"Date.Function.isBeforeDate","hash":"isBeforeDate"},"text":{"comment":"
    Function:

    isBeforeDate

    \n
    Description:

    判断date1是否在date2之前。Checks if dateA is before dateB

    \n
    Returns:

    日期A是否在日期B之前。Whether date A is before date B

    \n
    Example:
    isBeforeDate(new Date('2023-01-01'), new Date('2023-01-02')); // true\nisBeforeDate(new Date('2023-01-01'), new Date('2022-01-02')); // false\n
    \n"},"sources":[{"fileName":"packages/utils/src/date.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/date.ts","line":75,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/date.ts#L75"}],"parentId":415}],"is":{"declaration":true},"location":{"query":"Date.Function.isBeforeDate","hash":""},"text":{},"parentId":400} diff --git a/docs/v1.0.0-beta01/data/Easing.TypeAlias.EasingFunction.json b/docs/v1.0.0-beta01/data/Easing.TypeAlias.EasingFunction.json new file mode 100644 index 000000000..5b244de39 --- /dev/null +++ b/docs/v1.0.0-beta01/data/Easing.TypeAlias.EasingFunction.json @@ -0,0 +1 @@ +{"id":2,"name":"EasingFunction","kind":4194304,"kindString":"Type alias","flags":{},"children":[],"sources":[{"fileName":"packages/utils/src/Easing.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/Easing.ts","line":21,"character":12,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/Easing.ts#L21"}],"type":{"type":"reflection","declaration":{"id":3,"name":"EasingFunction","kind":65536,"kindString":"Type literal","flags":{},"sources":[{"fileName":"packages/utils/src/Easing.ts","line":21,"character":29,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/Easing.ts#L21"}],"signatures":[{"id":4,"name":"EasingFunction","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@description","content":[{"kind":"text","text":"缓动函数类型。Easing function type"}]},{"tag":"@returns","content":[{"kind":"text","text":"插值结果。Interpolated value"}]}]},"parameters":[{"id":5,"name":"amount","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"时间进度,从0到1。Time progress from 0 to 1"}]},"type":{"type":"intrinsic","name":"number"},"text":{"comment":"

    时间进度,从0到1。Time progress from 0 to 1

    \n"}}],"type":{"type":"intrinsic","name":"number"},"is":{"declaration":false},"location":{"query":"Easing.EasingFunction.TypeLiteral.__type","hash":"__type"},"text":{"comment":"
    Description:

    缓动函数类型。Easing function type

    \n
    Returns:

    插值结果。Interpolated value

    \n"},"parentId":3}],"location":{"query":"Easing.TypeAlias.EasingFunction","hash":""}}},"is":{"declaration":true},"location":{"query":"Easing.TypeAlias.EasingFunction","hash":""},"text":{},"parentId":1} diff --git a/docs/v1.0.0-beta01/data/Easing.Variable.default.json b/docs/v1.0.0-beta01/data/Easing.Variable.default.json new file mode 100644 index 000000000..980bf7c3f --- /dev/null +++ b/docs/v1.0.0-beta01/data/Easing.Variable.default.json @@ -0,0 +1 @@ +{"id":6,"name":"default","kind":32,"kindString":"Variable","flags":{"isConst":true},"comment":{"summary":[{"kind":"text","text":"The Ease class provides a collection of easing functions for use with tween.js.\n缓动函数集合,用于动画过渡效果。"}],"blockTags":[{"tag":"@see","content":[{"kind":"text","text":"https://www.febucci.com/2018/08/easing-functions/"}]}]},"children":[],"sources":[{"fileName":"packages/utils/src/Easing.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/Easing.ts","line":28,"character":6,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/Easing.ts#L28"}],"type":{"type":"reflection","declaration":{"id":7,"name":"default","kind":65536,"kindString":"Type literal","flags":{},"children":[{"id":126,"name":"Back","kind":1024,"kindString":"Property","flags":{},"sources":[{"fileName":"packages/utils/src/Easing.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/Easing.ts","line":174,"character":2,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/Easing.ts#L174"}],"type":{"type":"reflection","declaration":{"id":127,"name":"Back","kind":65536,"kindString":"Type literal","flags":{},"children":[{"id":128,"name":"In","kind":4096,"kindString":"Property","flags":{},"sources":[{"fileName":"packages/utils/src/Easing.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/Easing.ts","line":175,"character":4,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/Easing.ts#L175"}],"type":{"type":"reflection","declaration":{"id":129,"name":"In","kind":65536,"kindString":"Type literal","flags":{},"sources":[{"fileName":"packages/utils/src/Easing.ts","line":175,"character":8,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/Easing.ts#L175"}],"signatures":[{"id":130,"name":"In","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":131,"name":"amount","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"intrinsic","name":"number"},"text":{}}],"type":{"type":"intrinsic","name":"number"},"is":{"declaration":false},"location":{"query":"Easing.Variable.default","hash":"Back.In.__type"},"text":{},"sources":[{"fileName":"packages/utils/src/Easing.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/Easing.ts","line":175,"character":8,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/Easing.ts#L175"}],"parentId":6}],"location":{"query":"Easing.Variable.default","hash":"Back.In"}}},"defaultValue":"...","is":{"declaration":true},"location":{"query":"Easing.Variable.default","hash":"Back.In"},"text":{},"parentId":6},{"id":136,"name":"InOut","kind":4096,"kindString":"Property","flags":{},"sources":[{"fileName":"packages/utils/src/Easing.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/Easing.ts","line":183,"character":4,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/Easing.ts#L183"}],"type":{"type":"reflection","declaration":{"id":137,"name":"InOut","kind":65536,"kindString":"Type literal","flags":{},"sources":[{"fileName":"packages/utils/src/Easing.ts","line":183,"character":11,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/Easing.ts#L183"}],"signatures":[{"id":138,"name":"InOut","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":139,"name":"amount","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"intrinsic","name":"number"},"text":{}}],"type":{"type":"intrinsic","name":"number"},"is":{"declaration":false},"location":{"query":"Easing.Variable.default","hash":"Back.InOut.__type"},"text":{},"sources":[{"fileName":"packages/utils/src/Easing.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/Easing.ts","line":183,"character":11,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/Easing.ts#L183"}],"parentId":6}],"location":{"query":"Easing.Variable.default","hash":"Back.InOut"}}},"defaultValue":"...","is":{"declaration":true},"location":{"query":"Easing.Variable.default","hash":"Back.InOut"},"text":{},"parentId":6},{"id":132,"name":"Out","kind":4096,"kindString":"Property","flags":{},"sources":[{"fileName":"packages/utils/src/Easing.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/Easing.ts","line":179,"character":4,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/Easing.ts#L179"}],"type":{"type":"reflection","declaration":{"id":133,"name":"Out","kind":65536,"kindString":"Type literal","flags":{},"sources":[{"fileName":"packages/utils/src/Easing.ts","line":179,"character":9,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/Easing.ts#L179"}],"signatures":[{"id":134,"name":"Out","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":135,"name":"amount","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"intrinsic","name":"number"},"text":{}}],"type":{"type":"intrinsic","name":"number"},"is":{"declaration":false},"location":{"query":"Easing.Variable.default","hash":"Back.Out.__type"},"text":{},"sources":[{"fileName":"packages/utils/src/Easing.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/Easing.ts","line":179,"character":9,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/Easing.ts#L179"}],"parentId":6}],"location":{"query":"Easing.Variable.default","hash":"Back.Out"}}},"defaultValue":"...","is":{"declaration":true},"location":{"query":"Easing.Variable.default","hash":"Back.Out"},"text":{},"parentId":6}],"groups":[{"title":"Methods","children":[128,136,132]}],"sources":[{"fileName":"packages/utils/src/Easing.ts","line":174,"character":8,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/Easing.ts#L174"}],"location":{"query":"Easing.Variable.default","hash":"Back"}}},"defaultValue":"...","is":{"declaration":true},"location":{"query":"Easing.Variable.default","hash":"Back"},"text":{},"parentId":6},{"id":140,"name":"Bounce","kind":1024,"kindString":"Property","flags":{},"sources":[{"fileName":"packages/utils/src/Easing.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/Easing.ts","line":191,"character":2,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/Easing.ts#L191"}],"type":{"type":"reflection","declaration":{"id":141,"name":"Bounce","kind":65536,"kindString":"Type literal","flags":{},"children":[{"id":142,"name":"In","kind":4096,"kindString":"Property","flags":{},"sources":[{"fileName":"packages/utils/src/Easing.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/Easing.ts","line":192,"character":4,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/Easing.ts#L192"}],"type":{"type":"reflection","declaration":{"id":143,"name":"In","kind":65536,"kindString":"Type literal","flags":{},"sources":[{"fileName":"packages/utils/src/Easing.ts","line":192,"character":8,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/Easing.ts#L192"}],"signatures":[{"id":144,"name":"In","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":145,"name":"amount","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"intrinsic","name":"number"},"text":{}}],"type":{"type":"intrinsic","name":"number"},"is":{"declaration":false},"location":{"query":"Easing.Variable.default","hash":"Bounce.In.__type"},"text":{},"sources":[{"fileName":"packages/utils/src/Easing.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/Easing.ts","line":192,"character":8,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/Easing.ts#L192"}],"parentId":6}],"location":{"query":"Easing.Variable.default","hash":"Bounce.In"}}},"defaultValue":"...","is":{"declaration":true},"location":{"query":"Easing.Variable.default","hash":"Bounce.In"},"text":{},"parentId":6},{"id":150,"name":"InOut","kind":4096,"kindString":"Property","flags":{},"sources":[{"fileName":"packages/utils/src/Easing.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/Easing.ts","line":206,"character":4,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/Easing.ts#L206"}],"type":{"type":"reflection","declaration":{"id":151,"name":"InOut","kind":65536,"kindString":"Type literal","flags":{},"sources":[{"fileName":"packages/utils/src/Easing.ts","line":206,"character":11,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/Easing.ts#L206"}],"signatures":[{"id":152,"name":"InOut","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":153,"name":"amount","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"intrinsic","name":"number"},"text":{}}],"type":{"type":"intrinsic","name":"number"},"is":{"declaration":false},"location":{"query":"Easing.Variable.default","hash":"Bounce.InOut.__type"},"text":{},"sources":[{"fileName":"packages/utils/src/Easing.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/Easing.ts","line":206,"character":11,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/Easing.ts#L206"}],"parentId":6}],"location":{"query":"Easing.Variable.default","hash":"Bounce.InOut"}}},"defaultValue":"...","is":{"declaration":true},"location":{"query":"Easing.Variable.default","hash":"Bounce.InOut"},"text":{},"parentId":6},{"id":146,"name":"Out","kind":4096,"kindString":"Property","flags":{},"sources":[{"fileName":"packages/utils/src/Easing.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/Easing.ts","line":195,"character":4,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/Easing.ts#L195"}],"type":{"type":"reflection","declaration":{"id":147,"name":"Out","kind":65536,"kindString":"Type literal","flags":{},"sources":[{"fileName":"packages/utils/src/Easing.ts","line":195,"character":9,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/Easing.ts#L195"}],"signatures":[{"id":148,"name":"Out","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":149,"name":"amount","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"intrinsic","name":"number"},"text":{}}],"type":{"type":"intrinsic","name":"number"},"is":{"declaration":false},"location":{"query":"Easing.Variable.default","hash":"Bounce.Out.__type"},"text":{},"sources":[{"fileName":"packages/utils/src/Easing.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/Easing.ts","line":195,"character":9,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/Easing.ts#L195"}],"parentId":6}],"location":{"query":"Easing.Variable.default","hash":"Bounce.Out"}}},"defaultValue":"...","is":{"declaration":true},"location":{"query":"Easing.Variable.default","hash":"Bounce.Out"},"text":{},"parentId":6}],"groups":[{"title":"Methods","children":[142,150,146]}],"sources":[{"fileName":"packages/utils/src/Easing.ts","line":191,"character":10,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/Easing.ts#L191"}],"location":{"query":"Easing.Variable.default","hash":"Bounce"}}},"defaultValue":"...","is":{"declaration":true},"location":{"query":"Easing.Variable.default","hash":"Bounce"},"text":{},"parentId":6},{"id":98,"name":"Circular","kind":1024,"kindString":"Property","flags":{},"sources":[{"fileName":"packages/utils/src/Easing.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/Easing.ts","line":124,"character":2,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/Easing.ts#L124"}],"type":{"type":"reflection","declaration":{"id":99,"name":"Circular","kind":65536,"kindString":"Type literal","flags":{},"children":[{"id":100,"name":"In","kind":4096,"kindString":"Property","flags":{},"sources":[{"fileName":"packages/utils/src/Easing.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/Easing.ts","line":125,"character":4,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/Easing.ts#L125"}],"type":{"type":"reflection","declaration":{"id":101,"name":"In","kind":65536,"kindString":"Type literal","flags":{},"sources":[{"fileName":"packages/utils/src/Easing.ts","line":125,"character":8,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/Easing.ts#L125"}],"signatures":[{"id":102,"name":"In","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":103,"name":"amount","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"intrinsic","name":"number"},"text":{}}],"type":{"type":"intrinsic","name":"number"},"is":{"declaration":false},"location":{"query":"Easing.Variable.default","hash":"Circular.In.__type"},"text":{},"sources":[{"fileName":"packages/utils/src/Easing.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/Easing.ts","line":125,"character":8,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/Easing.ts#L125"}],"parentId":6}],"location":{"query":"Easing.Variable.default","hash":"Circular.In"}}},"defaultValue":"...","is":{"declaration":true},"location":{"query":"Easing.Variable.default","hash":"Circular.In"},"text":{},"parentId":6},{"id":108,"name":"InOut","kind":4096,"kindString":"Property","flags":{},"sources":[{"fileName":"packages/utils/src/Easing.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/Easing.ts","line":127,"character":4,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/Easing.ts#L127"}],"type":{"type":"reflection","declaration":{"id":109,"name":"InOut","kind":65536,"kindString":"Type literal","flags":{},"sources":[{"fileName":"packages/utils/src/Easing.ts","line":127,"character":11,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/Easing.ts#L127"}],"signatures":[{"id":110,"name":"InOut","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":111,"name":"amount","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"intrinsic","name":"number"},"text":{}}],"type":{"type":"intrinsic","name":"number"},"is":{"declaration":false},"location":{"query":"Easing.Variable.default","hash":"Circular.InOut.__type"},"text":{},"sources":[{"fileName":"packages/utils/src/Easing.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/Easing.ts","line":127,"character":11,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/Easing.ts#L127"}],"parentId":6}],"location":{"query":"Easing.Variable.default","hash":"Circular.InOut"}}},"defaultValue":"...","is":{"declaration":true},"location":{"query":"Easing.Variable.default","hash":"Circular.InOut"},"text":{},"parentId":6},{"id":104,"name":"Out","kind":4096,"kindString":"Property","flags":{},"sources":[{"fileName":"packages/utils/src/Easing.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/Easing.ts","line":126,"character":4,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/Easing.ts#L126"}],"type":{"type":"reflection","declaration":{"id":105,"name":"Out","kind":65536,"kindString":"Type literal","flags":{},"sources":[{"fileName":"packages/utils/src/Easing.ts","line":126,"character":9,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/Easing.ts#L126"}],"signatures":[{"id":106,"name":"Out","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":107,"name":"amount","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"intrinsic","name":"number"},"text":{}}],"type":{"type":"intrinsic","name":"number"},"is":{"declaration":false},"location":{"query":"Easing.Variable.default","hash":"Circular.Out.__type"},"text":{},"sources":[{"fileName":"packages/utils/src/Easing.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/Easing.ts","line":126,"character":9,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/Easing.ts#L126"}],"parentId":6}],"location":{"query":"Easing.Variable.default","hash":"Circular.Out"}}},"defaultValue":"...","is":{"declaration":true},"location":{"query":"Easing.Variable.default","hash":"Circular.Out"},"text":{},"parentId":6}],"groups":[{"title":"Methods","children":[100,108,104]}],"sources":[{"fileName":"packages/utils/src/Easing.ts","line":124,"character":12,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/Easing.ts#L124"}],"location":{"query":"Easing.Variable.default","hash":"Circular"}}},"defaultValue":"...","is":{"declaration":true},"location":{"query":"Easing.Variable.default","hash":"Circular"},"text":{},"parentId":6},{"id":28,"name":"Cubic","kind":1024,"kindString":"Property","flags":{},"sources":[{"fileName":"packages/utils/src/Easing.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/Easing.ts","line":49,"character":2,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/Easing.ts#L49"}],"type":{"type":"reflection","declaration":{"id":29,"name":"Cubic","kind":65536,"kindString":"Type literal","flags":{},"children":[{"id":30,"name":"In","kind":4096,"kindString":"Property","flags":{},"sources":[{"fileName":"packages/utils/src/Easing.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/Easing.ts","line":51,"character":4,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/Easing.ts#L51"}],"type":{"type":"reflection","declaration":{"id":31,"name":"In","kind":65536,"kindString":"Type literal","flags":{},"sources":[{"fileName":"packages/utils/src/Easing.ts","line":51,"character":8,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/Easing.ts#L51"}],"signatures":[{"id":32,"name":"In","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":33,"name":"amount","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"intrinsic","name":"number"},"text":{}}],"type":{"type":"intrinsic","name":"number"},"is":{"declaration":false},"location":{"query":"Easing.Variable.default","hash":"Cubic.In.__type"},"text":{},"sources":[{"fileName":"packages/utils/src/Easing.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/Easing.ts","line":51,"character":8,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/Easing.ts#L51"}],"parentId":6}],"location":{"query":"Easing.Variable.default","hash":"Cubic.In"}}},"defaultValue":"...","is":{"declaration":true},"location":{"query":"Easing.Variable.default","hash":"Cubic.In"},"text":{},"parentId":6},{"id":38,"name":"InOut","kind":4096,"kindString":"Property","flags":{},"sources":[{"fileName":"packages/utils/src/Easing.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/Easing.ts","line":55,"character":4,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/Easing.ts#L55"}],"type":{"type":"reflection","declaration":{"id":39,"name":"InOut","kind":65536,"kindString":"Type literal","flags":{},"sources":[{"fileName":"packages/utils/src/Easing.ts","line":55,"character":11,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/Easing.ts#L55"}],"signatures":[{"id":40,"name":"InOut","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":41,"name":"amount","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"intrinsic","name":"number"},"text":{}}],"type":{"type":"intrinsic","name":"number"},"is":{"declaration":false},"location":{"query":"Easing.Variable.default","hash":"Cubic.InOut.__type"},"text":{},"sources":[{"fileName":"packages/utils/src/Easing.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/Easing.ts","line":55,"character":11,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/Easing.ts#L55"}],"parentId":6}],"location":{"query":"Easing.Variable.default","hash":"Cubic.InOut"}}},"defaultValue":"...","is":{"declaration":true},"location":{"query":"Easing.Variable.default","hash":"Cubic.InOut"},"text":{},"parentId":6},{"id":34,"name":"Out","kind":4096,"kindString":"Property","flags":{},"sources":[{"fileName":"packages/utils/src/Easing.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/Easing.ts","line":53,"character":4,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/Easing.ts#L53"}],"type":{"type":"reflection","declaration":{"id":35,"name":"Out","kind":65536,"kindString":"Type literal","flags":{},"sources":[{"fileName":"packages/utils/src/Easing.ts","line":53,"character":9,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/Easing.ts#L53"}],"signatures":[{"id":36,"name":"Out","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":37,"name":"amount","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"intrinsic","name":"number"},"text":{}}],"type":{"type":"intrinsic","name":"number"},"is":{"declaration":false},"location":{"query":"Easing.Variable.default","hash":"Cubic.Out.__type"},"text":{},"sources":[{"fileName":"packages/utils/src/Easing.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/Easing.ts","line":53,"character":9,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/Easing.ts#L53"}],"parentId":6}],"location":{"query":"Easing.Variable.default","hash":"Cubic.Out"}}},"defaultValue":"...","is":{"declaration":true},"location":{"query":"Easing.Variable.default","hash":"Cubic.Out"},"text":{},"parentId":6}],"groups":[{"title":"Methods","children":[30,38,34]}],"sources":[{"fileName":"packages/utils/src/Easing.ts","line":49,"character":9,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/Easing.ts#L49"}],"location":{"query":"Easing.Variable.default","hash":"Cubic"}}},"defaultValue":"...","is":{"declaration":true},"location":{"query":"Easing.Variable.default","hash":"Cubic"},"text":{},"parentId":6},{"id":112,"name":"Elastic","kind":1024,"kindString":"Property","flags":{},"sources":[{"fileName":"packages/utils/src/Easing.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/Easing.ts","line":134,"character":2,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/Easing.ts#L134"}],"type":{"type":"reflection","declaration":{"id":113,"name":"Elastic","kind":65536,"kindString":"Type literal","flags":{},"children":[{"id":114,"name":"In","kind":4096,"kindString":"Property","flags":{},"sources":[{"fileName":"packages/utils/src/Easing.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/Easing.ts","line":135,"character":4,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/Easing.ts#L135"}],"type":{"type":"reflection","declaration":{"id":115,"name":"In","kind":65536,"kindString":"Type literal","flags":{},"sources":[{"fileName":"packages/utils/src/Easing.ts","line":135,"character":8,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/Easing.ts#L135"}],"signatures":[{"id":116,"name":"In","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":117,"name":"amount","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"intrinsic","name":"number"},"text":{}}],"type":{"type":"intrinsic","name":"number"},"is":{"declaration":false},"location":{"query":"Easing.Variable.default","hash":"Elastic.In.__type"},"text":{},"sources":[{"fileName":"packages/utils/src/Easing.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/Easing.ts","line":135,"character":8,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/Easing.ts#L135"}],"parentId":6}],"location":{"query":"Easing.Variable.default","hash":"Elastic.In"}}},"defaultValue":"...","is":{"declaration":true},"location":{"query":"Easing.Variable.default","hash":"Elastic.In"},"text":{},"parentId":6},{"id":122,"name":"InOut","kind":4096,"kindString":"Property","flags":{},"sources":[{"fileName":"packages/utils/src/Easing.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/Easing.ts","line":156,"character":4,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/Easing.ts#L156"}],"type":{"type":"reflection","declaration":{"id":123,"name":"InOut","kind":65536,"kindString":"Type literal","flags":{},"sources":[{"fileName":"packages/utils/src/Easing.ts","line":156,"character":11,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/Easing.ts#L156"}],"signatures":[{"id":124,"name":"InOut","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":125,"name":"amount","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"intrinsic","name":"number"},"text":{}}],"type":{"type":"intrinsic","name":"number"},"is":{"declaration":false},"location":{"query":"Easing.Variable.default","hash":"Elastic.InOut.__type"},"text":{},"sources":[{"fileName":"packages/utils/src/Easing.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/Easing.ts","line":156,"character":11,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/Easing.ts#L156"}],"parentId":6}],"location":{"query":"Easing.Variable.default","hash":"Elastic.InOut"}}},"defaultValue":"...","is":{"declaration":true},"location":{"query":"Easing.Variable.default","hash":"Elastic.InOut"},"text":{},"parentId":6},{"id":118,"name":"Out","kind":4096,"kindString":"Property","flags":{},"sources":[{"fileName":"packages/utils/src/Easing.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/Easing.ts","line":146,"character":4,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/Easing.ts#L146"}],"type":{"type":"reflection","declaration":{"id":119,"name":"Out","kind":65536,"kindString":"Type literal","flags":{},"sources":[{"fileName":"packages/utils/src/Easing.ts","line":146,"character":9,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/Easing.ts#L146"}],"signatures":[{"id":120,"name":"Out","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":121,"name":"amount","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"intrinsic","name":"number"},"text":{}}],"type":{"type":"intrinsic","name":"number"},"is":{"declaration":false},"location":{"query":"Easing.Variable.default","hash":"Elastic.Out.__type"},"text":{},"sources":[{"fileName":"packages/utils/src/Easing.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/Easing.ts","line":146,"character":9,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/Easing.ts#L146"}],"parentId":6}],"location":{"query":"Easing.Variable.default","hash":"Elastic.Out"}}},"defaultValue":"...","is":{"declaration":true},"location":{"query":"Easing.Variable.default","hash":"Elastic.Out"},"text":{},"parentId":6}],"groups":[{"title":"Methods","children":[114,122,118]}],"sources":[{"fileName":"packages/utils/src/Easing.ts","line":134,"character":11,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/Easing.ts#L134"}],"location":{"query":"Easing.Variable.default","hash":"Elastic"}}},"defaultValue":"...","is":{"declaration":true},"location":{"query":"Easing.Variable.default","hash":"Elastic"},"text":{},"parentId":6},{"id":84,"name":"Exponential","kind":1024,"kindString":"Property","flags":{},"sources":[{"fileName":"packages/utils/src/Easing.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/Easing.ts","line":102,"character":2,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/Easing.ts#L102"}],"type":{"type":"reflection","declaration":{"id":85,"name":"Exponential","kind":65536,"kindString":"Type literal","flags":{},"children":[{"id":86,"name":"In","kind":4096,"kindString":"Property","flags":{},"sources":[{"fileName":"packages/utils/src/Easing.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/Easing.ts","line":104,"character":4,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/Easing.ts#L104"}],"type":{"type":"reflection","declaration":{"id":87,"name":"In","kind":65536,"kindString":"Type literal","flags":{},"sources":[{"fileName":"packages/utils/src/Easing.ts","line":104,"character":8,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/Easing.ts#L104"}],"signatures":[{"id":88,"name":"In","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":89,"name":"amount","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"intrinsic","name":"number"},"text":{}}],"type":{"type":"intrinsic","name":"number"},"is":{"declaration":false},"location":{"query":"Easing.Variable.default","hash":"Exponential.In.__type"},"text":{},"sources":[{"fileName":"packages/utils/src/Easing.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/Easing.ts","line":104,"character":8,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/Easing.ts#L104"}],"parentId":6}],"location":{"query":"Easing.Variable.default","hash":"Exponential.In"}}},"defaultValue":"...","is":{"declaration":true},"location":{"query":"Easing.Variable.default","hash":"Exponential.In"},"text":{},"parentId":6},{"id":94,"name":"InOut","kind":4096,"kindString":"Property","flags":{},"sources":[{"fileName":"packages/utils/src/Easing.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/Easing.ts","line":108,"character":4,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/Easing.ts#L108"}],"type":{"type":"reflection","declaration":{"id":95,"name":"InOut","kind":65536,"kindString":"Type literal","flags":{},"sources":[{"fileName":"packages/utils/src/Easing.ts","line":108,"character":11,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/Easing.ts#L108"}],"signatures":[{"id":96,"name":"InOut","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":97,"name":"amount","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"intrinsic","name":"number"},"text":{}}],"type":{"type":"intrinsic","name":"number"},"is":{"declaration":false},"location":{"query":"Easing.Variable.default","hash":"Exponential.InOut.__type"},"text":{},"sources":[{"fileName":"packages/utils/src/Easing.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/Easing.ts","line":108,"character":11,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/Easing.ts#L108"}],"parentId":6}],"location":{"query":"Easing.Variable.default","hash":"Exponential.InOut"}}},"defaultValue":"...","is":{"declaration":true},"location":{"query":"Easing.Variable.default","hash":"Exponential.InOut"},"text":{},"parentId":6},{"id":90,"name":"Out","kind":4096,"kindString":"Property","flags":{},"sources":[{"fileName":"packages/utils/src/Easing.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/Easing.ts","line":106,"character":4,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/Easing.ts#L106"}],"type":{"type":"reflection","declaration":{"id":91,"name":"Out","kind":65536,"kindString":"Type literal","flags":{},"sources":[{"fileName":"packages/utils/src/Easing.ts","line":106,"character":9,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/Easing.ts#L106"}],"signatures":[{"id":92,"name":"Out","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":93,"name":"amount","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"intrinsic","name":"number"},"text":{}}],"type":{"type":"intrinsic","name":"number"},"is":{"declaration":false},"location":{"query":"Easing.Variable.default","hash":"Exponential.Out.__type"},"text":{},"sources":[{"fileName":"packages/utils/src/Easing.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/Easing.ts","line":106,"character":9,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/Easing.ts#L106"}],"parentId":6}],"location":{"query":"Easing.Variable.default","hash":"Exponential.Out"}}},"defaultValue":"...","is":{"declaration":true},"location":{"query":"Easing.Variable.default","hash":"Exponential.Out"},"text":{},"parentId":6}],"groups":[{"title":"Methods","children":[86,94,90]}],"sources":[{"fileName":"packages/utils/src/Easing.ts","line":102,"character":15,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/Easing.ts#L102"}],"location":{"query":"Easing.Variable.default","hash":"Exponential"}}},"defaultValue":"...","is":{"declaration":true},"location":{"query":"Easing.Variable.default","hash":"Exponential"},"text":{},"parentId":6},{"id":8,"name":"Linear","kind":1024,"kindString":"Property","flags":{},"sources":[{"fileName":"packages/utils/src/Easing.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/Easing.ts","line":30,"character":2,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/Easing.ts#L30"}],"type":{"type":"reflection","declaration":{"id":9,"name":"Linear","kind":65536,"kindString":"Type literal","flags":{},"children":[{"id":10,"name":"None","kind":4096,"kindString":"Property","flags":{},"sources":[{"fileName":"packages/utils/src/Easing.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/Easing.ts","line":31,"character":4,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/Easing.ts#L31"}],"type":{"type":"reflection","declaration":{"id":11,"name":"None","kind":65536,"kindString":"Type literal","flags":{},"sources":[{"fileName":"packages/utils/src/Easing.ts","line":31,"character":10,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/Easing.ts#L31"}],"signatures":[{"id":12,"name":"None","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":13,"name":"amount","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"intrinsic","name":"number"},"text":{}}],"type":{"type":"intrinsic","name":"number"},"is":{"declaration":false},"location":{"query":"Easing.Variable.default","hash":"Linear.None.__type"},"text":{},"sources":[{"fileName":"packages/utils/src/Easing.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/Easing.ts","line":31,"character":10,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/Easing.ts#L31"}],"parentId":6}],"location":{"query":"Easing.Variable.default","hash":"Linear.None"}}},"defaultValue":"...","is":{"declaration":true},"location":{"query":"Easing.Variable.default","hash":"Linear.None"},"text":{},"parentId":6}],"groups":[{"title":"Methods","children":[10]}],"sources":[{"fileName":"packages/utils/src/Easing.ts","line":30,"character":10,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/Easing.ts#L30"}],"location":{"query":"Easing.Variable.default","hash":"Linear"}}},"defaultValue":"...","is":{"declaration":true},"location":{"query":"Easing.Variable.default","hash":"Linear"},"text":{},"parentId":6},{"id":14,"name":"Quadratic","kind":1024,"kindString":"Property","flags":{},"sources":[{"fileName":"packages/utils/src/Easing.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/Easing.ts","line":34,"character":2,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/Easing.ts#L34"}],"type":{"type":"reflection","declaration":{"id":15,"name":"Quadratic","kind":65536,"kindString":"Type literal","flags":{},"children":[{"id":16,"name":"In","kind":4096,"kindString":"Property","flags":{},"sources":[{"fileName":"packages/utils/src/Easing.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/Easing.ts","line":36,"character":4,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/Easing.ts#L36"}],"type":{"type":"reflection","declaration":{"id":17,"name":"In","kind":65536,"kindString":"Type literal","flags":{},"sources":[{"fileName":"packages/utils/src/Easing.ts","line":36,"character":8,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/Easing.ts#L36"}],"signatures":[{"id":18,"name":"In","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":19,"name":"amount","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"intrinsic","name":"number"},"text":{}}],"type":{"type":"intrinsic","name":"number"},"is":{"declaration":false},"location":{"query":"Easing.Variable.default","hash":"Quadratic.In.__type"},"text":{},"sources":[{"fileName":"packages/utils/src/Easing.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/Easing.ts","line":36,"character":8,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/Easing.ts#L36"}],"parentId":6}],"location":{"query":"Easing.Variable.default","hash":"Quadratic.In"}}},"defaultValue":"...","is":{"declaration":true},"location":{"query":"Easing.Variable.default","hash":"Quadratic.In"},"text":{},"parentId":6},{"id":24,"name":"InOut","kind":4096,"kindString":"Property","flags":{},"sources":[{"fileName":"packages/utils/src/Easing.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/Easing.ts","line":40,"character":4,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/Easing.ts#L40"}],"type":{"type":"reflection","declaration":{"id":25,"name":"InOut","kind":65536,"kindString":"Type literal","flags":{},"sources":[{"fileName":"packages/utils/src/Easing.ts","line":40,"character":11,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/Easing.ts#L40"}],"signatures":[{"id":26,"name":"InOut","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":27,"name":"amount","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"intrinsic","name":"number"},"text":{}}],"type":{"type":"intrinsic","name":"number"},"is":{"declaration":false},"location":{"query":"Easing.Variable.default","hash":"Quadratic.InOut.__type"},"text":{},"sources":[{"fileName":"packages/utils/src/Easing.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/Easing.ts","line":40,"character":11,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/Easing.ts#L40"}],"parentId":6}],"location":{"query":"Easing.Variable.default","hash":"Quadratic.InOut"}}},"defaultValue":"...","is":{"declaration":true},"location":{"query":"Easing.Variable.default","hash":"Quadratic.InOut"},"text":{},"parentId":6},{"id":20,"name":"Out","kind":4096,"kindString":"Property","flags":{},"sources":[{"fileName":"packages/utils/src/Easing.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/Easing.ts","line":38,"character":4,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/Easing.ts#L38"}],"type":{"type":"reflection","declaration":{"id":21,"name":"Out","kind":65536,"kindString":"Type literal","flags":{},"sources":[{"fileName":"packages/utils/src/Easing.ts","line":38,"character":9,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/Easing.ts#L38"}],"signatures":[{"id":22,"name":"Out","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":23,"name":"amount","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"intrinsic","name":"number"},"text":{}}],"type":{"type":"intrinsic","name":"number"},"is":{"declaration":false},"location":{"query":"Easing.Variable.default","hash":"Quadratic.Out.__type"},"text":{},"sources":[{"fileName":"packages/utils/src/Easing.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/Easing.ts","line":38,"character":9,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/Easing.ts#L38"}],"parentId":6}],"location":{"query":"Easing.Variable.default","hash":"Quadratic.Out"}}},"defaultValue":"...","is":{"declaration":true},"location":{"query":"Easing.Variable.default","hash":"Quadratic.Out"},"text":{},"parentId":6}],"groups":[{"title":"Methods","children":[16,24,20]}],"sources":[{"fileName":"packages/utils/src/Easing.ts","line":34,"character":13,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/Easing.ts#L34"}],"location":{"query":"Easing.Variable.default","hash":"Quadratic"}}},"defaultValue":"...","is":{"declaration":true},"location":{"query":"Easing.Variable.default","hash":"Quadratic"},"text":{},"parentId":6},{"id":42,"name":"Quartic","kind":1024,"kindString":"Property","flags":{},"sources":[{"fileName":"packages/utils/src/Easing.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/Easing.ts","line":63,"character":2,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/Easing.ts#L63"}],"type":{"type":"reflection","declaration":{"id":43,"name":"Quartic","kind":65536,"kindString":"Type literal","flags":{},"children":[{"id":44,"name":"In","kind":4096,"kindString":"Property","flags":{},"sources":[{"fileName":"packages/utils/src/Easing.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/Easing.ts","line":65,"character":4,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/Easing.ts#L65"}],"type":{"type":"reflection","declaration":{"id":45,"name":"In","kind":65536,"kindString":"Type literal","flags":{},"sources":[{"fileName":"packages/utils/src/Easing.ts","line":65,"character":8,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/Easing.ts#L65"}],"signatures":[{"id":46,"name":"In","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":47,"name":"amount","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"intrinsic","name":"number"},"text":{}}],"type":{"type":"intrinsic","name":"number"},"is":{"declaration":false},"location":{"query":"Easing.Variable.default","hash":"Quartic.In.__type"},"text":{},"sources":[{"fileName":"packages/utils/src/Easing.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/Easing.ts","line":65,"character":8,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/Easing.ts#L65"}],"parentId":6}],"location":{"query":"Easing.Variable.default","hash":"Quartic.In"}}},"defaultValue":"...","is":{"declaration":true},"location":{"query":"Easing.Variable.default","hash":"Quartic.In"},"text":{},"parentId":6},{"id":52,"name":"InOut","kind":4096,"kindString":"Property","flags":{},"sources":[{"fileName":"packages/utils/src/Easing.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/Easing.ts","line":69,"character":4,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/Easing.ts#L69"}],"type":{"type":"reflection","declaration":{"id":53,"name":"InOut","kind":65536,"kindString":"Type literal","flags":{},"sources":[{"fileName":"packages/utils/src/Easing.ts","line":69,"character":11,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/Easing.ts#L69"}],"signatures":[{"id":54,"name":"InOut","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":55,"name":"amount","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"intrinsic","name":"number"},"text":{}}],"type":{"type":"intrinsic","name":"number"},"is":{"declaration":false},"location":{"query":"Easing.Variable.default","hash":"Quartic.InOut.__type"},"text":{},"sources":[{"fileName":"packages/utils/src/Easing.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/Easing.ts","line":69,"character":11,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/Easing.ts#L69"}],"parentId":6}],"location":{"query":"Easing.Variable.default","hash":"Quartic.InOut"}}},"defaultValue":"...","is":{"declaration":true},"location":{"query":"Easing.Variable.default","hash":"Quartic.InOut"},"text":{},"parentId":6},{"id":48,"name":"Out","kind":4096,"kindString":"Property","flags":{},"sources":[{"fileName":"packages/utils/src/Easing.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/Easing.ts","line":67,"character":4,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/Easing.ts#L67"}],"type":{"type":"reflection","declaration":{"id":49,"name":"Out","kind":65536,"kindString":"Type literal","flags":{},"sources":[{"fileName":"packages/utils/src/Easing.ts","line":67,"character":9,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/Easing.ts#L67"}],"signatures":[{"id":50,"name":"Out","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":51,"name":"amount","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"intrinsic","name":"number"},"text":{}}],"type":{"type":"intrinsic","name":"number"},"is":{"declaration":false},"location":{"query":"Easing.Variable.default","hash":"Quartic.Out.__type"},"text":{},"sources":[{"fileName":"packages/utils/src/Easing.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/Easing.ts","line":67,"character":9,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/Easing.ts#L67"}],"parentId":6}],"location":{"query":"Easing.Variable.default","hash":"Quartic.Out"}}},"defaultValue":"...","is":{"declaration":true},"location":{"query":"Easing.Variable.default","hash":"Quartic.Out"},"text":{},"parentId":6}],"groups":[{"title":"Methods","children":[44,52,48]}],"sources":[{"fileName":"packages/utils/src/Easing.ts","line":63,"character":11,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/Easing.ts#L63"}],"location":{"query":"Easing.Variable.default","hash":"Quartic"}}},"defaultValue":"...","is":{"declaration":true},"location":{"query":"Easing.Variable.default","hash":"Quartic"},"text":{},"parentId":6},{"id":56,"name":"Quintic","kind":1024,"kindString":"Property","flags":{},"sources":[{"fileName":"packages/utils/src/Easing.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/Easing.ts","line":78,"character":2,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/Easing.ts#L78"}],"type":{"type":"reflection","declaration":{"id":57,"name":"Quintic","kind":65536,"kindString":"Type literal","flags":{},"children":[{"id":58,"name":"In","kind":4096,"kindString":"Property","flags":{},"sources":[{"fileName":"packages/utils/src/Easing.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/Easing.ts","line":80,"character":4,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/Easing.ts#L80"}],"type":{"type":"reflection","declaration":{"id":59,"name":"In","kind":65536,"kindString":"Type literal","flags":{},"sources":[{"fileName":"packages/utils/src/Easing.ts","line":80,"character":8,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/Easing.ts#L80"}],"signatures":[{"id":60,"name":"In","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":61,"name":"amount","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"intrinsic","name":"number"},"text":{}}],"type":{"type":"intrinsic","name":"number"},"is":{"declaration":false},"location":{"query":"Easing.Variable.default","hash":"Quintic.In.__type"},"text":{},"sources":[{"fileName":"packages/utils/src/Easing.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/Easing.ts","line":80,"character":8,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/Easing.ts#L80"}],"parentId":6}],"location":{"query":"Easing.Variable.default","hash":"Quintic.In"}}},"defaultValue":"...","is":{"declaration":true},"location":{"query":"Easing.Variable.default","hash":"Quintic.In"},"text":{},"parentId":6},{"id":66,"name":"InOut","kind":4096,"kindString":"Property","flags":{},"sources":[{"fileName":"packages/utils/src/Easing.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/Easing.ts","line":84,"character":4,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/Easing.ts#L84"}],"type":{"type":"reflection","declaration":{"id":67,"name":"InOut","kind":65536,"kindString":"Type literal","flags":{},"sources":[{"fileName":"packages/utils/src/Easing.ts","line":84,"character":11,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/Easing.ts#L84"}],"signatures":[{"id":68,"name":"InOut","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":69,"name":"amount","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"intrinsic","name":"number"},"text":{}}],"type":{"type":"intrinsic","name":"number"},"is":{"declaration":false},"location":{"query":"Easing.Variable.default","hash":"Quintic.InOut.__type"},"text":{},"sources":[{"fileName":"packages/utils/src/Easing.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/Easing.ts","line":84,"character":11,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/Easing.ts#L84"}],"parentId":6}],"location":{"query":"Easing.Variable.default","hash":"Quintic.InOut"}}},"defaultValue":"...","is":{"declaration":true},"location":{"query":"Easing.Variable.default","hash":"Quintic.InOut"},"text":{},"parentId":6},{"id":62,"name":"Out","kind":4096,"kindString":"Property","flags":{},"sources":[{"fileName":"packages/utils/src/Easing.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/Easing.ts","line":82,"character":4,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/Easing.ts#L82"}],"type":{"type":"reflection","declaration":{"id":63,"name":"Out","kind":65536,"kindString":"Type literal","flags":{},"sources":[{"fileName":"packages/utils/src/Easing.ts","line":82,"character":9,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/Easing.ts#L82"}],"signatures":[{"id":64,"name":"Out","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":65,"name":"amount","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"intrinsic","name":"number"},"text":{}}],"type":{"type":"intrinsic","name":"number"},"is":{"declaration":false},"location":{"query":"Easing.Variable.default","hash":"Quintic.Out.__type"},"text":{},"sources":[{"fileName":"packages/utils/src/Easing.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/Easing.ts","line":82,"character":9,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/Easing.ts#L82"}],"parentId":6}],"location":{"query":"Easing.Variable.default","hash":"Quintic.Out"}}},"defaultValue":"...","is":{"declaration":true},"location":{"query":"Easing.Variable.default","hash":"Quintic.Out"},"text":{},"parentId":6}],"groups":[{"title":"Methods","children":[58,66,62]}],"sources":[{"fileName":"packages/utils/src/Easing.ts","line":78,"character":11,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/Easing.ts#L78"}],"location":{"query":"Easing.Variable.default","hash":"Quintic"}}},"defaultValue":"...","is":{"declaration":true},"location":{"query":"Easing.Variable.default","hash":"Quintic"},"text":{},"parentId":6},{"id":70,"name":"Sinusoidal","kind":1024,"kindString":"Property","flags":{},"sources":[{"fileName":"packages/utils/src/Easing.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/Easing.ts","line":93,"character":2,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/Easing.ts#L93"}],"type":{"type":"reflection","declaration":{"id":71,"name":"Sinusoidal","kind":65536,"kindString":"Type literal","flags":{},"children":[{"id":72,"name":"In","kind":4096,"kindString":"Property","flags":{},"sources":[{"fileName":"packages/utils/src/Easing.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/Easing.ts","line":95,"character":4,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/Easing.ts#L95"}],"type":{"type":"reflection","declaration":{"id":73,"name":"In","kind":65536,"kindString":"Type literal","flags":{},"sources":[{"fileName":"packages/utils/src/Easing.ts","line":95,"character":8,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/Easing.ts#L95"}],"signatures":[{"id":74,"name":"In","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":75,"name":"amount","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"intrinsic","name":"number"},"text":{}}],"type":{"type":"intrinsic","name":"number"},"is":{"declaration":false},"location":{"query":"Easing.Variable.default","hash":"Sinusoidal.In.__type"},"text":{},"sources":[{"fileName":"packages/utils/src/Easing.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/Easing.ts","line":95,"character":8,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/Easing.ts#L95"}],"parentId":6}],"location":{"query":"Easing.Variable.default","hash":"Sinusoidal.In"}}},"defaultValue":"...","is":{"declaration":true},"location":{"query":"Easing.Variable.default","hash":"Sinusoidal.In"},"text":{},"parentId":6},{"id":80,"name":"InOut","kind":4096,"kindString":"Property","flags":{},"sources":[{"fileName":"packages/utils/src/Easing.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/Easing.ts","line":99,"character":4,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/Easing.ts#L99"}],"type":{"type":"reflection","declaration":{"id":81,"name":"InOut","kind":65536,"kindString":"Type literal","flags":{},"sources":[{"fileName":"packages/utils/src/Easing.ts","line":99,"character":11,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/Easing.ts#L99"}],"signatures":[{"id":82,"name":"InOut","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":83,"name":"amount","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"intrinsic","name":"number"},"text":{}}],"type":{"type":"intrinsic","name":"number"},"is":{"declaration":false},"location":{"query":"Easing.Variable.default","hash":"Sinusoidal.InOut.__type"},"text":{},"sources":[{"fileName":"packages/utils/src/Easing.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/Easing.ts","line":99,"character":11,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/Easing.ts#L99"}],"parentId":6}],"location":{"query":"Easing.Variable.default","hash":"Sinusoidal.InOut"}}},"defaultValue":"...","is":{"declaration":true},"location":{"query":"Easing.Variable.default","hash":"Sinusoidal.InOut"},"text":{},"parentId":6},{"id":76,"name":"Out","kind":4096,"kindString":"Property","flags":{},"sources":[{"fileName":"packages/utils/src/Easing.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/Easing.ts","line":97,"character":4,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/Easing.ts#L97"}],"type":{"type":"reflection","declaration":{"id":77,"name":"Out","kind":65536,"kindString":"Type literal","flags":{},"sources":[{"fileName":"packages/utils/src/Easing.ts","line":97,"character":9,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/Easing.ts#L97"}],"signatures":[{"id":78,"name":"Out","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":79,"name":"amount","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"intrinsic","name":"number"},"text":{}}],"type":{"type":"intrinsic","name":"number"},"is":{"declaration":false},"location":{"query":"Easing.Variable.default","hash":"Sinusoidal.Out.__type"},"text":{},"sources":[{"fileName":"packages/utils/src/Easing.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/Easing.ts","line":97,"character":9,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/Easing.ts#L97"}],"parentId":6}],"location":{"query":"Easing.Variable.default","hash":"Sinusoidal.Out"}}},"defaultValue":"...","is":{"declaration":true},"location":{"query":"Easing.Variable.default","hash":"Sinusoidal.Out"},"text":{},"parentId":6}],"groups":[{"title":"Methods","children":[72,80,76]}],"sources":[{"fileName":"packages/utils/src/Easing.ts","line":93,"character":14,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/Easing.ts#L93"}],"location":{"query":"Easing.Variable.default","hash":"Sinusoidal"}}},"defaultValue":"...","is":{"declaration":true},"location":{"query":"Easing.Variable.default","hash":"Sinusoidal"},"text":{},"parentId":6}],"groups":[{"title":"Properties","children":[126,140,98,28,112,84,8,14,42,56,70]}],"sources":[{"fileName":"packages/utils/src/Easing.ts","line":28,"character":15,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/Easing.ts#L28"}],"location":{"query":"Easing.Variable.default","hash":""}}},"defaultValue":"...","is":{"declaration":true},"location":{"query":"Easing.Variable.default","hash":""},"text":{"comment":"

    The Ease class provides a collection of easing functions for use with tween.js.\n缓动函数集合,用于动画过渡效果。

    \n
    See:

    https://www.febucci.com/2018/08/easing-functions/

    \n"},"parentId":1} diff --git a/docs/v1.0.0-beta01/data/Form.Function.autoSaveForm.json b/docs/v1.0.0-beta01/data/Form.Function.autoSaveForm.json new file mode 100644 index 000000000..4b61cc388 --- /dev/null +++ b/docs/v1.0.0-beta01/data/Form.Function.autoSaveForm.json @@ -0,0 +1 @@ +{"id":1020,"name":"autoSaveForm","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/web-utils/src/form.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/form.ts","line":115,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/form.ts#L115"}],"signatures":[{"id":1021,"name":"autoSaveForm","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"autoSaveForm"}]},{"tag":"@description","content":[{"kind":"text","text":"自动保存表单数据到localStorage。Auto-saves form data to localStorage"}]},{"tag":"@returns","content":[{"kind":"text","text":"停止自动保存的函数。Function to stop auto-save"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\nconst form = document.querySelector('form');\nconst stopAutoSave = autoSaveForm(form, 'my-form-draft');\n\n// Later, stop auto-saving\nstopAutoSave();\n```"}]}]},"parameters":[{"id":1022,"name":"form","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"表单元素。Form element"}]},"type":{"type":"reference","name":"HTMLFormElement","qualifiedName":"HTMLFormElement","package":"typescript"},"text":{"comment":"

    表单元素。Form element

    \n"}},{"id":1023,"name":"storageKey","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"localStorage键名。localStorage key"}]},"type":{"type":"intrinsic","name":"string"},"text":{"comment":"

    localStorage键名。localStorage key

    \n"}},{"id":1024,"name":"debounceTime","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"防抖时间(毫秒,默认: 500)。Debounce time in ms (default: 500)"}]},"type":{"type":"intrinsic","name":"number"},"defaultValue":"500","text":{"comment":"

    防抖时间(毫秒,默认: 500)。Debounce time in ms (default: 500)

    \n"}}],"type":{"type":"reflection","declaration":{"id":1025,"name":"autoSaveForm","kind":65536,"kindString":"Type literal","flags":{},"sources":[{"fileName":"packages/web-utils/src/form.ts","line":119,"character":3,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/form.ts#L119"}],"signatures":[{"id":1026,"name":"autoSaveForm","kind":4096,"kindString":"Call signature","flags":{},"type":{"type":"intrinsic","name":"void"},"is":{"declaration":false},"location":{"query":"Form.Function.autoSaveForm","hash":"autoSaveForm.__type"},"text":{},"parentId":1020}],"location":{"query":"Form.Function.autoSaveForm","hash":"autoSaveForm"}}},"is":{"declaration":false},"location":{"query":"Form.Function.autoSaveForm","hash":"autoSaveForm"},"text":{"comment":"
    Function:

    autoSaveForm

    \n
    Description:

    自动保存表单数据到localStorage。Auto-saves form data to localStorage

    \n
    Returns:

    停止自动保存的函数。Function to stop auto-save

    \n
    Example:
    const form = document.querySelector('form');\nconst stopAutoSave = autoSaveForm(form, 'my-form-draft');\n\n// Later, stop auto-saving\nstopAutoSave();\n
    \n"},"sources":[{"fileName":"packages/web-utils/src/form.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/form.ts","line":115,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/form.ts#L115"}],"parentId":1020}],"is":{"declaration":true},"location":{"query":"Form.Function.autoSaveForm","hash":""},"text":{},"parentId":1008} diff --git a/docs/v1.0.0-beta01/data/Form.Function.formDiff.json b/docs/v1.0.0-beta01/data/Form.Function.formDiff.json new file mode 100644 index 000000000..447628843 --- /dev/null +++ b/docs/v1.0.0-beta01/data/Form.Function.formDiff.json @@ -0,0 +1 @@ +{"id":1027,"name":"formDiff","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/web-utils/src/form.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/form.ts","line":168,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/form.ts#L168"}],"signatures":[{"id":1028,"name":"formDiff","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"formDiff"}]},{"tag":"@description","content":[{"kind":"text","text":"检测表单数据变更。Detects form data changes"}]},{"tag":"@returns","content":[{"kind":"text","text":"变更的字段。Changed fields"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\nconst form = document.querySelector('form');\nconst original = { name: 'John', email: 'john@example.com' };\nconst changes = formDiff(form, original);\n// -> { email: 'newemail@example.com' } (if email was changed)\n```"}]}]},"parameters":[{"id":1029,"name":"form","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"表单元素。Form element"}]},"type":{"type":"reference","name":"HTMLFormElement","qualifiedName":"HTMLFormElement","package":"typescript"},"text":{"comment":"

    表单元素。Form element

    \n"}},{"id":1030,"name":"originalData","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"原始数据。Original data"}]},"type":{"type":"reference","typeArguments":[{"type":"intrinsic","name":"string"},{"type":"intrinsic","name":"any"}],"name":"Record","qualifiedName":"Record","package":"typescript"},"text":{"comment":"

    原始数据。Original data

    \n"}}],"type":{"type":"reference","typeArguments":[{"type":"intrinsic","name":"string"},{"type":"intrinsic","name":"any"}],"name":"Record","qualifiedName":"Record","package":"typescript"},"is":{"declaration":false},"location":{"query":"Form.Function.formDiff","hash":"formDiff"},"text":{"comment":"
    Function:

    formDiff

    \n
    Description:

    检测表单数据变更。Detects form data changes

    \n
    Returns:

    变更的字段。Changed fields

    \n
    Example:
    const form = document.querySelector('form');\nconst original = { name: 'John', email: 'john@example.com' };\nconst changes = formDiff(form, original);\n// -> { email: 'newemail@example.com' } (if email was changed)\n
    \n"},"sources":[{"fileName":"packages/web-utils/src/form.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/form.ts","line":168,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/form.ts#L168"}],"parentId":1027}],"is":{"declaration":true},"location":{"query":"Form.Function.formDiff","hash":""},"text":{},"parentId":1008} diff --git a/docs/v1.0.0-beta01/data/Form.Function.resetFormField.json b/docs/v1.0.0-beta01/data/Form.Function.resetFormField.json new file mode 100644 index 000000000..7e6e07137 --- /dev/null +++ b/docs/v1.0.0-beta01/data/Form.Function.resetFormField.json @@ -0,0 +1 @@ +{"id":1031,"name":"resetFormField","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/web-utils/src/form.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/form.ts","line":192,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/form.ts#L192"}],"signatures":[{"id":1032,"name":"resetFormField","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"resetFormField"}]},{"tag":"@description","content":[{"kind":"text","text":"重置单个表单字段。Resets a single form field"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\nconst input = document.querySelector('input[name=\"email\"]');\nresetFormField(input);\n```"}]}]},"parameters":[{"id":1033,"name":"field","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"表单字段元素。Form field element"}]},"type":{"type":"reference","name":"HTMLElement","qualifiedName":"HTMLElement","package":"typescript"},"text":{"comment":"

    表单字段元素。Form field element

    \n"}}],"type":{"type":"intrinsic","name":"void"},"is":{"declaration":false},"location":{"query":"Form.Function.resetFormField","hash":"resetFormField"},"text":{"comment":"
    Function:

    resetFormField

    \n
    Description:

    重置单个表单字段。Resets a single form field

    \n
    Example:
    const input = document.querySelector('input[name=\"email\"]');\nresetFormField(input);\n
    \n"},"sources":[{"fileName":"packages/web-utils/src/form.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/form.ts","line":192,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/form.ts#L192"}],"parentId":1031}],"is":{"declaration":true},"location":{"query":"Form.Function.resetFormField","hash":""},"text":{},"parentId":1008} diff --git a/docs/v1.0.0-beta01/data/Form.Function.serializeForm.json b/docs/v1.0.0-beta01/data/Form.Function.serializeForm.json new file mode 100644 index 000000000..0db81e763 --- /dev/null +++ b/docs/v1.0.0-beta01/data/Form.Function.serializeForm.json @@ -0,0 +1 @@ +{"id":1009,"name":"serializeForm","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/web-utils/src/form.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/form.ts","line":20,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/form.ts#L20"}],"signatures":[{"id":1010,"name":"serializeForm","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"serializeForm"}]},{"tag":"@description","content":[{"kind":"text","text":"将表单序列化为对象或查询字符串。Serializes form to object or query string"}]},{"tag":"@returns","content":[{"kind":"text","text":"表单数据对象或查询字符串。Form data object or query string"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\nconst form = document.querySelector('form');\nserializeForm(form); // -> { name: 'John', email: 'john@example.com' }\nserializeForm(form, true); // -> 'name=John&email=john@example.com'\n```"}]}]},"parameters":[{"id":1011,"name":"form","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"表单元素。Form element"}]},"type":{"type":"reference","name":"HTMLFormElement","qualifiedName":"HTMLFormElement","package":"typescript"},"text":{"comment":"

    表单元素。Form element

    \n"}},{"id":1012,"name":"asQueryString","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"是否返回查询字符串(默认: false)。Whether to return query string (default: false)"}]},"type":{"type":"intrinsic","name":"boolean"},"defaultValue":"false","text":{"comment":"

    是否返回查询字符串(默认: false)。Whether to return query string (default: false)

    \n"}}],"type":{"type":"intrinsic","name":"any"},"is":{"declaration":false},"location":{"query":"Form.Function.serializeForm","hash":"serializeForm"},"text":{"comment":"
    Function:

    serializeForm

    \n
    Description:

    将表单序列化为对象或查询字符串。Serializes form to object or query string

    \n
    Returns:

    表单数据对象或查询字符串。Form data object or query string

    \n
    Example:
    const form = document.querySelector('form');\nserializeForm(form); // -> { name: 'John', email: 'john@example.com' }\nserializeForm(form, true); // -> 'name=John&email=john@example.com'\n
    \n"},"sources":[{"fileName":"packages/web-utils/src/form.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/form.ts","line":20,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/form.ts#L20"}],"parentId":1009}],"is":{"declaration":true},"location":{"query":"Form.Function.serializeForm","hash":""},"text":{},"parentId":1008} diff --git a/docs/v1.0.0-beta01/data/Form.Function.validateForm.json b/docs/v1.0.0-beta01/data/Form.Function.validateForm.json new file mode 100644 index 000000000..5c91a3173 --- /dev/null +++ b/docs/v1.0.0-beta01/data/Form.Function.validateForm.json @@ -0,0 +1 @@ +{"id":1013,"name":"validateForm","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/web-utils/src/form.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/form.ts","line":56,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/form.ts#L56"}],"signatures":[{"id":1014,"name":"validateForm","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"validateForm"}]},{"tag":"@description","content":[{"kind":"text","text":"验证表单字段。Validates form fields"}]},{"tag":"@returns","content":[{"kind":"text","text":"验证结果。Validation result"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\nconst form = document.querySelector('form');\nconst result = validateForm(form, {\n email: { required: true, pattern: /^\\\\S+@\\\\S+\\\\.\\\\S+$/ },\n age: { required: true, min: 18, max: 100 }\n});\n// -> { valid: false, errors: { email: 'Invalid format', age: 'Required' } }\n```"}]}]},"parameters":[{"id":1015,"name":"form","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"表单元素。Form element"}]},"type":{"type":"reference","name":"HTMLFormElement","qualifiedName":"HTMLFormElement","package":"typescript"},"text":{"comment":"

    表单元素。Form element

    \n"}},{"id":1016,"name":"rules","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"验证规则。Validation rules"}]},"type":{"type":"reference","typeArguments":[{"type":"intrinsic","name":"string"},{"type":"intrinsic","name":"any"}],"name":"Record","qualifiedName":"Record","package":"typescript"},"text":{"comment":"

    验证规则。Validation rules

    \n"}}],"type":{"type":"reflection","declaration":{"id":1017,"name":"validateForm","kind":65536,"kindString":"Type literal","flags":{},"children":[{"id":1019,"name":"errors","kind":1024,"kindString":"Property","flags":{},"sources":[{"fileName":"packages/web-utils/src/form.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/form.ts","line":59,"character":21,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/form.ts#L59"}],"type":{"type":"reference","typeArguments":[{"type":"intrinsic","name":"string"},{"type":"intrinsic","name":"string"}],"name":"Record","qualifiedName":"Record","package":"typescript"},"is":{"declaration":true},"location":{"query":"Form.Function.validateForm","hash":"validateForm.errors"},"text":{},"parentId":1013},{"id":1018,"name":"valid","kind":1024,"kindString":"Property","flags":{},"sources":[{"fileName":"packages/web-utils/src/form.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/form.ts","line":59,"character":5,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/form.ts#L59"}],"type":{"type":"intrinsic","name":"boolean"},"is":{"declaration":true},"location":{"query":"Form.Function.validateForm","hash":"validateForm.valid"},"text":{},"parentId":1013}],"groups":[{"title":"Properties","children":[1019,1018]}],"sources":[{"fileName":"packages/web-utils/src/form.ts","line":59,"character":3,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/form.ts#L59"}],"location":{"query":"Form.Function.validateForm","hash":"validateForm"}}},"is":{"declaration":false},"location":{"query":"Form.Function.validateForm","hash":"validateForm"},"text":{"comment":"
    Function:

    validateForm

    \n
    Description:

    验证表单字段。Validates form fields

    \n
    Returns:

    验证结果。Validation result

    \n
    Example:
    const form = document.querySelector('form');\nconst result = validateForm(form, {\n  email: { required: true, pattern: /^\\\\S+@\\\\S+\\\\.\\\\S+$/ },\n  age: { required: true, min: 18, max: 100 }\n});\n// -> { valid: false, errors: { email: 'Invalid format', age: 'Required' } }\n
    \n"},"sources":[{"fileName":"packages/web-utils/src/form.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/form.ts","line":56,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/form.ts#L56"}],"parentId":1013}],"is":{"declaration":true},"location":{"query":"Form.Function.validateForm","hash":""},"text":{},"parentId":1008} diff --git a/docs/v1.0.0-beta01/data/Formatter.Function.formatCurrency.json b/docs/v1.0.0-beta01/data/Formatter.Function.formatCurrency.json new file mode 100644 index 000000000..9e94f724d --- /dev/null +++ b/docs/v1.0.0-beta01/data/Formatter.Function.formatCurrency.json @@ -0,0 +1 @@ +{"id":445,"name":"formatCurrency","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/utils/src/formatter.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/formatter.ts","line":89,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/formatter.ts#L89"}],"signatures":[{"id":446,"name":"formatCurrency","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"formatCurrency"}]},{"tag":"@description","content":[{"kind":"text","text":"格式化数字为货币显示。Formats number as currency"}]},{"tag":"@returns","content":[{"kind":"text","text":"格式化的货币字符串。Formatted currency string"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\nformatCurrency(1234.56); // -> '$1,234.56'\nformatCurrency(1234.56, '¥'); // -> '¥1,234.56'\nformatCurrency(1234.5, '$', 0); // -> '$1,235'\n```"}]}]},"parameters":[{"id":447,"name":"amount","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"金额。Amount"}]},"type":{"type":"intrinsic","name":"number"},"text":{"comment":"

    金额。Amount

    \n"}},{"id":448,"name":"currency","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"货币符号(默认: '$')。Currency symbol (default: '$')"}]},"type":{"type":"intrinsic","name":"string"},"defaultValue":"'$'","text":{"comment":"

    货币符号(默认: '$')。Currency symbol (default: '$')

    \n"}},{"id":449,"name":"decimals","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"小数位数(默认: 2)。Decimal places (default: 2)"}]},"type":{"type":"intrinsic","name":"number"},"defaultValue":"2","text":{"comment":"

    小数位数(默认: 2)。Decimal places (default: 2)

    \n"}}],"type":{"type":"intrinsic","name":"string"},"is":{"declaration":false},"location":{"query":"Formatter.Function.formatCurrency","hash":"formatCurrency"},"text":{"comment":"
    Function:

    formatCurrency

    \n
    Description:

    格式化数字为货币显示。Formats number as currency

    \n
    Returns:

    格式化的货币字符串。Formatted currency string

    \n
    Example:
    formatCurrency(1234.56); // -> '$1,234.56'\nformatCurrency(1234.56, '¥'); // -> '¥1,234.56'\nformatCurrency(1234.5, '$', 0); // -> '$1,235'\n
    \n"},"sources":[{"fileName":"packages/utils/src/formatter.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/formatter.ts","line":89,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/formatter.ts#L89"}],"parentId":445}],"is":{"declaration":true},"location":{"query":"Formatter.Function.formatCurrency","hash":""},"text":{},"parentId":432} diff --git a/docs/v1.0.0-beta01/data/Formatter.Function.formatDuration.json b/docs/v1.0.0-beta01/data/Formatter.Function.formatDuration.json new file mode 100644 index 000000000..3b501b204 --- /dev/null +++ b/docs/v1.0.0-beta01/data/Formatter.Function.formatDuration.json @@ -0,0 +1 @@ +{"id":437,"name":"formatDuration","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/utils/src/formatter.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/formatter.ts","line":42,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/formatter.ts#L42"}],"signatures":[{"id":438,"name":"formatDuration","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"formatDuration"}]},{"tag":"@description","content":[{"kind":"text","text":"将毫秒数格式化为人类可读的时长。Formats milliseconds to human-readable duration"}]},{"tag":"@returns","content":[{"kind":"text","text":"格式化的时长字符串。Formatted duration string"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\nformatDuration(60000); // -> '1m 0s'\nformatDuration(3661000); // -> '1h 1m 1s'\nformatDuration(500); // -> '500ms'\n```"}]}]},"parameters":[{"id":439,"name":"ms","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"毫秒数。Milliseconds"}]},"type":{"type":"intrinsic","name":"number"},"text":{"comment":"

    毫秒数。Milliseconds

    \n"}}],"type":{"type":"intrinsic","name":"string"},"is":{"declaration":false},"location":{"query":"Formatter.Function.formatDuration","hash":"formatDuration"},"text":{"comment":"
    Function:

    formatDuration

    \n
    Description:

    将毫秒数格式化为人类可读的时长。Formats milliseconds to human-readable duration

    \n
    Returns:

    格式化的时长字符串。Formatted duration string

    \n
    Example:
    formatDuration(60000); // -> '1m 0s'\nformatDuration(3661000); // -> '1h 1m 1s'\nformatDuration(500); // -> '500ms'\n
    \n"},"sources":[{"fileName":"packages/utils/src/formatter.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/formatter.ts","line":42,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/formatter.ts#L42"}],"parentId":437}],"is":{"declaration":true},"location":{"query":"Formatter.Function.formatDuration","hash":""},"text":{},"parentId":432} diff --git a/docs/v1.0.0-beta01/data/Formatter.Function.formatFileSize.json b/docs/v1.0.0-beta01/data/Formatter.Function.formatFileSize.json new file mode 100644 index 000000000..4d4751a48 --- /dev/null +++ b/docs/v1.0.0-beta01/data/Formatter.Function.formatFileSize.json @@ -0,0 +1 @@ +{"id":433,"name":"formatFileSize","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/utils/src/formatter.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/formatter.ts","line":21,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/formatter.ts#L21"}],"signatures":[{"id":434,"name":"formatFileSize","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"formatFileSize"}]},{"tag":"@description","content":[{"kind":"text","text":"将字节数格式化为人类可读的文件大小。Formats bytes to human-readable file size"}]},{"tag":"@returns","content":[{"kind":"text","text":"格式化的文件大小字符串。Formatted file size string"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\nformatFileSize(1024); // -> '1.00 KB'\nformatFileSize(1234567); // -> '1.18 MB'\nformatFileSize(1234567890); // -> '1.15 GB'\nformatFileSize(1024, 0); // -> '1 KB'\n```"}]}]},"parameters":[{"id":435,"name":"bytes","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"字节数。Number of bytes"}]},"type":{"type":"intrinsic","name":"number"},"text":{"comment":"

    字节数。Number of bytes

    \n"}},{"id":436,"name":"decimals","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"小数位数(默认: 2)。Decimal places (default: 2)"}]},"type":{"type":"intrinsic","name":"number"},"defaultValue":"2","text":{"comment":"

    小数位数(默认: 2)。Decimal places (default: 2)

    \n"}}],"type":{"type":"intrinsic","name":"string"},"is":{"declaration":false},"location":{"query":"Formatter.Function.formatFileSize","hash":"formatFileSize"},"text":{"comment":"
    Function:

    formatFileSize

    \n
    Description:

    将字节数格式化为人类可读的文件大小。Formats bytes to human-readable file size

    \n
    Returns:

    格式化的文件大小字符串。Formatted file size string

    \n
    Example:
    formatFileSize(1024); // -> '1.00 KB'\nformatFileSize(1234567); // -> '1.18 MB'\nformatFileSize(1234567890); // -> '1.15 GB'\nformatFileSize(1024, 0); // -> '1 KB'\n
    \n"},"sources":[{"fileName":"packages/utils/src/formatter.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/formatter.ts","line":21,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/formatter.ts#L21"}],"parentId":433}],"is":{"declaration":true},"location":{"query":"Formatter.Function.formatFileSize","hash":""},"text":{},"parentId":432} diff --git a/docs/v1.0.0-beta01/data/Formatter.Function.formatNumber.json b/docs/v1.0.0-beta01/data/Formatter.Function.formatNumber.json new file mode 100644 index 000000000..efe9e4050 --- /dev/null +++ b/docs/v1.0.0-beta01/data/Formatter.Function.formatNumber.json @@ -0,0 +1 @@ +{"id":440,"name":"formatNumber","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/utils/src/formatter.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/formatter.ts","line":71,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/formatter.ts#L71"}],"signatures":[{"id":441,"name":"formatNumber","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"formatNumber"}]},{"tag":"@description","content":[{"kind":"text","text":"格式化数字为千分位显示。Formats number with thousand separators"}]},{"tag":"@returns","content":[{"kind":"text","text":"格式化的数字字符串。Formatted number string"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\nformatNumber(1234567.89); // -> '1,234,567.89'\nformatNumber(1234567.89, 0); // -> '1,234,568'\nformatNumber(1234567.89, 2, ' '); // -> '1 234 567.89'\n```"}]}]},"parameters":[{"id":442,"name":"num","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"要格式化的数字。Number to format"}]},"type":{"type":"intrinsic","name":"number"},"text":{"comment":"

    要格式化的数字。Number to format

    \n"}},{"id":443,"name":"decimals","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"小数位数。Decimal places"}]},"type":{"type":"intrinsic","name":"number"},"text":{"comment":"

    小数位数。Decimal places

    \n"}},{"id":444,"name":"separator","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"千分位分隔符(默认: ',')。Thousand separator (default: ',')"}]},"type":{"type":"intrinsic","name":"string"},"defaultValue":"','","text":{"comment":"

    千分位分隔符(默认: ',')。Thousand separator (default: ',')

    \n"}}],"type":{"type":"intrinsic","name":"string"},"is":{"declaration":false},"location":{"query":"Formatter.Function.formatNumber","hash":"formatNumber"},"text":{"comment":"
    Function:

    formatNumber

    \n
    Description:

    格式化数字为千分位显示。Formats number with thousand separators

    \n
    Returns:

    格式化的数字字符串。Formatted number string

    \n
    Example:
    formatNumber(1234567.89); // -> '1,234,567.89'\nformatNumber(1234567.89, 0); // -> '1,234,568'\nformatNumber(1234567.89, 2, ' '); // -> '1 234 567.89'\n
    \n"},"sources":[{"fileName":"packages/utils/src/formatter.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/formatter.ts","line":71,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/formatter.ts#L71"}],"parentId":440}],"is":{"declaration":true},"location":{"query":"Formatter.Function.formatNumber","hash":""},"text":{},"parentId":432} diff --git a/docs/v1.0.0-beta01/data/Formatter.Function.formatOrdinal.json b/docs/v1.0.0-beta01/data/Formatter.Function.formatOrdinal.json new file mode 100644 index 000000000..778502f1d --- /dev/null +++ b/docs/v1.0.0-beta01/data/Formatter.Function.formatOrdinal.json @@ -0,0 +1 @@ +{"id":462,"name":"formatOrdinal","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/utils/src/formatter.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/formatter.ts","line":179,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/formatter.ts#L179"}],"signatures":[{"id":463,"name":"formatOrdinal","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"formatOrdinal"}]},{"tag":"@description","content":[{"kind":"text","text":"将数字格式化为序数词(1st, 2nd, 3rd等)。Formats number as ordinal (1st, 2nd, 3rd, etc.)"}]},{"tag":"@returns","content":[{"kind":"text","text":"序数词字符串。Ordinal string"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\nformatOrdinal(1); // -> '1st'\nformatOrdinal(2); // -> '2nd'\nformatOrdinal(3); // -> '3rd'\nformatOrdinal(21); // -> '21st'\nformatOrdinal(100); // -> '100th'\n```"}]}]},"parameters":[{"id":464,"name":"num","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"要格式化的数字。Number to format"}]},"type":{"type":"intrinsic","name":"number"},"text":{"comment":"

    要格式化的数字。Number to format

    \n"}}],"type":{"type":"intrinsic","name":"string"},"is":{"declaration":false},"location":{"query":"Formatter.Function.formatOrdinal","hash":"formatOrdinal"},"text":{"comment":"
    Function:

    formatOrdinal

    \n
    Description:

    将数字格式化为序数词(1st, 2nd, 3rd等)。Formats number as ordinal (1st, 2nd, 3rd, etc.)

    \n
    Returns:

    序数词字符串。Ordinal string

    \n
    Example:
    formatOrdinal(1); // -> '1st'\nformatOrdinal(2); // -> '2nd'\nformatOrdinal(3); // -> '3rd'\nformatOrdinal(21); // -> '21st'\nformatOrdinal(100); // -> '100th'\n
    \n"},"sources":[{"fileName":"packages/utils/src/formatter.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/formatter.ts","line":179,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/formatter.ts#L179"}],"parentId":462}],"is":{"declaration":true},"location":{"query":"Formatter.Function.formatOrdinal","hash":""},"text":{},"parentId":432} diff --git a/docs/v1.0.0-beta01/data/Formatter.Function.formatPercentage.json b/docs/v1.0.0-beta01/data/Formatter.Function.formatPercentage.json new file mode 100644 index 000000000..cd1919a3f --- /dev/null +++ b/docs/v1.0.0-beta01/data/Formatter.Function.formatPercentage.json @@ -0,0 +1 @@ +{"id":457,"name":"formatPercentage","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/utils/src/formatter.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/formatter.ts","line":162,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/formatter.ts#L162"}],"signatures":[{"id":458,"name":"formatPercentage","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"formatPercentage"}]},{"tag":"@description","content":[{"kind":"text","text":"格式化数字为百分比。Formats number as percentage"}]},{"tag":"@returns","content":[{"kind":"text","text":"格式化的百分比字符串。Formatted percentage string"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\nformatPercentage(0.1234); // -> '12.34%'\nformatPercentage(0.1234, 0); // -> '12%'\nformatPercentage(12.34, 2, false); // -> '12.34%'\n```"}]}]},"parameters":[{"id":459,"name":"value","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"数值(0-1或0-100)。Value (0-1 or 0-100)"}]},"type":{"type":"intrinsic","name":"number"},"text":{"comment":"

    数值(0-1或0-100)。Value (0-1 or 0-100)

    \n"}},{"id":460,"name":"decimals","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"小数位数(默认: 2)。Decimal places (default: 2)"}]},"type":{"type":"intrinsic","name":"number"},"defaultValue":"2","text":{"comment":"

    小数位数(默认: 2)。Decimal places (default: 2)

    \n"}},{"id":461,"name":"isDecimal","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"输入是否为小数形式(默认: true)。Whether input is in decimal form (default: true)"}]},"type":{"type":"intrinsic","name":"boolean"},"defaultValue":"true","text":{"comment":"

    输入是否为小数形式(默认: true)。Whether input is in decimal form (default: true)

    \n"}}],"type":{"type":"intrinsic","name":"string"},"is":{"declaration":false},"location":{"query":"Formatter.Function.formatPercentage","hash":"formatPercentage"},"text":{"comment":"
    Function:

    formatPercentage

    \n
    Description:

    格式化数字为百分比。Formats number as percentage

    \n
    Returns:

    格式化的百分比字符串。Formatted percentage string

    \n
    Example:
    formatPercentage(0.1234); // -> '12.34%'\nformatPercentage(0.1234, 0); // -> '12%'\nformatPercentage(12.34, 2, false); // -> '12.34%'\n
    \n"},"sources":[{"fileName":"packages/utils/src/formatter.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/formatter.ts","line":162,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/formatter.ts#L162"}],"parentId":457}],"is":{"declaration":true},"location":{"query":"Formatter.Function.formatPercentage","hash":""},"text":{},"parentId":432} diff --git a/docs/v1.0.0-beta01/data/Formatter.Function.formatPhone.json b/docs/v1.0.0-beta01/data/Formatter.Function.formatPhone.json new file mode 100644 index 000000000..41cd22a88 --- /dev/null +++ b/docs/v1.0.0-beta01/data/Formatter.Function.formatPhone.json @@ -0,0 +1 @@ +{"id":453,"name":"formatPhone","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/utils/src/formatter.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/formatter.ts","line":135,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/formatter.ts#L135"}],"signatures":[{"id":454,"name":"formatPhone","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"formatPhone"}]},{"tag":"@description","content":[{"kind":"text","text":"格式化电话号码。Formats phone number"}]},{"tag":"@returns","content":[{"kind":"text","text":"格式化的电话号码。Formatted phone number"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\nformatPhone('1234567890'); // -> '(123) 456-7890'\nformatPhone('1234567890', '###-###-####'); // -> '123-456-7890'\nformatPhone('12345678901', '+# (###) ###-####'); // -> '+1 (234) 567-8901'\n```"}]}]},"parameters":[{"id":455,"name":"phone","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"电话号码字符串。Phone number string"}]},"type":{"type":"intrinsic","name":"string"},"text":{"comment":"

    电话号码字符串。Phone number string

    \n"}},{"id":456,"name":"format","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"格式模板(默认: '(###) ###-####')。Format template (default: '(###) ###-####')"}]},"type":{"type":"intrinsic","name":"string"},"defaultValue":"'(###) ###-####'","text":{"comment":"

    格式模板(默认: '(###) ###-####')。Format template (default: '(###) ###-####')

    \n"}}],"type":{"type":"intrinsic","name":"string"},"is":{"declaration":false},"location":{"query":"Formatter.Function.formatPhone","hash":"formatPhone"},"text":{"comment":"
    Function:

    formatPhone

    \n
    Description:

    格式化电话号码。Formats phone number

    \n
    Returns:

    格式化的电话号码。Formatted phone number

    \n
    Example:
    formatPhone('1234567890'); // -> '(123) 456-7890'\nformatPhone('1234567890', '###-###-####'); // -> '123-456-7890'\nformatPhone('12345678901', '+# (###) ###-####'); // -> '+1 (234) 567-8901'\n
    \n"},"sources":[{"fileName":"packages/utils/src/formatter.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/formatter.ts","line":135,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/formatter.ts#L135"}],"parentId":453}],"is":{"declaration":true},"location":{"query":"Formatter.Function.formatPhone","hash":""},"text":{},"parentId":432} diff --git a/docs/v1.0.0-beta01/data/Formatter.Function.formatRelativeTime.json b/docs/v1.0.0-beta01/data/Formatter.Function.formatRelativeTime.json new file mode 100644 index 000000000..778906ff9 --- /dev/null +++ b/docs/v1.0.0-beta01/data/Formatter.Function.formatRelativeTime.json @@ -0,0 +1 @@ +{"id":450,"name":"formatRelativeTime","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/utils/src/formatter.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/formatter.ts","line":105,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/formatter.ts#L105"}],"signatures":[{"id":451,"name":"formatRelativeTime","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"formatRelativeTime"}]},{"tag":"@description","content":[{"kind":"text","text":"格式化相对时间(如\"刚刚\"、\"5分钟前\")。Formats relative time (like \"just now\", \"5 minutes ago\")"}]},{"tag":"@returns","content":[{"kind":"text","text":"相对时间字符串。Relative time string"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\nconst now = Date.now();\nformatRelativeTime(now); // -> 'just now'\nformatRelativeTime(now - 60000); // -> '1 minute ago'\nformatRelativeTime(now - 3600000); // -> '1 hour ago'\nformatRelativeTime(now - 86400000); // -> '1 day ago'\n```"}]}]},"parameters":[{"id":452,"name":"date","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"日期对象或时间戳。Date object or timestamp"}]},"type":{"type":"union","types":[{"type":"intrinsic","name":"number"},{"type":"reference","name":"Date","qualifiedName":"Date","package":"typescript"}]},"text":{"comment":"

    日期对象或时间戳。Date object or timestamp

    \n"}}],"type":{"type":"intrinsic","name":"string"},"is":{"declaration":false},"location":{"query":"Formatter.Function.formatRelativeTime","hash":"formatRelativeTime"},"text":{"comment":"
    Function:

    formatRelativeTime

    \n
    Description:

    格式化相对时间(如"刚刚"、"5分钟前")。Formats relative time (like "just now", "5 minutes ago")

    \n
    Returns:

    相对时间字符串。Relative time string

    \n
    Example:
    const now = Date.now();\nformatRelativeTime(now); // -> 'just now'\nformatRelativeTime(now - 60000); // -> '1 minute ago'\nformatRelativeTime(now - 3600000); // -> '1 hour ago'\nformatRelativeTime(now - 86400000); // -> '1 day ago'\n
    \n"},"sources":[{"fileName":"packages/utils/src/formatter.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/formatter.ts","line":105,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/formatter.ts#L105"}],"parentId":450}],"is":{"declaration":true},"location":{"query":"Formatter.Function.formatRelativeTime","hash":""},"text":{},"parentId":432} diff --git a/docs/v1.0.0-beta01/data/Function.Function.NOOP.json b/docs/v1.0.0-beta01/data/Function.Function.NOOP.json new file mode 100644 index 000000000..6c250507f --- /dev/null +++ b/docs/v1.0.0-beta01/data/Function.Function.NOOP.json @@ -0,0 +1 @@ +{"id":584,"name":"NOOP","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/utils/src/function.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/function.ts","line":29,"character":13,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/function.ts#L29"}],"signatures":[{"id":585,"name":"NOOP","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"NOOP"}]},{"tag":"@description","content":[{"kind":"text","text":"无操作函数,返回空字符串(用作默认回调函数)。No-operation function that returns an empty string (useful as default callback)"}]},{"tag":"@returns","content":[{"kind":"text","text":"空字符串。Empty string"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Using as default callback\nfunction processData(data, callback = NOOP) {\n // Process data...\n callback();\n}\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Placeholder for event handlers\nconst button = { onClick: NOOP };\nbutton.onClick(); // -> ''\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Array operations\n[1, 2, 3].forEach(NOOP); // Does nothing for each element\n```"}]}]},"type":{"type":"intrinsic","name":"string"},"is":{"declaration":false},"location":{"query":"Function.Function.NOOP","hash":"NOOP"},"text":{"comment":"
    Function:

    NOOP

    \n
    Description:

    无操作函数,返回空字符串(用作默认回调函数)。No-operation function that returns an empty string (useful as default callback)

    \n
    Returns:

    空字符串。Empty string

    \n
    Example:
    // Using as default callback\nfunction processData(data, callback = NOOP) {\n  // Process data...\n  callback();\n}\n
    \n
    Example:
    // Placeholder for event handlers\nconst button = { onClick: NOOP };\nbutton.onClick(); // -> ''\n
    \n
    Example:
    // Array operations\n[1, 2, 3].forEach(NOOP); // Does nothing for each element\n
    \n"},"sources":[{"fileName":"packages/utils/src/function.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/function.ts","line":29,"character":20,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/function.ts#L29"}],"parentId":584}],"is":{"declaration":true},"location":{"query":"Function.Function.NOOP","hash":""},"text":{},"parentId":465} diff --git a/docs/v1.0.0-beta01/data/Function.Function.attempt.json b/docs/v1.0.0-beta01/data/Function.Function.attempt.json new file mode 100644 index 000000000..73bd101c7 --- /dev/null +++ b/docs/v1.0.0-beta01/data/Function.Function.attempt.json @@ -0,0 +1 @@ +{"id":466,"name":"attempt","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/utils/src/function.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/function.ts","line":64,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/function.ts#L64"}],"signatures":[{"id":467,"name":"attempt","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"attempt"}]},{"tag":"@description","content":[{"kind":"text","text":"安全地执行函数并返回结果或发生的任何错误。Safely executes a function and returns either the result or any error that occurred"}]},{"tag":"@returns","content":[{"kind":"text","text":"函数结果或错误对象。Either the function result or an Error object"}]},{"tag":"@throws","content":[{"kind":"text","text":"永不抛出 - 所有错误都被捕获并返回。Never throws - all errors are caught and returned"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Successful execution\nattempt((a, b) => a + b, 1, 2); // -> 3\nattempt(() => 'success'); // -> 'success'\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Error handling\nattempt(() => { throw new Error('Something went wrong'); }); // -> Error: Something went wrong\nattempt(JSON.parse, 'invalid json'); // -> SyntaxError: Unexpected token i in JSON\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Division by zero\nattempt((a, b) => {\n if (b === 0) throw new Error('Division by zero');\n return a / b;\n}, 10, 0); // -> Error: Division by zero\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Type checking results\nconst result = attempt(() => Math.random());\nif (result instanceof Error) {\n console.log('Error occurred:', result.message);\n} else {\n console.log('Result:', result);\n}\n```"}]}]},"typeParameter":[{"id":468,"name":"T","kind":131072,"kindString":"Type parameter","flags":{},"type":{"type":"array","elementType":{"type":"intrinsic","name":"unknown"}}},{"id":469,"name":"R","kind":131072,"kindString":"Type parameter","flags":{}}],"parameters":[{"id":470,"name":"fn","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"要执行的函数。Function to execute"}]},"type":{"type":"reflection","declaration":{"id":471,"name":"__type","kind":65536,"kindString":"Type literal","flags":{},"sources":[{"fileName":"packages/utils/src/function.ts","line":64,"character":52,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/function.ts#L64"}],"signatures":[{"id":472,"name":"__type","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":473,"name":"fnArgs","kind":32768,"kindString":"Parameter","flags":{"isRest":true},"type":{"type":"reference","id":468,"name":"T"}}],"type":{"type":"reference","id":469,"name":"R"}}]}},"text":{"comment":"

    要执行的函数。Function to execute

    \n"}},{"id":474,"name":"args","kind":32768,"kindString":"Parameter","flags":{"isRest":true},"comment":{"summary":[{"kind":"text","text":"传递给函数的参数。Arguments to pass to the function"}]},"type":{"type":"reference","id":468,"name":"T"},"text":{"comment":"

    传递给函数的参数。Arguments to pass to the function

    \n"}}],"type":{"type":"union","types":[{"type":"reference","name":"Error","qualifiedName":"Error","package":"typescript"},{"type":"reference","id":469,"name":"R"}]},"is":{"declaration":false},"location":{"query":"Function.Function.attempt","hash":"attempt"},"text":{"comment":"
    Function:

    attempt

    \n
    Description:

    安全地执行函数并返回结果或发生的任何错误。Safely executes a function and returns either the result or any error that occurred

    \n
    Returns:

    函数结果或错误对象。Either the function result or an Error object

    \n
    Throws:

    永不抛出 - 所有错误都被捕获并返回。Never throws - all errors are caught and returned

    \n
    Example:
    // Successful execution\nattempt((a, b) => a + b, 1, 2); // -> 3\nattempt(() => 'success'); // -> 'success'\n
    \n
    Example:
    // Error handling\nattempt(() => { throw new Error('Something went wrong'); }); // -> Error: Something went wrong\nattempt(JSON.parse, 'invalid json'); // -> SyntaxError: Unexpected token i in JSON\n
    \n
    Example:
    // Division by zero\nattempt((a, b) => {\n  if (b === 0) throw new Error('Division by zero');\n  return a / b;\n}, 10, 0); // -> Error: Division by zero\n
    \n
    Example:
    // Type checking results\nconst result = attempt(() => Math.random());\nif (result instanceof Error) {\n  console.log('Error occurred:', result.message);\n} else {\n  console.log('Result:', result);\n}\n
    \n"},"sources":[{"fileName":"packages/utils/src/function.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/function.ts","line":64,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/function.ts#L64"}],"parentId":466}],"is":{"declaration":true},"location":{"query":"Function.Function.attempt","hash":""},"text":{},"parentId":465} diff --git a/docs/v1.0.0-beta01/data/Function.Function.chainAsync.json b/docs/v1.0.0-beta01/data/Function.Function.chainAsync.json new file mode 100644 index 000000000..51c899f54 --- /dev/null +++ b/docs/v1.0.0-beta01/data/Function.Function.chainAsync.json @@ -0,0 +1 @@ +{"id":514,"name":"chainAsync","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/utils/src/function.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/function.ts","line":346,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/function.ts#L346"}],"signatures":[{"id":515,"name":"chainAsync","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"chainAsync"}]},{"tag":"@description","content":[{"kind":"text","text":"在链中执行函数,每个函数调用下一个函数。Executes functions in a chain where each function calls the next one"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Basic chain execution\nchainAsync([\n next => {\n console.log('Step 1');\n setTimeout(next, 1000);\n },\n next => {\n console.log('Step 2');\n next();\n },\n next => {\n console.log('Step 3 (final)');\n }\n]);\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Middleware pattern\nconst middleware = [\n (next) => {\n console.log('Authentication check');\n // Simulate async auth\n setTimeout(() => {\n console.log('User authenticated');\n next();\n }, 100);\n },\n (next) => {\n console.log('Authorization check');\n next();\n },\n (next) => {\n console.log('Request processed');\n }\n];\n\nchainAsync(middleware);\n```"}]}]},"parameters":[{"id":516,"name":"fns","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"接受 'next' 回调作为第一个参数的函数数组。Array of functions that accept a 'next' callback as their first parameter"}]},"type":{"type":"array","elementType":{"type":"reflection","declaration":{"id":517,"name":"__type","kind":65536,"kindString":"Type literal","flags":{},"sources":[{"fileName":"packages/utils/src/function.ts","line":346,"character":38,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/function.ts#L346"}],"signatures":[{"id":518,"name":"__type","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":519,"name":"args","kind":32768,"kindString":"Parameter","flags":{"isRest":true},"type":{"type":"array","elementType":{"type":"intrinsic","name":"unknown"}}}],"type":{"type":"intrinsic","name":"unknown"}}]}}},"text":{"comment":"

    接受 'next' 回调作为第一个参数的函数数组。Array of functions that accept a 'next' callback as their first parameter

    \n"}}],"type":{"type":"intrinsic","name":"void"},"is":{"declaration":false},"location":{"query":"Function.Function.chainAsync","hash":"chainAsync"},"text":{"comment":"
    Function:

    chainAsync

    \n
    Description:

    在链中执行函数,每个函数调用下一个函数。Executes functions in a chain where each function calls the next one

    \n
    Example:
    // Basic chain execution\nchainAsync([\n  next => {\n    console.log('Step 1');\n    setTimeout(next, 1000);\n  },\n  next => {\n    console.log('Step 2');\n    next();\n  },\n  next => {\n    console.log('Step 3 (final)');\n  }\n]);\n
    \n
    Example:
    // Middleware pattern\nconst middleware = [\n  (next) => {\n    console.log('Authentication check');\n    // Simulate async auth\n    setTimeout(() => {\n      console.log('User authenticated');\n      next();\n    }, 100);\n  },\n  (next) => {\n    console.log('Authorization check');\n    next();\n  },\n  (next) => {\n    console.log('Request processed');\n  }\n];\n\nchainAsync(middleware);\n
    \n"},"sources":[{"fileName":"packages/utils/src/function.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/function.ts","line":346,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/function.ts#L346"}],"parentId":514}],"is":{"declaration":true},"location":{"query":"Function.Function.chainAsync","hash":""},"text":{},"parentId":465} diff --git a/docs/v1.0.0-beta01/data/Function.Function.compose.json b/docs/v1.0.0-beta01/data/Function.Function.compose.json new file mode 100644 index 000000000..92cbded4c --- /dev/null +++ b/docs/v1.0.0-beta01/data/Function.Function.compose.json @@ -0,0 +1 @@ +{"id":520,"name":"compose","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/utils/src/function.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/function.ts","line":384,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/function.ts#L384"}],"signatures":[{"id":521,"name":"compose","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"compose"}]},{"tag":"@description","content":[{"kind":"text","text":"从右到左组合函数(数学组合)。Composes functions from right to left (mathematical composition)"}]},{"tag":"@returns","content":[{"kind":"text","text":"从右到左应用函数的组合函数。Composed function that applies functions from right to left"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Basic composition\nconst add5 = x => x + 5;\nconst multiply2 = x => x * 2;\nconst subtract1 = x => x - 1;\n\nconst composed = compose(add5, multiply2, subtract1);\ncomposed(10); // -> subtract1(10) -> multiply2(9) -> add5(18) -> 23\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// String transformations\nconst toUpperCase = str => str.toUpperCase();\nconst addExclamation = str => str + '!';\nconst trim = str => str.trim();\n\nconst transform = compose(toUpperCase, addExclamation, trim);\ntransform(' hello world '); // -> 'HELLO WORLD!'\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Mathematical operations\nconst square = x => x * x;\nconst double = x => x * 2;\nconst addOne = x => x + 1;\n\nconst calculate = compose(square, double, addOne);\ncalculate(3); // -> addOne(3) -> double(4) -> square(8) -> 64\n```"}]}]},"typeParameter":[{"id":522,"name":"T","kind":131072,"kindString":"Type parameter","flags":{}}],"parameters":[{"id":523,"name":"fns","kind":32768,"kindString":"Parameter","flags":{"isRest":true},"comment":{"summary":[{"kind":"text","text":"要组合的函数。Functions to compose"}]},"type":{"type":"array","elementType":{"type":"reflection","declaration":{"id":524,"name":"__type","kind":65536,"kindString":"Type literal","flags":{},"sources":[{"fileName":"packages/utils/src/function.ts","line":384,"character":41,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/function.ts#L384"}],"signatures":[{"id":525,"name":"__type","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":526,"name":"arg","kind":32768,"kindString":"Parameter","flags":{"isRest":true},"type":{"type":"array","elementType":{"type":"reference","id":522,"name":"T"}}}],"type":{"type":"reference","id":522,"name":"T"}}]}}},"text":{"comment":"

    要组合的函数。Functions to compose

    \n"}}],"type":{"type":"reflection","declaration":{"id":527,"name":"compose","kind":65536,"kindString":"Type literal","flags":{},"sources":[{"fileName":"packages/utils/src/function.ts","line":384,"character":63,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/function.ts#L384"}],"signatures":[{"id":528,"name":"compose","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":529,"name":"arg","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","id":522,"name":"T"},"text":{}}],"type":{"type":"reference","id":522,"name":"T"},"is":{"declaration":false},"location":{"query":"Function.Function.compose","hash":"compose.__type"},"text":{},"parentId":520}],"location":{"query":"Function.Function.compose","hash":"compose"}}},"is":{"declaration":false},"location":{"query":"Function.Function.compose","hash":"compose"},"text":{"comment":"
    Function:

    compose

    \n
    Description:

    从右到左组合函数(数学组合)。Composes functions from right to left (mathematical composition)

    \n
    Returns:

    从右到左应用函数的组合函数。Composed function that applies functions from right to left

    \n
    Example:
    // Basic composition\nconst add5 = x => x + 5;\nconst multiply2 = x => x * 2;\nconst subtract1 = x => x - 1;\n\nconst composed = compose(add5, multiply2, subtract1);\ncomposed(10); // -> subtract1(10) -> multiply2(9) -> add5(18) -> 23\n
    \n
    Example:
    // String transformations\nconst toUpperCase = str => str.toUpperCase();\nconst addExclamation = str => str + '!';\nconst trim = str => str.trim();\n\nconst transform = compose(toUpperCase, addExclamation, trim);\ntransform('  hello world  '); // -> 'HELLO WORLD!'\n
    \n
    Example:
    // Mathematical operations\nconst square = x => x * x;\nconst double = x => x * 2;\nconst addOne = x => x + 1;\n\nconst calculate = compose(square, double, addOne);\ncalculate(3); // -> addOne(3) -> double(4) -> square(8) -> 64\n
    \n"},"sources":[{"fileName":"packages/utils/src/function.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/function.ts","line":384,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/function.ts#L384"}],"parentId":520}],"is":{"declaration":true},"location":{"query":"Function.Function.compose","hash":""},"text":{},"parentId":465} diff --git a/docs/v1.0.0-beta01/data/Function.Function.curry.json b/docs/v1.0.0-beta01/data/Function.Function.curry.json new file mode 100644 index 000000000..ded016447 --- /dev/null +++ b/docs/v1.0.0-beta01/data/Function.Function.curry.json @@ -0,0 +1 @@ +{"id":586,"name":"curry","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/utils/src/function.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/function.ts","line":500,"character":13,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/function.ts#L500"}],"signatures":[{"id":587,"name":"curry","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"curry"}]},{"tag":"@description","content":[{"kind":"text","text":"将函数转换为一次接受一个参数(柯里化)。Transforms a function to accept arguments one at a time (currying)"}]},{"tag":"@returns","content":[{"kind":"text","text":"可以用部分参数调用的柯里化函数。Curried function that can be called with partial arguments"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Basic currying\nconst add = (a, b) => a + b;\nconst curriedAdd = curry(add);\n\ncurriedAdd(2)(3); // -> 5\ncurriedAdd(2, 3); // -> 5 (can still call with all args)\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Partial application\nconst multiply = (a, b, c) => a * b * c;\nconst curriedMultiply = curry(multiply);\n\nconst multiplyBy2 = curriedMultiply(2);\nconst multiplyBy2And3 = multiplyBy2(3);\n\nmultiplyBy2And3(4); // -> 24\nmultiplyBy2(3, 4); // -> 24 (same result)\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Functional programming patterns\nconst filter = curry((predicate, array) => array.filter(predicate));\nconst map = curry((fn, array) => array.map(fn));\n\nconst isEven = x => x % 2 === 0;\nconst double = x => x * 2;\n\nconst filterEvens = filter(isEven);\nconst doubleAll = map(double);\n\nconst numbers = [1, 2, 3, 4, 5, 6];\nconst result = pipe(filterEvens, doubleAll)(numbers); // -> [4, 8, 12]\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Math operations\ncurry(Math.pow)(2)(10); // -> 1024\ncurry(Math.pow)(2, 10); // -> 1024\n```"}]}]},"typeParameter":[{"id":588,"name":"T1","kind":131072,"kindString":"Type parameter","flags":{}},{"id":589,"name":"R","kind":131072,"kindString":"Type parameter","flags":{}}],"parameters":[{"id":590,"name":"fn","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reflection","declaration":{"id":591,"name":"__type","kind":65536,"kindString":"Type literal","flags":{},"sources":[{"fileName":"packages/utils/src/function.ts","line":452,"character":14,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/function.ts#L452"}],"signatures":[{"id":592,"name":"__type","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":593,"name":"t1","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","id":588,"name":"T1"}}],"type":{"type":"reference","id":589,"name":"R"}}]}},"text":{}}],"type":{"type":"reference","typeArguments":[{"type":"reference","id":588,"name":"T1"},{"type":"reference","id":589,"name":"R"}],"name":"Curry1"},"is":{"declaration":false},"location":{"query":"Function.Function.curry","hash":"curry"},"text":{"comment":"
    Function:

    curry

    \n
    Description:

    将函数转换为一次接受一个参数(柯里化)。Transforms a function to accept arguments one at a time (currying)

    \n
    Returns:

    可以用部分参数调用的柯里化函数。Curried function that can be called with partial arguments

    \n
    Example:
    // Basic currying\nconst add = (a, b) => a + b;\nconst curriedAdd = curry(add);\n\ncurriedAdd(2)(3); // -> 5\ncurriedAdd(2, 3); // -> 5 (can still call with all args)\n
    \n
    Example:
    // Partial application\nconst multiply = (a, b, c) => a * b * c;\nconst curriedMultiply = curry(multiply);\n\nconst multiplyBy2 = curriedMultiply(2);\nconst multiplyBy2And3 = multiplyBy2(3);\n\nmultiplyBy2And3(4); // -> 24\nmultiplyBy2(3, 4); // -> 24 (same result)\n
    \n
    Example:
    // Functional programming patterns\nconst filter = curry((predicate, array) => array.filter(predicate));\nconst map = curry((fn, array) => array.map(fn));\n\nconst isEven = x => x % 2 === 0;\nconst double = x => x * 2;\n\nconst filterEvens = filter(isEven);\nconst doubleAll = map(double);\n\nconst numbers = [1, 2, 3, 4, 5, 6];\nconst result = pipe(filterEvens, doubleAll)(numbers); // -> [4, 8, 12]\n
    \n
    Example:
    // Math operations\ncurry(Math.pow)(2)(10); // -> 1024\ncurry(Math.pow)(2, 10); // -> 1024\n
    \n"},"sources":[{"fileName":"packages/utils/src/function.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/function.ts","line":452,"character":2,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/function.ts#L452"}],"parentId":586},{"id":594,"name":"curry","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"curry"}]},{"tag":"@description","content":[{"kind":"text","text":"将函数转换为一次接受一个参数(柯里化)。Transforms a function to accept arguments one at a time (currying)"}]},{"tag":"@returns","content":[{"kind":"text","text":"可以用部分参数调用的柯里化函数。Curried function that can be called with partial arguments"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Basic currying\nconst add = (a, b) => a + b;\nconst curriedAdd = curry(add);\n\ncurriedAdd(2)(3); // -> 5\ncurriedAdd(2, 3); // -> 5 (can still call with all args)\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Partial application\nconst multiply = (a, b, c) => a * b * c;\nconst curriedMultiply = curry(multiply);\n\nconst multiplyBy2 = curriedMultiply(2);\nconst multiplyBy2And3 = multiplyBy2(3);\n\nmultiplyBy2And3(4); // -> 24\nmultiplyBy2(3, 4); // -> 24 (same result)\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Functional programming patterns\nconst filter = curry((predicate, array) => array.filter(predicate));\nconst map = curry((fn, array) => array.map(fn));\n\nconst isEven = x => x % 2 === 0;\nconst double = x => x * 2;\n\nconst filterEvens = filter(isEven);\nconst doubleAll = map(double);\n\nconst numbers = [1, 2, 3, 4, 5, 6];\nconst result = pipe(filterEvens, doubleAll)(numbers); // -> [4, 8, 12]\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Math operations\ncurry(Math.pow)(2)(10); // -> 1024\ncurry(Math.pow)(2, 10); // -> 1024\n```"}]}]},"typeParameter":[{"id":595,"name":"T1","kind":131072,"kindString":"Type parameter","flags":{}},{"id":596,"name":"T2","kind":131072,"kindString":"Type parameter","flags":{}},{"id":597,"name":"R","kind":131072,"kindString":"Type parameter","flags":{}}],"parameters":[{"id":598,"name":"fn","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reflection","declaration":{"id":599,"name":"__type","kind":65536,"kindString":"Type literal","flags":{},"sources":[{"fileName":"packages/utils/src/function.ts","line":453,"character":18,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/function.ts#L453"}],"signatures":[{"id":600,"name":"__type","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":601,"name":"t1","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","id":595,"name":"T1"}},{"id":602,"name":"t2","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","id":596,"name":"T2"}}],"type":{"type":"reference","id":597,"name":"R"}}]}},"text":{}}],"type":{"type":"reference","typeArguments":[{"type":"reference","id":595,"name":"T1"},{"type":"reference","id":596,"name":"T2"},{"type":"reference","id":597,"name":"R"}],"name":"Curry2"},"is":{"declaration":false},"location":{"query":"Function.Function.curry","hash":"curry"},"text":{"comment":"
    Function:

    curry

    \n
    Description:

    将函数转换为一次接受一个参数(柯里化)。Transforms a function to accept arguments one at a time (currying)

    \n
    Returns:

    可以用部分参数调用的柯里化函数。Curried function that can be called with partial arguments

    \n
    Example:
    // Basic currying\nconst add = (a, b) => a + b;\nconst curriedAdd = curry(add);\n\ncurriedAdd(2)(3); // -> 5\ncurriedAdd(2, 3); // -> 5 (can still call with all args)\n
    \n
    Example:
    // Partial application\nconst multiply = (a, b, c) => a * b * c;\nconst curriedMultiply = curry(multiply);\n\nconst multiplyBy2 = curriedMultiply(2);\nconst multiplyBy2And3 = multiplyBy2(3);\n\nmultiplyBy2And3(4); // -> 24\nmultiplyBy2(3, 4); // -> 24 (same result)\n
    \n
    Example:
    // Functional programming patterns\nconst filter = curry((predicate, array) => array.filter(predicate));\nconst map = curry((fn, array) => array.map(fn));\n\nconst isEven = x => x % 2 === 0;\nconst double = x => x * 2;\n\nconst filterEvens = filter(isEven);\nconst doubleAll = map(double);\n\nconst numbers = [1, 2, 3, 4, 5, 6];\nconst result = pipe(filterEvens, doubleAll)(numbers); // -> [4, 8, 12]\n
    \n
    Example:
    // Math operations\ncurry(Math.pow)(2)(10); // -> 1024\ncurry(Math.pow)(2, 10); // -> 1024\n
    \n"},"sources":[{"fileName":"packages/utils/src/function.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/function.ts","line":453,"character":2,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/function.ts#L453"}],"parentId":586},{"id":603,"name":"curry","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"curry"}]},{"tag":"@description","content":[{"kind":"text","text":"将函数转换为一次接受一个参数(柯里化)。Transforms a function to accept arguments one at a time (currying)"}]},{"tag":"@returns","content":[{"kind":"text","text":"可以用部分参数调用的柯里化函数。Curried function that can be called with partial arguments"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Basic currying\nconst add = (a, b) => a + b;\nconst curriedAdd = curry(add);\n\ncurriedAdd(2)(3); // -> 5\ncurriedAdd(2, 3); // -> 5 (can still call with all args)\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Partial application\nconst multiply = (a, b, c) => a * b * c;\nconst curriedMultiply = curry(multiply);\n\nconst multiplyBy2 = curriedMultiply(2);\nconst multiplyBy2And3 = multiplyBy2(3);\n\nmultiplyBy2And3(4); // -> 24\nmultiplyBy2(3, 4); // -> 24 (same result)\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Functional programming patterns\nconst filter = curry((predicate, array) => array.filter(predicate));\nconst map = curry((fn, array) => array.map(fn));\n\nconst isEven = x => x % 2 === 0;\nconst double = x => x * 2;\n\nconst filterEvens = filter(isEven);\nconst doubleAll = map(double);\n\nconst numbers = [1, 2, 3, 4, 5, 6];\nconst result = pipe(filterEvens, doubleAll)(numbers); // -> [4, 8, 12]\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Math operations\ncurry(Math.pow)(2)(10); // -> 1024\ncurry(Math.pow)(2, 10); // -> 1024\n```"}]}]},"typeParameter":[{"id":604,"name":"T1","kind":131072,"kindString":"Type parameter","flags":{}},{"id":605,"name":"T2","kind":131072,"kindString":"Type parameter","flags":{}},{"id":606,"name":"T3","kind":131072,"kindString":"Type parameter","flags":{}},{"id":607,"name":"R","kind":131072,"kindString":"Type parameter","flags":{}}],"parameters":[{"id":608,"name":"fn","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reflection","declaration":{"id":609,"name":"__type","kind":65536,"kindString":"Type literal","flags":{},"sources":[{"fileName":"packages/utils/src/function.ts","line":454,"character":22,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/function.ts#L454"}],"signatures":[{"id":610,"name":"__type","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":611,"name":"t1","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","id":604,"name":"T1"}},{"id":612,"name":"t2","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","id":605,"name":"T2"}},{"id":613,"name":"t3","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","id":606,"name":"T3"}}],"type":{"type":"reference","id":607,"name":"R"}}]}},"text":{}}],"type":{"type":"reference","typeArguments":[{"type":"reference","id":604,"name":"T1"},{"type":"reference","id":605,"name":"T2"},{"type":"reference","id":606,"name":"T3"},{"type":"reference","id":607,"name":"R"}],"name":"Curry3"},"is":{"declaration":false},"location":{"query":"Function.Function.curry","hash":"curry"},"text":{"comment":"
    Function:

    curry

    \n
    Description:

    将函数转换为一次接受一个参数(柯里化)。Transforms a function to accept arguments one at a time (currying)

    \n
    Returns:

    可以用部分参数调用的柯里化函数。Curried function that can be called with partial arguments

    \n
    Example:
    // Basic currying\nconst add = (a, b) => a + b;\nconst curriedAdd = curry(add);\n\ncurriedAdd(2)(3); // -> 5\ncurriedAdd(2, 3); // -> 5 (can still call with all args)\n
    \n
    Example:
    // Partial application\nconst multiply = (a, b, c) => a * b * c;\nconst curriedMultiply = curry(multiply);\n\nconst multiplyBy2 = curriedMultiply(2);\nconst multiplyBy2And3 = multiplyBy2(3);\n\nmultiplyBy2And3(4); // -> 24\nmultiplyBy2(3, 4); // -> 24 (same result)\n
    \n
    Example:
    // Functional programming patterns\nconst filter = curry((predicate, array) => array.filter(predicate));\nconst map = curry((fn, array) => array.map(fn));\n\nconst isEven = x => x % 2 === 0;\nconst double = x => x * 2;\n\nconst filterEvens = filter(isEven);\nconst doubleAll = map(double);\n\nconst numbers = [1, 2, 3, 4, 5, 6];\nconst result = pipe(filterEvens, doubleAll)(numbers); // -> [4, 8, 12]\n
    \n
    Example:
    // Math operations\ncurry(Math.pow)(2)(10); // -> 1024\ncurry(Math.pow)(2, 10); // -> 1024\n
    \n"},"sources":[{"fileName":"packages/utils/src/function.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/function.ts","line":454,"character":2,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/function.ts#L454"}],"parentId":586}],"is":{"declaration":true},"location":{"query":"Function.Function.curry","hash":""},"text":{},"parentId":465} diff --git a/docs/v1.0.0-beta01/data/Function.Function.debounce.json b/docs/v1.0.0-beta01/data/Function.Function.debounce.json new file mode 100644 index 000000000..208415980 --- /dev/null +++ b/docs/v1.0.0-beta01/data/Function.Function.debounce.json @@ -0,0 +1 @@ +{"id":576,"name":"debounce","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/utils/src/function.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/function.ts","line":745,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/function.ts#L745"}],"signatures":[{"id":577,"name":"debounce","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"debounce"}]},{"tag":"@description","content":[{"kind":"text","text":"创建防抖函数,延迟执行直到调用停止。Creates a debounced function that delays execution until after calls have stopped"}]},{"tag":"@returns","content":[{"kind":"text","text":"防抖函数。Debounced function"}]},{"tag":"@example","content":[{"kind":"text","text":"// Search input debouncing\nfunction search(query: string) {\n console.log("},{"kind":"code","text":"`Searching for \"${query}\"...`"},{"kind":"text","text":");\n // API call here\n}\n\nconst searchDebounced = debounce(search, 300);\n\n// User types rapidly - only last call executes\nsearchDebounced('J'); // Cancelled\nsearchDebounced('Ja'); // Cancelled\nsearchDebounced('Jav'); // Cancelled\nsearchDebounced('Java'); // Executes after 300ms delay"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Window resize handling\nconst handleResize = debounce(() => {\n console.log('Window resized to:', window.innerWidth, 'x', window.innerHeight);\n}, 250);\n\nwindow.addEventListener('resize', handleResize);\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Form validation\nconst validateInput = debounce((value) => {\n // Expensive validation logic\n console.log('Validating:', value);\n}, 500);\n\ninputElement.addEventListener('input', (e) => {\n validateInput(e.target.value);\n});\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Auto-save functionality\nconst autoSave = debounce((data) => {\n console.log('Auto-saving...', data);\n // Save to server\n}, 2000);\n\n// Called on every keystroke, but only saves 2 seconds after user stops typing\ntextArea.addEventListener('input', (e) => {\n autoSave(e.target.value);\n});\n```"}]}]},"typeParameter":[{"id":578,"name":"T","kind":131072,"kindString":"Type parameter","flags":{},"type":{"type":"array","elementType":{"type":"intrinsic","name":"unknown"}}}],"parameters":[{"id":579,"name":"fn","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"要防抖的函数。Function to debounce"}]},"type":{"type":"reflection","declaration":{"id":580,"name":"__type","kind":65536,"kindString":"Type literal","flags":{},"sources":[{"fileName":"packages/utils/src/function.ts","line":746,"character":6,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/function.ts#L746"}],"signatures":[{"id":581,"name":"__type","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":582,"name":"args","kind":32768,"kindString":"Parameter","flags":{"isRest":true},"type":{"type":"reference","id":578,"name":"T"}}],"type":{"type":"intrinsic","name":"void"}}]}},"text":{"comment":"

    要防抖的函数。Function to debounce

    \n"}},{"id":583,"name":"intervalTime","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"最后一次调用后的延迟时间(毫秒)(默认:500)。Delay in milliseconds after last call (default: 500)"}]},"type":{"type":"intrinsic","name":"number"},"defaultValue":"DEFAULT_INTERVAL","text":{"comment":"

    最后一次调用后的延迟时间(毫秒)(默认:500)。Delay in milliseconds after last call (default: 500)

    \n"}}],"type":{"type":"reference","typeArguments":[{"type":"reference","id":578,"name":"T"}],"name":"DebouncedFn"},"is":{"declaration":false},"location":{"query":"Function.Function.debounce","hash":"debounce"},"text":{"comment":"
    Function:

    debounce

    \n
    Description:

    创建防抖函数,延迟执行直到调用停止。Creates a debounced function that delays execution until after calls have stopped

    \n
    Returns:

    防抖函数。Debounced function

    \n
    Example:

    // Search input debouncing\nfunction search(query: string) {\n console.log(Searching for "${query}"...);\n // API call here\n}

    \n

    const searchDebounced = debounce(search, 300);

    \n

    // User types rapidly - only last call executes\nsearchDebounced('J'); // Cancelled\nsearchDebounced('Ja'); // Cancelled\nsearchDebounced('Jav'); // Cancelled\nsearchDebounced('Java'); // Executes after 300ms delay

    \n
    Example:
    // Window resize handling\nconst handleResize = debounce(() => {\n  console.log('Window resized to:', window.innerWidth, 'x', window.innerHeight);\n}, 250);\n\nwindow.addEventListener('resize', handleResize);\n
    \n
    Example:
    // Form validation\nconst validateInput = debounce((value) => {\n  // Expensive validation logic\n  console.log('Validating:', value);\n}, 500);\n\ninputElement.addEventListener('input', (e) => {\n  validateInput(e.target.value);\n});\n
    \n
    Example:
    // Auto-save functionality\nconst autoSave = debounce((data) => {\n  console.log('Auto-saving...', data);\n  // Save to server\n}, 2000);\n\n// Called on every keystroke, but only saves 2 seconds after user stops typing\ntextArea.addEventListener('input', (e) => {\n  autoSave(e.target.value);\n});\n
    \n"},"sources":[{"fileName":"packages/utils/src/function.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/function.ts","line":745,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/function.ts#L745"}],"parentId":576}],"is":{"declaration":true},"location":{"query":"Function.Function.debounce","hash":""},"text":{},"parentId":465} diff --git a/docs/v1.0.0-beta01/data/Function.Function.defer.json b/docs/v1.0.0-beta01/data/Function.Function.defer.json new file mode 100644 index 000000000..58033c8a0 --- /dev/null +++ b/docs/v1.0.0-beta01/data/Function.Function.defer.json @@ -0,0 +1 @@ +{"id":475,"name":"defer","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/utils/src/function.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/function.ts","line":117,"character":22,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/function.ts#L117"}],"signatures":[{"id":476,"name":"defer","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"defer"}]},{"tag":"@description","content":[{"kind":"text","text":"将函数的执行延迟到事件循环的下一个时钟周期。Defers execution of a function to the next tick of the event loop"}]},{"tag":"@returns","content":[{"kind":"text","text":"当函数执行完成时解析的 Promise。Promise that resolves when the function has been executed"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Basic deferral\nfunction printHello() {\n console.log('Hello, world!');\n}\n\ndefer(printHello);\nconsole.log('This is printed first.');\n// Output:\n// This is printed first.\n// Hello, world!\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// With arguments\ndefer(console.log, 'Deferred message', 123);\nconsole.log('Immediate message');\n// Output:\n// Immediate message\n// Deferred message 123\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Awaiting deferred execution\nasync function example() {\n console.log('Before defer');\n await defer(() => console.log('Deferred'));\n console.log('After defer');\n}\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Breaking up long-running tasks\nasync function processLargeArray(items) {\n for (let i = 0; i < items.length; i++) {\n processItem(items[i]);\n if (i % 100 === 0) {\n await defer(() => {}); // Yield control periodically\n }\n }\n}\n```"}]}]},"parameters":[{"id":477,"name":"fn","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"要延迟执行的函数。Function to defer"}]},"type":{"type":"reflection","declaration":{"id":478,"name":"__type","kind":65536,"kindString":"Type literal","flags":{},"sources":[{"fileName":"packages/utils/src/function.ts","line":117,"character":32,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/function.ts#L117"}],"signatures":[{"id":479,"name":"__type","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":480,"name":"arg","kind":32768,"kindString":"Parameter","flags":{"isRest":true},"type":{"type":"array","elementType":{"type":"intrinsic","name":"unknown"}}}],"type":{"type":"intrinsic","name":"unknown"}}]}},"text":{"comment":"

    要延迟执行的函数。Function to defer

    \n"}},{"id":481,"name":"args","kind":32768,"kindString":"Parameter","flags":{"isRest":true},"comment":{"summary":[{"kind":"text","text":"传递给函数的参数。Arguments to pass to the function"}]},"type":{"type":"array","elementType":{"type":"intrinsic","name":"unknown"}},"text":{"comment":"

    传递给函数的参数。Arguments to pass to the function

    \n"}}],"type":{"type":"reference","typeArguments":[{"type":"intrinsic","name":"void"}],"name":"Promise","qualifiedName":"Promise","package":"typescript"},"is":{"declaration":false},"location":{"query":"Function.Function.defer","hash":"defer"},"text":{"comment":"
    Function:

    defer

    \n
    Description:

    将函数的执行延迟到事件循环的下一个时钟周期。Defers execution of a function to the next tick of the event loop

    \n
    Returns:

    当函数执行完成时解析的 Promise。Promise that resolves when the function has been executed

    \n
    Example:
    // Basic deferral\nfunction printHello() {\n  console.log('Hello, world!');\n}\n\ndefer(printHello);\nconsole.log('This is printed first.');\n// Output:\n// This is printed first.\n// Hello, world!\n
    \n
    Example:
    // With arguments\ndefer(console.log, 'Deferred message', 123);\nconsole.log('Immediate message');\n// Output:\n// Immediate message\n// Deferred message 123\n
    \n
    Example:
    // Awaiting deferred execution\nasync function example() {\n  console.log('Before defer');\n  await defer(() => console.log('Deferred'));\n  console.log('After defer');\n}\n
    \n
    Example:
    // Breaking up long-running tasks\nasync function processLargeArray(items) {\n  for (let i = 0; i < items.length; i++) {\n    processItem(items[i]);\n    if (i % 100 === 0) {\n      await defer(() => {}); // Yield control periodically\n    }\n  }\n}\n
    \n"},"sources":[{"fileName":"packages/utils/src/function.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/function.ts","line":117,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/function.ts#L117"}],"parentId":475}],"is":{"declaration":true},"location":{"query":"Function.Function.defer","hash":""},"text":{},"parentId":465} diff --git a/docs/v1.0.0-beta01/data/Function.Function.functionName.json b/docs/v1.0.0-beta01/data/Function.Function.functionName.json new file mode 100644 index 000000000..694bbd698 --- /dev/null +++ b/docs/v1.0.0-beta01/data/Function.Function.functionName.json @@ -0,0 +1 @@ +{"id":540,"name":"functionName","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/utils/src/function.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/function.ts","line":538,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/function.ts#L538"}],"signatures":[{"id":541,"name":"functionName","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"functionName"}]},{"tag":"@description","content":[{"kind":"text","text":"记录并返回函数的名称(用于调试)。Logs and returns the name of a function (useful for debugging)"}]},{"tag":"@returns","content":[{"kind":"text","text":"函数的名称,如果是匿名函数则为空字符串。The function's name or empty string if anonymous"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Named function\nfunction add(a: number, b: number) {\n return a + b;\n}\n\nfunctionName(add); // -> Logs: \"add [Function: add]\", Returns: \"add\"\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Anonymous function\nconst anonymous = function() { return 42; };\nfunctionName(anonymous); // -> Logs: \"\" [Function: anonymous], Returns: \"\"\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Arrow function\nconst arrow = () => 'hello';\nfunctionName(arrow); // -> Logs: \"arrow [Function: arrow]\", Returns: \"arrow\"\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Built-in functions\nfunctionName(Math.max); // -> Logs: \"max [Function: max]\", Returns: \"max\"\nfunctionName(console.log); // -> Logs: \"log [Function: log]\", Returns: \"log\"\n```"}]}]},"typeParameter":[{"id":545,"name":"T","kind":131072,"kindString":"Type parameter","flags":{},"type":{"type":"reflection","declaration":{"id":542,"name":"__type","kind":65536,"kindString":"Type literal","flags":{},"sources":[{"fileName":"packages/utils/src/function.ts","line":538,"character":39,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/function.ts#L538"}],"signatures":[{"id":543,"name":"__type","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":544,"name":"ks","kind":32768,"kindString":"Parameter","flags":{"isRest":true},"type":{"type":"array","elementType":{"type":"intrinsic","name":"unknown"}}}],"type":{"type":"intrinsic","name":"unknown"}}]}}}],"parameters":[{"id":546,"name":"fn","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"要获取名称的函数。Function to get the name of"}]},"type":{"type":"reference","id":545,"name":"T"},"text":{"comment":"

    要获取名称的函数。Function to get the name of

    \n"}}],"type":{"type":"intrinsic","name":"string"},"is":{"declaration":false},"location":{"query":"Function.Function.functionName","hash":"functionName"},"text":{"comment":"
    Function:

    functionName

    \n
    Description:

    记录并返回函数的名称(用于调试)。Logs and returns the name of a function (useful for debugging)

    \n
    Returns:

    函数的名称,如果是匿名函数则为空字符串。The function's name or empty string if anonymous

    \n
    Example:
    // Named function\nfunction add(a: number, b: number) {\n  return a + b;\n}\n\nfunctionName(add); // -> Logs: \"add [Function: add]\", Returns: \"add\"\n
    \n
    Example:
    // Anonymous function\nconst anonymous = function() { return 42; };\nfunctionName(anonymous); // -> Logs: \"\" [Function: anonymous], Returns: \"\"\n
    \n
    Example:
    // Arrow function\nconst arrow = () => 'hello';\nfunctionName(arrow); // -> Logs: \"arrow [Function: arrow]\", Returns: \"arrow\"\n
    \n
    Example:
    // Built-in functions\nfunctionName(Math.max); // -> Logs: \"max [Function: max]\", Returns: \"max\"\nfunctionName(console.log); // -> Logs: \"log [Function: log]\", Returns: \"log\"\n
    \n"},"sources":[{"fileName":"packages/utils/src/function.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/function.ts","line":538,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/function.ts#L538"}],"parentId":540}],"is":{"declaration":true},"location":{"query":"Function.Function.functionName","hash":""},"text":{},"parentId":465} diff --git a/docs/v1.0.0-beta01/data/Function.Function.memoize.json b/docs/v1.0.0-beta01/data/Function.Function.memoize.json new file mode 100644 index 000000000..e8ef36160 --- /dev/null +++ b/docs/v1.0.0-beta01/data/Function.Function.memoize.json @@ -0,0 +1 @@ +{"id":495,"name":"memoize","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/utils/src/function.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/function.ts","line":245,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/function.ts#L245"}],"signatures":[{"id":496,"name":"memoize","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"memoize"}]},{"tag":"@description","content":[{"kind":"text","text":"创建函数的记忆化版本,基于第一个参数缓存结果。Creates a memoized version of a function that caches results based on the first argument"}]},{"tag":"@returns","content":[{"kind":"text","text":"带有缓存属性的记忆化函数。Memoized function with a cache property"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Expensive calculation\nfunction expensiveCalculation(n: number) {\n console.log('Calculating...');\n let result = 0;\n for (let i = 0; i < n; i++) {\n result += Math.sqrt(i);\n }\n return result;\n}\n\nconst cachedCalculation = memoize(expensiveCalculation);\nconsole.log(cachedCalculation(1000)); // Output: \"Calculating...\" then result\nconsole.log(cachedCalculation(1000)); // Output: result (no \"Calculating...\")\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Fibonacci with memoization\nconst fibonacci = memoize((n) => {\n if (n < 2) return n;\n return fibonacci(n - 1) + fibonacci(n - 2);\n});\n\nconsole.log(fibonacci(40)); // Much faster than non-memoized version\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Accessing the cache\nconst memoizedFn = memoize((x) => x * 2);\nmemoizedFn(5); // -> 10\nconsole.log(memoizedFn.cache); // -> Map { 5 => 10 }\nmemoizedFn.cache.clear(); // Clear the cache\n```"}]}]},"parameters":[{"id":497,"name":"fn","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"要记忆化的函数。Function to memoize"}]},"type":{"type":"reflection","declaration":{"id":498,"name":"__type","kind":65536,"kindString":"Type literal","flags":{},"sources":[{"fileName":"packages/utils/src/function.ts","line":245,"character":28,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/function.ts#L245"}],"signatures":[{"id":499,"name":"__type","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":500,"name":"args","kind":32768,"kindString":"Parameter","flags":{"isRest":true},"type":{"type":"array","elementType":{"type":"intrinsic","name":"unknown"}}}],"type":{"type":"intrinsic","name":"unknown"}}]}},"text":{"comment":"

    要记忆化的函数。Function to memoize

    \n"}}],"type":{"type":"reflection","declaration":{"id":501,"name":"memoize","kind":65536,"kindString":"Type literal","flags":{},"children":[{"id":502,"name":"cache","kind":1024,"kindString":"Property","flags":{},"sources":[{"fileName":"packages/utils/src/function.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/function.ts","line":250,"character":9,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/function.ts#L250"}],"type":{"type":"reference","typeArguments":[{"type":"intrinsic","name":"any"},{"type":"intrinsic","name":"any"}],"name":"Map","qualifiedName":"Map","package":"typescript"},"is":{"declaration":true},"location":{"query":"Function.Function.memoize","hash":"memoize.cache"},"text":{},"parentId":495}],"groups":[{"title":"Properties","children":[502]}],"sources":[{"fileName":"packages/utils/src/function.ts","line":247,"character":17,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/function.ts#L247"}],"signatures":[{"id":503,"name":"memoize","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":504,"name":"val","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"intrinsic","name":"unknown"},"text":{}}],"type":{"type":"intrinsic","name":"any"},"is":{"declaration":false},"location":{"query":"Function.Function.memoize","hash":"memoize.__type"},"text":{},"sources":[{"fileName":"packages/utils/src/function.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/function.ts","line":247,"character":17,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/function.ts#L247"}],"parentId":495}],"location":{"query":"Function.Function.memoize","hash":"memoize"}}},"is":{"declaration":false},"location":{"query":"Function.Function.memoize","hash":"memoize"},"text":{"comment":"
    Function:

    memoize

    \n
    Description:

    创建函数的记忆化版本,基于第一个参数缓存结果。Creates a memoized version of a function that caches results based on the first argument

    \n
    Returns:

    带有缓存属性的记忆化函数。Memoized function with a cache property

    \n
    Example:
    // Expensive calculation\nfunction expensiveCalculation(n: number) {\n  console.log('Calculating...');\n  let result = 0;\n  for (let i = 0; i < n; i++) {\n    result += Math.sqrt(i);\n  }\n  return result;\n}\n\nconst cachedCalculation = memoize(expensiveCalculation);\nconsole.log(cachedCalculation(1000)); // Output: \"Calculating...\" then result\nconsole.log(cachedCalculation(1000)); // Output: result (no \"Calculating...\")\n
    \n
    Example:
    // Fibonacci with memoization\nconst fibonacci = memoize((n) => {\n  if (n < 2) return n;\n  return fibonacci(n - 1) + fibonacci(n - 2);\n});\n\nconsole.log(fibonacci(40)); // Much faster than non-memoized version\n
    \n
    Example:
    // Accessing the cache\nconst memoizedFn = memoize((x) => x * 2);\nmemoizedFn(5); // -> 10\nconsole.log(memoizedFn.cache); // -> Map { 5 => 10 }\nmemoizedFn.cache.clear(); // Clear the cache\n
    \n"},"sources":[{"fileName":"packages/utils/src/function.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/function.ts","line":245,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/function.ts#L245"}],"parentId":495}],"is":{"declaration":true},"location":{"query":"Function.Function.memoize","hash":""},"text":{},"parentId":465} diff --git a/docs/v1.0.0-beta01/data/Function.Function.once.json b/docs/v1.0.0-beta01/data/Function.Function.once.json new file mode 100644 index 000000000..e1e4b051f --- /dev/null +++ b/docs/v1.0.0-beta01/data/Function.Function.once.json @@ -0,0 +1 @@ +{"id":505,"name":"once","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/utils/src/function.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/function.ts","line":295,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/function.ts#L295"}],"signatures":[{"id":506,"name":"once","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"once"}]},{"tag":"@description","content":[{"kind":"text","text":"创建一个只能执行一次的函数,后续调用将被忽略。Creates a function that can only be executed once, subsequent calls are ignored"}]},{"tag":"@returns","content":[{"kind":"text","text":"只在第一次调用时执行的函数。Function that executes only on first call"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Basic usage\nfunction log() {\n console.log('This will only log once');\n}\n\nconst logOnce = once(log);\nlogOnce(); // -> 'This will only log once'\nlogOnce(); // -> (no output)\nlogOnce(); // -> (no output)\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Initialization function\nconst initialize = once(() => {\n console.log('App initialized');\n // Setup code here...\n});\n\ninitialize(); // Runs initialization\ninitialize(); // Does nothing\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Event handler that should only run once\nconst handleFirstClick = once((event) => {\n console.log('First click detected!', event.target);\n});\n\nbutton.addEventListener('click', handleFirstClick);\n```"}]},{"tag":"@example","content":[{"kind":"text","text":"// API call that should only happen once\nconst fetchUserData = once(async (userId) => {\n const response = await fetch("},{"kind":"code","text":"`/api/users/${userId}`"},{"kind":"text","text":");\n return response.json();\n});"}]}]},"parameters":[{"id":507,"name":"fn","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"只执行一次的函数。Function to execute only once"}]},"type":{"type":"reflection","declaration":{"id":508,"name":"__type","kind":65536,"kindString":"Type literal","flags":{},"sources":[{"fileName":"packages/utils/src/function.ts","line":295,"character":25,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/function.ts#L295"}],"signatures":[{"id":509,"name":"__type","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":510,"name":"args","kind":32768,"kindString":"Parameter","flags":{"isRest":true},"type":{"type":"array","elementType":{"type":"intrinsic","name":"unknown"}}}],"type":{"type":"intrinsic","name":"unknown"}}]}},"text":{"comment":"

    只执行一次的函数。Function to execute only once

    \n"}}],"type":{"type":"reflection","declaration":{"id":511,"name":"once","kind":65536,"kindString":"Type literal","flags":{},"sources":[{"fileName":"packages/utils/src/function.ts","line":297,"character":9,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/function.ts#L297"}],"signatures":[{"id":512,"name":"once","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":513,"name":"argus","kind":32768,"kindString":"Parameter","flags":{"isRest":true},"type":{"type":"array","elementType":{"type":"intrinsic","name":"unknown"}},"text":{}}],"type":{"type":"intrinsic","name":"void"},"is":{"declaration":false},"location":{"query":"Function.Function.once","hash":"once.__type"},"text":{},"sources":[{"fileName":"packages/utils/src/function.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/function.ts","line":297,"character":9,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/function.ts#L297"}],"parentId":505}],"location":{"query":"Function.Function.once","hash":"once"}}},"is":{"declaration":false},"location":{"query":"Function.Function.once","hash":"once"},"text":{"comment":"
    Function:

    once

    \n
    Description:

    创建一个只能执行一次的函数,后续调用将被忽略。Creates a function that can only be executed once, subsequent calls are ignored

    \n
    Returns:

    只在第一次调用时执行的函数。Function that executes only on first call

    \n
    Example:
    // Basic usage\nfunction log() {\n  console.log('This will only log once');\n}\n\nconst logOnce = once(log);\nlogOnce(); // -> 'This will only log once'\nlogOnce(); // -> (no output)\nlogOnce(); // -> (no output)\n
    \n
    Example:
    // Initialization function\nconst initialize = once(() => {\n  console.log('App initialized');\n  // Setup code here...\n});\n\ninitialize(); // Runs initialization\ninitialize(); // Does nothing\n
    \n
    Example:
    // Event handler that should only run once\nconst handleFirstClick = once((event) => {\n  console.log('First click detected!', event.target);\n});\n\nbutton.addEventListener('click', handleFirstClick);\n
    \n
    Example:

    // API call that should only happen once\nconst fetchUserData = once(async (userId) => {\n const response = await fetch(/api/users/${userId});\n return response.json();\n});

    \n"},"sources":[{"fileName":"packages/utils/src/function.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/function.ts","line":295,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/function.ts#L295"}],"parentId":505}],"is":{"declaration":true},"location":{"query":"Function.Function.once","hash":""},"text":{},"parentId":465} diff --git a/docs/v1.0.0-beta01/data/Function.Function.pipe.json b/docs/v1.0.0-beta01/data/Function.Function.pipe.json new file mode 100644 index 000000000..9df5f28c7 --- /dev/null +++ b/docs/v1.0.0-beta01/data/Function.Function.pipe.json @@ -0,0 +1 @@ +{"id":530,"name":"pipe","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/utils/src/function.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/function.ts","line":426,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/function.ts#L426"}],"signatures":[{"id":531,"name":"pipe","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"pipe"}]},{"tag":"@description","content":[{"kind":"text","text":"从左到右管道函数(Unix 管道风格)。Pipes functions from left to right (Unix pipe style)"}]},{"tag":"@returns","content":[{"kind":"text","text":"从左到右应用函数的管道函数。Piped function that applies functions from left to right"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Basic piping\nconst add = (x, y) => x + y;\nconst multiply2 = x => x * 2;\nconst subtract1 = x => x - 1;\n\nconst piped = pipe(add, multiply2, subtract1);\npiped(5, 3); // -> add(5,3) -> multiply2(8) -> subtract1(16) -> 15\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Data processing pipeline\nconst parseJSON = str => JSON.parse(str);\nconst extractUsers = data => data.users;\nconst filterActive = users => users.filter(u => u.active);\nconst mapNames = users => users.map(u => u.name);\n\nconst processUserData = pipe(parseJSON, extractUsers, filterActive, mapNames);\nconst result = processUserData('{\"users\":[{\"name\":\"John\",\"active\":true},{\"name\":\"Jane\",\"active\":false}]}');\n// -> ['John']\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// String processing\nconst toLowerCase = str => str.toLowerCase();\nconst removeSpaces = str => str.replace(/\\s+/g, '');\nconst reverse = str => str.split('').reverse().join('');\n\nconst processString = pipe(toLowerCase, removeSpaces, reverse);\nprocessString('Hello World'); // -> 'dlrowolleh'\n```"}]}]},"typeParameter":[{"id":532,"name":"T","kind":131072,"kindString":"Type parameter","flags":{},"type":{"type":"array","elementType":{"type":"intrinsic","name":"unknown"}}}],"parameters":[{"id":533,"name":"fns","kind":32768,"kindString":"Parameter","flags":{"isRest":true},"comment":{"summary":[{"kind":"text","text":"要管道的函数。Functions to pipe"}]},"type":{"type":"array","elementType":{"type":"reflection","declaration":{"id":534,"name":"__type","kind":65536,"kindString":"Type literal","flags":{},"sources":[{"fileName":"packages/utils/src/function.ts","line":426,"character":56,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/function.ts#L426"}],"signatures":[{"id":535,"name":"__type","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":536,"name":"arg","kind":32768,"kindString":"Parameter","flags":{"isRest":true},"type":{"type":"array","elementType":{"type":"intrinsic","name":"any"}}}],"type":{"type":"intrinsic","name":"any"}}]}}},"text":{"comment":"

    要管道的函数。Functions to pipe

    \n"}}],"type":{"type":"reflection","declaration":{"id":537,"name":"pipe","kind":65536,"kindString":"Type literal","flags":{},"sources":[{"fileName":"packages/utils/src/function.ts","line":426,"character":56,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/function.ts#L426"}],"signatures":[{"id":538,"name":"pipe","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":539,"name":"arg","kind":32768,"kindString":"Parameter","flags":{"isRest":true},"type":{"type":"array","elementType":{"type":"intrinsic","name":"any"}},"text":{}}],"type":{"type":"intrinsic","name":"any"},"is":{"declaration":false},"location":{"query":"Function.Function.pipe","hash":"pipe.__type"},"text":{},"sources":[{"fileName":"packages/utils/src/function.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/function.ts","line":426,"character":56,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/function.ts#L426"}],"parentId":530}],"location":{"query":"Function.Function.pipe","hash":"pipe"}}},"is":{"declaration":false},"location":{"query":"Function.Function.pipe","hash":"pipe"},"text":{"comment":"
    Function:

    pipe

    \n
    Description:

    从左到右管道函数(Unix 管道风格)。Pipes functions from left to right (Unix pipe style)

    \n
    Returns:

    从左到右应用函数的管道函数。Piped function that applies functions from left to right

    \n
    Example:
    // Basic piping\nconst add = (x, y) => x + y;\nconst multiply2 = x => x * 2;\nconst subtract1 = x => x - 1;\n\nconst piped = pipe(add, multiply2, subtract1);\npiped(5, 3); // -> add(5,3) -> multiply2(8) -> subtract1(16) -> 15\n
    \n
    Example:
    // Data processing pipeline\nconst parseJSON = str => JSON.parse(str);\nconst extractUsers = data => data.users;\nconst filterActive = users => users.filter(u => u.active);\nconst mapNames = users => users.map(u => u.name);\n\nconst processUserData = pipe(parseJSON, extractUsers, filterActive, mapNames);\nconst result = processUserData('{\"users\":[{\"name\":\"John\",\"active\":true},{\"name\":\"Jane\",\"active\":false}]}');\n// -> ['John']\n
    \n
    Example:
    // String processing\nconst toLowerCase = str => str.toLowerCase();\nconst removeSpaces = str => str.replace(/\\s+/g, '');\nconst reverse = str => str.split('').reverse().join('');\n\nconst processString = pipe(toLowerCase, removeSpaces, reverse);\nprocessString('Hello World'); // -> 'dlrowolleh'\n
    \n"},"sources":[{"fileName":"packages/utils/src/function.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/function.ts","line":426,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/function.ts#L426"}],"parentId":530}],"is":{"declaration":true},"location":{"query":"Function.Function.pipe","hash":""},"text":{},"parentId":465} diff --git a/docs/v1.0.0-beta01/data/Function.Function.promisify.json b/docs/v1.0.0-beta01/data/Function.Function.promisify.json new file mode 100644 index 000000000..ab258a476 --- /dev/null +++ b/docs/v1.0.0-beta01/data/Function.Function.promisify.json @@ -0,0 +1 @@ +{"id":547,"name":"promisify","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/utils/src/function.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/function.ts","line":580,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/function.ts#L580"}],"signatures":[{"id":548,"name":"promisify","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"promisify"}]},{"tag":"@description","content":[{"kind":"text","text":"将基于回调的函数转换为返回 Promise。Converts a callback-based function to return a Promise"}]},{"tag":"@returns","content":[{"kind":"text","text":"函数的 Promise 版本。Promise-based version of the function"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Node.js fs module\nimport fs from 'fs';\nconst readFileAsync = promisify(fs.readFile);\n\nasync function main() {\n try {\n const data = await readFileAsync('file.txt', 'utf8');\n console.log(data);\n } catch (error) {\n console.error('Error reading file:', error);\n }\n}\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Custom callback function\nfunction fetchData(url, callback) {\n setTimeout(() => {\n if (url.includes('error')) {\n callback(new Error('Failed to fetch'));\n } else {\n callback(null, { data: 'success' });\n }\n }, 1000);\n}\n\nconst fetchDataAsync = promisify(fetchData);\n\nfetchDataAsync('https://api.example.com/data')\n .then(result => console.log(result))\n .catch(error => console.error(error));\n```"}]}]},"typeParameter":[{"id":549,"name":"T","kind":131072,"kindString":"Type parameter","flags":{},"type":{"type":"array","elementType":{"type":"intrinsic","name":"unknown"}}},{"id":550,"name":"R","kind":131072,"kindString":"Type parameter","flags":{}}],"parameters":[{"id":551,"name":"fn","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"使用错误优先回调模式的函数。Function that uses error-first callback pattern"}]},"type":{"type":"reflection","declaration":{"id":552,"name":"__type","kind":65536,"kindString":"Type literal","flags":{},"sources":[{"fileName":"packages/utils/src/function.ts","line":581,"character":6,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/function.ts#L581"}],"signatures":[{"id":553,"name":"__type","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":554,"name":"args","kind":32768,"kindString":"Parameter","flags":{"isRest":true},"type":{"type":"tuple","elements":[{"type":"named-tuple-member","name":"args","isOptional":false,"element":{"type":"reference","id":549,"name":"T"}},{"type":"named-tuple-member","name":"errHandler","isOptional":true,"element":{"type":"reflection","declaration":{"id":555,"name":"__type","kind":65536,"kindString":"Type literal","flags":{},"sources":[{"fileName":"packages/utils/src/function.ts","line":581,"character":39,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/function.ts#L581"}],"signatures":[{"id":556,"name":"__type","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":557,"name":"err","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"union","types":[{"type":"literal","value":null},{"type":"reference","name":"Error","qualifiedName":"Error","package":"typescript"}]}},{"id":558,"name":"result","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"type":{"type":"reference","id":550,"name":"R"}}],"type":{"type":"intrinsic","name":"void"}}]}}}]}}],"type":{"type":"intrinsic","name":"void"}}]}},"text":{"comment":"

    使用错误优先回调模式的函数。Function that uses error-first callback pattern

    \n"}}],"type":{"type":"reflection","declaration":{"id":559,"name":"promisify","kind":65536,"kindString":"Type literal","flags":{},"sources":[{"fileName":"packages/utils/src/function.ts","line":582,"character":3,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/function.ts#L582"}],"signatures":[{"id":560,"name":"promisify","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":561,"name":"args","kind":32768,"kindString":"Parameter","flags":{"isRest":true},"type":{"type":"reference","id":549,"name":"T"},"text":{}}],"type":{"type":"reference","typeArguments":[{"type":"reference","id":550,"name":"R"}],"name":"Promise","qualifiedName":"Promise","package":"typescript"},"is":{"declaration":false},"location":{"query":"Function.Function.promisify","hash":"promisify.__type"},"text":{},"parentId":547}],"location":{"query":"Function.Function.promisify","hash":"promisify"}}},"is":{"declaration":false},"location":{"query":"Function.Function.promisify","hash":"promisify"},"text":{"comment":"
    Function:

    promisify

    \n
    Description:

    将基于回调的函数转换为返回 Promise。Converts a callback-based function to return a Promise

    \n
    Returns:

    函数的 Promise 版本。Promise-based version of the function

    \n
    Example:
    // Node.js fs module\nimport fs from 'fs';\nconst readFileAsync = promisify(fs.readFile);\n\nasync function main() {\n  try {\n    const data = await readFileAsync('file.txt', 'utf8');\n    console.log(data);\n  } catch (error) {\n    console.error('Error reading file:', error);\n  }\n}\n
    \n
    Example:
    // Custom callback function\nfunction fetchData(url, callback) {\n  setTimeout(() => {\n    if (url.includes('error')) {\n      callback(new Error('Failed to fetch'));\n    } else {\n      callback(null, { data: 'success' });\n    }\n  }, 1000);\n}\n\nconst fetchDataAsync = promisify(fetchData);\n\nfetchDataAsync('https://api.example.com/data')\n  .then(result => console.log(result))\n  .catch(error => console.error(error));\n
    \n"},"sources":[{"fileName":"packages/utils/src/function.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/function.ts","line":580,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/function.ts#L580"}],"parentId":547}],"is":{"declaration":true},"location":{"query":"Function.Function.promisify","hash":""},"text":{},"parentId":465} diff --git a/docs/v1.0.0-beta01/data/Function.Function.runPromisesInSeries.json b/docs/v1.0.0-beta01/data/Function.Function.runPromisesInSeries.json new file mode 100644 index 000000000..6737bedfe --- /dev/null +++ b/docs/v1.0.0-beta01/data/Function.Function.runPromisesInSeries.json @@ -0,0 +1 @@ +{"id":482,"name":"runPromisesInSeries","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/utils/src/function.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/function.ts","line":160,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/function.ts#L160"}],"signatures":[{"id":483,"name":"runPromisesInSeries","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"runPromisesInSeries"}]},{"tag":"@description","content":[{"kind":"text","text":"按顺序执行返回 Promise 的函数数组(一个接一个)。Executes an array of promise-returning functions sequentially (one after another)"}]},{"tag":"@returns","content":[{"kind":"text","text":"使用最后一个函数的结果解析的 Promise。Promise that resolves with the result of the last function"}]},{"tag":"@throws","content":[{"kind":"text","text":"如果序列中的任何 Promise 被拒绝。If any promise in the sequence rejects"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Sequential API calls\nasync function fetchData(url: string) {\n const response = await fetch(url);\n return response.json();\n}\n\nconst urls = ['https://api.example.com/data1', 'https://api.example.com/data2'];\nrunPromisesInSeries(urls.map(url => () => fetchData(url)))\n .then(result => console.log('Final result:', result))\n .catch(error => console.error('Error:', error));\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Sequential processing with delays\nconst tasks = [\n () => new Promise(resolve => setTimeout(() => resolve('Task 1'), 1000)),\n () => new Promise(resolve => setTimeout(() => resolve('Task 2'), 500)),\n () => new Promise(resolve => setTimeout(() => resolve('Task 3'), 200))\n];\n\nrunPromisesInSeries(tasks); // Takes ~1.7 seconds total (sequential)\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Database operations in sequence\nconst dbOperations = [\n () => createUser({ name: 'John' }),\n () => createProfile({ userId: 1 }),\n () => sendWelcomeEmail({ userId: 1 })\n];\n\nrunPromisesInSeries(dbOperations);\n```"}]}]},"parameters":[{"id":484,"name":"ps","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"返回 Promise 的函数数组。Array of functions that return promises"}]},"type":{"type":"array","elementType":{"type":"reflection","declaration":{"id":485,"name":"__type","kind":65536,"kindString":"Type literal","flags":{},"sources":[{"fileName":"packages/utils/src/function.ts","line":160,"character":46,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/function.ts#L160"}],"signatures":[{"id":486,"name":"__type","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":487,"name":"args","kind":32768,"kindString":"Parameter","flags":{"isRest":true},"type":{"type":"array","elementType":{"type":"intrinsic","name":"unknown"}}}],"type":{"type":"reference","typeArguments":[{"type":"intrinsic","name":"any"}],"name":"Promise","qualifiedName":"Promise","package":"typescript"}}]}}},"text":{"comment":"

    返回 Promise 的函数数组。Array of functions that return promises

    \n"}}],"type":{"type":"reference","typeArguments":[{"type":"intrinsic","name":"void"}],"name":"Promise","qualifiedName":"Promise","package":"typescript"},"is":{"declaration":false},"location":{"query":"Function.Function.runPromisesInSeries","hash":"runPromisesInSeries"},"text":{"comment":"
    Function:

    runPromisesInSeries

    \n
    Description:

    按顺序执行返回 Promise 的函数数组(一个接一个)。Executes an array of promise-returning functions sequentially (one after another)

    \n
    Returns:

    使用最后一个函数的结果解析的 Promise。Promise that resolves with the result of the last function

    \n
    Throws:

    如果序列中的任何 Promise 被拒绝。If any promise in the sequence rejects

    \n
    Example:
    // Sequential API calls\nasync function fetchData(url: string) {\n  const response = await fetch(url);\n  return response.json();\n}\n\nconst urls = ['https://api.example.com/data1', 'https://api.example.com/data2'];\nrunPromisesInSeries(urls.map(url => () => fetchData(url)))\n  .then(result => console.log('Final result:', result))\n  .catch(error => console.error('Error:', error));\n
    \n
    Example:
    // Sequential processing with delays\nconst tasks = [\n  () => new Promise(resolve => setTimeout(() => resolve('Task 1'), 1000)),\n  () => new Promise(resolve => setTimeout(() => resolve('Task 2'), 500)),\n  () => new Promise(resolve => setTimeout(() => resolve('Task 3'), 200))\n];\n\nrunPromisesInSeries(tasks); // Takes ~1.7 seconds total (sequential)\n
    \n
    Example:
    // Database operations in sequence\nconst dbOperations = [\n  () => createUser({ name: 'John' }),\n  () => createProfile({ userId: 1 }),\n  () => sendWelcomeEmail({ userId: 1 })\n];\n\nrunPromisesInSeries(dbOperations);\n
    \n"},"sources":[{"fileName":"packages/utils/src/function.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/function.ts","line":160,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/function.ts#L160"}],"parentId":482}],"is":{"declaration":true},"location":{"query":"Function.Function.runPromisesInSeries","hash":""},"text":{},"parentId":465} diff --git a/docs/v1.0.0-beta01/data/Function.Function.sleep.json b/docs/v1.0.0-beta01/data/Function.Function.sleep.json new file mode 100644 index 000000000..ec7700cca --- /dev/null +++ b/docs/v1.0.0-beta01/data/Function.Function.sleep.json @@ -0,0 +1 @@ +{"id":562,"name":"sleep","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/utils/src/function.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/function.ts","line":633,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/function.ts#L633"}],"signatures":[{"id":563,"name":"sleep","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"sleep"}]},{"tag":"@description","content":[{"kind":"text","text":"创建在指定延迟后解析的Promise。Creates a Promise that resolves after a specified delay"}]},{"tag":"@returns","content":[{"kind":"text","text":"在延迟后解析的Promise。Promise that resolves after the delay"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Basic delay\nasync function main() {\n console.log(\"Starting...\");\n await sleep(2000); // Wait 2 seconds\n console.log(\"Done waiting!\");\n}\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Simulating API delays in tests\nasync function simulateApiCall() {\n await sleep(100); // Simulate network delay\n return { data: 'response' };\n}\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Rate limiting\nasync function processItems(items) {\n for (const item of items) {\n await processItem(item);\n await sleep(1000); // Wait 1 second between items\n }\n}\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Retry with backoff\nasync function retryWithDelay(fn, maxRetries = 3) {\n for (let i = 0; i < maxRetries; i++) {\n try {\n return await fn();\n } catch (error) {\n if (i === maxRetries - 1) throw error;\n await sleep(1000 * Math.pow(2, i)); // Exponential backoff\n }\n }\n}\n```"}]}]},"parameters":[{"id":564,"name":"ms","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"延迟的毫秒数。Number of milliseconds to delay"}]},"type":{"type":"intrinsic","name":"number"},"text":{"comment":"

    延迟的毫秒数。Number of milliseconds to delay

    \n"}}],"type":{"type":"reference","typeArguments":[{"type":"intrinsic","name":"unknown"}],"name":"Promise","qualifiedName":"Promise","package":"typescript"},"is":{"declaration":false},"location":{"query":"Function.Function.sleep","hash":"sleep"},"text":{"comment":"
    Function:

    sleep

    \n
    Description:

    创建在指定延迟后解析的Promise。Creates a Promise that resolves after a specified delay

    \n
    Returns:

    在延迟后解析的Promise。Promise that resolves after the delay

    \n
    Example:
    // Basic delay\nasync function main() {\n  console.log(\"Starting...\");\n  await sleep(2000); // Wait 2 seconds\n  console.log(\"Done waiting!\");\n}\n
    \n
    Example:
    // Simulating API delays in tests\nasync function simulateApiCall() {\n  await sleep(100); // Simulate network delay\n  return { data: 'response' };\n}\n
    \n
    Example:
    // Rate limiting\nasync function processItems(items) {\n  for (const item of items) {\n    await processItem(item);\n    await sleep(1000); // Wait 1 second between items\n  }\n}\n
    \n
    Example:
    // Retry with backoff\nasync function retryWithDelay(fn, maxRetries = 3) {\n  for (let i = 0; i < maxRetries; i++) {\n    try {\n      return await fn();\n    } catch (error) {\n    if (i === maxRetries - 1) throw error;\n      await sleep(1000 * Math.pow(2, i)); // Exponential backoff\n    }\n  }\n}\n
    \n"},"sources":[{"fileName":"packages/utils/src/function.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/function.ts","line":633,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/function.ts#L633"}],"parentId":562}],"is":{"declaration":true},"location":{"query":"Function.Function.sleep","hash":""},"text":{},"parentId":465} diff --git a/docs/v1.0.0-beta01/data/Function.Function.throttle.json b/docs/v1.0.0-beta01/data/Function.Function.throttle.json new file mode 100644 index 000000000..c575f2790 --- /dev/null +++ b/docs/v1.0.0-beta01/data/Function.Function.throttle.json @@ -0,0 +1 @@ +{"id":565,"name":"throttle","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/utils/src/function.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/function.ts","line":675,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/function.ts#L675"}],"signatures":[{"id":566,"name":"throttle","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"throttle"}]},{"tag":"@description","content":[{"kind":"text","text":"创建限制执行频率的节流函数,每个间隔只能执行一次。Creates a throttled function that limits execution to once per interval"}]},{"tag":"@returns","content":[{"kind":"text","text":"节流函数。Throttled function"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Basic throttling\nfunction log(message: string) {\n console.log(new Date().toISOString(), message);\n}\n\nconst logThrottled = throttle(log, 1000);\n\n// Rapid calls - only first one executes immediately, others are ignored\nlogThrottled('Message 1'); // Executes immediately\nlogThrottled('Message 2'); // Ignored\nlogThrottled('Message 3'); // Ignored\n\nsetTimeout(() => logThrottled('Message 4'), 1100); // Executes after interval\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Scroll event throttling\nconst handleScroll = throttle(() => {\n console.log('Scroll position:', window.scrollY);\n}, 100);\n\nwindow.addEventListener('scroll', handleScroll);\n```"}]},{"tag":"@example","content":[{"kind":"text","text":"// API call throttling\nconst searchAPI = throttle(async (query) => {\n const response = await fetch("},{"kind":"code","text":"`/api/search?q=${query}`"},{"kind":"text","text":");\n return response.json();\n}, 300);"}]}]},"typeParameter":[{"id":570,"name":"F","kind":131072,"kindString":"Type parameter","flags":{},"type":{"type":"reflection","declaration":{"id":567,"name":"__type","kind":65536,"kindString":"Type literal","flags":{},"sources":[{"fileName":"packages/utils/src/function.ts","line":675,"character":35,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/function.ts#L675"}],"signatures":[{"id":568,"name":"__type","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":569,"name":"args","kind":32768,"kindString":"Parameter","flags":{"isRest":true},"type":{"type":"array","elementType":{"type":"intrinsic","name":"any"}}}],"type":{"type":"intrinsic","name":"any"}}]}}}],"parameters":[{"id":571,"name":"fn","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"要节流的函数。Function to throttle"}]},"type":{"type":"reference","id":570,"name":"F"},"text":{"comment":"

    要节流的函数。Function to throttle

    \n"}},{"id":572,"name":"intervalTime","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"执行之间的最小时间间隔(毫秒)(默认:500)。Minimum time between executions in milliseconds (default: 500)"}]},"type":{"type":"intrinsic","name":"number"},"defaultValue":"DEFAULT_INTERVAL","text":{"comment":"

    执行之间的最小时间间隔(毫秒)(默认:500)。Minimum time between executions in milliseconds (default: 500)

    \n"}}],"type":{"type":"reflection","declaration":{"id":573,"name":"throttle","kind":65536,"kindString":"Type literal","flags":{},"sources":[{"fileName":"packages/utils/src/function.ts","line":678,"character":3,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/function.ts#L678"}],"signatures":[{"id":574,"name":"throttle","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":575,"name":"args","kind":32768,"kindString":"Parameter","flags":{"isRest":true},"type":{"type":"reference","typeArguments":[{"type":"reference","id":570,"name":"F"}],"name":"Parameters","qualifiedName":"Parameters","package":"typescript"},"text":{}}],"type":{"type":"intrinsic","name":"void"},"is":{"declaration":false},"location":{"query":"Function.Function.throttle","hash":"throttle.__type"},"text":{},"parentId":565}],"location":{"query":"Function.Function.throttle","hash":"throttle"}}},"is":{"declaration":false},"location":{"query":"Function.Function.throttle","hash":"throttle"},"text":{"comment":"
    Function:

    throttle

    \n
    Description:

    创建限制执行频率的节流函数,每个间隔只能执行一次。Creates a throttled function that limits execution to once per interval

    \n
    Returns:

    节流函数。Throttled function

    \n
    Example:
    // Basic throttling\nfunction log(message: string) {\n  console.log(new Date().toISOString(), message);\n}\n\nconst logThrottled = throttle(log, 1000);\n\n// Rapid calls - only first one executes immediately, others are ignored\nlogThrottled('Message 1'); // Executes immediately\nlogThrottled('Message 2'); // Ignored\nlogThrottled('Message 3'); // Ignored\n\nsetTimeout(() => logThrottled('Message 4'), 1100); // Executes after interval\n
    \n
    Example:
    // Scroll event throttling\nconst handleScroll = throttle(() => {\n  console.log('Scroll position:', window.scrollY);\n}, 100);\n\nwindow.addEventListener('scroll', handleScroll);\n
    \n
    Example:

    // API call throttling\nconst searchAPI = throttle(async (query) => {\n const response = await fetch(/api/search?q=${query});\n return response.json();\n}, 300);

    \n"},"sources":[{"fileName":"packages/utils/src/function.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/function.ts","line":675,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/function.ts#L675"}],"parentId":565}],"is":{"declaration":true},"location":{"query":"Function.Function.throttle","hash":""},"text":{},"parentId":465} diff --git a/docs/v1.0.0-beta01/data/Function.Function.timeTaken.json b/docs/v1.0.0-beta01/data/Function.Function.timeTaken.json new file mode 100644 index 000000000..b392296f5 --- /dev/null +++ b/docs/v1.0.0-beta01/data/Function.Function.timeTaken.json @@ -0,0 +1 @@ +{"id":488,"name":"timeTaken","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/utils/src/function.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/function.ts","line":202,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/function.ts#L202"}],"signatures":[{"id":489,"name":"timeTaken","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"timeTaken"}]},{"tag":"@description","content":[{"kind":"text","text":"测量并记录函数的执行时间。Measures and logs the execution time of a function"}]},{"tag":"@returns","content":[{"kind":"text","text":"函数执行的结果。The result of the function execution"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Measuring a simple function\nfunction slowCalculation(n) {\n let result = 0;\n for (let i = 0; i < n; i++) {\n result += Math.sqrt(i);\n }\n return result;\n}\n\nconst result = timeTaken(slowCalculation, 1000000);\n// Console output: timeTaken: 45.123ms\n// Returns: calculated result\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Measuring async functions\nasync function fetchData(url) {\n const response = await fetch(url);\n return response.json();\n}\n\nawait timeTaken(fetchData, 'https://api.example.com/data');\n// Console output: timeTaken: 234.567ms\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Measuring multiple operations\nconst operations = [\n () => timeTaken(Array.from, { length: 10000 }, (_, i) => i * 2),\n () => timeTaken(JSON.stringify, { large: 'object' }),\n () => timeTaken(Math.random)\n];\n```"}]}]},"parameters":[{"id":490,"name":"fn","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"要测量的函数。Function to measure"}]},"type":{"type":"reflection","declaration":{"id":491,"name":"__type","kind":65536,"kindString":"Type literal","flags":{},"sources":[{"fileName":"packages/utils/src/function.ts","line":202,"character":30,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/function.ts#L202"}],"signatures":[{"id":492,"name":"__type","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":493,"name":"ks","kind":32768,"kindString":"Parameter","flags":{"isRest":true},"type":{"type":"array","elementType":{"type":"intrinsic","name":"unknown"}}}],"type":{"type":"intrinsic","name":"unknown"}}]}},"text":{"comment":"

    要测量的函数。Function to measure

    \n"}},{"id":494,"name":"args","kind":32768,"kindString":"Parameter","flags":{"isRest":true},"comment":{"summary":[{"kind":"text","text":"传递给函数的参数。Arguments to pass to the function"}]},"type":{"type":"array","elementType":{"type":"intrinsic","name":"unknown"}},"text":{"comment":"

    传递给函数的参数。Arguments to pass to the function

    \n"}}],"type":{"type":"intrinsic","name":"unknown"},"is":{"declaration":false},"location":{"query":"Function.Function.timeTaken","hash":"timeTaken"},"text":{"comment":"
    Function:

    timeTaken

    \n
    Description:

    测量并记录函数的执行时间。Measures and logs the execution time of a function

    \n
    Returns:

    函数执行的结果。The result of the function execution

    \n
    Example:
    // Measuring a simple function\nfunction slowCalculation(n) {\n  let result = 0;\n  for (let i = 0; i < n; i++) {\n    result += Math.sqrt(i);\n  }\n  return result;\n}\n\nconst result = timeTaken(slowCalculation, 1000000);\n// Console output: timeTaken: 45.123ms\n// Returns: calculated result\n
    \n
    Example:
    // Measuring async functions\nasync function fetchData(url) {\n  const response = await fetch(url);\n  return response.json();\n}\n\nawait timeTaken(fetchData, 'https://api.example.com/data');\n// Console output: timeTaken: 234.567ms\n
    \n
    Example:
    // Measuring multiple operations\nconst operations = [\n  () => timeTaken(Array.from, { length: 10000 }, (_, i) => i * 2),\n  () => timeTaken(JSON.stringify, { large: 'object' }),\n  () => timeTaken(Math.random)\n];\n
    \n"},"sources":[{"fileName":"packages/utils/src/function.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/function.ts","line":202,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/function.ts#L202"}],"parentId":488}],"is":{"declaration":true},"location":{"query":"Function.Function.timeTaken","hash":""},"text":{},"parentId":465} diff --git a/docs/v1.0.0-beta01/data/I18n.Function.formatCurrencyLocale.json b/docs/v1.0.0-beta01/data/I18n.Function.formatCurrencyLocale.json new file mode 100644 index 000000000..9e4ec0a00 --- /dev/null +++ b/docs/v1.0.0-beta01/data/I18n.Function.formatCurrencyLocale.json @@ -0,0 +1 @@ +{"id":1047,"name":"formatCurrencyLocale","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/web-utils/src/i18n.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/i18n.ts","line":77,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/i18n.ts#L77"}],"signatures":[{"id":1048,"name":"formatCurrencyLocale","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"formatCurrencyLocale"}]},{"tag":"@description","content":[{"kind":"text","text":"根据本地化格式化货币。Formats currency according to locale"}]},{"tag":"@returns","content":[{"kind":"text","text":"格式化的货币字符串。Formatted currency string"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\nformatCurrencyLocale(1234.56, 'USD', 'en-US'); // -> '$1,234.56'\nformatCurrencyLocale(1234.56, 'EUR', 'de-DE'); // -> '1.234,56 €'\nformatCurrencyLocale(1234.56, 'CNY', 'zh-CN'); // -> '¥1,234.56'\n```"}]}]},"parameters":[{"id":1049,"name":"amount","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"金额。Amount"}]},"type":{"type":"intrinsic","name":"number"},"text":{"comment":"

    金额。Amount

    \n"}},{"id":1050,"name":"currency","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"货币代码(如'USD', 'EUR', 'CNY')。Currency code (e.g., 'USD', 'EUR', 'CNY')"}]},"type":{"type":"intrinsic","name":"string"},"text":{"comment":"

    货币代码(如'USD', 'EUR', 'CNY')。Currency code (e.g., 'USD', 'EUR', 'CNY')

    \n"}},{"id":1051,"name":"locale","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"语言代码(可选)。Language code (optional)"}]},"type":{"type":"intrinsic","name":"string"},"text":{"comment":"

    语言代码(可选)。Language code (optional)

    \n"}}],"type":{"type":"intrinsic","name":"string"},"is":{"declaration":false},"location":{"query":"I18n.Function.formatCurrencyLocale","hash":"formatCurrencyLocale"},"text":{"comment":"
    Function:

    formatCurrencyLocale

    \n
    Description:

    根据本地化格式化货币。Formats currency according to locale

    \n
    Returns:

    格式化的货币字符串。Formatted currency string

    \n
    Example:
    formatCurrencyLocale(1234.56, 'USD', 'en-US'); // -> '$1,234.56'\nformatCurrencyLocale(1234.56, 'EUR', 'de-DE'); // -> '1.234,56 €'\nformatCurrencyLocale(1234.56, 'CNY', 'zh-CN'); // -> '¥1,234.56'\n
    \n"},"sources":[{"fileName":"packages/web-utils/src/i18n.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/i18n.ts","line":77,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/i18n.ts#L77"}],"parentId":1047}],"is":{"declaration":true},"location":{"query":"I18n.Function.formatCurrencyLocale","hash":""},"text":{},"parentId":1034} diff --git a/docs/v1.0.0-beta01/data/I18n.Function.formatDateLocale.json b/docs/v1.0.0-beta01/data/I18n.Function.formatDateLocale.json new file mode 100644 index 000000000..e9652ce27 --- /dev/null +++ b/docs/v1.0.0-beta01/data/I18n.Function.formatDateLocale.json @@ -0,0 +1 @@ +{"id":1037,"name":"formatDateLocale","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/web-utils/src/i18n.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/i18n.ts","line":34,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/i18n.ts#L34"}],"signatures":[{"id":1038,"name":"formatDateLocale","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"formatDateLocale"}]},{"tag":"@description","content":[{"kind":"text","text":"根据本地化格式化日期。Formats date according to locale"}]},{"tag":"@returns","content":[{"kind":"text","text":"格式化的日期字符串。Formatted date string"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\nconst date = new Date('2025-01-18');\nformatDateLocale(date, 'en-US'); // -> '1/18/2025'\nformatDateLocale(date, 'zh-CN'); // -> '2025/1/18'\nformatDateLocale(date, 'en-US', { weekday: 'long', year: 'numeric', month: 'long', day: 'numeric' });\n// -> 'Saturday, January 18, 2025'\n```"}]}]},"parameters":[{"id":1039,"name":"date","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"日期对象或时间戳。Date object or timestamp"}]},"type":{"type":"union","types":[{"type":"intrinsic","name":"number"},{"type":"reference","name":"Date","qualifiedName":"Date","package":"typescript"}]},"text":{"comment":"

    日期对象或时间戳。Date object or timestamp

    \n"}},{"id":1040,"name":"locale","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"语言代码(可选,默认使用浏览器语言)。Language code (optional, defaults to browser language)"}]},"type":{"type":"intrinsic","name":"string"},"text":{"comment":"

    语言代码(可选,默认使用浏览器语言)。Language code (optional, defaults to browser language)

    \n"}},{"id":1041,"name":"options","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"格式化选项。Formatting options"}]},"type":{"type":"reference","name":"DateTimeFormatOptions","qualifiedName":"Intl.DateTimeFormatOptions","package":"typescript"},"text":{"comment":"

    格式化选项。Formatting options

    \n"}}],"type":{"type":"intrinsic","name":"string"},"is":{"declaration":false},"location":{"query":"I18n.Function.formatDateLocale","hash":"formatDateLocale"},"text":{"comment":"
    Function:

    formatDateLocale

    \n
    Description:

    根据本地化格式化日期。Formats date according to locale

    \n
    Returns:

    格式化的日期字符串。Formatted date string

    \n
    Example:
    const date = new Date('2025-01-18');\nformatDateLocale(date, 'en-US'); // -> '1/18/2025'\nformatDateLocale(date, 'zh-CN'); // -> '2025/1/18'\nformatDateLocale(date, 'en-US', { weekday: 'long', year: 'numeric', month: 'long', day: 'numeric' });\n// -> 'Saturday, January 18, 2025'\n
    \n"},"sources":[{"fileName":"packages/web-utils/src/i18n.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/i18n.ts","line":34,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/i18n.ts#L34"}],"parentId":1037}],"is":{"declaration":true},"location":{"query":"I18n.Function.formatDateLocale","hash":""},"text":{},"parentId":1034} diff --git a/docs/v1.0.0-beta01/data/I18n.Function.formatNumberLocale.json b/docs/v1.0.0-beta01/data/I18n.Function.formatNumberLocale.json new file mode 100644 index 000000000..b0924b9ef --- /dev/null +++ b/docs/v1.0.0-beta01/data/I18n.Function.formatNumberLocale.json @@ -0,0 +1 @@ +{"id":1042,"name":"formatNumberLocale","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/web-utils/src/i18n.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/i18n.ts","line":56,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/i18n.ts#L56"}],"signatures":[{"id":1043,"name":"formatNumberLocale","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"formatNumberLocale"}]},{"tag":"@description","content":[{"kind":"text","text":"根据本地化格式化数字。Formats number according to locale"}]},{"tag":"@returns","content":[{"kind":"text","text":"格式化的数字字符串。Formatted number string"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\nformatNumberLocale(1234567.89, 'en-US'); // -> '1,234,567.89'\nformatNumberLocale(1234567.89, 'de-DE'); // -> '1.234.567,89'\nformatNumberLocale(0.42, 'en-US', { style: 'percent' }); // -> '42%'\n```"}]}]},"parameters":[{"id":1044,"name":"num","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"要格式化的数字。Number to format"}]},"type":{"type":"intrinsic","name":"number"},"text":{"comment":"

    要格式化的数字。Number to format

    \n"}},{"id":1045,"name":"locale","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"语言代码(可选)。Language code (optional)"}]},"type":{"type":"intrinsic","name":"string"},"text":{"comment":"

    语言代码(可选)。Language code (optional)

    \n"}},{"id":1046,"name":"options","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"格式化选项。Formatting options"}]},"type":{"type":"reference","name":"NumberFormatOptions","qualifiedName":"Intl.NumberFormatOptions","package":"typescript"},"text":{"comment":"

    格式化选项。Formatting options

    \n"}}],"type":{"type":"intrinsic","name":"string"},"is":{"declaration":false},"location":{"query":"I18n.Function.formatNumberLocale","hash":"formatNumberLocale"},"text":{"comment":"
    Function:

    formatNumberLocale

    \n
    Description:

    根据本地化格式化数字。Formats number according to locale

    \n
    Returns:

    格式化的数字字符串。Formatted number string

    \n
    Example:
    formatNumberLocale(1234567.89, 'en-US'); // -> '1,234,567.89'\nformatNumberLocale(1234567.89, 'de-DE'); // -> '1.234.567,89'\nformatNumberLocale(0.42, 'en-US', { style: 'percent' }); // -> '42%'\n
    \n"},"sources":[{"fileName":"packages/web-utils/src/i18n.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/i18n.ts","line":56,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/i18n.ts#L56"}],"parentId":1042}],"is":{"declaration":true},"location":{"query":"I18n.Function.formatNumberLocale","hash":""},"text":{},"parentId":1034} diff --git a/docs/v1.0.0-beta01/data/I18n.Function.formatRelativeTime.json b/docs/v1.0.0-beta01/data/I18n.Function.formatRelativeTime.json new file mode 100644 index 000000000..840814b16 --- /dev/null +++ b/docs/v1.0.0-beta01/data/I18n.Function.formatRelativeTime.json @@ -0,0 +1 @@ +{"id":1060,"name":"formatRelativeTime","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/web-utils/src/i18n.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/i18n.ts","line":131,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/i18n.ts#L131"}],"signatures":[{"id":1061,"name":"formatRelativeTime","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"formatRelativeTime"}]},{"tag":"@description","content":[{"kind":"text","text":"格式化相对时间。Formats relative time"}]},{"tag":"@returns","content":[{"kind":"text","text":"格式化的相对时间。Formatted relative time"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\nformatRelativeTime(-1, 'day', 'en-US'); // -> 'yesterday'\nformatRelativeTime(3, 'day', 'en-US'); // -> 'in 3 days'\nformatRelativeTime(-2, 'hour', 'zh-CN'); // -> '2小时前'\n```"}]}]},"parameters":[{"id":1062,"name":"value","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"时间值。Time value"}]},"type":{"type":"intrinsic","name":"number"},"text":{"comment":"

    时间值。Time value

    \n"}},{"id":1063,"name":"unit","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"时间单位。Time unit"}]},"type":{"type":"reference","name":"RelativeTimeFormatUnit","qualifiedName":"Intl.RelativeTimeFormatUnit","package":"typescript"},"text":{"comment":"

    时间单位。Time unit

    \n"}},{"id":1064,"name":"locale","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"语言代码(可选)。Language code (optional)"}]},"type":{"type":"intrinsic","name":"string"},"text":{"comment":"

    语言代码(可选)。Language code (optional)

    \n"}}],"type":{"type":"intrinsic","name":"string"},"is":{"declaration":false},"location":{"query":"I18n.Function.formatRelativeTime","hash":"formatRelativeTime"},"text":{"comment":"
    Function:

    formatRelativeTime

    \n
    Description:

    格式化相对时间。Formats relative time

    \n
    Returns:

    格式化的相对时间。Formatted relative time

    \n
    Example:
    formatRelativeTime(-1, 'day', 'en-US'); // -> 'yesterday'\nformatRelativeTime(3, 'day', 'en-US'); // -> 'in 3 days'\nformatRelativeTime(-2, 'hour', 'zh-CN'); // -> '2小时前'\n
    \n"},"sources":[{"fileName":"packages/web-utils/src/i18n.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/i18n.ts","line":131,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/i18n.ts#L131"}],"parentId":1060}],"is":{"declaration":true},"location":{"query":"I18n.Function.formatRelativeTime","hash":""},"text":{},"parentId":1034} diff --git a/docs/v1.0.0-beta01/data/I18n.Function.getDirection.json b/docs/v1.0.0-beta01/data/I18n.Function.getDirection.json new file mode 100644 index 000000000..fa803f079 --- /dev/null +++ b/docs/v1.0.0-beta01/data/I18n.Function.getDirection.json @@ -0,0 +1 @@ +{"id":1057,"name":"getDirection","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/web-utils/src/i18n.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/i18n.ts","line":112,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/i18n.ts#L112"}],"signatures":[{"id":1058,"name":"getDirection","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"getDirection"}]},{"tag":"@description","content":[{"kind":"text","text":"获取文本方向(LTR或RTL)。Gets text direction (LTR or RTL)"}]},{"tag":"@returns","content":[{"kind":"text","text":"'ltr'或'rtl'。'ltr' or 'rtl'"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\ngetDirection('en-US'); // -> 'ltr'\ngetDirection('ar-SA'); // -> 'rtl'\ngetDirection('he-IL'); // -> 'rtl'\n```"}]}]},"parameters":[{"id":1059,"name":"locale","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"语言代码(可选)。Language code (optional)"}]},"type":{"type":"intrinsic","name":"string"},"text":{"comment":"

    语言代码(可选)。Language code (optional)

    \n"}}],"type":{"type":"union","types":[{"type":"literal","value":"ltr"},{"type":"literal","value":"rtl"}]},"is":{"declaration":false},"location":{"query":"I18n.Function.getDirection","hash":"getDirection"},"text":{"comment":"
    Function:

    getDirection

    \n
    Description:

    获取文本方向(LTR或RTL)。Gets text direction (LTR or RTL)

    \n
    Returns:

    'ltr'或'rtl'。'ltr' or 'rtl'

    \n
    Example:
    getDirection('en-US'); // -> 'ltr'\ngetDirection('ar-SA'); // -> 'rtl'\ngetDirection('he-IL'); // -> 'rtl'\n
    \n"},"sources":[{"fileName":"packages/web-utils/src/i18n.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/i18n.ts","line":112,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/i18n.ts#L112"}],"parentId":1057}],"is":{"declaration":true},"location":{"query":"I18n.Function.getDirection","hash":""},"text":{},"parentId":1034} diff --git a/docs/v1.0.0-beta01/data/I18n.Function.getLocale.json b/docs/v1.0.0-beta01/data/I18n.Function.getLocale.json new file mode 100644 index 000000000..f3dfc1495 --- /dev/null +++ b/docs/v1.0.0-beta01/data/I18n.Function.getLocale.json @@ -0,0 +1 @@ +{"id":1035,"name":"getLocale","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/web-utils/src/i18n.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/i18n.ts","line":16,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/i18n.ts#L16"}],"signatures":[{"id":1036,"name":"getLocale","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"getLocale"}]},{"tag":"@description","content":[{"kind":"text","text":"获取用户的首选语言。Gets user's preferred language"}]},{"tag":"@returns","content":[{"kind":"text","text":"语言代码(如'en-US')。Language code (e.g., 'en-US')"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\nconst locale = getLocale(); // -> 'en-US' or 'zh-CN', etc.\n```"}]}]},"type":{"type":"intrinsic","name":"string"},"is":{"declaration":false},"location":{"query":"I18n.Function.getLocale","hash":"getLocale"},"text":{"comment":"
    Function:

    getLocale

    \n
    Description:

    获取用户的首选语言。Gets user's preferred language

    \n
    Returns:

    语言代码(如'en-US')。Language code (e.g., 'en-US')

    \n
    Example:
    const locale = getLocale(); // -> 'en-US' or 'zh-CN', etc.\n
    \n"},"sources":[{"fileName":"packages/web-utils/src/i18n.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/i18n.ts","line":16,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/i18n.ts#L16"}],"parentId":1035}],"is":{"declaration":true},"location":{"query":"I18n.Function.getLocale","hash":""},"text":{},"parentId":1034} diff --git a/docs/v1.0.0-beta01/data/I18n.Function.pluralize.json b/docs/v1.0.0-beta01/data/I18n.Function.pluralize.json new file mode 100644 index 000000000..7f5f18ecd --- /dev/null +++ b/docs/v1.0.0-beta01/data/I18n.Function.pluralize.json @@ -0,0 +1 @@ +{"id":1052,"name":"pluralize","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/web-utils/src/i18n.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/i18n.ts","line":97,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/i18n.ts#L97"}],"signatures":[{"id":1053,"name":"pluralize","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"pluralize"}]},{"tag":"@description","content":[{"kind":"text","text":"处理复数形式。Handles plural forms"}]},{"tag":"@returns","content":[{"kind":"text","text":"正确的单复数形式。Correct singular/plural form"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\npluralize(1, 'item'); // -> 'item'\npluralize(5, 'item'); // -> 'items'\npluralize(2, 'person', 'people'); // -> 'people'\n```"}]}]},"parameters":[{"id":1054,"name":"count","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"数量。Count"}]},"type":{"type":"intrinsic","name":"number"},"text":{"comment":"

    数量。Count

    \n"}},{"id":1055,"name":"singular","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"单数形式。Singular form"}]},"type":{"type":"intrinsic","name":"string"},"text":{"comment":"

    单数形式。Singular form

    \n"}},{"id":1056,"name":"plural","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"复数形式(可选)。Plural form (optional)"}]},"type":{"type":"intrinsic","name":"string"},"text":{"comment":"

    复数形式(可选)。Plural form (optional)

    \n"}}],"type":{"type":"intrinsic","name":"string"},"is":{"declaration":false},"location":{"query":"I18n.Function.pluralize","hash":"pluralize"},"text":{"comment":"
    Function:

    pluralize

    \n
    Description:

    处理复数形式。Handles plural forms

    \n
    Returns:

    正确的单复数形式。Correct singular/plural form

    \n
    Example:
    pluralize(1, 'item'); // -> 'item'\npluralize(5, 'item'); // -> 'items'\npluralize(2, 'person', 'people'); // -> 'people'\n
    \n"},"sources":[{"fileName":"packages/web-utils/src/i18n.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/i18n.ts","line":97,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/i18n.ts#L97"}],"parentId":1052}],"is":{"declaration":true},"location":{"query":"I18n.Function.pluralize","hash":""},"text":{},"parentId":1034} diff --git a/docs/v1.0.0-beta01/data/Image.Function.compressImage.json b/docs/v1.0.0-beta01/data/Image.Function.compressImage.json new file mode 100644 index 000000000..2773964e5 --- /dev/null +++ b/docs/v1.0.0-beta01/data/Image.Function.compressImage.json @@ -0,0 +1 @@ +{"id":1081,"name":"compressImage","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/web-utils/src/image.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/image.ts","line":144,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/image.ts#L144"}],"signatures":[{"id":1082,"name":"compressImage","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"compressImage"}]},{"tag":"@description","content":[{"kind":"text","text":"进行图片压缩并输出base64"}]},{"tag":"@returns","content":[{"kind":"text","text":"base64图片"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\nconst img = new Image();\r\n img.src = 'https://blog.michealwayne.cn/favicon.png';\r\n img.onload = () => console.log(compressImage(img, 0.3)); // 输出压缩后的base64\n```"}]}]},"parameters":[{"id":1083,"name":"img","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"HTMLImageElement","qualifiedName":"HTMLImageElement","package":"typescript"},"text":{}},{"id":1084,"name":"rate","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"intrinsic","name":"number"},"text":{}}],"type":{"type":"intrinsic","name":"string"},"is":{"declaration":false},"location":{"query":"Image.Function.compressImage","hash":"compressImage"},"text":{"comment":"
    Function:

    compressImage

    \n
    Description:

    进行图片压缩并输出base64

    \n
    Returns:

    base64图片

    \n
    Example:
    const img = new Image();\n  img.src = 'https://blog.michealwayne.cn/favicon.png';\n  img.onload = () => console.log(compressImage(img, 0.3)); // 输出压缩后的base64\n
    \n"},"sources":[{"fileName":"packages/web-utils/src/image.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/image.ts","line":144,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/image.ts#L144"}],"parentId":1081}],"is":{"declaration":true},"location":{"query":"Image.Function.compressImage","hash":""},"text":{},"parentId":1065} diff --git a/docs/v1.0.0-beta01/data/Image.Function.cropImage.json b/docs/v1.0.0-beta01/data/Image.Function.cropImage.json new file mode 100644 index 000000000..40680af82 --- /dev/null +++ b/docs/v1.0.0-beta01/data/Image.Function.cropImage.json @@ -0,0 +1 @@ +{"id":1074,"name":"cropImage","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/web-utils/src/image.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/image.ts","line":113,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/image.ts#L113"}],"signatures":[{"id":1075,"name":"cropImage","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"cropImage"}]},{"tag":"@description","content":[{"kind":"text","text":"裁剪图片,返回裁剪后的canvas元素。Crops an image and returns the cropped canvas element"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// 从一个图片元素中裁剪出一个 100x100 大小的矩形,起始坐标为 (50, 50)\r\nconst image = document.querySelector('img');\r\nconst croppedCanvas = cropImage(image, 50, 50, 100, 100);\r\n\n// 将裁剪后的 canvas 元素插入到页面中\r\ndocument.body.appendChild(croppedCanvas);\r\n\n// 从一个 canvas 元素中裁剪出一个 200x100 大小的矩形,起始坐标为 (0, 0)\r\nconst canvas = document.querySelector('canvas');\r\nconst croppedCanvas = cropImage(canvas, 0, 0, 200, 100);\r\n\n// 将裁剪后的 canvas 元素插入到页面中\r\ndocument.body.appendChild(croppedCanvas);\n```"}]}]},"parameters":[{"id":1076,"name":"src","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"图片/canvas元素。The image/canvas element"}]},"type":{"type":"union","types":[{"type":"reference","name":"HTMLCanvasElement","qualifiedName":"HTMLCanvasElement","package":"typescript"},{"type":"reference","name":"HTMLImageElement","qualifiedName":"HTMLImageElement","package":"typescript"}]},"text":{"comment":"

    图片/canvas元素。The image/canvas element

    \n"}},{"id":1077,"name":"x","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"位置x,裁剪图片起始坐标。The x position, starting coordinate for cropping"}]},"type":{"type":"intrinsic","name":"number"},"text":{"comment":"

    位置x,裁剪图片起始坐标。The x position, starting coordinate for cropping

    \n"}},{"id":1078,"name":"y","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"位置y,裁剪图片起始坐标。The y position, starting coordinate for cropping"}]},"type":{"type":"intrinsic","name":"number"},"text":{"comment":"

    位置y,裁剪图片起始坐标。The y position, starting coordinate for cropping

    \n"}},{"id":1079,"name":"width","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"裁剪图片宽度。The width of the cropped image"}]},"type":{"type":"intrinsic","name":"number"},"text":{"comment":"

    裁剪图片宽度。The width of the cropped image

    \n"}},{"id":1080,"name":"height","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"裁剪图片高度。The height of the cropped image"}]},"type":{"type":"intrinsic","name":"number"},"text":{"comment":"

    裁剪图片高度。The height of the cropped image

    \n"}}],"type":{"type":"reference","name":"HTMLCanvasElement","qualifiedName":"HTMLCanvasElement","package":"typescript"},"is":{"declaration":false},"location":{"query":"Image.Function.cropImage","hash":"cropImage"},"text":{"comment":"
    Function:

    cropImage

    \n
    Description:

    裁剪图片,返回裁剪后的canvas元素。Crops an image and returns the cropped canvas element

    \n
    Example:
    // 从一个图片元素中裁剪出一个 100x100 大小的矩形,起始坐标为 (50, 50)\nconst image = document.querySelector('img');\nconst croppedCanvas = cropImage(image, 50, 50, 100, 100);\n\n// 将裁剪后的 canvas 元素插入到页面中\ndocument.body.appendChild(croppedCanvas);\n\n// 从一个 canvas 元素中裁剪出一个 200x100 大小的矩形,起始坐标为 (0, 0)\nconst canvas = document.querySelector('canvas');\nconst croppedCanvas = cropImage(canvas, 0, 0, 200, 100);\n\n// 将裁剪后的 canvas 元素插入到页面中\ndocument.body.appendChild(croppedCanvas);\n
    \n"},"sources":[{"fileName":"packages/web-utils/src/image.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/image.ts","line":113,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/image.ts#L113"}],"parentId":1074}],"is":{"declaration":true},"location":{"query":"Image.Function.cropImage","hash":""},"text":{},"parentId":1065} diff --git a/docs/v1.0.0-beta01/data/Image.Function.getImageSize.json b/docs/v1.0.0-beta01/data/Image.Function.getImageSize.json new file mode 100644 index 000000000..802557666 --- /dev/null +++ b/docs/v1.0.0-beta01/data/Image.Function.getImageSize.json @@ -0,0 +1 @@ +{"id":1069,"name":"getImageSize","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/web-utils/src/image.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/image.ts","line":52,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/image.ts#L52"}],"signatures":[{"id":1070,"name":"getImageSize","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"getImageSize"}]},{"tag":"@description","content":[{"kind":"text","text":"获取图片的原始尺寸大小(使用naturalWidth/naturalHeight)。Gets the original dimensions of an image (using naturalWidth/naturalHeight)"}]},{"tag":"@returns","content":[{"kind":"text","text":"图片尺寸。The image dimensions"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\ngetImageSize('https://example.com/image.jpg')\r\n .then(function(result) {\r\n console.log('图片大小:', result.width, 'x', result.height);\r\n })\r\n .catch(function(error) {\r\n console.log('无法获取图片大小:', error);\r\n });\n```"}]}]},"parameters":[{"id":1071,"name":"imgUrl","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"图片地址。The image URL"}]},"type":{"type":"intrinsic","name":"string"},"text":{"comment":"

    图片地址。The image URL

    \n"}}],"type":{"type":"reference","typeArguments":[{"type":"intrinsic","name":"unknown"}],"name":"Promise","qualifiedName":"Promise","package":"typescript"},"is":{"declaration":false},"location":{"query":"Image.Function.getImageSize","hash":"getImageSize"},"text":{"comment":"
    Function:

    getImageSize

    \n
    Description:

    获取图片的原始尺寸大小(使用naturalWidth/naturalHeight)。Gets the original dimensions of an image (using naturalWidth/naturalHeight)

    \n
    Returns:

    图片尺寸。The image dimensions

    \n
    Example:
    getImageSize('https://example.com/image.jpg')\n .then(function(result) {\n   console.log('图片大小:', result.width, 'x', result.height);\n })\n .catch(function(error) {\n   console.log('无法获取图片大小:', error);\n });\n
    \n"},"sources":[{"fileName":"packages/web-utils/src/image.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/image.ts","line":52,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/image.ts#L52"}],"parentId":1069}],"is":{"declaration":true},"location":{"query":"Image.Function.getImageSize","hash":""},"text":{},"parentId":1065} diff --git a/docs/v1.0.0-beta01/data/Image.Function.isImageLoaded.json b/docs/v1.0.0-beta01/data/Image.Function.isImageLoaded.json new file mode 100644 index 000000000..99fc1b8fb --- /dev/null +++ b/docs/v1.0.0-beta01/data/Image.Function.isImageLoaded.json @@ -0,0 +1 @@ +{"id":1066,"name":"isImageLoaded","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/web-utils/src/image.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/image.ts","line":23,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/image.ts#L23"}],"signatures":[{"id":1067,"name":"isImageLoaded","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"isImageLoaded"}]},{"tag":"@description","content":[{"kind":"text","text":"加载图片(通常用于预加载)。Loads an image (typically used for preloading)"}]},{"tag":"@returns","content":[{"kind":"text","text":"图片加载状态。The image loading status"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\nisImageLoaded('https://example.com/image.jpg')\r\n .then(function(result) {\r\n console.log('图片加载完成');\r\n console.log(result);\r\n })\r\n .catch(function(result) {\r\n console.log('图片加载失败');\r\n console.log(result);\r\n });\n```"}]}]},"parameters":[{"id":1068,"name":"imgUrl","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"图片地址。The image URL"}]},"type":{"type":"intrinsic","name":"string"},"text":{"comment":"

    图片地址。The image URL

    \n"}}],"type":{"type":"reference","typeArguments":[{"type":"intrinsic","name":"unknown"}],"name":"Promise","qualifiedName":"Promise","package":"typescript"},"is":{"declaration":false},"location":{"query":"Image.Function.isImageLoaded","hash":"isImageLoaded"},"text":{"comment":"
    Function:

    isImageLoaded

    \n
    Description:

    加载图片(通常用于预加载)。Loads an image (typically used for preloading)

    \n
    Returns:

    图片加载状态。The image loading status

    \n
    Example:
    isImageLoaded('https://example.com/image.jpg')\n .then(function(result) {\n   console.log('图片加载完成');\n   console.log(result);\n })\n .catch(function(result) {\n   console.log('图片加载失败');\n   console.log(result);\n });\n
    \n"},"sources":[{"fileName":"packages/web-utils/src/image.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/image.ts","line":23,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/image.ts#L23"}],"parentId":1066}],"is":{"declaration":true},"location":{"query":"Image.Function.isImageLoaded","hash":""},"text":{},"parentId":1065} diff --git a/docs/v1.0.0-beta01/data/Image.Function.isSupportWebP.json b/docs/v1.0.0-beta01/data/Image.Function.isSupportWebP.json new file mode 100644 index 000000000..608413935 --- /dev/null +++ b/docs/v1.0.0-beta01/data/Image.Function.isSupportWebP.json @@ -0,0 +1 @@ +{"id":1072,"name":"isSupportWebP","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/web-utils/src/image.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/image.ts","line":83,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/image.ts#L83"}],"signatures":[{"id":1073,"name":"isSupportWebP","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"isSupportWebP"}]},{"tag":"@description","content":[{"kind":"text","text":"检测页面当前所处环境是否支持WebP格式图片。Detects whether the current environment supports WebP format images"}]},{"tag":"@returns","content":[{"kind":"text","text":"是否支持WebP格式图片。Whether WebP format images are supported"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\nconst imgEl = document.createElement('img');\r\nif (isSupportWebP()) {\r\n imgEl.src = 'image.webp';\r\n} else {\r\n imgEl.src = 'image.png';\r\n}\r\ndocument.body.appendChild(imgEl);\n```"}]}]},"type":{"type":"intrinsic","name":"boolean"},"is":{"declaration":false},"location":{"query":"Image.Function.isSupportWebP","hash":"isSupportWebP"},"text":{"comment":"
    Function:

    isSupportWebP

    \n
    Description:

    检测页面当前所处环境是否支持WebP格式图片。Detects whether the current environment supports WebP format images

    \n
    Returns:

    是否支持WebP格式图片。Whether WebP format images are supported

    \n
    Example:
    const imgEl = document.createElement('img');\nif (isSupportWebP()) {\n imgEl.src = 'image.webp';\n} else {\n imgEl.src = 'image.png';\n}\ndocument.body.appendChild(imgEl);\n
    \n"},"sources":[{"fileName":"packages/web-utils/src/image.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/image.ts","line":83,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/image.ts#L83"}],"parentId":1072}],"is":{"declaration":true},"location":{"query":"Image.Function.isSupportWebP","hash":""},"text":{},"parentId":1065} diff --git a/docs/v1.0.0-beta01/data/JSON.Function.clon.json b/docs/v1.0.0-beta01/data/JSON.Function.clon.json new file mode 100644 index 000000000..4a6b91070 --- /dev/null +++ b/docs/v1.0.0-beta01/data/JSON.Function.clon.json @@ -0,0 +1 @@ +{"id":638,"name":"cloneJSON","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/utils/src/json.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/json.ts","line":145,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/json.ts#L145"}],"signatures":[{"id":639,"name":"cloneJSON","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"cloneJSON"}]},{"tag":"@description","content":[{"kind":"text","text":"深度克隆JSON对象。Deep clones a JSON object"}]},{"tag":"@returns","content":[{"kind":"text","text":"克隆的对象。Cloned object"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\nconst original = { a: 1, b: { c: 2 } };\nconst cloned = cloneJSON(original);\ncloned.b.c = 3;\nconsole.log(original.b.c); // -> 2 (unchanged)\n```"}]}]},"typeParameter":[{"id":640,"name":"T","kind":131072,"kindString":"Type parameter","flags":{}}],"parameters":[{"id":641,"name":"obj","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"要克隆的对象。Object to clone"}]},"type":{"type":"reference","id":640,"name":"T"},"text":{"comment":"

    要克隆的对象。Object to clone

    \n"}}],"type":{"type":"reference","id":640,"name":"T"},"is":{"declaration":false},"location":{"query":"JSON.Function.cloneJSON","hash":"cloneJSON"},"text":{"comment":"
    Function:

    cloneJSON

    \n
    Description:

    深度克隆JSON对象。Deep clones a JSON object

    \n
    Returns:

    克隆的对象。Cloned object

    \n
    Example:
    const original = { a: 1, b: { c: 2 } };\nconst cloned = cloneJSON(original);\ncloned.b.c = 3;\nconsole.log(original.b.c); // -> 2 (unchanged)\n
    \n"},"sources":[{"fileName":"packages/utils/src/json.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/json.ts","line":145,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/json.ts#L145"}],"parentId":638}],"is":{"declaration":true},"location":{"query":"JSON.Function.cloneJSON","hash":""},"text":{},"parentId":615} diff --git a/docs/v1.0.0-beta01/data/JSON.Function.compar.json b/docs/v1.0.0-beta01/data/JSON.Function.compar.json new file mode 100644 index 000000000..36fde1fcf --- /dev/null +++ b/docs/v1.0.0-beta01/data/JSON.Function.compar.json @@ -0,0 +1 @@ +{"id":628,"name":"compareJSON","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/utils/src/json.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/json.ts","line":96,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/json.ts#L96"}],"signatures":[{"id":629,"name":"compareJSON","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"compareJSON"}]},{"tag":"@description","content":[{"kind":"text","text":"深度比较两个JSON对象的差异。Deep compares two JSON objects for differences"}]},{"tag":"@returns","content":[{"kind":"text","text":"差异对象。Difference object"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\nconst obj1 = { a: 1, b: 2, c: { d: 3 } };\nconst obj2 = { a: 1, b: 3, c: { d: 4 } };\ncompareJSON(obj1, obj2); // -> { b: { old: 2, new: 3 }, 'c.d': { old: 3, new: 4 } }\n```"}]}]},"parameters":[{"id":630,"name":"obj1","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"第一个对象。First object"}]},"type":{"type":"intrinsic","name":"any"},"text":{"comment":"

    第一个对象。First object

    \n"}},{"id":631,"name":"obj2","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"第二个对象。Second object"}]},"type":{"type":"intrinsic","name":"any"},"text":{"comment":"

    第二个对象。Second object

    \n"}}],"type":{"type":"reference","typeArguments":[{"type":"intrinsic","name":"string"},{"type":"reflection","declaration":{"id":632,"name":"__type","kind":65536,"kindString":"Type literal","flags":{},"children":[{"id":634,"name":"new","kind":1024,"kindString":"Property","flags":{},"sources":[{"fileName":"packages/utils/src/json.ts","line":96,"character":78,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/json.ts#L96"}],"type":{"type":"intrinsic","name":"any"}},{"id":633,"name":"old","kind":1024,"kindString":"Property","flags":{},"sources":[{"fileName":"packages/utils/src/json.ts","line":96,"character":68,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/json.ts#L96"}],"type":{"type":"intrinsic","name":"any"}}],"groups":[{"title":"Properties","children":[634,633]}],"sources":[{"fileName":"packages/utils/src/json.ts","line":96,"character":66,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/json.ts#L96"}]}}],"name":"Record","qualifiedName":"Record","package":"typescript"},"is":{"declaration":false},"location":{"query":"JSON.Function.compareJSON","hash":"compareJSON"},"text":{"comment":"
    Function:

    compareJSON

    \n
    Description:

    深度比较两个JSON对象的差异。Deep compares two JSON objects for differences

    \n
    Returns:

    差异对象。Difference object

    \n
    Example:
    const obj1 = { a: 1, b: 2, c: { d: 3 } };\nconst obj2 = { a: 1, b: 3, c: { d: 4 } };\ncompareJSON(obj1, obj2); // -> { b: { old: 2, new: 3 }, 'c.d': { old: 3, new: 4 } }\n
    \n"},"sources":[{"fileName":"packages/utils/src/json.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/json.ts","line":96,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/json.ts#L96"}],"parentId":628}],"is":{"declaration":true},"location":{"query":"JSON.Function.compareJSON","hash":""},"text":{},"parentId":615} diff --git a/docs/v1.0.0-beta01/data/JSON.Function.flatte.json b/docs/v1.0.0-beta01/data/JSON.Function.flatte.json new file mode 100644 index 000000000..7195d79d8 --- /dev/null +++ b/docs/v1.0.0-beta01/data/JSON.Function.flatte.json @@ -0,0 +1 @@ +{"id":621,"name":"flattenJSON","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/utils/src/json.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/json.ts","line":47,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/json.ts#L47"}],"signatures":[{"id":622,"name":"flattenJSON","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"flattenJSON"}]},{"tag":"@description","content":[{"kind":"text","text":"将嵌套的JSON对象扁平化为单层对象。Flattens nested JSON object to single level"}]},{"tag":"@returns","content":[{"kind":"text","text":"扁平化后的对象。Flattened object"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\nconst nested = {\n user: {\n name: 'John',\n address: {\n city: 'NYC',\n zip: '10001'\n }\n }\n};\nflattenJSON(nested);\n// -> { 'user.name': 'John', 'user.address.city': 'NYC', 'user.address.zip': '10001' }\n```"}]}]},"parameters":[{"id":623,"name":"obj","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"要扁平化的对象。Object to flatten"}]},"type":{"type":"intrinsic","name":"any"},"text":{"comment":"

    要扁平化的对象。Object to flatten

    \n"}},{"id":624,"name":"prefix","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"键名前缀(默认: '')。Key prefix (default: '')"}]},"type":{"type":"intrinsic","name":"string"},"defaultValue":"''","text":{"comment":"

    键名前缀(默认: '')。Key prefix (default: '')

    \n"}}],"type":{"type":"reference","typeArguments":[{"type":"intrinsic","name":"string"},{"type":"intrinsic","name":"any"}],"name":"Record","qualifiedName":"Record","package":"typescript"},"is":{"declaration":false},"location":{"query":"JSON.Function.flattenJSON","hash":"flattenJSON"},"text":{"comment":"
    Function:

    flattenJSON

    \n
    Description:

    将嵌套的JSON对象扁平化为单层对象。Flattens nested JSON object to single level

    \n
    Returns:

    扁平化后的对象。Flattened object

    \n
    Example:
    const nested = {\n  user: {\n    name: 'John',\n    address: {\n      city: 'NYC',\n      zip: '10001'\n    }\n  }\n};\nflattenJSON(nested);\n// -> { 'user.name': 'John', 'user.address.city': 'NYC', 'user.address.zip': '10001' }\n
    \n"},"sources":[{"fileName":"packages/utils/src/json.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/json.ts","line":47,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/json.ts#L47"}],"parentId":621}],"is":{"declaration":true},"location":{"query":"JSON.Function.flattenJSON","hash":""},"text":{},"parentId":615} diff --git a/docs/v1.0.0-beta01/data/JSON.Function.merg.json b/docs/v1.0.0-beta01/data/JSON.Function.merg.json new file mode 100644 index 000000000..27e8deb49 --- /dev/null +++ b/docs/v1.0.0-beta01/data/JSON.Function.merg.json @@ -0,0 +1 @@ +{"id":635,"name":"mergeJSON","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/utils/src/json.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/json.ts","line":121,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/json.ts#L121"}],"signatures":[{"id":636,"name":"mergeJSON","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"mergeJSON"}]},{"tag":"@description","content":[{"kind":"text","text":"深度合并多个JSON对象。Deep merges multiple JSON objects"}]},{"tag":"@returns","content":[{"kind":"text","text":"合并后的对象。Merged object"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\nconst obj1 = { a: 1, b: { c: 2 } };\nconst obj2 = { b: { d: 3 }, e: 4 };\nmergeJSON(obj1, obj2); // -> { a: 1, b: { c: 2, d: 3 }, e: 4 }\n```"}]}]},"parameters":[{"id":637,"name":"objects","kind":32768,"kindString":"Parameter","flags":{"isRest":true},"comment":{"summary":[{"kind":"text","text":"要合并的对象。Objects to merge"}]},"type":{"type":"array","elementType":{"type":"intrinsic","name":"any"}},"text":{"comment":"

    要合并的对象。Objects to merge

    \n"}}],"type":{"type":"intrinsic","name":"any"},"is":{"declaration":false},"location":{"query":"JSON.Function.mergeJSON","hash":"mergeJSON"},"text":{"comment":"
    Function:

    mergeJSON

    \n
    Description:

    深度合并多个JSON对象。Deep merges multiple JSON objects

    \n
    Returns:

    合并后的对象。Merged object

    \n
    Example:
    const obj1 = { a: 1, b: { c: 2 } };\nconst obj2 = { b: { d: 3 }, e: 4 };\nmergeJSON(obj1, obj2); // -> { a: 1, b: { c: 2, d: 3 }, e: 4 }\n
    \n"},"sources":[{"fileName":"packages/utils/src/json.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/json.ts","line":121,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/json.ts#L121"}],"parentId":635}],"is":{"declaration":true},"location":{"query":"JSON.Function.mergeJSON","hash":""},"text":{},"parentId":615} diff --git a/docs/v1.0.0-beta01/data/JSON.Function.safeJSONParse.json b/docs/v1.0.0-beta01/data/JSON.Function.safeJSONParse.json new file mode 100644 index 000000000..411fc6fba --- /dev/null +++ b/docs/v1.0.0-beta01/data/JSON.Function.safeJSONParse.json @@ -0,0 +1 @@ +{"id":616,"name":"safeJSONParse","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/utils/src/json.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/json.ts","line":20,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/json.ts#L20"}],"signatures":[{"id":617,"name":"safeJSONParse","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"safeJSONParse"}]},{"tag":"@description","content":[{"kind":"text","text":"安全地解析JSON字符串,失败时返回默认值。Safely parses JSON string, returns default value on failure"}]},{"tag":"@returns","content":[{"kind":"text","text":"解析后的对象或默认值。Parsed object or default value"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\nsafeJSONParse('{\"name\": \"John\"}'); // -> { name: 'John' }\nsafeJSONParse('invalid json', {}); // -> {}\nsafeJSONParse('invalid', []); // -> []\n```"}]}]},"typeParameter":[{"id":618,"name":"T","kind":131072,"kindString":"Type parameter","flags":{},"default":{"type":"intrinsic","name":"any"}}],"parameters":[{"id":619,"name":"str","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"要解析的JSON字符串。JSON string to parse"}]},"type":{"type":"intrinsic","name":"string"},"text":{"comment":"

    要解析的JSON字符串。JSON string to parse

    \n"}},{"id":620,"name":"defaultValue","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"解析失败时的默认值。Default value on parse failure"}]},"type":{"type":"reference","id":618,"name":"T"},"defaultValue":"...","text":{"comment":"

    解析失败时的默认值。Default value on parse failure

    \n"}}],"type":{"type":"reference","id":618,"name":"T"},"is":{"declaration":false},"location":{"query":"JSON.Function.safeJSONParse","hash":"safeJSONParse"},"text":{"comment":"
    Function:

    safeJSONParse

    \n
    Description:

    安全地解析JSON字符串,失败时返回默认值。Safely parses JSON string, returns default value on failure

    \n
    Returns:

    解析后的对象或默认值。Parsed object or default value

    \n
    Example:
    safeJSONParse('{\"name\": \"John\"}'); // -> { name: 'John' }\nsafeJSONParse('invalid json', {}); // -> {}\nsafeJSONParse('invalid', []); // -> []\n
    \n"},"sources":[{"fileName":"packages/utils/src/json.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/json.ts","line":20,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/json.ts#L20"}],"parentId":616}],"is":{"declaration":true},"location":{"query":"JSON.Function.safeJSONParse","hash":""},"text":{},"parentId":615} diff --git a/docs/v1.0.0-beta01/data/JSON.Function.unflatte.json b/docs/v1.0.0-beta01/data/JSON.Function.unflatte.json new file mode 100644 index 000000000..5b420fc55 --- /dev/null +++ b/docs/v1.0.0-beta01/data/JSON.Function.unflatte.json @@ -0,0 +1 @@ +{"id":625,"name":"unflattenJSON","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/utils/src/json.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/json.ts","line":69,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/json.ts#L69"}],"signatures":[{"id":626,"name":"unflattenJSON","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"unflattenJSON"}]},{"tag":"@description","content":[{"kind":"text","text":"将扁平化的对象还原为嵌套结构。Unflattens a flat object to nested structure"}]},{"tag":"@returns","content":[{"kind":"text","text":"嵌套的对象。Nested object"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\nconst flat = { 'user.name': 'John', 'user.address.city': 'NYC' };\nunflattenJSON(flat);\n// -> { user: { name: 'John', address: { city: 'NYC' } } }\n```"}]}]},"parameters":[{"id":627,"name":"obj","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"扁平化的对象。Flattened object"}]},"type":{"type":"reference","typeArguments":[{"type":"intrinsic","name":"string"},{"type":"intrinsic","name":"any"}],"name":"Record","qualifiedName":"Record","package":"typescript"},"text":{"comment":"

    扁平化的对象。Flattened object

    \n"}}],"type":{"type":"intrinsic","name":"any"},"is":{"declaration":false},"location":{"query":"JSON.Function.unflattenJSON","hash":"unflattenJSON"},"text":{"comment":"
    Function:

    unflattenJSON

    \n
    Description:

    将扁平化的对象还原为嵌套结构。Unflattens a flat object to nested structure

    \n
    Returns:

    嵌套的对象。Nested object

    \n
    Example:
    const flat = { 'user.name': 'John', 'user.address.city': 'NYC' };\nunflattenJSON(flat);\n// -> { user: { name: 'John', address: { city: 'NYC' } } }\n
    \n"},"sources":[{"fileName":"packages/utils/src/json.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/json.ts","line":69,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/json.ts#L69"}],"parentId":625}],"is":{"declaration":true},"location":{"query":"JSON.Function.unflattenJSON","hash":""},"text":{},"parentId":615} diff --git a/docs/v1.0.0-beta01/data/LifeCycle.Function.onBeforeUnload.json b/docs/v1.0.0-beta01/data/LifeCycle.Function.onBeforeUnload.json new file mode 100644 index 000000000..6f58d13b1 --- /dev/null +++ b/docs/v1.0.0-beta01/data/LifeCycle.Function.onBeforeUnload.json @@ -0,0 +1 @@ +{"id":1105,"name":"onBeforeUnload","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/web-utils/src/lifecycle.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/lifecycle.ts","line":56,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/lifecycle.ts#L56"}],"signatures":[{"id":1106,"name":"onBeforeUnload","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"onBeforeUnload"}]},{"tag":"@description","content":[{"kind":"text","text":"注册页面关闭前挽留事件(beforeunload)。Registers page before unload retention event (beforeunload)"}]},{"tag":"@returns","content":[{"kind":"text","text":"移除监听的函数。Function to remove the event listener"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\nonBeforeUnload((event) => {\n // 可以弹窗挽留,阻止页面关闭\n const message = 'You have unsaved changes.\\r\\nAre you sure you want to leave this page?';\n event.returnValue = message;\n return message;\n});\n```"}]}]},"parameters":[{"id":1107,"name":"fn","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"页面关闭前执行的回调,可用于弹窗挽留。Callback function executed before page closes, can be used for retention popups"}]},"type":{"type":"reflection","declaration":{"id":1108,"name":"__type","kind":65536,"kindString":"Type literal","flags":{},"sources":[{"fileName":"packages/web-utils/src/lifecycle.ts","line":56,"character":35,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/lifecycle.ts#L56"}],"signatures":[{"id":1109,"name":"__type","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":1110,"name":"event","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"BeforeUnloadEvent","qualifiedName":"BeforeUnloadEvent","package":"typescript"}}],"type":{"type":"intrinsic","name":"void"}}]}},"text":{"comment":"

    页面关闭前执行的回调,可用于弹窗挽留。Callback function executed before page closes, can be used for retention popups

    \n"}}],"type":{"type":"reflection","declaration":{"id":1111,"name":"onBeforeUnload","kind":65536,"kindString":"Type literal","flags":{},"sources":[{"fileName":"packages/web-utils/src/lifecycle.ts","line":56,"character":72,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/lifecycle.ts#L56"}],"signatures":[{"id":1112,"name":"onBeforeUnload","kind":4096,"kindString":"Call signature","flags":{},"type":{"type":"intrinsic","name":"void"},"is":{"declaration":false},"location":{"query":"LifeCycle.Function.onBeforeUnload","hash":"onBeforeUnload.__type"},"text":{},"parentId":1105}],"location":{"query":"LifeCycle.Function.onBeforeUnload","hash":"onBeforeUnload"}}},"is":{"declaration":false},"location":{"query":"LifeCycle.Function.onBeforeUnload","hash":"onBeforeUnload"},"text":{"comment":"
    Function:

    onBeforeUnload

    \n
    Description:

    注册页面关闭前挽留事件(beforeunload)。Registers page before unload retention event (beforeunload)

    \n
    Returns:

    移除监听的函数。Function to remove the event listener

    \n
    Example:
    onBeforeUnload((event) => {\n // 可以弹窗挽留,阻止页面关闭\n const message = 'You have unsaved changes.\\r\\nAre you sure you want to leave this page?';\n event.returnValue = message;\n return message;\n});\n
    \n"},"sources":[{"fileName":"packages/web-utils/src/lifecycle.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/lifecycle.ts","line":56,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/lifecycle.ts#L56"}],"parentId":1105}],"is":{"declaration":true},"location":{"query":"LifeCycle.Function.onBeforeUnload","hash":""},"text":{},"parentId":1090} diff --git a/docs/v1.0.0-beta01/data/LifeCycle.Function.onPageLoad.json b/docs/v1.0.0-beta01/data/LifeCycle.Function.onPageLoad.json new file mode 100644 index 000000000..7844a5efe --- /dev/null +++ b/docs/v1.0.0-beta01/data/LifeCycle.Function.onPageLoad.json @@ -0,0 +1 @@ +{"id":1091,"name":"onPageLoad","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/web-utils/src/lifecycle.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/lifecycle.ts","line":18,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/lifecycle.ts#L18"}],"signatures":[{"id":1092,"name":"onPageLoad","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"onPageLoad"}]},{"tag":"@description","content":[{"kind":"text","text":"注册页面加载完成事件(DOMContentLoaded)。Registers page load completion event (DOMContentLoaded)"}]},{"tag":"@returns","content":[{"kind":"text","text":"移除监听的函数。Function to remove the event listener"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\nonPageLoad(() => {\n console.log('Page loaded');\n});\n```"}]}]},"parameters":[{"id":1093,"name":"fn","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"页面加载完成时执行的回调。Callback function to execute when page loading is complete"}]},"type":{"type":"reflection","declaration":{"id":1094,"name":"__type","kind":65536,"kindString":"Type literal","flags":{},"sources":[{"fileName":"packages/web-utils/src/lifecycle.ts","line":18,"character":31,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/lifecycle.ts#L18"}],"signatures":[{"id":1095,"name":"__type","kind":4096,"kindString":"Call signature","flags":{},"type":{"type":"intrinsic","name":"void"}}]}},"text":{"comment":"

    页面加载完成时执行的回调。Callback function to execute when page loading is complete

    \n"}}],"type":{"type":"reflection","declaration":{"id":1096,"name":"onPageLoad","kind":65536,"kindString":"Type literal","flags":{},"sources":[{"fileName":"packages/web-utils/src/lifecycle.ts","line":18,"character":44,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/lifecycle.ts#L18"}],"signatures":[{"id":1097,"name":"onPageLoad","kind":4096,"kindString":"Call signature","flags":{},"type":{"type":"intrinsic","name":"void"},"is":{"declaration":false},"location":{"query":"LifeCycle.Function.onPageLoad","hash":"onPageLoad.__type"},"text":{},"parentId":1091}],"location":{"query":"LifeCycle.Function.onPageLoad","hash":"onPageLoad"}}},"is":{"declaration":false},"location":{"query":"LifeCycle.Function.onPageLoad","hash":"onPageLoad"},"text":{"comment":"
    Function:

    onPageLoad

    \n
    Description:

    注册页面加载完成事件(DOMContentLoaded)。Registers page load completion event (DOMContentLoaded)

    \n
    Returns:

    移除监听的函数。Function to remove the event listener

    \n
    Example:
    onPageLoad(() => {\n console.log('Page loaded');\n});\n
    \n"},"sources":[{"fileName":"packages/web-utils/src/lifecycle.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/lifecycle.ts","line":18,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/lifecycle.ts#L18"}],"parentId":1091}],"is":{"declaration":true},"location":{"query":"LifeCycle.Function.onPageLoad","hash":""},"text":{},"parentId":1090} diff --git a/docs/v1.0.0-beta01/data/LifeCycle.Function.onPageUnload.json b/docs/v1.0.0-beta01/data/LifeCycle.Function.onPageUnload.json new file mode 100644 index 000000000..41fbb40e6 --- /dev/null +++ b/docs/v1.0.0-beta01/data/LifeCycle.Function.onPageUnload.json @@ -0,0 +1 @@ +{"id":1098,"name":"onPageUnload","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/web-utils/src/lifecycle.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/lifecycle.ts","line":38,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/lifecycle.ts#L38"}],"signatures":[{"id":1099,"name":"onPageUnload","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"onPageUnload"}]},{"tag":"@description","content":[{"kind":"text","text":"注册页面卸载事件(unload)。Registers page unload event (unload)"}]},{"tag":"@returns","content":[{"kind":"text","text":"移除监听的函数。Function to remove the event listener"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\nonPageUnload(() => {\n console.log('Page unloaded');\n});\n```"}]}]},"parameters":[{"id":1100,"name":"fn","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"页面卸载时执行的回调。Callback function to execute when page is unloaded"}]},"type":{"type":"reflection","declaration":{"id":1101,"name":"__type","kind":65536,"kindString":"Type literal","flags":{},"sources":[{"fileName":"packages/web-utils/src/lifecycle.ts","line":38,"character":33,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/lifecycle.ts#L38"}],"signatures":[{"id":1102,"name":"__type","kind":4096,"kindString":"Call signature","flags":{},"type":{"type":"intrinsic","name":"void"}}]}},"text":{"comment":"

    页面卸载时执行的回调。Callback function to execute when page is unloaded

    \n"}}],"type":{"type":"reflection","declaration":{"id":1103,"name":"onPageUnload","kind":65536,"kindString":"Type literal","flags":{},"sources":[{"fileName":"packages/web-utils/src/lifecycle.ts","line":38,"character":46,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/lifecycle.ts#L38"}],"signatures":[{"id":1104,"name":"onPageUnload","kind":4096,"kindString":"Call signature","flags":{},"type":{"type":"intrinsic","name":"void"},"is":{"declaration":false},"location":{"query":"LifeCycle.Function.onPageUnload","hash":"onPageUnload.__type"},"text":{},"parentId":1098}],"location":{"query":"LifeCycle.Function.onPageUnload","hash":"onPageUnload"}}},"is":{"declaration":false},"location":{"query":"LifeCycle.Function.onPageUnload","hash":"onPageUnload"},"text":{"comment":"
    Function:

    onPageUnload

    \n
    Description:

    注册页面卸载事件(unload)。Registers page unload event (unload)

    \n
    Returns:

    移除监听的函数。Function to remove the event listener

    \n
    Example:
    onPageUnload(() => {\n console.log('Page unloaded');\n});\n
    \n"},"sources":[{"fileName":"packages/web-utils/src/lifecycle.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/lifecycle.ts","line":38,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/lifecycle.ts#L38"}],"parentId":1098}],"is":{"declaration":true},"location":{"query":"LifeCycle.Function.onPageUnload","hash":""},"text":{},"parentId":1090} diff --git a/docs/v1.0.0-beta01/data/Math.Function.factorial.json b/docs/v1.0.0-beta01/data/Math.Function.factorial.json new file mode 100644 index 000000000..4c491773e --- /dev/null +++ b/docs/v1.0.0-beta01/data/Math.Function.factorial.json @@ -0,0 +1 @@ +{"id":643,"name":"factorial","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/utils/src/math.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/math.ts","line":37,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/math.ts#L37"}],"signatures":[{"id":644,"name":"factorial","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"factorial"}]},{"tag":"@description","content":[{"kind":"text","text":"使用递归计算非负整数的阶乘。Calculates the factorial of a non-negative integer using recursion"}]},{"tag":"@returns","content":[{"kind":"text","text":"n的阶乘(n! = n × (n-1) × ... × 1)。对于n = 0或n = 1返回1。The factorial of n (n! = n × (n-1) × ... × 1). Returns 1 for n = 0 or n = 1"}]},{"tag":"@throws","content":[{"kind":"text","text":"当n为负数时(负数不允许用于阶乘)。When n is negative (negative numbers are not allowed for factorial)"}]},{"tag":"@throws","content":[{"kind":"text","text":"当n不是整数时。When n is not an integer"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Basic usage\nfactorial(5); // -> 120 (5 × 4 × 3 × 2 × 1)\nfactorial(3); // -> 6 (3 × 2 × 1)\nfactorial(1); // -> 1\nfactorial(0); // -> 1 (by mathematical definition)\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Mathematical applications\n// Permutations: n! / (n-r)!\nconst permutations = factorial(5) / factorial(5 - 3); // -> 60 (P(5,3))\n\n// Combinations: n! / (r! × (n-r)!)\nconst combinations = factorial(5) / (factorial(3) * factorial(5 - 3)); // -> 10 (C(5,3))\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Edge cases and errors\nfactorial(-1); // -> throws TypeError: \"Negative numbers are not allowed!\"\nfactorial(2.5); // -> works but not mathematically meaningful for non-integers\n```"}]},{"tag":"@see","content":[{"kind":"inline-tag","tag":"@link","text":"https://en.wikipedia.org/wiki/Factorial","target":"https://en.wikipedia.org/wiki/Factorial"},{"kind":"text","text":" - Mathematical definition of factorial"}]}]},"parameters":[{"id":645,"name":"n","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"要计算阶乘的非负整数。Non-negative integer to calculate factorial for"}]},"type":{"type":"intrinsic","name":"number"},"text":{"comment":"

    要计算阶乘的非负整数。Non-negative integer to calculate factorial for

    \n"}}],"type":{"type":"intrinsic","name":"number"},"is":{"declaration":false},"location":{"query":"Math.Function.factorial","hash":"factorial"},"text":{"comment":"
    Function:

    factorial

    \n
    Description:

    使用递归计算非负整数的阶乘。Calculates the factorial of a non-negative integer using recursion

    \n
    Returns:

    n的阶乘(n! = n × (n-1) × ... × 1)。对于n = 0或n = 1返回1。The factorial of n (n! = n × (n-1) × ... × 1). Returns 1 for n = 0 or n = 1

    \n
    Throws:

    当n为负数时(负数不允许用于阶乘)。When n is negative (negative numbers are not allowed for factorial)

    \n
    Throws:

    当n不是整数时。When n is not an integer

    \n
    Example:
    // Basic usage\nfactorial(5); // -> 120 (5 × 4 × 3 × 2 × 1)\nfactorial(3); // -> 6 (3 × 2 × 1)\nfactorial(1); // -> 1\nfactorial(0); // -> 1 (by mathematical definition)\n
    \n
    Example:
    // Mathematical applications\n// Permutations: n! / (n-r)!\nconst permutations = factorial(5) / factorial(5 - 3); // -> 60 (P(5,3))\n\n// Combinations: n! / (r! × (n-r)!)\nconst combinations = factorial(5) / (factorial(3) * factorial(5 - 3)); // -> 10 (C(5,3))\n
    \n
    Example:
    // Edge cases and errors\nfactorial(-1); // -> throws TypeError: \"Negative numbers are not allowed!\"\nfactorial(2.5); // -> works but not mathematically meaningful for non-integers\n
    \n
    See:

    https://en.wikipedia.org/wiki/Factorial - Mathematical definition of factorial

    \n"},"sources":[{"fileName":"packages/utils/src/math.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/math.ts","line":37,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/math.ts#L37"}],"parentId":643}],"is":{"declaration":true},"location":{"query":"Math.Function.factorial","hash":""},"text":{},"parentId":642} diff --git a/docs/v1.0.0-beta01/data/Math.Function.gcd.json b/docs/v1.0.0-beta01/data/Math.Function.gcd.json new file mode 100644 index 000000000..67059383c --- /dev/null +++ b/docs/v1.0.0-beta01/data/Math.Function.gcd.json @@ -0,0 +1 @@ +{"id":646,"name":"gcd","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/utils/src/math.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/math.ts","line":82,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/math.ts#L82"}],"signatures":[{"id":647,"name":"gcd","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"gcd"}]},{"tag":"@description","content":[{"kind":"text","text":"使用欧几里得算法计算两个整数的最大公约数(GCD)。Calculates the Greatest Common Divisor (GCD) of two integers using Euclidean algorithm"}]},{"tag":"@returns","content":[{"kind":"text","text":"能同时整除x和y的最大正整数。当y为0时返回|x|。The largest positive integer that divides both x and y. Returns |x| when y is 0"}]},{"tag":"@throws","content":[{"kind":"text","text":"当x或y不是数字时。When x or y is not a number"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Basic usage\ngcd(12, 18); // -> 6 (largest number that divides both 12 and 18)\ngcd(48, 18); // -> 6\ngcd(17, 13); // -> 1 (coprime numbers)\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Edge cases\ngcd(12, 0); // -> 12 (GCD of any number and 0 is the number itself)\ngcd(0, 18); // -> 18\ngcd(0, 0); // -> 0\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Negative numbers\ngcd(-12, 18); // -> 6 (GCD is always positive)\ngcd(12, -18); // -> 6\ngcd(-12, -18); // -> 6\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Mathematical applications\n// Simplifying fractions: reduce 12/18 to lowest terms\nconst numerator = 12, denominator = 18;\nconst divisor = gcd(numerator, denominator); // -> 6\nconst simplified = [numerator / divisor, denominator / divisor]; // -> [2, 3]\n```"}]},{"tag":"@see","content":[{"kind":"inline-tag","tag":"@link","text":"https://en.wikipedia.org/wiki/Euclidean_algorithm","target":"https://en.wikipedia.org/wiki/Euclidean_algorithm"},{"kind":"text","text":" - Euclidean algorithm explanation"}]}]},"parameters":[{"id":648,"name":"x","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"第一个整数。First integer"}]},"type":{"type":"intrinsic","name":"number"},"text":{"comment":"

    第一个整数。First integer

    \n"}},{"id":649,"name":"y","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"第二个整数。Second integer"}]},"type":{"type":"intrinsic","name":"number"},"text":{"comment":"

    第二个整数。Second integer

    \n"}}],"type":{"type":"intrinsic","name":"number"},"is":{"declaration":false},"location":{"query":"Math.Function.gcd","hash":"gcd"},"text":{"comment":"
    Function:

    gcd

    \n
    Description:

    使用欧几里得算法计算两个整数的最大公约数(GCD)。Calculates the Greatest Common Divisor (GCD) of two integers using Euclidean algorithm

    \n
    Returns:

    能同时整除x和y的最大正整数。当y为0时返回|x|。The largest positive integer that divides both x and y. Returns |x| when y is 0

    \n
    Throws:

    当x或y不是数字时。When x or y is not a number

    \n
    Example:
    // Basic usage\ngcd(12, 18); // -> 6 (largest number that divides both 12 and 18)\ngcd(48, 18); // -> 6\ngcd(17, 13); // -> 1 (coprime numbers)\n
    \n
    Example:
    // Edge cases\ngcd(12, 0); // -> 12 (GCD of any number and 0 is the number itself)\ngcd(0, 18); // -> 18\ngcd(0, 0); // -> 0\n
    \n
    Example:
    // Negative numbers\ngcd(-12, 18); // -> 6 (GCD is always positive)\ngcd(12, -18); // -> 6\ngcd(-12, -18); // -> 6\n
    \n
    Example:
    // Mathematical applications\n// Simplifying fractions: reduce 12/18 to lowest terms\nconst numerator = 12, denominator = 18;\nconst divisor = gcd(numerator, denominator); // -> 6\nconst simplified = [numerator / divisor, denominator / divisor]; // -> [2, 3]\n
    \n
    See:

    https://en.wikipedia.org/wiki/Euclidean_algorithm - Euclidean algorithm explanation

    \n"},"sources":[{"fileName":"packages/utils/src/math.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/math.ts","line":82,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/math.ts#L82"}],"parentId":646}],"is":{"declaration":true},"location":{"query":"Math.Function.gcd","hash":""},"text":{},"parentId":642} diff --git a/docs/v1.0.0-beta01/data/Math.Function.isDivisible.json b/docs/v1.0.0-beta01/data/Math.Function.isDivisible.json new file mode 100644 index 000000000..4281fe8ef --- /dev/null +++ b/docs/v1.0.0-beta01/data/Math.Function.isDivisible.json @@ -0,0 +1 @@ +{"id":650,"name":"isDivisible","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/utils/src/math.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/math.ts","line":122,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/math.ts#L122"}],"signatures":[{"id":651,"name":"isDivisible","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"isDivisible"}]},{"tag":"@description","content":[{"kind":"text","text":"检查一个数字是否能被另一个数字整除(余数为零)。Checks if one number is evenly divisible by another (remainder is zero)"}]},{"tag":"@returns","content":[{"kind":"text","text":"如果dividend能被divisor整除则返回true,否则返回false。True if dividend is evenly divisible by divisor, false otherwise"}]},{"tag":"@throws","content":[{"kind":"text","text":"当dividend或divisor不是数字时。When dividend or divisor is not a number"}]},{"tag":"@throws","content":[{"kind":"text","text":"当divisor为零时(除零错误)。When divisor is zero (division by zero)"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Basic usage\nisDivisible(12, 3); // -> true (12 ÷ 3 = 4 with remainder 0)\nisDivisible(12, 5); // -> false (12 ÷ 5 = 2 with remainder 2)\nisDivisible(15, 3); // -> true (15 ÷ 3 = 5 with remainder 0)\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Testing for even/odd numbers\nisDivisible(8, 2); // -> true (8 is even)\nisDivisible(7, 2); // -> false (7 is odd)\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Testing multiples\nisDivisible(100, 10); // -> true (100 is a multiple of 10)\nisDivisible(101, 10); // -> false (101 is not a multiple of 10)\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Edge cases\nisDivisible(0, 5); // -> true (0 is divisible by any non-zero number)\nisDivisible(5, 1); // -> true (any number is divisible by 1)\nisDivisible(5, 0); // -> throws Error (division by zero)\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Negative numbers\nisDivisible(-12, 3); // -> true (-12 ÷ 3 = -4 with remainder 0)\nisDivisible(12, -3); // -> true (12 ÷ -3 = -4 with remainder 0)\nisDivisible(-12, -3); // -> true (-12 ÷ -3 = 4 with remainder 0)\n```"}]}]},"parameters":[{"id":652,"name":"dividend","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"被除数。The number to be divided"}]},"type":{"type":"intrinsic","name":"number"},"text":{"comment":"

    被除数。The number to be divided

    \n"}},{"id":653,"name":"divisor","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"除数。The number to divide by"}]},"type":{"type":"intrinsic","name":"number"},"text":{"comment":"

    除数。The number to divide by

    \n"}}],"type":{"type":"intrinsic","name":"boolean"},"is":{"declaration":false},"location":{"query":"Math.Function.isDivisible","hash":"isDivisible"},"text":{"comment":"
    Function:

    isDivisible

    \n
    Description:

    检查一个数字是否能被另一个数字整除(余数为零)。Checks if one number is evenly divisible by another (remainder is zero)

    \n
    Returns:

    如果dividend能被divisor整除则返回true,否则返回false。True if dividend is evenly divisible by divisor, false otherwise

    \n
    Throws:

    当dividend或divisor不是数字时。When dividend or divisor is not a number

    \n
    Throws:

    当divisor为零时(除零错误)。When divisor is zero (division by zero)

    \n
    Example:
    // Basic usage\nisDivisible(12, 3); // -> true (12 ÷ 3 = 4 with remainder 0)\nisDivisible(12, 5); // -> false (12 ÷ 5 = 2 with remainder 2)\nisDivisible(15, 3); // -> true (15 ÷ 3 = 5 with remainder 0)\n
    \n
    Example:
    // Testing for even/odd numbers\nisDivisible(8, 2); // -> true (8 is even)\nisDivisible(7, 2); // -> false (7 is odd)\n
    \n
    Example:
    // Testing multiples\nisDivisible(100, 10); // -> true (100 is a multiple of 10)\nisDivisible(101, 10); // -> false (101 is not a multiple of 10)\n
    \n
    Example:
    // Edge cases\nisDivisible(0, 5); // -> true (0 is divisible by any non-zero number)\nisDivisible(5, 1); // -> true (any number is divisible by 1)\nisDivisible(5, 0); // -> throws Error (division by zero)\n
    \n
    Example:
    // Negative numbers\nisDivisible(-12, 3); // -> true (-12 ÷ 3 = -4 with remainder 0)\nisDivisible(12, -3); // -> true (12 ÷ -3 = -4 with remainder 0)\nisDivisible(-12, -3); // -> true (-12 ÷ -3 = 4 with remainder 0)\n
    \n"},"sources":[{"fileName":"packages/utils/src/math.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/math.ts","line":122,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/math.ts#L122"}],"parentId":650}],"is":{"declaration":true},"location":{"query":"Math.Function.isDivisible","hash":""},"text":{},"parentId":642} diff --git a/docs/v1.0.0-beta01/data/Math.Function.lcm.json b/docs/v1.0.0-beta01/data/Math.Function.lcm.json new file mode 100644 index 000000000..ba1ad1889 --- /dev/null +++ b/docs/v1.0.0-beta01/data/Math.Function.lcm.json @@ -0,0 +1 @@ +{"id":654,"name":"lcm","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/utils/src/math.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/math.ts","line":164,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/math.ts#L164"}],"signatures":[{"id":655,"name":"lcm","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"lcm"}]},{"tag":"@description","content":[{"kind":"text","text":"计算两个整数的最小公倍数(LCM)。Calculates the Least Common Multiple (LCM) of two integers"}]},{"tag":"@returns","content":[{"kind":"text","text":"能被x和y同时整除的最小正整数。如果x或y为0则返回0。The smallest positive integer that is divisible by both x and y. Returns 0 if either x or y is 0"}]},{"tag":"@throws","content":[{"kind":"text","text":"当x或y不是数字时。When x or y is not a number"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Basic usage\nlcm(12, 18); // -> 36 (smallest number divisible by both 12 and 18)\nlcm(4, 6); // -> 12\nlcm(7, 5); // -> 35 (coprime numbers: LCM = x × y)\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Edge cases\nlcm(12, 0); // -> 0 (LCM with 0 is always 0)\nlcm(0, 18); // -> 0\nlcm(5, 1); // -> 5 (LCM with 1 is the number itself)\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Identical numbers\nlcm(8, 8); // -> 8 (LCM of identical numbers is the number itself)\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Mathematical relationship: LCM(x,y) × GCD(x,y) = |x × y|\nconst x = 12, y = 18;\nconst lcmResult = lcm(x, y); // -> 36\nconst gcdResult = gcd(x, y); // -> 6\nconsole.log(lcmResult * gcdResult === Math.abs(x * y)); // -> true (36 × 6 = 216 = |12 × 18|)\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Practical application: finding common denominators\n// To add fractions 1/12 + 1/18, find LCM of denominators\nconst commonDenominator = lcm(12, 18); // -> 36\n// Convert: 1/12 = 3/36, 1/18 = 2/36, sum = 5/36\n```"}]},{"tag":"@see","content":[{"kind":"inline-tag","tag":"@link","text":"gcd","target":646},{"kind":"text","text":" - Used internally to calculate LCM using the formula: LCM(x,y) = |x×y| / GCD(x,y)"}]}]},"parameters":[{"id":656,"name":"x","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"第一个整数。First integer"}]},"type":{"type":"intrinsic","name":"number"},"text":{"comment":"

    第一个整数。First integer

    \n"}},{"id":657,"name":"y","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"第二个整数。Second integer"}]},"type":{"type":"intrinsic","name":"number"},"text":{"comment":"

    第二个整数。Second integer

    \n"}}],"type":{"type":"intrinsic","name":"number"},"is":{"declaration":false},"location":{"query":"Math.Function.lcm","hash":"lcm"},"text":{"comment":"
    Function:

    lcm

    \n
    Description:

    计算两个整数的最小公倍数(LCM)。Calculates the Least Common Multiple (LCM) of two integers

    \n
    Returns:

    能被x和y同时整除的最小正整数。如果x或y为0则返回0。The smallest positive integer that is divisible by both x and y. Returns 0 if either x or y is 0

    \n
    Throws:

    当x或y不是数字时。When x or y is not a number

    \n
    Example:
    // Basic usage\nlcm(12, 18); // -> 36 (smallest number divisible by both 12 and 18)\nlcm(4, 6); // -> 12\nlcm(7, 5); // -> 35 (coprime numbers: LCM = x × y)\n
    \n
    Example:
    // Edge cases\nlcm(12, 0); // -> 0 (LCM with 0 is always 0)\nlcm(0, 18); // -> 0\nlcm(5, 1); // -> 5 (LCM with 1 is the number itself)\n
    \n
    Example:
    // Identical numbers\nlcm(8, 8); // -> 8 (LCM of identical numbers is the number itself)\n
    \n
    Example:
    // Mathematical relationship: LCM(x,y) × GCD(x,y) = |x × y|\nconst x = 12, y = 18;\nconst lcmResult = lcm(x, y); // -> 36\nconst gcdResult = gcd(x, y); // -> 6\nconsole.log(lcmResult * gcdResult === Math.abs(x * y)); // -> true (36 × 6 = 216 = |12 × 18|)\n
    \n
    Example:
    // Practical application: finding common denominators\n// To add fractions 1/12 + 1/18, find LCM of denominators\nconst commonDenominator = lcm(12, 18); // -> 36\n// Convert: 1/12 = 3/36, 1/18 = 2/36, sum = 5/36\n
    \n
    See:

    gcd - Used internally to calculate LCM using the formula: LCM(x,y) = |x×y| / GCD(x,y)

    \n"},"sources":[{"fileName":"packages/utils/src/math.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/math.ts","line":164,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/math.ts#L164"}],"parentId":654}],"is":{"declaration":true},"location":{"query":"Math.Function.lcm","hash":""},"text":{},"parentId":642} diff --git a/docs/v1.0.0-beta01/data/Module.AIUtils.json b/docs/v1.0.0-beta01/data/Module.AIUtils.json new file mode 100644 index 000000000..e14464687 --- /dev/null +++ b/docs/v1.0.0-beta01/data/Module.AIUtils.json @@ -0,0 +1 @@ +{"id":1452,"name":"AIUtils","kind":2,"kindString":"Module","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@fileoverview","content":[{"kind":"text","text":"Comprehensive AI utilities package providing language model interactions, prompt generation, and machine learning tools.\n\nThis package provides a complete suite of AI utilities for modern applications.\nIt includes prompt generation, template processing, vector operations, Python integration,\nand various AI-powered applications like code review, translation, and content generation."}]},{"tag":"@author","content":[{"kind":"text","text":"Wayne"}]},{"tag":"@since","content":[{"kind":"text","text":"1.0.0"}]}]},"originalName":"ai-utils/src","children":[{"id":2196,"name":"enhancePrompt","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/ai-utils/src/applications/enhancePrompt.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/ai-utils/src/applications/enhancePrompt.ts","line":62,"character":29,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/ai-utils/src/applications/enhancePrompt.ts#L62"}],"target":2193,"is":{"declaration":true},"location":{"query":"Module.AIUtils","hash":"enhancePrompt"},"text":{},"parentId":1452},{"id":2200,"name":"getCreateReactComponentPrompt","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/ai-utils/src/applications/createReactComponent.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/ai-utils/src/applications/createReactComponent.ts","line":82,"character":42,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/ai-utils/src/applications/createReactComponent.ts#L82"}],"target":2197,"is":{"declaration":true},"location":{"query":"Module.AIUtils","hash":"getCreateReactComponentPrompt"},"text":{},"parentId":1452},{"id":2189,"name":"getSqlPrompt","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/ai-utils/src/applications/createSQL.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/ai-utils/src/applications/createSQL.ts","line":66,"character":25,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/ai-utils/src/applications/createSQL.ts#L66"}],"target":2186,"is":{"declaration":true},"location":{"query":"Module.AIUtils","hash":"getSqlPrompt"},"text":{},"parentId":1452}],"groups":[{"title":"References","children":[2196,2200,2189]},{"title":"Interfaces","children":[2219,2201,2207]},{"title":"Functions","children":[2232,2221,2214,2183,2197,2193,2186,2204,2211,2190,2217]}],"sources":[{"fileName":"packages/ai-utils/src/index.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/ai-utils/src/index.ts","line":13,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/ai-utils/src/index.ts#L13"}],"is":{"declaration":true},"location":{"query":"Module.AIUtils","hash":""},"text":{"comment":"
    Fileoverview:

    Comprehensive AI utilities package providing language model interactions, prompt generation, and machine learning tools.

    \n

    This package provides a complete suite of AI utilities for modern applications.\nIt includes prompt generation, template processing, vector operations, Python integration,\nand various AI-powered applications like code review, translation, and content generation.

    \n
    Author:

    Wayne

    \n
    Since:

    1.0.0

    \n"}} diff --git a/docs/v1.0.0-beta01/data/Module.Array.json b/docs/v1.0.0-beta01/data/Module.Array.json new file mode 100644 index 000000000..ece6f7556 --- /dev/null +++ b/docs/v1.0.0-beta01/data/Module.Array.json @@ -0,0 +1 @@ +{"id":154,"name":"Array","kind":2,"kindString":"Module","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@description","content":[{"kind":"text","text":"Comprehensive array utility functions for common operations"}]},{"tag":"@Date","content":[{"kind":"text","text":"2020-04-11 21:55:46"}]},{"tag":"@LastEditTime","content":[{"kind":"text","text":"2026-01-11 10:39:57"}]}]},"originalName":"utils/src/array","children":[],"groups":[{"title":"Type Aliases","children":[300,299]},{"title":"Functions","children":[301,161,155,158,164,170,174,178,183,187,192,199,203,290,211,216,268,293,275,195,304,224,278,228,232,240,296,249,282,258,261,265,167,272]}],"sources":[{"fileName":"packages/utils/src/array.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/array.ts","line":8,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/array.ts#L8"}],"is":{"declaration":true},"location":{"query":"Module.Array","hash":""},"text":{"comment":"
    Description:

    Comprehensive array utility functions for common operations

    \n
    Date:

    2020-04-11 21:55:46

    \n
    Lastedittime:

    2026-01-11 10:39:57

    \n"}} diff --git a/docs/v1.0.0-beta01/data/Module.Await-to.json b/docs/v1.0.0-beta01/data/Module.Await-to.json new file mode 100644 index 000000000..22c40f906 --- /dev/null +++ b/docs/v1.0.0-beta01/data/Module.Await-to.json @@ -0,0 +1 @@ +{"id":307,"name":"Await-to","kind":2,"kindString":"Module","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@fileoverview","content":[{"kind":"text","text":"Utility functions for async/await and Promise operations, including error handling utilities.\n\nThis module provides utility functions for working with async/await and Promise operations.\nIt includes functions for separating Promise errors and data, making async code more readable\nand easier to handle."}]},{"tag":"@author","content":[{"kind":"text","text":"Wayne"}]},{"tag":"@notice","content":[{"kind":"text","text":"来自"},{"kind":"code","text":"`await-to-js`"},{"kind":"text","text":"。Based on "},{"kind":"code","text":"`await-to-js`"}]},{"tag":"@since","content":[{"kind":"text","text":"1.0.0"}]}]},"originalName":"utils/src/await-to","children":[{"id":314,"name":"default","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/utils/src/await-to.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/await-to.ts","line":43,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/await-to.ts#L43"}],"target":308,"is":{"declaration":true},"location":{"query":"Module.Await-to","hash":"default"},"text":{},"parentId":307}],"groups":[{"title":"References","children":[314]},{"title":"Functions","children":[308]}],"sources":[{"fileName":"packages/utils/src/await-to.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/await-to.ts","line":27,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/await-to.ts#L27"}],"is":{"declaration":true},"location":{"query":"Module.Await-to","hash":""},"text":{"comment":"
    Fileoverview:

    Utility functions for async/await and Promise operations, including error handling utilities.

    \n

    This module provides utility functions for working with async/await and Promise operations.\nIt includes functions for separating Promise errors and data, making async code more readable\nand easier to handle.

    \n
    Author:

    Wayne

    \n
    Notice:

    来自await-to-js。Based on await-to-js

    \n
    Since:

    1.0.0

    \n"}} diff --git a/docs/v1.0.0-beta01/data/Module.CSS.json b/docs/v1.0.0-beta01/data/Module.CSS.json new file mode 100644 index 000000000..29e7024dc --- /dev/null +++ b/docs/v1.0.0-beta01/data/Module.CSS.json @@ -0,0 +1 @@ +{"id":902,"name":"CSS","kind":2,"kindString":"Module","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@author","content":[{"kind":"text","text":"Wayne"}]},{"tag":"@Date","content":[{"kind":"text","text":"2020-04-11 21:55:46"}]},{"tag":"@LastEditTime","content":[{"kind":"text","text":"2024-08-25 10:14:19"}]}]},"originalName":"web-utils/src/css","children":[],"groups":[{"title":"Functions","children":[909,903,905]}],"sources":[{"fileName":"packages/web-utils/src/css.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/css.ts","line":8,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/css.ts#L8"}],"is":{"declaration":true},"location":{"query":"Module.CSS","hash":""},"text":{"comment":"
    Author:

    Wayne

    \n
    Date:

    2020-04-11 21:55:46

    \n
    Lastedittime:

    2024-08-25 10:14:19

    \n"}} diff --git a/docs/v1.0.0-beta01/data/Module.Check.json b/docs/v1.0.0-beta01/data/Module.Check.json new file mode 100644 index 000000000..d2aedb8c9 --- /dev/null +++ b/docs/v1.0.0-beta01/data/Module.Check.json @@ -0,0 +1 @@ +{"id":330,"name":"Check","kind":2,"kindString":"Module","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@description","content":[{"kind":"text","text":"check functions"}]},{"tag":"@notice","content":[{"kind":"text","text":"其他判断可见check.plus.ts,或工具中regex.json"}]},{"tag":"@Date","content":[{"kind":"text","text":"2020-04-11 21:55:46"}]},{"tag":"@LastEditTime","content":[{"kind":"text","text":"2024-08-25 13:23:11"}]}]},"originalName":"utils/src/check","children":[],"groups":[{"title":"Functions","children":[346,331,334,340,343,337]}],"sources":[{"fileName":"packages/utils/src/check.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/check.ts","line":22,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/check.ts#L22"}],"is":{"declaration":true},"location":{"query":"Module.Check","hash":""},"text":{"comment":"
    Description:

    check functions

    \n
    Notice:

    其他判断可见check.plus.ts,或工具中regex.json

    \n
    Date:

    2020-04-11 21:55:46

    \n
    Lastedittime:

    2024-08-25 13:23:11

    \n"}} diff --git a/docs/v1.0.0-beta01/data/Module.Collection.json b/docs/v1.0.0-beta01/data/Module.Collection.json new file mode 100644 index 000000000..1047e0dd4 --- /dev/null +++ b/docs/v1.0.0-beta01/data/Module.Collection.json @@ -0,0 +1 @@ +{"id":349,"name":"Collection","kind":2,"kindString":"Module","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@description","content":[{"kind":"text","text":"Advanced collection operations and utilities"}]},{"tag":"@author","content":[{"kind":"text","text":"Wayne"}]},{"tag":"@Date","content":[{"kind":"text","text":"2025-11-16"}]},{"tag":"@LastEditTime","content":[{"kind":"text","text":"2025-11-16 11:27:31"}]}]},"originalName":"utils/src/collection","children":[],"groups":[{"title":"Functions","children":[380,350,383,358,372,369,366]}],"sources":[{"fileName":"packages/utils/src/collection.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/collection.ts","line":35,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/collection.ts#L35"}],"is":{"declaration":true},"location":{"query":"Module.Collection","hash":""},"text":{"comment":"
    Description:

    Advanced collection operations and utilities

    \n
    Author:

    Wayne

    \n
    Date:

    2025-11-16

    \n
    Lastedittime:

    2025-11-16 11:27:31

    \n"}} diff --git a/docs/v1.0.0-beta01/data/Module.Color.json b/docs/v1.0.0-beta01/data/Module.Color.json new file mode 100644 index 000000000..fcccdb87f --- /dev/null +++ b/docs/v1.0.0-beta01/data/Module.Color.json @@ -0,0 +1 @@ +{"id":387,"name":"Color","kind":2,"kindString":"Module","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@description","content":[{"kind":"text","text":"handle color format"}]},{"tag":"@Date","content":[{"kind":"text","text":"2020-04-11 21:55:46"}]},{"tag":"@LastEditTime","content":[{"kind":"text","text":"2024-08-25 13:24:54"}]}]},"originalName":"utils/src/color","children":[],"groups":[{"title":"Functions","children":[390,393,397,388]}],"sources":[{"fileName":"packages/utils/src/color.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/color.ts","line":15,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/color.ts#L15"}],"is":{"declaration":true},"location":{"query":"Module.Color","hash":""},"text":{"comment":"
    Description:

    handle color format

    \n
    Date:

    2020-04-11 21:55:46

    \n
    Lastedittime:

    2024-08-25 13:24:54

    \n"}} diff --git a/docs/v1.0.0-beta01/data/Module.Cookie.json b/docs/v1.0.0-beta01/data/Module.Cookie.json new file mode 100644 index 000000000..116b95608 --- /dev/null +++ b/docs/v1.0.0-beta01/data/Module.Cookie.json @@ -0,0 +1 @@ +{"id":888,"name":"Cookie","kind":2,"kindString":"Module","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@note","content":[{"kind":"text","text":"目前不建议操作cookie,可见google Chrome《为停用第三方 Cookie 做好准备》:https://developers.google.com/privacy-sandbox/3pcd?hl=zh-cn"}]},{"tag":"@author","content":[{"kind":"text","text":"Wayne"}]},{"tag":"@Date","content":[{"kind":"text","text":"2020-04-11 21:53:56"}]},{"tag":"@LastEditTime","content":[{"kind":"text","text":"2024-08-25 10:00:55"}]}]},"originalName":"web-utils/src/cookies","children":[],"groups":[{"title":"Functions","children":[899,889,892]}],"sources":[{"fileName":"packages/web-utils/src/cookies.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/cookies.ts","line":46,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/cookies.ts#L46"}],"is":{"declaration":true},"location":{"query":"Module.Cookie","hash":""},"text":{"comment":"
    Note:

    目前不建议操作cookie,可见google Chrome《为停用第三方 Cookie 做好准备》:https://developers.google.com/privacy-sandbox/3pcd?hl=zh-cn

    \n
    Author:

    Wayne

    \n
    Date:

    2020-04-11 21:53:56

    \n
    Lastedittime:

    2024-08-25 10:00:55

    \n"}} diff --git a/docs/v1.0.0-beta01/data/Module.DOM.json b/docs/v1.0.0-beta01/data/Module.DOM.json new file mode 100644 index 000000000..48630c3a2 --- /dev/null +++ b/docs/v1.0.0-beta01/data/Module.DOM.json @@ -0,0 +1 @@ +{"id":913,"name":"DOM","kind":2,"kindString":"Module","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@Date","content":[{"kind":"text","text":"2020-04-11 21:55:46"}]},{"tag":"@LastEditTime","content":[{"kind":"text","text":"2025-09-07 21:24:32"}]}]},"originalName":"web-utils/src/dom","children":[],"groups":[{"title":"Functions","children":[920,971,978,936,951,954,962,960,916,940,928,932,914,943,924,982,946,968,975]}],"sources":[{"fileName":"packages/web-utils/src/dom.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/dom.ts","line":7,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/dom.ts#L7"}],"is":{"declaration":true},"location":{"query":"Module.DOM","hash":""},"text":{"comment":"
    Date:

    2020-04-11 21:55:46

    \n
    Lastedittime:

    2025-09-07 21:24:32

    \n"}} diff --git a/docs/v1.0.0-beta01/data/Module.Date.json b/docs/v1.0.0-beta01/data/Module.Date.json new file mode 100644 index 000000000..a8d34b933 --- /dev/null +++ b/docs/v1.0.0-beta01/data/Module.Date.json @@ -0,0 +1 @@ +{"id":400,"name":"Date","kind":2,"kindString":"Module","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@description","content":[{"kind":"text","text":"date functions."}]},{"tag":"@notice","content":[{"kind":"text","text":"存在复杂的日期处理场景建议直接使用date-fns"}]},{"tag":"@Date","content":[{"kind":"text","text":"2020-04-11 21:55:46"}]},{"tag":"@LastEditTime","content":[{"kind":"text","text":"2024-08-25 13:27:43"}]}]},"originalName":"utils/src/date","children":[],"groups":[{"title":"Functions","children":[401,419,404,407,423,411,415]}],"sources":[{"fileName":"packages/utils/src/date.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/date.ts","line":18,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/date.ts#L18"}],"is":{"declaration":true},"location":{"query":"Module.Date","hash":""},"text":{"comment":"
    Description:

    date functions.

    \n
    Notice:

    存在复杂的日期处理场景建议直接使用date-fns

    \n
    Date:

    2020-04-11 21:55:46

    \n
    Lastedittime:

    2024-08-25 13:27:43

    \n"}} diff --git a/docs/v1.0.0-beta01/data/Module.Easing.json b/docs/v1.0.0-beta01/data/Module.Easing.json new file mode 100644 index 000000000..245ea46b0 --- /dev/null +++ b/docs/v1.0.0-beta01/data/Module.Easing.json @@ -0,0 +1 @@ +{"id":1,"name":"Easing","kind":2,"kindString":"Module","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@fileoverview","content":[{"kind":"text","text":"Animation easing functions for smooth transitions and animations.\n\nThis module provides a collection of easing functions commonly used in animations\nto create natural-looking motion. Each easing function maps a time value between\n0 and 1 to an interpolated value, controlling the acceleration and deceleration\nof animated properties."}]},{"tag":"@description","content":[{"kind":"text","text":"动画缓动函数。Animation easing functions"}]},{"tag":"@author","content":[{"kind":"text","text":"Wayne"}]},{"tag":"@since","content":[{"kind":"text","text":"1.0.0"}]}]},"originalName":"utils/src/Easing","children":[],"groups":[{"title":"Type Aliases","children":[2]},{"title":"Variables","children":[6]}],"sources":[{"fileName":"packages/utils/src/Easing.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/Easing.ts","line":21,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/Easing.ts#L21"}],"is":{"declaration":true},"location":{"query":"Module.Easing","hash":""},"text":{"comment":"
    Fileoverview:

    Animation easing functions for smooth transitions and animations.

    \n

    This module provides a collection of easing functions commonly used in animations\nto create natural-looking motion. Each easing function maps a time value between\n0 and 1 to an interpolated value, controlling the acceleration and deceleration\nof animated properties.

    \n
    Description:

    动画缓动函数。Animation easing functions

    \n
    Author:

    Wayne

    \n
    Since:

    1.0.0

    \n"}} diff --git a/docs/v1.0.0-beta01/data/Module.Form.json b/docs/v1.0.0-beta01/data/Module.Form.json new file mode 100644 index 000000000..070e515f4 --- /dev/null +++ b/docs/v1.0.0-beta01/data/Module.Form.json @@ -0,0 +1 @@ +{"id":1008,"name":"Form","kind":2,"kindString":"Module","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@description","content":[{"kind":"text","text":"Form handling and validation utilities"}]},{"tag":"@author","content":[{"kind":"text","text":"Wayne"}]},{"tag":"@Date","content":[{"kind":"text","text":"2025-11-16"}]},{"tag":"@LastEditTime","content":[{"kind":"text","text":"2025-11-18 11:27:33"}]}]},"originalName":"web-utils/src/form","children":[],"groups":[{"title":"Functions","children":[1020,1027,1031,1009,1013]}],"sources":[{"fileName":"packages/web-utils/src/form.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/form.ts","line":20,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/form.ts#L20"}],"is":{"declaration":true},"location":{"query":"Module.Form","hash":""},"text":{"comment":"
    Description:

    Form handling and validation utilities

    \n
    Author:

    Wayne

    \n
    Date:

    2025-11-16

    \n
    Lastedittime:

    2025-11-18 11:27:33

    \n"}} diff --git a/docs/v1.0.0-beta01/data/Module.Formatter.json b/docs/v1.0.0-beta01/data/Module.Formatter.json new file mode 100644 index 000000000..52a6d1074 --- /dev/null +++ b/docs/v1.0.0-beta01/data/Module.Formatter.json @@ -0,0 +1 @@ +{"id":432,"name":"Formatter","kind":2,"kindString":"Module","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@description","content":[{"kind":"text","text":"Data formatting utilities for common use cases"}]},{"tag":"@author","content":[{"kind":"text","text":"Wayne"}]},{"tag":"@Date","content":[{"kind":"text","text":"2025-01-18"}]},{"tag":"@LastEditTime","content":[{"kind":"text","text":"2025-11-18 11:27:30"}]}]},"originalName":"utils/src/formatter","children":[],"groups":[{"title":"Functions","children":[445,437,433,440,462,457,453,450]}],"sources":[{"fileName":"packages/utils/src/formatter.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/formatter.ts","line":21,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/formatter.ts#L21"}],"is":{"declaration":true},"location":{"query":"Module.Formatter","hash":""},"text":{"comment":"
    Description:

    Data formatting utilities for common use cases

    \n
    Author:

    Wayne

    \n
    Date:

    2025-01-18

    \n
    Lastedittime:

    2025-11-18 11:27:30

    \n"}} diff --git a/docs/v1.0.0-beta01/data/Module.Function.json b/docs/v1.0.0-beta01/data/Module.Function.json new file mode 100644 index 000000000..a078e87e4 --- /dev/null +++ b/docs/v1.0.0-beta01/data/Module.Function.json @@ -0,0 +1 @@ +{"id":465,"name":"Function","kind":2,"kindString":"Module","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@description","content":[{"kind":"text","text":"Function utility functions for composition, execution control, and performance"}]},{"tag":"@author","content":[{"kind":"text","text":"Wayne"}]},{"tag":"@createTime","content":[{"kind":"text","text":"2022-03-12 14:44:00"}]},{"tag":"@LastEditTime","content":[{"kind":"text","text":"2025-09-07 20:34:55"}]}]},"originalName":"utils/src/function","children":[],"groups":[{"title":"Functions","children":[584,466,514,520,586,576,475,540,495,505,530,547,482,562,565,488]}],"sources":[{"fileName":"packages/utils/src/function.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/function.ts","line":29,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/function.ts#L29"}],"is":{"declaration":true},"location":{"query":"Module.Function","hash":""},"text":{"comment":"
    Description:

    Function utility functions for composition, execution control, and performance

    \n
    Author:

    Wayne

    \n
    Createtime:

    2022-03-12 14:44:00

    \n
    Lastedittime:

    2025-09-07 20:34:55

    \n"}} diff --git a/docs/v1.0.0-beta01/data/Module.I18n.json b/docs/v1.0.0-beta01/data/Module.I18n.json new file mode 100644 index 000000000..bc60a623d --- /dev/null +++ b/docs/v1.0.0-beta01/data/Module.I18n.json @@ -0,0 +1 @@ +{"id":1034,"name":"I18n","kind":2,"kindString":"Module","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@description","content":[{"kind":"text","text":"Internationalization utilities"}]},{"tag":"@author","content":[{"kind":"text","text":"Wayne"}]},{"tag":"@Date","content":[{"kind":"text","text":"2025-11-16"}]},{"tag":"@LastEditTime","content":[{"kind":"text","text":"2025-11-18 11:27:33"}]}]},"originalName":"web-utils/src/i18n","children":[],"groups":[{"title":"Functions","children":[1047,1037,1042,1060,1057,1035,1052]}],"sources":[{"fileName":"packages/web-utils/src/i18n.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/i18n.ts","line":16,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/i18n.ts#L16"}],"is":{"declaration":true},"location":{"query":"Module.I18n","hash":""},"text":{"comment":"
    Description:

    Internationalization utilities

    \n
    Author:

    Wayne

    \n
    Date:

    2025-11-16

    \n
    Lastedittime:

    2025-11-18 11:27:33

    \n"}} diff --git a/docs/v1.0.0-beta01/data/Module.Image.json b/docs/v1.0.0-beta01/data/Module.Image.json new file mode 100644 index 000000000..e324935ec --- /dev/null +++ b/docs/v1.0.0-beta01/data/Module.Image.json @@ -0,0 +1 @@ +{"id":1065,"name":"Image","kind":2,"kindString":"Module","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@Date","content":[{"kind":"text","text":"2020-04-11 21:55:46"}]},{"tag":"@LastEditTime","content":[{"kind":"text","text":"2025-09-07 21:24:32"}]}]},"originalName":"web-utils/src/image","children":[],"groups":[{"title":"Functions","children":[1081,1074,1069,1066,1072]}],"sources":[{"fileName":"packages/web-utils/src/image.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/image.ts","line":23,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/image.ts#L23"}],"is":{"declaration":true},"location":{"query":"Module.Image","hash":""},"text":{"comment":"
    Date:

    2020-04-11 21:55:46

    \n
    Lastedittime:

    2025-09-07 21:24:32

    \n"}} diff --git a/docs/v1.0.0-beta01/data/Module.LifeCycle.json b/docs/v1.0.0-beta01/data/Module.LifeCycle.json new file mode 100644 index 000000000..028825216 --- /dev/null +++ b/docs/v1.0.0-beta01/data/Module.LifeCycle.json @@ -0,0 +1 @@ +{"id":1090,"name":"LifeCycle","kind":2,"kindString":"Module","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@author","content":[{"kind":"text","text":"Wayne"}]},{"tag":"@Date","content":[{"kind":"text","text":"2025-04-20 10:53:56"}]},{"tag":"@LastEditTime","content":[{"kind":"text","text":"2025-04-22 14:06:07"}]}]},"originalName":"web-utils/src/lifecycle","children":[],"groups":[{"title":"Functions","children":[1105,1091,1098]}],"sources":[{"fileName":"packages/web-utils/src/lifecycle.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/lifecycle.ts","line":18,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/lifecycle.ts#L18"}],"is":{"declaration":true},"location":{"query":"Module.LifeCycle","hash":""},"text":{"comment":"
    Author:

    Wayne

    \n
    Date:

    2025-04-20 10:53:56

    \n
    Lastedittime:

    2025-04-22 14:06:07

    \n"}} diff --git a/docs/v1.0.0-beta01/data/Module.Math.json b/docs/v1.0.0-beta01/data/Module.Math.json new file mode 100644 index 000000000..0bfc50bc7 --- /dev/null +++ b/docs/v1.0.0-beta01/data/Module.Math.json @@ -0,0 +1 @@ +{"id":642,"name":"Math","kind":2,"kindString":"Module","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@description","content":[{"kind":"text","text":"Mathematical utility functions for common calculations"}]},{"tag":"@Date","content":[{"kind":"text","text":"2020-04-11 21:55:46"}]},{"tag":"@LastEditTime","content":[{"kind":"text","text":"2025-09-07 20:35:07"}]}]},"originalName":"utils/src/math","children":[],"groups":[{"title":"Functions","children":[643,646,650,654]}],"sources":[{"fileName":"packages/utils/src/math.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/math.ts","line":37,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/math.ts#L37"}],"is":{"declaration":true},"location":{"query":"Module.Math","hash":""},"text":{"comment":"
    Description:

    Mathematical utility functions for common calculations

    \n
    Date:

    2020-04-11 21:55:46

    \n
    Lastedittime:

    2025-09-07 20:35:07

    \n"}} diff --git a/docs/v1.0.0-beta01/data/Module.Network.json b/docs/v1.0.0-beta01/data/Module.Network.json new file mode 100644 index 000000000..59b9d0143 --- /dev/null +++ b/docs/v1.0.0-beta01/data/Module.Network.json @@ -0,0 +1 @@ +{"id":1152,"name":"Network","kind":2,"kindString":"Module","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@description","content":[{"kind":"text","text":"Network utilities and connection helpers"}]},{"tag":"@author","content":[{"kind":"text","text":"Wayne"}]},{"tag":"@Date","content":[{"kind":"text","text":"2025-11-16"}]},{"tag":"@LastEditTime","content":[{"kind":"text","text":"2025-11-18 11:27:34"}]}]},"originalName":"web-utils/src/network","children":[],"groups":[{"title":"Functions","children":[1190,1157,1155,1153,1165,1181,1173]}],"sources":[{"fileName":"packages/web-utils/src/network.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/network.ts","line":20,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/network.ts#L20"}],"is":{"declaration":true},"location":{"query":"Module.Network","hash":""},"text":{"comment":"
    Description:

    Network utilities and connection helpers

    \n
    Author:

    Wayne

    \n
    Date:

    2025-11-16

    \n
    Lastedittime:

    2025-11-18 11:27:34

    \n"}} diff --git a/docs/v1.0.0-beta01/data/Module.Number.json b/docs/v1.0.0-beta01/data/Module.Number.json new file mode 100644 index 000000000..314572f08 --- /dev/null +++ b/docs/v1.0.0-beta01/data/Module.Number.json @@ -0,0 +1 @@ +{"id":658,"name":"Number","kind":2,"kindString":"Module","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@description","content":[{"kind":"text","text":"number functions"}]},{"tag":"@author","content":[{"kind":"text","text":"Wayne"}]},{"tag":"@Date","content":[{"kind":"text","text":"2023-02-09 15:08:11"}]},{"tag":"@LastEditTime","content":[{"kind":"text","text":"2024-08-25 13:50:37"}]}]},"originalName":"utils/src/number","children":[],"groups":[{"title":"Functions","children":[670,693,665,701,698,659,662,681,673,677,686,690]}],"sources":[{"fileName":"packages/utils/src/number.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/number.ts","line":9,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/number.ts#L9"}],"is":{"declaration":true},"location":{"query":"Module.Number","hash":""},"text":{"comment":"
    Description:

    number functions

    \n
    Author:

    Wayne

    \n
    Date:

    2023-02-09 15:08:11

    \n
    Lastedittime:

    2024-08-25 13:50:37

    \n"}} diff --git a/docs/v1.0.0-beta01/data/Module.Object.json b/docs/v1.0.0-beta01/data/Module.Object.json new file mode 100644 index 000000000..fb3892e08 --- /dev/null +++ b/docs/v1.0.0-beta01/data/Module.Object.json @@ -0,0 +1 @@ +{"id":704,"name":"Object","kind":2,"kindString":"Module","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@description","content":[{"kind":"text","text":"Object utility functions for manipulation and analysis"}]},{"tag":"@author","content":[{"kind":"text","text":"Wayne"}]},{"tag":"@Date","content":[{"kind":"text","text":"2022-07-05 13:53:42"}]},{"tag":"@LastEditTime","content":[{"kind":"text","text":"2025-09-07 20:37:56"}]}]},"originalName":"utils/src/object","children":[],"groups":[{"title":"Type Aliases","children":[740]},{"title":"Functions","children":[705,732,737,717,714,728]}],"sources":[{"fileName":"packages/utils/src/object.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/object.ts","line":9,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/object.ts#L9"}],"is":{"declaration":true},"location":{"query":"Module.Object","hash":""},"text":{"comment":"
    Description:

    Object utility functions for manipulation and analysis

    \n
    Author:

    Wayne

    \n
    Date:

    2022-07-05 13:53:42

    \n
    Lastedittime:

    2025-09-07 20:37:56

    \n"}} diff --git a/docs/v1.0.0-beta01/data/Module.Others.json b/docs/v1.0.0-beta01/data/Module.Others.json new file mode 100644 index 000000000..9ce184652 --- /dev/null +++ b/docs/v1.0.0-beta01/data/Module.Others.json @@ -0,0 +1 @@ +{"id":744,"name":"Others","kind":2,"kindString":"Module","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@author","content":[{"kind":"text","text":"Wayne"}]},{"tag":"@Date","content":[{"kind":"text","text":"2023-02-06 21:17:44"}]},{"tag":"@LastEditTime","content":[{"kind":"text","text":"2024-12-22 11:19:14"}]}]},"originalName":"utils/src/others","children":[],"groups":[{"title":"Functions","children":[745,749]}],"sources":[{"fileName":"packages/utils/src/others.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/others.ts","line":31,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/others.ts#L31"}],"is":{"declaration":true},"location":{"query":"Module.Others","hash":""},"text":{"comment":"
    Author:

    Wayne

    \n
    Date:

    2023-02-06 21:17:44

    \n
    Lastedittime:

    2024-12-22 11:19:14

    \n"}} diff --git a/docs/v1.0.0-beta01/data/Module.Performance.json b/docs/v1.0.0-beta01/data/Module.Performance.json new file mode 100644 index 000000000..bd6a0e43e --- /dev/null +++ b/docs/v1.0.0-beta01/data/Module.Performance.json @@ -0,0 +1 @@ +{"id":1197,"name":"Performance","kind":2,"kindString":"Module","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@description","content":[{"kind":"text","text":"Performance monitoring and optimization utilities"}]},{"tag":"@author","content":[{"kind":"text","text":"Wayne"}]},{"tag":"@Date","content":[{"kind":"text","text":"2025-11-16"}]},{"tag":"@LastEditTime","content":[{"kind":"text","text":"2025-11-18 11:29:32"}]}]},"originalName":"web-utils/src/performance","children":[],"groups":[{"title":"Functions","children":[1232,1207,1198,1225,1219,1239]}],"sources":[{"fileName":"packages/web-utils/src/performance.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/performance.ts","line":23,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/performance.ts#L23"}],"is":{"declaration":true},"location":{"query":"Module.Performance","hash":""},"text":{"comment":"
    Description:

    Performance monitoring and optimization utilities

    \n
    Author:

    Wayne

    \n
    Date:

    2025-11-16

    \n
    Lastedittime:

    2025-11-18 11:29:32

    \n"}} diff --git a/docs/v1.0.0-beta01/data/Module.Platform.json b/docs/v1.0.0-beta01/data/Module.Platform.json new file mode 100644 index 000000000..16a4dca59 --- /dev/null +++ b/docs/v1.0.0-beta01/data/Module.Platform.json @@ -0,0 +1 @@ +{"id":1242,"name":"Platform","kind":2,"kindString":"Module","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@notice","content":[{"kind":"text","text":"存在复杂的判断场景可以直接使用ua-parser-js / mobile-detect.js"}]},{"tag":"@Date","content":[{"kind":"text","text":"2020-04-11 21:55:46"}]},{"tag":"@LastEditTime","content":[{"kind":"text","text":"2025-12-13 19:47:45"}]}]},"originalName":"web-utils/src/platform","children":[],"groups":[{"title":"Variables","children":[1262]},{"title":"Functions","children":[1260,1255,1253,1249,1251,1243,1247,1245]}],"sources":[{"fileName":"packages/web-utils/src/platform.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/platform.ts","line":13,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/platform.ts#L13"}],"is":{"declaration":true},"location":{"query":"Module.Platform","hash":""},"text":{"comment":"
    Notice:

    存在复杂的判断场景可以直接使用ua-parser-js / mobile-detect.js

    \n
    Date:

    2020-04-11 21:55:46

    \n
    Lastedittime:

    2025-12-13 19:47:45

    \n"}} diff --git a/docs/v1.0.0-beta01/data/Module.Screen.json b/docs/v1.0.0-beta01/data/Module.Screen.json new file mode 100644 index 000000000..863800845 --- /dev/null +++ b/docs/v1.0.0-beta01/data/Module.Screen.json @@ -0,0 +1 @@ +{"id":1267,"name":"Screen","kind":2,"kindString":"Module","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@author","content":[{"kind":"text","text":"Wayne"}]},{"tag":"@Date","content":[{"kind":"text","text":"2022-08-31 16:05:14"}]},{"tag":"@LastEditTime","content":[{"kind":"text","text":"2025-06-21 11:51:41"}]}]},"originalName":"web-utils/src/screen","children":[],"groups":[{"title":"Functions","children":[1272,1275,1283,1285,1268,1270,1279,1277]}],"sources":[{"fileName":"packages/web-utils/src/screen.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/screen.ts","line":15,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/screen.ts#L15"}],"is":{"declaration":true},"location":{"query":"Module.Screen","hash":""},"text":{"comment":"
    Author:

    Wayne

    \n
    Date:

    2022-08-31 16:05:14

    \n
    Lastedittime:

    2025-06-21 11:51:41

    \n"}} diff --git a/docs/v1.0.0-beta01/data/Module.String.json b/docs/v1.0.0-beta01/data/Module.String.json new file mode 100644 index 000000000..308118137 --- /dev/null +++ b/docs/v1.0.0-beta01/data/Module.String.json @@ -0,0 +1 @@ +{"id":752,"name":"String","kind":2,"kindString":"Module","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@description","content":[{"kind":"text","text":"String utility functions for text manipulation and processing"}]},{"tag":"@author","content":[{"kind":"text","text":"Wayne"}]},{"tag":"@Date","content":[{"kind":"text","text":"2022-07-11 13:34:54"}]},{"tag":"@LastEditTime","content":[{"kind":"text","text":"2025-09-07 21:24:31"}]}]},"originalName":"utils/src/string","children":[],"groups":[{"title":"Functions","children":[753,799,756,759,762,785,774,796,790,771,778,765,768,781]}],"sources":[{"fileName":"packages/utils/src/string.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/string.ts","line":35,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/string.ts#L35"}],"is":{"declaration":true},"location":{"query":"Module.String","hash":""},"text":{"comment":"
    Description:

    String utility functions for text manipulation and processing

    \n
    Author:

    Wayne

    \n
    Date:

    2022-07-11 13:34:54

    \n
    Lastedittime:

    2025-09-07 21:24:31

    \n"}} diff --git a/docs/v1.0.0-beta01/data/Module.Trade.json b/docs/v1.0.0-beta01/data/Module.Trade.json new file mode 100644 index 000000000..8780d6080 --- /dev/null +++ b/docs/v1.0.0-beta01/data/Module.Trade.json @@ -0,0 +1 @@ +{"id":802,"name":"Trade","kind":2,"kindString":"Module","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@description","content":[{"kind":"text","text":"trade functions"}]},{"tag":"@author","content":[{"kind":"text","text":"Wayne"}]},{"tag":"@Date","content":[{"kind":"text","text":"2022-04-11 21:45:54"}]},{"tag":"@LastEditTime","content":[{"kind":"text","text":"2024-08-25 13:55:11"}]}]},"originalName":"utils/src/trade","children":[],"groups":[{"title":"Functions","children":[803,806]}],"sources":[{"fileName":"packages/utils/src/trade.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/trade.ts","line":19,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/trade.ts#L19"}],"is":{"declaration":true},"location":{"query":"Module.Trade","hash":""},"text":{"comment":"
    Description:

    trade functions

    \n
    Author:

    Wayne

    \n
    Date:

    2022-04-11 21:45:54

    \n
    Lastedittime:

    2024-08-25 13:55:11

    \n"}} diff --git a/docs/v1.0.0-beta01/data/Module.Type.json b/docs/v1.0.0-beta01/data/Module.Type.json new file mode 100644 index 000000000..ce81246fc --- /dev/null +++ b/docs/v1.0.0-beta01/data/Module.Type.json @@ -0,0 +1 @@ +{"id":811,"name":"Type","kind":2,"kindString":"Module","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@description","content":[{"kind":"text","text":"Type checking and validation utility functions"}]},{"tag":"@Date","content":[{"kind":"text","text":"2020-04-11 21:55:46"}]},{"tag":"@LastEditTime","content":[{"kind":"text","text":"2025-09-07 20:37:55"}]}]},"originalName":"utils/src/type","children":[],"groups":[{"title":"Functions","children":[830,834,841,827,821,824,837,818,815,812]}],"sources":[{"fileName":"packages/utils/src/type.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/type.ts","line":40,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/type.ts#L40"}],"is":{"declaration":true},"location":{"query":"Module.Type","hash":""},"text":{"comment":"
    Description:

    Type checking and validation utility functions

    \n
    Date:

    2020-04-11 21:55:46

    \n
    Lastedittime:

    2025-09-07 20:37:55

    \n"}} diff --git a/docs/v1.0.0-beta01/data/Module.Url.json b/docs/v1.0.0-beta01/data/Module.Url.json new file mode 100644 index 000000000..0fa04d03f --- /dev/null +++ b/docs/v1.0.0-beta01/data/Module.Url.json @@ -0,0 +1 @@ +{"id":1358,"name":"Url","kind":2,"kindString":"Module","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@notice","content":[{"kind":"text","text":"如无兼容要求,可直接用URL对象进行处理"}]},{"tag":"@Date","content":[{"kind":"text","text":"2022-08-24 14:18:25"}]},{"tag":"@LastEditTime","content":[{"kind":"text","text":"2025-05-13 19:09:57"}]}]},"originalName":"web-utils/src/url","children":[],"groups":[{"title":"Functions","children":[1375,1378,1362,1369,1359,1381]}],"sources":[{"fileName":"packages/web-utils/src/url.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/url.ts","line":18,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/url.ts#L18"}],"is":{"declaration":true},"location":{"query":"Module.Url","hash":""},"text":{"comment":"
    Notice:

    如无兼容要求,可直接用URL对象进行处理

    \n
    Date:

    2022-08-24 14:18:25

    \n
    Lastedittime:

    2025-05-13 19:09:57

    \n"}} diff --git a/docs/v1.0.0-beta01/data/Module.Utils.json b/docs/v1.0.0-beta01/data/Module.Utils.json new file mode 100644 index 000000000..a45837255 --- /dev/null +++ b/docs/v1.0.0-beta01/data/Module.Utils.json @@ -0,0 +1 @@ +{"id":614,"name":"Utils","kind":2,"kindString":"Module","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@fileoverview","content":[{"kind":"text","text":"Main entry point for the utility library.\n\nThis is the main entry point for the utility library, exporting all available utility functions.\nThe library provides a comprehensive collection of utility functions organized into modules\nfor common tasks such as array manipulation, string processing, object handling, type checking,\nmathematical operations, date handling, and more."}]},{"tag":"@author","content":[{"kind":"text","text":"Wayne"}]},{"tag":"@since","content":[{"kind":"text","text":"1.0.0"}]}]},"originalName":"utils/src","children":[{"id":1563,"name":"AnyArr","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/utils/src/array.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/array.ts","line":12,"character":12,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/array.ts#L12"}],"target":300,"is":{"declaration":true},"location":{"query":"Module.Utils","hash":"AnyArr"},"text":{},"parentId":614},{"id":1587,"name":"EasingFunction","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/utils/src/Easing.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/Easing.ts","line":21,"character":12,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/Easing.ts#L21"}],"target":2,"is":{"declaration":true},"location":{"query":"Module.Utils","hash":"EasingFunction"},"text":{},"parentId":614},{"id":1602,"name":"NOOP","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/utils/src/function.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/function.ts","line":29,"character":13,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/function.ts#L29"}],"target":584,"is":{"declaration":true},"location":{"query":"Module.Utils","hash":"NOOP"},"text":{},"parentId":614},{"id":1562,"name":"NumberArr","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/utils/src/array.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/array.ts","line":10,"character":12,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/array.ts#L10"}],"target":299,"is":{"declaration":true},"location":{"query":"Module.Utils","hash":"NumberArr"},"text":{},"parentId":614},{"id":1626,"name":"PlainObject","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/utils/src/object.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/object.ts","line":11,"character":12,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/object.ts#L11"}],"target":740,"is":{"declaration":true},"location":{"query":"Module.Utils","hash":"PlainObject"},"text":{},"parentId":614},{"id":1564,"name":"allEqual","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/utils/src/array.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/array.ts","line":119,"character":13,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/array.ts#L119"}],"target":301,"is":{"declaration":true},"location":{"query":"Module.Utils","hash":"allEqual"},"text":{},"parentId":614},{"id":1532,"name":"arrayAverage","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/utils/src/array.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/array.ts","line":73,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/array.ts#L73"}],"target":161,"is":{"declaration":true},"location":{"query":"Module.Utils","hash":"arrayAverage"},"text":{},"parentId":614},{"id":1530,"name":"arrayMax","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/utils/src/array.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/array.ts","line":31,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/array.ts#L31"}],"target":155,"is":{"declaration":true},"location":{"query":"Module.Utils","hash":"arrayMax"},"text":{},"parentId":614},{"id":1531,"name":"arrayMin","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/utils/src/array.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/array.ts","line":52,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/array.ts#L52"}],"target":158,"is":{"declaration":true},"location":{"query":"Module.Utils","hash":"arrayMin"},"text":{},"parentId":614},{"id":1533,"name":"arraySum","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/utils/src/array.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/array.ts","line":95,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/array.ts#L95"}],"target":164,"is":{"declaration":true},"location":{"query":"Module.Utils","hash":"arraySum"},"text":{},"parentId":614},{"id":1535,"name":"arrayToCSV","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/utils/src/array.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/array.ts","line":216,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/array.ts#L216"}],"target":170,"is":{"declaration":true},"location":{"query":"Module.Utils","hash":"arrayToCSV"},"text":{},"parentId":614},{"id":1588,"name":"attempt","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/utils/src/function.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/function.ts","line":64,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/function.ts#L64"}],"target":466,"is":{"declaration":true},"location":{"query":"Module.Utils","hash":"attempt"},"text":{},"parentId":614},{"id":1611,"name":"average","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/utils/src/number.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/number.ts","line":99,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/number.ts#L99"}],"target":670,"is":{"declaration":true},"location":{"query":"Module.Utils","hash":"average"},"text":{},"parentId":614},{"id":1629,"name":"byteSize","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/utils/src/string.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/string.ts","line":35,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/string.ts#L35"}],"target":753,"is":{"declaration":true},"location":{"query":"Module.Utils","hash":"byteSize"},"text":{},"parentId":614},{"id":1642,"name":"camelize","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/utils/src/string.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/string.ts","line":527,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/string.ts#L527"}],"target":799,"is":{"declaration":true},"location":{"query":"Module.Utils","hash":"camelize"},"text":{},"parentId":614},{"id":1630,"name":"capitalize","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/utils/src/string.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/string.ts","line":66,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/string.ts#L66"}],"target":756,"is":{"declaration":true},"location":{"query":"Module.Utils","hash":"capitalize"},"text":{},"parentId":614},{"id":1631,"name":"capitalizeEveryWord","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/utils/src/string.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/string.ts","line":96,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/string.ts#L96"}],"target":759,"is":{"declaration":true},"location":{"query":"Module.Utils","hash":"capitalizeEveryWord"},"text":{},"parentId":614},{"id":1660,"name":"cartesianProduct","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/utils/src/collection.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/collection.ts","line":172,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/collection.ts#L172"}],"target":380,"is":{"declaration":true},"location":{"query":"Module.Utils","hash":"cartesianProduct"},"text":{},"parentId":614},{"id":1536,"name":"castArray","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/utils/src/array.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/array.ts","line":252,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/array.ts#L252"}],"target":174,"is":{"declaration":true},"location":{"query":"Module.Utils","hash":"castArray"},"text":{},"parentId":614},{"id":1594,"name":"chainAsync","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/utils/src/function.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/function.ts","line":346,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/function.ts#L346"}],"target":514,"is":{"declaration":true},"location":{"query":"Module.Utils","hash":"chainAsync"},"text":{},"parentId":614},{"id":1569,"name":"checkIdcard","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/utils/src/check.plus.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/check.plus.ts","line":288,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/check.plus.ts#L288"}],"target":326,"is":{"declaration":true},"location":{"query":"Module.Utils","hash":"checkIdcard"},"text":{},"parentId":614},{"id":1568,"name":"checkPwdStrength","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/utils/src/check.plus.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/check.plus.ts","line":82,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/check.plus.ts#L82"}],"target":322,"is":{"declaration":true},"location":{"query":"Module.Utils","hash":"checkPwdStrength"},"text":{},"parentId":614},{"id":1537,"name":"chunk","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/utils/src/array.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/array.ts","line":288,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/array.ts#L288"}],"target":178,"is":{"declaration":true},"location":{"query":"Module.Utils","hash":"chunk"},"text":{},"parentId":614},{"id":1617,"name":"clamp","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/utils/src/number.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/number.ts","line":189,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/number.ts#L189"}],"target":693,"is":{"declaration":true},"location":{"query":"Module.Utils","hash":"clamp"},"text":{},"parentId":614},{"id":1687,"name":"cloneJSON","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/utils/src/json.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/json.ts","line":145,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/json.ts#L145"}],"target":638,"is":{"declaration":true},"location":{"query":"Module.Utils","hash":"cloneJSON"},"text":{},"parentId":614},{"id":1538,"name":"compact","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/utils/src/array.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/array.ts","line":323,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/array.ts#L323"}],"target":183,"is":{"declaration":true},"location":{"query":"Module.Utils","hash":"compact"},"text":{},"parentId":614},{"id":1685,"name":"compareJSON","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/utils/src/json.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/json.ts","line":96,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/json.ts#L96"}],"target":628,"is":{"declaration":true},"location":{"query":"Module.Utils","hash":"compareJSON"},"text":{},"parentId":614},{"id":1627,"name":"compareVersion","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/utils/src/others.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/others.ts","line":31,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/others.ts#L31"}],"target":745,"is":{"declaration":true},"location":{"query":"Module.Utils","hash":"compareVersion"},"text":{},"parentId":614},{"id":1595,"name":"compose","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/utils/src/function.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/function.ts","line":384,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/function.ts#L384"}],"target":520,"is":{"declaration":true},"location":{"query":"Module.Utils","hash":"compose"},"text":{},"parentId":614},{"id":1539,"name":"countOccurrences","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/utils/src/array.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/array.ts","line":351,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/array.ts#L351"}],"target":187,"is":{"declaration":true},"location":{"query":"Module.Utils","hash":"countOccurrences"},"text":{},"parentId":614},{"id":1603,"name":"curry","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/utils/src/function.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/function.ts","line":500,"character":13,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/function.ts#L500"}],"target":586,"is":{"declaration":true},"location":{"query":"Module.Utils","hash":"curry"},"text":{},"parentId":614},{"id":1580,"name":"dayOfYear","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/utils/src/date.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/date.ts","line":18,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/date.ts#L18"}],"target":401,"is":{"declaration":true},"location":{"query":"Module.Utils","hash":"dayOfYear"},"text":{},"parentId":614},{"id":1585,"name":"daysLater","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/utils/src/date.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/date.ts","line":90,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/date.ts#L90"}],"target":419,"is":{"declaration":true},"location":{"query":"Module.Utils","hash":"daysLater"},"text":{},"parentId":614},{"id":1601,"name":"debounce","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/utils/src/function.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/function.ts","line":745,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/function.ts#L745"}],"target":576,"is":{"declaration":true},"location":{"query":"Module.Utils","hash":"debounce"},"text":{},"parentId":614},{"id":1632,"name":"decapitalize","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/utils/src/string.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/string.ts","line":127,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/string.ts#L127"}],"target":762,"is":{"declaration":true},"location":{"query":"Module.Utils","hash":"decapitalize"},"text":{},"parentId":614},{"id":1540,"name":"deepFlatten","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/utils/src/array.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/array.ts","line":375,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/array.ts#L375"}],"target":192,"is":{"declaration":true},"location":{"query":"Module.Utils","hash":"deepFlatten"},"text":{},"parentId":614},{"id":1589,"name":"defer","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/utils/src/function.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/function.ts","line":117,"character":22,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/function.ts#L117"}],"target":475,"is":{"declaration":true},"location":{"query":"Module.Utils","hash":"defer"},"text":{},"parentId":614},{"id":1542,"name":"difference","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/utils/src/array.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/array.ts","line":434,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/array.ts#L434"}],"target":199,"is":{"declaration":true},"location":{"query":"Module.Utils","hash":"difference"},"text":{},"parentId":614},{"id":1543,"name":"differenceBy","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/utils/src/array.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/array.ts","line":463,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/array.ts#L463"}],"target":203,"is":{"declaration":true},"location":{"query":"Module.Utils","hash":"differenceBy"},"text":{},"parentId":614},{"id":1628,"name":"digitUppercase","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/utils/src/others.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/others.ts","line":57,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/others.ts#L57"}],"target":749,"is":{"declaration":true},"location":{"query":"Module.Utils","hash":"digitUppercase"},"text":{},"parentId":614},{"id":1559,"name":"digitize","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/utils/src/array.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/array.ts","line":952,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/array.ts#L952"}],"target":290,"is":{"declaration":true},"location":{"query":"Module.Utils","hash":"digitize"},"text":{},"parentId":614},{"id":1544,"name":"drop","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/utils/src/array.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/array.ts","line":492,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/array.ts#L492"}],"target":211,"is":{"declaration":true},"location":{"query":"Module.Utils","hash":"drop"},"text":{},"parentId":614},{"id":1545,"name":"dropWhile","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/utils/src/array.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/array.ts","line":519,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/array.ts#L519"}],"target":216,"is":{"declaration":true},"location":{"query":"Module.Utils","hash":"dropWhile"},"text":{},"parentId":614},{"id":1639,"name":"ellipsis","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/utils/src/string.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/string.ts","line":392,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/string.ts#L392"}],"target":785,"is":{"declaration":true},"location":{"query":"Module.Utils","hash":"ellipsis"},"text":{},"parentId":614},{"id":1651,"name":"equals","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/utils/src/type.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/type.ts","line":389,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/type.ts#L389"}],"target":830,"is":{"declaration":true},"location":{"query":"Module.Utils","hash":"equals"},"text":{},"parentId":614},{"id":1554,"name":"everyNth","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/utils/src/array.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/array.ts","line":784,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/array.ts#L784"}],"target":268,"is":{"declaration":true},"location":{"query":"Module.Utils","hash":"everyNth"},"text":{},"parentId":614},{"id":1604,"name":"factorial","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/utils/src/math.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/math.ts","line":37,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/math.ts#L37"}],"target":643,"is":{"declaration":true},"location":{"query":"Module.Utils","hash":"factorial"},"text":{},"parentId":614},{"id":1560,"name":"fibonacci","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/utils/src/array.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/array.ts","line":979,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/array.ts#L979"}],"target":293,"is":{"declaration":true},"location":{"query":"Module.Utils","hash":"fibonacci"},"text":{},"parentId":614},{"id":1556,"name":"filterNonUnique","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/utils/src/array.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/array.ts","line":845,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/array.ts#L845"}],"target":275,"is":{"declaration":true},"location":{"query":"Module.Utils","hash":"filterNonUnique"},"text":{},"parentId":614},{"id":1541,"name":"flatten","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/utils/src/array.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/array.ts","line":402,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/array.ts#L402"}],"target":195,"is":{"declaration":true},"location":{"query":"Module.Utils","hash":"flatten"},"text":{},"parentId":614},{"id":1683,"name":"flattenJSON","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/utils/src/json.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/json.ts","line":47,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/json.ts#L47"}],"target":621,"is":{"declaration":true},"location":{"query":"Module.Utils","hash":"flattenJSON"},"text":{},"parentId":614},{"id":1620,"name":"forOwn","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/utils/src/object.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/object.ts","line":53,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/object.ts#L53"}],"target":705,"is":{"declaration":true},"location":{"query":"Module.Utils","hash":"forOwn"},"text":{},"parentId":614},{"id":1677,"name":"formatCurrency","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/utils/src/formatter.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/formatter.ts","line":89,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/formatter.ts#L89"}],"target":445,"is":{"declaration":true},"location":{"query":"Module.Utils","hash":"formatCurrency"},"text":{},"parentId":614},{"id":1675,"name":"formatDuration","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/utils/src/formatter.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/formatter.ts","line":42,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/formatter.ts#L42"}],"target":437,"is":{"declaration":true},"location":{"query":"Module.Utils","hash":"formatDuration"},"text":{},"parentId":614},{"id":1674,"name":"formatFileSize","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/utils/src/formatter.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/formatter.ts","line":21,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/formatter.ts#L21"}],"target":433,"is":{"declaration":true},"location":{"query":"Module.Utils","hash":"formatFileSize"},"text":{},"parentId":614},{"id":1676,"name":"formatNumber","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/utils/src/formatter.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/formatter.ts","line":71,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/formatter.ts#L71"}],"target":440,"is":{"declaration":true},"location":{"query":"Module.Utils","hash":"formatNumber"},"text":{},"parentId":614},{"id":1681,"name":"formatOrdinal","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/utils/src/formatter.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/formatter.ts","line":179,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/formatter.ts#L179"}],"target":462,"is":{"declaration":true},"location":{"query":"Module.Utils","hash":"formatOrdinal"},"text":{},"parentId":614},{"id":1680,"name":"formatPercentage","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/utils/src/formatter.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/formatter.ts","line":162,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/formatter.ts#L162"}],"target":457,"is":{"declaration":true},"location":{"query":"Module.Utils","hash":"formatPercentage"},"text":{},"parentId":614},{"id":1679,"name":"formatPhone","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/utils/src/formatter.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/formatter.ts","line":135,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/formatter.ts#L135"}],"target":453,"is":{"declaration":true},"location":{"query":"Module.Utils","hash":"formatPhone"},"text":{},"parentId":614},{"id":1678,"name":"formatRelativeTime","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/utils/src/formatter.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/formatter.ts","line":105,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/formatter.ts#L105"}],"target":450,"is":{"declaration":true},"location":{"query":"Module.Utils","hash":"formatRelativeTime"},"text":{},"parentId":614},{"id":1636,"name":"fromCamelCase","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/utils/src/string.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/string.ts","line":276,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/string.ts#L276"}],"target":774,"is":{"declaration":true},"location":{"query":"Module.Utils","hash":"fromCamelCase"},"text":{},"parentId":614},{"id":1597,"name":"functionName","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/utils/src/function.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/function.ts","line":538,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/function.ts#L538"}],"target":540,"is":{"declaration":true},"location":{"query":"Module.Utils","hash":"functionName"},"text":{},"parentId":614},{"id":1605,"name":"gcd","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/utils/src/math.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/math.ts","line":82,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/math.ts#L82"}],"target":646,"is":{"declaration":true},"location":{"query":"Module.Utils","hash":"gcd"},"text":{},"parentId":614},{"id":1581,"name":"getColonTimeFromDate","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/utils/src/date.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/date.ts","line":32,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/date.ts#L32"}],"target":404,"is":{"declaration":true},"location":{"query":"Module.Utils","hash":"getColonTimeFromDate"},"text":{},"parentId":614},{"id":1577,"name":"getColorRgbArr","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/utils/src/color.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/color.ts","line":28,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/color.ts#L28"}],"target":390,"is":{"declaration":true},"location":{"query":"Module.Utils","hash":"getColorRgbArr"},"text":{},"parentId":614},{"id":1578,"name":"getColorRgba","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/utils/src/color.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/color.ts","line":59,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/color.ts#L59"}],"target":393,"is":{"declaration":true},"location":{"query":"Module.Utils","hash":"getColorRgba"},"text":{},"parentId":614},{"id":1582,"name":"getDaysDiffBetweenDates","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/utils/src/date.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/date.ts","line":47,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/date.ts#L47"}],"target":407,"is":{"declaration":true},"location":{"query":"Module.Utils","hash":"getDaysDiffBetweenDates"},"text":{},"parentId":614},{"id":1586,"name":"getFormattedRemainTime","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/utils/src/date.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/date.ts","line":106,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/date.ts#L106"}],"target":423,"is":{"declaration":true},"location":{"query":"Module.Utils","hash":"getFormattedRemainTime"},"text":{},"parentId":614},{"id":1565,"name":"getStringByteLength","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/utils/src/array.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/array.ts","line":132,"character":13,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/array.ts#L132"}],"target":304,"is":{"declaration":true},"location":{"query":"Module.Utils","hash":"getStringByteLength"},"text":{},"parentId":614},{"id":1655,"name":"groupBy","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/utils/src/collection.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/collection.ts","line":35,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/collection.ts#L35"}],"target":350,"is":{"declaration":true},"location":{"query":"Module.Utils","hash":"groupBy"},"text":{},"parentId":614},{"id":1624,"name":"hasOwnProperty","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/utils/src/object.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/object.ts","line":254,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/object.ts#L254"}],"target":732,"is":{"declaration":true},"location":{"query":"Module.Utils","hash":"hasOwnProperty"},"text":{},"parentId":614},{"id":1546,"name":"indexOfAll","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/utils/src/array.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/array.ts","line":552,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/array.ts#L552"}],"target":224,"is":{"declaration":true},"location":{"query":"Module.Utils","hash":"indexOfAll"},"text":{},"parentId":614},{"id":1557,"name":"initializeArrayWithValues","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/utils/src/array.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/array.ts","line":877,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/array.ts#L877"}],"target":278,"is":{"declaration":true},"location":{"query":"Module.Utils","hash":"initializeArrayWithValues"},"text":{},"parentId":614},{"id":1547,"name":"intersection","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/utils/src/array.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/array.ts","line":579,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/array.ts#L579"}],"target":228,"is":{"declaration":true},"location":{"query":"Module.Utils","hash":"intersection"},"text":{},"parentId":614},{"id":1548,"name":"intersectionBy","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/utils/src/array.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/array.ts","line":608,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/array.ts#L608"}],"target":232,"is":{"declaration":true},"location":{"query":"Module.Utils","hash":"intersectionBy"},"text":{},"parentId":614},{"id":1549,"name":"intersectionWith","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/utils/src/array.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/array.ts","line":635,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/array.ts#L635"}],"target":240,"is":{"declaration":true},"location":{"query":"Module.Utils","hash":"intersectionWith"},"text":{},"parentId":614},{"id":1583,"name":"isAfterDate","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/utils/src/date.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/date.ts","line":61,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/date.ts#L61"}],"target":411,"is":{"declaration":true},"location":{"query":"Module.Utils","hash":"isAfterDate"},"text":{},"parentId":614},{"id":1610,"name":"isApproximatelyEqual","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/utils/src/number.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/number.ts","line":87,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/number.ts#L87"}],"target":665,"is":{"declaration":true},"location":{"query":"Module.Utils","hash":"isApproximatelyEqual"},"text":{},"parentId":614},{"id":1652,"name":"isArray","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/utils/src/type.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/type.ts","line":111,"character":13,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/type.ts#L111"}],"target":834,"is":{"declaration":true},"location":{"query":"Module.Utils","hash":"isArray"},"text":{},"parentId":614},{"id":1575,"name":"isBankCard","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/utils/src/check.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/check.ts","line":106,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/check.ts#L106"}],"target":346,"is":{"declaration":true},"location":{"query":"Module.Utils","hash":"isBankCard"},"text":{},"parentId":614},{"id":1673,"name":"isBase64","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/utils/src/validators.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/validators.ts","line":205,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/validators.ts#L205"}],"target":878,"is":{"declaration":true},"location":{"query":"Module.Utils","hash":"isBase64"},"text":{},"parentId":614},{"id":1584,"name":"isBeforeDate","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/utils/src/date.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/date.ts","line":75,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/date.ts#L75"}],"target":415,"is":{"declaration":true},"location":{"query":"Module.Utils","hash":"isBeforeDate"},"text":{},"parentId":614},{"id":1641,"name":"isChinese","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/utils/src/string.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/string.ts","line":485,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/string.ts#L485"}],"target":796,"is":{"declaration":true},"location":{"query":"Module.Utils","hash":"isChinese"},"text":{},"parentId":614},{"id":1665,"name":"isCreditCard","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/utils/src/validators.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/validators.ts","line":70,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/validators.ts#L70"}],"target":854,"is":{"declaration":true},"location":{"query":"Module.Utils","hash":"isCreditCard"},"text":{},"parentId":614},{"id":1654,"name":"isDate","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/utils/src/type.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/type.ts","line":335,"character":13,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/type.ts#L335"}],"target":841,"is":{"declaration":true},"location":{"query":"Module.Utils","hash":"isDate"},"text":{},"parentId":614},{"id":1606,"name":"isDivisible","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/utils/src/math.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/math.ts","line":122,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/math.ts#L122"}],"target":650,"is":{"declaration":true},"location":{"query":"Module.Utils","hash":"isDivisible"},"text":{},"parentId":614},{"id":1570,"name":"isEmail","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/utils/src/check.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/check.ts","line":22,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/check.ts#L22"}],"target":331,"is":{"declaration":true},"location":{"query":"Module.Utils","hash":"isEmail"},"text":{},"parentId":614},{"id":1625,"name":"isEmptyObj","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/utils/src/object.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/object.ts","line":308,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/object.ts#L308"}],"target":737,"is":{"declaration":true},"location":{"query":"Module.Utils","hash":"isEmptyObj"},"text":{},"parentId":614},{"id":1619,"name":"isFloat","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/utils/src/number.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/number.ts","line":55,"character":13,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/number.ts#L55"}],"target":701,"is":{"declaration":true},"location":{"query":"Module.Utils","hash":"isFloat"},"text":{},"parentId":614},{"id":1650,"name":"isFunction","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/utils/src/type.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/type.ts","line":254,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/type.ts#L254"}],"target":827,"is":{"declaration":true},"location":{"query":"Module.Utils","hash":"isFunction"},"text":{},"parentId":614},{"id":1666,"name":"isHexColor","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/utils/src/validators.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/validators.ts","line":99,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/validators.ts#L99"}],"target":857,"is":{"declaration":true},"location":{"query":"Module.Utils","hash":"isHexColor"},"text":{},"parentId":614},{"id":1667,"name":"isIPv4","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/utils/src/validators.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/validators.ts","line":113,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/validators.ts#L113"}],"target":860,"is":{"declaration":true},"location":{"query":"Module.Utils","hash":"isIPv4"},"text":{},"parentId":614},{"id":1571,"name":"isIdCard","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/utils/src/check.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/check.ts","line":39,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/check.ts#L39"}],"target":334,"is":{"declaration":true},"location":{"query":"Module.Utils","hash":"isIdCard"},"text":{},"parentId":614},{"id":1618,"name":"isInt","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/utils/src/number.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/number.ts","line":23,"character":13,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/number.ts#L23"}],"target":698,"is":{"declaration":true},"location":{"query":"Module.Utils","hash":"isInt"},"text":{},"parentId":614},{"id":1669,"name":"isJWT","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/utils/src/validators.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/validators.ts","line":146,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/validators.ts#L146"}],"target":866,"is":{"declaration":true},"location":{"query":"Module.Utils","hash":"isJWT"},"text":{},"parentId":614},{"id":1672,"name":"isMACAddress","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/utils/src/validators.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/validators.ts","line":192,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/validators.ts#L192"}],"target":875,"is":{"declaration":true},"location":{"query":"Module.Utils","hash":"isMACAddress"},"text":{},"parentId":614},{"id":1648,"name":"isNumber","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/utils/src/type.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/type.ts","line":180,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/type.ts#L180"}],"target":821,"is":{"declaration":true},"location":{"query":"Module.Utils","hash":"isNumber"},"text":{},"parentId":614},{"id":1649,"name":"isObject","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/utils/src/type.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/type.ts","line":214,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/type.ts#L214"}],"target":824,"is":{"declaration":true},"location":{"query":"Module.Utils","hash":"isObject"},"text":{},"parentId":614},{"id":1608,"name":"isOdd","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/utils/src/number.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/number.ts","line":38,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/number.ts#L38"}],"target":659,"is":{"declaration":true},"location":{"query":"Module.Utils","hash":"isOdd"},"text":{},"parentId":614},{"id":1573,"name":"isPhoneNumber","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/utils/src/check.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/check.ts","line":76,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/check.ts#L76"}],"target":340,"is":{"declaration":true},"location":{"query":"Module.Utils","hash":"isPhoneNumber"},"text":{},"parentId":614},{"id":1668,"name":"isPort","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/utils/src/validators.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/validators.ts","line":133,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/validators.ts#L133"}],"target":863,"is":{"declaration":true},"location":{"query":"Module.Utils","hash":"isPort"},"text":{},"parentId":614},{"id":1574,"name":"isPostalCode","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/utils/src/check.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/check.ts","line":91,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/check.ts#L91"}],"target":343,"is":{"declaration":true},"location":{"query":"Module.Utils","hash":"isPostalCode"},"text":{},"parentId":614},{"id":1653,"name":"isPrimitive","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/utils/src/type.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/type.ts","line":295,"character":13,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/type.ts#L295"}],"target":837,"is":{"declaration":true},"location":{"query":"Module.Utils","hash":"isPrimitive"},"text":{},"parentId":614},{"id":1670,"name":"isSemVer","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/utils/src/validators.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/validators.ts","line":162,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/validators.ts#L162"}],"target":869,"is":{"declaration":true},"location":{"query":"Module.Utils","hash":"isSemVer"},"text":{},"parentId":614},{"id":1647,"name":"isString","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/utils/src/type.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/type.ts","line":143,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/type.ts#L143"}],"target":818,"is":{"declaration":true},"location":{"query":"Module.Utils","hash":"isString"},"text":{},"parentId":614},{"id":1579,"name":"isTransparentColor","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/utils/src/color.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/color.ts","line":75,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/color.ts#L75"}],"target":397,"is":{"declaration":true},"location":{"query":"Module.Utils","hash":"isTransparentColor"},"text":{},"parentId":614},{"id":1646,"name":"isUndefined","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/utils/src/type.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/type.ts","line":78,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/type.ts#L78"}],"target":815,"is":{"declaration":true},"location":{"query":"Module.Utils","hash":"isUndefined"},"text":{},"parentId":614},{"id":1572,"name":"isUrl","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/utils/src/check.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/check.ts","line":57,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/check.ts#L57"}],"target":337,"is":{"declaration":true},"location":{"query":"Module.Utils","hash":"isUrl"},"text":{},"parentId":614},{"id":1663,"name":"isValidEmail","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/utils/src/validators.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/validators.ts","line":38,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/validators.ts#L38"}],"target":848,"is":{"declaration":true},"location":{"query":"Module.Utils","hash":"isValidEmail"},"text":{},"parentId":614},{"id":1662,"name":"isValidJSON","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/utils/src/validators.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/validators.ts","line":19,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/validators.ts#L19"}],"target":845,"is":{"declaration":true},"location":{"query":"Module.Utils","hash":"isValidJSON"},"text":{},"parentId":614},{"id":1609,"name":"isValidNumber","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/utils/src/number.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/number.ts","line":70,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/number.ts#L70"}],"target":662,"is":{"declaration":true},"location":{"query":"Module.Utils","hash":"isValidNumber"},"text":{},"parentId":614},{"id":1671,"name":"isValidPhoneNumber","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/utils/src/validators.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/validators.ts","line":178,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/validators.ts#L178"}],"target":872,"is":{"declaration":true},"location":{"query":"Module.Utils","hash":"isValidPhoneNumber"},"text":{},"parentId":614},{"id":1664,"name":"isValidURL","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/utils/src/validators.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/validators.ts","line":52,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/validators.ts#L52"}],"target":851,"is":{"declaration":true},"location":{"query":"Module.Utils","hash":"isValidURL"},"text":{},"parentId":614},{"id":1607,"name":"lcm","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/utils/src/math.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/math.ts","line":164,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/math.ts#L164"}],"target":654,"is":{"declaration":true},"location":{"query":"Module.Utils","hash":"lcm"},"text":{},"parentId":614},{"id":1643,"name":"luhnCheck","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/utils/src/trade.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/trade.ts","line":19,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/trade.ts#L19"}],"target":803,"is":{"declaration":true},"location":{"query":"Module.Utils","hash":"luhnCheck"},"text":{},"parentId":614},{"id":1622,"name":"mapObject","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/utils/src/object.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/object.ts","line":142,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/object.ts#L142"}],"target":717,"is":{"declaration":true},"location":{"query":"Module.Utils","hash":"mapObject"},"text":{},"parentId":614},{"id":1640,"name":"maskString","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/utils/src/string.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/string.ts","line":437,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/string.ts#L437"}],"target":790,"is":{"declaration":true},"location":{"query":"Module.Utils","hash":"maskString"},"text":{},"parentId":614},{"id":1561,"name":"median","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/utils/src/array.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/array.ts","line":1012,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/array.ts#L1012"}],"target":296,"is":{"declaration":true},"location":{"query":"Module.Utils","hash":"median"},"text":{},"parentId":614},{"id":1592,"name":"memoize","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/utils/src/function.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/function.ts","line":245,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/function.ts#L245"}],"target":495,"is":{"declaration":true},"location":{"query":"Module.Utils","hash":"memoize"},"text":{},"parentId":614},{"id":1686,"name":"mergeJSON","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/utils/src/json.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/json.ts","line":121,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/json.ts#L121"}],"target":635,"is":{"declaration":true},"location":{"query":"Module.Utils","hash":"mergeJSON"},"text":{},"parentId":614},{"id":1661,"name":"mergeSorted","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/utils/src/collection.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/collection.ts","line":200,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/collection.ts#L200"}],"target":383,"is":{"declaration":true},"location":{"query":"Module.Utils","hash":"mergeSorted"},"text":{},"parentId":614},{"id":1550,"name":"negate","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/utils/src/array.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/array.ts","line":668,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/array.ts#L668"}],"target":249,"is":{"declaration":true},"location":{"query":"Module.Utils","hash":"negate"},"text":{},"parentId":614},{"id":1621,"name":"objectFromPairs","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/utils/src/object.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/object.ts","line":96,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/object.ts#L96"}],"target":714,"is":{"declaration":true},"location":{"query":"Module.Utils","hash":"objectFromPairs"},"text":{},"parentId":614},{"id":1593,"name":"once","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/utils/src/function.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/function.ts","line":295,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/function.ts#L295"}],"target":505,"is":{"declaration":true},"location":{"query":"Module.Utils","hash":"once"},"text":{},"parentId":614},{"id":1635,"name":"palindrome","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/utils/src/string.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/string.ts","line":242,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/string.ts#L242"}],"target":771,"is":{"declaration":true},"location":{"query":"Module.Utils","hash":"palindrome"},"text":{},"parentId":614},{"id":1656,"name":"partition","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/utils/src/collection.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/collection.ts","line":67,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/collection.ts#L67"}],"target":358,"is":{"declaration":true},"location":{"query":"Module.Utils","hash":"partition"},"text":{},"parentId":614},{"id":1623,"name":"pick","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/utils/src/object.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/object.ts","line":193,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/object.ts#L193"}],"target":728,"is":{"declaration":true},"location":{"query":"Module.Utils","hash":"pick"},"text":{},"parentId":614},{"id":1596,"name":"pipe","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/utils/src/function.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/function.ts","line":426,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/function.ts#L426"}],"target":530,"is":{"declaration":true},"location":{"query":"Module.Utils","hash":"pipe"},"text":{},"parentId":614},{"id":1598,"name":"promisify","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/utils/src/function.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/function.ts","line":580,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/function.ts#L580"}],"target":547,"is":{"declaration":true},"location":{"query":"Module.Utils","hash":"promisify"},"text":{},"parentId":614},{"id":1576,"name":"randomHexColor","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/utils/src/color.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/color.ts","line":15,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/color.ts#L15"}],"target":388,"is":{"declaration":true},"location":{"query":"Module.Utils","hash":"randomHexColor"},"text":{},"parentId":614},{"id":1614,"name":"randomIntArrayInRange","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/utils/src/number.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/number.ts","line":139,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/number.ts#L139"}],"target":681,"is":{"declaration":true},"location":{"query":"Module.Utils","hash":"randomIntArrayInRange"},"text":{},"parentId":614},{"id":1612,"name":"randomIntegerInRange","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/utils/src/number.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/number.ts","line":112,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/number.ts#L112"}],"target":673,"is":{"declaration":true},"location":{"query":"Module.Utils","hash":"randomIntegerInRange"},"text":{},"parentId":614},{"id":1613,"name":"randomNumberInRange","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/utils/src/number.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/number.ts","line":125,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/number.ts#L125"}],"target":677,"is":{"declaration":true},"location":{"query":"Module.Utils","hash":"randomNumberInRange"},"text":{},"parentId":614},{"id":1558,"name":"remove","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/utils/src/array.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/array.ts","line":915,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/array.ts#L915"}],"target":282,"is":{"declaration":true},"location":{"query":"Module.Utils","hash":"remove"},"text":{},"parentId":614},{"id":1637,"name":"reverseString","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/utils/src/string.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/string.ts","line":315,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/string.ts#L315"}],"target":778,"is":{"declaration":true},"location":{"query":"Module.Utils","hash":"reverseString"},"text":{},"parentId":614},{"id":1615,"name":"round","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/utils/src/number.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/number.ts","line":155,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/number.ts#L155"}],"target":686,"is":{"declaration":true},"location":{"query":"Module.Utils","hash":"round"},"text":{},"parentId":614},{"id":1590,"name":"runPromisesInSeries","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/utils/src/function.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/function.ts","line":160,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/function.ts#L160"}],"target":482,"is":{"declaration":true},"location":{"query":"Module.Utils","hash":"runPromisesInSeries"},"text":{},"parentId":614},{"id":1682,"name":"safeJSONParse","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/utils/src/json.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/json.ts","line":20,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/json.ts#L20"}],"target":616,"is":{"declaration":true},"location":{"query":"Module.Utils","hash":"safeJSONParse"},"text":{},"parentId":614},{"id":1551,"name":"sample","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/utils/src/array.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/array.ts","line":695,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/array.ts#L695"}],"target":258,"is":{"declaration":true},"location":{"query":"Module.Utils","hash":"sample"},"text":{},"parentId":614},{"id":1552,"name":"sampleSize","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/utils/src/array.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/array.ts","line":721,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/array.ts#L721"}],"target":261,"is":{"declaration":true},"location":{"query":"Module.Utils","hash":"sampleSize"},"text":{},"parentId":614},{"id":1553,"name":"shuffle","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/utils/src/array.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/array.ts","line":752,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/array.ts#L752"}],"target":265,"is":{"declaration":true},"location":{"query":"Module.Utils","hash":"shuffle"},"text":{},"parentId":614},{"id":1534,"name":"size","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/utils/src/array.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/array.ts","line":181,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/array.ts#L181"}],"target":167,"is":{"declaration":true},"location":{"query":"Module.Utils","hash":"size"},"text":{},"parentId":614},{"id":1599,"name":"sleep","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/utils/src/function.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/function.ts","line":633,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/function.ts#L633"}],"target":562,"is":{"declaration":true},"location":{"query":"Module.Utils","hash":"sleep"},"text":{},"parentId":614},{"id":1659,"name":"sortBy","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/utils/src/collection.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/collection.ts","line":140,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/collection.ts#L140"}],"target":372,"is":{"declaration":true},"location":{"query":"Module.Utils","hash":"sortBy"},"text":{},"parentId":614},{"id":1633,"name":"splitLines","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/utils/src/string.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/string.ts","line":170,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/string.ts#L170"}],"target":765,"is":{"declaration":true},"location":{"query":"Module.Utils","hash":"splitLines"},"text":{},"parentId":614},{"id":1634,"name":"stripHTMLTags","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/utils/src/string.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/string.ts","line":204,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/string.ts#L204"}],"target":768,"is":{"declaration":true},"location":{"query":"Module.Utils","hash":"stripHTMLTags"},"text":{},"parentId":614},{"id":1616,"name":"sum","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/utils/src/number.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/number.ts","line":173,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/number.ts#L173"}],"target":690,"is":{"declaration":true},"location":{"query":"Module.Utils","hash":"sum"},"text":{},"parentId":614},{"id":1600,"name":"throttle","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/utils/src/function.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/function.ts","line":675,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/function.ts#L675"}],"target":565,"is":{"declaration":true},"location":{"query":"Module.Utils","hash":"throttle"},"text":{},"parentId":614},{"id":1591,"name":"timeTaken","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/utils/src/function.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/function.ts","line":202,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/function.ts#L202"}],"target":488,"is":{"declaration":true},"location":{"query":"Module.Utils","hash":"timeTaken"},"text":{},"parentId":614},{"id":1644,"name":"toCurrency","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/utils/src/trade.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/trade.ts","line":42,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/trade.ts#L42"}],"target":806,"is":{"declaration":true},"location":{"query":"Module.Utils","hash":"toCurrency"},"text":{},"parentId":614},{"id":1638,"name":"truncateString","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/utils/src/string.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/string.ts","line":353,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/string.ts#L353"}],"target":781,"is":{"declaration":true},"location":{"query":"Module.Utils","hash":"truncateString"},"text":{},"parentId":614},{"id":1645,"name":"type","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/utils/src/type.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/type.ts","line":40,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/type.ts#L40"}],"target":812,"is":{"declaration":true},"location":{"query":"Module.Utils","hash":"type"},"text":{},"parentId":614},{"id":1684,"name":"unflattenJSON","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/utils/src/json.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/json.ts","line":69,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/json.ts#L69"}],"target":625,"is":{"declaration":true},"location":{"query":"Module.Utils","hash":"unflattenJSON"},"text":{},"parentId":614},{"id":1555,"name":"unique","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/utils/src/array.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/array.ts","line":816,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/array.ts#L816"}],"target":272,"is":{"declaration":true},"location":{"query":"Module.Utils","hash":"unique"},"text":{},"parentId":614},{"id":1658,"name":"unzip","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/utils/src/collection.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/collection.ts","line":112,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/collection.ts#L112"}],"target":369,"is":{"declaration":true},"location":{"query":"Module.Utils","hash":"unzip"},"text":{},"parentId":614},{"id":1567,"name":"validateLicensePlate","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/utils/src/check.plus.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/check.plus.ts","line":40,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/check.plus.ts#L40"}],"target":319,"is":{"declaration":true},"location":{"query":"Module.Utils","hash":"validateLicensePlate"},"text":{},"parentId":614},{"id":1566,"name":"validatePassport","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/utils/src/check.plus.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/check.plus.ts","line":23,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/check.plus.ts#L23"}],"target":316,"is":{"declaration":true},"location":{"query":"Module.Utils","hash":"validatePassport"},"text":{},"parentId":614},{"id":1657,"name":"zip","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/utils/src/collection.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/collection.ts","line":92,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/collection.ts#L92"}],"target":366,"is":{"declaration":true},"location":{"query":"Module.Utils","hash":"zip"},"text":{},"parentId":614}],"groups":[{"title":"References","children":[1563,1587,1602,1562,1626,1564,1532,1530,1531,1533,1535,1588,1611,1629,1642,1630,1631,1660,1536,1594,1569,1568,1537,1617,1687,1538,1685,1627,1595,1539,1603,1580,1585,1601,1632,1540,1589,1542,1543,1628,1559,1544,1545,1639,1651,1554,1604,1560,1556,1541,1683,1620,1677,1675,1674,1676,1681,1680,1679,1678,1636,1597,1605,1581,1577,1578,1582,1586,1565,1655,1624,1546,1557,1547,1548,1549,1583,1610,1652,1575,1673,1584,1641,1665,1654,1606,1570,1625,1619,1650,1666,1667,1571,1618,1669,1672,1648,1649,1608,1573,1668,1574,1653,1670,1647,1579,1646,1572,1663,1662,1609,1671,1664,1607,1643,1622,1640,1561,1592,1686,1661,1550,1621,1593,1635,1656,1623,1596,1598,1576,1614,1612,1613,1558,1637,1615,1590,1682,1551,1552,1553,1534,1599,1659,1633,1634,1616,1600,1591,1644,1638,1645,1684,1555,1658,1567,1566,1657]}],"sources":[{"fileName":"packages/utils/src/index.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/index.ts","line":19,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/index.ts#L19"}],"is":{"declaration":true},"location":{"query":"Module.Utils","hash":""},"text":{"comment":"
    Fileoverview:

    Main entry point for the utility library.

    \n

    This is the main entry point for the utility library, exporting all available utility functions.\nThe library provides a comprehensive collection of utility functions organized into modules\nfor common tasks such as array manipulation, string processing, object handling, type checking,\nmathematical operations, date handling, and more.

    \n
    Author:

    Wayne

    \n
    Since:

    1.0.0

    \n"}} diff --git a/docs/v1.0.0-beta01/data/Module.Validators.json b/docs/v1.0.0-beta01/data/Module.Validators.json new file mode 100644 index 000000000..cce68617c --- /dev/null +++ b/docs/v1.0.0-beta01/data/Module.Validators.json @@ -0,0 +1 @@ +{"id":844,"name":"Validators","kind":2,"kindString":"Module","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@description","content":[{"kind":"text","text":"Extended validation utilities for various data formats"}]},{"tag":"@author","content":[{"kind":"text","text":"Wayne"}]},{"tag":"@Date","content":[{"kind":"text","text":"2025-11-16"}]},{"tag":"@LastEditTime","content":[{"kind":"text","text":"2025-11-18 11:27:32"}]}]},"originalName":"utils/src/validators","children":[],"groups":[{"title":"Functions","children":[878,854,857,860,866,875,863,869,848,845,872,851]}],"sources":[{"fileName":"packages/utils/src/validators.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/validators.ts","line":19,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/validators.ts#L19"}],"is":{"declaration":true},"location":{"query":"Module.Validators","hash":""},"text":{"comment":"
    Description:

    Extended validation utilities for various data formats

    \n
    Author:

    Wayne

    \n
    Date:

    2025-11-16

    \n
    Lastedittime:

    2025-11-18 11:27:32

    \n"}} diff --git a/docs/v1.0.0-beta01/data/Module.canvas-utils/src.json b/docs/v1.0.0-beta01/data/Module.canvas-utils/src.json new file mode 100644 index 000000000..148623921 --- /dev/null +++ b/docs/v1.0.0-beta01/data/Module.canvas-utils/src.json @@ -0,0 +1 @@ +{"id":1451,"name":"canvas-utils/src","kind":2,"kindString":"Module","flags":{},"children":[],"groups":[{"title":"Interfaces","children":[2171]},{"title":"Type Aliases","children":[2175,2174,2179]},{"title":"Variables","children":[2047,2050,2048,2049]},{"title":"Functions","children":[2068,2168,2134,2070,2059,2143,2114,2109,2120,2128,2051,2078,2095,2098,2151,2105,2075,2081,2085,2102,2092,2089,2154,2139,2160,2163,2063]}],"sources":[{"fileName":"packages/canvas-utils/src/index.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/canvas-utils/src/index.ts","line":7,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/canvas-utils/src/index.ts#L7"}],"is":{"declaration":true},"location":{"query":"Module.canvas-utils/src","hash":""},"text":{}} diff --git a/docs/v1.0.0-beta01/data/Module.json b/docs/v1.0.0-beta01/data/Module.json new file mode 100644 index 000000000..8bb133c31 --- /dev/null +++ b/docs/v1.0.0-beta01/data/Module.json @@ -0,0 +1 @@ +{"id":615,"name":"JSON","kind":2,"kindString":"Module","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@description","content":[{"kind":"text","text":"Advanced JSON processing utilities"}]},{"tag":"@author","content":[{"kind":"text","text":"Wayne"}]},{"tag":"@Date","content":[{"kind":"text","text":"2025-11-16"}]},{"tag":"@LastEditTime","content":[{"kind":"text","text":"2025-11-18 11:27:32"}]}]},"originalName":"utils/src/json","children":[],"groups":[{"title":"Functions","children":[638,628,621,635,616,625]}],"sources":[{"fileName":"packages/utils/src/json.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/json.ts","line":20,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/json.ts#L20"}],"is":{"declaration":true},"location":{"query":"Module.JSON","hash":""},"text":{"comment":"
    Description:

    Advanced JSON processing utilities

    \n
    Author:

    Wayne

    \n
    Date:

    2025-11-16

    \n
    Lastedittime:

    2025-11-18 11:27:32

    \n"}} diff --git a/docs/v1.0.0-beta01/data/Module.jump.json b/docs/v1.0.0-beta01/data/Module.jump.json new file mode 100644 index 000000000..79bf10632 --- /dev/null +++ b/docs/v1.0.0-beta01/data/Module.jump.json @@ -0,0 +1 @@ +{"id":1140,"name":"jump","kind":2,"kindString":"Module","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@author","content":[{"kind":"text","text":"Wayne"}]},{"tag":"@Date","content":[{"kind":"text","text":"2025-05-11 10:53:56"}]},{"tag":"@LastEditTime","content":[{"kind":"text","text":"2025-05-11 19:10:33"}]}]},"originalName":"web-utils/src/navigate","children":[],"groups":[{"title":"Interfaces","children":[1148]},{"title":"Functions","children":[1145,1141]}],"sources":[{"fileName":"packages/web-utils/src/navigate.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/navigate.ts","line":11,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/navigate.ts#L11"}],"is":{"declaration":true},"location":{"query":"Module.jump","hash":""},"text":{"comment":"
    Author:

    Wayne

    \n
    Date:

    2025-05-11 10:53:56

    \n
    Lastedittime:

    2025-05-11 19:10:33

    \n"}} diff --git a/docs/v1.0.0-beta01/data/Module.keyboard.json b/docs/v1.0.0-beta01/data/Module.keyboard.json new file mode 100644 index 000000000..6651bde62 --- /dev/null +++ b/docs/v1.0.0-beta01/data/Module.keyboard.json @@ -0,0 +1 @@ +{"id":1086,"name":"keyboard","kind":2,"kindString":"Module","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@author","content":[{"kind":"text","text":"Wayne"}]},{"tag":"@Date","content":[{"kind":"text","text":"2024-04-07 13:45:27"}]},{"tag":"@LastEditTime","content":[{"kind":"text","text":"2024-08-25 10:14:47"}]}]},"originalName":"web-utils/src/keyboard","children":[],"groups":[{"title":"Functions","children":[1087]}],"sources":[{"fileName":"packages/web-utils/src/keyboard.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/keyboard.ts","line":12,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/keyboard.ts#L12"}],"is":{"declaration":true},"location":{"query":"Module.keyboard","hash":""},"text":{"comment":"
    Author:

    Wayne

    \n
    Date:

    2024-04-07 13:45:27

    \n
    Lastedittime:

    2024-08-25 10:14:47

    \n"}} diff --git a/docs/v1.0.0-beta01/data/Module.loadAssets.json b/docs/v1.0.0-beta01/data/Module.loadAssets.json new file mode 100644 index 000000000..3cdac46b9 --- /dev/null +++ b/docs/v1.0.0-beta01/data/Module.loadAssets.json @@ -0,0 +1 @@ +{"id":1113,"name":"loadAssets","kind":2,"kindString":"Module","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@author","content":[{"kind":"text","text":"Wayne"}]},{"tag":"@Date","content":[{"kind":"text","text":"2024-04-07 13:45:27"}]},{"tag":"@LastEditTime","content":[{"kind":"text","text":"2024-08-25 10:14:05"}]}]},"originalName":"web-utils/src/loadAssets","children":[],"groups":[{"title":"Functions","children":[1135,1123,1126,1129,1132,1114,1118]}],"sources":[{"fileName":"packages/web-utils/src/loadAssets.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/loadAssets.ts","line":8,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/loadAssets.ts#L8"}],"is":{"declaration":true},"location":{"query":"Module.loadAssets","hash":""},"text":{"comment":"
    Author:

    Wayne

    \n
    Date:

    2024-04-07 13:45:27

    \n
    Lastedittime:

    2024-08-25 10:14:05

    \n"}} diff --git a/docs/v1.0.0-beta01/data/Module.node-img-build/src/handleImg.json b/docs/v1.0.0-beta01/data/Module.node-img-build/src/handleImg.json new file mode 100644 index 000000000..6ea506534 --- /dev/null +++ b/docs/v1.0.0-beta01/data/Module.node-img-build/src/handleImg.json @@ -0,0 +1 @@ +{"id":1453,"name":"node-img-build/src/handleImg","kind":2,"kindString":"Module","flags":{},"children":[],"groups":[{"title":"Interfaces","children":[1485,1489]},{"title":"Variables","children":[1491]},{"title":"Functions","children":[1480,1454,1475,1471,1467,1461]}],"sources":[{"fileName":"packages/node-img-build/src/handleImg.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/node-img-build/src/handleImg.ts","line":10,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-img-build/src/handleImg.ts#L10"}],"is":{"declaration":true},"location":{"query":"Module.node-img-build/src/handleImg","hash":""},"text":{}} diff --git a/docs/v1.0.0-beta01/data/Module.node-utils/src.json b/docs/v1.0.0-beta01/data/Module.node-utils/src.json new file mode 100644 index 000000000..e0bded85c --- /dev/null +++ b/docs/v1.0.0-beta01/data/Module.node-utils/src.json @@ -0,0 +1 @@ +{"id":881,"name":"node-utils/src","kind":2,"kindString":"Module","flags":{},"children":[],"groups":[{"title":"Interfaces","children":[1787,1762,1779]},{"title":"Variables","children":[1761,1784]},{"title":"Functions","children":[1814,1903,1837,1834,1918,1731,1792,1823,1826,1874,1882,1866,1852,1759,1745,1804,1798,1802,1702,1829,1819,1859,1810,1843,1923,1807,1840,1846,1816,1699,1785,1899,1849,1915,1790,1862,1796,1725,1728,1709,1740,1750,1754,1895,1705,1907,1911,1794,1800,1688,1886,1712,1717]}],"sources":[{"fileName":"packages/node-utils/src/index.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/node-utils/src/index.ts","line":18,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-utils/src/index.ts#L18"}],"is":{"declaration":true},"location":{"query":"Module.node-utils/src","hash":""},"text":{}} diff --git a/docs/v1.0.0-beta01/data/Module.web-utils/src.json b/docs/v1.0.0-beta01/data/Module.web-utils/src.json new file mode 100644 index 000000000..5ef98ece8 --- /dev/null +++ b/docs/v1.0.0-beta01/data/Module.web-utils/src.json @@ -0,0 +1 @@ +{"id":1085,"name":"web-utils/src","kind":2,"kindString":"Module","flags":{},"children":[{"id":1969,"name":"NavigateOptions","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/web-utils/src/navigate.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/navigate.ts","line":11,"character":17,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/navigate.ts#L11"}],"target":1148,"is":{"declaration":true},"location":{"query":"Module.web-utils/src","hash":"NavigateOptions"},"text":{},"parentId":1085},{"id":2004,"name":"WorkerPool","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/web-utils/src/worker.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/worker.ts","line":30,"character":13,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/worker.ts#L30"}],"target":1410,"is":{"declaration":true},"location":{"query":"Module.web-utils/src","hash":"WorkerPool"},"text":{},"parentId":1085},{"id":2017,"name":"addCSRFHeader","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/web-utils/src/security.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/security.ts","line":221,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/security.ts#L221"}],"target":1326,"is":{"declaration":true},"location":{"query":"Module.web-utils/src","hash":"addCSRFHeader"},"text":{},"parentId":1085},{"id":1937,"name":"addClass","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/web-utils/src/dom.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/dom.ts","line":111,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/dom.ts#L111"}],"target":920,"is":{"declaration":true},"location":{"query":"Module.web-utils/src","hash":"addClass"},"text":{},"parentId":1085},{"id":1950,"name":"animateScrollTo","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/web-utils/src/dom.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/dom.ts","line":834,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/dom.ts#L834"}],"target":971,"is":{"declaration":true},"location":{"query":"Module.web-utils/src","hash":"animateScrollTo"},"text":{},"parentId":1085},{"id":2037,"name":"autoSaveForm","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/web-utils/src/form.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/form.ts","line":115,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/form.ts#L115"}],"target":1020,"is":{"declaration":true},"location":{"query":"Module.web-utils/src","hash":"autoSaveForm"},"text":{},"parentId":1085},{"id":2034,"name":"cancelIdleCallbackPolyfill","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/web-utils/src/network.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/network.ts","line":185,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/network.ts#L185"}],"target":1190,"is":{"declaration":true},"location":{"query":"Module.web-utils/src","hash":"cancelIdleCallbackPolyfill"},"text":{},"parentId":1085},{"id":1963,"name":"compressImage","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/web-utils/src/image.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/image.ts","line":144,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/image.ts#L144"}],"target":1081,"is":{"declaration":true},"location":{"query":"Module.web-utils/src","hash":"compressImage"},"text":{},"parentId":1085},{"id":1934,"name":"copyToClipboard","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/web-utils/src/clipboard.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/clipboard.ts","line":134,"character":22,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/clipboard.ts#L134"}],"target":885,"is":{"declaration":true},"location":{"query":"Module.web-utils/src","hash":"copyToClipboard"},"text":{},"parentId":1085},{"id":2020,"name":"createBaseCSP","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/web-utils/src/security.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/security.ts","line":286,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/security.ts#L286"}],"target":1336,"is":{"declaration":true},"location":{"query":"Module.web-utils/src","hash":"createBaseCSP"},"text":{},"parentId":1085},{"id":2001,"name":"createInlineWorker","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/web-utils/src/worker.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/worker.ts","line":14,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/worker.ts#L14"}],"target":1385,"is":{"declaration":true},"location":{"query":"Module.web-utils/src","hash":"createInlineWorker"},"text":{},"parentId":1085},{"id":2026,"name":"createPerformanceObserver","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/web-utils/src/performance.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/performance.ts","line":212,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/performance.ts#L212"}],"target":1232,"is":{"declaration":true},"location":{"query":"Module.web-utils/src","hash":"createPerformanceObserver"},"text":{},"parentId":1085},{"id":2002,"name":"createWorkerTask","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/web-utils/src/worker.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/worker.ts","line":170,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/worker.ts#L170"}],"target":1390,"is":{"declaration":true},"location":{"query":"Module.web-utils/src","hash":"createWorkerTask"},"text":{},"parentId":1085},{"id":1962,"name":"cropImage","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/web-utils/src/image.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/image.ts","line":113,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/image.ts#L113"}],"target":1074,"is":{"declaration":true},"location":{"query":"Module.web-utils/src","hash":"cropImage"},"text":{},"parentId":1085},{"id":1929,"name":"delCookie","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/web-utils/src/cookies.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/cookies.ts","line":179,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/cookies.ts#L179"}],"target":899,"is":{"declaration":true},"location":{"query":"Module.web-utils/src","hash":"delCookie"},"text":{},"parentId":1085},{"id":1952,"name":"disableCopy","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/web-utils/src/dom.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/dom.ts","line":961,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/dom.ts#L961"}],"target":978,"is":{"declaration":true},"location":{"query":"Module.web-utils/src","hash":"disableCopy"},"text":{},"parentId":1085},{"id":1956,"name":"downloadFile","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/web-utils/src/file.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/file.ts","line":103,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/file.ts#L103"}],"target":995,"is":{"declaration":true},"location":{"query":"Module.web-utils/src","hash":"downloadFile"},"text":{},"parentId":1085},{"id":1957,"name":"downloadImageFileByUrl","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/web-utils/src/file.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/file.ts","line":128,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/file.ts#L128"}],"target":1000,"is":{"declaration":true},"location":{"query":"Module.web-utils/src","hash":"downloadImageFileByUrl"},"text":{},"parentId":1085},{"id":1941,"name":"elementContains","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/web-utils/src/dom.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/dom.ts","line":293,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/dom.ts#L293"}],"target":936,"is":{"declaration":true},"location":{"query":"Module.web-utils/src","hash":"elementContains"},"text":{},"parentId":1085},{"id":1989,"name":"enterFullscreen","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/web-utils/src/screen.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/screen.ts","line":62,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/screen.ts#L62"}],"target":1272,"is":{"declaration":true},"location":{"query":"Module.web-utils/src","hash":"enterFullscreen"},"text":{},"parentId":1085},{"id":1945,"name":"escapeHTML","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/web-utils/src/dom.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/dom.ts","line":468,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/dom.ts#L468"}],"target":951,"is":{"declaration":true},"location":{"query":"Module.web-utils/src","hash":"escapeHTML"},"text":{},"parentId":1085},{"id":2005,"name":"escapeHtml","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/web-utils/src/security.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/security.ts","line":18,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/security.ts#L18"}],"target":1288,"is":{"declaration":true},"location":{"query":"Module.web-utils/src","hash":"escapeHtml"},"text":{},"parentId":1085},{"id":1990,"name":"exitFullscreen","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/web-utils/src/screen.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/screen.ts","line":85,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/screen.ts#L85"}],"target":1275,"is":{"declaration":true},"location":{"query":"Module.web-utils/src","hash":"exitFullscreen"},"text":{},"parentId":1085},{"id":2038,"name":"formDiff","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/web-utils/src/form.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/form.ts","line":168,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/form.ts#L168"}],"target":1027,"is":{"declaration":true},"location":{"query":"Module.web-utils/src","hash":"formDiff"},"text":{},"parentId":1085},{"id":2043,"name":"formatCurrencyLocale","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/web-utils/src/i18n.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/i18n.ts","line":77,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/i18n.ts#L77"}],"target":1047,"is":{"declaration":true},"location":{"query":"Module.web-utils/src","hash":"formatCurrencyLocale"},"text":{},"parentId":1085},{"id":2041,"name":"formatDateLocale","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/web-utils/src/i18n.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/i18n.ts","line":34,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/i18n.ts#L34"}],"target":1037,"is":{"declaration":true},"location":{"query":"Module.web-utils/src","hash":"formatDateLocale"},"text":{},"parentId":1085},{"id":2042,"name":"formatNumberLocale","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/web-utils/src/i18n.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/i18n.ts","line":56,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/i18n.ts#L56"}],"target":1042,"is":{"declaration":true},"location":{"query":"Module.web-utils/src","hash":"formatNumberLocale"},"text":{},"parentId":1085},{"id":2046,"name":"formatRelativeTime","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/web-utils/src/i18n.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/i18n.ts","line":131,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/i18n.ts#L131"}],"target":1060,"is":{"declaration":true},"location":{"query":"Module.web-utils/src","hash":"formatRelativeTime"},"text":{},"parentId":1085},{"id":2008,"name":"generateCSPNonce","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/web-utils/src/security.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/security.ts","line":85,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/security.ts#L85"}],"target":1297,"is":{"declaration":true},"location":{"query":"Module.web-utils/src","hash":"generateCSPNonce"},"text":{},"parentId":1085},{"id":2014,"name":"generateCSRFToken","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/web-utils/src/security.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/security.ts","line":189,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/security.ts#L189"}],"target":1317,"is":{"declaration":true},"location":{"query":"Module.web-utils/src","hash":"generateCSRFToken"},"text":{},"parentId":1085},{"id":1998,"name":"getBaseUrl","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/web-utils/src/url.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/url.ts","line":93,"character":13,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/url.ts#L93"}],"target":1375,"is":{"declaration":true},"location":{"query":"Module.web-utils/src","hash":"getBaseUrl"},"text":{},"parentId":1085},{"id":2016,"name":"getCSRFToken","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/web-utils/src/security.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/security.ts","line":211,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/security.ts#L211"}],"target":1323,"is":{"declaration":true},"location":{"query":"Module.web-utils/src","hash":"getCSRFToken"},"text":{},"parentId":1085},{"id":1993,"name":"getClientHeight","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/web-utils/src/screen.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/screen.ts","line":15,"character":13,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/screen.ts#L15"}],"target":1283,"is":{"declaration":true},"location":{"query":"Module.web-utils/src","hash":"getClientHeight"},"text":{},"parentId":1085},{"id":1994,"name":"getClientWidth","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/web-utils/src/screen.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/screen.ts","line":25,"character":13,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/screen.ts#L25"}],"target":1285,"is":{"declaration":true},"location":{"query":"Module.web-utils/src","hash":"getClientWidth"},"text":{},"parentId":1085},{"id":1927,"name":"getCookie","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/web-utils/src/cookies.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/cookies.ts","line":46,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/cookies.ts#L46"}],"target":889,"is":{"declaration":true},"location":{"query":"Module.web-utils/src","hash":"getCookie"},"text":{},"parentId":1085},{"id":2045,"name":"getDirection","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/web-utils/src/i18n.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/i18n.ts","line":112,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/i18n.ts#L112"}],"target":1057,"is":{"declaration":true},"location":{"query":"Module.web-utils/src","hash":"getDirection"},"text":{},"parentId":1085},{"id":1932,"name":"getElementSize","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/web-utils/src/css.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/css.ts","line":135,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/css.ts#L135"}],"target":909,"is":{"declaration":true},"location":{"query":"Module.web-utils/src","hash":"getElementSize"},"text":{},"parentId":1085},{"id":1958,"name":"getFileExtension","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/web-utils/src/file.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/file.ts","line":165,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/file.ts#L165"}],"target":1005,"is":{"declaration":true},"location":{"query":"Module.web-utils/src","hash":"getFileExtension"},"text":{},"parentId":1085},{"id":1960,"name":"getImageSize","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/web-utils/src/image.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/image.ts","line":52,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/image.ts#L52"}],"target":1069,"is":{"declaration":true},"location":{"query":"Module.web-utils/src","hash":"getImageSize"},"text":{},"parentId":1085},{"id":1970,"name":"getKeyName","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/web-utils/src/keyboard.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/keyboard.ts","line":124,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/keyboard.ts#L124"}],"target":1087,"is":{"declaration":true},"location":{"query":"Module.web-utils/src","hash":"getKeyName"},"text":{},"parentId":1085},{"id":2040,"name":"getLocale","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/web-utils/src/i18n.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/i18n.ts","line":16,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/i18n.ts#L16"}],"target":1035,"is":{"declaration":true},"location":{"query":"Module.web-utils/src","hash":"getLocale"},"text":{},"parentId":1085},{"id":1985,"name":"getMobileBrandIdentify","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/web-utils/src/platform.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/platform.ts","line":208,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/platform.ts#L208"}],"target":1260,"is":{"declaration":true},"location":{"query":"Module.web-utils/src","hash":"getMobileBrandIdentify"},"text":{},"parentId":1085},{"id":1984,"name":"getMobileOS","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/web-utils/src/platform.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/platform.ts","line":184,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/platform.ts#L184"}],"target":1255,"is":{"declaration":true},"location":{"query":"Module.web-utils/src","hash":"getMobileOS"},"text":{},"parentId":1085},{"id":1983,"name":"getMobilePlatform","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/web-utils/src/platform.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/platform.ts","line":168,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/platform.ts#L168"}],"target":1253,"is":{"declaration":true},"location":{"query":"Module.web-utils/src","hash":"getMobilePlatform"},"text":{},"parentId":1085},{"id":2030,"name":"getNetworkInfo","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/web-utils/src/network.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/network.ts","line":58,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/network.ts#L58"}],"target":1157,"is":{"declaration":true},"location":{"query":"Module.web-utils/src","hash":"getNetworkInfo"},"text":{},"parentId":1085},{"id":2029,"name":"getNetworkType","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/web-utils/src/network.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/network.ts","line":32,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/network.ts#L32"}],"target":1155,"is":{"declaration":true},"location":{"query":"Module.web-utils/src","hash":"getNetworkType"},"text":{},"parentId":1085},{"id":1946,"name":"getOffsetPos","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/web-utils/src/dom.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/dom.ts","line":525,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/dom.ts#L525"}],"target":954,"is":{"declaration":true},"location":{"query":"Module.web-utils/src","hash":"getOffsetPos"},"text":{},"parentId":1085},{"id":1981,"name":"getPcExplore","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/web-utils/src/platform.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/platform.ts","line":103,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/platform.ts#L103"}],"target":1249,"is":{"declaration":true},"location":{"query":"Module.web-utils/src","hash":"getPcExplore"},"text":{},"parentId":1085},{"id":1930,"name":"getPrefix","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/web-utils/src/css.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/css.ts","line":58,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/css.ts#L58"}],"target":903,"is":{"declaration":true},"location":{"query":"Module.web-utils/src","hash":"getPrefix"},"text":{},"parentId":1085},{"id":1948,"name":"getScrollPosition","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/web-utils/src/dom.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/dom.ts","line":641,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/dom.ts#L641"}],"target":962,"is":{"declaration":true},"location":{"query":"Module.web-utils/src","hash":"getScrollPosition"},"text":{},"parentId":1085},{"id":1947,"name":"getScrollTop","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/web-utils/src/dom.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/dom.ts","line":593,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/dom.ts#L593"}],"target":960,"is":{"declaration":true},"location":{"query":"Module.web-utils/src","hash":"getScrollTop"},"text":{},"parentId":1085},{"id":1931,"name":"getStyle","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/web-utils/src/css.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/css.ts","line":117,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/css.ts#L117"}],"target":905,"is":{"declaration":true},"location":{"query":"Module.web-utils/src","hash":"getStyle"},"text":{},"parentId":1085},{"id":1982,"name":"getSystemOS","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/web-utils/src/platform.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/platform.ts","line":146,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/platform.ts#L146"}],"target":1251,"is":{"declaration":true},"location":{"query":"Module.web-utils/src","hash":"getSystemOS"},"text":{},"parentId":1085},{"id":1999,"name":"getUrlDomain","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/web-utils/src/url.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/url.ts","line":104,"character":13,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/url.ts#L104"}],"target":1378,"is":{"declaration":true},"location":{"query":"Module.web-utils/src","hash":"getUrlDomain"},"text":{},"parentId":1085},{"id":1996,"name":"getUrlParam","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/web-utils/src/url.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/url.ts","line":48,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/url.ts#L48"}],"target":1362,"is":{"declaration":true},"location":{"query":"Module.web-utils/src","hash":"getUrlParam"},"text":{},"parentId":1085},{"id":2023,"name":"getWebVitals","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/web-utils/src/performance.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/performance.ts","line":59,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/performance.ts#L59"}],"target":1207,"is":{"declaration":true},"location":{"query":"Module.web-utils/src","hash":"getWebVitals"},"text":{},"parentId":1085},{"id":1936,"name":"hasClass","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/web-utils/src/dom.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/dom.ts","line":77,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/dom.ts#L77"}],"target":916,"is":{"declaration":true},"location":{"query":"Module.web-utils/src","hash":"hasClass"},"text":{},"parentId":1085},{"id":1942,"name":"hide","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/web-utils/src/dom.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/dom.ts","line":330,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/dom.ts#L330"}],"target":940,"is":{"declaration":true},"location":{"query":"Module.web-utils/src","hash":"hide"},"text":{},"parentId":1085},{"id":1968,"name":"httpsRedirect","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/web-utils/src/navigate.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/navigate.ts","line":58,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/navigate.ts#L58"}],"target":1145,"is":{"declaration":true},"location":{"query":"Module.web-utils/src","hash":"httpsRedirect"},"text":{},"parentId":1085},{"id":1939,"name":"insertAfter","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/web-utils/src/dom.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/dom.ts","line":211,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/dom.ts#L211"}],"target":928,"is":{"declaration":true},"location":{"query":"Module.web-utils/src","hash":"insertAfter"},"text":{},"parentId":1085},{"id":1940,"name":"insertBefore","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/web-utils/src/dom.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/dom.ts","line":252,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/dom.ts#L252"}],"target":932,"is":{"declaration":true},"location":{"query":"Module.web-utils/src","hash":"insertBefore"},"text":{},"parentId":1085},{"id":2021,"name":"isBase64","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/web-utils/src/others.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/others.ts","line":13,"character":13,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/others.ts#L13"}],"target":1194,"is":{"declaration":true},"location":{"query":"Module.web-utils/src","hash":"isBase64"},"text":{},"parentId":1085},{"id":1978,"name":"isBrowser","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/web-utils/src/platform.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/platform.ts","line":62,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/platform.ts#L62"}],"target":1243,"is":{"declaration":true},"location":{"query":"Module.web-utils/src","hash":"isBrowser"},"text":{},"parentId":1085},{"id":1987,"name":"isFullScreen","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/web-utils/src/screen.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/screen.ts","line":33,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/screen.ts#L33"}],"target":1268,"is":{"declaration":true},"location":{"query":"Module.web-utils/src","hash":"isFullScreen"},"text":{},"parentId":1085},{"id":1988,"name":"isFullScreenEnabled","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/web-utils/src/screen.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/screen.ts","line":47,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/screen.ts#L47"}],"target":1270,"is":{"declaration":true},"location":{"query":"Module.web-utils/src","hash":"isFullScreenEnabled"},"text":{},"parentId":1085},{"id":1959,"name":"isImageLoaded","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/web-utils/src/image.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/image.ts","line":23,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/image.ts#L23"}],"target":1066,"is":{"declaration":true},"location":{"query":"Module.web-utils/src","hash":"isImageLoaded"},"text":{},"parentId":1085},{"id":2028,"name":"isOnline","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/web-utils/src/network.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/network.ts","line":20,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/network.ts#L20"}],"target":1153,"is":{"declaration":true},"location":{"query":"Module.web-utils/src","hash":"isOnline"},"text":{},"parentId":1085},{"id":1980,"name":"isOpenHarmony","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/web-utils/src/platform.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/platform.ts","line":94,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/platform.ts#L94"}],"target":1247,"is":{"declaration":true},"location":{"query":"Module.web-utils/src","hash":"isOpenHarmony"},"text":{},"parentId":1085},{"id":1979,"name":"isPC","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/web-utils/src/platform.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/platform.ts","line":75,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/platform.ts#L75"}],"target":1245,"is":{"declaration":true},"location":{"query":"Module.web-utils/src","hash":"isPC"},"text":{},"parentId":1085},{"id":1935,"name":"isPageVisible","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/web-utils/src/dom.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/dom.ts","line":38,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/dom.ts#L38"}],"target":914,"is":{"declaration":true},"location":{"query":"Module.web-utils/src","hash":"isPageVisible"},"text":{},"parentId":1085},{"id":1961,"name":"isSupportWebP","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/web-utils/src/image.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/image.ts","line":83,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/image.ts#L83"}],"target":1072,"is":{"declaration":true},"location":{"query":"Module.web-utils/src","hash":"isSupportWebP"},"text":{},"parentId":1085},{"id":1992,"name":"keepScreenOn","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/web-utils/src/screen.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/screen.ts","line":125,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/screen.ts#L125"}],"target":1279,"is":{"declaration":true},"location":{"query":"Module.web-utils/src","hash":"keepScreenOn"},"text":{},"parentId":1085},{"id":1977,"name":"loadCSV","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/web-utils/src/loadAssets.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/loadAssets.ts","line":141,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/loadAssets.ts#L141"}],"target":1135,"is":{"declaration":true},"location":{"query":"Module.web-utils/src","hash":"loadCSV"},"text":{},"parentId":1085},{"id":1973,"name":"loadCss","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/web-utils/src/loadAssets.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/loadAssets.ts","line":63,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/loadAssets.ts#L63"}],"target":1123,"is":{"declaration":true},"location":{"query":"Module.web-utils/src","hash":"loadCss"},"text":{},"parentId":1085},{"id":1974,"name":"loadCssList","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/web-utils/src/loadAssets.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/loadAssets.ts","line":97,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/loadAssets.ts#L97"}],"target":1126,"is":{"declaration":true},"location":{"query":"Module.web-utils/src","hash":"loadCssList"},"text":{},"parentId":1085},{"id":1975,"name":"loadImage","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/web-utils/src/loadAssets.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/loadAssets.ts","line":111,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/loadAssets.ts#L111"}],"target":1129,"is":{"declaration":true},"location":{"query":"Module.web-utils/src","hash":"loadImage"},"text":{},"parentId":1085},{"id":1976,"name":"loadImageList","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/web-utils/src/loadAssets.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/loadAssets.ts","line":130,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/loadAssets.ts#L130"}],"target":1132,"is":{"declaration":true},"location":{"query":"Module.web-utils/src","hash":"loadImageList"},"text":{},"parentId":1085},{"id":1971,"name":"loadScript","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/web-utils/src/loadAssets.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/loadAssets.ts","line":22,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/loadAssets.ts#L22"}],"target":1114,"is":{"declaration":true},"location":{"query":"Module.web-utils/src","hash":"loadScript"},"text":{},"parentId":1085},{"id":1972,"name":"loadScriptList","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/web-utils/src/loadAssets.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/loadAssets.ts","line":48,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/loadAssets.ts#L48"}],"target":1118,"is":{"declaration":true},"location":{"query":"Module.web-utils/src","hash":"loadScriptList"},"text":{},"parentId":1085},{"id":2012,"name":"maskBankCard","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/web-utils/src/security.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/security.ts","line":145,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/security.ts#L145"}],"target":1308,"is":{"declaration":true},"location":{"query":"Module.web-utils/src","hash":"maskBankCard"},"text":{},"parentId":1085},{"id":2010,"name":"maskEmail","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/web-utils/src/security.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/security.ts","line":113,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/security.ts#L113"}],"target":1302,"is":{"declaration":true},"location":{"query":"Module.web-utils/src","hash":"maskEmail"},"text":{},"parentId":1085},{"id":2011,"name":"maskIDCard","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/web-utils/src/security.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/security.ts","line":133,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/security.ts#L133"}],"target":1305,"is":{"declaration":true},"location":{"query":"Module.web-utils/src","hash":"maskIDCard"},"text":{},"parentId":1085},{"id":2009,"name":"maskPhoneNumber","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/web-utils/src/security.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/security.ts","line":101,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/security.ts#L101"}],"target":1299,"is":{"declaration":true},"location":{"query":"Module.web-utils/src","hash":"maskPhoneNumber"},"text":{},"parentId":1085},{"id":2013,"name":"maskText","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/web-utils/src/security.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/security.ts","line":160,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/security.ts#L160"}],"target":1311,"is":{"declaration":true},"location":{"query":"Module.web-utils/src","hash":"maskText"},"text":{},"parentId":1085},{"id":2022,"name":"measureFPS","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/web-utils/src/performance.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/performance.ts","line":23,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/performance.ts#L23"}],"target":1198,"is":{"declaration":true},"location":{"query":"Module.web-utils/src","hash":"measureFPS"},"text":{},"parentId":1085},{"id":2025,"name":"measureLoadTime","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/web-utils/src/performance.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/performance.ts","line":174,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/performance.ts#L174"}],"target":1225,"is":{"declaration":true},"location":{"query":"Module.web-utils/src","hash":"measureLoadTime"},"text":{},"parentId":1085},{"id":2024,"name":"measureMemory","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/web-utils/src/performance.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/performance.ts","line":149,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/performance.ts#L149"}],"target":1219,"is":{"declaration":true},"location":{"query":"Module.web-utils/src","hash":"measureMemory"},"text":{},"parentId":1085},{"id":1967,"name":"navigateTo","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/web-utils/src/navigate.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/navigate.ts","line":34,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/navigate.ts#L34"}],"target":1141,"is":{"declaration":true},"location":{"query":"Module.web-utils/src","hash":"navigateTo"},"text":{},"parentId":1085},{"id":1943,"name":"nodeListToArray","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/web-utils/src/dom.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/dom.ts","line":372,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/dom.ts#L372"}],"target":943,"is":{"declaration":true},"location":{"query":"Module.web-utils/src","hash":"nodeListToArray"},"text":{},"parentId":1085},{"id":1966,"name":"onBeforeUnload","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/web-utils/src/lifecycle.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/lifecycle.ts","line":56,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/lifecycle.ts#L56"}],"target":1105,"is":{"declaration":true},"location":{"query":"Module.web-utils/src","hash":"onBeforeUnload"},"text":{},"parentId":1085},{"id":2031,"name":"onNetworkChange","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/web-utils/src/network.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/network.ts","line":97,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/network.ts#L97"}],"target":1165,"is":{"declaration":true},"location":{"query":"Module.web-utils/src","hash":"onNetworkChange"},"text":{},"parentId":1085},{"id":1964,"name":"onPageLoad","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/web-utils/src/lifecycle.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/lifecycle.ts","line":18,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/lifecycle.ts#L18"}],"target":1091,"is":{"declaration":true},"location":{"query":"Module.web-utils/src","hash":"onPageLoad"},"text":{},"parentId":1085},{"id":1965,"name":"onPageUnload","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/web-utils/src/lifecycle.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/lifecycle.ts","line":38,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/lifecycle.ts#L38"}],"target":1098,"is":{"declaration":true},"location":{"query":"Module.web-utils/src","hash":"onPageUnload"},"text":{},"parentId":1085},{"id":1997,"name":"paramsJoinUrl","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/web-utils/src/url.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/url.ts","line":71,"character":13,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/url.ts#L71"}],"target":1369,"is":{"declaration":true},"location":{"query":"Module.web-utils/src","hash":"paramsJoinUrl"},"text":{},"parentId":1085},{"id":2018,"name":"parseCSP","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/web-utils/src/security.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/security.ts","line":246,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/security.ts#L246"}],"target":1330,"is":{"declaration":true},"location":{"query":"Module.web-utils/src","hash":"parseCSP"},"text":{},"parentId":1085},{"id":1995,"name":"parseQueryString","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/web-utils/src/url.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/url.ts","line":18,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/url.ts#L18"}],"target":1359,"is":{"declaration":true},"location":{"query":"Module.web-utils/src","hash":"parseQueryString"},"text":{},"parentId":1085},{"id":2044,"name":"pluralize","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/web-utils/src/i18n.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/i18n.ts","line":97,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/i18n.ts#L97"}],"target":1052,"is":{"declaration":true},"location":{"query":"Module.web-utils/src","hash":"pluralize"},"text":{},"parentId":1085},{"id":1933,"name":"readClipboardText","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/web-utils/src/clipboard.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/clipboard.ts","line":60,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/clipboard.ts#L60"}],"target":883,"is":{"declaration":true},"location":{"query":"Module.web-utils/src","hash":"readClipboardText"},"text":{},"parentId":1085},{"id":1954,"name":"readFile","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/web-utils/src/file.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/file.ts","line":65,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/file.ts#L65"}],"target":989,"is":{"declaration":true},"location":{"query":"Module.web-utils/src","hash":"readFile"},"text":{},"parentId":1085},{"id":1955,"name":"readFileAsDataURL","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/web-utils/src/file.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/file.ts","line":84,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/file.ts#L84"}],"target":992,"is":{"declaration":true},"location":{"query":"Module.web-utils/src","hash":"readFileAsDataURL"},"text":{},"parentId":1085},{"id":1938,"name":"removeClass","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/web-utils/src/dom.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/dom.ts","line":161,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/dom.ts#L161"}],"target":924,"is":{"declaration":true},"location":{"query":"Module.web-utils/src","hash":"removeClass"},"text":{},"parentId":1085},{"id":1953,"name":"requestAnimFrame","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/web-utils/src/dom.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/dom.ts","line":767,"character":13,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/dom.ts#L767"}],"target":982,"is":{"declaration":true},"location":{"query":"Module.web-utils/src","hash":"requestAnimFrame"},"text":{},"parentId":1085},{"id":2033,"name":"requestIdleCallbackPolyfill","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/web-utils/src/network.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/network.ts","line":156,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/network.ts#L156"}],"target":1181,"is":{"declaration":true},"location":{"query":"Module.web-utils/src","hash":"requestIdleCallbackPolyfill"},"text":{},"parentId":1085},{"id":2039,"name":"resetFormField","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/web-utils/src/form.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/form.ts","line":192,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/form.ts#L192"}],"target":1031,"is":{"declaration":true},"location":{"query":"Module.web-utils/src","hash":"resetFormField"},"text":{},"parentId":1085},{"id":2027,"name":"resourceTiming","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/web-utils/src/performance.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/performance.ts","line":247,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/performance.ts#L247"}],"target":1239,"is":{"declaration":true},"location":{"query":"Module.web-utils/src","hash":"resourceTiming"},"text":{},"parentId":1085},{"id":2032,"name":"retryRequest","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/web-utils/src/network.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/network.ts","line":124,"character":22,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/network.ts#L124"}],"target":1173,"is":{"declaration":true},"location":{"query":"Module.web-utils/src","hash":"retryRequest"},"text":{},"parentId":1085},{"id":2007,"name":"sanitizeUrl","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/web-utils/src/security.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/security.ts","line":52,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/security.ts#L52"}],"target":1294,"is":{"declaration":true},"location":{"query":"Module.web-utils/src","hash":"sanitizeUrl"},"text":{},"parentId":1085},{"id":2035,"name":"serializeForm","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/web-utils/src/form.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/form.ts","line":20,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/form.ts#L20"}],"target":1009,"is":{"declaration":true},"location":{"query":"Module.web-utils/src","hash":"serializeForm"},"text":{},"parentId":1085},{"id":1944,"name":"setAttribute","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/web-utils/src/dom.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/dom.ts","line":413,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/dom.ts#L413"}],"target":946,"is":{"declaration":true},"location":{"query":"Module.web-utils/src","hash":"setAttribute"},"text":{},"parentId":1085},{"id":1928,"name":"setCookie","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/web-utils/src/cookies.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/cookies.ts","line":118,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/cookies.ts#L118"}],"target":892,"is":{"declaration":true},"location":{"query":"Module.web-utils/src","hash":"setCookie"},"text":{},"parentId":1085},{"id":1949,"name":"setScrollTop","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/web-utils/src/dom.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/dom.ts","line":696,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/dom.ts#L696"}],"target":968,"is":{"declaration":true},"location":{"query":"Module.web-utils/src","hash":"setScrollTop"},"text":{},"parentId":1085},{"id":1951,"name":"smoothScroll","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/web-utils/src/dom.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/dom.ts","line":907,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/dom.ts#L907"}],"target":975,"is":{"declaration":true},"location":{"query":"Module.web-utils/src","hash":"smoothScroll"},"text":{},"parentId":1085},{"id":2015,"name":"storeCSRFToken","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/web-utils/src/security.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/security.ts","line":202,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/security.ts#L202"}],"target":1319,"is":{"declaration":true},"location":{"query":"Module.web-utils/src","hash":"storeCSRFToken"},"text":{},"parentId":1085},{"id":2019,"name":"stringifyCSP","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/web-utils/src/security.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/security.ts","line":270,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/security.ts#L270"}],"target":1333,"is":{"declaration":true},"location":{"query":"Module.web-utils/src","hash":"stringifyCSP"},"text":{},"parentId":1085},{"id":1986,"name":"ua","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/web-utils/src/platform.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/platform.ts","line":13,"character":13,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/platform.ts#L13"}],"target":1262,"is":{"declaration":true},"location":{"query":"Module.web-utils/src","hash":"ua"},"text":{},"parentId":1085},{"id":2006,"name":"unescapeHtml","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/web-utils/src/security.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/security.ts","line":35,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/security.ts#L35"}],"target":1291,"is":{"declaration":true},"location":{"query":"Module.web-utils/src","hash":"unescapeHtml"},"text":{},"parentId":1085},{"id":2000,"name":"uniqueSlash","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/web-utils/src/url.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/url.ts","line":118,"character":13,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/url.ts#L118"}],"target":1381,"is":{"declaration":true},"location":{"query":"Module.web-utils/src","hash":"uniqueSlash"},"text":{},"parentId":1085},{"id":2036,"name":"validateForm","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/web-utils/src/form.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/form.ts","line":56,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/form.ts#L56"}],"target":1013,"is":{"declaration":true},"location":{"query":"Module.web-utils/src","hash":"validateForm"},"text":{},"parentId":1085},{"id":1991,"name":"wakeScreenLock","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/web-utils/src/screen.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/screen.ts","line":109,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/screen.ts#L109"}],"target":1277,"is":{"declaration":true},"location":{"query":"Module.web-utils/src","hash":"wakeScreenLock"},"text":{},"parentId":1085},{"id":2003,"name":"workerize","kind":8388608,"kindString":"Reference","flags":{},"sources":[{"fileName":"packages/web-utils/src/worker.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/worker.ts","line":197,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/worker.ts#L197"}],"target":1399,"is":{"declaration":true},"location":{"query":"Module.web-utils/src","hash":"workerize"},"text":{},"parentId":1085}],"groups":[{"title":"References","children":[1969,2004,2017,1937,1950,2037,2034,1963,1934,2020,2001,2026,2002,1962,1929,1952,1956,1957,1941,1989,1945,2005,1990,2038,2043,2041,2042,2046,2008,2014,1998,2016,1993,1994,1927,2045,1932,1958,1960,1970,2040,1985,1984,1983,2030,2029,1946,1981,1930,1948,1947,1931,1982,1999,1996,2023,1936,1942,1968,1939,1940,2021,1978,1987,1988,1959,2028,1980,1979,1935,1961,1992,1977,1973,1974,1975,1976,1971,1972,2012,2010,2011,2009,2013,2022,2025,2024,1967,1943,1966,2031,1964,1965,1997,2018,1995,2044,1933,1954,1955,1938,1953,2033,2039,2027,2032,2007,2035,1944,1928,1949,1951,2015,2019,1986,2006,2000,2036,1991,2003]}],"sources":[{"fileName":"packages/web-utils/src/index.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/index.ts","line":7,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/index.ts#L7"}],"is":{"declaration":true},"location":{"query":"Module.web-utils/src","hash":""},"text":{}} diff --git a/docs/v1.0.0-beta01/data/Module.web-utils/src/clipboard.json b/docs/v1.0.0-beta01/data/Module.web-utils/src/clipboard.json new file mode 100644 index 000000000..3644f3aa1 --- /dev/null +++ b/docs/v1.0.0-beta01/data/Module.web-utils/src/clipboard.json @@ -0,0 +1 @@ +{"id":882,"name":"web-utils/src/clipboard","kind":2,"kindString":"Module","flags":{},"children":[],"groups":[{"title":"Functions","children":[885,883]}],"sources":[{"fileName":"packages/web-utils/src/clipboard.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/clipboard.ts","line":60,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/clipboard.ts#L60"}],"is":{"declaration":true},"location":{"query":"Module.web-utils/src/clipboard","hash":""},"text":{}} diff --git a/docs/v1.0.0-beta01/data/Module.web-utils/src/file.json b/docs/v1.0.0-beta01/data/Module.web-utils/src/file.json new file mode 100644 index 000000000..da061ff4d --- /dev/null +++ b/docs/v1.0.0-beta01/data/Module.web-utils/src/file.json @@ -0,0 +1 @@ +{"id":988,"name":"web-utils/src/file","kind":2,"kindString":"Module","flags":{},"children":[],"groups":[{"title":"Functions","children":[995,1000,1005,989,992]}],"sources":[{"fileName":"packages/web-utils/src/file.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/file.ts","line":65,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/file.ts#L65"}],"is":{"declaration":true},"location":{"query":"Module.web-utils/src/file","hash":""},"text":{}} diff --git a/docs/v1.0.0-beta01/data/Module.web-utils/src/others.json b/docs/v1.0.0-beta01/data/Module.web-utils/src/others.json new file mode 100644 index 000000000..fed6ed849 --- /dev/null +++ b/docs/v1.0.0-beta01/data/Module.web-utils/src/others.json @@ -0,0 +1 @@ +{"id":1193,"name":"web-utils/src/others","kind":2,"kindString":"Module","flags":{},"children":[],"groups":[{"title":"Functions","children":[1194]}],"sources":[{"fileName":"packages/web-utils/src/others.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/others.ts","line":13,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/others.ts#L13"}],"is":{"declaration":true},"location":{"query":"Module.web-utils/src/others","hash":""},"text":{}} diff --git a/docs/v1.0.0-beta01/data/Module.web-utils/src/rem.json b/docs/v1.0.0-beta01/data/Module.web-utils/src/rem.json new file mode 100644 index 000000000..aaee3aa3c --- /dev/null +++ b/docs/v1.0.0-beta01/data/Module.web-utils/src/rem.json @@ -0,0 +1 @@ +{"id":1263,"name":"web-utils/src/rem","kind":2,"kindString":"Module","flags":{},"children":[],"groups":[{"title":"Interfaces","children":[1264]}],"sources":[{"fileName":"packages/web-utils/src/rem.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/rem.ts","line":11,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/rem.ts#L11"}],"is":{"declaration":true},"location":{"query":"Module.web-utils/src/rem","hash":""},"text":{}} diff --git a/docs/v1.0.0-beta01/data/Module.web-utils/src/security.json b/docs/v1.0.0-beta01/data/Module.web-utils/src/security.json new file mode 100644 index 000000000..8ae3552e5 --- /dev/null +++ b/docs/v1.0.0-beta01/data/Module.web-utils/src/security.json @@ -0,0 +1 @@ +{"id":1287,"name":"web-utils/src/security","kind":2,"kindString":"Module","flags":{},"children":[],"groups":[{"title":"Functions","children":[1326,1336,1288,1297,1317,1323,1308,1302,1305,1299,1311,1330,1294,1319,1333,1291]}],"sources":[{"fileName":"packages/web-utils/src/security.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/security.ts","line":18,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/security.ts#L18"}],"is":{"declaration":true},"location":{"query":"Module.web-utils/src/security","hash":""},"text":{}} diff --git a/docs/v1.0.0-beta01/data/Module.web-utils/src/storage.json b/docs/v1.0.0-beta01/data/Module.web-utils/src/storage.json new file mode 100644 index 000000000..bcf5cb245 --- /dev/null +++ b/docs/v1.0.0-beta01/data/Module.web-utils/src/storage.json @@ -0,0 +1 @@ +{"id":1339,"name":"web-utils/src/storage","kind":2,"kindString":"Module","flags":{},"children":[],"groups":[{"title":"Functions","children":[1340]}],"sources":[{"fileName":"packages/web-utils/src/storage.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/storage.ts","line":7,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/storage.ts#L7"}],"is":{"declaration":true},"location":{"query":"Module.web-utils/src/storage","hash":""},"text":{}} diff --git a/docs/v1.0.0-beta01/data/Module.web-utils/src/worker.json b/docs/v1.0.0-beta01/data/Module.web-utils/src/worker.json new file mode 100644 index 000000000..5cb6de400 --- /dev/null +++ b/docs/v1.0.0-beta01/data/Module.web-utils/src/worker.json @@ -0,0 +1 @@ +{"id":1384,"name":"web-utils/src/worker","kind":2,"kindString":"Module","flags":{},"children":[],"groups":[{"title":"Classes","children":[1410]},{"title":"Functions","children":[1385,1390,1399]}],"sources":[{"fileName":"packages/web-utils/src/worker.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/worker.ts","line":14,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/worker.ts#L14"}],"is":{"declaration":true},"location":{"query":"Module.web-utils/src/worker","hash":""},"text":{}} diff --git a/docs/v1.0.0-beta01/data/Network.Function.cancelIdleCallbackPolyfill.json b/docs/v1.0.0-beta01/data/Network.Function.cancelIdleCallbackPolyfill.json new file mode 100644 index 000000000..80fa0309e --- /dev/null +++ b/docs/v1.0.0-beta01/data/Network.Function.cancelIdleCallbackPolyfill.json @@ -0,0 +1 @@ +{"id":1190,"name":"cancelIdleCallbackPolyfill","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/web-utils/src/network.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/network.ts","line":185,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/network.ts#L185"}],"signatures":[{"id":1191,"name":"cancelIdleCallbackPolyfill","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"cancelIdleCallbackPolyfill"}]},{"tag":"@description","content":[{"kind":"text","text":"cancelIdleCallback的polyfill实现。Polyfill for cancelIdleCallback"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\nconst id = requestIdleCallbackPolyfill(() => {});\ncancelIdleCallbackPolyfill(id);\n```"}]}]},"parameters":[{"id":1192,"name":"id","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"回调ID。Callback ID"}]},"type":{"type":"intrinsic","name":"number"},"text":{"comment":"

    回调ID。Callback ID

    \n"}}],"type":{"type":"intrinsic","name":"void"},"is":{"declaration":false},"location":{"query":"Network.Function.cancelIdleCallbackPolyfill","hash":"cancelIdleCallbackPolyfill"},"text":{"comment":"
    Function:

    cancelIdleCallbackPolyfill

    \n
    Description:

    cancelIdleCallback的polyfill实现。Polyfill for cancelIdleCallback

    \n
    Example:
    const id = requestIdleCallbackPolyfill(() => {});\ncancelIdleCallbackPolyfill(id);\n
    \n"},"sources":[{"fileName":"packages/web-utils/src/network.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/network.ts","line":185,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/network.ts#L185"}],"parentId":1190}],"is":{"declaration":true},"location":{"query":"Network.Function.cancelIdleCallbackPolyfill","hash":""},"text":{},"parentId":1152} diff --git a/docs/v1.0.0-beta01/data/Network.Function.getNetworkInfo.json b/docs/v1.0.0-beta01/data/Network.Function.getNetworkInfo.json new file mode 100644 index 000000000..bc45b30d7 --- /dev/null +++ b/docs/v1.0.0-beta01/data/Network.Function.getNetworkInfo.json @@ -0,0 +1 @@ +{"id":1157,"name":"getNetworkInfo","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/web-utils/src/network.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/network.ts","line":58,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/network.ts#L58"}],"signatures":[{"id":1158,"name":"getNetworkInfo","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"getNetworkInfo"}]},{"tag":"@description","content":[{"kind":"text","text":"获取详细的网络信息。Gets detailed network information"}]},{"tag":"@returns","content":[{"kind":"text","text":"网络信息对象。Network information object"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\nconst info = getNetworkInfo();\nconsole.log(info);\n// {\n// online: true,\n// type: '4g',\n// downlink: 10,\n// rtt: 50,\n// saveData: false\n// }\n```"}]}]},"type":{"type":"reflection","declaration":{"id":1159,"name":"getNetworkInfo","kind":65536,"kindString":"Type literal","flags":{},"children":[{"id":1162,"name":"downlink","kind":1024,"kindString":"Property","flags":{"isOptional":true},"sources":[{"fileName":"packages/web-utils/src/network.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/network.ts","line":61,"character":2,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/network.ts#L61"}],"type":{"type":"intrinsic","name":"number"},"is":{"declaration":true},"location":{"query":"Network.Function.getNetworkInfo","hash":"getNetworkInfo.downlink"},"text":{},"parentId":1157},{"id":1160,"name":"online","kind":1024,"kindString":"Property","flags":{},"sources":[{"fileName":"packages/web-utils/src/network.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/network.ts","line":59,"character":2,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/network.ts#L59"}],"type":{"type":"intrinsic","name":"boolean"},"is":{"declaration":true},"location":{"query":"Network.Function.getNetworkInfo","hash":"getNetworkInfo.online"},"text":{},"parentId":1157},{"id":1163,"name":"rtt","kind":1024,"kindString":"Property","flags":{"isOptional":true},"sources":[{"fileName":"packages/web-utils/src/network.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/network.ts","line":62,"character":2,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/network.ts#L62"}],"type":{"type":"intrinsic","name":"number"},"is":{"declaration":true},"location":{"query":"Network.Function.getNetworkInfo","hash":"getNetworkInfo.rtt"},"text":{},"parentId":1157},{"id":1164,"name":"saveData","kind":1024,"kindString":"Property","flags":{"isOptional":true},"sources":[{"fileName":"packages/web-utils/src/network.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/network.ts","line":63,"character":2,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/network.ts#L63"}],"type":{"type":"intrinsic","name":"boolean"},"is":{"declaration":true},"location":{"query":"Network.Function.getNetworkInfo","hash":"getNetworkInfo.saveData"},"text":{},"parentId":1157},{"id":1161,"name":"type","kind":1024,"kindString":"Property","flags":{},"sources":[{"fileName":"packages/web-utils/src/network.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/network.ts","line":60,"character":2,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/network.ts#L60"}],"type":{"type":"intrinsic","name":"string"},"is":{"declaration":true},"location":{"query":"Network.Function.getNetworkInfo","hash":"getNetworkInfo.type"},"text":{},"parentId":1157}],"groups":[{"title":"Properties","children":[1162,1160,1163,1164,1161]}],"sources":[{"fileName":"packages/web-utils/src/network.ts","line":58,"character":34,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/network.ts#L58"}],"location":{"query":"Network.Function.getNetworkInfo","hash":"getNetworkInfo"}}},"is":{"declaration":false},"location":{"query":"Network.Function.getNetworkInfo","hash":"getNetworkInfo"},"text":{"comment":"
    Function:

    getNetworkInfo

    \n
    Description:

    获取详细的网络信息。Gets detailed network information

    \n
    Returns:

    网络信息对象。Network information object

    \n
    Example:
    const info = getNetworkInfo();\nconsole.log(info);\n// {\n//   online: true,\n//   type: '4g',\n//   downlink: 10,\n//   rtt: 50,\n//   saveData: false\n// }\n
    \n"},"sources":[{"fileName":"packages/web-utils/src/network.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/network.ts","line":58,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/network.ts#L58"}],"parentId":1157}],"is":{"declaration":true},"location":{"query":"Network.Function.getNetworkInfo","hash":""},"text":{},"parentId":1152} diff --git a/docs/v1.0.0-beta01/data/Network.Function.getNetworkType.json b/docs/v1.0.0-beta01/data/Network.Function.getNetworkType.json new file mode 100644 index 000000000..4ae421323 --- /dev/null +++ b/docs/v1.0.0-beta01/data/Network.Function.getNetworkType.json @@ -0,0 +1 @@ +{"id":1155,"name":"getNetworkType","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/web-utils/src/network.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/network.ts","line":32,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/network.ts#L32"}],"signatures":[{"id":1156,"name":"getNetworkType","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"getNetworkType"}]},{"tag":"@description","content":[{"kind":"text","text":"获取网络连接类型(4G, 5G, WiFi等)。Gets network connection type (4G, 5G, WiFi, etc.)"}]},{"tag":"@returns","content":[{"kind":"text","text":"网络类型或'unknown'。Network type or 'unknown'"}]},{"tag":"@example","content":[{"kind":"text","text":"const networkType = getNetworkType();\nconsole.log("},{"kind":"code","text":"`Connection type: ${networkType}`"},{"kind":"text","text":"); // -> '4g', 'wifi', etc."}]}]},"type":{"type":"intrinsic","name":"string"},"is":{"declaration":false},"location":{"query":"Network.Function.getNetworkType","hash":"getNetworkType"},"text":{"comment":"
    Function:

    getNetworkType

    \n
    Description:

    获取网络连接类型(4G, 5G, WiFi等)。Gets network connection type (4G, 5G, WiFi, etc.)

    \n
    Returns:

    网络类型或'unknown'。Network type or 'unknown'

    \n
    Example:

    const networkType = getNetworkType();\nconsole.log(Connection type: ${networkType}); // -> '4g', 'wifi', etc.

    \n"},"sources":[{"fileName":"packages/web-utils/src/network.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/network.ts","line":32,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/network.ts#L32"}],"parentId":1155}],"is":{"declaration":true},"location":{"query":"Network.Function.getNetworkType","hash":""},"text":{},"parentId":1152} diff --git a/docs/v1.0.0-beta01/data/Network.Function.isOnline.json b/docs/v1.0.0-beta01/data/Network.Function.isOnline.json new file mode 100644 index 000000000..5055ef356 --- /dev/null +++ b/docs/v1.0.0-beta01/data/Network.Function.isOnline.json @@ -0,0 +1 @@ +{"id":1153,"name":"isOnline","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/web-utils/src/network.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/network.ts","line":20,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/network.ts#L20"}],"signatures":[{"id":1154,"name":"isOnline","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"isOnline"}]},{"tag":"@description","content":[{"kind":"text","text":"检查网络连接状态。Checks network connection status"}]},{"tag":"@returns","content":[{"kind":"text","text":"如果在线则返回true。True if online"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\nif (isOnline()) {\n console.log('Connected to internet');\n} else {\n console.log('Offline mode');\n}\n```"}]}]},"type":{"type":"intrinsic","name":"boolean"},"is":{"declaration":false},"location":{"query":"Network.Function.isOnline","hash":"isOnline"},"text":{"comment":"
    Function:

    isOnline

    \n
    Description:

    检查网络连接状态。Checks network connection status

    \n
    Returns:

    如果在线则返回true。True if online

    \n
    Example:
    if (isOnline()) {\n  console.log('Connected to internet');\n} else {\n  console.log('Offline mode');\n}\n
    \n"},"sources":[{"fileName":"packages/web-utils/src/network.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/network.ts","line":20,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/network.ts#L20"}],"parentId":1153}],"is":{"declaration":true},"location":{"query":"Network.Function.isOnline","hash":""},"text":{},"parentId":1152} diff --git a/docs/v1.0.0-beta01/data/Network.Function.onNetworkChange.json b/docs/v1.0.0-beta01/data/Network.Function.onNetworkChange.json new file mode 100644 index 000000000..42ee08e1d --- /dev/null +++ b/docs/v1.0.0-beta01/data/Network.Function.onNetworkChange.json @@ -0,0 +1 @@ +{"id":1165,"name":"onNetworkChange","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/web-utils/src/network.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/network.ts","line":97,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/network.ts#L97"}],"signatures":[{"id":1166,"name":"onNetworkChange","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"onNetworkChange"}]},{"tag":"@description","content":[{"kind":"text","text":"监听网络状态变化。Listens to network status changes"}]},{"tag":"@returns","content":[{"kind":"text","text":"移除监听器的函数。Function to remove listener"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\nconst removeListener = onNetworkChange((online) => {\n console.log(online ? 'Connected' : 'Disconnected');\n});\n\n// Later, remove listener\nremoveListener();\n```"}]}]},"parameters":[{"id":1167,"name":"callback","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"网络状态变化时的回调函数。Callback on network status change"}]},"type":{"type":"reflection","declaration":{"id":1168,"name":"__type","kind":65536,"kindString":"Type literal","flags":{},"sources":[{"fileName":"packages/web-utils/src/network.ts","line":97,"character":42,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/network.ts#L97"}],"signatures":[{"id":1169,"name":"__type","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":1170,"name":"online","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"intrinsic","name":"boolean"}}],"type":{"type":"intrinsic","name":"void"}}]}},"text":{"comment":"

    网络状态变化时的回调函数。Callback on network status change

    \n"}}],"type":{"type":"reflection","declaration":{"id":1171,"name":"onNetworkChange","kind":65536,"kindString":"Type literal","flags":{},"sources":[{"fileName":"packages/web-utils/src/network.ts","line":97,"character":70,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/network.ts#L97"}],"signatures":[{"id":1172,"name":"onNetworkChange","kind":4096,"kindString":"Call signature","flags":{},"type":{"type":"intrinsic","name":"void"},"is":{"declaration":false},"location":{"query":"Network.Function.onNetworkChange","hash":"onNetworkChange.__type"},"text":{},"parentId":1165}],"location":{"query":"Network.Function.onNetworkChange","hash":"onNetworkChange"}}},"is":{"declaration":false},"location":{"query":"Network.Function.onNetworkChange","hash":"onNetworkChange"},"text":{"comment":"
    Function:

    onNetworkChange

    \n
    Description:

    监听网络状态变化。Listens to network status changes

    \n
    Returns:

    移除监听器的函数。Function to remove listener

    \n
    Example:
    const removeListener = onNetworkChange((online) => {\n  console.log(online ? 'Connected' : 'Disconnected');\n});\n\n// Later, remove listener\nremoveListener();\n
    \n"},"sources":[{"fileName":"packages/web-utils/src/network.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/network.ts","line":97,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/network.ts#L97"}],"parentId":1165}],"is":{"declaration":true},"location":{"query":"Network.Function.onNetworkChange","hash":""},"text":{},"parentId":1152} diff --git a/docs/v1.0.0-beta01/data/Network.Function.requestIdleCallbackPolyfill.json b/docs/v1.0.0-beta01/data/Network.Function.requestIdleCallbackPolyfill.json new file mode 100644 index 000000000..6560e756f --- /dev/null +++ b/docs/v1.0.0-beta01/data/Network.Function.requestIdleCallbackPolyfill.json @@ -0,0 +1 @@ +{"id":1181,"name":"requestIdleCallbackPolyfill","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/web-utils/src/network.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/network.ts","line":156,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/network.ts#L156"}],"signatures":[{"id":1182,"name":"requestIdleCallbackPolyfill","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"requestIdleCallbackPolyfill"}]},{"tag":"@description","content":[{"kind":"text","text":"requestIdleCallback的polyfill实现。Polyfill for requestIdleCallback"}]},{"tag":"@returns","content":[{"kind":"text","text":"回调ID。Callback ID"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\nrequestIdleCallbackPolyfill(() => {\n console.log('Executing during idle time');\n});\n```"}]}]},"parameters":[{"id":1183,"name":"callback","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"在空闲时执行的回调。Callback to execute when idle"}]},"type":{"type":"reflection","declaration":{"id":1184,"name":"__type","kind":65536,"kindString":"Type literal","flags":{},"sources":[{"fileName":"packages/web-utils/src/network.ts","line":157,"character":12,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/network.ts#L157"}],"signatures":[{"id":1185,"name":"__type","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":1186,"name":"deadline","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"intrinsic","name":"any"}}],"type":{"type":"intrinsic","name":"void"}}]}},"text":{"comment":"

    在空闲时执行的回调。Callback to execute when idle

    \n"}},{"id":1187,"name":"options","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"选项对象。Options object"}]},"type":{"type":"reflection","declaration":{"id":1188,"name":"__type","kind":65536,"kindString":"Type literal","flags":{},"children":[{"id":1189,"name":"timeout","kind":1024,"kindString":"Property","flags":{"isOptional":true},"sources":[{"fileName":"packages/web-utils/src/network.ts","line":158,"character":14,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/network.ts#L158"}],"type":{"type":"intrinsic","name":"number"}}],"groups":[{"title":"Properties","children":[1189]}],"sources":[{"fileName":"packages/web-utils/src/network.ts","line":158,"character":12,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/network.ts#L158"}]}},"text":{"comment":"

    选项对象。Options object

    \n"}}],"type":{"type":"intrinsic","name":"number"},"is":{"declaration":false},"location":{"query":"Network.Function.requestIdleCallbackPolyfill","hash":"requestIdleCallbackPolyfill"},"text":{"comment":"
    Function:

    requestIdleCallbackPolyfill

    \n
    Description:

    requestIdleCallback的polyfill实现。Polyfill for requestIdleCallback

    \n
    Returns:

    回调ID。Callback ID

    \n
    Example:
    requestIdleCallbackPolyfill(() => {\n  console.log('Executing during idle time');\n});\n
    \n"},"sources":[{"fileName":"packages/web-utils/src/network.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/network.ts","line":156,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/network.ts#L156"}],"parentId":1181}],"is":{"declaration":true},"location":{"query":"Network.Function.requestIdleCallbackPolyfill","hash":""},"text":{},"parentId":1152} diff --git a/docs/v1.0.0-beta01/data/Network.Function.retryRequest.json b/docs/v1.0.0-beta01/data/Network.Function.retryRequest.json new file mode 100644 index 000000000..6b0542ca9 --- /dev/null +++ b/docs/v1.0.0-beta01/data/Network.Function.retryRequest.json @@ -0,0 +1 @@ +{"id":1173,"name":"retryRequest","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/web-utils/src/network.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/network.ts","line":124,"character":22,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/network.ts#L124"}],"signatures":[{"id":1174,"name":"retryRequest","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"retryRequest"}]},{"tag":"@description","content":[{"kind":"text","text":"失败时自动重试的请求函数。Request function with automatic retry on failure"}]},{"tag":"@returns","content":[{"kind":"text","text":"请求结果的Promise。Promise of request result"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\nconst fetchData = () => fetch('https://api.example.com/data');\nretryRequest(fetchData, 3, 1000)\n .then(response => response.json())\n .then(data => console.log(data))\n .catch(error => console.error('Failed after retries:', error));\n```"}]}]},"typeParameter":[{"id":1175,"name":"T","kind":131072,"kindString":"Type parameter","flags":{}}],"parameters":[{"id":1176,"name":"requestFn","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"执行请求的函数。Function to execute request"}]},"type":{"type":"reflection","declaration":{"id":1177,"name":"__type","kind":65536,"kindString":"Type literal","flags":{},"sources":[{"fileName":"packages/web-utils/src/network.ts","line":125,"character":13,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/network.ts#L125"}],"signatures":[{"id":1178,"name":"__type","kind":4096,"kindString":"Call signature","flags":{},"type":{"type":"reference","typeArguments":[{"type":"reference","id":1175,"name":"T"}],"name":"Promise","qualifiedName":"Promise","package":"typescript"}}]}},"text":{"comment":"

    执行请求的函数。Function to execute request

    \n"}},{"id":1179,"name":"maxRetries","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"最大重试次数(默认: 3)。Maximum retry attempts (default: 3)"}]},"type":{"type":"intrinsic","name":"number"},"defaultValue":"3","text":{"comment":"

    最大重试次数(默认: 3)。Maximum retry attempts (default: 3)

    \n"}},{"id":1180,"name":"delay","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"重试间隔(毫秒,默认: 1000)。Retry delay in ms (default: 1000)"}]},"type":{"type":"intrinsic","name":"number"},"defaultValue":"1000","text":{"comment":"

    重试间隔(毫秒,默认: 1000)。Retry delay in ms (default: 1000)

    \n"}}],"type":{"type":"reference","typeArguments":[{"type":"reference","id":1175,"name":"T"}],"name":"Promise","qualifiedName":"Promise","package":"typescript"},"is":{"declaration":false},"location":{"query":"Network.Function.retryRequest","hash":"retryRequest"},"text":{"comment":"
    Function:

    retryRequest

    \n
    Description:

    失败时自动重试的请求函数。Request function with automatic retry on failure

    \n
    Returns:

    请求结果的Promise。Promise of request result

    \n
    Example:
    const fetchData = () => fetch('https://api.example.com/data');\nretryRequest(fetchData, 3, 1000)\n  .then(response => response.json())\n  .then(data => console.log(data))\n  .catch(error => console.error('Failed after retries:', error));\n
    \n"},"sources":[{"fileName":"packages/web-utils/src/network.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/network.ts","line":124,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/network.ts#L124"}],"parentId":1173}],"is":{"declaration":true},"location":{"query":"Network.Function.retryRequest","hash":""},"text":{},"parentId":1152} diff --git a/docs/v1.0.0-beta01/data/Number.Function.average.json b/docs/v1.0.0-beta01/data/Number.Function.average.json new file mode 100644 index 000000000..b0d527e94 --- /dev/null +++ b/docs/v1.0.0-beta01/data/Number.Function.average.json @@ -0,0 +1 @@ +{"id":670,"name":"average","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/utils/src/number.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/number.ts","line":99,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/number.ts#L99"}],"signatures":[{"id":671,"name":"average","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"average"}]},{"tag":"@description","content":[{"kind":"text","text":"计算平均数。Calculates the average of numbers"}]},{"tag":"@returns","content":[{"kind":"text","text":"平均数。The average of the numbers"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\naverage(1, 2, 3); // 2\n```"}]}]},"parameters":[{"id":672,"name":"nums","kind":32768,"kindString":"Parameter","flags":{"isRest":true},"comment":{"summary":[{"kind":"text","text":"数字数组。Array of numbers"}]},"type":{"type":"array","elementType":{"type":"intrinsic","name":"number"}},"text":{"comment":"

    数字数组。Array of numbers

    \n"}}],"type":{"type":"intrinsic","name":"number"},"is":{"declaration":false},"location":{"query":"Number.Function.average","hash":"average"},"text":{"comment":"
    Function:

    average

    \n
    Description:

    计算平均数。Calculates the average of numbers

    \n
    Returns:

    平均数。The average of the numbers

    \n
    Example:
    average(1, 2, 3); // 2\n
    \n"},"sources":[{"fileName":"packages/utils/src/number.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/number.ts","line":99,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/number.ts#L99"}],"parentId":670}],"is":{"declaration":true},"location":{"query":"Number.Function.average","hash":""},"text":{},"parentId":658} diff --git a/docs/v1.0.0-beta01/data/Number.Function.clamp.json b/docs/v1.0.0-beta01/data/Number.Function.clamp.json new file mode 100644 index 000000000..9299fd61e --- /dev/null +++ b/docs/v1.0.0-beta01/data/Number.Function.clamp.json @@ -0,0 +1 @@ +{"id":693,"name":"clamp","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/utils/src/number.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/number.ts","line":189,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/number.ts#L189"}],"signatures":[{"id":694,"name":"clamp","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"clamp"}]},{"tag":"@description","content":[{"kind":"text","text":"通过区间约束范围值。Clamps a number within a range"}]},{"tag":"@returns","content":[{"kind":"text","text":"约束后的数字。The clamped number"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\nclamp(5, 0, 10); // 5\nclamp(-5, 0, 10); // 0\nclamp(15, 0, 10); // 10\n```"}]}]},"parameters":[{"id":695,"name":"num","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"数字。The number to clamp"}]},"type":{"type":"intrinsic","name":"number"},"text":{"comment":"

    数字。The number to clamp

    \n"}},{"id":696,"name":"min","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"最小值。Minimum value"}]},"type":{"type":"intrinsic","name":"number"},"text":{"comment":"

    最小值。Minimum value

    \n"}},{"id":697,"name":"max","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"最大值。Maximum value"}]},"type":{"type":"intrinsic","name":"number"},"text":{"comment":"

    最大值。Maximum value

    \n"}}],"type":{"type":"intrinsic","name":"number"},"is":{"declaration":false},"location":{"query":"Number.Function.clamp","hash":"clamp"},"text":{"comment":"
    Function:

    clamp

    \n
    Description:

    通过区间约束范围值。Clamps a number within a range

    \n
    Returns:

    约束后的数字。The clamped number

    \n
    Example:
    clamp(5, 0, 10); // 5\nclamp(-5, 0, 10); // 0\nclamp(15, 0, 10); // 10\n
    \n"},"sources":[{"fileName":"packages/utils/src/number.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/number.ts","line":189,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/number.ts#L189"}],"parentId":693}],"is":{"declaration":true},"location":{"query":"Number.Function.clamp","hash":""},"text":{},"parentId":658} diff --git a/docs/v1.0.0-beta01/data/Number.Function.isApproximatelyEqual.json b/docs/v1.0.0-beta01/data/Number.Function.isApproximatelyEqual.json new file mode 100644 index 000000000..8353d7814 --- /dev/null +++ b/docs/v1.0.0-beta01/data/Number.Function.isApproximatelyEqual.json @@ -0,0 +1 @@ +{"id":665,"name":"isApproximatelyEqual","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/utils/src/number.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/number.ts","line":87,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/number.ts#L87"}],"signatures":[{"id":666,"name":"isApproximatelyEqual","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"isApproximatelyEqual"}]},{"tag":"@description","content":[{"kind":"text","text":"两个数字是否约等于。Checks if two numbers are approximately equal"}]},{"tag":"@returns","content":[{"kind":"text","text":"两个数字是否约等于。Whether the two numbers are approximately equal"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\nconst val1 = 0.1 + 0.2;\nconst val2 = 0.3;\nisApproximatelyEqual(val1, val2); // true\nisApproximatelyEqual(val1, val2, 0.0001); // false\n```"}]}]},"parameters":[{"id":667,"name":"val1","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"数字1。First number"}]},"type":{"type":"intrinsic","name":"number"},"text":{"comment":"

    数字1。First number

    \n"}},{"id":668,"name":"val2","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"数字2。Second number"}]},"type":{"type":"intrinsic","name":"number"},"text":{"comment":"

    数字2。Second number

    \n"}},{"id":669,"name":"epsilon","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"误差范围,默认为0.001。Error margin, default is 0.001"}]},"type":{"type":"intrinsic","name":"number"},"defaultValue":"0.001","text":{"comment":"

    误差范围,默认为0.001。Error margin, default is 0.001

    \n"}}],"type":{"type":"intrinsic","name":"boolean"},"is":{"declaration":false},"location":{"query":"Number.Function.isApproximatelyEqual","hash":"isApproximatelyEqual"},"text":{"comment":"
    Function:

    isApproximatelyEqual

    \n
    Description:

    两个数字是否约等于。Checks if two numbers are approximately equal

    \n
    Returns:

    两个数字是否约等于。Whether the two numbers are approximately equal

    \n
    Example:
    const val1 = 0.1 + 0.2;\nconst val2 = 0.3;\nisApproximatelyEqual(val1, val2); // true\nisApproximatelyEqual(val1, val2, 0.0001); // false\n
    \n"},"sources":[{"fileName":"packages/utils/src/number.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/number.ts","line":87,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/number.ts#L87"}],"parentId":665}],"is":{"declaration":true},"location":{"query":"Number.Function.isApproximatelyEqual","hash":""},"text":{},"parentId":658} diff --git a/docs/v1.0.0-beta01/data/Number.Function.isFloat.json b/docs/v1.0.0-beta01/data/Number.Function.isFloat.json new file mode 100644 index 000000000..88ac5334f --- /dev/null +++ b/docs/v1.0.0-beta01/data/Number.Function.isFloat.json @@ -0,0 +1 @@ +{"id":701,"name":"isFloat","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/utils/src/number.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/number.ts","line":55,"character":13,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/number.ts#L55"}],"signatures":[{"id":702,"name":"isFloat","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"isFloat"}]},{"tag":"@description","content":[{"kind":"text","text":"判断是否为浮点数。Checks if a value is a float"}]},{"tag":"@returns","content":[{"kind":"text","text":"是否为浮点数。Whether the value is a float"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\nisFloat(3.14); // true\nisFloat(-0.5); // true\nisFloat(2); // false\nisFloat('3.14'); // false\nisFloat(null); // false\nisFloat(undefined); // false\n```"}]}]},"parameters":[{"id":703,"name":"val","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"任意值。Any value"}]},"type":{"type":"intrinsic","name":"unknown"},"text":{"comment":"

    任意值。Any value

    \n"}}],"type":{"type":"predicate","name":"val","asserts":false,"targetType":{"type":"intrinsic","name":"number"}},"is":{"declaration":false},"location":{"query":"Number.Function.isFloat","hash":"isFloat"},"text":{"comment":"
    Function:

    isFloat

    \n
    Description:

    判断是否为浮点数。Checks if a value is a float

    \n
    Returns:

    是否为浮点数。Whether the value is a float

    \n
    Example:
    isFloat(3.14); // true\nisFloat(-0.5); // true\nisFloat(2); // false\nisFloat('3.14'); // false\nisFloat(null); // false\nisFloat(undefined); // false\n
    \n"},"sources":[{"fileName":"packages/utils/src/number.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/number.ts","line":55,"character":23,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/number.ts#L55"}],"parentId":701}],"is":{"declaration":true},"location":{"query":"Number.Function.isFloat","hash":""},"text":{},"parentId":658} diff --git a/docs/v1.0.0-beta01/data/Number.Function.isInt.json b/docs/v1.0.0-beta01/data/Number.Function.isInt.json new file mode 100644 index 000000000..30d51c01b --- /dev/null +++ b/docs/v1.0.0-beta01/data/Number.Function.isInt.json @@ -0,0 +1 @@ +{"id":698,"name":"isInt","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/utils/src/number.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/number.ts","line":23,"character":13,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/number.ts#L23"}],"signatures":[{"id":699,"name":"isInt","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"isInt"}]},{"tag":"@description","content":[{"kind":"text","text":"判断是否为整数。Checks if a value is an integer"}]},{"tag":"@returns","content":[{"kind":"text","text":"是否为整数。Whether the value is an integer"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\nisInt(5); // true\nisInt(2.5); // false\nisInt('3'); // false\nisInt(null); // false\nisInt(undefined); // false\n```"}]}]},"parameters":[{"id":700,"name":"val","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"任意值。Any value"}]},"type":{"type":"intrinsic","name":"unknown"},"text":{"comment":"

    任意值。Any value

    \n"}}],"type":{"type":"predicate","name":"val","asserts":false,"targetType":{"type":"intrinsic","name":"number"}},"is":{"declaration":false},"location":{"query":"Number.Function.isInt","hash":"isInt"},"text":{"comment":"
    Function:

    isInt

    \n
    Description:

    判断是否为整数。Checks if a value is an integer

    \n
    Returns:

    是否为整数。Whether the value is an integer

    \n
    Example:
    isInt(5); // true\nisInt(2.5); // false\nisInt('3'); // false\nisInt(null); // false\nisInt(undefined); // false\n
    \n"},"sources":[{"fileName":"packages/utils/src/number.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/number.ts","line":23,"character":21,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/number.ts#L23"}],"parentId":698}],"is":{"declaration":true},"location":{"query":"Number.Function.isInt","hash":""},"text":{},"parentId":658} diff --git a/docs/v1.0.0-beta01/data/Number.Function.isOdd.json b/docs/v1.0.0-beta01/data/Number.Function.isOdd.json new file mode 100644 index 000000000..72c1c4ca3 --- /dev/null +++ b/docs/v1.0.0-beta01/data/Number.Function.isOdd.json @@ -0,0 +1 @@ +{"id":659,"name":"isOdd","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/utils/src/number.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/number.ts","line":38,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/number.ts#L38"}],"signatures":[{"id":660,"name":"isOdd","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"isOdd"}]},{"tag":"@description","content":[{"kind":"text","text":"判断一个数字是不是偶数。Checks if a number is even"}]},{"tag":"@returns","content":[{"kind":"text","text":"是否为偶数。Whether the number is even"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\nisOdd(2); // true\nisOdd(0); // true\nisOdd(1); // false\nisOdd(-2); // true\n```"}]}]},"parameters":[{"id":661,"name":"num","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"数字。The number to check"}]},"type":{"type":"intrinsic","name":"number"},"text":{"comment":"

    数字。The number to check

    \n"}}],"type":{"type":"intrinsic","name":"boolean"},"is":{"declaration":false},"location":{"query":"Number.Function.isOdd","hash":"isOdd"},"text":{"comment":"
    Function:

    isOdd

    \n
    Description:

    判断一个数字是不是偶数。Checks if a number is even

    \n
    Returns:

    是否为偶数。Whether the number is even

    \n
    Example:
    isOdd(2); // true\nisOdd(0); // true\nisOdd(1); // false\nisOdd(-2); // true\n
    \n"},"sources":[{"fileName":"packages/utils/src/number.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/number.ts","line":38,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/number.ts#L38"}],"parentId":659}],"is":{"declaration":true},"location":{"query":"Number.Function.isOdd","hash":""},"text":{},"parentId":658} diff --git a/docs/v1.0.0-beta01/data/Number.Function.isValidNumber.json b/docs/v1.0.0-beta01/data/Number.Function.isValidNumber.json new file mode 100644 index 000000000..0d77b8f8a --- /dev/null +++ b/docs/v1.0.0-beta01/data/Number.Function.isValidNumber.json @@ -0,0 +1 @@ +{"id":662,"name":"isValidNumber","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/utils/src/number.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/number.ts","line":70,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/number.ts#L70"}],"signatures":[{"id":663,"name":"isValidNumber","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"isValidNumber"}]},{"tag":"@description","content":[{"kind":"text","text":"是否是合法的数字。Checks if a value is a valid number"}]},{"tag":"@returns","content":[{"kind":"text","text":"是否是合法的数字。Whether the value is a valid number"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\nisValidNumber(1); // true\nisValidNumber('1'); // false\nisValidNumber(NaN); // false\nisValidNumber(Infinity); // false\n```"}]}]},"parameters":[{"id":664,"name":"val","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"任意值。Any value"}]},"type":{"type":"intrinsic","name":"unknown"},"text":{"comment":"

    任意值。Any value

    \n"}}],"type":{"type":"intrinsic","name":"boolean"},"is":{"declaration":false},"location":{"query":"Number.Function.isValidNumber","hash":"isValidNumber"},"text":{"comment":"
    Function:

    isValidNumber

    \n
    Description:

    是否是合法的数字。Checks if a value is a valid number

    \n
    Returns:

    是否是合法的数字。Whether the value is a valid number

    \n
    Example:
    isValidNumber(1); // true\nisValidNumber('1'); // false\nisValidNumber(NaN); // false\nisValidNumber(Infinity); // false\n
    \n"},"sources":[{"fileName":"packages/utils/src/number.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/number.ts","line":70,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/number.ts#L70"}],"parentId":662}],"is":{"declaration":true},"location":{"query":"Number.Function.isValidNumber","hash":""},"text":{},"parentId":658} diff --git a/docs/v1.0.0-beta01/data/Number.Function.randomIntArrayInRange.json b/docs/v1.0.0-beta01/data/Number.Function.randomIntArrayInRange.json new file mode 100644 index 000000000..3a46d5744 --- /dev/null +++ b/docs/v1.0.0-beta01/data/Number.Function.randomIntArrayInRange.json @@ -0,0 +1 @@ +{"id":681,"name":"randomIntArrayInRange","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/utils/src/number.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/number.ts","line":139,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/number.ts#L139"}],"signatures":[{"id":682,"name":"randomIntArrayInRange","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"randomIntArrayInRange"}]},{"tag":"@description","content":[{"kind":"text","text":"求范围中的随机整数数组。Generates an array of random integers within a range"}]},{"tag":"@returns","content":[{"kind":"text","text":"随机整数数组。Array of random integers within the range"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\nrandomIntArrayInRange(1, 10, 2); // [一个1~10的随机数, 另一个1~10的随机数]。[A random number between 1 and 10, another random number between 1 and 10]\n```"}]}]},"parameters":[{"id":683,"name":"min","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"范围最小值。Minimum value of the range"}]},"type":{"type":"intrinsic","name":"number"},"text":{"comment":"

    范围最小值。Minimum value of the range

    \n"}},{"id":684,"name":"max","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"范围最大值。Maximum value of the range"}]},"type":{"type":"intrinsic","name":"number"},"text":{"comment":"

    范围最大值。Maximum value of the range

    \n"}},{"id":685,"name":"num","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"数组长度。Length of the array"}]},"type":{"type":"intrinsic","name":"number"},"defaultValue":"1","text":{"comment":"

    数组长度。Length of the array

    \n"}}],"type":{"type":"array","elementType":{"type":"intrinsic","name":"number"}},"is":{"declaration":false},"location":{"query":"Number.Function.randomIntArrayInRange","hash":"randomIntArrayInRange"},"text":{"comment":"
    Function:

    randomIntArrayInRange

    \n
    Description:

    求范围中的随机整数数组。Generates an array of random integers within a range

    \n
    Returns:

    随机整数数组。Array of random integers within the range

    \n
    Example:
    randomIntArrayInRange(1, 10, 2); // [一个1~10的随机数, 另一个1~10的随机数]。[A random number between 1 and 10, another random number between 1 and 10]\n
    \n"},"sources":[{"fileName":"packages/utils/src/number.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/number.ts","line":139,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/number.ts#L139"}],"parentId":681}],"is":{"declaration":true},"location":{"query":"Number.Function.randomIntArrayInRange","hash":""},"text":{},"parentId":658} diff --git a/docs/v1.0.0-beta01/data/Number.Function.randomIntegerInRange.json b/docs/v1.0.0-beta01/data/Number.Function.randomIntegerInRange.json new file mode 100644 index 000000000..eae030736 --- /dev/null +++ b/docs/v1.0.0-beta01/data/Number.Function.randomIntegerInRange.json @@ -0,0 +1 @@ +{"id":673,"name":"randomIntegerInRange","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/utils/src/number.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/number.ts","line":112,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/number.ts#L112"}],"signatures":[{"id":674,"name":"randomIntegerInRange","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"randomIntegerInRange"}]},{"tag":"@description","content":[{"kind":"text","text":"求范围中的随机整数。Generates a random integer within a range"}]},{"tag":"@returns","content":[{"kind":"text","text":"随机整数。Random integer within the range"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\nrandomIntegerInRange(1, 10); // 一个1~10的随机整数。A random integer between 1 and 10\n```"}]}]},"parameters":[{"id":675,"name":"min","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"范围最小值。Minimum value of the range"}]},"type":{"type":"intrinsic","name":"number"},"text":{"comment":"

    范围最小值。Minimum value of the range

    \n"}},{"id":676,"name":"max","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"范围最大值。Maximum value of the range"}]},"type":{"type":"intrinsic","name":"number"},"text":{"comment":"

    范围最大值。Maximum value of the range

    \n"}}],"type":{"type":"intrinsic","name":"number"},"is":{"declaration":false},"location":{"query":"Number.Function.randomIntegerInRange","hash":"randomIntegerInRange"},"text":{"comment":"
    Function:

    randomIntegerInRange

    \n
    Description:

    求范围中的随机整数。Generates a random integer within a range

    \n
    Returns:

    随机整数。Random integer within the range

    \n
    Example:
    randomIntegerInRange(1, 10); // 一个1~10的随机整数。A random integer between 1 and 10\n
    \n"},"sources":[{"fileName":"packages/utils/src/number.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/number.ts","line":112,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/number.ts#L112"}],"parentId":673}],"is":{"declaration":true},"location":{"query":"Number.Function.randomIntegerInRange","hash":""},"text":{},"parentId":658} diff --git a/docs/v1.0.0-beta01/data/Number.Function.randomNumberInRange.json b/docs/v1.0.0-beta01/data/Number.Function.randomNumberInRange.json new file mode 100644 index 000000000..9cee52af3 --- /dev/null +++ b/docs/v1.0.0-beta01/data/Number.Function.randomNumberInRange.json @@ -0,0 +1 @@ +{"id":677,"name":"randomNumberInRange","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/utils/src/number.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/number.ts","line":125,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/number.ts#L125"}],"signatures":[{"id":678,"name":"randomNumberInRange","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"randomNumberInRange"}]},{"tag":"@description","content":[{"kind":"text","text":"求范围中的随机数(浮点数,包含最小值,不包含最大值)。Generates a random floating-point number within a range (min inclusive, max exclusive)"}]},{"tag":"@returns","content":[{"kind":"text","text":"随机浮点数。Random floating-point number within the range"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\nrandomNumberInRange(1, 10); // 一个1~10的随机浮点数。A random floating-point number between 1 and 10\n```"}]}]},"parameters":[{"id":679,"name":"min","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"范围最小值。Minimum value of the range"}]},"type":{"type":"intrinsic","name":"number"},"text":{"comment":"

    范围最小值。Minimum value of the range

    \n"}},{"id":680,"name":"max","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"范围最大值。Maximum value of the range"}]},"type":{"type":"intrinsic","name":"number"},"text":{"comment":"

    范围最大值。Maximum value of the range

    \n"}}],"type":{"type":"intrinsic","name":"number"},"is":{"declaration":false},"location":{"query":"Number.Function.randomNumberInRange","hash":"randomNumberInRange"},"text":{"comment":"
    Function:

    randomNumberInRange

    \n
    Description:

    求范围中的随机数(浮点数,包含最小值,不包含最大值)。Generates a random floating-point number within a range (min inclusive, max exclusive)

    \n
    Returns:

    随机浮点数。Random floating-point number within the range

    \n
    Example:
    randomNumberInRange(1, 10); // 一个1~10的随机浮点数。A random floating-point number between 1 and 10\n
    \n"},"sources":[{"fileName":"packages/utils/src/number.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/number.ts","line":125,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/number.ts#L125"}],"parentId":677}],"is":{"declaration":true},"location":{"query":"Number.Function.randomNumberInRange","hash":""},"text":{},"parentId":658} diff --git a/docs/v1.0.0-beta01/data/Number.Function.round.json b/docs/v1.0.0-beta01/data/Number.Function.round.json new file mode 100644 index 000000000..ee3df6cbc --- /dev/null +++ b/docs/v1.0.0-beta01/data/Number.Function.round.json @@ -0,0 +1 @@ +{"id":686,"name":"round","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/utils/src/number.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/number.ts","line":155,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/number.ts#L155"}],"signatures":[{"id":687,"name":"round","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"round"}]},{"tag":"@description","content":[{"kind":"text","text":"数字取位。Rounds a number to a specified number of decimal places"}]},{"tag":"@returns","content":[{"kind":"text","text":"取位后的数字。The rounded number"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\nround(5.6, 0); // 6\nround(10, -1); // 10\nround(12345.6789); // 12346\nround(12345.6789, 2); // 12345.68\n```"}]}]},"parameters":[{"id":688,"name":"num","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"数字。The number to round"}]},"type":{"type":"intrinsic","name":"number"},"text":{"comment":"

    数字。The number to round

    \n"}},{"id":689,"name":"decimals","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"保留小数位数,默认为0。Number of decimal places to keep, default is 0"}]},"type":{"type":"intrinsic","name":"number"},"defaultValue":"0","text":{"comment":"

    保留小数位数,默认为0。Number of decimal places to keep, default is 0

    \n"}}],"type":{"type":"intrinsic","name":"number"},"is":{"declaration":false},"location":{"query":"Number.Function.round","hash":"round"},"text":{"comment":"
    Function:

    round

    \n
    Description:

    数字取位。Rounds a number to a specified number of decimal places

    \n
    Returns:

    取位后的数字。The rounded number

    \n
    Example:
    round(5.6, 0); // 6\nround(10, -1); // 10\nround(12345.6789); // 12346\nround(12345.6789, 2); // 12345.68\n
    \n"},"sources":[{"fileName":"packages/utils/src/number.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/number.ts","line":155,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/number.ts#L155"}],"parentId":686}],"is":{"declaration":true},"location":{"query":"Number.Function.round","hash":""},"text":{},"parentId":658} diff --git a/docs/v1.0.0-beta01/data/Number.Function.sum.json b/docs/v1.0.0-beta01/data/Number.Function.sum.json new file mode 100644 index 000000000..68a099889 --- /dev/null +++ b/docs/v1.0.0-beta01/data/Number.Function.sum.json @@ -0,0 +1 @@ +{"id":690,"name":"sum","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/utils/src/number.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/number.ts","line":173,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/number.ts#L173"}],"signatures":[{"id":691,"name":"sum","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"sum"}]},{"tag":"@description","content":[{"kind":"text","text":"数字求和。Calculates the sum of numbers"}]},{"tag":"@returns","content":[{"kind":"text","text":"数字求和结果。The sum of the numbers"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\nsum(1, 2, 3); // 6\n```"}]}]},"parameters":[{"id":692,"name":"arr","kind":32768,"kindString":"Parameter","flags":{"isRest":true},"comment":{"summary":[{"kind":"text","text":"数字数组。Array of numbers"}]},"type":{"type":"array","elementType":{"type":"intrinsic","name":"number"}},"text":{"comment":"

    数字数组。Array of numbers

    \n"}}],"type":{"type":"intrinsic","name":"number"},"is":{"declaration":false},"location":{"query":"Number.Function.sum","hash":"sum"},"text":{"comment":"
    Function:

    sum

    \n
    Description:

    数字求和。Calculates the sum of numbers

    \n
    Returns:

    数字求和结果。The sum of the numbers

    \n
    Example:
    sum(1, 2, 3); // 6\n
    \n"},"sources":[{"fileName":"packages/utils/src/number.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/number.ts","line":173,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/number.ts#L173"}],"parentId":690}],"is":{"declaration":true},"location":{"query":"Number.Function.sum","hash":""},"text":{},"parentId":658} diff --git a/docs/v1.0.0-beta01/data/Object.Function.forOwn.json b/docs/v1.0.0-beta01/data/Object.Function.forOwn.json new file mode 100644 index 000000000..053700eb3 --- /dev/null +++ b/docs/v1.0.0-beta01/data/Object.Function.forOwn.json @@ -0,0 +1 @@ +{"id":705,"name":"forOwn","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/utils/src/object.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/object.ts","line":53,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/object.ts#L53"}],"signatures":[{"id":706,"name":"forOwn","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"forOwn"}]},{"tag":"@description","content":[{"kind":"text","text":"遍历对象的所有可枚举自有属性,为每个属性执行回调函数。Iterates over all enumerable own properties of an object, executing a callback for each property"}]},{"tag":"@returns","content":[{"kind":"text","text":"无返回值(函数用于副作用)。void (function is used for side effects)"}]},{"tag":"@throws","content":[{"kind":"text","text":"当obj不是对象或fn不是函数时。When obj is not an object or fn is not a function"}]},{"tag":"@example","content":[{"kind":"text","text":"// Basic iteration\nconst obj = { a: 1, b: 2, c: 3 };\nforOwn(obj, (val, key) => console.log("},{"kind":"code","text":"`${key}: ${val}`"},{"kind":"text","text":"));\n// Output: \"a: 1\", \"b: 2\", \"c: 3\""}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Collecting values\nconst values = [];\nforOwn({ x: 10, y: 20, z: 30 }, (val) => values.push(val));\nconsole.log(values); // -> [10, 20, 30]\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Conditional processing\nconst result = {};\nforOwn({ a: 1, b: 2, c: 3, d: 4 }, (val, key) => {\n if (val % 2 === 0) result[key] = val * 2;\n});\nconsole.log(result); // -> { b: 4, d: 8 }\n```"}]},{"tag":"@example","content":[{"kind":"text","text":"// Using all parameters\nforOwn({ name: 'John', age: 30 }, (val, key, obj) => {\n console.log("},{"kind":"code","text":"`Property ${key} has value ${val} in object with ${Object.keys(obj).length} properties`"},{"kind":"text","text":");\n});"}]},{"tag":"@example","content":[{"kind":"text","text":"// Edge cases\nforOwn({}, (val) => console.log(val)); // No output (empty object)\nforOwn({ a: undefined, b: null }, (val, key) => console.log("},{"kind":"code","text":"`${key}: ${val}`"},{"kind":"text","text":")); // -> \"a: undefined\", \"b: null\""}]}]},"parameters":[{"id":707,"name":"obj","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"要遍历的对象。Object to iterate over"}]},"type":{"type":"reference","id":740,"name":"PlainObject"},"text":{"comment":"

    要遍历的对象。Object to iterate over

    \n"}},{"id":708,"name":"fn","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"为每个属性执行的回调函数(接收值、键和对象)。Callback function executed for each property (receives value, key, and object)"}]},"type":{"type":"reflection","declaration":{"id":709,"name":"__type","kind":65536,"kindString":"Type literal","flags":{},"sources":[{"fileName":"packages/utils/src/object.ts","line":55,"character":6,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/object.ts#L55"}],"signatures":[{"id":710,"name":"__type","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":711,"name":"val","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"type":{"type":"intrinsic","name":"unknown"}},{"id":712,"name":"key","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"type":{"type":"intrinsic","name":"string"}},{"id":713,"name":"obj","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"type":{"type":"reference","id":740,"name":"PlainObject"}}],"type":{"type":"intrinsic","name":"void"}}]}},"text":{"comment":"

    为每个属性执行的回调函数(接收值、键和对象)。Callback function executed for each property (receives value, key, and object)

    \n"}}],"type":{"type":"intrinsic","name":"void"},"is":{"declaration":false},"location":{"query":"Object.Function.forOwn","hash":"forOwn"},"text":{"comment":"
    Function:

    forOwn

    \n
    Description:

    遍历对象的所有可枚举自有属性,为每个属性执行回调函数。Iterates over all enumerable own properties of an object, executing a callback for each property

    \n
    Returns:

    无返回值(函数用于副作用)。void (function is used for side effects)

    \n
    Throws:

    当obj不是对象或fn不是函数时。When obj is not an object or fn is not a function

    \n
    Example:

    // Basic iteration\nconst obj = { a: 1, b: 2, c: 3 };\nforOwn(obj, (val, key) => console.log(${key}: ${val}));\n// Output: "a: 1", "b: 2", "c: 3"

    \n
    Example:
    // Collecting values\nconst values = [];\nforOwn({ x: 10, y: 20, z: 30 }, (val) => values.push(val));\nconsole.log(values); // -> [10, 20, 30]\n
    \n
    Example:
    // Conditional processing\nconst result = {};\nforOwn({ a: 1, b: 2, c: 3, d: 4 }, (val, key) => {\n  if (val % 2 === 0) result[key] = val * 2;\n});\nconsole.log(result); // -> { b: 4, d: 8 }\n
    \n
    Example:

    // Using all parameters\nforOwn({ name: 'John', age: 30 }, (val, key, obj) => {\n console.log(Property ${key} has value ${val} in object with ${Object.keys(obj).length} properties);\n});

    \n
    Example:

    // Edge cases\nforOwn({}, (val) => console.log(val)); // No output (empty object)\nforOwn({ a: undefined, b: null }, (val, key) => console.log(${key}: ${val})); // -> "a: undefined", "b: null"

    \n"},"sources":[{"fileName":"packages/utils/src/object.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/object.ts","line":53,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/object.ts#L53"}],"parentId":705}],"is":{"declaration":true},"location":{"query":"Object.Function.forOwn","hash":""},"text":{},"parentId":704} diff --git a/docs/v1.0.0-beta01/data/Object.Function.hasOwnProperty.json b/docs/v1.0.0-beta01/data/Object.Function.hasOwnProperty.json new file mode 100644 index 000000000..4c86664be --- /dev/null +++ b/docs/v1.0.0-beta01/data/Object.Function.hasOwnProperty.json @@ -0,0 +1 @@ +{"id":732,"name":"hasOwnProperty","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/utils/src/object.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/object.ts","line":254,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/object.ts#L254"}],"signatures":[{"id":733,"name":"hasOwnProperty","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"hasOwnProperty"}]},{"tag":"@description","content":[{"kind":"text","text":"安全地检查对象是否具有特定的自有属性(非继承)。Safely checks if an object has a specific own property (not inherited)"}]},{"tag":"@returns","content":[{"kind":"text","text":"如果对象具有指定的自有属性则返回true,否则返回false。True if the object has the specified own property, false otherwise"}]},{"tag":"@throws","content":[{"kind":"text","text":"当obj不是对象时。When obj is not an object"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Basic usage\nconst obj = { a: 1, b: 2 };\nhasOwnProperty(obj, 'a'); // -> true\nhasOwnProperty(obj, 'b'); // -> true\nhasOwnProperty(obj, 'c'); // -> false\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Inherited properties return false\nconst obj = { a: 1 };\nhasOwnProperty(obj, 'toString'); // -> false (inherited from Object.prototype)\nhasOwnProperty(obj, 'hasOwnProperty'); // -> false (inherited)\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Different property types\nconst obj = {\n string: 'value',\n number: 42,\n boolean: true,\n null: null,\n undefined: undefined,\n 0: 'numeric key',\n '': 'empty string key'\n};\nhasOwnProperty(obj, 'string'); // -> true\nhasOwnProperty(obj, 'undefined'); // -> true (property exists, value is undefined)\nhasOwnProperty(obj, 0); // -> true (numeric keys work)\nhasOwnProperty(obj, ''); // -> true (empty string keys work)\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Symbol keys\nconst sym = Symbol('test');\nconst obj = { [sym]: 'symbol value', regular: 'regular value' };\nhasOwnProperty(obj, sym); // -> true\nhasOwnProperty(obj, 'regular'); // -> true\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Edge cases\nhasOwnProperty({}, 'anything'); // -> false\nhasOwnProperty({ a: undefined }, 'a'); // -> true (property exists with undefined value)\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Safe alternative to obj.hasOwnProperty() which can be overridden\nconst maliciousObj = { hasOwnProperty: 'not a function', a: 1 };\n// maliciousObj.hasOwnProperty('a'); // Would throw error\nhasOwnProperty(maliciousObj, 'a'); // -> true (safe)\n```"}]}]},"typeParameter":[{"id":734,"name":"T","kind":131072,"kindString":"Type parameter","flags":{},"type":{"type":"reference","typeArguments":[{"type":"intrinsic","name":"string"},{"type":"intrinsic","name":"unknown"}],"name":"Record","qualifiedName":"Record","package":"typescript"}}],"parameters":[{"id":735,"name":"obj","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"要检查属性的对象。Object to check for the property"}]},"type":{"type":"reference","id":734,"name":"T"},"text":{"comment":"

    要检查属性的对象。Object to check for the property

    \n"}},{"id":736,"name":"key","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"要检查的属性键。Property key to check for"}]},"type":{"type":"reference","name":"PropertyKey","qualifiedName":"PropertyKey","package":"typescript"},"text":{"comment":"

    要检查的属性键。Property key to check for

    \n"}}],"type":{"type":"predicate","name":"key","asserts":false,"targetType":{"type":"typeOperator","operator":"keyof","target":{"type":"reference","id":734,"name":"T"}}},"is":{"declaration":false},"location":{"query":"Object.Function.hasOwnProperty","hash":"hasOwnProperty"},"text":{"comment":"
    Function:

    hasOwnProperty

    \n
    Description:

    安全地检查对象是否具有特定的自有属性(非继承)。Safely checks if an object has a specific own property (not inherited)

    \n
    Returns:

    如果对象具有指定的自有属性则返回true,否则返回false。True if the object has the specified own property, false otherwise

    \n
    Throws:

    当obj不是对象时。When obj is not an object

    \n
    Example:
    // Basic usage\nconst obj = { a: 1, b: 2 };\nhasOwnProperty(obj, 'a'); // -> true\nhasOwnProperty(obj, 'b'); // -> true\nhasOwnProperty(obj, 'c'); // -> false\n
    \n
    Example:
    // Inherited properties return false\nconst obj = { a: 1 };\nhasOwnProperty(obj, 'toString'); // -> false (inherited from Object.prototype)\nhasOwnProperty(obj, 'hasOwnProperty'); // -> false (inherited)\n
    \n
    Example:
    // Different property types\nconst obj = {\n  string: 'value',\n  number: 42,\n  boolean: true,\n  null: null,\n  undefined: undefined,\n  0: 'numeric key',\n  '': 'empty string key'\n};\nhasOwnProperty(obj, 'string'); // -> true\nhasOwnProperty(obj, 'undefined'); // -> true (property exists, value is undefined)\nhasOwnProperty(obj, 0); // -> true (numeric keys work)\nhasOwnProperty(obj, ''); // -> true (empty string keys work)\n
    \n
    Example:
    // Symbol keys\nconst sym = Symbol('test');\nconst obj = { [sym]: 'symbol value', regular: 'regular value' };\nhasOwnProperty(obj, sym); // -> true\nhasOwnProperty(obj, 'regular'); // -> true\n
    \n
    Example:
    // Edge cases\nhasOwnProperty({}, 'anything'); // -> false\nhasOwnProperty({ a: undefined }, 'a'); // -> true (property exists with undefined value)\n
    \n
    Example:
    // Safe alternative to obj.hasOwnProperty() which can be overridden\nconst maliciousObj = { hasOwnProperty: 'not a function', a: 1 };\n// maliciousObj.hasOwnProperty('a'); // Would throw error\nhasOwnProperty(maliciousObj, 'a'); // -> true (safe)\n
    \n"},"sources":[{"fileName":"packages/utils/src/object.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/object.ts","line":254,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/object.ts#L254"}],"parentId":732}],"is":{"declaration":true},"location":{"query":"Object.Function.hasOwnProperty","hash":""},"text":{},"parentId":704} diff --git a/docs/v1.0.0-beta01/data/Object.Function.isEmptyObj.json b/docs/v1.0.0-beta01/data/Object.Function.isEmptyObj.json new file mode 100644 index 000000000..1e6699ab3 --- /dev/null +++ b/docs/v1.0.0-beta01/data/Object.Function.isEmptyObj.json @@ -0,0 +1 @@ +{"id":737,"name":"isEmptyObj","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/utils/src/object.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/object.ts","line":308,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/object.ts#L308"}],"signatures":[{"id":738,"name":"isEmptyObj","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"isEmptyObj"}]},{"tag":"@description","content":[{"kind":"text","text":"检查值是否为空对象(没有自有可枚举属性的对象)。Checks if a value is an empty object (object with no own enumerable properties)"}]},{"tag":"@returns","content":[{"kind":"text","text":"如果值是没有任何自有可枚举属性的对象则返回true,否则返回false。True if the value is an object with no own enumerable properties, false otherwise"}]},{"tag":"@throws","content":[{"kind":"text","text":"当类型检查失败时。When type checking fails"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Empty objects\nisEmptyObj({}); // -> true\nisEmptyObj(new Object()); // -> true\nisEmptyObj(Object.create(null)); // -> true\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Non-empty objects\nisEmptyObj({ a: 1 }); // -> false\nisEmptyObj({ a: undefined }); // -> false (property exists)\nisEmptyObj({ 0: 'value' }); // -> false\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Non-objects return false\nisEmptyObj(null); // -> false\nisEmptyObj(undefined); // -> false\nisEmptyObj(''); // -> false (string, not object)\nisEmptyObj([]); // -> false (array, not plain object)\nisEmptyObj(0); // -> false\nisEmptyObj(false); // -> false\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Objects with inherited properties only\nconst obj = Object.create({ inherited: 'value' });\nisEmptyObj(obj); // -> true (no own properties)\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Objects with non-enumerable properties\nconst obj = {};\nObject.defineProperty(obj, 'hidden', { value: 'secret', enumerable: false });\nisEmptyObj(obj); // -> true (no enumerable own properties)\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Practical usage\nfunction processConfig(config) {\n if (isEmptyObj(config)) {\n return getDefaultConfig();\n }\n return { ...getDefaultConfig(), ...config };\n}\n```"}]}]},"parameters":[{"id":739,"name":"obj","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"要检查是否为空的值。Value to check for emptiness"}]},"type":{"type":"intrinsic","name":"unknown"},"text":{"comment":"

    要检查是否为空的值。Value to check for emptiness

    \n"}}],"type":{"type":"intrinsic","name":"boolean"},"is":{"declaration":false},"location":{"query":"Object.Function.isEmptyObj","hash":"isEmptyObj"},"text":{"comment":"
    Function:

    isEmptyObj

    \n
    Description:

    检查值是否为空对象(没有自有可枚举属性的对象)。Checks if a value is an empty object (object with no own enumerable properties)

    \n
    Returns:

    如果值是没有任何自有可枚举属性的对象则返回true,否则返回false。True if the value is an object with no own enumerable properties, false otherwise

    \n
    Throws:

    当类型检查失败时。When type checking fails

    \n
    Example:
    // Empty objects\nisEmptyObj({}); // -> true\nisEmptyObj(new Object()); // -> true\nisEmptyObj(Object.create(null)); // -> true\n
    \n
    Example:
    // Non-empty objects\nisEmptyObj({ a: 1 }); // -> false\nisEmptyObj({ a: undefined }); // -> false (property exists)\nisEmptyObj({ 0: 'value' }); // -> false\n
    \n
    Example:
    // Non-objects return false\nisEmptyObj(null); // -> false\nisEmptyObj(undefined); // -> false\nisEmptyObj(''); // -> false (string, not object)\nisEmptyObj([]); // -> false (array, not plain object)\nisEmptyObj(0); // -> false\nisEmptyObj(false); // -> false\n
    \n
    Example:
    // Objects with inherited properties only\nconst obj = Object.create({ inherited: 'value' });\nisEmptyObj(obj); // -> true (no own properties)\n
    \n
    Example:
    // Objects with non-enumerable properties\nconst obj = {};\nObject.defineProperty(obj, 'hidden', { value: 'secret', enumerable: false });\nisEmptyObj(obj); // -> true (no enumerable own properties)\n
    \n
    Example:
    // Practical usage\nfunction processConfig(config) {\n  if (isEmptyObj(config)) {\n    return getDefaultConfig();\n  }\n  return { ...getDefaultConfig(), ...config };\n}\n
    \n"},"sources":[{"fileName":"packages/utils/src/object.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/object.ts","line":308,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/object.ts#L308"}],"parentId":737}],"is":{"declaration":true},"location":{"query":"Object.Function.isEmptyObj","hash":""},"text":{},"parentId":704} diff --git a/docs/v1.0.0-beta01/data/Object.Function.mapObject.json b/docs/v1.0.0-beta01/data/Object.Function.mapObject.json new file mode 100644 index 000000000..b6391ea03 --- /dev/null +++ b/docs/v1.0.0-beta01/data/Object.Function.mapObject.json @@ -0,0 +1 @@ +{"id":717,"name":"mapObject","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/utils/src/object.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/object.ts","line":142,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/object.ts#L142"}],"signatures":[{"id":718,"name":"mapObject","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"mapObject"}]},{"tag":"@description","content":[{"kind":"text","text":"将数组映射到对象,其中数组元素成为键,回调结果成为值。Maps an array to an object where array elements become keys and callback results become values"}]},{"tag":"@returns","content":[{"kind":"text","text":"数组元素作为键、回调结果作为值的对象。Object with array elements as keys and callback results as values"}]},{"tag":"@throws","content":[{"kind":"text","text":"当arr不是数组或fn不是函数时。When arr is not an array or fn is not a function"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Basic mapping\nmapObject(['a', 'b', 'c'], v => v + '1'); // -> { a: 'a1', b: 'b1', c: 'c1' }\nmapObject(['x', 'y', 'z'], v => v.toUpperCase()); // -> { x: 'X', y: 'Y', z: 'Z' }\n```"}]},{"tag":"@example","content":[{"kind":"text","text":"// Using index parameter\nmapObject(['a', 'b', 'c'], (v, i) => i); // -> { a: 0, b: 1, c: 2 }\nmapObject(['first', 'second', 'third'], (v, i) => "},{"kind":"code","text":"`${v}-${i}`"},{"kind":"text","text":"); // -> { first: 'first-0', second: 'second-1', third: 'third-2' }"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Using array parameter\nmapObject(['a', 'b'], (v, i, arr) => arr.length - i); // -> { a: 2, b: 1 }\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Complex transformations\nmapObject(['apple', 'banana', 'cherry'], v => ({\n name: v,\n length: v.length,\n uppercase: v.toUpperCase()\n}));\n// -> {\n// apple: { name: 'apple', length: 5, uppercase: 'APPLE' },\n// banana: { name: 'banana', length: 6, uppercase: 'BANANA' },\n// cherry: { name: 'cherry', length: 6, uppercase: 'CHERRY' }\n// }\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Edge cases\nmapObject([], v => v); // -> {}\nmapObject(['single'], v => v); // -> { single: 'single' }\n```"}]}]},"typeParameter":[{"id":719,"name":"T","kind":131072,"kindString":"Type parameter","flags":{}},{"id":720,"name":"U","kind":131072,"kindString":"Type parameter","flags":{}}],"parameters":[{"id":721,"name":"arr","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"用作对象键的元素数组。Array of elements to use as object keys"}]},"type":{"type":"array","elementType":{"type":"reference","id":719,"name":"T"}},"text":{"comment":"

    用作对象键的元素数组。Array of elements to use as object keys

    \n"}},{"id":722,"name":"fn","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"生成值的回调函数(接收值、索引和数组)。Callback function to generate values (receives value, index, and array)"}]},"type":{"type":"reflection","declaration":{"id":723,"name":"__type","kind":65536,"kindString":"Type literal","flags":{},"sources":[{"fileName":"packages/utils/src/object.ts","line":144,"character":6,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/object.ts#L144"}],"signatures":[{"id":724,"name":"__type","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":725,"name":"value","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","id":719,"name":"T"}},{"id":726,"name":"index","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"intrinsic","name":"number"}},{"id":727,"name":"array","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"array","elementType":{"type":"reference","id":719,"name":"T"}}}],"type":{"type":"reference","id":720,"name":"U"}}]}},"text":{"comment":"

    生成值的回调函数(接收值、索引和数组)。Callback function to generate values (receives value, index, and array)

    \n"}}],"type":{"type":"reference","typeArguments":[{"type":"conditional","checkType":{"type":"reference","id":719,"name":"T"},"extendsType":{"type":"intrinsic","name":"string"},"trueType":{"type":"reference","id":719,"name":"T"},"falseType":{"type":"intrinsic","name":"string"}},{"type":"reference","id":720,"name":"U"}],"name":"Record","qualifiedName":"Record","package":"typescript"},"is":{"declaration":false},"location":{"query":"Object.Function.mapObject","hash":"mapObject"},"text":{"comment":"
    Function:

    mapObject

    \n
    Description:

    将数组映射到对象,其中数组元素成为键,回调结果成为值。Maps an array to an object where array elements become keys and callback results become values

    \n
    Returns:

    数组元素作为键、回调结果作为值的对象。Object with array elements as keys and callback results as values

    \n
    Throws:

    当arr不是数组或fn不是函数时。When arr is not an array or fn is not a function

    \n
    Example:
    // Basic mapping\nmapObject(['a', 'b', 'c'], v => v + '1'); // -> { a: 'a1', b: 'b1', c: 'c1' }\nmapObject(['x', 'y', 'z'], v => v.toUpperCase()); // -> { x: 'X', y: 'Y', z: 'Z' }\n
    \n
    Example:

    // Using index parameter\nmapObject(['a', 'b', 'c'], (v, i) => i); // -> { a: 0, b: 1, c: 2 }\nmapObject(['first', 'second', 'third'], (v, i) => ${v}-${i}); // -> { first: 'first-0', second: 'second-1', third: 'third-2' }

    \n
    Example:
    // Using array parameter\nmapObject(['a', 'b'], (v, i, arr) => arr.length - i); // -> { a: 2, b: 1 }\n
    \n
    Example:
    // Complex transformations\nmapObject(['apple', 'banana', 'cherry'], v => ({\n  name: v,\n  length: v.length,\n  uppercase: v.toUpperCase()\n}));\n// -> {\n//   apple: { name: 'apple', length: 5, uppercase: 'APPLE' },\n//   banana: { name: 'banana', length: 6, uppercase: 'BANANA' },\n//   cherry: { name: 'cherry', length: 6, uppercase: 'CHERRY' }\n// }\n
    \n
    Example:
    // Edge cases\nmapObject([], v => v); // -> {}\nmapObject(['single'], v => v); // -> { single: 'single' }\n
    \n"},"sources":[{"fileName":"packages/utils/src/object.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/object.ts","line":142,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/object.ts#L142"}],"parentId":717}],"is":{"declaration":true},"location":{"query":"Object.Function.mapObject","hash":""},"text":{},"parentId":704} diff --git a/docs/v1.0.0-beta01/data/Object.Function.objectFromPairs.json b/docs/v1.0.0-beta01/data/Object.Function.objectFromPairs.json new file mode 100644 index 000000000..68ded524a --- /dev/null +++ b/docs/v1.0.0-beta01/data/Object.Function.objectFromPairs.json @@ -0,0 +1 @@ +{"id":714,"name":"objectFromPairs","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/utils/src/object.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/object.ts","line":96,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/object.ts#L96"}],"signatures":[{"id":715,"name":"objectFromPairs","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"objectFromPairs"}]},{"tag":"@description","content":[{"kind":"text","text":"将键值对数组转换为对象。Converts an array of key-value pairs into an object"}]},{"tag":"@returns","content":[{"kind":"text","text":"从键值对创建的对象。Object created from the key-value pairs"}]},{"tag":"@throws","content":[{"kind":"text","text":"当arr不是数组或包含无效对时。When arr is not an array or contains invalid pairs"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Basic usage\nobjectFromPairs([['a', 1], ['b', 2]]); // -> { a: 1, b: 2 }\nobjectFromPairs([['name', 'John'], ['age', 30]]); // -> { name: 'John', age: 30 }\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Complex values\nobjectFromPairs([['a', 1], ['b', [2, 3]], ['c', { d: 4 }]]); // -> { a: 1, b: [2, 3], c: { d: 4 } }\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Different value types\nobjectFromPairs([\n ['string', 'hello'],\n ['number', 42],\n ['boolean', true],\n ['null', null],\n ['undefined', undefined]\n]); // -> { string: 'hello', number: 42, boolean: true, null: null, undefined: undefined }\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Edge cases\nobjectFromPairs([]); // -> {}\nobjectFromPairs([['key', 'value']]); // -> { key: 'value' }\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Duplicate keys (later values overwrite earlier ones)\nobjectFromPairs([['a', 1], ['b', 2], ['a', 3]]); // -> { a: 3, b: 2 }\n```"}]},{"tag":"@see","content":[{"kind":"inline-tag","tag":"@link","text":"Object.fromEntries"},{"kind":"text","text":" - Native equivalent in modern JavaScript"}]}]},"parameters":[{"id":716,"name":"arr","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"要转换为对象的[key, value]对数组。Array of [key, value] pairs to convert to object"}]},"type":{"type":"array","elementType":{"type":"tuple","elements":[{"type":"intrinsic","name":"string"},{"type":"intrinsic","name":"unknown"}]}},"text":{"comment":"

    要转换为对象的[key, value]对数组。Array of [key, value] pairs to convert to object

    \n"}}],"type":{"type":"reference","id":740,"name":"PlainObject"},"is":{"declaration":false},"location":{"query":"Object.Function.objectFromPairs","hash":"objectFromPairs"},"text":{"comment":"
    Function:

    objectFromPairs

    \n
    Description:

    将键值对数组转换为对象。Converts an array of key-value pairs into an object

    \n
    Returns:

    从键值对创建的对象。Object created from the key-value pairs

    \n
    Throws:

    当arr不是数组或包含无效对时。When arr is not an array or contains invalid pairs

    \n
    Example:
    // Basic usage\nobjectFromPairs([['a', 1], ['b', 2]]); // -> { a: 1, b: 2 }\nobjectFromPairs([['name', 'John'], ['age', 30]]); // -> { name: 'John', age: 30 }\n
    \n
    Example:
    // Complex values\nobjectFromPairs([['a', 1], ['b', [2, 3]], ['c', { d: 4 }]]); // -> { a: 1, b: [2, 3], c: { d: 4 } }\n
    \n
    Example:
    // Different value types\nobjectFromPairs([\n  ['string', 'hello'],\n  ['number', 42],\n  ['boolean', true],\n  ['null', null],\n  ['undefined', undefined]\n]); // -> { string: 'hello', number: 42, boolean: true, null: null, undefined: undefined }\n
    \n
    Example:
    // Edge cases\nobjectFromPairs([]); // -> {}\nobjectFromPairs([['key', 'value']]); // -> { key: 'value' }\n
    \n
    Example:
    // Duplicate keys (later values overwrite earlier ones)\nobjectFromPairs([['a', 1], ['b', 2], ['a', 3]]); // -> { a: 3, b: 2 }\n
    \n
    See:

    Object.fromEntries - Native equivalent in modern JavaScript

    \n"},"sources":[{"fileName":"packages/utils/src/object.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/object.ts","line":96,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/object.ts#L96"}],"parentId":714}],"is":{"declaration":true},"location":{"query":"Object.Function.objectFromPairs","hash":""},"text":{},"parentId":704} diff --git a/docs/v1.0.0-beta01/data/Object.Function.pick.json b/docs/v1.0.0-beta01/data/Object.Function.pick.json new file mode 100644 index 000000000..538dbed5a --- /dev/null +++ b/docs/v1.0.0-beta01/data/Object.Function.pick.json @@ -0,0 +1 @@ +{"id":728,"name":"pick","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/utils/src/object.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/object.ts","line":193,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/object.ts#L193"}],"signatures":[{"id":729,"name":"pick","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"pick"}]},{"tag":"@description","content":[{"kind":"text","text":"从源对象中选择指定键创建新对象(浅拷贝)。Creates a new object with only the specified keys from the source object (shallow copy)"}]},{"tag":"@returns","content":[{"kind":"text","text":"仅包含源对象中存在的指定属性的新对象。New object containing only the specified properties that exist in the source object"}]},{"tag":"@throws","content":[{"kind":"text","text":"当obj不是对象或keys不是数组时。When obj is not an object or keys is not an array"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Basic usage\npick({ a: 1, b: 2, c: 3 }, ['a', 'b']); // -> { a: 1, b: 2 }\npick({ name: 'John', age: 30, city: 'NYC' }, ['name', 'age']); // -> { name: 'John', age: 30 }\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Non-existent keys are ignored\npick({ a: 1, b: 2, c: 3 }, ['a', 'd']); // -> { a: 1 }\npick({ x: 10 }, ['y', 'z']); // -> {}\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Complex values (shallow copy)\nconst source = {\n simple: 'value',\n array: [1, 2, 3],\n object: { nested: true },\n unused: 'ignored'\n};\nconst result = pick(source, ['simple', 'array', 'object']);\n// -> { simple: 'value', array: [1, 2, 3], object: { nested: true } }\n// Note: array and object are shallow copied (same references)\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Edge cases\npick({}, ['a', 'b']); // -> {}\npick({ a: 1, b: 2 }, []); // -> {}\npick({ a: undefined, b: null }, ['a', 'b']); // -> { a: undefined, b: null }\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Practical use case: API response filtering\nconst user = { id: 1, name: 'John', email: 'john@example.com', password: 'secret', role: 'admin' };\nconst publicUser = pick(user, ['id', 'name', 'email']); // -> { id: 1, name: 'John', email: 'john@example.com' }\n```"}]}]},"parameters":[{"id":730,"name":"obj","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"要从中选择属性的源对象。Source object to pick properties from"}]},"type":{"type":"reference","id":740,"name":"PlainObject"},"text":{"comment":"

    要从中选择属性的源对象。Source object to pick properties from

    \n"}},{"id":731,"name":"keys","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"要包含在新对象中的属性名数组。Array of property names to include in the new object"}]},"type":{"type":"array","elementType":{"type":"intrinsic","name":"string"}},"text":{"comment":"

    要包含在新对象中的属性名数组。Array of property names to include in the new object

    \n"}}],"type":{"type":"reference","id":740,"name":"PlainObject"},"is":{"declaration":false},"location":{"query":"Object.Function.pick","hash":"pick"},"text":{"comment":"
    Function:

    pick

    \n
    Description:

    从源对象中选择指定键创建新对象(浅拷贝)。Creates a new object with only the specified keys from the source object (shallow copy)

    \n
    Returns:

    仅包含源对象中存在的指定属性的新对象。New object containing only the specified properties that exist in the source object

    \n
    Throws:

    当obj不是对象或keys不是数组时。When obj is not an object or keys is not an array

    \n
    Example:
    // Basic usage\npick({ a: 1, b: 2, c: 3 }, ['a', 'b']); // -> { a: 1, b: 2 }\npick({ name: 'John', age: 30, city: 'NYC' }, ['name', 'age']); // -> { name: 'John', age: 30 }\n
    \n
    Example:
    // Non-existent keys are ignored\npick({ a: 1, b: 2, c: 3 }, ['a', 'd']); // -> { a: 1 }\npick({ x: 10 }, ['y', 'z']); // -> {}\n
    \n
    Example:
    // Complex values (shallow copy)\nconst source = {\n  simple: 'value',\n  array: [1, 2, 3],\n  object: { nested: true },\n  unused: 'ignored'\n};\nconst result = pick(source, ['simple', 'array', 'object']);\n// -> { simple: 'value', array: [1, 2, 3], object: { nested: true } }\n// Note: array and object are shallow copied (same references)\n
    \n
    Example:
    // Edge cases\npick({}, ['a', 'b']); // -> {}\npick({ a: 1, b: 2 }, []); // -> {}\npick({ a: undefined, b: null }, ['a', 'b']); // -> { a: undefined, b: null }\n
    \n
    Example:
    // Practical use case: API response filtering\nconst user = { id: 1, name: 'John', email: 'john@example.com', password: 'secret', role: 'admin' };\nconst publicUser = pick(user, ['id', 'name', 'email']); // -> { id: 1, name: 'John', email: 'john@example.com' }\n
    \n"},"sources":[{"fileName":"packages/utils/src/object.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/object.ts","line":193,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/object.ts#L193"}],"parentId":728}],"is":{"declaration":true},"location":{"query":"Object.Function.pick","hash":""},"text":{},"parentId":704} diff --git a/docs/v1.0.0-beta01/data/Object.TypeAlias.PlainObject.json b/docs/v1.0.0-beta01/data/Object.TypeAlias.PlainObject.json new file mode 100644 index 000000000..4535946f9 --- /dev/null +++ b/docs/v1.0.0-beta01/data/Object.TypeAlias.PlainObject.json @@ -0,0 +1 @@ +{"id":740,"name":"PlainObject","kind":4194304,"kindString":"Type alias","flags":{},"children":[],"sources":[{"fileName":"packages/utils/src/object.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/object.ts","line":11,"character":12,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/object.ts#L11"}],"type":{"type":"reflection","declaration":{"id":741,"name":"PlainObject","kind":65536,"kindString":"Type literal","flags":{},"sources":[{"fileName":"packages/utils/src/object.ts","line":11,"character":26,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/object.ts#L11"}],"indexSignature":{"id":742,"name":"__index","kind":8192,"kindString":"Index signature","flags":{},"parameters":[{"id":743,"name":"propName","kind":32768,"flags":{},"type":{"type":"intrinsic","name":"string"}}],"type":{"type":"intrinsic","name":"unknown"}},"location":{"query":"Object.TypeAlias.PlainObject","hash":""}}},"is":{"declaration":true},"location":{"query":"Object.TypeAlias.PlainObject","hash":""},"text":{},"parentId":704} diff --git a/docs/v1.0.0-beta01/data/Others.Function.compareVersion.json b/docs/v1.0.0-beta01/data/Others.Function.compareVersion.json new file mode 100644 index 000000000..29b3f1772 --- /dev/null +++ b/docs/v1.0.0-beta01/data/Others.Function.compareVersion.json @@ -0,0 +1 @@ +{"id":745,"name":"compareVersion","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/utils/src/others.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/others.ts","line":31,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/others.ts#L31"}],"signatures":[{"id":746,"name":"compareVersion","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"compareVersion"}]},{"tag":"@description","content":[{"kind":"text","text":"版本比较。Compares version strings"}]},{"tag":"@returns","content":[{"kind":"text","text":"比较结果,1: v1 > v2, 0: v1 = v2, -1: v1 < v2。Comparison result, 1: v1 > v2, 0: v1 = v2, -1: v1 < v2"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\ncompareVersion('1.1.8', '1.0.4'); // -> 1\ncompareVersion('1.0.2', '1.0.2'); // -> 0\ncompareVersion('2.0', '2.0.0'); // -> 0\ncompareVersion('3.0.1', '3.0.0.2'); // -> 1\ncompareVersion('1.1.1', '1.2.3'); // -> -1\n```"}]}]},"parameters":[{"id":747,"name":"v1Str","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"版本1。Version 1"}]},"type":{"type":"intrinsic","name":"string"},"text":{"comment":"

    版本1。Version 1

    \n"}},{"id":748,"name":"v2Str","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"版本2。Version 2"}]},"type":{"type":"intrinsic","name":"string"},"text":{"comment":"

    版本2。Version 2

    \n"}}],"type":{"type":"union","types":[{"type":"literal","value":0},{"type":"literal","value":1},{"type":"literal","value":-1}]},"is":{"declaration":false},"location":{"query":"Others.Function.compareVersion","hash":"compareVersion"},"text":{"comment":"
    Function:

    compareVersion

    \n
    Description:

    版本比较。Compares version strings

    \n
    Returns:

    比较结果,1: v1 > v2, 0: v1 = v2, -1: v1 < v2。Comparison result, 1: v1 > v2, 0: v1 = v2, -1: v1 < v2

    \n
    Example:
    compareVersion('1.1.8', '1.0.4'); // -> 1\ncompareVersion('1.0.2', '1.0.2'); // -> 0\ncompareVersion('2.0', '2.0.0'); // -> 0\ncompareVersion('3.0.1', '3.0.0.2'); // -> 1\ncompareVersion('1.1.1', '1.2.3'); // -> -1\n
    \n"},"sources":[{"fileName":"packages/utils/src/others.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/others.ts","line":31,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/others.ts#L31"}],"parentId":745}],"is":{"declaration":true},"location":{"query":"Others.Function.compareVersion","hash":""},"text":{},"parentId":744} diff --git a/docs/v1.0.0-beta01/data/Others.Function.digitUppercase.json b/docs/v1.0.0-beta01/data/Others.Function.digitUppercase.json new file mode 100644 index 000000000..a666fca05 --- /dev/null +++ b/docs/v1.0.0-beta01/data/Others.Function.digitUppercase.json @@ -0,0 +1 @@ +{"id":749,"name":"digitUppercase","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/utils/src/others.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/others.ts","line":57,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/others.ts#L57"}],"signatures":[{"id":750,"name":"digitUppercase","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"digitUppercase"}]},{"tag":"@description","content":[{"kind":"text","text":"数字金额转中文。Converts numeric amount to Chinese uppercase"}]},{"tag":"@returns","content":[{"kind":"text","text":"中文金额。Chinese uppercase amount"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\ndigitUppercase(1000); // '壹仟元整'\ndigitUppercase(-123.45); // '欠壹佰贰拾叁元肆角伍分'\n```"}]}]},"parameters":[{"id":751,"name":"num","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"数字金额。Numeric amount"}]},"type":{"type":"intrinsic","name":"number"},"text":{"comment":"

    数字金额。Numeric amount

    \n"}}],"type":{"type":"intrinsic","name":"string"},"is":{"declaration":false},"location":{"query":"Others.Function.digitUppercase","hash":"digitUppercase"},"text":{"comment":"
    Function:

    digitUppercase

    \n
    Description:

    数字金额转中文。Converts numeric amount to Chinese uppercase

    \n
    Returns:

    中文金额。Chinese uppercase amount

    \n
    Example:
    digitUppercase(1000); // '壹仟元整'\ndigitUppercase(-123.45); // '欠壹佰贰拾叁元肆角伍分'\n
    \n"},"sources":[{"fileName":"packages/utils/src/others.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/others.ts","line":57,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/others.ts#L57"}],"parentId":749}],"is":{"declaration":true},"location":{"query":"Others.Function.digitUppercase","hash":""},"text":{},"parentId":744} diff --git a/docs/v1.0.0-beta01/data/Performance.Function.createPerformanceObserver.json b/docs/v1.0.0-beta01/data/Performance.Function.createPerformanceObserver.json new file mode 100644 index 000000000..fb9c705e8 --- /dev/null +++ b/docs/v1.0.0-beta01/data/Performance.Function.createPerformanceObserver.json @@ -0,0 +1 @@ +{"id":1232,"name":"createPerformanceObserver","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/web-utils/src/performance.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/performance.ts","line":212,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/performance.ts#L212"}],"signatures":[{"id":1233,"name":"createPerformanceObserver","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"createPerformanceObserver"}]},{"tag":"@description","content":[{"kind":"text","text":"创建性能观察器监听特定类型的性能条目。Creates performance observer for specific entry types"}]},{"tag":"@returns","content":[{"kind":"text","text":"性能观察器实例或null。Performance observer instance or null"}]},{"tag":"@example","content":[{"kind":"text","text":"const observer = createPerformanceObserver(['resource'], (entries) => {\n entries.forEach(entry => {\n console.log("},{"kind":"code","text":"`${entry.name}: ${entry.duration}ms`"},{"kind":"text","text":");\n });\n});"}]}]},"parameters":[{"id":1234,"name":"entryTypes","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"要观察的条目类型。Entry types to observe"}]},"type":{"type":"array","elementType":{"type":"intrinsic","name":"string"}},"text":{"comment":"

    要观察的条目类型。Entry types to observe

    \n"}},{"id":1235,"name":"callback","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"接收性能条目的回调。Callback receiving performance entries"}]},"type":{"type":"reflection","declaration":{"id":1236,"name":"__type","kind":65536,"kindString":"Type literal","flags":{},"sources":[{"fileName":"packages/web-utils/src/performance.ts","line":214,"character":12,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/performance.ts#L214"}],"signatures":[{"id":1237,"name":"__type","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":1238,"name":"entries","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"array","elementType":{"type":"reference","name":"PerformanceEntry","qualifiedName":"PerformanceEntry","package":"typescript"}}}],"type":{"type":"intrinsic","name":"void"}}]}},"text":{"comment":"

    接收性能条目的回调。Callback receiving performance entries

    \n"}}],"type":{"type":"union","types":[{"type":"reference","name":"PerformanceObserver","qualifiedName":"PerformanceObserver","package":"typescript"},{"type":"literal","value":null}]},"is":{"declaration":false},"location":{"query":"Performance.Function.createPerformanceObserver","hash":"createPerformanceObserver"},"text":{"comment":"
    Function:

    createPerformanceObserver

    \n
    Description:

    创建性能观察器监听特定类型的性能条目。Creates performance observer for specific entry types

    \n
    Returns:

    性能观察器实例或null。Performance observer instance or null

    \n
    Example:

    const observer = createPerformanceObserver(['resource'], (entries) => {\n entries.forEach(entry => {\n console.log(${entry.name}: ${entry.duration}ms);\n });\n});

    \n"},"sources":[{"fileName":"packages/web-utils/src/performance.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/performance.ts","line":212,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/performance.ts#L212"}],"parentId":1232}],"is":{"declaration":true},"location":{"query":"Performance.Function.createPerformanceObserver","hash":""},"text":{},"parentId":1197} diff --git a/docs/v1.0.0-beta01/data/Performance.Function.getWebVitals.json b/docs/v1.0.0-beta01/data/Performance.Function.getWebVitals.json new file mode 100644 index 000000000..2f6d7561e --- /dev/null +++ b/docs/v1.0.0-beta01/data/Performance.Function.getWebVitals.json @@ -0,0 +1 @@ +{"id":1207,"name":"getWebVitals","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/web-utils/src/performance.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/performance.ts","line":59,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/performance.ts#L59"}],"signatures":[{"id":1208,"name":"getWebVitals","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"getWebVitals"}]},{"tag":"@description","content":[{"kind":"text","text":"获取Web Vitals性能指标(LCP, FID, CLS)。Gets Web Vitals performance metrics (LCP, FID, CLS)"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\ngetWebVitals((metrics) => {\n console.log('Web Vitals:', metrics);\n // { LCP: 2500, FID: 100, CLS: 0.1, FCP: 1800, TTFB: 800 }\n});\n```"}]}]},"parameters":[{"id":1209,"name":"callback","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"接收性能指标的回调函数。Callback receiving performance metrics"}]},"type":{"type":"reflection","declaration":{"id":1210,"name":"__type","kind":65536,"kindString":"Type literal","flags":{},"sources":[{"fileName":"packages/web-utils/src/performance.ts","line":60,"character":12,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/performance.ts#L60"}],"signatures":[{"id":1211,"name":"__type","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":1212,"name":"metrics","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reflection","declaration":{"id":1213,"name":"__type","kind":65536,"kindString":"Type literal","flags":{},"children":[{"id":1216,"name":"CLS","kind":1024,"kindString":"Property","flags":{"isOptional":true},"sources":[{"fileName":"packages/web-utils/src/performance.ts","line":63,"character":4,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/performance.ts#L63"}],"type":{"type":"intrinsic","name":"number"}},{"id":1217,"name":"FCP","kind":1024,"kindString":"Property","flags":{"isOptional":true},"sources":[{"fileName":"packages/web-utils/src/performance.ts","line":64,"character":4,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/performance.ts#L64"}],"type":{"type":"intrinsic","name":"number"}},{"id":1215,"name":"FID","kind":1024,"kindString":"Property","flags":{"isOptional":true},"sources":[{"fileName":"packages/web-utils/src/performance.ts","line":62,"character":4,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/performance.ts#L62"}],"type":{"type":"intrinsic","name":"number"}},{"id":1214,"name":"LCP","kind":1024,"kindString":"Property","flags":{"isOptional":true},"sources":[{"fileName":"packages/web-utils/src/performance.ts","line":61,"character":4,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/performance.ts#L61"}],"type":{"type":"intrinsic","name":"number"}},{"id":1218,"name":"TTFB","kind":1024,"kindString":"Property","flags":{"isOptional":true},"sources":[{"fileName":"packages/web-utils/src/performance.ts","line":65,"character":4,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/performance.ts#L65"}],"type":{"type":"intrinsic","name":"number"}}],"groups":[{"title":"Properties","children":[1216,1217,1215,1214,1218]}],"sources":[{"fileName":"packages/web-utils/src/performance.ts","line":60,"character":22,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/performance.ts#L60"}]}}}],"type":{"type":"intrinsic","name":"void"}}]}},"text":{"comment":"

    接收性能指标的回调函数。Callback receiving performance metrics

    \n"}}],"type":{"type":"intrinsic","name":"void"},"is":{"declaration":false},"location":{"query":"Performance.Function.getWebVitals","hash":"getWebVitals"},"text":{"comment":"
    Function:

    getWebVitals

    \n
    Description:

    获取Web Vitals性能指标(LCP, FID, CLS)。Gets Web Vitals performance metrics (LCP, FID, CLS)

    \n
    Example:
    getWebVitals((metrics) => {\n  console.log('Web Vitals:', metrics);\n  // { LCP: 2500, FID: 100, CLS: 0.1, FCP: 1800, TTFB: 800 }\n});\n
    \n"},"sources":[{"fileName":"packages/web-utils/src/performance.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/performance.ts","line":59,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/performance.ts#L59"}],"parentId":1207}],"is":{"declaration":true},"location":{"query":"Performance.Function.getWebVitals","hash":""},"text":{},"parentId":1197} diff --git a/docs/v1.0.0-beta01/data/Performance.Function.measureFPS.json b/docs/v1.0.0-beta01/data/Performance.Function.measureFPS.json new file mode 100644 index 000000000..3ff3d89ea --- /dev/null +++ b/docs/v1.0.0-beta01/data/Performance.Function.measureFPS.json @@ -0,0 +1 @@ +{"id":1198,"name":"measureFPS","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/web-utils/src/performance.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/performance.ts","line":23,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/performance.ts#L23"}],"signatures":[{"id":1199,"name":"measureFPS","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"measureFPS"}]},{"tag":"@description","content":[{"kind":"text","text":"测量当前帧率(FPS)。Measures current frames per second (FPS)"}]},{"tag":"@returns","content":[{"kind":"text","text":"停止测量的函数。Function to stop measurement"}]},{"tag":"@example","content":[{"kind":"text","text":"const stopMeasuring = measureFPS((fps) => {\n console.log("},{"kind":"code","text":"`Current FPS: ${fps}`"},{"kind":"text","text":");\n});\n\n// Later, stop measuring\nsetTimeout(stopMeasuring, 5000);"}]}]},"parameters":[{"id":1200,"name":"callback","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"接收FPS值的回调函数。Callback function receiving FPS value"}]},"type":{"type":"reflection","declaration":{"id":1201,"name":"__type","kind":65536,"kindString":"Type literal","flags":{},"sources":[{"fileName":"packages/web-utils/src/performance.ts","line":23,"character":37,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/performance.ts#L23"}],"signatures":[{"id":1202,"name":"__type","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":1203,"name":"fps","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"intrinsic","name":"number"}}],"type":{"type":"intrinsic","name":"void"}}]}},"text":{"comment":"

    接收FPS值的回调函数。Callback function receiving FPS value

    \n"}},{"id":1204,"name":"duration","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"测量持续时间(毫秒,默认: 1000)。Measurement duration in ms (default: 1000)"}]},"type":{"type":"intrinsic","name":"number"},"defaultValue":"1000","text":{"comment":"

    测量持续时间(毫秒,默认: 1000)。Measurement duration in ms (default: 1000)

    \n"}}],"type":{"type":"reflection","declaration":{"id":1205,"name":"measureFPS","kind":65536,"kindString":"Type literal","flags":{},"sources":[{"fileName":"packages/web-utils/src/performance.ts","line":23,"character":78,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/performance.ts#L23"}],"signatures":[{"id":1206,"name":"measureFPS","kind":4096,"kindString":"Call signature","flags":{},"type":{"type":"intrinsic","name":"void"},"is":{"declaration":false},"location":{"query":"Performance.Function.measureFPS","hash":"measureFPS.__type"},"text":{},"parentId":1198}],"location":{"query":"Performance.Function.measureFPS","hash":"measureFPS"}}},"is":{"declaration":false},"location":{"query":"Performance.Function.measureFPS","hash":"measureFPS"},"text":{"comment":"
    Function:

    measureFPS

    \n
    Description:

    测量当前帧率(FPS)。Measures current frames per second (FPS)

    \n
    Returns:

    停止测量的函数。Function to stop measurement

    \n
    Example:

    const stopMeasuring = measureFPS((fps) => {\n console.log(Current FPS: ${fps});\n});

    \n

    // Later, stop measuring\nsetTimeout(stopMeasuring, 5000);

    \n"},"sources":[{"fileName":"packages/web-utils/src/performance.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/performance.ts","line":23,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/performance.ts#L23"}],"parentId":1198}],"is":{"declaration":true},"location":{"query":"Performance.Function.measureFPS","hash":""},"text":{},"parentId":1197} diff --git a/docs/v1.0.0-beta01/data/Performance.Function.measureLoadTime.json b/docs/v1.0.0-beta01/data/Performance.Function.measureLoadTime.json new file mode 100644 index 000000000..cbecbd66e --- /dev/null +++ b/docs/v1.0.0-beta01/data/Performance.Function.measureLoadTime.json @@ -0,0 +1 @@ +{"id":1225,"name":"measureLoadTime","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/web-utils/src/performance.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/performance.ts","line":174,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/performance.ts#L174"}],"signatures":[{"id":1226,"name":"measureLoadTime","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"measureLoadTime"}]},{"tag":"@description","content":[{"kind":"text","text":"测量页面加载时间。Measures page load time"}]},{"tag":"@returns","content":[{"kind":"text","text":"加载时间详情。Load time details"}]},{"tag":"@example","content":[{"kind":"text","text":"const loadTime = measureLoadTime();\nconsole.log("},{"kind":"code","text":"`DOM Ready: ${loadTime.domReady}ms`"},{"kind":"text","text":");\nconsole.log("},{"kind":"code","text":"`Full Load: ${loadTime.fullLoad}ms`"},{"kind":"text","text":");"}]}]},"type":{"type":"reflection","declaration":{"id":1227,"name":"measureLoadTime","kind":65536,"kindString":"Type literal","flags":{},"children":[{"id":1228,"name":"domReady","kind":1024,"kindString":"Property","flags":{},"sources":[{"fileName":"packages/web-utils/src/performance.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/performance.ts","line":175,"character":2,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/performance.ts#L175"}],"type":{"type":"intrinsic","name":"number"},"is":{"declaration":true},"location":{"query":"Performance.Function.measureLoadTime","hash":"measureLoadTime.domReady"},"text":{},"parentId":1225},{"id":1231,"name":"firstContentfulPaint","kind":1024,"kindString":"Property","flags":{"isOptional":true},"sources":[{"fileName":"packages/web-utils/src/performance.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/performance.ts","line":178,"character":2,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/performance.ts#L178"}],"type":{"type":"intrinsic","name":"number"},"is":{"declaration":true},"location":{"query":"Performance.Function.measureLoadTime","hash":"measureLoadTime.firstContentfulPaint"},"text":{},"parentId":1225},{"id":1230,"name":"firstPaint","kind":1024,"kindString":"Property","flags":{"isOptional":true},"sources":[{"fileName":"packages/web-utils/src/performance.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/performance.ts","line":177,"character":2,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/performance.ts#L177"}],"type":{"type":"intrinsic","name":"number"},"is":{"declaration":true},"location":{"query":"Performance.Function.measureLoadTime","hash":"measureLoadTime.firstPaint"},"text":{},"parentId":1225},{"id":1229,"name":"fullLoad","kind":1024,"kindString":"Property","flags":{},"sources":[{"fileName":"packages/web-utils/src/performance.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/performance.ts","line":176,"character":2,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/performance.ts#L176"}],"type":{"type":"intrinsic","name":"number"},"is":{"declaration":true},"location":{"query":"Performance.Function.measureLoadTime","hash":"measureLoadTime.fullLoad"},"text":{},"parentId":1225}],"groups":[{"title":"Properties","children":[1228,1231,1230,1229]}],"sources":[{"fileName":"packages/web-utils/src/performance.ts","line":174,"character":35,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/performance.ts#L174"}],"location":{"query":"Performance.Function.measureLoadTime","hash":"measureLoadTime"}}},"is":{"declaration":false},"location":{"query":"Performance.Function.measureLoadTime","hash":"measureLoadTime"},"text":{"comment":"
    Function:

    measureLoadTime

    \n
    Description:

    测量页面加载时间。Measures page load time

    \n
    Returns:

    加载时间详情。Load time details

    \n
    Example:

    const loadTime = measureLoadTime();\nconsole.log(DOM Ready: ${loadTime.domReady}ms);\nconsole.log(Full Load: ${loadTime.fullLoad}ms);

    \n"},"sources":[{"fileName":"packages/web-utils/src/performance.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/performance.ts","line":174,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/performance.ts#L174"}],"parentId":1225}],"is":{"declaration":true},"location":{"query":"Performance.Function.measureLoadTime","hash":""},"text":{},"parentId":1197} diff --git a/docs/v1.0.0-beta01/data/Performance.Function.measureMemory.json b/docs/v1.0.0-beta01/data/Performance.Function.measureMemory.json new file mode 100644 index 000000000..b14245b30 --- /dev/null +++ b/docs/v1.0.0-beta01/data/Performance.Function.measureMemory.json @@ -0,0 +1 @@ +{"id":1219,"name":"measureMemory","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/web-utils/src/performance.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/performance.ts","line":149,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/performance.ts#L149"}],"signatures":[{"id":1220,"name":"measureMemory","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"measureMemory"}]},{"tag":"@description","content":[{"kind":"text","text":"测量当前内存使用情况(Chrome/Edge支持)。Measures current memory usage (Chrome/Edge support)"}]},{"tag":"@returns","content":[{"kind":"text","text":"内存使用信息或null。Memory usage info or null"}]},{"tag":"@example","content":[{"kind":"text","text":"const memory = measureMemory();\nif (memory) {\n console.log("},{"kind":"code","text":"`JS Heap: ${memory.usedJSHeapSize / 1048576} MB`"},{"kind":"text","text":");\n console.log("},{"kind":"code","text":"`Total: ${memory.totalJSHeapSize / 1048576} MB`"},{"kind":"text","text":");\n}"}]}]},"type":{"type":"union","types":[{"type":"reflection","declaration":{"id":1221,"name":"__type","kind":65536,"kindString":"Type literal","flags":{},"children":[{"id":1224,"name":"jsHeapSizeLimit","kind":1024,"kindString":"Property","flags":{},"sources":[{"fileName":"packages/web-utils/src/performance.ts","line":152,"character":2,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/performance.ts#L152"}],"type":{"type":"intrinsic","name":"number"}},{"id":1223,"name":"totalJSHeapSize","kind":1024,"kindString":"Property","flags":{},"sources":[{"fileName":"packages/web-utils/src/performance.ts","line":151,"character":2,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/performance.ts#L151"}],"type":{"type":"intrinsic","name":"number"}},{"id":1222,"name":"usedJSHeapSize","kind":1024,"kindString":"Property","flags":{},"sources":[{"fileName":"packages/web-utils/src/performance.ts","line":150,"character":2,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/performance.ts#L150"}],"type":{"type":"intrinsic","name":"number"}}],"groups":[{"title":"Properties","children":[1224,1223,1222]}],"sources":[{"fileName":"packages/web-utils/src/performance.ts","line":149,"character":33,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/performance.ts#L149"}]}},{"type":"literal","value":null}]},"is":{"declaration":false},"location":{"query":"Performance.Function.measureMemory","hash":"measureMemory"},"text":{"comment":"
    Function:

    measureMemory

    \n
    Description:

    测量当前内存使用情况(Chrome/Edge支持)。Measures current memory usage (Chrome/Edge support)

    \n
    Returns:

    内存使用信息或null。Memory usage info or null

    \n
    Example:

    const memory = measureMemory();\nif (memory) {\n console.log(JS Heap: ${memory.usedJSHeapSize / 1048576} MB);\n console.log(Total: ${memory.totalJSHeapSize / 1048576} MB);\n}

    \n"},"sources":[{"fileName":"packages/web-utils/src/performance.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/performance.ts","line":149,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/performance.ts#L149"}],"parentId":1219}],"is":{"declaration":true},"location":{"query":"Performance.Function.measureMemory","hash":""},"text":{},"parentId":1197} diff --git a/docs/v1.0.0-beta01/data/Performance.Function.resourceTiming.json b/docs/v1.0.0-beta01/data/Performance.Function.resourceTiming.json new file mode 100644 index 000000000..01c843b72 --- /dev/null +++ b/docs/v1.0.0-beta01/data/Performance.Function.resourceTiming.json @@ -0,0 +1 @@ +{"id":1239,"name":"resourceTiming","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/web-utils/src/performance.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/performance.ts","line":247,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/performance.ts#L247"}],"signatures":[{"id":1240,"name":"resourceTiming","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"resourceTiming"}]},{"tag":"@description","content":[{"kind":"text","text":"获取资源加载时间分析。Gets resource loading time analysis"}]},{"tag":"@returns","content":[{"kind":"text","text":"资源时间信息数组。Array of resource timing info"}]},{"tag":"@example","content":[{"kind":"text","text":"const resources = resourceTiming();\nresources.forEach(r => {\n console.log("},{"kind":"code","text":"`${r.name}: ${r.duration}ms`"},{"kind":"text","text":");\n});\n\n// Get specific resource\nconst scriptTiming = resourceTiming('app.js');"}]}]},"parameters":[{"id":1241,"name":"resourceUrl","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"资源URL(可选,不提供则返回所有资源)。Resource URL (optional, returns all if not provided)"}]},"type":{"type":"intrinsic","name":"string"},"text":{"comment":"

    资源URL(可选,不提供则返回所有资源)。Resource URL (optional, returns all if not provided)

    \n"}}],"type":{"type":"array","elementType":{"type":"intrinsic","name":"any"}},"is":{"declaration":false},"location":{"query":"Performance.Function.resourceTiming","hash":"resourceTiming"},"text":{"comment":"
    Function:

    resourceTiming

    \n
    Description:

    获取资源加载时间分析。Gets resource loading time analysis

    \n
    Returns:

    资源时间信息数组。Array of resource timing info

    \n
    Example:

    const resources = resourceTiming();\nresources.forEach(r => {\n console.log(${r.name}: ${r.duration}ms);\n});

    \n

    // Get specific resource\nconst scriptTiming = resourceTiming('app.js');

    \n"},"sources":[{"fileName":"packages/web-utils/src/performance.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/performance.ts","line":247,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/performance.ts#L247"}],"parentId":1239}],"is":{"declaration":true},"location":{"query":"Performance.Function.resourceTiming","hash":""},"text":{},"parentId":1197} diff --git a/docs/v1.0.0-beta01/data/Platform.Function.getMobileBrandIdentify.json b/docs/v1.0.0-beta01/data/Platform.Function.getMobileBrandIdentify.json new file mode 100644 index 000000000..556c10311 --- /dev/null +++ b/docs/v1.0.0-beta01/data/Platform.Function.getMobileBrandIdentify.json @@ -0,0 +1 @@ +{"id":1260,"name":"getMobileBrandIdentify","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/web-utils/src/platform.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/platform.ts","line":208,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/platform.ts#L208"}],"signatures":[{"id":1261,"name":"getMobileBrandIdentify","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"getMobileBrandIdentify"}]},{"tag":"@description","content":[{"kind":"text","text":"获取当前移动设备的品牌标识(部分手机)"}]},{"tag":"@returns","content":[{"kind":"text","text":"手机品牌标识,如:'iphone'、'huawei'、'oppo'、'vivo'、'xiaomi'、'samsung'、'unknown'"}]}]},"type":{"type":"intrinsic","name":"string"},"is":{"declaration":false},"location":{"query":"Platform.Function.getMobileBrandIdentify","hash":"getMobileBrandIdentify"},"text":{"comment":"
    Function:

    getMobileBrandIdentify

    \n
    Description:

    获取当前移动设备的品牌标识(部分手机)

    \n
    Returns:

    手机品牌标识,如:'iphone'、'huawei'、'oppo'、'vivo'、'xiaomi'、'samsung'、'unknown'

    \n"},"sources":[{"fileName":"packages/web-utils/src/platform.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/platform.ts","line":208,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/platform.ts#L208"}],"parentId":1260}],"is":{"declaration":true},"location":{"query":"Platform.Function.getMobileBrandIdentify","hash":""},"text":{},"parentId":1242} diff --git a/docs/v1.0.0-beta01/data/Platform.Function.getMobileOS.json b/docs/v1.0.0-beta01/data/Platform.Function.getMobileOS.json new file mode 100644 index 000000000..95ae80a2b --- /dev/null +++ b/docs/v1.0.0-beta01/data/Platform.Function.getMobileOS.json @@ -0,0 +1 @@ +{"id":1255,"name":"getMobileOS","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/web-utils/src/platform.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/platform.ts","line":184,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/platform.ts#L184"}],"signatures":[{"id":1256,"name":"getMobileOS","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"getMobileOS"}]},{"tag":"@description","content":[{"kind":"text","text":"获取当前页面所处的移动设备系统"}]},{"tag":"@returns","content":[{"kind":"text","text":"移动设备系统,如:{'android': 0, 'ios': 11.2}"}]}]},"type":{"type":"reflection","declaration":{"id":1257,"name":"getMobileOS","kind":65536,"kindString":"Type literal","flags":{},"children":[{"id":1258,"name":"android","kind":1024,"kindString":"Property","flags":{},"sources":[{"fileName":"packages/web-utils/src/platform.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/platform.ts","line":186,"character":4,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/platform.ts#L186"}],"type":{"type":"intrinsic","name":"number"},"defaultValue":"0","is":{"declaration":true},"location":{"query":"Platform.Function.getMobileOS","hash":"getMobileOS.android"},"text":{},"parentId":1255},{"id":1259,"name":"ios","kind":1024,"kindString":"Property","flags":{},"sources":[{"fileName":"packages/web-utils/src/platform.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/platform.ts","line":187,"character":4,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/platform.ts#L187"}],"type":{"type":"intrinsic","name":"number"},"defaultValue":"0","is":{"declaration":true},"location":{"query":"Platform.Function.getMobileOS","hash":"getMobileOS.ios"},"text":{},"parentId":1255}],"groups":[{"title":"Properties","children":[1258,1259]}],"sources":[{"fileName":"packages/web-utils/src/platform.ts","line":185,"character":13,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/platform.ts#L185"}],"location":{"query":"Platform.Function.getMobileOS","hash":"getMobileOS"}}},"is":{"declaration":false},"location":{"query":"Platform.Function.getMobileOS","hash":"getMobileOS"},"text":{"comment":"
    Function:

    getMobileOS

    \n
    Description:

    获取当前页面所处的移动设备系统

    \n
    Returns:

    移动设备系统,如:{'android': 0, 'ios': 11.2}

    \n"},"sources":[{"fileName":"packages/web-utils/src/platform.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/platform.ts","line":184,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/platform.ts#L184"}],"parentId":1255}],"is":{"declaration":true},"location":{"query":"Platform.Function.getMobileOS","hash":""},"text":{},"parentId":1242} diff --git a/docs/v1.0.0-beta01/data/Platform.Function.getMobilePlatform.json b/docs/v1.0.0-beta01/data/Platform.Function.getMobilePlatform.json new file mode 100644 index 000000000..6fc02d481 --- /dev/null +++ b/docs/v1.0.0-beta01/data/Platform.Function.getMobilePlatform.json @@ -0,0 +1 @@ +{"id":1253,"name":"getMobilePlatform","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/web-utils/src/platform.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/platform.ts","line":168,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/platform.ts#L168"}],"signatures":[{"id":1254,"name":"getMobilePlatform","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"getMobilePlatform"}]},{"tag":"@description","content":[{"kind":"text","text":"获取当前页面所处的移动设备标识(适用于纯移动端业务进行简单的iPhone还是安卓手机判断)"}]},{"tag":"@returns","content":[{"kind":"text","text":"移动设备标识,如:'iphone'、'gphone'"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\ngetMobilePlatform(); // 'iphone' or 'gphone'\n```"}]}]},"type":{"type":"union","types":[{"type":"literal","value":"iphone"},{"type":"literal","value":"gphone"}]},"is":{"declaration":false},"location":{"query":"Platform.Function.getMobilePlatform","hash":"getMobilePlatform"},"text":{"comment":"
    Function:

    getMobilePlatform

    \n
    Description:

    获取当前页面所处的移动设备标识(适用于纯移动端业务进行简单的iPhone还是安卓手机判断)

    \n
    Returns:

    移动设备标识,如:'iphone'、'gphone'

    \n
    Example:
    getMobilePlatform(); // 'iphone' or 'gphone'\n
    \n"},"sources":[{"fileName":"packages/web-utils/src/platform.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/platform.ts","line":168,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/platform.ts#L168"}],"parentId":1253}],"is":{"declaration":true},"location":{"query":"Platform.Function.getMobilePlatform","hash":""},"text":{},"parentId":1242} diff --git a/docs/v1.0.0-beta01/data/Platform.Function.getPcExplore.json b/docs/v1.0.0-beta01/data/Platform.Function.getPcExplore.json new file mode 100644 index 000000000..fd6968979 --- /dev/null +++ b/docs/v1.0.0-beta01/data/Platform.Function.getPcExplore.json @@ -0,0 +1 @@ +{"id":1249,"name":"getPcExplore","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/web-utils/src/platform.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/platform.ts","line":103,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/platform.ts#L103"}],"signatures":[{"id":1250,"name":"getPcExplore","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"getPcExplore"}]},{"tag":"@description","content":[{"kind":"text","text":"获取当前PC浏览器标识。Gets the current PC browser identifier"}]},{"tag":"@returns","content":[{"kind":"text","text":"浏览器标识,如:'IE: 11.0'、'Chrome: 83.0.4103.116'、'Firefox: 77.0'、'Opera: 69.0.3686.77'、'Safari: 13.1.1'。Browser identifier, such as: 'IE: 11.0', 'Chrome: 83.0.4103.116', 'Firefox: 77.0', 'Opera: 69.0.3686.77', 'Safari: 13.1.1'"}]}]},"type":{"type":"intrinsic","name":"string"},"is":{"declaration":false},"location":{"query":"Platform.Function.getPcExplore","hash":"getPcExplore"},"text":{"comment":"
    Function:

    getPcExplore

    \n
    Description:

    获取当前PC浏览器标识。Gets the current PC browser identifier

    \n
    Returns:

    浏览器标识,如:'IE: 11.0'、'Chrome: 83.0.4103.116'、'Firefox: 77.0'、'Opera: 69.0.3686.77'、'Safari: 13.1.1'。Browser identifier, such as: 'IE: 11.0', 'Chrome: 83.0.4103.116', 'Firefox: 77.0', 'Opera: 69.0.3686.77', 'Safari: 13.1.1'

    \n"},"sources":[{"fileName":"packages/web-utils/src/platform.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/platform.ts","line":103,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/platform.ts#L103"}],"parentId":1249}],"is":{"declaration":true},"location":{"query":"Platform.Function.getPcExplore","hash":""},"text":{},"parentId":1242} diff --git a/docs/v1.0.0-beta01/data/Platform.Function.getSystemOS.json b/docs/v1.0.0-beta01/data/Platform.Function.getSystemOS.json new file mode 100644 index 000000000..1c3b79768 --- /dev/null +++ b/docs/v1.0.0-beta01/data/Platform.Function.getSystemOS.json @@ -0,0 +1 @@ +{"id":1251,"name":"getSystemOS","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/web-utils/src/platform.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/platform.ts","line":146,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/platform.ts#L146"}],"signatures":[{"id":1252,"name":"getSystemOS","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"getSystemOS"}]},{"tag":"@description","content":[{"kind":"text","text":"获取当前页面所在的系统标识"}]},{"tag":"@returns","content":[{"kind":"text","text":"系统标识,如:'mac'、'windows'、'linux'、'ios'、'android'、'harmony'、'unknown'"}]}]},"type":{"type":"union","types":[{"type":"literal","value":"android"},{"type":"literal","value":"mac"},{"type":"literal","value":"windowsPhone"},{"type":"literal","value":"windows"},{"type":"literal","value":"linux"},{"type":"literal","value":"ios"},{"type":"literal","value":"harmony"},{"type":"literal","value":"unknown"}]},"is":{"declaration":false},"location":{"query":"Platform.Function.getSystemOS","hash":"getSystemOS"},"text":{"comment":"
    Function:

    getSystemOS

    \n
    Description:

    获取当前页面所在的系统标识

    \n
    Returns:

    系统标识,如:'mac'、'windows'、'linux'、'ios'、'android'、'harmony'、'unknown'

    \n"},"sources":[{"fileName":"packages/web-utils/src/platform.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/platform.ts","line":146,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/platform.ts#L146"}],"parentId":1251}],"is":{"declaration":true},"location":{"query":"Platform.Function.getSystemOS","hash":""},"text":{},"parentId":1242} diff --git a/docs/v1.0.0-beta01/data/Platform.Function.isBrowser.json b/docs/v1.0.0-beta01/data/Platform.Function.isBrowser.json new file mode 100644 index 000000000..d667b558e --- /dev/null +++ b/docs/v1.0.0-beta01/data/Platform.Function.isBrowser.json @@ -0,0 +1 @@ +{"id":1243,"name":"isBrowser","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/web-utils/src/platform.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/platform.ts","line":62,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/platform.ts#L62"}],"signatures":[{"id":1244,"name":"isBrowser","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"isBrowser"}]},{"tag":"@description","content":[{"kind":"text","text":"检测代码是否在浏览器环境中运行(相对于Node.js/服务器端)。Detects if the code is running in a browser environment (vs Node.js/server-side)"}]},{"tag":"@returns","content":[{"kind":"text","text":"如果在浏览器中运行则为true,如果在Node.js或其他非浏览器环境中则为false。True if running in browser, false if in Node.js or other non-browser environment"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Conditional code execution based on environment\r\nif (isBrowser()) {\r\n // Browser-specific code\r\n document.addEventListener('DOMContentLoaded', initializeApp);\r\n localStorage.setItem('app_version', '1.0.0');\r\n} else {\r\n // Node.js/server-side code\r\n const fs = require('fs');\r\n console.log('Running in Node.js environment');\r\n}\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Universal/isomorphic code pattern\r\nfunction getStorageValue(key, defaultValue) {\r\n if (isBrowser()) {\r\n return localStorage.getItem(key) || defaultValue;\r\n } else {\r\n // Server-side fallback or different storage mechanism\r\n return process.env[key] || defaultValue;\r\n }\r\n}\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Feature detection with environment check\r\nfunction initializeAnalytics() {\r\n if (!isBrowser()) {\r\n console.log('Analytics not available in server environment');\r\n return;\r\n }\r\n\r\n // Browser-only analytics initialization\r\n if (window.gtag) {\r\n gtag('config', 'GA_MEASUREMENT_ID');\r\n }\r\n}\n```"}]},{"tag":"@since","content":[{"kind":"text","text":"1.0.0"}]},{"tag":"@see","content":[{"kind":"text","text":" - "},{"kind":"inline-tag","tag":"@link","text":"isPC","target":1245},{"kind":"text","text":" - Detect PC vs mobile environment"},{"kind":"text","text":"\n"},{"kind":"text","text":" - "},{"kind":"inline-tag","tag":"@link","text":"getSystemOS","target":1251},{"kind":"text","text":" - Get operating system information"},{"kind":"text","text":"\n"},{"kind":"text","text":" - "},{"kind":"inline-tag","tag":"@link","text":"https://developer.mozilla.org/en-US/docs/Web/API/Window","target":"https://developer.mozilla.org/en-US/docs/Web/API/Window"},{"kind":"text","text":" - Browser Window object"},{"kind":"text","text":"\n"},{"kind":"text","text":" - "},{"kind":"inline-tag","tag":"@link","text":"https://nodejs.org/api/globals.html","target":"https://nodejs.org/api/globals.html"},{"kind":"text","text":" - Node.js global objects"},{"kind":"text","text":"\n"}]}]},"type":{"type":"intrinsic","name":"boolean"},"is":{"declaration":false},"location":{"query":"Platform.Function.isBrowser","hash":"isBrowser"},"text":{"comment":"
    Function:

    isBrowser

    \n
    Description:

    检测代码是否在浏览器环境中运行(相对于Node.js/服务器端)。Detects if the code is running in a browser environment (vs Node.js/server-side)

    \n
    Returns:

    如果在浏览器中运行则为true,如果在Node.js或其他非浏览器环境中则为false。True if running in browser, false if in Node.js or other non-browser environment

    \n
    Example:
    // Conditional code execution based on environment\nif (isBrowser()) {\n  // Browser-specific code\n  document.addEventListener('DOMContentLoaded', initializeApp);\n  localStorage.setItem('app_version', '1.0.0');\n} else {\n  // Node.js/server-side code\n  const fs = require('fs');\n  console.log('Running in Node.js environment');\n}\n
    \n
    Example:
    // Universal/isomorphic code pattern\nfunction getStorageValue(key, defaultValue) {\n  if (isBrowser()) {\n    return localStorage.getItem(key) || defaultValue;\n  } else {\n    // Server-side fallback or different storage mechanism\n    return process.env[key] || defaultValue;\n  }\n}\n
    \n
    Example:
    // Feature detection with environment check\nfunction initializeAnalytics() {\n  if (!isBrowser()) {\n    console.log('Analytics not available in server environment');\n    return;\n  }\n\n  // Browser-only analytics initialization\n  if (window.gtag) {\n    gtag('config', 'GA_MEASUREMENT_ID');\n  }\n}\n
    \n
    Since:

    1.0.0

    \n
    See:
    \n"},"sources":[{"fileName":"packages/web-utils/src/platform.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/platform.ts","line":62,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/platform.ts#L62"}],"parentId":1243}],"is":{"declaration":true},"location":{"query":"Platform.Function.isBrowser","hash":""},"text":{},"parentId":1242} diff --git a/docs/v1.0.0-beta01/data/Platform.Function.isOpenHarmony.json b/docs/v1.0.0-beta01/data/Platform.Function.isOpenHarmony.json new file mode 100644 index 000000000..0c95b83b0 --- /dev/null +++ b/docs/v1.0.0-beta01/data/Platform.Function.isOpenHarmony.json @@ -0,0 +1 @@ +{"id":1247,"name":"isOpenHarmony","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/web-utils/src/platform.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/platform.ts","line":94,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/platform.ts#L94"}],"signatures":[{"id":1248,"name":"isOpenHarmony","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"isOpenHarmony"}]},{"tag":"@description","content":[{"kind":"text","text":"判断当前页面是否处于OpenHarmony环境下。Determines whether the current page is in an OpenHarmony environment"}]},{"tag":"@returns","content":[]}]},"type":{"type":"intrinsic","name":"boolean"},"is":{"declaration":false},"location":{"query":"Platform.Function.isOpenHarmony","hash":"isOpenHarmony"},"text":{"comment":"
    Function:

    isOpenHarmony

    \n
    Description:

    判断当前页面是否处于OpenHarmony环境下。Determines whether the current page is in an OpenHarmony environment

    \n
    Returns:
    "},"sources":[{"fileName":"packages/web-utils/src/platform.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/platform.ts","line":94,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/platform.ts#L94"}],"parentId":1247}],"is":{"declaration":true},"location":{"query":"Platform.Function.isOpenHarmony","hash":""},"text":{},"parentId":1242} diff --git a/docs/v1.0.0-beta01/data/Platform.Function.isPC.json b/docs/v1.0.0-beta01/data/Platform.Function.isPC.json new file mode 100644 index 000000000..3daaa20fe --- /dev/null +++ b/docs/v1.0.0-beta01/data/Platform.Function.isPC.json @@ -0,0 +1 @@ +{"id":1245,"name":"isPC","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/web-utils/src/platform.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/platform.ts","line":75,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/platform.ts#L75"}],"signatures":[{"id":1246,"name":"isPC","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"isPC"}]},{"tag":"@description","content":[{"kind":"text","text":"判断当前页面是否处于PC环境下(主要通过判断是否存在移动设备的关键字)。Determines whether the current page is in a PC environment (mainly by checking for mobile device keywords)"}]},{"tag":"@returns","content":[{"kind":"text","text":"是否是PC环境。Whether it is a PC environment"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\nif (isPC()) {\r\n console.log('当前处在PC环境下')\r\n}\n```"}]}]},"type":{"type":"intrinsic","name":"boolean"},"is":{"declaration":false},"location":{"query":"Platform.Function.isPC","hash":"isPC"},"text":{"comment":"
    Function:

    isPC

    \n
    Description:

    判断当前页面是否处于PC环境下(主要通过判断是否存在移动设备的关键字)。Determines whether the current page is in a PC environment (mainly by checking for mobile device keywords)

    \n
    Returns:

    是否是PC环境。Whether it is a PC environment

    \n
    Example:
    if (isPC()) {\n   console.log('当前处在PC环境下')\n}\n
    \n"},"sources":[{"fileName":"packages/web-utils/src/platform.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/platform.ts","line":75,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/platform.ts#L75"}],"parentId":1245}],"is":{"declaration":true},"location":{"query":"Platform.Function.isPC","hash":""},"text":{},"parentId":1242} diff --git a/docs/v1.0.0-beta01/data/Platform.Variable.ua.json b/docs/v1.0.0-beta01/data/Platform.Variable.ua.json new file mode 100644 index 000000000..b7d24dc0d --- /dev/null +++ b/docs/v1.0.0-beta01/data/Platform.Variable.ua.json @@ -0,0 +1 @@ +{"id":1262,"name":"ua","kind":32,"kindString":"Variable","flags":{"isConst":true},"comment":{"summary":[],"blockTags":[{"tag":"@description","content":[{"kind":"text","text":"全小写的浏览器用户代理字符串(User Agent String,简称 UA),即navigator.userAgent的小写转换字符串"}]}]},"children":[],"sources":[{"fileName":"packages/web-utils/src/platform.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/platform.ts","line":13,"character":13,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/platform.ts#L13"}],"type":{"type":"intrinsic","name":"string"},"defaultValue":"...","is":{"declaration":true},"location":{"query":"Platform.Variable.ua","hash":""},"text":{"comment":"
    Description:

    全小写的浏览器用户代理字符串(User Agent String,简称 UA),即navigator.userAgent的小写转换字符串

    \n"},"parentId":1242} diff --git a/docs/v1.0.0-beta01/data/Screen.Function.enterFullscreen.json b/docs/v1.0.0-beta01/data/Screen.Function.enterFullscreen.json new file mode 100644 index 000000000..a49861156 --- /dev/null +++ b/docs/v1.0.0-beta01/data/Screen.Function.enterFullscreen.json @@ -0,0 +1 @@ +{"id":1272,"name":"enterFullscreen","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/web-utils/src/screen.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/screen.ts","line":62,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/screen.ts#L62"}],"signatures":[{"id":1273,"name":"enterFullscreen","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"enterFullscreen"}]},{"tag":"@description","content":[{"kind":"text","text":"使浏览器进入全屏模式"}]},{"tag":"@tips","content":[{"kind":"text","text":"MAC、IOS下的Safari浏览器不支持非交互全屏"}]}]},"parameters":[{"id":1274,"name":"element","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"进入全屏的元素,默认为document.body"}]},"type":{"type":"reference","name":"HTMLElement","qualifiedName":"HTMLElement","package":"typescript"},"defaultValue":"document.body","text":{"comment":"

    进入全屏的元素,默认为document.body

    \n"}}],"type":{"type":"reference","typeArguments":[{"type":"intrinsic","name":"void"}],"name":"Promise","qualifiedName":"Promise","package":"typescript"},"is":{"declaration":false},"location":{"query":"Screen.Function.enterFullscreen","hash":"enterFullscreen"},"text":{"comment":"
    Function:

    enterFullscreen

    \n
    Description:

    使浏览器进入全屏模式

    \n
    Tips:

    MAC、IOS下的Safari浏览器不支持非交互全屏

    \n"},"sources":[{"fileName":"packages/web-utils/src/screen.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/screen.ts","line":62,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/screen.ts#L62"}],"parentId":1272}],"is":{"declaration":true},"location":{"query":"Screen.Function.enterFullscreen","hash":""},"text":{},"parentId":1267} diff --git a/docs/v1.0.0-beta01/data/Screen.Function.exitFullscreen.json b/docs/v1.0.0-beta01/data/Screen.Function.exitFullscreen.json new file mode 100644 index 000000000..6611681b1 --- /dev/null +++ b/docs/v1.0.0-beta01/data/Screen.Function.exitFullscreen.json @@ -0,0 +1 @@ +{"id":1275,"name":"exitFullscreen","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/web-utils/src/screen.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/screen.ts","line":85,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/screen.ts#L85"}],"signatures":[{"id":1276,"name":"exitFullscreen","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"exitFullscreen"}]},{"tag":"@description","content":[{"kind":"text","text":"退出全屏"}]}]},"type":{"type":"intrinsic","name":"void"},"is":{"declaration":false},"location":{"query":"Screen.Function.exitFullscreen","hash":"exitFullscreen"},"text":{"comment":"
    Function:

    exitFullscreen

    \n
    Description:

    退出全屏

    \n"},"sources":[{"fileName":"packages/web-utils/src/screen.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/screen.ts","line":85,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/screen.ts#L85"}],"parentId":1275}],"is":{"declaration":true},"location":{"query":"Screen.Function.exitFullscreen","hash":""},"text":{},"parentId":1267} diff --git a/docs/v1.0.0-beta01/data/Screen.Function.getClientHeight.json b/docs/v1.0.0-beta01/data/Screen.Function.getClientHeight.json new file mode 100644 index 000000000..59fe13500 --- /dev/null +++ b/docs/v1.0.0-beta01/data/Screen.Function.getClientHeight.json @@ -0,0 +1 @@ +{"id":1283,"name":"getClientHeight","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/web-utils/src/screen.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/screen.ts","line":15,"character":13,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/screen.ts#L15"}],"signatures":[{"id":1284,"name":"getClientHeight","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"getClientHeight"}]},{"tag":"@description","content":[{"kind":"text","text":"获取可视窗口的高度。Gets the height of the visible window"}]},{"tag":"@returns","content":[{"kind":"text","text":"可视窗口的高度。The height of the visible window"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\nconst height = getClientHeight();\n```"}]}]},"type":{"type":"intrinsic","name":"number"},"is":{"declaration":false},"location":{"query":"Screen.Function.getClientHeight","hash":"getClientHeight"},"text":{"comment":"
    Function:

    getClientHeight

    \n
    Description:

    获取可视窗口的高度。Gets the height of the visible window

    \n
    Returns:

    可视窗口的高度。The height of the visible window

    \n
    Example:
    const height = getClientHeight();\n
    \n"},"sources":[{"fileName":"packages/web-utils/src/screen.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/screen.ts","line":15,"character":31,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/screen.ts#L15"}],"parentId":1283}],"is":{"declaration":true},"location":{"query":"Screen.Function.getClientHeight","hash":""},"text":{},"parentId":1267} diff --git a/docs/v1.0.0-beta01/data/Screen.Function.getClientWidth.json b/docs/v1.0.0-beta01/data/Screen.Function.getClientWidth.json new file mode 100644 index 000000000..a86aadda3 --- /dev/null +++ b/docs/v1.0.0-beta01/data/Screen.Function.getClientWidth.json @@ -0,0 +1 @@ +{"id":1285,"name":"getClientWidth","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/web-utils/src/screen.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/screen.ts","line":25,"character":13,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/screen.ts#L25"}],"signatures":[{"id":1286,"name":"getClientWidth","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"getClientWidth"}]},{"tag":"@description","content":[{"kind":"text","text":"获取可视窗口的宽度。Gets the width of the visible window"}]},{"tag":"@returns","content":[{"kind":"text","text":"可视窗口的宽度。The width of the visible window"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\nconst clientW = getClientWidth();\n```"}]}]},"type":{"type":"intrinsic","name":"number"},"is":{"declaration":false},"location":{"query":"Screen.Function.getClientWidth","hash":"getClientWidth"},"text":{"comment":"
    Function:

    getClientWidth

    \n
    Description:

    获取可视窗口的宽度。Gets the width of the visible window

    \n
    Returns:

    可视窗口的宽度。The width of the visible window

    \n
    Example:
    const clientW = getClientWidth();\n
    \n"},"sources":[{"fileName":"packages/web-utils/src/screen.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/screen.ts","line":25,"character":30,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/screen.ts#L25"}],"parentId":1285}],"is":{"declaration":true},"location":{"query":"Screen.Function.getClientWidth","hash":""},"text":{},"parentId":1267} diff --git a/docs/v1.0.0-beta01/data/Screen.Function.isFullScreen.json b/docs/v1.0.0-beta01/data/Screen.Function.isFullScreen.json new file mode 100644 index 000000000..e3ea0170a --- /dev/null +++ b/docs/v1.0.0-beta01/data/Screen.Function.isFullScreen.json @@ -0,0 +1 @@ +{"id":1268,"name":"isFullScreen","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/web-utils/src/screen.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/screen.ts","line":33,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/screen.ts#L33"}],"signatures":[{"id":1269,"name":"isFullScreen","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"isFullScreen"}]},{"tag":"@description","content":[{"kind":"text","text":"检查是否在全屏状态。Checks whether it is in full screen mode"}]},{"tag":"@returns","content":[{"kind":"text","text":"是否在全屏状态。Whether it is in full screen mode"}]}]},"type":{"type":"intrinsic","name":"any"},"is":{"declaration":false},"location":{"query":"Screen.Function.isFullScreen","hash":"isFullScreen"},"text":{"comment":"
    Function:

    isFullScreen

    \n
    Description:

    检查是否在全屏状态。Checks whether it is in full screen mode

    \n
    Returns:

    是否在全屏状态。Whether it is in full screen mode

    \n"},"sources":[{"fileName":"packages/web-utils/src/screen.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/screen.ts","line":33,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/screen.ts#L33"}],"parentId":1268}],"is":{"declaration":true},"location":{"query":"Screen.Function.isFullScreen","hash":""},"text":{},"parentId":1267} diff --git a/docs/v1.0.0-beta01/data/Screen.Function.isFullScreenEnabled.json b/docs/v1.0.0-beta01/data/Screen.Function.isFullScreenEnabled.json new file mode 100644 index 000000000..7fd9e2000 --- /dev/null +++ b/docs/v1.0.0-beta01/data/Screen.Function.isFullScreenEnabled.json @@ -0,0 +1 @@ +{"id":1270,"name":"isFullScreenEnabled","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/web-utils/src/screen.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/screen.ts","line":47,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/screen.ts#L47"}],"signatures":[{"id":1271,"name":"isFullScreenEnabled","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"isFullScreenEnabled"}]},{"tag":"@description","content":[{"kind":"text","text":"检查当前浏览器环境是否支持全屏操作。Checks whether the current browser environment supports full screen operations"}]},{"tag":"@returns","content":[{"kind":"text","text":"是否支持全屏操作。Whether full screen operations are supported"}]}]},"type":{"type":"intrinsic","name":"any"},"is":{"declaration":false},"location":{"query":"Screen.Function.isFullScreenEnabled","hash":"isFullScreenEnabled"},"text":{"comment":"
    Function:

    isFullScreenEnabled

    \n
    Description:

    检查当前浏览器环境是否支持全屏操作。Checks whether the current browser environment supports full screen operations

    \n
    Returns:

    是否支持全屏操作。Whether full screen operations are supported

    \n"},"sources":[{"fileName":"packages/web-utils/src/screen.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/screen.ts","line":47,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/screen.ts#L47"}],"parentId":1270}],"is":{"declaration":true},"location":{"query":"Screen.Function.isFullScreenEnabled","hash":""},"text":{},"parentId":1267} diff --git a/docs/v1.0.0-beta01/data/Screen.Function.keepScreenOn.json b/docs/v1.0.0-beta01/data/Screen.Function.keepScreenOn.json new file mode 100644 index 000000000..9fe503398 --- /dev/null +++ b/docs/v1.0.0-beta01/data/Screen.Function.keepScreenOn.json @@ -0,0 +1 @@ +{"id":1279,"name":"keepScreenOn","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/web-utils/src/screen.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/screen.ts","line":125,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/screen.ts#L125"}],"signatures":[{"id":1280,"name":"keepScreenOn","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"keepScreenOn"}]},{"tag":"@description","content":[{"kind":"text","text":"保持屏幕常亮"}]},{"tag":"@returns","content":[{"kind":"text","text":"移除监听器的函数"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\nconst cleanup = keepScreenOn();\n// Later cleanup\ncleanup();\n```"}]}]},"type":{"type":"reflection","declaration":{"id":1281,"name":"keepScreenOn","kind":65536,"kindString":"Type literal","flags":{},"sources":[{"fileName":"packages/web-utils/src/screen.ts","line":130,"character":9,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/screen.ts#L130"}],"signatures":[{"id":1282,"name":"keepScreenOn","kind":4096,"kindString":"Call signature","flags":{},"type":{"type":"intrinsic","name":"void"},"is":{"declaration":false},"location":{"query":"Screen.Function.keepScreenOn","hash":"keepScreenOn.__type"},"text":{},"sources":[{"fileName":"packages/web-utils/src/screen.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/screen.ts","line":130,"character":9,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/screen.ts#L130"}],"parentId":1279}],"location":{"query":"Screen.Function.keepScreenOn","hash":"keepScreenOn"}}},"is":{"declaration":false},"location":{"query":"Screen.Function.keepScreenOn","hash":"keepScreenOn"},"text":{"comment":"
    Function:

    keepScreenOn

    \n
    Description:

    保持屏幕常亮

    \n
    Returns:

    移除监听器的函数

    \n
    Example:
    const cleanup = keepScreenOn();\n// Later cleanup\ncleanup();\n
    \n"},"sources":[{"fileName":"packages/web-utils/src/screen.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/screen.ts","line":125,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/screen.ts#L125"}],"parentId":1279}],"is":{"declaration":true},"location":{"query":"Screen.Function.keepScreenOn","hash":""},"text":{},"parentId":1267} diff --git a/docs/v1.0.0-beta01/data/Screen.Function.wakeScreenLock.json b/docs/v1.0.0-beta01/data/Screen.Function.wakeScreenLock.json new file mode 100644 index 000000000..2922f833f --- /dev/null +++ b/docs/v1.0.0-beta01/data/Screen.Function.wakeScreenLock.json @@ -0,0 +1 @@ +{"id":1277,"name":"wakeScreenLock","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/web-utils/src/screen.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/screen.ts","line":109,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/screen.ts#L109"}],"signatures":[{"id":1278,"name":"wakeScreenLock","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"wakeScreenLock"}]},{"tag":"@description","content":[{"kind":"text","text":"唤醒屏幕锁定、保持屏幕常亮(IE和iOS18以下兼容性不好)"}]},{"tag":"@docs","content":[{"kind":"text","text":"https://developer.mozilla.org/zh-CN/docs/Web/API/Navigator/wakeLock"}]},{"tag":"@returns","content":[{"kind":"text","text":"唤醒屏幕锁定的Promise"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\nconst wakeScreenLock = wakeScreenLock();\nwakeScreenLock.then(() => {\n console.log('屏幕锁定');\n}).catch((error) => {\n console.error(error);\n```"}]}]},"type":{"type":"reference","typeArguments":[{"type":"reference","name":"WakeLockSentinel"}],"name":"Promise","qualifiedName":"Promise","package":"typescript"},"is":{"declaration":false},"location":{"query":"Screen.Function.wakeScreenLock","hash":"wakeScreenLock"},"text":{"comment":"
    Function:

    wakeScreenLock

    \n
    Description:

    唤醒屏幕锁定、保持屏幕常亮(IE和iOS18以下兼容性不好)

    \n
    Docs:

    https://developer.mozilla.org/zh-CN/docs/Web/API/Navigator/wakeLock

    \n
    Returns:

    唤醒屏幕锁定的Promise

    \n
    Example:
    const wakeScreenLock = wakeScreenLock();\nwakeScreenLock.then(() => {\n  console.log('屏幕锁定');\n}).catch((error) => {\n  console.error(error);\n
    \n"},"sources":[{"fileName":"packages/web-utils/src/screen.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/screen.ts","line":109,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/screen.ts#L109"}],"parentId":1277}],"is":{"declaration":true},"location":{"query":"Screen.Function.wakeScreenLock","hash":""},"text":{},"parentId":1267} diff --git a/docs/v1.0.0-beta01/data/String.Function.byteSize.json b/docs/v1.0.0-beta01/data/String.Function.byteSize.json new file mode 100644 index 000000000..58d1989e9 --- /dev/null +++ b/docs/v1.0.0-beta01/data/String.Function.byteSize.json @@ -0,0 +1 @@ +{"id":753,"name":"byteSize","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/utils/src/string.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/string.ts","line":35,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/string.ts#L35"}],"signatures":[{"id":754,"name":"byteSize","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"byteSize"}]},{"tag":"@description","content":[{"kind":"text","text":"使用UTF-8编码计算字符串的字节大小。Calculates the byte size of a string using UTF-8 encoding"}]},{"tag":"@returns","content":[{"kind":"text","text":"字符串在UTF-8编码中占用的字节数。Number of bytes the string occupies in UTF-8 encoding"}]},{"tag":"@throws","content":[{"kind":"text","text":"当str不是字符串时。When str is not a string"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// ASCII characters (1 byte each)\nbyteSize('Hello, world!'); // -> 13\nbyteSize('ABC'); // -> 3\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Unicode characters (multi-byte)\nbyteSize('你好,世界!'); // -> 18 (Chinese characters are 3 bytes each in UTF-8)\nbyteSize('café'); // -> 5 (é is 2 bytes)\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Emoji and special characters\nbyteSize('😊'); // -> 4 (emoji are typically 4 bytes)\nbyteSize('🌟💫'); // -> 8 (two 4-byte emojis)\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Edge cases\nbyteSize(''); // -> 0\nbyteSize(' '); // -> 1 (space character)\n```"}]}]},"parameters":[{"id":755,"name":"str","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"要计算字节大小的字符串。String to calculate byte size for"}]},"type":{"type":"intrinsic","name":"string"},"text":{"comment":"

    要计算字节大小的字符串。String to calculate byte size for

    \n"}}],"type":{"type":"intrinsic","name":"number"},"is":{"declaration":false},"location":{"query":"String.Function.byteSize","hash":"byteSize"},"text":{"comment":"
    Function:

    byteSize

    \n
    Description:

    使用UTF-8编码计算字符串的字节大小。Calculates the byte size of a string using UTF-8 encoding

    \n
    Returns:

    字符串在UTF-8编码中占用的字节数。Number of bytes the string occupies in UTF-8 encoding

    \n
    Throws:

    当str不是字符串时。When str is not a string

    \n
    Example:
    // ASCII characters (1 byte each)\nbyteSize('Hello, world!'); // -> 13\nbyteSize('ABC'); // -> 3\n
    \n
    Example:
    // Unicode characters (multi-byte)\nbyteSize('你好,世界!'); // -> 18 (Chinese characters are 3 bytes each in UTF-8)\nbyteSize('café'); // -> 5 (é is 2 bytes)\n
    \n
    Example:
    // Emoji and special characters\nbyteSize('😊'); // -> 4 (emoji are typically 4 bytes)\nbyteSize('🌟💫'); // -> 8 (two 4-byte emojis)\n
    \n
    Example:
    // Edge cases\nbyteSize(''); // -> 0\nbyteSize(' '); // -> 1 (space character)\n
    \n"},"sources":[{"fileName":"packages/utils/src/string.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/string.ts","line":35,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/string.ts#L35"}],"parentId":753}],"is":{"declaration":true},"location":{"query":"String.Function.byteSize","hash":""},"text":{},"parentId":752} diff --git a/docs/v1.0.0-beta01/data/String.Function.camelize.json b/docs/v1.0.0-beta01/data/String.Function.camelize.json new file mode 100644 index 000000000..d6e87f3ad --- /dev/null +++ b/docs/v1.0.0-beta01/data/String.Function.camelize.json @@ -0,0 +1 @@ +{"id":799,"name":"camelize","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/utils/src/string.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/string.ts","line":527,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/string.ts#L527"}],"signatures":[{"id":800,"name":"camelize","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"camelize"}]},{"tag":"@description","content":[{"kind":"text","text":"将kebab-case、snake_case或其他带分隔符的字符串转换为camelCase。Converts kebab-case, snake_case, or other delimited strings to camelCase"}]},{"tag":"@returns","content":[{"kind":"text","text":"转换为camelCase格式的字符串。String converted to camelCase format"}]},{"tag":"@throws","content":[{"kind":"text","text":"当str不是字符串时。When str is not a string"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Kebab-case conversion\ncamelize('hello-world'); // -> 'helloWorld'\ncamelize('get-user-name'); // -> 'getUserName'\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Snake_case conversion\ncamelize('foo_bar'); // -> 'fooBar'\ncamelize('user_profile_data'); // -> 'userProfileData'\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Multiple delimiters\ncamelize('foo---bar'); // -> 'fooBar'\ncamelize('test__case'); // -> 'testCase'\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Mixed case preservation\ncamelize('foo-bar-BAZ'); // -> 'fooBarBAZ'\ncamelize('XML-http-request'); // -> 'XMLHttpRequest'\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Numbers and special cases\ncamelize('foo-123-bar'); // -> 'foo123Bar'\ncamelize('api-v2-endpoint'); // -> 'apiV2Endpoint'\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Edge cases\ncamelize(''); // -> ''\ncamelize('hello'); // -> 'hello' (no delimiters)\ncamelize('-hello-world-'); // -> 'HelloWorld' (leading/trailing delimiters)\ncamelize('--multiple--dashes--'); // -> 'MultipleDashes'\n```"}]}]},"parameters":[{"id":801,"name":"str","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"带分隔符要转换为camelCase的字符串。String with delimiters to convert to camelCase"}]},"type":{"type":"intrinsic","name":"string"},"text":{"comment":"

    带分隔符要转换为camelCase的字符串。String with delimiters to convert to camelCase

    \n"}}],"type":{"type":"intrinsic","name":"string"},"is":{"declaration":false},"location":{"query":"String.Function.camelize","hash":"camelize"},"text":{"comment":"
    Function:

    camelize

    \n
    Description:

    将kebab-case、snake_case或其他带分隔符的字符串转换为camelCase。Converts kebab-case, snake_case, or other delimited strings to camelCase

    \n
    Returns:

    转换为camelCase格式的字符串。String converted to camelCase format

    \n
    Throws:

    当str不是字符串时。When str is not a string

    \n
    Example:
    // Kebab-case conversion\ncamelize('hello-world'); // -> 'helloWorld'\ncamelize('get-user-name'); // -> 'getUserName'\n
    \n
    Example:
    // Snake_case conversion\ncamelize('foo_bar'); // -> 'fooBar'\ncamelize('user_profile_data'); // -> 'userProfileData'\n
    \n
    Example:
    // Multiple delimiters\ncamelize('foo---bar'); // -> 'fooBar'\ncamelize('test__case'); // -> 'testCase'\n
    \n
    Example:
    // Mixed case preservation\ncamelize('foo-bar-BAZ'); // -> 'fooBarBAZ'\ncamelize('XML-http-request'); // -> 'XMLHttpRequest'\n
    \n
    Example:
    // Numbers and special cases\ncamelize('foo-123-bar'); // -> 'foo123Bar'\ncamelize('api-v2-endpoint'); // -> 'apiV2Endpoint'\n
    \n
    Example:
    // Edge cases\ncamelize(''); // -> ''\ncamelize('hello'); // -> 'hello' (no delimiters)\ncamelize('-hello-world-'); // -> 'HelloWorld' (leading/trailing delimiters)\ncamelize('--multiple--dashes--'); // -> 'MultipleDashes'\n
    \n"},"sources":[{"fileName":"packages/utils/src/string.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/string.ts","line":527,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/string.ts#L527"}],"parentId":799}],"is":{"declaration":true},"location":{"query":"String.Function.camelize","hash":""},"text":{},"parentId":752} diff --git a/docs/v1.0.0-beta01/data/String.Function.capitalize.json b/docs/v1.0.0-beta01/data/String.Function.capitalize.json new file mode 100644 index 000000000..aa5eb9438 --- /dev/null +++ b/docs/v1.0.0-beta01/data/String.Function.capitalize.json @@ -0,0 +1 @@ +{"id":756,"name":"capitalize","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/utils/src/string.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/string.ts","line":66,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/string.ts#L66"}],"signatures":[{"id":757,"name":"capitalize","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"capitalize"}]},{"tag":"@description","content":[{"kind":"text","text":"将字符串的第一个字母大写,其余部分保持不变。Capitalizes the first letter of a string while keeping the rest unchanged"}]},{"tag":"@returns","content":[{"kind":"text","text":"首字母大写的字符串。String with first letter capitalized"}]},{"tag":"@throws","content":[{"kind":"text","text":"当paramString不是字符串时。When paramString is not a string"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Basic usage\ncapitalize('hello'); // -> 'Hello'\ncapitalize('world'); // -> 'World'\ncapitalize('hello world'); // -> 'Hello world'\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Already capitalized\ncapitalize('Hello'); // -> 'Hello'\ncapitalize('HELLO'); // -> 'HELLO'\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Special characters and numbers\ncapitalize('123abc'); // -> '123abc' (no letter to capitalize)\ncapitalize('!hello'); // -> '!hello' (first character is not a letter)\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Edge cases\ncapitalize(''); // -> ''\ncapitalize('a'); // -> 'A'\n```"}]}]},"parameters":[{"id":758,"name":"paramString","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"要大写的字符串。String to capitalize"}]},"type":{"type":"intrinsic","name":"string"},"text":{"comment":"

    要大写的字符串。String to capitalize

    \n"}}],"type":{"type":"intrinsic","name":"string"},"is":{"declaration":false},"location":{"query":"String.Function.capitalize","hash":"capitalize"},"text":{"comment":"
    Function:

    capitalize

    \n
    Description:

    将字符串的第一个字母大写,其余部分保持不变。Capitalizes the first letter of a string while keeping the rest unchanged

    \n
    Returns:

    首字母大写的字符串。String with first letter capitalized

    \n
    Throws:

    当paramString不是字符串时。When paramString is not a string

    \n
    Example:
    // Basic usage\ncapitalize('hello'); // -> 'Hello'\ncapitalize('world'); // -> 'World'\ncapitalize('hello world'); // -> 'Hello world'\n
    \n
    Example:
    // Already capitalized\ncapitalize('Hello'); // -> 'Hello'\ncapitalize('HELLO'); // -> 'HELLO'\n
    \n
    Example:
    // Special characters and numbers\ncapitalize('123abc'); // -> '123abc' (no letter to capitalize)\ncapitalize('!hello'); // -> '!hello' (first character is not a letter)\n
    \n
    Example:
    // Edge cases\ncapitalize(''); // -> ''\ncapitalize('a'); // -> 'A'\n
    \n"},"sources":[{"fileName":"packages/utils/src/string.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/string.ts","line":66,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/string.ts#L66"}],"parentId":756}],"is":{"declaration":true},"location":{"query":"String.Function.capitalize","hash":""},"text":{},"parentId":752} diff --git a/docs/v1.0.0-beta01/data/String.Function.capitalizeEveryWord.json b/docs/v1.0.0-beta01/data/String.Function.capitalizeEveryWord.json new file mode 100644 index 000000000..8831bb9bc --- /dev/null +++ b/docs/v1.0.0-beta01/data/String.Function.capitalizeEveryWord.json @@ -0,0 +1 @@ +{"id":759,"name":"capitalizeEveryWord","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/utils/src/string.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/string.ts","line":96,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/string.ts#L96"}],"signatures":[{"id":760,"name":"capitalizeEveryWord","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"capitalizeEveryWord"}]},{"tag":"@description","content":[{"kind":"text","text":"将字符串中每个单词的首字母大写(标题大小写)。Capitalizes the first letter of every word in a string (title case)"}]},{"tag":"@returns","content":[{"kind":"text","text":"每个单词首字母大写的字符串。String with each word's first letter capitalized"}]},{"tag":"@throws","content":[{"kind":"text","text":"当str不是字符串时。When str is not a string"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Basic usage\ncapitalizeEveryWord('hello world'); // -> 'Hello World'\ncapitalizeEveryWord('the quick brown fox'); // -> 'The Quick Brown Fox'\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Mixed case input\ncapitalizeEveryWord('hELLo WoRLd'); // -> 'HELLo WoRLd' (only first letters are affected)\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Special characters and numbers\ncapitalizeEveryWord('hello-world test_case'); // -> 'Hello-World Test_Case'\ncapitalizeEveryWord('item1 item2 item3'); // -> 'Item1 Item2 Item3'\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Edge cases\ncapitalizeEveryWord(''); // -> ''\ncapitalizeEveryWord('a b c'); // -> 'A B C'\ncapitalizeEveryWord(' hello world '); // -> ' Hello World '\n```"}]}]},"parameters":[{"id":761,"name":"str","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"要转换为标题大小写的字符串。String to convert to title case"}]},"type":{"type":"intrinsic","name":"string"},"text":{"comment":"

    要转换为标题大小写的字符串。String to convert to title case

    \n"}}],"type":{"type":"intrinsic","name":"string"},"is":{"declaration":false},"location":{"query":"String.Function.capitalizeEveryWord","hash":"capitalizeEveryWord"},"text":{"comment":"
    Function:

    capitalizeEveryWord

    \n
    Description:

    将字符串中每个单词的首字母大写(标题大小写)。Capitalizes the first letter of every word in a string (title case)

    \n
    Returns:

    每个单词首字母大写的字符串。String with each word's first letter capitalized

    \n
    Throws:

    当str不是字符串时。When str is not a string

    \n
    Example:
    // Basic usage\ncapitalizeEveryWord('hello world'); // -> 'Hello World'\ncapitalizeEveryWord('the quick brown fox'); // -> 'The Quick Brown Fox'\n
    \n
    Example:
    // Mixed case input\ncapitalizeEveryWord('hELLo WoRLd'); // -> 'HELLo WoRLd' (only first letters are affected)\n
    \n
    Example:
    // Special characters and numbers\ncapitalizeEveryWord('hello-world test_case'); // -> 'Hello-World Test_Case'\ncapitalizeEveryWord('item1 item2 item3'); // -> 'Item1 Item2 Item3'\n
    \n
    Example:
    // Edge cases\ncapitalizeEveryWord(''); // -> ''\ncapitalizeEveryWord('a b c'); // -> 'A B C'\ncapitalizeEveryWord('  hello   world  '); // -> '  Hello   World  '\n
    \n"},"sources":[{"fileName":"packages/utils/src/string.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/string.ts","line":96,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/string.ts#L96"}],"parentId":759}],"is":{"declaration":true},"location":{"query":"String.Function.capitalizeEveryWord","hash":""},"text":{},"parentId":752} diff --git a/docs/v1.0.0-beta01/data/String.Function.decapitalize.json b/docs/v1.0.0-beta01/data/String.Function.decapitalize.json new file mode 100644 index 000000000..22517b643 --- /dev/null +++ b/docs/v1.0.0-beta01/data/String.Function.decapitalize.json @@ -0,0 +1 @@ +{"id":762,"name":"decapitalize","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/utils/src/string.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/string.ts","line":127,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/string.ts#L127"}],"signatures":[{"id":763,"name":"decapitalize","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"decapitalize"}]},{"tag":"@description","content":[{"kind":"text","text":"将字符串的第一个字母转换为小写,其余部分保持不变。Converts the first letter of a string to lowercase while keeping the rest unchanged"}]},{"tag":"@returns","content":[{"kind":"text","text":"首字母小写的字符串。String with first letter in lowercase"}]},{"tag":"@throws","content":[{"kind":"text","text":"当paramString不是字符串时。When paramString is not a string"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Basic usage\ndecapitalize('Hello'); // -> 'hello'\ndecapitalize('World'); // -> 'world'\ndecapitalize('Hello World'); // -> 'hello World'\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Already lowercase\ndecapitalize('hello'); // -> 'hello'\ndecapitalize('hELLO'); // -> 'hELLO'\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Special characters and numbers\ndecapitalize('123ABC'); // -> '123ABC' (first character is not a letter)\ndecapitalize('!Hello'); // -> '!Hello' (first character is not a letter)\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Edge cases\ndecapitalize(''); // -> ''\ndecapitalize('A'); // -> 'a'\n```"}]}]},"parameters":[{"id":764,"name":"paramString","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"要取消大写的字符串(使用解构获取第一个字符)。String to decapitalize (uses destructuring for first character)"}]},"originalName":"__namedParameters","type":{"type":"intrinsic","name":"string"},"text":{"comment":"

    要取消大写的字符串(使用解构获取第一个字符)。String to decapitalize (uses destructuring for first character)

    \n"}}],"type":{"type":"intrinsic","name":"string"},"is":{"declaration":false},"location":{"query":"String.Function.decapitalize","hash":"decapitalize"},"text":{"comment":"
    Function:

    decapitalize

    \n
    Description:

    将字符串的第一个字母转换为小写,其余部分保持不变。Converts the first letter of a string to lowercase while keeping the rest unchanged

    \n
    Returns:

    首字母小写的字符串。String with first letter in lowercase

    \n
    Throws:

    当paramString不是字符串时。When paramString is not a string

    \n
    Example:
    // Basic usage\ndecapitalize('Hello'); // -> 'hello'\ndecapitalize('World'); // -> 'world'\ndecapitalize('Hello World'); // -> 'hello World'\n
    \n
    Example:
    // Already lowercase\ndecapitalize('hello'); // -> 'hello'\ndecapitalize('hELLO'); // -> 'hELLO'\n
    \n
    Example:
    // Special characters and numbers\ndecapitalize('123ABC'); // -> '123ABC' (first character is not a letter)\ndecapitalize('!Hello'); // -> '!Hello' (first character is not a letter)\n
    \n
    Example:
    // Edge cases\ndecapitalize(''); // -> ''\ndecapitalize('A'); // -> 'a'\n
    \n"},"sources":[{"fileName":"packages/utils/src/string.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/string.ts","line":127,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/string.ts#L127"}],"parentId":762}],"is":{"declaration":true},"location":{"query":"String.Function.decapitalize","hash":""},"text":{},"parentId":752} diff --git a/docs/v1.0.0-beta01/data/String.Function.ellipsis.json b/docs/v1.0.0-beta01/data/String.Function.ellipsis.json new file mode 100644 index 000000000..c44592473 --- /dev/null +++ b/docs/v1.0.0-beta01/data/String.Function.ellipsis.json @@ -0,0 +1 @@ +{"id":785,"name":"ellipsis","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/utils/src/string.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/string.ts","line":392,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/string.ts#L392"}],"signatures":[{"id":786,"name":"ellipsis","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"ellipsis"}]},{"tag":"@description","content":[{"kind":"text","text":"将字符串截断到最大长度并添加自定义省略号后缀。Truncates a string to a maximum length and adds a custom ellipsis suffix"}]},{"tag":"@returns","content":[{"kind":"text","text":"带有自定义省略号的截断字符串,或在限制内的原始字符串。Truncated string with custom ellipsis, or original string if within limit"}]},{"tag":"@throws","content":[{"kind":"text","text":"当参数类型不符合预期时。When parameters are not of expected types"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Basic usage\nellipsis('hello world', 5); // -> 'he...'\nellipsis('hello world', 8); // -> 'hello...'\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Custom ellipsis\nellipsis('hello world', 5, '***'); // -> 'he***'\nellipsis('hello world', 8, ' [more]'); // -> 'h [more]'\nellipsis('hello world', 10, '…'); // -> 'hello wor…'\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// No truncation needed\nellipsis('hello world', 20); // -> 'hello world'\nellipsis('short', 10); // -> 'short'\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Unicode strings\nellipsis('你好世界', 2); // -> '你…' (properly handles Unicode)\nellipsis('café restaurant', 6, '...'); // -> 'caf...'\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Edge cases\nellipsis('', 5); // -> ''\nellipsis('hello', 3, '...'); // -> '...' (ellipsis longer than maxLength)\nellipsis('hello', 10, ''); // -> 'hello' (empty ellipsis)\n```"}]}]},"parameters":[{"id":787,"name":"str","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"要截断的字符串。String to truncate"}]},"type":{"type":"intrinsic","name":"string"},"text":{"comment":"

    要截断的字符串。String to truncate

    \n"}},{"id":788,"name":"maxLength","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"包括省略号在内的最大允许长度(默认:10)。Maximum allowed length including ellipsis (default: 10)"}]},"type":{"type":"intrinsic","name":"number"},"defaultValue":"10","text":{"comment":"

    包括省略号在内的最大允许长度(默认:10)。Maximum allowed length including ellipsis (default: 10)

    \n"}},{"id":789,"name":"ellipsisStr","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"自定义省略号字符串(默认:'...')。Custom ellipsis string (default: '...')"}]},"type":{"type":"intrinsic","name":"string"},"defaultValue":"'...'","text":{"comment":"

    自定义省略号字符串(默认:'...')。Custom ellipsis string (default: '...')

    \n"}}],"type":{"type":"intrinsic","name":"string"},"is":{"declaration":false},"location":{"query":"String.Function.ellipsis","hash":"ellipsis"},"text":{"comment":"
    Function:

    ellipsis

    \n
    Description:

    将字符串截断到最大长度并添加自定义省略号后缀。Truncates a string to a maximum length and adds a custom ellipsis suffix

    \n
    Returns:

    带有自定义省略号的截断字符串,或在限制内的原始字符串。Truncated string with custom ellipsis, or original string if within limit

    \n
    Throws:

    当参数类型不符合预期时。When parameters are not of expected types

    \n
    Example:
    // Basic usage\nellipsis('hello world', 5); // -> 'he...'\nellipsis('hello world', 8); // -> 'hello...'\n
    \n
    Example:
    // Custom ellipsis\nellipsis('hello world', 5, '***'); // -> 'he***'\nellipsis('hello world', 8, ' [more]'); // -> 'h [more]'\nellipsis('hello world', 10, ''); // -> 'hello wor…'\n
    \n
    Example:
    // No truncation needed\nellipsis('hello world', 20); // -> 'hello world'\nellipsis('short', 10); // -> 'short'\n
    \n
    Example:
    // Unicode strings\nellipsis('你好世界', 2); // -> '你…' (properly handles Unicode)\nellipsis('café restaurant', 6, '...'); // -> 'caf...'\n
    \n
    Example:
    // Edge cases\nellipsis('', 5); // -> ''\nellipsis('hello', 3, '...'); // -> '...' (ellipsis longer than maxLength)\nellipsis('hello', 10, ''); // -> 'hello' (empty ellipsis)\n
    \n"},"sources":[{"fileName":"packages/utils/src/string.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/string.ts","line":392,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/string.ts#L392"}],"parentId":785}],"is":{"declaration":true},"location":{"query":"String.Function.ellipsis","hash":""},"text":{},"parentId":752} diff --git a/docs/v1.0.0-beta01/data/String.Function.fromCamelCase.json b/docs/v1.0.0-beta01/data/String.Function.fromCamelCase.json new file mode 100644 index 000000000..61688ba3d --- /dev/null +++ b/docs/v1.0.0-beta01/data/String.Function.fromCamelCase.json @@ -0,0 +1 @@ +{"id":774,"name":"fromCamelCase","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/utils/src/string.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/string.ts","line":276,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/string.ts#L276"}],"signatures":[{"id":775,"name":"fromCamelCase","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"fromCamelCase"}]},{"tag":"@description","content":[{"kind":"text","text":"将camelCase或PascalCase字符串转换为snake_case或自定义分隔符格式。Converts camelCase or PascalCase strings to snake_case or custom separator format"}]},{"tag":"@returns","content":[{"kind":"text","text":"转换为snake_case或自定义分隔符格式的字符串。String converted to snake_case or custom separator format"}]},{"tag":"@throws","content":[{"kind":"text","text":"当str不是字符串时。When str is not a string"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Basic camelCase conversion\nfromCamelCase('helloWorld'); // -> 'hello_world'\nfromCamelCase('getUserName'); // -> 'get_user_name'\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// PascalCase conversion\nfromCamelCase('HelloWorld'); // -> 'hello_world'\nfromCamelCase('XMLHttpRequest'); // -> 'xml_http_request'\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Custom separators\nfromCamelCase('HelloWorld', '-'); // -> 'hello-world'\nfromCamelCase('getUserName', '.'); // -> 'get.user.name'\nfromCamelCase('XMLHttpRequest', ' '); // -> 'xml http request'\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Edge cases\nfromCamelCase(''); // -> ''\nfromCamelCase('hello'); // -> 'hello' (no conversion needed)\nfromCamelCase('HTML'); // -> 'html'\nfromCamelCase('XMLParser'); // -> 'xml_parser'\n```"}]}]},"parameters":[{"id":776,"name":"str","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"要转换的camelCase字符串。CamelCase string to convert"}]},"type":{"type":"intrinsic","name":"string"},"text":{"comment":"

    要转换的camelCase字符串。CamelCase string to convert

    \n"}},{"id":777,"name":"separator","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"用作分隔符的字符(默认:'_')。Character to use as separator (default: '_')"}]},"type":{"type":"intrinsic","name":"string"},"defaultValue":"'_'","text":{"comment":"

    用作分隔符的字符(默认:'')。Character to use as separator (default: '')

    \n"}}],"type":{"type":"intrinsic","name":"string"},"is":{"declaration":false},"location":{"query":"String.Function.fromCamelCase","hash":"fromCamelCase"},"text":{"comment":"
    Function:

    fromCamelCase

    \n
    Description:

    将camelCase或PascalCase字符串转换为snake_case或自定义分隔符格式。Converts camelCase or PascalCase strings to snake_case or custom separator format

    \n
    Returns:

    转换为snake_case或自定义分隔符格式的字符串。String converted to snake_case or custom separator format

    \n
    Throws:

    当str不是字符串时。When str is not a string

    \n
    Example:
    // Basic camelCase conversion\nfromCamelCase('helloWorld'); // -> 'hello_world'\nfromCamelCase('getUserName'); // -> 'get_user_name'\n
    \n
    Example:
    // PascalCase conversion\nfromCamelCase('HelloWorld'); // -> 'hello_world'\nfromCamelCase('XMLHttpRequest'); // -> 'xml_http_request'\n
    \n
    Example:
    // Custom separators\nfromCamelCase('HelloWorld', '-'); // -> 'hello-world'\nfromCamelCase('getUserName', '.'); // -> 'get.user.name'\nfromCamelCase('XMLHttpRequest', ' '); // -> 'xml http request'\n
    \n
    Example:
    // Edge cases\nfromCamelCase(''); // -> ''\nfromCamelCase('hello'); // -> 'hello' (no conversion needed)\nfromCamelCase('HTML'); // -> 'html'\nfromCamelCase('XMLParser'); // -> 'xml_parser'\n
    \n"},"sources":[{"fileName":"packages/utils/src/string.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/string.ts","line":276,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/string.ts#L276"}],"parentId":774}],"is":{"declaration":true},"location":{"query":"String.Function.fromCamelCase","hash":""},"text":{},"parentId":752} diff --git a/docs/v1.0.0-beta01/data/String.Function.isChinese.json b/docs/v1.0.0-beta01/data/String.Function.isChinese.json new file mode 100644 index 000000000..8f8d63577 --- /dev/null +++ b/docs/v1.0.0-beta01/data/String.Function.isChinese.json @@ -0,0 +1 @@ +{"id":796,"name":"isChinese","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/utils/src/string.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/string.ts","line":485,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/string.ts#L485"}],"signatures":[{"id":797,"name":"isChinese","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"isChinese"}]},{"tag":"@description","content":[{"kind":"text","text":"检查字符串是否仅包含中文字符(包括标点符号)。Checks if a string contains only Chinese characters (including punctuation)"}]},{"tag":"@returns","content":[{"kind":"text","text":"如果字符串仅包含中文字符则返回true,否则返回false。True if string contains only Chinese characters, false otherwise"}]},{"tag":"@throws","content":[{"kind":"text","text":"当str不是字符串时。When str is not a string"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Pure Chinese characters\nisChinese('你好'); // -> true\nisChinese('世界'); // -> true\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Mixed content\nisChinese('hello'); // -> false\nisChinese('你好hello'); // -> false\nisChinese('你好123'); // -> false\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Chinese with punctuation\nisChinese('你好,世界!'); // -> true\nisChinese('这是一个测试。'); // -> true\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Mixed Chinese and English punctuation\nisChinese('你好,世界!hello'); // -> false\nisChinese('你好world'); // -> false\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Edge cases\nisChinese(''); // -> false\nisChinese('123'); // -> false\nisChinese('!@#¥%'); // -> true (Chinese punctuation)\n```"}]}]},"parameters":[{"id":798,"name":"str","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"要检查的字符串。String to check"}]},"type":{"type":"intrinsic","name":"string"},"text":{"comment":"

    要检查的字符串。String to check

    \n"}}],"type":{"type":"intrinsic","name":"boolean"},"is":{"declaration":false},"location":{"query":"String.Function.isChinese","hash":"isChinese"},"text":{"comment":"
    Function:

    isChinese

    \n
    Description:

    检查字符串是否仅包含中文字符(包括标点符号)。Checks if a string contains only Chinese characters (including punctuation)

    \n
    Returns:

    如果字符串仅包含中文字符则返回true,否则返回false。True if string contains only Chinese characters, false otherwise

    \n
    Throws:

    当str不是字符串时。When str is not a string

    \n
    Example:
    // Pure Chinese characters\nisChinese('你好'); // -> true\nisChinese('世界'); // -> true\n
    \n
    Example:
    // Mixed content\nisChinese('hello'); // -> false\nisChinese('你好hello'); // -> false\nisChinese('你好123'); // -> false\n
    \n
    Example:
    // Chinese with punctuation\nisChinese('你好,世界!'); // -> true\nisChinese('这是一个测试。'); // -> true\n
    \n
    Example:
    // Mixed Chinese and English punctuation\nisChinese('你好,世界!hello'); // -> false\nisChinese('你好world'); // -> false\n
    \n
    Example:
    // Edge cases\nisChinese(''); // -> false\nisChinese('123'); // -> false\nisChinese('!@#¥%'); // -> true (Chinese punctuation)\n
    \n"},"sources":[{"fileName":"packages/utils/src/string.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/string.ts","line":485,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/string.ts#L485"}],"parentId":796}],"is":{"declaration":true},"location":{"query":"String.Function.isChinese","hash":""},"text":{},"parentId":752} diff --git a/docs/v1.0.0-beta01/data/String.Function.maskString.json b/docs/v1.0.0-beta01/data/String.Function.maskString.json new file mode 100644 index 000000000..095730b3e --- /dev/null +++ b/docs/v1.0.0-beta01/data/String.Function.maskString.json @@ -0,0 +1 @@ +{"id":790,"name":"maskString","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/utils/src/string.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/string.ts","line":437,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/string.ts#L437"}],"signatures":[{"id":791,"name":"maskString","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"maskString"}]},{"tag":"@description","content":[{"kind":"text","text":"遮盖字符串的一部分,同时保持开头和结尾的指定字符可见。Masks part of a string while keeping specified characters visible at start and end"}]},{"tag":"@returns","content":[{"kind":"text","text":"遮盖后的字符串,开头和结尾部分可见。Masked string with visible start and end portions"}]},{"tag":"@throws","content":[{"kind":"text","text":"当参数类型不符合预期时。When parameters are not of expected types"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Phone number masking\nmaskString('13812345678'); // -> '138****5678'\nmaskString('1234567890', 2, 2); // -> '12******90'\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Email masking\nmaskString('user@example.com', 2, 8); // -> 'us****ample.com'\nmaskString('john.doe@company.com', 4, 12); // -> 'john********company.com'\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Custom mask character\nmaskString('123456789', 2, 2, '#'); // -> '12#####89'\nmaskString('password123', 1, 1, 'X'); // -> 'pXXXXXXXXX3'\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Unicode strings\nmaskString('张三李四王五', 1, 1); // -> '张***五'\nmaskString('用户名@邮箱.com', 2, 4); // -> '用户****箱.com'\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Edge cases\nmaskString(''); // -> ''\nmaskString('abc'); // -> 'abc' (too short to mask)\nmaskString('1234567', 3, 4); // -> '1234567' (startVisible + endVisible >= length)\nmaskString('12345', 10, 10); // -> '12345' (visible chars exceed string length)\n```"}]}]},"parameters":[{"id":792,"name":"str","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"要遮盖的字符串。String to mask"}]},"type":{"type":"intrinsic","name":"string"},"text":{"comment":"

    要遮盖的字符串。String to mask

    \n"}},{"id":793,"name":"startVisible","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"在开头保持可见的字符数(默认:3)。Number of characters to keep visible at the start (default: 3)"}]},"type":{"type":"intrinsic","name":"number"},"defaultValue":"3","text":{"comment":"

    在开头保持可见的字符数(默认:3)。Number of characters to keep visible at the start (default: 3)

    \n"}},{"id":794,"name":"endVisible","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"在结尾保持可见的字符数(默认:4)。Number of characters to keep visible at the end (default: 4)"}]},"type":{"type":"intrinsic","name":"number"},"defaultValue":"4","text":{"comment":"

    在结尾保持可见的字符数(默认:4)。Number of characters to keep visible at the end (default: 4)

    \n"}},{"id":795,"name":"maskChar","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"用于遮盖的字符(默认:'*')。Character to use for masking (default: '*')"}]},"type":{"type":"intrinsic","name":"string"},"defaultValue":"'*'","text":{"comment":"

    用于遮盖的字符(默认:'')。Character to use for masking (default: '')

    \n"}}],"type":{"type":"intrinsic","name":"string"},"is":{"declaration":false},"location":{"query":"String.Function.maskString","hash":"maskString"},"text":{"comment":"
    Function:

    maskString

    \n
    Description:

    遮盖字符串的一部分,同时保持开头和结尾的指定字符可见。Masks part of a string while keeping specified characters visible at start and end

    \n
    Returns:

    遮盖后的字符串,开头和结尾部分可见。Masked string with visible start and end portions

    \n
    Throws:

    当参数类型不符合预期时。When parameters are not of expected types

    \n
    Example:
    // Phone number masking\nmaskString('13812345678'); // -> '138****5678'\nmaskString('1234567890', 2, 2); // -> '12******90'\n
    \n
    Example:
    // Email masking\nmaskString('user@example.com', 2, 8); // -> 'us****ample.com'\nmaskString('john.doe@company.com', 4, 12); // -> 'john********company.com'\n
    \n
    Example:
    // Custom mask character\nmaskString('123456789', 2, 2, '#'); // -> '12#####89'\nmaskString('password123', 1, 1, 'X'); // -> 'pXXXXXXXXX3'\n
    \n
    Example:
    // Unicode strings\nmaskString('张三李四王五', 1, 1); // -> '张***五'\nmaskString('用户名@邮箱.com', 2, 4); // -> '用户****箱.com'\n
    \n
    Example:
    // Edge cases\nmaskString(''); // -> ''\nmaskString('abc'); // -> 'abc' (too short to mask)\nmaskString('1234567', 3, 4); // -> '1234567' (startVisible + endVisible >= length)\nmaskString('12345', 10, 10); // -> '12345' (visible chars exceed string length)\n
    \n"},"sources":[{"fileName":"packages/utils/src/string.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/string.ts","line":437,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/string.ts#L437"}],"parentId":790}],"is":{"declaration":true},"location":{"query":"String.Function.maskString","hash":""},"text":{},"parentId":752} diff --git a/docs/v1.0.0-beta01/data/String.Function.palindrome.json b/docs/v1.0.0-beta01/data/String.Function.palindrome.json new file mode 100644 index 000000000..8d214195a --- /dev/null +++ b/docs/v1.0.0-beta01/data/String.Function.palindrome.json @@ -0,0 +1 @@ +{"id":771,"name":"palindrome","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/utils/src/string.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/string.ts","line":242,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/string.ts#L242"}],"signatures":[{"id":772,"name":"palindrome","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"palindrome"}]},{"tag":"@description","content":[{"kind":"text","text":"检查字符串是否为回文(正读和反读相同)。Checks if a string is a palindrome (reads the same forwards and backwards)"}]},{"tag":"@returns","content":[{"kind":"text","text":"如果字符串是回文则返回true(忽略大小写、空格和标点),否则返回false。True if the string is a palindrome (ignoring case, spaces, and punctuation), false otherwise"}]},{"tag":"@throws","content":[{"kind":"text","text":"当str不是字符串时。When str is not a string"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Simple palindromes\npalindrome('racecar'); // -> true\npalindrome('level'); // -> true\npalindrome('hello'); // -> false\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Case insensitive\npalindrome('Racecar'); // -> true\npalindrome('MadAm'); // -> true\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Ignoring spaces and punctuation\npalindrome('A man, a plan, a canal: Panama'); // -> true\npalindrome('race a car'); // -> false\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Numbers\npalindrome('1001'); // -> true\npalindrome('12321'); // -> true\npalindrome('12345'); // -> false\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Edge cases\npalindrome(''); // -> true (empty string is considered palindrome)\npalindrome('a'); // -> true (single character)\npalindrome('!!'); // -> true (repeated punctuation)\n```"}]}]},"parameters":[{"id":773,"name":"str","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"要检查回文属性的字符串。String to check for palindrome property"}]},"type":{"type":"intrinsic","name":"string"},"text":{"comment":"

    要检查回文属性的字符串。String to check for palindrome property

    \n"}}],"type":{"type":"intrinsic","name":"boolean"},"is":{"declaration":false},"location":{"query":"String.Function.palindrome","hash":"palindrome"},"text":{"comment":"
    Function:

    palindrome

    \n
    Description:

    检查字符串是否为回文(正读和反读相同)。Checks if a string is a palindrome (reads the same forwards and backwards)

    \n
    Returns:

    如果字符串是回文则返回true(忽略大小写、空格和标点),否则返回false。True if the string is a palindrome (ignoring case, spaces, and punctuation), false otherwise

    \n
    Throws:

    当str不是字符串时。When str is not a string

    \n
    Example:
    // Simple palindromes\npalindrome('racecar'); // -> true\npalindrome('level'); // -> true\npalindrome('hello'); // -> false\n
    \n
    Example:
    // Case insensitive\npalindrome('Racecar'); // -> true\npalindrome('MadAm'); // -> true\n
    \n
    Example:
    // Ignoring spaces and punctuation\npalindrome('A man, a plan, a canal: Panama'); // -> true\npalindrome('race a car'); // -> false\n
    \n
    Example:
    // Numbers\npalindrome('1001'); // -> true\npalindrome('12321'); // -> true\npalindrome('12345'); // -> false\n
    \n
    Example:
    // Edge cases\npalindrome(''); // -> true (empty string is considered palindrome)\npalindrome('a'); // -> true (single character)\npalindrome('!!'); // -> true (repeated punctuation)\n
    \n"},"sources":[{"fileName":"packages/utils/src/string.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/string.ts","line":242,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/string.ts#L242"}],"parentId":771}],"is":{"declaration":true},"location":{"query":"String.Function.palindrome","hash":""},"text":{},"parentId":752} diff --git a/docs/v1.0.0-beta01/data/String.Function.reverseString.json b/docs/v1.0.0-beta01/data/String.Function.reverseString.json new file mode 100644 index 000000000..640d012e2 --- /dev/null +++ b/docs/v1.0.0-beta01/data/String.Function.reverseString.json @@ -0,0 +1 @@ +{"id":778,"name":"reverseString","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/utils/src/string.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/string.ts","line":315,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/string.ts#L315"}],"signatures":[{"id":779,"name":"reverseString","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"reverseString"}]},{"tag":"@description","content":[{"kind":"text","text":"逐字符反转字符串,正确处理Unicode字符。Reverses a string character by character, properly handling Unicode characters"}]},{"tag":"@returns","content":[{"kind":"text","text":"字符顺序反转的字符串。String with characters in reverse order"}]},{"tag":"@throws","content":[{"kind":"text","text":"当str不是字符串时。When str is not a string"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Basic usage\nreverseString('hello'); // -> 'olleh'\nreverseString('world'); // -> 'dlrow'\nreverseString('hello world'); // -> 'dlrow olleh'\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Numbers and special characters\nreverseString('12345'); // -> '54321'\nreverseString('a!b@c#'); // -> '#c@b!a'\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Unicode characters (properly handled)\nreverseString('你好世界'); // -> '界世好你'\nreverseString('café'); // -> 'éfac'\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Emoji (properly handled as single units)\nreverseString('😊🌟'); // -> '🌟😊'\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Edge cases\nreverseString(''); // -> ''\nreverseString('a'); // -> 'a'\nreverseString(' '); // -> ' '\n```"}]}]},"parameters":[{"id":780,"name":"str","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"要反转的字符串。String to reverse"}]},"type":{"type":"intrinsic","name":"string"},"text":{"comment":"

    要反转的字符串。String to reverse

    \n"}}],"type":{"type":"intrinsic","name":"string"},"is":{"declaration":false},"location":{"query":"String.Function.reverseString","hash":"reverseString"},"text":{"comment":"
    Function:

    reverseString

    \n
    Description:

    逐字符反转字符串,正确处理Unicode字符。Reverses a string character by character, properly handling Unicode characters

    \n
    Returns:

    字符顺序反转的字符串。String with characters in reverse order

    \n
    Throws:

    当str不是字符串时。When str is not a string

    \n
    Example:
    // Basic usage\nreverseString('hello'); // -> 'olleh'\nreverseString('world'); // -> 'dlrow'\nreverseString('hello world'); // -> 'dlrow olleh'\n
    \n
    Example:
    // Numbers and special characters\nreverseString('12345'); // -> '54321'\nreverseString('a!b@c#'); // -> '#c@b!a'\n
    \n
    Example:
    // Unicode characters (properly handled)\nreverseString('你好世界'); // -> '界世好你'\nreverseString('café'); // -> 'éfac'\n
    \n
    Example:
    // Emoji (properly handled as single units)\nreverseString('😊🌟'); // -> '🌟😊'\n
    \n
    Example:
    // Edge cases\nreverseString(''); // -> ''\nreverseString('a'); // -> 'a'\nreverseString('  '); // -> '  '\n
    \n"},"sources":[{"fileName":"packages/utils/src/string.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/string.ts","line":315,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/string.ts#L315"}],"parentId":778}],"is":{"declaration":true},"location":{"query":"String.Function.reverseString","hash":""},"text":{},"parentId":752} diff --git a/docs/v1.0.0-beta01/data/String.Function.splitLines.json b/docs/v1.0.0-beta01/data/String.Function.splitLines.json new file mode 100644 index 000000000..15efa94ef --- /dev/null +++ b/docs/v1.0.0-beta01/data/String.Function.splitLines.json @@ -0,0 +1 @@ +{"id":765,"name":"splitLines","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/utils/src/string.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/string.ts","line":170,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/string.ts#L170"}],"signatures":[{"id":766,"name":"splitLines","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"splitLines"}]},{"tag":"@description","content":[{"kind":"text","text":"将字符串拆分为行数组,处理不同的行结束格式。Splits a string into an array of lines, handling different line ending formats"}]},{"tag":"@returns","content":[{"kind":"text","text":"字符串数组,每个字符串代表一行。Array of strings, each representing a line"}]},{"tag":"@throws","content":[{"kind":"text","text":"当str不是字符串时。When str is not a string"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Unix line endings (\n)\nsplitLines('line 1\nline 2\nline 3\n'); // -> ['line 1', 'line 2', 'line 3', '']\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Windows line endings (\n)\nsplitLines('line 1\nline 2\nline 3\n'); // -> ['line 1', 'line 2', 'line 3', '']\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Mixed line endings\nsplitLines('line 1\nline 2\nline 3\n\n'); // -> ['line 1', 'line 2', 'line 3', '']\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Edge cases\nsplitLines(''); // -> ['']\nsplitLines('single line'); // -> ['single line']\nsplitLines('\n\n'); // -> ['', '', '', '']\n```"}]}]},"parameters":[{"id":767,"name":"str","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"要拆分为行的字符串。String to split into lines"}]},"type":{"type":"intrinsic","name":"string"},"text":{"comment":"

    要拆分为行的字符串。String to split into lines

    \n"}}],"type":{"type":"array","elementType":{"type":"intrinsic","name":"string"}},"is":{"declaration":false},"location":{"query":"String.Function.splitLines","hash":"splitLines"},"text":{"comment":"
    Function:

    splitLines

    \n
    Description:

    将字符串拆分为行数组,处理不同的行结束格式。Splits a string into an array of lines, handling different line ending formats

    \n
    Returns:

    字符串数组,每个字符串代表一行。Array of strings, each representing a line

    \n
    Throws:

    当str不是字符串时。When str is not a string

    \n
    Example:
    // Unix line endings (\n)\nsplitLines('line 1\nline 2\nline 3\n'); // -> ['line 1', 'line 2', 'line 3', '']\n
    \n
    Example:
    // Windows line endings (\n)\nsplitLines('line 1\nline 2\nline 3\n'); // -> ['line 1', 'line 2', 'line 3', '']\n
    \n
    Example:
    // Mixed line endings\nsplitLines('line 1\nline 2\nline 3\n\n'); // -> ['line 1', 'line 2', 'line 3', '']\n
    \n
    Example:
    // Edge cases\nsplitLines(''); // -> ['']\nsplitLines('single line'); // -> ['single line']\nsplitLines('\n\n'); // -> ['', '', '', '']\n
    \n"},"sources":[{"fileName":"packages/utils/src/string.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/string.ts","line":170,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/string.ts#L170"}],"parentId":765}],"is":{"declaration":true},"location":{"query":"String.Function.splitLines","hash":""},"text":{},"parentId":752} diff --git a/docs/v1.0.0-beta01/data/String.Function.stripHTMLTags.json b/docs/v1.0.0-beta01/data/String.Function.stripHTMLTags.json new file mode 100644 index 000000000..1812c31ed --- /dev/null +++ b/docs/v1.0.0-beta01/data/String.Function.stripHTMLTags.json @@ -0,0 +1 @@ +{"id":768,"name":"stripHTMLTags","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/utils/src/string.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/string.ts","line":204,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/string.ts#L204"}],"signatures":[{"id":769,"name":"stripHTMLTags","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"stripHTMLTags"}]},{"tag":"@description","content":[{"kind":"text","text":"移除字符串中的所有HTML标签,只保留文本内容。Removes all HTML tags from a string, leaving only the text content"}]},{"tag":"@returns","content":[{"kind":"text","text":"移除了所有HTML标签的字符串。String with all HTML tags removed"}]},{"tag":"@throws","content":[{"kind":"text","text":"当str不是字符串时。When str is not a string"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Basic HTML removal\nstripHTMLTags('

    Hello, world!

    '); // -> 'Hello, world!'\nstripHTMLTags('

    Title

    Paragraph

    '); // -> 'TitleParagraph'\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Links and attributes\nstripHTMLTags('Home'); // -> 'Home'\nstripHTMLTags('\"Image\"'); // -> ''\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Complex HTML structures\nstripHTMLTags('
    Red text
    '); // -> 'Red text'\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Edge cases\nstripHTMLTags(''); // -> ''\nstripHTMLTags('No HTML here'); // -> 'No HTML here'\nstripHTMLTags('<>'); // -> '<>' (malformed tags are not removed)\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Security note: This function only removes tags, not content\nstripHTMLTags(''); // -> 'alert(\"xss\")' (script content remains!)\n```"}]}]},"parameters":[{"id":770,"name":"str","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"包含要移除的HTML标签的字符串。String containing HTML tags to remove"}]},"type":{"type":"intrinsic","name":"string"},"text":{"comment":"

    包含要移除的HTML标签的字符串。String containing HTML tags to remove

    \n"}}],"type":{"type":"intrinsic","name":"string"},"is":{"declaration":false},"location":{"query":"String.Function.stripHTMLTags","hash":"stripHTMLTags"},"text":{"comment":"
    Function:

    stripHTMLTags

    \n
    Description:

    移除字符串中的所有HTML标签,只保留文本内容。Removes all HTML tags from a string, leaving only the text content

    \n
    Returns:

    移除了所有HTML标签的字符串。String with all HTML tags removed

    \n
    Throws:

    当str不是字符串时。When str is not a string

    \n
    Example:
    // Basic HTML removal\nstripHTMLTags('<p>Hello, world!</p>'); // -> 'Hello, world!'\nstripHTMLTags('<div><h1>Title</h1><p>Paragraph</p></div>'); // -> 'TitleParagraph'\n
    \n
    Example:
    // Links and attributes\nstripHTMLTags('<a href=\"#\" class=\"link\">Home</a>'); // -> 'Home'\nstripHTMLTags('<img src=\"image.jpg\" alt=\"Image\" />'); // -> ''\n
    \n
    Example:
    // Complex HTML structures\nstripHTMLTags('<div class=\"container\"><span style=\"color: red;\">Red text</span></div>'); // -> 'Red text'\n
    \n
    Example:
    // Edge cases\nstripHTMLTags(''); // -> ''\nstripHTMLTags('No HTML here'); // -> 'No HTML here'\nstripHTMLTags('<>'); // -> '<>' (malformed tags are not removed)\n
    \n
    Example:
    // Security note: This function only removes tags, not content\nstripHTMLTags('<script>alert(\"xss\")</script>'); // -> 'alert(\"xss\")' (script content remains!)\n
    \n"},"sources":[{"fileName":"packages/utils/src/string.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/string.ts","line":204,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/string.ts#L204"}],"parentId":768}],"is":{"declaration":true},"location":{"query":"String.Function.stripHTMLTags","hash":""},"text":{},"parentId":752} diff --git a/docs/v1.0.0-beta01/data/String.Function.truncateString.json b/docs/v1.0.0-beta01/data/String.Function.truncateString.json new file mode 100644 index 000000000..031d9ad98 --- /dev/null +++ b/docs/v1.0.0-beta01/data/String.Function.truncateString.json @@ -0,0 +1 @@ +{"id":781,"name":"truncateString","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/utils/src/string.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/string.ts","line":353,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/string.ts#L353"}],"signatures":[{"id":782,"name":"truncateString","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"truncateString"}]},{"tag":"@description","content":[{"kind":"text","text":"将字符串截断到指定长度,如果截断则添加省略号。Truncates a string to a specified length and adds ellipsis if truncated"}]},{"tag":"@returns","content":[{"kind":"text","text":"如果需要则带有省略号的截断字符串,或在限制内的原始字符串。Truncated string with ellipsis if needed, or original string if within limit"}]},{"tag":"@throws","content":[{"kind":"text","text":"当str不是字符串或num不是数字时。When str is not a string or num is not a number"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Basic truncation\ntruncateString('hello world', 5); // -> 'he...' (truncated to 5, minus 3 for ellipsis)\ntruncateString('hello world', 8); // -> 'hello...'\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Default length (10)\ntruncateString('hello world'); // -> 'hello w...'\ntruncateString('short'); // -> 'short' (no truncation needed)\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// No truncation needed\ntruncateString('hello world', 11); // -> 'hello world'\ntruncateString('hello world', 20); // -> 'hello world'\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Very short limits\ntruncateString('hello', 3); // -> '...' (when num <= 3, only ellipsis shown)\ntruncateString('hello', 2); // -> '..' (ellipsis truncated to fit)\ntruncateString('hello', 1); // -> '.' (single character ellipsis)\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Edge cases\ntruncateString('', 5); // -> ''\ntruncateString(null, 5); // -> null (handles null input)\ntruncateString(undefined, 5); // -> undefined (handles undefined input)\n```"}]}]},"parameters":[{"id":783,"name":"str","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"要截断的字符串。String to truncate"}]},"type":{"type":"intrinsic","name":"string"},"text":{"comment":"

    要截断的字符串。String to truncate

    \n"}},{"id":784,"name":"num","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"截断前的最大长度(默认:10)。Maximum length before truncation (default: 10)"}]},"type":{"type":"intrinsic","name":"number"},"defaultValue":"10","text":{"comment":"

    截断前的最大长度(默认:10)。Maximum length before truncation (default: 10)

    \n"}}],"type":{"type":"intrinsic","name":"string"},"is":{"declaration":false},"location":{"query":"String.Function.truncateString","hash":"truncateString"},"text":{"comment":"
    Function:

    truncateString

    \n
    Description:

    将字符串截断到指定长度,如果截断则添加省略号。Truncates a string to a specified length and adds ellipsis if truncated

    \n
    Returns:

    如果需要则带有省略号的截断字符串,或在限制内的原始字符串。Truncated string with ellipsis if needed, or original string if within limit

    \n
    Throws:

    当str不是字符串或num不是数字时。When str is not a string or num is not a number

    \n
    Example:
    // Basic truncation\ntruncateString('hello world', 5); // -> 'he...' (truncated to 5, minus 3 for ellipsis)\ntruncateString('hello world', 8); // -> 'hello...'\n
    \n
    Example:
    // Default length (10)\ntruncateString('hello world'); // -> 'hello w...'\ntruncateString('short'); // -> 'short' (no truncation needed)\n
    \n
    Example:
    // No truncation needed\ntruncateString('hello world', 11); // -> 'hello world'\ntruncateString('hello world', 20); // -> 'hello world'\n
    \n
    Example:
    // Very short limits\ntruncateString('hello', 3); // -> '...' (when num <= 3, only ellipsis shown)\ntruncateString('hello', 2); // -> '..' (ellipsis truncated to fit)\ntruncateString('hello', 1); // -> '.' (single character ellipsis)\n
    \n
    Example:
    // Edge cases\ntruncateString('', 5); // -> ''\ntruncateString(null, 5); // -> null (handles null input)\ntruncateString(undefined, 5); // -> undefined (handles undefined input)\n
    \n"},"sources":[{"fileName":"packages/utils/src/string.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/string.ts","line":353,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/string.ts#L353"}],"parentId":781}],"is":{"declaration":true},"location":{"query":"String.Function.truncateString","hash":""},"text":{},"parentId":752} diff --git a/docs/v1.0.0-beta01/data/Trade.Function.luhnCheck.json b/docs/v1.0.0-beta01/data/Trade.Function.luhnCheck.json new file mode 100644 index 000000000..fafb12eb5 --- /dev/null +++ b/docs/v1.0.0-beta01/data/Trade.Function.luhnCheck.json @@ -0,0 +1 @@ +{"id":803,"name":"luhnCheck","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/utils/src/trade.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/trade.ts","line":19,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/trade.ts#L19"}],"signatures":[{"id":804,"name":"luhnCheck","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"luhnCheck"}]},{"tag":"@description","content":[{"kind":"text","text":"用于验证信用卡号是否有效(Luhn算法)。Used to validate if a credit card number is valid (Luhn algorithm)"}]},{"tag":"@returns","content":[{"kind":"text","text":"信用卡号是否有效。Whether the credit card number is valid"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\nluhnCheck(79927398713); // true\nluhnCheck(79927398710); // false\n```"}]}]},"parameters":[{"id":805,"name":"num","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"信用卡号。Credit card number"}]},"type":{"type":"intrinsic","name":"number"},"text":{"comment":"

    信用卡号。Credit card number

    \n"}}],"type":{"type":"intrinsic","name":"boolean"},"is":{"declaration":false},"location":{"query":"Trade.Function.luhnCheck","hash":"luhnCheck"},"text":{"comment":"
    Function:

    luhnCheck

    \n
    Description:

    用于验证信用卡号是否有效(Luhn算法)。Used to validate if a credit card number is valid (Luhn algorithm)

    \n
    Returns:

    信用卡号是否有效。Whether the credit card number is valid

    \n
    Example:
    luhnCheck(79927398713); // true\nluhnCheck(79927398710); // false\n
    \n"},"sources":[{"fileName":"packages/utils/src/trade.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/trade.ts","line":19,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/trade.ts#L19"}],"parentId":803}],"is":{"declaration":true},"location":{"query":"Trade.Function.luhnCheck","hash":""},"text":{},"parentId":802} diff --git a/docs/v1.0.0-beta01/data/Trade.Function.toCurrency.json b/docs/v1.0.0-beta01/data/Trade.Function.toCurrency.json new file mode 100644 index 000000000..a2a7b9d77 --- /dev/null +++ b/docs/v1.0.0-beta01/data/Trade.Function.toCurrency.json @@ -0,0 +1 @@ +{"id":806,"name":"toCurrency","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/utils/src/trade.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/trade.ts","line":42,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/trade.ts#L42"}],"signatures":[{"id":807,"name":"toCurrency","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"toCurrency"}]},{"tag":"@description","content":[{"kind":"text","text":"将数字转换为货币格式的字符串。Converts a number to a currency formatted string"}]},{"tag":"@returns","content":[{"kind":"text","text":"货币格式的字符串。Currency formatted string"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\ntoCurrency(1234.56, 'USD', 'en-US'); // '$1,234.56'\ntoCurrency(1234.56, 'USD', 'zh-CN'); // 'US$1,234.56'\n```"}]}]},"parameters":[{"id":808,"name":"n","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"数字。Number"}]},"type":{"type":"intrinsic","name":"number"},"text":{"comment":"

    数字。Number

    \n"}},{"id":809,"name":"curr","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"货币类型。Currency type"}]},"type":{"type":"intrinsic","name":"string"},"text":{"comment":"

    货币类型。Currency type

    \n"}},{"id":810,"name":"LanguageFormat","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"语言格式。Language format"}]},"type":{"type":"intrinsic","name":"string"},"text":{"comment":"

    语言格式。Language format

    \n"}}],"type":{"type":"intrinsic","name":"string"},"is":{"declaration":false},"location":{"query":"Trade.Function.toCurrency","hash":"toCurrency"},"text":{"comment":"
    Function:

    toCurrency

    \n
    Description:

    将数字转换为货币格式的字符串。Converts a number to a currency formatted string

    \n
    Returns:

    货币格式的字符串。Currency formatted string

    \n
    Example:
    toCurrency(1234.56, 'USD', 'en-US');  // '$1,234.56'\ntoCurrency(1234.56, 'USD', 'zh-CN');  // 'US$1,234.56'\n
    \n"},"sources":[{"fileName":"packages/utils/src/trade.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/trade.ts","line":42,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/trade.ts#L42"}],"parentId":806}],"is":{"declaration":true},"location":{"query":"Trade.Function.toCurrency","hash":""},"text":{},"parentId":802} diff --git a/docs/v1.0.0-beta01/data/Type.Function.equals.json b/docs/v1.0.0-beta01/data/Type.Function.equals.json new file mode 100644 index 000000000..da3f19362 --- /dev/null +++ b/docs/v1.0.0-beta01/data/Type.Function.equals.json @@ -0,0 +1 @@ +{"id":830,"name":"equals","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/utils/src/type.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/type.ts","line":389,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/type.ts#L389"}],"signatures":[{"id":831,"name":"equals","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"equals"}]},{"tag":"@description","content":[{"kind":"text","text":"在两个值之间执行深度相等比较。Performs deep equality comparison between two values"}]},{"tag":"@returns","content":[{"kind":"text","text":"如果值深度相等则返回true,否则返回false。True if values are deeply equal, false otherwise"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Primitive values\nequals(1, 1); // -> true\nequals('hello', 'hello'); // -> true\nequals(true, true); // -> true\nequals(null, null); // -> true\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Arrays (deep comparison)\nequals([1, 2, 3], [1, 2, 3]); // -> true\nequals([1, [2, 3]], [1, [2, 3]]); // -> true\nequals([1, 2, 3], [1, 2, 4]); // -> false\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Objects (deep comparison)\nequals({ a: 1, b: 2 }, { a: 1, b: 2 }); // -> true\nequals({ a: 1, b: { c: 3 } }, { a: 1, b: { c: 3 } }); // -> true\nequals({ a: 1 }, { a: 1, b: 2 }); // -> false (different keys)\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Date objects\nconst date1 = new Date('2022-01-01');\nconst date2 = new Date('2022-01-01');\nequals(date1, date2); // -> true (same timestamp)\nequals(new Date('2022-01-01'), new Date('2022-01-02')); // -> false\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Mixed types\nequals(1, '1'); // -> false (different types)\nequals([], {}); // -> false (different constructors)\nequals(null, undefined); // -> false\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Complex nested structures\nconst obj1 = { users: [{ id: 1, name: 'John' }, { id: 2, name: 'Jane' }] };\nconst obj2 = { users: [{ id: 1, name: 'John' }, { id: 2, name: 'Jane' }] };\nequals(obj1, obj2); // -> true\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Reference vs value equality\nconst arr = [1, 2, 3];\nequals(arr, arr); // -> true (same reference)\nequals(arr, [1, 2, 3]); // -> true (same values)\n```"}]}]},"parameters":[{"id":832,"name":"a","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"要比较的第一个值。First value to compare"}]},"type":{"type":"intrinsic","name":"any"},"text":{"comment":"

    要比较的第一个值。First value to compare

    \n"}},{"id":833,"name":"b","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"要比较的第二个值。Second value to compare"}]},"type":{"type":"intrinsic","name":"any"},"text":{"comment":"

    要比较的第二个值。Second value to compare

    \n"}}],"type":{"type":"intrinsic","name":"boolean"},"is":{"declaration":false},"location":{"query":"Type.Function.equals","hash":"equals"},"text":{"comment":"
    Function:

    equals

    \n
    Description:

    在两个值之间执行深度相等比较。Performs deep equality comparison between two values

    \n
    Returns:

    如果值深度相等则返回true,否则返回false。True if values are deeply equal, false otherwise

    \n
    Example:
    // Primitive values\nequals(1, 1); // -> true\nequals('hello', 'hello'); // -> true\nequals(true, true); // -> true\nequals(null, null); // -> true\n
    \n
    Example:
    // Arrays (deep comparison)\nequals([1, 2, 3], [1, 2, 3]); // -> true\nequals([1, [2, 3]], [1, [2, 3]]); // -> true\nequals([1, 2, 3], [1, 2, 4]); // -> false\n
    \n
    Example:
    // Objects (deep comparison)\nequals({ a: 1, b: 2 }, { a: 1, b: 2 }); // -> true\nequals({ a: 1, b: { c: 3 } }, { a: 1, b: { c: 3 } }); // -> true\nequals({ a: 1 }, { a: 1, b: 2 }); // -> false (different keys)\n
    \n
    Example:
    // Date objects\nconst date1 = new Date('2022-01-01');\nconst date2 = new Date('2022-01-01');\nequals(date1, date2); // -> true (same timestamp)\nequals(new Date('2022-01-01'), new Date('2022-01-02')); // -> false\n
    \n
    Example:
    // Mixed types\nequals(1, '1'); // -> false (different types)\nequals([], {}); // -> false (different constructors)\nequals(null, undefined); // -> false\n
    \n
    Example:
    // Complex nested structures\nconst obj1 = { users: [{ id: 1, name: 'John' }, { id: 2, name: 'Jane' }] };\nconst obj2 = { users: [{ id: 1, name: 'John' }, { id: 2, name: 'Jane' }] };\nequals(obj1, obj2); // -> true\n
    \n
    Example:
    // Reference vs value equality\nconst arr = [1, 2, 3];\nequals(arr, arr); // -> true (same reference)\nequals(arr, [1, 2, 3]); // -> true (same values)\n
    \n"},"sources":[{"fileName":"packages/utils/src/type.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/type.ts","line":389,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/type.ts#L389"}],"parentId":830}],"is":{"declaration":true},"location":{"query":"Type.Function.equals","hash":""},"text":{},"parentId":811} diff --git a/docs/v1.0.0-beta01/data/Type.Function.isArray.json b/docs/v1.0.0-beta01/data/Type.Function.isArray.json new file mode 100644 index 000000000..4432ae14f --- /dev/null +++ b/docs/v1.0.0-beta01/data/Type.Function.isArray.json @@ -0,0 +1 @@ +{"id":834,"name":"isArray","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/utils/src/type.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/type.ts","line":111,"character":13,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/type.ts#L111"}],"signatures":[{"id":835,"name":"isArray","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"isArray"}]},{"tag":"@description","content":[{"kind":"text","text":"检查值是否为数组(跨框架兼容)。Checks if a value is an array (cross-frame compatible)"}]},{"tag":"@returns","content":[{"kind":"text","text":"如果值为数组则返回true,否则返回false。True if the value is an array, false otherwise"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Basic usage\nisArray([1, 2, 3]); // -> true\nisArray({ a: 1, b: '2' }); // -> false\nisArray('string'); // -> false\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Different array types\nisArray([]); // -> true (empty array)\nisArray(new Array()); // -> true\nisArray(Array.from('abc')); // -> true\nisArray([...new Set([1, 2, 3])]); // -> true\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Array-like objects (not arrays)\nisArray(arguments); // -> false (in function context)\nisArray({ 0: 'a', 1: 'b', length: 2 }); // -> false\nisArray('abc'); // -> false (string is array-like but not array)\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Typed arrays\nisArray(new Int32Array([1, 2, 3])); // -> false (typed arrays are not regular arrays)\nisArray(new Uint8Array([1, 2, 3])); // -> false\n```"}]}]},"parameters":[{"id":836,"name":"val","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"要检查的值。Value to check"}]},"type":{"type":"intrinsic","name":"unknown"},"text":{"comment":"

    要检查的值。Value to check

    \n"}}],"type":{"type":"predicate","name":"val","asserts":false,"targetType":{"type":"array","elementType":{"type":"intrinsic","name":"any"}}},"is":{"declaration":false},"location":{"query":"Type.Function.isArray","hash":"isArray"},"text":{"comment":"
    Function:

    isArray

    \n
    Description:

    检查值是否为数组(跨框架兼容)。Checks if a value is an array (cross-frame compatible)

    \n
    Returns:

    如果值为数组则返回true,否则返回false。True if the value is an array, false otherwise

    \n
    Example:
    // Basic usage\nisArray([1, 2, 3]); // -> true\nisArray({ a: 1, b: '2' }); // -> false\nisArray('string'); // -> false\n
    \n
    Example:
    // Different array types\nisArray([]); // -> true (empty array)\nisArray(new Array()); // -> true\nisArray(Array.from('abc')); // -> true\nisArray([...new Set([1, 2, 3])]); // -> true\n
    \n
    Example:
    // Array-like objects (not arrays)\nisArray(arguments); // -> false (in function context)\nisArray({ 0: 'a', 1: 'b', length: 2 }); // -> false\nisArray('abc'); // -> false (string is array-like but not array)\n
    \n
    Example:
    // Typed arrays\nisArray(new Int32Array([1, 2, 3])); // -> false (typed arrays are not regular arrays)\nisArray(new Uint8Array([1, 2, 3])); // -> false\n
    \n"},"sources":[{"fileName":"packages/utils/src/type.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/type.ts","line":111,"character":23,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/type.ts#L111"}],"parentId":834}],"is":{"declaration":true},"location":{"query":"Type.Function.isArray","hash":""},"text":{},"parentId":811} diff --git a/docs/v1.0.0-beta01/data/Type.Function.isDate.json b/docs/v1.0.0-beta01/data/Type.Function.isDate.json new file mode 100644 index 000000000..7337f2c1e --- /dev/null +++ b/docs/v1.0.0-beta01/data/Type.Function.isDate.json @@ -0,0 +1 @@ +{"id":841,"name":"isDate","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/utils/src/type.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/type.ts","line":335,"character":13,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/type.ts#L335"}],"signatures":[{"id":842,"name":"isDate","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"isDate"}]},{"tag":"@description","content":[{"kind":"text","text":"检查值是否为Date对象。Checks if a value is a Date object"}]},{"tag":"@returns","content":[{"kind":"text","text":"如果值为Date对象则返回true,否则返回false。True if the value is a Date object, false otherwise"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Valid Date objects\nisDate(new Date()); // -> true\nisDate(new Date('2022-03-14')); // -> true\nisDate(new Date(1647312000000)); // -> true\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Invalid Date objects (still Date instances)\nisDate(new Date('invalid')); // -> true (but date.getTime() would be NaN)\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Not Date objects\nisDate('2022-03-14'); // -> false (string)\nisDate(1647312000000); // -> false (timestamp number)\nisDate({ year: 2022, month: 3, day: 14 }); // -> false (plain object)\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Edge cases\nisDate(null); // -> false\nisDate(undefined); // -> false\nisDate(Date.now()); // -> false (returns number, not Date)\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Checking for valid dates\nfunction isValidDate(value) {\n return isDate(value) && !isNaN(value.getTime());\n}\nisValidDate(new Date()); // -> true\nisValidDate(new Date('invalid')); // -> false\n```"}]}]},"parameters":[{"id":843,"name":"value","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"要检查的值。Value to check"}]},"type":{"type":"intrinsic","name":"unknown"},"text":{"comment":"

    要检查的值。Value to check

    \n"}}],"type":{"type":"predicate","name":"value","asserts":false,"targetType":{"type":"reference","name":"Date","qualifiedName":"Date","package":"typescript"}},"is":{"declaration":false},"location":{"query":"Type.Function.isDate","hash":"isDate"},"text":{"comment":"
    Function:

    isDate

    \n
    Description:

    检查值是否为Date对象。Checks if a value is a Date object

    \n
    Returns:

    如果值为Date对象则返回true,否则返回false。True if the value is a Date object, false otherwise

    \n
    Example:
    // Valid Date objects\nisDate(new Date()); // -> true\nisDate(new Date('2022-03-14')); // -> true\nisDate(new Date(1647312000000)); // -> true\n
    \n
    Example:
    // Invalid Date objects (still Date instances)\nisDate(new Date('invalid')); // -> true (but date.getTime() would be NaN)\n
    \n
    Example:
    // Not Date objects\nisDate('2022-03-14'); // -> false (string)\nisDate(1647312000000); // -> false (timestamp number)\nisDate({ year: 2022, month: 3, day: 14 }); // -> false (plain object)\n
    \n
    Example:
    // Edge cases\nisDate(null); // -> false\nisDate(undefined); // -> false\nisDate(Date.now()); // -> false (returns number, not Date)\n
    \n
    Example:
    // Checking for valid dates\nfunction isValidDate(value) {\n  return isDate(value) && !isNaN(value.getTime());\n}\nisValidDate(new Date()); // -> true\nisValidDate(new Date('invalid')); // -> false\n
    \n"},"sources":[{"fileName":"packages/utils/src/type.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/type.ts","line":335,"character":22,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/type.ts#L335"}],"parentId":841}],"is":{"declaration":true},"location":{"query":"Type.Function.isDate","hash":""},"text":{},"parentId":811} diff --git a/docs/v1.0.0-beta01/data/Type.Function.isFunction.json b/docs/v1.0.0-beta01/data/Type.Function.isFunction.json new file mode 100644 index 000000000..527b278a5 --- /dev/null +++ b/docs/v1.0.0-beta01/data/Type.Function.isFunction.json @@ -0,0 +1 @@ +{"id":827,"name":"isFunction","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/utils/src/type.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/type.ts","line":254,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/type.ts#L254"}],"signatures":[{"id":828,"name":"isFunction","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"isFunction"}]},{"tag":"@description","content":[{"kind":"text","text":"检查值是否为函数。Checks if a value is a function"}]},{"tag":"@returns","content":[{"kind":"text","text":"如果值为函数则返回true,否则返回false。True if the value is a function, false otherwise"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Regular functions\nisFunction(function() {}); // -> true\nisFunction(() => {}); // -> true\nisFunction(async function() {}); // -> true\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Built-in functions\nisFunction(console.log); // -> true\nisFunction(Math.max); // -> true\nisFunction(Array.isArray); // -> true\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Constructor functions\nisFunction(Date); // -> true\nisFunction(Array); // -> true\nisFunction(Object); // -> true\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Not functions\nisFunction([1, 2, 3]); // -> false\nisFunction({ a: 1 }); // -> false\nisFunction('function'); // -> false\nisFunction(null); // -> false\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Class constructors\nclass MyClass {}\nisFunction(MyClass); // -> true (classes are functions)\n```"}]}]},"parameters":[{"id":829,"name":"val","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"要检查的值。Value to check"}]},"type":{"type":"intrinsic","name":"unknown"},"text":{"comment":"

    要检查的值。Value to check

    \n"}}],"type":{"type":"predicate","name":"val","asserts":false,"targetType":{"type":"reference","name":"Function","qualifiedName":"Function","package":"typescript"}},"is":{"declaration":false},"location":{"query":"Type.Function.isFunction","hash":"isFunction"},"text":{"comment":"
    Function:

    isFunction

    \n
    Description:

    检查值是否为函数。Checks if a value is a function

    \n
    Returns:

    如果值为函数则返回true,否则返回false。True if the value is a function, false otherwise

    \n
    Example:
    // Regular functions\nisFunction(function() {}); // -> true\nisFunction(() => {}); // -> true\nisFunction(async function() {}); // -> true\n
    \n
    Example:
    // Built-in functions\nisFunction(console.log); // -> true\nisFunction(Math.max); // -> true\nisFunction(Array.isArray); // -> true\n
    \n
    Example:
    // Constructor functions\nisFunction(Date); // -> true\nisFunction(Array); // -> true\nisFunction(Object); // -> true\n
    \n
    Example:
    // Not functions\nisFunction([1, 2, 3]); // -> false\nisFunction({ a: 1 }); // -> false\nisFunction('function'); // -> false\nisFunction(null); // -> false\n
    \n
    Example:
    // Class constructors\nclass MyClass {}\nisFunction(MyClass); // -> true (classes are functions)\n
    \n"},"sources":[{"fileName":"packages/utils/src/type.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/type.ts","line":254,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/type.ts#L254"}],"parentId":827}],"is":{"declaration":true},"location":{"query":"Type.Function.isFunction","hash":""},"text":{},"parentId":811} diff --git a/docs/v1.0.0-beta01/data/Type.Function.isNumber.json b/docs/v1.0.0-beta01/data/Type.Function.isNumber.json new file mode 100644 index 000000000..6722d9913 --- /dev/null +++ b/docs/v1.0.0-beta01/data/Type.Function.isNumber.json @@ -0,0 +1 @@ +{"id":821,"name":"isNumber","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/utils/src/type.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/type.ts","line":180,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/type.ts#L180"}],"signatures":[{"id":822,"name":"isNumber","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"isNumber"}]},{"tag":"@description","content":[{"kind":"text","text":"检查值是否为有限数字(排除NaN和Infinity)。Checks if a value is a finite number (excludes NaN and Infinity)"}]},{"tag":"@returns","content":[{"kind":"text","text":"如果值为有限数字则返回true,否则返回false。True if the value is a finite number, false otherwise"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Valid numbers\nisNumber(1); // -> true\nisNumber(0); // -> true\nisNumber(-42); // -> true\nisNumber(3.14); // -> true\nisNumber(Number(1)); // -> true\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Invalid numbers\nisNumber(NaN); // -> false\nisNumber(Infinity); // -> false\nisNumber(-Infinity); // -> false\nisNumber(new Number(1)); // -> false (Number object)\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Non-numbers\nisNumber('123'); // -> false (string)\nisNumber(null); // -> false\nisNumber(undefined); // -> false\nisNumber(true); // -> false\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Edge cases\nisNumber(0 / 0); // -> false (NaN)\nisNumber(1 / 0); // -> false (Infinity)\nisNumber(-0); // -> true (negative zero is a valid number)\n```"}]}]},"parameters":[{"id":823,"name":"val","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"要检查的值。Value to check"}]},"type":{"type":"intrinsic","name":"unknown"},"text":{"comment":"

    要检查的值。Value to check

    \n"}}],"type":{"type":"predicate","name":"val","asserts":false,"targetType":{"type":"intrinsic","name":"number"}},"is":{"declaration":false},"location":{"query":"Type.Function.isNumber","hash":"isNumber"},"text":{"comment":"
    Function:

    isNumber

    \n
    Description:

    检查值是否为有限数字(排除NaN和Infinity)。Checks if a value is a finite number (excludes NaN and Infinity)

    \n
    Returns:

    如果值为有限数字则返回true,否则返回false。True if the value is a finite number, false otherwise

    \n
    Example:
    // Valid numbers\nisNumber(1); // -> true\nisNumber(0); // -> true\nisNumber(-42); // -> true\nisNumber(3.14); // -> true\nisNumber(Number(1)); // -> true\n
    \n
    Example:
    // Invalid numbers\nisNumber(NaN); // -> false\nisNumber(Infinity); // -> false\nisNumber(-Infinity); // -> false\nisNumber(new Number(1)); // -> false (Number object)\n
    \n
    Example:
    // Non-numbers\nisNumber('123'); // -> false (string)\nisNumber(null); // -> false\nisNumber(undefined); // -> false\nisNumber(true); // -> false\n
    \n
    Example:
    // Edge cases\nisNumber(0 / 0); // -> false (NaN)\nisNumber(1 / 0); // -> false (Infinity)\nisNumber(-0); // -> true (negative zero is a valid number)\n
    \n"},"sources":[{"fileName":"packages/utils/src/type.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/type.ts","line":180,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/type.ts#L180"}],"parentId":821}],"is":{"declaration":true},"location":{"query":"Type.Function.isNumber","hash":""},"text":{},"parentId":811} diff --git a/docs/v1.0.0-beta01/data/Type.Function.isObject.json b/docs/v1.0.0-beta01/data/Type.Function.isObject.json new file mode 100644 index 000000000..0809f22c0 --- /dev/null +++ b/docs/v1.0.0-beta01/data/Type.Function.isObject.json @@ -0,0 +1 @@ +{"id":824,"name":"isObject","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/utils/src/type.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/type.ts","line":214,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/type.ts#L214"}],"signatures":[{"id":825,"name":"isObject","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"isObject"}]},{"tag":"@description","content":[{"kind":"text","text":"检查值是否为普通对象(不是数组、函数、日期等)。Checks if a value is a plain object (not array, function, date, etc.)"}]},{"tag":"@returns","content":[{"kind":"text","text":"如果值为普通对象则返回true,否则返回false。True if the value is a plain object, false otherwise"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Plain objects\nisObject({ a: 1, b: '2' }); // -> true\nisObject({}); // -> true (empty object)\nisObject(Object.create(null)); // -> true\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Not plain objects\nisObject([1, 2, 3]); // -> false (array)\nisObject(null); // -> false\nisObject(new Date()); // -> false (Date object)\nisObject(() => {}); // -> false (function)\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Constructor objects\nisObject(new Object()); // -> true\nisObject(new String('test')); // -> false (String object)\nisObject(new Number(42)); // -> false (Number object)\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Built-in objects\nisObject(new Map()); // -> false\nisObject(new Set()); // -> false\nisObject(/regex/); // -> false\n```"}]}]},"parameters":[{"id":826,"name":"val","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"要检查的值。Value to check"}]},"type":{"type":"intrinsic","name":"unknown"},"text":{"comment":"

    要检查的值。Value to check

    \n"}}],"type":{"type":"predicate","name":"val","asserts":false,"targetType":{"type":"reference","typeArguments":[{"type":"intrinsic","name":"any"},{"type":"intrinsic","name":"any"}],"name":"Record","qualifiedName":"Record","package":"typescript"}},"is":{"declaration":false},"location":{"query":"Type.Function.isObject","hash":"isObject"},"text":{"comment":"
    Function:

    isObject

    \n
    Description:

    检查值是否为普通对象(不是数组、函数、日期等)。Checks if a value is a plain object (not array, function, date, etc.)

    \n
    Returns:

    如果值为普通对象则返回true,否则返回false。True if the value is a plain object, false otherwise

    \n
    Example:
    // Plain objects\nisObject({ a: 1, b: '2' }); // -> true\nisObject({}); // -> true (empty object)\nisObject(Object.create(null)); // -> true\n
    \n
    Example:
    // Not plain objects\nisObject([1, 2, 3]); // -> false (array)\nisObject(null); // -> false\nisObject(new Date()); // -> false (Date object)\nisObject(() => {}); // -> false (function)\n
    \n
    Example:
    // Constructor objects\nisObject(new Object()); // -> true\nisObject(new String('test')); // -> false (String object)\nisObject(new Number(42)); // -> false (Number object)\n
    \n
    Example:
    // Built-in objects\nisObject(new Map()); // -> false\nisObject(new Set()); // -> false\nisObject(/regex/); // -> false\n
    \n"},"sources":[{"fileName":"packages/utils/src/type.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/type.ts","line":214,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/type.ts#L214"}],"parentId":824}],"is":{"declaration":true},"location":{"query":"Type.Function.isObject","hash":""},"text":{},"parentId":811} diff --git a/docs/v1.0.0-beta01/data/Type.Function.isPrimitive.json b/docs/v1.0.0-beta01/data/Type.Function.isPrimitive.json new file mode 100644 index 000000000..036481420 --- /dev/null +++ b/docs/v1.0.0-beta01/data/Type.Function.isPrimitive.json @@ -0,0 +1 @@ +{"id":837,"name":"isPrimitive","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/utils/src/type.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/type.ts","line":295,"character":13,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/type.ts#L295"}],"signatures":[{"id":838,"name":"isPrimitive","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"isPrimitive"}]},{"tag":"@description","content":[{"kind":"text","text":"检查值是否为类Promise对象(具有'then'方法)。Checks if a value is a Promise-like object (has a 'then' method)"}]},{"tag":"@returns","content":[{"kind":"text","text":"如果值为类Promise对象则返回true,否则返回false。True if the value is Promise-like, false otherwise"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Real Promises\nisPrimitive(new Promise(resolve => resolve(1))); // -> true\nisPrimitive(Promise.resolve(42)); // -> true\nisPrimitive(Promise.reject('error')); // -> true\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Thenable objects\nisPrimitive({ then: () => {}, catch: () => {} }); // -> true\nisPrimitive({ then: function(resolve) { resolve(1); } }); // -> true\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Not Promise-like\nisPrimitive({}); // -> false\nisPrimitive({ then: 'not a function' }); // -> false\nisPrimitive(null); // -> false\nisPrimitive(undefined); // -> false\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Async functions return Promises\nasync function asyncFn() { return 42; }\nisPrimitive(asyncFn()); // -> true\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Custom thenable\nconst customThenable = {\n then(onResolve, onReject) {\n setTimeout(() => onResolve('done'), 1000);\n }\n};\nisPrimitive(customThenable); // -> true\n```"}]}]},"typeParameter":[{"id":839,"name":"T","kind":131072,"kindString":"Type parameter","flags":{},"default":{"type":"intrinsic","name":"any"}}],"parameters":[{"id":840,"name":"val","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"要检查的值。Value to check"}]},"type":{"type":"intrinsic","name":"unknown"},"text":{"comment":"

    要检查的值。Value to check

    \n"}}],"type":{"type":"predicate","name":"val","asserts":false,"targetType":{"type":"reference","typeArguments":[{"type":"reference","id":839,"name":"T"}],"name":"Promise","qualifiedName":"Promise","package":"typescript"}},"is":{"declaration":false},"location":{"query":"Type.Function.isPrimitive","hash":"isPrimitive"},"text":{"comment":"
    Function:

    isPrimitive

    \n
    Description:

    检查值是否为类Promise对象(具有'then'方法)。Checks if a value is a Promise-like object (has a 'then' method)

    \n
    Returns:

    如果值为类Promise对象则返回true,否则返回false。True if the value is Promise-like, false otherwise

    \n
    Example:
    // Real Promises\nisPrimitive(new Promise(resolve => resolve(1))); // -> true\nisPrimitive(Promise.resolve(42)); // -> true\nisPrimitive(Promise.reject('error')); // -> true\n
    \n
    Example:
    // Thenable objects\nisPrimitive({ then: () => {}, catch: () => {} }); // -> true\nisPrimitive({ then: function(resolve) { resolve(1); } }); // -> true\n
    \n
    Example:
    // Not Promise-like\nisPrimitive({}); // -> false\nisPrimitive({ then: 'not a function' }); // -> false\nisPrimitive(null); // -> false\nisPrimitive(undefined); // -> false\n
    \n
    Example:
    // Async functions return Promises\nasync function asyncFn() { return 42; }\nisPrimitive(asyncFn()); // -> true\n
    \n
    Example:
    // Custom thenable\nconst customThenable = {\n  then(onResolve, onReject) {\n    setTimeout(() => onResolve('done'), 1000);\n  }\n};\nisPrimitive(customThenable); // -> true\n
    \n"},"sources":[{"fileName":"packages/utils/src/type.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/type.ts","line":295,"character":27,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/type.ts#L295"}],"parentId":837}],"is":{"declaration":true},"location":{"query":"Type.Function.isPrimitive","hash":""},"text":{},"parentId":811} diff --git a/docs/v1.0.0-beta01/data/Type.Function.isString.json b/docs/v1.0.0-beta01/data/Type.Function.isString.json new file mode 100644 index 000000000..a79bbea56 --- /dev/null +++ b/docs/v1.0.0-beta01/data/Type.Function.isString.json @@ -0,0 +1 @@ +{"id":818,"name":"isString","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/utils/src/type.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/type.ts","line":143,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/type.ts#L143"}],"signatures":[{"id":819,"name":"isString","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"isString"}]},{"tag":"@description","content":[{"kind":"text","text":"检查值是否为字符串原始类型。Checks if a value is a string primitive"}]},{"tag":"@returns","content":[{"kind":"text","text":"如果值为字符串原始类型则返回true,否则返回false。True if the value is a string primitive, false otherwise"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Basic usage\nisString('abc'); // -> true\nisString([1, 2, 3]); // -> false\nisString(123); // -> false\n```"}]},{"tag":"@example","content":[{"kind":"text","text":"// Different string types\nisString(''); // -> true (empty string)\nisString('hello world'); // -> true\nisString("},{"kind":"code","text":"`template string`"},{"kind":"text","text":"); // -> true\nisString(String('converted')); // -> true"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// String objects vs primitives\nisString('primitive'); // -> true\nisString(new String('object')); // -> false (String object, not primitive)\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Other types\nisString(null); // -> false\nisString(undefined); // -> false\nisString(0); // -> false\nisString(false); // -> false\n```"}]}]},"parameters":[{"id":820,"name":"val","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"要检查的值。Value to check"}]},"type":{"type":"intrinsic","name":"unknown"},"text":{"comment":"

    要检查的值。Value to check

    \n"}}],"type":{"type":"predicate","name":"val","asserts":false,"targetType":{"type":"intrinsic","name":"string"}},"is":{"declaration":false},"location":{"query":"Type.Function.isString","hash":"isString"},"text":{"comment":"
    Function:

    isString

    \n
    Description:

    检查值是否为字符串原始类型。Checks if a value is a string primitive

    \n
    Returns:

    如果值为字符串原始类型则返回true,否则返回false。True if the value is a string primitive, false otherwise

    \n
    Example:
    // Basic usage\nisString('abc'); // -> true\nisString([1, 2, 3]); // -> false\nisString(123); // -> false\n
    \n
    Example:

    // Different string types\nisString(''); // -> true (empty string)\nisString('hello world'); // -> true\nisString(template string); // -> true\nisString(String('converted')); // -> true

    \n
    Example:
    // String objects vs primitives\nisString('primitive'); // -> true\nisString(new String('object')); // -> false (String object, not primitive)\n
    \n
    Example:
    // Other types\nisString(null); // -> false\nisString(undefined); // -> false\nisString(0); // -> false\nisString(false); // -> false\n
    \n"},"sources":[{"fileName":"packages/utils/src/type.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/type.ts","line":143,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/type.ts#L143"}],"parentId":818}],"is":{"declaration":true},"location":{"query":"Type.Function.isString","hash":""},"text":{},"parentId":811} diff --git a/docs/v1.0.0-beta01/data/Type.Function.isUndefined.json b/docs/v1.0.0-beta01/data/Type.Function.isUndefined.json new file mode 100644 index 000000000..8c81b7470 --- /dev/null +++ b/docs/v1.0.0-beta01/data/Type.Function.isUndefined.json @@ -0,0 +1 @@ +{"id":815,"name":"isUndefined","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/utils/src/type.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/type.ts","line":78,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/type.ts#L78"}],"signatures":[{"id":816,"name":"isUndefined","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"isUndefined"}]},{"tag":"@description","content":[{"kind":"text","text":"检查值是否为undefined。Checks if a value is undefined"}]},{"tag":"@returns","content":[{"kind":"text","text":"如果值为undefined则返回true,否则返回false。True if the value is undefined, false otherwise"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Basic usage\nlet test1 = [1, 2, 3];\nlet test2;\nisUndefined(test1); // -> false\nisUndefined(test2); // -> true\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Different undefined scenarios\nisUndefined(undefined); // -> true\nisUndefined(null); // -> false\nisUndefined(''); // -> false\nisUndefined(0); // -> false\nisUndefined(false); // -> false\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Object properties\nconst obj = { a: 1 };\nisUndefined(obj.a); // -> false\nisUndefined(obj.b); // -> true (property doesn't exist)\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Function parameters\nfunction test(param) {\n return isUndefined(param);\n}\ntest(); // -> true (no argument passed)\ntest(null); // -> false\n```"}]}]},"parameters":[{"id":817,"name":"val","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"要检查的值。Value to check"}]},"type":{"type":"intrinsic","name":"unknown"},"text":{"comment":"

    要检查的值。Value to check

    \n"}}],"type":{"type":"predicate","name":"val","asserts":false,"targetType":{"type":"intrinsic","name":"undefined"}},"is":{"declaration":false},"location":{"query":"Type.Function.isUndefined","hash":"isUndefined"},"text":{"comment":"
    Function:

    isUndefined

    \n
    Description:

    检查值是否为undefined。Checks if a value is undefined

    \n
    Returns:

    如果值为undefined则返回true,否则返回false。True if the value is undefined, false otherwise

    \n
    Example:
    // Basic usage\nlet test1 = [1, 2, 3];\nlet test2;\nisUndefined(test1); // -> false\nisUndefined(test2); // -> true\n
    \n
    Example:
    // Different undefined scenarios\nisUndefined(undefined); // -> true\nisUndefined(null); // -> false\nisUndefined(''); // -> false\nisUndefined(0); // -> false\nisUndefined(false); // -> false\n
    \n
    Example:
    // Object properties\nconst obj = { a: 1 };\nisUndefined(obj.a); // -> false\nisUndefined(obj.b); // -> true (property doesn't exist)\n
    \n
    Example:
    // Function parameters\nfunction test(param) {\n  return isUndefined(param);\n}\ntest(); // -> true (no argument passed)\ntest(null); // -> false\n
    \n"},"sources":[{"fileName":"packages/utils/src/type.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/type.ts","line":78,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/type.ts#L78"}],"parentId":815}],"is":{"declaration":true},"location":{"query":"Type.Function.isUndefined","hash":""},"text":{},"parentId":811} diff --git a/docs/v1.0.0-beta01/data/Type.Function.type.json b/docs/v1.0.0-beta01/data/Type.Function.type.json new file mode 100644 index 000000000..cd03b5f83 --- /dev/null +++ b/docs/v1.0.0-beta01/data/Type.Function.type.json @@ -0,0 +1 @@ +{"id":812,"name":"type","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/utils/src/type.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/type.ts","line":40,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/type.ts#L40"}],"signatures":[{"id":813,"name":"type","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"type"}]},{"tag":"@description","content":[{"kind":"text","text":"使用Object.prototype.toString获取值的精确类型。Gets the precise type of a value as a string using Object.prototype.toString"}]},{"tag":"@returns","content":[{"kind":"text","text":"值类型的字符串表示(例如,'Array','Object','String','Number')。String representation of the value's type (e.g., 'Array', 'Object', 'String', 'Number')"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Basic types\ntype([1, 2, 3]); // -> 'Array'\ntype({ a: 1, b: '2' }); // -> 'Object'\ntype('abc'); // -> 'String'\ntype(123); // -> 'Number'\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Special values\ntype(null); // -> 'Null'\ntype(undefined); // -> 'Undefined'\ntype(NaN); // -> 'Number'\ntype(Infinity); // -> 'Number'\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Functions and dates\ntype(() => {}); // -> 'Function'\ntype(new Date()); // -> 'Date'\ntype(/regex/); // -> 'RegExp'\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Built-in objects\ntype(new Map()); // -> 'Map'\ntype(new Set()); // -> 'Set'\ntype(new WeakMap()); // -> 'WeakMap'\ntype(Promise.resolve()); // -> 'Promise'\n```"}]}]},"parameters":[{"id":814,"name":"val","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"要获取类型的值。Value to get the type of"}]},"type":{"type":"intrinsic","name":"unknown"},"text":{"comment":"

    要获取类型的值。Value to get the type of

    \n"}}],"type":{"type":"intrinsic","name":"string"},"is":{"declaration":false},"location":{"query":"Type.Function.type","hash":"type"},"text":{"comment":"
    Function:

    type

    \n
    Description:

    使用Object.prototype.toString获取值的精确类型。Gets the precise type of a value as a string using Object.prototype.toString

    \n
    Returns:

    值类型的字符串表示(例如,'Array','Object','String','Number')。String representation of the value's type (e.g., 'Array', 'Object', 'String', 'Number')

    \n
    Example:
    // Basic types\ntype([1, 2, 3]); // -> 'Array'\ntype({ a: 1, b: '2' }); // -> 'Object'\ntype('abc'); // -> 'String'\ntype(123); // -> 'Number'\n
    \n
    Example:
    // Special values\ntype(null); // -> 'Null'\ntype(undefined); // -> 'Undefined'\ntype(NaN); // -> 'Number'\ntype(Infinity); // -> 'Number'\n
    \n
    Example:
    // Functions and dates\ntype(() => {}); // -> 'Function'\ntype(new Date()); // -> 'Date'\ntype(/regex/); // -> 'RegExp'\n
    \n
    Example:
    // Built-in objects\ntype(new Map()); // -> 'Map'\ntype(new Set()); // -> 'Set'\ntype(new WeakMap()); // -> 'WeakMap'\ntype(Promise.resolve()); // -> 'Promise'\n
    \n"},"sources":[{"fileName":"packages/utils/src/type.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/type.ts","line":40,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/type.ts#L40"}],"parentId":812}],"is":{"declaration":true},"location":{"query":"Type.Function.type","hash":""},"text":{},"parentId":811} diff --git a/docs/v1.0.0-beta01/data/Url.Function.getBaseUrl.json b/docs/v1.0.0-beta01/data/Url.Function.getBaseUrl.json new file mode 100644 index 000000000..95662948b --- /dev/null +++ b/docs/v1.0.0-beta01/data/Url.Function.getBaseUrl.json @@ -0,0 +1 @@ +{"id":1375,"name":"getBaseUrl","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/web-utils/src/url.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/url.ts","line":93,"character":13,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/url.ts#L93"}],"signatures":[{"id":1376,"name":"getBaseUrl","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"getBaseUrl"}]},{"tag":"@description","content":[{"kind":"text","text":"获取基础地址( url 中?之前的部分)"}]},{"tag":"@returns","content":[{"kind":"text","text":"url 修改后的URL"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\nconsole.log(getBaseUrl());\r\nconsole.log(getBaseUrl('https://example.com/page.html?query=string')); // https://example.com/page.html\r\nconsole.log(getBaseUrl('https://example.com/')); // https://example.com/\n```"}]}]},"parameters":[{"id":1377,"name":"url","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"原始URL"}]},"type":{"type":"intrinsic","name":"string"},"defaultValue":"...","text":{"comment":"

    原始URL

    \n"}}],"type":{"type":"intrinsic","name":"string"},"is":{"declaration":false},"location":{"query":"Url.Function.getBaseUrl","hash":"getBaseUrl"},"text":{"comment":"
    Function:

    getBaseUrl

    \n
    Description:

    获取基础地址( url 中?之前的部分)

    \n
    Returns:

    url 修改后的URL

    \n
    Example:
    console.log(getBaseUrl());\nconsole.log(getBaseUrl('https://example.com/page.html?query=string')); // https://example.com/page.html\nconsole.log(getBaseUrl('https://example.com/')); // https://example.com/\n
    \n"},"sources":[{"fileName":"packages/web-utils/src/url.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/url.ts","line":93,"character":26,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/url.ts#L93"}],"parentId":1375}],"is":{"declaration":true},"location":{"query":"Url.Function.getBaseUrl","hash":""},"text":{},"parentId":1358} diff --git a/docs/v1.0.0-beta01/data/Url.Function.getUrlDomain.json b/docs/v1.0.0-beta01/data/Url.Function.getUrlDomain.json new file mode 100644 index 000000000..5990a7f85 --- /dev/null +++ b/docs/v1.0.0-beta01/data/Url.Function.getUrlDomain.json @@ -0,0 +1 @@ +{"id":1378,"name":"getUrlDomain","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/web-utils/src/url.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/url.ts","line":104,"character":13,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/url.ts#L104"}],"signatures":[{"id":1379,"name":"getUrlDomain","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"getUrlDomain"}]},{"tag":"@description","content":[{"kind":"text","text":"获取 url 中的域名"}]},{"tag":"@returns","content":[{"kind":"text","text":"url 修改后的URL"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\nconsole.log(getUrlDomain('https://example.com/page.html?query=string')); // https://example.com\n```"}]}]},"parameters":[{"id":1380,"name":"url","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"原始URL"}]},"type":{"type":"intrinsic","name":"string"},"defaultValue":"...","text":{"comment":"

    原始URL

    \n"}}],"type":{"type":"intrinsic","name":"string"},"is":{"declaration":false},"location":{"query":"Url.Function.getUrlDomain","hash":"getUrlDomain"},"text":{"comment":"
    Function:

    getUrlDomain

    \n
    Description:

    获取 url 中的域名

    \n
    Returns:

    url 修改后的URL

    \n
    Example:
    console.log(getUrlDomain('https://example.com/page.html?query=string')); // https://example.com\n
    \n"},"sources":[{"fileName":"packages/web-utils/src/url.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/url.ts","line":104,"character":28,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/url.ts#L104"}],"parentId":1378}],"is":{"declaration":true},"location":{"query":"Url.Function.getUrlDomain","hash":""},"text":{},"parentId":1358} diff --git a/docs/v1.0.0-beta01/data/Url.Function.getUrlParam.json b/docs/v1.0.0-beta01/data/Url.Function.getUrlParam.json new file mode 100644 index 000000000..4d2384de4 --- /dev/null +++ b/docs/v1.0.0-beta01/data/Url.Function.getUrlParam.json @@ -0,0 +1 @@ +{"id":1362,"name":"getUrlParam","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/web-utils/src/url.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/url.ts","line":48,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/url.ts#L48"}],"signatures":[{"id":1363,"name":"getUrlParam","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"getUrlParam"}]},{"tag":"@description","content":[{"kind":"text","text":"获取页面地址中查询参数字段对应的信息。Gets information corresponding to a query parameter field in the page URL"}]},{"tag":"@returns","content":[{"kind":"text","text":"查询参数字段对应的信息。Information corresponding to the query parameter field"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\nconst name = getUrlParam('name');\n```"}]}]},"parameters":[{"id":1364,"name":"name","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"查询参数字段名称。The query parameter field name"}]},"type":{"type":"intrinsic","name":"string"},"text":{"comment":"

    查询参数字段名称。The query parameter field name

    \n"}},{"id":1365,"name":"decode","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"解码函数。The decode function"}]},"type":{"type":"reflection","declaration":{"id":1366,"name":"__type","kind":65536,"kindString":"Type literal","flags":{},"sources":[{"fileName":"packages/web-utils/src/url.ts","line":48,"character":51,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/url.ts#L48"}],"signatures":[{"id":1367,"name":"__type","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":1368,"name":"s","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"intrinsic","name":"string"}}],"type":{"type":"intrinsic","name":"string"}}]}},"text":{"comment":"

    解码函数。The decode function

    \n"}}],"type":{"type":"union","types":[{"type":"literal","value":null},{"type":"intrinsic","name":"string"}]},"is":{"declaration":false},"location":{"query":"Url.Function.getUrlParam","hash":"getUrlParam"},"text":{"comment":"
    Function:

    getUrlParam

    \n
    Description:

    获取页面地址中查询参数字段对应的信息。Gets information corresponding to a query parameter field in the page URL

    \n
    Returns:

    查询参数字段对应的信息。Information corresponding to the query parameter field

    \n
    Example:
    const name = getUrlParam('name');\n
    \n"},"sources":[{"fileName":"packages/web-utils/src/url.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/url.ts","line":48,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/url.ts#L48"}],"parentId":1362}],"is":{"declaration":true},"location":{"query":"Url.Function.getUrlParam","hash":""},"text":{},"parentId":1358} diff --git a/docs/v1.0.0-beta01/data/Url.Function.paramsJoinUrl.json b/docs/v1.0.0-beta01/data/Url.Function.paramsJoinUrl.json new file mode 100644 index 000000000..6c377a58e --- /dev/null +++ b/docs/v1.0.0-beta01/data/Url.Function.paramsJoinUrl.json @@ -0,0 +1 @@ +{"id":1369,"name":"paramsJoinUrl","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/web-utils/src/url.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/url.ts","line":71,"character":13,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/url.ts#L71"}],"signatures":[{"id":1370,"name":"paramsJoinUrl","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@func","content":[{"kind":"text","text":"paramsJoinUrl"}]},{"tag":"@description","content":[{"kind":"text","text":"将参数对象转为 url 字符串"}]},{"tag":"@returns","content":[{"kind":"text","text":"url 修改后的URL"}]},{"tag":"@example","content":[{"kind":"text","text":"const url = "},{"kind":"code","text":"`https://example.com/api?${paramsJoinUrl({ age: 25, city: 'New York' })}`"},{"kind":"text","text":";\r\nconsole.log(url); // \"https://example.com/api?age=25&city=New%20York\""}]}]},"parameters":[{"id":1371,"name":"params","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reflection","declaration":{"id":1372,"name":"__type","kind":65536,"kindString":"Type literal","flags":{},"sources":[{"fileName":"packages/web-utils/src/url.ts","line":71,"character":38,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/url.ts#L71"}],"indexSignature":{"id":1373,"name":"__index","kind":8192,"kindString":"Index signature","flags":{},"parameters":[{"id":1374,"name":"key","kind":32768,"flags":{},"type":{"type":"intrinsic","name":"string"}}],"type":{"type":"intrinsic","name":"string"}}}},"text":{}}],"type":{"type":"intrinsic","name":"string"},"is":{"declaration":false},"location":{"query":"Url.Function.paramsJoinUrl","hash":"paramsJoinUrl"},"text":{"comment":"
    Func:

    paramsJoinUrl

    \n
    Description:

    将参数对象转为 url 字符串

    \n
    Returns:

    url 修改后的URL

    \n
    Example:

    const url = https://example.com/api?${paramsJoinUrl({ age: 25, city: 'New York' })};\nconsole.log(url); // "https://example.com/api?age=25&city=New%20York"

    \n"},"sources":[{"fileName":"packages/web-utils/src/url.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/url.ts","line":71,"character":29,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/url.ts#L71"}],"parentId":1369}],"is":{"declaration":true},"location":{"query":"Url.Function.paramsJoinUrl","hash":""},"text":{},"parentId":1358} diff --git a/docs/v1.0.0-beta01/data/Url.Function.parseQueryString.json b/docs/v1.0.0-beta01/data/Url.Function.parseQueryString.json new file mode 100644 index 000000000..16d6e4d90 --- /dev/null +++ b/docs/v1.0.0-beta01/data/Url.Function.parseQueryString.json @@ -0,0 +1 @@ +{"id":1359,"name":"parseQueryString","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/web-utils/src/url.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/url.ts","line":18,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/url.ts#L18"}],"signatures":[{"id":1360,"name":"parseQueryString","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"parseQueryString"}]},{"tag":"@description","content":[{"kind":"text","text":"获取URL中的查询参数信息。Gets query parameter information from a URL"}]},{"tag":"@note","content":[{"kind":"text","text":"URLSearchParams更直观但在旧浏览器中兼容性有限,这里保持字符串解析实现"}]},{"tag":"@returns","content":[{"kind":"text","text":"查询参数信息对象。Query parameter information object"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\nconsole.log(parseQueryString('https://github.com/?a=1&b=sss')); // {a: '1', b: 'sss'}\nconsole.log(parseQueryString('https://github.com')); // {}\n```"}]}]},"parameters":[{"id":1361,"name":"url","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"页面地址。The page URL"}]},"type":{"type":"intrinsic","name":"string"},"defaultValue":"window.location.href","text":{"comment":"

    页面地址。The page URL

    \n"}}],"type":{"type":"reference","typeArguments":[{"type":"intrinsic","name":"string"},{"type":"intrinsic","name":"string"}],"name":"Record","qualifiedName":"Record","package":"typescript"},"is":{"declaration":false},"location":{"query":"Url.Function.parseQueryString","hash":"parseQueryString"},"text":{"comment":"
    Function:

    parseQueryString

    \n
    Description:

    获取URL中的查询参数信息。Gets query parameter information from a URL

    \n
    Note:

    URLSearchParams更直观但在旧浏览器中兼容性有限,这里保持字符串解析实现

    \n
    Returns:

    查询参数信息对象。Query parameter information object

    \n
    Example:
    console.log(parseQueryString('https://github.com/?a=1&b=sss')); // {a: '1', b: 'sss'}\nconsole.log(parseQueryString('https://github.com')); // {}\n
    \n"},"sources":[{"fileName":"packages/web-utils/src/url.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/url.ts","line":18,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/url.ts#L18"}],"parentId":1359}],"is":{"declaration":true},"location":{"query":"Url.Function.parseQueryString","hash":""},"text":{},"parentId":1358} diff --git a/docs/v1.0.0-beta01/data/Url.Function.uniqueSlash.json b/docs/v1.0.0-beta01/data/Url.Function.uniqueSlash.json new file mode 100644 index 000000000..f50d35dfc --- /dev/null +++ b/docs/v1.0.0-beta01/data/Url.Function.uniqueSlash.json @@ -0,0 +1 @@ +{"id":1381,"name":"uniqueSlash","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/web-utils/src/url.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/url.ts","line":118,"character":13,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/url.ts#L118"}],"signatures":[{"id":1382,"name":"uniqueSlash","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"uniqueSlash"}]},{"tag":"@description","content":[{"kind":"text","text":"将路径中重复的正斜杆替换成单个斜杆隔开的字符串"}]},{"tag":"@returns","content":[{"kind":"text","text":"将/去重后的结果"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\nuniqueSlash('http://www.example.com//foo//bar'); // 'http://www.example.com/foo/bar'\n```"}]}]},"parameters":[{"id":1383,"name":"path","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"要处理的路径"}]},"type":{"type":"intrinsic","name":"string"},"text":{"comment":"

    要处理的路径

    \n"}}],"type":{"type":"intrinsic","name":"string"},"is":{"declaration":false},"location":{"query":"Url.Function.uniqueSlash","hash":"uniqueSlash"},"text":{"comment":"
    Function:

    uniqueSlash

    \n
    Description:

    将路径中重复的正斜杆替换成单个斜杆隔开的字符串

    \n
    Returns:

    将/去重后的结果

    \n
    Example:
    uniqueSlash('http://www.example.com//foo//bar'); // 'http://www.example.com/foo/bar'\n
    \n"},"sources":[{"fileName":"packages/web-utils/src/url.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/url.ts","line":118,"character":27,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/url.ts#L118"}],"parentId":1381}],"is":{"declaration":true},"location":{"query":"Url.Function.uniqueSlash","hash":""},"text":{},"parentId":1358} diff --git a/docs/v1.0.0-beta01/data/Validators.Function.isBase64.json b/docs/v1.0.0-beta01/data/Validators.Function.isBase64.json new file mode 100644 index 000000000..cccf911d2 --- /dev/null +++ b/docs/v1.0.0-beta01/data/Validators.Function.isBase64.json @@ -0,0 +1 @@ +{"id":878,"name":"isBase64","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/utils/src/validators.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/validators.ts","line":205,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/validators.ts#L205"}],"signatures":[{"id":879,"name":"isBase64","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"isBase64"}]},{"tag":"@description","content":[{"kind":"text","text":"检查字符串是否为有效的Base64编码。Checks if string is valid Base64 encoding"}]},{"tag":"@returns","content":[{"kind":"text","text":"如果是有效Base64则返回true。True if valid Base64"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\nisBase64('SGVsbG8gV29ybGQ='); // -> true\nisBase64('not base64'); // -> false\n```"}]}]},"parameters":[{"id":880,"name":"str","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"要验证的字符串。String to validate"}]},"type":{"type":"intrinsic","name":"string"},"text":{"comment":"

    要验证的字符串。String to validate

    \n"}}],"type":{"type":"intrinsic","name":"boolean"},"is":{"declaration":false},"location":{"query":"Validators.Function.isBase64","hash":"isBase64"},"text":{"comment":"
    Function:

    isBase64

    \n
    Description:

    检查字符串是否为有效的Base64编码。Checks if string is valid Base64 encoding

    \n
    Returns:

    如果是有效Base64则返回true。True if valid Base64

    \n
    Example:
    isBase64('SGVsbG8gV29ybGQ='); // -> true\nisBase64('not base64'); // -> false\n
    \n"},"sources":[{"fileName":"packages/utils/src/validators.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/validators.ts","line":205,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/validators.ts#L205"}],"parentId":878}],"is":{"declaration":true},"location":{"query":"Validators.Function.isBase64","hash":""},"text":{},"parentId":844} diff --git a/docs/v1.0.0-beta01/data/Validators.Function.isCreditCard.json b/docs/v1.0.0-beta01/data/Validators.Function.isCreditCard.json new file mode 100644 index 000000000..1b47d6811 --- /dev/null +++ b/docs/v1.0.0-beta01/data/Validators.Function.isCreditCard.json @@ -0,0 +1 @@ +{"id":854,"name":"isCreditCard","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/utils/src/validators.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/validators.ts","line":70,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/validators.ts#L70"}],"signatures":[{"id":855,"name":"isCreditCard","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"isCreditCard"}]},{"tag":"@description","content":[{"kind":"text","text":"使用Luhn算法检查信用卡号是否有效。Checks if credit card number is valid using Luhn algorithm"}]},{"tag":"@returns","content":[{"kind":"text","text":"如果是有效信用卡号则返回true。True if valid credit card number"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\nisCreditCard('4532015112830366'); // -> true (Visa test number)\nisCreditCard('1234567890123456'); // -> false\n```"}]}]},"parameters":[{"id":856,"name":"str","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"信用卡号字符串。Credit card number string"}]},"type":{"type":"intrinsic","name":"string"},"text":{"comment":"

    信用卡号字符串。Credit card number string

    \n"}}],"type":{"type":"intrinsic","name":"boolean"},"is":{"declaration":false},"location":{"query":"Validators.Function.isCreditCard","hash":"isCreditCard"},"text":{"comment":"
    Function:

    isCreditCard

    \n
    Description:

    使用Luhn算法检查信用卡号是否有效。Checks if credit card number is valid using Luhn algorithm

    \n
    Returns:

    如果是有效信用卡号则返回true。True if valid credit card number

    \n
    Example:
    isCreditCard('4532015112830366'); // -> true (Visa test number)\nisCreditCard('1234567890123456'); // -> false\n
    \n"},"sources":[{"fileName":"packages/utils/src/validators.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/validators.ts","line":70,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/validators.ts#L70"}],"parentId":854}],"is":{"declaration":true},"location":{"query":"Validators.Function.isCreditCard","hash":""},"text":{},"parentId":844} diff --git a/docs/v1.0.0-beta01/data/Validators.Function.isHexColor.json b/docs/v1.0.0-beta01/data/Validators.Function.isHexColor.json new file mode 100644 index 000000000..a0ddb9110 --- /dev/null +++ b/docs/v1.0.0-beta01/data/Validators.Function.isHexColor.json @@ -0,0 +1 @@ +{"id":857,"name":"isHexColor","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/utils/src/validators.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/validators.ts","line":99,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/validators.ts#L99"}],"signatures":[{"id":858,"name":"isHexColor","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"isHexColor"}]},{"tag":"@description","content":[{"kind":"text","text":"检查字符串是否为有效的十六进制颜色代码。Checks if string is a valid hex color code"}]},{"tag":"@returns","content":[{"kind":"text","text":"如果是有效十六进制颜色则返回true。True if valid hex color"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\nisHexColor('#fff'); // -> true\nisHexColor('#ffffff'); // -> true\nisHexColor('#ABCDEF'); // -> true\nisHexColor('red'); // -> false\n```"}]}]},"parameters":[{"id":859,"name":"str","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"要验证的字符串。String to validate"}]},"type":{"type":"intrinsic","name":"string"},"text":{"comment":"

    要验证的字符串。String to validate

    \n"}}],"type":{"type":"intrinsic","name":"boolean"},"is":{"declaration":false},"location":{"query":"Validators.Function.isHexColor","hash":"isHexColor"},"text":{"comment":"
    Function:

    isHexColor

    \n
    Description:

    检查字符串是否为有效的十六进制颜色代码。Checks if string is a valid hex color code

    \n
    Returns:

    如果是有效十六进制颜色则返回true。True if valid hex color

    \n
    Example:
    isHexColor('#fff'); // -> true\nisHexColor('#ffffff'); // -> true\nisHexColor('#ABCDEF'); // -> true\nisHexColor('red'); // -> false\n
    \n"},"sources":[{"fileName":"packages/utils/src/validators.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/validators.ts","line":99,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/validators.ts#L99"}],"parentId":857}],"is":{"declaration":true},"location":{"query":"Validators.Function.isHexColor","hash":""},"text":{},"parentId":844} diff --git a/docs/v1.0.0-beta01/data/Validators.Function.isIPv4.json b/docs/v1.0.0-beta01/data/Validators.Function.isIPv4.json new file mode 100644 index 000000000..6cd0eb506 --- /dev/null +++ b/docs/v1.0.0-beta01/data/Validators.Function.isIPv4.json @@ -0,0 +1 @@ +{"id":860,"name":"isIPv4","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/utils/src/validators.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/validators.ts","line":113,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/validators.ts#L113"}],"signatures":[{"id":861,"name":"isIPv4","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"isIPv4"}]},{"tag":"@description","content":[{"kind":"text","text":"检查字符串是否为有效的IPv4地址。Checks if string is a valid IPv4 address"}]},{"tag":"@returns","content":[{"kind":"text","text":"如果是有效IPv4地址则返回true。True if valid IPv4 address"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\nisIPv4('192.168.1.1'); // -> true\nisIPv4('255.255.255.255'); // -> true\nisIPv4('256.1.1.1'); // -> false\n```"}]}]},"parameters":[{"id":862,"name":"str","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"要验证的字符串。String to validate"}]},"type":{"type":"intrinsic","name":"string"},"text":{"comment":"

    要验证的字符串。String to validate

    \n"}}],"type":{"type":"intrinsic","name":"boolean"},"is":{"declaration":false},"location":{"query":"Validators.Function.isIPv4","hash":"isIPv4"},"text":{"comment":"
    Function:

    isIPv4

    \n
    Description:

    检查字符串是否为有效的IPv4地址。Checks if string is a valid IPv4 address

    \n
    Returns:

    如果是有效IPv4地址则返回true。True if valid IPv4 address

    \n
    Example:
    isIPv4('192.168.1.1'); // -> true\nisIPv4('255.255.255.255'); // -> true\nisIPv4('256.1.1.1'); // -> false\n
    \n"},"sources":[{"fileName":"packages/utils/src/validators.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/validators.ts","line":113,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/validators.ts#L113"}],"parentId":860}],"is":{"declaration":true},"location":{"query":"Validators.Function.isIPv4","hash":""},"text":{},"parentId":844} diff --git a/docs/v1.0.0-beta01/data/Validators.Function.isJWT.json b/docs/v1.0.0-beta01/data/Validators.Function.isJWT.json new file mode 100644 index 000000000..032d9a6b2 --- /dev/null +++ b/docs/v1.0.0-beta01/data/Validators.Function.isJWT.json @@ -0,0 +1 @@ +{"id":866,"name":"isJWT","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/utils/src/validators.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/validators.ts","line":146,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/validators.ts#L146"}],"signatures":[{"id":867,"name":"isJWT","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"isJWT"}]},{"tag":"@description","content":[{"kind":"text","text":"检查字符串是否为有效的JWT令牌格式。Checks if string is a valid JWT token format"}]},{"tag":"@returns","content":[{"kind":"text","text":"如果是有效JWT格式则返回true。True if valid JWT format"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\nisJWT('eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIn0.dozjgNryP4J3jVmNHl0w5N_XgL0n3I9PlFUP0THsR8U');\n// -> true\n```"}]}]},"parameters":[{"id":868,"name":"str","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"要验证的字符串。String to validate"}]},"type":{"type":"intrinsic","name":"string"},"text":{"comment":"

    要验证的字符串。String to validate

    \n"}}],"type":{"type":"intrinsic","name":"boolean"},"is":{"declaration":false},"location":{"query":"Validators.Function.isJWT","hash":"isJWT"},"text":{"comment":"
    Function:

    isJWT

    \n
    Description:

    检查字符串是否为有效的JWT令牌格式。Checks if string is a valid JWT token format

    \n
    Returns:

    如果是有效JWT格式则返回true。True if valid JWT format

    \n
    Example:
    isJWT('eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIn0.dozjgNryP4J3jVmNHl0w5N_XgL0n3I9PlFUP0THsR8U');\n// -> true\n
    \n"},"sources":[{"fileName":"packages/utils/src/validators.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/validators.ts","line":146,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/validators.ts#L146"}],"parentId":866}],"is":{"declaration":true},"location":{"query":"Validators.Function.isJWT","hash":""},"text":{},"parentId":844} diff --git a/docs/v1.0.0-beta01/data/Validators.Function.isMACAddress.json b/docs/v1.0.0-beta01/data/Validators.Function.isMACAddress.json new file mode 100644 index 000000000..67802de61 --- /dev/null +++ b/docs/v1.0.0-beta01/data/Validators.Function.isMACAddress.json @@ -0,0 +1 @@ +{"id":875,"name":"isMACAddress","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/utils/src/validators.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/validators.ts","line":192,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/validators.ts#L192"}],"signatures":[{"id":876,"name":"isMACAddress","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"isMACAddress"}]},{"tag":"@description","content":[{"kind":"text","text":"检查字符串是否为有效的MAC地址。Checks if string is a valid MAC address"}]},{"tag":"@returns","content":[{"kind":"text","text":"如果是有效MAC地址则返回true。True if valid MAC address"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\nisMACAddress('00:1B:44:11:3A:B7'); // -> true\nisMACAddress('00-1B-44-11-3A-B7'); // -> true\nisMACAddress('invalid'); // -> false\n```"}]}]},"parameters":[{"id":877,"name":"str","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"要验证的字符串。String to validate"}]},"type":{"type":"intrinsic","name":"string"},"text":{"comment":"

    要验证的字符串。String to validate

    \n"}}],"type":{"type":"intrinsic","name":"boolean"},"is":{"declaration":false},"location":{"query":"Validators.Function.isMACAddress","hash":"isMACAddress"},"text":{"comment":"
    Function:

    isMACAddress

    \n
    Description:

    检查字符串是否为有效的MAC地址。Checks if string is a valid MAC address

    \n
    Returns:

    如果是有效MAC地址则返回true。True if valid MAC address

    \n
    Example:
    isMACAddress('00:1B:44:11:3A:B7'); // -> true\nisMACAddress('00-1B-44-11-3A-B7'); // -> true\nisMACAddress('invalid'); // -> false\n
    \n"},"sources":[{"fileName":"packages/utils/src/validators.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/validators.ts","line":192,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/validators.ts#L192"}],"parentId":875}],"is":{"declaration":true},"location":{"query":"Validators.Function.isMACAddress","hash":""},"text":{},"parentId":844} diff --git a/docs/v1.0.0-beta01/data/Validators.Function.isPort.json b/docs/v1.0.0-beta01/data/Validators.Function.isPort.json new file mode 100644 index 000000000..acc51b5fd --- /dev/null +++ b/docs/v1.0.0-beta01/data/Validators.Function.isPort.json @@ -0,0 +1 @@ +{"id":863,"name":"isPort","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/utils/src/validators.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/validators.ts","line":133,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/validators.ts#L133"}],"signatures":[{"id":864,"name":"isPort","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"isPort"}]},{"tag":"@description","content":[{"kind":"text","text":"检查数字是否为有效的端口号(1-65535)。Checks if number is a valid port (1-65535)"}]},{"tag":"@returns","content":[{"kind":"text","text":"如果是有效端口则返回true。True if valid port"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\nisPort(80); // -> true\nisPort(3000); // -> true\nisPort(0); // -> false\nisPort(70000); // -> false\n```"}]}]},"parameters":[{"id":865,"name":"port","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"要验证的端口号。Port number to validate"}]},"type":{"type":"intrinsic","name":"number"},"text":{"comment":"

    要验证的端口号。Port number to validate

    \n"}}],"type":{"type":"intrinsic","name":"boolean"},"is":{"declaration":false},"location":{"query":"Validators.Function.isPort","hash":"isPort"},"text":{"comment":"
    Function:

    isPort

    \n
    Description:

    检查数字是否为有效的端口号(1-65535)。Checks if number is a valid port (1-65535)

    \n
    Returns:

    如果是有效端口则返回true。True if valid port

    \n
    Example:
    isPort(80); // -> true\nisPort(3000); // -> true\nisPort(0); // -> false\nisPort(70000); // -> false\n
    \n"},"sources":[{"fileName":"packages/utils/src/validators.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/validators.ts","line":133,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/validators.ts#L133"}],"parentId":863}],"is":{"declaration":true},"location":{"query":"Validators.Function.isPort","hash":""},"text":{},"parentId":844} diff --git a/docs/v1.0.0-beta01/data/Validators.Function.isSemVer.json b/docs/v1.0.0-beta01/data/Validators.Function.isSemVer.json new file mode 100644 index 000000000..482ca17ef --- /dev/null +++ b/docs/v1.0.0-beta01/data/Validators.Function.isSemVer.json @@ -0,0 +1 @@ +{"id":869,"name":"isSemVer","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/utils/src/validators.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/validators.ts","line":162,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/validators.ts#L162"}],"signatures":[{"id":870,"name":"isSemVer","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"isSemVer"}]},{"tag":"@description","content":[{"kind":"text","text":"检查字符串是否为有效的语义化版本号。Checks if string is a valid semantic version"}]},{"tag":"@returns","content":[{"kind":"text","text":"如果是有效语义化版本则返回true。True if valid semantic version"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\nisSemVer('1.0.0'); // -> true\nisSemVer('2.1.3-beta'); // -> true\nisSemVer('1.0'); // -> false\n```"}]}]},"parameters":[{"id":871,"name":"str","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"要验证的字符串。String to validate"}]},"type":{"type":"intrinsic","name":"string"},"text":{"comment":"

    要验证的字符串。String to validate

    \n"}}],"type":{"type":"intrinsic","name":"boolean"},"is":{"declaration":false},"location":{"query":"Validators.Function.isSemVer","hash":"isSemVer"},"text":{"comment":"
    Function:

    isSemVer

    \n
    Description:

    检查字符串是否为有效的语义化版本号。Checks if string is a valid semantic version

    \n
    Returns:

    如果是有效语义化版本则返回true。True if valid semantic version

    \n
    Example:
    isSemVer('1.0.0'); // -> true\nisSemVer('2.1.3-beta'); // -> true\nisSemVer('1.0'); // -> false\n
    \n"},"sources":[{"fileName":"packages/utils/src/validators.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/validators.ts","line":162,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/validators.ts#L162"}],"parentId":869}],"is":{"declaration":true},"location":{"query":"Validators.Function.isSemVer","hash":""},"text":{},"parentId":844} diff --git a/docs/v1.0.0-beta01/data/Validators.Function.isVali.json b/docs/v1.0.0-beta01/data/Validators.Function.isVali.json new file mode 100644 index 000000000..bfa1bb4e5 --- /dev/null +++ b/docs/v1.0.0-beta01/data/Validators.Function.isVali.json @@ -0,0 +1 @@ +{"id":845,"name":"isValidJSON","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/utils/src/validators.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/validators.ts","line":19,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/validators.ts#L19"}],"signatures":[{"id":846,"name":"isValidJSON","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"isValidJSON"}]},{"tag":"@description","content":[{"kind":"text","text":"检查字符串是否为有效的JSON格式。Checks if a string is valid JSON format"}]},{"tag":"@returns","content":[{"kind":"text","text":"如果是有效JSON则返回true。True if valid JSON"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\nisValidJSON('{\"name\": \"John\"}'); // -> true\nisValidJSON('invalid'); // -> false\nisValidJSON('[1, 2, 3]'); // -> true\n```"}]}]},"parameters":[{"id":847,"name":"str","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"要验证的字符串。String to validate"}]},"type":{"type":"intrinsic","name":"string"},"text":{"comment":"

    要验证的字符串。String to validate

    \n"}}],"type":{"type":"intrinsic","name":"boolean"},"is":{"declaration":false},"location":{"query":"Validators.Function.isValidJSON","hash":"isValidJSON"},"text":{"comment":"
    Function:

    isValidJSON

    \n
    Description:

    检查字符串是否为有效的JSON格式。Checks if a string is valid JSON format

    \n
    Returns:

    如果是有效JSON则返回true。True if valid JSON

    \n
    Example:
    isValidJSON('{\"name\": \"John\"}'); // -> true\nisValidJSON('invalid'); // -> false\nisValidJSON('[1, 2, 3]'); // -> true\n
    \n"},"sources":[{"fileName":"packages/utils/src/validators.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/validators.ts","line":19,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/validators.ts#L19"}],"parentId":845}],"is":{"declaration":true},"location":{"query":"Validators.Function.isValidJSON","hash":""},"text":{},"parentId":844} diff --git a/docs/v1.0.0-beta01/data/Validators.Function.isValidEmail.json b/docs/v1.0.0-beta01/data/Validators.Function.isValidEmail.json new file mode 100644 index 000000000..58d82c830 --- /dev/null +++ b/docs/v1.0.0-beta01/data/Validators.Function.isValidEmail.json @@ -0,0 +1 @@ +{"id":848,"name":"isValidEmail","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/utils/src/validators.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/validators.ts","line":38,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/validators.ts#L38"}],"signatures":[{"id":849,"name":"isValidEmail","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"isValidEmail"}]},{"tag":"@description","content":[{"kind":"text","text":"检查字符串是否为有效的电子邮件地址(更严格的验证)。Checks if a string is a valid email address (stricter validation)"}]},{"tag":"@returns","content":[{"kind":"text","text":"如果是有效电子邮件则返回true。True if valid email"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\nisValidEmail('user@example.com'); // -> true\nisValidEmail('invalid.email'); // -> false\nisValidEmail('test@domain.co.uk'); // -> true\n```"}]}]},"parameters":[{"id":850,"name":"str","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"要验证的字符串。String to validate"}]},"type":{"type":"intrinsic","name":"string"},"text":{"comment":"

    要验证的字符串。String to validate

    \n"}}],"type":{"type":"intrinsic","name":"boolean"},"is":{"declaration":false},"location":{"query":"Validators.Function.isValidEmail","hash":"isValidEmail"},"text":{"comment":"
    Function:

    isValidEmail

    \n
    Description:

    检查字符串是否为有效的电子邮件地址(更严格的验证)。Checks if a string is a valid email address (stricter validation)

    \n
    Returns:

    如果是有效电子邮件则返回true。True if valid email

    \n
    Example:
    isValidEmail('user@example.com'); // -> true\nisValidEmail('invalid.email'); // -> false\nisValidEmail('test@domain.co.uk'); // -> true\n
    \n"},"sources":[{"fileName":"packages/utils/src/validators.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/validators.ts","line":38,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/validators.ts#L38"}],"parentId":848}],"is":{"declaration":true},"location":{"query":"Validators.Function.isValidEmail","hash":""},"text":{},"parentId":844} diff --git a/docs/v1.0.0-beta01/data/Validators.Function.isValidPhoneNumber.json b/docs/v1.0.0-beta01/data/Validators.Function.isValidPhoneNumber.json new file mode 100644 index 000000000..ecc2c9a22 --- /dev/null +++ b/docs/v1.0.0-beta01/data/Validators.Function.isValidPhoneNumber.json @@ -0,0 +1 @@ +{"id":872,"name":"isValidPhoneNumber","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/utils/src/validators.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/validators.ts","line":178,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/validators.ts#L178"}],"signatures":[{"id":873,"name":"isValidPhoneNumber","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"isValidPhoneNumber"}]},{"tag":"@description","content":[{"kind":"text","text":"检查字符串是否为有效的电话号码(支持多种格式)。Checks if string is a valid phone number (supports multiple formats)"}]},{"tag":"@returns","content":[{"kind":"text","text":"如果是有效电话号码则返回true。True if valid phone number"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\nisValidPhoneNumber('+1234567890'); // -> true\nisValidPhoneNumber('(123) 456-7890'); // -> true\nisValidPhoneNumber('123-456-7890'); // -> true\n```"}]}]},"parameters":[{"id":874,"name":"str","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"要验证的字符串。String to validate"}]},"type":{"type":"intrinsic","name":"string"},"text":{"comment":"

    要验证的字符串。String to validate

    \n"}}],"type":{"type":"intrinsic","name":"boolean"},"is":{"declaration":false},"location":{"query":"Validators.Function.isValidPhoneNumber","hash":"isValidPhoneNumber"},"text":{"comment":"
    Function:

    isValidPhoneNumber

    \n
    Description:

    检查字符串是否为有效的电话号码(支持多种格式)。Checks if string is a valid phone number (supports multiple formats)

    \n
    Returns:

    如果是有效电话号码则返回true。True if valid phone number

    \n
    Example:
    isValidPhoneNumber('+1234567890'); // -> true\nisValidPhoneNumber('(123) 456-7890'); // -> true\nisValidPhoneNumber('123-456-7890'); // -> true\n
    \n"},"sources":[{"fileName":"packages/utils/src/validators.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/validators.ts","line":178,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/validators.ts#L178"}],"parentId":872}],"is":{"declaration":true},"location":{"query":"Validators.Function.isValidPhoneNumber","hash":""},"text":{},"parentId":844} diff --git a/docs/v1.0.0-beta01/data/Validators.Function.isValidURL.json b/docs/v1.0.0-beta01/data/Validators.Function.isValidURL.json new file mode 100644 index 000000000..c55be99de --- /dev/null +++ b/docs/v1.0.0-beta01/data/Validators.Function.isValidURL.json @@ -0,0 +1 @@ +{"id":851,"name":"isValidURL","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/utils/src/validators.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/validators.ts","line":52,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/validators.ts#L52"}],"signatures":[{"id":852,"name":"isValidURL","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"isValidURL"}]},{"tag":"@description","content":[{"kind":"text","text":"检查字符串是否为有效的URL。Checks if a string is a valid URL"}]},{"tag":"@returns","content":[{"kind":"text","text":"如果是有效URL则返回true。True if valid URL"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\nisValidURL('https://example.com'); // -> true\nisValidURL('http://localhost:3000'); // -> true\nisValidURL('not a url'); // -> false\n```"}]}]},"parameters":[{"id":853,"name":"str","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"要验证的字符串。String to validate"}]},"type":{"type":"intrinsic","name":"string"},"text":{"comment":"

    要验证的字符串。String to validate

    \n"}}],"type":{"type":"intrinsic","name":"boolean"},"is":{"declaration":false},"location":{"query":"Validators.Function.isValidURL","hash":"isValidURL"},"text":{"comment":"
    Function:

    isValidURL

    \n
    Description:

    检查字符串是否为有效的URL。Checks if a string is a valid URL

    \n
    Returns:

    如果是有效URL则返回true。True if valid URL

    \n
    Example:
    isValidURL('https://example.com'); // -> true\nisValidURL('http://localhost:3000'); // -> true\nisValidURL('not a url'); // -> false\n
    \n"},"sources":[{"fileName":"packages/utils/src/validators.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/validators.ts","line":52,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/validators.ts#L52"}],"parentId":851}],"is":{"declaration":true},"location":{"query":"Validators.Function.isValidURL","hash":""},"text":{},"parentId":844} diff --git a/docs/v1.0.0-beta01/data/canvas-utils/src.Function.NOOP.json b/docs/v1.0.0-beta01/data/canvas-utils/src.Function.NOOP.json new file mode 100644 index 000000000..605445289 --- /dev/null +++ b/docs/v1.0.0-beta01/data/canvas-utils/src.Function.NOOP.json @@ -0,0 +1 @@ +{"id":2068,"name":"NOOP","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/canvas-utils/src/utils/base.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/canvas-utils/src/utils/base.ts","line":39,"character":13,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/canvas-utils/src/utils/base.ts#L39"}],"signatures":[{"id":2069,"name":"NOOP","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"NOOP"}]},{"tag":"@description","content":[{"kind":"text","text":"“空”函数。A no-operation function that returns an empty string. Commonly used as a default callback or placeholder function to avoid null/undefined function calls."}]},{"tag":"@returns","content":[{"kind":"text","text":"Always returns an empty string"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Using as default callback\r\nfunction processData(data, callback = NOOP) {\r\n // Process data...\r\n callback(); // Safe to call even if no callback provided\r\n}\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Using in animation options\r\nconst animationOptions = {\r\n duration: 1000,\r\n onProcess: NOOP, // Default no-op if no process handler needed\r\n onFinish: () => console.log('Done')\r\n};\n```"}]},{"tag":"@since","content":[{"kind":"text","text":"1.0.0"}]}]},"type":{"type":"intrinsic","name":"string"},"is":{"declaration":false},"location":{"query":"canvas-utils/src.Function.NOOP","hash":"NOOP"},"text":{"comment":"
    Function:

    NOOP

    \n
    Description:

    “空”函数。A no-operation function that returns an empty string. Commonly used as a default callback or placeholder function to avoid null/undefined function calls.

    \n
    Returns:

    Always returns an empty string

    \n
    Example:
    // Using as default callback\nfunction processData(data, callback = NOOP) {\n  // Process data...\n  callback(); // Safe to call even if no callback provided\n}\n
    \n
    Example:
    // Using in animation options\nconst animationOptions = {\n  duration: 1000,\n  onProcess: NOOP, // Default no-op if no process handler needed\n  onFinish: () => console.log('Done')\n};\n
    \n
    Since:

    1.0.0

    \n"},"sources":[{"fileName":"packages/canvas-utils/src/utils/base.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/canvas-utils/src/utils/base.ts","line":39,"character":20,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/canvas-utils/src/utils/base.ts#L39"}],"parentId":2068}],"is":{"declaration":true},"location":{"query":"canvas-utils/src.Function.NOOP","hash":""},"text":{},"parentId":1451} diff --git a/docs/v1.0.0-beta01/data/canvas-utils/src.Function.animate.json b/docs/v1.0.0-beta01/data/canvas-utils/src.Function.animate.json new file mode 100644 index 000000000..c3fb81914 --- /dev/null +++ b/docs/v1.0.0-beta01/data/canvas-utils/src.Function.animate.json @@ -0,0 +1 @@ +{"id":2168,"name":"animate","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/canvas-utils/src/utils/animate.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/canvas-utils/src/utils/animate.ts","line":166,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/canvas-utils/src/utils/animate.ts#L166"}],"signatures":[{"id":2169,"name":"animate","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"animation"}]},{"tag":"@description","content":[{"kind":"text","text":"Creates and runs a smooth animation with customizable duration, progress callbacks, and completion handlers. Uses requestAnimationFrame for optimal performance and includes built-in easing for natural motion."}]},{"tag":"@returns","content":[{"kind":"text","text":"This function does not return a value"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Basic fade-in animation\r\nconst element = document.getElementById('myElement');\r\n\r\nanimate({\r\n duration: 1000,\r\n onProcess: (progress) => {\r\n element.style.opacity = progress;\r\n },\r\n onAnimationFinish: () => {\r\n console.log('Fade-in complete!');\r\n }\r\n});\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Canvas object movement animation\r\nconst canvas = document.getElementById('myCanvas');\r\nconst ctx = canvas.getContext('2d');\r\nlet objectX = 0;\r\nconst targetX = 200;\r\n\r\nanimate({\r\n duration: 2000,\r\n onProcess: (progress) => {\r\n // Clear and redraw\r\n ctx.clearRect(0, 0, canvas.width, canvas.height);\r\n\r\n // Calculate current position\r\n objectX = targetX * progress;\r\n\r\n // Draw object at new position\r\n ctx.fillStyle = '#0066cc';\r\n ctx.fillRect(objectX, 50, 20, 20);\r\n },\r\n onAnimationFinish: () => {\r\n console.log('Object reached target position');\r\n }\r\n});\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Chart data animation\r\nconst chartData = [10, 25, 40, 30, 50];\r\nlet animatedData = new Array(chartData.length).fill(0);\r\n\r\nanimate({\r\n duration: 1500,\r\n onProcess: (progress) => {\r\n // Animate each data point\r\n animatedData = chartData.map(value => value * progress);\r\n\r\n // Redraw chart with animated values\r\n drawChart(animatedData);\r\n },\r\n onAnimationFinish: () => {\r\n console.log('Chart animation complete');\r\n }\r\n});\n```"}]},{"tag":"@since","content":[{"kind":"text","text":"1.0.0"}]},{"tag":"@see","content":[{"kind":"inline-tag","tag":"@link","text":"timingFunction"},{"kind":"text","text":" - The easing function used for smooth animation"}]}]},"parameters":[{"id":2170,"name":"opts","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"参数。Animation configuration options"}]},"type":{"type":"reference","name":"AnimationOptions"},"text":{"comment":"

    参数。Animation configuration options

    \n"}}],"type":{"type":"intrinsic","name":"void"},"is":{"declaration":false},"location":{"query":"canvas-utils/src.Function.animate","hash":"animate"},"text":{"comment":"
    Function:

    animation

    \n
    Description:

    Creates and runs a smooth animation with customizable duration, progress callbacks, and completion handlers. Uses requestAnimationFrame for optimal performance and includes built-in easing for natural motion.

    \n
    Returns:

    This function does not return a value

    \n
    Example:
    // Basic fade-in animation\nconst element = document.getElementById('myElement');\n\nanimate({\n  duration: 1000,\n  onProcess: (progress) => {\n    element.style.opacity = progress;\n  },\n  onAnimationFinish: () => {\n    console.log('Fade-in complete!');\n  }\n});\n
    \n
    Example:
    // Canvas object movement animation\nconst canvas = document.getElementById('myCanvas');\nconst ctx = canvas.getContext('2d');\nlet objectX = 0;\nconst targetX = 200;\n\nanimate({\n  duration: 2000,\n  onProcess: (progress) => {\n    // Clear and redraw\n    ctx.clearRect(0, 0, canvas.width, canvas.height);\n\n    // Calculate current position\n    objectX = targetX * progress;\n\n    // Draw object at new position\n    ctx.fillStyle = '#0066cc';\n    ctx.fillRect(objectX, 50, 20, 20);\n  },\n  onAnimationFinish: () => {\n    console.log('Object reached target position');\n  }\n});\n
    \n
    Example:
    // Chart data animation\nconst chartData = [10, 25, 40, 30, 50];\nlet animatedData = new Array(chartData.length).fill(0);\n\nanimate({\n  duration: 1500,\n  onProcess: (progress) => {\n    // Animate each data point\n    animatedData = chartData.map(value => value * progress);\n\n    // Redraw chart with animated values\n    drawChart(animatedData);\n  },\n  onAnimationFinish: () => {\n    console.log('Chart animation complete');\n  }\n});\n
    \n
    Since:

    1.0.0

    \n
    See:

    timingFunction - The easing function used for smooth animation

    \n"},"sources":[{"fileName":"packages/canvas-utils/src/utils/animate.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/canvas-utils/src/utils/animate.ts","line":166,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/canvas-utils/src/utils/animate.ts#L166"}],"parentId":2168}],"is":{"declaration":true},"location":{"query":"canvas-utils/src.Function.animate","hash":""},"text":{},"parentId":1451} diff --git a/docs/v1.0.0-beta01/data/canvas-utils/src.Function.clearArc.json b/docs/v1.0.0-beta01/data/canvas-utils/src.Function.clearArc.json new file mode 100644 index 000000000..b5a2e10e5 --- /dev/null +++ b/docs/v1.0.0-beta01/data/canvas-utils/src.Function.clearArc.json @@ -0,0 +1 @@ +{"id":2134,"name":"clearArc","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/canvas-utils/src/canvas/drawer.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/canvas-utils/src/canvas/drawer.ts","line":269,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/canvas-utils/src/canvas/drawer.ts#L269"}],"signatures":[{"id":2135,"name":"clearArc","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"clearArc"}]},{"tag":"@description","content":[{"kind":"text","text":"实现圆形清除。Clears a circular area on the canvas by progressively clearing rectangular sections that approximate a circle. This creates a circular \"eraser\" effect by removing all drawn content within the specified circular area."}]},{"tag":"@returns","content":[{"kind":"text","text":"This function does not return a value"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Clear a circular area to create a \"hole\" effect\r\nconst canvas = document.getElementById('myCanvas');\r\nconst ctx = canvas.getContext('2d');\r\n\r\n// First draw something\r\nctx.fillStyle = '#ff6600';\r\nctx.fillRect(0, 0, 200, 200);\r\n\r\n// Then clear a circular area\r\nclearArc(ctx, { x: 100, y: 100 }, 50);\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Creating multiple circular cutouts\r\nctx.fillStyle = '#0066cc';\r\nctx.fillRect(0, 0, 300, 200);\r\n\r\nconst holes = [\r\n { x: 75, y: 100, radius: 30 },\r\n { x: 150, y: 100, radius: 25 },\r\n { x: 225, y: 100, radius: 35 }\r\n];\r\n\r\nholes.forEach(hole => {\r\n clearArc(ctx, { x: hole.x, y: hole.y }, hole.radius);\r\n});\n```"}]},{"tag":"@since","content":[{"kind":"text","text":"1.0.0"}]}]},"parameters":[{"id":2136,"name":"ctx","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"The 2D rendering context of the canvas element"}]},"type":{"type":"reference","name":"CanvasRenderingContext2D","qualifiedName":"CanvasRenderingContext2D","package":"typescript"},"text":{"comment":"

    The 2D rendering context of the canvas element

    \n"}},{"id":2137,"name":"point","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"The center point of the circular area to clear with x and y coordinates"}]},"type":{"type":"reference","id":2171,"name":"PointPosition"},"text":{"comment":"

    The center point of the circular area to clear with x and y coordinates

    \n"}},{"id":2138,"name":"width","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"The radius of the circular area to clear in pixels"}]},"type":{"type":"intrinsic","name":"number"},"text":{"comment":"

    The radius of the circular area to clear in pixels

    \n"}}],"type":{"type":"intrinsic","name":"void"},"is":{"declaration":false},"location":{"query":"canvas-utils/src.Function.clearArc","hash":"clearArc"},"text":{"comment":"
    Function:

    clearArc

    \n
    Description:

    实现圆形清除。Clears a circular area on the canvas by progressively clearing rectangular sections that approximate a circle. This creates a circular "eraser" effect by removing all drawn content within the specified circular area.

    \n
    Returns:

    This function does not return a value

    \n
    Example:
    // Clear a circular area to create a \"hole\" effect\nconst canvas = document.getElementById('myCanvas');\nconst ctx = canvas.getContext('2d');\n\n// First draw something\nctx.fillStyle = '#ff6600';\nctx.fillRect(0, 0, 200, 200);\n\n// Then clear a circular area\nclearArc(ctx, { x: 100, y: 100 }, 50);\n
    \n
    Example:
    // Creating multiple circular cutouts\nctx.fillStyle = '#0066cc';\nctx.fillRect(0, 0, 300, 200);\n\nconst holes = [\n  { x: 75, y: 100, radius: 30 },\n  { x: 150, y: 100, radius: 25 },\n  { x: 225, y: 100, radius: 35 }\n];\n\nholes.forEach(hole => {\n  clearArc(ctx, { x: hole.x, y: hole.y }, hole.radius);\n});\n
    \n
    Since:

    1.0.0

    \n"},"sources":[{"fileName":"packages/canvas-utils/src/canvas/drawer.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/canvas-utils/src/canvas/drawer.ts","line":269,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/canvas-utils/src/canvas/drawer.ts#L269"}],"parentId":2134}],"is":{"declaration":true},"location":{"query":"canvas-utils/src.Function.clearArc","hash":""},"text":{},"parentId":1451} diff --git a/docs/v1.0.0-beta01/data/canvas-utils/src.Function.cloneArray.json b/docs/v1.0.0-beta01/data/canvas-utils/src.Function.cloneArray.json new file mode 100644 index 000000000..28d17d489 --- /dev/null +++ b/docs/v1.0.0-beta01/data/canvas-utils/src.Function.cloneArray.json @@ -0,0 +1 @@ +{"id":2070,"name":"cloneArray","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/canvas-utils/src/utils/base.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/canvas-utils/src/utils/base.ts","line":194,"character":13,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/canvas-utils/src/utils/base.ts#L194"}],"signatures":[{"id":2071,"name":"cloneArray","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"cloneArray"}]},{"tag":"@description","content":[{"kind":"text","text":"简单的数组深拷贝(没考虑特殊类型和循环依赖)。Copies all elements from a source array to a target array, replacing the target array's contents. The target array is modified in place and returned."}]},{"tag":"@returns","content":[{"kind":"text","text":"The modified target array containing all elements from the source array"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Basic array copying\r\nconst sourceData = [1, 2, 3, 4, 5];\r\nconst targetArray = [99]; // Will be overwritten\r\n\r\nconst result = cloneArray(sourceData, targetArray);\r\nconsole.log(result); // [1, 2, 3, 4, 5]\r\nconsole.log(targetArray === result); // true (same reference)\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Copying canvas drawing commands\r\nconst defaultCommands = ['beginPath', 'moveTo', 'lineTo', 'stroke'];\r\nconst currentCommands = [];\r\n\r\ncloneArray(defaultCommands, currentCommands);\r\n// currentCommands now contains all default commands\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Updating animation keyframes\r\nconst newKeyframes = [\r\n { time: 0, value: 0 },\r\n { time: 0.5, value: 50 },\r\n { time: 1, value: 100 }\r\n];\r\n\r\nlet animationFrames = [{ time: 0, value: 10 }];\r\ncloneArray(newKeyframes, animationFrames);\r\n// animationFrames now contains the new keyframe data\n```"}]},{"tag":"@since","content":[{"kind":"text","text":"1.0.0"}]}]},"typeParameter":[{"id":2072,"name":"T","kind":131072,"kindString":"Type parameter","flags":{}}],"parameters":[{"id":2073,"name":"fromArr","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"源数组。The source array to copy elements from"}]},"type":{"type":"array","elementType":{"type":"reference","id":2072,"name":"T"}},"text":{"comment":"

    源数组。The source array to copy elements from

    \n"}},{"id":2074,"name":"toArr","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"拷贝覆盖的数组。The target array to copy elements to (modified in place)"}]},"type":{"type":"array","elementType":{"type":"reference","id":2072,"name":"T"}},"text":{"comment":"

    拷贝覆盖的数组。The target array to copy elements to (modified in place)

    \n"}}],"type":{"type":"array","elementType":{"type":"reference","id":2072,"name":"T"}},"is":{"declaration":false},"location":{"query":"canvas-utils/src.Function.cloneArray","hash":"cloneArray"},"text":{"comment":"
    Function:

    cloneArray

    \n
    Description:

    简单的数组深拷贝(没考虑特殊类型和循环依赖)。Copies all elements from a source array to a target array, replacing the target array's contents. The target array is modified in place and returned.

    \n
    Returns:

    The modified target array containing all elements from the source array

    \n
    Example:
    // Basic array copying\nconst sourceData = [1, 2, 3, 4, 5];\nconst targetArray = [99]; // Will be overwritten\n\nconst result = cloneArray(sourceData, targetArray);\nconsole.log(result); // [1, 2, 3, 4, 5]\nconsole.log(targetArray === result); // true (same reference)\n
    \n
    Example:
    // Copying canvas drawing commands\nconst defaultCommands = ['beginPath', 'moveTo', 'lineTo', 'stroke'];\nconst currentCommands = [];\n\ncloneArray(defaultCommands, currentCommands);\n// currentCommands now contains all default commands\n
    \n
    Example:
    // Updating animation keyframes\nconst newKeyframes = [\n  { time: 0, value: 0 },\n  { time: 0.5, value: 50 },\n  { time: 1, value: 100 }\n];\n\nlet animationFrames = [{ time: 0, value: 10 }];\ncloneArray(newKeyframes, animationFrames);\n// animationFrames now contains the new keyframe data\n
    \n
    Since:

    1.0.0

    \n"},"sources":[{"fileName":"packages/canvas-utils/src/utils/base.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/canvas-utils/src/utils/base.ts","line":194,"character":26,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/canvas-utils/src/utils/base.ts#L194"}],"parentId":2070}],"is":{"declaration":true},"location":{"query":"canvas-utils/src.Function.cloneArray","hash":""},"text":{},"parentId":1451} diff --git a/docs/v1.0.0-beta01/data/canvas-utils/src.Function.cloneObjDeep.json b/docs/v1.0.0-beta01/data/canvas-utils/src.Function.cloneObjDeep.json new file mode 100644 index 000000000..ab34a0e46 --- /dev/null +++ b/docs/v1.0.0-beta01/data/canvas-utils/src.Function.cloneObjDeep.json @@ -0,0 +1 @@ +{"id":2059,"name":"cloneObjDeep","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/canvas-utils/src/utils/base.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/canvas-utils/src/utils/base.ts","line":139,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/canvas-utils/src/utils/base.ts#L139"}],"signatures":[{"id":2060,"name":"cloneObjDeep","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"cloneObjDeep"}]},{"tag":"@description","content":[{"kind":"text","text":"简单的深拷贝(没考虑特殊类型和循环依赖)。Performs a deep merge of two objects, copying properties from the source object to the target object. Existing properties in the target object take precedence over source properties. Nested objects are recursively merged."}]},{"tag":"@returns","content":[{"kind":"text","text":"The modified target object with merged properties"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Basic object merging\r\nconst defaults = {\r\n width: 400,\r\n height: 300,\r\n style: {\r\n color: '#000000',\r\n lineWidth: 1\r\n }\r\n};\r\n\r\nconst userOptions = {\r\n width: 800,\r\n style: {\r\n color: '#ff0000'\r\n }\r\n};\r\n\r\nconst config = cloneObjDeep(defaults, userOptions);\r\n// Result: {\r\n// width: 800, // User value takes precedence\r\n// height: 300, // Default value used\r\n// style: {\r\n// color: '#ff0000', // User value takes precedence\r\n// lineWidth: 1 // Default value used\r\n// }\r\n// }\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Canvas configuration merging\r\nconst defaultCanvasConfig = {\r\n dimensions: { width: 500, height: 400 },\r\n rendering: { antialias: true, alpha: false },\r\n animation: { duration: 1000, easing: 'ease-in-out' }\r\n};\r\n\r\nconst customConfig = {\r\n dimensions: { width: 800 },\r\n animation: { duration: 2000 }\r\n};\r\n\r\nconst finalConfig = cloneObjDeep(defaultCanvasConfig, customConfig);\r\n// Preserves all default values while applying custom overrides\n```"}]},{"tag":"@since","content":[{"kind":"text","text":"1.0.0"}]}]},"parameters":[{"id":2061,"name":"fromObj","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"源对象。The source object to copy properties from"}]},"type":{"type":"reference","id":2179,"name":"SimpleObj"},"text":{"comment":"

    源对象。The source object to copy properties from

    \n"}},{"id":2062,"name":"toObj","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"拷贝覆盖的对象。The target object to copy properties to (modified in place)"}]},"type":{"type":"reference","id":2179,"name":"SimpleObj"},"text":{"comment":"

    拷贝覆盖的对象。The target object to copy properties to (modified in place)

    \n"}}],"type":{"type":"reference","typeArguments":[{"type":"intrinsic","name":"any"},{"type":"intrinsic","name":"any"}],"name":"Record","qualifiedName":"Record","package":"typescript"},"is":{"declaration":false},"location":{"query":"canvas-utils/src.Function.cloneObjDeep","hash":"cloneObjDeep"},"text":{"comment":"
    Function:

    cloneObjDeep

    \n
    Description:

    简单的深拷贝(没考虑特殊类型和循环依赖)。Performs a deep merge of two objects, copying properties from the source object to the target object. Existing properties in the target object take precedence over source properties. Nested objects are recursively merged.

    \n
    Returns:

    The modified target object with merged properties

    \n
    Example:
    // Basic object merging\nconst defaults = {\n  width: 400,\n  height: 300,\n  style: {\n    color: '#000000',\n    lineWidth: 1\n  }\n};\n\nconst userOptions = {\n  width: 800,\n  style: {\n    color: '#ff0000'\n  }\n};\n\nconst config = cloneObjDeep(defaults, userOptions);\n// Result: {\n//   width: 800,           // User value takes precedence\n//   height: 300,          // Default value used\n//   style: {\n//     color: '#ff0000',   // User value takes precedence\n//     lineWidth: 1        // Default value used\n//   }\n// }\n
    \n
    Example:
    // Canvas configuration merging\nconst defaultCanvasConfig = {\n  dimensions: { width: 500, height: 400 },\n  rendering: { antialias: true, alpha: false },\n  animation: { duration: 1000, easing: 'ease-in-out' }\n};\n\nconst customConfig = {\n  dimensions: { width: 800 },\n  animation: { duration: 2000 }\n};\n\nconst finalConfig = cloneObjDeep(defaultCanvasConfig, customConfig);\n// Preserves all default values while applying custom overrides\n
    \n
    Since:

    1.0.0

    \n"},"sources":[{"fileName":"packages/canvas-utils/src/utils/base.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/canvas-utils/src/utils/base.ts","line":139,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/canvas-utils/src/utils/base.ts#L139"}],"parentId":2059}],"is":{"declaration":true},"location":{"query":"canvas-utils/src.Function.cloneObjDeep","hash":""},"text":{},"parentId":1451} diff --git a/docs/v1.0.0-beta01/data/canvas-utils/src.Function.createCanvasElem.json b/docs/v1.0.0-beta01/data/canvas-utils/src.Function.createCanvasElem.json new file mode 100644 index 000000000..a0991e851 --- /dev/null +++ b/docs/v1.0.0-beta01/data/canvas-utils/src.Function.createCanvasElem.json @@ -0,0 +1 @@ +{"id":2143,"name":"createCanvasElem","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/canvas-utils/src/utils/doms.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/canvas-utils/src/utils/doms.ts","line":90,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/canvas-utils/src/utils/doms.ts#L90"}],"signatures":[{"id":2144,"name":"createCanvasElem","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"createCanvasElem"}]},{"tag":"@description","content":[{"kind":"text","text":"创建新的HTML画布元素并将其附加到指定的父元素。Creates a new HTML canvas element and appends it to the specified parent element. Automatically sizes the canvas based on the parent element's dimensions or provided options."}]},{"tag":"@returns","content":[{"kind":"text","text":"创建并配置的画布元素。The created and configured canvas element"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Basic canvas creation\r\nconst container = document.getElementById('chart-container');\r\nconst canvas = createCanvasElem(container, {\r\n id: 'myChart'\r\n});\r\n// Creates canvas with id=\"myChartCanvas\" sized to fit container\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Custom dimensions\r\nconst canvas = createCanvasElem(document.body, {\r\n id: 'customChart',\r\n width: 800,\r\n height: 600\r\n});\r\n// Creates 800x600 canvas regardless of parent size\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Responsive chart setup\r\nfunction createResponsiveChart(containerId, chartId) {\r\n const container = document.getElementById(containerId);\r\n\r\n // Canvas will automatically size to container\r\n const canvas = createCanvasElem(container, {\r\n id: chartId\r\n });\r\n\r\n const ctx = canvas.getContext('2d');\r\n\r\n // Set up responsive behavior\r\n window.addEventListener('resize', () => {\r\n const newWidth = container.clientWidth;\r\n const newHeight = container.clientHeight;\r\n\r\n canvas.width = newWidth;\r\n canvas.height = newHeight;\r\n\r\n // Redraw chart with new dimensions\r\n redrawChart(ctx, newWidth, newHeight);\r\n });\r\n\r\n return { canvas, ctx };\r\n}\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Multiple charts in a dashboard\r\nconst chartConfigs = [\r\n { containerId: 'chart1', id: 'sales', width: 400, height: 300 },\r\n { containerId: 'chart2', id: 'users', width: 400, height: 300 },\r\n { containerId: 'chart3', id: 'revenue' } // Auto-sized\r\n];\r\n\r\nconst charts = chartConfigs.map(config => {\r\n const container = document.getElementById(config.containerId);\r\n return createCanvasElem(container, {\r\n id: config.id,\r\n width: config.width,\r\n height: config.height\r\n });\r\n});\n```"}]},{"tag":"@since","content":[{"kind":"text","text":"1.0.0"}]},{"tag":"@see","content":[{"kind":"inline-tag","tag":"@link","text":"DEFAULT_CANVAS_SIZE"},{"kind":"text","text":" - Default canvas dimensions when parent sizing fails"}]}]},"parameters":[{"id":2145,"name":"elem","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"要附加画布的父DOM元素。The parent DOM element to append the canvas to"}]},"type":{"type":"reference","name":"HTMLElement","qualifiedName":"HTMLElement","package":"typescript"},"text":{"comment":"

    要附加画布的父DOM元素。The parent DOM element to append the canvas to

    \n"}},{"id":2146,"name":"options","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"画布的配置选项。Configuration options for the canvas"}]},"originalName":"__namedParameters","type":{"type":"reflection","declaration":{"id":2147,"name":"__type","kind":65536,"kindString":"Type literal","flags":{},"children":[{"id":2150,"name":"height","kind":1024,"kindString":"Property","flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"画布高度(像素)(默认为父元素高度或回退值)。Canvas height in pixels (defaults to parent element height or fallback)"}]},"sources":[{"fileName":"packages/canvas-utils/src/utils/doms.ts","line":99,"character":4,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/canvas-utils/src/utils/doms.ts#L99"}],"type":{"type":"intrinsic","name":"number"}},{"id":2148,"name":"id","kind":1024,"kindString":"Property","flags":{},"comment":{"summary":[{"kind":"text","text":"画布的唯一标识符(将添加'Canvas'后缀)。Unique identifier for the canvas (will have 'Canvas' suffix added)"}]},"sources":[{"fileName":"packages/canvas-utils/src/utils/doms.ts","line":97,"character":4,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/canvas-utils/src/utils/doms.ts#L97"}],"type":{"type":"intrinsic","name":"string"}},{"id":2149,"name":"width","kind":1024,"kindString":"Property","flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"画布宽度(像素)(默认为父元素宽度或回退值)。Canvas width in pixels (defaults to parent element width or fallback)"}]},"sources":[{"fileName":"packages/canvas-utils/src/utils/doms.ts","line":98,"character":4,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/canvas-utils/src/utils/doms.ts#L98"}],"type":{"type":"intrinsic","name":"number"}}],"groups":[{"title":"Properties","children":[2150,2148,2149]}],"sources":[{"fileName":"packages/canvas-utils/src/utils/doms.ts","line":96,"character":5,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/canvas-utils/src/utils/doms.ts#L96"}]}},"text":{"comment":"

    画布的配置选项。Configuration options for the canvas

    \n"}}],"type":{"type":"reference","name":"HTMLCanvasElement","qualifiedName":"HTMLCanvasElement","package":"typescript"},"is":{"declaration":false},"location":{"query":"canvas-utils/src.Function.createCanvasElem","hash":"createCanvasElem"},"text":{"comment":"
    Function:

    createCanvasElem

    \n
    Description:

    创建新的HTML画布元素并将其附加到指定的父元素。Creates a new HTML canvas element and appends it to the specified parent element. Automatically sizes the canvas based on the parent element's dimensions or provided options.

    \n
    Returns:

    创建并配置的画布元素。The created and configured canvas element

    \n
    Example:
    // Basic canvas creation\nconst container = document.getElementById('chart-container');\nconst canvas = createCanvasElem(container, {\n  id: 'myChart'\n});\n// Creates canvas with id=\"myChartCanvas\" sized to fit container\n
    \n
    Example:
    // Custom dimensions\nconst canvas = createCanvasElem(document.body, {\n  id: 'customChart',\n  width: 800,\n  height: 600\n});\n// Creates 800x600 canvas regardless of parent size\n
    \n
    Example:
    // Responsive chart setup\nfunction createResponsiveChart(containerId, chartId) {\n  const container = document.getElementById(containerId);\n\n  // Canvas will automatically size to container\n  const canvas = createCanvasElem(container, {\n    id: chartId\n  });\n\n  const ctx = canvas.getContext('2d');\n\n  // Set up responsive behavior\n  window.addEventListener('resize', () => {\n    const newWidth = container.clientWidth;\n    const newHeight = container.clientHeight;\n\n    canvas.width = newWidth;\n    canvas.height = newHeight;\n\n    // Redraw chart with new dimensions\n    redrawChart(ctx, newWidth, newHeight);\n  });\n\n  return { canvas, ctx };\n}\n
    \n
    Example:
    // Multiple charts in a dashboard\nconst chartConfigs = [\n  { containerId: 'chart1', id: 'sales', width: 400, height: 300 },\n  { containerId: 'chart2', id: 'users', width: 400, height: 300 },\n  { containerId: 'chart3', id: 'revenue' } // Auto-sized\n];\n\nconst charts = chartConfigs.map(config => {\n  const container = document.getElementById(config.containerId);\n  return createCanvasElem(container, {\n    id: config.id,\n    width: config.width,\n    height: config.height\n  });\n});\n
    \n
    Since:

    1.0.0

    \n
    See:

    DEFAULT_CANVAS_SIZE - Default canvas dimensions when parent sizing fails

    \n"},"sources":[{"fileName":"packages/canvas-utils/src/utils/doms.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/canvas-utils/src/utils/doms.ts","line":90,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/canvas-utils/src/utils/doms.ts#L90"}],"parentId":2143}],"is":{"declaration":true},"location":{"query":"canvas-utils/src.Function.createCanvasElem","hash":""},"text":{},"parentId":1451} diff --git a/docs/v1.0.0-beta01/data/canvas-utils/src.Function.drawDashLine.json b/docs/v1.0.0-beta01/data/canvas-utils/src.Function.drawDashLine.json new file mode 100644 index 000000000..2548edd13 --- /dev/null +++ b/docs/v1.0.0-beta01/data/canvas-utils/src.Function.drawDashLine.json @@ -0,0 +1 @@ +{"id":2114,"name":"drawDashLine","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/canvas-utils/src/canvas/drawer.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/canvas-utils/src/canvas/drawer.ts","line":112,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/canvas-utils/src/canvas/drawer.ts#L112"}],"signatures":[{"id":2115,"name":"drawDashLine","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"drawDashLine"}]},{"tag":"@description","content":[{"kind":"text","text":"画虚线,可控制虚线宽度。Draws a dashed line between two points with customizable dash segment length. The function creates alternating line segments and gaps to simulate a dashed line effect."}]},{"tag":"@returns","content":[{"kind":"text","text":"This function does not return a value"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Basic dashed line with default dash length\r\nconst canvas = document.getElementById('myCanvas');\r\nconst ctx = canvas.getContext('2d');\r\nctx.strokeStyle = '#333333';\r\ndrawDashLine(ctx, { x: 0, y: 50 }, { x: 200, y: 50 });\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Custom dash length for different visual effects\r\nctx.strokeStyle = '#ff6600';\r\ndrawDashLine(ctx, { x: 10, y: 10 }, { x: 150, y: 100 }, 10); // Longer dashes\r\n\r\nctx.strokeStyle = '#0066ff';\r\ndrawDashLine(ctx, { x: 10, y: 120 }, { x: 150, y: 200 }, 2); // Shorter dashes\n```"}]},{"tag":"@since","content":[{"kind":"text","text":"1.0.0"}]},{"tag":"@see","content":[{"kind":"inline-tag","tag":"@link","text":"drawLine","target":2109},{"kind":"text","text":" - For solid line drawing"}]}]},"parameters":[{"id":2116,"name":"ctx","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"The 2D rendering context of the canvas element"}]},"type":{"type":"reference","name":"CanvasRenderingContext2D","qualifiedName":"CanvasRenderingContext2D","package":"typescript"},"text":{"comment":"

    The 2D rendering context of the canvas element

    \n"}},{"id":2117,"name":"point1","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"起点。The starting point coordinates with x and y properties"}]},"originalName":"__namedParameters","type":{"type":"reference","id":2171,"name":"PointPosition"},"text":{"comment":"

    起点。The starting point coordinates with x and y properties

    \n"}},{"id":2118,"name":"point2","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"终点。The ending point coordinates with x and y properties"}]},"originalName":"__namedParameters","type":{"type":"reference","id":2171,"name":"PointPosition"},"text":{"comment":"

    终点。The ending point coordinates with x and y properties

    \n"}},{"id":2119,"name":"dashLen","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"虚线宽度。The length of each dash segment in pixels"}]},"type":{"type":"intrinsic","name":"number"},"defaultValue":"5","text":{"comment":"

    虚线宽度。The length of each dash segment in pixels

    \n"}}],"type":{"type":"intrinsic","name":"void"},"is":{"declaration":false},"location":{"query":"canvas-utils/src.Function.drawDashLine","hash":"drawDashLine"},"text":{"comment":"
    Function:

    drawDashLine

    \n
    Description:

    画虚线,可控制虚线宽度。Draws a dashed line between two points with customizable dash segment length. The function creates alternating line segments and gaps to simulate a dashed line effect.

    \n
    Returns:

    This function does not return a value

    \n
    Example:
    // Basic dashed line with default dash length\nconst canvas = document.getElementById('myCanvas');\nconst ctx = canvas.getContext('2d');\nctx.strokeStyle = '#333333';\ndrawDashLine(ctx, { x: 0, y: 50 }, { x: 200, y: 50 });\n
    \n
    Example:
    // Custom dash length for different visual effects\nctx.strokeStyle = '#ff6600';\ndrawDashLine(ctx, { x: 10, y: 10 }, { x: 150, y: 100 }, 10); // Longer dashes\n\nctx.strokeStyle = '#0066ff';\ndrawDashLine(ctx, { x: 10, y: 120 }, { x: 150, y: 200 }, 2); // Shorter dashes\n
    \n
    Since:

    1.0.0

    \n
    See:

    drawLine - For solid line drawing

    \n"},"sources":[{"fileName":"packages/canvas-utils/src/canvas/drawer.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/canvas-utils/src/canvas/drawer.ts","line":112,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/canvas-utils/src/canvas/drawer.ts#L112"}],"parentId":2114}],"is":{"declaration":true},"location":{"query":"canvas-utils/src.Function.drawDashLine","hash":""},"text":{},"parentId":1451} diff --git a/docs/v1.0.0-beta01/data/canvas-utils/src.Function.drawLine.json b/docs/v1.0.0-beta01/data/canvas-utils/src.Function.drawLine.json new file mode 100644 index 000000000..bc7f5f379 --- /dev/null +++ b/docs/v1.0.0-beta01/data/canvas-utils/src.Function.drawLine.json @@ -0,0 +1 @@ +{"id":2109,"name":"drawLine","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/canvas-utils/src/canvas/drawer.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/canvas-utils/src/canvas/drawer.ts","line":51,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/canvas-utils/src/canvas/drawer.ts#L51"}],"signatures":[{"id":2110,"name":"drawLine","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"drawLine"}]},{"tag":"@description","content":[{"kind":"text","text":"画直线。Draws a straight line between two points on the canvas. The line uses the current stroke style and line width settings of the canvas context."}]},{"tag":"@returns","content":[{"kind":"text","text":"This function does not return a value"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Basic line drawing\r\nconst canvas = document.getElementById('myCanvas');\r\nconst ctx = canvas.getContext('2d');\r\nctx.strokeStyle = '#ff0000';\r\nctx.lineWidth = 2;\r\ndrawLine(ctx, { x: 10, y: 10 }, { x: 100, y: 100 });\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Drawing multiple connected lines\r\nconst points = [\r\n { x: 0, y: 50 },\r\n { x: 50, y: 0 },\r\n { x: 100, y: 50 }\r\n];\r\nctx.strokeStyle = '#0066cc';\r\nfor (let i = 0; i < points.length - 1; i++) {\r\n drawLine(ctx, points[i], points[i + 1]);\r\n}\n```"}]},{"tag":"@since","content":[{"kind":"text","text":"1.0.0"}]}]},"parameters":[{"id":2111,"name":"ctx","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"The 2D rendering context of the canvas element"}]},"type":{"type":"reference","name":"CanvasRenderingContext2D","qualifiedName":"CanvasRenderingContext2D","package":"typescript"},"text":{"comment":"

    The 2D rendering context of the canvas element

    \n"}},{"id":2112,"name":"point1","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"起点。The starting point coordinates with x and y properties"}]},"originalName":"__namedParameters","type":{"type":"reference","id":2171,"name":"PointPosition"},"text":{"comment":"

    起点。The starting point coordinates with x and y properties

    \n"}},{"id":2113,"name":"point2","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"终点。The ending point coordinates with x and y properties"}]},"originalName":"__namedParameters","type":{"type":"reference","id":2171,"name":"PointPosition"},"text":{"comment":"

    终点。The ending point coordinates with x and y properties

    \n"}}],"type":{"type":"intrinsic","name":"void"},"is":{"declaration":false},"location":{"query":"canvas-utils/src.Function.drawLine","hash":"drawLine"},"text":{"comment":"
    Function:

    drawLine

    \n
    Description:

    画直线。Draws a straight line between two points on the canvas. The line uses the current stroke style and line width settings of the canvas context.

    \n
    Returns:

    This function does not return a value

    \n
    Example:
    // Basic line drawing\nconst canvas = document.getElementById('myCanvas');\nconst ctx = canvas.getContext('2d');\nctx.strokeStyle = '#ff0000';\nctx.lineWidth = 2;\ndrawLine(ctx, { x: 10, y: 10 }, { x: 100, y: 100 });\n
    \n
    Example:
    // Drawing multiple connected lines\nconst points = [\n  { x: 0, y: 50 },\n  { x: 50, y: 0 },\n  { x: 100, y: 50 }\n];\nctx.strokeStyle = '#0066cc';\nfor (let i = 0; i < points.length - 1; i++) {\n  drawLine(ctx, points[i], points[i + 1]);\n}\n
    \n
    Since:

    1.0.0

    \n"},"sources":[{"fileName":"packages/canvas-utils/src/canvas/drawer.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/canvas-utils/src/canvas/drawer.ts","line":51,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/canvas-utils/src/canvas/drawer.ts#L51"}],"parentId":2109}],"is":{"declaration":true},"location":{"query":"canvas-utils/src.Function.drawLine","hash":""},"text":{},"parentId":1451} diff --git a/docs/v1.0.0-beta01/data/canvas-utils/src.Function.drawPoint.json b/docs/v1.0.0-beta01/data/canvas-utils/src.Function.drawPoint.json new file mode 100644 index 000000000..8666df0b5 --- /dev/null +++ b/docs/v1.0.0-beta01/data/canvas-utils/src.Function.drawPoint.json @@ -0,0 +1 @@ +{"id":2120,"name":"drawPoint","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/canvas-utils/src/canvas/drawer.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/canvas-utils/src/canvas/drawer.ts","line":162,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/canvas-utils/src/canvas/drawer.ts#L162"}],"signatures":[{"id":2121,"name":"drawPoint","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"drawPoint"}]},{"tag":"@description","content":[{"kind":"text","text":"画圆点。Draws a circular point (dot) with customizable fill color, stroke color, radius, and stroke width. Useful for creating data points, markers, or decorative elements."}]},{"tag":"@returns","content":[{"kind":"text","text":"This function does not return a value"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Basic filled circle without stroke\r\nconst canvas = document.getElementById('myCanvas');\r\nconst ctx = canvas.getContext('2d');\r\ndrawPoint(ctx, { x: 50, y: 50 }, '#ff0000', '#ffffff', 10, 0);\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Circle with both fill and stroke\r\ndrawPoint(ctx, { x: 100, y: 100 }, '#0066cc', '#ffffff', 15, 2);\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Creating data points for a scatter plot\r\nconst dataPoints = [\r\n { x: 20, y: 30 },\r\n { x: 40, y: 60 },\r\n { x: 80, y: 45 }\r\n];\r\ndataPoints.forEach(point => {\r\n drawPoint(ctx, point, '#ff6600', '#333333', 8, 1);\r\n});\n```"}]},{"tag":"@since","content":[{"kind":"text","text":"1.0.0"}]}]},"parameters":[{"id":2122,"name":"ctx","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"The 2D rendering context of the canvas element"}]},"type":{"type":"reference","name":"CanvasRenderingContext2D","qualifiedName":"CanvasRenderingContext2D","package":"typescript"},"text":{"comment":"

    The 2D rendering context of the canvas element

    \n"}},{"id":2123,"name":"centerPoint","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"The center coordinates of the circle with x and y properties"}]},"type":{"type":"reference","id":2171,"name":"PointPosition"},"text":{"comment":"

    The center coordinates of the circle with x and y properties

    \n"}},{"id":2124,"name":"color","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"The fill color of the circle (CSS color format: hex, rgb, rgba, named colors)"}]},"type":{"type":"intrinsic","name":"string"},"text":{"comment":"

    The fill color of the circle (CSS color format: hex, rgb, rgba, named colors)

    \n"}},{"id":2125,"name":"strokeColor","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The stroke (border) color of the circle"}]},"type":{"type":"intrinsic","name":"string"},"defaultValue":"'#fff'","text":{"comment":"

    The stroke (border) color of the circle

    \n"}},{"id":2126,"name":"width","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The radius of the circle in pixels"}]},"type":{"type":"intrinsic","name":"number"},"defaultValue":"0","text":{"comment":"

    The radius of the circle in pixels

    \n"}},{"id":2127,"name":"strokeWidth","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The width of the stroke (border) in pixels. Set to 0 to disable stroke"}]},"type":{"type":"intrinsic","name":"number"},"defaultValue":"1","text":{"comment":"

    The width of the stroke (border) in pixels. Set to 0 to disable stroke

    \n"}}],"type":{"type":"intrinsic","name":"void"},"is":{"declaration":false},"location":{"query":"canvas-utils/src.Function.drawPoint","hash":"drawPoint"},"text":{"comment":"
    Function:

    drawPoint

    \n
    Description:

    画圆点。Draws a circular point (dot) with customizable fill color, stroke color, radius, and stroke width. Useful for creating data points, markers, or decorative elements.

    \n
    Returns:

    This function does not return a value

    \n
    Example:
    // Basic filled circle without stroke\nconst canvas = document.getElementById('myCanvas');\nconst ctx = canvas.getContext('2d');\ndrawPoint(ctx, { x: 50, y: 50 }, '#ff0000', '#ffffff', 10, 0);\n
    \n
    Example:
    // Circle with both fill and stroke\ndrawPoint(ctx, { x: 100, y: 100 }, '#0066cc', '#ffffff', 15, 2);\n
    \n
    Example:
    // Creating data points for a scatter plot\nconst dataPoints = [\n  { x: 20, y: 30 },\n  { x: 40, y: 60 },\n  { x: 80, y: 45 }\n];\ndataPoints.forEach(point => {\n  drawPoint(ctx, point, '#ff6600', '#333333', 8, 1);\n});\n
    \n
    Since:

    1.0.0

    \n"},"sources":[{"fileName":"packages/canvas-utils/src/canvas/drawer.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/canvas-utils/src/canvas/drawer.ts","line":162,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/canvas-utils/src/canvas/drawer.ts#L162"}],"parentId":2120}],"is":{"declaration":true},"location":{"query":"canvas-utils/src.Function.drawPoint","hash":""},"text":{},"parentId":1451} diff --git a/docs/v1.0.0-beta01/data/canvas-utils/src.Function.drawRotateText.json b/docs/v1.0.0-beta01/data/canvas-utils/src.Function.drawRotateText.json new file mode 100644 index 000000000..2bb3940da --- /dev/null +++ b/docs/v1.0.0-beta01/data/canvas-utils/src.Function.drawRotateText.json @@ -0,0 +1 @@ +{"id":2128,"name":"drawRotateText","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/canvas-utils/src/canvas/drawer.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/canvas-utils/src/canvas/drawer.ts","line":218,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/canvas-utils/src/canvas/drawer.ts#L218"}],"signatures":[{"id":2129,"name":"drawRotateText","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"drawRotateText"}]},{"tag":"@description","content":[{"kind":"text","text":"绘制旋转文字。Draws rotated text at a specified point with a given rotation angle. The function uses canvas transformation to rotate the text around the specified rotation point, then restores the original canvas state."}]},{"tag":"@returns","content":[{"kind":"text","text":"This function does not return a value"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Basic rotated text\r\nconst canvas = document.getElementById('myCanvas');\r\nconst ctx = canvas.getContext('2d');\r\nctx.font = '16px Arial';\r\nctx.fillStyle = '#333333';\r\ndrawRotateText(ctx, { x: 100, y: 100 }, 45, 'Rotated Text');\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Creating rotated labels for chart axes\r\nconst labels = ['Jan', 'Feb', 'Mar', 'Apr'];\r\nlabels.forEach((label, index) => {\r\n const x = 50 + index * 40;\r\n const y = 200;\r\n drawRotateText(ctx, { x, y }, -45, label);\r\n});\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Rotating numeric values\r\nctx.font = '14px monospace';\r\nctx.fillStyle = '#0066cc';\r\ndrawRotateText(ctx, { x: 150, y: 150 }, 90, 42.5);\n```"}]},{"tag":"@since","content":[{"kind":"text","text":"1.0.0"}]}]},"parameters":[{"id":2130,"name":"ctx","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"画布。The 2D rendering context of the canvas element"}]},"type":{"type":"reference","name":"CanvasRenderingContext2D","qualifiedName":"CanvasRenderingContext2D","package":"typescript"},"text":{"comment":"

    画布。The 2D rendering context of the canvas element

    \n"}},{"id":2131,"name":"rotatePoint","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"切换中心点的坐标。The center point for rotation with x and y coordinates"}]},"type":{"type":"reference","id":2171,"name":"PointPosition"},"text":{"comment":"

    切换中心点的坐标。The center point for rotation with x and y coordinates

    \n"}},{"id":2132,"name":"degree","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"旋转角度。The rotation angle in degrees (positive values rotate clockwise)"}]},"type":{"type":"intrinsic","name":"number"},"text":{"comment":"

    旋转角度。The rotation angle in degrees (positive values rotate clockwise)

    \n"}},{"id":2133,"name":"text","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"文字内容。The text content to be drawn (numbers will be converted to strings)"}]},"type":{"type":"union","types":[{"type":"intrinsic","name":"string"},{"type":"intrinsic","name":"number"}]},"text":{"comment":"

    文字内容。The text content to be drawn (numbers will be converted to strings)

    \n"}}],"type":{"type":"intrinsic","name":"void"},"is":{"declaration":false},"location":{"query":"canvas-utils/src.Function.drawRotateText","hash":"drawRotateText"},"text":{"comment":"
    Function:

    drawRotateText

    \n
    Description:

    绘制旋转文字。Draws rotated text at a specified point with a given rotation angle. The function uses canvas transformation to rotate the text around the specified rotation point, then restores the original canvas state.

    \n
    Returns:

    This function does not return a value

    \n
    Example:
    // Basic rotated text\nconst canvas = document.getElementById('myCanvas');\nconst ctx = canvas.getContext('2d');\nctx.font = '16px Arial';\nctx.fillStyle = '#333333';\ndrawRotateText(ctx, { x: 100, y: 100 }, 45, 'Rotated Text');\n
    \n
    Example:
    // Creating rotated labels for chart axes\nconst labels = ['Jan', 'Feb', 'Mar', 'Apr'];\nlabels.forEach((label, index) => {\n  const x = 50 + index * 40;\n  const y = 200;\n  drawRotateText(ctx, { x, y }, -45, label);\n});\n
    \n
    Example:
    // Rotating numeric values\nctx.font = '14px monospace';\nctx.fillStyle = '#0066cc';\ndrawRotateText(ctx, { x: 150, y: 150 }, 90, 42.5);\n
    \n
    Since:

    1.0.0

    \n"},"sources":[{"fileName":"packages/canvas-utils/src/canvas/drawer.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/canvas-utils/src/canvas/drawer.ts","line":218,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/canvas-utils/src/canvas/drawer.ts#L218"}],"parentId":2128}],"is":{"declaration":true},"location":{"query":"canvas-utils/src.Function.drawRotateText","hash":""},"text":{},"parentId":1451} diff --git a/docs/v1.0.0-beta01/data/canvas-utils/src.Function.each.json b/docs/v1.0.0-beta01/data/canvas-utils/src.Function.each.json new file mode 100644 index 000000000..a8fafe1b3 --- /dev/null +++ b/docs/v1.0.0-beta01/data/canvas-utils/src.Function.each.json @@ -0,0 +1 @@ +{"id":2051,"name":"each","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/canvas-utils/src/utils/base.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/canvas-utils/src/utils/base.ts","line":80,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/canvas-utils/src/utils/base.ts#L80"}],"signatures":[{"id":2052,"name":"each","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"each"}]},{"tag":"@description","content":[{"kind":"text","text":"Iterates through an array and executes a callback function for each element. The callback receives both the element value and its index as parameters."}]},{"tag":"@returns","content":[{"kind":"text","text":"The original array (for method chaining)"}]},{"tag":"@example","content":[{"kind":"text","text":"// Basic iteration with logging\r\nconst numbers = [1, 2, 3, 4, 5];\r\neach(numbers, (value, index) => {\r\n console.log("},{"kind":"code","text":"`Index ${index}: ${value}`"},{"kind":"text","text":");\r\n});\r\n// Output:\r\n// Index 0: 1\r\n// Index 1: 2\r\n// Index 2: 3\r\n// Index 3: 4\r\n// Index 4: 5"}]},{"tag":"@example","content":[{"kind":"text","text":"// Drawing multiple canvas elements\r\nconst points = [\r\n { x: 10, y: 10 },\r\n { x: 50, y: 30 },\r\n { x: 90, y: 20 }\r\n];\r\n\r\neach(points, (point, index) => {\r\n ctx.fillStyle = "},{"kind":"code","text":"`hsl(${index * 60}, 70%, 50%)`"},{"kind":"text","text":";\r\n ctx.fillRect(point.x, point.y, 10, 10);\r\n});"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Method chaining\r\nconst result = each([1, 2, 3], (val) => console.log(val * 2))\r\n .map(x => x * 3); // Can chain other array methods\n```"}]},{"tag":"@since","content":[{"kind":"text","text":"1.0.0"}]}]},"typeParameter":[{"id":2053,"name":"T","kind":131072,"kindString":"Type parameter","flags":{}}],"parameters":[{"id":2054,"name":"arr","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"The array to traverse"}]},"type":{"type":"array","elementType":{"type":"reference","id":2053,"name":"T"}},"text":{"comment":"

    The array to traverse

    \n"}},{"id":2055,"name":"fn","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"The callback function to execute for each element. Receives (element, index) as parameters"}]},"type":{"type":"reflection","declaration":{"id":2056,"name":"__type","kind":65536,"kindString":"Type literal","flags":{},"sources":[{"fileName":"packages/canvas-utils/src/utils/base.ts","line":80,"character":38,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/canvas-utils/src/utils/base.ts#L80"}],"signatures":[{"id":2057,"name":"__type","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":2058,"name":"args","kind":32768,"kindString":"Parameter","flags":{"isRest":true},"type":{"type":"array","elementType":{"type":"intrinsic","name":"any"}}}],"type":{"type":"intrinsic","name":"void"}}]}},"text":{"comment":"

    The callback function to execute for each element. Receives (element, index) as parameters

    \n"}}],"type":{"type":"array","elementType":{"type":"reference","id":2053,"name":"T"}},"is":{"declaration":false},"location":{"query":"canvas-utils/src.Function.each","hash":"each"},"text":{"comment":"
    Function:

    each

    \n
    Description:

    Iterates through an array and executes a callback function for each element. The callback receives both the element value and its index as parameters.

    \n
    Returns:

    The original array (for method chaining)

    \n
    Example:

    // Basic iteration with logging\nconst numbers = [1, 2, 3, 4, 5];\neach(numbers, (value, index) => {\n console.log(Index ${index}: ${value});\n});\n// Output:\n// Index 0: 1\n// Index 1: 2\n// Index 2: 3\n// Index 3: 4\n// Index 4: 5

    \n
    Example:

    // Drawing multiple canvas elements\nconst points = [\n { x: 10, y: 10 },\n { x: 50, y: 30 },\n { x: 90, y: 20 }\n];

    \n

    each(points, (point, index) => {\n ctx.fillStyle = hsl(${index * 60}, 70%, 50%);\n ctx.fillRect(point.x, point.y, 10, 10);\n});

    \n
    Example:
    // Method chaining\nconst result = each([1, 2, 3], (val) => console.log(val * 2))\n  .map(x => x * 3); // Can chain other array methods\n
    \n
    Since:

    1.0.0

    \n"},"sources":[{"fileName":"packages/canvas-utils/src/utils/base.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/canvas-utils/src/utils/base.ts","line":80,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/canvas-utils/src/utils/base.ts#L80"}],"parentId":2051}],"is":{"declaration":true},"location":{"query":"canvas-utils/src.Function.each","hash":""},"text":{},"parentId":1451} diff --git a/docs/v1.0.0-beta01/data/canvas-utils/src.Function.getAxisLimit.json b/docs/v1.0.0-beta01/data/canvas-utils/src.Function.getAxisLimit.json new file mode 100644 index 000000000..15d7bb217 --- /dev/null +++ b/docs/v1.0.0-beta01/data/canvas-utils/src.Function.getAxisLimit.json @@ -0,0 +1 @@ +{"id":2078,"name":"getAxisLimit","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/canvas-utils/src/utils/calculate.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/canvas-utils/src/utils/calculate.ts","line":154,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/canvas-utils/src/utils/calculate.ts#L154"}],"signatures":[{"id":2079,"name":"getAxisLimit","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"getAxisLimit"}]},{"tag":"@description","content":[{"kind":"text","text":"获取网格最大范围值。Calculates an appropriate axis limit for chart grids based on the data range. Provides visually pleasing axis bounds by rounding up to nice numbers and adding visual padding."}]},{"tag":"@returns","content":[{"kind":"text","text":"The calculated axis limit that provides good visual spacing"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Basic axis limit calculation\r\nconst dataRange = 87; // e.g., max: 95, min: 8\r\nconst axisLimit = getAxisLimit(dataRange); // Returns 88 (rounded to nearest 4)\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Chart axis setup\r\nconst chartData = [10, 25, 40, 35, 60];\r\nconst { min, max } = getListExtremum(chartData);\r\nconst range = max - min; // 50\r\n\r\nconst yAxisMax = min + getAxisLimit(range);\r\n// Creates visually appealing chart bounds\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Small range handling\r\nconst smallRange = 1.5;\r\nconst limit = getAxisLimit(smallRange); // Returns 1.8 (1.5 * 1.2 for padding)\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// No data case\r\nconst emptyLimit = getAxisLimit(); // Returns 1 (default)\r\nconst zeroLimit = getAxisLimit(0); // Returns 1 (default)\n```"}]},{"tag":"@since","content":[{"kind":"text","text":"1.0.0"}]}]},"parameters":[{"id":2080,"name":"range","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The data range (max - min) to calculate axis limit for"}]},"type":{"type":"intrinsic","name":"number"},"text":{"comment":"

    The data range (max - min) to calculate axis limit for

    \n"}}],"type":{"type":"intrinsic","name":"number"},"is":{"declaration":false},"location":{"query":"canvas-utils/src.Function.getAxisLimit","hash":"getAxisLimit"},"text":{"comment":"
    Function:

    getAxisLimit

    \n
    Description:

    获取网格最大范围值。Calculates an appropriate axis limit for chart grids based on the data range. Provides visually pleasing axis bounds by rounding up to nice numbers and adding visual padding.

    \n
    Returns:

    The calculated axis limit that provides good visual spacing

    \n
    Example:
    // Basic axis limit calculation\nconst dataRange = 87; // e.g., max: 95, min: 8\nconst axisLimit = getAxisLimit(dataRange); // Returns 88 (rounded to nearest 4)\n
    \n
    Example:
    // Chart axis setup\nconst chartData = [10, 25, 40, 35, 60];\nconst { min, max } = getListExtremum(chartData);\nconst range = max - min; // 50\n\nconst yAxisMax = min + getAxisLimit(range);\n// Creates visually appealing chart bounds\n
    \n
    Example:
    // Small range handling\nconst smallRange = 1.5;\nconst limit = getAxisLimit(smallRange); // Returns 1.8 (1.5 * 1.2 for padding)\n
    \n
    Example:
    // No data case\nconst emptyLimit = getAxisLimit(); // Returns 1 (default)\nconst zeroLimit = getAxisLimit(0); // Returns 1 (default)\n
    \n
    Since:

    1.0.0

    \n"},"sources":[{"fileName":"packages/canvas-utils/src/utils/calculate.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/canvas-utils/src/utils/calculate.ts","line":154,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/canvas-utils/src/utils/calculate.ts#L154"}],"parentId":2078}],"is":{"declaration":true},"location":{"query":"canvas-utils/src.Function.getAxisLimit","hash":""},"text":{},"parentId":1451} diff --git a/docs/v1.0.0-beta01/data/canvas-utils/src.Function.getColorRgbList.json b/docs/v1.0.0-beta01/data/canvas-utils/src.Function.getColorRgbList.json new file mode 100644 index 000000000..79ebd74c4 --- /dev/null +++ b/docs/v1.0.0-beta01/data/canvas-utils/src.Function.getColorRgbList.json @@ -0,0 +1 @@ +{"id":2095,"name":"getColorRgbList","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/canvas-utils/src/utils/colors.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/canvas-utils/src/utils/colors.ts","line":50,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/canvas-utils/src/utils/colors.ts#L50"}],"signatures":[{"id":2096,"name":"getColorRgbList","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"getColorRgbList"}]},{"tag":"@description","content":[{"kind":"text","text":"hex色值转rgb数组。Converts hexadecimal color strings to RGB number arrays. Supports both standard (#RRGGBB) and shorthand (#RGB) formats. Invalid color formats return an empty array."}]},{"tag":"@returns","content":[{"kind":"text","text":"Array of RGB values [red, green, blue] where each value is 0-255, or empty array if invalid"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Standard hex format\nconst red = getColorRgbList('#ff0000'); // Returns [255, 0, 0]\nconst blue = getColorRgbList('#0000FF'); // Returns [0, 0, 255]\nconst custom = getColorRgbList('#aaBB99'); // Returns [170, 187, 153]\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Shorthand hex format\nconst red = getColorRgbList('#f00'); // Returns [255, 0, 0]\nconst green = getColorRgbList('#0f0'); // Returns [0, 255, 0]\nconst gray = getColorRgbList('#abc'); // Returns [170, 187, 204]\n```"}]},{"tag":"@example","content":[{"kind":"text","text":"// Canvas color application\nfunction setCanvasColor(ctx, hexColor) {\n const [r, g, b] = getColorRgbList(hexColor);\n if (r !== undefined) {\n ctx.fillStyle = "},{"kind":"code","text":"`rgb(${r}, ${g}, ${b})`"},{"kind":"text","text":";\n ctx.fillRect(0, 0, 100, 100);\n } else {\n console.error('Invalid color format');\n }\n}"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Error handling\nconst invalid = getColorRgbList('invalid'); // Returns []\nconst missing = getColorRgbList('#gg0000'); // Returns []\n```"}]},{"tag":"@since","content":[{"kind":"text","text":"1.0.0"}]},{"tag":"@see","content":[{"kind":"inline-tag","tag":"@link","text":"getColorRgba","target":2098},{"kind":"text","text":" - For converting to RGBA format"}]}]},"parameters":[{"id":2097,"name":"color","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"Hexadecimal color string (e.g., '#ff0000', '#f00')"}]},"type":{"type":"intrinsic","name":"string"},"text":{"comment":"

    Hexadecimal color string (e.g., '#ff0000', '#f00')

    \n"}}],"type":{"type":"array","elementType":{"type":"intrinsic","name":"number"}},"is":{"declaration":false},"location":{"query":"canvas-utils/src.Function.getColorRgbList","hash":"getColorRgbList"},"text":{"comment":"
    Function:

    getColorRgbList

    \n
    Description:

    hex色值转rgb数组。Converts hexadecimal color strings to RGB number arrays. Supports both standard (#RRGGBB) and shorthand (#RGB) formats. Invalid color formats return an empty array.

    \n
    Returns:

    Array of RGB values [red, green, blue] where each value is 0-255, or empty array if invalid

    \n
    Example:
    // Standard hex format\nconst red = getColorRgbList('#ff0000');     // Returns [255, 0, 0]\nconst blue = getColorRgbList('#0000FF');    // Returns [0, 0, 255]\nconst custom = getColorRgbList('#aaBB99');  // Returns [170, 187, 153]\n
    \n
    Example:
    // Shorthand hex format\nconst red = getColorRgbList('#f00');        // Returns [255, 0, 0]\nconst green = getColorRgbList('#0f0');      // Returns [0, 255, 0]\nconst gray = getColorRgbList('#abc');       // Returns [170, 187, 204]\n
    \n
    Example:

    // Canvas color application\nfunction setCanvasColor(ctx, hexColor) {\n const [r, g, b] = getColorRgbList(hexColor);\n if (r !== undefined) {\n ctx.fillStyle = rgb(${r}, ${g}, ${b});\n ctx.fillRect(0, 0, 100, 100);\n } else {\n console.error('Invalid color format');\n }\n}

    \n
    Example:
    // Error handling\nconst invalid = getColorRgbList('invalid');  // Returns []\nconst missing = getColorRgbList('#gg0000'); // Returns []\n
    \n
    Since:

    1.0.0

    \n
    See:

    getColorRgba - For converting to RGBA format

    \n"},"sources":[{"fileName":"packages/canvas-utils/src/utils/colors.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/canvas-utils/src/utils/colors.ts","line":50,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/canvas-utils/src/utils/colors.ts#L50"}],"parentId":2095}],"is":{"declaration":true},"location":{"query":"canvas-utils/src.Function.getColorRgbList","hash":""},"text":{},"parentId":1451} diff --git a/docs/v1.0.0-beta01/data/canvas-utils/src.Function.getColorRgba.json b/docs/v1.0.0-beta01/data/canvas-utils/src.Function.getColorRgba.json new file mode 100644 index 000000000..daba7c05b --- /dev/null +++ b/docs/v1.0.0-beta01/data/canvas-utils/src.Function.getColorRgba.json @@ -0,0 +1 @@ +{"id":2098,"name":"getColorRgba","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/canvas-utils/src/utils/colors.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/canvas-utils/src/utils/colors.ts","line":118,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/canvas-utils/src/utils/colors.ts#L118"}],"signatures":[{"id":2099,"name":"getColorRgba","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"getColorRgba"}]},{"tag":"@description","content":[{"kind":"text","text":"十六进制颜色转rgba。Converts hexadecimal color strings to RGBA format strings with customizable opacity. Handles both standard and shorthand hex formats, with fallback to transparent black for invalid colors."}]},{"tag":"@returns","content":[{"kind":"text","text":"RGBA color string in format 'rgba(r,g,b,a)' or 'rgba(0,0,0,0)' for invalid colors"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Basic RGBA conversion\nconst red = getColorRgba('#f00'); // Returns 'rgba(255,0,0,1)'\nconst blue = getColorRgba('#0000FF'); // Returns 'rgba(0,0,255,1)'\nconst green = getColorRgba('#00ff00'); // Returns 'rgba(0,255,0,1)'\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Custom opacity\nconst semiRed = getColorRgba('#f00', 0.5); // Returns 'rgba(255,0,0,0.5)'\nconst faintBlue = getColorRgba('#0000FF', 0.1); // Returns 'rgba(0,0,255,0.1)'\nconst transparent = getColorRgba('#fff', 0); // Returns 'rgba(255,255,255,0)'\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Canvas gradient creation\nfunction createGradient(ctx, startColor, endColor, opacity = 1) {\n const gradient = ctx.createLinearGradient(0, 0, 200, 0);\n gradient.addColorStop(0, getColorRgba(startColor, opacity));\n gradient.addColorStop(1, getColorRgba(endColor, opacity));\n return gradient;\n}\n\nconst gradient = createGradient(ctx, '#ff0000', '#0000ff', 0.8);\nctx.fillStyle = gradient;\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Animation color transitions\nfunction animateColorOpacity(hexColor, progress) {\n const opacity = Math.sin(progress * Math.PI); // Fade in and out\n return getColorRgba(hexColor, opacity);\n}\n\n// In animation loop\nctx.fillStyle = animateColorOpacity('#ff6600', animationProgress);\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Error handling\nconst invalid = getColorRgba('invalid'); // Returns 'rgba(0,0,0,0)'\nconst badHex = getColorRgba('#gggggg'); // Returns 'rgba(0,0,0,0)'\n```"}]},{"tag":"@since","content":[{"kind":"text","text":"1.0.0"}]},{"tag":"@see","content":[{"kind":"text","text":" - "},{"kind":"inline-tag","tag":"@link","text":"getColorRgbList","target":2095},{"kind":"text","text":" - For getting RGB array values"},{"kind":"text","text":"\n"},{"kind":"text","text":" - "},{"kind":"inline-tag","tag":"@link","text":"isTransparentColor","target":2102},{"kind":"text","text":" - For checking if a color is transparent"},{"kind":"text","text":"\n"}]}]},"parameters":[{"id":2100,"name":"str","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"hex格式颜色。Hexadecimal color string (e.g., '#ff0000', '#f00')"}]},"type":{"type":"intrinsic","name":"string"},"text":{"comment":"

    hex格式颜色。Hexadecimal color string (e.g., '#ff0000', '#f00')

    \n"}},{"id":2101,"name":"opacity","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"透明度。Opacity value between 0 (transparent) and 1 (opaque)"}]},"type":{"type":"intrinsic","name":"number"},"defaultValue":"1","text":{"comment":"

    透明度。Opacity value between 0 (transparent) and 1 (opaque)

    \n"}}],"type":{"type":"intrinsic","name":"string"},"is":{"declaration":false},"location":{"query":"canvas-utils/src.Function.getColorRgba","hash":"getColorRgba"},"text":{"comment":"
    Function:

    getColorRgba

    \n
    Description:

    十六进制颜色转rgba。Converts hexadecimal color strings to RGBA format strings with customizable opacity. Handles both standard and shorthand hex formats, with fallback to transparent black for invalid colors.

    \n
    Returns:

    RGBA color string in format 'rgba(r,g,b,a)' or 'rgba(0,0,0,0)' for invalid colors

    \n
    Example:
    // Basic RGBA conversion\nconst red = getColorRgba('#f00');           // Returns 'rgba(255,0,0,1)'\nconst blue = getColorRgba('#0000FF');       // Returns 'rgba(0,0,255,1)'\nconst green = getColorRgba('#00ff00');      // Returns 'rgba(0,255,0,1)'\n
    \n
    Example:
    // Custom opacity\nconst semiRed = getColorRgba('#f00', 0.5);     // Returns 'rgba(255,0,0,0.5)'\nconst faintBlue = getColorRgba('#0000FF', 0.1); // Returns 'rgba(0,0,255,0.1)'\nconst transparent = getColorRgba('#fff', 0);    // Returns 'rgba(255,255,255,0)'\n
    \n
    Example:
    // Canvas gradient creation\nfunction createGradient(ctx, startColor, endColor, opacity = 1) {\n  const gradient = ctx.createLinearGradient(0, 0, 200, 0);\n  gradient.addColorStop(0, getColorRgba(startColor, opacity));\n  gradient.addColorStop(1, getColorRgba(endColor, opacity));\n  return gradient;\n}\n\nconst gradient = createGradient(ctx, '#ff0000', '#0000ff', 0.8);\nctx.fillStyle = gradient;\n
    \n
    Example:
    // Animation color transitions\nfunction animateColorOpacity(hexColor, progress) {\n  const opacity = Math.sin(progress * Math.PI); // Fade in and out\n  return getColorRgba(hexColor, opacity);\n}\n\n// In animation loop\nctx.fillStyle = animateColorOpacity('#ff6600', animationProgress);\n
    \n
    Example:
    // Error handling\nconst invalid = getColorRgba('invalid');     // Returns 'rgba(0,0,0,0)'\nconst badHex = getColorRgba('#gggggg');      // Returns 'rgba(0,0,0,0)'\n
    \n
    Since:

    1.0.0

    \n
    See:
    \n"},"sources":[{"fileName":"packages/canvas-utils/src/utils/colors.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/canvas-utils/src/utils/colors.ts","line":118,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/canvas-utils/src/utils/colors.ts#L118"}],"parentId":2098}],"is":{"declaration":true},"location":{"query":"canvas-utils/src.Function.getColorRgba","hash":""},"text":{},"parentId":1451} diff --git a/docs/v1.0.0-beta01/data/canvas-utils/src.Function.getCurvePoints.json b/docs/v1.0.0-beta01/data/canvas-utils/src.Function.getCurvePoints.json new file mode 100644 index 000000000..c9840a5c1 --- /dev/null +++ b/docs/v1.0.0-beta01/data/canvas-utils/src.Function.getCurvePoints.json @@ -0,0 +1 @@ +{"id":2151,"name":"getCurvePoints","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/canvas-utils/src/utils/curve.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/canvas-utils/src/utils/curve.ts","line":149,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/canvas-utils/src/utils/curve.ts#L149"}],"signatures":[{"id":2152,"name":"getCurvePoints","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"getCurvePoints"}]},{"tag":"@description","content":[{"kind":"text","text":"生成用于创建平滑曲线的控制点。Generates control points for creating smooth curves through a series of path points. Uses vector mathematics to calculate intermediate control points that create natural-looking curved lines when used with canvas quadratic or bezier curve functions."}]},{"tag":"@returns","content":[{"kind":"text","text":"用于平滑曲线生成的控制点坐标数组。Array of control point positions for smooth curve generation"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Basic curve generation\r\nconst pathPoints = [\r\n { x: 10, y: 100 },\r\n { x: 50, y: 50 },\r\n { x: 100, y: 80 },\r\n { x: 150, y: 30 },\r\n { x: 200, y: 90 }\r\n];\r\n\r\nconst controlPoints = getCurvePoints(pathPoints);\r\n\r\n// Draw smooth curve using control points\r\nctx.beginPath();\r\nctx.moveTo(pathPoints[0].x, pathPoints[0].y);\r\n\r\nfor (let i = 0; i < controlPoints.length; i += 2) {\r\n const cp1 = controlPoints[i];\r\n const cp2 = controlPoints[i + 1];\r\n const endPoint = pathPoints[Math.floor(i / 2) + 2];\r\n\r\n ctx.bezierCurveTo(cp1.x, cp1.y, cp2.x, cp2.y, endPoint.x, endPoint.y);\r\n}\r\n\r\nctx.stroke();\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Smooth line chart\r\nfunction drawSmoothChart(ctx, dataPoints) {\r\n if (dataPoints.length < 3) {\r\n // Fall back to straight lines for insufficient points\r\n ctx.beginPath();\r\n ctx.moveTo(dataPoints[0].x, dataPoints[0].y);\r\n dataPoints.slice(1).forEach(point => {\r\n ctx.lineTo(point.x, point.y);\r\n });\r\n ctx.stroke();\r\n return;\r\n }\r\n\r\n const controlPoints = getCurvePoints(dataPoints);\r\n\r\n ctx.beginPath();\r\n ctx.moveTo(dataPoints[0].x, dataPoints[0].y);\r\n\r\n // Create smooth curves between all points\r\n for (let i = 0; i < controlPoints.length; i += 2) {\r\n const cp1 = controlPoints[i];\r\n const cp2 = controlPoints[i + 1];\r\n const endPoint = dataPoints[Math.floor(i / 2) + 2];\r\n\r\n ctx.bezierCurveTo(cp1.x, cp1.y, cp2.x, cp2.y, endPoint.x, endPoint.y);\r\n }\r\n\r\n ctx.stroke();\r\n}\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Interactive drawing with smooth curves\r\nlet drawingPoints = [];\r\n\r\ncanvas.addEventListener('mousemove', (e) => {\r\n if (isDrawing) {\r\n drawingPoints.push({ x: e.offsetX, y: e.offsetY });\r\n\r\n if (drawingPoints.length >= 3) {\r\n ctx.clearRect(0, 0, canvas.width, canvas.height);\r\n\r\n const controlPoints = getCurvePoints(drawingPoints);\r\n // Redraw smooth curve with all points\r\n drawSmoothChart(ctx, drawingPoints);\r\n }\r\n }\r\n});\n```"}]},{"tag":"@since","content":[{"kind":"text","text":"1.0.0"}]},{"tag":"@see","content":[{"kind":"inline-tag","tag":"@link","text":"Vector"},{"kind":"text","text":" - The Vector class used for control point calculations"}]}]},"parameters":[{"id":2153,"name":"paths","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"用于创建曲线的路径点数组(至少需要3个点)。Array of path points to create curves through (minimum 3 points required)"}]},"type":{"type":"array","elementType":{"type":"reference","id":2171,"name":"PointPosition"}},"text":{"comment":"

    用于创建曲线的路径点数组(至少需要3个点)。Array of path points to create curves through (minimum 3 points required)

    \n"}}],"type":{"type":"array","elementType":{"type":"reference","id":2171,"name":"PointPosition"}},"is":{"declaration":false},"location":{"query":"canvas-utils/src.Function.getCurvePoints","hash":"getCurvePoints"},"text":{"comment":"
    Function:

    getCurvePoints

    \n
    Description:

    生成用于创建平滑曲线的控制点。Generates control points for creating smooth curves through a series of path points. Uses vector mathematics to calculate intermediate control points that create natural-looking curved lines when used with canvas quadratic or bezier curve functions.

    \n
    Returns:

    用于平滑曲线生成的控制点坐标数组。Array of control point positions for smooth curve generation

    \n
    Example:
    // Basic curve generation\nconst pathPoints = [\n  { x: 10, y: 100 },\n  { x: 50, y: 50 },\n  { x: 100, y: 80 },\n  { x: 150, y: 30 },\n  { x: 200, y: 90 }\n];\n\nconst controlPoints = getCurvePoints(pathPoints);\n\n// Draw smooth curve using control points\nctx.beginPath();\nctx.moveTo(pathPoints[0].x, pathPoints[0].y);\n\nfor (let i = 0; i < controlPoints.length; i += 2) {\n  const cp1 = controlPoints[i];\n  const cp2 = controlPoints[i + 1];\n  const endPoint = pathPoints[Math.floor(i / 2) + 2];\n\n  ctx.bezierCurveTo(cp1.x, cp1.y, cp2.x, cp2.y, endPoint.x, endPoint.y);\n}\n\nctx.stroke();\n
    \n
    Example:
    // Smooth line chart\nfunction drawSmoothChart(ctx, dataPoints) {\n  if (dataPoints.length < 3) {\n    // Fall back to straight lines for insufficient points\n    ctx.beginPath();\n    ctx.moveTo(dataPoints[0].x, dataPoints[0].y);\n    dataPoints.slice(1).forEach(point => {\n      ctx.lineTo(point.x, point.y);\n    });\n    ctx.stroke();\n    return;\n  }\n\n  const controlPoints = getCurvePoints(dataPoints);\n\n  ctx.beginPath();\n  ctx.moveTo(dataPoints[0].x, dataPoints[0].y);\n\n  // Create smooth curves between all points\n  for (let i = 0; i < controlPoints.length; i += 2) {\n    const cp1 = controlPoints[i];\n    const cp2 = controlPoints[i + 1];\n    const endPoint = dataPoints[Math.floor(i / 2) + 2];\n\n    ctx.bezierCurveTo(cp1.x, cp1.y, cp2.x, cp2.y, endPoint.x, endPoint.y);\n  }\n\n  ctx.stroke();\n}\n
    \n
    Example:
    // Interactive drawing with smooth curves\nlet drawingPoints = [];\n\ncanvas.addEventListener('mousemove', (e) => {\n  if (isDrawing) {\n    drawingPoints.push({ x: e.offsetX, y: e.offsetY });\n\n    if (drawingPoints.length >= 3) {\n      ctx.clearRect(0, 0, canvas.width, canvas.height);\n\n      const controlPoints = getCurvePoints(drawingPoints);\n      // Redraw smooth curve with all points\n      drawSmoothChart(ctx, drawingPoints);\n    }\n  }\n});\n
    \n
    Since:

    1.0.0

    \n
    See:

    Vector - The Vector class used for control point calculations

    \n"},"sources":[{"fileName":"packages/canvas-utils/src/utils/curve.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/canvas-utils/src/utils/curve.ts","line":149,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/canvas-utils/src/utils/curve.ts#L149"}],"parentId":2151}],"is":{"declaration":true},"location":{"query":"canvas-utils/src.Function.getCurvePoints","hash":""},"text":{},"parentId":1451} diff --git a/docs/v1.0.0-beta01/data/canvas-utils/src.Function.getLightfulRgbList.json b/docs/v1.0.0-beta01/data/canvas-utils/src.Function.getLightfulRgbList.json new file mode 100644 index 000000000..6e2fded8e --- /dev/null +++ b/docs/v1.0.0-beta01/data/canvas-utils/src.Function.getLightfulRgbList.json @@ -0,0 +1 @@ +{"id":2105,"name":"getLightfulRgbList","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/canvas-utils/src/utils/colors.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/canvas-utils/src/utils/colors.ts","line":232,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/canvas-utils/src/utils/colors.ts#L232"}],"signatures":[{"id":2106,"name":"getLightfulRgbList","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"getLightfulRgbList"}]},{"tag":"@description","content":[{"kind":"text","text":"十六进制颜色变浅(亮色)。Creates a lighter version of a hexadecimal color by increasing the RGB values proportionally. The lightening effect is achieved by adding a percentage of each color component's current value, with a maximum cap of 255."}]},{"tag":"@returns","content":[{"kind":"text","text":"增量后的rgb颜色数组。Array of lightened RGB values [red, green, blue] where each value is 0-255"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// No lightening (weight = 0)\nconst original1 = getLightfulRgbList('#f00'); // Returns [255, 0, 0] (unchanged)\nconst original2 = getLightfulRgbList('#0000FF'); // Returns [0, 0, 255] (unchanged)\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Moderate lightening\nconst lighter1 = getLightfulRgbList('#f00', 0.5); // Returns [255, 128, 128]\nconst lighter2 = getLightfulRgbList('#0066cc', 0.3); // Returns [0, 102, 224]\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Maximum lightening\nconst lightest = getLightfulRgbList('#800080', 1); // Returns [255, 128, 255]\n```"}]},{"tag":"@example","content":[{"kind":"text","text":"// Canvas hover effects\nfunction drawButton(ctx, baseColor, isHovered) {\n const [r, g, b] = isHovered\n ? getLightfulRgbList(baseColor, 0.3) // Lighter on hover\n : getColorRgbList(baseColor); // Normal color\n\n ctx.fillStyle = "},{"kind":"code","text":"`rgb(${r}, ${g}, ${b})`"},{"kind":"text","text":";\n ctx.fillRect(10, 10, 100, 40);\n}"}]},{"tag":"@example","content":[{"kind":"text","text":"// Creating color palettes\nconst baseColor = '#3366cc';\nconst palette = [0, 0.2, 0.4, 0.6, 0.8].map(weight => {\n const [r, g, b] = getLightfulRgbList(baseColor, weight);\n return "},{"kind":"code","text":"`rgb(${r}, ${g}, ${b})`"},{"kind":"text","text":";\n});\n// Creates: ['rgb(51,102,204)', 'rgb(61,122,224)', ...]"}]},{"tag":"@example","content":[{"kind":"text","text":"// Chart series with related colors\nconst seriesColors = ['#ff0000', '#00ff00', '#0000ff'];\nconst lightVariants = seriesColors.map(color => {\n const [r, g, b] = getLightfulRgbList(color, 0.4);\n return "},{"kind":"code","text":"`rgb(${r}, ${g}, ${b})`"},{"kind":"text","text":";\n});"}]},{"tag":"@since","content":[{"kind":"text","text":"1.0.0"}]},{"tag":"@see","content":[{"kind":"text","text":" - "},{"kind":"inline-tag","tag":"@link","text":"getColorRgbList","target":2095},{"kind":"text","text":" - For basic hex to RGB conversion"},{"kind":"text","text":"\n"},{"kind":"text","text":" - "},{"kind":"inline-tag","tag":"@link","text":"getColorRgba","target":2098},{"kind":"text","text":" - For creating RGBA strings with the lightened colors"},{"kind":"text","text":"\n"}]}]},"parameters":[{"id":2107,"name":"color","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"hex颜色字符串。Hexadecimal color string (e.g., '#ff0000', '#f00')"}]},"type":{"type":"intrinsic","name":"string"},"text":{"comment":"

    hex颜色字符串。Hexadecimal color string (e.g., '#ff0000', '#f00')

    \n"}},{"id":2108,"name":"weight","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"增量权重(0~1)。Lightening weight factor (0 = no change, 1 = maximum lightening)"}]},"type":{"type":"intrinsic","name":"number"},"defaultValue":"0","text":{"comment":"

    增量权重(0~1)。Lightening weight factor (0 = no change, 1 = maximum lightening)

    \n"}}],"type":{"type":"array","elementType":{"type":"intrinsic","name":"number"}},"is":{"declaration":false},"location":{"query":"canvas-utils/src.Function.getLightfulRgbList","hash":"getLightfulRgbList"},"text":{"comment":"
    Function:

    getLightfulRgbList

    \n
    Description:

    十六进制颜色变浅(亮色)。Creates a lighter version of a hexadecimal color by increasing the RGB values proportionally. The lightening effect is achieved by adding a percentage of each color component's current value, with a maximum cap of 255.

    \n
    Returns:

    增量后的rgb颜色数组。Array of lightened RGB values [red, green, blue] where each value is 0-255

    \n
    Example:
    // No lightening (weight = 0)\nconst original1 = getLightfulRgbList('#f00');        // Returns [255, 0, 0] (unchanged)\nconst original2 = getLightfulRgbList('#0000FF');     // Returns [0, 0, 255] (unchanged)\n
    \n
    Example:
    // Moderate lightening\nconst lighter1 = getLightfulRgbList('#f00', 0.5);    // Returns [255, 128, 128]\nconst lighter2 = getLightfulRgbList('#0066cc', 0.3); // Returns [0, 102, 224]\n
    \n
    Example:
    // Maximum lightening\nconst lightest = getLightfulRgbList('#800080', 1);    // Returns [255, 128, 255]\n
    \n
    Example:

    // Canvas hover effects\nfunction drawButton(ctx, baseColor, isHovered) {\n const [r, g, b] = isHovered\n ? getLightfulRgbList(baseColor, 0.3) // Lighter on hover\n : getColorRgbList(baseColor); // Normal color

    \n

    ctx.fillStyle = rgb(${r}, ${g}, ${b});\n ctx.fillRect(10, 10, 100, 40);\n}

    \n
    Example:

    // Creating color palettes\nconst baseColor = '#3366cc';\nconst palette = [0, 0.2, 0.4, 0.6, 0.8].map(weight => {\n const [r, g, b] = getLightfulRgbList(baseColor, weight);\n return rgb(${r}, ${g}, ${b});\n});\n// Creates: ['rgb(51,102,204)', 'rgb(61,122,224)', ...]

    \n
    Example:

    // Chart series with related colors\nconst seriesColors = ['#ff0000', '#00ff00', '#0000ff'];\nconst lightVariants = seriesColors.map(color => {\n const [r, g, b] = getLightfulRgbList(color, 0.4);\n return rgb(${r}, ${g}, ${b});\n});

    \n
    Since:

    1.0.0

    \n
    See:
    \n"},"sources":[{"fileName":"packages/canvas-utils/src/utils/colors.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/canvas-utils/src/utils/colors.ts","line":232,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/canvas-utils/src/utils/colors.ts#L232"}],"parentId":2105}],"is":{"declaration":true},"location":{"query":"canvas-utils/src.Function.getLightfulRgbList","hash":""},"text":{},"parentId":1451} diff --git a/docs/v1.0.0-beta01/data/canvas-utils/src.Function.getListExtremum.json b/docs/v1.0.0-beta01/data/canvas-utils/src.Function.getListExtremum.json new file mode 100644 index 000000000..f056e7792 --- /dev/null +++ b/docs/v1.0.0-beta01/data/canvas-utils/src.Function.getListExtremum.json @@ -0,0 +1 @@ +{"id":2075,"name":"getListExtremum","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/canvas-utils/src/utils/calculate.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/canvas-utils/src/utils/calculate.ts","line":102,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/canvas-utils/src/utils/calculate.ts#L102"}],"signatures":[{"id":2076,"name":"getListExtremum","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"getListExtremum"}]},{"tag":"@description","content":[{"kind":"text","text":"Efficiently finds both the minimum and maximum values in an array of numbers in a single pass. More performant than calling min() and max() separately for large datasets."}]},{"tag":"@returns","content":[{"kind":"text","text":"极值对象。Object containing both min and max values"}]},{"tag":"@returns","content":[{"kind":"text","text":"returns.min - The smallest number in the array"}]},{"tag":"@returns","content":[{"kind":"text","text":"returns.max - The largest number in the array"}]},{"tag":"@throws","content":[{"kind":"text","text":"Throws an error if the array is empty"}]},{"tag":"@example","content":[{"kind":"text","text":"// Basic extremum finding\r\nconst data = [1, 3, 5, 2, 2, 4, 5, 7];\r\nconst { min, max } = getListExtremum(data);\r\nconsole.log("},{"kind":"code","text":"`Range: ${min} to ${max}`"},{"kind":"text","text":"); // Range: 1 to 7"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Chart axis calculation\r\nconst chartValues = [25, 40, 15, 60, 30, 45];\r\nconst { min: dataMin, max: dataMax } = getListExtremum(chartValues);\r\n\r\n// Add padding for better visualization\r\nconst padding = (dataMax - dataMin) * 0.1;\r\nconst yAxisMin = dataMin - padding;\r\nconst yAxisMax = dataMax + padding;\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Performance comparison for large datasets\r\nconst largeDataset = new Array(10000).fill(0).map(() => Math.random() * 100);\r\n\r\n// Efficient: single pass\r\nconst { min, max } = getListExtremum(largeDataset);\r\n\r\n// Less efficient: two passes\r\n// const min = min(largeDataset);\r\n// const max = max(largeDataset);\n```"}]},{"tag":"@since","content":[{"kind":"text","text":"1.0.0"}]},{"tag":"@see","content":[{"kind":"text","text":" - "},{"kind":"inline-tag","tag":"@link","text":"min","target":2089},{"kind":"text","text":" - For finding only minimum values"},{"kind":"text","text":"\n"},{"kind":"text","text":" - "},{"kind":"inline-tag","tag":"@link","text":"max","target":2092},{"kind":"text","text":" - For finding only maximum values"},{"kind":"text","text":"\n"}]}]},"parameters":[{"id":2077,"name":"arr","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"数值列表。Array of numbers to analyze (must not be empty)"}]},"type":{"type":"array","elementType":{"type":"intrinsic","name":"number"}},"text":{"comment":"

    数值列表。Array of numbers to analyze (must not be empty)

    \n"}}],"type":{"type":"reference","id":2175,"name":"ListExtremum"},"is":{"declaration":false},"location":{"query":"canvas-utils/src.Function.getListExtremum","hash":"getListExtremum"},"text":{"comment":"
    Function:

    getListExtremum

    \n
    Description:

    Efficiently finds both the minimum and maximum values in an array of numbers in a single pass. More performant than calling min() and max() separately for large datasets.

    \n
    Returns:

    极值对象。Object containing both min and max values

    \n
    Returns:

    returns.min - The smallest number in the array

    \n
    Returns:

    returns.max - The largest number in the array

    \n
    Throws:

    Throws an error if the array is empty

    \n
    Example:

    // Basic extremum finding\nconst data = [1, 3, 5, 2, 2, 4, 5, 7];\nconst { min, max } = getListExtremum(data);\nconsole.log(Range: ${min} to ${max}); // Range: 1 to 7

    \n
    Example:
    // Chart axis calculation\nconst chartValues = [25, 40, 15, 60, 30, 45];\nconst { min: dataMin, max: dataMax } = getListExtremum(chartValues);\n\n// Add padding for better visualization\nconst padding = (dataMax - dataMin) * 0.1;\nconst yAxisMin = dataMin - padding;\nconst yAxisMax = dataMax + padding;\n
    \n
    Example:
    // Performance comparison for large datasets\nconst largeDataset = new Array(10000).fill(0).map(() => Math.random() * 100);\n\n// Efficient: single pass\nconst { min, max } = getListExtremum(largeDataset);\n\n// Less efficient: two passes\n// const min = min(largeDataset);\n// const max = max(largeDataset);\n
    \n
    Since:

    1.0.0

    \n
    See:
    \n"},"sources":[{"fileName":"packages/canvas-utils/src/utils/calculate.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/canvas-utils/src/utils/calculate.ts","line":102,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/canvas-utils/src/utils/calculate.ts#L102"}],"parentId":2075}],"is":{"declaration":true},"location":{"query":"canvas-utils/src.Function.getListExtremum","hash":""},"text":{},"parentId":1451} diff --git a/docs/v1.0.0-beta01/data/canvas-utils/src.Function.getPointsAngle.json b/docs/v1.0.0-beta01/data/canvas-utils/src.Function.getPointsAngle.json new file mode 100644 index 000000000..7ed1fea14 --- /dev/null +++ b/docs/v1.0.0-beta01/data/canvas-utils/src.Function.getPointsAngle.json @@ -0,0 +1 @@ +{"id":2081,"name":"getPointsAngle","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/canvas-utils/src/utils/calculate.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/canvas-utils/src/utils/calculate.ts","line":216,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/canvas-utils/src/utils/calculate.ts#L216"}],"signatures":[{"id":2082,"name":"getPointsAngle","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"getPointsAngle"}]},{"tag":"@description","content":[{"kind":"text","text":"根据两个点获取角度值。Calculates the angle in radians between two points, measured from the first point to the second point. The angle is normalized to be between 0 and 2π radians (0 to 360 degrees)."}]},{"tag":"@returns","content":[{"kind":"text","text":"The angle in radians (0 to 2π), where 0 is pointing up (north)"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Basic angle calculation\r\nconst startPoint = { x: 0, y: 0 };\r\nconst endPoint = { x: 1, y: 1 };\r\nconst angle = getPointsAngle(startPoint, endPoint);\r\nconst degrees = angle * (180 / Math.PI); // Convert to degrees\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Arrow direction for canvas drawing\r\nfunction drawArrow(ctx, from, to) {\r\n const angle = getPointsAngle(from, to);\r\n\r\n // Draw line\r\n ctx.beginPath();\r\n ctx.moveTo(from.x, from.y);\r\n ctx.lineTo(to.x, to.y);\r\n ctx.stroke();\r\n\r\n // Draw arrowhead\r\n const headLength = 10;\r\n ctx.save();\r\n ctx.translate(to.x, to.y);\r\n ctx.rotate(angle);\r\n ctx.beginPath();\r\n ctx.moveTo(0, 0);\r\n ctx.lineTo(-headLength, -headLength/2);\r\n ctx.lineTo(-headLength, headLength/2);\r\n ctx.closePath();\r\n ctx.fill();\r\n ctx.restore();\r\n}\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Compass directions\r\nconst center = { x: 100, y: 100 };\r\nconst north = { x: 100, y: 50 };\r\nconst east = { x: 150, y: 100 };\r\n\r\nconst northAngle = getPointsAngle(center, north); // ~0 radians (0°)\r\nconst eastAngle = getPointsAngle(center, east); // ~π/2 radians (90°)\n```"}]},{"tag":"@since","content":[{"kind":"text","text":"1.0.0"}]},{"tag":"@see","content":[{"kind":"inline-tag","tag":"@link","text":"getPointsDistance","target":2085},{"kind":"text","text":" - For calculating distance between the same points"}]}]},"parameters":[{"id":2083,"name":"point1","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"起始点坐标。The starting point with x and y coordinates"}]},"originalName":"__namedParameters","type":{"type":"reference","id":2171,"name":"PointPosition"},"text":{"comment":"

    起始点坐标。The starting point with x and y coordinates

    \n"}},{"id":2084,"name":"point2","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"结束点坐标。The ending point with x and y coordinates"}]},"originalName":"__namedParameters","type":{"type":"reference","id":2171,"name":"PointPosition"},"text":{"comment":"

    结束点坐标。The ending point with x and y coordinates

    \n"}}],"type":{"type":"intrinsic","name":"number"},"is":{"declaration":false},"location":{"query":"canvas-utils/src.Function.getPointsAngle","hash":"getPointsAngle"},"text":{"comment":"
    Function:

    getPointsAngle

    \n
    Description:

    根据两个点获取角度值。Calculates the angle in radians between two points, measured from the first point to the second point. The angle is normalized to be between 0 and 2π radians (0 to 360 degrees).

    \n
    Returns:

    The angle in radians (0 to 2π), where 0 is pointing up (north)

    \n
    Example:
    // Basic angle calculation\nconst startPoint = { x: 0, y: 0 };\nconst endPoint = { x: 1, y: 1 };\nconst angle = getPointsAngle(startPoint, endPoint);\nconst degrees = angle * (180 / Math.PI); // Convert to degrees\n
    \n
    Example:
    // Arrow direction for canvas drawing\nfunction drawArrow(ctx, from, to) {\n  const angle = getPointsAngle(from, to);\n\n  // Draw line\n  ctx.beginPath();\n  ctx.moveTo(from.x, from.y);\n  ctx.lineTo(to.x, to.y);\n  ctx.stroke();\n\n  // Draw arrowhead\n  const headLength = 10;\n  ctx.save();\n  ctx.translate(to.x, to.y);\n  ctx.rotate(angle);\n  ctx.beginPath();\n  ctx.moveTo(0, 0);\n  ctx.lineTo(-headLength, -headLength/2);\n  ctx.lineTo(-headLength, headLength/2);\n  ctx.closePath();\n  ctx.fill();\n  ctx.restore();\n}\n
    \n
    Example:
    // Compass directions\nconst center = { x: 100, y: 100 };\nconst north = { x: 100, y: 50 };\nconst east = { x: 150, y: 100 };\n\nconst northAngle = getPointsAngle(center, north); // ~0 radians (0°)\nconst eastAngle = getPointsAngle(center, east);   // ~π/2 radians (90°)\n
    \n
    Since:

    1.0.0

    \n
    See:

    getPointsDistance - For calculating distance between the same points

    \n"},"sources":[{"fileName":"packages/canvas-utils/src/utils/calculate.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/canvas-utils/src/utils/calculate.ts","line":216,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/canvas-utils/src/utils/calculate.ts#L216"}],"parentId":2081}],"is":{"declaration":true},"location":{"query":"canvas-utils/src.Function.getPointsAngle","hash":""},"text":{},"parentId":1451} diff --git a/docs/v1.0.0-beta01/data/canvas-utils/src.Function.getPointsDistance.json b/docs/v1.0.0-beta01/data/canvas-utils/src.Function.getPointsDistance.json new file mode 100644 index 000000000..c1f81daac --- /dev/null +++ b/docs/v1.0.0-beta01/data/canvas-utils/src.Function.getPointsDistance.json @@ -0,0 +1 @@ +{"id":2085,"name":"getPointsDistance","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/canvas-utils/src/utils/calculate.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/canvas-utils/src/utils/calculate.ts","line":279,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/canvas-utils/src/utils/calculate.ts#L279"}],"signatures":[{"id":2086,"name":"getPointsDistance","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"getPointsDistance"}]},{"tag":"@description","content":[{"kind":"text","text":"获得两个点距离。Calculates the Euclidean distance between two points using the Pythagorean theorem (√((x₂-x₁)² + (y₂-y₁)²))."}]},{"tag":"@returns","content":[{"kind":"text","text":"两个点的距离数值。The distance between the two points in the same units as the coordinates"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Basic distance calculation\r\nconst pointA = { x: 0, y: 0 };\r\nconst pointB = { x: 3, y: 4 };\r\nconst distance = getPointsDistance(pointA, pointB); // Returns 5 (3-4-5 triangle)\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Collision detection\r\nfunction checkCollision(object1, object2, threshold = 20) {\r\n const distance = getPointsDistance(object1.position, object2.position);\r\n return distance < threshold;\r\n}\r\n\r\nconst player = { position: { x: 100, y: 150 } };\r\nconst enemy = { position: { x: 110, y: 160 } };\r\n\r\nif (checkCollision(player, enemy)) {\r\n console.log('Collision detected!');\r\n}\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Animation easing based on distance\r\nfunction animateToTarget(current, target, speed = 0.1) {\r\n const distance = getPointsDistance(current, target);\r\n\r\n if (distance < 1) {\r\n return target; // Close enough, snap to target\r\n }\r\n\r\n // Move towards target\r\n const dx = target.x - current.x;\r\n const dy = target.y - current.y;\r\n\r\n return {\r\n x: current.x + dx * speed,\r\n y: current.y + dy * speed\r\n };\r\n}\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Canvas zoom level calculation\r\nconst mouseStart = { x: 100, y: 100 };\r\nconst mouseCurrent = { x: 150, y: 120 };\r\nconst dragDistance = getPointsDistance(mouseStart, mouseCurrent);\r\nconst zoomFactor = 1 + (dragDistance / 100); // Zoom based on drag distance\n```"}]},{"tag":"@since","content":[{"kind":"text","text":"1.0.0"}]},{"tag":"@see","content":[{"kind":"inline-tag","tag":"@link","text":"getPointsAngle","target":2081},{"kind":"text","text":" - For calculating angle between the same points"}]}]},"parameters":[{"id":2087,"name":"point1","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"第一个点坐标。The first point with x and y coordinates"}]},"originalName":"__namedParameters","type":{"type":"reference","id":2171,"name":"PointPosition"},"text":{"comment":"

    第一个点坐标。The first point with x and y coordinates

    \n"}},{"id":2088,"name":"point2","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"第二个点坐标。The second point with x and y coordinates"}]},"originalName":"__namedParameters","type":{"type":"reference","id":2171,"name":"PointPosition"},"text":{"comment":"

    第二个点坐标。The second point with x and y coordinates

    \n"}}],"type":{"type":"intrinsic","name":"number"},"is":{"declaration":false},"location":{"query":"canvas-utils/src.Function.getPointsDistance","hash":"getPointsDistance"},"text":{"comment":"
    Function:

    getPointsDistance

    \n
    Description:

    获得两个点距离。Calculates the Euclidean distance between two points using the Pythagorean theorem (√((x₂-x₁)² + (y₂-y₁)²)).

    \n
    Returns:

    两个点的距离数值。The distance between the two points in the same units as the coordinates

    \n
    Example:
    // Basic distance calculation\nconst pointA = { x: 0, y: 0 };\nconst pointB = { x: 3, y: 4 };\nconst distance = getPointsDistance(pointA, pointB); // Returns 5 (3-4-5 triangle)\n
    \n
    Example:
    // Collision detection\nfunction checkCollision(object1, object2, threshold = 20) {\n  const distance = getPointsDistance(object1.position, object2.position);\n  return distance < threshold;\n}\n\nconst player = { position: { x: 100, y: 150 } };\nconst enemy = { position: { x: 110, y: 160 } };\n\nif (checkCollision(player, enemy)) {\n  console.log('Collision detected!');\n}\n
    \n
    Example:
    // Animation easing based on distance\nfunction animateToTarget(current, target, speed = 0.1) {\n  const distance = getPointsDistance(current, target);\n\n  if (distance < 1) {\n    return target; // Close enough, snap to target\n  }\n\n  // Move towards target\n  const dx = target.x - current.x;\n  const dy = target.y - current.y;\n\n  return {\n    x: current.x + dx * speed,\n    y: current.y + dy * speed\n  };\n}\n
    \n
    Example:
    // Canvas zoom level calculation\nconst mouseStart = { x: 100, y: 100 };\nconst mouseCurrent = { x: 150, y: 120 };\nconst dragDistance = getPointsDistance(mouseStart, mouseCurrent);\nconst zoomFactor = 1 + (dragDistance / 100); // Zoom based on drag distance\n
    \n
    Since:

    1.0.0

    \n
    See:

    getPointsAngle - For calculating angle between the same points

    \n"},"sources":[{"fileName":"packages/canvas-utils/src/utils/calculate.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/canvas-utils/src/utils/calculate.ts","line":279,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/canvas-utils/src/utils/calculate.ts#L279"}],"parentId":2085}],"is":{"declaration":true},"location":{"query":"canvas-utils/src.Function.getPointsDistance","hash":""},"text":{},"parentId":1451} diff --git a/docs/v1.0.0-beta01/data/canvas-utils/src.Function.isTransparentColor.json b/docs/v1.0.0-beta01/data/canvas-utils/src.Function.isTransparentColor.json new file mode 100644 index 000000000..54c6fdec8 --- /dev/null +++ b/docs/v1.0.0-beta01/data/canvas-utils/src.Function.isTransparentColor.json @@ -0,0 +1 @@ +{"id":2102,"name":"isTransparentColor","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/canvas-utils/src/utils/colors.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/canvas-utils/src/utils/colors.ts","line":175,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/canvas-utils/src/utils/colors.ts#L175"}],"signatures":[{"id":2103,"name":"isTransparentColor","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"isTransparentColor"}]},{"tag":"@description","content":[{"kind":"text","text":"是否为透明色。Determines if a color string represents a transparent color by checking if the alpha value is 0. Works with RGBA color strings and handles various formatting."}]},{"tag":"@returns","content":[{"kind":"text","text":"返回当前颜色是否为透明色。True if the color is transparent (alpha = 0), false otherwise"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Transparent colors\nconst transparent1 = isTransparentColor('rgba(255,0,0,0)'); // Returns true\nconst transparent2 = isTransparentColor('rgba(0, 255, 0, 0)'); // Returns true (with spaces)\nconst transparent3 = isTransparentColor('rgba(100,100,100,0)'); // Returns true\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Opaque colors\nconst opaque1 = isTransparentColor('rgba(255,0,0,1)'); // Returns false\nconst opaque2 = isTransparentColor('rgba(0,0,255,0.5)'); // Returns false\nconst opaque3 = isTransparentColor(getColorRgba('#f00')); // Returns false\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Invalid or empty strings\nconst empty = isTransparentColor(''); // Returns false\nconst invalid = isTransparentColor('not-a-color'); // Returns false\nconst rgb = isTransparentColor('rgb(255,0,0)'); // Returns false (no alpha)\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Canvas rendering optimization\nfunction drawElement(ctx, color, x, y, width, height) {\n if (isTransparentColor(color)) {\n console.log('Skipping transparent element');\n return; // Skip rendering transparent elements for performance\n }\n\n ctx.fillStyle = color;\n ctx.fillRect(x, y, width, height);\n}\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Layer visibility check\nconst layers = [\n { color: 'rgba(255,0,0,1)', visible: true },\n { color: 'rgba(0,255,0,0)', visible: true },\n { color: 'rgba(0,0,255,0.5)', visible: true }\n];\n\nconst visibleLayers = layers.filter(layer =>\n layer.visible && !isTransparentColor(layer.color)\n);\n```"}]},{"tag":"@since","content":[{"kind":"text","text":"1.0.0"}]},{"tag":"@see","content":[{"kind":"inline-tag","tag":"@link","text":"getColorRgba","target":2098},{"kind":"text","text":" - For creating RGBA color strings"}]}]},"parameters":[{"id":2104,"name":"colorStr","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"颜色字符串。Color string to check (typically RGBA format)"}]},"type":{"type":"intrinsic","name":"string"},"text":{"comment":"

    颜色字符串。Color string to check (typically RGBA format)

    \n"}}],"type":{"type":"intrinsic","name":"boolean"},"is":{"declaration":false},"location":{"query":"canvas-utils/src.Function.isTransparentColor","hash":"isTransparentColor"},"text":{"comment":"
    Function:

    isTransparentColor

    \n
    Description:

    是否为透明色。Determines if a color string represents a transparent color by checking if the alpha value is 0. Works with RGBA color strings and handles various formatting.

    \n
    Returns:

    返回当前颜色是否为透明色。True if the color is transparent (alpha = 0), false otherwise

    \n
    Example:
    // Transparent colors\nconst transparent1 = isTransparentColor('rgba(255,0,0,0)');      // Returns true\nconst transparent2 = isTransparentColor('rgba(0, 255, 0, 0)');   // Returns true (with spaces)\nconst transparent3 = isTransparentColor('rgba(100,100,100,0)');  // Returns true\n
    \n
    Example:
    // Opaque colors\nconst opaque1 = isTransparentColor('rgba(255,0,0,1)');           // Returns false\nconst opaque2 = isTransparentColor('rgba(0,0,255,0.5)');         // Returns false\nconst opaque3 = isTransparentColor(getColorRgba('#f00'));        // Returns false\n
    \n
    Example:
    // Invalid or empty strings\nconst empty = isTransparentColor('');                            // Returns false\nconst invalid = isTransparentColor('not-a-color');              // Returns false\nconst rgb = isTransparentColor('rgb(255,0,0)');                 // Returns false (no alpha)\n
    \n
    Example:
    // Canvas rendering optimization\nfunction drawElement(ctx, color, x, y, width, height) {\n  if (isTransparentColor(color)) {\n    console.log('Skipping transparent element');\n    return; // Skip rendering transparent elements for performance\n  }\n\n  ctx.fillStyle = color;\n  ctx.fillRect(x, y, width, height);\n}\n
    \n
    Example:
    // Layer visibility check\nconst layers = [\n  { color: 'rgba(255,0,0,1)', visible: true },\n  { color: 'rgba(0,255,0,0)', visible: true },\n  { color: 'rgba(0,0,255,0.5)', visible: true }\n];\n\nconst visibleLayers = layers.filter(layer =>\n  layer.visible && !isTransparentColor(layer.color)\n);\n
    \n
    Since:

    1.0.0

    \n
    See:

    getColorRgba - For creating RGBA color strings

    \n"},"sources":[{"fileName":"packages/canvas-utils/src/utils/colors.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/canvas-utils/src/utils/colors.ts","line":175,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/canvas-utils/src/utils/colors.ts#L175"}],"parentId":2102}],"is":{"declaration":true},"location":{"query":"canvas-utils/src.Function.isTransparentColor","hash":""},"text":{},"parentId":1451} diff --git a/docs/v1.0.0-beta01/data/canvas-utils/src.Function.max.json b/docs/v1.0.0-beta01/data/canvas-utils/src.Function.max.json new file mode 100644 index 000000000..3d940f9d5 --- /dev/null +++ b/docs/v1.0.0-beta01/data/canvas-utils/src.Function.max.json @@ -0,0 +1 @@ +{"id":2092,"name":"max","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/canvas-utils/src/utils/calculate.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/canvas-utils/src/utils/calculate.ts","line":61,"character":13,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/canvas-utils/src/utils/calculate.ts#L61"}],"signatures":[{"id":2093,"name":"max","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"max"}]},{"tag":"@description","content":[{"kind":"text","text":"求数组最大值。Finds the maximum value in an array of numbers. This is an alias for the arrayMax function from the utils package."}]},{"tag":"@returns","content":[{"kind":"text","text":"最大值。The largest number in the array"}]},{"tag":"@throws","content":[{"kind":"text","text":"Throws an error if the array is empty or contains non-numeric values"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Basic maximum finding\r\nconst values = [10, 5, 8, 3, 12];\r\nconst maxValue = max(values); // Returns 12\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Finding maximum in chart data\r\nconst chartData = [25, 40, 15, 60, 30];\r\nconst maxDataPoint = max(chartData); // Returns 60\r\n// Use for setting chart Y-axis maximum\n```"}]},{"tag":"@since","content":[{"kind":"text","text":"1.0.0"}]},{"tag":"@see","content":[{"kind":"text","text":" - "},{"kind":"inline-tag","tag":"@link","text":"min","target":2089},{"kind":"text","text":" - For finding minimum values"},{"kind":"text","text":"\n"},{"kind":"text","text":" - "},{"kind":"inline-tag","tag":"@link","text":"getListExtremum","target":2075},{"kind":"text","text":" - For finding both min and max in one operation"},{"kind":"text","text":"\n"}]}]},"parameters":[{"id":2094,"name":"arr","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"数值列表。Array of numbers to find the maximum value from (must not be empty)"}]},"type":{"type":"reference","id":299,"name":"NumberArr"},"text":{"comment":"

    数值列表。Array of numbers to find the maximum value from (must not be empty)

    \n"}}],"type":{"type":"intrinsic","name":"number"},"is":{"declaration":false},"location":{"query":"canvas-utils/src.Function.max","hash":"max"},"text":{"comment":"
    Function:

    max

    \n
    Description:

    求数组最大值。Finds the maximum value in an array of numbers. This is an alias for the arrayMax function from the utils package.

    \n
    Returns:

    最大值。The largest number in the array

    \n
    Throws:

    Throws an error if the array is empty or contains non-numeric values

    \n
    Example:
    // Basic maximum finding\nconst values = [10, 5, 8, 3, 12];\nconst maxValue = max(values); // Returns 12\n
    \n
    Example:
    // Finding maximum in chart data\nconst chartData = [25, 40, 15, 60, 30];\nconst maxDataPoint = max(chartData); // Returns 60\n// Use for setting chart Y-axis maximum\n
    \n
    Since:

    1.0.0

    \n
    See:
    \n"},"sources":[{"fileName":"packages/utils/src/array.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/array.ts","line":31,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/array.ts#L31"}],"parentId":2092}],"is":{"declaration":true},"location":{"query":"canvas-utils/src.Function.max","hash":""},"text":{},"parentId":1451} diff --git a/docs/v1.0.0-beta01/data/canvas-utils/src.Function.min.json b/docs/v1.0.0-beta01/data/canvas-utils/src.Function.min.json new file mode 100644 index 000000000..04bf371e8 --- /dev/null +++ b/docs/v1.0.0-beta01/data/canvas-utils/src.Function.min.json @@ -0,0 +1 @@ +{"id":2089,"name":"min","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/canvas-utils/src/utils/calculate.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/canvas-utils/src/utils/calculate.ts","line":38,"character":13,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/canvas-utils/src/utils/calculate.ts#L38"}],"signatures":[{"id":2090,"name":"min","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"min"}]},{"tag":"@description","content":[{"kind":"text","text":"求数组最小值。Finds the minimum value in an array of numbers. This is an alias for the arrayMin function from the utils package."}]},{"tag":"@returns","content":[{"kind":"text","text":"最小值。The smallest number in the array"}]},{"tag":"@throws","content":[{"kind":"text","text":"Throws an error if the array is empty or contains non-numeric values"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Basic minimum finding\r\nconst values = [10, 5, 8, 3, 12];\r\nconst minValue = min(values); // Returns 3\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Finding minimum in chart data\r\nconst chartData = [25, 40, 15, 60, 30];\r\nconst minDataPoint = min(chartData); // Returns 15\r\n// Use for setting chart Y-axis minimum\n```"}]},{"tag":"@since","content":[{"kind":"text","text":"1.0.0"}]},{"tag":"@see","content":[{"kind":"text","text":" - "},{"kind":"inline-tag","tag":"@link","text":"max","target":2092},{"kind":"text","text":" - For finding maximum values"},{"kind":"text","text":"\n"},{"kind":"text","text":" - "},{"kind":"inline-tag","tag":"@link","text":"getListExtremum","target":2075},{"kind":"text","text":" - For finding both min and max in one operation"},{"kind":"text","text":"\n"}]}]},"parameters":[{"id":2091,"name":"arr","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"数值列表。Array of numbers to find the minimum value from (must not be empty)"}]},"type":{"type":"reference","id":299,"name":"NumberArr"},"text":{"comment":"

    数值列表。Array of numbers to find the minimum value from (must not be empty)

    \n"}}],"type":{"type":"intrinsic","name":"number"},"is":{"declaration":false},"location":{"query":"canvas-utils/src.Function.min","hash":"min"},"text":{"comment":"
    Function:

    min

    \n
    Description:

    求数组最小值。Finds the minimum value in an array of numbers. This is an alias for the arrayMin function from the utils package.

    \n
    Returns:

    最小值。The smallest number in the array

    \n
    Throws:

    Throws an error if the array is empty or contains non-numeric values

    \n
    Example:
    // Basic minimum finding\nconst values = [10, 5, 8, 3, 12];\nconst minValue = min(values); // Returns 3\n
    \n
    Example:
    // Finding minimum in chart data\nconst chartData = [25, 40, 15, 60, 30];\nconst minDataPoint = min(chartData); // Returns 15\n// Use for setting chart Y-axis minimum\n
    \n
    Since:

    1.0.0

    \n
    See:
    \n"},"sources":[{"fileName":"packages/utils/src/array.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/utils/src/array.ts","line":52,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/utils/src/array.ts#L52"}],"parentId":2089}],"is":{"declaration":true},"location":{"query":"canvas-utils/src.Function.min","hash":""},"text":{},"parentId":1451} diff --git a/docs/v1.0.0-beta01/data/canvas-utils/src.Function.mixins.json b/docs/v1.0.0-beta01/data/canvas-utils/src.Function.mixins.json new file mode 100644 index 000000000..6357bc6e5 --- /dev/null +++ b/docs/v1.0.0-beta01/data/canvas-utils/src.Function.mixins.json @@ -0,0 +1 @@ +{"id":2154,"name":"mixins","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/canvas-utils/src/utils/decorators.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/canvas-utils/src/utils/decorators.ts","line":87,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/canvas-utils/src/utils/decorators.ts#L87"}],"signatures":[{"id":2155,"name":"mixins","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"mixins"}]},{"tag":"@description","content":[{"kind":"text","text":"实现混入模式的类装饰器。A class decorator that implements the mixin pattern by copying properties and methods from multiple source objects to the target class prototype. Enables multiple inheritance-like behavior in TypeScript classes."}]},{"tag":"@returns","content":[{"kind":"text","text":"应用混入的类装饰器函数。Class decorator function that applies the mixins"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Define mixin objects\r\nconst DrawingMixin = {\r\n drawLine(x1, y1, x2, y2) {\r\n this.ctx.beginPath();\r\n this.ctx.moveTo(x1, y1);\r\n this.ctx.lineTo(x2, y2);\r\n this.ctx.stroke();\r\n }\r\n};\r\n\r\nconst ColorMixin = {\r\n setColor(color) {\r\n this.ctx.fillStyle = color;\r\n this.ctx.strokeStyle = color;\r\n }\r\n};\r\n\r\n// Apply mixins to class\r\n@mixins(DrawingMixin, ColorMixin)\r\nclass MyChart {\r\n constructor(canvas) {\r\n this.ctx = canvas.getContext('2d');\r\n }\r\n\r\n render() {\r\n this.setColor('#ff0000'); // From ColorMixin\r\n this.drawLine(0, 0, 100, 100); // From DrawingMixin\r\n }\r\n}\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Multiple chart types sharing common functionality\r\nconst AnimationMixin = {\r\n startAnimation(duration = 1000) {\r\n // Animation logic\r\n },\r\n\r\n stopAnimation() {\r\n // Stop animation logic\r\n }\r\n};\r\n\r\nconst EventMixin = {\r\n addEventListener(event, handler) {\r\n this.canvas.addEventListener(event, handler);\r\n }\r\n};\r\n\r\n@mixins(AnimationMixin, EventMixin)\r\nclass BarChart {\r\n // Bar chart specific implementation\r\n}\r\n\r\n@mixins(AnimationMixin, EventMixin)\r\nclass LineChart {\r\n // Line chart specific implementation\r\n}\n```"}]},{"tag":"@since","content":[{"kind":"text","text":"1.0.0"}]}]},"parameters":[{"id":2156,"name":"list","kind":32768,"kindString":"Parameter","flags":{"isRest":true},"comment":{"summary":[{"kind":"text","text":"要混入到目标类的对象/类的可变数量参数。Variable number of objects/classes to mix into the target class"}]},"type":{"type":"array","elementType":{"type":"intrinsic","name":"any"}},"text":{"comment":"

    要混入到目标类的对象/类的可变数量参数。Variable number of objects/classes to mix into the target class

    \n"}}],"type":{"type":"reflection","declaration":{"id":2157,"name":"mixins","kind":65536,"kindString":"Type literal","flags":{},"sources":[{"fileName":"packages/canvas-utils/src/utils/decorators.ts","line":88,"character":9,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/canvas-utils/src/utils/decorators.ts#L88"}],"signatures":[{"id":2158,"name":"mixins","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":2159,"name":"target","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"intrinsic","name":"any"},"text":{}}],"type":{"type":"intrinsic","name":"void"},"is":{"declaration":false},"location":{"query":"canvas-utils/src.Function.mixins","hash":"mixins.__type"},"text":{},"sources":[{"fileName":"packages/canvas-utils/src/utils/decorators.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/canvas-utils/src/utils/decorators.ts","line":88,"character":9,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/canvas-utils/src/utils/decorators.ts#L88"}],"parentId":2154}],"location":{"query":"canvas-utils/src.Function.mixins","hash":"mixins"}}},"is":{"declaration":false},"location":{"query":"canvas-utils/src.Function.mixins","hash":"mixins"},"text":{"comment":"
    Function:

    mixins

    \n
    Description:

    实现混入模式的类装饰器。A class decorator that implements the mixin pattern by copying properties and methods from multiple source objects to the target class prototype. Enables multiple inheritance-like behavior in TypeScript classes.

    \n
    Returns:

    应用混入的类装饰器函数。Class decorator function that applies the mixins

    \n
    Example:
    // Define mixin objects\nconst DrawingMixin = {\n  drawLine(x1, y1, x2, y2) {\n    this.ctx.beginPath();\n    this.ctx.moveTo(x1, y1);\n    this.ctx.lineTo(x2, y2);\n    this.ctx.stroke();\n  }\n};\n\nconst ColorMixin = {\n  setColor(color) {\n    this.ctx.fillStyle = color;\n    this.ctx.strokeStyle = color;\n  }\n};\n\n// Apply mixins to class\n@mixins(DrawingMixin, ColorMixin)\nclass MyChart {\n  constructor(canvas) {\n    this.ctx = canvas.getContext('2d');\n  }\n\n  render() {\n    this.setColor('#ff0000');  // From ColorMixin\n    this.drawLine(0, 0, 100, 100);  // From DrawingMixin\n  }\n}\n
    \n
    Example:
    // Multiple chart types sharing common functionality\nconst AnimationMixin = {\n  startAnimation(duration = 1000) {\n    // Animation logic\n  },\n\n  stopAnimation() {\n    // Stop animation logic\n  }\n};\n\nconst EventMixin = {\n  addEventListener(event, handler) {\n    this.canvas.addEventListener(event, handler);\n  }\n};\n\n@mixins(AnimationMixin, EventMixin)\nclass BarChart {\n  // Bar chart specific implementation\n}\n\n@mixins(AnimationMixin, EventMixin)\nclass LineChart {\n  // Line chart specific implementation\n}\n
    \n
    Since:

    1.0.0

    \n"},"sources":[{"fileName":"packages/canvas-utils/src/utils/decorators.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/canvas-utils/src/utils/decorators.ts","line":87,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/canvas-utils/src/utils/decorators.ts#L87"}],"parentId":2154}],"is":{"declaration":true},"location":{"query":"canvas-utils/src.Function.mixins","hash":""},"text":{},"parentId":1451} diff --git a/docs/v1.0.0-beta01/data/canvas-utils/src.Function.retinaScale.json b/docs/v1.0.0-beta01/data/canvas-utils/src.Function.retinaScale.json new file mode 100644 index 000000000..1f11fdea6 --- /dev/null +++ b/docs/v1.0.0-beta01/data/canvas-utils/src.Function.retinaScale.json @@ -0,0 +1 @@ +{"id":2139,"name":"retinaScale","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/canvas-utils/src/canvas/drawer.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/canvas-utils/src/canvas/drawer.ts","line":335,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/canvas-utils/src/canvas/drawer.ts#L335"}],"signatures":[{"id":2140,"name":"retinaScale","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"retinaScale"}]},{"tag":"@description","content":[{"kind":"text","text":"Canvas元素适配移动端机型,for web。Adapts canvas elements for high-DPI (Retina) displays by scaling the canvas resolution while maintaining the display size. This ensures crisp rendering on devices with pixel ratios greater than 1."}]},{"tag":"@returns","content":[{"kind":"text","text":"The device pixel ratio that was applied (1 for standard displays, >1 for high-DPI displays)"}]},{"tag":"@example","content":[{"kind":"text","text":"// Basic retina scaling setup\r\nconst canvas = document.getElementById('myCanvas');\r\nconst ctx = canvas.getContext('2d');\r\n\r\n// Set initial canvas size\r\ncanvas.width = 400;\r\ncanvas.height = 300;\r\n\r\n// Apply retina scaling\r\nconst pixelRatio = retinaScale(canvas, ctx);\r\nconsole.log("},{"kind":"code","text":"`Applied pixel ratio: ${pixelRatio}`"},{"kind":"text","text":");"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Complete setup for high-DPI canvas\r\nfunction setupCanvas(canvasId) {\r\n const canvas = document.getElementById(canvasId);\r\n const ctx = canvas.getContext('2d');\r\n\r\n // Set desired display size\r\n canvas.width = 500;\r\n canvas.height = 400;\r\n\r\n // Apply retina scaling\r\n const ratio = retinaScale(canvas, ctx);\r\n\r\n // Now draw with normal coordinates\r\n ctx.fillStyle = '#0066cc';\r\n ctx.fillRect(10, 10, 100, 100); // Will be crisp on all displays\r\n\r\n return { canvas, ctx, ratio };\r\n}\n```"}]},{"tag":"@since","content":[{"kind":"text","text":"1.0.0"}]}]},"parameters":[{"id":2141,"name":"canvas","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"The HTML canvas element to scale"}]},"type":{"type":"reference","name":"HTMLCanvasElement","qualifiedName":"HTMLCanvasElement","package":"typescript"},"text":{"comment":"

    The HTML canvas element to scale

    \n"}},{"id":2142,"name":"ctx","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"The 2D rendering context of the canvas element"}]},"type":{"type":"reference","name":"CanvasRenderingContext2D","qualifiedName":"CanvasRenderingContext2D","package":"typescript"},"text":{"comment":"

    The 2D rendering context of the canvas element

    \n"}}],"type":{"type":"intrinsic","name":"number"},"is":{"declaration":false},"location":{"query":"canvas-utils/src.Function.retinaScale","hash":"retinaScale"},"text":{"comment":"
    Function:

    retinaScale

    \n
    Description:

    Canvas元素适配移动端机型,for web。Adapts canvas elements for high-DPI (Retina) displays by scaling the canvas resolution while maintaining the display size. This ensures crisp rendering on devices with pixel ratios greater than 1.

    \n
    Returns:

    The device pixel ratio that was applied (1 for standard displays, >1 for high-DPI displays)

    \n
    Example:

    // Basic retina scaling setup\nconst canvas = document.getElementById('myCanvas');\nconst ctx = canvas.getContext('2d');

    \n

    // Set initial canvas size\ncanvas.width = 400;\ncanvas.height = 300;

    \n

    // Apply retina scaling\nconst pixelRatio = retinaScale(canvas, ctx);\nconsole.log(Applied pixel ratio: ${pixelRatio});

    \n
    Example:
    // Complete setup for high-DPI canvas\nfunction setupCanvas(canvasId) {\n  const canvas = document.getElementById(canvasId);\n  const ctx = canvas.getContext('2d');\n\n  // Set desired display size\n  canvas.width = 500;\n  canvas.height = 400;\n\n  // Apply retina scaling\n  const ratio = retinaScale(canvas, ctx);\n\n  // Now draw with normal coordinates\n  ctx.fillStyle = '#0066cc';\n  ctx.fillRect(10, 10, 100, 100); // Will be crisp on all displays\n\n  return { canvas, ctx, ratio };\n}\n
    \n
    Since:

    1.0.0

    \n"},"sources":[{"fileName":"packages/canvas-utils/src/canvas/drawer.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/canvas-utils/src/canvas/drawer.ts","line":335,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/canvas-utils/src/canvas/drawer.ts#L335"}],"parentId":2139}],"is":{"declaration":true},"location":{"query":"canvas-utils/src.Function.retinaScale","hash":""},"text":{},"parentId":1451} diff --git a/docs/v1.0.0-beta01/data/canvas-utils/src.Function.setAnimationHooks.json b/docs/v1.0.0-beta01/data/canvas-utils/src.Function.setAnimationHooks.json new file mode 100644 index 000000000..9f578d2ec --- /dev/null +++ b/docs/v1.0.0-beta01/data/canvas-utils/src.Function.setAnimationHooks.json @@ -0,0 +1 @@ +{"id":2160,"name":"setAnimationHooks","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/canvas-utils/src/utils/decorators.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/canvas-utils/src/utils/decorators.ts","line":158,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/canvas-utils/src/utils/decorators.ts#L158"}],"signatures":[{"id":2161,"name":"setAnimationHooks","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"setAnimationHooks"}]},{"tag":"@description","content":[{"kind":"text","text":"为图表工厂类添加动画功能。Adds animation capabilities to chart factory classes by injecting a setAnimation method. The method uses the built-in animate function with configuration from the chart's options."}]},{"tag":"@returns","content":[{"kind":"text","text":"此函数直接修改类原型。This function modifies the class prototype directly"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Define a chart class\r\nclass PieChart {\r\n constructor(options) {\r\n this.chartjs = {\r\n opts: {\r\n duration: 1500,\r\n onFinish: () => console.log('Animation complete')\r\n }\r\n };\r\n }\r\n\r\n render() {\r\n // Chart rendering logic\r\n }\r\n}\r\n\r\n// Add animation hooks\r\nsetAnimationHooks(PieChart);\r\n\r\n// Now the chart has animation capabilities\r\nconst chart = new PieChart({\r\n duration: 2000,\r\n onFinish: () => console.log('Pie chart animated!')\r\n});\r\n\r\n// Use the injected animation method\r\nchart.setAnimation((progress) => {\r\n // Update chart based on animation progress (0 to 1)\r\n chart.animationProgress = progress;\r\n chart.render();\r\n});\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Multiple chart types with consistent animation\r\nclass BarChart {\r\n constructor(options) {\r\n this.chartjs = { opts: options };\r\n }\r\n}\r\n\r\nclass LineChart {\r\n constructor(options) {\r\n this.chartjs = { opts: options };\r\n }\r\n}\r\n\r\n// Add animation to both chart types\r\nsetAnimationHooks(BarChart);\r\nsetAnimationHooks(LineChart);\r\n\r\n// Both charts now have the same animation interface\r\nconst barChart = new BarChart({ duration: 1000 });\r\nconst lineChart = new LineChart({ duration: 1500 });\n```"}]},{"tag":"@since","content":[{"kind":"text","text":"1.0.0"}]},{"tag":"@see","content":[{"kind":"inline-tag","tag":"@link","text":"animate","target":2168},{"kind":"text","text":" - The underlying animation function used"}]}]},"parameters":[{"id":2162,"name":"chartFactory","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"要增强动画功能的图表类构造函数。The chart class constructor to enhance with animation capabilities"}]},"type":{"type":"reference","name":"Function","qualifiedName":"Function","package":"typescript"},"text":{"comment":"

    要增强动画功能的图表类构造函数。The chart class constructor to enhance with animation capabilities

    \n"}}],"type":{"type":"intrinsic","name":"void"},"is":{"declaration":false},"location":{"query":"canvas-utils/src.Function.setAnimationHooks","hash":"setAnimationHooks"},"text":{"comment":"
    Function:

    setAnimationHooks

    \n
    Description:

    为图表工厂类添加动画功能。Adds animation capabilities to chart factory classes by injecting a setAnimation method. The method uses the built-in animate function with configuration from the chart's options.

    \n
    Returns:

    此函数直接修改类原型。This function modifies the class prototype directly

    \n
    Example:
    // Define a chart class\nclass PieChart {\n  constructor(options) {\n    this.chartjs = {\n      opts: {\n        duration: 1500,\n        onFinish: () => console.log('Animation complete')\n      }\n    };\n  }\n\n  render() {\n    // Chart rendering logic\n  }\n}\n\n// Add animation hooks\nsetAnimationHooks(PieChart);\n\n// Now the chart has animation capabilities\nconst chart = new PieChart({\n  duration: 2000,\n  onFinish: () => console.log('Pie chart animated!')\n});\n\n// Use the injected animation method\nchart.setAnimation((progress) => {\n  // Update chart based on animation progress (0 to 1)\n  chart.animationProgress = progress;\n  chart.render();\n});\n
    \n
    Example:
    // Multiple chart types with consistent animation\nclass BarChart {\n  constructor(options) {\n    this.chartjs = { opts: options };\n  }\n}\n\nclass LineChart {\n  constructor(options) {\n    this.chartjs = { opts: options };\n  }\n}\n\n// Add animation to both chart types\nsetAnimationHooks(BarChart);\nsetAnimationHooks(LineChart);\n\n// Both charts now have the same animation interface\nconst barChart = new BarChart({ duration: 1000 });\nconst lineChart = new LineChart({ duration: 1500 });\n
    \n
    Since:

    1.0.0

    \n
    See:

    animate - The underlying animation function used

    \n"},"sources":[{"fileName":"packages/canvas-utils/src/utils/decorators.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/canvas-utils/src/utils/decorators.ts","line":158,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/canvas-utils/src/utils/decorators.ts#L158"}],"parentId":2160}],"is":{"declaration":true},"location":{"query":"canvas-utils/src.Function.setAnimationHooks","hash":""},"text":{},"parentId":1451} diff --git a/docs/v1.0.0-beta01/data/canvas-utils/src.Function.setEnvContext.json b/docs/v1.0.0-beta01/data/canvas-utils/src.Function.setEnvContext.json new file mode 100644 index 000000000..61f05452c --- /dev/null +++ b/docs/v1.0.0-beta01/data/canvas-utils/src.Function.setEnvContext.json @@ -0,0 +1 @@ +{"id":2163,"name":"setEnvContext","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/canvas-utils/src/utils/decorators.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/canvas-utils/src/utils/decorators.ts","line":252,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/canvas-utils/src/utils/decorators.ts#L252"}],"signatures":[{"id":2164,"name":"setEnvContext","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"setEnvContext"}]},{"tag":"@description","content":[{"kind":"text","text":"根据运行时环境自动设置适当的画布上下文的方法装饰器。A method decorator that automatically sets up the appropriate canvas context based on the runtime environment (web browser, WeChat mini-program, or Node.js). Handles canvas creation, sizing, and context initialization."}]},{"tag":"@returns","content":[{"kind":"text","text":"修改后的方法描述符。The modified method descriptor"}]},{"tag":"@throws","content":[{"kind":"text","text":"如果缺少所需的环境特定依赖项则抛出错误。Throws error if required environment-specific dependencies are missing"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Web browser usage\r\nclass WebChart {\r\n constructor(element, options) {\r\n this.$el = element; // DOM element\r\n this.opts = options;\r\n }\n```"}]},{"tag":"@setEnvContext","content":[{"kind":"text","text":"initialize() {\r\n // After decoration, this.canvas and this.ctx are available\r\n console.log(this.canvas); // HTMLCanvasElement\r\n console.log(this.ctx); // CanvasRenderingContext2D\r\n }\r\n}\r\n\r\nconst chart = new WebChart(document.getElementById('chart'), {\r\n width: 400,\r\n height: 300\r\n});\r\nchart.initialize();"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// WeChat mini-program usage\r\nclass WeappChart {\r\n constructor(options) {\r\n this.opts = {\r\n id: 'myCanvas', // Canvas component ID\r\n width: 400,\r\n height: 300,\r\n ...options\r\n };\r\n }\n```"}]},{"tag":"@setEnvContext","content":[{"kind":"text","text":"setup() {\r\n // Canvas context is automatically created for WeChat environment\r\n this.ctx.fillStyle = '#ff0000';\r\n this.ctx.fillRect(0, 0, 100, 100);\r\n this.canvas.draw(); // WeChat-specific draw method\r\n }\r\n}"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Node.js usage with node-canvas\r\nconst { createCanvas } = require('canvas');\r\n\r\nclass NodeChart {\r\n constructor(options) {\r\n this.opts = {\r\n Canvas: { createCanvas }, // Provide Canvas implementation\r\n width: 500,\r\n height: 400,\r\n handleOut: (canvas) => {\r\n // Save canvas to file or stream\r\n const fs = require('fs');\r\n const buffer = canvas.toBuffer('image/png');\r\n fs.writeFileSync('chart.png', buffer);\r\n },\r\n ...options\r\n };\r\n }\n```"}]},{"tag":"@setEnvContext","content":[{"kind":"text","text":"generate() {\r\n // Canvas and context are ready for server-side rendering\r\n this.ctx.fillStyle = '#0066cc';\r\n this.ctx.fillRect(0, 0, this.canvas.width, this.canvas.height);\r\n }\r\n}"}]},{"tag":"@since","content":[{"kind":"text","text":"1.0.0"}]},{"tag":"@see","content":[{"kind":"inline-tag","tag":"@link","text":"createCanvasElem","target":2143},{"kind":"text","text":" - For web canvas element creation"}]}]},"parameters":[{"id":2165,"name":"chart","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"被装饰的图表实例。The chart instance being decorated"}]},"type":{"type":"intrinsic","name":"any"},"text":{"comment":"

    被装饰的图表实例。The chart instance being decorated

    \n"}},{"id":2166,"name":"_","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"方法名(未使用的参数)。The method name (unused parameter)"}]},"type":{"type":"intrinsic","name":"string"},"text":{"comment":"

    方法名(未使用的参数)。The method name (unused parameter)

    \n"}},{"id":2167,"name":"descriptor","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"方法描述符。The method descriptor"}]},"type":{"type":"reference","name":"PropertyDescriptor","qualifiedName":"PropertyDescriptor","package":"typescript"},"text":{"comment":"

    方法描述符。The method descriptor

    \n"}}],"type":{"type":"reference","name":"PropertyDescriptor","qualifiedName":"PropertyDescriptor","package":"typescript"},"is":{"declaration":false},"location":{"query":"canvas-utils/src.Function.setEnvContext","hash":"setEnvContext"},"text":{"comment":"
    Function:

    setEnvContext

    \n
    Description:

    根据运行时环境自动设置适当的画布上下文的方法装饰器。A method decorator that automatically sets up the appropriate canvas context based on the runtime environment (web browser, WeChat mini-program, or Node.js). Handles canvas creation, sizing, and context initialization.

    \n
    Returns:

    修改后的方法描述符。The modified method descriptor

    \n
    Throws:

    如果缺少所需的环境特定依赖项则抛出错误。Throws error if required environment-specific dependencies are missing

    \n
    Example:
    // Web browser usage\nclass WebChart {\n  constructor(element, options) {\n    this.$el = element; // DOM element\n    this.opts = options;\n  }\n
    \n
    Setenvcontext:

    initialize() {\n // After decoration, this.canvas and this.ctx are available\n console.log(this.canvas); // HTMLCanvasElement\n console.log(this.ctx); // CanvasRenderingContext2D\n }\n}

    \n

    const chart = new WebChart(document.getElementById('chart'), {\n width: 400,\n height: 300\n});\nchart.initialize();

    \n
    Example:
    // WeChat mini-program usage\nclass WeappChart {\n  constructor(options) {\n    this.opts = {\n      id: 'myCanvas', // Canvas component ID\n      width: 400,\n      height: 300,\n      ...options\n    };\n  }\n
    \n
    Setenvcontext:

    setup() {\n // Canvas context is automatically created for WeChat environment\n this.ctx.fillStyle = '#ff0000';\n this.ctx.fillRect(0, 0, 100, 100);\n this.canvas.draw(); // WeChat-specific draw method\n }\n}

    \n
    Example:
    // Node.js usage with node-canvas\nconst { createCanvas } = require('canvas');\n\nclass NodeChart {\n  constructor(options) {\n    this.opts = {\n      Canvas: { createCanvas }, // Provide Canvas implementation\n      width: 500,\n      height: 400,\n      handleOut: (canvas) => {\n        // Save canvas to file or stream\n        const fs = require('fs');\n        const buffer = canvas.toBuffer('image/png');\n        fs.writeFileSync('chart.png', buffer);\n      },\n      ...options\n    };\n  }\n
    \n
    Setenvcontext:

    generate() {\n // Canvas and context are ready for server-side rendering\n this.ctx.fillStyle = '#0066cc';\n this.ctx.fillRect(0, 0, this.canvas.width, this.canvas.height);\n }\n}

    \n
    Since:

    1.0.0

    \n
    See:

    createCanvasElem - For web canvas element creation

    \n"},"sources":[{"fileName":"packages/canvas-utils/src/utils/decorators.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/canvas-utils/src/utils/decorators.ts","line":252,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/canvas-utils/src/utils/decorators.ts#L252"}],"parentId":2163}],"is":{"declaration":true},"location":{"query":"canvas-utils/src.Function.setEnvContext","hash":""},"text":{},"parentId":1451} diff --git a/docs/v1.0.0-beta01/data/canvas-utils/src.Function.throwError.json b/docs/v1.0.0-beta01/data/canvas-utils/src.Function.throwError.json new file mode 100644 index 000000000..70cefb8b8 --- /dev/null +++ b/docs/v1.0.0-beta01/data/canvas-utils/src.Function.throwError.json @@ -0,0 +1 @@ +{"id":2063,"name":"throwError","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/canvas-utils/src/utils/base.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/canvas-utils/src/utils/base.ts","line":242,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/canvas-utils/src/utils/base.ts#L242"}],"signatures":[{"id":2064,"name":"throwError","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"throwError"}]},{"tag":"@description","content":[{"kind":"text","text":"Throws a standardized error with formatted message including error information, component part, and additional details. This function never returns as it always throws an exception."}]},{"tag":"@returns","content":[{"kind":"text","text":"This function never returns as it always throws an Error"}]},{"tag":"@throws","content":[{"kind":"text","text":"Always throws an Error with formatted message"}]},{"tag":"@example","content":[{"kind":"text","text":"// Basic error throwing\r\nfunction validateCanvasSize(width, height) {\r\n if (width <= 0 || height <= 0) {\r\n throwError('Invalid canvas dimensions', 'validateCanvasSize', "},{"kind":"code","text":"`width: ${width}, height: ${height}`"},{"kind":"text","text":");\r\n }\r\n}"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Canvas context validation\r\nfunction initializeCanvas(canvas) {\r\n const ctx = canvas.getContext('2d');\r\n if (!ctx) {\r\n throwError('Failed to get 2D context', 'initializeCanvas', 'Canvas may not support 2D rendering');\r\n }\r\n return ctx;\r\n}\n```"}]},{"tag":"@example","content":[{"kind":"text","text":"// Animation parameter validation\r\nfunction startAnimation(options) {\r\n if (!options.duration || options.duration <= 0) {\r\n throwError(\r\n 'Invalid animation duration',\r\n 'startAnimation',\r\n "},{"kind":"code","text":"`Expected positive number, got: ${options.duration}`"},{"kind":"text","text":"\r\n );\r\n }\r\n}"}]},{"tag":"@since","content":[{"kind":"text","text":"1.0.0"}]}]},"parameters":[{"id":2065,"name":"info","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"错误信息。 The main error information or message"}]},"type":{"type":"intrinsic","name":"unknown"},"text":{"comment":"

    错误信息。 The main error information or message

    \n"}},{"id":2066,"name":"part","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"错误单元。The component or module part where the error occurred"}]},"type":{"type":"intrinsic","name":"string"},"defaultValue":"''","text":{"comment":"

    错误单元。The component or module part where the error occurred

    \n"}},{"id":2067,"name":"detail","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"错误单元细节。Additional error details or context"}]},"type":{"type":"intrinsic","name":"string"},"defaultValue":"''","text":{"comment":"

    错误单元细节。Additional error details or context

    \n"}}],"type":{"type":"intrinsic","name":"never"},"is":{"declaration":false},"location":{"query":"canvas-utils/src.Function.throwError","hash":"throwError"},"text":{"comment":"
    Function:

    throwError

    \n
    Description:

    Throws a standardized error with formatted message including error information, component part, and additional details. This function never returns as it always throws an exception.

    \n
    Returns:

    This function never returns as it always throws an Error

    \n
    Throws:

    Always throws an Error with formatted message

    \n
    Example:

    // Basic error throwing\nfunction validateCanvasSize(width, height) {\n if (width <= 0 || height <= 0) {\n throwError('Invalid canvas dimensions', 'validateCanvasSize', width: ${width}, height: ${height});\n }\n}

    \n
    Example:
    // Canvas context validation\nfunction initializeCanvas(canvas) {\n  const ctx = canvas.getContext('2d');\n  if (!ctx) {\n    throwError('Failed to get 2D context', 'initializeCanvas', 'Canvas may not support 2D rendering');\n  }\n  return ctx;\n}\n
    \n
    Example:

    // Animation parameter validation\nfunction startAnimation(options) {\n if (!options.duration || options.duration <= 0) {\n throwError(\n 'Invalid animation duration',\n 'startAnimation',\n Expected positive number, got: ${options.duration}\n );\n }\n}

    \n
    Since:

    1.0.0

    \n"},"sources":[{"fileName":"packages/canvas-utils/src/utils/base.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/canvas-utils/src/utils/base.ts","line":242,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/canvas-utils/src/utils/base.ts#L242"}],"parentId":2063}],"is":{"declaration":true},"location":{"query":"canvas-utils/src.Function.throwError","hash":""},"text":{},"parentId":1451} diff --git a/docs/v1.0.0-beta01/data/canvas-utils/src.Interface.PointPosition.json b/docs/v1.0.0-beta01/data/canvas-utils/src.Interface.PointPosition.json new file mode 100644 index 000000000..f53bdb707 --- /dev/null +++ b/docs/v1.0.0-beta01/data/canvas-utils/src.Interface.PointPosition.json @@ -0,0 +1 @@ +{"id":2171,"name":"PointPosition","kind":256,"kindString":"Interface","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@author","content":[{"kind":"text","text":"Wayne"}]},{"tag":"@Date","content":[{"kind":"text","text":"2022-06-06 09:40:04"}]},{"tag":"@LastEditTime","content":[{"kind":"text","text":"2022-06-07 15:22:45"}]}]},"children":[{"id":2172,"name":"x","kind":1024,"kindString":"Property","flags":{},"sources":[{"fileName":"packages/canvas-utils/src/types/index.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/canvas-utils/src/types/index.ts","line":8,"character":2,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/canvas-utils/src/types/index.ts#L8"}],"type":{"type":"intrinsic","name":"number"},"is":{"declaration":true},"location":{"query":"canvas-utils/src.Interface.PointPosition","hash":"x"},"text":{},"parentId":2171},{"id":2173,"name":"y","kind":1024,"kindString":"Property","flags":{},"sources":[{"fileName":"packages/canvas-utils/src/types/index.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/canvas-utils/src/types/index.ts","line":9,"character":2,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/canvas-utils/src/types/index.ts#L9"}],"type":{"type":"intrinsic","name":"number"},"is":{"declaration":true},"location":{"query":"canvas-utils/src.Interface.PointPosition","hash":"y"},"text":{},"parentId":2171}],"groups":[{"title":"Properties","children":[2172,2173]}],"sources":[{"fileName":"packages/canvas-utils/src/types/index.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/canvas-utils/src/types/index.ts","line":7,"character":17,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/canvas-utils/src/types/index.ts#L7"}],"is":{"declaration":true},"location":{"query":"canvas-utils/src.Interface.PointPosition","hash":""},"text":{"comment":"
    Author:

    Wayne

    \n
    Date:

    2022-06-06 09:40:04

    \n
    Lastedittime:

    2022-06-07 15:22:45

    \n"},"parentId":1451,"hierarchy":[{"name":"PointPosition","isTarget":true,"linkId":"2171"}]} diff --git a/docs/v1.0.0-beta01/data/canvas-utils/src.TypeAlias.ListExtremum.json b/docs/v1.0.0-beta01/data/canvas-utils/src.TypeAlias.ListExtremum.json new file mode 100644 index 000000000..3b45b31d9 --- /dev/null +++ b/docs/v1.0.0-beta01/data/canvas-utils/src.TypeAlias.ListExtremum.json @@ -0,0 +1 @@ +{"id":2175,"name":"ListExtremum","kind":4194304,"kindString":"Type alias","flags":{},"children":[],"sources":[{"fileName":"packages/canvas-utils/src/types/index.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/canvas-utils/src/types/index.ts","line":16,"character":12,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/canvas-utils/src/types/index.ts#L16"}],"type":{"type":"reflection","declaration":{"id":2176,"name":"ListExtremum","kind":65536,"kindString":"Type literal","flags":{},"children":[{"id":2177,"name":"max","kind":1024,"kindString":"Property","flags":{},"sources":[{"fileName":"packages/canvas-utils/src/types/index.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/canvas-utils/src/types/index.ts","line":17,"character":2,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/canvas-utils/src/types/index.ts#L17"}],"type":{"type":"intrinsic","name":"number"},"is":{"declaration":true},"location":{"query":"canvas-utils/src.TypeAlias.ListExtremum","hash":"max"},"text":{},"parentId":2175},{"id":2178,"name":"min","kind":1024,"kindString":"Property","flags":{},"sources":[{"fileName":"packages/canvas-utils/src/types/index.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/canvas-utils/src/types/index.ts","line":18,"character":2,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/canvas-utils/src/types/index.ts#L18"}],"type":{"type":"intrinsic","name":"number"},"is":{"declaration":true},"location":{"query":"canvas-utils/src.TypeAlias.ListExtremum","hash":"min"},"text":{},"parentId":2175}],"groups":[{"title":"Properties","children":[2177,2178]}],"sources":[{"fileName":"packages/canvas-utils/src/types/index.ts","line":16,"character":27,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/canvas-utils/src/types/index.ts#L16"}],"location":{"query":"canvas-utils/src.TypeAlias.ListExtremum","hash":""}}},"is":{"declaration":true},"location":{"query":"canvas-utils/src.TypeAlias.ListExtremum","hash":""},"text":{},"parentId":1451} diff --git a/docs/v1.0.0-beta01/data/canvas-utils/src.TypeAlias.PointsMap.json b/docs/v1.0.0-beta01/data/canvas-utils/src.TypeAlias.PointsMap.json new file mode 100644 index 000000000..d32bfaaa8 --- /dev/null +++ b/docs/v1.0.0-beta01/data/canvas-utils/src.TypeAlias.PointsMap.json @@ -0,0 +1 @@ +{"id":2174,"name":"PointsMap","kind":4194304,"kindString":"Type alias","flags":{},"children":[],"sources":[{"fileName":"packages/canvas-utils/src/types/index.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/canvas-utils/src/types/index.ts","line":13,"character":12,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/canvas-utils/src/types/index.ts#L13"}],"type":{"type":"array","elementType":{"type":"reference","id":2171,"name":"PointPosition"}},"is":{"declaration":true},"location":{"query":"canvas-utils/src.TypeAlias.PointsMap","hash":""},"text":{},"parentId":1451} diff --git a/docs/v1.0.0-beta01/data/canvas-utils/src.TypeAlias.SimpleObj.json b/docs/v1.0.0-beta01/data/canvas-utils/src.TypeAlias.SimpleObj.json new file mode 100644 index 000000000..011b96388 --- /dev/null +++ b/docs/v1.0.0-beta01/data/canvas-utils/src.TypeAlias.SimpleObj.json @@ -0,0 +1 @@ +{"id":2179,"name":"SimpleObj","kind":4194304,"kindString":"Type alias","flags":{},"children":[],"sources":[{"fileName":"packages/canvas-utils/src/types/index.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/canvas-utils/src/types/index.ts","line":21,"character":12,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/canvas-utils/src/types/index.ts#L21"}],"type":{"type":"reflection","declaration":{"id":2180,"name":"SimpleObj","kind":65536,"kindString":"Type literal","flags":{},"sources":[{"fileName":"packages/canvas-utils/src/types/index.ts","line":21,"character":24,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/canvas-utils/src/types/index.ts#L21"}],"indexSignature":{"id":2181,"name":"__index","kind":8192,"kindString":"Index signature","flags":{},"parameters":[{"id":2182,"name":"propName","kind":32768,"flags":{},"type":{"type":"intrinsic","name":"string"}}],"type":{"type":"intrinsic","name":"unknown"}},"location":{"query":"canvas-utils/src.TypeAlias.SimpleObj","hash":""}}},"is":{"declaration":true},"location":{"query":"canvas-utils/src.TypeAlias.SimpleObj","hash":""},"text":{},"parentId":1451} diff --git a/docs/v1.0.0-beta01/data/canvas-utils/src.Variable.__DEV__.json b/docs/v1.0.0-beta01/data/canvas-utils/src.Variable.__DEV__.json new file mode 100644 index 000000000..2cf7c5a36 --- /dev/null +++ b/docs/v1.0.0-beta01/data/canvas-utils/src.Variable.__DEV__.json @@ -0,0 +1 @@ +{"id":2047,"name":"__DEV__","kind":32,"kindString":"Variable","flags":{"isConst":true},"comment":{"summary":[],"blockTags":[{"tag":"@const","content":[{"kind":"text","text":"__DEV__"}]},{"tag":"@description","content":[{"kind":"text","text":"基于NODE_ENV环境变量的开发模式标志。Development mode flag based on NODE_ENV environment variable. Can also be set using webpack.DefinePlugin for build-time optimization."}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Conditional debugging\nif (__DEV__) {\n console.log('Canvas debug info:', { width: canvas.width, height: canvas.height });\n}\n```"}]},{"tag":"@example","content":[{"kind":"text","text":"// Performance monitoring in development\nfunction drawChart(ctx, data) {\n const startTime = __DEV__ ? performance.now() : 0;\n\n // Chart drawing logic\n drawChartElements(ctx, data);\n\n if (__DEV__) {\n const endTime = performance.now();\n console.log("},{"kind":"code","text":"`Chart render time: ${endTime - startTime}ms`"},{"kind":"text","text":");\n }\n}"}]},{"tag":"@since","content":[{"kind":"text","text":"1.0.0"}]}]},"children":[],"sources":[{"fileName":"packages/canvas-utils/src/utils/env.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/canvas-utils/src/utils/env.ts","line":54,"character":13,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/canvas-utils/src/utils/env.ts#L54"}],"type":{"type":"intrinsic","name":"boolean"},"defaultValue":"...","is":{"declaration":true},"location":{"query":"canvas-utils/src.Variable.__DEV__","hash":""},"text":{"comment":"
    Const:

    DEV

    \n
    Description:

    基于NODE_ENV环境变量的开发模式标志。Development mode flag based on NODE_ENV environment variable. Can also be set using webpack.DefinePlugin for build-time optimization.

    \n
    Example:
    // Conditional debugging\nif (__DEV__) {\n  console.log('Canvas debug info:', { width: canvas.width, height: canvas.height });\n}\n
    \n
    Example:

    // Performance monitoring in development\nfunction drawChart(ctx, data) {\n const startTime = DEV ? performance.now() : 0;

    \n

    // Chart drawing logic\n drawChartElements(ctx, data);

    \n

    if (DEV) {\n const endTime = performance.now();\n console.log(Chart render time: ${endTime - startTime}ms);\n }\n}

    \n
    Since:

    1.0.0

    \n"},"parentId":1451} diff --git a/docs/v1.0.0-beta01/data/canvas-utils/src.Variable.isNode.json b/docs/v1.0.0-beta01/data/canvas-utils/src.Variable.isNode.json new file mode 100644 index 000000000..f94927ca7 --- /dev/null +++ b/docs/v1.0.0-beta01/data/canvas-utils/src.Variable.isNode.json @@ -0,0 +1 @@ +{"id":2050,"name":"isNode","kind":32,"kindString":"Variable","flags":{"isConst":true},"comment":{"summary":[],"blockTags":[{"tag":"@const","content":[{"kind":"text","text":"isNode"}]},{"tag":"@description","content":[{"kind":"text","text":"检测代码是否在Node.js环境中运行。Detects if the code is running in a Node.js environment by checking for Node.js-specific process object and version information."}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Server-side canvas rendering\nfunction generateChartImage(data) {\n if (isNode) {\n const { createCanvas } = require('canvas');\n const fs = require('fs');\n\n const canvas = createCanvas(800, 600);\n const ctx = canvas.getContext('2d');\n\n // Draw chart\n drawChart(ctx, data);\n\n // Save to file\n const buffer = canvas.toBuffer('image/png');\n fs.writeFileSync('chart.png', buffer);\n\n return 'chart.png';\n }\n}\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Environment-specific imports\nasync function loadCanvasLibrary() {\n if (isNode) {\n // Use node-canvas for server-side rendering\n const canvas = await import('canvas');\n return canvas;\n } else {\n // Use native browser canvas\n return null; // Browser has built-in canvas support\n }\n}\n```"}]},{"tag":"@since","content":[{"kind":"text","text":"1.0.0"}]}]},"children":[],"sources":[{"fileName":"packages/canvas-utils/src/utils/env.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/canvas-utils/src/utils/env.ts","line":173,"character":13,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/canvas-utils/src/utils/env.ts#L173"}],"type":{"type":"intrinsic","name":"boolean"},"defaultValue":"...","is":{"declaration":true},"location":{"query":"canvas-utils/src.Variable.isNode","hash":""},"text":{"comment":"
    Const:

    isNode

    \n
    Description:

    检测代码是否在Node.js环境中运行。Detects if the code is running in a Node.js environment by checking for Node.js-specific process object and version information.

    \n
    Example:
    // Server-side canvas rendering\nfunction generateChartImage(data) {\n  if (isNode) {\n    const { createCanvas } = require('canvas');\n    const fs = require('fs');\n\n    const canvas = createCanvas(800, 600);\n    const ctx = canvas.getContext('2d');\n\n    // Draw chart\n    drawChart(ctx, data);\n\n    // Save to file\n    const buffer = canvas.toBuffer('image/png');\n    fs.writeFileSync('chart.png', buffer);\n\n    return 'chart.png';\n  }\n}\n
    \n
    Example:
    // Environment-specific imports\nasync function loadCanvasLibrary() {\n  if (isNode) {\n    // Use node-canvas for server-side rendering\n    const canvas = await import('canvas');\n    return canvas;\n  } else {\n    // Use native browser canvas\n    return null; // Browser has built-in canvas support\n  }\n}\n
    \n
    Since:

    1.0.0

    \n"},"parentId":1451} diff --git a/docs/v1.0.0-beta01/data/canvas-utils/src.Variable.isWeapp.json b/docs/v1.0.0-beta01/data/canvas-utils/src.Variable.isWeapp.json new file mode 100644 index 000000000..2de245564 --- /dev/null +++ b/docs/v1.0.0-beta01/data/canvas-utils/src.Variable.isWeapp.json @@ -0,0 +1 @@ +{"id":2048,"name":"isWeapp","kind":32,"kindString":"Variable","flags":{"isConst":true},"comment":{"summary":[],"blockTags":[{"tag":"@const","content":[{"kind":"text","text":"isWeapp"}]},{"tag":"@description","content":[{"kind":"text","text":"检测代码是否在微信小程序环境中运行。Detects if the code is running in a WeChat mini-program environment by checking for WeChat-specific global objects and APIs."}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Platform-specific canvas handling\nfunction initializeCanvas(options) {\n if (isWeapp) {\n // Use WeChat mini-program canvas API\n const ctx = wx.createCanvasContext(options.canvasId);\n return { ctx, draw: () => ctx.draw() };\n } else {\n // Use standard web canvas API\n const canvas = document.createElement('canvas');\n const ctx = canvas.getContext('2d');\n return { canvas, ctx };\n }\n}\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Conditional feature availability\nfunction saveChart() {\n if (isWeapp) {\n // Use WeChat save API\n wx.canvasToTempFilePath({\n canvasId: 'myCanvas',\n success: (res) => console.log('Saved:', res.tempFilePath)\n });\n } else {\n // Use web download API\n const link = document.createElement('a');\n link.download = 'chart.png';\n link.href = canvas.toDataURL();\n link.click();\n }\n}\n```"}]},{"tag":"@since","content":[{"kind":"text","text":"1.0.0"}]}]},"children":[],"sources":[{"fileName":"packages/canvas-utils/src/utils/env.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/canvas-utils/src/utils/env.ts","line":95,"character":13,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/canvas-utils/src/utils/env.ts#L95"}],"type":{"type":"intrinsic","name":"boolean"},"defaultValue":"...","is":{"declaration":true},"location":{"query":"canvas-utils/src.Variable.isWeapp","hash":""},"text":{"comment":"
    Const:

    isWeapp

    \n
    Description:

    检测代码是否在微信小程序环境中运行。Detects if the code is running in a WeChat mini-program environment by checking for WeChat-specific global objects and APIs.

    \n
    Example:
    // Platform-specific canvas handling\nfunction initializeCanvas(options) {\n  if (isWeapp) {\n    // Use WeChat mini-program canvas API\n    const ctx = wx.createCanvasContext(options.canvasId);\n    return { ctx, draw: () => ctx.draw() };\n  } else {\n    // Use standard web canvas API\n    const canvas = document.createElement('canvas');\n    const ctx = canvas.getContext('2d');\n    return { canvas, ctx };\n  }\n}\n
    \n
    Example:
    // Conditional feature availability\nfunction saveChart() {\n  if (isWeapp) {\n    // Use WeChat save API\n    wx.canvasToTempFilePath({\n      canvasId: 'myCanvas',\n      success: (res) => console.log('Saved:', res.tempFilePath)\n    });\n  } else {\n    // Use web download API\n    const link = document.createElement('a');\n    link.download = 'chart.png';\n    link.href = canvas.toDataURL();\n    link.click();\n  }\n}\n
    \n
    Since:

    1.0.0

    \n"},"parentId":1451} diff --git a/docs/v1.0.0-beta01/data/canvas-utils/src.Variable.isWeb.json b/docs/v1.0.0-beta01/data/canvas-utils/src.Variable.isWeb.json new file mode 100644 index 000000000..2b00b0852 --- /dev/null +++ b/docs/v1.0.0-beta01/data/canvas-utils/src.Variable.isWeb.json @@ -0,0 +1 @@ +{"id":2049,"name":"isWeb","kind":32,"kindString":"Variable","flags":{"isConst":true},"comment":{"summary":[],"blockTags":[{"tag":"@const","content":[{"kind":"text","text":"isWeb"}]},{"tag":"@description","content":[{"kind":"text","text":"检测代码是否在Web浏览器环境中运行(不包括微信小程序)。Detects if the code is running in a web browser environment (excluding WeChat mini-programs)."}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Web-specific DOM operations\nfunction setupCanvasEvents(canvas) {\n if (isWeb) {\n canvas.addEventListener('click', handleCanvasClick);\n canvas.addEventListener('mousemove', handleMouseMove);\n\n // Add touch events for mobile web\n canvas.addEventListener('touchstart', handleTouchStart);\n canvas.addEventListener('touchmove', handleTouchMove);\n }\n}\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Responsive canvas sizing\nfunction updateCanvasSize(canvas) {\n if (isWeb) {\n const rect = canvas.getBoundingClientRect();\n const dpr = window.devicePixelRatio || 1;\n\n canvas.width = rect.width * dpr;\n canvas.height = rect.height * dpr;\n\n const ctx = canvas.getContext('2d');\n ctx.scale(dpr, dpr);\n }\n}\n```"}]},{"tag":"@since","content":[{"kind":"text","text":"1.0.0"}]}]},"children":[],"sources":[{"fileName":"packages/canvas-utils/src/utils/env.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/canvas-utils/src/utils/env.ts","line":131,"character":13,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/canvas-utils/src/utils/env.ts#L131"}],"type":{"type":"intrinsic","name":"boolean"},"defaultValue":"...","is":{"declaration":true},"location":{"query":"canvas-utils/src.Variable.isWeb","hash":""},"text":{"comment":"
    Const:

    isWeb

    \n
    Description:

    检测代码是否在Web浏览器环境中运行(不包括微信小程序)。Detects if the code is running in a web browser environment (excluding WeChat mini-programs).

    \n
    Example:
    // Web-specific DOM operations\nfunction setupCanvasEvents(canvas) {\n  if (isWeb) {\n    canvas.addEventListener('click', handleCanvasClick);\n    canvas.addEventListener('mousemove', handleMouseMove);\n\n    // Add touch events for mobile web\n    canvas.addEventListener('touchstart', handleTouchStart);\n    canvas.addEventListener('touchmove', handleTouchMove);\n  }\n}\n
    \n
    Example:
    // Responsive canvas sizing\nfunction updateCanvasSize(canvas) {\n  if (isWeb) {\n    const rect = canvas.getBoundingClientRect();\n    const dpr = window.devicePixelRatio || 1;\n\n    canvas.width = rect.width * dpr;\n    canvas.height = rect.height * dpr;\n\n    const ctx = canvas.getContext('2d');\n    ctx.scale(dpr, dpr);\n  }\n}\n
    \n
    Since:

    1.0.0

    \n"},"parentId":1451} diff --git a/docs/v1.0.0-beta01/data/index.json b/docs/v1.0.0-beta01/data/index.json new file mode 100644 index 000000000..682b4cfaf --- /dev/null +++ b/docs/v1.0.0-beta01/data/index.json @@ -0,0 +1 @@ +{"id":0,"name":"fe-tools utils - v1.0.0-beta01","kind":1,"flags":{},"originalName":"fe-tools utils","children":[],"groups":[{"title":"Modules","children":[1452,154,307,902,330,315,349,387,888,913,400,1,1008,432,465,1034,1065,615,1090,642,1152,658,704,744,1197,1242,1267,752,802,811,1358,614,844,1451,1140,1086,1113,1453,881,1085,882,988,1193,1263,1287,1339,1384]}],"is":{"declaration":false},"location":{"query":"index","hash":""},"text":{"readme":"\n\n

    fe-tools

    \n
    \n
    \n

    前端开发工具集:常用文档网站、样式/js方法封装库(ts)、典型项目模板。English README>>

    \n
    \n

    \n
    \n\n\n

    1. 常用网站

    \n
    \n

    目录:

    \n\n
    \n

    注:一些选型可以考虑先问 Deepseek / chatGPT / Claude / Kimi,然后根据回答信息进行综合判断

    \n
    \n\n\n

    1.1 HTML/CSS/JavaScript/WASM/Dart

    \n
    \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
    地址标签说明
    MDN 文档手册html/css/jsMozilla出品的一个很全很有用的前端查询/学习网站。
    MDN AI助手html/css/jsMDN文档的AI问答机器人。
    W3C官网html/css/jsW3C官方标准。
    W3C学习网站w3cschoolW3C School,国际热门的web开发学习网站,适合入门。
    W3C CSSw3c-cssW3C CSS规范文档。
    css属性参考手册css快速查询css属性及基本使用。
    canvas api速查手册canvascanvas API方法集合。
    W3C官网-SVGsvgW3C官网,SVG文档(左侧RECOMMENDATIONS)。
    VML 参考手册VML(IE)*早期(如果你仍要兼容IE6/7)微软开发的在低端IE上运行的图形绘制DSL、类似“SVG”。
    TypeScript官方手册typescriptTypeScript官方手册。
    TypeScript Challengests-challengesTypeScript Challenges,在线学习/检验自己的ts类型编程水平。
    ECMA standardsecmaECMAScript 协议标准。
    ECMA International(6)ES6ECMAScript6官方文档。
    ECMA International(6) 汉化ES6ECMAScript6官方文档的中文翻译版(只有少部分且挺久没更新了)。
    ECMA6 featuresES6通俗易懂的ECMAScript6特性demos。
    ES6入门(阮一峰)ES6国内使用频率最高的ECMAScript6文档,特别适合新手。
    Web API Referencehtml5HTML5 web API查询,如摄像头/地理位置。
    Safari HTML Ref查询htmlSafari webview的HTML标签查询,用于移动web开发,比如某些iOS特殊的属性或表现可以查这个。
    WebKit 特性状态查询webkitWebKit 官网文档,js/css特性状态支持情况查询。
    Dart官网dartdart语言英文官网。
    Dart中文网dartdart语言中文学习网。
    RFC规范官网rfc/httpRFC协议官网,可查询HTTP协议等内容。
    Media TypesMIME媒体类型列表,MIME。
    Web Assembly官网wasmWeb Assembly(wasm)英文官网。
    Web Assembly中文网wasmWeb Assembly(wasm)中文网。
    Krustlet 官网krustlet一款 Web Assembly 框架。
    \n\n\n

    1.2 兼容/查询

    \n
    \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
    地址标签说明
    can i usecaniuse使用频率最高的兼容支持查询网站。
    ES兼容查询jsECMAScript兼容查询。
    微信小程序ES兼容查询weapp微信小程序ES api及对应小程序环境版本兼容查询。
    iOS字体ios fontiOS系统自带字体支持情况查询。
    Web安全色查询web color*为了尽量让用户看到色彩相同的网页,请尽量使用216色的web安全色。
    StatCounter浏览器份额统计statcounter*StatCounter的浏览器统计报表
    浏览器份额统计browser*百度统计的市面上浏览器/app份额(现在已经没有了,只剩百度统计产品)。
    \n\n\n

    1.3 CSS工具

    \n
    \n\n\n

    1.3.1 预处理

    \n
    \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
    地址标签说明
    less文档less易上手的CSS预处理工具。
    sass 文档sass热门的CSS预处理工具。
    stylus 文档stylus功能丰富的CSS预处理工具。
    stylus 文档(张旭鑫)stylusstylus中文文档。
    Assembler CSS 文档asmcssAssembler CSS 官方文档,Just-in-time。
    Lightning CSSlightningcssRust 写的超快 CSS parser/transformer/minifier,很多构建链路会用它替代部分 PostCSS/minifier
    Tailwind Typographytailwind-typography官方 Prose 排版插件(Markdown/富文本场景常用)
    Panda CSSpanda-cssBuild-time、Type-safe 的 CSS-in-JS/原子化方案(设计系统场景热)
    \n\n\n

    1.3.2 后处理

    \n
    \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
    地址标签说明
    postcss 文档postcss被广泛运用的CSS后处理工具。
    postcss 插件postcsspost插件库中心。
    autoprefixerautoprefixer自动补充浏CSS前缀的后处理工具。
    cssnano官网cssnanoCSS优化和分解插件。
    postcss-plugin-px2rempx2rem将px单位转为rem单位的工具。
    postcss-px-to-viewportpx2vw将px单位转为vw单位的工具。
    cssnext官网cssnext让今天的我们写着明天的CSS特性。
    \n\n\n

    1.3.3 样式库/模块

    \n
    \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
    地址标签说明
    30s-of-code(css)30s-of-code(css)常用CSS样式模块集合,30s of code系列。
    animate.cssanimate.cssCSS3动画库。
    Hover.cssHover.cssPC鼠标hover交互动画库。
    bulma.cssbulma.css一款基于 Flexbox 的轻量级CSS UI库。
    cardinal.csscardinal.css一款移动优先的less库。
    bootflat.cssbootflat.css一款扁平化风格scss库,基于BootStrap3.3。
    corpus.csscorpus.css一款scss集合库。
    weuiweui微信风格的样式库,腾讯。
    materialize.cssmaterializecssMaterial风格的响应式前端样式框架。
    mui.cssMUIMaterial风格的轻量级前端样式框架。
    Metro UIMetro UI一款流行的响应式前端样式框架,React版
    NES.cssNES.css游戏机像素风格的前端样式框架。
    paper.csspaper.css手绘风格的前端样式框架。
    css3 iconcss3 icon纯CSS实现的图标。
    Bootstrap 文档bootstrap红极一时的响应式前端样式框架。
    layui 文档layui一款采用自身模块规范编写的前端 UI 框架。
    fontawesomefontawesome字体图标库。
    iconfonticonfont字体图标库,阿里。
    normalizenormalize相对较优的CSS reset替代方案。
    Tailwind官网tailwind模块化的UI库。
    Unocss官网unocss原子、按需的css模块化引擎、有借鉴tailwind。
    \n\n\n

    1.3.4 其他

    \n
    \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
    地址标签说明
    css trickscss tricks包括布局、图标、动画等CSS技巧。
    BEMbemBEM写法规范。
    ACSSacssAtomic CSS,一种模块化写法规范。
    IT.cssitcssIT CSS,一种组件化写法规范。
    CSS modulescss-modules一种CSS样式模块化的解决方案。
    css in jscss-in-js用写js的方式生成css样式。
    Moo-CSSmoo-css一种CSS写法方案。
    CSS tricks for web developersYou-need-to-know-cssCSS技巧集合。
    logotyp.us logotyp国内外知名企业/商业的logo集合。
    uiverse.io uiversecss样式组件集合,号称“最大的UI开源库”。
    \n\n\n

    1.4 JS插件/库

    \n
    \n\n\n

    1.4.1 库

    \n
    \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
    地址标签说明
    LoDashlodash广为人知的函数式工具库。
    ramdaramda比较著名的函数式工具库。
    fp-tsfp-ts遵循函数式编程范式的ts封装库。
    radashradashts函数式工具库。
    UnderscoreJSunderscorejs红极一时的函数式工具库。
    jQueryJsjQuery早年红极一时的js封装库。
    ZeptoJsZepto轻量级“jQuery”,移动端使用的比较多。
    city.jscity全国行政区划分数据文件。
    phaser.jsphaser2D游戏前端库。
    fabric.jsfabricjs有名的svg和canvas相互转换的封装库。
    babylon.jsbabylonjs有名的3D游戏/视频框架。
    immutable-jsimmutable生产环境js的List, Stack, Map, OrderedMap, Set, OrderedSet以及Record数据结构支持,通常用于ReactJs。
    GCanvasgcanvas轻量的跨平台图形引擎(web/weex/react-native),阿里。
    core-decoratorscore-decorators丰富的装饰器封装库,基于ES2016/2017的装饰器语法。
    http-status-codeshttp-status-codes枚举 HTTP 状态代码的常量。支持 RFC1945(HTTP/1.0、RFC2616 (HTTP/1.1) 和 RFC2518 (WebDAV))中定义的所有状态代码。常用于ajax请求处理,ts。
    Zodjszod以 TypeScript 为首的模式声明和验证库,可用于数字格式校验及生成ts声明。
    ts2dartts2dart一款 TypeScript 转 Dart 语言的工具库(会存在一些问题),有挺多年没维护了。
    InversifyJS inversify一款 js/ts IoC的封装库。
    BottleJs bottlejs 一轻量 js/ts 依赖注入容器库。特点是延迟加载。
    \n\n\n

    1.4.2 数据工具

    \n
    \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
    地址标签说明
    stdlibstdlibjs的数学增强库。
    StreamJsstreamjs一款js数据的操作工具。
    BaconJsbaconjs也是一款js数据的操作工具。
    Date fnsdate-fns一款模块化支持按需的日期格式化工具。
    DayJsdayjs一款日期格式化的工具,轻量,MomentJS的替代品。
    MomentJsmomentjs一款日期格式化的工具(2020开始停止维护)。
    numbronumbrojs一款多国语言的数字转化工具。
    NumeralJsnumeraljs用于格式化和操作数字的 js 库。
    accounting.jsaccounting.js数字,金钱的格式化工具。
    money.jsmoney.js金钱的汇率转换工具。
    decimal.jsdecimal.jsJs精度处理库。
    Tanstack Querytanstack-query异步状态管理库,支持TS/JS、React、Solid、Vue、Svelte和Angular。
    \n\n\n

    1.4.3 请求、cookie和缓存

    \n
    \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
    地址标签说明
    axiosaxios高频使用的ajax库。
    fetchfetchFetch API的兼容polyfill。
    jsonpjsonp不用多说,实现jsonp。(axios没有封装jsonp)
    URI.jsuriURI解析操作的库。
    StoreJsstoragestorage的封装库,兼容IE6。
    js-cookiejs-cookiecookie的封装库。
    Dexie.jsdexiejsIndexedDB的封装库。
    localForage.jslocalForage基于IndexedDB、WebSQL、localStorage的离线存储库,Mozilla。
    basket.jsbasket.js利用localStorage来缓存script和css资源。
    \n\n\n

    1.4.4 插件

    \n
    \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
    地址标签说明
    swiper.jsswiper轮播插件。
    nanobar.jsnanobar绚丽的进度条展示插件,IE7+。
    sweetalertsweetalertjs效果不错的PC alert展示插件。
    bowserjsbowserjs通过ua做的浏览器探测插件。
    clipboard.jsclipboardjs剪贴板控制插件。
    Qrcode-generatorqrcode-generator二维码生成工具。
    html2canvashtml2canvashtml转为图片(canvas),即实现网页截图。
    rrwebrrweb 基于样式截取的网页“录屏”工具,实现用户操作采集和回放。
    Pen EditorPen Editorweb的文本编辑工具。
    cleave.jscleave.js一款好用的input输入控制插件。
    autosize.jsautosize.js一款好用的<textarea/>高度自适应工具。
    FileSaver.jsFileSaver.js网页端字符/图片/文件另存为插件。
    download.jsdownload.js网页端字符/图片/文件另存为插件,比FileSaver快一点。
    FileAPI.jsFileAPI控制文件上传的插件。
    shake.jsshake.js移动端摇晃震动监听插件。
    Tippy.jstippy.js好用的气泡组件,有React版。
    fusefusejs轻量、好用的js模糊搜索库。
    algoliaalgolia好用的搜索集成方案。
    dejavudejavu一款弹性搜索方案,逮虾户。
    driver.jsdriverjs一款轻量的用户操作引导插件。
    aos.jsaosjs一款强大的页面滚动动画插件。
    favico.jsfavicojs一款让pc网站图标动起来的插件。
    fullPage.jsfullpagejs一款快速搭建全屏滚动页面的插件。
    Lucky Canvaslucky-canvas一款支持web、小程序跨平台的 ( 大转盘 / 九宫格 / 老虎机 ) 抽奖插件。
    Typedjstyped.js一款模拟打字机效果的js UI库。
    \n\n\n
    视/音频
    \n
    \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
    地址标签说明
    MediaElement.jsmediaelementjs一款视频控制插件。
    video.jsvideojs一款视频控制插件。
    flv.jsflvjs一款无需flash的flv播放插件。
    howler.jshowlerjs视、音频控制插件。
    jplayerjplayerjQuery的视、音频控制插件。
    audio5.jsaudio5js一款音频控制插件。
    Wavesurfer.jswavesurfer一款音频波形播放器。
    \n\n\n
    图片
    \n
    \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
    地址标签说明
    caman.jscamanjs一款web图片处理插件。
    Sharpsharp一款强大的图片处理工具。
    squoosh.jssquoosh一款优秀的图片压缩方案,有浏览器环境。
    tesseract.jstesseract一款强大的OCR识别库。
    imagesloadedimagesloaded判断元素图片加载状态的库。
    cropper.jscropperjs一款集成的图片裁剪插件库。
    viewer.jsviewerjs一款集成的图片浏览/简单处理插件库。
    compressor.jscompressorjs一款集成的图片压缩处理插件库。
    \n\n\n
    字符串
    \n
    \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
    地址标签说明
    Voca.jsvocajs字符串的驼峰/修饰/填充/截断/转义/大小写更改等等。
    anchorme.jsanchormejs自动将文本中的链接/URL/电子邮件转化为可点击的锚点链接。
    String.jsstringjs字符串的截取删除等操作库(很久没维护了)。
    qs.jsqsjsURL参数处理库。
    nano-idnanoid小型(130 字节)、安全、URL友好、唯一的字符串 ID 生成器。
    uuiduuid生成符合 RFC 的 UUID 库。
    md5.jsmd5获取字符、Buffer的md5。
    hash.jshashjs的hash字符串处理。
    \n\n\n

    1.4.5 工具

    \n
    \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
    地址标签说明
    RequireJsrequirejsjs模块化工具(webpack后很少有项目会用到)。
    SeaJsseajsjs模块化工具(webpack后很少有项目会用到)。
    Browserifybrowserify浏览器端使用类似于 node 的 require() 方式。
    validate.jsvalidate.jsform表单校验工具。
    validator.jsvalidator.js有名的内容校验工具,比如邮箱验证、数值验证等。
    RxJS中文官网RxJSReactiveX编程理念的js异步编程库。
    Fakerfaker用于在浏览器/NodeJS中生成假数据(注意作者已删源码)。
    Joi官网joi面向js的强大schema描述语言与数据验证器。
    classnamesclassnamesclassName条件组合的工具,多用于React。
    clsx clsx 轻量(228B)className条件组合的工具,多用于React。
    path-to-regexppath-to-regexpURL或路径校验工具,使用面极广。
    MousetrapMousetrap键盘事件注册捕获封装库,支持Windows/Mac键盘。
    UaParserJsua-parser-js检测用户的浏览器,引擎,操作系统,CPU和设备。可运行在浏览器或node.js。
    click-to-componentclick-to-component浏览器运行时快速定位React组件源码(VSCode打开)的工具。
    \n\n\n

    1.4.6 数据可视化(图表)

    \n
    \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
    地址标签说明
    highchartshighcharts效果、兼容最好(ie6+)的可视化库,可惜企业要收费。
    echartsecharts国内最全面的可视化库。
    d3d3不直接输出图形,输出开发功能的svg工具。
    Chartjschartjs模块化可视化库。
    antvG2/F2包括pc/移动的可视化库,蚂蚁。
    FundChartsfundcharts本人的跨端轻量可视化库。
    ThreeJs文档threejs/webGL著名的webGL 3D建模库
    PlayCanvas文档playcanvaswebGL游戏3D建模库
    scene.jsscenejsWebGL 3D基础库。
    Snap.svgsnap一款svg操作库。
    pixi.jspixijs2D WebGL渲染引擎。
    svg-3d-buildersvg-3d-builder3D SVG渲染引擎。
    jsplumbjsplumb一款好用的流程图可视化库。
    cytoscapejscytoscape一款好用的关系图谱可视化库。
    Mermaidmermaid一款好用的流程图生成可视化库。
    Zrenderzrender2D渲染渲染引擎库,支持Canvas/SVG/VML,也是ECharts的渲染器。
    Mind Elixirmind-elixir一款类似xmind效果的思维导图库。
    \n\n\n

    1.4.7 数据可视化(地图)

    \n
    \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
    地址标签说明
    cesiumjsCesium.js一款开源的3D城市建模库。
    KartographKartograph.js一款普通的2D SVG城市数据展示库,IE7+。
    leafletjsLeaflet.js一款移动优先的地图展示插件。
    \n\n\n

    1.4.8 h5动画

    \n
    \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
    地址标签说明
    Bounce.jsBounceJS牛啤的CSS3动画创建工具。
    animateplus.jsAnimateplus仅3k的动画工具。
    Anime.jsanimejs轻量级js动画库。
    svg.jssvgjs轻量的svg操作/动画库。
    snapsvgSnap.svg一款有名的svg操作/动画库。
    lottielottieweb/原生/小程序/RN的跨端动效方案。
    EaselJSeaseljscanvas动画操作库,CreateJS四剑客之一。
    TweenJStweenjs动画曲线(ease/linear...)操作库,CreateJS四剑客之一。
    SoundJSsoundjs音频控制库,CreateJS四剑客之一。
    PreloadJSpreload资源预加载库,CreateJS四剑客之一。
    P5jsp5jscanvas绘画功能库。
    Rough.jsroughjs一个有意思的canvas绘图库(画出的图形具有手绘风格)。
    BabylonJSBabylonJS一个功能强大,美观,简单且开放的游戏和渲染引擎。
    GranimJsgranimjs用于创建流体和交互式渐变的动画js库,仅17k。
    canvas-confetticonfetti轻量的js canvas礼花特效库。
    \n\n\n

    1.4.9 移动端手势

    \n
    \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
    地址标签说明
    AlloyFinger.jsAlloyFinger增加移动端的各种手势事件。
    hammer.jshammerjs手势封装库,取消了移动端click的300ms延迟。
    interact.jsinteractjs使用JavaScript实现拖放、缩放和多点触控手势。
    \n\n\n

    1.4.10 加载

    \n
    \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
    地址标签说明
    aload.jsaload.js异步图片/js/css加载工具。
    layzr.jslayzr.js轻量图片懒加载工具。
    lazysizes.jslazysizes高性能的图片/iframe懒加载工具。
    infinite-scroll.jsinfinite-scroll“无限”滚动的加载插件。
    \n\n\n

    1.4.11 TypeScript辅助

    \n
    \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
    地址标签说明
    ts-loaderts-loaderwebpack中的TypeScript构建插件。
    awesome-typescript-loaderawesome-typescript-loaderwebpack中的TypeScript构建插件,比ts-loader要快一点。
    ts-transformer-keysts-transformer-keys用于提取interface的键值数组(需要用webpack)。
    ts-dedentts-dedentnode端打印正常换行的log。
    suppress-ts-errorsuppress-ts-error自动为项目中所有的类型报错添加 @ts-expect-error 或 @ts-ignore 注释。
    type-festtype-fest经典的工具类型封装库。
    TypeChat typechat基于OpenAi GPT模型的ts类型生产工具,微软。
    \n\n\n

    1.4.12 其他

    \n
    \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
    地址标签说明
    js-framework-benchmarkjs-framework-benchmark基于chrome的各前端框架性能对比,有个分析站点。
    Angularangular封装度高的经典前端框架。
    Sveltesvelte无虚拟DOM的轻量Web应用编译器,template,近期火。
    SolidJssolid对webComponent友好的库,开发体验与react相似,国外这几年较火。
    StenciljsstenciljswebComponent的编译构建框架,jsx。
    Infernojsinfernojs轻量的类React库,jsx。
    Emberjsemberjs脚手架强大的web开发框架,template。
    Vueravuera用来混用Vue/React组件的库、即Vue中可以使用React组件、React中可以使用Vue组件。
    Veauryveaury用来混用Vue3/React组件的库、比vuera功能完善。
    Quarkquark基于 Web Components 的移动端跨框架 UI 组件库,哈啰。
    Astroastro现代静态站点生成器,支持多框架组件,零JS运行时。
    Qwikqwik可恢复的web框架,零水合,即时加载。
    Freshfresh基于Deno的全栈web框架,零配置,边缘优先。
    Remixremix专注于web标准和现代UX的全栈web框架。
    SvelteKitsveltekitSvelte的全栈应用框架,类似Next.js。
    Alpine.jsalpinejs轻量级的声明式框架,类似Vue的语法。
    Litlit构建Web Components的简单库,Google。
    Partytownpartytown将第三方脚本迁移到web worker的库。
    Web3jsweb3js以太坊标准js封装库。
    \n\n\n

    1.5 Vue

    \n
    \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
    地址标签说明
    Vue3 文档vueVue3 官方文档。
    Vue2 文档vueVue2 官方文档。
    vue-cli 文档vue-clivue脚手架工具文档。
    pinia 文档pinia轻量Vue状态管理工具,vue3推荐。
    vuex 文档vuexvue数据流控制工具。
    vue-router 文档vue-router基于vue的前端路由控制。
    vue-content-loader 文档create-vue-content-loadervue版SVG骨架屏插件。
    better-scroll 文档better-scroll控制滚动场景的插件。
    vant 文档vant移动UI库,有赞。
    vue-weui 文档vue-weuiweui风格的移动UI组件库。
    Element 文档element使用PC中后台前端开发的UI组件库,饿了么。
    vue-lazyload 文档vue-lazyloadvue版的图片/组件懒加载插件。
    iView 文档iviewPC UI组件库。
    antd-vue 文档antd-vuePC UI组件库,ant design的Vue版。
    vue-i18n 文档vue-i18n多语言解决方案。
    v-region 文档v-regionVue行政区选择组件。
    vue-echarts 文档vue-echartsEcharts的Vue封装组件。
    Nuxt.JS 文档nuxtjsVue的服务端渲染应用框架。
    ViteJS 文档vitejs无bundle的Vue轻量前端项目构建工具。
    vue-class-component 仓库vue-class-componentVue的Component装饰器封装,用于jsx/tsx的vue组件写法。
    Formily 文档formilyjsElement/Antd的表单DSL解决方案。
    vue-2-3vue-2-3vue2和vue3共存的一种解决方案封装。
    SWRVswrv用于数据请求的 Vue 钩子库,处理了请求缓存、状态等等。
    Vue Requestvue-request用于数据请求的 Vue 钩子库,比swrv能力要稍微丰富一些。
    Vue Usevue-use基于Vue组合式API的实用工具集,除了常用的请求动画等封装外、还封装了浏览器、electron utils。
    Vue React Combinedvuereact-combinedVue2和React快捷集合的工具包。
    Veaury veauryVue3 和 React 快捷集合的工具包。
    \n\n\n

    1.6 React

    \n
    \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
    地址标签说明
    React 文档reactReact 官方文档。
    React 中文文档reactReact 中文翻译文档。
    create-react-app 文档create-react-appreact脚手架工具文档。
    react Chrome devtoolsreact-devtoolsreact的Chrome开发拓展插件。
    react-routerreact-router用于react的前端路由控制。
    Zustand 文档zustand火热的简单轻量数据流控制工具。
    Recoil 文档recoil简单、对hook友好的数据流控制工具。
    redux 文档redux广泛使用的数据流控制工具,reducer+flux。
    flux 文档flux数据流控制工具(现在已经很少在用了)。
    mobx 文档mobx轻量数据流控制工具。
    dvajs 文档dvajs基于 redux 和 redux-saga 的数据流方案,蚂蚁。
    UmiJs 文档umijs可插拔的企业级 react 应用框架,蚂蚁。
    Rekit 文档rekitReact/Redux/React-router开发工具/IDE。
    NextJs 文档nextjs轻量级的 React 服务端渲染应用框架。
    Gatsby.js 文档gatsbyjs轻量级的 React 静态网站搭建框架。
    React-use 文档react-use好用的React自定义hooks封装库。
    Umi Hooks 文档umi hooks适用于中台的hooks方法,如请求、拖拽、防抖。
    react-query 文档react-query好用的React ajax接口请求处理封装hook。
    why-did-you-renderwhy-did-you-render用来检测React组件是否需要重新渲染的工具。
    framer-motion 官网framer-motion非常强大的React动画/交互手势库,来自Farmer API。
    react-content-loader 文档create-content-loaderreact版SVG骨架屏插件。
    shadcn-ui 文档shadcnshadcn,原子、灵活的UI组件库。
    antd 文档antdant design,PC UI组件库。
    antd-mobile 文档antd-mobile移动版的antd,UI组件库。
    styled-components 文档styled-componentsreact的css-in-js实现。
    goober 文档goober只有1kb大小的css-in-js库。
    chatUIchatui.io服务于对话领域的解决方案(前端组件),阿里。
    Ant Design Xant-design-x服务于对话领域的解决方案(前端组件),蚂蚁。
    react-lazyload 文档react-lazyloadreact版的图片/组件加载插件。
    react-loadablereact-loadable实现react组件构建时代代码抽离和动态加载。
    react-draggablereact-draggable一个用于拖拽操作的React封装组件。
    React DNDreact-dnd适用于React的复杂拖拽控制库,基于HTML5拖放API。
    react-tappablereact-tappable一个用于点击事件操作的React封装组件。
    React-portalreact-portal一个通过portals定义附加的节点组件渲染工具。
    React-contextmenureact-contextmenupc端web实现右键菜单的工具组件。
    react-markdownreact-markdown在react上使用的markdown工具。
    30s-of-react30s-of-react常用React代码模块集合,30s of code系列。
    React Bitsreact-bits常用React技巧。
    docsiteJSdocsite基于React的文档生成工具。
    React Colorreact-color基于React的拾色器插件,模拟Sketch, Photoshop, Chrome等取色工具,注意可以直接用于Preact。
    React Desktopreact-desktop模拟Mac或windows桌面交互的React封装组件。
    React Boilerplatereact-boilerplate性能优先的一个典型的React项目模板。
    React RTEreact-rte富文本编辑器,基于draftJS。
    React i18Nextreact-i18next多语言解决方案。
    SWRswr用于数据请求的 React Hooks 库,处理了请求缓存、状态等等。
    Formikformik高度封装、开箱即用的 React form 表单封装库。
    \n\n\n

    1.6.1 Nextjs

    \n
    \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
    地址标签说明
    Next i18next next-i18next用于在Nextjs中处理国际化多语言的库。
    NextAuth.jsnext-authNext.js 官方推荐的身份验证库,支持 OAuth、JWT 和数据库集成,完美适配 SSR。
    NextSEOnext-seo专为 Next.js 设计的 SEO 工具,支持动态元标签管理和结构化数据生成。
    next-intli18n更现代的国际化方案,支持 App Router 和 Pages Router,内置 SSR 多语言加载。
    NextUIui-library为 Next.js 优化的现代组件库,内置 SSR 支持和主题系统。
    @next/mdxmdx官方 MDX 支持库,可在页面中直接混合 Markdown 和 React 组件。
    next-redux-wrapperstate-managementRedux 与 Next.js 的桥梁库,自动处理 SSR 场景的 store 同步。
    @next/plugin-injectionsecurity官方安全插件,自动注入 CSP 等安全头(需 Next.js 13.4+)。
    Metadata APIseoNext.js 13+ 原生 SEO 方案,替代部分 next-seo 的功能。
    next-ogseo动态生成 Open Graph 图片,支持 Edge Runtime。
    \n\n\n

    1.7 NodeJS和构建

    \n
    \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
    地址标签说明
    Node.js best practices listnodebestpracticesNodeJS最佳实践集合。
    npmnpmnode包统一平台。
    yarnyarn高速的node包管理器。
    pnpmpnpm快速高效(安全)的node包统一管理器。
    nn极度简单的 NodeJS 版本管理工具。
    StoryBookstorybookjs用于独立开发React、Vue和Angular的UI组件库导航站点。
    unpkgunpkg国外公共静态资源CDN,适用于 npm 上的所有内容。
    NodeJS apinodeNode官方文档。
    Deno apidenoDeno官方文档(NodeJS.next)。
    Bunbun号称比NodeJS快3倍的js runtime容器。
    TurboRepoturborepo好用的、高性能的多包管理工具,monorepo。
    Lernalerna好用的多包管理工具,monorepo。
    patch-packagepatch-package 给node_modules打补丁的工具包。
    V8 dev docsV8js V8引擎文档。
    V8v8V8引擎介绍。
    QuickJsquickjs一款轻量级js引擎。
    jsvujsvujs引擎调试必备,引擎切换及版本控制。
    dockerdocker应用容器引擎Docker。
    LinuxlinuxLinux命令查询手册。
    GraphicsMagickgm后台图片处理工具。
    js-xlsxjs-xlsxxlsx的编辑和处理库。
    ShellJsshelljs用NodeJS实现shell常用命令。
    chalkchalk 控制台命令行输出样式工具,主要控制颜色。
    node-schedulenode-schedule适用于NodeJS的定时任务工具。
    source-map-supportsource-map-support在 NodeJS 环境下支持 SourceMap 的模块工具。
    yalcyalcnpm link 的有效替代品,使用真实的 npm package 代替各种 link。
    \n\n\n

    1.7.1 构建

    \n
    \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
    地址标签说明
    Prettierprettier 对代码无侵害的代码格式化工具。
    ejsejs简单上手的html模板引擎。
    Mustachemustache适用于多语言的html模板库。
    pugpughtml模板库。
    jadejadehtml模板库。
    gulp 配置文档gulp自动化构建工具。
    gulp pluginsgulpgulp插件中心。
    grunt 配置文档grunt自动化构建工具。
    rollupjs文档Rollup一款ES6模块构建工具。
    webpack 配置文档webpack应用面不能再广的打包工具。
    webpack-chainwebpack-chain链式配置webpack配置的工具。
    TurboPackturbopack基于Rust的高性能打包工具。
    parceljs 配置文档parceljs轻量打包。
    snowpack 官网snowpack无bundle的轻量前端项目构建工具。
    swcswc用Rust写的、号称比babel快20倍且支持其所有功能的ts/js编译器。
    babelbabel应用面不能再广的ES编译器。
    htmlparser2htmlparser2一款html的转AST工具。
    parse5parse5一款html的转AST工具。
    recastrecast一款js转AST的工具。
    ts-migratets-migrate一款js转ts(TypeScript)的工具。
    Concurrentlyconcurrently一款NodeJS的命名行控制工具,实现同时运行多条命令。
    esbuildesbuild一款极快的js打包和压缩工具。
    criticalcritical一款从HTML中提取相关CSS的工具。
    ModernJSmodernjsweb前端工程化体系工具,字节跳动。
    javascript-obfuscatorobfuscatorjs代码混淆插件。
    \n\n\n

    1.7.2 服务端

    \n
    \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
    地址标签说明
    express 配置文档express轻量web应用程序开发框架。
    Koa 文档koajsweb应用程序开发框架。
    Fastify 官网fastify标称当代最快的轻量web应用程序开发框架,重点是JSON schema加速。
    Midway 官网midway支持了 Web / 全栈 / 微服务 / RPC / Socket / Serverless 的 web 应用程序开发框架,阿里淘系。
    feathers.jsfeathersjs轻量web应用程序开发框架,适用于数据流型。
    Nest.jsnestjs强大的Web应用框架。
    Mockjs 配置文档mockjs接口数据模拟工具,可以在客户端和服务端使用。
    SheetJssheetjs通过node操作word的工具。
    ParallelJsparalleljs并行处理js的工具,可用于浏览器和node服务端。
    js-pdfjs-pdf通过node操作生成pdf的工具。
    pm2pm2node进程管理。
    node-worker-farmnode-worker-farm很常用的 Node.js 多进程计算库。
    colors.jscolorsjsnode log控制台输出颜色控制。
    log4.jslog4jslog日志工具。
    nw.jsnwjs基于NodeJS和chromium的应用程序运行环境,允许您直接从DOM调用所有Node.js模块。
    node-archivernode-archiver支持ZIP/TAR文档流传输和接收插件。
    yazlyazl压缩zip插件,对应解压为yauzl
    SailsJssailsjs好用的MVC NodeJS框架。
    Helmet中间件helmet通过设置响应头header保护express服务应用。
    Cors中间件corsNodeJS的Cors中间件。
    Body-parser中间件body-parserNodeJS的请求流解析中间件。
    RestifyrestifyNodeJS的Web服务框架。
    Multermulter用于处理上传文件的NodeJS中间件。
    Node-cachenode-cache一个NodeJS的缓存控制模块。
    Socket.IOsocket.ioWebSocket解决方案。
    ioredisioredisredis调用js封装库。
    wswsWebSocket的一个NodeJS包。
    nginxconfig.ionginxconfig.io在线生成nginx配置的工具。
    fast-safe-stringifyfast-safe-stringify安全快速地序列化JSON,替代JSON.stringify。
    NodeMailernode-mailer用来发邮件的库、支持SMTP/SES/Sendmail/Stream方式。
    \n\n\n

    1.7.3 GraphQL

    \n
    \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
    地址标签说明
    Graphql-jsgraphqlGraphQL的js实现。
    hasura graphql-enginehasura一款强大的GraphQL引擎方案。
    apollo-clientapollo-client适用于每个UI框架和GraphQL服务器的方案。
    \n\n\n

    1.7.4 微前端

    \n
    \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
    地址标签说明
    single-spasingle-spa以路由配置为主要特点的微前端解决方案。
    qiankunqiankun蚂蚁系微前端框架,基于single-spa。
    Module Federationmodule-federation构建时共享模块为主要特点的微前端解决方案,webpack(5)的实现。
    R/Frontsfronts渐进式微前端框架,基于webpack module-federation。
    无界Wujiewujie基于web component+iframe的微前端框架,腾讯。
    jsdomjsdom在node环境上实现DOM操作的封装库。
    \n\n\n

    1.7.5 云和Serverless

    \n
    \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
    地址标签说明
    WasmEdge 官网wasmedge一款与WebAssembly有关的云原生及serverless框架。
    Serverless Framework 官网serverless快速建立node Serverless 服务的框架,支持腾讯云 SCF,AWS Lambda等。
    AWS Lambdaaws-lambda经典,亚马逊amazon serverless计算服务。
    字节轻服务 官网qingfuwu字节轻服务,支持Serverless(FaaS)、CDN等服务,有免费档。
    阿里云 FCaliyunFC阿里云函数计算服务,支持Serverless(FaaS)。
    腾讯云 SFCtecentFC腾讯云云函数服务,支持Serverless(FaaS)。
    \n\n\n

    1.7.6 低代码LowCode

    \n
    \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
    地址标签说明
    lowcode-enginelowcode-engine阿里开源低代码引擎。
    微搭weda腾讯低代码引擎,微搭。
    amisamis百度开源低代码引擎,适用于偏中后台项目。
    TinyEnginetiny-engine华为2023开源低代码引擎,具备图元编排能力。
    Tangotango网易云音乐2023开源低代码引擎,不受私有 DSL 和协议限制。
    Shuffleshuffle海外火热的低代码平台。
    Webflowwebflow海外火热的低代码平台。
    \n\n\n

    1.8 Hybird和跨端

    \n
    \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
    地址标签说明
    pwapwaProgressive web apps,渐进式web应用。
    微信小程序官网小程序/hybird微信小程序开发官网。
    支付宝小程序官网小程序/hybird支付宝小程序开发官网。
    百度小程序官网小程序/hybird百度小程序开发官网。
    wepy文档小程序/hybirdvue语法的小程序开发官网。
    小程序工具集合小程序/hybird微信小程序开发工具集合。
    小米轻应用官网轻应用/hybird小米轻应用开发官网。
    Oppo/vivo快应用官网轻应用/hybirdOppo/vivo轻应用开发官网。
    华为快应用官网轻应用/hybird华为轻应用开发官网。
    React-native 文档跨端热门的react语法跨端工具,RN。
    Lynx 文档跨端字节的iOS/Android/鸿蒙/Web跨端框架。
    NativeScript跨端国外一款流行的跨端开发框架,支持Angular/Vue/Svelte/React。
    ionic-framework跨端一个强大的跨平台UI工具包,用于使用HTML,CSS和JavaScript构建本机质量的iOS,Android和PWA。
    quasar-framework跨端构建一流的高性能的Vue响应式网站、PWA、SSR、移动和桌面应用
    Weex文档跨端前几年热门的vue语法跨端工具,现在都不维护了。
    Weex-UI文档跨端/weexweex的UI组件库。
    Taro文档小程序/跨端跨web/小程序/原生的react语法跨端工具,runtime跨端模式。
    Rax文档小程序/跨端/Flutter跨web/小程序/Flutter的react语法跨端工具(已经沉寂了),阿里。
    Kbone文档小程序/跨端跨web/小程序跨端构建插件,成本低,适配各类web框架,腾讯。
    Hippy文档跨端腾讯的一款混合跨端框架。
    uni-app文档小程序/跨端跨web/小程序/原生的vue语法跨端工具。
    北海KrakenKraken高性能 Web 渲染引擎,基于 Flutter 构建,可以用web范式写法写Flutter,阿里。
    Remax文档remaxReact语法跨web/小程序工具,类似于taro-next(3)的跨端模式,对小程序友好,支付宝。
    Antmove antmove小程序转换器,基于支付宝/微信小程序转换为多端小程序,高德。
    Flutter文档跨端超火的Dart语法的跨端开发工具。
    Electron文档跨端PC、windows/Mac应用的开发框架。
    WebView2文档跨端PC、windows应用的开发框架,微软。
    Tauri文档TauriRust 编写的、基于web的 windows/Mac 应用的开发框架。
    Pakepake基于Rust Tauri 框架、 打包网页生成很小的桌面 App的脚手架工具,支持 Mac / Windows / Linux 系统。
    flyio(fly)文档fly支持Web、Node.js 、微信小程序 、Weex 、React Native 、Quick App的请求封装库。
    wxParsewxParse 微信小程序富文本解析组件,支持Html及markdown转wxml可视化(但是目前已停止维护)。
    chrome extensionchrome-extensionChrome拓展程序官方文档。
    chrome-plugin-demochrome-plugin, chrome-extension一篇很好的Chrome拓展程序开发教程,有demo。
    \n\n\n

    1.9 辅助工具

    \n
    \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
    地址标签说明
    chatGPTchatGPT基于OpenAI的问答机器人,用来查技术问题也挺好。
    Cursorcursor依旧火热的AI Coding IDE产品。
    stackoverflow.comstackoverflow技术问题排忧解难的友好社区。
    bundlephobia.combundlephobia分析npm软件包的体积和加载性能的网站。
    npmgraphnpmgraph分析npm软件包依赖关系的工具网站。
    Ts声明文件查询joi各类库的TypeScript声明文件查询网站。
    正则表达式30分钟regexp正则上手教程。
    在线正则验证regexper可视化在线正则验证网站。
    cyrilexcyrilex一个在线可视化的正则表达式测试工具和调试器。
    whistlewhistleweb调试代理工具。
    AST explorerastexplorercss/html/js/ts等语言的在线ast解析工具。
    huskyHuskyNodeJS上的git工具。
    eslint 文档eslintjs代码检查工具。
    visualgoVisualgo可视化算法查询。
    visualgoVisualgo可视化算法查询。
    动画曲线查询cubic动画曲线查询网站(ease/linear...)
    Character Entity Reference Chartcharref字符标点的转义字符查询。
    gradient-editorgradient-editorCSS渐变样式生成工具。
    valineJSvaline评论系统工具。
    GitTalkgittalkgithub的评论工具。
    CodeMirrorcodemirrorweb代码文本编辑器,带有大量的语言模式和插件功能。
    webIDEwebideweb上写代码。
    Fusumafusuma用markdown写web ppt。
    stackeditstackedit 在浏览器中运行的Markdown编辑器。
    VuePressvuepress用markdown写文档/博客
    VitePressvitepress用markdown写文档/博客,VuePress小兄弟,用vite构建
    Hexohexo用markdown写文档/博客
    dumidumi适合写前端开发文档的工具,markdown,蚂蚁
    jsdocjsdoc最经典的js代码注释生成文档的工具
    jsdoc-to-markdownjsdoc-to-markdownjs注释(jsdoc格式)生成markdown文档
    materialuimaterialui快速色值选择
    carboncarbon生成写博客时代码的美腻截图
    tinypngTinypng压缩png和jpeg图片
    svgosvgo压缩SVG图形文件工具
    svgomgSVGOMG压缩SVG图形
    ImageMagickimagemagick后台运用极广的图片处理工具。
    img2cssimg2css一个有趣的库,利用box-shadow将图片以CSS的方式呈现。
    whatfontis.comwhatfontis识别图片上的字体不过限于英文字体,需要注册。
    keycodekeycode一个输入按键并获取其对应js keyCode的在线网站。
    ps.gaoding.comps强大的在线Photoshop。
    convert-psd-to-sketch avocodeavocodepsd一键转sketch。
    svgomgsvgomg在线svg优化及预览。
    code2flowcode2flow在线伪码转流程图工具。
    tool.lu-jsonjson在线json格式化工具。
    tool.lu-jsjs在线js格式化/混淆/压缩工具。
    tool.lu-csscss在线css格式化/压缩/响应式单位处理工具。
    tool.lu-coderunnercoderunner在线php/c/c++/python/go/js/java/bash代码执行工具。
    diffchecker.comdiffchecker在线文本/文件diff工具。
    isoflow.ioisoflow在线流程图绘制工具。
    n8n n8n基于自由和开放的公平代码许可节点的工作流自动化工具。轻松自动化跨不同服务的任务。
    阿里云 DNS检测 dns域名DNS检测网站工具,阿里云。
    Railroad Diagrams railroad-diagrams在线绘制铁路图的网站工具。
    CodeIfcodeIf帮助解决命名困难的命名搜索工具。
    QuickType QuickType根据 json 文本生成指定语言(如 TypeScript,C++,,Java,C#,Go 等)类型声明代码的工具网站。
    中国独立开发者项目列表 chinese-independent-developer聚合中国独立开发者的项目。
    \n\n\n

    1.10 测试、安全及加密

    \n
    \n\n\n

    1.10.1 单元测试

    \n
    \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
    地址标签说明
    VitestvitestVite 原生测试框架(单测新主流之一)
    MochaJS文档mocha一款单元测试工具。
    JestJS文档jest一款单元测试工具,主流。
    Cypress官网cypress一款单元测试集成平台工具。
    AvaJsavajs一款快速的测试工具。
    karmakarma一款基于Node.js的JavaScript测试执行过程管理工具(Testacular的新名字)。
    enzyme官网enzyme一款React单元测试工具,可以测hook。
    gremlins.jsgremlins一款node及浏览器的Monkey Test工具。
    uptime-kumauptime-kuma一款开源的、基于puppeteer的指标监控平台。
    Playwrightplaywright较新颖的e2e测试工具,支持Chrome、firefox等主流浏览器。
    \n\n\n

    1.10.2 安全及加密知识

    \n
    \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
    地址标签说明
    CryptoJScrypto-js一个可以说是最常用的 JavaScript 加密库,支持主流的哈希算法、加密算法,例如 SHA、MD5、AES 等。
    js-sha256js-sha256一个用于 SHA256 哈希运算的轻量级库。
    Bcryptbcrypt用于密码散列处理的库。
    OSSF Scorecardossf-scorecard开源项目供应链安全评分/检查(依赖治理很实用)
    OWASP Cheat Sheet Seriesowasp-cheatsheet安全知识速查表(体系化参考)
    Snyk CLIsnyk依赖漏洞/供应链扫描(工程落地常用)
    \n

    《How to Secure Anything》

    \n

    crypto-js 前端数据加密工具

    \n

    《浅谈前端安全》

    \n

    《再谈前端安全》

    \n

    《8大前端安全问题》

    \n

    《前端加密那点事》

    \n

    《HTTPS 到底加密了什么?》

    \n

    《Web 端反爬虫技术方案》

    \n

    《那些我们该讨论的前端加密方法》

    \n\n\n\n\n

    1.10.3 Debug

    \n
    \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
    地址标签说明
    vConsolevconsole被誉为移动端的web开发者工具,腾讯。
    Erudaeruda类似vConsole的移动端web调试工具,相对轻量。
    FunDebugFunDebug简单的项目debug监控工具,有免费版
    Webfunnywebfunny_monitor统一的前端异常监控解决方案。
    json-serverjson-server一款通过本地起服务的快速mock工具。
    Page Spypage-spy一款集程度较高的远程web调试工具,货拉拉技术团队。
    \n\n\n

    1.10.4 质量检测

    \n
    \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
    地址标签说明
    JSLint js代码检查jslint一个JavaScript验证工具
    JSHint js代码检查jshint一个JavaScript验证工具
    ESLint js代码检查eslint一个JavaScript验证工具
    CSSLint css代码检查csslint一个CSS验证工具
    Markup Validation Servicevalidator在线HTML验证网站
    Flow js代码检查flow一个JavaScript代码检查工具
    SonarLint vscodesonarlintjs/ts工程代码质量验证的vscode插件
    Google eng-practiceseng-practices谷歌工程实践文档
    Cheeriocheerio用于web抓取的工具。
    Puppeteer官网puppeteer基于chromium的无头浏览器,可用于爬虫等web自动化。
    Selenium官网selenium强大的用于Web应用程序测试的工具。
    LighthouselighthouseGoogle标准的web性能检测工具,Chrome自带。
    Fuitefuiteweb内存检测工具,基于puppeteer。
    xray xray 一款完善的安全评估工具,支持常见 web 安全问题扫描和自定义 poc,不过不开源。
    \n\n\n

    1.11 AI人工智能库

    \n
    \n\n\n

    1.11.1 大语言模型集成框架

    \n
    \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
    地址标签说明
    AI SDKai-sdkTypeScript的AI工具包,提供各类工具包、UI界面
    LangChainlangchain著名的大语言模型集成工具,提供了一套工具、组件和接口,可简化构建高级语言模型应用程序的过程
    LangGraphlanggraph低层编排框架:构建长期运行/可恢复/有状态的Agent工作流
    LlamaIndexllamaindex构建基于LLM的应用程序的数据框架,专注于数据索引和检索
    LlamaDeployllamadeployAgentic工作流部署框架:将工作流作为服务部署/扩展(原 llama-agents 系)
    Semantic Kernelsemantic-kernel微软开源的AI编排SDK,支持多种编程语言
    Auto-GPTautoGPT预训练语言生成模型,可以自动完成摘要生成、推荐系统和对话生成等任务
    AgentGPTagentGPT基于语言模型的人工代理,可以根据特定场景的要求,生成合适的回答
    SuperAGIsuperagi开源的自主AI代理框架,具有图形界面
    CrewAIcrewai多Agent编排框架:以“团队协作/角色分工”为中心,强调工程落地与可控性
    CAMELcamel多Agent研究/工程框架:角色扮演、社会模拟、任务协作与数据生成方向
    smolagentssmolagentsHugging Face 极简Agent库:少量抽象、代码式行动(think-in-code风格)
    OpenAI Swarmswarm轻量多Agent编排“教育框架”:演示handoff/路由/多Agent协作的最小抽象
    Swarmsswarms多Agent基础设施/编排平台:面向生产化的多Agent运行与集成(社区活跃)
    AgentScopeagentscope面向生产的Agent框架:AOP理念、多Agent抽象、支持微调/工程化能力(通义实验室系)
    TaskWeavertaskweaverCode-first 数据分析/工作流Agent框架:用代码片段规划并调用插件执行任务
    E2Be2b用于AI代理的云端开发环境
    \n\n\n

    1.11.2 API封装库

    \n
    \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
    地址标签说明
    OpenAI NodeJSopenaiOpenAI 的 NodeJS API 调用封装库
    OpenAI node quick startopenaiOpenAI NodeJS的起步文档及案例
    Anthropic SDKanthropicAnthropic Claude API的TypeScript/JavaScript SDK
    Google AI JS SDKgoogle-aiGoogle Gemini API的JavaScript SDK
    Cohere SDKcohereCohere API的TypeScript SDK
    Mistral AI SDKmistralMistral AI API的JavaScript SDK
    Replicate SDKreplicateReplicate API的JavaScript SDK
    LlamaIndex TSllamaindex-tsLlamaIndex的TypeScript版本
    \n\n\n

    1.11.3 AI应用开发工具

    \n
    \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
    地址标签说明
    AI Chatbotai-chatbotVercel开源的全栈聊天机器人模板
    Chatbot UIchatbot-ui开源的ChatGPT UI界面
    LibreChatlibrechat增强版ChatGPT克隆,支持多种AI模型
    ChatGPT-Next-Webchatgpt-next-web一键拥有你自己的跨平台ChatGPT应用
    Superagentsuperagent构建、部署和管理LLM驱动的代理的平台
    AI Shellai-shellCLI工具,将自然语言转换为Shell命令
    Open Interpreteropen-interpreter“电脑使用/自动化”取向Agent:让模型在本机执行命令、文件操作与自动化任务
    MetaGPTmetagpt多代理框架,给定一行需求,返回PRD、设计、任务、代码
    AutoGenautogen微软开源的多代理对话框架
    \n\n\n

    1.11.4 机器学习库

    \n
    \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
    地址标签说明
    TensorFlowJStensorflow在浏览器或Node.js下构建和运行机器学习和深度学习模式的库
    ML5.jsml5友好的机器学习库,构建在TensorFlow.js之上
    pipcookpipcook对web开发者友好的机器学习工具集,阿里
    ML.jsmljsJavaScript中的机器学习库
    Keras.jskerasjs在浏览器中运行Keras模型
    ml-distanceml-distance计算向量之间的距离或相似度,可用于Embeddings处理
    Transformers.jstransformersjs在浏览器中运行Transformer模型的库
    \n\n\n

    1.11.5 语音和视觉AI

    \n
    \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
    地址标签说明
    WhisperwhisperOpenAI 语音识别模型(转文字)
    VADvad在浏览器中运行的实时语音活动检测
    Azure Speech SDKazure-speech微软Azure语音服务JavaScript SDK
    Amazon Transcribe SDKaws-transcribeAmazon Transcribe流式转录SDK
    TensorFlow.js Modelstfjs-models预训练的TensorFlow.js模型集合
    OpenCV.jsopencvjsOpenCV的JavaScript版本,用于计算机视觉
    face-api.jsface-apiJavaScript人脸识别API
    PoseNetposenet实时人体姿态估计
    \n\n\n

    1.11.6 向量数据库

    \n
    \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
    地址标签说明
    ChromaDBchromadb开源的向量数据库
    Milvusmilvus开源向量数据库,用于可扩展的相似性搜索
    Qdrantqdrant向量相似性搜索引擎
    Weaviateweaviate开源向量搜索引擎
    Pinecone SDKpineconePinecone向量数据库TypeScript客户端
    Supabase Vecssupabase-vecsSupabase的向量客户端
    \n\n\n

    1.11.7 Prompt工程和优化

    \n
    \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
    地址标签说明
    Prompt Perfectprompt-perfect一个优化Prompt的在线工具
    PromptFlowpromptflow微软开源的LLM应用开发套件
    LangChain Promptslangchain-promptsLangChain的Prompt模板库
    Prompt Engineering Guideprompt-guidePrompt工程指南和资源
    awesome chatGPT promptschatgpt-promptschatGPT问答训练实践集合
    awesome chatGPTchatgpt-awesomechatGPT/GPT相关工具、demo及文档集合
    tiktoken tiktokenAI 模型计算库,用于预估调用成本(js版)
    \n\n\n

    1.11.8 RAG (检索增强生成)

    \n
    \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
    地址标签说明
    LlamaIndex RAGllamaindex-rag专为RAG优化的数据框架
    LangChain RAGlangchain-ragLangChain的检索问答链
    Firecrawlfirecrawl将网站转换为LLM就绪的数据
    EmbedChainembedchain基于任何数据集创建ChatGPT应用
    LlamaIndex Integrationsllamaindex-integrationsLlamaIndex集成包
    \n\n\n

    1.11.9 AI编程开发工具

    \n
    \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
    地址标签说明
    Claude Codeclaude-codeAnthropic出品的AI编程助手,基于Claude模型,支持代码生成、解释和调试
    OpenCodeopencode开源的终端 AI 编程助手(coding agent),主打“多模型/多 provider 可插拔”
    Gemini Cligemini-cliGoogle出品的AI编程助手,基于Gemini模型,支持命令行交互和代码生成,代码开源
    CodexcodexOpenAI出品的AI编程助手,支持命令行交互和代码生成
    OpenHandsopenhands开源“AI软件工程师/编码Agent”与运行时(偏代码任务、可本地或云端扩展)
    OpenHands SDKopenhands-sdk面向“写代码类Agent”的Python/REST SDK,支持本地或隔离工作区
    Cursorcursor面向专业开发极其友好的AI IDE,当前火爆
    awesome-cursorrulescursorrules让Cursor提升效率的各类工程cursorrules集合
    Windsurfwindsurf面向专业开发极其友好的AI IDE,个人认为当前对新人比Cursor更友好,当前火爆
    awesome-windsurfruleswindsurfrules让Windsurf提升效率的各类工程cursorrules集合
    Traetrae对标Cursor的AI IDE,免费,字节
    Bolt.newbolt生成和有能力部署项目的AI Agent平台,当前火爆
    Bolt.new开源项目bolt开源版本的Bolt项目,支持切换模型
    V0v0Vercel出品,生成和有能力部署项目的AI Agent平台,当前火爆
    CopyCodercopycoder通过上传应用程序截图或 UI 设计图,Prompt,配合上述Cursor、Bolt这些 AI 代码生成工具使用
    Clinecline开源VSCode插件,agent,支持AI生成/修复代码,当前火爆
    CopyWebcopyweb通过上传应用程序截图或Figma UI 设计稿生成页面,还原效果较好就是免费额度少了点。
    MasterGomastergo设计平台为主,但能较好还原成网页,营销静态类效果不错,国产。
    MGXmgx多 Al Agent 开发平台——从规划、数据分析到编码、测试和部署构建全栈应用,目前比Devin好一点。
    GitHub CopilotcopilotGitHub官方AI编程助手
    Codeiumcodeium免费的AI代码自动完成工具
    TabninetabnineAI代码自动完成工具,支持多种IDE
    Aideraider基于GPT的AI pair programming工具
    FauxPilotfauxpilot开源的GitHub Copilot替代品
    SWE-agentswe-agent面向GitHub问题修复的编码Agent:让模型自主用工具修改真实仓库
    \n\n\n

    1.11.10 AI工具平台

    \n
    \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
    地址标签说明
    MCP.somcp.so开放MCP工具集合
    21st.dev21stAI友好的前端React组件集合
    OpenClawopenclaw个人AI助手/Agent平台(本地自托管、多渠道接入、Skills生态)
    DifydifyAI workflow编排平台,有开放平台
    CozecozeAI workflow编排开放平台,国产,字节
    Langflowlangflow可视化AI应用构建平台
    Flowiseflowise拖拽式LLM应用构建工具
    Flowise开源flowise-openFlowise的开源版本
    \n\n\n

    1.11.11 Agent Skills

    \n
    \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
    地址标签说明
    Skills.shskills-shAgent Skills 目录/浏览站(按 repo / skill 发现与安装指引)
    SkillsMPskillsmpAgent Skills Marketplace(聚合海量 skills,主打跨 Claude Code / Codex CLI / ChatGPT 等兼容)
    AgentSkills.ioagentskills-ioAgent Skills 官方入口(概念介绍、规范、集成指南等)
    Agent Skills Specificationskills-specSKILL.md 格式规范(frontmatter + instructions + resources 的结构与建议)
    agentskills/agentskillsskills-spec-repoAgent Skills 规范与文档仓库(Write once, use everywhere 的开放格式)
    anthropics/skillsanthropics-skillsAnthropic 官方示例 skills 集合(含 template-skill / skill-creator 等)
    vercel-labs/agent-skillsvercel-agent-skillsVercel 官方 skills 集合(覆盖前端/部署/最佳实践等)
    vercel-labs/skillsskills-cliSkills CLI(npx skills add/find/check/update)用于安装/发现/更新 skills
    softaworks/agent-toolkitagent-toolkit社区高人气 skills 合集(开发流程、规划、文档、架构、沟通等多类)
    \n\n\n

    1.12 WebAssembly

    \n
    \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
    地址标签说明
    AssemblyScriptassemblyscript用TypeScript写wasm
    Wasmtimewasmtime一个快速安全的wasm运行时
    WasmExplorer WasmExplorer一个在线的wasm playground
    wasm-packwasm-packRust → Wasm 构建/发布到 npm 的常用工具
    wasm-bindgenwasm-bindgenRust 与 JS/Wasm 绑定与 glue code 工具链核心
    Wasmerwasmer主流 Wasm runtime
    \n\n\n

    1.13 IDE插件

    \n
    \n\n\n

    1.13.1 VS Code

    \n
    \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
    地址标签说明
    MarketPlacemarketplace插件首页
    VSCode在线VSCodeVSCode在线版
    Color Highlightcolor-highlight颜色预览。
    Svg Previewsvg-previewSVG图形预览。
    Code Spell Checkercode-spell-checker代码单词拼写校验。
    Beautifybeautifyjavascript, JSON, CSS, Sass, 和HTML格式优化。
    Bookmarksbookmarks看代码神器,代码书签。
    Rainbow Bracketsrainbow-brackets开发必备,括号颜色区分。
    stylefmtstylefmtcss格式化。
    Debugger For Chromedebugger-for-chromevscode和chrome联调插件,本地开发必备。
    Eslint插件eslintjs检查。
    stylelintstylelintcss/less/scss检查。
    TypeScript Tslint Plugintypescript-tslint-pluginTypeScript检查。
    veturveturVue开发工具。
    Dartdart-codeDart语言开发支持。
    FlutterFlutterFlutter开发适配。
    HTML Snippetshtml-snippetsHTML标签快速开发。
    Identical Sublime Monokaiidentical-sublime-monokai本人还是习惯sublime的风格。
    Markdownlintmarkdownlintmarkdown检查。
    Minifyminifyjs/css直接压缩。
    polacodepolacode代码截图的vscode IDE插件
    GitLensgitlensgit源代码管理插件
    Project Managerproject-manager本地项目管理
    JavaScript Boosterjavascript-boosterjs/ts快速重构优化工具,比如将var换为const/let。
    \n\n\n

    1.15 Web3/区块链

    \n
    \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
    地址标签说明
    Ethers.jsethers轻量级以太坊JavaScript库,Web3.js的现代替代品。
    Viemviem现代化的以太坊接口,TypeScript优先,性能更好。
    WagmiwagmiReact Hooks for Ethereum,基于ethers.js构建。
    RainbowKitrainbowkit最好的钱包连接体验React组件库。
    ConnectKitconnectkit美观、现代的Web3钱包连接组件。
    Web3Modalweb3modal单一的以太坊钱包连接库。
    Thirdwebthirdweb构建Web3应用的完整开发框架。
    MoralismoralisWeb3开发平台,提供API和基础设施。
    Alchemyalchemy领先的区块链开发平台和API提供商。
    Infurainfura以太坊和IPFS的API网关服务。
    QuickNodequicknode快速、可靠的区块链基础设施API。
    Hardhathardhat以太坊软件开发环境。
    Truffletruffle经典的以太坊开发框架。
    Soliditysolidity以太坊智能合约编程语言。
    OpenZeppelinopenzeppelin安全的智能合约标准库。
    MetaMask SDKmetamask-sdkMetaMask官方开发工具包。
    WalletConnectwalletconnect连接去中心化应用与移动钱包的开放协议。
    IPFSipfs去中心化存储网络JavaScript库。
    Ceramic Networkceramic去中心化数据网络。
    GUNgun去中心化数据同步协议。
    \n\n\n

    1.16 生活篇

    \n
    \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
    地址标签说明
    HowToCookHowToCook程序员在家做饭方法指南。
    HowToLiveLongerHowToLiveLonger程序员延寿指南。
    \n
    \n\n\n

    2.fe-tools方法/工具库

    \n
    \n\n\n

    2.1 utils说明

    \n
    \n

    前端开发常用的通用工具方法,适用于浏览器/NodeJS。文档见https://blog.michealwayne.cn/fe-tools/stable/

    \n\n\n

    模块

    \n
    \n\n\n\n

    启动utils项目步骤

    \n
    \n

    (需要在./utils目录下)

    \n\n
    \n

    todo: 小程序封装,构建封装。

    \n
    \n\n\n

    2.2 project-templates 一些前后端项目模版

    \n
    \n

    frontend 前端项目模版

    \n\n

    backend 后端项目模版

    \n\n\n\n

    2.3 styles基础样式库

    \n
    \n

    请移至 CSS 推荐规范MooCSS及通用样式库moo-css-base npmmoo-css-base github

    \n
    \n\n\n

    FE-Tools - Chrome插件

    \n
    \n
    \n

    具体项目及源码地址:https://github.com/MichealWayne/fe-tools-chrome-plugin

    \n
    \n

    \"chrome-ext.png\"

    \n

    辅助前端开发的一个小插件。

    \n\n\n

    功能:

    \n
    \n\n

    前往>>

    \n\n\n

    安装方式

    \n
    \n

    clone本仓库到本地,在“扩展程序”界面点击“加载已解压的拓展程序”选择本地仓库目录下的chrome-extension目录。

    \n"}} diff --git a/docs/v1.0.0-beta01/data/jump.Function.httpsRedirect.json b/docs/v1.0.0-beta01/data/jump.Function.httpsRedirect.json new file mode 100644 index 000000000..48b168e6f --- /dev/null +++ b/docs/v1.0.0-beta01/data/jump.Function.httpsRedirect.json @@ -0,0 +1 @@ +{"id":1145,"name":"httpsRedirect","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/web-utils/src/navigate.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/navigate.ts","line":58,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/navigate.ts#L58"}],"signatures":[{"id":1146,"name":"httpsRedirect","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"httpsRedirect"}]},{"tag":"@description","content":[{"kind":"text","text":"强制跳转到HTTPS协议,将HTTP转换为HTTPS。Forces redirect to HTTPS protocol, converting HTTP to HTTPS"}]}]},"parameters":[{"id":1147,"name":"url","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"跳转地址(可选,默认为当前页面地址)。The URL to redirect (optional, defaults to current page URL)"}]},"type":{"type":"intrinsic","name":"string"},"defaultValue":"location.href","text":{"comment":"

    跳转地址(可选,默认为当前页面地址)。The URL to redirect (optional, defaults to current page URL)

    \n"}}],"type":{"type":"intrinsic","name":"void"},"is":{"declaration":false},"location":{"query":"jump.Function.httpsRedirect","hash":"httpsRedirect"},"text":{"comment":"
    Function:

    httpsRedirect

    \n
    Description:

    强制跳转到HTTPS协议,将HTTP转换为HTTPS。Forces redirect to HTTPS protocol, converting HTTP to HTTPS

    \n"},"sources":[{"fileName":"packages/web-utils/src/navigate.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/navigate.ts","line":58,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/navigate.ts#L58"}],"parentId":1145}],"is":{"declaration":true},"location":{"query":"jump.Function.httpsRedirect","hash":""},"text":{},"parentId":1140} diff --git a/docs/v1.0.0-beta01/data/jump.Function.navigateTo.json b/docs/v1.0.0-beta01/data/jump.Function.navigateTo.json new file mode 100644 index 000000000..1e5a0dcc7 --- /dev/null +++ b/docs/v1.0.0-beta01/data/jump.Function.navigateTo.json @@ -0,0 +1 @@ +{"id":1141,"name":"navigateTo","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/web-utils/src/navigate.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/navigate.ts","line":34,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/navigate.ts#L34"}],"signatures":[{"id":1142,"name":"navigateTo","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"navigateTo"}]},{"tag":"@description","content":[{"kind":"text","text":"跳转到指定URL,支持新标签页、替换等选项。Navigates to a specified URL with support for new tabs, replacement, and other options"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\nnavigateTo('https://example.com', { newTab: true });\n```"}]}]},"parameters":[{"id":1143,"name":"url","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"跳转地址。The URL to navigate to"}]},"type":{"type":"intrinsic","name":"string"},"text":{"comment":"

    跳转地址。The URL to navigate to

    \n"}},{"id":1144,"name":"options","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"跳转选项。Navigation options"}]},"type":{"type":"reference","id":1148,"name":"NavigateOptions"},"defaultValue":"{}","text":{"comment":"

    跳转选项。Navigation options

    \n"}}],"type":{"type":"intrinsic","name":"void"},"is":{"declaration":false},"location":{"query":"jump.Function.navigateTo","hash":"navigateTo"},"text":{"comment":"
    Function:

    navigateTo

    \n
    Description:

    跳转到指定URL,支持新标签页、替换等选项。Navigates to a specified URL with support for new tabs, replacement, and other options

    \n
    Example:
    navigateTo('https://example.com', { newTab: true });\n
    \n"},"sources":[{"fileName":"packages/web-utils/src/navigate.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/navigate.ts","line":34,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/navigate.ts#L34"}],"parentId":1141}],"is":{"declaration":true},"location":{"query":"jump.Function.navigateTo","hash":""},"text":{},"parentId":1140} diff --git a/docs/v1.0.0-beta01/data/jump.Interface.NavigateOptions.json b/docs/v1.0.0-beta01/data/jump.Interface.NavigateOptions.json new file mode 100644 index 000000000..7cb7d5b6a --- /dev/null +++ b/docs/v1.0.0-beta01/data/jump.Interface.NavigateOptions.json @@ -0,0 +1 @@ +{"id":1148,"name":"NavigateOptions","kind":256,"kindString":"Interface","flags":{},"comment":{"summary":[{"kind":"text","text":"跳转选项"}]},"children":[{"id":1150,"name":"newTab","kind":1024,"kindString":"Property","flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"是否在新标签页打开"}]},"sources":[{"fileName":"packages/web-utils/src/navigate.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/navigate.ts","line":19,"character":2,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/navigate.ts#L19"}],"type":{"type":"intrinsic","name":"boolean"},"is":{"declaration":true},"location":{"query":"jump.Interface.NavigateOptions","hash":"newTab"},"text":{"comment":"

    是否在新标签页打开

    \n"},"parentId":1148},{"id":1149,"name":"replace","kind":1024,"kindString":"Property","flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"是否替换当前历史记录(默认为 false,使用 pushState)"}]},"sources":[{"fileName":"packages/web-utils/src/navigate.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/navigate.ts","line":15,"character":2,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/navigate.ts#L15"}],"type":{"type":"intrinsic","name":"boolean"},"is":{"declaration":true},"location":{"query":"jump.Interface.NavigateOptions","hash":"replace"},"text":{"comment":"

    是否替换当前历史记录(默认为 false,使用 pushState)

    \n"},"parentId":1148},{"id":1151,"name":"target","kind":1024,"kindString":"Property","flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"目标窗口名称,仅 newTab=true 时有效"}]},"sources":[{"fileName":"packages/web-utils/src/navigate.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/navigate.ts","line":23,"character":2,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/navigate.ts#L23"}],"type":{"type":"intrinsic","name":"string"},"is":{"declaration":true},"location":{"query":"jump.Interface.NavigateOptions","hash":"target"},"text":{"comment":"

    目标窗口名称,仅 newTab=true 时有效

    \n"},"parentId":1148}],"groups":[{"title":"Properties","children":[1150,1149,1151]}],"sources":[{"fileName":"packages/web-utils/src/navigate.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/navigate.ts","line":11,"character":17,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/navigate.ts#L11"}],"is":{"declaration":true},"location":{"query":"jump.Interface.NavigateOptions","hash":""},"text":{"comment":"

    跳转选项

    \n"},"parentId":1140,"hierarchy":[{"name":"NavigateOptions","isTarget":true,"linkId":"1148"}]} diff --git a/docs/v1.0.0-beta01/data/keyboard.Function.getKeyName.json b/docs/v1.0.0-beta01/data/keyboard.Function.getKeyName.json new file mode 100644 index 000000000..7fc906d3d --- /dev/null +++ b/docs/v1.0.0-beta01/data/keyboard.Function.getKeyName.json @@ -0,0 +1 @@ +{"id":1087,"name":"getKeyName","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/web-utils/src/keyboard.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/keyboard.ts","line":124,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/keyboard.ts#L124"}],"signatures":[{"id":1088,"name":"getKeyName","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"getKeyName"}]},{"tag":"@description","content":[{"kind":"text","text":"通过将键码转换为更易于理解的键名。Converts key codes to more understandable key names"}]},{"tag":"@returns","content":[{"kind":"text","text":"键名。The key name"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\ngetKeyName(13); // 'Enter'\n```"}]}]},"parameters":[{"id":1089,"name":"keycode","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"键码。The key code"}]},"type":{"type":"union","types":[{"type":"literal","value":122},{"type":"literal","value":65},{"type":"literal","value":9},{"type":"literal","value":8},{"type":"literal","value":100},{"type":"literal","value":18},{"type":"literal","value":17},{"type":"literal","value":13},{"type":"literal","value":32},{"type":"literal","value":33},{"type":"literal","value":34},{"type":"literal","value":35},{"type":"literal","value":36},{"type":"literal","value":37},{"type":"literal","value":42},{"type":"literal","value":45},{"type":"literal","value":46},{"type":"literal","value":50},{"type":"literal","value":51},{"type":"literal","value":52},{"type":"literal","value":53},{"type":"literal","value":54},{"type":"literal","value":71},{"type":"literal","value":81},{"type":"literal","value":82},{"type":"literal","value":91},{"type":"literal","value":16},{"type":"literal","value":19},{"type":"literal","value":20},{"type":"literal","value":27},{"type":"literal","value":38},{"type":"literal","value":39},{"type":"literal","value":40},{"type":"literal","value":48},{"type":"literal","value":49},{"type":"literal","value":55},{"type":"literal","value":56},{"type":"literal","value":57},{"type":"literal","value":66},{"type":"literal","value":67},{"type":"literal","value":68},{"type":"literal","value":69},{"type":"literal","value":70},{"type":"literal","value":72},{"type":"literal","value":73},{"type":"literal","value":74},{"type":"literal","value":75},{"type":"literal","value":76},{"type":"literal","value":77},{"type":"literal","value":78},{"type":"literal","value":79},{"type":"literal","value":80},{"type":"literal","value":83},{"type":"literal","value":84},{"type":"literal","value":85},{"type":"literal","value":86},{"type":"literal","value":87},{"type":"literal","value":88},{"type":"literal","value":89},{"type":"literal","value":90},{"type":"literal","value":93},{"type":"literal","value":96},{"type":"literal","value":97},{"type":"literal","value":98},{"type":"literal","value":99},{"type":"literal","value":101},{"type":"literal","value":102},{"type":"literal","value":103},{"type":"literal","value":104},{"type":"literal","value":105},{"type":"literal","value":106},{"type":"literal","value":107},{"type":"literal","value":109},{"type":"literal","value":110},{"type":"literal","value":111},{"type":"literal","value":112},{"type":"literal","value":113},{"type":"literal","value":114},{"type":"literal","value":115},{"type":"literal","value":116},{"type":"literal","value":117},{"type":"literal","value":118},{"type":"literal","value":119},{"type":"literal","value":120},{"type":"literal","value":121},{"type":"literal","value":123},{"type":"literal","value":144},{"type":"literal","value":145},{"type":"literal","value":182},{"type":"literal","value":183},{"type":"literal","value":186},{"type":"literal","value":187},{"type":"literal","value":188},{"type":"literal","value":189},{"type":"literal","value":190},{"type":"literal","value":191},{"type":"literal","value":192},{"type":"literal","value":219},{"type":"literal","value":220},{"type":"literal","value":221},{"type":"literal","value":222}]},"text":{"comment":"

    键码。The key code

    \n"}}],"type":{"type":"intrinsic","name":"string"},"is":{"declaration":false},"location":{"query":"keyboard.Function.getKeyName","hash":"getKeyName"},"text":{"comment":"
    Function:

    getKeyName

    \n
    Description:

    通过将键码转换为更易于理解的键名。Converts key codes to more understandable key names

    \n
    Returns:

    键名。The key name

    \n
    Example:
    getKeyName(13); // 'Enter'\n
    \n"},"sources":[{"fileName":"packages/web-utils/src/keyboard.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/keyboard.ts","line":124,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/keyboard.ts#L124"}],"parentId":1087}],"is":{"declaration":true},"location":{"query":"keyboard.Function.getKeyName","hash":""},"text":{},"parentId":1086} diff --git a/docs/v1.0.0-beta01/data/loadAssets.Function.loadCSV.json b/docs/v1.0.0-beta01/data/loadAssets.Function.loadCSV.json new file mode 100644 index 000000000..012da024b --- /dev/null +++ b/docs/v1.0.0-beta01/data/loadAssets.Function.loadCSV.json @@ -0,0 +1 @@ +{"id":1135,"name":"loadCSV","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/web-utils/src/loadAssets.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/loadAssets.ts","line":141,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/loadAssets.ts#L141"}],"signatures":[{"id":1136,"name":"loadCSV","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"loadCsv"}]},{"tag":"@description","content":[{"kind":"text","text":"前端下载csv数据表(可以配置utils里arrayToCSV)"}]}]},"parameters":[{"id":1137,"name":"csvStr","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"csv字符串"}]},"type":{"type":"intrinsic","name":"string"},"text":{"comment":"

    csv字符串

    \n"}},{"id":1138,"name":"name","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"文件名"}]},"type":{"type":"intrinsic","name":"string"},"defaultValue":"'data'","text":{"comment":"

    文件名

    \n"}},{"id":1139,"name":"type","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"文件类型"}]},"type":{"type":"intrinsic","name":"string"},"defaultValue":"'csv'","text":{"comment":"

    文件类型

    \n"}}],"type":{"type":"intrinsic","name":"void"},"is":{"declaration":false},"location":{"query":"loadAssets.Function.loadCSV","hash":"loadCSV"},"text":{"comment":"
    Function:

    loadCsv

    \n
    Description:

    前端下载csv数据表(可以配置utils里arrayToCSV)

    \n"},"sources":[{"fileName":"packages/web-utils/src/loadAssets.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/loadAssets.ts","line":141,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/loadAssets.ts#L141"}],"parentId":1135}],"is":{"declaration":true},"location":{"query":"loadAssets.Function.loadCSV","hash":""},"text":{},"parentId":1113} diff --git a/docs/v1.0.0-beta01/data/loadAssets.Function.loadCss.json b/docs/v1.0.0-beta01/data/loadAssets.Function.loadCss.json new file mode 100644 index 000000000..57de3619b --- /dev/null +++ b/docs/v1.0.0-beta01/data/loadAssets.Function.loadCss.json @@ -0,0 +1 @@ +{"id":1123,"name":"loadCss","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/web-utils/src/loadAssets.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/loadAssets.ts","line":63,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/loadAssets.ts#L63"}],"signatures":[{"id":1124,"name":"loadCss","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"loadCss"}]},{"tag":"@description","content":[{"kind":"text","text":"动态加载css"}]},{"tag":"@returns","content":[{"kind":"text","text":"css加载完成后的回调"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\nloadCss('a.css').then(() => {\n // use bootstrap css\n}\n```"}]}]},"parameters":[{"id":1125,"name":"cssPath","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"intrinsic","name":"string"},"text":{}}],"type":{"type":"reference","typeArguments":[{"type":"intrinsic","name":"unknown"}],"name":"Promise","qualifiedName":"Promise","package":"typescript"},"is":{"declaration":false},"location":{"query":"loadAssets.Function.loadCss","hash":"loadCss"},"text":{"comment":"
    Function:

    loadCss

    \n
    Description:

    动态加载css

    \n
    Returns:

    css加载完成后的回调

    \n
    Example:
    loadCss('a.css').then(() => {\n  // use bootstrap css\n}\n
    \n"},"sources":[{"fileName":"packages/web-utils/src/loadAssets.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/loadAssets.ts","line":63,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/loadAssets.ts#L63"}],"parentId":1123}],"is":{"declaration":true},"location":{"query":"loadAssets.Function.loadCss","hash":""},"text":{},"parentId":1113} diff --git a/docs/v1.0.0-beta01/data/loadAssets.Function.loadCssList.json b/docs/v1.0.0-beta01/data/loadAssets.Function.loadCssList.json new file mode 100644 index 000000000..3d2b8ad52 --- /dev/null +++ b/docs/v1.0.0-beta01/data/loadAssets.Function.loadCssList.json @@ -0,0 +1 @@ +{"id":1126,"name":"loadCssList","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/web-utils/src/loadAssets.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/loadAssets.ts","line":97,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/loadAssets.ts#L97"}],"signatures":[{"id":1127,"name":"loadCssList","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"loadCssList"}]},{"tag":"@description","content":[{"kind":"text","text":"动态加载css列表"}]},{"tag":"@returns","content":[{"kind":"text","text":"css加载完成后的回调"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\nloadCssList(['a.css', 'b.css', 'c.css']).then(() => {\n // use a.css, b.css, c.css\n}\n```"}]}]},"parameters":[{"id":1128,"name":"cssList","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"css地址列表"}]},"type":{"type":"array","elementType":{"type":"intrinsic","name":"string"}},"text":{"comment":"

    css地址列表

    \n"}}],"type":{"type":"reference","typeArguments":[{"type":"intrinsic","name":"any"}],"name":"Promise","qualifiedName":"Promise","package":"typescript"},"is":{"declaration":false},"location":{"query":"loadAssets.Function.loadCssList","hash":"loadCssList"},"text":{"comment":"
    Function:

    loadCssList

    \n
    Description:

    动态加载css列表

    \n
    Returns:

    css加载完成后的回调

    \n
    Example:
    loadCssList(['a.css', 'b.css', 'c.css']).then(() => {\n  // use a.css, b.css, c.css\n}\n
    \n"},"sources":[{"fileName":"packages/web-utils/src/loadAssets.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/loadAssets.ts","line":97,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/loadAssets.ts#L97"}],"parentId":1126}],"is":{"declaration":true},"location":{"query":"loadAssets.Function.loadCssList","hash":""},"text":{},"parentId":1113} diff --git a/docs/v1.0.0-beta01/data/loadAssets.Function.loadImage.json b/docs/v1.0.0-beta01/data/loadAssets.Function.loadImage.json new file mode 100644 index 000000000..cffbe78fa --- /dev/null +++ b/docs/v1.0.0-beta01/data/loadAssets.Function.loadImage.json @@ -0,0 +1 @@ +{"id":1129,"name":"loadImage","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/web-utils/src/loadAssets.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/loadAssets.ts","line":111,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/loadAssets.ts#L111"}],"signatures":[{"id":1130,"name":"loadImage","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"loadImage"}]},{"tag":"@description","content":[{"kind":"text","text":"动态加载图片资源(常用于预加载)"}]},{"tag":"@returns","content":[{"kind":"text","text":"图片加载完成后的回调"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\nloadImage('a.png').then(img => {\n // use img\n}\n```"}]}]},"parameters":[{"id":1131,"name":"imgUrl","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"图片地址"}]},"type":{"type":"intrinsic","name":"string"},"text":{"comment":"

    图片地址

    \n"}}],"type":{"type":"reference","typeArguments":[{"type":"intrinsic","name":"unknown"}],"name":"Promise","qualifiedName":"Promise","package":"typescript"},"is":{"declaration":false},"location":{"query":"loadAssets.Function.loadImage","hash":"loadImage"},"text":{"comment":"
    Function:

    loadImage

    \n
    Description:

    动态加载图片资源(常用于预加载)

    \n
    Returns:

    图片加载完成后的回调

    \n
    Example:
    loadImage('a.png').then(img => {\n  // use img\n}\n
    \n"},"sources":[{"fileName":"packages/web-utils/src/loadAssets.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/loadAssets.ts","line":111,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/loadAssets.ts#L111"}],"parentId":1129}],"is":{"declaration":true},"location":{"query":"loadAssets.Function.loadImage","hash":""},"text":{},"parentId":1113} diff --git a/docs/v1.0.0-beta01/data/loadAssets.Function.loadImageList.json b/docs/v1.0.0-beta01/data/loadAssets.Function.loadImageList.json new file mode 100644 index 000000000..a187000f5 --- /dev/null +++ b/docs/v1.0.0-beta01/data/loadAssets.Function.loadImageList.json @@ -0,0 +1 @@ +{"id":1132,"name":"loadImageList","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/web-utils/src/loadAssets.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/loadAssets.ts","line":130,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/loadAssets.ts#L130"}],"signatures":[{"id":1133,"name":"loadImageList","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"loadImageList"}]},{"tag":"@description","content":[{"kind":"text","text":"动态加载图片资源列表(常用于预加载)"}]},{"tag":"@returns","content":[{"kind":"text","text":"图片加载完成后的回调"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\nloadImageList(['a.png', 'b.png', 'c.png']).then(imgs => {\n // use imgs\n}\n```"}]}]},"parameters":[{"id":1134,"name":"imageUrls","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"图片地址列表"}]},"type":{"type":"array","elementType":{"type":"intrinsic","name":"string"}},"text":{"comment":"

    图片地址列表

    \n"}}],"type":{"type":"reference","typeArguments":[{"type":"array","elementType":{"type":"intrinsic","name":"unknown"}}],"name":"Promise","qualifiedName":"Promise","package":"typescript"},"is":{"declaration":false},"location":{"query":"loadAssets.Function.loadImageList","hash":"loadImageList"},"text":{"comment":"
    Function:

    loadImageList

    \n
    Description:

    动态加载图片资源列表(常用于预加载)

    \n
    Returns:

    图片加载完成后的回调

    \n
    Example:
    loadImageList(['a.png', 'b.png', 'c.png']).then(imgs => {\n  // use imgs\n}\n
    \n"},"sources":[{"fileName":"packages/web-utils/src/loadAssets.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/loadAssets.ts","line":130,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/loadAssets.ts#L130"}],"parentId":1132}],"is":{"declaration":true},"location":{"query":"loadAssets.Function.loadImageList","hash":""},"text":{},"parentId":1113} diff --git a/docs/v1.0.0-beta01/data/loadAssets.Function.loadScript.json b/docs/v1.0.0-beta01/data/loadAssets.Function.loadScript.json new file mode 100644 index 000000000..26be67ee2 --- /dev/null +++ b/docs/v1.0.0-beta01/data/loadAssets.Function.loadScript.json @@ -0,0 +1 @@ +{"id":1114,"name":"loadScript","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/web-utils/src/loadAssets.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/loadAssets.ts","line":22,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/loadAssets.ts#L22"}],"signatures":[{"id":1115,"name":"loadScript","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"loadScript"}]},{"tag":"@description","content":[{"kind":"text","text":"动态加载JavaScript文件。Dynamically loads JavaScript files"}]},{"tag":"@returns","content":[{"kind":"text","text":"JavaScript加载完成后的Promise。Promise that resolves when JavaScript loading is complete"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\nloadScript('https://cdn.jsdelivr.net/npm/echarts@5.5.0/dist/echarts.min.js').then(()=>{\n // use echart api\n echarts.init(document.getElementById('main'));\n})\n```"}]}]},"parameters":[{"id":1116,"name":"url","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"JavaScript文件地址。The JavaScript file URL"}]},"type":{"type":"intrinsic","name":"string"},"text":{"comment":"

    JavaScript文件地址。The JavaScript file URL

    \n"}},{"id":1117,"name":"isCrossOrigin","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"是否跨域。Whether it's cross-origin"}]},"type":{"type":"intrinsic","name":"boolean"},"defaultValue":"true","text":{"comment":"

    是否跨域。Whether it's cross-origin

    \n"}}],"type":{"type":"reference","typeArguments":[{"type":"intrinsic","name":"unknown"}],"name":"Promise","qualifiedName":"Promise","package":"typescript"},"is":{"declaration":false},"location":{"query":"loadAssets.Function.loadScript","hash":"loadScript"},"text":{"comment":"
    Function:

    loadScript

    \n
    Description:

    动态加载JavaScript文件。Dynamically loads JavaScript files

    \n
    Returns:

    JavaScript加载完成后的Promise。Promise that resolves when JavaScript loading is complete

    \n
    Example:
    loadScript('https://cdn.jsdelivr.net/npm/echarts@5.5.0/dist/echarts.min.js').then(()=>{\n  // use echart api\n  echarts.init(document.getElementById('main'));\n})\n
    \n"},"sources":[{"fileName":"packages/web-utils/src/loadAssets.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/loadAssets.ts","line":22,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/loadAssets.ts#L22"}],"parentId":1114}],"is":{"declaration":true},"location":{"query":"loadAssets.Function.loadScript","hash":""},"text":{},"parentId":1113} diff --git a/docs/v1.0.0-beta01/data/loadAssets.Function.loadScriptList.json b/docs/v1.0.0-beta01/data/loadAssets.Function.loadScriptList.json new file mode 100644 index 000000000..f412cdc40 --- /dev/null +++ b/docs/v1.0.0-beta01/data/loadAssets.Function.loadScriptList.json @@ -0,0 +1 @@ +{"id":1118,"name":"loadScriptList","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/web-utils/src/loadAssets.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/loadAssets.ts","line":48,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/loadAssets.ts#L48"}],"signatures":[{"id":1119,"name":"loadScriptList","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"loadScriptList"}]},{"tag":"@description","content":[{"kind":"text","text":"动态加载JavaScript文件列表。Dynamically loads a list of JavaScript files"}]},{"tag":"@returns","content":[{"kind":"text","text":"JavaScript加载完成后的Promise数组。Promise array that resolves when JavaScript loading is complete"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\nloadScriptList(['a.js', 'b.js', 'c.js']).then(() => {\n // use a.js, b.js, c.js\n})\n```"}]}]},"parameters":[{"id":1120,"name":"urls","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"JavaScript文件地址列表。List of JavaScript file URLs"}]},"type":{"type":"array","elementType":{"type":"intrinsic","name":"string"}},"text":{"comment":"

    JavaScript文件地址列表。List of JavaScript file URLs

    \n"}},{"id":1121,"name":"isCrossOrigin","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"是否跨域。Whether it's cross-origin"}]},"type":{"type":"intrinsic","name":"boolean"},"defaultValue":"true","text":{"comment":"

    是否跨域。Whether it's cross-origin

    \n"}},{"id":1122,"name":"isAsync","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"是否异步加载。Whether to load asynchronously"}]},"type":{"type":"intrinsic","name":"boolean"},"defaultValue":"true","text":{"comment":"

    是否异步加载。Whether to load asynchronously

    \n"}}],"type":{"type":"union","types":[{"type":"reference","typeArguments":[{"type":"intrinsic","name":"void"}],"name":"Promise","qualifiedName":"Promise","package":"typescript"},{"type":"reference","typeArguments":[{"type":"array","elementType":{"type":"intrinsic","name":"unknown"}}],"name":"Promise","qualifiedName":"Promise","package":"typescript"}]},"is":{"declaration":false},"location":{"query":"loadAssets.Function.loadScriptList","hash":"loadScriptList"},"text":{"comment":"
    Function:

    loadScriptList

    \n
    Description:

    动态加载JavaScript文件列表。Dynamically loads a list of JavaScript files

    \n
    Returns:

    JavaScript加载完成后的Promise数组。Promise array that resolves when JavaScript loading is complete

    \n
    Example:
    loadScriptList(['a.js', 'b.js', 'c.js']).then(() => {\n  // use a.js, b.js, c.js\n})\n
    \n"},"sources":[{"fileName":"packages/web-utils/src/loadAssets.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/loadAssets.ts","line":48,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/loadAssets.ts#L48"}],"parentId":1118}],"is":{"declaration":true},"location":{"query":"loadAssets.Function.loadScriptList","hash":""},"text":{},"parentId":1113} diff --git a/docs/v1.0.0-beta01/data/node-img-build/src/handleImg.Function.generate1xFrom2x.json b/docs/v1.0.0-beta01/data/node-img-build/src/handleImg.Function.generate1xFrom2x.json new file mode 100644 index 000000000..d1fb0099b --- /dev/null +++ b/docs/v1.0.0-beta01/data/node-img-build/src/handleImg.Function.generate1xFrom2x.json @@ -0,0 +1 @@ +{"id":1480,"name":"generate1xFrom2x","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/node-img-build/src/handleImg.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/node-img-build/src/handleImg.ts","line":335,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-img-build/src/handleImg.ts#L335"}],"signatures":[{"id":1481,"name":"generate1xFrom2x","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@description","content":[{"kind":"text","text":"Generate standard resolution (1x) image from retina resolution (2x) image"}]},{"tag":"@returns","content":[{"kind":"text","text":"Promise resolving to the full path of the generated 1x image"}]},{"tag":"@throws","content":[{"kind":"text","text":"When image name doesn't contain '_2x.', file not found, or processing fails"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Generate 1x from retina image\r\nconst outputPath = await generate1xFrom2x('./assets', 'icon_2x.png', './dist');\r\n// Creates: ./dist/icon.png (half the dimensions of icon_2x.png)\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Batch process all retina images\r\nconst retinaImages = getImgList('./src/images', { only2x: true });\r\nfor (const img of retinaImages) {\r\n await generate1xFrom2x('./src/images', img, './public/images');\r\n}\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Process retina assets for responsive design\r\nconst assets = ['logo_2x.png', 'hero_2x.jpg', 'button_2x.png'];\r\nconst results = await Promise.all(\r\n assets.map(asset => generate1xFrom2x('./assets', asset, './dist'))\r\n);\r\nconsole.log('Generated 1x images:', results);\n```"}]},{"tag":"@since","content":[{"kind":"text","text":"1.0.0"}]}]},"parameters":[{"id":1482,"name":"filePath","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"Directory path containing the 2x source image"}]},"type":{"type":"intrinsic","name":"string"},"text":{"comment":"

    Directory path containing the 2x source image

    \n"}},{"id":1483,"name":"imgName","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"Source image filename (must contain '_2x.' in the name)"}]},"type":{"type":"intrinsic","name":"string"},"text":{"comment":"

    Source image filename (must contain '_2x.' in the name)

    \n"}},{"id":1484,"name":"outPath","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"Output directory where 1x image will be saved"}]},"type":{"type":"intrinsic","name":"string"},"text":{"comment":"

    Output directory where 1x image will be saved

    \n"}}],"type":{"type":"reference","typeArguments":[{"type":"intrinsic","name":"string"}],"name":"Promise","qualifiedName":"Promise","package":"typescript"},"is":{"declaration":false},"location":{"query":"node-img-build/src/handleImg.Function.generate1xFrom2x","hash":"generate1xFrom2x"},"text":{"comment":"
    Description:

    Generate standard resolution (1x) image from retina resolution (2x) image

    \n
    Returns:

    Promise resolving to the full path of the generated 1x image

    \n
    Throws:

    When image name doesn't contain '_2x.', file not found, or processing fails

    \n
    Example:
    // Generate 1x from retina image\nconst outputPath = await generate1xFrom2x('./assets', 'icon_2x.png', './dist');\n// Creates: ./dist/icon.png (half the dimensions of icon_2x.png)\n
    \n
    Example:
    // Batch process all retina images\nconst retinaImages = getImgList('./src/images', { only2x: true });\nfor (const img of retinaImages) {\n  await generate1xFrom2x('./src/images', img, './public/images');\n}\n
    \n
    Example:
    // Process retina assets for responsive design\nconst assets = ['logo_2x.png', 'hero_2x.jpg', 'button_2x.png'];\nconst results = await Promise.all(\n  assets.map(asset => generate1xFrom2x('./assets', asset, './dist'))\n);\nconsole.log('Generated 1x images:', results);\n
    \n
    Since:

    1.0.0

    \n"},"sources":[{"fileName":"packages/node-img-build/src/handleImg.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/node-img-build/src/handleImg.ts","line":335,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-img-build/src/handleImg.ts#L335"}],"parentId":1480}],"is":{"declaration":true},"location":{"query":"node-img-build/src/handleImg.Function.generate1xFrom2x","hash":""},"text":{},"parentId":1453} diff --git a/docs/v1.0.0-beta01/data/node-img-build/src/handleImg.Function.getGmStream.json b/docs/v1.0.0-beta01/data/node-img-build/src/handleImg.Function.getGmStream.json new file mode 100644 index 000000000..8353fab1f --- /dev/null +++ b/docs/v1.0.0-beta01/data/node-img-build/src/handleImg.Function.getGmStream.json @@ -0,0 +1 @@ +{"id":1454,"name":"getGmStream","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/node-img-build/src/handleImg.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/node-img-build/src/handleImg.ts","line":79,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-img-build/src/handleImg.ts#L79"}],"signatures":[{"id":1455,"name":"getGmStream","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@description","content":[{"kind":"text","text":"Load an image file and create a GraphicsMagick stream for processing"}]},{"tag":"@returns","content":[{"kind":"text","text":"Object containing image metadata and GM processing stream"}]},{"tag":"@throws","content":[{"kind":"text","text":"When image file is not found or cannot be processed by GraphicsMagick"}]},{"tag":"@example","content":[{"kind":"text","text":"// Load image and get dimensions\r\nconst { data, gmStream } = await getGmStream('./images', 'photo.jpg');\r\nconsole.log("},{"kind":"code","text":"`Image: ${data.size.width}x${data.size.height} pixels`"},{"kind":"text","text":");\r\nconsole.log("},{"kind":"code","text":"`Format: ${data.format}, Quality: ${data.quality}`"},{"kind":"text","text":");"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Load image for further processing\r\nconst { gmStream } = await getGmStream('./assets', 'banner_2x.png');\r\nconst resized = gmStream.resize(800, 400);\n```"}]},{"tag":"@since","content":[{"kind":"text","text":"1.0.0"}]}]},"parameters":[{"id":1456,"name":"filePath","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"Directory path containing the image file"}]},"type":{"type":"intrinsic","name":"string"},"text":{"comment":"

    Directory path containing the image file

    \n"}},{"id":1457,"name":"imgName","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"Name of the image file to load"}]},"type":{"type":"intrinsic","name":"string"},"text":{"comment":"

    Name of the image file to load

    \n"}}],"type":{"type":"reference","typeArguments":[{"type":"reflection","declaration":{"id":1458,"name":"__type","kind":65536,"kindString":"Type literal","flags":{},"children":[{"id":1459,"name":"data","kind":1024,"kindString":"Property","flags":{},"sources":[{"fileName":"packages/node-img-build/src/handleImg.ts","line":82,"character":13,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-img-build/src/handleImg.ts#L82"}],"type":{"type":"reference","name":"gmConstructor.ImageInfo","qualifiedName":"m.ImageInfo","package":"@types/gm"}},{"id":1460,"name":"gmStream","kind":1024,"kindString":"Property","flags":{},"sources":[{"fileName":"packages/node-img-build/src/handleImg.ts","line":82,"character":44,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-img-build/src/handleImg.ts#L82"}],"type":{"type":"reference","name":"gmConstructor.State","qualifiedName":"m.State","package":"@types/gm"}}],"groups":[{"title":"Properties","children":[1459,1460]}],"sources":[{"fileName":"packages/node-img-build/src/handleImg.ts","line":82,"character":11,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-img-build/src/handleImg.ts#L82"}]}}],"name":"Promise","qualifiedName":"Promise","package":"typescript"},"is":{"declaration":false},"location":{"query":"node-img-build/src/handleImg.Function.getGmStream","hash":"getGmStream"},"text":{"comment":"
    Description:

    Load an image file and create a GraphicsMagick stream for processing

    \n
    Returns:

    Object containing image metadata and GM processing stream

    \n
    Throws:

    When image file is not found or cannot be processed by GraphicsMagick

    \n
    Example:

    // Load image and get dimensions\nconst { data, gmStream } = await getGmStream('./images', 'photo.jpg');\nconsole.log(Image: ${data.size.width}x${data.size.height} pixels);\nconsole.log(Format: ${data.format}, Quality: ${data.quality});

    \n
    Example:
    // Load image for further processing\nconst { gmStream } = await getGmStream('./assets', 'banner_2x.png');\nconst resized = gmStream.resize(800, 400);\n
    \n
    Since:

    1.0.0

    \n"},"sources":[{"fileName":"packages/node-img-build/src/handleImg.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/node-img-build/src/handleImg.ts","line":79,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-img-build/src/handleImg.ts#L79"}],"parentId":1454}],"is":{"declaration":true},"location":{"query":"node-img-build/src/handleImg.Function.getGmStream","hash":""},"text":{},"parentId":1453} diff --git a/docs/v1.0.0-beta01/data/node-img-build/src/handleImg.Function.resizeImg.json b/docs/v1.0.0-beta01/data/node-img-build/src/handleImg.Function.resizeImg.json new file mode 100644 index 000000000..4308b1b12 --- /dev/null +++ b/docs/v1.0.0-beta01/data/node-img-build/src/handleImg.Function.resizeImg.json @@ -0,0 +1 @@ +{"id":1475,"name":"resizeImg","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/node-img-build/src/handleImg.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/node-img-build/src/handleImg.ts","line":281,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-img-build/src/handleImg.ts#L281"}],"signatures":[{"id":1476,"name":"resizeImg","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@description","content":[{"kind":"text","text":"Resize an image to specified dimensions with optional aspect ratio preservation"}]},{"tag":"@returns","content":[{"kind":"text","text":"Resized GM stream or false if processing fails"}]},{"tag":"@throws","content":[{"kind":"text","text":"When width/height are not positive, finite numbers"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Resize maintaining aspect ratio\r\nconst { gmStream } = await getGmStream('./images', 'photo.jpg');\r\nconst resized = resizeImg(gmStream, 800);\r\n// Resizes to 800px width, height calculated proportionally\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Resize to exact dimensions (may distort image)\r\nconst exact = resizeImg(gmStream, 800, 600);\r\n// Forces image to exactly 800x600 pixels\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Create thumbnail versions\r\nconst thumbnail = resizeImg(gmStream, 150, 150);\r\nconst medium = resizeImg(gmStream, 400);\r\nconst large = resizeImg(gmStream, 1200);\n```"}]},{"tag":"@since","content":[{"kind":"text","text":"1.0.0"}]}]},"parameters":[{"id":1477,"name":"gmStream","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"GraphicsMagick image stream to resize"}]},"type":{"type":"reference","name":"State","qualifiedName":"m.State","package":"@types/gm"},"text":{"comment":"

    GraphicsMagick image stream to resize

    \n"}},{"id":1478,"name":"width","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"Target width in pixels (must be positive integer)"}]},"type":{"type":"intrinsic","name":"number"},"text":{"comment":"

    Target width in pixels (must be positive integer)

    \n"}},{"id":1479,"name":"height","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Target height in pixels (maintains aspect ratio if omitted)"}]},"type":{"type":"intrinsic","name":"number"},"text":{"comment":"

    Target height in pixels (maintains aspect ratio if omitted)

    \n"}}],"type":{"type":"union","types":[{"type":"reference","name":"gmConstructor.State","qualifiedName":"m.State","package":"@types/gm"},{"type":"literal","value":false}]},"is":{"declaration":false},"location":{"query":"node-img-build/src/handleImg.Function.resizeImg","hash":"resizeImg"},"text":{"comment":"
    Description:

    Resize an image to specified dimensions with optional aspect ratio preservation

    \n
    Returns:

    Resized GM stream or false if processing fails

    \n
    Throws:

    When width/height are not positive, finite numbers

    \n
    Example:
    // Resize maintaining aspect ratio\nconst { gmStream } = await getGmStream('./images', 'photo.jpg');\nconst resized = resizeImg(gmStream, 800);\n// Resizes to 800px width, height calculated proportionally\n
    \n
    Example:
    // Resize to exact dimensions (may distort image)\nconst exact = resizeImg(gmStream, 800, 600);\n// Forces image to exactly 800x600 pixels\n
    \n
    Example:
    // Create thumbnail versions\nconst thumbnail = resizeImg(gmStream, 150, 150);\nconst medium = resizeImg(gmStream, 400);\nconst large = resizeImg(gmStream, 1200);\n
    \n
    Since:

    1.0.0

    \n"},"sources":[{"fileName":"packages/node-img-build/src/handleImg.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/node-img-build/src/handleImg.ts","line":281,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-img-build/src/handleImg.ts#L281"}],"parentId":1475}],"is":{"declaration":true},"location":{"query":"node-img-build/src/handleImg.Function.resizeImg","hash":""},"text":{},"parentId":1453} diff --git a/docs/v1.0.0-beta01/data/node-img-build/src/handleImg.Function.toBase64.json b/docs/v1.0.0-beta01/data/node-img-build/src/handleImg.Function.toBase64.json new file mode 100644 index 000000000..4c3969624 --- /dev/null +++ b/docs/v1.0.0-beta01/data/node-img-build/src/handleImg.Function.toBase64.json @@ -0,0 +1 @@ +{"id":1471,"name":"toBase64","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/node-img-build/src/handleImg.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/node-img-build/src/handleImg.ts","line":236,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-img-build/src/handleImg.ts#L236"}],"signatures":[{"id":1472,"name":"toBase64","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@description","content":[{"kind":"text","text":"Convert an image to base64 data URI string for embedding in HTML/CSS"}]},{"tag":"@returns","content":[{"kind":"text","text":"Promise resolving to base64 data URI string"}]},{"tag":"@throws","content":[{"kind":"text","text":"When GM stream is invalid or format conversion fails"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Convert to base64 JPEG (default)\r\nconst { gmStream } = await getGmStream('./images', 'photo.jpg');\r\nconst dataUri = await toBase64(gmStream);\r\n// Returns: \"data:image/jpg;base64,/9j/4AAQSkZJRgABAQAAAQ...\"\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Convert to base64 PNG for transparency support\r\nconst pngDataUri = await toBase64(gmStream, 'png');\r\ndocument.getElementById('img').src = pngDataUri;\n```"}]},{"tag":"@example","content":[{"kind":"text","text":"// Convert processed image to base64 for CSS background\r\nconst resized = resizeImg(gmStream, 100, 100);\r\nconst base64 = await toBase64(resized, 'webp');\r\nconst css = "},{"kind":"code","text":"`background-image: url(${base64})`"},{"kind":"text","text":";"}]},{"tag":"@since","content":[{"kind":"text","text":"1.0.0"}]}]},"parameters":[{"id":1473,"name":"gmStream","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"GraphicsMagick image stream to convert"}]},"type":{"type":"reference","name":"State","qualifiedName":"m.State","package":"@types/gm"},"text":{"comment":"

    GraphicsMagick image stream to convert

    \n"}},{"id":1474,"name":"type","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Output image format (jpg, png, webp, gif, etc.)"}]},"type":{"type":"intrinsic","name":"string"},"defaultValue":"'jpg'","text":{"comment":"

    Output image format (jpg, png, webp, gif, etc.)

    \n"}}],"type":{"type":"reference","typeArguments":[{"type":"intrinsic","name":"string"}],"name":"Promise","qualifiedName":"Promise","package":"typescript"},"is":{"declaration":false},"location":{"query":"node-img-build/src/handleImg.Function.toBase64","hash":"toBase64"},"text":{"comment":"
    Description:

    Convert an image to base64 data URI string for embedding in HTML/CSS

    \n
    Returns:

    Promise resolving to base64 data URI string

    \n
    Throws:

    When GM stream is invalid or format conversion fails

    \n
    Example:
    // Convert to base64 JPEG (default)\nconst { gmStream } = await getGmStream('./images', 'photo.jpg');\nconst dataUri = await toBase64(gmStream);\n// Returns: \"data:image/jpg;base64,/9j/4AAQSkZJRgABAQAAAQ...\"\n
    \n
    Example:
    // Convert to base64 PNG for transparency support\nconst pngDataUri = await toBase64(gmStream, 'png');\ndocument.getElementById('img').src = pngDataUri;\n
    \n
    Example:

    // Convert processed image to base64 for CSS background\nconst resized = resizeImg(gmStream, 100, 100);\nconst base64 = await toBase64(resized, 'webp');\nconst css = background-image: url(${base64});

    \n
    Since:

    1.0.0

    \n"},"sources":[{"fileName":"packages/node-img-build/src/handleImg.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/node-img-build/src/handleImg.ts","line":236,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-img-build/src/handleImg.ts#L236"}],"parentId":1471}],"is":{"declaration":true},"location":{"query":"node-img-build/src/handleImg.Function.toBase64","hash":""},"text":{},"parentId":1453} diff --git a/docs/v1.0.0-beta01/data/node-img-build/src/handleImg.Function.toBlurImg.json b/docs/v1.0.0-beta01/data/node-img-build/src/handleImg.Function.toBlurImg.json new file mode 100644 index 000000000..840941824 --- /dev/null +++ b/docs/v1.0.0-beta01/data/node-img-build/src/handleImg.Function.toBlurImg.json @@ -0,0 +1 @@ +{"id":1467,"name":"toBlurImg","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/node-img-build/src/handleImg.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/node-img-build/src/handleImg.ts","line":193,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-img-build/src/handleImg.ts#L193"}],"signatures":[{"id":1468,"name":"toBlurImg","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@description","content":[{"kind":"text","text":"Apply blur effect to an image using GraphicsMagick processing"}]},{"tag":"@returns","content":[{"kind":"text","text":"Modified GM stream with blur applied, or false if processing fails"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Apply default blur effect\r\nconst { gmStream } = await getGmStream('./images', 'photo.jpg');\r\nconst blurred = toBlurImg(gmStream);\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Custom blur with artistic effect\r\nconst artisticBlur = toBlurImg(gmStream, {\r\n color: 16, // Preserve more colors\r\n blurRadius: 15, // Stronger blur\r\n blurSigma: 8 // Smoother effect\r\n});\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Subtle blur for background images\r\nconst subtleBlur = toBlurImg(gmStream, {\r\n color: 32, // High color preservation\r\n blurRadius: 3, // Light blur\r\n blurSigma: 1 // Minimal sigma\r\n});\n```"}]},{"tag":"@since","content":[{"kind":"text","text":"1.0.0"}]}]},"parameters":[{"id":1469,"name":"gmStream","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"GraphicsMagick image stream to process"}]},"type":{"type":"reference","name":"State","qualifiedName":"m.State","package":"@types/gm"},"text":{"comment":"

    GraphicsMagick image stream to process

    \n"}},{"id":1470,"name":"options","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Blur effect configuration options"}]},"type":{"type":"reference","id":1485,"name":"BlurOptions"},"defaultValue":"{}","text":{"comment":"

    Blur effect configuration options

    \n"}}],"type":{"type":"union","types":[{"type":"reference","name":"gmConstructor.State","qualifiedName":"m.State","package":"@types/gm"},{"type":"literal","value":false}]},"is":{"declaration":false},"location":{"query":"node-img-build/src/handleImg.Function.toBlurImg","hash":"toBlurImg"},"text":{"comment":"
    Description:

    Apply blur effect to an image using GraphicsMagick processing

    \n
    Returns:

    Modified GM stream with blur applied, or false if processing fails

    \n
    Example:
    // Apply default blur effect\nconst { gmStream } = await getGmStream('./images', 'photo.jpg');\nconst blurred = toBlurImg(gmStream);\n
    \n
    Example:
    // Custom blur with artistic effect\nconst artisticBlur = toBlurImg(gmStream, {\n  color: 16,        // Preserve more colors\n  blurRadius: 15,   // Stronger blur\n  blurSigma: 8      // Smoother effect\n});\n
    \n
    Example:
    // Subtle blur for background images\nconst subtleBlur = toBlurImg(gmStream, {\n  color: 32,        // High color preservation\n  blurRadius: 3,    // Light blur\n  blurSigma: 1      // Minimal sigma\n});\n
    \n
    Since:

    1.0.0

    \n"},"sources":[{"fileName":"packages/node-img-build/src/handleImg.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/node-img-build/src/handleImg.ts","line":193,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-img-build/src/handleImg.ts#L193"}],"parentId":1467}],"is":{"declaration":true},"location":{"query":"node-img-build/src/handleImg.Function.toBlurImg","hash":""},"text":{},"parentId":1453} diff --git a/docs/v1.0.0-beta01/data/node-img-build/src/handleImg.Function.toWebpImg.json b/docs/v1.0.0-beta01/data/node-img-build/src/handleImg.Function.toWebpImg.json new file mode 100644 index 000000000..24a47cd9b --- /dev/null +++ b/docs/v1.0.0-beta01/data/node-img-build/src/handleImg.Function.toWebpImg.json @@ -0,0 +1 @@ +{"id":1461,"name":"toWebpImg","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/node-img-build/src/handleImg.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/node-img-build/src/handleImg.ts","line":132,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-img-build/src/handleImg.ts#L132"}],"signatures":[{"id":1462,"name":"toWebpImg","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@description","content":[{"kind":"text","text":"Convert an image to WebP format with automatic filename handling for retina images"}]},{"tag":"@returns","content":[{"kind":"text","text":"Promise resolving to the full path of the generated WebP file"}]},{"tag":"@throws","content":[{"kind":"text","text":"When source image cannot be read or WebP conversion fails"}]},{"tag":"@example","content":[{"kind":"text","text":"// Convert regular image to WebP with default quality (80%)\r\nconst webpPath = await toWebpImg('./src/images', 'photo.jpg', './dist/images');\r\nconsole.log("},{"kind":"code","text":"`WebP created: ${webpPath}`"},{"kind":"text","text":");"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Convert retina image with custom quality\r\nawait toWebpImg('./assets', 'hero_2x.png', './public', { quality: 90 });\r\n// Creates: ./public/hero.webp (removes _2x from filename)\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Batch convert images with optimized quality for web\r\nconst images = ['banner.jpg', 'icon_2x.png', 'background.jpg'];\r\nfor (const img of images) {\r\n await toWebpImg('./src', img, './dist', { quality: 85 });\r\n}\n```"}]},{"tag":"@since","content":[{"kind":"text","text":"1.0.0"}]}]},"parameters":[{"id":1463,"name":"filePath","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"Directory path containing the source image"}]},"type":{"type":"intrinsic","name":"string"},"text":{"comment":"

    Directory path containing the source image

    \n"}},{"id":1464,"name":"imgName","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"Source image filename (supports retina '_2x.' naming)"}]},"type":{"type":"intrinsic","name":"string"},"text":{"comment":"

    Source image filename (supports retina '_2x.' naming)

    \n"}},{"id":1465,"name":"outPath","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"Output directory where WebP file will be saved"}]},"type":{"type":"intrinsic","name":"string"},"text":{"comment":"

    Output directory where WebP file will be saved

    \n"}},{"id":1466,"name":"options","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"WebP conversion options including quality settings"}]},"type":{"type":"reference","id":1489,"name":"WebpOptions"},"defaultValue":"{}","text":{"comment":"

    WebP conversion options including quality settings

    \n"}}],"type":{"type":"reference","typeArguments":[{"type":"intrinsic","name":"string"}],"name":"Promise","qualifiedName":"Promise","package":"typescript"},"is":{"declaration":false},"location":{"query":"node-img-build/src/handleImg.Function.toWebpImg","hash":"toWebpImg"},"text":{"comment":"
    Description:

    Convert an image to WebP format with automatic filename handling for retina images

    \n
    Returns:

    Promise resolving to the full path of the generated WebP file

    \n
    Throws:

    When source image cannot be read or WebP conversion fails

    \n
    Example:

    // Convert regular image to WebP with default quality (80%)\nconst webpPath = await toWebpImg('./src/images', 'photo.jpg', './dist/images');\nconsole.log(WebP created: ${webpPath});

    \n
    Example:
    // Convert retina image with custom quality\nawait toWebpImg('./assets', 'hero_2x.png', './public', { quality: 90 });\n// Creates: ./public/hero.webp (removes _2x from filename)\n
    \n
    Example:
    // Batch convert images with optimized quality for web\nconst images = ['banner.jpg', 'icon_2x.png', 'background.jpg'];\nfor (const img of images) {\n  await toWebpImg('./src', img, './dist', { quality: 85 });\n}\n
    \n
    Since:

    1.0.0

    \n"},"sources":[{"fileName":"packages/node-img-build/src/handleImg.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/node-img-build/src/handleImg.ts","line":132,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-img-build/src/handleImg.ts#L132"}],"parentId":1461}],"is":{"declaration":true},"location":{"query":"node-img-build/src/handleImg.Function.toWebpImg","hash":""},"text":{},"parentId":1453} diff --git a/docs/v1.0.0-beta01/data/node-img-build/src/handleImg.Interface.BlurOptions.json b/docs/v1.0.0-beta01/data/node-img-build/src/handleImg.Interface.BlurOptions.json new file mode 100644 index 000000000..2771ebcd5 --- /dev/null +++ b/docs/v1.0.0-beta01/data/node-img-build/src/handleImg.Interface.BlurOptions.json @@ -0,0 +1 @@ +{"id":1485,"name":"BlurOptions","kind":256,"kindString":"Interface","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@description","content":[{"kind":"text","text":"Configuration options for image blur effects"}]},{"tag":"@interface","content":[{"kind":"text","text":"BlurOptions"}]}]},"children":[{"id":1487,"name":"blurRadius","kind":1024,"kindString":"Property","flags":{"isOptional":true},"comment":{"summary":[],"blockTags":[{"tag":"@description","content":[{"kind":"text","text":"Blur radius in pixels - controls the extent of the blur effect\r\nLarger values create stronger blur but increase processing time"}]},{"tag":"@default","content":[{"kind":"text","text":"7"}]}]},"sources":[{"fileName":"packages/node-img-build/src/handleImg.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/node-img-build/src/handleImg.ts","line":36,"character":2,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-img-build/src/handleImg.ts#L36"}],"type":{"type":"intrinsic","name":"number"},"is":{"declaration":true},"location":{"query":"node-img-build/src/handleImg.Interface.BlurOptions","hash":"blurRadius"},"text":{"comment":"
    Description:

    Blur radius in pixels - controls the extent of the blur effect\nLarger values create stronger blur but increase processing time

    \n
    Default:

    7

    \n"},"parentId":1485},{"id":1488,"name":"blurSigma","kind":1024,"kindString":"Property","flags":{"isOptional":true},"comment":{"summary":[],"blockTags":[{"tag":"@description","content":[{"kind":"text","text":"Gaussian blur sigma value - controls blur intensity\r\nHigher values create smoother, more pronounced blur effects"}]},{"tag":"@default","content":[{"kind":"text","text":"3"}]}]},"sources":[{"fileName":"packages/node-img-build/src/handleImg.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/node-img-build/src/handleImg.ts","line":42,"character":2,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-img-build/src/handleImg.ts#L42"}],"type":{"type":"intrinsic","name":"number"},"is":{"declaration":true},"location":{"query":"node-img-build/src/handleImg.Interface.BlurOptions","hash":"blurSigma"},"text":{"comment":"
    Description:

    Gaussian blur sigma value - controls blur intensity\nHigher values create smoother, more pronounced blur effects

    \n
    Default:

    3

    \n"},"parentId":1485},{"id":1486,"name":"color","kind":1024,"kindString":"Property","flags":{"isOptional":true},"comment":{"summary":[],"blockTags":[{"tag":"@description","content":[{"kind":"text","text":"Number of colors to preserve in the blurred image (1-256)\r\nLower values create more posterized effects, higher values preserve detail"}]},{"tag":"@default","content":[{"kind":"text","text":"8"}]}]},"sources":[{"fileName":"packages/node-img-build/src/handleImg.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/node-img-build/src/handleImg.ts","line":30,"character":2,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-img-build/src/handleImg.ts#L30"}],"type":{"type":"intrinsic","name":"number"},"is":{"declaration":true},"location":{"query":"node-img-build/src/handleImg.Interface.BlurOptions","hash":"color"},"text":{"comment":"
    Description:

    Number of colors to preserve in the blurred image (1-256)\nLower values create more posterized effects, higher values preserve detail

    \n
    Default:

    8

    \n"},"parentId":1485}],"groups":[{"title":"Properties","children":[1487,1488,1486]}],"sources":[{"fileName":"packages/node-img-build/src/handleImg.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/node-img-build/src/handleImg.ts","line":24,"character":17,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-img-build/src/handleImg.ts#L24"}],"is":{"declaration":true},"location":{"query":"node-img-build/src/handleImg.Interface.BlurOptions","hash":""},"text":{"comment":"
    Description:

    Configuration options for image blur effects

    \n
    Interface:

    BlurOptions

    \n"},"parentId":1453,"hierarchy":[{"name":"BlurOptions","isTarget":true,"linkId":"1485"}]} diff --git a/docs/v1.0.0-beta01/data/node-img-build/src/handleImg.Interface.WebpOptions.json b/docs/v1.0.0-beta01/data/node-img-build/src/handleImg.Interface.WebpOptions.json new file mode 100644 index 000000000..f8cfa9b4d --- /dev/null +++ b/docs/v1.0.0-beta01/data/node-img-build/src/handleImg.Interface.WebpOptions.json @@ -0,0 +1 @@ +{"id":1489,"name":"WebpOptions","kind":256,"kindString":"Interface","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@description","content":[{"kind":"text","text":"Configuration options for WebP format conversion"}]},{"tag":"@interface","content":[{"kind":"text","text":"WebpOptions"}]}]},"children":[{"id":1490,"name":"quality","kind":1024,"kindString":"Property","flags":{"isOptional":true},"comment":{"summary":[],"blockTags":[{"tag":"@description","content":[{"kind":"text","text":"Quality level for WebP compression (0-100)\r\n0 = maximum compression/lowest quality, 100 = minimum compression/highest quality\r\nWebP typically achieves good results at 80-90% quality"}]},{"tag":"@default","content":[{"kind":"text","text":"80"}]}]},"sources":[{"fileName":"packages/node-img-build/src/handleImg.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/node-img-build/src/handleImg.ts","line":56,"character":2,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-img-build/src/handleImg.ts#L56"}],"type":{"type":"intrinsic","name":"number"},"is":{"declaration":true},"location":{"query":"node-img-build/src/handleImg.Interface.WebpOptions","hash":"quality"},"text":{"comment":"
    Description:

    Quality level for WebP compression (0-100)\n0 = maximum compression/lowest quality, 100 = minimum compression/highest quality\nWebP typically achieves good results at 80-90% quality

    \n
    Default:

    80

    \n"},"parentId":1489}],"groups":[{"title":"Properties","children":[1490]}],"sources":[{"fileName":"packages/node-img-build/src/handleImg.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/node-img-build/src/handleImg.ts","line":49,"character":17,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-img-build/src/handleImg.ts#L49"}],"is":{"declaration":true},"location":{"query":"node-img-build/src/handleImg.Interface.WebpOptions","hash":""},"text":{"comment":"
    Description:

    Configuration options for WebP format conversion

    \n
    Interface:

    WebpOptions

    \n"},"parentId":1453,"hierarchy":[{"name":"WebpOptions","isTarget":true,"linkId":"1489"}]} diff --git a/docs/v1.0.0-beta01/data/node-img-build/src/handleImg.Variable.default.json b/docs/v1.0.0-beta01/data/node-img-build/src/handleImg.Variable.default.json new file mode 100644 index 000000000..de5ad5559 --- /dev/null +++ b/docs/v1.0.0-beta01/data/node-img-build/src/handleImg.Variable.default.json @@ -0,0 +1 @@ +{"id":1491,"name":"default","kind":32,"kindString":"Variable","flags":{},"children":[],"sources":[{"fileName":"packages/node-img-build/src/handleImg.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/node-img-build/src/handleImg.ts","line":381,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-img-build/src/handleImg.ts#L381"}],"type":{"type":"reflection","declaration":{"id":1492,"name":"default","kind":65536,"kindString":"Type literal","flags":{},"children":[{"id":1524,"name":"generate1xFrom2x","kind":4096,"kindString":"Property","flags":{},"sources":[{"fileName":"packages/node-img-build/src/handleImg.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/node-img-build/src/handleImg.ts","line":387,"character":2,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-img-build/src/handleImg.ts#L387"}],"type":{"type":"reflection","declaration":{"id":1525,"name":"generate1xFrom2x","kind":65536,"kindString":"Type literal","flags":{},"sources":[{"fileName":"packages/node-img-build/src/handleImg.ts","line":335,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-img-build/src/handleImg.ts#L335"}],"signatures":[{"id":1526,"name":"generate1xFrom2x","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@description","content":[{"kind":"text","text":"Generate standard resolution (1x) image from retina resolution (2x) image"}]},{"tag":"@returns","content":[{"kind":"text","text":"Promise resolving to the full path of the generated 1x image"}]},{"tag":"@throws","content":[{"kind":"text","text":"When image name doesn't contain '_2x.', file not found, or processing fails"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Generate 1x from retina image\r\nconst outputPath = await generate1xFrom2x('./assets', 'icon_2x.png', './dist');\r\n// Creates: ./dist/icon.png (half the dimensions of icon_2x.png)\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Batch process all retina images\r\nconst retinaImages = getImgList('./src/images', { only2x: true });\r\nfor (const img of retinaImages) {\r\n await generate1xFrom2x('./src/images', img, './public/images');\r\n}\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Process retina assets for responsive design\r\nconst assets = ['logo_2x.png', 'hero_2x.jpg', 'button_2x.png'];\r\nconst results = await Promise.all(\r\n assets.map(asset => generate1xFrom2x('./assets', asset, './dist'))\r\n);\r\nconsole.log('Generated 1x images:', results);\n```"}]},{"tag":"@since","content":[{"kind":"text","text":"1.0.0"}]}]},"parameters":[{"id":1527,"name":"filePath","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"Directory path containing the 2x source image"}]},"type":{"type":"intrinsic","name":"string"},"text":{"comment":"

    Directory path containing the 2x source image

    \n"}},{"id":1528,"name":"imgName","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"Source image filename (must contain '_2x.' in the name)"}]},"type":{"type":"intrinsic","name":"string"},"text":{"comment":"

    Source image filename (must contain '_2x.' in the name)

    \n"}},{"id":1529,"name":"outPath","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"Output directory where 1x image will be saved"}]},"type":{"type":"intrinsic","name":"string"},"text":{"comment":"

    Output directory where 1x image will be saved

    \n"}}],"type":{"type":"reference","typeArguments":[{"type":"intrinsic","name":"string"}],"name":"Promise","qualifiedName":"Promise","package":"typescript"},"is":{"declaration":false},"location":{"query":"node-img-build/src/handleImg.Variable.default","hash":"generate1xFrom2x.__type"},"text":{"comment":"
    Description:

    Generate standard resolution (1x) image from retina resolution (2x) image

    \n
    Returns:

    Promise resolving to the full path of the generated 1x image

    \n
    Throws:

    When image name doesn't contain '_2x.', file not found, or processing fails

    \n
    Example:
    // Generate 1x from retina image\nconst outputPath = await generate1xFrom2x('./assets', 'icon_2x.png', './dist');\n// Creates: ./dist/icon.png (half the dimensions of icon_2x.png)\n
    \n
    Example:
    // Batch process all retina images\nconst retinaImages = getImgList('./src/images', { only2x: true });\nfor (const img of retinaImages) {\n  await generate1xFrom2x('./src/images', img, './public/images');\n}\n
    \n
    Example:
    // Process retina assets for responsive design\nconst assets = ['logo_2x.png', 'hero_2x.jpg', 'button_2x.png'];\nconst results = await Promise.all(\n  assets.map(asset => generate1xFrom2x('./assets', asset, './dist'))\n);\nconsole.log('Generated 1x images:', results);\n
    \n
    Since:

    1.0.0

    \n"},"sources":[{"fileName":"packages/node-img-build/src/handleImg.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/node-img-build/src/handleImg.ts","line":335,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-img-build/src/handleImg.ts#L335"}],"parentId":1491}],"location":{"query":"node-img-build/src/handleImg.Variable.default","hash":"generate1xFrom2x"}}},"is":{"declaration":true},"location":{"query":"node-img-build/src/handleImg.Variable.default","hash":"generate1xFrom2x"},"text":{},"parentId":1491},{"id":1493,"name":"getGmStream","kind":4096,"kindString":"Property","flags":{},"sources":[{"fileName":"packages/node-img-build/src/handleImg.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/node-img-build/src/handleImg.ts","line":382,"character":2,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-img-build/src/handleImg.ts#L382"}],"type":{"type":"reflection","declaration":{"id":1494,"name":"getGmStream","kind":65536,"kindString":"Type literal","flags":{},"sources":[{"fileName":"packages/node-img-build/src/handleImg.ts","line":79,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-img-build/src/handleImg.ts#L79"}],"signatures":[{"id":1495,"name":"getGmStream","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@description","content":[{"kind":"text","text":"Load an image file and create a GraphicsMagick stream for processing"}]},{"tag":"@returns","content":[{"kind":"text","text":"Object containing image metadata and GM processing stream"}]},{"tag":"@throws","content":[{"kind":"text","text":"When image file is not found or cannot be processed by GraphicsMagick"}]},{"tag":"@example","content":[{"kind":"text","text":"// Load image and get dimensions\r\nconst { data, gmStream } = await getGmStream('./images', 'photo.jpg');\r\nconsole.log("},{"kind":"code","text":"`Image: ${data.size.width}x${data.size.height} pixels`"},{"kind":"text","text":");\r\nconsole.log("},{"kind":"code","text":"`Format: ${data.format}, Quality: ${data.quality}`"},{"kind":"text","text":");"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Load image for further processing\r\nconst { gmStream } = await getGmStream('./assets', 'banner_2x.png');\r\nconst resized = gmStream.resize(800, 400);\n```"}]},{"tag":"@since","content":[{"kind":"text","text":"1.0.0"}]}]},"parameters":[{"id":1496,"name":"filePath","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"Directory path containing the image file"}]},"type":{"type":"intrinsic","name":"string"},"text":{"comment":"

    Directory path containing the image file

    \n"}},{"id":1497,"name":"imgName","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"Name of the image file to load"}]},"type":{"type":"intrinsic","name":"string"},"text":{"comment":"

    Name of the image file to load

    \n"}}],"type":{"type":"reference","typeArguments":[{"type":"reflection","declaration":{"id":1498,"name":"__type","kind":65536,"kindString":"Type literal","flags":{},"children":[{"id":1499,"name":"data","kind":1024,"kindString":"Property","flags":{},"sources":[{"fileName":"packages/node-img-build/src/handleImg.ts","line":82,"character":13,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-img-build/src/handleImg.ts#L82"}],"type":{"type":"reference","name":"gmConstructor.ImageInfo","qualifiedName":"m.ImageInfo","package":"@types/gm"}},{"id":1500,"name":"gmStream","kind":1024,"kindString":"Property","flags":{},"sources":[{"fileName":"packages/node-img-build/src/handleImg.ts","line":82,"character":44,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-img-build/src/handleImg.ts#L82"}],"type":{"type":"reference","name":"gmConstructor.State","qualifiedName":"m.State","package":"@types/gm"}}],"groups":[{"title":"Properties","children":[1499,1500]}],"sources":[{"fileName":"packages/node-img-build/src/handleImg.ts","line":82,"character":11,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-img-build/src/handleImg.ts#L82"}]}}],"name":"Promise","qualifiedName":"Promise","package":"typescript"},"is":{"declaration":false},"location":{"query":"node-img-build/src/handleImg.Variable.default","hash":"getGmStream.__type"},"text":{"comment":"
    Description:

    Load an image file and create a GraphicsMagick stream for processing

    \n
    Returns:

    Object containing image metadata and GM processing stream

    \n
    Throws:

    When image file is not found or cannot be processed by GraphicsMagick

    \n
    Example:

    // Load image and get dimensions\nconst { data, gmStream } = await getGmStream('./images', 'photo.jpg');\nconsole.log(Image: ${data.size.width}x${data.size.height} pixels);\nconsole.log(Format: ${data.format}, Quality: ${data.quality});

    \n
    Example:
    // Load image for further processing\nconst { gmStream } = await getGmStream('./assets', 'banner_2x.png');\nconst resized = gmStream.resize(800, 400);\n
    \n
    Since:

    1.0.0

    \n"},"sources":[{"fileName":"packages/node-img-build/src/handleImg.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/node-img-build/src/handleImg.ts","line":79,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-img-build/src/handleImg.ts#L79"}],"parentId":1491}],"location":{"query":"node-img-build/src/handleImg.Variable.default","hash":"getGmStream"}}},"is":{"declaration":true},"location":{"query":"node-img-build/src/handleImg.Variable.default","hash":"getGmStream"},"text":{},"parentId":1491},{"id":1518,"name":"resizeImg","kind":4096,"kindString":"Property","flags":{},"sources":[{"fileName":"packages/node-img-build/src/handleImg.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/node-img-build/src/handleImg.ts","line":386,"character":2,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-img-build/src/handleImg.ts#L386"}],"type":{"type":"reflection","declaration":{"id":1519,"name":"resizeImg","kind":65536,"kindString":"Type literal","flags":{},"sources":[{"fileName":"packages/node-img-build/src/handleImg.ts","line":281,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-img-build/src/handleImg.ts#L281"}],"signatures":[{"id":1520,"name":"resizeImg","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@description","content":[{"kind":"text","text":"Resize an image to specified dimensions with optional aspect ratio preservation"}]},{"tag":"@returns","content":[{"kind":"text","text":"Resized GM stream or false if processing fails"}]},{"tag":"@throws","content":[{"kind":"text","text":"When width/height are not positive, finite numbers"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Resize maintaining aspect ratio\r\nconst { gmStream } = await getGmStream('./images', 'photo.jpg');\r\nconst resized = resizeImg(gmStream, 800);\r\n// Resizes to 800px width, height calculated proportionally\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Resize to exact dimensions (may distort image)\r\nconst exact = resizeImg(gmStream, 800, 600);\r\n// Forces image to exactly 800x600 pixels\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Create thumbnail versions\r\nconst thumbnail = resizeImg(gmStream, 150, 150);\r\nconst medium = resizeImg(gmStream, 400);\r\nconst large = resizeImg(gmStream, 1200);\n```"}]},{"tag":"@since","content":[{"kind":"text","text":"1.0.0"}]}]},"parameters":[{"id":1521,"name":"gmStream","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"GraphicsMagick image stream to resize"}]},"type":{"type":"reference","name":"State","qualifiedName":"m.State","package":"@types/gm"},"text":{"comment":"

    GraphicsMagick image stream to resize

    \n"}},{"id":1522,"name":"width","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"Target width in pixels (must be positive integer)"}]},"type":{"type":"intrinsic","name":"number"},"text":{"comment":"

    Target width in pixels (must be positive integer)

    \n"}},{"id":1523,"name":"height","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Target height in pixels (maintains aspect ratio if omitted)"}]},"type":{"type":"intrinsic","name":"number"},"text":{"comment":"

    Target height in pixels (maintains aspect ratio if omitted)

    \n"}}],"type":{"type":"union","types":[{"type":"reference","name":"gmConstructor.State","qualifiedName":"m.State","package":"@types/gm"},{"type":"literal","value":false}]},"is":{"declaration":false},"location":{"query":"node-img-build/src/handleImg.Variable.default","hash":"resizeImg.__type"},"text":{"comment":"
    Description:

    Resize an image to specified dimensions with optional aspect ratio preservation

    \n
    Returns:

    Resized GM stream or false if processing fails

    \n
    Throws:

    When width/height are not positive, finite numbers

    \n
    Example:
    // Resize maintaining aspect ratio\nconst { gmStream } = await getGmStream('./images', 'photo.jpg');\nconst resized = resizeImg(gmStream, 800);\n// Resizes to 800px width, height calculated proportionally\n
    \n
    Example:
    // Resize to exact dimensions (may distort image)\nconst exact = resizeImg(gmStream, 800, 600);\n// Forces image to exactly 800x600 pixels\n
    \n
    Example:
    // Create thumbnail versions\nconst thumbnail = resizeImg(gmStream, 150, 150);\nconst medium = resizeImg(gmStream, 400);\nconst large = resizeImg(gmStream, 1200);\n
    \n
    Since:

    1.0.0

    \n"},"sources":[{"fileName":"packages/node-img-build/src/handleImg.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/node-img-build/src/handleImg.ts","line":281,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-img-build/src/handleImg.ts#L281"}],"parentId":1491}],"location":{"query":"node-img-build/src/handleImg.Variable.default","hash":"resizeImg"}}},"is":{"declaration":true},"location":{"query":"node-img-build/src/handleImg.Variable.default","hash":"resizeImg"},"text":{},"parentId":1491},{"id":1513,"name":"toBase64","kind":4096,"kindString":"Property","flags":{},"sources":[{"fileName":"packages/node-img-build/src/handleImg.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/node-img-build/src/handleImg.ts","line":385,"character":2,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-img-build/src/handleImg.ts#L385"}],"type":{"type":"reflection","declaration":{"id":1514,"name":"toBase64","kind":65536,"kindString":"Type literal","flags":{},"sources":[{"fileName":"packages/node-img-build/src/handleImg.ts","line":236,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-img-build/src/handleImg.ts#L236"}],"signatures":[{"id":1515,"name":"toBase64","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@description","content":[{"kind":"text","text":"Convert an image to base64 data URI string for embedding in HTML/CSS"}]},{"tag":"@returns","content":[{"kind":"text","text":"Promise resolving to base64 data URI string"}]},{"tag":"@throws","content":[{"kind":"text","text":"When GM stream is invalid or format conversion fails"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Convert to base64 JPEG (default)\r\nconst { gmStream } = await getGmStream('./images', 'photo.jpg');\r\nconst dataUri = await toBase64(gmStream);\r\n// Returns: \"data:image/jpg;base64,/9j/4AAQSkZJRgABAQAAAQ...\"\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Convert to base64 PNG for transparency support\r\nconst pngDataUri = await toBase64(gmStream, 'png');\r\ndocument.getElementById('img').src = pngDataUri;\n```"}]},{"tag":"@example","content":[{"kind":"text","text":"// Convert processed image to base64 for CSS background\r\nconst resized = resizeImg(gmStream, 100, 100);\r\nconst base64 = await toBase64(resized, 'webp');\r\nconst css = "},{"kind":"code","text":"`background-image: url(${base64})`"},{"kind":"text","text":";"}]},{"tag":"@since","content":[{"kind":"text","text":"1.0.0"}]}]},"parameters":[{"id":1516,"name":"gmStream","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"GraphicsMagick image stream to convert"}]},"type":{"type":"reference","name":"State","qualifiedName":"m.State","package":"@types/gm"},"text":{"comment":"

    GraphicsMagick image stream to convert

    \n"}},{"id":1517,"name":"type","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Output image format (jpg, png, webp, gif, etc.)"}]},"type":{"type":"intrinsic","name":"string"},"defaultValue":"'jpg'","text":{"comment":"

    Output image format (jpg, png, webp, gif, etc.)

    \n"}}],"type":{"type":"reference","typeArguments":[{"type":"intrinsic","name":"string"}],"name":"Promise","qualifiedName":"Promise","package":"typescript"},"is":{"declaration":false},"location":{"query":"node-img-build/src/handleImg.Variable.default","hash":"toBase64.__type"},"text":{"comment":"
    Description:

    Convert an image to base64 data URI string for embedding in HTML/CSS

    \n
    Returns:

    Promise resolving to base64 data URI string

    \n
    Throws:

    When GM stream is invalid or format conversion fails

    \n
    Example:
    // Convert to base64 JPEG (default)\nconst { gmStream } = await getGmStream('./images', 'photo.jpg');\nconst dataUri = await toBase64(gmStream);\n// Returns: \"data:image/jpg;base64,/9j/4AAQSkZJRgABAQAAAQ...\"\n
    \n
    Example:
    // Convert to base64 PNG for transparency support\nconst pngDataUri = await toBase64(gmStream, 'png');\ndocument.getElementById('img').src = pngDataUri;\n
    \n
    Example:

    // Convert processed image to base64 for CSS background\nconst resized = resizeImg(gmStream, 100, 100);\nconst base64 = await toBase64(resized, 'webp');\nconst css = background-image: url(${base64});

    \n
    Since:

    1.0.0

    \n"},"sources":[{"fileName":"packages/node-img-build/src/handleImg.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/node-img-build/src/handleImg.ts","line":236,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-img-build/src/handleImg.ts#L236"}],"parentId":1491}],"location":{"query":"node-img-build/src/handleImg.Variable.default","hash":"toBase64"}}},"is":{"declaration":true},"location":{"query":"node-img-build/src/handleImg.Variable.default","hash":"toBase64"},"text":{},"parentId":1491},{"id":1508,"name":"toBlurImg","kind":4096,"kindString":"Property","flags":{},"sources":[{"fileName":"packages/node-img-build/src/handleImg.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/node-img-build/src/handleImg.ts","line":384,"character":2,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-img-build/src/handleImg.ts#L384"}],"type":{"type":"reflection","declaration":{"id":1509,"name":"toBlurImg","kind":65536,"kindString":"Type literal","flags":{},"sources":[{"fileName":"packages/node-img-build/src/handleImg.ts","line":193,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-img-build/src/handleImg.ts#L193"}],"signatures":[{"id":1510,"name":"toBlurImg","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@description","content":[{"kind":"text","text":"Apply blur effect to an image using GraphicsMagick processing"}]},{"tag":"@returns","content":[{"kind":"text","text":"Modified GM stream with blur applied, or false if processing fails"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Apply default blur effect\r\nconst { gmStream } = await getGmStream('./images', 'photo.jpg');\r\nconst blurred = toBlurImg(gmStream);\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Custom blur with artistic effect\r\nconst artisticBlur = toBlurImg(gmStream, {\r\n color: 16, // Preserve more colors\r\n blurRadius: 15, // Stronger blur\r\n blurSigma: 8 // Smoother effect\r\n});\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Subtle blur for background images\r\nconst subtleBlur = toBlurImg(gmStream, {\r\n color: 32, // High color preservation\r\n blurRadius: 3, // Light blur\r\n blurSigma: 1 // Minimal sigma\r\n});\n```"}]},{"tag":"@since","content":[{"kind":"text","text":"1.0.0"}]}]},"parameters":[{"id":1511,"name":"gmStream","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"GraphicsMagick image stream to process"}]},"type":{"type":"reference","name":"State","qualifiedName":"m.State","package":"@types/gm"},"text":{"comment":"

    GraphicsMagick image stream to process

    \n"}},{"id":1512,"name":"options","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Blur effect configuration options"}]},"type":{"type":"reference","id":1485,"name":"BlurOptions"},"defaultValue":"{}","text":{"comment":"

    Blur effect configuration options

    \n"}}],"type":{"type":"union","types":[{"type":"reference","name":"gmConstructor.State","qualifiedName":"m.State","package":"@types/gm"},{"type":"literal","value":false}]},"is":{"declaration":false},"location":{"query":"node-img-build/src/handleImg.Variable.default","hash":"toBlurImg.__type"},"text":{"comment":"
    Description:

    Apply blur effect to an image using GraphicsMagick processing

    \n
    Returns:

    Modified GM stream with blur applied, or false if processing fails

    \n
    Example:
    // Apply default blur effect\nconst { gmStream } = await getGmStream('./images', 'photo.jpg');\nconst blurred = toBlurImg(gmStream);\n
    \n
    Example:
    // Custom blur with artistic effect\nconst artisticBlur = toBlurImg(gmStream, {\n  color: 16,        // Preserve more colors\n  blurRadius: 15,   // Stronger blur\n  blurSigma: 8      // Smoother effect\n});\n
    \n
    Example:
    // Subtle blur for background images\nconst subtleBlur = toBlurImg(gmStream, {\n  color: 32,        // High color preservation\n  blurRadius: 3,    // Light blur\n  blurSigma: 1      // Minimal sigma\n});\n
    \n
    Since:

    1.0.0

    \n"},"sources":[{"fileName":"packages/node-img-build/src/handleImg.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/node-img-build/src/handleImg.ts","line":193,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-img-build/src/handleImg.ts#L193"}],"parentId":1491}],"location":{"query":"node-img-build/src/handleImg.Variable.default","hash":"toBlurImg"}}},"is":{"declaration":true},"location":{"query":"node-img-build/src/handleImg.Variable.default","hash":"toBlurImg"},"text":{},"parentId":1491},{"id":1501,"name":"toWebpImg","kind":4096,"kindString":"Property","flags":{},"sources":[{"fileName":"packages/node-img-build/src/handleImg.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/node-img-build/src/handleImg.ts","line":383,"character":2,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-img-build/src/handleImg.ts#L383"}],"type":{"type":"reflection","declaration":{"id":1502,"name":"toWebpImg","kind":65536,"kindString":"Type literal","flags":{},"sources":[{"fileName":"packages/node-img-build/src/handleImg.ts","line":132,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-img-build/src/handleImg.ts#L132"}],"signatures":[{"id":1503,"name":"toWebpImg","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@description","content":[{"kind":"text","text":"Convert an image to WebP format with automatic filename handling for retina images"}]},{"tag":"@returns","content":[{"kind":"text","text":"Promise resolving to the full path of the generated WebP file"}]},{"tag":"@throws","content":[{"kind":"text","text":"When source image cannot be read or WebP conversion fails"}]},{"tag":"@example","content":[{"kind":"text","text":"// Convert regular image to WebP with default quality (80%)\r\nconst webpPath = await toWebpImg('./src/images', 'photo.jpg', './dist/images');\r\nconsole.log("},{"kind":"code","text":"`WebP created: ${webpPath}`"},{"kind":"text","text":");"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Convert retina image with custom quality\r\nawait toWebpImg('./assets', 'hero_2x.png', './public', { quality: 90 });\r\n// Creates: ./public/hero.webp (removes _2x from filename)\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Batch convert images with optimized quality for web\r\nconst images = ['banner.jpg', 'icon_2x.png', 'background.jpg'];\r\nfor (const img of images) {\r\n await toWebpImg('./src', img, './dist', { quality: 85 });\r\n}\n```"}]},{"tag":"@since","content":[{"kind":"text","text":"1.0.0"}]}]},"parameters":[{"id":1504,"name":"filePath","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"Directory path containing the source image"}]},"type":{"type":"intrinsic","name":"string"},"text":{"comment":"

    Directory path containing the source image

    \n"}},{"id":1505,"name":"imgName","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"Source image filename (supports retina '_2x.' naming)"}]},"type":{"type":"intrinsic","name":"string"},"text":{"comment":"

    Source image filename (supports retina '_2x.' naming)

    \n"}},{"id":1506,"name":"outPath","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"Output directory where WebP file will be saved"}]},"type":{"type":"intrinsic","name":"string"},"text":{"comment":"

    Output directory where WebP file will be saved

    \n"}},{"id":1507,"name":"options","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"WebP conversion options including quality settings"}]},"type":{"type":"reference","id":1489,"name":"WebpOptions"},"defaultValue":"{}","text":{"comment":"

    WebP conversion options including quality settings

    \n"}}],"type":{"type":"reference","typeArguments":[{"type":"intrinsic","name":"string"}],"name":"Promise","qualifiedName":"Promise","package":"typescript"},"is":{"declaration":false},"location":{"query":"node-img-build/src/handleImg.Variable.default","hash":"toWebpImg.__type"},"text":{"comment":"
    Description:

    Convert an image to WebP format with automatic filename handling for retina images

    \n
    Returns:

    Promise resolving to the full path of the generated WebP file

    \n
    Throws:

    When source image cannot be read or WebP conversion fails

    \n
    Example:

    // Convert regular image to WebP with default quality (80%)\nconst webpPath = await toWebpImg('./src/images', 'photo.jpg', './dist/images');\nconsole.log(WebP created: ${webpPath});

    \n
    Example:
    // Convert retina image with custom quality\nawait toWebpImg('./assets', 'hero_2x.png', './public', { quality: 90 });\n// Creates: ./public/hero.webp (removes _2x from filename)\n
    \n
    Example:
    // Batch convert images with optimized quality for web\nconst images = ['banner.jpg', 'icon_2x.png', 'background.jpg'];\nfor (const img of images) {\n  await toWebpImg('./src', img, './dist', { quality: 85 });\n}\n
    \n
    Since:

    1.0.0

    \n"},"sources":[{"fileName":"packages/node-img-build/src/handleImg.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/node-img-build/src/handleImg.ts","line":132,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-img-build/src/handleImg.ts#L132"}],"parentId":1491}],"location":{"query":"node-img-build/src/handleImg.Variable.default","hash":"toWebpImg"}}},"is":{"declaration":true},"location":{"query":"node-img-build/src/handleImg.Variable.default","hash":"toWebpImg"},"text":{},"parentId":1491}],"groups":[{"title":"Methods","children":[1524,1493,1518,1513,1508,1501]}],"sources":[{"fileName":"packages/node-img-build/src/handleImg.ts","line":381,"character":15,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-img-build/src/handleImg.ts#L381"}],"location":{"query":"node-img-build/src/handleImg.Variable.default","hash":""}}},"is":{"declaration":true},"location":{"query":"node-img-build/src/handleImg.Variable.default","hash":""},"text":{},"parentId":1453} diff --git a/docs/v1.0.0-beta01/data/node-utils/src.Function.allLoadavg.json b/docs/v1.0.0-beta01/data/node-utils/src.Function.allLoadavg.json new file mode 100644 index 000000000..45753de35 --- /dev/null +++ b/docs/v1.0.0-beta01/data/node-utils/src.Function.allLoadavg.json @@ -0,0 +1 @@ +{"id":1814,"name":"allLoadavg","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/node-utils/src/system/os.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/node-utils/src/system/os.ts","line":443,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-utils/src/system/os.ts#L443"}],"signatures":[{"id":1815,"name":"allLoadavg","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"allLoadavg"}]},{"tag":"@description","content":[{"kind":"text","text":"获取所有1、5和15分钟的负载平均值作为格式化字符串。Gets all load average values for 1, 5, and 15 minutes as a formatted string for comprehensive system load monitoring."}]},{"tag":"@returns","content":[{"kind":"text","text":"逗号分隔的负载平均值:\"1分钟,5分钟,15分钟\"。Comma-separated load averages: \"1min,5min,15min\""}]},{"tag":"@example","content":[{"kind":"text","text":"// System load monitoring\nconst loadAvg = allLoadavg();\nconsole.log("},{"kind":"code","text":"`Load averages: ${loadAvg}`"},{"kind":"text","text":");\n// Output: \"0.5234,0.4123,0.3456\""}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Parse and analyze load averages\nconst [load1, load5, load15] = allLoadavg().split(',').map(Number);\nif (load1 > cpuCount()) {\n console.warn('System under high load');\n}\n```"}]},{"tag":"@since","content":[{"kind":"text","text":"1.0.0"}]},{"tag":"@see","content":[{"kind":"text","text":" - "},{"kind":"inline-tag","tag":"@link","text":"loadavg","target":1816},{"kind":"text","text":" - Get specific time period load average"},{"kind":"text","text":"\n"},{"kind":"text","text":" - "},{"kind":"inline-tag","tag":"@link","text":"https://nodejs.org/api/os.html#os_os_loadavg","target":"https://nodejs.org/api/os.html#os_os_loadavg"},{"kind":"text","text":" - Node.js os.loadavg() documentation"},{"kind":"text","text":"\n"}]}]},"type":{"type":"intrinsic","name":"string"},"is":{"declaration":false},"location":{"query":"node-utils/src.Function.allLoadavg","hash":"allLoadavg"},"text":{"comment":"
    Function:

    allLoadavg

    \n
    Description:

    获取所有1、5和15分钟的负载平均值作为格式化字符串。Gets all load average values for 1, 5, and 15 minutes as a formatted string for comprehensive system load monitoring.

    \n
    Returns:

    逗号分隔的负载平均值:"1分钟,5分钟,15分钟"。Comma-separated load averages: "1min,5min,15min"

    \n
    Example:

    // System load monitoring\nconst loadAvg = allLoadavg();\nconsole.log(Load averages: ${loadAvg});\n// Output: "0.5234,0.4123,0.3456"

    \n
    Example:
    // Parse and analyze load averages\nconst [load1, load5, load15] = allLoadavg().split(',').map(Number);\nif (load1 > cpuCount()) {\n  console.warn('System under high load');\n}\n
    \n
    Since:

    1.0.0

    \n
    See:
    \n"},"sources":[{"fileName":"packages/node-utils/src/system/os.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/node-utils/src/system/os.ts","line":443,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-utils/src/system/os.ts#L443"}],"parentId":1814}],"is":{"declaration":true},"location":{"query":"node-utils/src.Function.allLoadavg","hash":""},"text":{},"parentId":881} diff --git a/docs/v1.0.0-beta01/data/node-utils/src.Function.arrayToCSV.json b/docs/v1.0.0-beta01/data/node-utils/src.Function.arrayToCSV.json new file mode 100644 index 000000000..b04c7638b --- /dev/null +++ b/docs/v1.0.0-beta01/data/node-utils/src.Function.arrayToCSV.json @@ -0,0 +1 @@ +{"id":1903,"name":"arrayToCSV","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/node-utils/src/data/index.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/node-utils/src/data/index.ts","line":56,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-utils/src/data/index.ts#L56"}],"signatures":[{"id":1904,"name":"arrayToCSV","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"arrayToCSV"}]},{"tag":"@description","content":[{"kind":"text","text":"将二维数组转换为CSV字符串。Converts 2D array to CSV string"}]},{"tag":"@returns","content":[{"kind":"text","text":"CSV字符串。CSV string"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\nconst data = [['name', 'age'], ['John', 25], ['Jane', 30]];\nconst csv = arrayToCSV(data);\n// -> 'name,age\\nJohn,25\\nJane,30'\n```"}]}]},"parameters":[{"id":1905,"name":"data","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"二维数组。2D array"}]},"type":{"type":"array","elementType":{"type":"array","elementType":{"type":"intrinsic","name":"any"}}},"text":{"comment":"

    二维数组。2D array

    \n"}},{"id":1906,"name":"delimiter","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"分隔符(默认: ',')。Delimiter (default: ',')"}]},"type":{"type":"intrinsic","name":"string"},"defaultValue":"','","text":{"comment":"

    分隔符(默认: ',')。Delimiter (default: ',')

    \n"}}],"type":{"type":"intrinsic","name":"string"},"is":{"declaration":false},"location":{"query":"node-utils/src.Function.arrayToCSV","hash":"arrayToCSV"},"text":{"comment":"
    Function:

    arrayToCSV

    \n
    Description:

    将二维数组转换为CSV字符串。Converts 2D array to CSV string

    \n
    Returns:

    CSV字符串。CSV string

    \n
    Example:
    const data = [['name', 'age'], ['John', 25], ['Jane', 30]];\nconst csv = arrayToCSV(data);\n// -> 'name,age\\nJohn,25\\nJane,30'\n
    \n"},"sources":[{"fileName":"packages/node-utils/src/data/index.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/node-utils/src/data/index.ts","line":56,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-utils/src/data/index.ts#L56"}],"parentId":1903}],"is":{"declaration":true},"location":{"query":"node-utils/src.Function.arrayToCSV","hash":""},"text":{},"parentId":881} diff --git a/docs/v1.0.0-beta01/data/node-utils/src.Function.base64Decode.json b/docs/v1.0.0-beta01/data/node-utils/src.Function.base64Decode.json new file mode 100644 index 000000000..0904b5882 --- /dev/null +++ b/docs/v1.0.0-beta01/data/node-utils/src.Function.base64Decode.json @@ -0,0 +1 @@ +{"id":1837,"name":"base64Decode","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/node-utils/src/common/base64.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/node-utils/src/common/base64.ts","line":83,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-utils/src/common/base64.ts#L83"}],"signatures":[{"id":1838,"name":"base64Decode","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"base64Decode"}]},{"tag":"@description","content":[{"kind":"text","text":"将Base64字符串解码回UTF-8格式。Decodes a Base64 string back to UTF-8 format using Node.js Buffer with proper error handling."}]},{"tag":"@returns","content":[{"kind":"text","text":"解码后的UTF-8字符串。Decoded UTF-8 string"}]},{"tag":"@throws","content":[{"kind":"text","text":"如果输入不是有效的Base64可能抛出错误。May throw if the input is not valid Base64"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Basic string decoding\nconst decoded = base64Decode('aGVsbG8gd29ybGQ=');\nconsole.log(decoded); // 'hello world'\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Decode and parse JSON data\nconst encodedJson = 'eyJ1c2VyIjoiam9obiIsInRva2VuIjoiYWJjMTIzIn0=';\nconst decodedJson = base64Decode(encodedJson);\nconst data = JSON.parse(decodedJson);\nconsole.log(data); // { user: 'john', token: 'abc123' }\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Safe decoding with error handling\ntry {\n const result = base64Decode(userInput);\n console.log('Decoded successfully:', result);\n} catch (error) {\n console.error('Invalid Base64 input:', error.message);\n}\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Decode authentication credentials\nconst authHeader = 'Basic dXNlcm5hbWU6cGFzc3dvcmQ=';\nconst credentials = base64Decode(authHeader.replace('Basic ', ''));\nconsole.log(credentials); // 'username:password'\n```"}]},{"tag":"@see","content":[{"kind":"text","text":" - "},{"kind":"inline-tag","tag":"@link","text":"base64Encode","target":1834},{"kind":"text","text":" - Encode strings to Base64"},{"kind":"text","text":"\n"},{"kind":"text","text":" - "},{"kind":"inline-tag","tag":"@link","text":"isBase64Str","target":1840},{"kind":"text","text":" - Validate Base64 strings"},{"kind":"text","text":"\n"}]}]},"parameters":[{"id":1839,"name":"base64Str","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"要解码的Base64字符串。The Base64 encoded string to decode"}]},"type":{"type":"intrinsic","name":"string"},"text":{"comment":"

    要解码的Base64字符串。The Base64 encoded string to decode

    \n"}}],"type":{"type":"intrinsic","name":"string"},"is":{"declaration":false},"location":{"query":"node-utils/src.Function.base64Decode","hash":"base64Decode"},"text":{"comment":"
    Function:

    base64Decode

    \n
    Description:

    将Base64字符串解码回UTF-8格式。Decodes a Base64 string back to UTF-8 format using Node.js Buffer with proper error handling.

    \n
    Returns:

    解码后的UTF-8字符串。Decoded UTF-8 string

    \n
    Throws:

    如果输入不是有效的Base64可能抛出错误。May throw if the input is not valid Base64

    \n
    Example:
    // Basic string decoding\nconst decoded = base64Decode('aGVsbG8gd29ybGQ=');\nconsole.log(decoded); // 'hello world'\n
    \n
    Example:
    // Decode and parse JSON data\nconst encodedJson = 'eyJ1c2VyIjoiam9obiIsInRva2VuIjoiYWJjMTIzIn0=';\nconst decodedJson = base64Decode(encodedJson);\nconst data = JSON.parse(decodedJson);\nconsole.log(data); // { user: 'john', token: 'abc123' }\n
    \n
    Example:
    // Safe decoding with error handling\ntry {\n  const result = base64Decode(userInput);\n  console.log('Decoded successfully:', result);\n} catch (error) {\n  console.error('Invalid Base64 input:', error.message);\n}\n
    \n
    Example:
    // Decode authentication credentials\nconst authHeader = 'Basic dXNlcm5hbWU6cGFzc3dvcmQ=';\nconst credentials = base64Decode(authHeader.replace('Basic ', ''));\nconsole.log(credentials); // 'username:password'\n
    \n
    See:
    \n"},"sources":[{"fileName":"packages/node-utils/src/common/base64.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/node-utils/src/common/base64.ts","line":83,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-utils/src/common/base64.ts#L83"}],"parentId":1837}],"is":{"declaration":true},"location":{"query":"node-utils/src.Function.base64Decode","hash":""},"text":{},"parentId":881} diff --git a/docs/v1.0.0-beta01/data/node-utils/src.Function.base64Encode.json b/docs/v1.0.0-beta01/data/node-utils/src.Function.base64Encode.json new file mode 100644 index 000000000..a8332504b --- /dev/null +++ b/docs/v1.0.0-beta01/data/node-utils/src.Function.base64Encode.json @@ -0,0 +1 @@ +{"id":1834,"name":"base64Encode","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/node-utils/src/common/base64.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/node-utils/src/common/base64.ts","line":42,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-utils/src/common/base64.ts#L42"}],"signatures":[{"id":1835,"name":"base64Encode","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"base64Encode"}]},{"tag":"@description","content":[{"kind":"text","text":"将UTF-8字符串编码为Base64格式。Encodes a UTF-8 string to Base64 format using Node.js Buffer for secure data transmission and storage."}]},{"tag":"@returns","content":[{"kind":"text","text":"Base64编码后的字符串。Base64 encoded string"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Basic string encoding\nconst encoded = base64Encode('hello world');\nconsole.log(encoded); // 'aGVsbG8gd29ybGQ='\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Encode JSON data for API transmission\nconst data = { user: 'john', token: 'abc123' };\nconst encoded = base64Encode(JSON.stringify(data));\nconsole.log(encoded); // Base64 representation of JSON\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Encode special characters and Unicode\nconst unicode = base64Encode('Hello 世界! 🌍');\nconsole.log(unicode); // Properly encoded Unicode string\n```"}]},{"tag":"@example","content":[{"kind":"text","text":"// Encode for URL-safe transmission\nconst credentials = base64Encode('username:password');\nconst authHeader = "},{"kind":"code","text":"`Basic ${credentials}`"},{"kind":"text","text":";"}]},{"tag":"@see","content":[{"kind":"text","text":" - "},{"kind":"inline-tag","tag":"@link","text":"base64Decode","target":1837},{"kind":"text","text":" - Decode Base64 strings"},{"kind":"text","text":"\n"},{"kind":"text","text":" - "},{"kind":"inline-tag","tag":"@link","text":"isBase64Str","target":1840},{"kind":"text","text":" - Validate Base64 format"},{"kind":"text","text":"\n"}]}]},"parameters":[{"id":1836,"name":"str","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"要编码的字符串。The string to encode (supports UTF-8 and Unicode characters)"}]},"type":{"type":"intrinsic","name":"string"},"text":{"comment":"

    要编码的字符串。The string to encode (supports UTF-8 and Unicode characters)

    \n"}}],"type":{"type":"intrinsic","name":"string"},"is":{"declaration":false},"location":{"query":"node-utils/src.Function.base64Encode","hash":"base64Encode"},"text":{"comment":"
    Function:

    base64Encode

    \n
    Description:

    将UTF-8字符串编码为Base64格式。Encodes a UTF-8 string to Base64 format using Node.js Buffer for secure data transmission and storage.

    \n
    Returns:

    Base64编码后的字符串。Base64 encoded string

    \n
    Example:
    // Basic string encoding\nconst encoded = base64Encode('hello world');\nconsole.log(encoded); // 'aGVsbG8gd29ybGQ='\n
    \n
    Example:
    // Encode JSON data for API transmission\nconst data = { user: 'john', token: 'abc123' };\nconst encoded = base64Encode(JSON.stringify(data));\nconsole.log(encoded); // Base64 representation of JSON\n
    \n
    Example:
    // Encode special characters and Unicode\nconst unicode = base64Encode('Hello 世界! 🌍');\nconsole.log(unicode); // Properly encoded Unicode string\n
    \n
    Example:

    // Encode for URL-safe transmission\nconst credentials = base64Encode('username:password');\nconst authHeader = Basic ${credentials};

    \n
    See:
    \n"},"sources":[{"fileName":"packages/node-utils/src/common/base64.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/node-utils/src/common/base64.ts","line":42,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-utils/src/common/base64.ts#L42"}],"parentId":1834}],"is":{"declaration":true},"location":{"query":"node-utils/src.Function.base64Encode","hash":""},"text":{},"parentId":881} diff --git a/docs/v1.0.0-beta01/data/node-utils/src.Function.convertFormat.json b/docs/v1.0.0-beta01/data/node-utils/src.Function.convertFormat.json new file mode 100644 index 000000000..bb731e915 --- /dev/null +++ b/docs/v1.0.0-beta01/data/node-utils/src.Function.convertFormat.json @@ -0,0 +1 @@ +{"id":1918,"name":"convertFormat","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/node-utils/src/data/index.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/node-utils/src/data/index.ts","line":201,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-utils/src/data/index.ts#L201"}],"signatures":[{"id":1919,"name":"convertFormat","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"convertFormat"}]},{"tag":"@description","content":[{"kind":"text","text":"转换数据格式(CSV/JSON/XML)。Converts data format (CSV/JSON/XML)"}]},{"tag":"@returns","content":[{"kind":"text","text":"转换后的数据。Converted data"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// CSV to JSON\nconst csv = 'name,age\\nJohn,25\\nJane,30';\nconst json = convertFormat(csv, 'csv', 'json');\n// -> [{ name: 'John', age: '25' }, { name: 'Jane', age: '30' }]\n\n// JSON to CSV\nconst data = [{ name: 'John', age: 25 }];\nconst csvOutput = convertFormat(data, 'json', 'csv');\n// -> 'name,age\\nJohn,25'\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// JSON to XML\nconst xml = convertFormat({ name: 'John' }, 'json', 'xml');\n// -> 'John'\n```"}]}]},"parameters":[{"id":1920,"name":"data","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"输入数据。Input data"}]},"type":{"type":"intrinsic","name":"any"},"text":{"comment":"

    输入数据。Input data

    \n"}},{"id":1921,"name":"fromFormat","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"源格式('csv'|'json'|'xml')。Source format ('csv'|'json'|'xml')"}]},"type":{"type":"intrinsic","name":"string"},"text":{"comment":"

    源格式('csv'|'json'|'xml')。Source format ('csv'|'json'|'xml')

    \n"}},{"id":1922,"name":"toFormat","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"目标格式('csv'|'json'|'xml')。Target format ('csv'|'json'|'xml')"}]},"type":{"type":"intrinsic","name":"string"},"text":{"comment":"

    目标格式('csv'|'json'|'xml')。Target format ('csv'|'json'|'xml')

    \n"}}],"type":{"type":"intrinsic","name":"any"},"is":{"declaration":false},"location":{"query":"node-utils/src.Function.convertFormat","hash":"convertFormat"},"text":{"comment":"
    Function:

    convertFormat

    \n
    Description:

    转换数据格式(CSV/JSON/XML)。Converts data format (CSV/JSON/XML)

    \n
    Returns:

    转换后的数据。Converted data

    \n
    Example:
    // CSV to JSON\nconst csv = 'name,age\\nJohn,25\\nJane,30';\nconst json = convertFormat(csv, 'csv', 'json');\n// -> [{ name: 'John', age: '25' }, { name: 'Jane', age: '30' }]\n\n// JSON to CSV\nconst data = [{ name: 'John', age: 25 }];\nconst csvOutput = convertFormat(data, 'json', 'csv');\n// -> 'name,age\\nJohn,25'\n
    \n
    Example:
    // JSON to XML\nconst xml = convertFormat({ name: 'John' }, 'json', 'xml');\n// -> '<root><name>John</name></root>'\n
    \n"},"sources":[{"fileName":"packages/node-utils/src/data/index.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/node-utils/src/data/index.ts","line":201,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-utils/src/data/index.ts#L201"}],"parentId":1918}],"is":{"declaration":true},"location":{"query":"node-utils/src.Function.convertFormat","hash":""},"text":{},"parentId":881} diff --git a/docs/v1.0.0-beta01/data/node-utils/src.Function.copyStream.json b/docs/v1.0.0-beta01/data/node-utils/src.Function.copyStream.json new file mode 100644 index 000000000..245d7f8e8 --- /dev/null +++ b/docs/v1.0.0-beta01/data/node-utils/src.Function.copyStream.json @@ -0,0 +1 @@ +{"id":1731,"name":"copyStream","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/node-utils/src/fs/stream.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/node-utils/src/fs/stream.ts","line":64,"character":22,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-utils/src/fs/stream.ts#L64"}],"signatures":[{"id":1732,"name":"copyStream","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"copyStream"}]},{"tag":"@description","content":[{"kind":"text","text":"Asynchronously copies a file using streams with optional transformation. Copies a file from source to target using streams for memory-efficient handling of large files, with optional data transformation during the copy process."}]},{"tag":"@returns","content":[{"kind":"text","text":"Promise that resolves when copy operation completes. Promise that resolves when the copy operation completes successfully"}]},{"tag":"@throws","content":[{"kind":"text","text":"Throws if source file doesn't exist or copy operation fails. Error if source file doesn't exist or copy operation fails"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Simple file copy\nawait copyStream('./source.txt', './backup/source.txt');\nconsole.log('File copied successfully');\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Copy with transformation (uppercase content)\nimport { Transform } from 'stream';\nconst upperTransform = new Transform({\n transform(chunk, encoding, callback) {\n callback(null, chunk.toString().toUpperCase());\n }\n});\nawait copyStream('./input.txt', './output.txt', { transform: upperTransform });\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Copy with custom permissions\nawait copyStream('./script.sh', './bin/script.sh', {\n mode: 0o755, // Make executable\n flags: 'w'\n});\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Copy large files efficiently\ntry {\n await copyStream('./large-video.mp4', './backup/large-video.mp4');\n console.log('Large file copied using streams');\n} catch (error) {\n console.error('Copy failed:', error.message);\n}\n```"}]},{"tag":"@since","content":[{"kind":"text","text":"1.0.0"}]},{"tag":"@see","content":[{"kind":"inline-tag","tag":"@link","text":"https://nodejs.org/api/stream.html#stream_stream_pipeline_source_transforms_destination_callback","target":"https://nodejs.org/api/stream.html#stream_stream_pipeline_source_transforms_destination_callback"},{"kind":"text","text":" - Node.js pipeline documentation"}]}]},"parameters":[{"id":1733,"name":"source","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"The source file path to copy from. Source file path for the copy operation"}]},"type":{"type":"intrinsic","name":"string"},"text":{"comment":"

    The source file path to copy from. Source file path for the copy operation

    \n"}},{"id":1734,"name":"target","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"The target file path to copy to. Target file path for the copy operation"}]},"type":{"type":"intrinsic","name":"string"},"text":{"comment":"

    The target file path to copy to. Target file path for the copy operation

    \n"}},{"id":1735,"name":"options","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Optional configuration for the copy operation. Configuration options for the copy operation"}]},"type":{"type":"reflection","declaration":{"id":1736,"name":"__type","kind":65536,"kindString":"Type literal","flags":{},"children":[{"id":1738,"name":"flags","kind":1024,"kindString":"Property","flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"File system flags for the write stream. File system flags for the write stream (default: 'w')"}]},"sources":[{"fileName":"packages/node-utils/src/fs/stream.ts","line":69,"character":4,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-utils/src/fs/stream.ts#L69"}],"type":{"type":"intrinsic","name":"string"}},{"id":1739,"name":"mode","kind":1024,"kindString":"Property","flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"File permissions for the target file. File permissions for the target file (default: 0o666)"}]},"sources":[{"fileName":"packages/node-utils/src/fs/stream.ts","line":70,"character":4,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-utils/src/fs/stream.ts#L70"}],"type":{"type":"intrinsic","name":"number"}},{"id":1737,"name":"transform","kind":1024,"kindString":"Property","flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Optional transform stream to modify data during copy. Transform stream to modify data during copy process"}]},"sources":[{"fileName":"packages/node-utils/src/fs/stream.ts","line":68,"character":4,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-utils/src/fs/stream.ts#L68"}],"type":{"type":"reference","name":"Transform","qualifiedName":"internal.Transform","package":"@types/node"}}],"groups":[{"title":"Properties","children":[1738,1739,1737]}],"sources":[{"fileName":"packages/node-utils/src/fs/stream.ts","line":67,"character":12,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-utils/src/fs/stream.ts#L67"}]}},"text":{"comment":"

    Optional configuration for the copy operation. Configuration options for the copy operation

    \n"}}],"type":{"type":"reference","typeArguments":[{"type":"intrinsic","name":"void"}],"name":"Promise","qualifiedName":"Promise","package":"typescript"},"is":{"declaration":false},"location":{"query":"node-utils/src.Function.copyStream","hash":"copyStream"},"text":{"comment":"
    Function:

    copyStream

    \n
    Description:

    Asynchronously copies a file using streams with optional transformation. Copies a file from source to target using streams for memory-efficient handling of large files, with optional data transformation during the copy process.

    \n
    Returns:

    Promise that resolves when copy operation completes. Promise that resolves when the copy operation completes successfully

    \n
    Throws:

    Throws if source file doesn't exist or copy operation fails. Error if source file doesn't exist or copy operation fails

    \n
    Example:
    // Simple file copy\nawait copyStream('./source.txt', './backup/source.txt');\nconsole.log('File copied successfully');\n
    \n
    Example:
    // Copy with transformation (uppercase content)\nimport { Transform } from 'stream';\nconst upperTransform = new Transform({\n  transform(chunk, encoding, callback) {\n    callback(null, chunk.toString().toUpperCase());\n  }\n});\nawait copyStream('./input.txt', './output.txt', { transform: upperTransform });\n
    \n
    Example:
    // Copy with custom permissions\nawait copyStream('./script.sh', './bin/script.sh', {\n  mode: 0o755, // Make executable\n  flags: 'w'\n});\n
    \n
    Example:
    // Copy large files efficiently\ntry {\n  await copyStream('./large-video.mp4', './backup/large-video.mp4');\n  console.log('Large file copied using streams');\n} catch (error) {\n  console.error('Copy failed:', error.message);\n}\n
    \n
    Since:

    1.0.0

    \n
    See:

    https://nodejs.org/api/stream.html#stream_stream_pipeline_source_transforms_destination_callback - Node.js pipeline documentation

    \n"},"sources":[{"fileName":"packages/node-utils/src/fs/stream.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/node-utils/src/fs/stream.ts","line":64,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-utils/src/fs/stream.ts#L64"}],"parentId":1731}],"is":{"declaration":true},"location":{"query":"node-utils/src.Function.copyStream","hash":""},"text":{},"parentId":881} diff --git a/docs/v1.0.0-beta01/data/node-utils/src.Function.cpuCount.json b/docs/v1.0.0-beta01/data/node-utils/src.Function.cpuCount.json new file mode 100644 index 000000000..412bd6ad6 --- /dev/null +++ b/docs/v1.0.0-beta01/data/node-utils/src.Function.cpuCount.json @@ -0,0 +1 @@ +{"id":1792,"name":"cpuCount","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/node-utils/src/system/os.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/node-utils/src/system/os.ts","line":62,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-utils/src/system/os.ts#L62"}],"signatures":[{"id":1793,"name":"cpuCount","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"cpuCount"}]},{"tag":"@description","content":[{"kind":"text","text":"获取系统可用的CPU核心数量。Gets the number of CPU cores available on the system for optimal resource allocation."}]},{"tag":"@returns","content":[{"kind":"text","text":"逻辑CPU核心数量。The number of logical CPU cores"}]},{"tag":"@example","content":[{"kind":"text","text":"// Optimize worker processes based on CPU count\nconst workers = Math.min(cpuCount(), 4);\nconsole.log("},{"kind":"code","text":"`Starting ${workers} worker processes`"},{"kind":"text","text":");"}]},{"tag":"@example","content":[{"kind":"text","text":"// Performance monitoring\nconst cores = cpuCount();\nconsole.log("},{"kind":"code","text":"`System has ${cores} CPU cores available`"},{"kind":"text","text":");"}]},{"tag":"@since","content":[{"kind":"text","text":"1.0.0"}]},{"tag":"@see","content":[{"kind":"inline-tag","tag":"@link","text":"https://nodejs.org/api/os.html#os_os_cpus","target":"https://nodejs.org/api/os.html#os_os_cpus"},{"kind":"text","text":" - Node.js os.cpus() documentation"}]}]},"type":{"type":"intrinsic","name":"number"},"is":{"declaration":false},"location":{"query":"node-utils/src.Function.cpuCount","hash":"cpuCount"},"text":{"comment":"
    Function:

    cpuCount

    \n
    Description:

    获取系统可用的CPU核心数量。Gets the number of CPU cores available on the system for optimal resource allocation.

    \n
    Returns:

    逻辑CPU核心数量。The number of logical CPU cores

    \n
    Example:

    // Optimize worker processes based on CPU count\nconst workers = Math.min(cpuCount(), 4);\nconsole.log(Starting ${workers} worker processes);

    \n
    Example:

    // Performance monitoring\nconst cores = cpuCount();\nconsole.log(System has ${cores} CPU cores available);

    \n
    Since:

    1.0.0

    \n
    See:

    https://nodejs.org/api/os.html#os_os_cpus - Node.js os.cpus() documentation

    \n"},"sources":[{"fileName":"packages/node-utils/src/system/os.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/node-utils/src/system/os.ts","line":62,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-utils/src/system/os.ts#L62"}],"parentId":1792}],"is":{"declaration":true},"location":{"query":"node-utils/src.Function.cpuCount","hash":""},"text":{},"parentId":881} diff --git a/docs/v1.0.0-beta01/data/node-utils/src.Function.cpuFree.json b/docs/v1.0.0-beta01/data/node-utils/src.Function.cpuFree.json new file mode 100644 index 000000000..aa31ecf19 --- /dev/null +++ b/docs/v1.0.0-beta01/data/node-utils/src.Function.cpuFree.json @@ -0,0 +1 @@ +{"id":1823,"name":"cpuFree","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/node-utils/src/system/os.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/node-utils/src/system/os.ts","line":571,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-utils/src/system/os.ts#L571"}],"signatures":[{"id":1824,"name":"cpuFree","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"cpuFree"}]},{"tag":"@description","content":[{"kind":"text","text":"获取CPU空闲百分比(十进制0-1)。Gets CPU free percentage as a decimal value between 0 and 1 for capacity monitoring."}]},{"tag":"@example","content":[{"kind":"text","text":"// Monitor available CPU capacity\ncpuFree((freePercent) => {\n console.log("},{"kind":"code","text":"`Available CPU: ${(freePercent * 100).toFixed(1)}%`"},{"kind":"text","text":");\n\n if (freePercent < 0.2) {\n console.warn('CPU capacity low - consider load balancing');\n }\n});"}]},{"tag":"@example","content":[{"kind":"text","text":"// Adaptive processing based on CPU availability\ncpuFree((available) => {\n const maxConcurrency = Math.floor(available * 10);\n console.log("},{"kind":"code","text":"`Setting concurrency to ${maxConcurrency} based on CPU availability`"},{"kind":"text","text":");\n});"}]},{"tag":"@since","content":[{"kind":"text","text":"1.0.0"}]},{"tag":"@see","content":[{"kind":"text","text":" - "},{"kind":"inline-tag","tag":"@link","text":"getCPUUsage","target":1819},{"kind":"text","text":" - Base CPU monitoring function"},{"kind":"text","text":"\n"},{"kind":"text","text":" - "},{"kind":"inline-tag","tag":"@link","text":"cpuUsage","target":1826},{"kind":"text","text":" - Get CPU usage percentage"},{"kind":"text","text":"\n"}]}]},"parameters":[{"id":1825,"name":"callback","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"接收CPU空闲百分比(0-1)的回调函数。Callback function receiving free CPU percentage (0-1)"}]},"type":{"type":"reference","name":"AnyCallbackFunc"},"text":{"comment":"

    接收CPU空闲百分比(0-1)的回调函数。Callback function receiving free CPU percentage (0-1)

    \n"}}],"type":{"type":"intrinsic","name":"void"},"is":{"declaration":false},"location":{"query":"node-utils/src.Function.cpuFree","hash":"cpuFree"},"text":{"comment":"
    Function:

    cpuFree

    \n
    Description:

    获取CPU空闲百分比(十进制0-1)。Gets CPU free percentage as a decimal value between 0 and 1 for capacity monitoring.

    \n
    Example:

    // Monitor available CPU capacity\ncpuFree((freePercent) => {\n console.log(Available CPU: ${(freePercent * 100).toFixed(1)}%);

    \n

    if (freePercent < 0.2) {\n console.warn('CPU capacity low - consider load balancing');\n }\n});

    \n
    Example:

    // Adaptive processing based on CPU availability\ncpuFree((available) => {\n const maxConcurrency = Math.floor(available * 10);\n console.log(Setting concurrency to ${maxConcurrency} based on CPU availability);\n});

    \n
    Since:

    1.0.0

    \n
    See:
    \n"},"sources":[{"fileName":"packages/node-utils/src/system/os.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/node-utils/src/system/os.ts","line":571,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-utils/src/system/os.ts#L571"}],"parentId":1823}],"is":{"declaration":true},"location":{"query":"node-utils/src.Function.cpuFree","hash":""},"text":{},"parentId":881} diff --git a/docs/v1.0.0-beta01/data/node-utils/src.Function.cpuUsage.json b/docs/v1.0.0-beta01/data/node-utils/src.Function.cpuUsage.json new file mode 100644 index 000000000..5c0e9876b --- /dev/null +++ b/docs/v1.0.0-beta01/data/node-utils/src.Function.cpuUsage.json @@ -0,0 +1 @@ +{"id":1826,"name":"cpuUsage","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/node-utils/src/system/os.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/node-utils/src/system/os.ts","line":605,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-utils/src/system/os.ts#L605"}],"signatures":[{"id":1827,"name":"cpuUsage","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"cpuUsage"}]},{"tag":"@description","content":[{"kind":"text","text":"获取CPU使用率百分比(十进制0-1)。Gets CPU usage percentage as a decimal value between 0 and 1 for performance monitoring."}]},{"tag":"@example","content":[{"kind":"text","text":"// Basic CPU monitoring\ncpuUsage((usage) => {\n const percent = (usage * 100).toFixed(1);\n console.log("},{"kind":"code","text":"`CPU usage: ${percent}%`"},{"kind":"text","text":");\n\n if (usage > 0.9) {\n console.error('Critical CPU usage!');\n } else if (usage > 0.7) {\n console.warn('High CPU usage detected');\n }\n});"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Performance-based throttling\ncpuUsage((usage) => {\n if (usage > 0.8) {\n console.log('Throttling operations due to high CPU usage');\n // Implement throttling logic\n }\n});\n```"}]},{"tag":"@since","content":[{"kind":"text","text":"1.0.0"}]},{"tag":"@see","content":[{"kind":"text","text":" - "},{"kind":"inline-tag","tag":"@link","text":"getCPUUsage","target":1819},{"kind":"text","text":" - Base CPU monitoring function"},{"kind":"text","text":"\n"},{"kind":"text","text":" - "},{"kind":"inline-tag","tag":"@link","text":"cpuFree","target":1823},{"kind":"text","text":" - Get CPU free percentage"},{"kind":"text","text":"\n"}]}]},"parameters":[{"id":1828,"name":"callback","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"接收CPU使用率百分比(0-1)的回调函数。Callback function receiving CPU usage percentage (0-1)"}]},"type":{"type":"reference","name":"AnyCallbackFunc"},"text":{"comment":"

    接收CPU使用率百分比(0-1)的回调函数。Callback function receiving CPU usage percentage (0-1)

    \n"}}],"type":{"type":"intrinsic","name":"void"},"is":{"declaration":false},"location":{"query":"node-utils/src.Function.cpuUsage","hash":"cpuUsage"},"text":{"comment":"
    Function:

    cpuUsage

    \n
    Description:

    获取CPU使用率百分比(十进制0-1)。Gets CPU usage percentage as a decimal value between 0 and 1 for performance monitoring.

    \n
    Example:

    // Basic CPU monitoring\ncpuUsage((usage) => {\n const percent = (usage * 100).toFixed(1);\n console.log(CPU usage: ${percent}%);

    \n

    if (usage > 0.9) {\n console.error('Critical CPU usage!');\n } else if (usage > 0.7) {\n console.warn('High CPU usage detected');\n }\n});

    \n
    Example:
    // Performance-based throttling\ncpuUsage((usage) => {\n  if (usage > 0.8) {\n    console.log('Throttling operations due to high CPU usage');\n    // Implement throttling logic\n  }\n});\n
    \n
    Since:

    1.0.0

    \n
    See:
    \n"},"sources":[{"fileName":"packages/node-utils/src/system/os.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/node-utils/src/system/os.ts","line":605,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-utils/src/system/os.ts#L605"}],"parentId":1826}],"is":{"declaration":true},"location":{"query":"node-utils/src.Function.cpuUsage","hash":""},"text":{},"parentId":881} diff --git a/docs/v1.0.0-beta01/data/node-utils/src.Function.createHTTPServer.json b/docs/v1.0.0-beta01/data/node-utils/src.Function.createHTTPServer.json new file mode 100644 index 000000000..826df6381 --- /dev/null +++ b/docs/v1.0.0-beta01/data/node-utils/src.Function.createHTTPServer.json @@ -0,0 +1 @@ +{"id":1874,"name":"createHTTPServer","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/node-utils/src/http/index.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/node-utils/src/http/index.ts","line":262,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-utils/src/http/index.ts#L262"}],"signatures":[{"id":1875,"name":"createHTTPServer","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"createHTTPServer"}]},{"tag":"@description","content":[{"kind":"text","text":"创建基础HTTP服务器。Creates a basic HTTP server"}]},{"tag":"@returns","content":[{"kind":"text","text":"HTTP服务器实例。HTTP server instance"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\nconst server = createHTTPServer(3000, (req, res) => {\n res.writeHead(200, { 'Content-Type': 'text/plain' });\n res.end('Hello');\n});\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\nconst server = createHTTPServer(8080, (req, res) => {\n res.end(JSON.stringify({ ok: true }));\n});\n```"}]}]},"parameters":[{"id":1876,"name":"port","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"端口号。Port number"}]},"type":{"type":"intrinsic","name":"number"},"text":{"comment":"

    端口号。Port number

    \n"}},{"id":1877,"name":"handler","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"请求处理函数。Request handler function"}]},"type":{"type":"reflection","declaration":{"id":1878,"name":"__type","kind":65536,"kindString":"Type literal","flags":{},"sources":[{"fileName":"packages/node-utils/src/http/index.ts","line":264,"character":11,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-utils/src/http/index.ts#L264"}],"signatures":[{"id":1879,"name":"__type","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":1880,"name":"req","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"IncomingMessage","qualifiedName":"IncomingMessage","package":"@types/node"}},{"id":1881,"name":"res","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"ServerResponse","qualifiedName":"ServerResponse","package":"@types/node"}}],"type":{"type":"intrinsic","name":"void"}}]}},"text":{"comment":"

    请求处理函数。Request handler function

    \n"}}],"type":{"type":"reference","name":"http.Server","qualifiedName":"Server","package":"@types/node"},"is":{"declaration":false},"location":{"query":"node-utils/src.Function.createHTTPServer","hash":"createHTTPServer"},"text":{"comment":"
    Function:

    createHTTPServer

    \n
    Description:

    创建基础HTTP服务器。Creates a basic HTTP server

    \n
    Returns:

    HTTP服务器实例。HTTP server instance

    \n
    Example:
    const server = createHTTPServer(3000, (req, res) => {\n  res.writeHead(200, { 'Content-Type': 'text/plain' });\n  res.end('Hello');\n});\n
    \n
    Example:
    const server = createHTTPServer(8080, (req, res) => {\n  res.end(JSON.stringify({ ok: true }));\n});\n
    \n"},"sources":[{"fileName":"packages/node-utils/src/http/index.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/node-utils/src/http/index.ts","line":262,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-utils/src/http/index.ts#L262"}],"parentId":1874}],"is":{"declaration":true},"location":{"query":"node-utils/src.Function.createHTTPServer","hash":""},"text":{},"parentId":881} diff --git a/docs/v1.0.0-beta01/data/node-utils/src.Function.createSimpleProxy.json b/docs/v1.0.0-beta01/data/node-utils/src.Function.createSimpleProxy.json new file mode 100644 index 000000000..6277fe795 --- /dev/null +++ b/docs/v1.0.0-beta01/data/node-utils/src.Function.createSimpleProxy.json @@ -0,0 +1 @@ +{"id":1882,"name":"createSimpleProxy","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/node-utils/src/http/index.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/node-utils/src/http/index.ts","line":282,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-utils/src/http/index.ts#L282"}],"signatures":[{"id":1883,"name":"createSimpleProxy","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"createSimpleProxy"}]},{"tag":"@description","content":[{"kind":"text","text":"创建简单的HTTP代理服务器。Creates a simple HTTP proxy server"}]},{"tag":"@returns","content":[{"kind":"text","text":"HTTP服务器实例。HTTP server instance"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\nconst proxy = createSimpleProxy('http://localhost:4000', 3001);\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Proxy HTTPS target\nconst proxy = createSimpleProxy('https://example.com', 3002);\n```"}]}]},"parameters":[{"id":1884,"name":"target","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"目标服务地址。Target server URL"}]},"type":{"type":"intrinsic","name":"string"},"text":{"comment":"

    目标服务地址。Target server URL

    \n"}},{"id":1885,"name":"port","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"代理监听端口。Proxy listen port"}]},"type":{"type":"intrinsic","name":"number"},"text":{"comment":"

    代理监听端口。Proxy listen port

    \n"}}],"type":{"type":"reference","name":"http.Server","qualifiedName":"Server","package":"@types/node"},"is":{"declaration":false},"location":{"query":"node-utils/src.Function.createSimpleProxy","hash":"createSimpleProxy"},"text":{"comment":"
    Function:

    createSimpleProxy

    \n
    Description:

    创建简单的HTTP代理服务器。Creates a simple HTTP proxy server

    \n
    Returns:

    HTTP服务器实例。HTTP server instance

    \n
    Example:
    const proxy = createSimpleProxy('http://localhost:4000', 3001);\n
    \n
    Example:
    // Proxy HTTPS target\nconst proxy = createSimpleProxy('https://example.com', 3002);\n
    \n"},"sources":[{"fileName":"packages/node-utils/src/http/index.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/node-utils/src/http/index.ts","line":282,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-utils/src/http/index.ts#L282"}],"parentId":1882}],"is":{"declaration":true},"location":{"query":"node-utils/src.Function.createSimpleProxy","hash":""},"text":{},"parentId":881} diff --git a/docs/v1.0.0-beta01/data/node-utils/src.Function.createSimpleServer.json b/docs/v1.0.0-beta01/data/node-utils/src.Function.createSimpleServer.json new file mode 100644 index 000000000..a542ead2e --- /dev/null +++ b/docs/v1.0.0-beta01/data/node-utils/src.Function.createSimpleServer.json @@ -0,0 +1 @@ +{"id":1866,"name":"createSimpleServer","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/node-utils/src/http/index.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/node-utils/src/http/index.ts","line":234,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-utils/src/http/index.ts#L234"}],"signatures":[{"id":1867,"name":"createSimpleServer","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"createSimpleServer"}]},{"tag":"@description","content":[{"kind":"text","text":"创建简单的HTTP服务器。Creates a simple HTTP server"}]},{"tag":"@returns","content":[{"kind":"text","text":"HTTP服务器实例。HTTP server instance"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\nconst server = createSimpleServer(3000, (req, res) => {\n res.writeHead(200, { 'Content-Type': 'text/plain' });\n res.end('Hello World');\n});\n```"}]}]},"parameters":[{"id":1868,"name":"port","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"端口号。Port number"}]},"type":{"type":"intrinsic","name":"number"},"text":{"comment":"

    端口号。Port number

    \n"}},{"id":1869,"name":"handler","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"请求处理函数。Request handler function"}]},"type":{"type":"reflection","declaration":{"id":1870,"name":"__type","kind":65536,"kindString":"Type literal","flags":{},"sources":[{"fileName":"packages/node-utils/src/http/index.ts","line":236,"character":11,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-utils/src/http/index.ts#L236"}],"signatures":[{"id":1871,"name":"__type","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":1872,"name":"req","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"IncomingMessage","qualifiedName":"IncomingMessage","package":"@types/node"}},{"id":1873,"name":"res","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"ServerResponse","qualifiedName":"ServerResponse","package":"@types/node"}}],"type":{"type":"intrinsic","name":"void"}}]}},"text":{"comment":"

    请求处理函数。Request handler function

    \n"}}],"type":{"type":"reference","name":"http.Server","qualifiedName":"Server","package":"@types/node"},"is":{"declaration":false},"location":{"query":"node-utils/src.Function.createSimpleServer","hash":"createSimpleServer"},"text":{"comment":"
    Function:

    createSimpleServer

    \n
    Description:

    创建简单的HTTP服务器。Creates a simple HTTP server

    \n
    Returns:

    HTTP服务器实例。HTTP server instance

    \n
    Example:
    const server = createSimpleServer(3000, (req, res) => {\n  res.writeHead(200, { 'Content-Type': 'text/plain' });\n  res.end('Hello World');\n});\n
    \n"},"sources":[{"fileName":"packages/node-utils/src/http/index.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/node-utils/src/http/index.ts","line":234,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-utils/src/http/index.ts#L234"}],"parentId":1866}],"is":{"declaration":true},"location":{"query":"node-utils/src.Function.createSimpleServer","hash":""},"text":{},"parentId":881} diff --git a/docs/v1.0.0-beta01/data/node-utils/src.Function.downloadFile.json b/docs/v1.0.0-beta01/data/node-utils/src.Function.downloadFile.json new file mode 100644 index 000000000..2cf03666c --- /dev/null +++ b/docs/v1.0.0-beta01/data/node-utils/src.Function.downloadFile.json @@ -0,0 +1 @@ +{"id":1852,"name":"downloadFile","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/node-utils/src/http/index.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/node-utils/src/http/index.ts","line":64,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-utils/src/http/index.ts#L64"}],"signatures":[{"id":1853,"name":"downloadFile","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"downloadFile"}]},{"tag":"@description","content":[{"kind":"text","text":"下载文件。Downloads a file"}]},{"tag":"@returns","content":[{"kind":"text","text":"下载的文件路径。Downloaded file path"}]},{"tag":"@example","content":[{"kind":"text","text":"downloadFile('https://example.com/file.pdf', './downloads/file.pdf')\n .then(filePath => console.log("},{"kind":"code","text":"`Downloaded to ${filePath}`"},{"kind":"text","text":"))\n .catch(err => console.error(err));"}]}]},"parameters":[{"id":1854,"name":"fileUrl","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"文件URL。File URL"}]},"type":{"type":"intrinsic","name":"string"},"text":{"comment":"

    文件URL。File URL

    \n"}},{"id":1855,"name":"dest","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"目标路径。Destination path"}]},"type":{"type":"intrinsic","name":"string"},"text":{"comment":"

    目标路径。Destination path

    \n"}},{"id":1856,"name":"options","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"type":{"type":"reflection","declaration":{"id":1857,"name":"__type","kind":65536,"kindString":"Type literal","flags":{},"children":[{"id":1858,"name":"maxRedirects","kind":1024,"kindString":"Property","flags":{"isOptional":true},"sources":[{"fileName":"packages/node-utils/src/http/index.ts","line":67,"character":14,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-utils/src/http/index.ts#L67"}],"type":{"type":"intrinsic","name":"number"}}],"groups":[{"title":"Properties","children":[1858]}],"sources":[{"fileName":"packages/node-utils/src/http/index.ts","line":67,"character":12,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-utils/src/http/index.ts#L67"}]}},"text":{}}],"type":{"type":"reference","typeArguments":[{"type":"intrinsic","name":"string"}],"name":"Promise","qualifiedName":"Promise","package":"typescript"},"is":{"declaration":false},"location":{"query":"node-utils/src.Function.downloadFile","hash":"downloadFile"},"text":{"comment":"
    Function:

    downloadFile

    \n
    Description:

    下载文件。Downloads a file

    \n
    Returns:

    下载的文件路径。Downloaded file path

    \n
    Example:

    downloadFile('https://example.com/file.pdf', './downloads/file.pdf')\n .then(filePath => console.log(Downloaded to ${filePath}))\n .catch(err => console.error(err));

    \n"},"sources":[{"fileName":"packages/node-utils/src/http/index.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/node-utils/src/http/index.ts","line":64,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-utils/src/http/index.ts#L64"}],"parentId":1852}],"is":{"declaration":true},"location":{"query":"node-utils/src.Function.downloadFile","hash":""},"text":{},"parentId":881} diff --git a/docs/v1.0.0-beta01/data/node-utils/src.Function.exit.json b/docs/v1.0.0-beta01/data/node-utils/src.Function.exit.json new file mode 100644 index 000000000..0df888666 --- /dev/null +++ b/docs/v1.0.0-beta01/data/node-utils/src.Function.exit.json @@ -0,0 +1 @@ +{"id":1759,"name":"exit","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/node-utils/src/process/run.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/node-utils/src/process/run.ts","line":334,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-utils/src/process/run.ts#L334"}],"signatures":[{"id":1760,"name":"exit","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"exit"}]},{"tag":"@description","content":[{"kind":"text","text":"以错误代码1退出Node.js进程。Exits the Node.js process with error code 1 for critical failure scenarios."}]},{"tag":"@returns","content":[{"kind":"text","text":"该函数不会返回,因为它终止了进程。This function never returns as it terminates the process"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Exit on critical error\nif (!configFile) {\n console.error('Configuration file not found');\n exit();\n}\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Validation failure\nconst args = parseArgs();\nif (!args.required) {\n console.error('Missing required argument: --required');\n exit();\n}\n```"}]},{"tag":"@since","content":[{"kind":"text","text":"1.0.0"}]},{"tag":"@see","content":[{"kind":"inline-tag","tag":"@link","text":"runPromise","target":1750},{"kind":"text","text":" - Promise wrapper that calls exit on error"}]}]},"type":{"type":"intrinsic","name":"never"},"is":{"declaration":false},"location":{"query":"node-utils/src.Function.exit","hash":"exit"},"text":{"comment":"
    Function:

    exit

    \n
    Description:

    以错误代码1退出Node.js进程。Exits the Node.js process with error code 1 for critical failure scenarios.

    \n
    Returns:

    该函数不会返回,因为它终止了进程。This function never returns as it terminates the process

    \n
    Example:
    // Exit on critical error\nif (!configFile) {\n  console.error('Configuration file not found');\n  exit();\n}\n
    \n
    Example:
    // Validation failure\nconst args = parseArgs();\nif (!args.required) {\n  console.error('Missing required argument: --required');\n  exit();\n}\n
    \n
    Since:

    1.0.0

    \n
    See:

    runPromise - Promise wrapper that calls exit on error

    \n"},"sources":[{"fileName":"packages/node-utils/src/process/run.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/node-utils/src/process/run.ts","line":334,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-utils/src/process/run.ts#L334"}],"parentId":1759}],"is":{"declaration":true},"location":{"query":"node-utils/src.Function.exit","hash":""},"text":{},"parentId":881} diff --git a/docs/v1.0.0-beta01/data/node-utils/src.Function.forceRunAsync.json b/docs/v1.0.0-beta01/data/node-utils/src.Function.forceRunAsync.json new file mode 100644 index 000000000..c7cfb84c1 --- /dev/null +++ b/docs/v1.0.0-beta01/data/node-utils/src.Function.forceRunAsync.json @@ -0,0 +1 @@ +{"id":1745,"name":"forceRunAsync","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/node-utils/src/process/run.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/node-utils/src/process/run.ts","line":195,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-utils/src/process/run.ts#L195"}],"signatures":[{"id":1746,"name":"forceRunAsync","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"forceRunAsync"}]},{"tag":"@description","content":[{"kind":"text","text":"在特定忽略模式下异步执行命令,带有错误抑制。Executes a command asynchronously with error suppression for graceful handling of optional operations."}]},{"tag":"@returns","content":[{"kind":"text","text":"解析为结果或void(如果错误被忽略)的Promise。Promise resolving to result or void if error is ignored"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Execute with graceful error handling\nawait forceRunAsync('optional-tool', ['--check']);\n// Will not throw if command fails, but logs error\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Conditional command execution\ntry {\n await forceRunAsync('git', ['status'], {\n cwd: './maybe-git-repo'\n });\n console.log('Git repository detected');\n} catch (error) {\n console.log('Not a git repository, continuing...');\n}\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Build pipeline with optional steps\nawait forceRunAsync('npm', ['run', 'lint']); // Optional linting\nawait forceRunAsync('npm', ['run', 'test']); // Optional testing\nawait runAsync('npm', ['run', 'build']); // Required build step\n```"}]},{"tag":"@since","content":[{"kind":"text","text":"1.0.0"}]},{"tag":"@see","content":[{"kind":"text","text":" - "},{"kind":"inline-tag","tag":"@link","text":"runAsync","target":1740},{"kind":"text","text":" - Standard async execution with error handling"},{"kind":"text","text":"\n"},{"kind":"text","text":" - "},{"kind":"inline-tag","tag":"@link","text":"IGNORE","target":1761},{"kind":"text","text":" - Special error message for ignored failures"},{"kind":"text","text":"\n"}]}]},"parameters":[{"id":1747,"name":"cmd","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"要执行的命令或文件URL。Command to execute or file URL"}]},"type":{"type":"union","types":[{"type":"intrinsic","name":"string"},{"type":"reference","name":"URL","qualifiedName":"URL","package":"@types/node"}]},"text":{"comment":"

    要执行的命令或文件URL。Command to execute or file URL

    \n"}},{"id":1748,"name":"args","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"命令参数数组。Array of command arguments"}]},"type":{"type":"array","elementType":{"type":"intrinsic","name":"string"}},"defaultValue":"[]","text":{"comment":"

    命令参数数组。Array of command arguments

    \n"}},{"id":1749,"name":"options","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"执行选项。Execution options"}]},"type":{"type":"reference","id":1762,"name":"RunOptions"},"defaultValue":"{}","text":{"comment":"

    执行选项。Execution options

    \n"}}],"type":{"type":"reference","typeArguments":[{"type":"union","types":[{"type":"reference","id":1779,"name":"RunResult"},{"type":"intrinsic","name":"void"}]}],"name":"Promise","qualifiedName":"Promise","package":"typescript"},"is":{"declaration":false},"location":{"query":"node-utils/src.Function.forceRunAsync","hash":"forceRunAsync"},"text":{"comment":"
    Function:

    forceRunAsync

    \n
    Description:

    在特定忽略模式下异步执行命令,带有错误抑制。Executes a command asynchronously with error suppression for graceful handling of optional operations.

    \n
    Returns:

    解析为结果或void(如果错误被忽略)的Promise。Promise resolving to result or void if error is ignored

    \n
    Example:
    // Execute with graceful error handling\nawait forceRunAsync('optional-tool', ['--check']);\n// Will not throw if command fails, but logs error\n
    \n
    Example:
    // Conditional command execution\ntry {\n  await forceRunAsync('git', ['status'], {\n    cwd: './maybe-git-repo'\n  });\n  console.log('Git repository detected');\n} catch (error) {\n  console.log('Not a git repository, continuing...');\n}\n
    \n
    Example:
    // Build pipeline with optional steps\nawait forceRunAsync('npm', ['run', 'lint']);     // Optional linting\nawait forceRunAsync('npm', ['run', 'test']);     // Optional testing\nawait runAsync('npm', ['run', 'build']);         // Required build step\n
    \n
    Since:

    1.0.0

    \n
    See:
    \n"},"sources":[{"fileName":"packages/node-utils/src/process/run.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/node-utils/src/process/run.ts","line":195,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-utils/src/process/run.ts#L195"}],"parentId":1745}],"is":{"declaration":true},"location":{"query":"node-utils/src.Function.forceRunAsync","hash":""},"text":{},"parentId":881} diff --git a/docs/v1.0.0-beta01/data/node-utils/src.Function.freeCommand.json b/docs/v1.0.0-beta01/data/node-utils/src.Function.freeCommand.json new file mode 100644 index 000000000..953ee82ab --- /dev/null +++ b/docs/v1.0.0-beta01/data/node-utils/src.Function.freeCommand.json @@ -0,0 +1 @@ +{"id":1804,"name":"freeCommand","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/node-utils/src/system/os.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/node-utils/src/system/os.ts","line":223,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-utils/src/system/os.ts#L223"}],"signatures":[{"id":1805,"name":"freeCommand","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"freeCommand"}]},{"tag":"@description","content":[{"kind":"text","text":"执行Linux 'free -m'命令获取详细内存信息。Executes Linux 'free -m' command to get detailed memory information including cache and buffer usage."}]},{"tag":"@example","content":[{"kind":"text","text":"// Get detailed Linux memory info\nfreeCommand((usedMem, cachedMem) => {\n console.log("},{"kind":"code","text":"`Used memory: ${usedMem} MB`"},{"kind":"text","text":");\n console.log("},{"kind":"code","text":"`Cached memory: ${cachedMem} MB`"},{"kind":"text","text":");\n});"}]},{"tag":"@example","content":[{"kind":"text","text":"// Memory monitoring on Linux servers\nif (platform() === 'linux') {\n freeCommand((used, cached) => {\n const effectiveUsed = used - cached;\n console.log("},{"kind":"code","text":"`Effective memory usage: ${effectiveUsed} MB`"},{"kind":"text","text":");\n });\n}"}]},{"tag":"@deprecated","content":[{"kind":"text","text":"Consider using cross-platform memory functions for better compatibility"}]},{"tag":"@since","content":[{"kind":"text","text":"1.0.0"}]},{"tag":"@see","content":[{"kind":"text","text":" - "},{"kind":"inline-tag","tag":"@link","text":"freemem","target":1798},{"kind":"text","text":" - Cross-platform free memory function"},{"kind":"text","text":"\n"},{"kind":"text","text":" - "},{"kind":"inline-tag","tag":"@link","text":"totalmem","target":1800},{"kind":"text","text":" - Cross-platform total memory function"},{"kind":"text","text":"\n"}]}]},"parameters":[{"id":1806,"name":"callback","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"接收(usedMem, cachedMem)参数(MB)的回调函数。Callback function receiving (usedMem, cachedMem) in MB (null on error)"}]},"type":{"type":"reference","name":"AnyCallbackFunc"},"text":{"comment":"

    接收(usedMem, cachedMem)参数(MB)的回调函数。Callback function receiving (usedMem, cachedMem) in MB (null on error)

    \n"}}],"type":{"type":"intrinsic","name":"void"},"is":{"declaration":false},"location":{"query":"node-utils/src.Function.freeCommand","hash":"freeCommand"},"text":{"comment":"
    Function:

    freeCommand

    \n
    Description:

    执行Linux 'free -m'命令获取详细内存信息。Executes Linux 'free -m' command to get detailed memory information including cache and buffer usage.

    \n
    Example:

    // Get detailed Linux memory info\nfreeCommand((usedMem, cachedMem) => {\n console.log(Used memory: ${usedMem} MB);\n console.log(Cached memory: ${cachedMem} MB);\n});

    \n
    Example:

    // Memory monitoring on Linux servers\nif (platform() === 'linux') {\n freeCommand((used, cached) => {\n const effectiveUsed = used - cached;\n console.log(Effective memory usage: ${effectiveUsed} MB);\n });\n}

    \n
    Deprecated:

    Consider using cross-platform memory functions for better compatibility

    \n
    Since:

    1.0.0

    \n
    See:
    \n"},"sources":[{"fileName":"packages/node-utils/src/system/os.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/node-utils/src/system/os.ts","line":223,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-utils/src/system/os.ts#L223"}],"parentId":1804}],"is":{"declaration":true},"location":{"query":"node-utils/src.Function.freeCommand","hash":""},"text":{},"parentId":881} diff --git a/docs/v1.0.0-beta01/data/node-utils/src.Function.freemem.json b/docs/v1.0.0-beta01/data/node-utils/src.Function.freemem.json new file mode 100644 index 000000000..a73a52ded --- /dev/null +++ b/docs/v1.0.0-beta01/data/node-utils/src.Function.freemem.json @@ -0,0 +1 @@ +{"id":1798,"name":"freemem","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/node-utils/src/system/os.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/node-utils/src/system/os.ts","line":144,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-utils/src/system/os.ts#L144"}],"signatures":[{"id":1799,"name":"freemem","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"freemem"}]},{"tag":"@description","content":[{"kind":"text","text":"获取系统可用内存量(MB)。Gets the amount of free system memory in megabytes for memory monitoring and management."}]},{"tag":"@returns","content":[{"kind":"text","text":"可用内存(MB)。Free memory in MB"}]},{"tag":"@example","content":[{"kind":"text","text":"// Memory monitoring\nconst freeMemMB = freemem();\nconsole.log("},{"kind":"code","text":"`Free memory: ${freeMemMB.toFixed(2)} MB`"},{"kind":"text","text":");"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Memory-based scaling decisions\nif (freemem() < 512) {\n console.warn('Low memory warning: less than 512MB available');\n}\n```"}]},{"tag":"@example","content":[{"kind":"text","text":"// Memory usage percentage\nconst freePercent = (freemem() / totalmem()) * 100;\nconsole.log("},{"kind":"code","text":"`${freePercent.toFixed(1)}% memory available`"},{"kind":"text","text":");"}]},{"tag":"@since","content":[{"kind":"text","text":"1.0.0"}]},{"tag":"@see","content":[{"kind":"text","text":" - "},{"kind":"inline-tag","tag":"@link","text":"totalmem","target":1800},{"kind":"text","text":" - Get total system memory"},{"kind":"text","text":"\n"},{"kind":"text","text":" - "},{"kind":"inline-tag","tag":"@link","text":"https://nodejs.org/api/os.html#os_os_freemem","target":"https://nodejs.org/api/os.html#os_os_freemem"},{"kind":"text","text":" - Node.js os.freemem() documentation"},{"kind":"text","text":"\n"}]}]},"type":{"type":"intrinsic","name":"number"},"is":{"declaration":false},"location":{"query":"node-utils/src.Function.freemem","hash":"freemem"},"text":{"comment":"
    Function:

    freemem

    \n
    Description:

    获取系统可用内存量(MB)。Gets the amount of free system memory in megabytes for memory monitoring and management.

    \n
    Returns:

    可用内存(MB)。Free memory in MB

    \n
    Example:

    // Memory monitoring\nconst freeMemMB = freemem();\nconsole.log(Free memory: ${freeMemMB.toFixed(2)} MB);

    \n
    Example:
    // Memory-based scaling decisions\nif (freemem() < 512) {\n  console.warn('Low memory warning: less than 512MB available');\n}\n
    \n
    Example:

    // Memory usage percentage\nconst freePercent = (freemem() / totalmem()) * 100;\nconsole.log(${freePercent.toFixed(1)}% memory available);

    \n
    Since:

    1.0.0

    \n
    See:
    \n"},"sources":[{"fileName":"packages/node-utils/src/system/os.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/node-utils/src/system/os.ts","line":144,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-utils/src/system/os.ts#L144"}],"parentId":1798}],"is":{"declaration":true},"location":{"query":"node-utils/src.Function.freemem","hash":""},"text":{},"parentId":881} diff --git a/docs/v1.0.0-beta01/data/node-utils/src.Function.freememPercentage.json b/docs/v1.0.0-beta01/data/node-utils/src.Function.freememPercentage.json new file mode 100644 index 000000000..fc694e4cb --- /dev/null +++ b/docs/v1.0.0-beta01/data/node-utils/src.Function.freememPercentage.json @@ -0,0 +1 @@ +{"id":1802,"name":"freememPercentage","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/node-utils/src/system/os.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/node-utils/src/system/os.ts","line":194,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-utils/src/system/os.ts#L194"}],"signatures":[{"id":1803,"name":"freememPercentage","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"freememPercentage"}]},{"tag":"@description","content":[{"kind":"text","text":"获取可用内存相对于总内存的百分比。Gets the percentage of free memory relative to total memory for memory usage monitoring."}]},{"tag":"@returns","content":[{"kind":"text","text":"可用内存百分比(十进制,0-1)。Free memory percentage as a decimal (0-1)"}]},{"tag":"@example","content":[{"kind":"text","text":"// Memory usage alerts\nconst freePercent = freememPercentage();\nif (freePercent < 0.1) {\n console.error("},{"kind":"code","text":"`Critical: Only ${(freePercent * 100).toFixed(1)}% memory available`"},{"kind":"text","text":");\n} else if (freePercent < 0.2) {\n console.warn("},{"kind":"code","text":"`Warning: ${(freePercent * 100).toFixed(1)}% memory available`"},{"kind":"text","text":");\n}"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Memory-based throttling\nconst memoryUsage = 1 - freememPercentage();\nif (memoryUsage > 0.8) {\n console.log('High memory usage detected, throttling operations');\n}\n```"}]},{"tag":"@since","content":[{"kind":"text","text":"1.0.0"}]},{"tag":"@see","content":[{"kind":"text","text":" - "},{"kind":"inline-tag","tag":"@link","text":"freemem","target":1798},{"kind":"text","text":" - Get free memory in MB"},{"kind":"text","text":"\n"},{"kind":"text","text":" - "},{"kind":"inline-tag","tag":"@link","text":"totalmem","target":1800},{"kind":"text","text":" - Get total memory in MB"},{"kind":"text","text":"\n"}]}]},"type":{"type":"intrinsic","name":"number"},"is":{"declaration":false},"location":{"query":"node-utils/src.Function.freememPercentage","hash":"freememPercentage"},"text":{"comment":"
    Function:

    freememPercentage

    \n
    Description:

    获取可用内存相对于总内存的百分比。Gets the percentage of free memory relative to total memory for memory usage monitoring.

    \n
    Returns:

    可用内存百分比(十进制,0-1)。Free memory percentage as a decimal (0-1)

    \n
    Example:

    // Memory usage alerts\nconst freePercent = freememPercentage();\nif (freePercent < 0.1) {\n console.error(Critical: Only ${(freePercent * 100).toFixed(1)}% memory available);\n} else if (freePercent < 0.2) {\n console.warn(Warning: ${(freePercent * 100).toFixed(1)}% memory available);\n}

    \n
    Example:
    // Memory-based throttling\nconst memoryUsage = 1 - freememPercentage();\nif (memoryUsage > 0.8) {\n  console.log('High memory usage detected, throttling operations');\n}\n
    \n
    Since:

    1.0.0

    \n
    See:
    \n"},"sources":[{"fileName":"packages/node-utils/src/system/os.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/node-utils/src/system/os.ts","line":194,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-utils/src/system/os.ts#L194"}],"parentId":1802}],"is":{"declaration":true},"location":{"query":"node-utils/src.Function.freememPercentage","hash":""},"text":{},"parentId":881} diff --git a/docs/v1.0.0-beta01/data/node-utils/src.Function.fsExistsSync.json b/docs/v1.0.0-beta01/data/node-utils/src.Function.fsExistsSync.json new file mode 100644 index 000000000..6bf4e8227 --- /dev/null +++ b/docs/v1.0.0-beta01/data/node-utils/src.Function.fsExistsSync.json @@ -0,0 +1 @@ +{"id":1702,"name":"fsExistsSync","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/node-utils/src/fs/fsFuncs.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/node-utils/src/fs/fsFuncs.ts","line":135,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-utils/src/fs/fsFuncs.ts#L135"}],"signatures":[{"id":1703,"name":"fsExistsSync","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"fsExistsSync"}]},{"tag":"@description","content":[{"kind":"text","text":"同步检查文件或目录是否存在。Synchronously checks if a file or directory exists using fs.accessSync with proper error handling."}]},{"tag":"@returns","content":[{"kind":"text","text":"如果路径存在且可访问返回true,否则返回false。True if the path exists and is accessible, false otherwise"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Check if a file exists\nif (fsExistsSync('./config.json')) {\n console.log('Config file found');\n} else {\n console.log('Config file missing');\n}\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Check directory existence before operations\nconst dirExists = fsExistsSync('./uploads');\nif (!dirExists) {\n mkdirsSync('./uploads');\n}\n```"}]},{"tag":"@see","content":[{"kind":"inline-tag","tag":"@link","text":"https://nodejs.org/api/fs.html#fs_fs_accesssync_path_mode","target":"https://nodejs.org/api/fs.html#fs_fs_accesssync_path_mode"},{"kind":"text","text":" - Node.js fs.accessSync documentation"}]}]},"parameters":[{"id":1704,"name":"folderPath","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"要检查的文件或目录路径。The file or directory path to check"}]},"type":{"type":"intrinsic","name":"string"},"text":{"comment":"

    要检查的文件或目录路径。The file or directory path to check

    \n"}}],"type":{"type":"intrinsic","name":"boolean"},"is":{"declaration":false},"location":{"query":"node-utils/src.Function.fsExistsSync","hash":"fsExistsSync"},"text":{"comment":"
    Function:

    fsExistsSync

    \n
    Description:

    同步检查文件或目录是否存在。Synchronously checks if a file or directory exists using fs.accessSync with proper error handling.

    \n
    Returns:

    如果路径存在且可访问返回true,否则返回false。True if the path exists and is accessible, false otherwise

    \n
    Example:
    // Check if a file exists\nif (fsExistsSync('./config.json')) {\n  console.log('Config file found');\n} else {\n  console.log('Config file missing');\n}\n
    \n
    Example:
    // Check directory existence before operations\nconst dirExists = fsExistsSync('./uploads');\nif (!dirExists) {\n  mkdirsSync('./uploads');\n}\n
    \n
    See:

    https://nodejs.org/api/fs.html#fs_fs_accesssync_path_mode - Node.js fs.accessSync documentation

    \n"},"sources":[{"fileName":"packages/node-utils/src/fs/fsFuncs.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/node-utils/src/fs/fsFuncs.ts","line":135,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-utils/src/fs/fsFuncs.ts#L135"}],"parentId":1702}],"is":{"declaration":true},"location":{"query":"node-utils/src.Function.fsExistsSync","hash":""},"text":{},"parentId":881} diff --git a/docs/v1.0.0-beta01/data/node-utils/src.Function.ge.json b/docs/v1.0.0-beta01/data/node-utils/src.Function.ge.json new file mode 100644 index 000000000..5a6148484 --- /dev/null +++ b/docs/v1.0.0-beta01/data/node-utils/src.Function.ge.json @@ -0,0 +1 @@ +{"id":1859,"name":"getJSON","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/node-utils/src/http/index.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/node-utils/src/http/index.ts","line":138,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-utils/src/http/index.ts#L138"}],"signatures":[{"id":1860,"name":"getJSON","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"getJSON"}]},{"tag":"@description","content":[{"kind":"text","text":"发送GET请求获取JSON数据。Sends GET request to get JSON data"}]},{"tag":"@returns","content":[{"kind":"text","text":"JSON响应数据。JSON response data"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\ngetJSON('https://api.example.com/data')\n .then(data => console.log(data))\n .catch(err => console.error(err));\n```"}]}]},"parameters":[{"id":1861,"name":"requestUrl","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"请求URL。Request URL"}]},"type":{"type":"intrinsic","name":"string"},"text":{"comment":"

    请求URL。Request URL

    \n"}}],"type":{"type":"reference","typeArguments":[{"type":"intrinsic","name":"any"}],"name":"Promise","qualifiedName":"Promise","package":"typescript"},"is":{"declaration":false},"location":{"query":"node-utils/src.Function.getJSON","hash":"getJSON"},"text":{"comment":"
    Function:

    getJSON

    \n
    Description:

    发送GET请求获取JSON数据。Sends GET request to get JSON data

    \n
    Returns:

    JSON响应数据。JSON response data

    \n
    Example:
    getJSON('https://api.example.com/data')\n  .then(data => console.log(data))\n  .catch(err => console.error(err));\n
    \n"},"sources":[{"fileName":"packages/node-utils/src/http/index.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/node-utils/src/http/index.ts","line":138,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-utils/src/http/index.ts#L138"}],"parentId":1859}],"is":{"declaration":true},"location":{"query":"node-utils/src.Function.getJSON","hash":""},"text":{},"parentId":881} diff --git a/docs/v1.0.0-beta01/data/node-utils/src.Function.getCPUInfo.json b/docs/v1.0.0-beta01/data/node-utils/src.Function.getCPUInfo.json new file mode 100644 index 000000000..3f9d431e9 --- /dev/null +++ b/docs/v1.0.0-beta01/data/node-utils/src.Function.getCPUInfo.json @@ -0,0 +1 @@ +{"id":1829,"name":"getCPUInfo","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/node-utils/src/system/os.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/node-utils/src/system/os.ts","line":634,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-utils/src/system/os.ts#L634"}],"signatures":[{"id":1830,"name":"getCPUInfo","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"getCPUInfo"}]},{"tag":"@description","content":[{"kind":"text","text":"获取所有核心的当前CPU时间信息。Gets current CPU timing information across all cores for detailed performance analysis."}]},{"tag":"@returns","content":[{"kind":"text","text":"包含空闲和总系统时间的对象。Object containing idle and total CPU time"}]},{"tag":"@example","content":[{"kind":"text","text":"// Get raw CPU timing data\nconst cpuInfo = getCPUInfo();\nconst usagePercent = ((cpuInfo.total - cpuInfo.idle) / cpuInfo.total) * 100;\nconsole.log("},{"kind":"code","text":"`Instantaneous CPU usage: ${usagePercent.toFixed(1)}%`"},{"kind":"text","text":");"}]},{"tag":"@example","content":[{"kind":"text","text":"// Calculate CPU usage over time\nconst start = getCPUInfo();\nsetTimeout(() => {\n const end = getCPUInfo();\n const idleDiff = end.idle - start.idle;\n const totalDiff = end.total - start.total;\n const usage = 1 - (idleDiff / totalDiff);\n console.log("},{"kind":"code","text":"`CPU usage over 1 second: ${(usage * 100).toFixed(1)}%`"},{"kind":"text","text":");\n}, 1000);"}]},{"tag":"@since","content":[{"kind":"text","text":"1.0.0"}]},{"tag":"@see","content":[{"kind":"text","text":" - "},{"kind":"inline-tag","tag":"@link","text":"getCPUUsage","target":1819},{"kind":"text","text":" - Higher-level CPU usage monitoring"},{"kind":"text","text":"\n"},{"kind":"text","text":" - "},{"kind":"inline-tag","tag":"@link","text":"https://nodejs.org/api/os.html#os_os_cpus","target":"https://nodejs.org/api/os.html#os_os_cpus"},{"kind":"text","text":" - Node.js os.cpus() documentation"},{"kind":"text","text":"\n"}]}]},"type":{"type":"reflection","declaration":{"id":1831,"name":"getCPUInfo","kind":65536,"kindString":"Type literal","flags":{},"children":[{"id":1832,"name":"idle","kind":1024,"kindString":"Property","flags":{},"sources":[{"fileName":"packages/node-utils/src/system/os.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/node-utils/src/system/os.ts","line":654,"character":4,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-utils/src/system/os.ts#L654"}],"type":{"type":"intrinsic","name":"number"},"defaultValue":"idle","is":{"declaration":true},"location":{"query":"node-utils/src.Function.getCPUInfo","hash":"getCPUInfo.idle"},"text":{},"parentId":1829},{"id":1833,"name":"total","kind":1024,"kindString":"Property","flags":{},"sources":[{"fileName":"packages/node-utils/src/system/os.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/node-utils/src/system/os.ts","line":655,"character":4,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-utils/src/system/os.ts#L655"}],"type":{"type":"intrinsic","name":"number"},"defaultValue":"total","is":{"declaration":true},"location":{"query":"node-utils/src.Function.getCPUInfo","hash":"getCPUInfo.total"},"text":{},"parentId":1829}],"groups":[{"title":"Properties","children":[1832,1833]}],"sources":[{"fileName":"packages/node-utils/src/system/os.ts","line":653,"character":9,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-utils/src/system/os.ts#L653"}],"location":{"query":"node-utils/src.Function.getCPUInfo","hash":"getCPUInfo"}}},"is":{"declaration":false},"location":{"query":"node-utils/src.Function.getCPUInfo","hash":"getCPUInfo"},"text":{"comment":"
    Function:

    getCPUInfo

    \n
    Description:

    获取所有核心的当前CPU时间信息。Gets current CPU timing information across all cores for detailed performance analysis.

    \n
    Returns:

    包含空闲和总系统时间的对象。Object containing idle and total CPU time

    \n
    Example:

    // Get raw CPU timing data\nconst cpuInfo = getCPUInfo();\nconst usagePercent = ((cpuInfo.total - cpuInfo.idle) / cpuInfo.total) * 100;\nconsole.log(Instantaneous CPU usage: ${usagePercent.toFixed(1)}%);

    \n
    Example:

    // Calculate CPU usage over time\nconst start = getCPUInfo();\nsetTimeout(() => {\n const end = getCPUInfo();\n const idleDiff = end.idle - start.idle;\n const totalDiff = end.total - start.total;\n const usage = 1 - (idleDiff / totalDiff);\n console.log(CPU usage over 1 second: ${(usage * 100).toFixed(1)}%);\n}, 1000);

    \n
    Since:

    1.0.0

    \n
    See:
    \n"},"sources":[{"fileName":"packages/node-utils/src/system/os.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/node-utils/src/system/os.ts","line":634,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-utils/src/system/os.ts#L634"}],"parentId":1829}],"is":{"declaration":true},"location":{"query":"node-utils/src.Function.getCPUInfo","hash":""},"text":{},"parentId":881} diff --git a/docs/v1.0.0-beta01/data/node-utils/src.Function.getCPUUsage.json b/docs/v1.0.0-beta01/data/node-utils/src.Function.getCPUUsage.json new file mode 100644 index 000000000..e87eb1af6 --- /dev/null +++ b/docs/v1.0.0-beta01/data/node-utils/src.Function.getCPUUsage.json @@ -0,0 +1 @@ +{"id":1819,"name":"getCPUUsage","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/node-utils/src/system/os.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/node-utils/src/system/os.ts","line":527,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-utils/src/system/os.ts#L527"}],"signatures":[{"id":1820,"name":"getCPUUsage","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"getCPUUsage"}]},{"tag":"@description","content":[{"kind":"text","text":"在1秒采样期内计算CPU使用率百分比。Calculates CPU usage percentage over a 1-second sampling period for accurate performance monitoring."}]},{"tag":"@example","content":[{"kind":"text","text":"// Monitor CPU usage\ngetCPUUsage((usage) => {\n console.log("},{"kind":"code","text":"`CPU usage: ${(usage * 100).toFixed(1)}%`"},{"kind":"text","text":");\n\n if (usage > 0.8) {\n console.warn('High CPU usage detected');\n }\n});"}]},{"tag":"@example","content":[{"kind":"text","text":"// Get CPU free percentage\ngetCPUUsage((freePercent) => {\n console.log("},{"kind":"code","text":"`CPU free: ${(freePercent * 100).toFixed(1)}%`"},{"kind":"text","text":");\n}, true);"}]},{"tag":"@example","content":[{"kind":"text","text":"// Performance monitoring loop\nsetInterval(() => {\n getCPUUsage((usage) => {\n const percent = (usage * 100).toFixed(1);\n console.log("},{"kind":"code","text":"`[${new Date().toISOString()}] CPU: ${percent}%`"},{"kind":"text","text":");\n });\n}, 5000);"}]},{"tag":"@since","content":[{"kind":"text","text":"1.0.0"}]},{"tag":"@see","content":[{"kind":"text","text":" - "},{"kind":"inline-tag","tag":"@link","text":"cpuUsage","target":1826},{"kind":"text","text":" - Convenience function for CPU usage"},{"kind":"text","text":"\n"},{"kind":"text","text":" - "},{"kind":"inline-tag","tag":"@link","text":"cpuFree","target":1823},{"kind":"text","text":" - Convenience function for CPU free percentage"},{"kind":"text","text":"\n"}]}]},"parameters":[{"id":1821,"name":"callback","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"接收CPU使用率(十进制0-1)的回调函数。Callback function receiving CPU usage as decimal (0-1)"}]},"type":{"type":"reference","name":"AnyCallbackFunc"},"text":{"comment":"

    接收CPU使用率(十进制0-1)的回调函数。Callback function receiving CPU usage as decimal (0-1)

    \n"}},{"id":1822,"name":"free","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"如果为true,返回CPU空闲百分比;如果为false,返回使用百分比。If true, returns free CPU percentage; if false, returns used percentage"}]},"type":{"type":"intrinsic","name":"boolean"},"text":{"comment":"

    如果为true,返回CPU空闲百分比;如果为false,返回使用百分比。If true, returns free CPU percentage; if false, returns used percentage

    \n"}}],"type":{"type":"intrinsic","name":"void"},"is":{"declaration":false},"location":{"query":"node-utils/src.Function.getCPUUsage","hash":"getCPUUsage"},"text":{"comment":"
    Function:

    getCPUUsage

    \n
    Description:

    在1秒采样期内计算CPU使用率百分比。Calculates CPU usage percentage over a 1-second sampling period for accurate performance monitoring.

    \n
    Example:

    // Monitor CPU usage\ngetCPUUsage((usage) => {\n console.log(CPU usage: ${(usage * 100).toFixed(1)}%);

    \n

    if (usage > 0.8) {\n console.warn('High CPU usage detected');\n }\n});

    \n
    Example:

    // Get CPU free percentage\ngetCPUUsage((freePercent) => {\n console.log(CPU free: ${(freePercent * 100).toFixed(1)}%);\n}, true);

    \n
    Example:

    // Performance monitoring loop\nsetInterval(() => {\n getCPUUsage((usage) => {\n const percent = (usage * 100).toFixed(1);\n console.log([${new Date().toISOString()}] CPU: ${percent}%);\n });\n}, 5000);

    \n
    Since:

    1.0.0

    \n
    See:
    \n"},"sources":[{"fileName":"packages/node-utils/src/system/os.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/node-utils/src/system/os.ts","line":527,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-utils/src/system/os.ts#L527"}],"parentId":1819}],"is":{"declaration":true},"location":{"query":"node-utils/src.Function.getCPUUsage","hash":""},"text":{},"parentId":881} diff --git a/docs/v1.0.0-beta01/data/node-utils/src.Function.getProcesses.json b/docs/v1.0.0-beta01/data/node-utils/src.Function.getProcesses.json new file mode 100644 index 000000000..eea7f40b4 --- /dev/null +++ b/docs/v1.0.0-beta01/data/node-utils/src.Function.getProcesses.json @@ -0,0 +1 @@ +{"id":1810,"name":"getProcesses","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/node-utils/src/system/os.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/node-utils/src/system/os.ts","line":370,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-utils/src/system/os.ts#L370"}],"signatures":[{"id":1811,"name":"getProcesses","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"getProcesses"}]},{"tag":"@description","content":[{"kind":"text","text":"获取按CPU使用率排序的运行进程信息(仅Unix/Linux)。Gets running process information sorted by CPU usage for system monitoring on Unix/Linux systems."}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Get top 5 CPU-intensive processes\ngetProcesses(5, (processInfo) => {\n console.log('Top 5 processes by CPU usage:');\n console.log(processInfo);\n});\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Get default top 10 processes\ngetProcesses((processInfo) => {\n console.log('Process information:');\n console.log(processInfo);\n});\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Monitor system load\nif (platform() !== 'win32') {\n getProcesses(3, (info) => {\n console.log('Top 3 resource-intensive processes:');\n console.log(info);\n });\n}\n```"}]},{"tag":"@deprecated","content":[{"kind":"text","text":"Unix/Linux only - consider using cross-platform process monitoring"}]},{"tag":"@since","content":[{"kind":"text","text":"1.0.0"}]}]},"parameters":[{"id":1812,"name":"nProcess","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"要返回的进程数量,或如果省略则为回调函数。Number of processes to return, or callback if omitted"}]},"type":{"type":"union","types":[{"type":"intrinsic","name":"number"},{"type":"reference","name":"AnyCallbackFunc"}]},"text":{"comment":"

    要返回的进程数量,或如果省略则为回调函数。Number of processes to return, or callback if omitted

    \n"}},{"id":1813,"name":"callback","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"接收格式化进程列表字符串的回调函数。Callback function receiving formatted process list string (empty on error)"}]},"type":{"type":"reference","name":"AnyCallbackFunc"},"text":{"comment":"

    接收格式化进程列表字符串的回调函数。Callback function receiving formatted process list string (empty on error)

    \n"}}],"type":{"type":"intrinsic","name":"void"},"is":{"declaration":false},"location":{"query":"node-utils/src.Function.getProcesses","hash":"getProcesses"},"text":{"comment":"
    Function:

    getProcesses

    \n
    Description:

    获取按CPU使用率排序的运行进程信息(仅Unix/Linux)。Gets running process information sorted by CPU usage for system monitoring on Unix/Linux systems.

    \n
    Example:
    // Get top 5 CPU-intensive processes\ngetProcesses(5, (processInfo) => {\n  console.log('Top 5 processes by CPU usage:');\n  console.log(processInfo);\n});\n
    \n
    Example:
    // Get default top 10 processes\ngetProcesses((processInfo) => {\n  console.log('Process information:');\n  console.log(processInfo);\n});\n
    \n
    Example:
    // Monitor system load\nif (platform() !== 'win32') {\n  getProcesses(3, (info) => {\n    console.log('Top 3 resource-intensive processes:');\n    console.log(info);\n  });\n}\n
    \n
    Deprecated:

    Unix/Linux only - consider using cross-platform process monitoring

    \n
    Since:

    1.0.0

    \n"},"sources":[{"fileName":"packages/node-utils/src/system/os.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/node-utils/src/system/os.ts","line":370,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-utils/src/system/os.ts#L370"}],"parentId":1810}],"is":{"declaration":true},"location":{"query":"node-utils/src.Function.getProcesses","hash":""},"text":{},"parentId":881} diff --git a/docs/v1.0.0-beta01/data/node-utils/src.Function.getTimeStr.json b/docs/v1.0.0-beta01/data/node-utils/src.Function.getTimeStr.json new file mode 100644 index 000000000..ef8a5cd81 --- /dev/null +++ b/docs/v1.0.0-beta01/data/node-utils/src.Function.getTimeStr.json @@ -0,0 +1 @@ +{"id":1843,"name":"getTimeStr","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/node-utils/src/common/index.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/node-utils/src/common/index.ts","line":46,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-utils/src/common/index.ts#L46"}],"signatures":[{"id":1844,"name":"getTimeStr","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"getTimeStr"}]},{"tag":"@description","content":[{"kind":"text","text":"格式化日期为可读字符串,格式为YYYY/MM/DD HH:MM:SS。Formats a date as a readable string in YYYY/MM/DD HH:MM:SS format for consistent timestamp display."}]},{"tag":"@returns","content":[{"kind":"text","text":"格式化的时间字符串。Formatted time string in YYYY/MM/DD HH:MM:SS format"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Get current time formatted\nconst now = getTimeStr();\nconsole.log(now); // '2024/03/15 14:30:25'\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Format specific date\nconst specificTime = getTimeStr('2024-01-01T12:00:00Z');\nconsole.log(specificTime); // '2024/01/01 12:00:00'\n```"}]},{"tag":"@example","content":[{"kind":"text","text":"// Use in logging with timestamps\nfunction logWithTimestamp(message) {\n console.log("},{"kind":"code","text":"`[${getTimeStr()}] ${message}`"},{"kind":"text","text":");\n}\nlogWithTimestamp('Server started'); // '[2024/03/15 14:30:25] Server started'"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Format various date inputs\nconsole.log(getTimeStr('March 15, 2024 2:30 PM')); // '2024/03/15 14:30:00'\nconsole.log(getTimeStr(Date.now())); // Current time formatted\nconsole.log(getTimeStr(new Date())); // Current time formatted\n```"}]}]},"parameters":[{"id":1845,"name":"timeStr","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"可选的时间字符串,省略时使用当前时间。Optional time string to parse; uses current time if omitted"}]},"type":{"type":"intrinsic","name":"string"},"text":{"comment":"

    可选的时间字符串,省略时使用当前时间。Optional time string to parse; uses current time if omitted

    \n"}}],"type":{"type":"intrinsic","name":"string"},"is":{"declaration":false},"location":{"query":"node-utils/src.Function.getTimeStr","hash":"getTimeStr"},"text":{"comment":"
    Function:

    getTimeStr

    \n
    Description:

    格式化日期为可读字符串,格式为YYYY/MM/DD HH:MM:SS。Formats a date as a readable string in YYYY/MM/DD HH:MM:SS format for consistent timestamp display.

    \n
    Returns:

    格式化的时间字符串。Formatted time string in YYYY/MM/DD HH:MM:SS format

    \n
    Example:
    // Get current time formatted\nconst now = getTimeStr();\nconsole.log(now); // '2024/03/15 14:30:25'\n
    \n
    Example:
    // Format specific date\nconst specificTime = getTimeStr('2024-01-01T12:00:00Z');\nconsole.log(specificTime); // '2024/01/01 12:00:00'\n
    \n
    Example:

    // Use in logging with timestamps\nfunction logWithTimestamp(message) {\n console.log([${getTimeStr()}] ${message});\n}\nlogWithTimestamp('Server started'); // '[2024/03/15 14:30:25] Server started'

    \n
    Example:
    // Format various date inputs\nconsole.log(getTimeStr('March 15, 2024 2:30 PM')); // '2024/03/15 14:30:00'\nconsole.log(getTimeStr(Date.now()));               // Current time formatted\nconsole.log(getTimeStr(new Date()));              // Current time formatted\n
    \n"},"sources":[{"fileName":"packages/node-utils/src/common/index.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/node-utils/src/common/index.ts","line":46,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-utils/src/common/index.ts#L46"}],"parentId":1843}],"is":{"declaration":true},"location":{"query":"node-utils/src.Function.getTimeStr","hash":""},"text":{},"parentId":881} diff --git a/docs/v1.0.0-beta01/data/node-utils/src.Function.groupData.json b/docs/v1.0.0-beta01/data/node-utils/src.Function.groupData.json new file mode 100644 index 000000000..5f716ee95 --- /dev/null +++ b/docs/v1.0.0-beta01/data/node-utils/src.Function.groupData.json @@ -0,0 +1 @@ +{"id":1923,"name":"groupData","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/node-utils/src/data/index.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/node-utils/src/data/index.ts","line":262,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-utils/src/data/index.ts#L262"}],"signatures":[{"id":1924,"name":"groupData","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"groupData"}]},{"tag":"@description","content":[{"kind":"text","text":"对数据数组进行分组。Groups data array"}]},{"tag":"@returns","content":[{"kind":"text","text":"分组后的对象。Grouped object"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\nconst users = [\n { name: 'John', city: 'NYC' },\n { name: 'Jane', city: 'LA' },\n { name: 'Bob', city: 'NYC' }\n];\ngroupData(users, 'city');\n// -> { NYC: [{...}, {...}], LA: [{...}] }\n```"}]}]},"parameters":[{"id":1925,"name":"data","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"数据数组。Data array"}]},"type":{"type":"array","elementType":{"type":"intrinsic","name":"any"}},"text":{"comment":"

    数据数组。Data array

    \n"}},{"id":1926,"name":"key","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"分组键。Grouping key"}]},"type":{"type":"intrinsic","name":"string"},"text":{"comment":"

    分组键。Grouping key

    \n"}}],"type":{"type":"reference","typeArguments":[{"type":"intrinsic","name":"string"},{"type":"array","elementType":{"type":"intrinsic","name":"any"}}],"name":"Record","qualifiedName":"Record","package":"typescript"},"is":{"declaration":false},"location":{"query":"node-utils/src.Function.groupData","hash":"groupData"},"text":{"comment":"
    Function:

    groupData

    \n
    Description:

    对数据数组进行分组。Groups data array

    \n
    Returns:

    分组后的对象。Grouped object

    \n
    Example:
    const users = [\n  { name: 'John', city: 'NYC' },\n  { name: 'Jane', city: 'LA' },\n  { name: 'Bob', city: 'NYC' }\n];\ngroupData(users, 'city');\n// -> { NYC: [{...}, {...}], LA: [{...}] }\n
    \n"},"sources":[{"fileName":"packages/node-utils/src/data/index.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/node-utils/src/data/index.ts","line":262,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-utils/src/data/index.ts#L262"}],"parentId":1923}],"is":{"declaration":true},"location":{"query":"node-utils/src.Function.groupData","hash":""},"text":{},"parentId":881} diff --git a/docs/v1.0.0-beta01/data/node-utils/src.Function.harddrive.json b/docs/v1.0.0-beta01/data/node-utils/src.Function.harddrive.json new file mode 100644 index 000000000..1caad2db4 --- /dev/null +++ b/docs/v1.0.0-beta01/data/node-utils/src.Function.harddrive.json @@ -0,0 +1 @@ +{"id":1807,"name":"harddrive","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/node-utils/src/system/os.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/node-utils/src/system/os.ts","line":293,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-utils/src/system/os.ts#L293"}],"signatures":[{"id":1808,"name":"harddrive","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"harddrive"}]},{"tag":"@description","content":[{"kind":"text","text":"使用'df -k'命令获取磁盘使用信息(仅Unix/Linux)。Gets disk usage information using 'df -k' command for storage monitoring on Unix/Linux systems."}]},{"tag":"@example","content":[{"kind":"text","text":"// Monitor disk space\nharddrive((total, free, used) => {\n const usagePercent = (used / total) * 100;\n console.log("},{"kind":"code","text":"`Disk usage: ${usagePercent.toFixed(1)}% (${used}/${total} MB)`"},{"kind":"text","text":");\n\n if (usagePercent > 90) {\n console.warn('Disk space critically low!');\n }\n});"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Automated cleanup trigger\nif (platform() !== 'win32') {\n harddrive((total, free, used) => {\n if (free < 1000) { // Less than 1GB free\n console.log('Triggering cleanup: low disk space');\n // Trigger cleanup logic\n }\n });\n}\n```"}]},{"tag":"@deprecated","content":[{"kind":"text","text":"Unix/Linux only - consider using cross-platform disk monitoring libraries"}]},{"tag":"@since","content":[{"kind":"text","text":"1.0.0"}]}]},"parameters":[{"id":1809,"name":"callback","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"接收(totalMB, freeMB, usedMB)的回调函数。Callback function receiving (totalMB, freeMB, usedMB) (null on error)"}]},"type":{"type":"reference","name":"AnyCallbackFunc"},"text":{"comment":"

    接收(totalMB, freeMB, usedMB)的回调函数。Callback function receiving (totalMB, freeMB, usedMB) (null on error)

    \n"}}],"type":{"type":"intrinsic","name":"void"},"is":{"declaration":false},"location":{"query":"node-utils/src.Function.harddrive","hash":"harddrive"},"text":{"comment":"
    Function:

    harddrive

    \n
    Description:

    使用'df -k'命令获取磁盘使用信息(仅Unix/Linux)。Gets disk usage information using 'df -k' command for storage monitoring on Unix/Linux systems.

    \n
    Example:

    // Monitor disk space\nharddrive((total, free, used) => {\n const usagePercent = (used / total) * 100;\n console.log(Disk usage: ${usagePercent.toFixed(1)}% (${used}/${total} MB));

    \n

    if (usagePercent > 90) {\n console.warn('Disk space critically low!');\n }\n});

    \n
    Example:
    // Automated cleanup trigger\nif (platform() !== 'win32') {\n  harddrive((total, free, used) => {\n    if (free < 1000) { // Less than 1GB free\n      console.log('Triggering cleanup: low disk space');\n      // Trigger cleanup logic\n    }\n  });\n}\n
    \n
    Deprecated:

    Unix/Linux only - consider using cross-platform disk monitoring libraries

    \n
    Since:

    1.0.0

    \n"},"sources":[{"fileName":"packages/node-utils/src/system/os.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/node-utils/src/system/os.ts","line":293,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-utils/src/system/os.ts#L293"}],"parentId":1807}],"is":{"declaration":true},"location":{"query":"node-utils/src.Function.harddrive","hash":""},"text":{},"parentId":881} diff --git a/docs/v1.0.0-beta01/data/node-utils/src.Function.isBase64Str.json b/docs/v1.0.0-beta01/data/node-utils/src.Function.isBase64Str.json new file mode 100644 index 000000000..c302db550 --- /dev/null +++ b/docs/v1.0.0-beta01/data/node-utils/src.Function.isBase64Str.json @@ -0,0 +1 @@ +{"id":1840,"name":"isBase64Str","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/node-utils/src/common/base64.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/node-utils/src/common/base64.ts","line":127,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-utils/src/common/base64.ts#L127"}],"signatures":[{"id":1841,"name":"isBase64Str","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"isBase64Str"}]},{"tag":"@description","content":[{"kind":"text","text":"验证字符串是否为正确格式的Base64。Validates whether a string is properly formatted Base64 using round-trip encoding verification."}]},{"tag":"@returns","content":[{"kind":"text","text":"如果是有效Base64返回true,否则返回false。True if the string is valid Base64, false otherwise"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Validate Base64 strings\nconsole.log(isBase64Str('aGVsbG8gd29ybGQ=')); // true\nconsole.log(isBase64Str('hello world')); // false\nconsole.log(isBase64Str('invalid@base64!')); // false\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Input validation before decoding\nfunction safeBase64Decode(input) {\n if (!isBase64Str(input)) {\n throw new Error('Invalid Base64 input');\n }\n return base64Decode(input);\n}\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Filter valid Base64 strings from array\nconst inputs = ['aGVsbG8=', 'invalid', 'dGVzdA==', 'also-invalid'];\nconst validBase64 = inputs.filter(isBase64Str);\nconsole.log(validBase64); // ['aGVsbG8=', 'dGVzdA==']\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// API input validation\napp.post('/decode', (req, res) => {\n const { data } = req.body;\n if (!isBase64Str(data)) {\n return res.status(400).json({ error: 'Invalid Base64 format' });\n }\n const decoded = base64Decode(data);\n res.json({ result: decoded });\n});\n```"}]},{"tag":"@see","content":[{"kind":"inline-tag","tag":"@link","text":"base64Decode","target":1837},{"kind":"text","text":" - Decode validated Base64 strings"}]}]},"parameters":[{"id":1842,"name":"str","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"要验证的字符串。The string to validate for Base64 format"}]},"type":{"type":"intrinsic","name":"string"},"text":{"comment":"

    要验证的字符串。The string to validate for Base64 format

    \n"}}],"type":{"type":"intrinsic","name":"boolean"},"is":{"declaration":false},"location":{"query":"node-utils/src.Function.isBase64Str","hash":"isBase64Str"},"text":{"comment":"
    Function:

    isBase64Str

    \n
    Description:

    验证字符串是否为正确格式的Base64。Validates whether a string is properly formatted Base64 using round-trip encoding verification.

    \n
    Returns:

    如果是有效Base64返回true,否则返回false。True if the string is valid Base64, false otherwise

    \n
    Example:
    // Validate Base64 strings\nconsole.log(isBase64Str('aGVsbG8gd29ybGQ=')); // true\nconsole.log(isBase64Str('hello world'));       // false\nconsole.log(isBase64Str('invalid@base64!'));   // false\n
    \n
    Example:
    // Input validation before decoding\nfunction safeBase64Decode(input) {\n  if (!isBase64Str(input)) {\n    throw new Error('Invalid Base64 input');\n  }\n  return base64Decode(input);\n}\n
    \n
    Example:
    // Filter valid Base64 strings from array\nconst inputs = ['aGVsbG8=', 'invalid', 'dGVzdA==', 'also-invalid'];\nconst validBase64 = inputs.filter(isBase64Str);\nconsole.log(validBase64); // ['aGVsbG8=', 'dGVzdA==']\n
    \n
    Example:
    // API input validation\napp.post('/decode', (req, res) => {\n  const { data } = req.body;\n  if (!isBase64Str(data)) {\n    return res.status(400).json({ error: 'Invalid Base64 format' });\n  }\n  const decoded = base64Decode(data);\n  res.json({ result: decoded });\n});\n
    \n
    See:

    base64Decode - Decode validated Base64 strings

    \n"},"sources":[{"fileName":"packages/node-utils/src/common/base64.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/node-utils/src/common/base64.ts","line":127,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-utils/src/common/base64.ts#L127"}],"parentId":1840}],"is":{"declaration":true},"location":{"query":"node-utils/src.Function.isBase64Str","hash":""},"text":{},"parentId":881} diff --git a/docs/v1.0.0-beta01/data/node-utils/src.Function.isValidSQL.json b/docs/v1.0.0-beta01/data/node-utils/src.Function.isValidSQL.json new file mode 100644 index 000000000..4e10f1c91 --- /dev/null +++ b/docs/v1.0.0-beta01/data/node-utils/src.Function.isValidSQL.json @@ -0,0 +1 @@ +{"id":1846,"name":"isValidSQL","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/node-utils/src/common/sql.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/node-utils/src/common/sql.ts","line":29,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-utils/src/common/sql.ts#L29"}],"signatures":[{"id":1847,"name":"isValidSQL","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"isValidSQL"}]},{"tag":"@description","content":[{"kind":"text","text":"检测SQL语句是否存在明显语法异常(启发式校验,不替代SQL解析器)。Checks for obvious SQL syntax anomalies (heuristic check, not a full parser)."}]},{"tag":"@returns","content":[{"kind":"text","text":"如果未发现明显语法异常则返回true。True if no obvious syntax anomalies found"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Basic SELECT\nisValidSQL('SELECT * FROM users WHERE id = 1;'); // true\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Unmatched quote\nisValidSQL(\"SELECT * FROM users WHERE name = 'Alice\"); // false\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Unbalanced parentheses\nisValidSQL('SELECT (id FROM users'); // false\n```"}]}]},"parameters":[{"id":1848,"name":"sql","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"待校验的SQL字符串。SQL string to validate"}]},"type":{"type":"intrinsic","name":"string"},"text":{"comment":"

    待校验的SQL字符串。SQL string to validate

    \n"}}],"type":{"type":"intrinsic","name":"boolean"},"is":{"declaration":false},"location":{"query":"node-utils/src.Function.isValidSQL","hash":"isValidSQL"},"text":{"comment":"
    Function:

    isValidSQL

    \n
    Description:

    检测SQL语句是否存在明显语法异常(启发式校验,不替代SQL解析器)。Checks for obvious SQL syntax anomalies (heuristic check, not a full parser).

    \n
    Returns:

    如果未发现明显语法异常则返回true。True if no obvious syntax anomalies found

    \n
    Example:
    // Basic SELECT\nisValidSQL('SELECT * FROM users WHERE id = 1;'); // true\n
    \n
    Example:
    // Unmatched quote\nisValidSQL(\"SELECT * FROM users WHERE name = 'Alice\"); // false\n
    \n
    Example:
    // Unbalanced parentheses\nisValidSQL('SELECT (id FROM users'); // false\n
    \n"},"sources":[{"fileName":"packages/node-utils/src/common/sql.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/node-utils/src/common/sql.ts","line":29,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-utils/src/common/sql.ts#L29"}],"parentId":1846}],"is":{"declaration":true},"location":{"query":"node-utils/src.Function.isValidSQL","hash":""},"text":{},"parentId":881} diff --git a/docs/v1.0.0-beta01/data/node-utils/src.Function.loadavg.json b/docs/v1.0.0-beta01/data/node-utils/src.Function.loadavg.json new file mode 100644 index 000000000..a1fd923c4 --- /dev/null +++ b/docs/v1.0.0-beta01/data/node-utils/src.Function.loadavg.json @@ -0,0 +1 @@ +{"id":1816,"name":"loadavg","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/node-utils/src/system/os.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/node-utils/src/system/os.ts","line":481,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-utils/src/system/os.ts#L481"}],"signatures":[{"id":1817,"name":"loadavg","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"loadavg"}]},{"tag":"@description","content":[{"kind":"text","text":"获取特定时间段的系统负载平均值。Gets system load average for a specific time period for targeted load monitoring."}]},{"tag":"@returns","content":[{"kind":"text","text":"指定时间段的负载平均值。Load average for the specified time period"}]},{"tag":"@example","content":[{"kind":"text","text":"// Check current system load\nconst currentLoad = loadavg(1);\nconst cores = cpuCount();\n\nif (currentLoad > cores * 0.8) {\n console.warn("},{"kind":"code","text":"`High system load: ${currentLoad} (${cores} cores available)`"},{"kind":"text","text":");\n}"}]},{"tag":"@example","content":[{"kind":"text","text":"// Compare load trends\nconst load1min = loadavg(1);\nconst load5min = loadavg(5);\nconst load15min = loadavg(15);\n\nconsole.log("},{"kind":"code","text":"`Load trend: 1m=${load1min}, 5m=${load5min}, 15m=${load15min}`"},{"kind":"text","text":");"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Auto-scaling decision\nif (loadavg(5) > cpuCount() * 1.5) {\n console.log('Consider scaling up: sustained high load');\n}\n```"}]},{"tag":"@since","content":[{"kind":"text","text":"1.0.0"}]},{"tag":"@see","content":[{"kind":"text","text":" - "},{"kind":"inline-tag","tag":"@link","text":"allLoadavg","target":1814},{"kind":"text","text":" - Get all load averages at once"},{"kind":"text","text":"\n"},{"kind":"text","text":" - "},{"kind":"inline-tag","tag":"@link","text":"cpuCount","target":1792},{"kind":"text","text":" - Get number of CPU cores for comparison"},{"kind":"text","text":"\n"}]}]},"parameters":[{"id":1818,"name":"time","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"时间段:1、5或15分钟(默认为1)。Time period: 1, 5, or 15 minutes (defaults to 1)"}]},"type":{"type":"intrinsic","name":"number"},"defaultValue":"1","text":{"comment":"

    时间段:1、5或15分钟(默认为1)。Time period: 1, 5, or 15 minutes (defaults to 1)

    \n"}}],"type":{"type":"intrinsic","name":"number"},"is":{"declaration":false},"location":{"query":"node-utils/src.Function.loadavg","hash":"loadavg"},"text":{"comment":"
    Function:

    loadavg

    \n
    Description:

    获取特定时间段的系统负载平均值。Gets system load average for a specific time period for targeted load monitoring.

    \n
    Returns:

    指定时间段的负载平均值。Load average for the specified time period

    \n
    Example:

    // Check current system load\nconst currentLoad = loadavg(1);\nconst cores = cpuCount();

    \n

    if (currentLoad > cores * 0.8) {\n console.warn(High system load: ${currentLoad} (${cores} cores available));\n}

    \n
    Example:

    // Compare load trends\nconst load1min = loadavg(1);\nconst load5min = loadavg(5);\nconst load15min = loadavg(15);

    \n

    console.log(Load trend: 1m=${load1min}, 5m=${load5min}, 15m=${load15min});

    \n
    Example:
    // Auto-scaling decision\nif (loadavg(5) > cpuCount() * 1.5) {\n  console.log('Consider scaling up: sustained high load');\n}\n
    \n
    Since:

    1.0.0

    \n
    See:
    \n"},"sources":[{"fileName":"packages/node-utils/src/system/os.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/node-utils/src/system/os.ts","line":481,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-utils/src/system/os.ts#L481"}],"parentId":1816}],"is":{"declaration":true},"location":{"query":"node-utils/src.Function.loadavg","hash":""},"text":{},"parentId":881} diff --git a/docs/v1.0.0-beta01/data/node-utils/src.Function.mkdirsSync.json b/docs/v1.0.0-beta01/data/node-utils/src.Function.mkdirsSync.json new file mode 100644 index 000000000..249b50c00 --- /dev/null +++ b/docs/v1.0.0-beta01/data/node-utils/src.Function.mkdirsSync.json @@ -0,0 +1 @@ +{"id":1699,"name":"mkdirsSync","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/node-utils/src/fs/fsFuncs.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/node-utils/src/fs/fsFuncs.ts","line":85,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-utils/src/fs/fsFuncs.ts#L85"}],"signatures":[{"id":1700,"name":"mkdirsSync","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"mkdirsSync"}]},{"tag":"@description","content":[{"kind":"text","text":"同步递归创建目录,带错误处理。Synchronously creates directories recursively with comprehensive error handling and path validation."}]},{"tag":"@returns","content":[{"kind":"text","text":"如果目录创建成功返回true,否则返回false。True if directory creation succeeded, false otherwise"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Create a simple directory\nconst success = mkdirsSync('./new-folder');\nconsole.log(success); // true\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Create nested directories\nconst created = mkdirsSync('./path/to/nested/folder');\nif (created) {\n console.log('Directory structure created successfully');\n} else {\n console.log('Failed to create directory structure');\n}\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Handle existing directories gracefully\nmkdirsSync('./existing-folder'); // Returns true if already exists\n```"}]}]},"parameters":[{"id":1701,"name":"dirPath","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"要创建的目录路径(支持嵌套路径)。The directory path to create (supports nested paths)"}]},"type":{"type":"intrinsic","name":"string"},"text":{"comment":"

    要创建的目录路径(支持嵌套路径)。The directory path to create (supports nested paths)

    \n"}}],"type":{"type":"intrinsic","name":"boolean"},"is":{"declaration":false},"location":{"query":"node-utils/src.Function.mkdirsSync","hash":"mkdirsSync"},"text":{"comment":"
    Function:

    mkdirsSync

    \n
    Description:

    同步递归创建目录,带错误处理。Synchronously creates directories recursively with comprehensive error handling and path validation.

    \n
    Returns:

    如果目录创建成功返回true,否则返回false。True if directory creation succeeded, false otherwise

    \n
    Example:
    // Create a simple directory\nconst success = mkdirsSync('./new-folder');\nconsole.log(success); // true\n
    \n
    Example:
    // Create nested directories\nconst created = mkdirsSync('./path/to/nested/folder');\nif (created) {\n  console.log('Directory structure created successfully');\n} else {\n  console.log('Failed to create directory structure');\n}\n
    \n
    Example:
    // Handle existing directories gracefully\nmkdirsSync('./existing-folder'); // Returns true if already exists\n
    \n"},"sources":[{"fileName":"packages/node-utils/src/fs/fsFuncs.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/node-utils/src/fs/fsFuncs.ts","line":85,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-utils/src/fs/fsFuncs.ts#L85"}],"parentId":1699}],"is":{"declaration":true},"location":{"query":"node-utils/src.Function.mkdirsSync","hash":""},"text":{},"parentId":881} diff --git a/docs/v1.0.0-beta01/data/node-utils/src.Function.parseArgs.json b/docs/v1.0.0-beta01/data/node-utils/src.Function.parseArgs.json new file mode 100644 index 000000000..edc7e1242 --- /dev/null +++ b/docs/v1.0.0-beta01/data/node-utils/src.Function.parseArgs.json @@ -0,0 +1 @@ +{"id":1785,"name":"parseArgs","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/node-utils/src/process/env.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/node-utils/src/process/env.ts","line":60,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-utils/src/process/env.ts#L60"}],"signatures":[{"id":1786,"name":"parseArgs","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"parseArgs"}]},{"tag":"@description","content":[{"kind":"text","text":"使用minimist解析命令行参数,排除node和脚本路径。Parses command line arguments using minimist, excluding node and script paths for clean argument processing."}]},{"tag":"@returns","content":[{"kind":"text","text":"解析后的命令行参数对象。Parsed command line arguments object with type-safe access"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Command: node script.js --port 3000 --debug --files a.txt b.txt\nconst args = parseArgs();\nconsole.log(args.port); // 3000 (number)\nconsole.log(args.debug); // true (boolean)\nconsole.log(args.files); // ['a.txt', 'b.txt'] (string[])\nconsole.log(args._); // Array of non-option arguments\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Environment-aware configuration\nconst args = parseArgs();\nconst config = {\n port: args.port || process.env.PORT || 3000,\n debug: args.debug || process.env.NODE_ENV === 'development',\n logLevel: args['log-level'] || 'info'\n};\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// CLI validation and defaults\nconst args = parseArgs();\nif (!args.config) {\n console.error('--config argument is required');\n process.exit(1);\n}\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Build tool configuration\nconst args = parseArgs();\nconst buildConfig = {\n watch: args.watch || args.w, // --watch or -w\n minify: args.minify !== false, // --no-minify to disable\n sourcemap: args.sourcemap || args.s, // --sourcemap or -s\n outDir: args['out-dir'] || './dist' // --out-dir\n};\n```"}]},{"tag":"@see","content":[{"kind":"inline-tag","tag":"@link","text":"CommandLineArgs","target":1787},{"kind":"text","text":" - Type definition for parsed arguments"}]}]},"type":{"type":"reference","id":1787,"name":"CommandLineArgs"},"is":{"declaration":false},"location":{"query":"node-utils/src.Function.parseArgs","hash":"parseArgs"},"text":{"comment":"
    Function:

    parseArgs

    \n
    Description:

    使用minimist解析命令行参数,排除node和脚本路径。Parses command line arguments using minimist, excluding node and script paths for clean argument processing.

    \n
    Returns:

    解析后的命令行参数对象。Parsed command line arguments object with type-safe access

    \n
    Example:
    // Command: node script.js --port 3000 --debug --files a.txt b.txt\nconst args = parseArgs();\nconsole.log(args.port);    // 3000 (number)\nconsole.log(args.debug);   // true (boolean)\nconsole.log(args.files);   // ['a.txt', 'b.txt'] (string[])\nconsole.log(args._);       // Array of non-option arguments\n
    \n
    Example:
    // Environment-aware configuration\nconst args = parseArgs();\nconst config = {\n  port: args.port || process.env.PORT || 3000,\n  debug: args.debug || process.env.NODE_ENV === 'development',\n  logLevel: args['log-level'] || 'info'\n};\n
    \n
    Example:
    // CLI validation and defaults\nconst args = parseArgs();\nif (!args.config) {\n  console.error('--config argument is required');\n  process.exit(1);\n}\n
    \n
    Example:
    // Build tool configuration\nconst args = parseArgs();\nconst buildConfig = {\n  watch: args.watch || args.w,           // --watch or -w\n  minify: args.minify !== false,         // --no-minify to disable\n  sourcemap: args.sourcemap || args.s,   // --sourcemap or -s\n  outDir: args['out-dir'] || './dist'    // --out-dir\n};\n
    \n
    See:

    CommandLineArgs - Type definition for parsed arguments

    \n"},"sources":[{"fileName":"packages/node-utils/src/process/env.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/node-utils/src/process/env.ts","line":60,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-utils/src/process/env.ts#L60"}],"parentId":1785}],"is":{"declaration":true},"location":{"query":"node-utils/src.Function.parseArgs","hash":""},"text":{},"parentId":881} diff --git a/docs/v1.0.0-beta01/data/node-utils/src.Function.parseCSV.json b/docs/v1.0.0-beta01/data/node-utils/src.Function.parseCSV.json new file mode 100644 index 000000000..86142ca87 --- /dev/null +++ b/docs/v1.0.0-beta01/data/node-utils/src.Function.parseCSV.json @@ -0,0 +1 @@ +{"id":1899,"name":"parseCSV","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/node-utils/src/data/index.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/node-utils/src/data/index.ts","line":20,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-utils/src/data/index.ts#L20"}],"signatures":[{"id":1900,"name":"parseCSV","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"parseCSV"}]},{"tag":"@description","content":[{"kind":"text","text":"解析CSV字符串为二维数组。Parses CSV string to 2D array"}]},{"tag":"@returns","content":[{"kind":"text","text":"二维数组。2D array"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\nconst csv = 'name,age,city\\nJohn,25,NYC\\nJane,30,LA';\nconst data = parseCSV(csv);\n// -> [['name', 'age', 'city'], ['John', '25', 'NYC'], ['Jane', '30', 'LA']]\n```"}]}]},"parameters":[{"id":1901,"name":"csv","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"CSV字符串。CSV string"}]},"type":{"type":"intrinsic","name":"string"},"text":{"comment":"

    CSV字符串。CSV string

    \n"}},{"id":1902,"name":"delimiter","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"分隔符(默认: ',')。Delimiter (default: ',')"}]},"type":{"type":"intrinsic","name":"string"},"defaultValue":"','","text":{"comment":"

    分隔符(默认: ',')。Delimiter (default: ',')

    \n"}}],"type":{"type":"array","elementType":{"type":"array","elementType":{"type":"intrinsic","name":"string"}}},"is":{"declaration":false},"location":{"query":"node-utils/src.Function.parseCSV","hash":"parseCSV"},"text":{"comment":"
    Function:

    parseCSV

    \n
    Description:

    解析CSV字符串为二维数组。Parses CSV string to 2D array

    \n
    Returns:

    二维数组。2D array

    \n
    Example:
    const csv = 'name,age,city\\nJohn,25,NYC\\nJane,30,LA';\nconst data = parseCSV(csv);\n// -> [['name', 'age', 'city'], ['John', '25', 'NYC'], ['Jane', '30', 'LA']]\n
    \n"},"sources":[{"fileName":"packages/node-utils/src/data/index.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/node-utils/src/data/index.ts","line":20,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-utils/src/data/index.ts#L20"}],"parentId":1899}],"is":{"declaration":true},"location":{"query":"node-utils/src.Function.parseCSV","hash":""},"text":{},"parentId":881} diff --git a/docs/v1.0.0-beta01/data/node-utils/src.Function.parseHeaders.json b/docs/v1.0.0-beta01/data/node-utils/src.Function.parseHeaders.json new file mode 100644 index 000000000..15b8d2507 --- /dev/null +++ b/docs/v1.0.0-beta01/data/node-utils/src.Function.parseHeaders.json @@ -0,0 +1 @@ +{"id":1849,"name":"parseHeaders","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/node-utils/src/http/index.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/node-utils/src/http/index.ts","line":41,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-utils/src/http/index.ts#L41"}],"signatures":[{"id":1850,"name":"parseHeaders","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"parseHeaders"}]},{"tag":"@description","content":[{"kind":"text","text":"解析HTTP请求头。Parses HTTP headers"}]},{"tag":"@returns","content":[{"kind":"text","text":"解析后的请求头。Parsed headers"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\nconst headers = parseHeaders(req.headers);\n```"}]}]},"parameters":[{"id":1851,"name":"headers","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"请求头对象。Headers object"}]},"type":{"type":"reference","name":"IncomingHttpHeaders","qualifiedName":"IncomingHttpHeaders","package":"@types/node"},"text":{"comment":"

    请求头对象。Headers object

    \n"}}],"type":{"type":"reference","typeArguments":[{"type":"intrinsic","name":"string"},{"type":"intrinsic","name":"string"}],"name":"Record","qualifiedName":"Record","package":"typescript"},"is":{"declaration":false},"location":{"query":"node-utils/src.Function.parseHeaders","hash":"parseHeaders"},"text":{"comment":"
    Function:

    parseHeaders

    \n
    Description:

    解析HTTP请求头。Parses HTTP headers

    \n
    Returns:

    解析后的请求头。Parsed headers

    \n
    Example:
    const headers = parseHeaders(req.headers);\n
    \n"},"sources":[{"fileName":"packages/node-utils/src/http/index.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/node-utils/src/http/index.ts","line":41,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-utils/src/http/index.ts#L41"}],"parentId":1849}],"is":{"declaration":true},"location":{"query":"node-utils/src.Function.parseHeaders","hash":""},"text":{},"parentId":881} diff --git a/docs/v1.0.0-beta01/data/node-utils/src.Function.parseXML.json b/docs/v1.0.0-beta01/data/node-utils/src.Function.parseXML.json new file mode 100644 index 000000000..d5b1f67b4 --- /dev/null +++ b/docs/v1.0.0-beta01/data/node-utils/src.Function.parseXML.json @@ -0,0 +1 @@ +{"id":1915,"name":"parseXML","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/node-utils/src/data/index.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/node-utils/src/data/index.ts","line":151,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-utils/src/data/index.ts#L151"}],"signatures":[{"id":1916,"name":"parseXML","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"parseXML"}]},{"tag":"@description","content":[{"kind":"text","text":"简单的XML解析器(需要DOMParser)。Simple XML parser (requires DOMParser)"}]},{"tag":"@returns","content":[{"kind":"text","text":"解析后的对象。Parsed object"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\nconst xml = 'value';\nconst data = parseXML(xml);\n```"}]}]},"parameters":[{"id":1917,"name":"xmlString","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"XML字符串。XML string"}]},"type":{"type":"intrinsic","name":"string"},"text":{"comment":"

    XML字符串。XML string

    \n"}}],"type":{"type":"intrinsic","name":"any"},"is":{"declaration":false},"location":{"query":"node-utils/src.Function.parseXML","hash":"parseXML"},"text":{"comment":"
    Function:

    parseXML

    \n
    Description:

    简单的XML解析器(需要DOMParser)。Simple XML parser (requires DOMParser)

    \n
    Returns:

    解析后的对象。Parsed object

    \n
    Example:
    const xml = '<root><item>value</item></root>';\nconst data = parseXML(xml);\n
    \n"},"sources":[{"fileName":"packages/node-utils/src/data/index.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/node-utils/src/data/index.ts","line":151,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-utils/src/data/index.ts#L151"}],"parentId":1915}],"is":{"declaration":true},"location":{"query":"node-utils/src.Function.parseXML","hash":""},"text":{},"parentId":881} diff --git a/docs/v1.0.0-beta01/data/node-utils/src.Function.platform.json b/docs/v1.0.0-beta01/data/node-utils/src.Function.platform.json new file mode 100644 index 000000000..064edb482 --- /dev/null +++ b/docs/v1.0.0-beta01/data/node-utils/src.Function.platform.json @@ -0,0 +1 @@ +{"id":1790,"name":"platform","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/node-utils/src/system/os.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/node-utils/src/system/os.ts","line":41,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-utils/src/system/os.ts#L41"}],"signatures":[{"id":1791,"name":"platform","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"platform"}]},{"tag":"@description","content":[{"kind":"text","text":"获取当前主机平台标识符。Gets the current host platform identifier for cross-platform compatibility checks."}]},{"tag":"@returns","content":[{"kind":"text","text":"平台标识符('aix', 'darwin', 'freebsd', 'linux', 'openbsd', 'sunos', 'win32')。The platform identifier ('aix', 'darwin', 'freebsd', 'linux', 'openbsd', 'sunos', 'win32')"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Check platform for conditional logic\nconst currentPlatform = platform();\nif (currentPlatform === 'win32') {\n console.log('Running on Windows');\n} else if (currentPlatform === 'darwin') {\n console.log('Running on macOS');\n} else {\n console.log('Running on Unix-like system');\n}\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Platform-specific file paths\nconst configPath = platform() === 'win32'\n ? 'C:\\\\Users\\\\config.json'\n : '/home/user/config.json';\n```"}]},{"tag":"@see","content":[{"kind":"inline-tag","tag":"@link","text":"https://nodejs.org/api/process.html#process_process_platform","target":"https://nodejs.org/api/process.html#process_process_platform"},{"kind":"text","text":" - Node.js process.platform documentation"}]}]},"type":{"type":"reference","name":"Platform","qualifiedName":"global.NodeJS.Platform","package":"@types/node"},"is":{"declaration":false},"location":{"query":"node-utils/src.Function.platform","hash":"platform"},"text":{"comment":"
    Function:

    platform

    \n
    Description:

    获取当前主机平台标识符。Gets the current host platform identifier for cross-platform compatibility checks.

    \n
    Returns:

    平台标识符('aix', 'darwin', 'freebsd', 'linux', 'openbsd', 'sunos', 'win32')。The platform identifier ('aix', 'darwin', 'freebsd', 'linux', 'openbsd', 'sunos', 'win32')

    \n
    Example:
    // Check platform for conditional logic\nconst currentPlatform = platform();\nif (currentPlatform === 'win32') {\n  console.log('Running on Windows');\n} else if (currentPlatform === 'darwin') {\n  console.log('Running on macOS');\n} else {\n  console.log('Running on Unix-like system');\n}\n
    \n
    Example:
    // Platform-specific file paths\nconst configPath = platform() === 'win32'\n  ? 'C:\\\\Users\\\\config.json'\n  : '/home/user/config.json';\n
    \n
    See:

    https://nodejs.org/api/process.html#process_process_platform - Node.js process.platform documentation

    \n"},"sources":[{"fileName":"packages/node-utils/src/system/os.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/node-utils/src/system/os.ts","line":41,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-utils/src/system/os.ts#L41"}],"parentId":1790}],"is":{"declaration":true},"location":{"query":"node-utils/src.Function.platform","hash":""},"text":{},"parentId":881} diff --git a/docs/v1.0.0-beta01/data/node-utils/src.Function.pos.json b/docs/v1.0.0-beta01/data/node-utils/src.Function.pos.json new file mode 100644 index 000000000..2dc22e0ed --- /dev/null +++ b/docs/v1.0.0-beta01/data/node-utils/src.Function.pos.json @@ -0,0 +1 @@ +{"id":1862,"name":"postJSON","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/node-utils/src/http/index.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/node-utils/src/http/index.ts","line":178,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-utils/src/http/index.ts#L178"}],"signatures":[{"id":1863,"name":"postJSON","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"postJSON"}]},{"tag":"@description","content":[{"kind":"text","text":"发送POST请求。Sends POST request with JSON data"}]},{"tag":"@returns","content":[{"kind":"text","text":"响应数据。Response data"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\npostJSON('https://api.example.com/users', { name: 'John', email: 'john@example.com' })\n .then(response => console.log(response))\n .catch(err => console.error(err));\n```"}]}]},"parameters":[{"id":1864,"name":"requestUrl","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"请求URL。Request URL"}]},"type":{"type":"intrinsic","name":"string"},"text":{"comment":"

    请求URL。Request URL

    \n"}},{"id":1865,"name":"data","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"要发送的数据。Data to send"}]},"type":{"type":"intrinsic","name":"any"},"text":{"comment":"

    要发送的数据。Data to send

    \n"}}],"type":{"type":"reference","typeArguments":[{"type":"intrinsic","name":"any"}],"name":"Promise","qualifiedName":"Promise","package":"typescript"},"is":{"declaration":false},"location":{"query":"node-utils/src.Function.postJSON","hash":"postJSON"},"text":{"comment":"
    Function:

    postJSON

    \n
    Description:

    发送POST请求。Sends POST request with JSON data

    \n
    Returns:

    响应数据。Response data

    \n
    Example:
    postJSON('https://api.example.com/users', { name: 'John', email: 'john@example.com' })\n  .then(response => console.log(response))\n  .catch(err => console.error(err));\n
    \n"},"sources":[{"fileName":"packages/node-utils/src/http/index.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/node-utils/src/http/index.ts","line":178,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-utils/src/http/index.ts#L178"}],"parentId":1862}],"is":{"declaration":true},"location":{"query":"node-utils/src.Function.postJSON","hash":""},"text":{},"parentId":881} diff --git a/docs/v1.0.0-beta01/data/node-utils/src.Function.processUptime.json b/docs/v1.0.0-beta01/data/node-utils/src.Function.processUptime.json new file mode 100644 index 000000000..32e91cf2c --- /dev/null +++ b/docs/v1.0.0-beta01/data/node-utils/src.Function.processUptime.json @@ -0,0 +1 @@ +{"id":1796,"name":"processUptime","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/node-utils/src/system/os.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/node-utils/src/system/os.ts","line":115,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-utils/src/system/os.ts#L115"}],"signatures":[{"id":1797,"name":"processUptime","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"processUptime"}]},{"tag":"@description","content":[{"kind":"text","text":"获取Node.js进程从启动以来的运行时间(秒)。Gets the Node.js process uptime in seconds since the process started for application monitoring."}]},{"tag":"@returns","content":[{"kind":"text","text":"进程运行时间(秒)。Process uptime in seconds"}]},{"tag":"@example","content":[{"kind":"text","text":"// Log application runtime\nconst runtime = processUptime();\nconsole.log("},{"kind":"code","text":"`Application has been running for ${runtime.toFixed(2)} seconds`"},{"kind":"text","text":");"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Performance monitoring and restart logic\nif (processUptime() > 86400) { // 24 hours\n console.log('Process has been running for over 24 hours, consider restart');\n}\n```"}]},{"tag":"@example","content":[{"kind":"text","text":"// Calculate startup time\nsetTimeout(() => {\n console.log("},{"kind":"code","text":"`Application startup took ${processUptime()} seconds`"},{"kind":"text","text":");\n}, 0);"}]},{"tag":"@since","content":[{"kind":"text","text":"1.0.0"}]},{"tag":"@see","content":[{"kind":"inline-tag","tag":"@link","text":"https://nodejs.org/api/process.html#process_process_uptime","target":"https://nodejs.org/api/process.html#process_process_uptime"},{"kind":"text","text":" - Node.js process.uptime() documentation"}]}]},"type":{"type":"intrinsic","name":"number"},"is":{"declaration":false},"location":{"query":"node-utils/src.Function.processUptime","hash":"processUptime"},"text":{"comment":"
    Function:

    processUptime

    \n
    Description:

    获取Node.js进程从启动以来的运行时间(秒)。Gets the Node.js process uptime in seconds since the process started for application monitoring.

    \n
    Returns:

    进程运行时间(秒)。Process uptime in seconds

    \n
    Example:

    // Log application runtime\nconst runtime = processUptime();\nconsole.log(Application has been running for ${runtime.toFixed(2)} seconds);

    \n
    Example:
    // Performance monitoring and restart logic\nif (processUptime() > 86400) { // 24 hours\n  console.log('Process has been running for over 24 hours, consider restart');\n}\n
    \n
    Example:

    // Calculate startup time\nsetTimeout(() => {\n console.log(Application startup took ${processUptime()} seconds);\n}, 0);

    \n
    Since:

    1.0.0

    \n
    See:

    https://nodejs.org/api/process.html#process_process_uptime - Node.js process.uptime() documentation

    \n"},"sources":[{"fileName":"packages/node-utils/src/system/os.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/node-utils/src/system/os.ts","line":115,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-utils/src/system/os.ts#L115"}],"parentId":1796}],"is":{"declaration":true},"location":{"query":"node-utils/src.Function.processUptime","hash":""},"text":{},"parentId":881} diff --git a/docs/v1.0.0-beta01/data/node-utils/src.Function.readFileSync.json b/docs/v1.0.0-beta01/data/node-utils/src.Function.readFileSync.json new file mode 100644 index 000000000..ca7a6df0d --- /dev/null +++ b/docs/v1.0.0-beta01/data/node-utils/src.Function.readFileSync.json @@ -0,0 +1 @@ +{"id":1725,"name":"readFileSync","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/node-utils/src/fs/fsFuncs.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/node-utils/src/fs/fsFuncs.ts","line":317,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-utils/src/fs/fsFuncs.ts#L317"}],"signatures":[{"id":1726,"name":"readFileSync","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"readFileSync"}]},{"tag":"@description","content":[{"kind":"text","text":"同步读取文件内容为UTF-8字符串。Synchronously reads file content as UTF-8 string with automatic existence checking and error handling."}]},{"tag":"@returns","content":[{"kind":"text","text":"文件内容字符串,如果文件不存在则返回空字符串。The file content as string, or empty string if file doesn't exist"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Read configuration file\nconst config = readFileSync('./config.txt');\nif (config) {\n console.log('Config loaded:', config);\n} else {\n console.log('Config file not found');\n}\n```"}]},{"tag":"@example","content":[{"kind":"text","text":"// Read and process text file\nconst content = readFileSync('./data.csv');\nconst lines = content.split('\\n').filter(line => line.trim());\nconsole.log("},{"kind":"code","text":"`Found ${lines.length} data rows`"},{"kind":"text","text":");"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Safe file reading with existence check\nif (fsExistsSync('./readme.md')) {\n const readme = readFileSync('./readme.md');\n console.log(readme.substring(0, 100)); // First 100 characters\n}\n```"}]}]},"parameters":[{"id":1727,"name":"filePath","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"要读取的文件路径。The file path to read from"}]},"type":{"type":"intrinsic","name":"string"},"text":{"comment":"

    要读取的文件路径。The file path to read from

    \n"}}],"type":{"type":"intrinsic","name":"string"},"is":{"declaration":false},"location":{"query":"node-utils/src.Function.readFileSync","hash":"readFileSync"},"text":{"comment":"
    Function:

    readFileSync

    \n
    Description:

    同步读取文件内容为UTF-8字符串。Synchronously reads file content as UTF-8 string with automatic existence checking and error handling.

    \n
    Returns:

    文件内容字符串,如果文件不存在则返回空字符串。The file content as string, or empty string if file doesn't exist

    \n
    Example:
    // Read configuration file\nconst config = readFileSync('./config.txt');\nif (config) {\n  console.log('Config loaded:', config);\n} else {\n  console.log('Config file not found');\n}\n
    \n
    Example:

    // Read and process text file\nconst content = readFileSync('./data.csv');\nconst lines = content.split('\\n').filter(line => line.trim());\nconsole.log(Found ${lines.length} data rows);

    \n
    Example:
    // Safe file reading with existence check\nif (fsExistsSync('./readme.md')) {\n  const readme = readFileSync('./readme.md');\n  console.log(readme.substring(0, 100)); // First 100 characters\n}\n
    \n"},"sources":[{"fileName":"packages/node-utils/src/fs/fsFuncs.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/node-utils/src/fs/fsFuncs.ts","line":317,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-utils/src/fs/fsFuncs.ts#L317"}],"parentId":1725}],"is":{"declaration":true},"location":{"query":"node-utils/src.Function.readFileSync","hash":""},"text":{},"parentId":881} diff --git a/docs/v1.0.0-beta01/data/node-utils/src.Function.readJsonFile.json b/docs/v1.0.0-beta01/data/node-utils/src.Function.readJsonFile.json new file mode 100644 index 000000000..205ebc700 --- /dev/null +++ b/docs/v1.0.0-beta01/data/node-utils/src.Function.readJsonFile.json @@ -0,0 +1 @@ +{"id":1728,"name":"readJsonFile","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/node-utils/src/fs/fsFuncs.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/node-utils/src/fs/fsFuncs.ts","line":351,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-utils/src/fs/fsFuncs.ts#L351"}],"signatures":[{"id":1729,"name":"readJsonFile","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"readJsonFile"}]},{"tag":"@description","content":[{"kind":"text","text":"读取并解析JSON文件,对无效JSON进行错误处理。Reads and parses a JSON file with comprehensive error handling for invalid JSON and missing files."}]},{"tag":"@returns","content":[{"kind":"text","text":"解析的JSON对象,如果文件不存在或解析失败则返回空对象。Parsed JSON object, or empty object if file doesn't exist or parsing fails"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Read configuration JSON\nconst config = readJsonFile('./config.json');\nconsole.log('Server port:', config.port || 3000);\n```"}]},{"tag":"@example","content":[{"kind":"text","text":"// Read package.json safely\nconst pkg = readJsonFile('./package.json');\nif (pkg.name) {\n console.log("},{"kind":"code","text":"`Package: ${pkg.name}@${pkg.version}`"},{"kind":"text","text":");\n} else {\n console.log('Invalid or missing package.json');\n}"}]},{"tag":"@example","content":[{"kind":"text","text":"// Read user data with fallback\nconst userData = readJsonFile('./user-data.json');\nconst users = userData.users || [];\nconsole.log("},{"kind":"code","text":"`Found ${users.length} users`"},{"kind":"text","text":");"}]},{"tag":"@see","content":[{"kind":"inline-tag","tag":"@link","text":"readFileSync","target":1725},{"kind":"text","text":" - Underlying file read function"}]}]},"parameters":[{"id":1730,"name":"filePath","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"要读取的JSON文件路径。The JSON file path to read"}]},"type":{"type":"intrinsic","name":"string"},"text":{"comment":"

    要读取的JSON文件路径。The JSON file path to read

    \n"}}],"type":{"type":"intrinsic","name":"any"},"is":{"declaration":false},"location":{"query":"node-utils/src.Function.readJsonFile","hash":"readJsonFile"},"text":{"comment":"
    Function:

    readJsonFile

    \n
    Description:

    读取并解析JSON文件,对无效JSON进行错误处理。Reads and parses a JSON file with comprehensive error handling for invalid JSON and missing files.

    \n
    Returns:

    解析的JSON对象,如果文件不存在或解析失败则返回空对象。Parsed JSON object, or empty object if file doesn't exist or parsing fails

    \n
    Example:
    // Read configuration JSON\nconst config = readJsonFile('./config.json');\nconsole.log('Server port:', config.port || 3000);\n
    \n
    Example:

    // Read package.json safely\nconst pkg = readJsonFile('./package.json');\nif (pkg.name) {\n console.log(Package: ${pkg.name}@${pkg.version});\n} else {\n console.log('Invalid or missing package.json');\n}

    \n
    Example:

    // Read user data with fallback\nconst userData = readJsonFile('./user-data.json');\nconst users = userData.users || [];\nconsole.log(Found ${users.length} users);

    \n
    See:

    readFileSync - Underlying file read function

    \n"},"sources":[{"fileName":"packages/node-utils/src/fs/fsFuncs.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/node-utils/src/fs/fsFuncs.ts","line":351,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-utils/src/fs/fsFuncs.ts#L351"}],"parentId":1728}],"is":{"declaration":true},"location":{"query":"node-utils/src.Function.readJsonFile","hash":""},"text":{},"parentId":881} diff --git a/docs/v1.0.0-beta01/data/node-utils/src.Function.rmdirsSync.json b/docs/v1.0.0-beta01/data/node-utils/src.Function.rmdirsSync.json new file mode 100644 index 000000000..9b9944b50 --- /dev/null +++ b/docs/v1.0.0-beta01/data/node-utils/src.Function.rmdirsSync.json @@ -0,0 +1 @@ +{"id":1709,"name":"rmdirsSync","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/node-utils/src/fs/fsFuncs.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/node-utils/src/fs/fsFuncs.ts","line":198,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-utils/src/fs/fsFuncs.ts#L198"}],"signatures":[{"id":1710,"name":"rmdirsSync","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"rmdirsSync"}]},{"tag":"@description","content":[{"kind":"text","text":"同步递归删除目录及其所有内容。Synchronously removes a directory and all its contents recursively with comprehensive error handling."}]},{"tag":"@returns","content":[{"kind":"text","text":"如果删除成功返回true,如果发生错误返回false。True if deletion succeeded, false if an error occurred"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Remove a temporary directory\nconst removed = rmdirsSync('./temp-build');\nif (removed) {\n console.log('Temporary files cleaned up');\n} else {\n console.log('Failed to clean up temporary files');\n}\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Safe cleanup with existence check\nif (fsExistsSync('./old-cache')) {\n rmdirsSync('./old-cache');\n}\n```"}]},{"tag":"@deprecated","content":[{"kind":"text","text":"For Node.js 14+, consider using fs.rmSync with recursive option"}]},{"tag":"@see","content":[{"kind":"inline-tag","tag":"@link","text":"https://nodejs.org/api/fs.html#fs_fs_rmsync_path_options","target":"https://nodejs.org/api/fs.html#fs_fs_rmsync_path_options"},{"kind":"text","text":" - Node.js fs.rmSync documentation"}]}]},"parameters":[{"id":1711,"name":"targetPath","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"要完全删除的目录路径。The directory path to remove completely"}]},"type":{"type":"intrinsic","name":"string"},"text":{"comment":"

    要完全删除的目录路径。The directory path to remove completely

    \n"}}],"type":{"type":"intrinsic","name":"boolean"},"is":{"declaration":false},"location":{"query":"node-utils/src.Function.rmdirsSync","hash":"rmdirsSync"},"text":{"comment":"
    Function:

    rmdirsSync

    \n
    Description:

    同步递归删除目录及其所有内容。Synchronously removes a directory and all its contents recursively with comprehensive error handling.

    \n
    Returns:

    如果删除成功返回true,如果发生错误返回false。True if deletion succeeded, false if an error occurred

    \n
    Example:
    // Remove a temporary directory\nconst removed = rmdirsSync('./temp-build');\nif (removed) {\n  console.log('Temporary files cleaned up');\n} else {\n  console.log('Failed to clean up temporary files');\n}\n
    \n
    Example:
    // Safe cleanup with existence check\nif (fsExistsSync('./old-cache')) {\n  rmdirsSync('./old-cache');\n}\n
    \n
    Deprecated:

    For Node.js 14+, consider using fs.rmSync with recursive option

    \n
    See:

    https://nodejs.org/api/fs.html#fs_fs_rmsync_path_options - Node.js fs.rmSync documentation

    \n"},"sources":[{"fileName":"packages/node-utils/src/fs/fsFuncs.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/node-utils/src/fs/fsFuncs.ts","line":198,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-utils/src/fs/fsFuncs.ts#L198"}],"parentId":1709}],"is":{"declaration":true},"location":{"query":"node-utils/src.Function.rmdirsSync","hash":""},"text":{},"parentId":881} diff --git a/docs/v1.0.0-beta01/data/node-utils/src.Function.runAsync.json b/docs/v1.0.0-beta01/data/node-utils/src.Function.runAsync.json new file mode 100644 index 000000000..3c1631f9e --- /dev/null +++ b/docs/v1.0.0-beta01/data/node-utils/src.Function.runAsync.json @@ -0,0 +1 @@ +{"id":1740,"name":"runAsync","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/node-utils/src/process/run.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/node-utils/src/process/run.ts","line":75,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-utils/src/process/run.ts#L75"}],"signatures":[{"id":1741,"name":"runAsync","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"runAsync"}]},{"tag":"@description","content":[{"kind":"text","text":"异步执行命令,带有综合错误处理和输出捕获。Asynchronously executes a command with comprehensive error handling, timeout support, and flexible output capture options."}]},{"tag":"@returns","content":[{"kind":"text","text":"解析为执行结果的Promise,包含状态码、stdout、stderr和成功状态。Promise resolving to execution result with code, stdout, stderr, and success status"}]},{"tag":"@throws","content":[{"kind":"text","text":"如果命令失败且ignoreFailure为false,或者发生超时则拒绝。Rejects if command fails and ignoreFailure is false, or if timeout occurs"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Basic command execution\ntry {\n const result = await runAsync('ls', ['-la']);\n console.log('Directory listing:', result.stdout);\n} catch (error) {\n console.error('Command failed:', error.message);\n}\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Command with timeout and output capture\nconst result = await runAsync('npm', ['install'], {\n timeout: 30000, // 30 second timeout\n captureStdout: true, // Capture output\n ignoreFailure: false, // Throw on failure\n cwd: './project' // Working directory\n});\n```"}]},{"tag":"@example","content":[{"kind":"text","text":"// Capture output as lines\nconst result = await runAsync('git', ['log', '--oneline'], {\n captureStdout: 'lines'\n});\nconsole.log("},{"kind":"code","text":"`Found ${result.stdout.length} commits`"},{"kind":"text","text":");"}]},{"tag":"@since","content":[{"kind":"text","text":"1.0.0"}]},{"tag":"@see","content":[{"kind":"text","text":" - "},{"kind":"inline-tag","tag":"@link","text":"runSync","target":1754},{"kind":"text","text":" - Synchronous command execution"},{"kind":"text","text":"\n"},{"kind":"text","text":" - "},{"kind":"inline-tag","tag":"@link","text":"forceRunAsync","target":1745},{"kind":"text","text":" - Async execution with error suppression"},{"kind":"text","text":"\n"}]}]},"parameters":[{"id":1742,"name":"cmd","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"要执行的命令或文件URL。Command to execute or file URL"}]},"type":{"type":"union","types":[{"type":"intrinsic","name":"string"},{"type":"reference","name":"URL","qualifiedName":"URL","package":"@types/node"}]},"text":{"comment":"

    要执行的命令或文件URL。Command to execute or file URL

    \n"}},{"id":1743,"name":"args","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"命令参数数组。Array of command arguments"}]},"type":{"type":"array","elementType":{"type":"intrinsic","name":"string"}},"defaultValue":"[]","text":{"comment":"

    命令参数数组。Array of command arguments

    \n"}},{"id":1744,"name":"options","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"执行选项,包括超时、输出捕获和失败处理。Execution options including timeout, output capture, and failure handling"}]},"type":{"type":"reference","id":1762,"name":"RunOptions"},"defaultValue":"{}","text":{"comment":"

    执行选项,包括超时、输出捕获和失败处理。Execution options including timeout, output capture, and failure handling

    \n"}}],"type":{"type":"reference","typeArguments":[{"type":"reference","id":1779,"name":"RunResult"}],"name":"Promise","qualifiedName":"Promise","package":"typescript"},"is":{"declaration":false},"location":{"query":"node-utils/src.Function.runAsync","hash":"runAsync"},"text":{"comment":"
    Function:

    runAsync

    \n
    Description:

    异步执行命令,带有综合错误处理和输出捕获。Asynchronously executes a command with comprehensive error handling, timeout support, and flexible output capture options.

    \n
    Returns:

    解析为执行结果的Promise,包含状态码、stdout、stderr和成功状态。Promise resolving to execution result with code, stdout, stderr, and success status

    \n
    Throws:

    如果命令失败且ignoreFailure为false,或者发生超时则拒绝。Rejects if command fails and ignoreFailure is false, or if timeout occurs

    \n
    Example:
    // Basic command execution\ntry {\n  const result = await runAsync('ls', ['-la']);\n  console.log('Directory listing:', result.stdout);\n} catch (error) {\n  console.error('Command failed:', error.message);\n}\n
    \n
    Example:
    // Command with timeout and output capture\nconst result = await runAsync('npm', ['install'], {\n  timeout: 30000,        // 30 second timeout\n  captureStdout: true,   // Capture output\n  ignoreFailure: false,  // Throw on failure\n  cwd: './project'       // Working directory\n});\n
    \n
    Example:

    // Capture output as lines\nconst result = await runAsync('git', ['log', '--oneline'], {\n captureStdout: 'lines'\n});\nconsole.log(Found ${result.stdout.length} commits);

    \n
    Since:

    1.0.0

    \n
    See:
    \n"},"sources":[{"fileName":"packages/node-utils/src/process/run.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/node-utils/src/process/run.ts","line":75,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-utils/src/process/run.ts#L75"}],"parentId":1740}],"is":{"declaration":true},"location":{"query":"node-utils/src.Function.runAsync","hash":""},"text":{},"parentId":881} diff --git a/docs/v1.0.0-beta01/data/node-utils/src.Function.runPromise.json b/docs/v1.0.0-beta01/data/node-utils/src.Function.runPromise.json new file mode 100644 index 000000000..dafb71f05 --- /dev/null +++ b/docs/v1.0.0-beta01/data/node-utils/src.Function.runPromise.json @@ -0,0 +1 @@ +{"id":1750,"name":"runPromise","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/node-utils/src/process/run.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/node-utils/src/process/run.ts","line":232,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-utils/src/process/run.ts#L232"}],"signatures":[{"id":1751,"name":"runPromise","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"runPromise"}]},{"tag":"@description","content":[{"kind":"text","text":"包装Promise并处理错误,在非忽略错误时退出进程。Wraps a promise with error handling that exits the process on non-ignored errors for critical operations."}]},{"tag":"@returns","content":[{"kind":"text","text":"在错误时退出进程或返回结果的Promise。Promise that exits process on error or returns result"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Critical operation that should exit on failure\nawait runPromise(\n runAsync('npm', ['run', 'build'])\n);\n// Process will exit if build fails\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Database migration that must succeed\nawait runPromise(\n runAsync('npm', ['run', 'migrate'])\n);\nconsole.log('Migration completed successfully');\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Chain critical operations\nawait runPromise(runAsync('git', ['pull']));\nawait runPromise(runAsync('npm', ['install']));\nawait runPromise(runAsync('npm', ['run', 'deploy']));\n```"}]},{"tag":"@since","content":[{"kind":"text","text":"1.0.0"}]},{"tag":"@see","content":[{"kind":"text","text":" - "},{"kind":"inline-tag","tag":"@link","text":"exit","target":1759},{"kind":"text","text":" - Process exit function"},{"kind":"text","text":"\n"},{"kind":"text","text":" - "},{"kind":"inline-tag","tag":"@link","text":"IGNORE","target":1761},{"kind":"text","text":" - Special error message for ignored failures"},{"kind":"text","text":"\n"}]}]},"typeParameter":[{"id":1752,"name":"T","kind":131072,"kindString":"Type parameter","flags":{}}],"parameters":[{"id":1753,"name":"promise","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"要包装的带有错误处理的Promise。Promise to wrap with error handling"}]},"type":{"type":"reference","typeArguments":[{"type":"reference","id":1752,"name":"T"}],"name":"Promise","qualifiedName":"Promise","package":"typescript"},"text":{"comment":"

    要包装的带有错误处理的Promise。Promise to wrap with error handling

    \n"}}],"type":{"type":"reference","typeArguments":[{"type":"union","types":[{"type":"reference","id":1752,"name":"T"},{"type":"intrinsic","name":"void"}]}],"name":"Promise","qualifiedName":"Promise","package":"typescript"},"is":{"declaration":false},"location":{"query":"node-utils/src.Function.runPromise","hash":"runPromise"},"text":{"comment":"
    Function:

    runPromise

    \n
    Description:

    包装Promise并处理错误,在非忽略错误时退出进程。Wraps a promise with error handling that exits the process on non-ignored errors for critical operations.

    \n
    Returns:

    在错误时退出进程或返回结果的Promise。Promise that exits process on error or returns result

    \n
    Example:
    // Critical operation that should exit on failure\nawait runPromise(\n  runAsync('npm', ['run', 'build'])\n);\n// Process will exit if build fails\n
    \n
    Example:
    // Database migration that must succeed\nawait runPromise(\n  runAsync('npm', ['run', 'migrate'])\n);\nconsole.log('Migration completed successfully');\n
    \n
    Example:
    // Chain critical operations\nawait runPromise(runAsync('git', ['pull']));\nawait runPromise(runAsync('npm', ['install']));\nawait runPromise(runAsync('npm', ['run', 'deploy']));\n
    \n
    Since:

    1.0.0

    \n
    See:
    \n"},"sources":[{"fileName":"packages/node-utils/src/process/run.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/node-utils/src/process/run.ts","line":232,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-utils/src/process/run.ts#L232"}],"parentId":1750}],"is":{"declaration":true},"location":{"query":"node-utils/src.Function.runPromise","hash":""},"text":{},"parentId":881} diff --git a/docs/v1.0.0-beta01/data/node-utils/src.Function.runSync.json b/docs/v1.0.0-beta01/data/node-utils/src.Function.runSync.json new file mode 100644 index 000000000..76f614d57 --- /dev/null +++ b/docs/v1.0.0-beta01/data/node-utils/src.Function.runSync.json @@ -0,0 +1 @@ +{"id":1754,"name":"runSync","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/node-utils/src/process/run.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/node-utils/src/process/run.ts","line":277,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-utils/src/process/run.ts#L277"}],"signatures":[{"id":1755,"name":"runSync","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"runSync"}]},{"tag":"@description","content":[{"kind":"text","text":"同步执行命令并立即返回结果。Synchronously executes a command and returns the result immediately with comprehensive error handling."}]},{"tag":"@returns","content":[{"kind":"text","text":"包含状态码、stdout、stderr和成功状态的执行结果。Execution result with code, stdout, stderr, and success status"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Quick synchronous command\nconst result = runSync('git', ['rev-parse', 'HEAD']);\nif (result.success) {\n console.log('Current commit:', result.stdout.trim());\n} else {\n console.error('Failed to get commit hash:', result.stderr);\n}\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Check tool availability\nconst dockerCheck = runSync('docker', ['--version']);\nif (dockerCheck.success) {\n console.log('Docker is available');\n} else {\n console.log('Docker not found, skipping containerization');\n}\n```"}]},{"tag":"@example","content":[{"kind":"text","text":"// Environment setup validation\nconst nodeVersion = runSync('node', ['--version']);\nconst npmVersion = runSync('npm', ['--version']);\n\nconsole.log("},{"kind":"code","text":"`Node: ${nodeVersion.stdout.trim()}`"},{"kind":"text","text":");\nconsole.log("},{"kind":"code","text":"`NPM: ${npmVersion.stdout.trim()}`"},{"kind":"text","text":");"}]},{"tag":"@since","content":[{"kind":"text","text":"1.0.0"}]},{"tag":"@see","content":[{"kind":"inline-tag","tag":"@link","text":"runAsync","target":1740},{"kind":"text","text":" - Asynchronous command execution"}]}]},"parameters":[{"id":1756,"name":"cmd","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"要执行的命令或文件URL。Command to execute or file URL"}]},"type":{"type":"union","types":[{"type":"intrinsic","name":"string"},{"type":"reference","name":"URL","qualifiedName":"URL","package":"@types/node"}]},"text":{"comment":"

    要执行的命令或文件URL。Command to execute or file URL

    \n"}},{"id":1757,"name":"args","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"命令参数数组。Array of command arguments"}]},"type":{"type":"array","elementType":{"type":"intrinsic","name":"string"}},"defaultValue":"[]","text":{"comment":"

    命令参数数组。Array of command arguments

    \n"}},{"id":1758,"name":"options","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"同步执行选项。Synchronous execution options"}]},"type":{"type":"reference","name":"SpawnSyncOptions","qualifiedName":"SpawnSyncOptions","package":"@types/node"},"defaultValue":"{}","text":{"comment":"

    同步执行选项。Synchronous execution options

    \n"}}],"type":{"type":"reference","id":1779,"name":"RunResult"},"is":{"declaration":false},"location":{"query":"node-utils/src.Function.runSync","hash":"runSync"},"text":{"comment":"
    Function:

    runSync

    \n
    Description:

    同步执行命令并立即返回结果。Synchronously executes a command and returns the result immediately with comprehensive error handling.

    \n
    Returns:

    包含状态码、stdout、stderr和成功状态的执行结果。Execution result with code, stdout, stderr, and success status

    \n
    Example:
    // Quick synchronous command\nconst result = runSync('git', ['rev-parse', 'HEAD']);\nif (result.success) {\n  console.log('Current commit:', result.stdout.trim());\n} else {\n  console.error('Failed to get commit hash:', result.stderr);\n}\n
    \n
    Example:
    // Check tool availability\nconst dockerCheck = runSync('docker', ['--version']);\nif (dockerCheck.success) {\n  console.log('Docker is available');\n} else {\n  console.log('Docker not found, skipping containerization');\n}\n
    \n
    Example:

    // Environment setup validation\nconst nodeVersion = runSync('node', ['--version']);\nconst npmVersion = runSync('npm', ['--version']);

    \n

    console.log(Node: ${nodeVersion.stdout.trim()});\nconsole.log(NPM: ${npmVersion.stdout.trim()});

    \n
    Since:

    1.0.0

    \n
    See:

    runAsync - Asynchronous command execution

    \n"},"sources":[{"fileName":"packages/node-utils/src/process/run.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/node-utils/src/process/run.ts","line":277,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-utils/src/process/run.ts#L277"}],"parentId":1754}],"is":{"declaration":true},"location":{"query":"node-utils/src.Function.runSync","hash":""},"text":{},"parentId":881} diff --git a/docs/v1.0.0-beta01/data/node-utils/src.Function.serveStatic.json b/docs/v1.0.0-beta01/data/node-utils/src.Function.serveStatic.json new file mode 100644 index 000000000..c338a83b8 --- /dev/null +++ b/docs/v1.0.0-beta01/data/node-utils/src.Function.serveStatic.json @@ -0,0 +1 @@ +{"id":1895,"name":"serveStatic","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/node-utils/src/http/index.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/node-utils/src/http/index.ts","line":421,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-utils/src/http/index.ts#L421"}],"signatures":[{"id":1896,"name":"serveStatic","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"serveStatic"}]},{"tag":"@description","content":[{"kind":"text","text":"创建静态文件服务器。Creates static file server"}]},{"tag":"@returns","content":[{"kind":"text","text":"HTTP服务器实例。HTTP server instance"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\nconst server = serveStatic('./public', 3000);\n```"}]}]},"parameters":[{"id":1897,"name":"rootDir","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"根目录。Root directory"}]},"type":{"type":"intrinsic","name":"string"},"text":{"comment":"

    根目录。Root directory

    \n"}},{"id":1898,"name":"port","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"端口号。Port number"}]},"type":{"type":"intrinsic","name":"number"},"text":{"comment":"

    端口号。Port number

    \n"}}],"type":{"type":"reference","name":"http.Server","qualifiedName":"Server","package":"@types/node"},"is":{"declaration":false},"location":{"query":"node-utils/src.Function.serveStatic","hash":"serveStatic"},"text":{"comment":"
    Function:

    serveStatic

    \n
    Description:

    创建静态文件服务器。Creates static file server

    \n
    Returns:

    HTTP服务器实例。HTTP server instance

    \n
    Example:
    const server = serveStatic('./public', 3000);\n
    \n"},"sources":[{"fileName":"packages/node-utils/src/http/index.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/node-utils/src/http/index.ts","line":421,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-utils/src/http/index.ts#L421"}],"parentId":1895}],"is":{"declaration":true},"location":{"query":"node-utils/src.Function.serveStatic","hash":""},"text":{},"parentId":881} diff --git a/docs/v1.0.0-beta01/data/node-utils/src.Function.setFolderSync.json b/docs/v1.0.0-beta01/data/node-utils/src.Function.setFolderSync.json new file mode 100644 index 000000000..33f1a146d --- /dev/null +++ b/docs/v1.0.0-beta01/data/node-utils/src.Function.setFolderSync.json @@ -0,0 +1 @@ +{"id":1705,"name":"setFolderSync","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/node-utils/src/fs/fsFuncs.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/node-utils/src/fs/fsFuncs.ts","line":167,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-utils/src/fs/fsFuncs.ts#L167"}],"signatures":[{"id":1706,"name":"setFolderSync","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"setFolderSync"}]},{"tag":"@description","content":[{"kind":"text","text":"同步确保文件夹存在,必要时创建它。Synchronously ensures a folder exists, creating it if necessary with optional console output control."}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Create folder with console feedback\nsetFolderSync('./output');\n// Logs: \"(./output folder existed.)\" if folder exists\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Create folder silently\nsetFolderSync('./temp', true);\n// No console output regardless of folder state\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Ensure upload directory exists before file operations\nsetFolderSync('./uploads');\n// Now safe to write files to ./uploads/\n```"}]},{"tag":"@see","content":[{"kind":"inline-tag","tag":"@link","text":"mkdirsSync","target":1699},{"kind":"text","text":" - For more control over directory creation"}]}]},"parameters":[{"id":1707,"name":"folderPath","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"要创建或验证的文件夹路径。The folder path to create or verify"}]},"type":{"type":"intrinsic","name":"string"},"text":{"comment":"

    要创建或验证的文件夹路径。The folder path to create or verify

    \n"}},{"id":1708,"name":"noTip","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"如果为true,当文件夹已存在时抑制控制台输出。If true, suppresses console output when folder already exists"}]},"type":{"type":"intrinsic","name":"boolean"},"defaultValue":"false","text":{"comment":"

    如果为true,当文件夹已存在时抑制控制台输出。If true, suppresses console output when folder already exists

    \n"}}],"type":{"type":"intrinsic","name":"void"},"is":{"declaration":false},"location":{"query":"node-utils/src.Function.setFolderSync","hash":"setFolderSync"},"text":{"comment":"
    Function:

    setFolderSync

    \n
    Description:

    同步确保文件夹存在,必要时创建它。Synchronously ensures a folder exists, creating it if necessary with optional console output control.

    \n
    Example:
    // Create folder with console feedback\nsetFolderSync('./output');\n// Logs: \"(./output folder existed.)\" if folder exists\n
    \n
    Example:
    // Create folder silently\nsetFolderSync('./temp', true);\n// No console output regardless of folder state\n
    \n
    Example:
    // Ensure upload directory exists before file operations\nsetFolderSync('./uploads');\n// Now safe to write files to ./uploads/\n
    \n
    See:

    mkdirsSync - For more control over directory creation

    \n"},"sources":[{"fileName":"packages/node-utils/src/fs/fsFuncs.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/node-utils/src/fs/fsFuncs.ts","line":167,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-utils/src/fs/fsFuncs.ts#L167"}],"parentId":1705}],"is":{"declaration":true},"location":{"query":"node-utils/src.Function.setFolderSync","hash":""},"text":{},"parentId":881} diff --git a/docs/v1.0.0-beta01/data/node-utils/src.Function.stringifyCSV.json b/docs/v1.0.0-beta01/data/node-utils/src.Function.stringifyCSV.json new file mode 100644 index 000000000..83649ab1f --- /dev/null +++ b/docs/v1.0.0-beta01/data/node-utils/src.Function.stringifyCSV.json @@ -0,0 +1 @@ +{"id":1907,"name":"stringifyCSV","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/node-utils/src/data/index.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/node-utils/src/data/index.ts","line":89,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-utils/src/data/index.ts#L89"}],"signatures":[{"id":1908,"name":"stringifyCSV","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"stringifyCSV"}]},{"tag":"@description","content":[{"kind":"text","text":"将对象数组转换为CSV字符串。Converts an array of objects to CSV string"}]},{"tag":"@returns","content":[{"kind":"text","text":"CSV字符串。CSV string"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\nconst data = [{ name: 'John', age: 25 }, { name: 'Jane', age: 30 }];\nconst csv = stringifyCSV(data);\n// -> 'name,age\\nJohn,25\\nJane,30'\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\nconst data = [{ id: 1, active: true }];\nstringifyCSV(data, ';');\n// -> 'id;active\\n1;true'\n```"}]}]},"parameters":[{"id":1909,"name":"data","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"对象数组。Array of objects"}]},"type":{"type":"array","elementType":{"type":"reference","typeArguments":[{"type":"intrinsic","name":"string"},{"type":"intrinsic","name":"unknown"}],"name":"Record","qualifiedName":"Record","package":"typescript"}},"text":{"comment":"

    对象数组。Array of objects

    \n"}},{"id":1910,"name":"delimiter","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"分隔符(默认: ',')。Delimiter (default: ',')"}]},"type":{"type":"intrinsic","name":"string"},"defaultValue":"','","text":{"comment":"

    分隔符(默认: ',')。Delimiter (default: ',')

    \n"}}],"type":{"type":"intrinsic","name":"string"},"is":{"declaration":false},"location":{"query":"node-utils/src.Function.stringifyCSV","hash":"stringifyCSV"},"text":{"comment":"
    Function:

    stringifyCSV

    \n
    Description:

    将对象数组转换为CSV字符串。Converts an array of objects to CSV string

    \n
    Returns:

    CSV字符串。CSV string

    \n
    Example:
    const data = [{ name: 'John', age: 25 }, { name: 'Jane', age: 30 }];\nconst csv = stringifyCSV(data);\n// -> 'name,age\\nJohn,25\\nJane,30'\n
    \n
    Example:
    const data = [{ id: 1, active: true }];\nstringifyCSV(data, ';');\n// -> 'id;active\\n1;true'\n
    \n"},"sources":[{"fileName":"packages/node-utils/src/data/index.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/node-utils/src/data/index.ts","line":89,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-utils/src/data/index.ts#L89"}],"parentId":1907}],"is":{"declaration":true},"location":{"query":"node-utils/src.Function.stringifyCSV","hash":""},"text":{},"parentId":881} diff --git a/docs/v1.0.0-beta01/data/node-utils/src.Function.stringifyXML.json b/docs/v1.0.0-beta01/data/node-utils/src.Function.stringifyXML.json new file mode 100644 index 000000000..d4f5e03bb --- /dev/null +++ b/docs/v1.0.0-beta01/data/node-utils/src.Function.stringifyXML.json @@ -0,0 +1 @@ +{"id":1911,"name":"stringifyXML","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/node-utils/src/data/index.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/node-utils/src/data/index.ts","line":132,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-utils/src/data/index.ts#L132"}],"signatures":[{"id":1912,"name":"stringifyXML","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"stringifyXML"}]},{"tag":"@description","content":[{"kind":"text","text":"将对象转换为XML字符串。Converts an object to XML string"}]},{"tag":"@returns","content":[{"kind":"text","text":"XML字符串。XML string"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\nconst xml = stringifyXML({ name: 'John', age: 25 });\n// -> 'John25'\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\nconst xml = stringifyXML([{ id: 1 }, { id: 2 }], 'items');\n// -> '12'\n```"}]}]},"parameters":[{"id":1913,"name":"data","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"输入对象或数组。Input object or array"}]},"type":{"type":"union","types":[{"type":"array","elementType":{"type":"intrinsic","name":"unknown"}},{"type":"reference","typeArguments":[{"type":"intrinsic","name":"string"},{"type":"intrinsic","name":"unknown"}],"name":"Record","qualifiedName":"Record","package":"typescript"}]},"text":{"comment":"

    输入对象或数组。Input object or array

    \n"}},{"id":1914,"name":"rootName","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"根节点名称。Root node name"}]},"type":{"type":"intrinsic","name":"string"},"defaultValue":"'root'","text":{"comment":"

    根节点名称。Root node name

    \n"}}],"type":{"type":"intrinsic","name":"string"},"is":{"declaration":false},"location":{"query":"node-utils/src.Function.stringifyXML","hash":"stringifyXML"},"text":{"comment":"
    Function:

    stringifyXML

    \n
    Description:

    将对象转换为XML字符串。Converts an object to XML string

    \n
    Returns:

    XML字符串。XML string

    \n
    Example:
    const xml = stringifyXML({ name: 'John', age: 25 });\n// -> '<root><name>John</name><age>25</age></root>'\n
    \n
    Example:
    const xml = stringifyXML([{ id: 1 }, { id: 2 }], 'items');\n// -> '<items><item><id>1</id></item><item><id>2</id></item></items>'\n
    \n"},"sources":[{"fileName":"packages/node-utils/src/data/index.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/node-utils/src/data/index.ts","line":132,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-utils/src/data/index.ts#L132"}],"parentId":1911}],"is":{"declaration":true},"location":{"query":"node-utils/src.Function.stringifyXML","hash":""},"text":{},"parentId":881} diff --git a/docs/v1.0.0-beta01/data/node-utils/src.Function.sysUptime.json b/docs/v1.0.0-beta01/data/node-utils/src.Function.sysUptime.json new file mode 100644 index 000000000..d8414b700 --- /dev/null +++ b/docs/v1.0.0-beta01/data/node-utils/src.Function.sysUptime.json @@ -0,0 +1 @@ +{"id":1794,"name":"sysUptime","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/node-utils/src/system/os.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/node-utils/src/system/os.ts","line":86,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-utils/src/system/os.ts#L86"}],"signatures":[{"id":1795,"name":"sysUptime","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"sysUptime"}]},{"tag":"@description","content":[{"kind":"text","text":"获取系统从上次启动以来的运行时间(秒)。Gets the system uptime in seconds since last boot for system stability monitoring."}]},{"tag":"@returns","content":[{"kind":"text","text":"系统运行时间(秒)。System uptime in seconds"}]},{"tag":"@example","content":[{"kind":"text","text":"// Display human-readable uptime\nconst uptime = sysUptime();\nconst days = Math.floor(uptime / 86400);\nconst hours = Math.floor((uptime % 86400) / 3600);\nconsole.log("},{"kind":"code","text":"`System uptime: ${days} days, ${hours} hours`"},{"kind":"text","text":");"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Check if system recently rebooted\nif (sysUptime() < 3600) {\n console.log('System was recently rebooted (less than 1 hour ago)');\n}\n```"}]},{"tag":"@since","content":[{"kind":"text","text":"1.0.0"}]},{"tag":"@see","content":[{"kind":"inline-tag","tag":"@link","text":"https://nodejs.org/api/os.html#os_os_uptime","target":"https://nodejs.org/api/os.html#os_os_uptime"},{"kind":"text","text":" - Node.js os.uptime() documentation"}]}]},"type":{"type":"intrinsic","name":"number"},"is":{"declaration":false},"location":{"query":"node-utils/src.Function.sysUptime","hash":"sysUptime"},"text":{"comment":"
    Function:

    sysUptime

    \n
    Description:

    获取系统从上次启动以来的运行时间(秒)。Gets the system uptime in seconds since last boot for system stability monitoring.

    \n
    Returns:

    系统运行时间(秒)。System uptime in seconds

    \n
    Example:

    // Display human-readable uptime\nconst uptime = sysUptime();\nconst days = Math.floor(uptime / 86400);\nconst hours = Math.floor((uptime % 86400) / 3600);\nconsole.log(System uptime: ${days} days, ${hours} hours);

    \n
    Example:
    // Check if system recently rebooted\nif (sysUptime() < 3600) {\n  console.log('System was recently rebooted (less than 1 hour ago)');\n}\n
    \n
    Since:

    1.0.0

    \n
    See:

    https://nodejs.org/api/os.html#os_os_uptime - Node.js os.uptime() documentation

    \n"},"sources":[{"fileName":"packages/node-utils/src/system/os.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/node-utils/src/system/os.ts","line":86,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-utils/src/system/os.ts#L86"}],"parentId":1794}],"is":{"declaration":true},"location":{"query":"node-utils/src.Function.sysUptime","hash":""},"text":{},"parentId":881} diff --git a/docs/v1.0.0-beta01/data/node-utils/src.Function.totalmem.json b/docs/v1.0.0-beta01/data/node-utils/src.Function.totalmem.json new file mode 100644 index 000000000..fc9337a3f --- /dev/null +++ b/docs/v1.0.0-beta01/data/node-utils/src.Function.totalmem.json @@ -0,0 +1 @@ +{"id":1800,"name":"totalmem","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/node-utils/src/system/os.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/node-utils/src/system/os.ts","line":166,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-utils/src/system/os.ts#L166"}],"signatures":[{"id":1801,"name":"totalmem","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"totalmem"}]},{"tag":"@description","content":[{"kind":"text","text":"获取系统总内存量(MB)。Gets the total amount of system memory in megabytes for system capacity planning."}]},{"tag":"@returns","content":[{"kind":"text","text":"总内存(MB)。Total memory in MB"}]},{"tag":"@example","content":[{"kind":"text","text":"// System specifications\nconst totalMemMB = totalmem();\nconsole.log("},{"kind":"code","text":"`Total system memory: ${totalMemMB.toFixed(2)} MB`"},{"kind":"text","text":");"}]},{"tag":"@example","content":[{"kind":"text","text":"// Memory-based configuration\nconst maxWorkers = Math.floor(totalmem() / 1024); // 1 worker per GB\nconsole.log("},{"kind":"code","text":"`Configuring ${maxWorkers} workers based on ${totalMemMB} MB RAM`"},{"kind":"text","text":");"}]},{"tag":"@since","content":[{"kind":"text","text":"1.0.0"}]},{"tag":"@see","content":[{"kind":"text","text":" - "},{"kind":"inline-tag","tag":"@link","text":"freemem","target":1798},{"kind":"text","text":" - Get free system memory"},{"kind":"text","text":"\n"},{"kind":"text","text":" - "},{"kind":"inline-tag","tag":"@link","text":"https://nodejs.org/api/os.html#os_os_totalmem","target":"https://nodejs.org/api/os.html#os_os_totalmem"},{"kind":"text","text":" - Node.js os.totalmem() documentation"},{"kind":"text","text":"\n"}]}]},"type":{"type":"intrinsic","name":"number"},"is":{"declaration":false},"location":{"query":"node-utils/src.Function.totalmem","hash":"totalmem"},"text":{"comment":"
    Function:

    totalmem

    \n
    Description:

    获取系统总内存量(MB)。Gets the total amount of system memory in megabytes for system capacity planning.

    \n
    Returns:

    总内存(MB)。Total memory in MB

    \n
    Example:

    // System specifications\nconst totalMemMB = totalmem();\nconsole.log(Total system memory: ${totalMemMB.toFixed(2)} MB);

    \n
    Example:

    // Memory-based configuration\nconst maxWorkers = Math.floor(totalmem() / 1024); // 1 worker per GB\nconsole.log(Configuring ${maxWorkers} workers based on ${totalMemMB} MB RAM);

    \n
    Since:

    1.0.0

    \n
    See:
    \n"},"sources":[{"fileName":"packages/node-utils/src/system/os.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/node-utils/src/system/os.ts","line":166,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-utils/src/system/os.ts#L166"}],"parentId":1800}],"is":{"declaration":true},"location":{"query":"node-utils/src.Function.totalmem","hash":""},"text":{},"parentId":881} diff --git a/docs/v1.0.0-beta01/data/node-utils/src.Function.travelFolderSync.json b/docs/v1.0.0-beta01/data/node-utils/src.Function.travelFolderSync.json new file mode 100644 index 000000000..b9795ec1a --- /dev/null +++ b/docs/v1.0.0-beta01/data/node-utils/src.Function.travelFolderSync.json @@ -0,0 +1 @@ +{"id":1688,"name":"travelFolderSync","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/node-utils/src/fs/fsFuncs.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/node-utils/src/fs/fsFuncs.ts","line":41,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-utils/src/fs/fsFuncs.ts#L41"}],"signatures":[{"id":1689,"name":"travelFolderSync","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"travelFolderSync"}]},{"tag":"@description","content":[{"kind":"text","text":"递归遍历目录并对文件和文件夹执行回调函数。Recursively traverses a directory and executes callbacks for files and folders with comprehensive error handling."}]},{"tag":"@throws","content":[{"kind":"text","text":"如果目录不存在则记录错误但不抛出。Logs error if directory doesn't exist but doesn't throw"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Basic directory traversal\ntravelFolderSync('./src',\n (filePath) => console.log('File:', filePath),\n (folderPath) => console.log('Folder:', folderPath)\n);\n```"}]},{"tag":"@example","content":[{"kind":"text","text":"// Count files and folders\nlet fileCount = 0, folderCount = 0;\ntravelFolderSync('./project',\n () => fileCount++,\n () => folderCount++\n);\nconsole.log("},{"kind":"code","text":"`Found ${fileCount} files and ${folderCount} folders`"},{"kind":"text","text":");"}]}]},"parameters":[{"id":1690,"name":"dirPath","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"要遍历的目录路径。The directory path to traverse"}]},"type":{"type":"intrinsic","name":"string"},"text":{"comment":"

    要遍历的目录路径。The directory path to traverse

    \n"}},{"id":1691,"name":"fileCallback","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"对每个找到的文件执行的回调函数。Callback function executed for each file found"}]},"type":{"type":"reflection","declaration":{"id":1692,"name":"__type","kind":65536,"kindString":"Type literal","flags":{},"sources":[{"fileName":"packages/node-utils/src/fs/fsFuncs.ts","line":43,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-utils/src/fs/fsFuncs.ts#L43"}],"signatures":[{"id":1693,"name":"__type","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":1694,"name":"pathName","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"type":{"type":"intrinsic","name":"string"}}],"type":{"type":"intrinsic","name":"void"}}]}},"text":{"comment":"

    对每个找到的文件执行的回调函数。Callback function executed for each file found

    \n"}},{"id":1695,"name":"folderCallback","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"对每个找到的文件夹执行的回调函数。Callback function executed for each folder found"}]},"type":{"type":"reflection","declaration":{"id":1696,"name":"__type","kind":65536,"kindString":"Type literal","flags":{},"sources":[{"fileName":"packages/node-utils/src/fs/fsFuncs.ts","line":44,"character":18,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-utils/src/fs/fsFuncs.ts#L44"}],"signatures":[{"id":1697,"name":"__type","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":1698,"name":"pathName","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"type":{"type":"intrinsic","name":"string"}}],"type":{"type":"intrinsic","name":"void"}}]}},"text":{"comment":"

    对每个找到的文件夹执行的回调函数。Callback function executed for each folder found

    \n"}}],"type":{"type":"intrinsic","name":"void"},"is":{"declaration":false},"location":{"query":"node-utils/src.Function.travelFolderSync","hash":"travelFolderSync"},"text":{"comment":"
    Function:

    travelFolderSync

    \n
    Description:

    递归遍历目录并对文件和文件夹执行回调函数。Recursively traverses a directory and executes callbacks for files and folders with comprehensive error handling.

    \n
    Throws:

    如果目录不存在则记录错误但不抛出。Logs error if directory doesn't exist but doesn't throw

    \n
    Example:
    // Basic directory traversal\ntravelFolderSync('./src',\n  (filePath) => console.log('File:', filePath),\n  (folderPath) => console.log('Folder:', folderPath)\n);\n
    \n
    Example:

    // Count files and folders\nlet fileCount = 0, folderCount = 0;\ntravelFolderSync('./project',\n () => fileCount++,\n () => folderCount++\n);\nconsole.log(Found ${fileCount} files and ${folderCount} folders);

    \n"},"sources":[{"fileName":"packages/node-utils/src/fs/fsFuncs.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/node-utils/src/fs/fsFuncs.ts","line":41,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-utils/src/fs/fsFuncs.ts#L41"}],"parentId":1688}],"is":{"declaration":true},"location":{"query":"node-utils/src.Function.travelFolderSync","hash":""},"text":{},"parentId":881} diff --git a/docs/v1.0.0-beta01/data/node-utils/src.Function.uploadFile.json b/docs/v1.0.0-beta01/data/node-utils/src.Function.uploadFile.json new file mode 100644 index 000000000..4b02bbaec --- /dev/null +++ b/docs/v1.0.0-beta01/data/node-utils/src.Function.uploadFile.json @@ -0,0 +1 @@ +{"id":1886,"name":"uploadFile","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/node-utils/src/http/index.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/node-utils/src/http/index.ts","line":334,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-utils/src/http/index.ts#L334"}],"signatures":[{"id":1887,"name":"uploadFile","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"uploadFile"}]},{"tag":"@description","content":[{"kind":"text","text":"上传文件到指定URL。Uploads a file to the specified URL"}]},{"tag":"@returns","content":[{"kind":"text","text":"响应内容。Response body"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\nawait uploadFile('./file.txt', 'https://example.com/upload');\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\nawait uploadFile('./image.png', 'https://example.com/upload', {\n headers: { Authorization: 'Bearer token' }\n});\n```"}]}]},"parameters":[{"id":1888,"name":"filePath","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"本地文件路径。Local file path"}]},"type":{"type":"intrinsic","name":"string"},"text":{"comment":"

    本地文件路径。Local file path

    \n"}},{"id":1889,"name":"requestUrl","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"上传目标URL。Upload target URL"}]},"type":{"type":"intrinsic","name":"string"},"text":{"comment":"

    上传目标URL。Upload target URL

    \n"}},{"id":1890,"name":"options","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"可选配置。Optional configuration"}]},"type":{"type":"reflection","declaration":{"id":1891,"name":"__type","kind":65536,"kindString":"Type literal","flags":{},"children":[{"id":1893,"name":"headers","kind":1024,"kindString":"Property","flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"额外请求头。Additional headers"}]},"sources":[{"fileName":"packages/node-utils/src/http/index.ts","line":339,"character":4,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-utils/src/http/index.ts#L339"}],"type":{"type":"reference","typeArguments":[{"type":"intrinsic","name":"string"},{"type":"intrinsic","name":"string"}],"name":"Record","qualifiedName":"Record","package":"typescript"}},{"id":1894,"name":"maxRedirects","kind":1024,"kindString":"Property","flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"最大重定向次数。Max redirects"}]},"sources":[{"fileName":"packages/node-utils/src/http/index.ts","line":340,"character":4,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-utils/src/http/index.ts#L340"}],"type":{"type":"intrinsic","name":"number"}},{"id":1892,"name":"method","kind":1024,"kindString":"Property","flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"请求方法。HTTP method"}]},"sources":[{"fileName":"packages/node-utils/src/http/index.ts","line":338,"character":4,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-utils/src/http/index.ts#L338"}],"type":{"type":"intrinsic","name":"string"}}],"groups":[{"title":"Properties","children":[1893,1894,1892]}],"sources":[{"fileName":"packages/node-utils/src/http/index.ts","line":337,"character":12,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-utils/src/http/index.ts#L337"}]}},"text":{"comment":"

    可选配置。Optional configuration

    \n"}}],"type":{"type":"reference","typeArguments":[{"type":"intrinsic","name":"string"}],"name":"Promise","qualifiedName":"Promise","package":"typescript"},"is":{"declaration":false},"location":{"query":"node-utils/src.Function.uploadFile","hash":"uploadFile"},"text":{"comment":"
    Function:

    uploadFile

    \n
    Description:

    上传文件到指定URL。Uploads a file to the specified URL

    \n
    Returns:

    响应内容。Response body

    \n
    Example:
    await uploadFile('./file.txt', 'https://example.com/upload');\n
    \n
    Example:
    await uploadFile('./image.png', 'https://example.com/upload', {\n  headers: { Authorization: 'Bearer token' }\n});\n
    \n"},"sources":[{"fileName":"packages/node-utils/src/http/index.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/node-utils/src/http/index.ts","line":334,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-utils/src/http/index.ts#L334"}],"parentId":1886}],"is":{"declaration":true},"location":{"query":"node-utils/src.Function.uploadFile","hash":""},"text":{},"parentId":881} diff --git a/docs/v1.0.0-beta01/data/node-utils/src.Function.writ.json b/docs/v1.0.0-beta01/data/node-utils/src.Function.writ.json new file mode 100644 index 000000000..1c3cd9236 --- /dev/null +++ b/docs/v1.0.0-beta01/data/node-utils/src.Function.writ.json @@ -0,0 +1 @@ +{"id":1717,"name":"writeJson","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/node-utils/src/fs/fsFuncs.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/node-utils/src/fs/fsFuncs.ts","line":286,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-utils/src/fs/fsFuncs.ts#L286"}],"signatures":[{"id":1718,"name":"writeJson","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"writeJson"}]},{"tag":"@description","content":[{"kind":"text","text":"将JavaScript对象写入JSON文件并格式化。Writes a JavaScript object to a JSON file with customizable formatting and automatic serialization."}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Write formatted JSON configuration\nconst config = { port: 3000, host: 'localhost' };\nwriteJson('./config.json', config);\n// Creates: {\"port\": 3000, \"host\": \"localhost\"}\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Write compact JSON (no indentation)\nwriteJson('./data.json', { users: ['alice', 'bob'] }, 0);\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Write deeply nested object\nconst appState = {\n user: { id: 1, name: 'John' },\n settings: { theme: 'dark', notifications: true }\n};\nwriteJson('./state.json', appState, 4); // 4-space indentation\n```"}]},{"tag":"@see","content":[{"kind":"inline-tag","tag":"@link","text":"writeFile","target":1712},{"kind":"text","text":" - Underlying file write function"}]}]},"parameters":[{"id":1719,"name":"filePath","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"要写入JSON的文件路径。The file path to write the JSON to"}]},"type":{"type":"intrinsic","name":"string"},"text":{"comment":"

    要写入JSON的文件路径。The file path to write the JSON to

    \n"}},{"id":1720,"name":"obj","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"要序列化为JSON的对象。The object to serialize as JSON"}]},"type":{"type":"reflection","declaration":{"id":1721,"name":"__type","kind":65536,"kindString":"Type literal","flags":{},"sources":[{"fileName":"packages/node-utils/src/fs/fsFuncs.ts","line":286,"character":49,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-utils/src/fs/fsFuncs.ts#L286"}],"indexSignature":{"id":1722,"name":"__index","kind":8192,"kindString":"Index signature","flags":{},"parameters":[{"id":1723,"name":"key","kind":32768,"flags":{},"type":{"type":"intrinsic","name":"string"}}],"type":{"type":"intrinsic","name":"unknown"}}}},"text":{"comment":"

    要序列化为JSON的对象。The object to serialize as JSON

    \n"}},{"id":1724,"name":"spaceLen","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"JSON缩进的空格数。Number of spaces for JSON indentation"}]},"type":{"type":"intrinsic","name":"number"},"defaultValue":"2","text":{"comment":"

    JSON缩进的空格数。Number of spaces for JSON indentation

    \n"}}],"type":{"type":"reference","typeArguments":[{"type":"intrinsic","name":"boolean"}],"name":"Promise","qualifiedName":"Promise","package":"typescript"},"is":{"declaration":false},"location":{"query":"node-utils/src.Function.writeJson","hash":"writeJson"},"text":{"comment":"
    Function:

    writeJson

    \n
    Description:

    将JavaScript对象写入JSON文件并格式化。Writes a JavaScript object to a JSON file with customizable formatting and automatic serialization.

    \n
    Example:
    // Write formatted JSON configuration\nconst config = { port: 3000, host: 'localhost' };\nwriteJson('./config.json', config);\n// Creates: {\"port\": 3000, \"host\": \"localhost\"}\n
    \n
    Example:
    // Write compact JSON (no indentation)\nwriteJson('./data.json', { users: ['alice', 'bob'] }, 0);\n
    \n
    Example:
    // Write deeply nested object\nconst appState = {\n  user: { id: 1, name: 'John' },\n  settings: { theme: 'dark', notifications: true }\n};\nwriteJson('./state.json', appState, 4); // 4-space indentation\n
    \n
    See:

    writeFile - Underlying file write function

    \n"},"sources":[{"fileName":"packages/node-utils/src/fs/fsFuncs.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/node-utils/src/fs/fsFuncs.ts","line":286,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-utils/src/fs/fsFuncs.ts#L286"}],"parentId":1717}],"is":{"declaration":true},"location":{"query":"node-utils/src.Function.writeJson","hash":""},"text":{},"parentId":881} diff --git a/docs/v1.0.0-beta01/data/node-utils/src.Function.writeFile.json b/docs/v1.0.0-beta01/data/node-utils/src.Function.writeFile.json new file mode 100644 index 000000000..0ca41876f --- /dev/null +++ b/docs/v1.0.0-beta01/data/node-utils/src.Function.writeFile.json @@ -0,0 +1 @@ +{"id":1712,"name":"writeFile","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/node-utils/src/fs/fsFuncs.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/node-utils/src/fs/fsFuncs.ts","line":248,"character":22,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-utils/src/fs/fsFuncs.ts#L248"}],"signatures":[{"id":1713,"name":"writeFile","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"writeFile"}]},{"tag":"@description","content":[{"kind":"text","text":"异步写入数据到文件,根据需要创建目录。Asynchronously writes data to a file, creating directories as needed with automatic directory structure creation."}]},{"tag":"@returns","content":[{"kind":"text","text":"成功写入时解析为true的Promise。Promise that resolves to true on successful write"}]},{"tag":"@throws","content":[{"kind":"text","text":"如果写入操作失败则拒绝。Rejects if write operation fails"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Write a new file\nawait writeFile('./output.txt', 'Hello World');\nconsole.log('File written successfully');\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Append to existing file\nawait writeFile('./log.txt', 'New log entry\\n', false);\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Write with error handling\ntry {\n await writeFile('./config/settings.json', JSON.stringify(config));\n console.log('Configuration saved');\n} catch (error) {\n console.error('Failed to save configuration:', error);\n}\n```"}]}]},"parameters":[{"id":1714,"name":"filePath","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"要写入的文件路径。The file path to write to"}]},"type":{"type":"intrinsic","name":"string"},"text":{"comment":"

    要写入的文件路径。The file path to write to

    \n"}},{"id":1715,"name":"fileData","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"要写入文件的内容。The content to write to the file"}]},"type":{"type":"intrinsic","name":"string"},"text":{"comment":"

    要写入文件的内容。The content to write to the file

    \n"}},{"id":1716,"name":"replace","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"如果为true,覆盖现有文件;如果为false,追加到现有文件。If true, overwrites existing file; if false, appends to existing file"}]},"type":{"type":"intrinsic","name":"boolean"},"defaultValue":"true","text":{"comment":"

    如果为true,覆盖现有文件;如果为false,追加到现有文件。If true, overwrites existing file; if false, appends to existing file

    \n"}}],"type":{"type":"reference","typeArguments":[{"type":"intrinsic","name":"boolean"}],"name":"Promise","qualifiedName":"Promise","package":"typescript"},"is":{"declaration":false},"location":{"query":"node-utils/src.Function.writeFile","hash":"writeFile"},"text":{"comment":"
    Function:

    writeFile

    \n
    Description:

    异步写入数据到文件,根据需要创建目录。Asynchronously writes data to a file, creating directories as needed with automatic directory structure creation.

    \n
    Returns:

    成功写入时解析为true的Promise。Promise that resolves to true on successful write

    \n
    Throws:

    如果写入操作失败则拒绝。Rejects if write operation fails

    \n
    Example:
    // Write a new file\nawait writeFile('./output.txt', 'Hello World');\nconsole.log('File written successfully');\n
    \n
    Example:
    // Append to existing file\nawait writeFile('./log.txt', 'New log entry\\n', false);\n
    \n
    Example:
    // Write with error handling\ntry {\n  await writeFile('./config/settings.json', JSON.stringify(config));\n  console.log('Configuration saved');\n} catch (error) {\n  console.error('Failed to save configuration:', error);\n}\n
    \n"},"sources":[{"fileName":"packages/node-utils/src/fs/fsFuncs.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/node-utils/src/fs/fsFuncs.ts","line":248,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-utils/src/fs/fsFuncs.ts#L248"}],"parentId":1712}],"is":{"declaration":true},"location":{"query":"node-utils/src.Function.writeFile","hash":""},"text":{},"parentId":881} diff --git a/docs/v1.0.0-beta01/data/node-utils/src.Interface.CommandLineArgs.json b/docs/v1.0.0-beta01/data/node-utils/src.Interface.CommandLineArgs.json new file mode 100644 index 000000000..f7cf680b3 --- /dev/null +++ b/docs/v1.0.0-beta01/data/node-utils/src.Interface.CommandLineArgs.json @@ -0,0 +1 @@ +{"id":1787,"name":"CommandLineArgs","kind":256,"kindString":"Interface","flags":{},"children":[],"sources":[{"fileName":"packages/node-utils/src/process/env.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/node-utils/src/process/env.ts","line":15,"character":17,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-utils/src/process/env.ts#L15"}],"indexSignature":{"id":1788,"name":"__index","kind":8192,"kindString":"Index signature","flags":{},"parameters":[{"id":1789,"name":"key","kind":32768,"flags":{},"type":{"type":"intrinsic","name":"string"}}],"type":{"type":"union","types":[{"type":"intrinsic","name":"string"},{"type":"intrinsic","name":"number"},{"type":"intrinsic","name":"boolean"},{"type":"array","elementType":{"type":"intrinsic","name":"string"}}]}},"is":{"declaration":true},"location":{"query":"node-utils/src.Interface.CommandLineArgs","hash":""},"text":{},"parentId":881,"hierarchy":[{"name":"CommandLineArgs","isTarget":true,"linkId":"1787"}]} diff --git a/docs/v1.0.0-beta01/data/node-utils/src.Interface.RunOptions.json b/docs/v1.0.0-beta01/data/node-utils/src.Interface.RunOptions.json new file mode 100644 index 000000000..bae9cd54a --- /dev/null +++ b/docs/v1.0.0-beta01/data/node-utils/src.Interface.RunOptions.json @@ -0,0 +1 @@ +{"id":1762,"name":"RunOptions","kind":256,"kindString":"Interface","flags":{},"children":[{"id":1767,"name":"argv0","kind":1024,"kindString":"Property","flags":{"isExternal":true,"isOptional":true,"isInherited":true},"sources":[{"fileName":"node_modules/.pnpm/@types+node@15.14.9/node_modules/@types/node/child_process.d.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/node_modules/.pnpm/@types+node@15.14.9/node_modules/@types/node/child_process.d.ts","line":176,"character":8}],"type":{"type":"intrinsic","name":"string"},"inheritedFrom":{"type":"reference","name":"SpawnOptions.argv0"},"is":{"declaration":true},"location":{"query":"node-utils/src.Interface.RunOptions","hash":"argv0"},"text":{},"parentId":1762},{"id":1764,"name":"captureStdout","kind":1024,"kindString":"Property","flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"是否捕获标准输出"}]},"sources":[{"fileName":"packages/node-utils/src/process/run.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/node-utils/src/process/run.ts","line":22,"character":2,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-utils/src/process/run.ts#L22"}],"type":{"type":"union","types":[{"type":"intrinsic","name":"boolean"},{"type":"literal","value":"lines"}]},"is":{"declaration":true},"location":{"query":"node-utils/src.Interface.RunOptions","hash":"captureStdout"},"text":{"comment":"

    是否捕获标准输出

    \n"},"parentId":1762},{"id":1774,"name":"cwd","kind":1024,"kindString":"Property","flags":{"isExternal":true,"isOptional":true,"isInherited":true},"sources":[{"fileName":"node_modules/.pnpm/@types+node@15.14.9/node_modules/@types/node/child_process.d.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/node_modules/.pnpm/@types+node@15.14.9/node_modules/@types/node/child_process.d.ts","line":160,"character":8}],"type":{"type":"intrinsic","name":"string"},"inheritedFrom":{"type":"reference","name":"SpawnOptions.cwd"},"is":{"declaration":true},"location":{"query":"node-utils/src.Interface.RunOptions","hash":"cwd"},"text":{},"parentId":1762},{"id":1766,"name":"detached","kind":1024,"kindString":"Property","flags":{"isExternal":true,"isOptional":true,"isInherited":true},"sources":[{"fileName":"node_modules/.pnpm/@types+node@15.14.9/node_modules/@types/node/child_process.d.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/node_modules/.pnpm/@types+node@15.14.9/node_modules/@types/node/child_process.d.ts","line":183,"character":8}],"type":{"type":"intrinsic","name":"boolean"},"inheritedFrom":{"type":"reference","name":"SpawnOptions.detached"},"is":{"declaration":true},"location":{"query":"node-utils/src.Interface.RunOptions","hash":"detached"},"text":{},"parentId":1762},{"id":1775,"name":"env","kind":1024,"kindString":"Property","flags":{"isExternal":true,"isOptional":true,"isInherited":true},"sources":[{"fileName":"node_modules/.pnpm/@types+node@15.14.9/node_modules/@types/node/child_process.d.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/node_modules/.pnpm/@types+node@15.14.9/node_modules/@types/node/child_process.d.ts","line":161,"character":8}],"type":{"type":"reference","name":"ProcessEnv","qualifiedName":"global.NodeJS.ProcessEnv","package":"@types/node"},"inheritedFrom":{"type":"reference","name":"SpawnOptions.env"},"is":{"declaration":true},"location":{"query":"node-utils/src.Interface.RunOptions","hash":"env"},"text":{},"parentId":1762},{"id":1773,"name":"gid","kind":1024,"kindString":"Property","flags":{"isExternal":true,"isOptional":true,"isInherited":true},"sources":[{"fileName":"node_modules/.pnpm/@types+node@15.14.9/node_modules/@types/node/child_process.d.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/node_modules/.pnpm/@types+node@15.14.9/node_modules/@types/node/child_process.d.ts","line":159,"character":8}],"type":{"type":"intrinsic","name":"number"},"inheritedFrom":{"type":"reference","name":"SpawnOptions.gid"},"is":{"declaration":true},"location":{"query":"node-utils/src.Interface.RunOptions","hash":"gid"},"text":{},"parentId":1762},{"id":1763,"name":"ignoreFailure","kind":1024,"kindString":"Property","flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"是否忽略失败"}]},"sources":[{"fileName":"packages/node-utils/src/process/run.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/node-utils/src/process/run.ts","line":20,"character":2,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-utils/src/process/run.ts#L20"}],"type":{"type":"intrinsic","name":"boolean"},"is":{"declaration":true},"location":{"query":"node-utils/src.Interface.RunOptions","hash":"ignoreFailure"},"text":{"comment":"

    是否忽略失败

    \n"},"parentId":1762},{"id":1777,"name":"killSignal","kind":1024,"kindString":"Property","flags":{"isExternal":true,"isOptional":true,"isInherited":true},"comment":{"summary":[{"kind":"text","text":"The signal value to be used when the spawned process will be killed by the abort signal."}],"blockTags":[{"tag":"@default","content":[{"kind":"text","text":"'SIGTERM'"}]}]},"sources":[{"fileName":"node_modules/.pnpm/@types+node@15.14.9/node_modules/@types/node/child_process.d.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/node_modules/.pnpm/@types+node@15.14.9/node_modules/@types/node/child_process.d.ts","line":149,"character":8}],"type":{"type":"union","types":[{"type":"intrinsic","name":"number"},{"type":"reference","name":"Signals","qualifiedName":"global.NodeJS.Signals","package":"@types/node"}]},"inheritedFrom":{"type":"reference","name":"SpawnOptions.killSignal"},"is":{"declaration":true},"location":{"query":"node-utils/src.Interface.RunOptions","hash":"killSignal"},"text":{"comment":"

    The signal value to be used when the spawned process will be killed by the abort signal.

    \n
    Default:

    'SIGTERM'

    \n"},"parentId":1762},{"id":1776,"name":"serialization","kind":1024,"kindString":"Property","flags":{"isExternal":true,"isOptional":true,"isInherited":true},"comment":{"summary":[{"kind":"text","text":"Specify the kind of serialization used for sending messages between processes."}],"blockTags":[{"tag":"@default","content":[{"kind":"text","text":"'json'"}]}]},"sources":[{"fileName":"node_modules/.pnpm/@types+node@15.14.9/node_modules/@types/node/child_process.d.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/node_modules/.pnpm/@types+node@15.14.9/node_modules/@types/node/child_process.d.ts","line":143,"character":8}],"type":{"type":"reference","name":"SerializationType","qualifiedName":"SerializationType","package":"@types/node"},"inheritedFrom":{"type":"reference","name":"SpawnOptions.serialization"},"is":{"declaration":true},"location":{"query":"node-utils/src.Interface.RunOptions","hash":"serialization"},"text":{"comment":"

    Specify the kind of serialization used for sending messages between processes.

    \n
    Default:

    'json'

    \n"},"parentId":1762},{"id":1769,"name":"shell","kind":1024,"kindString":"Property","flags":{"isExternal":true,"isOptional":true,"isInherited":true},"sources":[{"fileName":"node_modules/.pnpm/@types+node@15.14.9/node_modules/@types/node/child_process.d.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/node_modules/.pnpm/@types+node@15.14.9/node_modules/@types/node/child_process.d.ts","line":178,"character":8}],"type":{"type":"union","types":[{"type":"intrinsic","name":"string"},{"type":"intrinsic","name":"boolean"}]},"inheritedFrom":{"type":"reference","name":"SpawnOptions.shell"},"is":{"declaration":true},"location":{"query":"node-utils/src.Interface.RunOptions","hash":"shell"},"text":{},"parentId":1762},{"id":1778,"name":"signal","kind":1024,"kindString":"Property","flags":{"isExternal":true,"isOptional":true,"isInherited":true},"comment":{"summary":[{"kind":"text","text":"When provided the corresponding "},{"kind":"code","text":"`AbortController`"},{"kind":"text","text":" can be used to cancel an asynchronous action."}]},"sources":[{"fileName":"node_modules/.pnpm/@types+node@15.14.9/node_modules/@types/node/events.d.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/node_modules/.pnpm/@types+node@15.14.9/node_modules/@types/node/events.d.ts","line":65,"character":12}],"type":{"type":"reference","name":"AbortSignal","qualifiedName":"AbortSignal","package":"typescript"},"inheritedFrom":{"type":"reference","name":"SpawnOptions.signal"},"is":{"declaration":true},"location":{"query":"node-utils/src.Interface.RunOptions","hash":"signal"},"text":{"comment":"

    When provided the corresponding AbortController can be used to cancel an asynchronous action.

    \n"},"parentId":1762},{"id":1768,"name":"stdio","kind":1024,"kindString":"Property","flags":{"isExternal":true,"isOptional":true,"isInherited":true},"sources":[{"fileName":"node_modules/.pnpm/@types+node@15.14.9/node_modules/@types/node/child_process.d.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/node_modules/.pnpm/@types+node@15.14.9/node_modules/@types/node/child_process.d.ts","line":177,"character":8}],"type":{"type":"reference","name":"StdioOptions","qualifiedName":"StdioOptions","package":"@types/node"},"inheritedFrom":{"type":"reference","name":"SpawnOptions.stdio"},"is":{"declaration":true},"location":{"query":"node-utils/src.Interface.RunOptions","hash":"stdio"},"text":{},"parentId":1762},{"id":1765,"name":"timeout","kind":1024,"kindString":"Property","flags":{"isOptional":true,"isOverride":true},"comment":{"summary":[{"kind":"text","text":"超时时间(毫秒)"}]},"sources":[{"fileName":"packages/node-utils/src/process/run.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/node-utils/src/process/run.ts","line":24,"character":2,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-utils/src/process/run.ts#L24"}],"type":{"type":"intrinsic","name":"number"},"overwrites":{"type":"reference","name":"SpawnOptions.timeout"},"is":{"declaration":true},"location":{"query":"node-utils/src.Interface.RunOptions","hash":"timeout"},"text":{"comment":"

    超时时间(毫秒)

    \n"},"parentId":1762},{"id":1772,"name":"uid","kind":1024,"kindString":"Property","flags":{"isExternal":true,"isOptional":true,"isInherited":true},"sources":[{"fileName":"node_modules/.pnpm/@types+node@15.14.9/node_modules/@types/node/child_process.d.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/node_modules/.pnpm/@types+node@15.14.9/node_modules/@types/node/child_process.d.ts","line":158,"character":8}],"type":{"type":"intrinsic","name":"number"},"inheritedFrom":{"type":"reference","name":"SpawnOptions.uid"},"is":{"declaration":true},"location":{"query":"node-utils/src.Interface.RunOptions","hash":"uid"},"text":{},"parentId":1762},{"id":1771,"name":"windowsHide","kind":1024,"kindString":"Property","flags":{"isExternal":true,"isOptional":true,"isInherited":true},"comment":{"summary":[],"blockTags":[{"tag":"@default","content":[{"kind":"text","text":"true"}]}]},"sources":[{"fileName":"node_modules/.pnpm/@types+node@15.14.9/node_modules/@types/node/child_process.d.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/node_modules/.pnpm/@types+node@15.14.9/node_modules/@types/node/child_process.d.ts","line":168,"character":8}],"type":{"type":"intrinsic","name":"boolean"},"inheritedFrom":{"type":"reference","name":"SpawnOptions.windowsHide"},"is":{"declaration":true},"location":{"query":"node-utils/src.Interface.RunOptions","hash":"windowsHide"},"text":{"comment":"
    Default:

    true

    \n"},"parentId":1762},{"id":1770,"name":"windowsVerbatimArguments","kind":1024,"kindString":"Property","flags":{"isExternal":true,"isOptional":true,"isInherited":true},"sources":[{"fileName":"node_modules/.pnpm/@types+node@15.14.9/node_modules/@types/node/child_process.d.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/node_modules/.pnpm/@types+node@15.14.9/node_modules/@types/node/child_process.d.ts","line":179,"character":8}],"type":{"type":"intrinsic","name":"boolean"},"inheritedFrom":{"type":"reference","name":"SpawnOptions.windowsVerbatimArguments"},"is":{"declaration":true},"location":{"query":"node-utils/src.Interface.RunOptions","hash":"windowsVerbatimArguments"},"text":{},"parentId":1762}],"groups":[{"title":"Properties","children":[1767,1764,1774,1766,1775,1773,1763,1777,1776,1769,1778,1768,1765,1772,1771,1770]}],"sources":[{"fileName":"packages/node-utils/src/process/run.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/node-utils/src/process/run.ts","line":18,"character":17,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-utils/src/process/run.ts#L18"}],"extendedTypes":[{"type":"reference","name":"SpawnOptions","qualifiedName":"SpawnOptions","package":"@types/node"}],"is":{"declaration":true},"location":{"query":"node-utils/src.Interface.RunOptions","hash":""},"text":{},"parentId":881,"hierarchy":[{"name":"SpawnOptions","children":[{"name":"RunOptions","isTarget":true,"linkId":"1762"}]}]} diff --git a/docs/v1.0.0-beta01/data/node-utils/src.Interface.RunResult.json b/docs/v1.0.0-beta01/data/node-utils/src.Interface.RunResult.json new file mode 100644 index 000000000..7217082b0 --- /dev/null +++ b/docs/v1.0.0-beta01/data/node-utils/src.Interface.RunResult.json @@ -0,0 +1 @@ +{"id":1779,"name":"RunResult","kind":256,"kindString":"Interface","flags":{},"children":[{"id":1780,"name":"code","kind":1024,"kindString":"Property","flags":{},"comment":{"summary":[{"kind":"text","text":"命令执行状态码"}]},"sources":[{"fileName":"packages/node-utils/src/process/run.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/node-utils/src/process/run.ts","line":29,"character":2,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-utils/src/process/run.ts#L29"}],"type":{"type":"union","types":[{"type":"literal","value":null},{"type":"intrinsic","name":"number"}]},"is":{"declaration":true},"location":{"query":"node-utils/src.Interface.RunResult","hash":"code"},"text":{"comment":"

    命令执行状态码

    \n"},"parentId":1779},{"id":1782,"name":"stderr","kind":1024,"kindString":"Property","flags":{},"comment":{"summary":[{"kind":"text","text":"标准错误"}]},"sources":[{"fileName":"packages/node-utils/src/process/run.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/node-utils/src/process/run.ts","line":33,"character":2,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-utils/src/process/run.ts#L33"}],"type":{"type":"intrinsic","name":"string"},"is":{"declaration":true},"location":{"query":"node-utils/src.Interface.RunResult","hash":"stderr"},"text":{"comment":"

    标准错误

    \n"},"parentId":1779},{"id":1781,"name":"stdout","kind":1024,"kindString":"Property","flags":{},"comment":{"summary":[{"kind":"text","text":"标准输出"}]},"sources":[{"fileName":"packages/node-utils/src/process/run.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/node-utils/src/process/run.ts","line":31,"character":2,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-utils/src/process/run.ts#L31"}],"type":{"type":"union","types":[{"type":"intrinsic","name":"string"},{"type":"array","elementType":{"type":"intrinsic","name":"string"}}]},"is":{"declaration":true},"location":{"query":"node-utils/src.Interface.RunResult","hash":"stdout"},"text":{"comment":"

    标准输出

    \n"},"parentId":1779},{"id":1783,"name":"success","kind":1024,"kindString":"Property","flags":{},"comment":{"summary":[{"kind":"text","text":"是否成功"}]},"sources":[{"fileName":"packages/node-utils/src/process/run.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/node-utils/src/process/run.ts","line":35,"character":2,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-utils/src/process/run.ts#L35"}],"type":{"type":"intrinsic","name":"boolean"},"is":{"declaration":true},"location":{"query":"node-utils/src.Interface.RunResult","hash":"success"},"text":{"comment":"

    是否成功

    \n"},"parentId":1779}],"groups":[{"title":"Properties","children":[1780,1782,1781,1783]}],"sources":[{"fileName":"packages/node-utils/src/process/run.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/node-utils/src/process/run.ts","line":27,"character":17,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-utils/src/process/run.ts#L27"}],"is":{"declaration":true},"location":{"query":"node-utils/src.Interface.RunResult","hash":""},"text":{},"parentId":881,"hierarchy":[{"name":"RunResult","isTarget":true,"linkId":"1779"}]} diff --git a/docs/v1.0.0-beta01/data/node-utils/src.Variable.IGNORE.json b/docs/v1.0.0-beta01/data/node-utils/src.Variable.IGNORE.json new file mode 100644 index 000000000..a3c88b0b0 --- /dev/null +++ b/docs/v1.0.0-beta01/data/node-utils/src.Variable.IGNORE.json @@ -0,0 +1 @@ +{"id":1761,"name":"IGNORE","kind":32,"kindString":"Variable","flags":{"isConst":true},"children":[],"sources":[{"fileName":"packages/node-utils/src/process/run.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/node-utils/src/process/run.ts","line":16,"character":13,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-utils/src/process/run.ts#L16"}],"type":{"type":"literal","value":"__ignore__"},"defaultValue":"'__ignore__'","is":{"declaration":true},"location":{"query":"node-utils/src.Variable.IGNORE","hash":""},"text":{},"parentId":881} diff --git a/docs/v1.0.0-beta01/data/node-utils/src.Variable.commandEvents.json b/docs/v1.0.0-beta01/data/node-utils/src.Variable.commandEvents.json new file mode 100644 index 000000000..e47fbbc53 --- /dev/null +++ b/docs/v1.0.0-beta01/data/node-utils/src.Variable.commandEvents.json @@ -0,0 +1 @@ +{"id":1784,"name":"commandEvents","kind":32,"kindString":"Variable","flags":{"isConst":true},"comment":{"summary":[],"blockTags":[{"tag":"@description","content":[{"kind":"text","text":"命令事件发射器,用于监听命令执行过程中的事件。Command event emitter for monitoring command execution lifecycle and handling process events."}]}]},"children":[],"sources":[{"fileName":"packages/node-utils/src/process/run.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/node-utils/src/process/run.ts","line":341,"character":13,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/node-utils/src/process/run.ts#L341"}],"type":{"type":"reference","name":"EventEmitter","qualifiedName":"EventEmitter","package":"@types/node"},"defaultValue":"...","is":{"declaration":true},"location":{"query":"node-utils/src.Variable.commandEvents","hash":""},"text":{"comment":"
    Description:

    命令事件发射器,用于监听命令执行过程中的事件。Command event emitter for monitoring command execution lifecycle and handling process events.

    \n"},"parentId":881} diff --git a/docs/v1.0.0-beta01/data/web-utils/src/clipboard.Function.copyToClipboard.json b/docs/v1.0.0-beta01/data/web-utils/src/clipboard.Function.copyToClipboard.json new file mode 100644 index 000000000..816d0869a --- /dev/null +++ b/docs/v1.0.0-beta01/data/web-utils/src/clipboard.Function.copyToClipboard.json @@ -0,0 +1 @@ +{"id":885,"name":"copyToClipboard","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/web-utils/src/clipboard.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/clipboard.ts","line":134,"character":22,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/clipboard.ts#L134"}],"signatures":[{"id":886,"name":"copyToClipboard","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"copyToClipboard"}]},{"tag":"@description","content":[{"kind":"text","text":"将文本复制到系统剪贴板,为旧版浏览器提供回退方案。Copies text to the system clipboard with fallback for older browsers"}]},{"tag":"@returns","content":[{"kind":"text","text":"如果复制成功则解析为true,否则为false的Promise。Promise that resolves to true if copy succeeded, false otherwise"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Basic text copying\ncopyToClipboard('Hello, World!')\n .then(success => {\n if (success) {\n showNotification('Text copied to clipboard!');\n } else {\n showNotification('Failed to copy text');\n }\n });\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Copy button implementation\nconst copyButton = document.getElementById('copy-btn');\ncopyButton.addEventListener('click', async () => {\n const textToCopy = document.getElementById('content').textContent;\n const success = await copyToClipboard(textToCopy);\n\n // Update button state for accessibility\n copyButton.textContent = success ? 'Copied!' : 'Copy Failed';\n copyButton.setAttribute('aria-label',\n success ? 'Text copied to clipboard' : 'Failed to copy text'\n );\n\n // Reset button after delay\n setTimeout(() => {\n copyButton.textContent = 'Copy';\n copyButton.setAttribute('aria-label', 'Copy text to clipboard');\n }, 2000);\n});\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Copy with user feedback and error handling\nasync function copyWithFeedback(text) {\n try {\n const success = await copyToClipboard(text);\n if (success) {\n // Announce to screen readers\n const announcement = document.createElement('div');\n announcement.setAttribute('aria-live', 'polite');\n announcement.textContent = 'Content copied to clipboard';\n document.body.appendChild(announcement);\n setTimeout(() => document.body.removeChild(announcement), 1000);\n }\n return success;\n } catch (error) {\n console.error('Copy operation failed:', error);\n return false;\n }\n}\n```"}]},{"tag":"@since","content":[{"kind":"text","text":"1.0.0"}]},{"tag":"@see","content":[{"kind":"text","text":" - "},{"kind":"inline-tag","tag":"@link","text":"readClipboardText","target":883},{"kind":"text","text":" - Read text from clipboard"},{"kind":"text","text":"\n"},{"kind":"text","text":" - "},{"kind":"inline-tag","tag":"@link","text":"https://developer.mozilla.org/en-US/docs/Web/API/Clipboard/writeText","target":"https://developer.mozilla.org/en-US/docs/Web/API/Clipboard/writeText"},{"kind":"text","text":" - Modern Clipboard API"},{"kind":"text","text":"\n"},{"kind":"text","text":" - "},{"kind":"inline-tag","tag":"@link","text":"https://caniuse.com/async-clipboard","target":"https://caniuse.com/async-clipboard"},{"kind":"text","text":" - Browser support: Chrome 66+, Firefox 125+, Safari 13.1+"},{"kind":"text","text":"\n"},{"kind":"text","text":" - "},{"kind":"inline-tag","tag":"@link","text":"https://developer.mozilla.org/en-US/docs/Web/API/Document/execCommand","target":"https://developer.mozilla.org/en-US/docs/Web/API/Document/execCommand"},{"kind":"text","text":" - Legacy execCommand (deprecated)"},{"kind":"text","text":"\n"},{"kind":"text","text":" - "},{"kind":"inline-tag","tag":"@link","text":"https://www.w3.org/WAI/WCAG21/Understanding/status-messages.html","target":"https://www.w3.org/WAI/WCAG21/Understanding/status-messages.html"},{"kind":"text","text":" - WCAG: Providing feedback for user actions"},{"kind":"text","text":"\n"}]}]},"parameters":[{"id":887,"name":"text","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"要复制到剪贴板的文本内容。The text content to copy to clipboard"}]},"type":{"type":"intrinsic","name":"string"},"text":{"comment":"

    要复制到剪贴板的文本内容。The text content to copy to clipboard

    \n"}}],"type":{"type":"reference","typeArguments":[{"type":"intrinsic","name":"boolean"}],"name":"Promise","qualifiedName":"Promise","package":"typescript"},"is":{"declaration":false},"location":{"query":"web-utils/src/clipboard.Function.copyToClipboard","hash":"copyToClipboard"},"text":{"comment":"
    Function:

    copyToClipboard

    \n
    Description:

    将文本复制到系统剪贴板,为旧版浏览器提供回退方案。Copies text to the system clipboard with fallback for older browsers

    \n
    Returns:

    如果复制成功则解析为true,否则为false的Promise。Promise that resolves to true if copy succeeded, false otherwise

    \n
    Example:
    // Basic text copying\ncopyToClipboard('Hello, World!')\n  .then(success => {\n    if (success) {\n      showNotification('Text copied to clipboard!');\n    } else {\n      showNotification('Failed to copy text');\n    }\n  });\n
    \n
    Example:
    // Copy button implementation\nconst copyButton = document.getElementById('copy-btn');\ncopyButton.addEventListener('click', async () => {\n  const textToCopy = document.getElementById('content').textContent;\n  const success = await copyToClipboard(textToCopy);\n\n  // Update button state for accessibility\n  copyButton.textContent = success ? 'Copied!' : 'Copy Failed';\n  copyButton.setAttribute('aria-label',\n    success ? 'Text copied to clipboard' : 'Failed to copy text'\n  );\n\n  // Reset button after delay\n  setTimeout(() => {\n    copyButton.textContent = 'Copy';\n    copyButton.setAttribute('aria-label', 'Copy text to clipboard');\n  }, 2000);\n});\n
    \n
    Example:
    // Copy with user feedback and error handling\nasync function copyWithFeedback(text) {\n  try {\n    const success = await copyToClipboard(text);\n    if (success) {\n      // Announce to screen readers\n      const announcement = document.createElement('div');\n      announcement.setAttribute('aria-live', 'polite');\n      announcement.textContent = 'Content copied to clipboard';\n      document.body.appendChild(announcement);\n      setTimeout(() => document.body.removeChild(announcement), 1000);\n    }\n    return success;\n  } catch (error) {\n    console.error('Copy operation failed:', error);\n    return false;\n  }\n}\n
    \n
    Since:

    1.0.0

    \n
    See:
    \n"},"sources":[{"fileName":"packages/web-utils/src/clipboard.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/clipboard.ts","line":134,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/clipboard.ts#L134"}],"parentId":885}],"is":{"declaration":true},"location":{"query":"web-utils/src/clipboard.Function.copyToClipboard","hash":""},"text":{},"parentId":882} diff --git a/docs/v1.0.0-beta01/data/web-utils/src/clipboard.Function.readClipboardText.json b/docs/v1.0.0-beta01/data/web-utils/src/clipboard.Function.readClipboardText.json new file mode 100644 index 000000000..5981b55b5 --- /dev/null +++ b/docs/v1.0.0-beta01/data/web-utils/src/clipboard.Function.readClipboardText.json @@ -0,0 +1 @@ +{"id":883,"name":"readClipboardText","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/web-utils/src/clipboard.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/clipboard.ts","line":60,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/clipboard.ts#L60"}],"signatures":[{"id":884,"name":"readClipboardText","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"readClipboardText"}]},{"tag":"@description","content":[{"kind":"text","text":"使用现代剪贴板API从系统剪贴板读取文本内容。Reads text content from the system clipboard using the modern Clipboard API"}]},{"tag":"@returns","content":[{"kind":"text","text":"解析为剪贴板文本内容的Promise。Promise that resolves to the clipboard text content"}]},{"tag":"@throws","content":[{"kind":"text","text":"如果剪贴板访问被拒绝或不受支持则抛出错误。Throws if clipboard access is denied or not supported"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Basic clipboard reading\nreadClipboardText()\n .then(text => {\n console.log('Clipboard content:', text);\n document.getElementById('paste-area').textContent = text;\n })\n .catch(error => {\n console.error('Failed to read clipboard:', error);\n });\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Async/await usage with error handling\nasync function handlePaste() {\n try {\n const clipboardText = await readClipboardText();\n if (clipboardText.trim()) {\n processClipboardContent(clipboardText);\n }\n } catch (error) {\n // Handle permission denied or unsupported browser\n showFallbackPasteOption();\n }\n}\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Check permissions before reading\nasync function safeReadClipboard() {\n try {\n const permission = await navigator.permissions.query({ name: 'clipboard-read' });\n if (permission.state === 'granted') {\n const text = await readClipboardText();\n return text;\n } else {\n throw new Error('Clipboard read permission not granted');\n }\n } catch (error) {\n console.warn('Clipboard access failed:', error);\n return null;\n }\n}\n```"}]},{"tag":"@since","content":[{"kind":"text","text":"1.0.0"}]},{"tag":"@see","content":[{"kind":"text","text":" - "},{"kind":"inline-tag","tag":"@link","text":"copyToClipboard","target":885},{"kind":"text","text":" - Copy text to clipboard"},{"kind":"text","text":"\n"},{"kind":"text","text":" - "},{"kind":"inline-tag","tag":"@link","text":"https://developer.mozilla.org/en-US/docs/Web/API/Clipboard/readText","target":"https://developer.mozilla.org/en-US/docs/Web/API/Clipboard/readText"},{"kind":"text","text":" - Browser support: Chrome 66+, Firefox 125+, Safari 13.1+"},{"kind":"text","text":"\n"},{"kind":"text","text":" - "},{"kind":"inline-tag","tag":"@link","text":"https://caniuse.com/async-clipboard","target":"https://caniuse.com/async-clipboard"},{"kind":"text","text":" - Clipboard API browser compatibility"},{"kind":"text","text":"\n"},{"kind":"text","text":" - "},{"kind":"inline-tag","tag":"@link","text":"https://w3c.github.io/clipboard-apis/#security-considerations","target":"https://w3c.github.io/clipboard-apis/#security-considerations"},{"kind":"text","text":" - Security considerations for clipboard access"},{"kind":"text","text":"\n"}]}]},"type":{"type":"reference","typeArguments":[{"type":"intrinsic","name":"string"}],"name":"Promise","qualifiedName":"Promise","package":"typescript"},"is":{"declaration":false},"location":{"query":"web-utils/src/clipboard.Function.readClipboardText","hash":"readClipboardText"},"text":{"comment":"
    Function:

    readClipboardText

    \n
    Description:

    使用现代剪贴板API从系统剪贴板读取文本内容。Reads text content from the system clipboard using the modern Clipboard API

    \n
    Returns:

    解析为剪贴板文本内容的Promise。Promise that resolves to the clipboard text content

    \n
    Throws:

    如果剪贴板访问被拒绝或不受支持则抛出错误。Throws if clipboard access is denied or not supported

    \n
    Example:
    // Basic clipboard reading\nreadClipboardText()\n  .then(text => {\n    console.log('Clipboard content:', text);\n    document.getElementById('paste-area').textContent = text;\n  })\n  .catch(error => {\n    console.error('Failed to read clipboard:', error);\n  });\n
    \n
    Example:
    // Async/await usage with error handling\nasync function handlePaste() {\n  try {\n    const clipboardText = await readClipboardText();\n    if (clipboardText.trim()) {\n      processClipboardContent(clipboardText);\n    }\n  } catch (error) {\n    // Handle permission denied or unsupported browser\n    showFallbackPasteOption();\n  }\n}\n
    \n
    Example:
    // Check permissions before reading\nasync function safeReadClipboard() {\n  try {\n    const permission = await navigator.permissions.query({ name: 'clipboard-read' });\n    if (permission.state === 'granted') {\n      const text = await readClipboardText();\n      return text;\n    } else {\n      throw new Error('Clipboard read permission not granted');\n    }\n  } catch (error) {\n    console.warn('Clipboard access failed:', error);\n    return null;\n  }\n}\n
    \n
    Since:

    1.0.0

    \n
    See:
    \n"},"sources":[{"fileName":"packages/web-utils/src/clipboard.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/clipboard.ts","line":60,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/clipboard.ts#L60"}],"parentId":883}],"is":{"declaration":true},"location":{"query":"web-utils/src/clipboard.Function.readClipboardText","hash":""},"text":{},"parentId":882} diff --git a/docs/v1.0.0-beta01/data/web-utils/src/file.Function.downloadFile.json b/docs/v1.0.0-beta01/data/web-utils/src/file.Function.downloadFile.json new file mode 100644 index 000000000..76b11635c --- /dev/null +++ b/docs/v1.0.0-beta01/data/web-utils/src/file.Function.downloadFile.json @@ -0,0 +1 @@ +{"id":995,"name":"downloadFile","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/web-utils/src/file.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/file.ts","line":103,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/file.ts#L103"}],"signatures":[{"id":996,"name":"downloadFile","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"downloadFile"}]},{"tag":"@description","content":[{"kind":"text","text":"保存/下载文件。Saves/downloads a file"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\ndownloadFile('file content', 'file.txt', 'text/plain');\ndownloadFile('data:image/png;base64,...', 'image.png', 'image/png');\n```"}]}]},"parameters":[{"id":997,"name":"content","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"文件内容。The file content"}]},"type":{"type":"intrinsic","name":"string"},"text":{"comment":"

    文件内容。The file content

    \n"}},{"id":998,"name":"filename","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"文件名。The filename"}]},"type":{"type":"intrinsic","name":"string"},"text":{"comment":"

    文件名。The filename

    \n"}},{"id":999,"name":"contentType","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"文件类型。The file content type"}]},"type":{"type":"intrinsic","name":"string"},"text":{"comment":"

    文件类型。The file content type

    \n"}}],"type":{"type":"intrinsic","name":"void"},"is":{"declaration":false},"location":{"query":"web-utils/src/file.Function.downloadFile","hash":"downloadFile"},"text":{"comment":"
    Function:

    downloadFile

    \n
    Description:

    保存/下载文件。Saves/downloads a file

    \n
    Example:
    downloadFile('file content', 'file.txt', 'text/plain');\ndownloadFile('data:image/png;base64,...', 'image.png', 'image/png');\n
    \n"},"sources":[{"fileName":"packages/web-utils/src/file.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/file.ts","line":103,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/file.ts#L103"}],"parentId":995}],"is":{"declaration":true},"location":{"query":"web-utils/src/file.Function.downloadFile","hash":""},"text":{},"parentId":988} diff --git a/docs/v1.0.0-beta01/data/web-utils/src/file.Function.downloadImageFileByUrl.json b/docs/v1.0.0-beta01/data/web-utils/src/file.Function.downloadImageFileByUrl.json new file mode 100644 index 000000000..474371fe2 --- /dev/null +++ b/docs/v1.0.0-beta01/data/web-utils/src/file.Function.downloadImageFileByUrl.json @@ -0,0 +1 @@ +{"id":1000,"name":"downloadImageFileByUrl","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/web-utils/src/file.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/file.ts","line":128,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/file.ts#L128"}],"signatures":[{"id":1001,"name":"downloadImageFileByUrl","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"downloadImageFileByUrl"}]},{"tag":"@description","content":[{"kind":"text","text":"根据URL下载图片文件。Downloads an image file by URL"}]},{"tag":"@returns","content":[{"kind":"text","text":"是否下载成功。Whether the download was successful"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\ndownloadImageFileByUrl('https://example.com/image.jpg', 'image.jpg');\ndownloadImageFileByUrl('https://example.com/image.png', 'image.png', 'image/png');\n```"}]}]},"parameters":[{"id":1002,"name":"url","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"图片URL。The image URL"}]},"type":{"type":"intrinsic","name":"string"},"text":{"comment":"

    图片URL。The image URL

    \n"}},{"id":1003,"name":"filename","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"文件名。The filename"}]},"type":{"type":"intrinsic","name":"string"},"text":{"comment":"

    文件名。The filename

    \n"}},{"id":1004,"name":"imageType","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"图片类型。The image type"}]},"type":{"type":"intrinsic","name":"string"},"defaultValue":"'image/jpeg'","text":{"comment":"

    图片类型。The image type

    \n"}}],"type":{"type":"reference","typeArguments":[{"type":"intrinsic","name":"unknown"}],"name":"Promise","qualifiedName":"Promise","package":"typescript"},"is":{"declaration":false},"location":{"query":"web-utils/src/file.Function.downloadImageFileByUrl","hash":"downloadImageFileByUrl"},"text":{"comment":"
    Function:

    downloadImageFileByUrl

    \n
    Description:

    根据URL下载图片文件。Downloads an image file by URL

    \n
    Returns:

    是否下载成功。Whether the download was successful

    \n
    Example:
    downloadImageFileByUrl('https://example.com/image.jpg', 'image.jpg');\ndownloadImageFileByUrl('https://example.com/image.png', 'image.png', 'image/png');\n
    \n"},"sources":[{"fileName":"packages/web-utils/src/file.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/file.ts","line":128,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/file.ts#L128"}],"parentId":1000}],"is":{"declaration":true},"location":{"query":"web-utils/src/file.Function.downloadImageFileByUrl","hash":""},"text":{},"parentId":988} diff --git a/docs/v1.0.0-beta01/data/web-utils/src/file.Function.getFileExtension.json b/docs/v1.0.0-beta01/data/web-utils/src/file.Function.getFileExtension.json new file mode 100644 index 000000000..dd3935561 --- /dev/null +++ b/docs/v1.0.0-beta01/data/web-utils/src/file.Function.getFileExtension.json @@ -0,0 +1 @@ +{"id":1005,"name":"getFileExtension","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/web-utils/src/file.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/file.ts","line":165,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/file.ts#L165"}],"signatures":[{"id":1006,"name":"getFileExtension","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"getFileExtension"}]},{"tag":"@description","content":[{"kind":"text","text":"根据文件名获取文件扩展名"}]},{"tag":"@returns","content":[{"kind":"text","text":"文件扩展名"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\ngetFileExtension('file.txt'); // 'txt'\ngetFileExtension('file'); // ''\ngetFileExtension('.file'); // ''\ngetFileExtension('file.png'); // 'png'\n```"}]}]},"parameters":[{"id":1007,"name":"filename","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"文件名"}]},"type":{"type":"intrinsic","name":"string"},"text":{"comment":"

    文件名

    \n"}}],"type":{"type":"intrinsic","name":"string"},"is":{"declaration":false},"location":{"query":"web-utils/src/file.Function.getFileExtension","hash":"getFileExtension"},"text":{"comment":"
    Function:

    getFileExtension

    \n
    Description:

    根据文件名获取文件扩展名

    \n
    Returns:

    文件扩展名

    \n
    Example:
    getFileExtension('file.txt');    // 'txt'\ngetFileExtension('file');        // ''\ngetFileExtension('.file');       // ''\ngetFileExtension('file.png');    // 'png'\n
    \n"},"sources":[{"fileName":"packages/web-utils/src/file.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/file.ts","line":165,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/file.ts#L165"}],"parentId":1005}],"is":{"declaration":true},"location":{"query":"web-utils/src/file.Function.getFileExtension","hash":""},"text":{},"parentId":988} diff --git a/docs/v1.0.0-beta01/data/web-utils/src/file.Function.readFile.json b/docs/v1.0.0-beta01/data/web-utils/src/file.Function.readFile.json new file mode 100644 index 000000000..37db358d1 --- /dev/null +++ b/docs/v1.0.0-beta01/data/web-utils/src/file.Function.readFile.json @@ -0,0 +1 @@ +{"id":989,"name":"readFile","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/web-utils/src/file.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/file.ts","line":65,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/file.ts#L65"}],"signatures":[{"id":990,"name":"readFile","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"readFile"}]},{"tag":"@description","content":[{"kind":"text","text":"使用FileReader API将文件内容读取为文本。Reads a file's content as text using the FileReader API"}]},{"tag":"@returns","content":[{"kind":"text","text":"解析为文件文本内容的Promise。Promise that resolves to the file's text content"}]},{"tag":"@throws","content":[{"kind":"text","text":"如果文件读取失败或文件损坏则抛出错误。Throws if file reading fails or file is corrupted"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Handle file input change\nconst fileInput = document.getElementById('file-input');\nfileInput.addEventListener('change', async (event) => {\n const file = event.target.files[0];\n if (file) {\n try {\n const content = await readFile(file);\n document.getElementById('file-content').textContent = content;\n } catch (error) {\n console.error('Failed to read file:', error);\n }\n }\n});\n```"}]},{"tag":"@example","content":[{"kind":"text","text":"// Process multiple files with progress indication\nasync function processFiles(files) {\n const results = [];\n for (let i = 0; i < files.length; i++) {\n try {\n const content = await readFile(files[i]);\n results.push({ name: files[i].name, content });\n updateProgress((i + 1) / files.length * 100);\n } catch (error) {\n console.error("},{"kind":"code","text":"`Failed to read ${files[i].name}:`"},{"kind":"text","text":", error);\n }\n }\n return results;\n}"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// Validate file content before processing\nasync function validateAndReadFile(file) {\n // Check file size (e.g., max 5MB)\n if (file.size > 5 * 1024 * 1024) {\n throw new Error('File too large. Maximum size is 5MB.');\n }\n\n // Check file type\n const allowedTypes = ['text/plain', 'text/csv', 'application/json'];\n if (!allowedTypes.includes(file.type)) {\n throw new Error('Unsupported file type.');\n }\n\n return await readFile(file);\n}\n```"}]},{"tag":"@since","content":[{"kind":"text","text":"1.0.0"}]},{"tag":"@see","content":[{"kind":"text","text":" - "},{"kind":"inline-tag","tag":"@link","text":"readFileAsDataURL","target":992},{"kind":"text","text":" - Read file as data URL for images/media"},{"kind":"text","text":"\n"},{"kind":"text","text":" - "},{"kind":"inline-tag","tag":"@link","text":"https://developer.mozilla.org/en-US/docs/Web/API/FileReader","target":"https://developer.mozilla.org/en-US/docs/Web/API/FileReader"},{"kind":"text","text":" - Browser support: IE 10+, all modern browsers"},{"kind":"text","text":"\n"},{"kind":"text","text":" - "},{"kind":"inline-tag","tag":"@link","text":"https://www.w3.org/WAI/WCAG21/Understanding/error-identification.html","target":"https://www.w3.org/WAI/WCAG21/Understanding/error-identification.html"},{"kind":"text","text":" - WCAG: Error handling and user feedback"},{"kind":"text","text":"\n"}]}]},"parameters":[{"id":991,"name":"file","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"要读取的File对象(来自input[type=\"file\"]或拖放)。The File object to read (from input[type=\"file\"] or drag-and-drop)"}]},"type":{"type":"reference","name":"File","qualifiedName":"File","package":"typescript"},"text":{"comment":"

    要读取的File对象(来自input[type="file"]或拖放)。The File object to read (from input[type="file"] or drag-and-drop)

    \n"}}],"type":{"type":"reference","typeArguments":[{"type":"intrinsic","name":"string"}],"name":"Promise","qualifiedName":"Promise","package":"typescript"},"is":{"declaration":false},"location":{"query":"web-utils/src/file.Function.readFile","hash":"readFile"},"text":{"comment":"
    Function:

    readFile

    \n
    Description:

    使用FileReader API将文件内容读取为文本。Reads a file's content as text using the FileReader API

    \n
    Returns:

    解析为文件文本内容的Promise。Promise that resolves to the file's text content

    \n
    Throws:

    如果文件读取失败或文件损坏则抛出错误。Throws if file reading fails or file is corrupted

    \n
    Example:
    // Handle file input change\nconst fileInput = document.getElementById('file-input');\nfileInput.addEventListener('change', async (event) => {\n  const file = event.target.files[0];\n  if (file) {\n    try {\n      const content = await readFile(file);\n      document.getElementById('file-content').textContent = content;\n    } catch (error) {\n      console.error('Failed to read file:', error);\n    }\n  }\n});\n
    \n
    Example:

    // Process multiple files with progress indication\nasync function processFiles(files) {\n const results = [];\n for (let i = 0; i < files.length; i++) {\n try {\n const content = await readFile(files[i]);\n results.push({ name: files[i].name, content });\n updateProgress((i + 1) / files.length * 100);\n } catch (error) {\n console.error(Failed to read ${files[i].name}:, error);\n }\n }\n return results;\n}

    \n
    Example:
    // Validate file content before processing\nasync function validateAndReadFile(file) {\n  // Check file size (e.g., max 5MB)\n  if (file.size > 5 * 1024 * 1024) {\n    throw new Error('File too large. Maximum size is 5MB.');\n  }\n\n  // Check file type\n  const allowedTypes = ['text/plain', 'text/csv', 'application/json'];\n  if (!allowedTypes.includes(file.type)) {\n    throw new Error('Unsupported file type.');\n  }\n\n  return await readFile(file);\n}\n
    \n
    Since:

    1.0.0

    \n
    See:
    \n"},"sources":[{"fileName":"packages/web-utils/src/file.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/file.ts","line":65,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/file.ts#L65"}],"parentId":989}],"is":{"declaration":true},"location":{"query":"web-utils/src/file.Function.readFile","hash":""},"text":{},"parentId":988} diff --git a/docs/v1.0.0-beta01/data/web-utils/src/file.Function.readFileAsDataURL.json b/docs/v1.0.0-beta01/data/web-utils/src/file.Function.readFileAsDataURL.json new file mode 100644 index 000000000..744554949 --- /dev/null +++ b/docs/v1.0.0-beta01/data/web-utils/src/file.Function.readFileAsDataURL.json @@ -0,0 +1 @@ +{"id":992,"name":"readFileAsDataURL","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/web-utils/src/file.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/file.ts","line":84,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/file.ts#L84"}],"signatures":[{"id":993,"name":"readFileAsDataURL","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"readFileAsDataURL"}]},{"tag":"@description","content":[{"kind":"text","text":"读取文件内容为Data URL(用于image、video、audio本地预览等)。Reads file content as Data URL (for local preview of images, videos, audio, etc.)"}]},{"tag":"@returns","content":[{"kind":"text","text":"文件内容的Promise。Promise that resolves to the file content"}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\nreadFileAsDataURL(file).then(dataURL => console.log('file dataURL', dataURL)); // e.g input[type=\"file\"] onchange\n```"}]}]},"parameters":[{"id":994,"name":"file","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"文件对象。The File object"}]},"type":{"type":"reference","name":"File","qualifiedName":"File","package":"typescript"},"text":{"comment":"

    文件对象。The File object

    \n"}}],"type":{"type":"reference","typeArguments":[{"type":"intrinsic","name":"string"}],"name":"Promise","qualifiedName":"Promise","package":"typescript"},"is":{"declaration":false},"location":{"query":"web-utils/src/file.Function.readFileAsDataURL","hash":"readFileAsDataURL"},"text":{"comment":"
    Function:

    readFileAsDataURL

    \n
    Description:

    读取文件内容为Data URL(用于image、video、audio本地预览等)。Reads file content as Data URL (for local preview of images, videos, audio, etc.)

    \n
    Returns:

    文件内容的Promise。Promise that resolves to the file content

    \n
    Example:
    readFileAsDataURL(file).then(dataURL => console.log('file dataURL', dataURL));  // e.g input[type=\"file\"] onchange\n
    \n"},"sources":[{"fileName":"packages/web-utils/src/file.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/file.ts","line":84,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/file.ts#L84"}],"parentId":992}],"is":{"declaration":true},"location":{"query":"web-utils/src/file.Function.readFileAsDataURL","hash":""},"text":{},"parentId":988} diff --git a/docs/v1.0.0-beta01/data/web-utils/src/others.Function.isBase64.json b/docs/v1.0.0-beta01/data/web-utils/src/others.Function.isBase64.json new file mode 100644 index 000000000..c79eb2a80 --- /dev/null +++ b/docs/v1.0.0-beta01/data/web-utils/src/others.Function.isBase64.json @@ -0,0 +1 @@ +{"id":1194,"name":"isBase64","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/web-utils/src/others.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/others.ts","line":13,"character":13,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/others.ts#L13"}],"signatures":[{"id":1195,"name":"isBase64","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"isBase64"}]},{"tag":"@description","content":[{"kind":"text","text":"判断字符串是否是Base64格式。Determines whether a string is in Base64 format"}]},{"tag":"@returns","content":[{"kind":"text","text":"是否是Base64格式。Whether the string is in Base64 format"}]}]},"parameters":[{"id":1196,"name":"str","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"要检查的字符串。The string to check"}]},"type":{"type":"intrinsic","name":"string"},"text":{"comment":"

    要检查的字符串。The string to check

    \n"}}],"type":{"type":"intrinsic","name":"boolean"},"is":{"declaration":false},"location":{"query":"web-utils/src/others.Function.isBase64","hash":"isBase64"},"text":{"comment":"
    Function:

    isBase64

    \n
    Description:

    判断字符串是否是Base64格式。Determines whether a string is in Base64 format

    \n
    Returns:

    是否是Base64格式。Whether the string is in Base64 format

    \n"},"sources":[{"fileName":"packages/web-utils/src/others.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/others.ts","line":13,"character":24,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/others.ts#L13"}],"parentId":1194}],"is":{"declaration":true},"location":{"query":"web-utils/src/others.Function.isBase64","hash":""},"text":{},"parentId":1193} diff --git a/docs/v1.0.0-beta01/data/web-utils/src/rem.Interface.Window.json b/docs/v1.0.0-beta01/data/web-utils/src/rem.Interface.Window.json new file mode 100644 index 000000000..ac9f8e649 --- /dev/null +++ b/docs/v1.0.0-beta01/data/web-utils/src/rem.Interface.Window.json @@ -0,0 +1 @@ +{"id":1264,"name":"Window","kind":256,"kindString":"Interface","flags":{},"children":[{"id":1266,"name":"flexible","kind":1024,"kindString":"Property","flags":{},"sources":[{"fileName":"packages/web-utils/src/rem.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/rem.ts","line":19,"character":4,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/rem.ts#L19"}],"type":{"type":"intrinsic","name":"any"},"is":{"declaration":true},"location":{"query":"web-utils/src/rem.Interface.Window","hash":"flexible"},"text":{},"parentId":1264},{"id":1265,"name":"norem","kind":1024,"kindString":"Property","flags":{"isOptional":true},"sources":[{"fileName":"packages/web-utils/src/rem.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/rem.ts","line":18,"character":4,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/rem.ts#L18"}],"type":{"type":"intrinsic","name":"boolean"},"is":{"declaration":true},"location":{"query":"web-utils/src/rem.Interface.Window","hash":"norem"},"text":{},"parentId":1264}],"groups":[{"title":"Properties","children":[1266,1265]}],"sources":[{"fileName":"packages/web-utils/src/rem.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/rem.ts","line":17,"character":12,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/rem.ts#L17"}],"is":{"declaration":true},"location":{"query":"web-utils/src/rem.Interface.Window","hash":""},"text":{},"parentId":1263,"hierarchy":[{"name":"Window","isTarget":true,"linkId":"1264"}]} diff --git a/docs/v1.0.0-beta01/data/web-utils/src/security.Function.addCSRFHeader.json b/docs/v1.0.0-beta01/data/web-utils/src/security.Function.addCSRFHeader.json new file mode 100644 index 000000000..be05b38c0 --- /dev/null +++ b/docs/v1.0.0-beta01/data/web-utils/src/security.Function.addCSRFHeader.json @@ -0,0 +1 @@ +{"id":1326,"name":"addCSRFHeader","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/web-utils/src/security.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/security.ts","line":221,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/security.ts#L221"}],"signatures":[{"id":1327,"name":"addCSRFHeader","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[{"kind":"text","text":"请求头中添加 CSRF Token"}],"blockTags":[{"tag":"@returns","content":[{"kind":"text","text":"添加了 CSRF Token 的请求头对象"}]}]},"parameters":[{"id":1328,"name":"headers","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"请求头对象"}]},"type":{"type":"reference","typeArguments":[{"type":"intrinsic","name":"string"},{"type":"intrinsic","name":"string"}],"name":"Record","qualifiedName":"Record","package":"typescript"},"text":{"comment":"

    请求头对象

    \n"}},{"id":1329,"name":"token","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"CSRF Token"}]},"type":{"type":"intrinsic","name":"string"},"text":{"comment":"

    CSRF Token

    \n"}}],"type":{"type":"reference","typeArguments":[{"type":"intrinsic","name":"string"},{"type":"intrinsic","name":"string"}],"name":"Record","qualifiedName":"Record","package":"typescript"},"is":{"declaration":false},"location":{"query":"web-utils/src/security.Function.addCSRFHeader","hash":"addCSRFHeader"},"text":{"comment":"

    请求头中添加 CSRF Token

    \n
    Returns:

    添加了 CSRF Token 的请求头对象

    \n"},"sources":[{"fileName":"packages/web-utils/src/security.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/security.ts","line":221,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/security.ts#L221"}],"parentId":1326}],"is":{"declaration":true},"location":{"query":"web-utils/src/security.Function.addCSRFHeader","hash":""},"text":{},"parentId":1287} diff --git a/docs/v1.0.0-beta01/data/web-utils/src/security.Function.createBaseCSP.json b/docs/v1.0.0-beta01/data/web-utils/src/security.Function.createBaseCSP.json new file mode 100644 index 000000000..1d5ec586d --- /dev/null +++ b/docs/v1.0.0-beta01/data/web-utils/src/security.Function.createBaseCSP.json @@ -0,0 +1 @@ +{"id":1336,"name":"createBaseCSP","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/web-utils/src/security.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/security.ts","line":286,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/security.ts#L286"}],"signatures":[{"id":1337,"name":"createBaseCSP","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[{"kind":"text","text":"创建基本的 CSP 对象"}],"blockTags":[{"tag":"@returns","content":[{"kind":"text","text":"基本的 CSP 对象"}]}]},"parameters":[{"id":1338,"name":"nonce","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"可选的 nonce 值"}]},"type":{"type":"intrinsic","name":"string"},"text":{"comment":"

    可选的 nonce 值

    \n"}}],"type":{"type":"reference","typeArguments":[{"type":"intrinsic","name":"string"},{"type":"array","elementType":{"type":"intrinsic","name":"string"}}],"name":"Record","qualifiedName":"Record","package":"typescript"},"is":{"declaration":false},"location":{"query":"web-utils/src/security.Function.createBaseCSP","hash":"createBaseCSP"},"text":{"comment":"

    创建基本的 CSP 对象

    \n
    Returns:

    基本的 CSP 对象

    \n"},"sources":[{"fileName":"packages/web-utils/src/security.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/security.ts","line":286,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/security.ts#L286"}],"parentId":1336}],"is":{"declaration":true},"location":{"query":"web-utils/src/security.Function.createBaseCSP","hash":""},"text":{},"parentId":1287} diff --git a/docs/v1.0.0-beta01/data/web-utils/src/security.Function.escapeHtml.json b/docs/v1.0.0-beta01/data/web-utils/src/security.Function.escapeHtml.json new file mode 100644 index 000000000..071e6ac7a --- /dev/null +++ b/docs/v1.0.0-beta01/data/web-utils/src/security.Function.escapeHtml.json @@ -0,0 +1 @@ +{"id":1288,"name":"escapeHtml","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/web-utils/src/security.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/security.ts","line":18,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/security.ts#L18"}],"signatures":[{"id":1289,"name":"escapeHtml","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"escapeHtml"}]},{"tag":"@description","content":[{"kind":"text","text":"HTML转义函数,防止XSS攻击。HTML escape function to prevent XSS attacks"}]},{"tag":"@returns","content":[{"kind":"text","text":"转义后的字符串。The escaped string"}]}]},"parameters":[{"id":1290,"name":"str","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"需要转义的字符串。The string to escape"}]},"type":{"type":"intrinsic","name":"string"},"text":{"comment":"

    需要转义的字符串。The string to escape

    \n"}}],"type":{"type":"intrinsic","name":"string"},"is":{"declaration":false},"location":{"query":"web-utils/src/security.Function.escapeHtml","hash":"escapeHtml"},"text":{"comment":"
    Function:

    escapeHtml

    \n
    Description:

    HTML转义函数,防止XSS攻击。HTML escape function to prevent XSS attacks

    \n
    Returns:

    转义后的字符串。The escaped string

    \n"},"sources":[{"fileName":"packages/web-utils/src/security.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/security.ts","line":18,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/security.ts#L18"}],"parentId":1288}],"is":{"declaration":true},"location":{"query":"web-utils/src/security.Function.escapeHtml","hash":""},"text":{},"parentId":1287} diff --git a/docs/v1.0.0-beta01/data/web-utils/src/security.Function.generateCSPNonce.json b/docs/v1.0.0-beta01/data/web-utils/src/security.Function.generateCSPNonce.json new file mode 100644 index 000000000..07e64eda2 --- /dev/null +++ b/docs/v1.0.0-beta01/data/web-utils/src/security.Function.generateCSPNonce.json @@ -0,0 +1 @@ +{"id":1297,"name":"generateCSPNonce","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/web-utils/src/security.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/security.ts","line":85,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/security.ts#L85"}],"signatures":[{"id":1298,"name":"generateCSPNonce","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[{"kind":"text","text":"创建 CSP nonce 值"}],"blockTags":[{"tag":"@returns","content":[{"kind":"text","text":"随机生成的 nonce 值"}]}]},"type":{"type":"intrinsic","name":"string"},"is":{"declaration":false},"location":{"query":"web-utils/src/security.Function.generateCSPNonce","hash":"generateCSPNonce"},"text":{"comment":"

    创建 CSP nonce 值

    \n
    Returns:

    随机生成的 nonce 值

    \n"},"sources":[{"fileName":"packages/web-utils/src/security.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/security.ts","line":85,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/security.ts#L85"}],"parentId":1297}],"is":{"declaration":true},"location":{"query":"web-utils/src/security.Function.generateCSPNonce","hash":""},"text":{},"parentId":1287} diff --git a/docs/v1.0.0-beta01/data/web-utils/src/security.Function.generateCSRFToken.json b/docs/v1.0.0-beta01/data/web-utils/src/security.Function.generateCSRFToken.json new file mode 100644 index 000000000..865e4be13 --- /dev/null +++ b/docs/v1.0.0-beta01/data/web-utils/src/security.Function.generateCSRFToken.json @@ -0,0 +1 @@ +{"id":1317,"name":"generateCSRFToken","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/web-utils/src/security.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/security.ts","line":189,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/security.ts#L189"}],"signatures":[{"id":1318,"name":"generateCSRFToken","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[{"kind":"text","text":"生成 CSRF Token"}],"blockTags":[{"tag":"@returns","content":[{"kind":"text","text":"随机生成的 CSRF Token"}]}]},"type":{"type":"intrinsic","name":"string"},"is":{"declaration":false},"location":{"query":"web-utils/src/security.Function.generateCSRFToken","hash":"generateCSRFToken"},"text":{"comment":"

    生成 CSRF Token

    \n
    Returns:

    随机生成的 CSRF Token

    \n"},"sources":[{"fileName":"packages/web-utils/src/security.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/security.ts","line":189,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/security.ts#L189"}],"parentId":1317}],"is":{"declaration":true},"location":{"query":"web-utils/src/security.Function.generateCSRFToken","hash":""},"text":{},"parentId":1287} diff --git a/docs/v1.0.0-beta01/data/web-utils/src/security.Function.getCSRFToken.json b/docs/v1.0.0-beta01/data/web-utils/src/security.Function.getCSRFToken.json new file mode 100644 index 000000000..b4e59e834 --- /dev/null +++ b/docs/v1.0.0-beta01/data/web-utils/src/security.Function.getCSRFToken.json @@ -0,0 +1 @@ +{"id":1323,"name":"getCSRFToken","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/web-utils/src/security.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/security.ts","line":211,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/security.ts#L211"}],"signatures":[{"id":1324,"name":"getCSRFToken","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[{"kind":"text","text":"从 localStorage 获取 CSRF Token"}],"blockTags":[{"tag":"@returns","content":[{"kind":"text","text":"CSRF Token"}]}]},"parameters":[{"id":1325,"name":"key","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"存储的键名,默认为 'csrf_token'"}]},"type":{"type":"intrinsic","name":"string"},"defaultValue":"'csrf_token'","text":{"comment":"

    存储的键名,默认为 'csrf_token'

    \n"}}],"type":{"type":"intrinsic","name":"string"},"is":{"declaration":false},"location":{"query":"web-utils/src/security.Function.getCSRFToken","hash":"getCSRFToken"},"text":{"comment":"

    从 localStorage 获取 CSRF Token

    \n
    Returns:

    CSRF Token

    \n"},"sources":[{"fileName":"packages/web-utils/src/security.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/security.ts","line":211,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/security.ts#L211"}],"parentId":1323}],"is":{"declaration":true},"location":{"query":"web-utils/src/security.Function.getCSRFToken","hash":""},"text":{},"parentId":1287} diff --git a/docs/v1.0.0-beta01/data/web-utils/src/security.Function.maskBankCard.json b/docs/v1.0.0-beta01/data/web-utils/src/security.Function.maskBankCard.json new file mode 100644 index 000000000..94326dfd6 --- /dev/null +++ b/docs/v1.0.0-beta01/data/web-utils/src/security.Function.maskBankCard.json @@ -0,0 +1 @@ +{"id":1308,"name":"maskBankCard","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/web-utils/src/security.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/security.ts","line":145,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/security.ts#L145"}],"signatures":[{"id":1309,"name":"maskBankCard","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[{"kind":"text","text":"银行卡号脱敏(保留后 4 位)"}],"blockTags":[{"tag":"@returns","content":[{"kind":"text","text":"脱敏后的银行卡号"}]}]},"parameters":[{"id":1310,"name":"cardNumber","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"银行卡号"}]},"type":{"type":"intrinsic","name":"string"},"text":{"comment":"

    银行卡号

    \n"}}],"type":{"type":"intrinsic","name":"string"},"is":{"declaration":false},"location":{"query":"web-utils/src/security.Function.maskBankCard","hash":"maskBankCard"},"text":{"comment":"

    银行卡号脱敏(保留后 4 位)

    \n
    Returns:

    脱敏后的银行卡号

    \n"},"sources":[{"fileName":"packages/web-utils/src/security.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/security.ts","line":145,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/security.ts#L145"}],"parentId":1308}],"is":{"declaration":true},"location":{"query":"web-utils/src/security.Function.maskBankCard","hash":""},"text":{},"parentId":1287} diff --git a/docs/v1.0.0-beta01/data/web-utils/src/security.Function.maskEmail.json b/docs/v1.0.0-beta01/data/web-utils/src/security.Function.maskEmail.json new file mode 100644 index 000000000..bd223d869 --- /dev/null +++ b/docs/v1.0.0-beta01/data/web-utils/src/security.Function.maskEmail.json @@ -0,0 +1 @@ +{"id":1302,"name":"maskEmail","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/web-utils/src/security.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/security.ts","line":113,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/security.ts#L113"}],"signatures":[{"id":1303,"name":"maskEmail","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[{"kind":"text","text":"邮箱脱敏(保留用户名首尾字符和域名)"}],"blockTags":[{"tag":"@returns","content":[{"kind":"text","text":"脱敏后的邮箱"}]}]},"parameters":[{"id":1304,"name":"email","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"邮箱"}]},"type":{"type":"intrinsic","name":"string"},"text":{"comment":"

    邮箱

    \n"}}],"type":{"type":"intrinsic","name":"string"},"is":{"declaration":false},"location":{"query":"web-utils/src/security.Function.maskEmail","hash":"maskEmail"},"text":{"comment":"

    邮箱脱敏(保留用户名首尾字符和域名)

    \n
    Returns:

    脱敏后的邮箱

    \n"},"sources":[{"fileName":"packages/web-utils/src/security.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/security.ts","line":113,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/security.ts#L113"}],"parentId":1302}],"is":{"declaration":true},"location":{"query":"web-utils/src/security.Function.maskEmail","hash":""},"text":{},"parentId":1287} diff --git a/docs/v1.0.0-beta01/data/web-utils/src/security.Function.maskIDCard.json b/docs/v1.0.0-beta01/data/web-utils/src/security.Function.maskIDCard.json new file mode 100644 index 000000000..6c2d84065 --- /dev/null +++ b/docs/v1.0.0-beta01/data/web-utils/src/security.Function.maskIDCard.json @@ -0,0 +1 @@ +{"id":1305,"name":"maskIDCard","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/web-utils/src/security.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/security.ts","line":133,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/security.ts#L133"}],"signatures":[{"id":1306,"name":"maskIDCard","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[{"kind":"text","text":"身份证号脱敏(保留前 4 位和后 4 位)"}],"blockTags":[{"tag":"@returns","content":[{"kind":"text","text":"脱敏后的身份证号"}]}]},"parameters":[{"id":1307,"name":"idCard","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"身份证号"}]},"type":{"type":"intrinsic","name":"string"},"text":{"comment":"

    身份证号

    \n"}}],"type":{"type":"intrinsic","name":"string"},"is":{"declaration":false},"location":{"query":"web-utils/src/security.Function.maskIDCard","hash":"maskIDCard"},"text":{"comment":"

    身份证号脱敏(保留前 4 位和后 4 位)

    \n
    Returns:

    脱敏后的身份证号

    \n"},"sources":[{"fileName":"packages/web-utils/src/security.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/security.ts","line":133,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/security.ts#L133"}],"parentId":1305}],"is":{"declaration":true},"location":{"query":"web-utils/src/security.Function.maskIDCard","hash":""},"text":{},"parentId":1287} diff --git a/docs/v1.0.0-beta01/data/web-utils/src/security.Function.maskPhoneNumber.json b/docs/v1.0.0-beta01/data/web-utils/src/security.Function.maskPhoneNumber.json new file mode 100644 index 000000000..e033f53d2 --- /dev/null +++ b/docs/v1.0.0-beta01/data/web-utils/src/security.Function.maskPhoneNumber.json @@ -0,0 +1 @@ +{"id":1299,"name":"maskPhoneNumber","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/web-utils/src/security.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/security.ts","line":101,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/security.ts#L101"}],"signatures":[{"id":1300,"name":"maskPhoneNumber","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[{"kind":"text","text":"手机号脱敏(保留前 3 位和后 4 位)"}],"blockTags":[{"tag":"@returns","content":[{"kind":"text","text":"脱敏后的手机号"}]}]},"parameters":[{"id":1301,"name":"phoneNumber","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"手机号"}]},"type":{"type":"intrinsic","name":"string"},"text":{"comment":"

    手机号

    \n"}}],"type":{"type":"intrinsic","name":"string"},"is":{"declaration":false},"location":{"query":"web-utils/src/security.Function.maskPhoneNumber","hash":"maskPhoneNumber"},"text":{"comment":"

    手机号脱敏(保留前 3 位和后 4 位)

    \n
    Returns:

    脱敏后的手机号

    \n"},"sources":[{"fileName":"packages/web-utils/src/security.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/security.ts","line":101,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/security.ts#L101"}],"parentId":1299}],"is":{"declaration":true},"location":{"query":"web-utils/src/security.Function.maskPhoneNumber","hash":""},"text":{},"parentId":1287} diff --git a/docs/v1.0.0-beta01/data/web-utils/src/security.Function.maskText.json b/docs/v1.0.0-beta01/data/web-utils/src/security.Function.maskText.json new file mode 100644 index 000000000..e1f3b113a --- /dev/null +++ b/docs/v1.0.0-beta01/data/web-utils/src/security.Function.maskText.json @@ -0,0 +1 @@ +{"id":1311,"name":"maskText","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/web-utils/src/security.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/security.ts","line":160,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/security.ts#L160"}],"signatures":[{"id":1312,"name":"maskText","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[{"kind":"text","text":"通用文本脱敏函数"}],"blockTags":[{"tag":"@returns","content":[{"kind":"text","text":"脱敏后的文本"}]}]},"parameters":[{"id":1313,"name":"text","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"需要脱敏的文本"}]},"type":{"type":"intrinsic","name":"string"},"text":{"comment":"

    需要脱敏的文本

    \n"}},{"id":1314,"name":"visibleStartChars","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"开头可见字符数"}]},"type":{"type":"intrinsic","name":"number"},"defaultValue":"0","text":{"comment":"

    开头可见字符数

    \n"}},{"id":1315,"name":"visibleEndChars","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"结尾可见字符数"}]},"type":{"type":"intrinsic","name":"number"},"defaultValue":"0","text":{"comment":"

    结尾可见字符数

    \n"}},{"id":1316,"name":"mask","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"遮罩字符,默认为 *"}]},"type":{"type":"intrinsic","name":"string"},"defaultValue":"'*'","text":{"comment":"

    遮罩字符,默认为 *

    \n"}}],"type":{"type":"intrinsic","name":"string"},"is":{"declaration":false},"location":{"query":"web-utils/src/security.Function.maskText","hash":"maskText"},"text":{"comment":"

    通用文本脱敏函数

    \n
    Returns:

    脱敏后的文本

    \n"},"sources":[{"fileName":"packages/web-utils/src/security.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/security.ts","line":160,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/security.ts#L160"}],"parentId":1311}],"is":{"declaration":true},"location":{"query":"web-utils/src/security.Function.maskText","hash":""},"text":{},"parentId":1287} diff --git a/docs/v1.0.0-beta01/data/web-utils/src/security.Function.parseCSP.json b/docs/v1.0.0-beta01/data/web-utils/src/security.Function.parseCSP.json new file mode 100644 index 000000000..bc05a7360 --- /dev/null +++ b/docs/v1.0.0-beta01/data/web-utils/src/security.Function.parseCSP.json @@ -0,0 +1 @@ +{"id":1330,"name":"parseCSP","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/web-utils/src/security.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/security.ts","line":246,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/security.ts#L246"}],"signatures":[{"id":1331,"name":"parseCSP","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[{"kind":"text","text":"解析 CSP 策略字符串为对象"}],"blockTags":[{"tag":"@returns","content":[{"kind":"text","text":"解析后的 CSP 对象"}]}]},"parameters":[{"id":1332,"name":"cspString","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"CSP 策略字符串"}]},"type":{"type":"intrinsic","name":"string"},"text":{"comment":"

    CSP 策略字符串

    \n"}}],"type":{"type":"reference","typeArguments":[{"type":"intrinsic","name":"string"},{"type":"array","elementType":{"type":"intrinsic","name":"string"}}],"name":"Record","qualifiedName":"Record","package":"typescript"},"is":{"declaration":false},"location":{"query":"web-utils/src/security.Function.parseCSP","hash":"parseCSP"},"text":{"comment":"

    解析 CSP 策略字符串为对象

    \n
    Returns:

    解析后的 CSP 对象

    \n"},"sources":[{"fileName":"packages/web-utils/src/security.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/security.ts","line":246,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/security.ts#L246"}],"parentId":1330}],"is":{"declaration":true},"location":{"query":"web-utils/src/security.Function.parseCSP","hash":""},"text":{},"parentId":1287} diff --git a/docs/v1.0.0-beta01/data/web-utils/src/security.Function.sanitizeUrl.json b/docs/v1.0.0-beta01/data/web-utils/src/security.Function.sanitizeUrl.json new file mode 100644 index 000000000..869b186c9 --- /dev/null +++ b/docs/v1.0.0-beta01/data/web-utils/src/security.Function.sanitizeUrl.json @@ -0,0 +1 @@ +{"id":1294,"name":"sanitizeUrl","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/web-utils/src/security.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/security.ts","line":52,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/security.ts#L52"}],"signatures":[{"id":1295,"name":"sanitizeUrl","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"sanitizeUrl"}]},{"tag":"@description","content":[{"kind":"text","text":"过滤URL,防止JavaScript伪协议攻击。Filters URLs to prevent JavaScript pseudo-protocol attacks"}]},{"tag":"@returns","content":[{"kind":"text","text":"过滤后的URL。The filtered URL"}]}]},"parameters":[{"id":1296,"name":"url","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"需要过滤的URL。The URL to filter"}]},"type":{"type":"intrinsic","name":"string"},"text":{"comment":"

    需要过滤的URL。The URL to filter

    \n"}}],"type":{"type":"intrinsic","name":"string"},"is":{"declaration":false},"location":{"query":"web-utils/src/security.Function.sanitizeUrl","hash":"sanitizeUrl"},"text":{"comment":"
    Function:

    sanitizeUrl

    \n
    Description:

    过滤URL,防止JavaScript伪协议攻击。Filters URLs to prevent JavaScript pseudo-protocol attacks

    \n
    Returns:

    过滤后的URL。The filtered URL

    \n"},"sources":[{"fileName":"packages/web-utils/src/security.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/security.ts","line":52,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/security.ts#L52"}],"parentId":1294}],"is":{"declaration":true},"location":{"query":"web-utils/src/security.Function.sanitizeUrl","hash":""},"text":{},"parentId":1287} diff --git a/docs/v1.0.0-beta01/data/web-utils/src/security.Function.storeCSRFToken.json b/docs/v1.0.0-beta01/data/web-utils/src/security.Function.storeCSRFToken.json new file mode 100644 index 000000000..18b416fc3 --- /dev/null +++ b/docs/v1.0.0-beta01/data/web-utils/src/security.Function.storeCSRFToken.json @@ -0,0 +1 @@ +{"id":1319,"name":"storeCSRFToken","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/web-utils/src/security.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/security.ts","line":202,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/security.ts#L202"}],"signatures":[{"id":1320,"name":"storeCSRFToken","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[{"kind":"text","text":"将 CSRF Token 存储到 localStorage"}]},"parameters":[{"id":1321,"name":"token","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"CSRF Token"}]},"type":{"type":"intrinsic","name":"string"},"text":{"comment":"

    CSRF Token

    \n"}},{"id":1322,"name":"key","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"存储的键名,默认为 'csrf_token'"}]},"type":{"type":"intrinsic","name":"string"},"defaultValue":"'csrf_token'","text":{"comment":"

    存储的键名,默认为 'csrf_token'

    \n"}}],"type":{"type":"intrinsic","name":"void"},"is":{"declaration":false},"location":{"query":"web-utils/src/security.Function.storeCSRFToken","hash":"storeCSRFToken"},"text":{"comment":"

    将 CSRF Token 存储到 localStorage

    \n"},"sources":[{"fileName":"packages/web-utils/src/security.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/security.ts","line":202,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/security.ts#L202"}],"parentId":1319}],"is":{"declaration":true},"location":{"query":"web-utils/src/security.Function.storeCSRFToken","hash":""},"text":{},"parentId":1287} diff --git a/docs/v1.0.0-beta01/data/web-utils/src/security.Function.stringifyCSP.json b/docs/v1.0.0-beta01/data/web-utils/src/security.Function.stringifyCSP.json new file mode 100644 index 000000000..9d2e37375 --- /dev/null +++ b/docs/v1.0.0-beta01/data/web-utils/src/security.Function.stringifyCSP.json @@ -0,0 +1 @@ +{"id":1333,"name":"stringifyCSP","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/web-utils/src/security.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/security.ts","line":270,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/security.ts#L270"}],"signatures":[{"id":1334,"name":"stringifyCSP","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[{"kind":"text","text":"将 CSP 对象转换为策略字符串"}],"blockTags":[{"tag":"@returns","content":[{"kind":"text","text":"CSP 策略字符串"}]}]},"parameters":[{"id":1335,"name":"cspObject","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"CSP 对象"}]},"type":{"type":"reference","typeArguments":[{"type":"intrinsic","name":"string"},{"type":"array","elementType":{"type":"intrinsic","name":"string"}}],"name":"Record","qualifiedName":"Record","package":"typescript"},"text":{"comment":"

    CSP 对象

    \n"}}],"type":{"type":"intrinsic","name":"string"},"is":{"declaration":false},"location":{"query":"web-utils/src/security.Function.stringifyCSP","hash":"stringifyCSP"},"text":{"comment":"

    将 CSP 对象转换为策略字符串

    \n
    Returns:

    CSP 策略字符串

    \n"},"sources":[{"fileName":"packages/web-utils/src/security.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/security.ts","line":270,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/security.ts#L270"}],"parentId":1333}],"is":{"declaration":true},"location":{"query":"web-utils/src/security.Function.stringifyCSP","hash":""},"text":{},"parentId":1287} diff --git a/docs/v1.0.0-beta01/data/web-utils/src/security.Function.unescapeHtml.json b/docs/v1.0.0-beta01/data/web-utils/src/security.Function.unescapeHtml.json new file mode 100644 index 000000000..fd1e7b7ec --- /dev/null +++ b/docs/v1.0.0-beta01/data/web-utils/src/security.Function.unescapeHtml.json @@ -0,0 +1 @@ +{"id":1291,"name":"unescapeHtml","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/web-utils/src/security.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/security.ts","line":35,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/security.ts#L35"}],"signatures":[{"id":1292,"name":"unescapeHtml","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"unescapeHtml"}]},{"tag":"@description","content":[{"kind":"text","text":"HTML反转义函数。HTML unescape function"}]},{"tag":"@returns","content":[{"kind":"text","text":"反转义后的字符串。The unescaped string"}]}]},"parameters":[{"id":1293,"name":"str","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"需要反转义的字符串。The string to unescape"}]},"type":{"type":"intrinsic","name":"string"},"text":{"comment":"

    需要反转义的字符串。The string to unescape

    \n"}}],"type":{"type":"intrinsic","name":"string"},"is":{"declaration":false},"location":{"query":"web-utils/src/security.Function.unescapeHtml","hash":"unescapeHtml"},"text":{"comment":"
    Function:

    unescapeHtml

    \n
    Description:

    HTML反转义函数。HTML unescape function

    \n
    Returns:

    反转义后的字符串。The unescaped string

    \n"},"sources":[{"fileName":"packages/web-utils/src/security.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/security.ts","line":35,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/security.ts#L35"}],"parentId":1291}],"is":{"declaration":true},"location":{"query":"web-utils/src/security.Function.unescapeHtml","hash":""},"text":{},"parentId":1287} diff --git a/docs/v1.0.0-beta01/data/web-utils/src/storage.Function.default.json b/docs/v1.0.0-beta01/data/web-utils/src/storage.Function.default.json new file mode 100644 index 000000000..61d766743 --- /dev/null +++ b/docs/v1.0.0-beta01/data/web-utils/src/storage.Function.default.json @@ -0,0 +1 @@ +{"id":1340,"name":"default","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/web-utils/src/storage.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/storage.ts","line":41,"character":9,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/storage.ts#L41"}],"signatures":[{"id":1341,"name":"default","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[{"kind":"text","text":"Storage"}]},"parameters":[{"id":1342,"name":"type","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"storage type, default: 'local'\r\n@example:\r\n Storage('local').set(a, [1, 2, 3]);\r\n Storage('session').get('a');"}]},"type":{"type":"intrinsic","name":"string"},"defaultValue":"'local'","text":{"comment":"

    storage type, default: 'local'\n@example:\n Storage('local').set(a, [1, 2, 3]);\n Storage('session').get('a');

    \n"}}],"type":{"type":"reflection","declaration":{"id":1343,"name":"default","kind":65536,"kindString":"Type literal","flags":{},"children":[{"id":1352,"name":"get","kind":2048,"kindString":"Method","flags":{},"sources":[{"fileName":"packages/web-utils/src/storage.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/storage.ts","line":71,"character":4,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/storage.ts#L71"}],"signatures":[{"id":1353,"name":"get","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[{"kind":"text","text":"Storage.getLocal 获取Storage"}]},"parameters":[{"id":1354,"name":"key","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Storage key"}]},"type":{"type":"intrinsic","name":"string"},"text":{"comment":"

    Storage key

    \n"}}],"type":{"type":"intrinsic","name":"any"},"is":{"declaration":false},"location":{"query":"web-utils/src/storage.Function.default","hash":"default.get.get"},"text":{"comment":"

    Storage.getLocal 获取Storage

    \n"},"sources":[{"fileName":"packages/web-utils/src/storage.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/storage.ts","line":71,"character":4,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/storage.ts#L71"}],"parentId":1340}],"is":{"declaration":true},"location":{"query":"web-utils/src/storage.Function.default","hash":"default.get"},"text":{},"parentId":1340},{"id":1355,"name":"remove","kind":2048,"kindString":"Method","flags":{},"sources":[{"fileName":"packages/web-utils/src/storage.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/storage.ts","line":107,"character":4,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/storage.ts#L107"}],"signatures":[{"id":1356,"name":"remove","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[{"kind":"text","text":"Storage.removeLocal 删除Storage"}]},"parameters":[{"id":1357,"name":"key","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"Storage key"}]},"type":{"type":"intrinsic","name":"string"},"text":{"comment":"

    Storage key

    \n"}}],"type":{"type":"intrinsic","name":"void"},"is":{"declaration":false},"location":{"query":"web-utils/src/storage.Function.default","hash":"default.remove.remove"},"text":{"comment":"

    Storage.removeLocal 删除Storage

    \n"},"sources":[{"fileName":"packages/web-utils/src/storage.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/storage.ts","line":107,"character":4,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/storage.ts#L107"}],"parentId":1340}],"is":{"declaration":true},"location":{"query":"web-utils/src/storage.Function.default","hash":"default.remove"},"text":{},"parentId":1340},{"id":1344,"name":"set","kind":2048,"kindString":"Method","flags":{},"sources":[{"fileName":"packages/web-utils/src/storage.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/storage.ts","line":51,"character":4,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/storage.ts#L51"}],"signatures":[{"id":1345,"name":"set","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[{"kind":"text","text":"Storage.setLocal 设置Storage"}]},"parameters":[{"id":1346,"name":"key","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"Storage key"}]},"type":{"type":"intrinsic","name":"string"},"text":{"comment":"

    Storage key

    \n"}},{"id":1347,"name":"value","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"Storage value"}]},"type":{"type":"union","types":[{"type":"intrinsic","name":"string"},{"type":"reflection","declaration":{"id":1348,"name":"__type","kind":65536,"kindString":"Type literal","flags":{},"sources":[{"fileName":"packages/web-utils/src/storage.ts","line":55,"character":10,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/storage.ts#L55"}],"indexSignature":{"id":1349,"name":"__index","kind":8192,"kindString":"Index signature","flags":{},"parameters":[{"id":1350,"name":"key","kind":32768,"flags":{},"type":{"type":"intrinsic","name":"string"}}],"type":{"type":"intrinsic","name":"unknown"}}}}]},"text":{"comment":"

    Storage value

    \n"}},{"id":1351,"name":"expiration","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"过期时间(毫秒), 0表示永不过期"}]},"type":{"type":"intrinsic","name":"number"},"defaultValue":"DEFAULT_EXPIRATION","text":{"comment":"

    过期时间(毫秒), 0表示永不过期

    \n"}}],"type":{"type":"intrinsic","name":"void"},"is":{"declaration":false},"location":{"query":"web-utils/src/storage.Function.default","hash":"default.set.set"},"text":{"comment":"

    Storage.setLocal 设置Storage

    \n"},"sources":[{"fileName":"packages/web-utils/src/storage.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/storage.ts","line":51,"character":4,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/storage.ts#L51"}],"parentId":1340}],"is":{"declaration":true},"location":{"query":"web-utils/src/storage.Function.default","hash":"default.set"},"text":{},"parentId":1340}],"groups":[{"title":"Methods","children":[1352,1355,1344]}],"sources":[{"fileName":"packages/web-utils/src/storage.ts","line":44,"character":9,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/storage.ts#L44"}],"location":{"query":"web-utils/src/storage.Function.default","hash":"default"}}},"is":{"declaration":false},"location":{"query":"web-utils/src/storage.Function.default","hash":"default"},"text":{"comment":"

    Storage

    \n"},"sources":[{"fileName":"packages/web-utils/src/storage.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/storage.ts","line":41,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/storage.ts#L41"}],"parentId":1340}],"is":{"declaration":true},"location":{"query":"web-utils/src/storage.Function.default","hash":""},"text":{},"parentId":1339} diff --git a/docs/v1.0.0-beta01/data/web-utils/src/worker.Class.WorkerPool.json b/docs/v1.0.0-beta01/data/web-utils/src/worker.Class.WorkerPool.json new file mode 100644 index 000000000..0b5056294 --- /dev/null +++ b/docs/v1.0.0-beta01/data/web-utils/src/worker.Class.WorkerPool.json @@ -0,0 +1 @@ +{"id":1410,"name":"WorkerPool","kind":128,"kindString":"Class","flags":{},"comment":{"summary":[{"kind":"text","text":"工作线程池 - 管理多个 Worker 实例"}]},"children":[{"id":1411,"name":"constructor","kind":512,"kindString":"Constructor","flags":{},"sources":[{"fileName":"packages/web-utils/src/worker.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/worker.ts","line":44,"character":2,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/worker.ts#L44"}],"signatures":[{"id":1412,"name":"constructor","kind":16384,"kindString":"Constructor signature","flags":{},"comment":{"summary":[{"kind":"text","text":"创建工作线程池"}]},"parameters":[{"id":1413,"name":"workerScript","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"Worker 脚本路径或函数"}]},"type":{"type":"union","types":[{"type":"intrinsic","name":"string"},{"type":"reflection","declaration":{"id":1414,"name":"__type","kind":65536,"kindString":"Type literal","flags":{},"sources":[{"fileName":"packages/web-utils/src/worker.ts","line":45,"character":36,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/worker.ts#L45"}],"signatures":[{"id":1415,"name":"__type","kind":4096,"kindString":"Call signature","flags":{},"type":{"type":"intrinsic","name":"any"}}]}}]},"text":{"comment":"

    Worker 脚本路径或函数

    \n"}},{"id":1416,"name":"size","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"线程池大小"}]},"type":{"type":"intrinsic","name":"number"},"defaultValue":"...","text":{"comment":"

    线程池大小

    \n"}}],"type":{"type":"reference","id":1410,"name":"WorkerPool"},"is":{"declaration":false},"location":{"query":"web-utils/src/worker.WorkerPool.Constructor.constructor","hash":"constructor.new WorkerPool"},"text":{"comment":"

    创建工作线程池

    \n"},"sources":[{"fileName":"packages/web-utils/src/worker.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/worker.ts","line":44,"character":2,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/worker.ts#L44"}],"parentId":1411}],"is":{"declaration":true},"location":{"query":"web-utils/src/worker.Class.WorkerPool","hash":"constructor"},"text":{},"parentId":1410},{"id":1429,"name":"activeWorkers","kind":1024,"kindString":"Property","flags":{"isPrivate":true},"sources":[{"fileName":"packages/web-utils/src/worker.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/worker.ts","line":37,"character":10,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/worker.ts#L37"}],"type":{"type":"reference","typeArguments":[{"type":"reference","name":"Worker","qualifiedName":"Worker","package":"typescript"}],"name":"Set","qualifiedName":"Set","package":"typescript"},"defaultValue":"...","is":{"declaration":true},"location":{"query":"web-utils/src/worker.Class.WorkerPool","hash":"activeWorkers"},"text":{},"parentId":1410},{"id":1418,"name":"queue","kind":1024,"kindString":"Property","flags":{"isPrivate":true},"sources":[{"fileName":"packages/web-utils/src/worker.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/worker.ts","line":32,"character":10,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/worker.ts#L32"}],"type":{"type":"array","elementType":{"type":"reflection","declaration":{"id":1419,"name":"__type","kind":65536,"kindString":"Type literal","flags":{},"children":[{"id":1425,"name":"reject","kind":1024,"kindString":"Property","flags":{},"sources":[{"fileName":"packages/web-utils/src/worker.ts","line":35,"character":4,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/worker.ts#L35"}],"type":{"type":"reflection","declaration":{"id":1426,"name":"__type","kind":65536,"kindString":"Type literal","flags":{},"sources":[{"fileName":"packages/web-utils/src/worker.ts","line":35,"character":12,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/worker.ts#L35"}],"signatures":[{"id":1427,"name":"__type","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":1428,"name":"reason","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"type":{"type":"intrinsic","name":"any"}}],"type":{"type":"intrinsic","name":"void"}}]}}},{"id":1421,"name":"resolve","kind":1024,"kindString":"Property","flags":{},"sources":[{"fileName":"packages/web-utils/src/worker.ts","line":34,"character":4,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/worker.ts#L34"}],"type":{"type":"reflection","declaration":{"id":1422,"name":"__type","kind":65536,"kindString":"Type literal","flags":{},"sources":[{"fileName":"packages/web-utils/src/worker.ts","line":34,"character":13,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/worker.ts#L34"}],"signatures":[{"id":1423,"name":"__type","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":1424,"name":"value","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"intrinsic","name":"any"}}],"type":{"type":"intrinsic","name":"void"}}]}}},{"id":1420,"name":"task","kind":1024,"kindString":"Property","flags":{},"sources":[{"fileName":"packages/web-utils/src/worker.ts","line":33,"character":4,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/worker.ts#L33"}],"type":{"type":"intrinsic","name":"any"}}],"groups":[{"title":"Properties","children":[1425,1421,1420]}],"sources":[{"fileName":"packages/web-utils/src/worker.ts","line":32,"character":23,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/worker.ts#L32"}]}}},"defaultValue":"[]","is":{"declaration":true},"location":{"query":"web-utils/src/worker.Class.WorkerPool","hash":"queue"},"text":{},"parentId":1410},{"id":1433,"name":"size","kind":1024,"kindString":"Property","flags":{"isPrivate":true},"comment":{"summary":[{"kind":"text","text":"线程池大小"}]},"sources":[{"fileName":"packages/web-utils/src/worker.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/worker.ts","line":46,"character":12,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/worker.ts#L46"}],"type":{"type":"intrinsic","name":"number"},"defaultValue":"...","is":{"declaration":true},"location":{"query":"web-utils/src/worker.Class.WorkerPool","hash":"size"},"text":{"comment":"

    线程池大小

    \n"},"parentId":1410},{"id":1430,"name":"workerScript","kind":1024,"kindString":"Property","flags":{"isPrivate":true},"comment":{"summary":[{"kind":"text","text":"Worker 脚本路径或函数"}]},"sources":[{"fileName":"packages/web-utils/src/worker.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/worker.ts","line":45,"character":12,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/worker.ts#L45"}],"type":{"type":"union","types":[{"type":"intrinsic","name":"string"},{"type":"reflection","declaration":{"id":1431,"name":"__type","kind":65536,"kindString":"Type literal","flags":{},"sources":[{"fileName":"packages/web-utils/src/worker.ts","line":45,"character":36,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/worker.ts#L45"}],"signatures":[{"id":1432,"name":"__type","kind":4096,"kindString":"Call signature","flags":{},"type":{"type":"intrinsic","name":"any"}}]}}]},"is":{"declaration":true},"location":{"query":"web-utils/src/worker.Class.WorkerPool","hash":"workerScript"},"text":{"comment":"

    Worker 脚本路径或函数

    \n"},"parentId":1410},{"id":1417,"name":"workers","kind":1024,"kindString":"Property","flags":{"isPrivate":true},"sources":[{"fileName":"packages/web-utils/src/worker.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/worker.ts","line":31,"character":10,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/worker.ts#L31"}],"type":{"type":"array","elementType":{"type":"reference","name":"Worker","qualifiedName":"Worker","package":"typescript"}},"defaultValue":"[]","is":{"declaration":true},"location":{"query":"web-utils/src/worker.Class.WorkerPool","hash":"workers"},"text":{},"parentId":1410},{"id":1446,"name":"exec","kind":2048,"kindString":"Method","flags":{},"sources":[{"fileName":"packages/web-utils/src/worker.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/worker.ts","line":135,"character":2,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/worker.ts#L135"}],"signatures":[{"id":1447,"name":"exec","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[{"kind":"text","text":"提交任务到工作线程池"}],"blockTags":[{"tag":"@returns","content":[{"kind":"text","text":"Promise,解析为工作线程的响应"}]}]},"parameters":[{"id":1448,"name":"data","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"要处理的数据"}]},"type":{"type":"intrinsic","name":"any"},"text":{"comment":"

    要处理的数据

    \n"}}],"type":{"type":"reference","typeArguments":[{"type":"intrinsic","name":"any"}],"name":"Promise","qualifiedName":"Promise","package":"typescript"},"is":{"declaration":false},"location":{"query":"web-utils/src/worker.WorkerPool.Method.exec","hash":"exec.exec"},"text":{"comment":"

    提交任务到工作线程池

    \n
    Returns:

    Promise,解析为工作线程的响应

    \n"},"sources":[{"fileName":"packages/web-utils/src/worker.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/worker.ts","line":135,"character":2,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/worker.ts#L135"}],"parentId":1446}],"is":{"declaration":true},"location":{"query":"web-utils/src/worker.Class.WorkerPool","hash":"exec"},"text":{},"parentId":1410},{"id":1440,"name":"handleWorkerError","kind":2048,"kindString":"Method","flags":{"isPrivate":true},"sources":[{"fileName":"packages/web-utils/src/worker.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/worker.ts","line":97,"character":10,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/worker.ts#L97"}],"signatures":[{"id":1441,"name":"handleWorkerError","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[{"kind":"text","text":"处理 Worker 错误"}]},"parameters":[{"id":1442,"name":"worker","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"Worker","qualifiedName":"Worker","package":"typescript"},"text":{}},{"id":1443,"name":"error","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"ErrorEvent","qualifiedName":"ErrorEvent","package":"typescript"},"text":{}}],"type":{"type":"intrinsic","name":"void"},"is":{"declaration":false},"location":{"query":"web-utils/src/worker.WorkerPool.Method.handleWorkerError","hash":"handleWorkerError.handleWorkerError"},"text":{"comment":"

    处理 Worker 错误

    \n"},"sources":[{"fileName":"packages/web-utils/src/worker.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/worker.ts","line":97,"character":2,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/worker.ts#L97"}],"parentId":1440}],"is":{"declaration":true},"location":{"query":"web-utils/src/worker.Class.WorkerPool","hash":"handleWorkerError"},"text":{},"parentId":1410},{"id":1436,"name":"handleWorkerMessage","kind":2048,"kindString":"Method","flags":{"isPrivate":true},"sources":[{"fileName":"packages/web-utils/src/worker.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/worker.ts","line":79,"character":10,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/worker.ts#L79"}],"signatures":[{"id":1437,"name":"handleWorkerMessage","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[{"kind":"text","text":"处理 Worker 消息"}]},"parameters":[{"id":1438,"name":"worker","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"Worker","qualifiedName":"Worker","package":"typescript"},"text":{}},{"id":1439,"name":"event","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","typeArguments":[{"type":"intrinsic","name":"any"}],"name":"MessageEvent","qualifiedName":"MessageEvent","package":"typescript"},"text":{}}],"type":{"type":"intrinsic","name":"void"},"is":{"declaration":false},"location":{"query":"web-utils/src/worker.WorkerPool.Method.handleWorkerMessage","hash":"handleWorkerMessage.handleWorkerMessage"},"text":{"comment":"

    处理 Worker 消息

    \n"},"sources":[{"fileName":"packages/web-utils/src/worker.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/worker.ts","line":79,"character":2,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/worker.ts#L79"}],"parentId":1436}],"is":{"declaration":true},"location":{"query":"web-utils/src/worker.Class.WorkerPool","hash":"handleWorkerMessage"},"text":{},"parentId":1410},{"id":1434,"name":"initialize","kind":2048,"kindString":"Method","flags":{"isPrivate":true},"sources":[{"fileName":"packages/web-utils/src/worker.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/worker.ts","line":54,"character":10,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/worker.ts#L54"}],"signatures":[{"id":1435,"name":"initialize","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[{"kind":"text","text":"初始化工作线程池"}]},"type":{"type":"intrinsic","name":"void"},"is":{"declaration":false},"location":{"query":"web-utils/src/worker.WorkerPool.Method.initialize","hash":"initialize.initialize"},"text":{"comment":"

    初始化工作线程池

    \n"},"sources":[{"fileName":"packages/web-utils/src/worker.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/worker.ts","line":54,"character":2,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/worker.ts#L54"}],"parentId":1434}],"is":{"declaration":true},"location":{"query":"web-utils/src/worker.Class.WorkerPool","hash":"initialize"},"text":{},"parentId":1410},{"id":1444,"name":"processQueue","kind":2048,"kindString":"Method","flags":{"isPrivate":true},"sources":[{"fileName":"packages/web-utils/src/worker.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/worker.ts","line":115,"character":10,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/worker.ts#L115"}],"signatures":[{"id":1445,"name":"processQueue","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[{"kind":"text","text":"处理队列中的任务"}]},"type":{"type":"intrinsic","name":"void"},"is":{"declaration":false},"location":{"query":"web-utils/src/worker.WorkerPool.Method.processQueue","hash":"processQueue.processQueue"},"text":{"comment":"

    处理队列中的任务

    \n"},"sources":[{"fileName":"packages/web-utils/src/worker.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/worker.ts","line":115,"character":2,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/worker.ts#L115"}],"parentId":1444}],"is":{"declaration":true},"location":{"query":"web-utils/src/worker.Class.WorkerPool","hash":"processQueue"},"text":{},"parentId":1410},{"id":1449,"name":"terminate","kind":2048,"kindString":"Method","flags":{},"sources":[{"fileName":"packages/web-utils/src/worker.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/worker.ts","line":150,"character":2,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/worker.ts#L150"}],"signatures":[{"id":1450,"name":"terminate","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[{"kind":"text","text":"终止所有工作线程并释放资源"}]},"type":{"type":"intrinsic","name":"void"},"is":{"declaration":false},"location":{"query":"web-utils/src/worker.WorkerPool.Method.terminate","hash":"terminate.terminate"},"text":{"comment":"

    终止所有工作线程并释放资源

    \n"},"sources":[{"fileName":"packages/web-utils/src/worker.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/worker.ts","line":150,"character":2,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/worker.ts#L150"}],"parentId":1449}],"is":{"declaration":true},"location":{"query":"web-utils/src/worker.Class.WorkerPool","hash":"terminate"},"text":{},"parentId":1410}],"groups":[{"title":"Constructors","children":[1411]},{"title":"Properties","children":[1429,1418,1433,1430,1417]},{"title":"Methods","children":[1446,1440,1436,1434,1444,1449]}],"sources":[{"fileName":"packages/web-utils/src/worker.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/worker.ts","line":30,"character":13,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/worker.ts#L30"}],"is":{"declaration":true},"location":{"query":"web-utils/src/worker.Class.WorkerPool","hash":""},"text":{"comment":"

    工作线程池 - 管理多个 Worker 实例

    \n"},"parentId":1384,"hierarchy":[{"name":"WorkerPool","isTarget":true,"linkId":"1410"}]} diff --git a/docs/v1.0.0-beta01/data/web-utils/src/worker.Function.createInlineWorker.json b/docs/v1.0.0-beta01/data/web-utils/src/worker.Function.createInlineWorker.json new file mode 100644 index 000000000..3fb2ef023 --- /dev/null +++ b/docs/v1.0.0-beta01/data/web-utils/src/worker.Function.createInlineWorker.json @@ -0,0 +1 @@ +{"id":1385,"name":"createInlineWorker","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/web-utils/src/worker.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/worker.ts","line":14,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/worker.ts#L14"}],"signatures":[{"id":1386,"name":"createInlineWorker","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[],"blockTags":[{"tag":"@function","content":[{"kind":"text","text":"createInlineWorker"}]},{"tag":"@description","content":[{"kind":"text","text":"创建一个内联Worker。Creates an inline Worker"}]},{"tag":"@returns","content":[{"kind":"text","text":"返回创建的Worker实例。Returns the created Worker instance"}]}]},"parameters":[{"id":1387,"name":"workerFunction","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"要在Worker中执行的函数。The function to execute in the Worker"}]},"type":{"type":"reflection","declaration":{"id":1388,"name":"__type","kind":65536,"kindString":"Type literal","flags":{},"sources":[{"fileName":"packages/web-utils/src/worker.ts","line":14,"character":51,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/worker.ts#L14"}],"signatures":[{"id":1389,"name":"__type","kind":4096,"kindString":"Call signature","flags":{},"type":{"type":"intrinsic","name":"any"}}]}},"text":{"comment":"

    要在Worker中执行的函数。The function to execute in the Worker

    \n"}}],"type":{"type":"reference","name":"Worker","qualifiedName":"Worker","package":"typescript"},"is":{"declaration":false},"location":{"query":"web-utils/src/worker.Function.createInlineWorker","hash":"createInlineWorker"},"text":{"comment":"
    Function:

    createInlineWorker

    \n
    Description:

    创建一个内联Worker。Creates an inline Worker

    \n
    Returns:

    返回创建的Worker实例。Returns the created Worker instance

    \n"},"sources":[{"fileName":"packages/web-utils/src/worker.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/worker.ts","line":14,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/worker.ts#L14"}],"parentId":1385}],"is":{"declaration":true},"location":{"query":"web-utils/src/worker.Function.createInlineWorker","hash":""},"text":{},"parentId":1384} diff --git a/docs/v1.0.0-beta01/data/web-utils/src/worker.Function.createWorkerTask.json b/docs/v1.0.0-beta01/data/web-utils/src/worker.Function.createWorkerTask.json new file mode 100644 index 000000000..afc1609a3 --- /dev/null +++ b/docs/v1.0.0-beta01/data/web-utils/src/worker.Function.createWorkerTask.json @@ -0,0 +1 @@ +{"id":1390,"name":"createWorkerTask","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/web-utils/src/worker.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/worker.ts","line":170,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/worker.ts#L170"}],"signatures":[{"id":1391,"name":"createWorkerTask","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[{"kind":"text","text":"创建一个可转移对象的 Worker 任务"}],"blockTags":[{"tag":"@returns","content":[{"kind":"text","text":"Promise,解析为工作线程的响应"}]}]},"typeParameter":[{"id":1392,"name":"T","kind":131072,"kindString":"Type parameter","flags":{}},{"id":1393,"name":"R","kind":131072,"kindString":"Type parameter","flags":{}}],"parameters":[{"id":1394,"name":"data","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"要处理的数据"}]},"type":{"type":"reference","id":1392,"name":"T"},"text":{"comment":"

    要处理的数据

    \n"}},{"id":1395,"name":"transferables","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"可转移对象列表"}]},"type":{"type":"array","elementType":{"type":"reference","name":"Transferable","qualifiedName":"Transferable","package":"typescript"}},"defaultValue":"[]","text":{"comment":"

    可转移对象列表

    \n"}},{"id":1396,"name":"workerFunction","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"Worker 函数"}]},"type":{"type":"reflection","declaration":{"id":1397,"name":"__type","kind":65536,"kindString":"Type literal","flags":{},"sources":[{"fileName":"packages/web-utils/src/worker.ts","line":173,"character":18,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/worker.ts#L173"}],"signatures":[{"id":1398,"name":"__type","kind":4096,"kindString":"Call signature","flags":{},"type":{"type":"intrinsic","name":"any"}}]}},"text":{"comment":"

    Worker 函数

    \n"}}],"type":{"type":"reference","typeArguments":[{"type":"reference","id":1393,"name":"R"}],"name":"Promise","qualifiedName":"Promise","package":"typescript"},"is":{"declaration":false},"location":{"query":"web-utils/src/worker.Function.createWorkerTask","hash":"createWorkerTask"},"text":{"comment":"

    创建一个可转移对象的 Worker 任务

    \n
    Returns:

    Promise,解析为工作线程的响应

    \n"},"sources":[{"fileName":"packages/web-utils/src/worker.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/worker.ts","line":170,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/worker.ts#L170"}],"parentId":1390}],"is":{"declaration":true},"location":{"query":"web-utils/src/worker.Function.createWorkerTask","hash":""},"text":{},"parentId":1384} diff --git a/docs/v1.0.0-beta01/data/web-utils/src/worker.Function.workerize.json b/docs/v1.0.0-beta01/data/web-utils/src/worker.Function.workerize.json new file mode 100644 index 000000000..09ac120de --- /dev/null +++ b/docs/v1.0.0-beta01/data/web-utils/src/worker.Function.workerize.json @@ -0,0 +1 @@ +{"id":1399,"name":"workerize","kind":64,"kindString":"Function","flags":{},"children":[],"sources":[{"fileName":"packages/web-utils/src/worker.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/worker.ts","line":197,"character":16,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/worker.ts#L197"}],"signatures":[{"id":1400,"name":"workerize","kind":4096,"kindString":"Call signature","flags":{},"comment":{"summary":[{"kind":"text","text":"包装一个异步函数,使其在 Worker 中执行"}],"blockTags":[{"tag":"@returns","content":[{"kind":"text","text":"包装后的函数,返回 Promise"}]}]},"typeParameter":[{"id":1401,"name":"T","kind":131072,"kindString":"Type parameter","flags":{}},{"id":1402,"name":"R","kind":131072,"kindString":"Type parameter","flags":{}}],"parameters":[{"id":1403,"name":"asyncFunction","kind":32768,"kindString":"Parameter","flags":{},"comment":{"summary":[{"kind":"text","text":"要在 Worker 中执行的异步函数"}]},"type":{"type":"reflection","declaration":{"id":1404,"name":"__type","kind":65536,"kindString":"Type literal","flags":{},"sources":[{"fileName":"packages/web-utils/src/worker.ts","line":197,"character":47,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/worker.ts#L197"}],"signatures":[{"id":1405,"name":"__type","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":1406,"name":"data","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","id":1401,"name":"T"}}],"type":{"type":"reference","typeArguments":[{"type":"reference","id":1402,"name":"R"}],"name":"Promise","qualifiedName":"Promise","package":"typescript"}}]}},"text":{"comment":"

    要在 Worker 中执行的异步函数

    \n"}}],"type":{"type":"reflection","declaration":{"id":1407,"name":"workerize","kind":65536,"kindString":"Type literal","flags":{},"sources":[{"fileName":"packages/web-utils/src/worker.ts","line":198,"character":9,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/worker.ts#L198"}],"signatures":[{"id":1408,"name":"workerize","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":1409,"name":"data","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","id":1401,"name":"T"},"text":{}}],"type":{"type":"reference","typeArguments":[{"type":"reference","id":1402,"name":"R"}],"name":"Promise","qualifiedName":"Promise","package":"typescript"},"is":{"declaration":false},"location":{"query":"web-utils/src/worker.Function.workerize","hash":"workerize.__type"},"text":{},"sources":[{"fileName":"packages/web-utils/src/worker.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/worker.ts","line":198,"character":9,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/worker.ts#L198"}],"parentId":1399}],"location":{"query":"web-utils/src/worker.Function.workerize","hash":"workerize"}}},"is":{"declaration":false},"location":{"query":"web-utils/src/worker.Function.workerize","hash":"workerize"},"text":{"comment":"

    包装一个异步函数,使其在 Worker 中执行

    \n
    Returns:

    包装后的函数,返回 Promise

    \n"},"sources":[{"fileName":"packages/web-utils/src/worker.ts","fullFileName":"/home/runner/work/fe-tools/fe-tools/utils/packages/web-utils/src/worker.ts","line":197,"character":0,"url":"https://github.com/MichealWayne/fe-tools/blob/d7e292c/utils/packages/web-utils/src/worker.ts#L197"}],"parentId":1399}],"is":{"declaration":true},"location":{"query":"web-utils/src/worker.Function.workerize","hash":""},"text":{},"parentId":1384} diff --git a/docs/v1.0.0-beta01/data/yafKindSymbols.json b/docs/v1.0.0-beta01/data/yafKindSymbols.json new file mode 100644 index 000000000..0057617bc --- /dev/null +++ b/docs/v1.0.0-beta01/data/yafKindSymbols.json @@ -0,0 +1 @@ +{"1":{"className":"namespace","symbol":"N"},"2":{"className":"namespace","symbol":"N"},"4":{"className":"namespace","symbol":"N"},"8":{"className":"enum","symbol":"E"},"16":{"className":"property","symbol":"P"},"32":{"className":"variable","symbol":"V"},"64":{"className":"function","symbol":"F"},"128":{"className":"class","symbol":"C"},"256":{"className":"interface","symbol":"I"},"512":{"className":"constructor","symbol":"C"},"1024":{"className":"property","symbol":"P"},"2048":{"className":"method","symbol":"M"},"4096":{"className":"function","symbol":"F"},"8192":{"className":"property","symbol":"P"},"16384":{"className":"constructor","symbol":"C"},"32768":{"className":"property","symbol":"P"},"65536":{"className":"typealias","symbol":"T"},"131072":{"className":"typealias","symbol":"T"},"262144":{"className":"accessor","symbol":"A"},"524288":{"className":"accessor","symbol":"A"},"1048576":{"className":"accessor","symbol":"A"},"2097152":{"className":"interface","symbol":"I"},"4194304":{"className":"typealias","symbol":"T"},"8388608":{"className":"reference","symbol":"R"}} diff --git a/docs/v1.0.0-beta01/data/yafNavigationMenu.json b/docs/v1.0.0-beta01/data/yafNavigationMenu.json new file mode 100644 index 000000000..f6200a926 --- /dev/null +++ b/docs/v1.0.0-beta01/data/yafNavigationMenu.json @@ -0,0 +1 @@ +{"1":{"children":{"2":{"children":{}},"6":{"children":{"8":{"children":{"10":{"children":{}}}},"14":{"children":{"16":{"children":{}},"20":{"children":{}},"24":{"children":{}}}},"28":{"children":{"30":{"children":{}},"34":{"children":{}},"38":{"children":{}}}},"42":{"children":{"44":{"children":{}},"48":{"children":{}},"52":{"children":{}}}},"56":{"children":{"58":{"children":{}},"62":{"children":{}},"66":{"children":{}}}},"70":{"children":{"72":{"children":{}},"76":{"children":{}},"80":{"children":{}}}},"84":{"children":{"86":{"children":{}},"90":{"children":{}},"94":{"children":{}}}},"98":{"children":{"100":{"children":{}},"104":{"children":{}},"108":{"children":{}}}},"112":{"children":{"114":{"children":{}},"118":{"children":{}},"122":{"children":{}}}},"126":{"children":{"128":{"children":{}},"132":{"children":{}},"136":{"children":{}}}},"140":{"children":{"142":{"children":{}},"146":{"children":{}},"150":{"children":{}}}}}}}},"154":{"children":{"155":{"children":{}},"158":{"children":{}},"161":{"children":{}},"164":{"children":{}},"167":{"children":{}},"170":{"children":{}},"174":{"children":{}},"178":{"children":{}},"183":{"children":{}},"187":{"children":{}},"192":{"children":{}},"195":{"children":{}},"199":{"children":{}},"203":{"children":{}},"211":{"children":{}},"216":{"children":{}},"224":{"children":{}},"228":{"children":{}},"232":{"children":{}},"240":{"children":{}},"249":{"children":{}},"258":{"children":{}},"261":{"children":{}},"265":{"children":{}},"268":{"children":{}},"272":{"children":{}},"275":{"children":{}},"278":{"children":{}},"282":{"children":{}},"290":{"children":{}},"293":{"children":{}},"296":{"children":{}},"299":{"children":{}},"300":{"children":{}},"301":{"children":{}},"304":{"children":{}}}},"307":{"children":{"308":{"children":{}},"314":{"children":{}}}},"315":{"children":{"316":{"children":{}},"319":{"children":{}},"322":{"children":{}},"326":{"children":{}}}},"330":{"children":{"331":{"children":{}},"334":{"children":{}},"337":{"children":{}},"340":{"children":{}},"343":{"children":{}},"346":{"children":{}}}},"349":{"children":{"350":{"children":{}},"358":{"children":{}},"366":{"children":{}},"369":{"children":{}},"372":{"children":{}},"380":{"children":{}},"383":{"children":{}}}},"387":{"children":{"388":{"children":{}},"390":{"children":{}},"393":{"children":{}},"397":{"children":{}}}},"400":{"children":{"401":{"children":{}},"404":{"children":{}},"407":{"children":{}},"411":{"children":{}},"415":{"children":{}},"419":{"children":{}},"423":{"children":{}}}},"432":{"children":{"433":{"children":{}},"437":{"children":{}},"440":{"children":{}},"445":{"children":{}},"450":{"children":{}},"453":{"children":{}},"457":{"children":{}},"462":{"children":{}}}},"465":{"children":{"466":{"children":{}},"475":{"children":{}},"482":{"children":{}},"488":{"children":{}},"495":{"children":{}},"505":{"children":{}},"514":{"children":{}},"520":{"children":{}},"530":{"children":{}},"540":{"children":{}},"547":{"children":{}},"562":{"children":{}},"565":{"children":{}},"576":{"children":{}},"584":{"children":{}},"586":{"children":{}}}},"614":{"children":{"1530":{"children":{}},"1531":{"children":{}},"1532":{"children":{}},"1533":{"children":{}},"1534":{"children":{}},"1535":{"children":{}},"1536":{"children":{}},"1537":{"children":{}},"1538":{"children":{}},"1539":{"children":{}},"1540":{"children":{}},"1541":{"children":{}},"1542":{"children":{}},"1543":{"children":{}},"1544":{"children":{}},"1545":{"children":{}},"1546":{"children":{}},"1547":{"children":{}},"1548":{"children":{}},"1549":{"children":{}},"1550":{"children":{}},"1551":{"children":{}},"1552":{"children":{}},"1553":{"children":{}},"1554":{"children":{}},"1555":{"children":{}},"1556":{"children":{}},"1557":{"children":{}},"1558":{"children":{}},"1559":{"children":{}},"1560":{"children":{}},"1561":{"children":{}},"1562":{"children":{}},"1563":{"children":{}},"1564":{"children":{}},"1565":{"children":{}},"1566":{"children":{}},"1567":{"children":{}},"1568":{"children":{}},"1569":{"children":{}},"1570":{"children":{}},"1571":{"children":{}},"1572":{"children":{}},"1573":{"children":{}},"1574":{"children":{}},"1575":{"children":{}},"1576":{"children":{}},"1577":{"children":{}},"1578":{"children":{}},"1579":{"children":{}},"1580":{"children":{}},"1581":{"children":{}},"1582":{"children":{}},"1583":{"children":{}},"1584":{"children":{}},"1585":{"children":{}},"1586":{"children":{}},"1587":{"children":{}},"1588":{"children":{}},"1589":{"children":{}},"1590":{"children":{}},"1591":{"children":{}},"1592":{"children":{}},"1593":{"children":{}},"1594":{"children":{}},"1595":{"children":{}},"1596":{"children":{}},"1597":{"children":{}},"1598":{"children":{}},"1599":{"children":{}},"1600":{"children":{}},"1601":{"children":{}},"1602":{"children":{}},"1603":{"children":{}},"1604":{"children":{}},"1605":{"children":{}},"1606":{"children":{}},"1607":{"children":{}},"1608":{"children":{}},"1609":{"children":{}},"1610":{"children":{}},"1611":{"children":{}},"1612":{"children":{}},"1613":{"children":{}},"1614":{"children":{}},"1615":{"children":{}},"1616":{"children":{}},"1617":{"children":{}},"1618":{"children":{}},"1619":{"children":{}},"1620":{"children":{}},"1621":{"children":{}},"1622":{"children":{}},"1623":{"children":{}},"1624":{"children":{}},"1625":{"children":{}},"1626":{"children":{}},"1627":{"children":{}},"1628":{"children":{}},"1629":{"children":{}},"1630":{"children":{}},"1631":{"children":{}},"1632":{"children":{}},"1633":{"children":{}},"1634":{"children":{}},"1635":{"children":{}},"1636":{"children":{}},"1637":{"children":{}},"1638":{"children":{}},"1639":{"children":{}},"1640":{"children":{}},"1641":{"children":{}},"1642":{"children":{}},"1643":{"children":{}},"1644":{"children":{}},"1645":{"children":{}},"1646":{"children":{}},"1647":{"children":{}},"1648":{"children":{}},"1649":{"children":{}},"1650":{"children":{}},"1651":{"children":{}},"1652":{"children":{}},"1653":{"children":{}},"1654":{"children":{}},"1655":{"children":{}},"1656":{"children":{}},"1657":{"children":{}},"1658":{"children":{}},"1659":{"children":{}},"1660":{"children":{}},"1661":{"children":{}},"1662":{"children":{}},"1663":{"children":{}},"1664":{"children":{}},"1665":{"children":{}},"1666":{"children":{}},"1667":{"children":{}},"1668":{"children":{}},"1669":{"children":{}},"1670":{"children":{}},"1671":{"children":{}},"1672":{"children":{}},"1673":{"children":{}},"1674":{"children":{}},"1675":{"children":{}},"1676":{"children":{}},"1677":{"children":{}},"1678":{"children":{}},"1679":{"children":{}},"1680":{"children":{}},"1681":{"children":{}},"1682":{"children":{}},"1683":{"children":{}},"1684":{"children":{}},"1685":{"children":{}},"1686":{"children":{}},"1687":{"children":{}}}},"615":{"children":{"616":{"children":{}},"621":{"children":{}},"625":{"children":{}},"628":{"children":{}},"635":{"children":{}},"638":{"children":{}}}},"642":{"children":{"643":{"children":{}},"646":{"children":{}},"650":{"children":{}},"654":{"children":{}}}},"658":{"children":{"659":{"children":{}},"662":{"children":{}},"665":{"children":{}},"670":{"children":{}},"673":{"children":{}},"677":{"children":{}},"681":{"children":{}},"686":{"children":{}},"690":{"children":{}},"693":{"children":{}},"698":{"children":{}},"701":{"children":{}}}},"704":{"children":{"705":{"children":{}},"714":{"children":{}},"717":{"children":{}},"728":{"children":{}},"732":{"children":{}},"737":{"children":{}},"740":{"children":{}}}},"744":{"children":{"745":{"children":{}},"749":{"children":{}}}},"752":{"children":{"753":{"children":{}},"756":{"children":{}},"759":{"children":{}},"762":{"children":{}},"765":{"children":{}},"768":{"children":{}},"771":{"children":{}},"774":{"children":{}},"778":{"children":{}},"781":{"children":{}},"785":{"children":{}},"790":{"children":{}},"796":{"children":{}},"799":{"children":{}}}},"802":{"children":{"803":{"children":{}},"806":{"children":{}}}},"811":{"children":{"812":{"children":{}},"815":{"children":{}},"818":{"children":{}},"821":{"children":{}},"824":{"children":{}},"827":{"children":{}},"830":{"children":{}},"834":{"children":{}},"837":{"children":{}},"841":{"children":{}}}},"844":{"children":{"845":{"children":{}},"848":{"children":{}},"851":{"children":{}},"854":{"children":{}},"857":{"children":{}},"860":{"children":{}},"863":{"children":{}},"866":{"children":{}},"869":{"children":{}},"872":{"children":{}},"875":{"children":{}},"878":{"children":{}}}},"881":{"children":{"1688":{"children":{}},"1699":{"children":{}},"1702":{"children":{}},"1705":{"children":{}},"1709":{"children":{}},"1712":{"children":{}},"1717":{"children":{}},"1725":{"children":{}},"1728":{"children":{}},"1731":{"children":{}},"1740":{"children":{}},"1745":{"children":{}},"1750":{"children":{}},"1754":{"children":{}},"1759":{"children":{}},"1761":{"children":{}},"1762":{"children":{"1763":{"children":{}},"1764":{"children":{}},"1765":{"children":{}},"1766":{"children":{}},"1767":{"children":{}},"1768":{"children":{}},"1769":{"children":{}},"1770":{"children":{}},"1771":{"children":{}},"1772":{"children":{}},"1773":{"children":{}},"1774":{"children":{}},"1775":{"children":{}},"1776":{"children":{}},"1777":{"children":{}},"1778":{"children":{}}}},"1779":{"children":{"1780":{"children":{}},"1781":{"children":{}},"1782":{"children":{}},"1783":{"children":{}}}},"1784":{"children":{}},"1785":{"children":{}},"1787":{"children":{}},"1790":{"children":{}},"1792":{"children":{}},"1794":{"children":{}},"1796":{"children":{}},"1798":{"children":{}},"1800":{"children":{}},"1802":{"children":{}},"1804":{"children":{}},"1807":{"children":{}},"1810":{"children":{}},"1814":{"children":{}},"1816":{"children":{}},"1819":{"children":{}},"1823":{"children":{}},"1826":{"children":{}},"1829":{"children":{}},"1834":{"children":{}},"1837":{"children":{}},"1840":{"children":{}},"1843":{"children":{}},"1846":{"children":{}},"1849":{"children":{}},"1852":{"children":{}},"1859":{"children":{}},"1862":{"children":{}},"1866":{"children":{}},"1874":{"children":{}},"1882":{"children":{}},"1886":{"children":{}},"1895":{"children":{}},"1899":{"children":{}},"1903":{"children":{}},"1907":{"children":{}},"1911":{"children":{}},"1915":{"children":{}},"1918":{"children":{}},"1923":{"children":{}}}},"882":{"children":{"883":{"children":{}},"885":{"children":{}}}},"888":{"children":{"889":{"children":{}},"892":{"children":{}},"899":{"children":{}}}},"902":{"children":{"903":{"children":{}},"905":{"children":{}},"909":{"children":{}}}},"913":{"children":{"914":{"children":{}},"916":{"children":{}},"920":{"children":{}},"924":{"children":{}},"928":{"children":{}},"932":{"children":{}},"936":{"children":{}},"940":{"children":{}},"943":{"children":{}},"946":{"children":{}},"951":{"children":{}},"954":{"children":{}},"960":{"children":{}},"962":{"children":{}},"968":{"children":{}},"971":{"children":{}},"975":{"children":{}},"978":{"children":{}},"982":{"children":{}}}},"988":{"children":{"989":{"children":{}},"992":{"children":{}},"995":{"children":{}},"1000":{"children":{}},"1005":{"children":{}}}},"1008":{"children":{"1009":{"children":{}},"1013":{"children":{}},"1020":{"children":{}},"1027":{"children":{}},"1031":{"children":{}}}},"1034":{"children":{"1035":{"children":{}},"1037":{"children":{}},"1042":{"children":{}},"1047":{"children":{}},"1052":{"children":{}},"1057":{"children":{}},"1060":{"children":{}}}},"1065":{"children":{"1066":{"children":{}},"1069":{"children":{}},"1072":{"children":{}},"1074":{"children":{}},"1081":{"children":{}}}},"1085":{"children":{"1927":{"children":{}},"1928":{"children":{}},"1929":{"children":{}},"1930":{"children":{}},"1931":{"children":{}},"1932":{"children":{}},"1933":{"children":{}},"1934":{"children":{}},"1935":{"children":{}},"1936":{"children":{}},"1937":{"children":{}},"1938":{"children":{}},"1939":{"children":{}},"1940":{"children":{}},"1941":{"children":{}},"1942":{"children":{}},"1943":{"children":{}},"1944":{"children":{}},"1945":{"children":{}},"1946":{"children":{}},"1947":{"children":{}},"1948":{"children":{}},"1949":{"children":{}},"1950":{"children":{}},"1951":{"children":{}},"1952":{"children":{}},"1953":{"children":{}},"1954":{"children":{}},"1955":{"children":{}},"1956":{"children":{}},"1957":{"children":{}},"1958":{"children":{}},"1959":{"children":{}},"1960":{"children":{}},"1961":{"children":{}},"1962":{"children":{}},"1963":{"children":{}},"1964":{"children":{}},"1965":{"children":{}},"1966":{"children":{}},"1967":{"children":{}},"1968":{"children":{}},"1969":{"children":{}},"1970":{"children":{}},"1971":{"children":{}},"1972":{"children":{}},"1973":{"children":{}},"1974":{"children":{}},"1975":{"children":{}},"1976":{"children":{}},"1977":{"children":{}},"1978":{"children":{}},"1979":{"children":{}},"1980":{"children":{}},"1981":{"children":{}},"1982":{"children":{}},"1983":{"children":{}},"1984":{"children":{}},"1985":{"children":{}},"1986":{"children":{}},"1987":{"children":{}},"1988":{"children":{}},"1989":{"children":{}},"1990":{"children":{}},"1991":{"children":{}},"1992":{"children":{}},"1993":{"children":{}},"1994":{"children":{}},"1995":{"children":{}},"1996":{"children":{}},"1997":{"children":{}},"1998":{"children":{}},"1999":{"children":{}},"2000":{"children":{}},"2001":{"children":{}},"2002":{"children":{}},"2003":{"children":{}},"2004":{"children":{}},"2005":{"children":{}},"2006":{"children":{}},"2007":{"children":{}},"2008":{"children":{}},"2009":{"children":{}},"2010":{"children":{}},"2011":{"children":{}},"2012":{"children":{}},"2013":{"children":{}},"2014":{"children":{}},"2015":{"children":{}},"2016":{"children":{}},"2017":{"children":{}},"2018":{"children":{}},"2019":{"children":{}},"2020":{"children":{}},"2021":{"children":{}},"2022":{"children":{}},"2023":{"children":{}},"2024":{"children":{}},"2025":{"children":{}},"2026":{"children":{}},"2027":{"children":{}},"2028":{"children":{}},"2029":{"children":{}},"2030":{"children":{}},"2031":{"children":{}},"2032":{"children":{}},"2033":{"children":{}},"2034":{"children":{}},"2035":{"children":{}},"2036":{"children":{}},"2037":{"children":{}},"2038":{"children":{}},"2039":{"children":{}},"2040":{"children":{}},"2041":{"children":{}},"2042":{"children":{}},"2043":{"children":{}},"2044":{"children":{}},"2045":{"children":{}},"2046":{"children":{}}}},"1086":{"children":{"1087":{"children":{}}}},"1090":{"children":{"1091":{"children":{}},"1098":{"children":{}},"1105":{"children":{}}}},"1113":{"children":{"1114":{"children":{}},"1118":{"children":{}},"1123":{"children":{}},"1126":{"children":{}},"1129":{"children":{}},"1132":{"children":{}},"1135":{"children":{}}}},"1140":{"children":{"1141":{"children":{}},"1145":{"children":{}},"1148":{"children":{"1149":{"children":{}},"1150":{"children":{}},"1151":{"children":{}}}}}},"1152":{"children":{"1153":{"children":{}},"1155":{"children":{}},"1157":{"children":{}},"1165":{"children":{}},"1173":{"children":{}},"1181":{"children":{}},"1190":{"children":{}}}},"1193":{"children":{"1194":{"children":{}}}},"1197":{"children":{"1198":{"children":{}},"1207":{"children":{}},"1219":{"children":{}},"1225":{"children":{}},"1232":{"children":{}},"1239":{"children":{}}}},"1242":{"children":{"1243":{"children":{}},"1245":{"children":{}},"1247":{"children":{}},"1249":{"children":{}},"1251":{"children":{}},"1253":{"children":{}},"1255":{"children":{}},"1260":{"children":{}},"1262":{"children":{}}}},"1263":{"children":{"1264":{"children":{"1265":{"children":{}},"1266":{"children":{}}}}}},"1267":{"children":{"1268":{"children":{}},"1270":{"children":{}},"1272":{"children":{}},"1275":{"children":{}},"1277":{"children":{}},"1279":{"children":{}},"1283":{"children":{}},"1285":{"children":{}}}},"1287":{"children":{"1288":{"children":{}},"1291":{"children":{}},"1294":{"children":{}},"1297":{"children":{}},"1299":{"children":{}},"1302":{"children":{}},"1305":{"children":{}},"1308":{"children":{}},"1311":{"children":{}},"1317":{"children":{}},"1319":{"children":{}},"1323":{"children":{}},"1326":{"children":{}},"1330":{"children":{}},"1333":{"children":{}},"1336":{"children":{}}}},"1339":{"children":{"1340":{"children":{}}}},"1358":{"children":{"1359":{"children":{}},"1362":{"children":{}},"1369":{"children":{}},"1375":{"children":{}},"1378":{"children":{}},"1381":{"children":{}}}},"1384":{"children":{"1385":{"children":{}},"1390":{"children":{}},"1399":{"children":{}},"1410":{"children":{"1411":{"children":{}},"1417":{"children":{}},"1418":{"children":{}},"1429":{"children":{}},"1430":{"children":{}},"1433":{"children":{}},"1434":{"children":{}},"1436":{"children":{}},"1440":{"children":{}},"1444":{"children":{}},"1446":{"children":{}},"1449":{"children":{}}}}}},"1451":{"children":{"2047":{"children":{}},"2048":{"children":{}},"2049":{"children":{}},"2050":{"children":{}},"2051":{"children":{}},"2059":{"children":{}},"2063":{"children":{}},"2068":{"children":{}},"2070":{"children":{}},"2075":{"children":{}},"2078":{"children":{}},"2081":{"children":{}},"2085":{"children":{}},"2089":{"children":{}},"2092":{"children":{}},"2095":{"children":{}},"2098":{"children":{}},"2102":{"children":{}},"2105":{"children":{}},"2109":{"children":{}},"2114":{"children":{}},"2120":{"children":{}},"2128":{"children":{}},"2134":{"children":{}},"2139":{"children":{}},"2143":{"children":{}},"2151":{"children":{}},"2154":{"children":{}},"2160":{"children":{}},"2163":{"children":{}},"2168":{"children":{}},"2171":{"children":{"2172":{"children":{}},"2173":{"children":{}}}},"2174":{"children":{}},"2175":{"children":{"2177":{"children":{}},"2178":{"children":{}}}},"2179":{"children":{}}}},"1452":{"children":{"2183":{"children":{}},"2186":{"children":{}},"2189":{"children":{}},"2190":{"children":{}},"2193":{"children":{}},"2196":{"children":{}},"2197":{"children":{}},"2200":{"children":{}},"2201":{"children":{"2202":{"children":{}},"2203":{"children":{}}}},"2204":{"children":{}},"2207":{"children":{"2208":{"children":{}},"2209":{"children":{}},"2210":{"children":{}}}},"2211":{"children":{}},"2214":{"children":{}},"2217":{"children":{}},"2219":{"children":{"2220":{"children":{}}}},"2221":{"children":{}},"2232":{"children":{}}}},"1453":{"children":{"1454":{"children":{}},"1461":{"children":{}},"1467":{"children":{}},"1471":{"children":{}},"1475":{"children":{}},"1480":{"children":{}},"1485":{"children":{"1486":{"children":{}},"1487":{"children":{}},"1488":{"children":{}}}},"1489":{"children":{"1490":{"children":{}}}},"1491":{"children":{"1493":{"children":{}},"1501":{"children":{}},"1508":{"children":{}},"1513":{"children":{}},"1518":{"children":{}},"1524":{"children":{}}}}}},"project":{"children":{}}} diff --git a/docs/v1.0.0-beta01/data/yafNeedsParenthesis.json b/docs/v1.0.0-beta01/data/yafNeedsParenthesis.json new file mode 100644 index 000000000..181871b22 --- /dev/null +++ b/docs/v1.0.0-beta01/data/yafNeedsParenthesis.json @@ -0,0 +1 @@ +{"array":{"none":false,"templateLiteralElement":false,"arrayElement":false,"indexedAccessElement":false,"conditionalCheck":false,"conditionalExtends":false,"conditionalTrue":false,"conditionalFalse":false,"indexedIndex":false,"indexedObject":false,"inferredConstraint":false,"intersectionElement":false,"mappedName":false,"mappedParameter":false,"mappedTemplate":false,"optionalElement":false,"predicateTarget":false,"queryTypeTarget":false,"typeOperatorTarget":false,"referenceTypeArgument":false,"restElement":false,"tupleElement":false,"unionElement":false},"conditional":{"none":false,"templateLiteralElement":false,"arrayElement":true,"indexedAccessElement":false,"conditionalCheck":true,"conditionalExtends":true,"conditionalTrue":false,"conditionalFalse":false,"indexedIndex":false,"indexedObject":true,"inferredConstraint":true,"intersectionElement":true,"mappedName":false,"mappedParameter":false,"mappedTemplate":false,"optionalElement":true,"predicateTarget":false,"queryTypeTarget":false,"typeOperatorTarget":true,"referenceTypeArgument":false,"restElement":true,"tupleElement":false,"unionElement":true},"indexedAccess":{"none":false,"templateLiteralElement":false,"arrayElement":false,"indexedAccessElement":false,"conditionalCheck":false,"conditionalExtends":false,"conditionalTrue":false,"conditionalFalse":false,"indexedIndex":false,"indexedObject":false,"inferredConstraint":false,"intersectionElement":false,"mappedName":false,"mappedParameter":false,"mappedTemplate":false,"optionalElement":false,"predicateTarget":false,"queryTypeTarget":false,"typeOperatorTarget":false,"referenceTypeArgument":false,"restElement":false,"tupleElement":false,"unionElement":false},"inferred":{"none":false,"templateLiteralElement":false,"arrayElement":true,"indexedAccessElement":false,"conditionalCheck":false,"conditionalExtends":false,"conditionalTrue":false,"conditionalFalse":false,"indexedIndex":false,"indexedObject":true,"inferredConstraint":false,"intersectionElement":false,"mappedName":false,"mappedParameter":false,"mappedTemplate":false,"optionalElement":true,"predicateTarget":false,"queryTypeTarget":false,"typeOperatorTarget":false,"referenceTypeArgument":false,"restElement":true,"tupleElement":false,"unionElement":false},"intersection":{"none":false,"templateLiteralElement":false,"arrayElement":true,"indexedAccessElement":false,"conditionalCheck":true,"conditionalExtends":false,"conditionalTrue":false,"conditionalFalse":false,"indexedIndex":false,"indexedObject":true,"inferredConstraint":false,"intersectionElement":false,"mappedName":false,"mappedParameter":false,"mappedTemplate":false,"optionalElement":true,"predicateTarget":false,"queryTypeTarget":false,"typeOperatorTarget":true,"referenceTypeArgument":false,"restElement":true,"tupleElement":false,"unionElement":false},"intrinsic":{"none":false,"templateLiteralElement":false,"arrayElement":false,"indexedAccessElement":false,"conditionalCheck":false,"conditionalExtends":false,"conditionalTrue":false,"conditionalFalse":false,"indexedIndex":false,"indexedObject":false,"inferredConstraint":false,"intersectionElement":false,"mappedName":false,"mappedParameter":false,"mappedTemplate":false,"optionalElement":false,"predicateTarget":false,"queryTypeTarget":false,"typeOperatorTarget":false,"referenceTypeArgument":false,"restElement":false,"tupleElement":false,"unionElement":false},"literal":{"none":false,"templateLiteralElement":false,"arrayElement":false,"indexedAccessElement":false,"conditionalCheck":false,"conditionalExtends":false,"conditionalTrue":false,"conditionalFalse":false,"indexedIndex":false,"indexedObject":false,"inferredConstraint":false,"intersectionElement":false,"mappedName":false,"mappedParameter":false,"mappedTemplate":false,"optionalElement":false,"predicateTarget":false,"queryTypeTarget":false,"typeOperatorTarget":false,"referenceTypeArgument":false,"restElement":false,"tupleElement":false,"unionElement":false},"mapped":{"none":false,"templateLiteralElement":false,"arrayElement":false,"indexedAccessElement":false,"conditionalCheck":false,"conditionalExtends":false,"conditionalTrue":false,"conditionalFalse":false,"indexedIndex":false,"indexedObject":false,"inferredConstraint":false,"intersectionElement":false,"mappedName":false,"mappedParameter":false,"mappedTemplate":false,"optionalElement":false,"predicateTarget":false,"queryTypeTarget":false,"typeOperatorTarget":false,"referenceTypeArgument":false,"restElement":false,"tupleElement":false,"unionElement":false},"optional":{"none":false,"templateLiteralElement":false,"arrayElement":false,"indexedAccessElement":false,"conditionalCheck":false,"conditionalExtends":false,"conditionalTrue":false,"conditionalFalse":false,"indexedIndex":false,"indexedObject":false,"inferredConstraint":false,"intersectionElement":false,"mappedName":false,"mappedParameter":false,"mappedTemplate":false,"optionalElement":false,"predicateTarget":false,"queryTypeTarget":false,"typeOperatorTarget":false,"referenceTypeArgument":false,"restElement":false,"tupleElement":false,"unionElement":false},"predicate":{"none":false,"templateLiteralElement":false,"arrayElement":false,"indexedAccessElement":false,"conditionalCheck":false,"conditionalExtends":false,"conditionalTrue":false,"conditionalFalse":false,"indexedIndex":false,"indexedObject":false,"inferredConstraint":false,"intersectionElement":false,"mappedName":false,"mappedParameter":false,"mappedTemplate":false,"optionalElement":false,"predicateTarget":false,"queryTypeTarget":false,"typeOperatorTarget":false,"referenceTypeArgument":false,"restElement":false,"tupleElement":false,"unionElement":false},"query":{"none":false,"templateLiteralElement":false,"arrayElement":false,"indexedAccessElement":false,"conditionalCheck":false,"conditionalExtends":false,"conditionalTrue":false,"conditionalFalse":false,"indexedIndex":false,"indexedObject":false,"inferredConstraint":false,"intersectionElement":false,"mappedName":false,"mappedParameter":false,"mappedTemplate":false,"optionalElement":false,"predicateTarget":false,"queryTypeTarget":false,"typeOperatorTarget":false,"referenceTypeArgument":false,"restElement":false,"tupleElement":false,"unionElement":false},"reference":{"none":false,"templateLiteralElement":false,"arrayElement":false,"indexedAccessElement":false,"conditionalCheck":false,"conditionalExtends":false,"conditionalTrue":false,"conditionalFalse":false,"indexedIndex":false,"indexedObject":false,"inferredConstraint":false,"intersectionElement":false,"mappedName":false,"mappedParameter":false,"mappedTemplate":false,"optionalElement":false,"predicateTarget":false,"queryTypeTarget":false,"typeOperatorTarget":false,"referenceTypeArgument":false,"restElement":false,"tupleElement":false,"unionElement":false},"reflection":{"none":false,"templateLiteralElement":false,"arrayElement":false,"indexedAccessElement":false,"conditionalCheck":false,"conditionalExtends":false,"conditionalTrue":false,"conditionalFalse":false,"indexedIndex":false,"indexedObject":false,"inferredConstraint":false,"intersectionElement":false,"mappedName":false,"mappedParameter":false,"mappedTemplate":false,"optionalElement":false,"predicateTarget":false,"queryTypeTarget":false,"typeOperatorTarget":false,"referenceTypeArgument":false,"restElement":false,"tupleElement":false,"unionElement":false},"rest":{"none":false,"templateLiteralElement":false,"arrayElement":false,"indexedAccessElement":false,"conditionalCheck":false,"conditionalExtends":false,"conditionalTrue":false,"conditionalFalse":false,"indexedIndex":false,"indexedObject":false,"inferredConstraint":false,"intersectionElement":false,"mappedName":false,"mappedParameter":false,"mappedTemplate":false,"optionalElement":false,"predicateTarget":false,"queryTypeTarget":false,"typeOperatorTarget":false,"referenceTypeArgument":false,"restElement":false,"tupleElement":false,"unionElement":false},"template-literal":{"none":false,"templateLiteralElement":false,"arrayElement":false,"indexedAccessElement":false,"conditionalCheck":false,"conditionalExtends":false,"conditionalTrue":false,"conditionalFalse":false,"indexedIndex":false,"indexedObject":false,"inferredConstraint":false,"intersectionElement":false,"mappedName":false,"mappedParameter":false,"mappedTemplate":false,"optionalElement":false,"predicateTarget":false,"queryTypeTarget":false,"typeOperatorTarget":false,"referenceTypeArgument":false,"restElement":false,"tupleElement":false,"unionElement":false},"tuple":{"none":false,"templateLiteralElement":false,"arrayElement":false,"indexedAccessElement":false,"conditionalCheck":false,"conditionalExtends":false,"conditionalTrue":false,"conditionalFalse":false,"indexedIndex":false,"indexedObject":false,"inferredConstraint":false,"intersectionElement":false,"mappedName":false,"mappedParameter":false,"mappedTemplate":false,"optionalElement":false,"predicateTarget":false,"queryTypeTarget":false,"typeOperatorTarget":false,"referenceTypeArgument":false,"restElement":false,"tupleElement":false,"unionElement":false},"named-tuple-member":{"none":false,"templateLiteralElement":false,"arrayElement":false,"indexedAccessElement":false,"conditionalCheck":false,"conditionalExtends":false,"conditionalTrue":false,"conditionalFalse":false,"indexedIndex":false,"indexedObject":false,"inferredConstraint":false,"intersectionElement":false,"mappedName":false,"mappedParameter":false,"mappedTemplate":false,"optionalElement":false,"predicateTarget":false,"queryTypeTarget":false,"typeOperatorTarget":false,"referenceTypeArgument":false,"restElement":false,"tupleElement":false,"unionElement":false},"typeOperator":{"none":false,"templateLiteralElement":false,"arrayElement":true,"indexedAccessElement":false,"conditionalCheck":false,"conditionalExtends":false,"conditionalTrue":false,"conditionalFalse":false,"indexedIndex":false,"indexedObject":true,"inferredConstraint":false,"intersectionElement":false,"mappedName":false,"mappedParameter":false,"mappedTemplate":false,"optionalElement":true,"predicateTarget":false,"queryTypeTarget":false,"typeOperatorTarget":false,"referenceTypeArgument":false,"restElement":false,"tupleElement":false,"unionElement":false},"union":{"none":false,"templateLiteralElement":false,"arrayElement":true,"indexedAccessElement":false,"conditionalCheck":true,"conditionalExtends":false,"conditionalTrue":false,"conditionalFalse":false,"indexedIndex":false,"indexedObject":true,"inferredConstraint":false,"intersectionElement":true,"mappedName":false,"mappedParameter":false,"mappedTemplate":false,"optionalElement":true,"predicateTarget":false,"queryTypeTarget":false,"typeOperatorTarget":true,"referenceTypeArgument":false,"restElement":false,"tupleElement":false,"unionElement":false},"unknown":{"none":false,"templateLiteralElement":true,"arrayElement":true,"indexedAccessElement":true,"conditionalCheck":true,"conditionalExtends":true,"conditionalTrue":true,"conditionalFalse":true,"indexedIndex":true,"indexedObject":true,"inferredConstraint":true,"intersectionElement":true,"mappedName":true,"mappedParameter":true,"mappedTemplate":true,"optionalElement":true,"predicateTarget":true,"queryTypeTarget":true,"typeOperatorTarget":true,"referenceTypeArgument":true,"restElement":true,"tupleElement":true,"unionElement":true}} diff --git a/docs/v1.0.0-beta01/data/yafReflectionKind.json b/docs/v1.0.0-beta01/data/yafReflectionKind.json new file mode 100644 index 000000000..0d1380fd9 --- /dev/null +++ b/docs/v1.0.0-beta01/data/yafReflectionKind.json @@ -0,0 +1 @@ +{"1":"Project","2":"Module","4":"Namespace","8":"Enum","16":"EnumMember","32":"Variable","64":"Function","128":"Class","256":"Interface","512":"Constructor","1024":"Property","2048":"Method","4096":"CallSignature","8192":"IndexSignature","16384":"ConstructorSignature","32768":"Parameter","65536":"TypeLiteral","131072":"TypeParameter","262144":"Accessor","524288":"GetSignature","1048576":"SetSignature","2097152":"ObjectLiteral","4194304":"TypeAlias","8388608":"Reference","Project":1,"Module":2,"Namespace":4,"Enum":8,"EnumMember":16,"Variable":32,"Function":64,"Class":128,"Interface":256,"Constructor":512,"Property":1024,"Method":2048,"CallSignature":4096,"IndexSignature":8192,"ConstructorSignature":16384,"Parameter":32768,"TypeLiteral":65536,"TypeParameter":131072,"Accessor":262144,"GetSignature":524288,"SetSignature":1048576,"ObjectLiteral":2097152,"TypeAlias":4194304,"Reference":8388608,"All":16777215,"ClassOrInterface":384,"VariableOrProperty":1056,"FunctionOrMethod":2112,"ClassMember":265728,"SomeSignature":1601536,"SomeModule":6,"SomeType":4391168,"SomeValue":2097248,"SomeMember":265232,"SomeExport":12583406,"ExportContainer":7,"Inheritable":273920,"ContainsCallSignatures":2624,"SignatureContainer":264768} diff --git a/docs/v1.0.0-beta01/data/yafReflectionMap.json b/docs/v1.0.0-beta01/data/yafReflectionMap.json new file mode 100644 index 000000000..aaa595f6b --- /dev/null +++ b/docs/v1.0.0-beta01/data/yafReflectionMap.json @@ -0,0 +1 @@ +{"1":{"id":1,"name":"Easing","query":"Module.Easing","hash":"","kind":2,"flags":{}},"2":{"id":2,"parentId":1,"name":"EasingFunction","query":"Easing.TypeAlias.EasingFunction","hash":"","kind":4194304,"flags":{}},"6":{"id":6,"parentId":1,"name":"default","query":"Easing.Variable.default","hash":"","kind":32,"flags":{"isConst":true}},"8":{"id":8,"parentId":6,"name":"Linear","query":"Easing.Variable.default","hash":"Linear","kind":1024,"flags":{}},"10":{"id":10,"parentId":6,"name":"None","query":"Easing.Variable.default","hash":"Linear.None","kind":4096,"flags":{}},"14":{"id":14,"parentId":6,"name":"Quadratic","query":"Easing.Variable.default","hash":"Quadratic","kind":1024,"flags":{}},"16":{"id":16,"parentId":6,"name":"In","query":"Easing.Variable.default","hash":"Quadratic.In","kind":4096,"flags":{}},"20":{"id":20,"parentId":6,"name":"Out","query":"Easing.Variable.default","hash":"Quadratic.Out","kind":4096,"flags":{}},"24":{"id":24,"parentId":6,"name":"InOut","query":"Easing.Variable.default","hash":"Quadratic.InOut","kind":4096,"flags":{}},"28":{"id":28,"parentId":6,"name":"Cubic","query":"Easing.Variable.default","hash":"Cubic","kind":1024,"flags":{}},"30":{"id":30,"parentId":6,"name":"In","query":"Easing.Variable.default","hash":"Cubic.In","kind":4096,"flags":{}},"34":{"id":34,"parentId":6,"name":"Out","query":"Easing.Variable.default","hash":"Cubic.Out","kind":4096,"flags":{}},"38":{"id":38,"parentId":6,"name":"InOut","query":"Easing.Variable.default","hash":"Cubic.InOut","kind":4096,"flags":{}},"42":{"id":42,"parentId":6,"name":"Quartic","query":"Easing.Variable.default","hash":"Quartic","kind":1024,"flags":{}},"44":{"id":44,"parentId":6,"name":"In","query":"Easing.Variable.default","hash":"Quartic.In","kind":4096,"flags":{}},"48":{"id":48,"parentId":6,"name":"Out","query":"Easing.Variable.default","hash":"Quartic.Out","kind":4096,"flags":{}},"52":{"id":52,"parentId":6,"name":"InOut","query":"Easing.Variable.default","hash":"Quartic.InOut","kind":4096,"flags":{}},"56":{"id":56,"parentId":6,"name":"Quintic","query":"Easing.Variable.default","hash":"Quintic","kind":1024,"flags":{}},"58":{"id":58,"parentId":6,"name":"In","query":"Easing.Variable.default","hash":"Quintic.In","kind":4096,"flags":{}},"62":{"id":62,"parentId":6,"name":"Out","query":"Easing.Variable.default","hash":"Quintic.Out","kind":4096,"flags":{}},"66":{"id":66,"parentId":6,"name":"InOut","query":"Easing.Variable.default","hash":"Quintic.InOut","kind":4096,"flags":{}},"70":{"id":70,"parentId":6,"name":"Sinusoidal","query":"Easing.Variable.default","hash":"Sinusoidal","kind":1024,"flags":{}},"72":{"id":72,"parentId":6,"name":"In","query":"Easing.Variable.default","hash":"Sinusoidal.In","kind":4096,"flags":{}},"76":{"id":76,"parentId":6,"name":"Out","query":"Easing.Variable.default","hash":"Sinusoidal.Out","kind":4096,"flags":{}},"80":{"id":80,"parentId":6,"name":"InOut","query":"Easing.Variable.default","hash":"Sinusoidal.InOut","kind":4096,"flags":{}},"84":{"id":84,"parentId":6,"name":"Exponential","query":"Easing.Variable.default","hash":"Exponential","kind":1024,"flags":{}},"86":{"id":86,"parentId":6,"name":"In","query":"Easing.Variable.default","hash":"Exponential.In","kind":4096,"flags":{}},"90":{"id":90,"parentId":6,"name":"Out","query":"Easing.Variable.default","hash":"Exponential.Out","kind":4096,"flags":{}},"94":{"id":94,"parentId":6,"name":"InOut","query":"Easing.Variable.default","hash":"Exponential.InOut","kind":4096,"flags":{}},"98":{"id":98,"parentId":6,"name":"Circular","query":"Easing.Variable.default","hash":"Circular","kind":1024,"flags":{}},"100":{"id":100,"parentId":6,"name":"In","query":"Easing.Variable.default","hash":"Circular.In","kind":4096,"flags":{}},"104":{"id":104,"parentId":6,"name":"Out","query":"Easing.Variable.default","hash":"Circular.Out","kind":4096,"flags":{}},"108":{"id":108,"parentId":6,"name":"InOut","query":"Easing.Variable.default","hash":"Circular.InOut","kind":4096,"flags":{}},"112":{"id":112,"parentId":6,"name":"Elastic","query":"Easing.Variable.default","hash":"Elastic","kind":1024,"flags":{}},"114":{"id":114,"parentId":6,"name":"In","query":"Easing.Variable.default","hash":"Elastic.In","kind":4096,"flags":{}},"118":{"id":118,"parentId":6,"name":"Out","query":"Easing.Variable.default","hash":"Elastic.Out","kind":4096,"flags":{}},"122":{"id":122,"parentId":6,"name":"InOut","query":"Easing.Variable.default","hash":"Elastic.InOut","kind":4096,"flags":{}},"126":{"id":126,"parentId":6,"name":"Back","query":"Easing.Variable.default","hash":"Back","kind":1024,"flags":{}},"128":{"id":128,"parentId":6,"name":"In","query":"Easing.Variable.default","hash":"Back.In","kind":4096,"flags":{}},"132":{"id":132,"parentId":6,"name":"Out","query":"Easing.Variable.default","hash":"Back.Out","kind":4096,"flags":{}},"136":{"id":136,"parentId":6,"name":"InOut","query":"Easing.Variable.default","hash":"Back.InOut","kind":4096,"flags":{}},"140":{"id":140,"parentId":6,"name":"Bounce","query":"Easing.Variable.default","hash":"Bounce","kind":1024,"flags":{}},"142":{"id":142,"parentId":6,"name":"In","query":"Easing.Variable.default","hash":"Bounce.In","kind":4096,"flags":{}},"146":{"id":146,"parentId":6,"name":"Out","query":"Easing.Variable.default","hash":"Bounce.Out","kind":4096,"flags":{}},"150":{"id":150,"parentId":6,"name":"InOut","query":"Easing.Variable.default","hash":"Bounce.InOut","kind":4096,"flags":{}},"154":{"id":154,"name":"Array","query":"Module.Array","hash":"","kind":2,"flags":{}},"155":{"id":155,"parentId":154,"name":"arrayMax","query":"Array.Function.arrayMax","hash":"","kind":64,"flags":{}},"156":{"id":156,"parentId":155,"name":"arrayMax","query":"Array.Function.arrayMax","hash":"arrayMax","kind":4096,"flags":{}},"158":{"id":158,"parentId":154,"name":"arrayMin","query":"Array.Function.arrayMin","hash":"","kind":64,"flags":{}},"159":{"id":159,"parentId":158,"name":"arrayMin","query":"Array.Function.arrayMin","hash":"arrayMin","kind":4096,"flags":{}},"161":{"id":161,"parentId":154,"name":"arrayAverage","query":"Array.Function.arrayAverage","hash":"","kind":64,"flags":{}},"162":{"id":162,"parentId":161,"name":"arrayAverage","query":"Array.Function.arrayAverage","hash":"arrayAverage","kind":4096,"flags":{}},"164":{"id":164,"parentId":154,"name":"arraySum","query":"Array.Function.arraySum","hash":"","kind":64,"flags":{}},"165":{"id":165,"parentId":164,"name":"arraySum","query":"Array.Function.arraySum","hash":"arraySum","kind":4096,"flags":{}},"167":{"id":167,"parentId":154,"name":"size","query":"Array.Function.size","hash":"","kind":64,"flags":{}},"168":{"id":168,"parentId":167,"name":"size","query":"Array.Function.size","hash":"size","kind":4096,"flags":{}},"170":{"id":170,"parentId":154,"name":"arrayToCSV","query":"Array.Function.arrayToCSV","hash":"","kind":64,"flags":{}},"171":{"id":171,"parentId":170,"name":"arrayToCSV","query":"Array.Function.arrayToCSV","hash":"arrayToCSV","kind":4096,"flags":{}},"174":{"id":174,"parentId":154,"name":"castArray","query":"Array.Function.castArray","hash":"","kind":64,"flags":{}},"175":{"id":175,"parentId":174,"name":"castArray","query":"Array.Function.castArray","hash":"castArray","kind":4096,"flags":{}},"178":{"id":178,"parentId":154,"name":"chunk","query":"Array.Function.chunk","hash":"","kind":64,"flags":{}},"179":{"id":179,"parentId":178,"name":"chunk","query":"Array.Function.chunk","hash":"chunk","kind":4096,"flags":{}},"183":{"id":183,"parentId":154,"name":"compact","query":"Array.Function.compact","hash":"","kind":64,"flags":{}},"184":{"id":184,"parentId":183,"name":"compact","query":"Array.Function.compact","hash":"compact","kind":4096,"flags":{}},"187":{"id":187,"parentId":154,"name":"countOccurrences","query":"Array.Function.countOccurrences","hash":"","kind":64,"flags":{}},"188":{"id":188,"parentId":187,"name":"countOccurrences","query":"Array.Function.countOccurrences","hash":"countOccurrences","kind":4096,"flags":{}},"192":{"id":192,"parentId":154,"name":"deepFlatten","query":"Array.Function.deepFlatten","hash":"","kind":64,"flags":{}},"193":{"id":193,"parentId":192,"name":"deepFlatten","query":"Array.Function.deepFlatten","hash":"deepFlatten","kind":4096,"flags":{}},"195":{"id":195,"parentId":154,"name":"flatten","query":"Array.Function.flatten","hash":"","kind":64,"flags":{}},"196":{"id":196,"parentId":195,"name":"flatten","query":"Array.Function.flatten","hash":"flatten","kind":4096,"flags":{}},"199":{"id":199,"parentId":154,"name":"difference","query":"Array.Function.difference","hash":"","kind":64,"flags":{}},"200":{"id":200,"parentId":199,"name":"difference","query":"Array.Function.difference","hash":"difference","kind":4096,"flags":{}},"203":{"id":203,"parentId":154,"name":"differenceBy","query":"Array.Function.differenceBy","hash":"","kind":64,"flags":{}},"204":{"id":204,"parentId":203,"name":"differenceBy","query":"Array.Function.differenceBy","hash":"differenceBy","kind":4096,"flags":{}},"211":{"id":211,"parentId":154,"name":"drop","query":"Array.Function.drop","hash":"","kind":64,"flags":{}},"212":{"id":212,"parentId":211,"name":"drop","query":"Array.Function.drop","hash":"drop","kind":4096,"flags":{}},"216":{"id":216,"parentId":154,"name":"dropWhile","query":"Array.Function.dropWhile","hash":"","kind":64,"flags":{}},"217":{"id":217,"parentId":216,"name":"dropWhile","query":"Array.Function.dropWhile","hash":"dropWhile","kind":4096,"flags":{}},"224":{"id":224,"parentId":154,"name":"indexOfAll","query":"Array.Function.indexOfAll","hash":"","kind":64,"flags":{}},"225":{"id":225,"parentId":224,"name":"indexOfAll","query":"Array.Function.indexOfAll","hash":"indexOfAll","kind":4096,"flags":{}},"228":{"id":228,"parentId":154,"name":"intersection","query":"Array.Function.intersection","hash":"","kind":64,"flags":{}},"229":{"id":229,"parentId":228,"name":"intersection","query":"Array.Function.intersection","hash":"intersection","kind":4096,"flags":{}},"232":{"id":232,"parentId":154,"name":"intersectionBy","query":"Array.Function.intersectionBy","hash":"","kind":64,"flags":{}},"233":{"id":233,"parentId":232,"name":"intersectionBy","query":"Array.Function.intersectionBy","hash":"intersectionBy","kind":4096,"flags":{}},"240":{"id":240,"parentId":154,"name":"intersectionWith","query":"Array.Function.intersectionWith","hash":"","kind":64,"flags":{}},"241":{"id":241,"parentId":240,"name":"intersectionWith","query":"Array.Function.intersectionWith","hash":"intersectionWith","kind":4096,"flags":{}},"249":{"id":249,"parentId":154,"name":"negate","query":"Array.Function.negate","hash":"","kind":64,"flags":{}},"250":{"id":250,"parentId":249,"name":"negate","query":"Array.Function.negate","hash":"negate","kind":4096,"flags":{}},"258":{"id":258,"parentId":154,"name":"sample","query":"Array.Function.sample","hash":"","kind":64,"flags":{}},"259":{"id":259,"parentId":258,"name":"sample","query":"Array.Function.sample","hash":"sample","kind":4096,"flags":{}},"261":{"id":261,"parentId":154,"name":"sampleSize","query":"Array.Function.sampleSize","hash":"","kind":64,"flags":{}},"262":{"id":262,"parentId":261,"name":"sampleSize","query":"Array.Function.sampleSize","hash":"sampleSize","kind":4096,"flags":{}},"265":{"id":265,"parentId":154,"name":"shuffle","query":"Array.Function.shuffle","hash":"","kind":64,"flags":{}},"266":{"id":266,"parentId":265,"name":"shuffle","query":"Array.Function.shuffle","hash":"shuffle","kind":4096,"flags":{}},"268":{"id":268,"parentId":154,"name":"everyNth","query":"Array.Function.everyNth","hash":"","kind":64,"flags":{}},"269":{"id":269,"parentId":268,"name":"everyNth","query":"Array.Function.everyNth","hash":"everyNth","kind":4096,"flags":{}},"272":{"id":272,"parentId":154,"name":"unique","query":"Array.Function.unique","hash":"","kind":64,"flags":{}},"273":{"id":273,"parentId":272,"name":"unique","query":"Array.Function.unique","hash":"unique","kind":4096,"flags":{}},"275":{"id":275,"parentId":154,"name":"filterNonUnique","query":"Array.Function.filterNonUnique","hash":"","kind":64,"flags":{}},"276":{"id":276,"parentId":275,"name":"filterNonUnique","query":"Array.Function.filterNonUnique","hash":"filterNonUnique","kind":4096,"flags":{}},"278":{"id":278,"parentId":154,"name":"initializeArrayWithValues","query":"Array.Function.initializeArrayWithValues","hash":"","kind":64,"flags":{}},"279":{"id":279,"parentId":278,"name":"initializeArrayWithValues","query":"Array.Function.initializeArrayWithValues","hash":"initializeArrayWithValues","kind":4096,"flags":{}},"282":{"id":282,"parentId":154,"name":"remove","query":"Array.Function.remove","hash":"","kind":64,"flags":{}},"283":{"id":283,"parentId":282,"name":"remove","query":"Array.Function.remove","hash":"remove","kind":4096,"flags":{}},"290":{"id":290,"parentId":154,"name":"digitize","query":"Array.Function.digitize","hash":"","kind":64,"flags":{}},"291":{"id":291,"parentId":290,"name":"digitize","query":"Array.Function.digitize","hash":"digitize","kind":4096,"flags":{}},"293":{"id":293,"parentId":154,"name":"fibonacci","query":"Array.Function.fibonacci","hash":"","kind":64,"flags":{}},"294":{"id":294,"parentId":293,"name":"fibonacci","query":"Array.Function.fibonacci","hash":"fibonacci","kind":4096,"flags":{}},"296":{"id":296,"parentId":154,"name":"median","query":"Array.Function.median","hash":"","kind":64,"flags":{}},"297":{"id":297,"parentId":296,"name":"median","query":"Array.Function.median","hash":"median","kind":4096,"flags":{}},"299":{"id":299,"parentId":154,"name":"NumberArr","query":"Array.TypeAlias.NumberArr","hash":"","kind":4194304,"flags":{}},"300":{"id":300,"parentId":154,"name":"AnyArr","query":"Array.TypeAlias.AnyArr","hash":"","kind":4194304,"flags":{}},"301":{"id":301,"parentId":154,"name":"allEqual","query":"Array.Function.allEqual","hash":"","kind":64,"flags":{}},"302":{"id":302,"parentId":301,"name":"allEqual","query":"Array.Function.allEqual","hash":"allEqual","kind":4096,"flags":{}},"304":{"id":304,"parentId":154,"name":"getStringByteLength","query":"Array.Function.getStringByteLength","hash":"","kind":64,"flags":{}},"305":{"id":305,"parentId":304,"name":"getStringByteLength","query":"Array.Function.getStringByteLength","hash":"getStringByteLength","kind":4096,"flags":{}},"307":{"id":307,"name":"Await-to","query":"Module.Await-to","hash":"","kind":2,"flags":{}},"308":{"id":308,"parentId":307,"name":"to","query":"Await-to.Function.to","hash":"","kind":64,"flags":{}},"309":{"id":309,"parentId":308,"name":"to","query":"Await-to.Function.to","hash":"to","kind":4096,"flags":{}},"314":{"id":314,"parentId":307,"name":"default","query":"Module.Await-to","hash":"default","kind":8388608,"flags":{}},"315":{"id":315,"name":"Check.plus","query":"Check.Module.plus","hash":"","kind":2,"flags":{}},"316":{"id":316,"parentId":315,"name":"validatePassport","query":"Check.plus.Function.validatePassport","hash":"","kind":64,"flags":{}},"317":{"id":317,"parentId":316,"name":"validatePassport","query":"Check.plus.Function.validatePassport","hash":"validatePassport","kind":4096,"flags":{}},"319":{"id":319,"parentId":315,"name":"validateLicensePlate","query":"Check.plus.Function.validateLicensePlate","hash":"","kind":64,"flags":{}},"320":{"id":320,"parentId":319,"name":"validateLicensePlate","query":"Check.plus.Function.validateLicensePlate","hash":"validateLicensePlate","kind":4096,"flags":{}},"322":{"id":322,"parentId":315,"name":"checkPwdStrength","query":"Check.plus.Function.checkPwdStrength","hash":"","kind":64,"flags":{}},"323":{"id":323,"parentId":322,"name":"checkPwdStrength","query":"Check.plus.Function.checkPwdStrength","hash":"checkPwdStrength","kind":4096,"flags":{}},"326":{"id":326,"parentId":315,"name":"checkIdcard","query":"Check.plus.Function.checkIdcard","hash":"","kind":64,"flags":{}},"327":{"id":327,"parentId":326,"name":"checkIdcard","query":"Check.plus.Function.checkIdcard","hash":"checkIdcard","kind":4096,"flags":{}},"330":{"id":330,"name":"Check","query":"Module.Check","hash":"","kind":2,"flags":{}},"331":{"id":331,"parentId":330,"name":"isEmail","query":"Check.Function.isEmail","hash":"","kind":64,"flags":{}},"332":{"id":332,"parentId":331,"name":"isEmail","query":"Check.Function.isEmail","hash":"isEmail","kind":4096,"flags":{}},"334":{"id":334,"parentId":330,"name":"isIdCard","query":"Check.Function.isIdCard","hash":"","kind":64,"flags":{}},"335":{"id":335,"parentId":334,"name":"isIdCard","query":"Check.Function.isIdCard","hash":"isIdCard","kind":4096,"flags":{}},"337":{"id":337,"parentId":330,"name":"isUrl","query":"Check.Function.isUrl","hash":"","kind":64,"flags":{}},"338":{"id":338,"parentId":337,"name":"isUrl","query":"Check.Function.isUrl","hash":"isUrl","kind":4096,"flags":{}},"340":{"id":340,"parentId":330,"name":"isPhoneNumber","query":"Check.Function.isPhoneNumber","hash":"","kind":64,"flags":{}},"341":{"id":341,"parentId":340,"name":"isPhoneNumber","query":"Check.Function.isPhoneNumber","hash":"isPhoneNumber","kind":4096,"flags":{}},"343":{"id":343,"parentId":330,"name":"isPostalCode","query":"Check.Function.isPostalCode","hash":"","kind":64,"flags":{}},"344":{"id":344,"parentId":343,"name":"isPostalCode","query":"Check.Function.isPostalCode","hash":"isPostalCode","kind":4096,"flags":{}},"346":{"id":346,"parentId":330,"name":"isBankCard","query":"Check.Function.isBankCard","hash":"","kind":64,"flags":{}},"347":{"id":347,"parentId":346,"name":"isBankCard","query":"Check.Function.isBankCard","hash":"isBankCard","kind":4096,"flags":{}},"349":{"id":349,"name":"Collection","query":"Module.Collection","hash":"","kind":2,"flags":{}},"350":{"id":350,"parentId":349,"name":"groupBy","query":"Collection.Function.groupBy","hash":"","kind":64,"flags":{}},"351":{"id":351,"parentId":350,"name":"groupBy","query":"Collection.Function.groupBy","hash":"groupBy","kind":4096,"flags":{}},"358":{"id":358,"parentId":349,"name":"partition","query":"Collection.Function.partition","hash":"","kind":64,"flags":{}},"359":{"id":359,"parentId":358,"name":"partition","query":"Collection.Function.partition","hash":"partition","kind":4096,"flags":{}},"366":{"id":366,"parentId":349,"name":"zip","query":"Collection.Function.zip","hash":"","kind":64,"flags":{}},"367":{"id":367,"parentId":366,"name":"zip","query":"Collection.Function.zip","hash":"zip","kind":4096,"flags":{}},"369":{"id":369,"parentId":349,"name":"unzip","query":"Collection.Function.unzip","hash":"","kind":64,"flags":{}},"370":{"id":370,"parentId":369,"name":"unzip","query":"Collection.Function.unzip","hash":"unzip","kind":4096,"flags":{}},"372":{"id":372,"parentId":349,"name":"sortBy","query":"Collection.Function.sortBy","hash":"","kind":64,"flags":{}},"373":{"id":373,"parentId":372,"name":"sortBy","query":"Collection.Function.sortBy","hash":"sortBy","kind":4096,"flags":{}},"380":{"id":380,"parentId":349,"name":"cartesianProduct","query":"Collection.Function.cartesianProduct","hash":"","kind":64,"flags":{}},"381":{"id":381,"parentId":380,"name":"cartesianProduct","query":"Collection.Function.cartesianProduct","hash":"cartesianProduct","kind":4096,"flags":{}},"383":{"id":383,"parentId":349,"name":"mergeSorted","query":"Collection.Function.mergeSorted","hash":"","kind":64,"flags":{}},"384":{"id":384,"parentId":383,"name":"mergeSorted","query":"Collection.Function.mergeSorted","hash":"mergeSorted","kind":4096,"flags":{}},"387":{"id":387,"name":"Color","query":"Module.Color","hash":"","kind":2,"flags":{}},"388":{"id":388,"parentId":387,"name":"randomHexColor","query":"Color.Function.randomHexColor","hash":"","kind":64,"flags":{}},"389":{"id":389,"parentId":388,"name":"randomHexColor","query":"Color.Function.randomHexColor","hash":"randomHexColor","kind":4096,"flags":{}},"390":{"id":390,"parentId":387,"name":"getColorRgbArr","query":"Color.Function.getColorRgbArr","hash":"","kind":64,"flags":{}},"391":{"id":391,"parentId":390,"name":"getColorRgbArr","query":"Color.Function.getColorRgbArr","hash":"getColorRgbArr","kind":4096,"flags":{}},"393":{"id":393,"parentId":387,"name":"getColorRgba","query":"Color.Function.getColorRgba","hash":"","kind":64,"flags":{}},"394":{"id":394,"parentId":393,"name":"getColorRgba","query":"Color.Function.getColorRgba","hash":"getColorRgba","kind":4096,"flags":{}},"397":{"id":397,"parentId":387,"name":"isTransparentColor","query":"Color.Function.isTransparentColor","hash":"","kind":64,"flags":{}},"398":{"id":398,"parentId":397,"name":"isTransparentColor","query":"Color.Function.isTransparentColor","hash":"isTransparentColor","kind":4096,"flags":{}},"400":{"id":400,"name":"Date","query":"Module.Date","hash":"","kind":2,"flags":{}},"401":{"id":401,"parentId":400,"name":"dayOfYear","query":"Date.Function.dayOfYear","hash":"","kind":64,"flags":{}},"402":{"id":402,"parentId":401,"name":"dayOfYear","query":"Date.Function.dayOfYear","hash":"dayOfYear","kind":4096,"flags":{}},"404":{"id":404,"parentId":400,"name":"getColonTimeFromDate","query":"Date.Function.getColonTimeFromDate","hash":"","kind":64,"flags":{}},"405":{"id":405,"parentId":404,"name":"getColonTimeFromDate","query":"Date.Function.getColonTimeFromDate","hash":"getColonTimeFromDate","kind":4096,"flags":{}},"407":{"id":407,"parentId":400,"name":"getDaysDiffBetweenDates","query":"Date.Function.getDaysDiffBetweenDates","hash":"","kind":64,"flags":{}},"408":{"id":408,"parentId":407,"name":"getDaysDiffBetweenDates","query":"Date.Function.getDaysDiffBetweenDates","hash":"getDaysDiffBetweenDates","kind":4096,"flags":{}},"411":{"id":411,"parentId":400,"name":"isAfterDate","query":"Date.Function.isAfterDate","hash":"","kind":64,"flags":{}},"412":{"id":412,"parentId":411,"name":"isAfterDate","query":"Date.Function.isAfterDate","hash":"isAfterDate","kind":4096,"flags":{}},"415":{"id":415,"parentId":400,"name":"isBeforeDate","query":"Date.Function.isBeforeDate","hash":"","kind":64,"flags":{}},"416":{"id":416,"parentId":415,"name":"isBeforeDate","query":"Date.Function.isBeforeDate","hash":"isBeforeDate","kind":4096,"flags":{}},"419":{"id":419,"parentId":400,"name":"daysLater","query":"Date.Function.daysLater","hash":"","kind":64,"flags":{}},"420":{"id":420,"parentId":419,"name":"daysLater","query":"Date.Function.daysLater","hash":"daysLater","kind":4096,"flags":{}},"423":{"id":423,"parentId":400,"name":"getFormattedRemainTime","query":"Date.Function.getFormattedRemainTime","hash":"","kind":64,"flags":{}},"424":{"id":424,"parentId":423,"name":"getFormattedRemainTime","query":"Date.Function.getFormattedRemainTime","hash":"getFormattedRemainTime","kind":4096,"flags":{}},"428":{"id":428,"parentId":423,"name":"day","query":"Date.Function.getFormattedRemainTime","hash":"getFormattedRemainTime.day","kind":1024,"flags":{}},"429":{"id":429,"parentId":423,"name":"hour","query":"Date.Function.getFormattedRemainTime","hash":"getFormattedRemainTime.hour","kind":1024,"flags":{}},"430":{"id":430,"parentId":423,"name":"minute","query":"Date.Function.getFormattedRemainTime","hash":"getFormattedRemainTime.minute","kind":1024,"flags":{}},"431":{"id":431,"parentId":423,"name":"second","query":"Date.Function.getFormattedRemainTime","hash":"getFormattedRemainTime.second","kind":1024,"flags":{}},"432":{"id":432,"name":"Formatter","query":"Module.Formatter","hash":"","kind":2,"flags":{}},"433":{"id":433,"parentId":432,"name":"formatFileSize","query":"Formatter.Function.formatFileSize","hash":"","kind":64,"flags":{}},"434":{"id":434,"parentId":433,"name":"formatFileSize","query":"Formatter.Function.formatFileSize","hash":"formatFileSize","kind":4096,"flags":{}},"437":{"id":437,"parentId":432,"name":"formatDuration","query":"Formatter.Function.formatDuration","hash":"","kind":64,"flags":{}},"438":{"id":438,"parentId":437,"name":"formatDuration","query":"Formatter.Function.formatDuration","hash":"formatDuration","kind":4096,"flags":{}},"440":{"id":440,"parentId":432,"name":"formatNumber","query":"Formatter.Function.formatNumber","hash":"","kind":64,"flags":{}},"441":{"id":441,"parentId":440,"name":"formatNumber","query":"Formatter.Function.formatNumber","hash":"formatNumber","kind":4096,"flags":{}},"445":{"id":445,"parentId":432,"name":"formatCurrency","query":"Formatter.Function.formatCurrency","hash":"","kind":64,"flags":{}},"446":{"id":446,"parentId":445,"name":"formatCurrency","query":"Formatter.Function.formatCurrency","hash":"formatCurrency","kind":4096,"flags":{}},"450":{"id":450,"parentId":432,"name":"formatRelativeTime","query":"Formatter.Function.formatRelativeTime","hash":"","kind":64,"flags":{}},"451":{"id":451,"parentId":450,"name":"formatRelativeTime","query":"Formatter.Function.formatRelativeTime","hash":"formatRelativeTime","kind":4096,"flags":{}},"453":{"id":453,"parentId":432,"name":"formatPhone","query":"Formatter.Function.formatPhone","hash":"","kind":64,"flags":{}},"454":{"id":454,"parentId":453,"name":"formatPhone","query":"Formatter.Function.formatPhone","hash":"formatPhone","kind":4096,"flags":{}},"457":{"id":457,"parentId":432,"name":"formatPercentage","query":"Formatter.Function.formatPercentage","hash":"","kind":64,"flags":{}},"458":{"id":458,"parentId":457,"name":"formatPercentage","query":"Formatter.Function.formatPercentage","hash":"formatPercentage","kind":4096,"flags":{}},"462":{"id":462,"parentId":432,"name":"formatOrdinal","query":"Formatter.Function.formatOrdinal","hash":"","kind":64,"flags":{}},"463":{"id":463,"parentId":462,"name":"formatOrdinal","query":"Formatter.Function.formatOrdinal","hash":"formatOrdinal","kind":4096,"flags":{}},"465":{"id":465,"name":"Function","query":"Module.Function","hash":"","kind":2,"flags":{}},"466":{"id":466,"parentId":465,"name":"attempt","query":"Function.Function.attempt","hash":"","kind":64,"flags":{}},"467":{"id":467,"parentId":466,"name":"attempt","query":"Function.Function.attempt","hash":"attempt","kind":4096,"flags":{}},"475":{"id":475,"parentId":465,"name":"defer","query":"Function.Function.defer","hash":"","kind":64,"flags":{}},"476":{"id":476,"parentId":475,"name":"defer","query":"Function.Function.defer","hash":"defer","kind":4096,"flags":{}},"482":{"id":482,"parentId":465,"name":"runPromisesInSeries","query":"Function.Function.runPromisesInSeries","hash":"","kind":64,"flags":{}},"483":{"id":483,"parentId":482,"name":"runPromisesInSeries","query":"Function.Function.runPromisesInSeries","hash":"runPromisesInSeries","kind":4096,"flags":{}},"488":{"id":488,"parentId":465,"name":"timeTaken","query":"Function.Function.timeTaken","hash":"","kind":64,"flags":{}},"489":{"id":489,"parentId":488,"name":"timeTaken","query":"Function.Function.timeTaken","hash":"timeTaken","kind":4096,"flags":{}},"495":{"id":495,"parentId":465,"name":"memoize","query":"Function.Function.memoize","hash":"","kind":64,"flags":{}},"496":{"id":496,"parentId":495,"name":"memoize","query":"Function.Function.memoize","hash":"memoize","kind":4096,"flags":{}},"502":{"id":502,"parentId":495,"name":"cache","query":"Function.Function.memoize","hash":"memoize.cache","kind":1024,"flags":{}},"505":{"id":505,"parentId":465,"name":"once","query":"Function.Function.once","hash":"","kind":64,"flags":{}},"506":{"id":506,"parentId":505,"name":"once","query":"Function.Function.once","hash":"once","kind":4096,"flags":{}},"514":{"id":514,"parentId":465,"name":"chainAsync","query":"Function.Function.chainAsync","hash":"","kind":64,"flags":{}},"515":{"id":515,"parentId":514,"name":"chainAsync","query":"Function.Function.chainAsync","hash":"chainAsync","kind":4096,"flags":{}},"520":{"id":520,"parentId":465,"name":"compose","query":"Function.Function.compose","hash":"","kind":64,"flags":{}},"521":{"id":521,"parentId":520,"name":"compose","query":"Function.Function.compose","hash":"compose","kind":4096,"flags":{}},"530":{"id":530,"parentId":465,"name":"pipe","query":"Function.Function.pipe","hash":"","kind":64,"flags":{}},"531":{"id":531,"parentId":530,"name":"pipe","query":"Function.Function.pipe","hash":"pipe","kind":4096,"flags":{}},"540":{"id":540,"parentId":465,"name":"functionName","query":"Function.Function.functionName","hash":"","kind":64,"flags":{}},"541":{"id":541,"parentId":540,"name":"functionName","query":"Function.Function.functionName","hash":"functionName","kind":4096,"flags":{}},"547":{"id":547,"parentId":465,"name":"promisify","query":"Function.Function.promisify","hash":"","kind":64,"flags":{}},"548":{"id":548,"parentId":547,"name":"promisify","query":"Function.Function.promisify","hash":"promisify","kind":4096,"flags":{}},"562":{"id":562,"parentId":465,"name":"sleep","query":"Function.Function.sleep","hash":"","kind":64,"flags":{}},"563":{"id":563,"parentId":562,"name":"sleep","query":"Function.Function.sleep","hash":"sleep","kind":4096,"flags":{}},"565":{"id":565,"parentId":465,"name":"throttle","query":"Function.Function.throttle","hash":"","kind":64,"flags":{}},"566":{"id":566,"parentId":565,"name":"throttle","query":"Function.Function.throttle","hash":"throttle","kind":4096,"flags":{}},"576":{"id":576,"parentId":465,"name":"debounce","query":"Function.Function.debounce","hash":"","kind":64,"flags":{}},"577":{"id":577,"parentId":576,"name":"debounce","query":"Function.Function.debounce","hash":"debounce","kind":4096,"flags":{}},"584":{"id":584,"parentId":465,"name":"NOOP","query":"Function.Function.NOOP","hash":"","kind":64,"flags":{}},"585":{"id":585,"parentId":584,"name":"NOOP","query":"Function.Function.NOOP","hash":"NOOP","kind":4096,"flags":{}},"586":{"id":586,"parentId":465,"name":"curry","query":"Function.Function.curry","hash":"","kind":64,"flags":{}},"587":{"id":587,"parentId":586,"name":"curry","query":"Function.Function.curry","hash":"curry","kind":4096,"flags":{}},"594":{"id":594,"parentId":586,"name":"curry","query":"Function.Function.curry","hash":"curry","kind":4096,"flags":{}},"603":{"id":603,"parentId":586,"name":"curry","query":"Function.Function.curry","hash":"curry","kind":4096,"flags":{}},"614":{"id":614,"name":"Utils","query":"Module.Utils","hash":"","kind":2,"flags":{}},"615":{"id":615,"name":"JSON","query":"Module.JSON","hash":"","kind":2,"flags":{}},"616":{"id":616,"parentId":615,"name":"safeJSONParse","query":"JSON.Function.safeJSONParse","hash":"","kind":64,"flags":{}},"617":{"id":617,"parentId":616,"name":"safeJSONParse","query":"JSON.Function.safeJSONParse","hash":"safeJSONParse","kind":4096,"flags":{}},"621":{"id":621,"parentId":615,"name":"flattenJSON","query":"JSON.Function.flattenJSON","hash":"","kind":64,"flags":{}},"622":{"id":622,"parentId":621,"name":"flattenJSON","query":"JSON.Function.flattenJSON","hash":"flattenJSON","kind":4096,"flags":{}},"625":{"id":625,"parentId":615,"name":"unflattenJSON","query":"JSON.Function.unflattenJSON","hash":"","kind":64,"flags":{}},"626":{"id":626,"parentId":625,"name":"unflattenJSON","query":"JSON.Function.unflattenJSON","hash":"unflattenJSON","kind":4096,"flags":{}},"628":{"id":628,"parentId":615,"name":"compareJSON","query":"JSON.Function.compareJSON","hash":"","kind":64,"flags":{}},"629":{"id":629,"parentId":628,"name":"compareJSON","query":"JSON.Function.compareJSON","hash":"compareJSON","kind":4096,"flags":{}},"635":{"id":635,"parentId":615,"name":"mergeJSON","query":"JSON.Function.mergeJSON","hash":"","kind":64,"flags":{}},"636":{"id":636,"parentId":635,"name":"mergeJSON","query":"JSON.Function.mergeJSON","hash":"mergeJSON","kind":4096,"flags":{}},"638":{"id":638,"parentId":615,"name":"cloneJSON","query":"JSON.Function.cloneJSON","hash":"","kind":64,"flags":{}},"639":{"id":639,"parentId":638,"name":"cloneJSON","query":"JSON.Function.cloneJSON","hash":"cloneJSON","kind":4096,"flags":{}},"642":{"id":642,"name":"Math","query":"Module.Math","hash":"","kind":2,"flags":{}},"643":{"id":643,"parentId":642,"name":"factorial","query":"Math.Function.factorial","hash":"","kind":64,"flags":{}},"644":{"id":644,"parentId":643,"name":"factorial","query":"Math.Function.factorial","hash":"factorial","kind":4096,"flags":{}},"646":{"id":646,"parentId":642,"name":"gcd","query":"Math.Function.gcd","hash":"","kind":64,"flags":{}},"647":{"id":647,"parentId":646,"name":"gcd","query":"Math.Function.gcd","hash":"gcd","kind":4096,"flags":{}},"650":{"id":650,"parentId":642,"name":"isDivisible","query":"Math.Function.isDivisible","hash":"","kind":64,"flags":{}},"651":{"id":651,"parentId":650,"name":"isDivisible","query":"Math.Function.isDivisible","hash":"isDivisible","kind":4096,"flags":{}},"654":{"id":654,"parentId":642,"name":"lcm","query":"Math.Function.lcm","hash":"","kind":64,"flags":{}},"655":{"id":655,"parentId":654,"name":"lcm","query":"Math.Function.lcm","hash":"lcm","kind":4096,"flags":{}},"658":{"id":658,"name":"Number","query":"Module.Number","hash":"","kind":2,"flags":{}},"659":{"id":659,"parentId":658,"name":"isOdd","query":"Number.Function.isOdd","hash":"","kind":64,"flags":{}},"660":{"id":660,"parentId":659,"name":"isOdd","query":"Number.Function.isOdd","hash":"isOdd","kind":4096,"flags":{}},"662":{"id":662,"parentId":658,"name":"isValidNumber","query":"Number.Function.isValidNumber","hash":"","kind":64,"flags":{}},"663":{"id":663,"parentId":662,"name":"isValidNumber","query":"Number.Function.isValidNumber","hash":"isValidNumber","kind":4096,"flags":{}},"665":{"id":665,"parentId":658,"name":"isApproximatelyEqual","query":"Number.Function.isApproximatelyEqual","hash":"","kind":64,"flags":{}},"666":{"id":666,"parentId":665,"name":"isApproximatelyEqual","query":"Number.Function.isApproximatelyEqual","hash":"isApproximatelyEqual","kind":4096,"flags":{}},"670":{"id":670,"parentId":658,"name":"average","query":"Number.Function.average","hash":"","kind":64,"flags":{}},"671":{"id":671,"parentId":670,"name":"average","query":"Number.Function.average","hash":"average","kind":4096,"flags":{}},"673":{"id":673,"parentId":658,"name":"randomIntegerInRange","query":"Number.Function.randomIntegerInRange","hash":"","kind":64,"flags":{}},"674":{"id":674,"parentId":673,"name":"randomIntegerInRange","query":"Number.Function.randomIntegerInRange","hash":"randomIntegerInRange","kind":4096,"flags":{}},"677":{"id":677,"parentId":658,"name":"randomNumberInRange","query":"Number.Function.randomNumberInRange","hash":"","kind":64,"flags":{}},"678":{"id":678,"parentId":677,"name":"randomNumberInRange","query":"Number.Function.randomNumberInRange","hash":"randomNumberInRange","kind":4096,"flags":{}},"681":{"id":681,"parentId":658,"name":"randomIntArrayInRange","query":"Number.Function.randomIntArrayInRange","hash":"","kind":64,"flags":{}},"682":{"id":682,"parentId":681,"name":"randomIntArrayInRange","query":"Number.Function.randomIntArrayInRange","hash":"randomIntArrayInRange","kind":4096,"flags":{}},"686":{"id":686,"parentId":658,"name":"round","query":"Number.Function.round","hash":"","kind":64,"flags":{}},"687":{"id":687,"parentId":686,"name":"round","query":"Number.Function.round","hash":"round","kind":4096,"flags":{}},"690":{"id":690,"parentId":658,"name":"sum","query":"Number.Function.sum","hash":"","kind":64,"flags":{}},"691":{"id":691,"parentId":690,"name":"sum","query":"Number.Function.sum","hash":"sum","kind":4096,"flags":{}},"693":{"id":693,"parentId":658,"name":"clamp","query":"Number.Function.clamp","hash":"","kind":64,"flags":{}},"694":{"id":694,"parentId":693,"name":"clamp","query":"Number.Function.clamp","hash":"clamp","kind":4096,"flags":{}},"698":{"id":698,"parentId":658,"name":"isInt","query":"Number.Function.isInt","hash":"","kind":64,"flags":{}},"699":{"id":699,"parentId":698,"name":"isInt","query":"Number.Function.isInt","hash":"isInt","kind":4096,"flags":{}},"701":{"id":701,"parentId":658,"name":"isFloat","query":"Number.Function.isFloat","hash":"","kind":64,"flags":{}},"702":{"id":702,"parentId":701,"name":"isFloat","query":"Number.Function.isFloat","hash":"isFloat","kind":4096,"flags":{}},"704":{"id":704,"name":"Object","query":"Module.Object","hash":"","kind":2,"flags":{}},"705":{"id":705,"parentId":704,"name":"forOwn","query":"Object.Function.forOwn","hash":"","kind":64,"flags":{}},"706":{"id":706,"parentId":705,"name":"forOwn","query":"Object.Function.forOwn","hash":"forOwn","kind":4096,"flags":{}},"714":{"id":714,"parentId":704,"name":"objectFromPairs","query":"Object.Function.objectFromPairs","hash":"","kind":64,"flags":{}},"715":{"id":715,"parentId":714,"name":"objectFromPairs","query":"Object.Function.objectFromPairs","hash":"objectFromPairs","kind":4096,"flags":{}},"717":{"id":717,"parentId":704,"name":"mapObject","query":"Object.Function.mapObject","hash":"","kind":64,"flags":{}},"718":{"id":718,"parentId":717,"name":"mapObject","query":"Object.Function.mapObject","hash":"mapObject","kind":4096,"flags":{}},"728":{"id":728,"parentId":704,"name":"pick","query":"Object.Function.pick","hash":"","kind":64,"flags":{}},"729":{"id":729,"parentId":728,"name":"pick","query":"Object.Function.pick","hash":"pick","kind":4096,"flags":{}},"732":{"id":732,"parentId":704,"name":"hasOwnProperty","query":"Object.Function.hasOwnProperty","hash":"","kind":64,"flags":{}},"733":{"id":733,"parentId":732,"name":"hasOwnProperty","query":"Object.Function.hasOwnProperty","hash":"hasOwnProperty","kind":4096,"flags":{}},"737":{"id":737,"parentId":704,"name":"isEmptyObj","query":"Object.Function.isEmptyObj","hash":"","kind":64,"flags":{}},"738":{"id":738,"parentId":737,"name":"isEmptyObj","query":"Object.Function.isEmptyObj","hash":"isEmptyObj","kind":4096,"flags":{}},"740":{"id":740,"parentId":704,"name":"PlainObject","query":"Object.TypeAlias.PlainObject","hash":"","kind":4194304,"flags":{}},"744":{"id":744,"name":"Others","query":"Module.Others","hash":"","kind":2,"flags":{}},"745":{"id":745,"parentId":744,"name":"compareVersion","query":"Others.Function.compareVersion","hash":"","kind":64,"flags":{}},"746":{"id":746,"parentId":745,"name":"compareVersion","query":"Others.Function.compareVersion","hash":"compareVersion","kind":4096,"flags":{}},"749":{"id":749,"parentId":744,"name":"digitUppercase","query":"Others.Function.digitUppercase","hash":"","kind":64,"flags":{}},"750":{"id":750,"parentId":749,"name":"digitUppercase","query":"Others.Function.digitUppercase","hash":"digitUppercase","kind":4096,"flags":{}},"752":{"id":752,"name":"String","query":"Module.String","hash":"","kind":2,"flags":{}},"753":{"id":753,"parentId":752,"name":"byteSize","query":"String.Function.byteSize","hash":"","kind":64,"flags":{}},"754":{"id":754,"parentId":753,"name":"byteSize","query":"String.Function.byteSize","hash":"byteSize","kind":4096,"flags":{}},"756":{"id":756,"parentId":752,"name":"capitalize","query":"String.Function.capitalize","hash":"","kind":64,"flags":{}},"757":{"id":757,"parentId":756,"name":"capitalize","query":"String.Function.capitalize","hash":"capitalize","kind":4096,"flags":{}},"759":{"id":759,"parentId":752,"name":"capitalizeEveryWord","query":"String.Function.capitalizeEveryWord","hash":"","kind":64,"flags":{}},"760":{"id":760,"parentId":759,"name":"capitalizeEveryWord","query":"String.Function.capitalizeEveryWord","hash":"capitalizeEveryWord","kind":4096,"flags":{}},"762":{"id":762,"parentId":752,"name":"decapitalize","query":"String.Function.decapitalize","hash":"","kind":64,"flags":{}},"763":{"id":763,"parentId":762,"name":"decapitalize","query":"String.Function.decapitalize","hash":"decapitalize","kind":4096,"flags":{}},"765":{"id":765,"parentId":752,"name":"splitLines","query":"String.Function.splitLines","hash":"","kind":64,"flags":{}},"766":{"id":766,"parentId":765,"name":"splitLines","query":"String.Function.splitLines","hash":"splitLines","kind":4096,"flags":{}},"768":{"id":768,"parentId":752,"name":"stripHTMLTags","query":"String.Function.stripHTMLTags","hash":"","kind":64,"flags":{}},"769":{"id":769,"parentId":768,"name":"stripHTMLTags","query":"String.Function.stripHTMLTags","hash":"stripHTMLTags","kind":4096,"flags":{}},"771":{"id":771,"parentId":752,"name":"palindrome","query":"String.Function.palindrome","hash":"","kind":64,"flags":{}},"772":{"id":772,"parentId":771,"name":"palindrome","query":"String.Function.palindrome","hash":"palindrome","kind":4096,"flags":{}},"774":{"id":774,"parentId":752,"name":"fromCamelCase","query":"String.Function.fromCamelCase","hash":"","kind":64,"flags":{}},"775":{"id":775,"parentId":774,"name":"fromCamelCase","query":"String.Function.fromCamelCase","hash":"fromCamelCase","kind":4096,"flags":{}},"778":{"id":778,"parentId":752,"name":"reverseString","query":"String.Function.reverseString","hash":"","kind":64,"flags":{}},"779":{"id":779,"parentId":778,"name":"reverseString","query":"String.Function.reverseString","hash":"reverseString","kind":4096,"flags":{}},"781":{"id":781,"parentId":752,"name":"truncateString","query":"String.Function.truncateString","hash":"","kind":64,"flags":{}},"782":{"id":782,"parentId":781,"name":"truncateString","query":"String.Function.truncateString","hash":"truncateString","kind":4096,"flags":{}},"785":{"id":785,"parentId":752,"name":"ellipsis","query":"String.Function.ellipsis","hash":"","kind":64,"flags":{}},"786":{"id":786,"parentId":785,"name":"ellipsis","query":"String.Function.ellipsis","hash":"ellipsis","kind":4096,"flags":{}},"790":{"id":790,"parentId":752,"name":"maskString","query":"String.Function.maskString","hash":"","kind":64,"flags":{}},"791":{"id":791,"parentId":790,"name":"maskString","query":"String.Function.maskString","hash":"maskString","kind":4096,"flags":{}},"796":{"id":796,"parentId":752,"name":"isChinese","query":"String.Function.isChinese","hash":"","kind":64,"flags":{}},"797":{"id":797,"parentId":796,"name":"isChinese","query":"String.Function.isChinese","hash":"isChinese","kind":4096,"flags":{}},"799":{"id":799,"parentId":752,"name":"camelize","query":"String.Function.camelize","hash":"","kind":64,"flags":{}},"800":{"id":800,"parentId":799,"name":"camelize","query":"String.Function.camelize","hash":"camelize","kind":4096,"flags":{}},"802":{"id":802,"name":"Trade","query":"Module.Trade","hash":"","kind":2,"flags":{}},"803":{"id":803,"parentId":802,"name":"luhnCheck","query":"Trade.Function.luhnCheck","hash":"","kind":64,"flags":{}},"804":{"id":804,"parentId":803,"name":"luhnCheck","query":"Trade.Function.luhnCheck","hash":"luhnCheck","kind":4096,"flags":{}},"806":{"id":806,"parentId":802,"name":"toCurrency","query":"Trade.Function.toCurrency","hash":"","kind":64,"flags":{}},"807":{"id":807,"parentId":806,"name":"toCurrency","query":"Trade.Function.toCurrency","hash":"toCurrency","kind":4096,"flags":{}},"811":{"id":811,"name":"Type","query":"Module.Type","hash":"","kind":2,"flags":{}},"812":{"id":812,"parentId":811,"name":"type","query":"Type.Function.type","hash":"","kind":64,"flags":{}},"813":{"id":813,"parentId":812,"name":"type","query":"Type.Function.type","hash":"type","kind":4096,"flags":{}},"815":{"id":815,"parentId":811,"name":"isUndefined","query":"Type.Function.isUndefined","hash":"","kind":64,"flags":{}},"816":{"id":816,"parentId":815,"name":"isUndefined","query":"Type.Function.isUndefined","hash":"isUndefined","kind":4096,"flags":{}},"818":{"id":818,"parentId":811,"name":"isString","query":"Type.Function.isString","hash":"","kind":64,"flags":{}},"819":{"id":819,"parentId":818,"name":"isString","query":"Type.Function.isString","hash":"isString","kind":4096,"flags":{}},"821":{"id":821,"parentId":811,"name":"isNumber","query":"Type.Function.isNumber","hash":"","kind":64,"flags":{}},"822":{"id":822,"parentId":821,"name":"isNumber","query":"Type.Function.isNumber","hash":"isNumber","kind":4096,"flags":{}},"824":{"id":824,"parentId":811,"name":"isObject","query":"Type.Function.isObject","hash":"","kind":64,"flags":{}},"825":{"id":825,"parentId":824,"name":"isObject","query":"Type.Function.isObject","hash":"isObject","kind":4096,"flags":{}},"827":{"id":827,"parentId":811,"name":"isFunction","query":"Type.Function.isFunction","hash":"","kind":64,"flags":{}},"828":{"id":828,"parentId":827,"name":"isFunction","query":"Type.Function.isFunction","hash":"isFunction","kind":4096,"flags":{}},"830":{"id":830,"parentId":811,"name":"equals","query":"Type.Function.equals","hash":"","kind":64,"flags":{}},"831":{"id":831,"parentId":830,"name":"equals","query":"Type.Function.equals","hash":"equals","kind":4096,"flags":{}},"834":{"id":834,"parentId":811,"name":"isArray","query":"Type.Function.isArray","hash":"","kind":64,"flags":{}},"835":{"id":835,"parentId":834,"name":"isArray","query":"Type.Function.isArray","hash":"isArray","kind":4096,"flags":{}},"837":{"id":837,"parentId":811,"name":"isPrimitive","query":"Type.Function.isPrimitive","hash":"","kind":64,"flags":{}},"838":{"id":838,"parentId":837,"name":"isPrimitive","query":"Type.Function.isPrimitive","hash":"isPrimitive","kind":4096,"flags":{}},"841":{"id":841,"parentId":811,"name":"isDate","query":"Type.Function.isDate","hash":"","kind":64,"flags":{}},"842":{"id":842,"parentId":841,"name":"isDate","query":"Type.Function.isDate","hash":"isDate","kind":4096,"flags":{}},"844":{"id":844,"name":"Validators","query":"Module.Validators","hash":"","kind":2,"flags":{}},"845":{"id":845,"parentId":844,"name":"isValidJSON","query":"Validators.Function.isValidJSON","hash":"","kind":64,"flags":{}},"846":{"id":846,"parentId":845,"name":"isValidJSON","query":"Validators.Function.isValidJSON","hash":"isValidJSON","kind":4096,"flags":{}},"848":{"id":848,"parentId":844,"name":"isValidEmail","query":"Validators.Function.isValidEmail","hash":"","kind":64,"flags":{}},"849":{"id":849,"parentId":848,"name":"isValidEmail","query":"Validators.Function.isValidEmail","hash":"isValidEmail","kind":4096,"flags":{}},"851":{"id":851,"parentId":844,"name":"isValidURL","query":"Validators.Function.isValidURL","hash":"","kind":64,"flags":{}},"852":{"id":852,"parentId":851,"name":"isValidURL","query":"Validators.Function.isValidURL","hash":"isValidURL","kind":4096,"flags":{}},"854":{"id":854,"parentId":844,"name":"isCreditCard","query":"Validators.Function.isCreditCard","hash":"","kind":64,"flags":{}},"855":{"id":855,"parentId":854,"name":"isCreditCard","query":"Validators.Function.isCreditCard","hash":"isCreditCard","kind":4096,"flags":{}},"857":{"id":857,"parentId":844,"name":"isHexColor","query":"Validators.Function.isHexColor","hash":"","kind":64,"flags":{}},"858":{"id":858,"parentId":857,"name":"isHexColor","query":"Validators.Function.isHexColor","hash":"isHexColor","kind":4096,"flags":{}},"860":{"id":860,"parentId":844,"name":"isIPv4","query":"Validators.Function.isIPv4","hash":"","kind":64,"flags":{}},"861":{"id":861,"parentId":860,"name":"isIPv4","query":"Validators.Function.isIPv4","hash":"isIPv4","kind":4096,"flags":{}},"863":{"id":863,"parentId":844,"name":"isPort","query":"Validators.Function.isPort","hash":"","kind":64,"flags":{}},"864":{"id":864,"parentId":863,"name":"isPort","query":"Validators.Function.isPort","hash":"isPort","kind":4096,"flags":{}},"866":{"id":866,"parentId":844,"name":"isJWT","query":"Validators.Function.isJWT","hash":"","kind":64,"flags":{}},"867":{"id":867,"parentId":866,"name":"isJWT","query":"Validators.Function.isJWT","hash":"isJWT","kind":4096,"flags":{}},"869":{"id":869,"parentId":844,"name":"isSemVer","query":"Validators.Function.isSemVer","hash":"","kind":64,"flags":{}},"870":{"id":870,"parentId":869,"name":"isSemVer","query":"Validators.Function.isSemVer","hash":"isSemVer","kind":4096,"flags":{}},"872":{"id":872,"parentId":844,"name":"isValidPhoneNumber","query":"Validators.Function.isValidPhoneNumber","hash":"","kind":64,"flags":{}},"873":{"id":873,"parentId":872,"name":"isValidPhoneNumber","query":"Validators.Function.isValidPhoneNumber","hash":"isValidPhoneNumber","kind":4096,"flags":{}},"875":{"id":875,"parentId":844,"name":"isMACAddress","query":"Validators.Function.isMACAddress","hash":"","kind":64,"flags":{}},"876":{"id":876,"parentId":875,"name":"isMACAddress","query":"Validators.Function.isMACAddress","hash":"isMACAddress","kind":4096,"flags":{}},"878":{"id":878,"parentId":844,"name":"isBase64","query":"Validators.Function.isBase64","hash":"","kind":64,"flags":{}},"879":{"id":879,"parentId":878,"name":"isBase64","query":"Validators.Function.isBase64","hash":"isBase64","kind":4096,"flags":{}},"881":{"id":881,"name":"node-utils/src","query":"Module.node-utils/src","hash":"","kind":2,"flags":{}},"882":{"id":882,"name":"web-utils/src/clipboard","query":"Module.web-utils/src/clipboard","hash":"","kind":2,"flags":{}},"883":{"id":883,"parentId":882,"name":"readClipboardText","query":"web-utils/src/clipboard.Function.readClipboardText","hash":"","kind":64,"flags":{}},"884":{"id":884,"parentId":883,"name":"readClipboardText","query":"web-utils/src/clipboard.Function.readClipboardText","hash":"readClipboardText","kind":4096,"flags":{}},"885":{"id":885,"parentId":882,"name":"copyToClipboard","query":"web-utils/src/clipboard.Function.copyToClipboard","hash":"","kind":64,"flags":{}},"886":{"id":886,"parentId":885,"name":"copyToClipboard","query":"web-utils/src/clipboard.Function.copyToClipboard","hash":"copyToClipboard","kind":4096,"flags":{}},"888":{"id":888,"name":"Cookie","query":"Module.Cookie","hash":"","kind":2,"flags":{}},"889":{"id":889,"parentId":888,"name":"getCookie","query":"Cookie.Function.getCookie","hash":"","kind":64,"flags":{}},"890":{"id":890,"parentId":889,"name":"getCookie","query":"Cookie.Function.getCookie","hash":"getCookie","kind":4096,"flags":{}},"892":{"id":892,"parentId":888,"name":"setCookie","query":"Cookie.Function.setCookie","hash":"","kind":64,"flags":{}},"893":{"id":893,"parentId":892,"name":"setCookie","query":"Cookie.Function.setCookie","hash":"setCookie","kind":4096,"flags":{}},"899":{"id":899,"parentId":888,"name":"delCookie","query":"Cookie.Function.delCookie","hash":"","kind":64,"flags":{}},"900":{"id":900,"parentId":899,"name":"delCookie","query":"Cookie.Function.delCookie","hash":"delCookie","kind":4096,"flags":{}},"902":{"id":902,"name":"CSS","query":"Module.CSS","hash":"","kind":2,"flags":{}},"903":{"id":903,"parentId":902,"name":"getPrefix","query":"CSS.Function.getPrefix","hash":"","kind":64,"flags":{}},"904":{"id":904,"parentId":903,"name":"getPrefix","query":"CSS.Function.getPrefix","hash":"getPrefix","kind":4096,"flags":{}},"905":{"id":905,"parentId":902,"name":"getStyle","query":"CSS.Function.getStyle","hash":"","kind":64,"flags":{}},"906":{"id":906,"parentId":905,"name":"getStyle","query":"CSS.Function.getStyle","hash":"getStyle","kind":4096,"flags":{}},"909":{"id":909,"parentId":902,"name":"getElementSize","query":"CSS.Function.getElementSize","hash":"","kind":64,"flags":{}},"910":{"id":910,"parentId":909,"name":"getElementSize","query":"CSS.Function.getElementSize","hash":"getElementSize","kind":4096,"flags":{}},"913":{"id":913,"name":"DOM","query":"Module.DOM","hash":"","kind":2,"flags":{}},"914":{"id":914,"parentId":913,"name":"isPageVisible","query":"DOM.Function.isPageVisible","hash":"","kind":64,"flags":{}},"915":{"id":915,"parentId":914,"name":"isPageVisible","query":"DOM.Function.isPageVisible","hash":"isPageVisible","kind":4096,"flags":{}},"916":{"id":916,"parentId":913,"name":"hasClass","query":"DOM.Function.hasClass","hash":"","kind":64,"flags":{}},"917":{"id":917,"parentId":916,"name":"hasClass","query":"DOM.Function.hasClass","hash":"hasClass","kind":4096,"flags":{}},"920":{"id":920,"parentId":913,"name":"addClass","query":"DOM.Function.addClass","hash":"","kind":64,"flags":{}},"921":{"id":921,"parentId":920,"name":"addClass","query":"DOM.Function.addClass","hash":"addClass","kind":4096,"flags":{}},"924":{"id":924,"parentId":913,"name":"removeClass","query":"DOM.Function.removeClass","hash":"","kind":64,"flags":{}},"925":{"id":925,"parentId":924,"name":"removeClass","query":"DOM.Function.removeClass","hash":"removeClass","kind":4096,"flags":{}},"928":{"id":928,"parentId":913,"name":"insertAfter","query":"DOM.Function.insertAfter","hash":"","kind":64,"flags":{}},"929":{"id":929,"parentId":928,"name":"insertAfter","query":"DOM.Function.insertAfter","hash":"insertAfter","kind":4096,"flags":{}},"932":{"id":932,"parentId":913,"name":"insertBefore","query":"DOM.Function.insertBefore","hash":"","kind":64,"flags":{}},"933":{"id":933,"parentId":932,"name":"insertBefore","query":"DOM.Function.insertBefore","hash":"insertBefore","kind":4096,"flags":{}},"936":{"id":936,"parentId":913,"name":"elementContains","query":"DOM.Function.elementContains","hash":"","kind":64,"flags":{}},"937":{"id":937,"parentId":936,"name":"elementContains","query":"DOM.Function.elementContains","hash":"elementContains","kind":4096,"flags":{}},"940":{"id":940,"parentId":913,"name":"hide","query":"DOM.Function.hide","hash":"","kind":64,"flags":{}},"941":{"id":941,"parentId":940,"name":"hide","query":"DOM.Function.hide","hash":"hide","kind":4096,"flags":{}},"943":{"id":943,"parentId":913,"name":"nodeListToArray","query":"DOM.Function.nodeListToArray","hash":"","kind":64,"flags":{}},"944":{"id":944,"parentId":943,"name":"nodeListToArray","query":"DOM.Function.nodeListToArray","hash":"nodeListToArray","kind":4096,"flags":{}},"946":{"id":946,"parentId":913,"name":"setAttribute","query":"DOM.Function.setAttribute","hash":"","kind":64,"flags":{}},"947":{"id":947,"parentId":946,"name":"setAttribute","query":"DOM.Function.setAttribute","hash":"setAttribute","kind":4096,"flags":{}},"951":{"id":951,"parentId":913,"name":"escapeHTML","query":"DOM.Function.escapeHTML","hash":"","kind":64,"flags":{}},"952":{"id":952,"parentId":951,"name":"escapeHTML","query":"DOM.Function.escapeHTML","hash":"escapeHTML","kind":4096,"flags":{}},"954":{"id":954,"parentId":913,"name":"getOffsetPos","query":"DOM.Function.getOffsetPos","hash":"","kind":64,"flags":{}},"955":{"id":955,"parentId":954,"name":"getOffsetPos","query":"DOM.Function.getOffsetPos","hash":"getOffsetPos","kind":4096,"flags":{}},"958":{"id":958,"parentId":954,"name":"left","query":"DOM.Function.getOffsetPos","hash":"getOffsetPos.left","kind":1024,"flags":{}},"959":{"id":959,"parentId":954,"name":"top","query":"DOM.Function.getOffsetPos","hash":"getOffsetPos.top","kind":1024,"flags":{}},"960":{"id":960,"parentId":913,"name":"getScrollTop","query":"DOM.Function.getScrollTop","hash":"","kind":64,"flags":{}},"961":{"id":961,"parentId":960,"name":"getScrollTop","query":"DOM.Function.getScrollTop","hash":"getScrollTop","kind":4096,"flags":{}},"962":{"id":962,"parentId":913,"name":"getScrollPosition","query":"DOM.Function.getScrollPosition","hash":"","kind":64,"flags":{}},"963":{"id":963,"parentId":962,"name":"getScrollPosition","query":"DOM.Function.getScrollPosition","hash":"getScrollPosition","kind":4096,"flags":{}},"966":{"id":966,"parentId":962,"name":"x","query":"DOM.Function.getScrollPosition","hash":"getScrollPosition.x","kind":1024,"flags":{}},"967":{"id":967,"parentId":962,"name":"y","query":"DOM.Function.getScrollPosition","hash":"getScrollPosition.y","kind":1024,"flags":{}},"968":{"id":968,"parentId":913,"name":"setScrollTop","query":"DOM.Function.setScrollTop","hash":"","kind":64,"flags":{}},"969":{"id":969,"parentId":968,"name":"setScrollTop","query":"DOM.Function.setScrollTop","hash":"setScrollTop","kind":4096,"flags":{}},"971":{"id":971,"parentId":913,"name":"animateScrollTo","query":"DOM.Function.animateScrollTo","hash":"","kind":64,"flags":{}},"972":{"id":972,"parentId":971,"name":"animateScrollTo","query":"DOM.Function.animateScrollTo","hash":"animateScrollTo","kind":4096,"flags":{}},"975":{"id":975,"parentId":913,"name":"smoothScroll","query":"DOM.Function.smoothScroll","hash":"","kind":64,"flags":{}},"976":{"id":976,"parentId":975,"name":"smoothScroll","query":"DOM.Function.smoothScroll","hash":"smoothScroll","kind":4096,"flags":{}},"978":{"id":978,"parentId":913,"name":"disableCopy","query":"DOM.Function.disableCopy","hash":"","kind":64,"flags":{}},"979":{"id":979,"parentId":978,"name":"disableCopy","query":"DOM.Function.disableCopy","hash":"disableCopy","kind":4096,"flags":{}},"982":{"id":982,"parentId":913,"name":"requestAnimFrame","query":"DOM.Function.requestAnimFrame","hash":"","kind":64,"flags":{}},"983":{"id":983,"parentId":982,"name":"requestAnimFrame","query":"DOM.Function.requestAnimFrame","hash":"requestAnimFrame","kind":4096,"flags":{}},"988":{"id":988,"name":"web-utils/src/file","query":"Module.web-utils/src/file","hash":"","kind":2,"flags":{}},"989":{"id":989,"parentId":988,"name":"readFile","query":"web-utils/src/file.Function.readFile","hash":"","kind":64,"flags":{}},"990":{"id":990,"parentId":989,"name":"readFile","query":"web-utils/src/file.Function.readFile","hash":"readFile","kind":4096,"flags":{}},"992":{"id":992,"parentId":988,"name":"readFileAsDataURL","query":"web-utils/src/file.Function.readFileAsDataURL","hash":"","kind":64,"flags":{}},"993":{"id":993,"parentId":992,"name":"readFileAsDataURL","query":"web-utils/src/file.Function.readFileAsDataURL","hash":"readFileAsDataURL","kind":4096,"flags":{}},"995":{"id":995,"parentId":988,"name":"downloadFile","query":"web-utils/src/file.Function.downloadFile","hash":"","kind":64,"flags":{}},"996":{"id":996,"parentId":995,"name":"downloadFile","query":"web-utils/src/file.Function.downloadFile","hash":"downloadFile","kind":4096,"flags":{}},"1000":{"id":1000,"parentId":988,"name":"downloadImageFileByUrl","query":"web-utils/src/file.Function.downloadImageFileByUrl","hash":"","kind":64,"flags":{}},"1001":{"id":1001,"parentId":1000,"name":"downloadImageFileByUrl","query":"web-utils/src/file.Function.downloadImageFileByUrl","hash":"downloadImageFileByUrl","kind":4096,"flags":{}},"1005":{"id":1005,"parentId":988,"name":"getFileExtension","query":"web-utils/src/file.Function.getFileExtension","hash":"","kind":64,"flags":{}},"1006":{"id":1006,"parentId":1005,"name":"getFileExtension","query":"web-utils/src/file.Function.getFileExtension","hash":"getFileExtension","kind":4096,"flags":{}},"1008":{"id":1008,"name":"Form","query":"Module.Form","hash":"","kind":2,"flags":{}},"1009":{"id":1009,"parentId":1008,"name":"serializeForm","query":"Form.Function.serializeForm","hash":"","kind":64,"flags":{}},"1010":{"id":1010,"parentId":1009,"name":"serializeForm","query":"Form.Function.serializeForm","hash":"serializeForm","kind":4096,"flags":{}},"1013":{"id":1013,"parentId":1008,"name":"validateForm","query":"Form.Function.validateForm","hash":"","kind":64,"flags":{}},"1014":{"id":1014,"parentId":1013,"name":"validateForm","query":"Form.Function.validateForm","hash":"validateForm","kind":4096,"flags":{}},"1018":{"id":1018,"parentId":1013,"name":"valid","query":"Form.Function.validateForm","hash":"validateForm.valid","kind":1024,"flags":{}},"1019":{"id":1019,"parentId":1013,"name":"errors","query":"Form.Function.validateForm","hash":"validateForm.errors","kind":1024,"flags":{}},"1020":{"id":1020,"parentId":1008,"name":"autoSaveForm","query":"Form.Function.autoSaveForm","hash":"","kind":64,"flags":{}},"1021":{"id":1021,"parentId":1020,"name":"autoSaveForm","query":"Form.Function.autoSaveForm","hash":"autoSaveForm","kind":4096,"flags":{}},"1027":{"id":1027,"parentId":1008,"name":"formDiff","query":"Form.Function.formDiff","hash":"","kind":64,"flags":{}},"1028":{"id":1028,"parentId":1027,"name":"formDiff","query":"Form.Function.formDiff","hash":"formDiff","kind":4096,"flags":{}},"1031":{"id":1031,"parentId":1008,"name":"resetFormField","query":"Form.Function.resetFormField","hash":"","kind":64,"flags":{}},"1032":{"id":1032,"parentId":1031,"name":"resetFormField","query":"Form.Function.resetFormField","hash":"resetFormField","kind":4096,"flags":{}},"1034":{"id":1034,"name":"I18n","query":"Module.I18n","hash":"","kind":2,"flags":{}},"1035":{"id":1035,"parentId":1034,"name":"getLocale","query":"I18n.Function.getLocale","hash":"","kind":64,"flags":{}},"1036":{"id":1036,"parentId":1035,"name":"getLocale","query":"I18n.Function.getLocale","hash":"getLocale","kind":4096,"flags":{}},"1037":{"id":1037,"parentId":1034,"name":"formatDateLocale","query":"I18n.Function.formatDateLocale","hash":"","kind":64,"flags":{}},"1038":{"id":1038,"parentId":1037,"name":"formatDateLocale","query":"I18n.Function.formatDateLocale","hash":"formatDateLocale","kind":4096,"flags":{}},"1042":{"id":1042,"parentId":1034,"name":"formatNumberLocale","query":"I18n.Function.formatNumberLocale","hash":"","kind":64,"flags":{}},"1043":{"id":1043,"parentId":1042,"name":"formatNumberLocale","query":"I18n.Function.formatNumberLocale","hash":"formatNumberLocale","kind":4096,"flags":{}},"1047":{"id":1047,"parentId":1034,"name":"formatCurrencyLocale","query":"I18n.Function.formatCurrencyLocale","hash":"","kind":64,"flags":{}},"1048":{"id":1048,"parentId":1047,"name":"formatCurrencyLocale","query":"I18n.Function.formatCurrencyLocale","hash":"formatCurrencyLocale","kind":4096,"flags":{}},"1052":{"id":1052,"parentId":1034,"name":"pluralize","query":"I18n.Function.pluralize","hash":"","kind":64,"flags":{}},"1053":{"id":1053,"parentId":1052,"name":"pluralize","query":"I18n.Function.pluralize","hash":"pluralize","kind":4096,"flags":{}},"1057":{"id":1057,"parentId":1034,"name":"getDirection","query":"I18n.Function.getDirection","hash":"","kind":64,"flags":{}},"1058":{"id":1058,"parentId":1057,"name":"getDirection","query":"I18n.Function.getDirection","hash":"getDirection","kind":4096,"flags":{}},"1060":{"id":1060,"parentId":1034,"name":"formatRelativeTime","query":"I18n.Function.formatRelativeTime","hash":"","kind":64,"flags":{}},"1061":{"id":1061,"parentId":1060,"name":"formatRelativeTime","query":"I18n.Function.formatRelativeTime","hash":"formatRelativeTime","kind":4096,"flags":{}},"1065":{"id":1065,"name":"Image","query":"Module.Image","hash":"","kind":2,"flags":{}},"1066":{"id":1066,"parentId":1065,"name":"isImageLoaded","query":"Image.Function.isImageLoaded","hash":"","kind":64,"flags":{}},"1067":{"id":1067,"parentId":1066,"name":"isImageLoaded","query":"Image.Function.isImageLoaded","hash":"isImageLoaded","kind":4096,"flags":{}},"1069":{"id":1069,"parentId":1065,"name":"getImageSize","query":"Image.Function.getImageSize","hash":"","kind":64,"flags":{}},"1070":{"id":1070,"parentId":1069,"name":"getImageSize","query":"Image.Function.getImageSize","hash":"getImageSize","kind":4096,"flags":{}},"1072":{"id":1072,"parentId":1065,"name":"isSupportWebP","query":"Image.Function.isSupportWebP","hash":"","kind":64,"flags":{}},"1073":{"id":1073,"parentId":1072,"name":"isSupportWebP","query":"Image.Function.isSupportWebP","hash":"isSupportWebP","kind":4096,"flags":{}},"1074":{"id":1074,"parentId":1065,"name":"cropImage","query":"Image.Function.cropImage","hash":"","kind":64,"flags":{}},"1075":{"id":1075,"parentId":1074,"name":"cropImage","query":"Image.Function.cropImage","hash":"cropImage","kind":4096,"flags":{}},"1081":{"id":1081,"parentId":1065,"name":"compressImage","query":"Image.Function.compressImage","hash":"","kind":64,"flags":{}},"1082":{"id":1082,"parentId":1081,"name":"compressImage","query":"Image.Function.compressImage","hash":"compressImage","kind":4096,"flags":{}},"1085":{"id":1085,"name":"web-utils/src","query":"Module.web-utils/src","hash":"","kind":2,"flags":{}},"1086":{"id":1086,"name":"keyboard","query":"Module.keyboard","hash":"","kind":2,"flags":{}},"1087":{"id":1087,"parentId":1086,"name":"getKeyName","query":"keyboard.Function.getKeyName","hash":"","kind":64,"flags":{}},"1088":{"id":1088,"parentId":1087,"name":"getKeyName","query":"keyboard.Function.getKeyName","hash":"getKeyName","kind":4096,"flags":{}},"1090":{"id":1090,"name":"LifeCycle","query":"Module.LifeCycle","hash":"","kind":2,"flags":{}},"1091":{"id":1091,"parentId":1090,"name":"onPageLoad","query":"LifeCycle.Function.onPageLoad","hash":"","kind":64,"flags":{}},"1092":{"id":1092,"parentId":1091,"name":"onPageLoad","query":"LifeCycle.Function.onPageLoad","hash":"onPageLoad","kind":4096,"flags":{}},"1098":{"id":1098,"parentId":1090,"name":"onPageUnload","query":"LifeCycle.Function.onPageUnload","hash":"","kind":64,"flags":{}},"1099":{"id":1099,"parentId":1098,"name":"onPageUnload","query":"LifeCycle.Function.onPageUnload","hash":"onPageUnload","kind":4096,"flags":{}},"1105":{"id":1105,"parentId":1090,"name":"onBeforeUnload","query":"LifeCycle.Function.onBeforeUnload","hash":"","kind":64,"flags":{}},"1106":{"id":1106,"parentId":1105,"name":"onBeforeUnload","query":"LifeCycle.Function.onBeforeUnload","hash":"onBeforeUnload","kind":4096,"flags":{}},"1113":{"id":1113,"name":"loadAssets","query":"Module.loadAssets","hash":"","kind":2,"flags":{}},"1114":{"id":1114,"parentId":1113,"name":"loadScript","query":"loadAssets.Function.loadScript","hash":"","kind":64,"flags":{}},"1115":{"id":1115,"parentId":1114,"name":"loadScript","query":"loadAssets.Function.loadScript","hash":"loadScript","kind":4096,"flags":{}},"1118":{"id":1118,"parentId":1113,"name":"loadScriptList","query":"loadAssets.Function.loadScriptList","hash":"","kind":64,"flags":{}},"1119":{"id":1119,"parentId":1118,"name":"loadScriptList","query":"loadAssets.Function.loadScriptList","hash":"loadScriptList","kind":4096,"flags":{}},"1123":{"id":1123,"parentId":1113,"name":"loadCss","query":"loadAssets.Function.loadCss","hash":"","kind":64,"flags":{}},"1124":{"id":1124,"parentId":1123,"name":"loadCss","query":"loadAssets.Function.loadCss","hash":"loadCss","kind":4096,"flags":{}},"1126":{"id":1126,"parentId":1113,"name":"loadCssList","query":"loadAssets.Function.loadCssList","hash":"","kind":64,"flags":{}},"1127":{"id":1127,"parentId":1126,"name":"loadCssList","query":"loadAssets.Function.loadCssList","hash":"loadCssList","kind":4096,"flags":{}},"1129":{"id":1129,"parentId":1113,"name":"loadImage","query":"loadAssets.Function.loadImage","hash":"","kind":64,"flags":{}},"1130":{"id":1130,"parentId":1129,"name":"loadImage","query":"loadAssets.Function.loadImage","hash":"loadImage","kind":4096,"flags":{}},"1132":{"id":1132,"parentId":1113,"name":"loadImageList","query":"loadAssets.Function.loadImageList","hash":"","kind":64,"flags":{}},"1133":{"id":1133,"parentId":1132,"name":"loadImageList","query":"loadAssets.Function.loadImageList","hash":"loadImageList","kind":4096,"flags":{}},"1135":{"id":1135,"parentId":1113,"name":"loadCSV","query":"loadAssets.Function.loadCSV","hash":"","kind":64,"flags":{}},"1136":{"id":1136,"parentId":1135,"name":"loadCSV","query":"loadAssets.Function.loadCSV","hash":"loadCSV","kind":4096,"flags":{}},"1140":{"id":1140,"name":"jump","query":"Module.jump","hash":"","kind":2,"flags":{}},"1141":{"id":1141,"parentId":1140,"name":"navigateTo","query":"jump.Function.navigateTo","hash":"","kind":64,"flags":{}},"1142":{"id":1142,"parentId":1141,"name":"navigateTo","query":"jump.Function.navigateTo","hash":"navigateTo","kind":4096,"flags":{}},"1145":{"id":1145,"parentId":1140,"name":"httpsRedirect","query":"jump.Function.httpsRedirect","hash":"","kind":64,"flags":{}},"1146":{"id":1146,"parentId":1145,"name":"httpsRedirect","query":"jump.Function.httpsRedirect","hash":"httpsRedirect","kind":4096,"flags":{}},"1148":{"id":1148,"parentId":1140,"name":"NavigateOptions","query":"jump.Interface.NavigateOptions","hash":"","kind":256,"flags":{}},"1149":{"id":1149,"parentId":1148,"name":"replace","query":"jump.Interface.NavigateOptions","hash":"replace","kind":1024,"flags":{"isOptional":true}},"1150":{"id":1150,"parentId":1148,"name":"newTab","query":"jump.Interface.NavigateOptions","hash":"newTab","kind":1024,"flags":{"isOptional":true}},"1151":{"id":1151,"parentId":1148,"name":"target","query":"jump.Interface.NavigateOptions","hash":"target","kind":1024,"flags":{"isOptional":true}},"1152":{"id":1152,"name":"Network","query":"Module.Network","hash":"","kind":2,"flags":{}},"1153":{"id":1153,"parentId":1152,"name":"isOnline","query":"Network.Function.isOnline","hash":"","kind":64,"flags":{}},"1154":{"id":1154,"parentId":1153,"name":"isOnline","query":"Network.Function.isOnline","hash":"isOnline","kind":4096,"flags":{}},"1155":{"id":1155,"parentId":1152,"name":"getNetworkType","query":"Network.Function.getNetworkType","hash":"","kind":64,"flags":{}},"1156":{"id":1156,"parentId":1155,"name":"getNetworkType","query":"Network.Function.getNetworkType","hash":"getNetworkType","kind":4096,"flags":{}},"1157":{"id":1157,"parentId":1152,"name":"getNetworkInfo","query":"Network.Function.getNetworkInfo","hash":"","kind":64,"flags":{}},"1158":{"id":1158,"parentId":1157,"name":"getNetworkInfo","query":"Network.Function.getNetworkInfo","hash":"getNetworkInfo","kind":4096,"flags":{}},"1160":{"id":1160,"parentId":1157,"name":"online","query":"Network.Function.getNetworkInfo","hash":"getNetworkInfo.online","kind":1024,"flags":{}},"1161":{"id":1161,"parentId":1157,"name":"type","query":"Network.Function.getNetworkInfo","hash":"getNetworkInfo.type","kind":1024,"flags":{}},"1162":{"id":1162,"parentId":1157,"name":"downlink","query":"Network.Function.getNetworkInfo","hash":"getNetworkInfo.downlink","kind":1024,"flags":{"isOptional":true}},"1163":{"id":1163,"parentId":1157,"name":"rtt","query":"Network.Function.getNetworkInfo","hash":"getNetworkInfo.rtt","kind":1024,"flags":{"isOptional":true}},"1164":{"id":1164,"parentId":1157,"name":"saveData","query":"Network.Function.getNetworkInfo","hash":"getNetworkInfo.saveData","kind":1024,"flags":{"isOptional":true}},"1165":{"id":1165,"parentId":1152,"name":"onNetworkChange","query":"Network.Function.onNetworkChange","hash":"","kind":64,"flags":{}},"1166":{"id":1166,"parentId":1165,"name":"onNetworkChange","query":"Network.Function.onNetworkChange","hash":"onNetworkChange","kind":4096,"flags":{}},"1173":{"id":1173,"parentId":1152,"name":"retryRequest","query":"Network.Function.retryRequest","hash":"","kind":64,"flags":{}},"1174":{"id":1174,"parentId":1173,"name":"retryRequest","query":"Network.Function.retryRequest","hash":"retryRequest","kind":4096,"flags":{}},"1181":{"id":1181,"parentId":1152,"name":"requestIdleCallbackPolyfill","query":"Network.Function.requestIdleCallbackPolyfill","hash":"","kind":64,"flags":{}},"1182":{"id":1182,"parentId":1181,"name":"requestIdleCallbackPolyfill","query":"Network.Function.requestIdleCallbackPolyfill","hash":"requestIdleCallbackPolyfill","kind":4096,"flags":{}},"1190":{"id":1190,"parentId":1152,"name":"cancelIdleCallbackPolyfill","query":"Network.Function.cancelIdleCallbackPolyfill","hash":"","kind":64,"flags":{}},"1191":{"id":1191,"parentId":1190,"name":"cancelIdleCallbackPolyfill","query":"Network.Function.cancelIdleCallbackPolyfill","hash":"cancelIdleCallbackPolyfill","kind":4096,"flags":{}},"1193":{"id":1193,"name":"web-utils/src/others","query":"Module.web-utils/src/others","hash":"","kind":2,"flags":{}},"1194":{"id":1194,"parentId":1193,"name":"isBase64","query":"web-utils/src/others.Function.isBase64","hash":"","kind":64,"flags":{}},"1195":{"id":1195,"parentId":1194,"name":"isBase64","query":"web-utils/src/others.Function.isBase64","hash":"isBase64","kind":4096,"flags":{}},"1197":{"id":1197,"name":"Performance","query":"Module.Performance","hash":"","kind":2,"flags":{}},"1198":{"id":1198,"parentId":1197,"name":"measureFPS","query":"Performance.Function.measureFPS","hash":"","kind":64,"flags":{}},"1199":{"id":1199,"parentId":1198,"name":"measureFPS","query":"Performance.Function.measureFPS","hash":"measureFPS","kind":4096,"flags":{}},"1207":{"id":1207,"parentId":1197,"name":"getWebVitals","query":"Performance.Function.getWebVitals","hash":"","kind":64,"flags":{}},"1208":{"id":1208,"parentId":1207,"name":"getWebVitals","query":"Performance.Function.getWebVitals","hash":"getWebVitals","kind":4096,"flags":{}},"1219":{"id":1219,"parentId":1197,"name":"measureMemory","query":"Performance.Function.measureMemory","hash":"","kind":64,"flags":{}},"1220":{"id":1220,"parentId":1219,"name":"measureMemory","query":"Performance.Function.measureMemory","hash":"measureMemory","kind":4096,"flags":{}},"1225":{"id":1225,"parentId":1197,"name":"measureLoadTime","query":"Performance.Function.measureLoadTime","hash":"","kind":64,"flags":{}},"1226":{"id":1226,"parentId":1225,"name":"measureLoadTime","query":"Performance.Function.measureLoadTime","hash":"measureLoadTime","kind":4096,"flags":{}},"1228":{"id":1228,"parentId":1225,"name":"domReady","query":"Performance.Function.measureLoadTime","hash":"measureLoadTime.domReady","kind":1024,"flags":{}},"1229":{"id":1229,"parentId":1225,"name":"fullLoad","query":"Performance.Function.measureLoadTime","hash":"measureLoadTime.fullLoad","kind":1024,"flags":{}},"1230":{"id":1230,"parentId":1225,"name":"firstPaint","query":"Performance.Function.measureLoadTime","hash":"measureLoadTime.firstPaint","kind":1024,"flags":{"isOptional":true}},"1231":{"id":1231,"parentId":1225,"name":"firstContentfulPaint","query":"Performance.Function.measureLoadTime","hash":"measureLoadTime.firstContentfulPaint","kind":1024,"flags":{"isOptional":true}},"1232":{"id":1232,"parentId":1197,"name":"createPerformanceObserver","query":"Performance.Function.createPerformanceObserver","hash":"","kind":64,"flags":{}},"1233":{"id":1233,"parentId":1232,"name":"createPerformanceObserver","query":"Performance.Function.createPerformanceObserver","hash":"createPerformanceObserver","kind":4096,"flags":{}},"1239":{"id":1239,"parentId":1197,"name":"resourceTiming","query":"Performance.Function.resourceTiming","hash":"","kind":64,"flags":{}},"1240":{"id":1240,"parentId":1239,"name":"resourceTiming","query":"Performance.Function.resourceTiming","hash":"resourceTiming","kind":4096,"flags":{}},"1242":{"id":1242,"name":"Platform","query":"Module.Platform","hash":"","kind":2,"flags":{}},"1243":{"id":1243,"parentId":1242,"name":"isBrowser","query":"Platform.Function.isBrowser","hash":"","kind":64,"flags":{}},"1244":{"id":1244,"parentId":1243,"name":"isBrowser","query":"Platform.Function.isBrowser","hash":"isBrowser","kind":4096,"flags":{}},"1245":{"id":1245,"parentId":1242,"name":"isPC","query":"Platform.Function.isPC","hash":"","kind":64,"flags":{}},"1246":{"id":1246,"parentId":1245,"name":"isPC","query":"Platform.Function.isPC","hash":"isPC","kind":4096,"flags":{}},"1247":{"id":1247,"parentId":1242,"name":"isOpenHarmony","query":"Platform.Function.isOpenHarmony","hash":"","kind":64,"flags":{}},"1248":{"id":1248,"parentId":1247,"name":"isOpenHarmony","query":"Platform.Function.isOpenHarmony","hash":"isOpenHarmony","kind":4096,"flags":{}},"1249":{"id":1249,"parentId":1242,"name":"getPcExplore","query":"Platform.Function.getPcExplore","hash":"","kind":64,"flags":{}},"1250":{"id":1250,"parentId":1249,"name":"getPcExplore","query":"Platform.Function.getPcExplore","hash":"getPcExplore","kind":4096,"flags":{}},"1251":{"id":1251,"parentId":1242,"name":"getSystemOS","query":"Platform.Function.getSystemOS","hash":"","kind":64,"flags":{}},"1252":{"id":1252,"parentId":1251,"name":"getSystemOS","query":"Platform.Function.getSystemOS","hash":"getSystemOS","kind":4096,"flags":{}},"1253":{"id":1253,"parentId":1242,"name":"getMobilePlatform","query":"Platform.Function.getMobilePlatform","hash":"","kind":64,"flags":{}},"1254":{"id":1254,"parentId":1253,"name":"getMobilePlatform","query":"Platform.Function.getMobilePlatform","hash":"getMobilePlatform","kind":4096,"flags":{}},"1255":{"id":1255,"parentId":1242,"name":"getMobileOS","query":"Platform.Function.getMobileOS","hash":"","kind":64,"flags":{}},"1256":{"id":1256,"parentId":1255,"name":"getMobileOS","query":"Platform.Function.getMobileOS","hash":"getMobileOS","kind":4096,"flags":{}},"1258":{"id":1258,"parentId":1255,"name":"android","query":"Platform.Function.getMobileOS","hash":"getMobileOS.android","kind":1024,"flags":{}},"1259":{"id":1259,"parentId":1255,"name":"ios","query":"Platform.Function.getMobileOS","hash":"getMobileOS.ios","kind":1024,"flags":{}},"1260":{"id":1260,"parentId":1242,"name":"getMobileBrandIdentify","query":"Platform.Function.getMobileBrandIdentify","hash":"","kind":64,"flags":{}},"1261":{"id":1261,"parentId":1260,"name":"getMobileBrandIdentify","query":"Platform.Function.getMobileBrandIdentify","hash":"getMobileBrandIdentify","kind":4096,"flags":{}},"1262":{"id":1262,"parentId":1242,"name":"ua","query":"Platform.Variable.ua","hash":"","kind":32,"flags":{"isConst":true}},"1263":{"id":1263,"name":"web-utils/src/rem","query":"Module.web-utils/src/rem","hash":"","kind":2,"flags":{}},"1264":{"id":1264,"parentId":1263,"name":"Window","query":"web-utils/src/rem.Interface.Window","hash":"","kind":256,"flags":{}},"1265":{"id":1265,"parentId":1264,"name":"norem","query":"web-utils/src/rem.Interface.Window","hash":"norem","kind":1024,"flags":{"isOptional":true}},"1266":{"id":1266,"parentId":1264,"name":"flexible","query":"web-utils/src/rem.Interface.Window","hash":"flexible","kind":1024,"flags":{}},"1267":{"id":1267,"name":"Screen","query":"Module.Screen","hash":"","kind":2,"flags":{}},"1268":{"id":1268,"parentId":1267,"name":"isFullScreen","query":"Screen.Function.isFullScreen","hash":"","kind":64,"flags":{}},"1269":{"id":1269,"parentId":1268,"name":"isFullScreen","query":"Screen.Function.isFullScreen","hash":"isFullScreen","kind":4096,"flags":{}},"1270":{"id":1270,"parentId":1267,"name":"isFullScreenEnabled","query":"Screen.Function.isFullScreenEnabled","hash":"","kind":64,"flags":{}},"1271":{"id":1271,"parentId":1270,"name":"isFullScreenEnabled","query":"Screen.Function.isFullScreenEnabled","hash":"isFullScreenEnabled","kind":4096,"flags":{}},"1272":{"id":1272,"parentId":1267,"name":"enterFullscreen","query":"Screen.Function.enterFullscreen","hash":"","kind":64,"flags":{}},"1273":{"id":1273,"parentId":1272,"name":"enterFullscreen","query":"Screen.Function.enterFullscreen","hash":"enterFullscreen","kind":4096,"flags":{}},"1275":{"id":1275,"parentId":1267,"name":"exitFullscreen","query":"Screen.Function.exitFullscreen","hash":"","kind":64,"flags":{}},"1276":{"id":1276,"parentId":1275,"name":"exitFullscreen","query":"Screen.Function.exitFullscreen","hash":"exitFullscreen","kind":4096,"flags":{}},"1277":{"id":1277,"parentId":1267,"name":"wakeScreenLock","query":"Screen.Function.wakeScreenLock","hash":"","kind":64,"flags":{}},"1278":{"id":1278,"parentId":1277,"name":"wakeScreenLock","query":"Screen.Function.wakeScreenLock","hash":"wakeScreenLock","kind":4096,"flags":{}},"1279":{"id":1279,"parentId":1267,"name":"keepScreenOn","query":"Screen.Function.keepScreenOn","hash":"","kind":64,"flags":{}},"1280":{"id":1280,"parentId":1279,"name":"keepScreenOn","query":"Screen.Function.keepScreenOn","hash":"keepScreenOn","kind":4096,"flags":{}},"1283":{"id":1283,"parentId":1267,"name":"getClientHeight","query":"Screen.Function.getClientHeight","hash":"","kind":64,"flags":{}},"1284":{"id":1284,"parentId":1283,"name":"getClientHeight","query":"Screen.Function.getClientHeight","hash":"getClientHeight","kind":4096,"flags":{}},"1285":{"id":1285,"parentId":1267,"name":"getClientWidth","query":"Screen.Function.getClientWidth","hash":"","kind":64,"flags":{}},"1286":{"id":1286,"parentId":1285,"name":"getClientWidth","query":"Screen.Function.getClientWidth","hash":"getClientWidth","kind":4096,"flags":{}},"1287":{"id":1287,"name":"web-utils/src/security","query":"Module.web-utils/src/security","hash":"","kind":2,"flags":{}},"1288":{"id":1288,"parentId":1287,"name":"escapeHtml","query":"web-utils/src/security.Function.escapeHtml","hash":"","kind":64,"flags":{}},"1289":{"id":1289,"parentId":1288,"name":"escapeHtml","query":"web-utils/src/security.Function.escapeHtml","hash":"escapeHtml","kind":4096,"flags":{}},"1291":{"id":1291,"parentId":1287,"name":"unescapeHtml","query":"web-utils/src/security.Function.unescapeHtml","hash":"","kind":64,"flags":{}},"1292":{"id":1292,"parentId":1291,"name":"unescapeHtml","query":"web-utils/src/security.Function.unescapeHtml","hash":"unescapeHtml","kind":4096,"flags":{}},"1294":{"id":1294,"parentId":1287,"name":"sanitizeUrl","query":"web-utils/src/security.Function.sanitizeUrl","hash":"","kind":64,"flags":{}},"1295":{"id":1295,"parentId":1294,"name":"sanitizeUrl","query":"web-utils/src/security.Function.sanitizeUrl","hash":"sanitizeUrl","kind":4096,"flags":{}},"1297":{"id":1297,"parentId":1287,"name":"generateCSPNonce","query":"web-utils/src/security.Function.generateCSPNonce","hash":"","kind":64,"flags":{}},"1298":{"id":1298,"parentId":1297,"name":"generateCSPNonce","query":"web-utils/src/security.Function.generateCSPNonce","hash":"generateCSPNonce","kind":4096,"flags":{}},"1299":{"id":1299,"parentId":1287,"name":"maskPhoneNumber","query":"web-utils/src/security.Function.maskPhoneNumber","hash":"","kind":64,"flags":{}},"1300":{"id":1300,"parentId":1299,"name":"maskPhoneNumber","query":"web-utils/src/security.Function.maskPhoneNumber","hash":"maskPhoneNumber","kind":4096,"flags":{}},"1302":{"id":1302,"parentId":1287,"name":"maskEmail","query":"web-utils/src/security.Function.maskEmail","hash":"","kind":64,"flags":{}},"1303":{"id":1303,"parentId":1302,"name":"maskEmail","query":"web-utils/src/security.Function.maskEmail","hash":"maskEmail","kind":4096,"flags":{}},"1305":{"id":1305,"parentId":1287,"name":"maskIDCard","query":"web-utils/src/security.Function.maskIDCard","hash":"","kind":64,"flags":{}},"1306":{"id":1306,"parentId":1305,"name":"maskIDCard","query":"web-utils/src/security.Function.maskIDCard","hash":"maskIDCard","kind":4096,"flags":{}},"1308":{"id":1308,"parentId":1287,"name":"maskBankCard","query":"web-utils/src/security.Function.maskBankCard","hash":"","kind":64,"flags":{}},"1309":{"id":1309,"parentId":1308,"name":"maskBankCard","query":"web-utils/src/security.Function.maskBankCard","hash":"maskBankCard","kind":4096,"flags":{}},"1311":{"id":1311,"parentId":1287,"name":"maskText","query":"web-utils/src/security.Function.maskText","hash":"","kind":64,"flags":{}},"1312":{"id":1312,"parentId":1311,"name":"maskText","query":"web-utils/src/security.Function.maskText","hash":"maskText","kind":4096,"flags":{}},"1317":{"id":1317,"parentId":1287,"name":"generateCSRFToken","query":"web-utils/src/security.Function.generateCSRFToken","hash":"","kind":64,"flags":{}},"1318":{"id":1318,"parentId":1317,"name":"generateCSRFToken","query":"web-utils/src/security.Function.generateCSRFToken","hash":"generateCSRFToken","kind":4096,"flags":{}},"1319":{"id":1319,"parentId":1287,"name":"storeCSRFToken","query":"web-utils/src/security.Function.storeCSRFToken","hash":"","kind":64,"flags":{}},"1320":{"id":1320,"parentId":1319,"name":"storeCSRFToken","query":"web-utils/src/security.Function.storeCSRFToken","hash":"storeCSRFToken","kind":4096,"flags":{}},"1323":{"id":1323,"parentId":1287,"name":"getCSRFToken","query":"web-utils/src/security.Function.getCSRFToken","hash":"","kind":64,"flags":{}},"1324":{"id":1324,"parentId":1323,"name":"getCSRFToken","query":"web-utils/src/security.Function.getCSRFToken","hash":"getCSRFToken","kind":4096,"flags":{}},"1326":{"id":1326,"parentId":1287,"name":"addCSRFHeader","query":"web-utils/src/security.Function.addCSRFHeader","hash":"","kind":64,"flags":{}},"1327":{"id":1327,"parentId":1326,"name":"addCSRFHeader","query":"web-utils/src/security.Function.addCSRFHeader","hash":"addCSRFHeader","kind":4096,"flags":{}},"1330":{"id":1330,"parentId":1287,"name":"parseCSP","query":"web-utils/src/security.Function.parseCSP","hash":"","kind":64,"flags":{}},"1331":{"id":1331,"parentId":1330,"name":"parseCSP","query":"web-utils/src/security.Function.parseCSP","hash":"parseCSP","kind":4096,"flags":{}},"1333":{"id":1333,"parentId":1287,"name":"stringifyCSP","query":"web-utils/src/security.Function.stringifyCSP","hash":"","kind":64,"flags":{}},"1334":{"id":1334,"parentId":1333,"name":"stringifyCSP","query":"web-utils/src/security.Function.stringifyCSP","hash":"stringifyCSP","kind":4096,"flags":{}},"1336":{"id":1336,"parentId":1287,"name":"createBaseCSP","query":"web-utils/src/security.Function.createBaseCSP","hash":"","kind":64,"flags":{}},"1337":{"id":1337,"parentId":1336,"name":"createBaseCSP","query":"web-utils/src/security.Function.createBaseCSP","hash":"createBaseCSP","kind":4096,"flags":{}},"1339":{"id":1339,"name":"web-utils/src/storage","query":"Module.web-utils/src/storage","hash":"","kind":2,"flags":{}},"1340":{"id":1340,"parentId":1339,"name":"default","query":"web-utils/src/storage.Function.default","hash":"","kind":64,"flags":{}},"1341":{"id":1341,"parentId":1340,"name":"default","query":"web-utils/src/storage.Function.default","hash":"default","kind":4096,"flags":{}},"1344":{"id":1344,"parentId":1340,"name":"set","query":"web-utils/src/storage.Function.default","hash":"default.set","kind":2048,"flags":{}},"1345":{"id":1345,"parentId":1340,"name":"set","query":"web-utils/src/storage.Function.default","hash":"default.set.set","kind":4096,"flags":{}},"1352":{"id":1352,"parentId":1340,"name":"get","query":"web-utils/src/storage.Function.default","hash":"default.get","kind":2048,"flags":{}},"1353":{"id":1353,"parentId":1340,"name":"get","query":"web-utils/src/storage.Function.default","hash":"default.get.get","kind":4096,"flags":{}},"1355":{"id":1355,"parentId":1340,"name":"remove","query":"web-utils/src/storage.Function.default","hash":"default.remove","kind":2048,"flags":{}},"1356":{"id":1356,"parentId":1340,"name":"remove","query":"web-utils/src/storage.Function.default","hash":"default.remove.remove","kind":4096,"flags":{}},"1358":{"id":1358,"name":"Url","query":"Module.Url","hash":"","kind":2,"flags":{}},"1359":{"id":1359,"parentId":1358,"name":"parseQueryString","query":"Url.Function.parseQueryString","hash":"","kind":64,"flags":{}},"1360":{"id":1360,"parentId":1359,"name":"parseQueryString","query":"Url.Function.parseQueryString","hash":"parseQueryString","kind":4096,"flags":{}},"1362":{"id":1362,"parentId":1358,"name":"getUrlParam","query":"Url.Function.getUrlParam","hash":"","kind":64,"flags":{}},"1363":{"id":1363,"parentId":1362,"name":"getUrlParam","query":"Url.Function.getUrlParam","hash":"getUrlParam","kind":4096,"flags":{}},"1369":{"id":1369,"parentId":1358,"name":"paramsJoinUrl","query":"Url.Function.paramsJoinUrl","hash":"","kind":64,"flags":{}},"1370":{"id":1370,"parentId":1369,"name":"paramsJoinUrl","query":"Url.Function.paramsJoinUrl","hash":"paramsJoinUrl","kind":4096,"flags":{}},"1375":{"id":1375,"parentId":1358,"name":"getBaseUrl","query":"Url.Function.getBaseUrl","hash":"","kind":64,"flags":{}},"1376":{"id":1376,"parentId":1375,"name":"getBaseUrl","query":"Url.Function.getBaseUrl","hash":"getBaseUrl","kind":4096,"flags":{}},"1378":{"id":1378,"parentId":1358,"name":"getUrlDomain","query":"Url.Function.getUrlDomain","hash":"","kind":64,"flags":{}},"1379":{"id":1379,"parentId":1378,"name":"getUrlDomain","query":"Url.Function.getUrlDomain","hash":"getUrlDomain","kind":4096,"flags":{}},"1381":{"id":1381,"parentId":1358,"name":"uniqueSlash","query":"Url.Function.uniqueSlash","hash":"","kind":64,"flags":{}},"1382":{"id":1382,"parentId":1381,"name":"uniqueSlash","query":"Url.Function.uniqueSlash","hash":"uniqueSlash","kind":4096,"flags":{}},"1384":{"id":1384,"name":"web-utils/src/worker","query":"Module.web-utils/src/worker","hash":"","kind":2,"flags":{}},"1385":{"id":1385,"parentId":1384,"name":"createInlineWorker","query":"web-utils/src/worker.Function.createInlineWorker","hash":"","kind":64,"flags":{}},"1386":{"id":1386,"parentId":1385,"name":"createInlineWorker","query":"web-utils/src/worker.Function.createInlineWorker","hash":"createInlineWorker","kind":4096,"flags":{}},"1390":{"id":1390,"parentId":1384,"name":"createWorkerTask","query":"web-utils/src/worker.Function.createWorkerTask","hash":"","kind":64,"flags":{}},"1391":{"id":1391,"parentId":1390,"name":"createWorkerTask","query":"web-utils/src/worker.Function.createWorkerTask","hash":"createWorkerTask","kind":4096,"flags":{}},"1399":{"id":1399,"parentId":1384,"name":"workerize","query":"web-utils/src/worker.Function.workerize","hash":"","kind":64,"flags":{}},"1400":{"id":1400,"parentId":1399,"name":"workerize","query":"web-utils/src/worker.Function.workerize","hash":"workerize","kind":4096,"flags":{}},"1410":{"id":1410,"parentId":1384,"name":"WorkerPool","query":"web-utils/src/worker.Class.WorkerPool","hash":"","kind":128,"flags":{}},"1411":{"id":1411,"parentId":1410,"name":"constructor","query":"web-utils/src/worker.Class.WorkerPool","hash":"constructor","kind":512,"flags":{}},"1412":{"id":1412,"parentId":1411,"name":"constructor","query":"web-utils/src/worker.WorkerPool.Constructor.constructor","hash":"constructor.new WorkerPool","kind":16384,"flags":{}},"1417":{"id":1417,"parentId":1410,"name":"workers","query":"web-utils/src/worker.Class.WorkerPool","hash":"workers","kind":1024,"flags":{"isPrivate":true}},"1418":{"id":1418,"parentId":1410,"name":"queue","query":"web-utils/src/worker.Class.WorkerPool","hash":"queue","kind":1024,"flags":{"isPrivate":true}},"1429":{"id":1429,"parentId":1410,"name":"activeWorkers","query":"web-utils/src/worker.Class.WorkerPool","hash":"activeWorkers","kind":1024,"flags":{"isPrivate":true}},"1430":{"id":1430,"parentId":1410,"name":"workerScript","query":"web-utils/src/worker.Class.WorkerPool","hash":"workerScript","kind":1024,"flags":{"isPrivate":true}},"1433":{"id":1433,"parentId":1410,"name":"size","query":"web-utils/src/worker.Class.WorkerPool","hash":"size","kind":1024,"flags":{"isPrivate":true}},"1434":{"id":1434,"parentId":1410,"name":"initialize","query":"web-utils/src/worker.Class.WorkerPool","hash":"initialize","kind":2048,"flags":{"isPrivate":true}},"1435":{"id":1435,"parentId":1434,"name":"initialize","query":"web-utils/src/worker.WorkerPool.Method.initialize","hash":"initialize.initialize","kind":4096,"flags":{}},"1436":{"id":1436,"parentId":1410,"name":"handleWorkerMessage","query":"web-utils/src/worker.Class.WorkerPool","hash":"handleWorkerMessage","kind":2048,"flags":{"isPrivate":true}},"1437":{"id":1437,"parentId":1436,"name":"handleWorkerMessage","query":"web-utils/src/worker.WorkerPool.Method.handleWorkerMessage","hash":"handleWorkerMessage.handleWorkerMessage","kind":4096,"flags":{}},"1440":{"id":1440,"parentId":1410,"name":"handleWorkerError","query":"web-utils/src/worker.Class.WorkerPool","hash":"handleWorkerError","kind":2048,"flags":{"isPrivate":true}},"1441":{"id":1441,"parentId":1440,"name":"handleWorkerError","query":"web-utils/src/worker.WorkerPool.Method.handleWorkerError","hash":"handleWorkerError.handleWorkerError","kind":4096,"flags":{}},"1444":{"id":1444,"parentId":1410,"name":"processQueue","query":"web-utils/src/worker.Class.WorkerPool","hash":"processQueue","kind":2048,"flags":{"isPrivate":true}},"1445":{"id":1445,"parentId":1444,"name":"processQueue","query":"web-utils/src/worker.WorkerPool.Method.processQueue","hash":"processQueue.processQueue","kind":4096,"flags":{}},"1446":{"id":1446,"parentId":1410,"name":"exec","query":"web-utils/src/worker.Class.WorkerPool","hash":"exec","kind":2048,"flags":{}},"1447":{"id":1447,"parentId":1446,"name":"exec","query":"web-utils/src/worker.WorkerPool.Method.exec","hash":"exec.exec","kind":4096,"flags":{}},"1449":{"id":1449,"parentId":1410,"name":"terminate","query":"web-utils/src/worker.Class.WorkerPool","hash":"terminate","kind":2048,"flags":{}},"1450":{"id":1450,"parentId":1449,"name":"terminate","query":"web-utils/src/worker.WorkerPool.Method.terminate","hash":"terminate.terminate","kind":4096,"flags":{}},"1451":{"id":1451,"name":"canvas-utils/src","query":"Module.canvas-utils/src","hash":"","kind":2,"flags":{}},"1452":{"id":1452,"name":"AIUtils","query":"Module.AIUtils","hash":"","kind":2,"flags":{}},"1453":{"id":1453,"name":"node-img-build/src/handleImg","query":"Module.node-img-build/src/handleImg","hash":"","kind":2,"flags":{}},"1454":{"id":1454,"parentId":1453,"name":"getGmStream","query":"node-img-build/src/handleImg.Function.getGmStream","hash":"","kind":64,"flags":{}},"1455":{"id":1455,"parentId":1454,"name":"getGmStream","query":"node-img-build/src/handleImg.Function.getGmStream","hash":"getGmStream","kind":4096,"flags":{}},"1461":{"id":1461,"parentId":1453,"name":"toWebpImg","query":"node-img-build/src/handleImg.Function.toWebpImg","hash":"","kind":64,"flags":{}},"1462":{"id":1462,"parentId":1461,"name":"toWebpImg","query":"node-img-build/src/handleImg.Function.toWebpImg","hash":"toWebpImg","kind":4096,"flags":{}},"1467":{"id":1467,"parentId":1453,"name":"toBlurImg","query":"node-img-build/src/handleImg.Function.toBlurImg","hash":"","kind":64,"flags":{}},"1468":{"id":1468,"parentId":1467,"name":"toBlurImg","query":"node-img-build/src/handleImg.Function.toBlurImg","hash":"toBlurImg","kind":4096,"flags":{}},"1471":{"id":1471,"parentId":1453,"name":"toBase64","query":"node-img-build/src/handleImg.Function.toBase64","hash":"","kind":64,"flags":{}},"1472":{"id":1472,"parentId":1471,"name":"toBase64","query":"node-img-build/src/handleImg.Function.toBase64","hash":"toBase64","kind":4096,"flags":{}},"1475":{"id":1475,"parentId":1453,"name":"resizeImg","query":"node-img-build/src/handleImg.Function.resizeImg","hash":"","kind":64,"flags":{}},"1476":{"id":1476,"parentId":1475,"name":"resizeImg","query":"node-img-build/src/handleImg.Function.resizeImg","hash":"resizeImg","kind":4096,"flags":{}},"1480":{"id":1480,"parentId":1453,"name":"generate1xFrom2x","query":"node-img-build/src/handleImg.Function.generate1xFrom2x","hash":"","kind":64,"flags":{}},"1481":{"id":1481,"parentId":1480,"name":"generate1xFrom2x","query":"node-img-build/src/handleImg.Function.generate1xFrom2x","hash":"generate1xFrom2x","kind":4096,"flags":{}},"1485":{"id":1485,"parentId":1453,"name":"BlurOptions","query":"node-img-build/src/handleImg.Interface.BlurOptions","hash":"","kind":256,"flags":{}},"1486":{"id":1486,"parentId":1485,"name":"color","query":"node-img-build/src/handleImg.Interface.BlurOptions","hash":"color","kind":1024,"flags":{"isOptional":true}},"1487":{"id":1487,"parentId":1485,"name":"blurRadius","query":"node-img-build/src/handleImg.Interface.BlurOptions","hash":"blurRadius","kind":1024,"flags":{"isOptional":true}},"1488":{"id":1488,"parentId":1485,"name":"blurSigma","query":"node-img-build/src/handleImg.Interface.BlurOptions","hash":"blurSigma","kind":1024,"flags":{"isOptional":true}},"1489":{"id":1489,"parentId":1453,"name":"WebpOptions","query":"node-img-build/src/handleImg.Interface.WebpOptions","hash":"","kind":256,"flags":{}},"1490":{"id":1490,"parentId":1489,"name":"quality","query":"node-img-build/src/handleImg.Interface.WebpOptions","hash":"quality","kind":1024,"flags":{"isOptional":true}},"1491":{"id":1491,"parentId":1453,"name":"default","query":"node-img-build/src/handleImg.Variable.default","hash":"","kind":32,"flags":{}},"1493":{"id":1493,"parentId":1491,"name":"getGmStream","query":"node-img-build/src/handleImg.Variable.default","hash":"getGmStream","kind":4096,"flags":{}},"1501":{"id":1501,"parentId":1491,"name":"toWebpImg","query":"node-img-build/src/handleImg.Variable.default","hash":"toWebpImg","kind":4096,"flags":{}},"1508":{"id":1508,"parentId":1491,"name":"toBlurImg","query":"node-img-build/src/handleImg.Variable.default","hash":"toBlurImg","kind":4096,"flags":{}},"1513":{"id":1513,"parentId":1491,"name":"toBase64","query":"node-img-build/src/handleImg.Variable.default","hash":"toBase64","kind":4096,"flags":{}},"1518":{"id":1518,"parentId":1491,"name":"resizeImg","query":"node-img-build/src/handleImg.Variable.default","hash":"resizeImg","kind":4096,"flags":{}},"1524":{"id":1524,"parentId":1491,"name":"generate1xFrom2x","query":"node-img-build/src/handleImg.Variable.default","hash":"generate1xFrom2x","kind":4096,"flags":{}},"1530":{"id":1530,"parentId":614,"name":"arrayMax","query":"Module.Utils","hash":"arrayMax","kind":8388608,"flags":{}},"1531":{"id":1531,"parentId":614,"name":"arrayMin","query":"Module.Utils","hash":"arrayMin","kind":8388608,"flags":{}},"1532":{"id":1532,"parentId":614,"name":"arrayAverage","query":"Module.Utils","hash":"arrayAverage","kind":8388608,"flags":{}},"1533":{"id":1533,"parentId":614,"name":"arraySum","query":"Module.Utils","hash":"arraySum","kind":8388608,"flags":{}},"1534":{"id":1534,"parentId":614,"name":"size","query":"Module.Utils","hash":"size","kind":8388608,"flags":{}},"1535":{"id":1535,"parentId":614,"name":"arrayToCSV","query":"Module.Utils","hash":"arrayToCSV","kind":8388608,"flags":{}},"1536":{"id":1536,"parentId":614,"name":"castArray","query":"Module.Utils","hash":"castArray","kind":8388608,"flags":{}},"1537":{"id":1537,"parentId":614,"name":"chunk","query":"Module.Utils","hash":"chunk","kind":8388608,"flags":{}},"1538":{"id":1538,"parentId":614,"name":"compact","query":"Module.Utils","hash":"compact","kind":8388608,"flags":{}},"1539":{"id":1539,"parentId":614,"name":"countOccurrences","query":"Module.Utils","hash":"countOccurrences","kind":8388608,"flags":{}},"1540":{"id":1540,"parentId":614,"name":"deepFlatten","query":"Module.Utils","hash":"deepFlatten","kind":8388608,"flags":{}},"1541":{"id":1541,"parentId":614,"name":"flatten","query":"Module.Utils","hash":"flatten","kind":8388608,"flags":{}},"1542":{"id":1542,"parentId":614,"name":"difference","query":"Module.Utils","hash":"difference","kind":8388608,"flags":{}},"1543":{"id":1543,"parentId":614,"name":"differenceBy","query":"Module.Utils","hash":"differenceBy","kind":8388608,"flags":{}},"1544":{"id":1544,"parentId":614,"name":"drop","query":"Module.Utils","hash":"drop","kind":8388608,"flags":{}},"1545":{"id":1545,"parentId":614,"name":"dropWhile","query":"Module.Utils","hash":"dropWhile","kind":8388608,"flags":{}},"1546":{"id":1546,"parentId":614,"name":"indexOfAll","query":"Module.Utils","hash":"indexOfAll","kind":8388608,"flags":{}},"1547":{"id":1547,"parentId":614,"name":"intersection","query":"Module.Utils","hash":"intersection","kind":8388608,"flags":{}},"1548":{"id":1548,"parentId":614,"name":"intersectionBy","query":"Module.Utils","hash":"intersectionBy","kind":8388608,"flags":{}},"1549":{"id":1549,"parentId":614,"name":"intersectionWith","query":"Module.Utils","hash":"intersectionWith","kind":8388608,"flags":{}},"1550":{"id":1550,"parentId":614,"name":"negate","query":"Module.Utils","hash":"negate","kind":8388608,"flags":{}},"1551":{"id":1551,"parentId":614,"name":"sample","query":"Module.Utils","hash":"sample","kind":8388608,"flags":{}},"1552":{"id":1552,"parentId":614,"name":"sampleSize","query":"Module.Utils","hash":"sampleSize","kind":8388608,"flags":{}},"1553":{"id":1553,"parentId":614,"name":"shuffle","query":"Module.Utils","hash":"shuffle","kind":8388608,"flags":{}},"1554":{"id":1554,"parentId":614,"name":"everyNth","query":"Module.Utils","hash":"everyNth","kind":8388608,"flags":{}},"1555":{"id":1555,"parentId":614,"name":"unique","query":"Module.Utils","hash":"unique","kind":8388608,"flags":{}},"1556":{"id":1556,"parentId":614,"name":"filterNonUnique","query":"Module.Utils","hash":"filterNonUnique","kind":8388608,"flags":{}},"1557":{"id":1557,"parentId":614,"name":"initializeArrayWithValues","query":"Module.Utils","hash":"initializeArrayWithValues","kind":8388608,"flags":{}},"1558":{"id":1558,"parentId":614,"name":"remove","query":"Module.Utils","hash":"remove","kind":8388608,"flags":{}},"1559":{"id":1559,"parentId":614,"name":"digitize","query":"Module.Utils","hash":"digitize","kind":8388608,"flags":{}},"1560":{"id":1560,"parentId":614,"name":"fibonacci","query":"Module.Utils","hash":"fibonacci","kind":8388608,"flags":{}},"1561":{"id":1561,"parentId":614,"name":"median","query":"Module.Utils","hash":"median","kind":8388608,"flags":{}},"1562":{"id":1562,"parentId":614,"name":"NumberArr","query":"Module.Utils","hash":"NumberArr","kind":8388608,"flags":{}},"1563":{"id":1563,"parentId":614,"name":"AnyArr","query":"Module.Utils","hash":"AnyArr","kind":8388608,"flags":{}},"1564":{"id":1564,"parentId":614,"name":"allEqual","query":"Module.Utils","hash":"allEqual","kind":8388608,"flags":{}},"1565":{"id":1565,"parentId":614,"name":"getStringByteLength","query":"Module.Utils","hash":"getStringByteLength","kind":8388608,"flags":{}},"1566":{"id":1566,"parentId":614,"name":"validatePassport","query":"Module.Utils","hash":"validatePassport","kind":8388608,"flags":{}},"1567":{"id":1567,"parentId":614,"name":"validateLicensePlate","query":"Module.Utils","hash":"validateLicensePlate","kind":8388608,"flags":{}},"1568":{"id":1568,"parentId":614,"name":"checkPwdStrength","query":"Module.Utils","hash":"checkPwdStrength","kind":8388608,"flags":{}},"1569":{"id":1569,"parentId":614,"name":"checkIdcard","query":"Module.Utils","hash":"checkIdcard","kind":8388608,"flags":{}},"1570":{"id":1570,"parentId":614,"name":"isEmail","query":"Module.Utils","hash":"isEmail","kind":8388608,"flags":{}},"1571":{"id":1571,"parentId":614,"name":"isIdCard","query":"Module.Utils","hash":"isIdCard","kind":8388608,"flags":{}},"1572":{"id":1572,"parentId":614,"name":"isUrl","query":"Module.Utils","hash":"isUrl","kind":8388608,"flags":{}},"1573":{"id":1573,"parentId":614,"name":"isPhoneNumber","query":"Module.Utils","hash":"isPhoneNumber","kind":8388608,"flags":{}},"1574":{"id":1574,"parentId":614,"name":"isPostalCode","query":"Module.Utils","hash":"isPostalCode","kind":8388608,"flags":{}},"1575":{"id":1575,"parentId":614,"name":"isBankCard","query":"Module.Utils","hash":"isBankCard","kind":8388608,"flags":{}},"1576":{"id":1576,"parentId":614,"name":"randomHexColor","query":"Module.Utils","hash":"randomHexColor","kind":8388608,"flags":{}},"1577":{"id":1577,"parentId":614,"name":"getColorRgbArr","query":"Module.Utils","hash":"getColorRgbArr","kind":8388608,"flags":{}},"1578":{"id":1578,"parentId":614,"name":"getColorRgba","query":"Module.Utils","hash":"getColorRgba","kind":8388608,"flags":{}},"1579":{"id":1579,"parentId":614,"name":"isTransparentColor","query":"Module.Utils","hash":"isTransparentColor","kind":8388608,"flags":{}},"1580":{"id":1580,"parentId":614,"name":"dayOfYear","query":"Module.Utils","hash":"dayOfYear","kind":8388608,"flags":{}},"1581":{"id":1581,"parentId":614,"name":"getColonTimeFromDate","query":"Module.Utils","hash":"getColonTimeFromDate","kind":8388608,"flags":{}},"1582":{"id":1582,"parentId":614,"name":"getDaysDiffBetweenDates","query":"Module.Utils","hash":"getDaysDiffBetweenDates","kind":8388608,"flags":{}},"1583":{"id":1583,"parentId":614,"name":"isAfterDate","query":"Module.Utils","hash":"isAfterDate","kind":8388608,"flags":{}},"1584":{"id":1584,"parentId":614,"name":"isBeforeDate","query":"Module.Utils","hash":"isBeforeDate","kind":8388608,"flags":{}},"1585":{"id":1585,"parentId":614,"name":"daysLater","query":"Module.Utils","hash":"daysLater","kind":8388608,"flags":{}},"1586":{"id":1586,"parentId":614,"name":"getFormattedRemainTime","query":"Module.Utils","hash":"getFormattedRemainTime","kind":8388608,"flags":{}},"1587":{"id":1587,"parentId":614,"name":"EasingFunction","query":"Module.Utils","hash":"EasingFunction","kind":8388608,"flags":{}},"1588":{"id":1588,"parentId":614,"name":"attempt","query":"Module.Utils","hash":"attempt","kind":8388608,"flags":{}},"1589":{"id":1589,"parentId":614,"name":"defer","query":"Module.Utils","hash":"defer","kind":8388608,"flags":{}},"1590":{"id":1590,"parentId":614,"name":"runPromisesInSeries","query":"Module.Utils","hash":"runPromisesInSeries","kind":8388608,"flags":{}},"1591":{"id":1591,"parentId":614,"name":"timeTaken","query":"Module.Utils","hash":"timeTaken","kind":8388608,"flags":{}},"1592":{"id":1592,"parentId":614,"name":"memoize","query":"Module.Utils","hash":"memoize","kind":8388608,"flags":{}},"1593":{"id":1593,"parentId":614,"name":"once","query":"Module.Utils","hash":"once","kind":8388608,"flags":{}},"1594":{"id":1594,"parentId":614,"name":"chainAsync","query":"Module.Utils","hash":"chainAsync","kind":8388608,"flags":{}},"1595":{"id":1595,"parentId":614,"name":"compose","query":"Module.Utils","hash":"compose","kind":8388608,"flags":{}},"1596":{"id":1596,"parentId":614,"name":"pipe","query":"Module.Utils","hash":"pipe","kind":8388608,"flags":{}},"1597":{"id":1597,"parentId":614,"name":"functionName","query":"Module.Utils","hash":"functionName","kind":8388608,"flags":{}},"1598":{"id":1598,"parentId":614,"name":"promisify","query":"Module.Utils","hash":"promisify","kind":8388608,"flags":{}},"1599":{"id":1599,"parentId":614,"name":"sleep","query":"Module.Utils","hash":"sleep","kind":8388608,"flags":{}},"1600":{"id":1600,"parentId":614,"name":"throttle","query":"Module.Utils","hash":"throttle","kind":8388608,"flags":{}},"1601":{"id":1601,"parentId":614,"name":"debounce","query":"Module.Utils","hash":"debounce","kind":8388608,"flags":{}},"1602":{"id":1602,"parentId":614,"name":"NOOP","query":"Module.Utils","hash":"NOOP","kind":8388608,"flags":{}},"1603":{"id":1603,"parentId":614,"name":"curry","query":"Module.Utils","hash":"curry","kind":8388608,"flags":{}},"1604":{"id":1604,"parentId":614,"name":"factorial","query":"Module.Utils","hash":"factorial","kind":8388608,"flags":{}},"1605":{"id":1605,"parentId":614,"name":"gcd","query":"Module.Utils","hash":"gcd","kind":8388608,"flags":{}},"1606":{"id":1606,"parentId":614,"name":"isDivisible","query":"Module.Utils","hash":"isDivisible","kind":8388608,"flags":{}},"1607":{"id":1607,"parentId":614,"name":"lcm","query":"Module.Utils","hash":"lcm","kind":8388608,"flags":{}},"1608":{"id":1608,"parentId":614,"name":"isOdd","query":"Module.Utils","hash":"isOdd","kind":8388608,"flags":{}},"1609":{"id":1609,"parentId":614,"name":"isValidNumber","query":"Module.Utils","hash":"isValidNumber","kind":8388608,"flags":{}},"1610":{"id":1610,"parentId":614,"name":"isApproximatelyEqual","query":"Module.Utils","hash":"isApproximatelyEqual","kind":8388608,"flags":{}},"1611":{"id":1611,"parentId":614,"name":"average","query":"Module.Utils","hash":"average","kind":8388608,"flags":{}},"1612":{"id":1612,"parentId":614,"name":"randomIntegerInRange","query":"Module.Utils","hash":"randomIntegerInRange","kind":8388608,"flags":{}},"1613":{"id":1613,"parentId":614,"name":"randomNumberInRange","query":"Module.Utils","hash":"randomNumberInRange","kind":8388608,"flags":{}},"1614":{"id":1614,"parentId":614,"name":"randomIntArrayInRange","query":"Module.Utils","hash":"randomIntArrayInRange","kind":8388608,"flags":{}},"1615":{"id":1615,"parentId":614,"name":"round","query":"Module.Utils","hash":"round","kind":8388608,"flags":{}},"1616":{"id":1616,"parentId":614,"name":"sum","query":"Module.Utils","hash":"sum","kind":8388608,"flags":{}},"1617":{"id":1617,"parentId":614,"name":"clamp","query":"Module.Utils","hash":"clamp","kind":8388608,"flags":{}},"1618":{"id":1618,"parentId":614,"name":"isInt","query":"Module.Utils","hash":"isInt","kind":8388608,"flags":{}},"1619":{"id":1619,"parentId":614,"name":"isFloat","query":"Module.Utils","hash":"isFloat","kind":8388608,"flags":{}},"1620":{"id":1620,"parentId":614,"name":"forOwn","query":"Module.Utils","hash":"forOwn","kind":8388608,"flags":{}},"1621":{"id":1621,"parentId":614,"name":"objectFromPairs","query":"Module.Utils","hash":"objectFromPairs","kind":8388608,"flags":{}},"1622":{"id":1622,"parentId":614,"name":"mapObject","query":"Module.Utils","hash":"mapObject","kind":8388608,"flags":{}},"1623":{"id":1623,"parentId":614,"name":"pick","query":"Module.Utils","hash":"pick","kind":8388608,"flags":{}},"1624":{"id":1624,"parentId":614,"name":"hasOwnProperty","query":"Module.Utils","hash":"hasOwnProperty","kind":8388608,"flags":{}},"1625":{"id":1625,"parentId":614,"name":"isEmptyObj","query":"Module.Utils","hash":"isEmptyObj","kind":8388608,"flags":{}},"1626":{"id":1626,"parentId":614,"name":"PlainObject","query":"Module.Utils","hash":"PlainObject","kind":8388608,"flags":{}},"1627":{"id":1627,"parentId":614,"name":"compareVersion","query":"Module.Utils","hash":"compareVersion","kind":8388608,"flags":{}},"1628":{"id":1628,"parentId":614,"name":"digitUppercase","query":"Module.Utils","hash":"digitUppercase","kind":8388608,"flags":{}},"1629":{"id":1629,"parentId":614,"name":"byteSize","query":"Module.Utils","hash":"byteSize","kind":8388608,"flags":{}},"1630":{"id":1630,"parentId":614,"name":"capitalize","query":"Module.Utils","hash":"capitalize","kind":8388608,"flags":{}},"1631":{"id":1631,"parentId":614,"name":"capitalizeEveryWord","query":"Module.Utils","hash":"capitalizeEveryWord","kind":8388608,"flags":{}},"1632":{"id":1632,"parentId":614,"name":"decapitalize","query":"Module.Utils","hash":"decapitalize","kind":8388608,"flags":{}},"1633":{"id":1633,"parentId":614,"name":"splitLines","query":"Module.Utils","hash":"splitLines","kind":8388608,"flags":{}},"1634":{"id":1634,"parentId":614,"name":"stripHTMLTags","query":"Module.Utils","hash":"stripHTMLTags","kind":8388608,"flags":{}},"1635":{"id":1635,"parentId":614,"name":"palindrome","query":"Module.Utils","hash":"palindrome","kind":8388608,"flags":{}},"1636":{"id":1636,"parentId":614,"name":"fromCamelCase","query":"Module.Utils","hash":"fromCamelCase","kind":8388608,"flags":{}},"1637":{"id":1637,"parentId":614,"name":"reverseString","query":"Module.Utils","hash":"reverseString","kind":8388608,"flags":{}},"1638":{"id":1638,"parentId":614,"name":"truncateString","query":"Module.Utils","hash":"truncateString","kind":8388608,"flags":{}},"1639":{"id":1639,"parentId":614,"name":"ellipsis","query":"Module.Utils","hash":"ellipsis","kind":8388608,"flags":{}},"1640":{"id":1640,"parentId":614,"name":"maskString","query":"Module.Utils","hash":"maskString","kind":8388608,"flags":{}},"1641":{"id":1641,"parentId":614,"name":"isChinese","query":"Module.Utils","hash":"isChinese","kind":8388608,"flags":{}},"1642":{"id":1642,"parentId":614,"name":"camelize","query":"Module.Utils","hash":"camelize","kind":8388608,"flags":{}},"1643":{"id":1643,"parentId":614,"name":"luhnCheck","query":"Module.Utils","hash":"luhnCheck","kind":8388608,"flags":{}},"1644":{"id":1644,"parentId":614,"name":"toCurrency","query":"Module.Utils","hash":"toCurrency","kind":8388608,"flags":{}},"1645":{"id":1645,"parentId":614,"name":"type","query":"Module.Utils","hash":"type","kind":8388608,"flags":{}},"1646":{"id":1646,"parentId":614,"name":"isUndefined","query":"Module.Utils","hash":"isUndefined","kind":8388608,"flags":{}},"1647":{"id":1647,"parentId":614,"name":"isString","query":"Module.Utils","hash":"isString","kind":8388608,"flags":{}},"1648":{"id":1648,"parentId":614,"name":"isNumber","query":"Module.Utils","hash":"isNumber","kind":8388608,"flags":{}},"1649":{"id":1649,"parentId":614,"name":"isObject","query":"Module.Utils","hash":"isObject","kind":8388608,"flags":{}},"1650":{"id":1650,"parentId":614,"name":"isFunction","query":"Module.Utils","hash":"isFunction","kind":8388608,"flags":{}},"1651":{"id":1651,"parentId":614,"name":"equals","query":"Module.Utils","hash":"equals","kind":8388608,"flags":{}},"1652":{"id":1652,"parentId":614,"name":"isArray","query":"Module.Utils","hash":"isArray","kind":8388608,"flags":{}},"1653":{"id":1653,"parentId":614,"name":"isPrimitive","query":"Module.Utils","hash":"isPrimitive","kind":8388608,"flags":{}},"1654":{"id":1654,"parentId":614,"name":"isDate","query":"Module.Utils","hash":"isDate","kind":8388608,"flags":{}},"1655":{"id":1655,"parentId":614,"name":"groupBy","query":"Module.Utils","hash":"groupBy","kind":8388608,"flags":{}},"1656":{"id":1656,"parentId":614,"name":"partition","query":"Module.Utils","hash":"partition","kind":8388608,"flags":{}},"1657":{"id":1657,"parentId":614,"name":"zip","query":"Module.Utils","hash":"zip","kind":8388608,"flags":{}},"1658":{"id":1658,"parentId":614,"name":"unzip","query":"Module.Utils","hash":"unzip","kind":8388608,"flags":{}},"1659":{"id":1659,"parentId":614,"name":"sortBy","query":"Module.Utils","hash":"sortBy","kind":8388608,"flags":{}},"1660":{"id":1660,"parentId":614,"name":"cartesianProduct","query":"Module.Utils","hash":"cartesianProduct","kind":8388608,"flags":{}},"1661":{"id":1661,"parentId":614,"name":"mergeSorted","query":"Module.Utils","hash":"mergeSorted","kind":8388608,"flags":{}},"1662":{"id":1662,"parentId":614,"name":"isValidJSON","query":"Module.Utils","hash":"isValidJSON","kind":8388608,"flags":{}},"1663":{"id":1663,"parentId":614,"name":"isValidEmail","query":"Module.Utils","hash":"isValidEmail","kind":8388608,"flags":{}},"1664":{"id":1664,"parentId":614,"name":"isValidURL","query":"Module.Utils","hash":"isValidURL","kind":8388608,"flags":{}},"1665":{"id":1665,"parentId":614,"name":"isCreditCard","query":"Module.Utils","hash":"isCreditCard","kind":8388608,"flags":{}},"1666":{"id":1666,"parentId":614,"name":"isHexColor","query":"Module.Utils","hash":"isHexColor","kind":8388608,"flags":{}},"1667":{"id":1667,"parentId":614,"name":"isIPv4","query":"Module.Utils","hash":"isIPv4","kind":8388608,"flags":{}},"1668":{"id":1668,"parentId":614,"name":"isPort","query":"Module.Utils","hash":"isPort","kind":8388608,"flags":{}},"1669":{"id":1669,"parentId":614,"name":"isJWT","query":"Module.Utils","hash":"isJWT","kind":8388608,"flags":{}},"1670":{"id":1670,"parentId":614,"name":"isSemVer","query":"Module.Utils","hash":"isSemVer","kind":8388608,"flags":{}},"1671":{"id":1671,"parentId":614,"name":"isValidPhoneNumber","query":"Module.Utils","hash":"isValidPhoneNumber","kind":8388608,"flags":{}},"1672":{"id":1672,"parentId":614,"name":"isMACAddress","query":"Module.Utils","hash":"isMACAddress","kind":8388608,"flags":{}},"1673":{"id":1673,"parentId":614,"name":"isBase64","query":"Module.Utils","hash":"isBase64","kind":8388608,"flags":{}},"1674":{"id":1674,"parentId":614,"name":"formatFileSize","query":"Module.Utils","hash":"formatFileSize","kind":8388608,"flags":{}},"1675":{"id":1675,"parentId":614,"name":"formatDuration","query":"Module.Utils","hash":"formatDuration","kind":8388608,"flags":{}},"1676":{"id":1676,"parentId":614,"name":"formatNumber","query":"Module.Utils","hash":"formatNumber","kind":8388608,"flags":{}},"1677":{"id":1677,"parentId":614,"name":"formatCurrency","query":"Module.Utils","hash":"formatCurrency","kind":8388608,"flags":{}},"1678":{"id":1678,"parentId":614,"name":"formatRelativeTime","query":"Module.Utils","hash":"formatRelativeTime","kind":8388608,"flags":{}},"1679":{"id":1679,"parentId":614,"name":"formatPhone","query":"Module.Utils","hash":"formatPhone","kind":8388608,"flags":{}},"1680":{"id":1680,"parentId":614,"name":"formatPercentage","query":"Module.Utils","hash":"formatPercentage","kind":8388608,"flags":{}},"1681":{"id":1681,"parentId":614,"name":"formatOrdinal","query":"Module.Utils","hash":"formatOrdinal","kind":8388608,"flags":{}},"1682":{"id":1682,"parentId":614,"name":"safeJSONParse","query":"Module.Utils","hash":"safeJSONParse","kind":8388608,"flags":{}},"1683":{"id":1683,"parentId":614,"name":"flattenJSON","query":"Module.Utils","hash":"flattenJSON","kind":8388608,"flags":{}},"1684":{"id":1684,"parentId":614,"name":"unflattenJSON","query":"Module.Utils","hash":"unflattenJSON","kind":8388608,"flags":{}},"1685":{"id":1685,"parentId":614,"name":"compareJSON","query":"Module.Utils","hash":"compareJSON","kind":8388608,"flags":{}},"1686":{"id":1686,"parentId":614,"name":"mergeJSON","query":"Module.Utils","hash":"mergeJSON","kind":8388608,"flags":{}},"1687":{"id":1687,"parentId":614,"name":"cloneJSON","query":"Module.Utils","hash":"cloneJSON","kind":8388608,"flags":{}},"1688":{"id":1688,"parentId":881,"name":"travelFolderSync","query":"node-utils/src.Function.travelFolderSync","hash":"","kind":64,"flags":{}},"1689":{"id":1689,"parentId":1688,"name":"travelFolderSync","query":"node-utils/src.Function.travelFolderSync","hash":"travelFolderSync","kind":4096,"flags":{}},"1699":{"id":1699,"parentId":881,"name":"mkdirsSync","query":"node-utils/src.Function.mkdirsSync","hash":"","kind":64,"flags":{}},"1700":{"id":1700,"parentId":1699,"name":"mkdirsSync","query":"node-utils/src.Function.mkdirsSync","hash":"mkdirsSync","kind":4096,"flags":{}},"1702":{"id":1702,"parentId":881,"name":"fsExistsSync","query":"node-utils/src.Function.fsExistsSync","hash":"","kind":64,"flags":{}},"1703":{"id":1703,"parentId":1702,"name":"fsExistsSync","query":"node-utils/src.Function.fsExistsSync","hash":"fsExistsSync","kind":4096,"flags":{}},"1705":{"id":1705,"parentId":881,"name":"setFolderSync","query":"node-utils/src.Function.setFolderSync","hash":"","kind":64,"flags":{}},"1706":{"id":1706,"parentId":1705,"name":"setFolderSync","query":"node-utils/src.Function.setFolderSync","hash":"setFolderSync","kind":4096,"flags":{}},"1709":{"id":1709,"parentId":881,"name":"rmdirsSync","query":"node-utils/src.Function.rmdirsSync","hash":"","kind":64,"flags":{}},"1710":{"id":1710,"parentId":1709,"name":"rmdirsSync","query":"node-utils/src.Function.rmdirsSync","hash":"rmdirsSync","kind":4096,"flags":{}},"1712":{"id":1712,"parentId":881,"name":"writeFile","query":"node-utils/src.Function.writeFile","hash":"","kind":64,"flags":{}},"1713":{"id":1713,"parentId":1712,"name":"writeFile","query":"node-utils/src.Function.writeFile","hash":"writeFile","kind":4096,"flags":{}},"1717":{"id":1717,"parentId":881,"name":"writeJson","query":"node-utils/src.Function.writeJson","hash":"","kind":64,"flags":{}},"1718":{"id":1718,"parentId":1717,"name":"writeJson","query":"node-utils/src.Function.writeJson","hash":"writeJson","kind":4096,"flags":{}},"1725":{"id":1725,"parentId":881,"name":"readFileSync","query":"node-utils/src.Function.readFileSync","hash":"","kind":64,"flags":{}},"1726":{"id":1726,"parentId":1725,"name":"readFileSync","query":"node-utils/src.Function.readFileSync","hash":"readFileSync","kind":4096,"flags":{}},"1728":{"id":1728,"parentId":881,"name":"readJsonFile","query":"node-utils/src.Function.readJsonFile","hash":"","kind":64,"flags":{}},"1729":{"id":1729,"parentId":1728,"name":"readJsonFile","query":"node-utils/src.Function.readJsonFile","hash":"readJsonFile","kind":4096,"flags":{}},"1731":{"id":1731,"parentId":881,"name":"copyStream","query":"node-utils/src.Function.copyStream","hash":"","kind":64,"flags":{}},"1732":{"id":1732,"parentId":1731,"name":"copyStream","query":"node-utils/src.Function.copyStream","hash":"copyStream","kind":4096,"flags":{}},"1740":{"id":1740,"parentId":881,"name":"runAsync","query":"node-utils/src.Function.runAsync","hash":"","kind":64,"flags":{}},"1741":{"id":1741,"parentId":1740,"name":"runAsync","query":"node-utils/src.Function.runAsync","hash":"runAsync","kind":4096,"flags":{}},"1745":{"id":1745,"parentId":881,"name":"forceRunAsync","query":"node-utils/src.Function.forceRunAsync","hash":"","kind":64,"flags":{}},"1746":{"id":1746,"parentId":1745,"name":"forceRunAsync","query":"node-utils/src.Function.forceRunAsync","hash":"forceRunAsync","kind":4096,"flags":{}},"1750":{"id":1750,"parentId":881,"name":"runPromise","query":"node-utils/src.Function.runPromise","hash":"","kind":64,"flags":{}},"1751":{"id":1751,"parentId":1750,"name":"runPromise","query":"node-utils/src.Function.runPromise","hash":"runPromise","kind":4096,"flags":{}},"1754":{"id":1754,"parentId":881,"name":"runSync","query":"node-utils/src.Function.runSync","hash":"","kind":64,"flags":{}},"1755":{"id":1755,"parentId":1754,"name":"runSync","query":"node-utils/src.Function.runSync","hash":"runSync","kind":4096,"flags":{}},"1759":{"id":1759,"parentId":881,"name":"exit","query":"node-utils/src.Function.exit","hash":"","kind":64,"flags":{}},"1760":{"id":1760,"parentId":1759,"name":"exit","query":"node-utils/src.Function.exit","hash":"exit","kind":4096,"flags":{}},"1761":{"id":1761,"parentId":881,"name":"IGNORE","query":"node-utils/src.Variable.IGNORE","hash":"","kind":32,"flags":{"isConst":true}},"1762":{"id":1762,"parentId":881,"name":"RunOptions","query":"node-utils/src.Interface.RunOptions","hash":"","kind":256,"flags":{}},"1763":{"id":1763,"parentId":1762,"name":"ignoreFailure","query":"node-utils/src.Interface.RunOptions","hash":"ignoreFailure","kind":1024,"flags":{"isOptional":true}},"1764":{"id":1764,"parentId":1762,"name":"captureStdout","query":"node-utils/src.Interface.RunOptions","hash":"captureStdout","kind":1024,"flags":{"isOptional":true}},"1765":{"id":1765,"parentId":1762,"name":"timeout","query":"node-utils/src.Interface.RunOptions","hash":"timeout","kind":1024,"flags":{"isOptional":true,"isOverride":true}},"1766":{"id":1766,"parentId":1762,"name":"detached","query":"node-utils/src.Interface.RunOptions","hash":"detached","kind":1024,"flags":{"isExternal":true,"isOptional":true,"isInherited":true}},"1767":{"id":1767,"parentId":1762,"name":"argv0","query":"node-utils/src.Interface.RunOptions","hash":"argv0","kind":1024,"flags":{"isExternal":true,"isOptional":true,"isInherited":true}},"1768":{"id":1768,"parentId":1762,"name":"stdio","query":"node-utils/src.Interface.RunOptions","hash":"stdio","kind":1024,"flags":{"isExternal":true,"isOptional":true,"isInherited":true}},"1769":{"id":1769,"parentId":1762,"name":"shell","query":"node-utils/src.Interface.RunOptions","hash":"shell","kind":1024,"flags":{"isExternal":true,"isOptional":true,"isInherited":true}},"1770":{"id":1770,"parentId":1762,"name":"windowsVerbatimArguments","query":"node-utils/src.Interface.RunOptions","hash":"windowsVerbatimArguments","kind":1024,"flags":{"isExternal":true,"isOptional":true,"isInherited":true}},"1771":{"id":1771,"parentId":1762,"name":"windowsHide","query":"node-utils/src.Interface.RunOptions","hash":"windowsHide","kind":1024,"flags":{"isExternal":true,"isOptional":true,"isInherited":true}},"1772":{"id":1772,"parentId":1762,"name":"uid","query":"node-utils/src.Interface.RunOptions","hash":"uid","kind":1024,"flags":{"isExternal":true,"isOptional":true,"isInherited":true}},"1773":{"id":1773,"parentId":1762,"name":"gid","query":"node-utils/src.Interface.RunOptions","hash":"gid","kind":1024,"flags":{"isExternal":true,"isOptional":true,"isInherited":true}},"1774":{"id":1774,"parentId":1762,"name":"cwd","query":"node-utils/src.Interface.RunOptions","hash":"cwd","kind":1024,"flags":{"isExternal":true,"isOptional":true,"isInherited":true}},"1775":{"id":1775,"parentId":1762,"name":"env","query":"node-utils/src.Interface.RunOptions","hash":"env","kind":1024,"flags":{"isExternal":true,"isOptional":true,"isInherited":true}},"1776":{"id":1776,"parentId":1762,"name":"serialization","query":"node-utils/src.Interface.RunOptions","hash":"serialization","kind":1024,"flags":{"isExternal":true,"isOptional":true,"isInherited":true}},"1777":{"id":1777,"parentId":1762,"name":"killSignal","query":"node-utils/src.Interface.RunOptions","hash":"killSignal","kind":1024,"flags":{"isExternal":true,"isOptional":true,"isInherited":true}},"1778":{"id":1778,"parentId":1762,"name":"signal","query":"node-utils/src.Interface.RunOptions","hash":"signal","kind":1024,"flags":{"isExternal":true,"isOptional":true,"isInherited":true}},"1779":{"id":1779,"parentId":881,"name":"RunResult","query":"node-utils/src.Interface.RunResult","hash":"","kind":256,"flags":{}},"1780":{"id":1780,"parentId":1779,"name":"code","query":"node-utils/src.Interface.RunResult","hash":"code","kind":1024,"flags":{}},"1781":{"id":1781,"parentId":1779,"name":"stdout","query":"node-utils/src.Interface.RunResult","hash":"stdout","kind":1024,"flags":{}},"1782":{"id":1782,"parentId":1779,"name":"stderr","query":"node-utils/src.Interface.RunResult","hash":"stderr","kind":1024,"flags":{}},"1783":{"id":1783,"parentId":1779,"name":"success","query":"node-utils/src.Interface.RunResult","hash":"success","kind":1024,"flags":{}},"1784":{"id":1784,"parentId":881,"name":"commandEvents","query":"node-utils/src.Variable.commandEvents","hash":"","kind":32,"flags":{"isConst":true}},"1785":{"id":1785,"parentId":881,"name":"parseArgs","query":"node-utils/src.Function.parseArgs","hash":"","kind":64,"flags":{}},"1786":{"id":1786,"parentId":1785,"name":"parseArgs","query":"node-utils/src.Function.parseArgs","hash":"parseArgs","kind":4096,"flags":{}},"1787":{"id":1787,"parentId":881,"name":"CommandLineArgs","query":"node-utils/src.Interface.CommandLineArgs","hash":"","kind":256,"flags":{}},"1790":{"id":1790,"parentId":881,"name":"platform","query":"node-utils/src.Function.platform","hash":"","kind":64,"flags":{}},"1791":{"id":1791,"parentId":1790,"name":"platform","query":"node-utils/src.Function.platform","hash":"platform","kind":4096,"flags":{}},"1792":{"id":1792,"parentId":881,"name":"cpuCount","query":"node-utils/src.Function.cpuCount","hash":"","kind":64,"flags":{}},"1793":{"id":1793,"parentId":1792,"name":"cpuCount","query":"node-utils/src.Function.cpuCount","hash":"cpuCount","kind":4096,"flags":{}},"1794":{"id":1794,"parentId":881,"name":"sysUptime","query":"node-utils/src.Function.sysUptime","hash":"","kind":64,"flags":{}},"1795":{"id":1795,"parentId":1794,"name":"sysUptime","query":"node-utils/src.Function.sysUptime","hash":"sysUptime","kind":4096,"flags":{}},"1796":{"id":1796,"parentId":881,"name":"processUptime","query":"node-utils/src.Function.processUptime","hash":"","kind":64,"flags":{}},"1797":{"id":1797,"parentId":1796,"name":"processUptime","query":"node-utils/src.Function.processUptime","hash":"processUptime","kind":4096,"flags":{}},"1798":{"id":1798,"parentId":881,"name":"freemem","query":"node-utils/src.Function.freemem","hash":"","kind":64,"flags":{}},"1799":{"id":1799,"parentId":1798,"name":"freemem","query":"node-utils/src.Function.freemem","hash":"freemem","kind":4096,"flags":{}},"1800":{"id":1800,"parentId":881,"name":"totalmem","query":"node-utils/src.Function.totalmem","hash":"","kind":64,"flags":{}},"1801":{"id":1801,"parentId":1800,"name":"totalmem","query":"node-utils/src.Function.totalmem","hash":"totalmem","kind":4096,"flags":{}},"1802":{"id":1802,"parentId":881,"name":"freememPercentage","query":"node-utils/src.Function.freememPercentage","hash":"","kind":64,"flags":{}},"1803":{"id":1803,"parentId":1802,"name":"freememPercentage","query":"node-utils/src.Function.freememPercentage","hash":"freememPercentage","kind":4096,"flags":{}},"1804":{"id":1804,"parentId":881,"name":"freeCommand","query":"node-utils/src.Function.freeCommand","hash":"","kind":64,"flags":{}},"1805":{"id":1805,"parentId":1804,"name":"freeCommand","query":"node-utils/src.Function.freeCommand","hash":"freeCommand","kind":4096,"flags":{}},"1807":{"id":1807,"parentId":881,"name":"harddrive","query":"node-utils/src.Function.harddrive","hash":"","kind":64,"flags":{}},"1808":{"id":1808,"parentId":1807,"name":"harddrive","query":"node-utils/src.Function.harddrive","hash":"harddrive","kind":4096,"flags":{}},"1810":{"id":1810,"parentId":881,"name":"getProcesses","query":"node-utils/src.Function.getProcesses","hash":"","kind":64,"flags":{}},"1811":{"id":1811,"parentId":1810,"name":"getProcesses","query":"node-utils/src.Function.getProcesses","hash":"getProcesses","kind":4096,"flags":{}},"1814":{"id":1814,"parentId":881,"name":"allLoadavg","query":"node-utils/src.Function.allLoadavg","hash":"","kind":64,"flags":{}},"1815":{"id":1815,"parentId":1814,"name":"allLoadavg","query":"node-utils/src.Function.allLoadavg","hash":"allLoadavg","kind":4096,"flags":{}},"1816":{"id":1816,"parentId":881,"name":"loadavg","query":"node-utils/src.Function.loadavg","hash":"","kind":64,"flags":{}},"1817":{"id":1817,"parentId":1816,"name":"loadavg","query":"node-utils/src.Function.loadavg","hash":"loadavg","kind":4096,"flags":{}},"1819":{"id":1819,"parentId":881,"name":"getCPUUsage","query":"node-utils/src.Function.getCPUUsage","hash":"","kind":64,"flags":{}},"1820":{"id":1820,"parentId":1819,"name":"getCPUUsage","query":"node-utils/src.Function.getCPUUsage","hash":"getCPUUsage","kind":4096,"flags":{}},"1823":{"id":1823,"parentId":881,"name":"cpuFree","query":"node-utils/src.Function.cpuFree","hash":"","kind":64,"flags":{}},"1824":{"id":1824,"parentId":1823,"name":"cpuFree","query":"node-utils/src.Function.cpuFree","hash":"cpuFree","kind":4096,"flags":{}},"1826":{"id":1826,"parentId":881,"name":"cpuUsage","query":"node-utils/src.Function.cpuUsage","hash":"","kind":64,"flags":{}},"1827":{"id":1827,"parentId":1826,"name":"cpuUsage","query":"node-utils/src.Function.cpuUsage","hash":"cpuUsage","kind":4096,"flags":{}},"1829":{"id":1829,"parentId":881,"name":"getCPUInfo","query":"node-utils/src.Function.getCPUInfo","hash":"","kind":64,"flags":{}},"1830":{"id":1830,"parentId":1829,"name":"getCPUInfo","query":"node-utils/src.Function.getCPUInfo","hash":"getCPUInfo","kind":4096,"flags":{}},"1832":{"id":1832,"parentId":1829,"name":"idle","query":"node-utils/src.Function.getCPUInfo","hash":"getCPUInfo.idle","kind":1024,"flags":{}},"1833":{"id":1833,"parentId":1829,"name":"total","query":"node-utils/src.Function.getCPUInfo","hash":"getCPUInfo.total","kind":1024,"flags":{}},"1834":{"id":1834,"parentId":881,"name":"base64Encode","query":"node-utils/src.Function.base64Encode","hash":"","kind":64,"flags":{}},"1835":{"id":1835,"parentId":1834,"name":"base64Encode","query":"node-utils/src.Function.base64Encode","hash":"base64Encode","kind":4096,"flags":{}},"1837":{"id":1837,"parentId":881,"name":"base64Decode","query":"node-utils/src.Function.base64Decode","hash":"","kind":64,"flags":{}},"1838":{"id":1838,"parentId":1837,"name":"base64Decode","query":"node-utils/src.Function.base64Decode","hash":"base64Decode","kind":4096,"flags":{}},"1840":{"id":1840,"parentId":881,"name":"isBase64Str","query":"node-utils/src.Function.isBase64Str","hash":"","kind":64,"flags":{}},"1841":{"id":1841,"parentId":1840,"name":"isBase64Str","query":"node-utils/src.Function.isBase64Str","hash":"isBase64Str","kind":4096,"flags":{}},"1843":{"id":1843,"parentId":881,"name":"getTimeStr","query":"node-utils/src.Function.getTimeStr","hash":"","kind":64,"flags":{}},"1844":{"id":1844,"parentId":1843,"name":"getTimeStr","query":"node-utils/src.Function.getTimeStr","hash":"getTimeStr","kind":4096,"flags":{}},"1846":{"id":1846,"parentId":881,"name":"isValidSQL","query":"node-utils/src.Function.isValidSQL","hash":"","kind":64,"flags":{}},"1847":{"id":1847,"parentId":1846,"name":"isValidSQL","query":"node-utils/src.Function.isValidSQL","hash":"isValidSQL","kind":4096,"flags":{}},"1849":{"id":1849,"parentId":881,"name":"parseHeaders","query":"node-utils/src.Function.parseHeaders","hash":"","kind":64,"flags":{}},"1850":{"id":1850,"parentId":1849,"name":"parseHeaders","query":"node-utils/src.Function.parseHeaders","hash":"parseHeaders","kind":4096,"flags":{}},"1852":{"id":1852,"parentId":881,"name":"downloadFile","query":"node-utils/src.Function.downloadFile","hash":"","kind":64,"flags":{}},"1853":{"id":1853,"parentId":1852,"name":"downloadFile","query":"node-utils/src.Function.downloadFile","hash":"downloadFile","kind":4096,"flags":{}},"1859":{"id":1859,"parentId":881,"name":"getJSON","query":"node-utils/src.Function.getJSON","hash":"","kind":64,"flags":{}},"1860":{"id":1860,"parentId":1859,"name":"getJSON","query":"node-utils/src.Function.getJSON","hash":"getJSON","kind":4096,"flags":{}},"1862":{"id":1862,"parentId":881,"name":"postJSON","query":"node-utils/src.Function.postJSON","hash":"","kind":64,"flags":{}},"1863":{"id":1863,"parentId":1862,"name":"postJSON","query":"node-utils/src.Function.postJSON","hash":"postJSON","kind":4096,"flags":{}},"1866":{"id":1866,"parentId":881,"name":"createSimpleServer","query":"node-utils/src.Function.createSimpleServer","hash":"","kind":64,"flags":{}},"1867":{"id":1867,"parentId":1866,"name":"createSimpleServer","query":"node-utils/src.Function.createSimpleServer","hash":"createSimpleServer","kind":4096,"flags":{}},"1874":{"id":1874,"parentId":881,"name":"createHTTPServer","query":"node-utils/src.Function.createHTTPServer","hash":"","kind":64,"flags":{}},"1875":{"id":1875,"parentId":1874,"name":"createHTTPServer","query":"node-utils/src.Function.createHTTPServer","hash":"createHTTPServer","kind":4096,"flags":{}},"1882":{"id":1882,"parentId":881,"name":"createSimpleProxy","query":"node-utils/src.Function.createSimpleProxy","hash":"","kind":64,"flags":{}},"1883":{"id":1883,"parentId":1882,"name":"createSimpleProxy","query":"node-utils/src.Function.createSimpleProxy","hash":"createSimpleProxy","kind":4096,"flags":{}},"1886":{"id":1886,"parentId":881,"name":"uploadFile","query":"node-utils/src.Function.uploadFile","hash":"","kind":64,"flags":{}},"1887":{"id":1887,"parentId":1886,"name":"uploadFile","query":"node-utils/src.Function.uploadFile","hash":"uploadFile","kind":4096,"flags":{}},"1895":{"id":1895,"parentId":881,"name":"serveStatic","query":"node-utils/src.Function.serveStatic","hash":"","kind":64,"flags":{}},"1896":{"id":1896,"parentId":1895,"name":"serveStatic","query":"node-utils/src.Function.serveStatic","hash":"serveStatic","kind":4096,"flags":{}},"1899":{"id":1899,"parentId":881,"name":"parseCSV","query":"node-utils/src.Function.parseCSV","hash":"","kind":64,"flags":{}},"1900":{"id":1900,"parentId":1899,"name":"parseCSV","query":"node-utils/src.Function.parseCSV","hash":"parseCSV","kind":4096,"flags":{}},"1903":{"id":1903,"parentId":881,"name":"arrayToCSV","query":"node-utils/src.Function.arrayToCSV","hash":"","kind":64,"flags":{}},"1904":{"id":1904,"parentId":1903,"name":"arrayToCSV","query":"node-utils/src.Function.arrayToCSV","hash":"arrayToCSV","kind":4096,"flags":{}},"1907":{"id":1907,"parentId":881,"name":"stringifyCSV","query":"node-utils/src.Function.stringifyCSV","hash":"","kind":64,"flags":{}},"1908":{"id":1908,"parentId":1907,"name":"stringifyCSV","query":"node-utils/src.Function.stringifyCSV","hash":"stringifyCSV","kind":4096,"flags":{}},"1911":{"id":1911,"parentId":881,"name":"stringifyXML","query":"node-utils/src.Function.stringifyXML","hash":"","kind":64,"flags":{}},"1912":{"id":1912,"parentId":1911,"name":"stringifyXML","query":"node-utils/src.Function.stringifyXML","hash":"stringifyXML","kind":4096,"flags":{}},"1915":{"id":1915,"parentId":881,"name":"parseXML","query":"node-utils/src.Function.parseXML","hash":"","kind":64,"flags":{}},"1916":{"id":1916,"parentId":1915,"name":"parseXML","query":"node-utils/src.Function.parseXML","hash":"parseXML","kind":4096,"flags":{}},"1918":{"id":1918,"parentId":881,"name":"convertFormat","query":"node-utils/src.Function.convertFormat","hash":"","kind":64,"flags":{}},"1919":{"id":1919,"parentId":1918,"name":"convertFormat","query":"node-utils/src.Function.convertFormat","hash":"convertFormat","kind":4096,"flags":{}},"1923":{"id":1923,"parentId":881,"name":"groupData","query":"node-utils/src.Function.groupData","hash":"","kind":64,"flags":{}},"1924":{"id":1924,"parentId":1923,"name":"groupData","query":"node-utils/src.Function.groupData","hash":"groupData","kind":4096,"flags":{}},"1927":{"id":1927,"parentId":1085,"name":"getCookie","query":"Module.web-utils/src","hash":"getCookie","kind":8388608,"flags":{}},"1928":{"id":1928,"parentId":1085,"name":"setCookie","query":"Module.web-utils/src","hash":"setCookie","kind":8388608,"flags":{}},"1929":{"id":1929,"parentId":1085,"name":"delCookie","query":"Module.web-utils/src","hash":"delCookie","kind":8388608,"flags":{}},"1930":{"id":1930,"parentId":1085,"name":"getPrefix","query":"Module.web-utils/src","hash":"getPrefix","kind":8388608,"flags":{}},"1931":{"id":1931,"parentId":1085,"name":"getStyle","query":"Module.web-utils/src","hash":"getStyle","kind":8388608,"flags":{}},"1932":{"id":1932,"parentId":1085,"name":"getElementSize","query":"Module.web-utils/src","hash":"getElementSize","kind":8388608,"flags":{}},"1933":{"id":1933,"parentId":1085,"name":"readClipboardText","query":"Module.web-utils/src","hash":"readClipboardText","kind":8388608,"flags":{}},"1934":{"id":1934,"parentId":1085,"name":"copyToClipboard","query":"Module.web-utils/src","hash":"copyToClipboard","kind":8388608,"flags":{}},"1935":{"id":1935,"parentId":1085,"name":"isPageVisible","query":"Module.web-utils/src","hash":"isPageVisible","kind":8388608,"flags":{}},"1936":{"id":1936,"parentId":1085,"name":"hasClass","query":"Module.web-utils/src","hash":"hasClass","kind":8388608,"flags":{}},"1937":{"id":1937,"parentId":1085,"name":"addClass","query":"Module.web-utils/src","hash":"addClass","kind":8388608,"flags":{}},"1938":{"id":1938,"parentId":1085,"name":"removeClass","query":"Module.web-utils/src","hash":"removeClass","kind":8388608,"flags":{}},"1939":{"id":1939,"parentId":1085,"name":"insertAfter","query":"Module.web-utils/src","hash":"insertAfter","kind":8388608,"flags":{}},"1940":{"id":1940,"parentId":1085,"name":"insertBefore","query":"Module.web-utils/src","hash":"insertBefore","kind":8388608,"flags":{}},"1941":{"id":1941,"parentId":1085,"name":"elementContains","query":"Module.web-utils/src","hash":"elementContains","kind":8388608,"flags":{}},"1942":{"id":1942,"parentId":1085,"name":"hide","query":"Module.web-utils/src","hash":"hide","kind":8388608,"flags":{}},"1943":{"id":1943,"parentId":1085,"name":"nodeListToArray","query":"Module.web-utils/src","hash":"nodeListToArray","kind":8388608,"flags":{}},"1944":{"id":1944,"parentId":1085,"name":"setAttribute","query":"Module.web-utils/src","hash":"setAttribute","kind":8388608,"flags":{}},"1945":{"id":1945,"parentId":1085,"name":"escapeHTML","query":"Module.web-utils/src","hash":"escapeHTML","kind":8388608,"flags":{}},"1946":{"id":1946,"parentId":1085,"name":"getOffsetPos","query":"Module.web-utils/src","hash":"getOffsetPos","kind":8388608,"flags":{}},"1947":{"id":1947,"parentId":1085,"name":"getScrollTop","query":"Module.web-utils/src","hash":"getScrollTop","kind":8388608,"flags":{}},"1948":{"id":1948,"parentId":1085,"name":"getScrollPosition","query":"Module.web-utils/src","hash":"getScrollPosition","kind":8388608,"flags":{}},"1949":{"id":1949,"parentId":1085,"name":"setScrollTop","query":"Module.web-utils/src","hash":"setScrollTop","kind":8388608,"flags":{}},"1950":{"id":1950,"parentId":1085,"name":"animateScrollTo","query":"Module.web-utils/src","hash":"animateScrollTo","kind":8388608,"flags":{}},"1951":{"id":1951,"parentId":1085,"name":"smoothScroll","query":"Module.web-utils/src","hash":"smoothScroll","kind":8388608,"flags":{}},"1952":{"id":1952,"parentId":1085,"name":"disableCopy","query":"Module.web-utils/src","hash":"disableCopy","kind":8388608,"flags":{}},"1953":{"id":1953,"parentId":1085,"name":"requestAnimFrame","query":"Module.web-utils/src","hash":"requestAnimFrame","kind":8388608,"flags":{}},"1954":{"id":1954,"parentId":1085,"name":"readFile","query":"Module.web-utils/src","hash":"readFile","kind":8388608,"flags":{}},"1955":{"id":1955,"parentId":1085,"name":"readFileAsDataURL","query":"Module.web-utils/src","hash":"readFileAsDataURL","kind":8388608,"flags":{}},"1956":{"id":1956,"parentId":1085,"name":"downloadFile","query":"Module.web-utils/src","hash":"downloadFile","kind":8388608,"flags":{}},"1957":{"id":1957,"parentId":1085,"name":"downloadImageFileByUrl","query":"Module.web-utils/src","hash":"downloadImageFileByUrl","kind":8388608,"flags":{}},"1958":{"id":1958,"parentId":1085,"name":"getFileExtension","query":"Module.web-utils/src","hash":"getFileExtension","kind":8388608,"flags":{}},"1959":{"id":1959,"parentId":1085,"name":"isImageLoaded","query":"Module.web-utils/src","hash":"isImageLoaded","kind":8388608,"flags":{}},"1960":{"id":1960,"parentId":1085,"name":"getImageSize","query":"Module.web-utils/src","hash":"getImageSize","kind":8388608,"flags":{}},"1961":{"id":1961,"parentId":1085,"name":"isSupportWebP","query":"Module.web-utils/src","hash":"isSupportWebP","kind":8388608,"flags":{}},"1962":{"id":1962,"parentId":1085,"name":"cropImage","query":"Module.web-utils/src","hash":"cropImage","kind":8388608,"flags":{}},"1963":{"id":1963,"parentId":1085,"name":"compressImage","query":"Module.web-utils/src","hash":"compressImage","kind":8388608,"flags":{}},"1964":{"id":1964,"parentId":1085,"name":"onPageLoad","query":"Module.web-utils/src","hash":"onPageLoad","kind":8388608,"flags":{}},"1965":{"id":1965,"parentId":1085,"name":"onPageUnload","query":"Module.web-utils/src","hash":"onPageUnload","kind":8388608,"flags":{}},"1966":{"id":1966,"parentId":1085,"name":"onBeforeUnload","query":"Module.web-utils/src","hash":"onBeforeUnload","kind":8388608,"flags":{}},"1967":{"id":1967,"parentId":1085,"name":"navigateTo","query":"Module.web-utils/src","hash":"navigateTo","kind":8388608,"flags":{}},"1968":{"id":1968,"parentId":1085,"name":"httpsRedirect","query":"Module.web-utils/src","hash":"httpsRedirect","kind":8388608,"flags":{}},"1969":{"id":1969,"parentId":1085,"name":"NavigateOptions","query":"Module.web-utils/src","hash":"NavigateOptions","kind":8388608,"flags":{}},"1970":{"id":1970,"parentId":1085,"name":"getKeyName","query":"Module.web-utils/src","hash":"getKeyName","kind":8388608,"flags":{}},"1971":{"id":1971,"parentId":1085,"name":"loadScript","query":"Module.web-utils/src","hash":"loadScript","kind":8388608,"flags":{}},"1972":{"id":1972,"parentId":1085,"name":"loadScriptList","query":"Module.web-utils/src","hash":"loadScriptList","kind":8388608,"flags":{}},"1973":{"id":1973,"parentId":1085,"name":"loadCss","query":"Module.web-utils/src","hash":"loadCss","kind":8388608,"flags":{}},"1974":{"id":1974,"parentId":1085,"name":"loadCssList","query":"Module.web-utils/src","hash":"loadCssList","kind":8388608,"flags":{}},"1975":{"id":1975,"parentId":1085,"name":"loadImage","query":"Module.web-utils/src","hash":"loadImage","kind":8388608,"flags":{}},"1976":{"id":1976,"parentId":1085,"name":"loadImageList","query":"Module.web-utils/src","hash":"loadImageList","kind":8388608,"flags":{}},"1977":{"id":1977,"parentId":1085,"name":"loadCSV","query":"Module.web-utils/src","hash":"loadCSV","kind":8388608,"flags":{}},"1978":{"id":1978,"parentId":1085,"name":"isBrowser","query":"Module.web-utils/src","hash":"isBrowser","kind":8388608,"flags":{}},"1979":{"id":1979,"parentId":1085,"name":"isPC","query":"Module.web-utils/src","hash":"isPC","kind":8388608,"flags":{}},"1980":{"id":1980,"parentId":1085,"name":"isOpenHarmony","query":"Module.web-utils/src","hash":"isOpenHarmony","kind":8388608,"flags":{}},"1981":{"id":1981,"parentId":1085,"name":"getPcExplore","query":"Module.web-utils/src","hash":"getPcExplore","kind":8388608,"flags":{}},"1982":{"id":1982,"parentId":1085,"name":"getSystemOS","query":"Module.web-utils/src","hash":"getSystemOS","kind":8388608,"flags":{}},"1983":{"id":1983,"parentId":1085,"name":"getMobilePlatform","query":"Module.web-utils/src","hash":"getMobilePlatform","kind":8388608,"flags":{}},"1984":{"id":1984,"parentId":1085,"name":"getMobileOS","query":"Module.web-utils/src","hash":"getMobileOS","kind":8388608,"flags":{}},"1985":{"id":1985,"parentId":1085,"name":"getMobileBrandIdentify","query":"Module.web-utils/src","hash":"getMobileBrandIdentify","kind":8388608,"flags":{}},"1986":{"id":1986,"parentId":1085,"name":"ua","query":"Module.web-utils/src","hash":"ua","kind":8388608,"flags":{}},"1987":{"id":1987,"parentId":1085,"name":"isFullScreen","query":"Module.web-utils/src","hash":"isFullScreen","kind":8388608,"flags":{}},"1988":{"id":1988,"parentId":1085,"name":"isFullScreenEnabled","query":"Module.web-utils/src","hash":"isFullScreenEnabled","kind":8388608,"flags":{}},"1989":{"id":1989,"parentId":1085,"name":"enterFullscreen","query":"Module.web-utils/src","hash":"enterFullscreen","kind":8388608,"flags":{}},"1990":{"id":1990,"parentId":1085,"name":"exitFullscreen","query":"Module.web-utils/src","hash":"exitFullscreen","kind":8388608,"flags":{}},"1991":{"id":1991,"parentId":1085,"name":"wakeScreenLock","query":"Module.web-utils/src","hash":"wakeScreenLock","kind":8388608,"flags":{}},"1992":{"id":1992,"parentId":1085,"name":"keepScreenOn","query":"Module.web-utils/src","hash":"keepScreenOn","kind":8388608,"flags":{}},"1993":{"id":1993,"parentId":1085,"name":"getClientHeight","query":"Module.web-utils/src","hash":"getClientHeight","kind":8388608,"flags":{}},"1994":{"id":1994,"parentId":1085,"name":"getClientWidth","query":"Module.web-utils/src","hash":"getClientWidth","kind":8388608,"flags":{}},"1995":{"id":1995,"parentId":1085,"name":"parseQueryString","query":"Module.web-utils/src","hash":"parseQueryString","kind":8388608,"flags":{}},"1996":{"id":1996,"parentId":1085,"name":"getUrlParam","query":"Module.web-utils/src","hash":"getUrlParam","kind":8388608,"flags":{}},"1997":{"id":1997,"parentId":1085,"name":"paramsJoinUrl","query":"Module.web-utils/src","hash":"paramsJoinUrl","kind":8388608,"flags":{}},"1998":{"id":1998,"parentId":1085,"name":"getBaseUrl","query":"Module.web-utils/src","hash":"getBaseUrl","kind":8388608,"flags":{}},"1999":{"id":1999,"parentId":1085,"name":"getUrlDomain","query":"Module.web-utils/src","hash":"getUrlDomain","kind":8388608,"flags":{}},"2000":{"id":2000,"parentId":1085,"name":"uniqueSlash","query":"Module.web-utils/src","hash":"uniqueSlash","kind":8388608,"flags":{}},"2001":{"id":2001,"parentId":1085,"name":"createInlineWorker","query":"Module.web-utils/src","hash":"createInlineWorker","kind":8388608,"flags":{}},"2002":{"id":2002,"parentId":1085,"name":"createWorkerTask","query":"Module.web-utils/src","hash":"createWorkerTask","kind":8388608,"flags":{}},"2003":{"id":2003,"parentId":1085,"name":"workerize","query":"Module.web-utils/src","hash":"workerize","kind":8388608,"flags":{}},"2004":{"id":2004,"parentId":1085,"name":"WorkerPool","query":"Module.web-utils/src","hash":"WorkerPool","kind":8388608,"flags":{}},"2005":{"id":2005,"parentId":1085,"name":"escapeHtml","query":"Module.web-utils/src","hash":"escapeHtml","kind":8388608,"flags":{}},"2006":{"id":2006,"parentId":1085,"name":"unescapeHtml","query":"Module.web-utils/src","hash":"unescapeHtml","kind":8388608,"flags":{}},"2007":{"id":2007,"parentId":1085,"name":"sanitizeUrl","query":"Module.web-utils/src","hash":"sanitizeUrl","kind":8388608,"flags":{}},"2008":{"id":2008,"parentId":1085,"name":"generateCSPNonce","query":"Module.web-utils/src","hash":"generateCSPNonce","kind":8388608,"flags":{}},"2009":{"id":2009,"parentId":1085,"name":"maskPhoneNumber","query":"Module.web-utils/src","hash":"maskPhoneNumber","kind":8388608,"flags":{}},"2010":{"id":2010,"parentId":1085,"name":"maskEmail","query":"Module.web-utils/src","hash":"maskEmail","kind":8388608,"flags":{}},"2011":{"id":2011,"parentId":1085,"name":"maskIDCard","query":"Module.web-utils/src","hash":"maskIDCard","kind":8388608,"flags":{}},"2012":{"id":2012,"parentId":1085,"name":"maskBankCard","query":"Module.web-utils/src","hash":"maskBankCard","kind":8388608,"flags":{}},"2013":{"id":2013,"parentId":1085,"name":"maskText","query":"Module.web-utils/src","hash":"maskText","kind":8388608,"flags":{}},"2014":{"id":2014,"parentId":1085,"name":"generateCSRFToken","query":"Module.web-utils/src","hash":"generateCSRFToken","kind":8388608,"flags":{}},"2015":{"id":2015,"parentId":1085,"name":"storeCSRFToken","query":"Module.web-utils/src","hash":"storeCSRFToken","kind":8388608,"flags":{}},"2016":{"id":2016,"parentId":1085,"name":"getCSRFToken","query":"Module.web-utils/src","hash":"getCSRFToken","kind":8388608,"flags":{}},"2017":{"id":2017,"parentId":1085,"name":"addCSRFHeader","query":"Module.web-utils/src","hash":"addCSRFHeader","kind":8388608,"flags":{}},"2018":{"id":2018,"parentId":1085,"name":"parseCSP","query":"Module.web-utils/src","hash":"parseCSP","kind":8388608,"flags":{}},"2019":{"id":2019,"parentId":1085,"name":"stringifyCSP","query":"Module.web-utils/src","hash":"stringifyCSP","kind":8388608,"flags":{}},"2020":{"id":2020,"parentId":1085,"name":"createBaseCSP","query":"Module.web-utils/src","hash":"createBaseCSP","kind":8388608,"flags":{}},"2021":{"id":2021,"parentId":1085,"name":"isBase64","query":"Module.web-utils/src","hash":"isBase64","kind":8388608,"flags":{}},"2022":{"id":2022,"parentId":1085,"name":"measureFPS","query":"Module.web-utils/src","hash":"measureFPS","kind":8388608,"flags":{}},"2023":{"id":2023,"parentId":1085,"name":"getWebVitals","query":"Module.web-utils/src","hash":"getWebVitals","kind":8388608,"flags":{}},"2024":{"id":2024,"parentId":1085,"name":"measureMemory","query":"Module.web-utils/src","hash":"measureMemory","kind":8388608,"flags":{}},"2025":{"id":2025,"parentId":1085,"name":"measureLoadTime","query":"Module.web-utils/src","hash":"measureLoadTime","kind":8388608,"flags":{}},"2026":{"id":2026,"parentId":1085,"name":"createPerformanceObserver","query":"Module.web-utils/src","hash":"createPerformanceObserver","kind":8388608,"flags":{}},"2027":{"id":2027,"parentId":1085,"name":"resourceTiming","query":"Module.web-utils/src","hash":"resourceTiming","kind":8388608,"flags":{}},"2028":{"id":2028,"parentId":1085,"name":"isOnline","query":"Module.web-utils/src","hash":"isOnline","kind":8388608,"flags":{}},"2029":{"id":2029,"parentId":1085,"name":"getNetworkType","query":"Module.web-utils/src","hash":"getNetworkType","kind":8388608,"flags":{}},"2030":{"id":2030,"parentId":1085,"name":"getNetworkInfo","query":"Module.web-utils/src","hash":"getNetworkInfo","kind":8388608,"flags":{}},"2031":{"id":2031,"parentId":1085,"name":"onNetworkChange","query":"Module.web-utils/src","hash":"onNetworkChange","kind":8388608,"flags":{}},"2032":{"id":2032,"parentId":1085,"name":"retryRequest","query":"Module.web-utils/src","hash":"retryRequest","kind":8388608,"flags":{}},"2033":{"id":2033,"parentId":1085,"name":"requestIdleCallbackPolyfill","query":"Module.web-utils/src","hash":"requestIdleCallbackPolyfill","kind":8388608,"flags":{}},"2034":{"id":2034,"parentId":1085,"name":"cancelIdleCallbackPolyfill","query":"Module.web-utils/src","hash":"cancelIdleCallbackPolyfill","kind":8388608,"flags":{}},"2035":{"id":2035,"parentId":1085,"name":"serializeForm","query":"Module.web-utils/src","hash":"serializeForm","kind":8388608,"flags":{}},"2036":{"id":2036,"parentId":1085,"name":"validateForm","query":"Module.web-utils/src","hash":"validateForm","kind":8388608,"flags":{}},"2037":{"id":2037,"parentId":1085,"name":"autoSaveForm","query":"Module.web-utils/src","hash":"autoSaveForm","kind":8388608,"flags":{}},"2038":{"id":2038,"parentId":1085,"name":"formDiff","query":"Module.web-utils/src","hash":"formDiff","kind":8388608,"flags":{}},"2039":{"id":2039,"parentId":1085,"name":"resetFormField","query":"Module.web-utils/src","hash":"resetFormField","kind":8388608,"flags":{}},"2040":{"id":2040,"parentId":1085,"name":"getLocale","query":"Module.web-utils/src","hash":"getLocale","kind":8388608,"flags":{}},"2041":{"id":2041,"parentId":1085,"name":"formatDateLocale","query":"Module.web-utils/src","hash":"formatDateLocale","kind":8388608,"flags":{}},"2042":{"id":2042,"parentId":1085,"name":"formatNumberLocale","query":"Module.web-utils/src","hash":"formatNumberLocale","kind":8388608,"flags":{}},"2043":{"id":2043,"parentId":1085,"name":"formatCurrencyLocale","query":"Module.web-utils/src","hash":"formatCurrencyLocale","kind":8388608,"flags":{}},"2044":{"id":2044,"parentId":1085,"name":"pluralize","query":"Module.web-utils/src","hash":"pluralize","kind":8388608,"flags":{}},"2045":{"id":2045,"parentId":1085,"name":"getDirection","query":"Module.web-utils/src","hash":"getDirection","kind":8388608,"flags":{}},"2046":{"id":2046,"parentId":1085,"name":"formatRelativeTime","query":"Module.web-utils/src","hash":"formatRelativeTime","kind":8388608,"flags":{}},"2047":{"id":2047,"parentId":1451,"name":"__DEV__","query":"canvas-utils/src.Variable.__DEV__","hash":"","kind":32,"flags":{"isConst":true}},"2048":{"id":2048,"parentId":1451,"name":"isWeapp","query":"canvas-utils/src.Variable.isWeapp","hash":"","kind":32,"flags":{"isConst":true}},"2049":{"id":2049,"parentId":1451,"name":"isWeb","query":"canvas-utils/src.Variable.isWeb","hash":"","kind":32,"flags":{"isConst":true}},"2050":{"id":2050,"parentId":1451,"name":"isNode","query":"canvas-utils/src.Variable.isNode","hash":"","kind":32,"flags":{"isConst":true}},"2051":{"id":2051,"parentId":1451,"name":"each","query":"canvas-utils/src.Function.each","hash":"","kind":64,"flags":{}},"2052":{"id":2052,"parentId":2051,"name":"each","query":"canvas-utils/src.Function.each","hash":"each","kind":4096,"flags":{}},"2059":{"id":2059,"parentId":1451,"name":"cloneObjDeep","query":"canvas-utils/src.Function.cloneObjDeep","hash":"","kind":64,"flags":{}},"2060":{"id":2060,"parentId":2059,"name":"cloneObjDeep","query":"canvas-utils/src.Function.cloneObjDeep","hash":"cloneObjDeep","kind":4096,"flags":{}},"2063":{"id":2063,"parentId":1451,"name":"throwError","query":"canvas-utils/src.Function.throwError","hash":"","kind":64,"flags":{}},"2064":{"id":2064,"parentId":2063,"name":"throwError","query":"canvas-utils/src.Function.throwError","hash":"throwError","kind":4096,"flags":{}},"2068":{"id":2068,"parentId":1451,"name":"NOOP","query":"canvas-utils/src.Function.NOOP","hash":"","kind":64,"flags":{}},"2069":{"id":2069,"parentId":2068,"name":"NOOP","query":"canvas-utils/src.Function.NOOP","hash":"NOOP","kind":4096,"flags":{}},"2070":{"id":2070,"parentId":1451,"name":"cloneArray","query":"canvas-utils/src.Function.cloneArray","hash":"","kind":64,"flags":{}},"2071":{"id":2071,"parentId":2070,"name":"cloneArray","query":"canvas-utils/src.Function.cloneArray","hash":"cloneArray","kind":4096,"flags":{}},"2075":{"id":2075,"parentId":1451,"name":"getListExtremum","query":"canvas-utils/src.Function.getListExtremum","hash":"","kind":64,"flags":{}},"2076":{"id":2076,"parentId":2075,"name":"getListExtremum","query":"canvas-utils/src.Function.getListExtremum","hash":"getListExtremum","kind":4096,"flags":{}},"2078":{"id":2078,"parentId":1451,"name":"getAxisLimit","query":"canvas-utils/src.Function.getAxisLimit","hash":"","kind":64,"flags":{}},"2079":{"id":2079,"parentId":2078,"name":"getAxisLimit","query":"canvas-utils/src.Function.getAxisLimit","hash":"getAxisLimit","kind":4096,"flags":{}},"2081":{"id":2081,"parentId":1451,"name":"getPointsAngle","query":"canvas-utils/src.Function.getPointsAngle","hash":"","kind":64,"flags":{}},"2082":{"id":2082,"parentId":2081,"name":"getPointsAngle","query":"canvas-utils/src.Function.getPointsAngle","hash":"getPointsAngle","kind":4096,"flags":{}},"2085":{"id":2085,"parentId":1451,"name":"getPointsDistance","query":"canvas-utils/src.Function.getPointsDistance","hash":"","kind":64,"flags":{}},"2086":{"id":2086,"parentId":2085,"name":"getPointsDistance","query":"canvas-utils/src.Function.getPointsDistance","hash":"getPointsDistance","kind":4096,"flags":{}},"2089":{"id":2089,"parentId":1451,"name":"min","query":"canvas-utils/src.Function.min","hash":"","kind":64,"flags":{}},"2090":{"id":2090,"parentId":2089,"name":"min","query":"canvas-utils/src.Function.min","hash":"min","kind":4096,"flags":{}},"2092":{"id":2092,"parentId":1451,"name":"max","query":"canvas-utils/src.Function.max","hash":"","kind":64,"flags":{}},"2093":{"id":2093,"parentId":2092,"name":"max","query":"canvas-utils/src.Function.max","hash":"max","kind":4096,"flags":{}},"2095":{"id":2095,"parentId":1451,"name":"getColorRgbList","query":"canvas-utils/src.Function.getColorRgbList","hash":"","kind":64,"flags":{}},"2096":{"id":2096,"parentId":2095,"name":"getColorRgbList","query":"canvas-utils/src.Function.getColorRgbList","hash":"getColorRgbList","kind":4096,"flags":{}},"2098":{"id":2098,"parentId":1451,"name":"getColorRgba","query":"canvas-utils/src.Function.getColorRgba","hash":"","kind":64,"flags":{}},"2099":{"id":2099,"parentId":2098,"name":"getColorRgba","query":"canvas-utils/src.Function.getColorRgba","hash":"getColorRgba","kind":4096,"flags":{}},"2102":{"id":2102,"parentId":1451,"name":"isTransparentColor","query":"canvas-utils/src.Function.isTransparentColor","hash":"","kind":64,"flags":{}},"2103":{"id":2103,"parentId":2102,"name":"isTransparentColor","query":"canvas-utils/src.Function.isTransparentColor","hash":"isTransparentColor","kind":4096,"flags":{}},"2105":{"id":2105,"parentId":1451,"name":"getLightfulRgbList","query":"canvas-utils/src.Function.getLightfulRgbList","hash":"","kind":64,"flags":{}},"2106":{"id":2106,"parentId":2105,"name":"getLightfulRgbList","query":"canvas-utils/src.Function.getLightfulRgbList","hash":"getLightfulRgbList","kind":4096,"flags":{}},"2109":{"id":2109,"parentId":1451,"name":"drawLine","query":"canvas-utils/src.Function.drawLine","hash":"","kind":64,"flags":{}},"2110":{"id":2110,"parentId":2109,"name":"drawLine","query":"canvas-utils/src.Function.drawLine","hash":"drawLine","kind":4096,"flags":{}},"2114":{"id":2114,"parentId":1451,"name":"drawDashLine","query":"canvas-utils/src.Function.drawDashLine","hash":"","kind":64,"flags":{}},"2115":{"id":2115,"parentId":2114,"name":"drawDashLine","query":"canvas-utils/src.Function.drawDashLine","hash":"drawDashLine","kind":4096,"flags":{}},"2120":{"id":2120,"parentId":1451,"name":"drawPoint","query":"canvas-utils/src.Function.drawPoint","hash":"","kind":64,"flags":{}},"2121":{"id":2121,"parentId":2120,"name":"drawPoint","query":"canvas-utils/src.Function.drawPoint","hash":"drawPoint","kind":4096,"flags":{}},"2128":{"id":2128,"parentId":1451,"name":"drawRotateText","query":"canvas-utils/src.Function.drawRotateText","hash":"","kind":64,"flags":{}},"2129":{"id":2129,"parentId":2128,"name":"drawRotateText","query":"canvas-utils/src.Function.drawRotateText","hash":"drawRotateText","kind":4096,"flags":{}},"2134":{"id":2134,"parentId":1451,"name":"clearArc","query":"canvas-utils/src.Function.clearArc","hash":"","kind":64,"flags":{}},"2135":{"id":2135,"parentId":2134,"name":"clearArc","query":"canvas-utils/src.Function.clearArc","hash":"clearArc","kind":4096,"flags":{}},"2139":{"id":2139,"parentId":1451,"name":"retinaScale","query":"canvas-utils/src.Function.retinaScale","hash":"","kind":64,"flags":{}},"2140":{"id":2140,"parentId":2139,"name":"retinaScale","query":"canvas-utils/src.Function.retinaScale","hash":"retinaScale","kind":4096,"flags":{}},"2143":{"id":2143,"parentId":1451,"name":"createCanvasElem","query":"canvas-utils/src.Function.createCanvasElem","hash":"","kind":64,"flags":{}},"2144":{"id":2144,"parentId":2143,"name":"createCanvasElem","query":"canvas-utils/src.Function.createCanvasElem","hash":"createCanvasElem","kind":4096,"flags":{}},"2151":{"id":2151,"parentId":1451,"name":"getCurvePoints","query":"canvas-utils/src.Function.getCurvePoints","hash":"","kind":64,"flags":{}},"2152":{"id":2152,"parentId":2151,"name":"getCurvePoints","query":"canvas-utils/src.Function.getCurvePoints","hash":"getCurvePoints","kind":4096,"flags":{}},"2154":{"id":2154,"parentId":1451,"name":"mixins","query":"canvas-utils/src.Function.mixins","hash":"","kind":64,"flags":{}},"2155":{"id":2155,"parentId":2154,"name":"mixins","query":"canvas-utils/src.Function.mixins","hash":"mixins","kind":4096,"flags":{}},"2160":{"id":2160,"parentId":1451,"name":"setAnimationHooks","query":"canvas-utils/src.Function.setAnimationHooks","hash":"","kind":64,"flags":{}},"2161":{"id":2161,"parentId":2160,"name":"setAnimationHooks","query":"canvas-utils/src.Function.setAnimationHooks","hash":"setAnimationHooks","kind":4096,"flags":{}},"2163":{"id":2163,"parentId":1451,"name":"setEnvContext","query":"canvas-utils/src.Function.setEnvContext","hash":"","kind":64,"flags":{}},"2164":{"id":2164,"parentId":2163,"name":"setEnvContext","query":"canvas-utils/src.Function.setEnvContext","hash":"setEnvContext","kind":4096,"flags":{}},"2168":{"id":2168,"parentId":1451,"name":"animate","query":"canvas-utils/src.Function.animate","hash":"","kind":64,"flags":{}},"2169":{"id":2169,"parentId":2168,"name":"animate","query":"canvas-utils/src.Function.animate","hash":"animate","kind":4096,"flags":{}},"2171":{"id":2171,"parentId":1451,"name":"PointPosition","query":"canvas-utils/src.Interface.PointPosition","hash":"","kind":256,"flags":{}},"2172":{"id":2172,"parentId":2171,"name":"x","query":"canvas-utils/src.Interface.PointPosition","hash":"x","kind":1024,"flags":{}},"2173":{"id":2173,"parentId":2171,"name":"y","query":"canvas-utils/src.Interface.PointPosition","hash":"y","kind":1024,"flags":{}},"2174":{"id":2174,"parentId":1451,"name":"PointsMap","query":"canvas-utils/src.TypeAlias.PointsMap","hash":"","kind":4194304,"flags":{}},"2175":{"id":2175,"parentId":1451,"name":"ListExtremum","query":"canvas-utils/src.TypeAlias.ListExtremum","hash":"","kind":4194304,"flags":{}},"2177":{"id":2177,"parentId":2175,"name":"max","query":"canvas-utils/src.TypeAlias.ListExtremum","hash":"max","kind":1024,"flags":{}},"2178":{"id":2178,"parentId":2175,"name":"min","query":"canvas-utils/src.TypeAlias.ListExtremum","hash":"min","kind":1024,"flags":{}},"2179":{"id":2179,"parentId":1451,"name":"SimpleObj","query":"canvas-utils/src.TypeAlias.SimpleObj","hash":"","kind":4194304,"flags":{}},"2183":{"id":2183,"parentId":1452,"name":"genCodeReviewPrompt","query":"AIUtils.Function.genCodeReviewPrompt","hash":"","kind":64,"flags":{}},"2184":{"id":2184,"parentId":2183,"name":"genCodeReviewPrompt","query":"AIUtils.Function.genCodeReviewPrompt","hash":"genCodeReviewPrompt","kind":4096,"flags":{}},"2186":{"id":2186,"parentId":1452,"name":"genSqlPrompt","query":"AIUtils.Function.genSqlPrompt","hash":"","kind":64,"flags":{}},"2187":{"id":2187,"parentId":2186,"name":"genSqlPrompt","query":"AIUtils.Function.genSqlPrompt","hash":"genSqlPrompt","kind":4096,"flags":{}},"2189":{"id":2189,"parentId":1452,"name":"getSqlPrompt","query":"Module.AIUtils","hash":"getSqlPrompt","kind":8388608,"flags":{}},"2190":{"id":2190,"parentId":1452,"name":"genUnitTestCasesPrompt","query":"AIUtils.Function.genUnitTestCasesPrompt","hash":"","kind":64,"flags":{}},"2191":{"id":2191,"parentId":2190,"name":"genUnitTestCasesPrompt","query":"AIUtils.Function.genUnitTestCasesPrompt","hash":"genUnitTestCasesPrompt","kind":4096,"flags":{}},"2193":{"id":2193,"parentId":1452,"name":"genEnhancePrompt","query":"AIUtils.Function.genEnhancePrompt","hash":"","kind":64,"flags":{}},"2194":{"id":2194,"parentId":2193,"name":"genEnhancePrompt","query":"AIUtils.Function.genEnhancePrompt","hash":"genEnhancePrompt","kind":4096,"flags":{}},"2196":{"id":2196,"parentId":1452,"name":"enhancePrompt","query":"Module.AIUtils","hash":"enhancePrompt","kind":8388608,"flags":{}},"2197":{"id":2197,"parentId":1452,"name":"genCreateReactComponentPrompt","query":"AIUtils.Function.genCreateReactComponentPrompt","hash":"","kind":64,"flags":{}},"2198":{"id":2198,"parentId":2197,"name":"genCreateReactComponentPrompt","query":"AIUtils.Function.genCreateReactComponentPrompt","hash":"genCreateReactComponentPrompt","kind":4096,"flags":{}},"2200":{"id":2200,"parentId":1452,"name":"getCreateReactComponentPrompt","query":"Module.AIUtils","hash":"getCreateReactComponentPrompt","kind":8388608,"flags":{}},"2201":{"id":2201,"parentId":1452,"name":"SummaryOptions","query":"AIUtils.Interface.SummaryOptions","hash":"","kind":256,"flags":{}},"2202":{"id":2202,"parentId":2201,"name":"length","query":"AIUtils.Interface.SummaryOptions","hash":"length","kind":1024,"flags":{"isOptional":true}},"2203":{"id":2203,"parentId":2201,"name":"language","query":"AIUtils.Interface.SummaryOptions","hash":"language","kind":1024,"flags":{"isOptional":true}},"2204":{"id":2204,"parentId":1452,"name":"genSummaryPrompt","query":"AIUtils.Function.genSummaryPrompt","hash":"","kind":64,"flags":{}},"2205":{"id":2205,"parentId":2204,"name":"genSummaryPrompt","query":"AIUtils.Function.genSummaryPrompt","hash":"genSummaryPrompt","kind":4096,"flags":{}},"2207":{"id":2207,"parentId":1452,"name":"TranslateOptions","query":"AIUtils.Interface.TranslateOptions","hash":"","kind":256,"flags":{}},"2208":{"id":2208,"parentId":2207,"name":"sourceLanguage","query":"AIUtils.Interface.TranslateOptions","hash":"sourceLanguage","kind":1024,"flags":{"isOptional":true}},"2209":{"id":2209,"parentId":2207,"name":"targetLanguage","query":"AIUtils.Interface.TranslateOptions","hash":"targetLanguage","kind":1024,"flags":{}},"2210":{"id":2210,"parentId":2207,"name":"style","query":"AIUtils.Interface.TranslateOptions","hash":"style","kind":1024,"flags":{"isOptional":true}},"2211":{"id":2211,"parentId":1452,"name":"genTranslatePrompt","query":"AIUtils.Function.genTranslatePrompt","hash":"","kind":64,"flags":{}},"2212":{"id":2212,"parentId":2211,"name":"genTranslatePrompt","query":"AIUtils.Function.genTranslatePrompt","hash":"genTranslatePrompt","kind":4096,"flags":{}},"2214":{"id":2214,"parentId":1452,"name":"estimateTokenLength","query":"AIUtils.Function.estimateTokenLength","hash":"","kind":64,"flags":{}},"2215":{"id":2215,"parentId":2214,"name":"estimateTokenLength","query":"AIUtils.Function.estimateTokenLength","hash":"estimateTokenLength","kind":4096,"flags":{}},"2217":{"id":2217,"parentId":1452,"name":"getBoa","query":"AIUtils.Function.getBoa","hash":"","kind":64,"flags":{}},"2218":{"id":2218,"parentId":2217,"name":"getBoa","query":"AIUtils.Function.getBoa","hash":"getBoa","kind":4096,"flags":{}},"2219":{"id":2219,"parentId":1452,"name":"PromptConfig","query":"AIUtils.Interface.PromptConfig","hash":"","kind":256,"flags":{}},"2220":{"id":2220,"parentId":2219,"name":"maxTokenLength","query":"AIUtils.Interface.PromptConfig","hash":"maxTokenLength","kind":1024,"flags":{"isOptional":true}},"2221":{"id":2221,"parentId":1452,"name":"createPromptGenerator","query":"AIUtils.Function.createPromptGenerator","hash":"","kind":64,"flags":{}},"2222":{"id":2222,"parentId":2221,"name":"createPromptGenerator","query":"AIUtils.Function.createPromptGenerator","hash":"createPromptGenerator","kind":4096,"flags":{}},"2232":{"id":2232,"parentId":1452,"name":"applyTemplate","query":"AIUtils.Function.applyTemplate","hash":"","kind":64,"flags":{}},"2233":{"id":2233,"parentId":2232,"name":"applyTemplate","query":"AIUtils.Function.applyTemplate","hash":"applyTemplate","kind":4096,"flags":{}},"project":{"id":0,"name":"fe-tools utils - v1.0.0-beta01","query":"index","hash":"","kind":1,"flags":{}}} diff --git a/docs/v1.0.0-beta01/frontend/YafElementDrawers.d.ts b/docs/v1.0.0-beta01/frontend/YafElementDrawers.d.ts new file mode 100644 index 000000000..f1cada1b1 --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/YafElementDrawers.d.ts @@ -0,0 +1,46 @@ +import { drawerState, flagCounts } from '../types/frontendTypes.js'; +export type DrawerElement = HTMLElement & YafElementDrawers; +/** + * Utility class for folding, hierarchical drawers + */ +export declare class YafElementDrawers { + drawer: HTMLElement; + drawerParent: DrawerElement; + drawerTrigger: HTMLElement; + drawerId: string; + parentDrawerElement?: DrawerElement; + debounceResize: ReturnType | null; + isDrawer: boolean; + hasContent: boolean; + drawers: YafElementDrawers; + childDrawers: DrawerElement[]; + constructor(drawerParent: DrawerElement, drawer: HTMLElement, drawerTrigger: HTMLElement, id: string, parentDrawerElement?: DrawerElement); + drawerHasDisconnected: () => void; + private eventsList; + renderDrawers: (init?: boolean) => void; + openDrawer: () => void; + closeDrawer: () => void; + toggleDrawerState: () => void; + heightControl: { + initDataHeight: (clientHeight: number) => void; + setMaxHeightStyle: () => void; + updateHeightAbove: (height: number) => void; + reRenderDrawers: (init?: boolean) => void; + resetHeights: (init?: boolean) => void; + debounceReset: () => void; + }; + get dataHeight(): number; + set dataHeight(height: number); + get dataExtraHeight(): number; + set dataExtraHeight(height: number); + set dataExtraReset(height: number); + get maxHeightPixels(): string; + get drawerState(): drawerState; + get childDrawerElements(): DrawerElement[]; + get isRoot(): boolean; + get isBranch(): boolean; + get isLeaf(): boolean; + get flagCounts(): flagCounts; + static findParentDrawers: (child: HTMLElement, parents?: DrawerElement[]) => DrawerElement[]; + static hasClosedDrawers: (drawers: DrawerElement[]) => boolean | 0; +} diff --git a/docs/v1.0.0-beta01/frontend/YafElementDrawers.js b/docs/v1.0.0-beta01/frontend/YafElementDrawers.js new file mode 100644 index 000000000..7fd330a12 --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/YafElementDrawers.js @@ -0,0 +1,185 @@ +import appState from './handlers/AppState.js'; +import { events } from './handlers/index.js'; +const { trigger } = events; +/** + * Utility class for folding, hierarchical drawers + */ +export class YafElementDrawers { + constructor(drawerParent, drawer, drawerTrigger, id, parentDrawerElement) { + this.debounceResize = null; + this.isDrawer = true; + this.hasContent = false; + this.drawerHasDisconnected = () => { + this.eventsList.forEach((event) => events.off(...event)); + }; + this.eventsList = [ + ['resize', () => this.heightControl.debounceReset(), window], + [ + trigger.drawers.resetHeight, + () => this.heightControl.resetHeights(true), + ], + [ + trigger.options.display, + ({ detail }) => { + const { key, value } = detail; + this.drawerParent.setAttribute(key, value); + }, + ], + ]; + this.renderDrawers = (init = false) => { + if (init && !this.isRoot) + return; + this.hasContent = !!this.drawer.innerHTML; + this.heightControl.initDataHeight(this.drawer.clientHeight); + this.drawerParent.classList.add('closed'); + appState.openDrawers[this.drawerId] + ? this.openDrawer() + : this.closeDrawer(); + this.childDrawerElements.forEach((child) => { + child.drawers.renderDrawers(); + }); + setTimeout(() => this.drawerParent.classList.add('rendered')); + }; + this.openDrawer = () => { + if (this.drawerState === 'open' || !this.hasContent) + return; + this.heightControl.updateHeightAbove(this.dataHeight); + this.drawerParent.classList.remove('closed'); + this.drawerParent.classList.add('open'); + appState.openDrawer = this.drawerId; + }; + this.closeDrawer = () => { + if (this.drawerState === 'closed' || !this.hasContent) + return; + this.heightControl.updateHeightAbove(this.dataHeight * -1); + this.drawerParent.classList.remove('open'); + this.drawerParent.classList.add('closed'); + appState.closeDrawer = this.drawerId; + }; + this.toggleDrawerState = () => { + this.drawerState === 'open' ? this.closeDrawer() : this.openDrawer(); + }; + this.heightControl = { + initDataHeight: (clientHeight) => { + this.dataHeight = this.dataHeight + clientHeight; + this.heightControl.setMaxHeightStyle(); + }, + setMaxHeightStyle: () => { + this.drawer.setAttribute('style', `max-height: ${this.maxHeightPixels};`); + }, + updateHeightAbove: (height) => { + this.dataExtraHeight = height; + this.heightControl.setMaxHeightStyle(); + if (this.parentDrawerElement) + this.parentDrawerElement.drawers.heightControl.updateHeightAbove(height); + }, + reRenderDrawers: (init = false) => { + if (init && !this.isLeaf) + return; + if (init) + this.renderDrawers(true); + if (this.parentDrawerElement) + this.parentDrawerElement.drawers.heightControl.reRenderDrawers(); + }, + resetHeights: (init = false) => { + if (init && !this.isRoot) + return; + this.dataHeight = 0; + this.dataExtraReset = 0; + this.drawer.removeAttribute('style'); + ['rendered', 'open', 'closed'].forEach((className) => { + if (this.drawerParent.classList.contains(className)) + this.drawerParent.classList.remove(className); + }); + this.childDrawerElements.forEach((child) => { + child.drawers.heightControl.resetHeights(); + }); + this.renderDrawers(true); + }, + debounceReset: () => { + this.debounceResize && clearTimeout(this.debounceResize); + this.debounceResize = setTimeout(() => { + this.heightControl.resetHeights(true); + }, 100); + }, + }; + this.drawer = drawer; + this.drawerParent = drawerParent; + this.drawerTrigger = drawerTrigger; + this.drawerId = id; + this.parentDrawerElement = parentDrawerElement; + this.drawerParent.isDrawer = true; + this.drawerParent.classList.add('yaf-parent-drawer'); + this.drawer.classList.add('yaf-drawer'); + this.drawerParent.setAttribute('data-height', '0'); + this.drawerParent.setAttribute('data-height-extra', '0'); + Object.keys(appState.options.display).forEach((key) => { + this.drawerParent.setAttribute(key, appState.options.display[key]); + }); + this.drawerTrigger.onclick = () => this.toggleDrawerState(); + this.eventsList.forEach((event) => events.on(...event)); + } + get dataHeight() { + return parseFloat(this.drawerParent.getAttribute('data-height') || '0'); + } + set dataHeight(height) { + this.drawerParent.setAttribute('data-height', String(height)); + } + get dataExtraHeight() { + return parseFloat(this.drawerParent.getAttribute('data-height-extra') || '0'); + } + set dataExtraHeight(height) { + this.drawerParent.setAttribute('data-height-extra', String(this.dataExtraHeight + height)); + } + set dataExtraReset(height) { + this.drawerParent.setAttribute('data-height-extra', String(height)); + } + get maxHeightPixels() { + return String(this.dataHeight + this.dataExtraHeight) + 'px'; + } + get drawerState() { + return this.drawerParent.classList.contains('open') ? 'open' : 'closed'; + } + get childDrawerElements() { + if (this.childDrawers) + return this.childDrawers; + this.childDrawers = [...this.drawer.children] + .map((element) => { + if ('drawers' in element) + return element; + const nestedDrawer = [...element.children].find((childElement) => 'drawers' in childElement); + return nestedDrawer || undefined; + }) + .filter((element) => !!element); + return this.childDrawers; + } + get isRoot() { + return !this.parentDrawerElement; + } + get isBranch() { + return !!this.parentDrawerElement; + } + get isLeaf() { + return !this.childDrawerElements.length; + } + get flagCounts() { + return { + private: this.drawer.querySelectorAll(':scope > .private').length, + inherited: this.drawer.querySelectorAll(':scope > .inherited') + .length, + }; + } +} +YafElementDrawers.findParentDrawers = (child, parents = []) => { + const parent = child.parentElement; + if (parent && parent.isDrawer) + parents.push(parent); + if (parent) + return YafElementDrawers.findParentDrawers(parent, parents); + return parents; +}; +YafElementDrawers.hasClosedDrawers = (drawers) => { + return (drawers.length && + !!drawers.find((drawer) => drawer.drawers.drawerState === 'closed')); +}; +//# sourceMappingURL=YafElementDrawers.js.map \ No newline at end of file diff --git a/docs/v1.0.0-beta01/frontend/YafElementDrawers.js.map b/docs/v1.0.0-beta01/frontend/YafElementDrawers.js.map new file mode 100644 index 000000000..3f36b14f3 --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/YafElementDrawers.js.map @@ -0,0 +1 @@ +{"version":3,"file":"YafElementDrawers.js","sourceRoot":"","sources":["../../../src/frontend/YafElementDrawers.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/docs/v1.0.0-beta01/frontend/YafHTMLElement.d.ts b/docs/v1.0.0-beta01/frontend/YafHTMLElement.d.ts new file mode 100644 index 000000000..4ec3f0218 --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/YafHTMLElement.d.ts @@ -0,0 +1,19 @@ +/** + * A base class extension for all custom HTML WebComponents. + * + * It provides: + * - The often used `appendChildren` utility as a convenience to all Yaf components. + * - overrides the default `connectedCallback` with the purpose of providing a de-bouncer.\ + * For inexplicable reasons, some nested custom WebComponents get multiple connected signals. + */ +export default class YafHtmlElement> extends HTMLElement { + props: T; + appendChildren: (children: (HTMLElement | undefined)[] | undefined) => void; + private debounceCount; + /** + * The standard Web Component connect entry. + * + * This debounces or triggers the new `onConnect` trigger used in all ancestor Yaf theme components. + */ + connectedCallback(): void; +} diff --git a/docs/v1.0.0-beta01/frontend/YafHTMLElement.js b/docs/v1.0.0-beta01/frontend/YafHTMLElement.js new file mode 100644 index 000000000..54e5e7580 --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/YafHTMLElement.js @@ -0,0 +1,37 @@ +import { appendChildren } from './yafElement.js'; +/** + * A base class extension for all custom HTML WebComponents. + * + * It provides: + * - The often used `appendChildren` utility as a convenience to all Yaf components. + * - overrides the default `connectedCallback` with the purpose of providing a de-bouncer.\ + * For inexplicable reasons, some nested custom WebComponents get multiple connected signals. + */ +export default class YafHtmlElement extends HTMLElement { + constructor() { + super(...arguments); + this.appendChildren = appendChildren(this); + this.debounceCount = 0; + } + /** + * The standard Web Component connect entry. + * + * This debounces or triggers the new `onConnect` trigger used in all ancestor Yaf theme components. + */ + connectedCallback() { + if (this.debounceCount) { + /* + console.debug( + `${this.constructor.name} was debounced [${this.debounceCount}]` + ); + */ + this.debounceCount += 1; + return; + } + this.debounceCount += 1; + if ('onConnect' in this && typeof this.onConnect === 'function') { + this.onConnect(); + } + } +} +//# sourceMappingURL=YafHTMLElement.js.map \ No newline at end of file diff --git a/docs/v1.0.0-beta01/frontend/YafHTMLElement.js.map b/docs/v1.0.0-beta01/frontend/YafHTMLElement.js.map new file mode 100644 index 000000000..ade19d21d --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/YafHTMLElement.js.map @@ -0,0 +1 @@ +{"version":3,"file":"YafHTMLElement.js","sourceRoot":"","sources":["../../../src/frontend/YafHTMLElement.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEjD;;;;;;;GAOG;AACH,MAAM,CAAC,OAAO,OAAO,cAEnB,SAAQ,WAAW;IAFrB;;QAIC,mBAAc,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;QAC9B,kBAAa,GAAG,CAAC,CAAC;IAsB3B,CAAC;IApBA;;;;OAIG;IACH,iBAAiB;QAChB,IAAI,IAAI,CAAC,aAAa,EAAE;YACvB;;;;cAIE;YACF,IAAI,CAAC,aAAa,IAAI,CAAC,CAAC;YACxB,OAAO;SACP;QACD,IAAI,CAAC,aAAa,IAAI,CAAC,CAAC;QACxB,IAAI,WAAW,IAAI,IAAI,IAAI,OAAO,IAAI,CAAC,SAAS,KAAK,UAAU,EAAE;YAChE,IAAI,CAAC,SAAS,EAAE,CAAC;SACjB;IACF,CAAC;CACD"} \ No newline at end of file diff --git a/docs/v1.0.0-beta01/frontend/handlers/AppState.d.ts b/docs/v1.0.0-beta01/frontend/handlers/AppState.d.ts new file mode 100644 index 000000000..6e641c166 --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/handlers/AppState.d.ts @@ -0,0 +1,45 @@ +import { yafDisplayOptions } from '../../types/frontendTypes.js'; +import { reflectionMap, kindSymbols, treeMenuRoot, YAFDataObject, needsParenthesis } from '../../types/types.js'; +/** + * + */ +export declare class AppState { + private state; + private static defaultDataDir; + private static defaultOptions; + constructor(); + initCache(): Promise; + get reflectionMap(): reflectionMap; + get reflectionKind(): typeof import("typedoc").ReflectionKind; + get kindSymbols(): kindSymbols; + get needsParenthesis(): needsParenthesis; + get navigationMenu(): treeMenuRoot; + get options(): { + display: { + inherited: import("../../types/frontendTypes.js").displayStates; + private: import("../../types/frontendTypes.js").displayStates; + }; + }; + get openDrawers(): { + [key: string]: import("../../types/frontendTypes.js").drawerState; + }; + get scrollTops(): { + [key: string]: number; + }; + set openDrawer(id: string); + set closeDrawer(id: string); + get callTypes(): number[]; + get projectName(): string; + toggleDisplayOption: (flag: yafDisplayOptions) => "show" | "hide"; + setScrollTop: (id: string, position: number) => number; + getPageData: (fileName: string) => Promise; + getBreadcrumb: (id: number, crumbArray?: number[]) => number[] | undefined; + private flushStateCache; + private static fetchDataFromFile; + private static fetchFile; + private static getLocalStorageItem; + private static saveToLocalStorage; + private static deepFreeze; +} +declare const appState: AppState; +export default appState; diff --git a/docs/v1.0.0-beta01/frontend/handlers/AppState.js b/docs/v1.0.0-beta01/frontend/handlers/AppState.js new file mode 100644 index 000000000..3e777fea1 --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/handlers/AppState.js @@ -0,0 +1,181 @@ +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var _a; +import ErrorHandlers from './ErrorHandlers.js'; +/** + * + */ +export class AppState { + constructor() { + this.toggleDisplayOption = (flag) => { + const displayState = this.options.display[flag]; + const newDisplayState = displayState === 'show' ? 'hide' : 'show'; + this.state.options.display[flag] = newDisplayState; + return newDisplayState; + }; + this.setScrollTop = (id, position) => (this.state.scrollTop[id] = position); + this.getPageData = (fileName) => this.state.pageData[fileName] + ? Promise.resolve(this.state.pageData[fileName]) + : AppState.fetchDataFromFile(fileName).then((data) => { + this.state.pageData[fileName] = + AppState.deepFreeze(data); + return this.state.pageData[fileName]; + }); + this.getBreadcrumb = (id, crumbArray = []) => { + crumbArray.unshift(id); + const link = this.reflectionMap[id]; + if (!link) + return undefined; + if (link.parentId) + return this.getBreadcrumb(link.parentId, crumbArray); + return crumbArray; + }; + this.flushStateCache = () => { + localStorage.clear(); + this.initCache().then(() => AppState.saveToLocalStorage(this.state)); + }; + window.addEventListener('beforeunload', () => AppState.saveToLocalStorage(this.state)); + window.yaf = { flushStateCache: this.flushStateCache }; + } + initCache() { + return __awaiter(this, void 0, void 0, function* () { + const { deepFreeze } = AppState; + const Promises = [ + AppState.fetchDataFromFile('yafReflectionMap'), + AppState.fetchDataFromFile('yafReflectionKind'), + AppState.fetchDataFromFile('yafKindSymbols'), + AppState.fetchDataFromFile('yafNavigationMenu'), + AppState.fetchDataFromFile('yafNeedsParenthesis'), + ]; + try { + const [reflectionMap, relectionKind, kindSymbols, navigationMenu, needsParenthesis,] = yield Promise.all(Promises); + this.state = { + pageData: {}, + reflectionMap: deepFreeze(reflectionMap), + reflectionKind: deepFreeze(relectionKind), + kindSymbols: deepFreeze(kindSymbols), + needsParenthesis: deepFreeze(needsParenthesis), + navigationMenu: deepFreeze(navigationMenu), + drawers: AppState.getLocalStorageItem('drawers') || {}, + scrollTop: AppState.getLocalStorageItem('scrollTop') || {}, + options: { + display: AppState.getLocalStorageItem('displayOptions') || + AppState.defaultOptions.display, + }, + }; + Object.freeze(this.state); + } + catch (err) { + ErrorHandlers.data(err); + } + }); + } + get reflectionMap() { + return this.state.reflectionMap; + } + get reflectionKind() { + return this.state.reflectionKind; + } + get kindSymbols() { + return this.state.kindSymbols; + } + get needsParenthesis() { + return this.state.needsParenthesis; + } + get navigationMenu() { + return this.state.navigationMenu; + } + get options() { + return this.state.options; + } + get openDrawers() { + return this.state.drawers; + } + get scrollTops() { + return this.state.scrollTop; + } + set openDrawer(id) { + this.state.drawers[id] = 'open'; + } + set closeDrawer(id) { + delete this.state.drawers[id]; + } + get callTypes() { + return [ + this.reflectionKind.CallSignature, + this.reflectionKind.ConstructorSignature, + this.reflectionKind.Function, + this.reflectionKind.FunctionOrMethod, + this.reflectionKind.GetSignature, + this.reflectionKind.Method, + this.reflectionKind.SetSignature, + ]; + } + get projectName() { + var _b; + return (_b = this.reflectionMap['project']) === null || _b === void 0 ? void 0 : _b.name; + } +} +_a = AppState; +AppState.defaultDataDir = './data/'; +AppState.defaultOptions = { + display: { + inherited: 'hide', + private: 'hide', + }, +}; +AppState.fetchDataFromFile = (fileName) => __awaiter(void 0, void 0, void 0, function* () { + fileName = fileName.replace(/.JSON$/i, '.json'); + fileName = fileName.endsWith('.json') ? fileName : `${fileName}.json`; + const filePath = `${AppState.defaultDataDir}${fileName}`; + const data = yield AppState.fetchFile(filePath, 'json'); + return data; +}); +AppState.fetchFile = (filePath, type) => new Promise((resolve, reject) => { + return fetch(filePath).then((stream) => { + if (stream.ok) { + resolve(stream[type]()); + } + else { + reject(new Error(`${stream.statusText}: ${filePath}`)); + } + }); +}); +AppState.getLocalStorageItem = (key) => { + try { + const stringData = localStorage.getItem(key); + const data = stringData ? JSON.parse(stringData) : undefined; + return data; + } + catch (err) { + ErrorHandlers.localStorage(key); + } +}; +AppState.saveToLocalStorage = (state) => { + localStorage.setItem('drawers', JSON.stringify(state.drawers)); + localStorage.setItem('scrollTop', JSON.stringify(state.scrollTop)); + localStorage.setItem('displayOptions', JSON.stringify(state.options.display)); +}; +AppState.deepFreeze = (property) => { + if (!property || typeof property !== 'object') + return property; + if (!Object.isFrozen(property)) + Object.freeze(property); + if (Array.isArray(property)) { + property.forEach((child) => _a.deepFreeze(child)); + } + else { + Object.values(property).forEach((child) => _a.deepFreeze(child)); + } + return property; +}; +const appState = new AppState(); +export default appState; +//# sourceMappingURL=AppState.js.map \ No newline at end of file diff --git a/docs/v1.0.0-beta01/frontend/handlers/AppState.js.map b/docs/v1.0.0-beta01/frontend/handlers/AppState.js.map new file mode 100644 index 000000000..0b03e4197 --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/handlers/AppState.js.map @@ -0,0 +1 @@ +{"version":3,"file":"AppState.js","sourceRoot":"","sources":["../../../../src/frontend/handlers/AppState.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/docs/v1.0.0-beta01/frontend/handlers/ErrorHandlers.d.ts b/docs/v1.0.0-beta01/frontend/handlers/ErrorHandlers.d.ts new file mode 100644 index 000000000..dadc5ac28 --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/handlers/ErrorHandlers.d.ts @@ -0,0 +1,8 @@ +import { localStorageKey } from '../../types/frontendTypes.js'; +import { htmlString } from '../../types/types.js'; +export default class ErrorHandlers { + static template: (err: unknown) => htmlString; + static data: (err: unknown) => unknown; + static notFound: (message: string) => never; + static localStorage: (key: localStorageKey) => void; +} diff --git a/docs/v1.0.0-beta01/frontend/handlers/ErrorHandlers.js b/docs/v1.0.0-beta01/frontend/handlers/ErrorHandlers.js new file mode 100644 index 000000000..ea98243a3 --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/handlers/ErrorHandlers.js @@ -0,0 +1,15 @@ +export default class ErrorHandlers { +} +ErrorHandlers.template = (err) => `${err.message}`; +ErrorHandlers.data = (err) => { + console.error(err); + return err; +}; +ErrorHandlers.notFound = (message) => { + throw Error(message); +}; +ErrorHandlers.localStorage = (key) => { + console.error(`There was a problem with "localStorage.${key}. It is being removed.`); + window.localStorage.removeItem('key'); +}; +//# sourceMappingURL=ErrorHandlers.js.map \ No newline at end of file diff --git a/docs/v1.0.0-beta01/frontend/handlers/ErrorHandlers.js.map b/docs/v1.0.0-beta01/frontend/handlers/ErrorHandlers.js.map new file mode 100644 index 000000000..8e7ac6ea1 --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/handlers/ErrorHandlers.js.map @@ -0,0 +1 @@ +{"version":3,"file":"ErrorHandlers.js","sourceRoot":"","sources":["../../../../src/frontend/handlers/ErrorHandlers.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,OAAO,OAAO,aAAa;;AAC1B,sBAAQ,GAAG,CAAC,GAAY,EAAc,EAAE,CAC9C,cAAoC,GAAI,CAAC,OAAO,cAAc,CAAC;AAEzD,kBAAI,GAAG,CAAC,GAAY,EAAE,EAAE;IAC9B,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACnB,OAAO,GAAG,CAAC;AACZ,CAAC,CAAC;AAEK,sBAAQ,GAAG,CAAC,OAAe,EAAE,EAAE;IACrC,MAAM,KAAK,CAAC,OAAO,CAAC,CAAC;AACtB,CAAC,CAAC;AAEK,0BAAY,GAAG,CAAC,GAAoB,EAAE,EAAE;IAC9C,OAAO,CAAC,KAAK,CACZ,0CAA0C,GAAG,wBAAwB,CACrE,CAAC;IACF,MAAM,CAAC,YAAY,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;AACvC,CAAC,CAAC"} \ No newline at end of file diff --git a/docs/v1.0.0-beta01/frontend/handlers/Router.d.ts b/docs/v1.0.0-beta01/frontend/handlers/Router.d.ts new file mode 100644 index 000000000..646bdbccb --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/handlers/Router.d.ts @@ -0,0 +1,9 @@ +import { clickEvent } from '../../types/frontendTypes.js'; +import { YafNavigationLink } from '../webComponents/Navigation/index.js'; +export default class Router { + static baseUrl: string; + static route: (link: YafNavigationLink, e: clickEvent) => void; + static getTargetURL: (link: YafNavigationLink) => URL; + private static getHrefWithoutHash; + private static getHash; +} diff --git a/docs/v1.0.0-beta01/frontend/handlers/Router.js b/docs/v1.0.0-beta01/frontend/handlers/Router.js new file mode 100644 index 000000000..b6fc5a618 --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/handlers/Router.js @@ -0,0 +1,44 @@ +var _a; +import { events } from './index.js'; +const { action } = events; +export default class Router { +} +_a = Router; +Router.baseUrl = `${window.location.origin}${window.location.pathname}`; +Router.route = (link, e) => { + const href = link.getAttribute('href'); + const hrefOrigin = href ? href.split('?')[0] : href; + const target = link.getAttribute('target') || undefined; + const isExternalLink = !href || + target === '_blank' || + (hrefOrigin && !window.location.href.startsWith(hrefOrigin)) || + e.ctrlKey; + if (isExternalLink) + return; + e.preventDefault(); + const linkIsOnCurrentPage = Router.getHrefWithoutHash(window.location.href) === + Router.getHrefWithoutHash(href); + if (linkIsOnCurrentPage) { + const hash = _a.getHash(href); + events.dispatch(action.content.scrollTo(hash)); + if (hash) { + history.pushState('', '', `#${hash}`); + } + else { + history.pushState({ path: href }, '', href); + } + } + else { + history.pushState({ path: href }, '', href); + events.dispatch(action.content.setLocation()); + } +}; +Router.getTargetURL = (link) => new URL(link.getAttribute('href') || '', _a.baseUrl); +Router.getHrefWithoutHash = (href) => href ? href.split('#')[0] : href; +Router.getHash = (href) => { + if (!href) + return 0; + const hash = href.split('#')[1]; + return hash || 0; +}; +//# sourceMappingURL=Router.js.map \ No newline at end of file diff --git a/docs/v1.0.0-beta01/frontend/handlers/Router.js.map b/docs/v1.0.0-beta01/frontend/handlers/Router.js.map new file mode 100644 index 000000000..ed9bc359e --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/handlers/Router.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Router.js","sourceRoot":"","sources":["../../../../src/frontend/handlers/Router.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAEpC,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;AAE1B,MAAM,CAAC,OAAO,OAAO,MAAM;;;AACnB,cAAO,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;AAEjE,YAAK,GAAG,CAAC,IAAuB,EAAE,CAAa,EAAE,EAAE;IACzD,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;IACvC,MAAM,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACpD,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,SAAS,CAAC;IAExD,MAAM,cAAc,GACnB,CAAC,IAAI;QACL,MAAM,KAAK,QAAQ;QACnB,CAAC,UAAU,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QAC5D,CAAC,CAAC,OAAO,CAAC;IAEX,IAAI,cAAc;QAAE,OAAO;IAC3B,CAAC,CAAC,cAAc,EAAE,CAAC;IAEnB,MAAM,mBAAmB,GACxB,MAAM,CAAC,kBAAkB,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;QAC/C,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;IACjC,IAAI,mBAAmB,EAAE;QACxB,MAAM,IAAI,GAAG,EAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAChC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;QAC/C,IAAI,IAAI,EAAE;YACT,OAAO,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;SACtC;aAAM;YACN,OAAO,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;SAC5C;KACD;SAAM;QACN,OAAO,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;QAC5C,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;KAC9C;AACF,CAAC,CAAC;AAEK,mBAAY,GAAG,CAAC,IAAuB,EAAE,EAAE,CACjD,IAAI,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,EAAI,CAAC,OAAO,CAAC,CAAC;AAEzC,yBAAkB,GAAG,CAAC,IAAmB,EAAE,EAAE,CAC3D,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAEnB,cAAO,GAAG,CAAC,IAAmB,EAAE,EAAE;IAChD,IAAI,CAAC,IAAI;QAAE,OAAO,CAAC,CAAC;IACpB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAChC,OAAO,IAAI,IAAI,CAAC,CAAC;AAClB,CAAC,CAAC"} \ No newline at end of file diff --git a/docs/v1.0.0-beta01/frontend/handlers/events/Events.d.ts b/docs/v1.0.0-beta01/frontend/handlers/events/Events.d.ts new file mode 100644 index 000000000..2e38ebdf0 --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/handlers/events/Events.d.ts @@ -0,0 +1,56 @@ +import * as actions from './index.js'; +export declare class Events { + trigger: { + content: { + setLocation: string; + scrollTo: string; + scrollTop: string; + getPageId: string; + breadcrumb: string; + }; + menu: { + rollMenuDown: string; + rollMenuUp: string; + scrollTo: string; + toggle: string; + search: string; + }; + drawers: { + resetHeight: string; + }; + options: { + display: string; + }; + }; + action: { + content: { + setLocation: () => Event; + scrollTo: (target: string | number) => CustomEvent; + scrollTop: (scrollTop: number) => CustomEvent; + getPageId: (callBack: (pageId: number) => void) => CustomEvent; + breadcrumb: (id: number) => CustomEvent; + }; + menu: { + rollMenuDown: () => Event; + rollMenuUp: () => Event; + scrollTo: (target: string | number) => CustomEvent; + toggle: (state?: "open" | "close" | undefined) => CustomEvent; + search: (searchString: string) => CustomEvent; + }; + drawers: { + resetHeight: () => Event; + }; + options: { + display: (key: "private" | "inherited", value: "show" | "hide") => CustomEvent<{ + key: "private" | "inherited"; + value: "show" | "hide"; + }>; + }; + }; + dispatch: (action: CustomEvent | Event, element?: HTMLElement) => boolean; + on: (trigger: string, callBack: unknown, element?: HTMLElement | Window) => void; + off: (trigger: string, callBack: unknown, element?: HTMLElement | Window) => void; + private static body; +} +declare const events: Events; +export default events; diff --git a/docs/v1.0.0-beta01/frontend/handlers/events/Events.js b/docs/v1.0.0-beta01/frontend/handlers/events/Events.js new file mode 100644 index 000000000..78c5e2ab0 --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/handlers/events/Events.js @@ -0,0 +1,40 @@ +import * as actions from './index.js'; +import { trigger } from './triggers.js'; +export class Events { + constructor() { + this.trigger = trigger; + this.action = { + content: { + setLocation: actions.content.setLocation, + scrollTo: actions.scrollTo.bind(null, 'content'), + scrollTop: actions.content.scrollTop, + getPageId: actions.content.getPageId, + breadcrumb: actions.content.breadcrumb, + }, + menu: { + rollMenuDown: actions.menu.rollMenuDown, + rollMenuUp: actions.menu.rollMenuUp, + scrollTo: actions.scrollTo.bind(null, 'menu'), + toggle: actions.menu.toggle, + search: actions.menu.search, + }, + drawers: { + resetHeight: actions.drawers.resetDrawerHeight, + }, + options: { + display: actions.options.display, + }, + }; + this.dispatch = (action, element = Events.body) => element.dispatchEvent(action); + this.on = (trigger, callBack, element = Events.body) => { + element.addEventListener(trigger, callBack); + }; + this.off = (trigger, callBack, element = Events.body) => { + element.removeEventListener(trigger, callBack); + }; + } +} +Events.body = document.querySelector('body'); +const events = new Events(); +export default events; +//# sourceMappingURL=Events.js.map \ No newline at end of file diff --git a/docs/v1.0.0-beta01/frontend/handlers/events/Events.js.map b/docs/v1.0.0-beta01/frontend/handlers/events/Events.js.map new file mode 100644 index 000000000..c8cdc23b1 --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/handlers/events/Events.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Events.js","sourceRoot":"","sources":["../../../../../src/frontend/handlers/events/Events.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAExC,MAAM,OAAO,MAAM;IAAnB;QACC,YAAO,GAAG,OAAO,CAAC;QAClB,WAAM,GAAG;YACR,OAAO,EAAE;gBACR,WAAW,EAAE,OAAO,CAAC,OAAO,CAAC,WAAW;gBACxC,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC;gBAChD,SAAS,EAAE,OAAO,CAAC,OAAO,CAAC,SAAS;gBACpC,SAAS,EAAE,OAAO,CAAC,OAAO,CAAC,SAAS;gBACpC,UAAU,EAAE,OAAO,CAAC,OAAO,CAAC,UAAU;aACtC;YACD,IAAI,EAAE;gBACL,YAAY,EAAE,OAAO,CAAC,IAAI,CAAC,YAAY;gBACvC,UAAU,EAAE,OAAO,CAAC,IAAI,CAAC,UAAU;gBACnC,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC;gBAC7C,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,MAAM;gBAC3B,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,MAAM;aAC3B;YACD,OAAO,EAAE;gBACR,WAAW,EAAE,OAAO,CAAC,OAAO,CAAC,iBAAiB;aAC9C;YACD,OAAO,EAAE;gBACR,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,OAAO;aAChC;SACD,CAAC;QACF,aAAQ,GAAG,CACV,MAA2B,EAC3B,UAAuB,MAAM,CAAC,IAAI,EACjC,EAAE,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QACnC,OAAE,GAAG,CACJ,OAAe,EACf,QAAiB,EACjB,UAAgC,MAAM,CAAC,IAAI,EAC1C,EAAE;YACH,OAAO,CAAC,gBAAgB,CAAC,OAAO,EAAE,QAAyB,CAAC,CAAC;QAC9D,CAAC,CAAC;QACF,QAAG,GAAG,CACL,OAAe,EACf,QAAiB,EACjB,UAAgC,MAAM,CAAC,IAAI,EAC1C,EAAE;YACH,OAAO,CAAC,mBAAmB,CAAC,OAAO,EAAE,QAAyB,CAAC,CAAC;QACjE,CAAC,CAAC;IAGH,CAAC;;AADe,WAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAoB,CAAC;AAGzE,MAAM,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;AAC5B,eAAe,MAAM,CAAC"} \ No newline at end of file diff --git a/docs/v1.0.0-beta01/frontend/handlers/events/actionsContent.d.ts b/docs/v1.0.0-beta01/frontend/handlers/events/actionsContent.d.ts new file mode 100644 index 000000000..a00d624b2 --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/handlers/events/actionsContent.d.ts @@ -0,0 +1,26 @@ +import { scrollTo } from './index.js'; +/** + * Notifies that the URL location for content has changed + * + * The actual value is later taken from the browser location, this is purely a trigger. + * @returns + */ +export declare const setLocation: () => Event; +export type scrollTop = { + scrollTop: number; +}; +export declare const scrollTop: (scrollTop: number) => CustomEvent; +export type getPageId = { + callBack: (pageId: number) => void; +}; +export declare const getPageId: (callBack: getPageId['callBack']) => CustomEvent; +export type breadcrumb = { + id: number; +}; +export declare const breadcrumb: (id: breadcrumb['id']) => CustomEvent; +export interface content { + scrollTo: scrollTo; + scrollTop: scrollTop; + getPageId: getPageId; + breadcrumb: breadcrumb; +} diff --git a/docs/v1.0.0-beta01/frontend/handlers/events/actionsContent.js b/docs/v1.0.0-beta01/frontend/handlers/events/actionsContent.js new file mode 100644 index 000000000..e7a53fc3f --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/handlers/events/actionsContent.js @@ -0,0 +1,16 @@ +import { trigger } from './triggers.js'; +/** + * Notifies that the URL location for content has changed + * + * The actual value is later taken from the browser location, this is purely a trigger. + * @returns + */ +export const setLocation = () => new Event(trigger.content.setLocation); +export const scrollTop = (scrollTop) => new CustomEvent(trigger.content.scrollTop, { + detail: { scrollTop }, +}); +export const getPageId = (callBack) => new CustomEvent(trigger.content.getPageId, { + detail: { callBack }, +}); +export const breadcrumb = (id) => new CustomEvent(trigger.content.breadcrumb, { detail: { id } }); +//# sourceMappingURL=actionsContent.js.map \ No newline at end of file diff --git a/docs/v1.0.0-beta01/frontend/handlers/events/actionsContent.js.map b/docs/v1.0.0-beta01/frontend/handlers/events/actionsContent.js.map new file mode 100644 index 000000000..3fe98c89c --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/handlers/events/actionsContent.js.map @@ -0,0 +1 @@ +{"version":3,"file":"actionsContent.js","sourceRoot":"","sources":["../../../../../src/frontend/handlers/events/actionsContent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAExC;;;;;GAKG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,GAAG,EAAE,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;AAGxE,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,SAAiC,EAAE,EAAE,CAC9D,IAAI,WAAW,CAAY,OAAO,CAAC,OAAO,CAAC,SAAS,EAAE;IACrD,MAAM,EAAE,EAAE,SAAS,EAAE;CACrB,CAAC,CAAC;AAGJ,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,QAA+B,EAAE,EAAE,CAC5D,IAAI,WAAW,CAAY,OAAO,CAAC,OAAO,CAAC,SAAS,EAAE;IACrD,MAAM,EAAE,EAAE,QAAQ,EAAE;CACpB,CAAC,CAAC;AAGJ,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,EAAoB,EAAE,EAAE,CAClD,IAAI,WAAW,CAAa,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC"} \ No newline at end of file diff --git a/docs/v1.0.0-beta01/frontend/handlers/events/actionsDrawers.d.ts b/docs/v1.0.0-beta01/frontend/handlers/events/actionsDrawers.d.ts new file mode 100644 index 000000000..df1318bda --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/handlers/events/actionsDrawers.d.ts @@ -0,0 +1,4 @@ +export declare const resetDrawerHeight: () => Event; +export interface drawers { + resetDrawerHeight: null; +} diff --git a/docs/v1.0.0-beta01/frontend/handlers/events/actionsDrawers.js b/docs/v1.0.0-beta01/frontend/handlers/events/actionsDrawers.js new file mode 100644 index 000000000..8767b9be9 --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/handlers/events/actionsDrawers.js @@ -0,0 +1,3 @@ +import { trigger } from './triggers.js'; +export const resetDrawerHeight = () => new Event(trigger.drawers.resetHeight); +//# sourceMappingURL=actionsDrawers.js.map \ No newline at end of file diff --git a/docs/v1.0.0-beta01/frontend/handlers/events/actionsDrawers.js.map b/docs/v1.0.0-beta01/frontend/handlers/events/actionsDrawers.js.map new file mode 100644 index 000000000..6d7db398f --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/handlers/events/actionsDrawers.js.map @@ -0,0 +1 @@ +{"version":3,"file":"actionsDrawers.js","sourceRoot":"","sources":["../../../../../src/frontend/handlers/events/actionsDrawers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAExC,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAG,EAAE,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC"} \ No newline at end of file diff --git a/docs/v1.0.0-beta01/frontend/handlers/events/actionsMenu.d.ts b/docs/v1.0.0-beta01/frontend/handlers/events/actionsMenu.d.ts new file mode 100644 index 000000000..f22a9b306 --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/handlers/events/actionsMenu.d.ts @@ -0,0 +1,30 @@ +import { scrollTo } from './index.js'; +export declare const rollMenuDown: () => Event; +export declare const rollMenuUp: () => Event; +export type toggle = { + state?: 'open' | 'close'; +}; +export declare const toggle: (state?: toggle['state']) => CustomEvent; +export type search = { + searchString: string; +}; +export declare const search: (searchString: search['searchString']) => CustomEvent; +export interface menu { + /** + * Scrolls the main navigation menu to the given id. + */ + scrollTo: scrollTo; + /** + * Expands all drawers of the main navigation menu + */ + rollMenuDown: null; + /** + * Contracts all drawers of the main navigation menu + */ + rollMenuUp: null; + /** + * Toggle the open/close state of the main navigation menu in mobile views + */ + toggle: toggle; + search: search; +} diff --git a/docs/v1.0.0-beta01/frontend/handlers/events/actionsMenu.js b/docs/v1.0.0-beta01/frontend/handlers/events/actionsMenu.js new file mode 100644 index 000000000..d8c84557f --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/handlers/events/actionsMenu.js @@ -0,0 +1,8 @@ +import { trigger } from './triggers.js'; +export const rollMenuDown = () => new Event(trigger.menu.rollMenuDown); +export const rollMenuUp = () => new Event(trigger.menu.rollMenuUp); +export const toggle = (state) => new CustomEvent(trigger.menu.toggle, { + detail: { state }, +}); +export const search = (searchString) => new CustomEvent(trigger.menu.search, { detail: { searchString } }); +//# sourceMappingURL=actionsMenu.js.map \ No newline at end of file diff --git a/docs/v1.0.0-beta01/frontend/handlers/events/actionsMenu.js.map b/docs/v1.0.0-beta01/frontend/handlers/events/actionsMenu.js.map new file mode 100644 index 000000000..eb91ea517 --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/handlers/events/actionsMenu.js.map @@ -0,0 +1 @@ +{"version":3,"file":"actionsMenu.js","sourceRoot":"","sources":["../../../../../src/frontend/handlers/events/actionsMenu.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAExC,MAAM,CAAC,MAAM,YAAY,GAAG,GAAG,EAAE,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AACvE,MAAM,CAAC,MAAM,UAAU,GAAG,GAAG,EAAE,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AAInE,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,KAAuB,EAAE,EAAE,CACjD,IAAI,WAAW,CAAS,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE;IAC5C,MAAM,EAAE,EAAE,KAAK,EAAE;CACjB,CAAC,CAAC;AAGJ,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,YAAoC,EAAE,EAAE,CAC9D,IAAI,WAAW,CAAS,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,EAAE,YAAY,EAAE,EAAE,CAAC,CAAC"} \ No newline at end of file diff --git a/docs/v1.0.0-beta01/frontend/handlers/events/actionsOptions.d.ts b/docs/v1.0.0-beta01/frontend/handlers/events/actionsOptions.d.ts new file mode 100644 index 000000000..d5a48d688 --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/handlers/events/actionsOptions.d.ts @@ -0,0 +1,10 @@ +import { yafDisplayOptions } from '../../../types/frontendTypes.js'; +type display = { + key: yafDisplayOptions; + value: 'show' | 'hide'; +}; +export declare const display: (key: display['key'], value: display['value']) => CustomEvent; +export interface options { + display: display; +} +export {}; diff --git a/docs/v1.0.0-beta01/frontend/handlers/events/actionsOptions.js b/docs/v1.0.0-beta01/frontend/handlers/events/actionsOptions.js new file mode 100644 index 000000000..ce0d2a300 --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/handlers/events/actionsOptions.js @@ -0,0 +1,5 @@ +import { trigger } from './triggers.js'; +export const display = (key, value) => new CustomEvent(trigger.options.display, { + detail: { key, value }, +}); +//# sourceMappingURL=actionsOptions.js.map \ No newline at end of file diff --git a/docs/v1.0.0-beta01/frontend/handlers/events/actionsOptions.js.map b/docs/v1.0.0-beta01/frontend/handlers/events/actionsOptions.js.map new file mode 100644 index 000000000..6f3914131 --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/handlers/events/actionsOptions.js.map @@ -0,0 +1 @@ +{"version":3,"file":"actionsOptions.js","sourceRoot":"","sources":["../../../../../src/frontend/handlers/events/actionsOptions.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAMxC,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,GAAmB,EAAE,KAAuB,EAAE,EAAE,CACvE,IAAI,WAAW,CAAU,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE;IACjD,MAAM,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE;CACtB,CAAC,CAAC"} \ No newline at end of file diff --git a/docs/v1.0.0-beta01/frontend/handlers/events/index.d.ts b/docs/v1.0.0-beta01/frontend/handlers/events/index.d.ts new file mode 100644 index 000000000..ee87c6257 --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/handlers/events/index.d.ts @@ -0,0 +1,14 @@ +export * as content from './actionsContent.js'; +export * as menu from './actionsMenu.js'; +export * as drawers from './actionsDrawers.js'; +export * as options from './actionsOptions.js'; +/** + * Notifies the content or menu DOM that it needs to scroll to the given location + * @param target + * @param context + * @returns + */ +export type scrollTo = { + target: number | string; +}; +export declare const scrollTo: (context: 'menu' | 'content', target: scrollTo['target']) => CustomEvent; diff --git a/docs/v1.0.0-beta01/frontend/handlers/events/index.js b/docs/v1.0.0-beta01/frontend/handlers/events/index.js new file mode 100644 index 000000000..dd6fcc214 --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/handlers/events/index.js @@ -0,0 +1,13 @@ +import { trigger } from './triggers.js'; +import * as content_1 from './actionsContent.js'; +export { content_1 as content }; +import * as menu_1 from './actionsMenu.js'; +export { menu_1 as menu }; +import * as drawers_1 from './actionsDrawers.js'; +export { drawers_1 as drawers }; +import * as options_1 from './actionsOptions.js'; +export { options_1 as options }; +export const scrollTo = (context, target) => new CustomEvent(trigger[context].scrollTo, { + detail: { target }, +}); +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/docs/v1.0.0-beta01/frontend/handlers/events/index.js.map b/docs/v1.0.0-beta01/frontend/handlers/events/index.js.map new file mode 100644 index 000000000..e0dbd4bf9 --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/handlers/events/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/frontend/handlers/events/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;2BAEf,qBAAqB;sBAAlC,OAAO;wBACG,kBAAkB;mBAA5B,IAAI;2BACS,qBAAqB;sBAAlC,OAAO;2BACM,qBAAqB;sBAAlC,OAAO;AASnB,MAAM,CAAC,MAAM,QAAQ,GAAG,CACvB,OAA2B,EAC3B,MAA0B,EACzB,EAAE,CACH,IAAI,WAAW,CAAW,OAAO,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE;IACpD,MAAM,EAAE,EAAE,MAAM,EAAE;CAClB,CAAC,CAAC"} \ No newline at end of file diff --git a/docs/v1.0.0-beta01/frontend/handlers/events/triggers.d.ts b/docs/v1.0.0-beta01/frontend/handlers/events/triggers.d.ts new file mode 100644 index 000000000..15c1ce9a6 --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/handlers/events/triggers.d.ts @@ -0,0 +1,22 @@ +export declare const trigger: { + content: { + setLocation: string; + scrollTo: string; + scrollTop: string; + getPageId: string; + breadcrumb: string; + }; + menu: { + rollMenuDown: string; + rollMenuUp: string; + scrollTo: string; + toggle: string; + search: string; + }; + drawers: { + resetHeight: string; + }; + options: { + display: string; + }; +}; diff --git a/docs/v1.0.0-beta01/frontend/handlers/events/triggers.js b/docs/v1.0.0-beta01/frontend/handlers/events/triggers.js new file mode 100644 index 000000000..494e10213 --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/handlers/events/triggers.js @@ -0,0 +1,23 @@ +export const trigger = { + content: { + setLocation: 'yaf.content.setLocation', + scrollTo: 'yaf.content.scrollTo', + scrollTop: 'yaf.content.scrollTop', + getPageId: 'yaf.content.getPageId', + breadcrumb: 'yaf.content.breadcrumb', + }, + menu: { + rollMenuDown: 'yaf.menu.rollMenuDown', + rollMenuUp: 'yaf.menu.rollMenuUp', + scrollTo: 'yaf.menu.scrollTo', + toggle: 'yaf.menu.toggle', + search: 'yaf.menu.search', + }, + drawers: { + resetHeight: 'yaf.drawer.resetHeight', + }, + options: { + display: 'yaf.options.display', + }, +}; +//# sourceMappingURL=triggers.js.map \ No newline at end of file diff --git a/docs/v1.0.0-beta01/frontend/handlers/events/triggers.js.map b/docs/v1.0.0-beta01/frontend/handlers/events/triggers.js.map new file mode 100644 index 000000000..ff1e5c451 --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/handlers/events/triggers.js.map @@ -0,0 +1 @@ +{"version":3,"file":"triggers.js","sourceRoot":"","sources":["../../../../../src/frontend/handlers/events/triggers.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,OAAO,GAAG;IACtB,OAAO,EAAE;QACR,WAAW,EAAE,yBAAyB;QACtC,QAAQ,EAAE,sBAAsB;QAChC,SAAS,EAAE,uBAAuB;QAClC,SAAS,EAAE,uBAAuB;QAClC,UAAU,EAAE,wBAAwB;KACpC;IACD,IAAI,EAAE;QACL,YAAY,EAAE,uBAAuB;QACrC,UAAU,EAAE,qBAAqB;QACjC,QAAQ,EAAE,mBAAmB;QAC7B,MAAM,EAAE,iBAAiB;QACzB,MAAM,EAAE,iBAAiB;KACzB;IACD,OAAO,EAAE;QACR,WAAW,EAAE,wBAAwB;KACrC;IACD,OAAO,EAAE;QACR,OAAO,EAAE,qBAAqB;KAC9B;CACD,CAAC"} \ No newline at end of file diff --git a/docs/v1.0.0-beta01/frontend/handlers/index.d.ts b/docs/v1.0.0-beta01/frontend/handlers/index.d.ts new file mode 100644 index 000000000..f9ea87146 --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/handlers/index.d.ts @@ -0,0 +1,14 @@ +export { default as events, Events } from './events/Events.js'; +export { default as Router } from './Router.js'; +export { default as appState, AppState } from './AppState.js'; +export { default as ErrorHandlers } from './ErrorHandlers.js'; +import { content } from './events/actionsContent.js'; +import { drawers } from './events/actionsDrawers.js'; +import { menu } from './events/actionsMenu.js'; +import { options } from './events/actionsOptions.js'; +export interface action { + content: content; + drawers: drawers; + menu: menu; + options: options; +} diff --git a/docs/v1.0.0-beta01/frontend/handlers/index.js b/docs/v1.0.0-beta01/frontend/handlers/index.js new file mode 100644 index 000000000..1d8a4985e --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/handlers/index.js @@ -0,0 +1,5 @@ +export { default as events, Events } from './events/Events.js'; +export { default as Router } from './Router.js'; +export { default as appState, AppState } from './AppState.js'; +export { default as ErrorHandlers } from './ErrorHandlers.js'; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/docs/v1.0.0-beta01/frontend/handlers/index.js.map b/docs/v1.0.0-beta01/frontend/handlers/index.js.map new file mode 100644 index 000000000..3580c89cd --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/handlers/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/frontend/handlers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,oBAAoB,CAAC"} \ No newline at end of file diff --git a/docs/v1.0.0-beta01/frontend/index.d.ts b/docs/v1.0.0-beta01/frontend/index.d.ts new file mode 100644 index 000000000..e0d4bd566 --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/index.d.ts @@ -0,0 +1,34 @@ +/** + * `typedoc-theme-yaf` Is a data driven single page application (SPA).\ + * You are hopefully looking at it right now. + * + * This frontend is a zero dependency construct of native [Web Components](https://en.wikipedia.org/wiki/Web_Components), + * all being ancestors of {@link frontend.webComponents.TypedocThemeYaf}. + * + * Much of the frontend architecture is {@link frontend.handlers.Events event driven}. + * + * The {@link frontend.handlers.AppState application state} is generally immutable, and persisted across sessions using `localstorage`. + * + * @module frontend + */ +export { default as YafHTMLElement } from './YafHTMLElement.js'; +export * from './YafElementDrawers.js'; +/** + * A Yaf Theme factory for fetching, creating, manipulating, querying + * and appending HTML Elements and Text. + */ +export * as yafElement from './yafElement.js'; +/** + * Handler classes and libraries for state, routing, errors and events. + */ +export * as handlers from './handlers/index.js'; +/** + * Yaf Theme is an assembly of native HTML [Web Components](https://en.wikipedia.org/wiki/Web_Components). + * + * This library replicates (in principle) the semantics of the default TypeDoc theme backend templating into the frontend scope. + * It tries to be semantically as close as possible to the default, but does depart in some details and sometimes takes it own tangent... + * + * All data to feed the frontend component logic is {@link backend!YafTheme#saveYafThemeAssets | generated at document build time} as .json fragments + * (instead of the default theme HTML pages) and loaded into the browser as required. + */ +export * as webComponents from './webComponents/index.js'; diff --git a/docs/v1.0.0-beta01/frontend/index.js b/docs/v1.0.0-beta01/frontend/index.js new file mode 100644 index 000000000..8aa17c340 --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/index.js @@ -0,0 +1,22 @@ +/** + * `typedoc-theme-yaf` Is a data driven single page application (SPA).\ + * You are hopefully looking at it right now. + * + * This frontend is a zero dependency construct of native [Web Components](https://en.wikipedia.org/wiki/Web_Components), + * all being ancestors of {@link frontend.webComponents.TypedocThemeYaf}. + * + * Much of the frontend architecture is {@link frontend.handlers.Events event driven}. + * + * The {@link frontend.handlers.AppState application state} is generally immutable, and persisted across sessions using `localstorage`. + * + * @module frontend + */ +export { default as YafHTMLElement } from './YafHTMLElement.js'; +export * from './YafElementDrawers.js'; +import * as yafElement_1 from './yafElement.js'; +export { yafElement_1 as yafElement }; +import * as handlers_1 from './handlers/index.js'; +export { handlers_1 as handlers }; +import * as webComponents_1 from './webComponents/index.js'; +export { webComponents_1 as webComponents }; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/docs/v1.0.0-beta01/frontend/index.js.map b/docs/v1.0.0-beta01/frontend/index.js.map new file mode 100644 index 000000000..a6b453bda --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/frontend/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAChE,cAAc,wBAAwB,CAAC;8BAKX,iBAAiB;yBAAjC,UAAU;4BAII,qBAAqB;uBAAnC,QAAQ;iCAUW,0BAA0B;4BAA7C,aAAa"} \ No newline at end of file diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Chrome/YafChromeContent.d.ts b/docs/v1.0.0-beta01/frontend/webComponents/Chrome/YafChromeContent.d.ts new file mode 100644 index 000000000..2a12a2115 --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Chrome/YafChromeContent.d.ts @@ -0,0 +1,15 @@ +import { YafHTMLElement } from '../../index.js'; +/** + * **The app chrome wrapping around the main content portal.** + * + * This component deals primarily with opening drawers and scrolling to content.\ + * It reacts to location input events. + */ +export declare class YafChromeContent extends YafHTMLElement { + scrollTimer: ReturnType; + onConnect(): void; + disconnectedCallback(): void; + private focusContent; + private emitScroll; + private events; +} diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Chrome/YafChromeContent.js b/docs/v1.0.0-beta01/frontend/webComponents/Chrome/YafChromeContent.js new file mode 100644 index 000000000..f3249f63a --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Chrome/YafChromeContent.js @@ -0,0 +1,43 @@ +import { events } from '../../handlers/index.js'; +import { YafHTMLElement } from '../../index.js'; +import { getHtmlTemplate, scrollToAnchor } from '../../yafElement.js'; +const { action, trigger } = events; +/** + * **The app chrome wrapping around the main content portal.** + * + * This component deals primarily with opening drawers and scrolling to content.\ + * It reacts to location input events. + */ +export class YafChromeContent extends YafHTMLElement { + constructor() { + super(...arguments); + this.focusContent = ({ detail, }) => { + const { target } = detail; + isNaN(Number(target)) + ? scrollToAnchor(this, detail.target) + : (this.scrollTop = Number(target)); + events.dispatch(action.menu.toggle('close')); + }; + this.emitScroll = () => { + if (this.scrollTimer) + clearTimeout(this.scrollTimer); + this.scrollTimer = setTimeout(() => { + events.dispatch(action.content.scrollTop(this.scrollTop)); + }, 100); + }; + this.events = [ + [trigger.content.scrollTo, this.focusContent], + ['scroll', this.emitScroll, this], + ]; + } + onConnect() { + this.events.forEach((event) => events.on(...event)); + this.appendChild(getHtmlTemplate(yafChromeContent)); + } + disconnectedCallback() { + this.events.forEach((event) => events.off(...event)); + } +} +const yafChromeContent = 'yaf-chrome-content'; +customElements.define(yafChromeContent, YafChromeContent); +//# sourceMappingURL=YafChromeContent.js.map \ No newline at end of file diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Chrome/YafChromeContent.js.map b/docs/v1.0.0-beta01/frontend/webComponents/Chrome/YafChromeContent.js.map new file mode 100644 index 000000000..6aaa6b8fa --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Chrome/YafChromeContent.js.map @@ -0,0 +1 @@ +{"version":3,"file":"YafChromeContent.js","sourceRoot":"","sources":["../../../../../src/frontend/webComponents/Chrome/YafChromeContent.ts"],"names":[],"mappings":"AACA,OAAO,EAAoB,MAAM,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAEtE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC;AAEnC;;;;;GAKG;AACH,MAAM,OAAO,gBAAiB,SAAQ,cAAc;IAApD;;QAWS,iBAAY,GAAG,CAAC,EACvB,MAAM,GACsC,EAAE,EAAE;YAChD,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;YAE1B,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBACpB,CAAC,CAAC,cAAc,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC;gBACrC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;YAErC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;QAC9C,CAAC,CAAC;QAEM,eAAU,GAAG,GAAG,EAAE;YACzB,IAAI,IAAI,CAAC,WAAW;gBAAE,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACrD,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC,GAAG,EAAE;gBAClC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;YAC3D,CAAC,EAAE,GAAG,CAAC,CAAC;QACT,CAAC,CAAC;QACM,WAAM,GAAiB;YAC9B,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC;YAC7C,CAAC,QAAQ,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC;SACjC,CAAC;IACH,CAAC;IA/BA,SAAS;QACR,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;QACpD,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,gBAAgB,CAAC,CAAC,CAAC;IACrD,CAAC;IAED,oBAAoB;QACnB,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;IACtD,CAAC;CAwBD;AAED,MAAM,gBAAgB,GAAkB,oBAAoB,CAAC;AAC7D,cAAc,CAAC,MAAM,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,CAAC"} \ No newline at end of file diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Chrome/YafChromeHeader.d.ts b/docs/v1.0.0-beta01/frontend/webComponents/Chrome/YafChromeHeader.d.ts new file mode 100644 index 000000000..00c6ecd19 --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Chrome/YafChromeHeader.d.ts @@ -0,0 +1,16 @@ +import { yafEventList } from '../../../types/frontendTypes.js'; +import { YafHTMLElement } from '../../index.js'; +/** + * **The app chrome wrapping around the main content portal.** + * + * This component deals primarily with opening drawers and scrolling to content.\ + * It reacts to location input events. + */ +export declare class YafChromeHeader extends YafHTMLElement { + breadcrumbHTMLElement: HTMLElement; + onConnect(): HTMLElement | undefined; + disconnectedCallback(): void; + private toggleMenu; + private makeBreadcrumb; + eventsList: yafEventList; +} diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Chrome/YafChromeHeader.js b/docs/v1.0.0-beta01/frontend/webComponents/Chrome/YafChromeHeader.js new file mode 100644 index 000000000..b6adbc0a5 --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Chrome/YafChromeHeader.js @@ -0,0 +1,70 @@ +import { YafHTMLElement } from '../../index.js'; +import { events, appState } from '../../handlers/index.js'; +import { makeElement, makeIconSpan, makeLinkElement, } from '../../yafElement.js'; +const { trigger, action } = events; +/** + * **The app chrome wrapping around the main content portal.** + * + * This component deals primarily with opening drawers and scrolling to content.\ + * It reacts to location input events. + */ +export class YafChromeHeader extends YafHTMLElement { + constructor() { + super(...arguments); + this.toggleMenu = () => events.dispatch(action.menu.toggle()); + this.makeBreadcrumb = ({ detail, }) => { + const breadcrumbs = appState.getBreadcrumb(detail.id); + if (!breadcrumbs) + return this.breadcrumbHTMLElement.replaceChildren(); + const breadcrumbHTMLElements = breadcrumbs + .map((id, i) => { + const link = appState.reflectionMap[id]; + const linkHTMLElement = makeLinkElement(`?page=${link.query}`, undefined, link.name); + return i < breadcrumbs.length - 1 + ? [linkHTMLElement, makeElement('span', 'divider', '>')] + : linkHTMLElement; + }) + .flat(); + this.breadcrumbHTMLElement.replaceChildren(...breadcrumbHTMLElements); + }; + this.eventsList = [ + [trigger.content.breadcrumb, this.makeBreadcrumb], + ]; + } + onConnect() { + const context = this.getAttribute('context'); + this.eventsList.forEach((event) => events.on(...event)); + this.breadcrumbHTMLElement = makeElement('span', 'breadcrumb'); + if (context === 'desktop') { + return this.appendChild(this.breadcrumbHTMLElement); + } + const mobileHTMLElement = makeElement('span'); + const openMenuHTMLElement = makeIconSpan('menu', 36); + const closeMenHTMLElement = makeIconSpan('menu_open', 36); + const hamburgerHTMLElement = makeElement('span'); + const wrapperHTMLElement = makeElement('span', 'wrapper'); + hamburgerHTMLElement.id = 'hamburger'; + openMenuHTMLElement.classList.add('open'); + closeMenHTMLElement.classList.add('close'); + mobileHTMLElement.id = 'mobileNav'; + [openMenuHTMLElement, closeMenHTMLElement].forEach((menuToggle) => (menuToggle.onclick = this.toggleMenu)); + hamburgerHTMLElement.appendChildren([ + openMenuHTMLElement, + closeMenHTMLElement, + ]); + mobileHTMLElement.appendChildren([ + makeLinkElement('/', 'projectHome', appState.projectName), + ]); + wrapperHTMLElement.appendChildren([ + mobileHTMLElement, + this.breadcrumbHTMLElement, + ]); + this.appendChildren([hamburgerHTMLElement, wrapperHTMLElement]); + } + disconnectedCallback() { + this.eventsList.forEach((event) => events.off(...event)); + } +} +const yafChromeHeader = 'yaf-chrome-header'; +customElements.define(yafChromeHeader, YafChromeHeader); +//# sourceMappingURL=YafChromeHeader.js.map \ No newline at end of file diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Chrome/YafChromeHeader.js.map b/docs/v1.0.0-beta01/frontend/webComponents/Chrome/YafChromeHeader.js.map new file mode 100644 index 000000000..ad97fbb36 --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Chrome/YafChromeHeader.js.map @@ -0,0 +1 @@ +{"version":3,"file":"YafChromeHeader.js","sourceRoot":"","sources":["../../../../../src/frontend/webComponents/Chrome/YafChromeHeader.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Chrome/YafChromeLeft.d.ts b/docs/v1.0.0-beta01/frontend/webComponents/Chrome/YafChromeLeft.d.ts new file mode 100644 index 000000000..0c9dbcd8e --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Chrome/YafChromeLeft.d.ts @@ -0,0 +1,10 @@ +import { YafHTMLElement } from '../../index.js'; +/** + * + */ +export declare class YafChromeLeft extends YafHTMLElement { + onConnect(): void; + disconnectedCallback(): void; + private toggleSearch; + private eventsList; +} diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Chrome/YafChromeLeft.js b/docs/v1.0.0-beta01/frontend/webComponents/Chrome/YafChromeLeft.js new file mode 100644 index 000000000..ae7c64189 --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Chrome/YafChromeLeft.js @@ -0,0 +1,31 @@ +import { YafHTMLElement } from '../../index.js'; +import { getHtmlTemplate } from '../../yafElement.js'; +import { events } from '../../handlers/index.js'; +const { trigger, action } = events; +/** + * + */ +export class YafChromeLeft extends YafHTMLElement { + constructor() { + super(...arguments); + this.toggleSearch = ({ detail, }) => { + const { searchString } = detail; + searchString.length >= 3 + ? this.classList.add('activeSearch') + : this.classList.remove('activeSearch'); + }; + this.eventsList = [ + [trigger.menu.search, this.toggleSearch], + ]; + } + onConnect() { + this.appendChild(getHtmlTemplate(yafChromeLeft)); + this.eventsList.forEach((event) => events.on(...event)); + } + disconnectedCallback() { + this.eventsList.forEach((event) => events.off(...event)); + } +} +const yafChromeLeft = 'yaf-chrome-left'; +customElements.define(yafChromeLeft, YafChromeLeft); +//# sourceMappingURL=YafChromeLeft.js.map \ No newline at end of file diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Chrome/YafChromeLeft.js.map b/docs/v1.0.0-beta01/frontend/webComponents/Chrome/YafChromeLeft.js.map new file mode 100644 index 000000000..b36512a1d --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Chrome/YafChromeLeft.js.map @@ -0,0 +1 @@ +{"version":3,"file":"YafChromeLeft.js","sourceRoot":"","sources":["../../../../../src/frontend/webComponents/Chrome/YafChromeLeft.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAU,MAAM,EAAE,MAAM,yBAAyB,CAAC;AACzD,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;AAEnC;;GAEG;AACH,MAAM,OAAO,aAAc,SAAQ,cAAc;IAAjD;;QAWS,iBAAY,GAAG,CAAC,EACvB,MAAM,GACiC,EAAE,EAAE;YAC3C,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,CAAC;YAChC,YAAY,CAAC,MAAM,IAAI,CAAC;gBACvB,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,cAAc,CAAC;gBACpC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;QAC1C,CAAC,CAAC;QAEM,eAAU,GAAiB;YAClC,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,YAAY,CAAC;SACxC,CAAC;IACH,CAAC;IAtBA,SAAS;QACR,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC,CAAC;QAEjD,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;IACzD,CAAC;IAED,oBAAoB;QACnB,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;IAC1D,CAAC;CAcD;AACD,MAAM,aAAa,GAAkB,iBAAiB,CAAC;AACvD,cAAc,CAAC,MAAM,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC"} \ No newline at end of file diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Chrome/index.d.ts b/docs/v1.0.0-beta01/frontend/webComponents/Chrome/index.d.ts new file mode 100644 index 000000000..0e7160f27 --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Chrome/index.d.ts @@ -0,0 +1,3 @@ +export * from './YafChromeLeft.js'; +export * from './YafChromeContent.js'; +export * from './YafChromeHeader.js'; diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Chrome/index.js b/docs/v1.0.0-beta01/frontend/webComponents/Chrome/index.js new file mode 100644 index 000000000..e1dbf04a4 --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Chrome/index.js @@ -0,0 +1,4 @@ +export * from './YafChromeLeft.js'; +export * from './YafChromeContent.js'; +export * from './YafChromeHeader.js'; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Chrome/index.js.map b/docs/v1.0.0-beta01/frontend/webComponents/Chrome/index.js.map new file mode 100644 index 000000000..841c4e518 --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Chrome/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/frontend/webComponents/Chrome/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC"} \ No newline at end of file diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Content/YafContent.d.ts b/docs/v1.0.0-beta01/frontend/webComponents/Content/YafContent.d.ts new file mode 100644 index 000000000..214ec00bf --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Content/YafContent.d.ts @@ -0,0 +1,14 @@ +import { YafHTMLElement } from '../../index.js'; +export declare class YafContent extends YafHTMLElement { + onConnect(): void; + disconnectedCallback(): void; + private initPageData; + private renderPageContent; + private saveScrollTop; + private returnPageId; + /** + * @event + */ + private events; + private static factory; +} diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Content/YafContent.js b/docs/v1.0.0-beta01/frontend/webComponents/Content/YafContent.js new file mode 100644 index 000000000..0ba0ce7e7 --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Content/YafContent.js @@ -0,0 +1,112 @@ +import appState from '../../handlers/AppState.js'; +import { makeElement } from '../../yafElement.js'; +import { YafHTMLElement } from '../../index.js'; +import { events } from '../../handlers/index.js'; +const { trigger, action } = events; +export class YafContent extends YafHTMLElement { + constructor() { + super(...arguments); + this.initPageData = () => { + const url = new URL(window.location.href); + let page = url.searchParams.get('page'); + page = decodeURIComponent(page || ''); + appState.getPageData(page || 'index').then((data) => { + const newId = String(data.id); + if (this.id !== newId) + this.renderPageContent(data); + this.id = newId; + const scrollTop = appState.scrollTops[this.id] || 0; + events.dispatch(action.content.scrollTo(url.hash ? url.hash.replace('#', '') : scrollTop)); + }); + }; + this.saveScrollTop = ({ detail, }) => { + appState.setScrollTop(this.id, Number(detail.scrollTop)); + }; + this.returnPageId = (e) => e.detail.callBack(Number(this.id)); + /** + * @event + */ + this.events = [ + [trigger.content.setLocation, this.initPageData], + [trigger.content.getPageId, this.returnPageId], + [trigger.content.scrollTop, this.saveScrollTop], + ['popstate', this.initPageData, window], + ]; + } + onConnect() { + this.events.forEach((event) => events.on(...event)); + const bodyHTMLElement = document.querySelector('body'); + bodyHTMLElement === null || bodyHTMLElement === void 0 ? void 0 : bodyHTMLElement.classList.remove('loaded'); + bodyHTMLElement === null || bodyHTMLElement === void 0 ? void 0 : bodyHTMLElement.classList.add('loading'); + this.initPageData(); + bodyHTMLElement === null || bodyHTMLElement === void 0 ? void 0 : bodyHTMLElement.classList.remove('loading'); + setTimeout(() => { + bodyHTMLElement === null || bodyHTMLElement === void 0 ? void 0 : bodyHTMLElement.classList.add('loaded'); + }, 600); + } + disconnectedCallback() { + this.events.forEach((event) => events.off(...event)); + } + renderPageContent(data) { + const { kind, typeParameter, signatures, text, hierarchy, id, is } = data; + const { factory } = YafContent; + const { Variable, TypeAlias } = appState.reflectionKind; + const isVarOrTypeDeclaration = [Variable, TypeAlias].includes(kind) && data.is.declaration; + const hasReadme = !!(text === null || text === void 0 ? void 0 : text.readme); + const hasComment = !!(text === null || text === void 0 ? void 0 : text.comment); + const hasHierchy = is.declaration && hierarchy; + const HTMLElements = isVarOrTypeDeclaration + ? [ + factory.contentHeader(data), + factory.memberDeclaration(data), + ] + : [ + hasReadme + ? factory.contentMarked(text.readme) + : factory.contentHeader(data), + hasComment + ? factory.contentMarked(text.comment) + : undefined, + typeParameter + ? factory.typeParameters(typeParameter) + : undefined, + hasHierchy + ? factory.contentHierarchy(hierarchy, id) + : undefined, + signatures + ? factory.memberSignatures(signatures) + : factory.memberSources(data), + factory.memberGroups(data), + ]; + this.replaceChildren(); + HTMLElements.forEach((element) => { + if (!element) + return; + this.appendChild(element); + if ('drawers' in element) + element.drawers.renderDrawers(); + }); + events.dispatch(action.content.breadcrumb(id)); + } +} +YafContent.factory = { + contentHeader: (data) => makeElement('yaf-content-header', null, null, data), + contentMarked: (html) => makeElement('yaf-content-marked', null, null, html), + memberDeclaration: (data) => makeElement('yaf-member-declaration', null, null, { data, idPrefix: '' }), + memberGroups: (data) => makeElement('yaf-content-members', null, null, data), + typeParameters: (typeParameter) => makeElement('yaf-type-parameters', null, null, typeParameter), + memberSignatures: (signatures) => makeElement('yaf-member-signatures', null, null, signatures), + memberSources: (data) => { + return data + ? makeElement('yaf-member-sources', null, null, data) + : undefined; + }, + contentHierarchy: (hierarchy, id) => makeElement('yaf-content-hierarchy', null, null, { + hierarchy, + pageId: String(id), + init: true, + }), +}; +const yafContent = 'yaf-content'; +customElements.define(yafContent, YafContent); +//# sourceMappingURL=YafContent.js.map \ No newline at end of file diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Content/YafContent.js.map b/docs/v1.0.0-beta01/frontend/webComponents/Content/YafContent.js.map new file mode 100644 index 000000000..3632d0eb0 --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Content/YafContent.js.map @@ -0,0 +1 @@ +{"version":3,"file":"YafContent.js","sourceRoot":"","sources":["../../../../../src/frontend/webComponents/Content/YafContent.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Content/YafContentHeader.d.ts b/docs/v1.0.0-beta01/frontend/webComponents/Content/YafContentHeader.d.ts new file mode 100644 index 000000000..525eb1c92 --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Content/YafContentHeader.d.ts @@ -0,0 +1,5 @@ +import { YAFDataObject } from '../../../types/types.js'; +import { YafHTMLElement } from '../../index.js'; +export declare class YafContentHeader extends YafHTMLElement { + onConnect(): void; +} diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Content/YafContentHeader.js b/docs/v1.0.0-beta01/frontend/webComponents/Content/YafContentHeader.js new file mode 100644 index 000000000..a8925adb5 --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Content/YafContentHeader.js @@ -0,0 +1,25 @@ +import { makeElement, makeKindSpan, makeNameSpan, makeFlags, } from '../../yafElement.js'; +import { YafHTMLElement } from '../../index.js'; +import { events } from '../../handlers/index.js'; +const { action } = events; +export class YafContentHeader extends YafHTMLElement { + onConnect() { + const { typeParameters, kindString, name, is, id, flags, comment, signatures, } = this.props; + const titleHTMLElement = makeElement('h1'); + const nameHTMLElement = makeNameSpan(name); + nameHTMLElement.onclick = () => events.dispatch(action.menu.scrollTo(String(id))); + if (!is.project) + titleHTMLElement.appendChild(makeKindSpan(kindString || 'unknown')); + if (typeParameters && typeParameters.length) { + nameHTMLElement.appendChild(makeElement('yaf-type-parameters', null, null, typeParameters)); + } + titleHTMLElement.appendChild(nameHTMLElement); + titleHTMLElement.appendChild(makeFlags(flags, comment)); + if ((signatures === null || signatures === void 0 ? void 0 : signatures.length) === 1) + titleHTMLElement.appendChild(makeFlags(signatures[0].flags, signatures[0].comment)); + this.appendChild(titleHTMLElement); + } +} +const yafContentHeader = 'yaf-content-header'; +customElements.define(yafContentHeader, YafContentHeader); +//# sourceMappingURL=YafContentHeader.js.map \ No newline at end of file diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Content/YafContentHeader.js.map b/docs/v1.0.0-beta01/frontend/webComponents/Content/YafContentHeader.js.map new file mode 100644 index 000000000..a4d3a264c --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Content/YafContentHeader.js.map @@ -0,0 +1 @@ +{"version":3,"file":"YafContentHeader.js","sourceRoot":"","sources":["../../../../../src/frontend/webComponents/Content/YafContentHeader.ts"],"names":[],"mappings":"AAGA,OAAO,EACN,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,SAAS,GACT,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAEjD,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;AAE1B,MAAM,OAAO,gBAAiB,SAAQ,cAA6B;IAClE,SAAS;QACR,MAAM,EACL,cAAc,EACd,UAAU,EACV,IAAI,EACJ,EAAE,EACF,EAAE,EACF,KAAK,EACL,OAAO,EACP,UAAU,GACV,GAAG,IAAI,CAAC,KAAK,CAAC;QAEf,MAAM,gBAAgB,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;QAC3C,MAAM,eAAe,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;QAE3C,eAAe,CAAC,OAAO,GAAG,GAAG,EAAE,CAC9B,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAEnD,IAAI,CAAC,EAAE,CAAC,OAAO;YACd,gBAAgB,CAAC,WAAW,CAAC,YAAY,CAAC,UAAU,IAAI,SAAS,CAAC,CAAC,CAAC;QACrE,IAAI,cAAc,IAAI,cAAc,CAAC,MAAM,EAAE;YAC5C,eAAe,CAAC,WAAW,CAC1B,WAAW,CACV,qBAAqB,EACrB,IAAI,EACJ,IAAI,EACJ,cAAc,CACd,CACD,CAAC;SACF;QACD,gBAAgB,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC;QAC9C,gBAAgB,CAAC,WAAW,CAAC,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;QACxD,IAAI,CAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,MAAM,MAAK,CAAC;YAC3B,gBAAgB,CAAC,WAAW,CAC3B,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CACrD,CAAC;QAEH,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC;IACpC,CAAC;CACD;AAED,MAAM,gBAAgB,GAAkB,oBAAoB,CAAC;AAC7D,cAAc,CAAC,MAAM,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,CAAC"} \ No newline at end of file diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Content/YafContentHierarchy.d.ts b/docs/v1.0.0-beta01/frontend/webComponents/Content/YafContentHierarchy.d.ts new file mode 100644 index 000000000..d37a95be0 --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Content/YafContentHierarchy.d.ts @@ -0,0 +1,12 @@ +import { YafHTMLElement } from '../../index.js'; +import { YafElementDrawers } from '../../YafElementDrawers.js'; +import { yafContentHierarchyProps } from '../../../types/frontendTypes.js'; +export declare class YafContentHierarchy extends YafHTMLElement { + drawers?: YafElementDrawers; + drawerTrigger: HTMLElement; + drawer: HTMLElement & import("../../../types/frontendTypes.js").yafHTMLExtension; + onConnect(): void; + private initDrawers; + private get isOrphan(); + private factory; +} diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Content/YafContentHierarchy.js b/docs/v1.0.0-beta01/frontend/webComponents/Content/YafContentHierarchy.js new file mode 100644 index 000000000..aa9a62967 --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Content/YafContentHierarchy.js @@ -0,0 +1,63 @@ +import { YafHTMLElement } from '../../index.js'; +import appState from '../../handlers/AppState.js'; +import { makeElement, makeIconSpan, makeLinkElement, } from '../../yafElement.js'; +import { YafElementDrawers } from '../../YafElementDrawers.js'; +export class YafContentHierarchy extends YafHTMLElement { + constructor() { + super(...arguments); + this.drawer = makeElement('ul'); + this.initDrawers = (pageId) => { + this.drawerTrigger = makeElement('h5'); + this.drawerTrigger.appendChild(makeElement('span', null, 'Hierarchy')); + this.drawerTrigger.appendChild(makeIconSpan('expand_less')); + this.appendChild(this.drawerTrigger); + this.drawers = new YafElementDrawers(this, this.drawer, this.drawerTrigger, `hierarchy_${pageId}`); + }; + this.factory = { + li: (item) => makeElement('li', item.isTarget ? 'target' : null, item.name), + linkLi: (item) => { + const linkData = appState.reflectionMap[item.linkId]; + const parentLi = makeElement('li'); + parentLi.appendChild(makeLinkElement(`?page=${linkData.query}#${linkData.hash}`, undefined, item.name)); + return parentLi; + }, + hierarchy: (item) => makeElement('yaf-content-hierarchy', null, null, { + hierarchy: item.children, + }), + }; + } + onConnect() { + var _a; + const { hierarchy, pageId, init } = this.props; + const HTMLElements = hierarchy === null || hierarchy === void 0 ? void 0 : hierarchy.map((item) => { + const isLink = !(item.isTarget || !item.linkId); + const hasChildren = !(!item.children || !item.children.length); + const parentLi = isLink + ? this.factory.linkLi(item) + : this.factory.li(item); + if (!hasChildren) + return parentLi; + const childrenLi = makeElement('li'); + childrenLi.appendChild(this.factory.hierarchy(item)); + return [parentLi, childrenLi]; + }); + if (init) + this.initDrawers(pageId); + this.drawer.appendChildren(HTMLElements === null || HTMLElements === void 0 ? void 0 : HTMLElements.flat()); + init + ? this.appendChild(this.drawer) + : (_a = this.parentElement) === null || _a === void 0 ? void 0 : _a.replaceChild(this.drawer, this); + } + get isOrphan() { + const { hierarchy, init } = this.props; + if (!hierarchy || !hierarchy.length) + return true; + return (init && + hierarchy && + hierarchy.length === 1 && + (!hierarchy[0].children || !hierarchy[0].children.length)); + } +} +const yafContentHierarchy = 'yaf-content-hierarchy'; +customElements.define(yafContentHierarchy, YafContentHierarchy); +//# sourceMappingURL=YafContentHierarchy.js.map \ No newline at end of file diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Content/YafContentHierarchy.js.map b/docs/v1.0.0-beta01/frontend/webComponents/Content/YafContentHierarchy.js.map new file mode 100644 index 000000000..b1d579c27 --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Content/YafContentHierarchy.js.map @@ -0,0 +1 @@ +{"version":3,"file":"YafContentHierarchy.js","sourceRoot":"","sources":["../../../../../src/frontend/webComponents/Content/YafContentHierarchy.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Content/YafContentMarked.d.ts b/docs/v1.0.0-beta01/frontend/webComponents/Content/YafContentMarked.d.ts new file mode 100644 index 000000000..ad2682bac --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Content/YafContentMarked.d.ts @@ -0,0 +1,5 @@ +import { htmlString } from '../../../types/types.js'; +import { YafHTMLElement } from '../../index.js'; +export declare class YafContentMarked extends YafHTMLElement { + onConnect(): void; +} diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Content/YafContentMarked.js b/docs/v1.0.0-beta01/frontend/webComponents/Content/YafContentMarked.js new file mode 100644 index 000000000..9750326bf --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Content/YafContentMarked.js @@ -0,0 +1,21 @@ +import { YafHTMLElement } from '../../index.js'; +import { makeLinkElement } from '../../yafElement.js'; +export class YafContentMarked extends YafHTMLElement { + onConnect() { + this.classList.add('markdown-body'); + this.innerHTML = this.props || ''; + const HTMLLinks = this.querySelectorAll('a'); + HTMLLinks.forEach((link) => { + var _a; + const href = link.getAttribute('href'); + if (!href || href.startsWith('#')) + return; + const yafLink = makeLinkElement(href); + yafLink.innerHTML = link.innerHTML; + (_a = link.parentElement) === null || _a === void 0 ? void 0 : _a.replaceChild(yafLink, link); + }); + } +} +const yafContentMarked = 'yaf-content-marked'; +customElements.define(yafContentMarked, YafContentMarked); +//# sourceMappingURL=YafContentMarked.js.map \ No newline at end of file diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Content/YafContentMarked.js.map b/docs/v1.0.0-beta01/frontend/webComponents/Content/YafContentMarked.js.map new file mode 100644 index 000000000..0db410daf --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Content/YafContentMarked.js.map @@ -0,0 +1 @@ +{"version":3,"file":"YafContentMarked.js","sourceRoot":"","sources":["../../../../../src/frontend/webComponents/Content/YafContentMarked.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEtD,MAAM,OAAO,gBAAiB,SAAQ,cAAsC;IAC3E,SAAS;QACR,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;QACpC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;QAClC,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;QAE7C,SAAS,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;;YAC1B,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;YACvC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;gBAAE,OAAO;YAE1C,MAAM,OAAO,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;YACtC,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YACnC,MAAA,IAAI,CAAC,aAAa,0CAAE,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC;IACJ,CAAC;CACD;AAED,MAAM,gBAAgB,GAAkB,oBAAoB,CAAC;AAC7D,cAAc,CAAC,MAAM,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,CAAC"} \ No newline at end of file diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Content/YafContentMembers.d.ts b/docs/v1.0.0-beta01/frontend/webComponents/Content/YafContentMembers.d.ts new file mode 100644 index 000000000..da7ed0480 --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Content/YafContentMembers.d.ts @@ -0,0 +1,11 @@ +import { YAFDataObject } from '../../../types/types.js'; +import { YafHTMLElement } from '../../index.js'; +/** + * + */ +export declare class YafContentMembers extends YafHTMLElement { + onConnect(): void; + private static factory; + private linkReferencPageTypes; + private static serialiseLinkGroup; +} diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Content/YafContentMembers.js b/docs/v1.0.0-beta01/frontend/webComponents/Content/YafContentMembers.js new file mode 100644 index 000000000..e247093a3 --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Content/YafContentMembers.js @@ -0,0 +1,96 @@ +var _a; +import { YafMember } from '../Member/YafMember.js'; +import errorHandlers from '../../handlers/ErrorHandlers.js'; +import { YafMemberGroupReflection, } from '../Member/index.js'; +import appState from '../../handlers/AppState.js'; +import { makeElement } from '../../yafElement.js'; +import { YafHTMLElement } from '../../index.js'; +/** + * + */ +export class YafContentMembers extends YafHTMLElement { + constructor() { + super(...arguments); + this.linkReferencPageTypes = [ + 'Namespace', + 'Module', + 'Project', + ].map((kindString) => appState.reflectionKind[kindString]); + } + onConnect() { + var _b, _c; + const { groups, children, id, kind } = this.props; + const { factory } = YafContentMembers; + const isLinkList = this.linkReferencPageTypes.includes(kind); + const constructorGroup = groups === null || groups === void 0 ? void 0 : groups.find((group) => group.title === 'Constructors'); + const hasConstructor = constructorGroup && ((_b = constructorGroup.children) === null || _b === void 0 ? void 0 : _b.length) === 1; + const HTMLElements = [ + hasConstructor + ? factory.constructorElement(constructorGroup, children || []) + : undefined, + groups + ? (_c = [...groups]) === null || _c === void 0 ? void 0 : _c.sort((a, b) => a.title.localeCompare(b.title)).map((group) => { + var _b; + const isConstructorGroup = group.title === 'Constructors' && + hasConstructor; + if (isConstructorGroup || !((_b = group.children) === null || _b === void 0 ? void 0 : _b.length)) + return undefined; + return isLinkList + ? factory.linkGroup(group, children || []) + : factory.reflectionGroup(group, children || [], String(id)); + }) + : undefined, + ].flat(); + this.appendChildren(HTMLElements); + YafMemberGroupReflection.renderDrawersFromRoot(this); + } +} +_a = YafContentMembers; +YafContentMembers.factory = { + /** + * Returns a HTMLElement for the consructor member + * @param constructorGroup + * @param children + * @returns + */ + constructorElement: (constructorGroup, children) => { + const childId = constructorGroup.children[0]; + const data = children.find((child) => child.id === childId); + if (data) { + const HTMLElement = makeElement('yaf-member', null, null, { data, idPrefix: '' }); + HTMLElement.id = 'constructor'; + return HTMLElement; + } + else { + errorHandlers.notFound(`Could not find reflection id: ${childId} in group ${constructorGroup.title}`); + } + }, + linkGroup: (group, children) => { + const serialisedChildren = _a.serialiseLinkGroup(group, children); + return makeElement('yaf-member-group-link', null, null, { + title: group.title, + children: serialisedChildren, + }); + }, + reflectionGroup: (group, children, pageId) => { + const serialisedGroup = YafMember.serialiseReflectionGroup(group, children); + return makeElement('yaf-member-group-reflection', null, null, { + title: group.title, + children: serialisedGroup.children, + pageId, + }); + }, +}; +YafContentMembers.serialiseLinkGroup = (group, children) => { + var _b; + return ((_b = group.children) === null || _b === void 0 ? void 0 : _b.map((id) => { + const child = children.find((child) => child.id == id) || + appState.reflectionMap[id]; + const childClone = Object.assign({}, child); + childClone.id = id; + return childClone; + }).filter((child) => !!child)) || []; +}; +const yafContentMembers = 'yaf-content-members'; +customElements.define(yafContentMembers, YafContentMembers); +//# sourceMappingURL=YafContentMembers.js.map \ No newline at end of file diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Content/YafContentMembers.js.map b/docs/v1.0.0-beta01/frontend/webComponents/Content/YafContentMembers.js.map new file mode 100644 index 000000000..99e4693d8 --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Content/YafContentMembers.js.map @@ -0,0 +1 @@ +{"version":3,"file":"YafContentMembers.js","sourceRoot":"","sources":["../../../../../src/frontend/webComponents/Content/YafContentMembers.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Content/index.d.ts b/docs/v1.0.0-beta01/frontend/webComponents/Content/index.d.ts new file mode 100644 index 000000000..a74cdfe48 --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Content/index.d.ts @@ -0,0 +1,5 @@ +export * from './YafContent.js'; +export * from './YafContentHeader.js'; +export * from './YafContentMarked.js'; +export * from './YafContentMembers.js'; +export * from './YafContentHierarchy.js'; diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Content/index.js b/docs/v1.0.0-beta01/frontend/webComponents/Content/index.js new file mode 100644 index 000000000..5d5455bc1 --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Content/index.js @@ -0,0 +1,6 @@ +export * from './YafContent.js'; +export * from './YafContentHeader.js'; +export * from './YafContentMarked.js'; +export * from './YafContentMembers.js'; +export * from './YafContentHierarchy.js'; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Content/index.js.map b/docs/v1.0.0-beta01/frontend/webComponents/Content/index.js.map new file mode 100644 index 000000000..d64f2ee0a --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Content/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/frontend/webComponents/Content/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,0BAA0B,CAAC"} \ No newline at end of file diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Member/YafMember.d.ts b/docs/v1.0.0-beta01/frontend/webComponents/Member/YafMember.d.ts new file mode 100644 index 000000000..818134698 --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Member/YafMember.d.ts @@ -0,0 +1,13 @@ +import { YAFDataObject, YAFReflectionLink } from '../../../types/types.js'; +import { yafReflectionGroup } from '../../../types/frontendTypes.js'; +import { JSONOutput } from 'typedoc'; +import { YafHTMLElement } from '../../index.js'; +export declare class YafMember extends YafHTMLElement<{ + data: Omit; + idPrefix: string; +}> { + onConnect(): void; + private focusMember; + private factory; + static serialiseReflectionGroup: (group: JSONOutput.ReflectionGroup, children: YAFDataObject[]) => yafReflectionGroup; +} diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Member/YafMember.js b/docs/v1.0.0-beta01/frontend/webComponents/Member/YafMember.js new file mode 100644 index 000000000..5f22364e0 --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Member/YafMember.js @@ -0,0 +1,80 @@ +import { makeFlags, makeElement, makeLinkElement } from '../../yafElement.js'; +import appState from '../../handlers/AppState.js'; +import errorHandlers from '../../handlers/ErrorHandlers.js'; +import { YafHTMLElement } from '../../index.js'; +import { events } from '../../handlers/index.js'; +const { action } = events; +export class YafMember extends YafHTMLElement { + constructor() { + super(...arguments); + this.focusMember = () => { + events.dispatch(action.menu.scrollTo(String(this.props.data.id))); + //events.dispatch(action.content.setLocation()); + }; + this.factory = { + signatures: (signatures) => makeElement('yaf-member-signatures', null, null, signatures), + getterOrSetter: () => makeElement('yaf-member-getter-setter', null, null, this.props.data), + memberDeclaration: (idPrefix) => makeElement('yaf-member-declaration', null, null, { data: this.props.data, idPrefix }), + }; + } + onConnect() { + const { name, kind, signatures, flags, comment, groups, getSignature, setSignature, id, } = this.props.data; + const { idPrefix } = this.props; + const { query, hash } = appState.reflectionMap[id]; + let href = `?page=${query}`; + if (hash) + href += `#${hash}`; + const flagsElement = flags ? makeFlags(flags, comment) : undefined; + const headerElement = makeElement('h3', 'header'); + headerElement.onclick = this.focusMember; + const linkHTMLElement = makeLinkElement(href, 'name', name); + //const nameElement = linkHTMLElement.querySelector('a'); + const inner = makeElement('div', 'inner'); + const hasGetterOrSetter = !!getSignature || !!setSignature; + const isReferenceReflection = kind && appState.reflectionKind[kind] === 'Reference'; + //nameElement!.appendChildren([makeNameSpan(name), makeIconSpan('link')]); + headerElement.appendChildren([ + linkHTMLElement, + flagsElement ? flagsElement : undefined, + ]); + const memberType = signatures + ? 'signatures' + : hasGetterOrSetter + ? 'getterOrSetter' + : isReferenceReflection + ? 'referenceReflection' + : 'memberDeclaration'; + switch (memberType) { + case 'signatures': + inner.appendChild(this.factory.signatures(signatures)); + break; + case 'getterOrSetter': + inner.appendChild(this.factory.getterOrSetter()); + break; + case 'referenceReflection': + console.error('TODO: is this ever hit?', this.props); + break; + case 'memberDeclaration': + inner.appendChild(this.factory.memberDeclaration(idPrefix)); + } + this.appendChildren([headerElement, inner]); + if (groups) + console.warn('TODO', groups); + } +} +YafMember.serialiseReflectionGroup = (group, children) => { + var _a; + if (!group.children) + return { title: group.title, children: [] }; + const mappedChildren = (_a = group.children) === null || _a === void 0 ? void 0 : _a.map((id) => (children === null || children === void 0 ? void 0 : children.find((child) => child.id === id)) || + appState.reflectionMap[id] || + id).filter((child) => { + if (typeof child === 'number') + errorHandlers.notFound(`Did not find reflection id: ${child}`); + return !!child; + }); + return { title: group.title, children: mappedChildren || [] }; +}; +const yafMember = 'yaf-member'; +customElements.define(yafMember, YafMember); +//# sourceMappingURL=YafMember.js.map \ No newline at end of file diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Member/YafMember.js.map b/docs/v1.0.0-beta01/frontend/webComponents/Member/YafMember.js.map new file mode 100644 index 000000000..ec0171bf2 --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Member/YafMember.js.map @@ -0,0 +1 @@ +{"version":3,"file":"YafMember.js","sourceRoot":"","sources":["../../../../../src/frontend/webComponents/Member/YafMember.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Member/YafMemberDeclaration.d.ts b/docs/v1.0.0-beta01/frontend/webComponents/Member/YafMemberDeclaration.d.ts new file mode 100644 index 000000000..96946be40 --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Member/YafMemberDeclaration.d.ts @@ -0,0 +1,12 @@ +import { YafDeclarationReflection } from '../../../types/types'; +import { YafHTMLElement } from '../../index.js'; +/** + * + */ +export declare class YafMemberDeclaration extends YafHTMLElement<{ + data: YafDeclarationReflection; + idPrefix: string; +}> { + onConnect(): void; + private static factory; +} diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Member/YafMemberDeclaration.js b/docs/v1.0.0-beta01/frontend/webComponents/Member/YafMemberDeclaration.js new file mode 100644 index 000000000..c53b7064e --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Member/YafMemberDeclaration.js @@ -0,0 +1,60 @@ +import { YafMember, YafMemberGroupReflection, } from './index.js'; +import { makeElement } from '../../yafElement.js'; +import { YafHTMLElement } from '../../index.js'; +/** + * + */ +export class YafMemberDeclaration extends YafHTMLElement { + onConnect() { + var _a, _b; + const { type, id } = this.props.data; + const { idPrefix } = this.props; + const { factory } = YafMemberDeclaration; + const isReflection = (type === null || type === void 0 ? void 0 : type.type) === 'reflection'; + const isReflectionSignature = isReflection && !!((_a = type.declaration) === null || _a === void 0 ? void 0 : _a.signatures); + const isReflectionGroup = isReflection && !!((_b = type.declaration) === null || _b === void 0 ? void 0 : _b.groups); + const HTMLElements = [ + !isReflectionSignature + ? factory.memberSignatures(this.props.data) + : undefined, + isReflectionGroup + ? factory.memberGroups(type, id, idPrefix) + : undefined, + isReflectionSignature ? factory.memberSignatures(type) : undefined, + ] + .filter((element) => !!element) + .flat(); + this.appendChildren(HTMLElements); + YafMemberGroupReflection.renderDrawersFromRoot(this); + } +} +YafMemberDeclaration.factory = { + memberGroups: (type, parentId, idPrefix) => { + var _a; + if (!type.declaration || + !type.declaration.children || + !((_a = type.declaration.children) === null || _a === void 0 ? void 0 : _a.length)) + return undefined; + const { groups, children, id } = type.declaration; + const serialisedGroups = groups === null || groups === void 0 ? void 0 : groups.map((group) => YafMember.serialiseReflectionGroup(group, children || [])); + return ((serialisedGroups === null || serialisedGroups === void 0 ? void 0 : serialisedGroups.map((group) => { + return makeElement('yaf-member-group-reflection', null, null, { + title: group.title, + children: group.children, + pageId: String(id), + nested: true, + idPrefix, + }); + })) || undefined); + }, + memberSignatures: (member) => { + const declaration = member.declaration; + const signatures = declaration + ? declaration.signatures + : undefined; + return makeElement('yaf-member-signatures', null, null, signatures || [member]); + }, +}; +const yafMemberDeclaration = 'yaf-member-declaration'; +customElements.define(yafMemberDeclaration, YafMemberDeclaration); +//# sourceMappingURL=YafMemberDeclaration.js.map \ No newline at end of file diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Member/YafMemberDeclaration.js.map b/docs/v1.0.0-beta01/frontend/webComponents/Member/YafMemberDeclaration.js.map new file mode 100644 index 000000000..579501208 --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Member/YafMemberDeclaration.js.map @@ -0,0 +1 @@ +{"version":3,"file":"YafMemberDeclaration.js","sourceRoot":"","sources":["../../../../../src/frontend/webComponents/Member/YafMemberDeclaration.ts"],"names":[],"mappings":"AAKA,OAAO,EACN,SAAS,EACT,wBAAwB,GAExB,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAGhD;;GAEG;AACH,MAAM,OAAO,oBAAqB,SAAQ,cAGxC;IACD,SAAS;;QACR,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;QACrC,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QAChC,MAAM,EAAE,OAAO,EAAE,GAAG,oBAAoB,CAAC;QACzC,MAAM,YAAY,GAAG,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,IAAI,MAAK,YAAY,CAAC;QACjD,MAAM,qBAAqB,GAC1B,YAAY,IAAI,CAAC,CAAC,CAAA,MAAA,IAAI,CAAC,WAAW,0CAAE,UAAU,CAAA,CAAC;QAChD,MAAM,iBAAiB,GAAG,YAAY,IAAI,CAAC,CAAC,CAAA,MAAA,IAAI,CAAC,WAAW,0CAAE,MAAM,CAAA,CAAC;QAErE,MAAM,YAAY,GAAG;YACpB,CAAC,qBAAqB;gBACrB,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;gBAC3C,CAAC,CAAC,SAAS;YACZ,iBAAiB;gBAChB,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,EAAE,EAAE,EAAE,QAAQ,CAAC;gBAC1C,CAAC,CAAC,SAAS;YACZ,qBAAqB,CAAC,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;SAClE;aACC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;aAC9B,IAAI,EAAE,CAAC;QAET,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;QAElC,wBAAwB,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC;IACtD,CAAC;;AAEc,4BAAO,GAAG;IACxB,YAAY,EAAE,CACb,IAA+B,EAC/B,QAAgB,EAChB,QAA4B,EAC3B,EAAE;;QACH,IACC,CAAC,IAAI,CAAC,WAAW;YACjB,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ;YAC1B,CAAC,CAAA,MAAA,IAAI,CAAC,WAAW,CAAC,QAAQ,0CAAE,MAAM,CAAA;YAElC,OAAO,SAAS,CAAC;QAElB,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC;QAClD,MAAM,gBAAgB,GAAG,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAC9C,SAAS,CAAC,wBAAwB,CACjC,KAAK,EACJ,QAA4B,IAAI,EAAE,CACnC,CACD,CAAC;QACF,OAAO,CACN,CAAA,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;YAC/B,OAAO,WAAW,CAGhB,6BAA6B,EAAE,IAAI,EAAE,IAAI,EAAE;gBAC5C,KAAK,EAAE,KAAK,CAAC,KAAK;gBAClB,QAAQ,EAAE,KAAK,CAAC,QAAQ;gBACxB,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC;gBAClB,MAAM,EAAE,IAAI;gBACZ,QAAQ;aACR,CAAC,CAAC;QACJ,CAAC,CAAC,KAAI,SAAS,CACf,CAAC;IACH,CAAC;IACD,gBAAgB,EAAE,CACjB,MAA4D,EAC3D,EAAE;QACH,MAAM,WAAW,GAA+B,MAAO,CAAC,WAAW,CAAC;QACpE,MAAM,UAAU,GAAG,WAAW;YAC7B,CAAC,CAAE,WAAW,CAAC,UAAuC;YACtD,CAAC,CAAC,SAAS,CAAC;QAEb,OAAO,WAAW,CAIjB,uBAAuB,EACvB,IAAI,EACJ,IAAI,EACJ,UAAU,IAAI,CAAC,MAAkC,CAAC,CAClD,CAAC;IACH,CAAC;CACD,CAAC;AAEH,MAAM,oBAAoB,GAAkB,wBAAwB,CAAC;AACrE,cAAc,CAAC,MAAM,CAAC,oBAAoB,EAAE,oBAAoB,CAAC,CAAC"} \ No newline at end of file diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Member/YafMemberGetterSetter.d.ts b/docs/v1.0.0-beta01/frontend/webComponents/Member/YafMemberGetterSetter.d.ts new file mode 100644 index 000000000..de3df217e --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Member/YafMemberGetterSetter.d.ts @@ -0,0 +1,6 @@ +import { YAFDataObject } from '../../../types/types.js'; +import { YafHTMLElement } from '../../index.js'; +export declare class YafMemberGetterSetter extends YafHTMLElement { + onConnect(): void; + private static factory; +} diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Member/YafMemberGetterSetter.js b/docs/v1.0.0-beta01/frontend/webComponents/Member/YafMemberGetterSetter.js new file mode 100644 index 000000000..aa0e53609 --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Member/YafMemberGetterSetter.js @@ -0,0 +1,40 @@ +import { makeElement, makeSymbolSpan, makeNameSpan } from '../../yafElement.js'; +import { YafHTMLElement } from '../../index.js'; +export class YafMemberGetterSetter extends YafHTMLElement { + onConnect() { + const { getSignature, setSignature } = this.props; + const { factory } = YafMemberGetterSetter; + if (getSignature) { + this.appendChildren([ + factory.makeSignature('get', getSignature), + factory.makeBody(getSignature), + ]); + } + if (setSignature) { + this.appendChildren([ + factory.makeSignature('set', setSignature), + factory.makeBody(setSignature), + ]); + } + if (this.props.sources) + this.appendChild(factory.makeBody({ + sources: this.props.sources, + })); + } +} +YafMemberGetterSetter.factory = { + makeSignature: (prefix, data) => { + const title = makeElement('yaf-signature-title', null, null, Object.assign(Object.assign({}, data), { hideName: true })); + const preHTMLElement = makeElement('pre', 'highlight'); + preHTMLElement.appendChildren([ + makeSymbolSpan(`${prefix} `), + makeNameSpan(data.name), + title, + ]); + return preHTMLElement; + }, + makeBody: (data) => makeElement('yaf-signature-body', null, null, data), +}; +const yafMemberGetterSetter = 'yaf-member-getter-setter'; +customElements.define(yafMemberGetterSetter, YafMemberGetterSetter); +//# sourceMappingURL=YafMemberGetterSetter.js.map \ No newline at end of file diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Member/YafMemberGetterSetter.js.map b/docs/v1.0.0-beta01/frontend/webComponents/Member/YafMemberGetterSetter.js.map new file mode 100644 index 000000000..ac20f85c7 --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Member/YafMemberGetterSetter.js.map @@ -0,0 +1 @@ +{"version":3,"file":"YafMemberGetterSetter.js","sourceRoot":"","sources":["../../../../../src/frontend/webComponents/Member/YafMemberGetterSetter.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAChF,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAGhD,MAAM,OAAO,qBAAsB,SAAQ,cAA6B;IACvE,SAAS;QACR,MAAM,EAAE,YAAY,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QAClD,MAAM,EAAE,OAAO,EAAE,GAAG,qBAAqB,CAAC;QAE1C,IAAI,YAAY,EAAE;YACjB,IAAI,CAAC,cAAc,CAAC;gBACnB,OAAO,CAAC,aAAa,CAAC,KAAK,EAAE,YAAY,CAAC;gBAC1C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC;aAC9B,CAAC,CAAC;SACH;QAED,IAAI,YAAY,EAAE;YACjB,IAAI,CAAC,cAAc,CAAC;gBACnB,OAAO,CAAC,aAAa,CAAC,KAAK,EAAE,YAAY,CAAC;gBAC1C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC;aAC9B,CAAC,CAAC;SACH;QAED,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO;YACrB,IAAI,CAAC,WAAW,CACf,OAAO,CAAC,QAAQ,CAAC;gBAChB,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,OAAQ;aACF,CAAC,CAC5B,CAAC;IACJ,CAAC;;AAEc,6BAAO,GAAG;IACxB,aAAa,EAAE,CAAC,MAAc,EAAE,IAA4B,EAAE,EAAE;QAC/D,MAAM,KAAK,GAAG,WAAW,CAGvB,qBAAqB,EAAE,IAAI,EAAE,IAAI,kCAAO,IAAI,KAAE,QAAQ,EAAE,IAAI,IAAG,CAAC;QAElE,MAAM,cAAc,GAAG,WAAW,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;QACvD,cAAc,CAAC,cAAc,CAAC;YAC7B,cAAc,CAAC,GAAG,MAAM,GAAG,CAAC;YAC5B,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC;YACvB,KAAK;SACL,CAAC,CAAC;QAEH,OAAO,cAAc,CAAC;IACvB,CAAC;IACD,QAAQ,EAAE,CAAC,IAA4B,EAAE,EAAE,CAC1C,WAAW,CACV,oBAAoB,EACpB,IAAI,EACJ,IAAI,EACJ,IAAI,CACJ;CACF,CAAC;AAGH,MAAM,qBAAqB,GAAkB,0BAA0B,CAAC;AACxE,cAAc,CAAC,MAAM,CAAC,qBAAqB,EAAE,qBAAqB,CAAC,CAAC"} \ No newline at end of file diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Member/YafMemberGroupLink.d.ts b/docs/v1.0.0-beta01/frontend/webComponents/Member/YafMemberGroupLink.d.ts new file mode 100644 index 000000000..d82be6626 --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Member/YafMemberGroupLink.d.ts @@ -0,0 +1,12 @@ +import { yafMemberGroupLinkProps } from '../../../types/frontendTypes'; +import { YafHTMLElement } from '../../index.js'; +export declare class YafMemberGroupLink extends YafHTMLElement { + onConnect(): void; + /** + * If the link is to a `Reference` kind, this modifies the name + * to indicate how the original target has been modified. + * @param child + * @returns + */ + private serialiseReferencedChild; +} diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Member/YafMemberGroupLink.js b/docs/v1.0.0-beta01/frontend/webComponents/Member/YafMemberGroupLink.js new file mode 100644 index 000000000..77a327fb2 --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Member/YafMemberGroupLink.js @@ -0,0 +1,69 @@ +import { appState, events } from '../../handlers/index.js'; +import { makeElement, makeTitleSpan, makeLinkElement, } from '../../yafElement.js'; +import { YafHTMLElement } from '../../index.js'; +const { action } = events; +export class YafMemberGroupLink extends YafHTMLElement { + constructor() { + super(...arguments); + /** + * If the link is to a `Reference` kind, this modifies the name + * to indicate how the original target has been modified. + * @param child + * @returns + */ + this.serialiseReferencedChild = (child) => { + if (!child.kind || child.kind !== appState.reflectionKind.Reference) + return child; + const target = child.target + ? appState.reflectionMap[child.target] + : undefined; + const referenceType = !target + ? 'ReExports' + : child.name === target.name + ? 'ReExportsLink' + : 'ReExportsRenameLink'; + switch (referenceType) { + case 'ReExports': + child.query = appState.reflectionMap[child.id].query; + child.name = `Re-exported: "${child.name}"`; + break; + case 'ReExportsLink': + child.query = appState.reflectionMap[child.target].query; + child.name = `Re-exported: "${child.name}"`; + break; + case 'ReExportsRenameLink': + child.query = appState.reflectionMap[child.target].query; + child.name = `Re-named/exported: "${target.name}" to "${child.name}"`; + } + return child; + }; + } + onConnect() { + const { children, title } = this.props; + const ulHTMLElement = makeElement(`ul`, 'links'); + const groupHeaderHTMLElement = makeElement('h2'); + const groupTitleHTMLElement = makeTitleSpan(`${title}`); + const groupCountHTMLElement = makeElement('yaf-widget-counter', null, null, { + count: children.length, + }); + groupHeaderHTMLElement.appendChildren([ + groupTitleHTMLElement, + groupCountHTMLElement, + ]); + children.forEach((child) => { + const liHTMLElement = makeElement(`li`); + liHTMLElement.id = child.name; + child = this.serialiseReferencedChild(child); + const linkHTMLElement = makeLinkElement(child.hash + ? `?page=${child.query}#${child.hash}` + : `?page=${child.query}`, undefined, child.name); + liHTMLElement.appendChild(linkHTMLElement); + liHTMLElement.onclick = () => events.dispatch(action.content.scrollTo(`menu_${child.id}`)); + ulHTMLElement.appendChild(liHTMLElement); + }); + this.appendChildren([groupHeaderHTMLElement, ulHTMLElement]); + } +} +const yafMemberGroupLink = 'yaf-member-group-link'; +customElements.define(yafMemberGroupLink, YafMemberGroupLink); +//# sourceMappingURL=YafMemberGroupLink.js.map \ No newline at end of file diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Member/YafMemberGroupLink.js.map b/docs/v1.0.0-beta01/frontend/webComponents/Member/YafMemberGroupLink.js.map new file mode 100644 index 000000000..e99c3d9dc --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Member/YafMemberGroupLink.js.map @@ -0,0 +1 @@ +{"version":3,"file":"YafMemberGroupLink.js","sourceRoot":"","sources":["../../../../../src/frontend/webComponents/Member/YafMemberGroupLink.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAE3D,OAAO,EACN,WAAW,EACX,aAAa,EACb,eAAe,GACf,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAEhD,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;AAE1B,MAAM,OAAO,kBAAmB,SAAQ,cAAuC;IAA/E;;QA2CC;;;;;WAKG;QACK,6BAAwB,GAAG,CAAC,KAAwB,EAAE,EAAE;YAC/D,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,cAAc,CAAC,SAAS;gBAClE,OAAO,KAAK,CAAC;YAEd,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM;gBAC1B,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC;gBACtC,CAAC,CAAC,SAAS,CAAC;YAEb,MAAM,aAAa,GAAG,CAAC,MAAM;gBAC5B,CAAC,CAAC,WAAW;gBACb,CAAC,CAAC,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI;oBAC5B,CAAC,CAAC,eAAe;oBACjB,CAAC,CAAC,qBAAqB,CAAC;YAEzB,QAAQ,aAAa,EAAE;gBACtB,KAAK,WAAW;oBACf,KAAK,CAAC,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,EAAG,CAAC,CAAC,KAAK,CAAC;oBACtD,KAAK,CAAC,IAAI,GAAG,iBAAiB,KAAK,CAAC,IAAI,GAAG,CAAC;oBAC5C,MAAM;gBACP,KAAK,eAAe;oBACnB,KAAK,CAAC,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,MAAO,CAAC,CAAC,KAAK,CAAC;oBAC1D,KAAK,CAAC,IAAI,GAAG,iBAAiB,KAAK,CAAC,IAAI,GAAG,CAAC;oBAC5C,MAAM;gBACP,KAAK,qBAAqB;oBACzB,KAAK,CAAC,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,MAAO,CAAC,CAAC,KAAK,CAAC;oBAC1D,KAAK,CAAC,IAAI,GAAG,uBAAuB,MAAO,CAAC,IAAI,SAC/C,KAAK,CAAC,IACP,GAAG,CAAC;aACL;YACD,OAAO,KAAK,CAAC;QACd,CAAC,CAAC;IACH,CAAC;IA/EA,SAAS;QACR,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QAEvC,MAAM,aAAa,GAAG,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACjD,MAAM,sBAAsB,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;QACjD,MAAM,qBAAqB,GAAG,aAAa,CAAC,GAAG,KAAK,EAAE,CAAC,CAAC;QACxD,MAAM,qBAAqB,GAAG,WAAW,CAGvC,oBAAoB,EAAE,IAAI,EAAE,IAAI,EAAE;YACnC,KAAK,EAAE,QAAQ,CAAC,MAAM;SACtB,CAAC,CAAC;QAEH,sBAAsB,CAAC,cAAc,CAAC;YACrC,qBAAqB;YACrB,qBAAqB;SACrB,CAAC,CAAC;QAEH,QAAQ,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;YAC1B,MAAM,aAAa,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;YACxC,aAAa,CAAC,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC;YAE9B,KAAK,GAAG,IAAI,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAC;YAC7C,MAAM,eAAe,GAAG,eAAe,CACtC,KAAK,CAAC,IAAI;gBACT,CAAC,CAAC,SAAS,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,EAAE;gBACtC,CAAC,CAAC,SAAS,KAAK,CAAC,KAAK,EAAE,EACzB,SAAS,EACT,KAAK,CAAC,IAAI,CACV,CAAC;YAEF,aAAa,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC;YAE3C,aAAa,CAAC,OAAO,GAAG,GAAG,EAAE,CAC5B,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;YAE9D,aAAa,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;QAC1C,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,cAAc,CAAC,CAAC,sBAAsB,EAAE,aAAa,CAAC,CAAC,CAAC;IAC9D,CAAC;CAuCD;AACD,MAAM,kBAAkB,GAAG,uBAAuB,CAAC;AACnD,cAAc,CAAC,MAAM,CAAC,kBAAkB,EAAE,kBAAkB,CAAC,CAAC"} \ No newline at end of file diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Member/YafMemberGroupReflection.d.ts b/docs/v1.0.0-beta01/frontend/webComponents/Member/YafMemberGroupReflection.d.ts new file mode 100644 index 000000000..69447d82f --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Member/YafMemberGroupReflection.d.ts @@ -0,0 +1,18 @@ +import { yafMemberGroupReflectionProps } from '../../../types/frontendTypes.js'; +import { YafElementDrawers } from '../../YafElementDrawers.js'; +import { YafHTMLElement } from '../../index.js'; +/** + * + */ +export declare class YafMemberGroupReflection extends YafHTMLElement { + drawers: YafElementDrawers; + onConnect(): void; + disconnectedCallback(): void; + get pageId(): number; + private static factory; + /** + * Calls `renderDrawers()` from the root of the drawer tree only. + * @param parent + */ + static renderDrawersFromRoot: (parent: HTMLElement) => void; +} diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Member/YafMemberGroupReflection.js b/docs/v1.0.0-beta01/frontend/webComponents/Member/YafMemberGroupReflection.js new file mode 100644 index 000000000..66e35062f --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Member/YafMemberGroupReflection.js @@ -0,0 +1,117 @@ +var _a; +import { YafElementDrawers } from '../../YafElementDrawers.js'; +import { makeElement, makeTitleSpan, makeIconSpan, normaliseFlags, makeSymbolSpan, makeLinkElement, } from '../../yafElement.js'; +import { YafHTMLElement } from '../../index.js'; +import { events } from '../../handlers/index.js'; +const { action } = events; +/** + * + */ +export class YafMemberGroupReflection extends YafHTMLElement { + onConnect() { + const { title, children, pageId, nested, idPrefix } = this.props; + const { factory } = YafMemberGroupReflection; + this.id = `member_${pageId}_${title}`; + const drawerHTMLElement = makeElement(`ul`); + const drawerTriggerHTMLElement = makeElement('span', 'trigger'); + const groupHeaderHTMLElement = makeElement(nested ? 'h3' : 'h2'); + const groupTitleHTMLElement = factory.makeNestedTitleSpan(title, idPrefix, this.pageId, drawerTriggerHTMLElement); + const groupCountHTMLElement = factory.counterWidget(children.length); + const drawerLiHTMLElements = factory.drawerListChildren(children, idPrefix); + groupHeaderHTMLElement.appendChildren([ + groupTitleHTMLElement, + groupCountHTMLElement, + ]); + drawerHTMLElement.appendChildren(drawerLiHTMLElements); + this.appendChildren([groupHeaderHTMLElement, drawerHTMLElement]); + this.drawers = new YafElementDrawers(this, drawerHTMLElement, drawerTriggerHTMLElement, this.id); + drawerHTMLElement.prepend(factory.tagToggles(this.drawers)); + /** + * NOTE: `drawers.renderDrawers()` is called from `YafMemberDeclaration` or `YafContentMembers`. + * That is the root of the drawer tree and propagates downwards to branches + * from within the `renderDrawers` method itself. + */ + } + disconnectedCallback() { + this.drawers.drawerHasDisconnected(); + } + get pageId() { + let id; + events.dispatch(action.content.getPageId((pageId) => { + id = pageId; + })); + return id; + } +} +_a = YafMemberGroupReflection; +YafMemberGroupReflection.factory = { + drawerListChildren: (children, idPrefix = '') => children.map((child) => { + const liHTMLElement = _a.factory.listItem(child.flags); + const id = `${idPrefix ? idPrefix + '.' : ''}${child.name}`; + liHTMLElement.id = id; + liHTMLElement.appendChild(_a.factory.member(child, id)); + return liHTMLElement; + }), + listItem: (flags) => makeElement('li', flags ? normaliseFlags(flags).join(' ') : ''), + member: (data, idPrefix) => makeElement('yaf-member', null, null, { data, idPrefix }), + tagToggles: (drawers) => { + const toggleHTMLElement = makeElement('yaf-widget-tag-toggle', 'tagtoggles', null, { + flagCounts: drawers.flagCounts, + }); + const liHTMLElement = makeElement('li'); + liHTMLElement.appendChild(toggleHTMLElement); + return liHTMLElement; + }, + counterWidget: (count) => makeElement('yaf-widget-counter', null, null, { + count, + }), + makeNestedTitleSpan: (titleString, idPrefix, pageId, drawerTriggerHTMLElement) => { + const { makeDrawerToggle } = _a.factory; + const wrapperHTMLElement = makeElement('span', 'wrapper'); + if (!idPrefix) { + wrapperHTMLElement.appendChild(makeDrawerToggle(titleString, drawerTriggerHTMLElement)); + return wrapperHTMLElement; + } + const fragments = idPrefix.split('.'); + const fragmentHTMLElements = []; + fragments.forEach((fragment, i) => { + const linkHTMLElement = makeLinkElement(`#${fragments.slice(0, i + 1).join('.')}`, undefined, fragment); + /* + makeElement('a', undefined, fragment); + linkHTMLElement.setAttribute( + 'href', + `#${fragments.slice(0, i + 1).join('.')}` + ); + */ + fragmentHTMLElements.push(linkHTMLElement); + if (i < fragments.length - 1) + fragmentHTMLElements.push(makeSymbolSpan(' : ')); + }); + wrapperHTMLElement.appendChildren([ + ...fragmentHTMLElements, + makeDrawerToggle(titleString, drawerTriggerHTMLElement), + ]); + return wrapperHTMLElement; + }, + makeDrawerToggle: (title, drawerTriggerHTMLElement) => { + const handleIconHTMLElement = makeIconSpan('expand_less'); + const iconHTMLElement = makeElement('span', 'icon'); + iconHTMLElement.appendChild(handleIconHTMLElement); + drawerTriggerHTMLElement.appendChildren([ + iconHTMLElement, + makeTitleSpan(title), + ]); + return drawerTriggerHTMLElement; + }, +}; +/** + * Calls `renderDrawers()` from the root of the drawer tree only. + * @param parent + */ +YafMemberGroupReflection.renderDrawersFromRoot = (parent) => { + const drawerHTMLElements = [...parent.children].filter((child) => 'drawers' in child); + drawerHTMLElements.forEach((drawer) => drawer.drawers.renderDrawers()); +}; +const yafMemberGroupReflection = 'yaf-member-group-reflection'; +customElements.define(yafMemberGroupReflection, YafMemberGroupReflection); +//# sourceMappingURL=YafMemberGroupReflection.js.map \ No newline at end of file diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Member/YafMemberGroupReflection.js.map b/docs/v1.0.0-beta01/frontend/webComponents/Member/YafMemberGroupReflection.js.map new file mode 100644 index 000000000..d4a5be4a6 --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Member/YafMemberGroupReflection.js.map @@ -0,0 +1 @@ +{"version":3,"file":"YafMemberGroupReflection.js","sourceRoot":"","sources":["../../../../../src/frontend/webComponents/Member/YafMemberGroupReflection.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Member/YafMemberSignatures.d.ts b/docs/v1.0.0-beta01/frontend/webComponents/Member/YafMemberSignatures.d.ts new file mode 100644 index 000000000..06e0d36b6 --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Member/YafMemberSignatures.d.ts @@ -0,0 +1,6 @@ +import { YafSignatureReflection } from '../../../types/types.js'; +import { YafHTMLElement } from '../../index.js'; +export declare class YafMemberSignatures extends YafHTMLElement { + onConnect(): void; + private static factory; +} diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Member/YafMemberSignatures.js b/docs/v1.0.0-beta01/frontend/webComponents/Member/YafMemberSignatures.js new file mode 100644 index 000000000..9e07f4f9a --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Member/YafMemberSignatures.js @@ -0,0 +1,27 @@ +import appState from '../../handlers/AppState.js'; +import { makeFlags, makeElement } from '../../yafElement.js'; +import { YafHTMLElement } from '../../index.js'; +export class YafMemberSignatures extends YafHTMLElement { + onConnect() { + this.props.forEach((signature) => { + const { flags, comment } = signature; + const { factory } = YafMemberSignatures; + const flagsHTMLElement = this.props.length > 1 ? makeFlags(flags, comment) : undefined; + const titleHTMLElement = factory.signatureTitle(signature); + const bodyHTMLElement = factory.signatureBody(signature); + this.appendChildren([ + flagsHTMLElement, + titleHTMLElement, + bodyHTMLElement, + ]); + }); + } +} +YafMemberSignatures.factory = { + signatureTitle: (signature) => makeElement('yaf-signature-title', null, null, Object.assign(Object.assign({}, signature), { hideName: false, arrowStyle: signature.kind === + appState.reflectionKind.CallSignature, wrappedInPre: true })), + signatureBody: (signature) => makeElement('yaf-signature-body', null, null, signature), +}; +const yafMemberSignatures = 'yaf-member-signatures'; +customElements.define(yafMemberSignatures, YafMemberSignatures); +//# sourceMappingURL=YafMemberSignatures.js.map \ No newline at end of file diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Member/YafMemberSignatures.js.map b/docs/v1.0.0-beta01/frontend/webComponents/Member/YafMemberSignatures.js.map new file mode 100644 index 000000000..d80fa2768 --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Member/YafMemberSignatures.js.map @@ -0,0 +1 @@ +{"version":3,"file":"YafMemberSignatures.js","sourceRoot":"","sources":["../../../../../src/frontend/webComponents/Member/YafMemberSignatures.ts"],"names":[],"mappings":"AACA,OAAO,QAAQ,MAAM,4BAA4B,CAAC;AAElD,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAEhD,MAAM,OAAO,mBAAoB,SAAQ,cAExC;IACA,SAAS;QACR,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE;YAChC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,SAAS,CAAC;YACrC,MAAM,EAAE,OAAO,EAAE,GAAG,mBAAmB,CAAC;YAExC,MAAM,gBAAgB,GACrB,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAC/D,MAAM,gBAAgB,GAAG,OAAO,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;YAC3D,MAAM,eAAe,GAAG,OAAO,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;YAEzD,IAAI,CAAC,cAAc,CAAC;gBACnB,gBAAgB;gBAChB,gBAAgB;gBAChB,eAAe;aACf,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;IACJ,CAAC;;AAEc,2BAAO,GAAG;IACxB,cAAc,EAAE,CAAC,SAAiC,EAAE,EAAE,CACrD,WAAW,CACV,qBAAqB,EACrB,IAAI,EACJ,IAAI,kCAEA,SAAS,KACZ,QAAQ,EAAE,KAAK,EACf,UAAU,EACT,SAAS,CAAC,IAAI;YACd,QAAQ,CAAC,cAAc,CAAC,aAAa,EACtC,YAAY,EAAE,IAAI,IAEnB;IACF,aAAa,EAAE,CAAC,SAAiC,EAAE,EAAE,CACpD,WAAW,CACV,oBAAoB,EACpB,IAAI,EACJ,IAAI,EACJ,SAAS,CACT;CACF,CAAC;AAGH,MAAM,mBAAmB,GAAG,uBAAuB,CAAC;AACpD,cAAc,CAAC,MAAM,CAAC,mBAAmB,EAAE,mBAAmB,CAAC,CAAC"} \ No newline at end of file diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Member/YafMemberSources.d.ts b/docs/v1.0.0-beta01/frontend/webComponents/Member/YafMemberSources.d.ts new file mode 100644 index 000000000..2c9922cd7 --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Member/YafMemberSources.d.ts @@ -0,0 +1,5 @@ +import { YafDeclarationReflection, YafSignatureReflection } from '../../../types/types.js'; +import { YafHTMLElement } from '../../index.js'; +export declare class YafMemberSources extends YafHTMLElement { + onConnect(): void; +} diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Member/YafMemberSources.js b/docs/v1.0.0-beta01/frontend/webComponents/Member/YafMemberSources.js new file mode 100644 index 000000000..aa8ea48bb --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Member/YafMemberSources.js @@ -0,0 +1,22 @@ +import { YafHTMLElement } from '../../index.js'; +import { makeElement, makeLinkElement } from '../../yafElement.js'; +export class YafMemberSources extends YafHTMLElement { + onConnect() { + const { sources } = this.props; + const headerHTMLElement = makeElement('h5', null, 'Defined in:'); + const ulHTMLElement = makeElement('ul', 'references'); + const sourcelistHTMLElements = sources === null || sources === void 0 ? void 0 : sources.map((source) => { + const { fileName, line, url } = source; + const liHTMLElement = makeElement('li'); + url + ? liHTMLElement.appendChild(makeLinkElement(url, undefined, `${fileName}:${line}`)) + : (liHTMLElement.innerText = `${fileName}:${line}`); + return liHTMLElement; + }); + ulHTMLElement.appendChildren(sourcelistHTMLElements); + this.appendChildren([headerHTMLElement, ulHTMLElement]); + } +} +const yafMemberSources = 'yaf-member-sources'; +customElements.define(yafMemberSources, YafMemberSources); +//# sourceMappingURL=YafMemberSources.js.map \ No newline at end of file diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Member/YafMemberSources.js.map b/docs/v1.0.0-beta01/frontend/webComponents/Member/YafMemberSources.js.map new file mode 100644 index 000000000..dbee2ccf6 --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Member/YafMemberSources.js.map @@ -0,0 +1 @@ +{"version":3,"file":"YafMemberSources.js","sourceRoot":"","sources":["../../../../../src/frontend/webComponents/Member/YafMemberSources.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEnE,MAAM,OAAO,gBAAiB,SAAQ,cAErC;IACA,SAAS;QACR,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QAE/B,MAAM,iBAAiB,GAAG,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,aAAa,CAAC,CAAC;QACjE,MAAM,aAAa,GAAG,WAAW,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;QACtD,MAAM,sBAAsB,GAAG,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;YACtD,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,MAAM,CAAC;YACvC,MAAM,aAAa,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;YACxC,GAAG;gBACF,CAAC,CAAC,aAAa,CAAC,WAAW,CACzB,eAAe,CAAC,GAAG,EAAE,SAAS,EAAE,GAAG,QAAQ,IAAI,IAAI,EAAE,CAAC,CACrD;gBACH,CAAC,CAAC,CAAC,aAAa,CAAC,SAAS,GAAG,GAAG,QAAQ,IAAI,IAAI,EAAE,CAAC,CAAC;YAErD,OAAO,aAAa,CAAC;QACtB,CAAC,CAAC,CAAC;QAEH,aAAa,CAAC,cAAc,CAAC,sBAAsB,CAAC,CAAC;QACrD,IAAI,CAAC,cAAc,CAAC,CAAC,iBAAiB,EAAE,aAAa,CAAC,CAAC,CAAC;IACzD,CAAC;CACD;AAED,MAAM,gBAAgB,GAAG,oBAAoB,CAAC;AAC9C,cAAc,CAAC,MAAM,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,CAAC"} \ No newline at end of file diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Member/index.d.ts b/docs/v1.0.0-beta01/frontend/webComponents/Member/index.d.ts new file mode 100644 index 000000000..53485c675 --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Member/index.d.ts @@ -0,0 +1,7 @@ +export * from './YafMember.js'; +export * from './YafMemberDeclaration.js'; +export * from './YafMemberGetterSetter.js'; +export * from './YafMemberGroupLink.js'; +export * from './YafMemberGroupReflection.js'; +export * from './YafMemberSignatures.js'; +export * from './YafMemberSources.js'; diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Member/index.js b/docs/v1.0.0-beta01/frontend/webComponents/Member/index.js new file mode 100644 index 000000000..cbe9fadad --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Member/index.js @@ -0,0 +1,8 @@ +export * from './YafMember.js'; +export * from './YafMemberDeclaration.js'; +export * from './YafMemberGetterSetter.js'; +export * from './YafMemberGroupLink.js'; +export * from './YafMemberGroupReflection.js'; +export * from './YafMemberSignatures.js'; +export * from './YafMemberSources.js'; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Member/index.js.map b/docs/v1.0.0-beta01/frontend/webComponents/Member/index.js.map new file mode 100644 index 000000000..79e8f476a --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Member/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/frontend/webComponents/Member/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,yBAAyB,CAAC;AACxC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,0BAA0B,CAAC;AACzC,cAAc,uBAAuB,CAAC"} \ No newline at end of file diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Navigation/YafNavigationHeader.d.ts b/docs/v1.0.0-beta01/frontend/webComponents/Navigation/YafNavigationHeader.d.ts new file mode 100644 index 000000000..7ad9d5488 --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Navigation/YafNavigationHeader.d.ts @@ -0,0 +1,13 @@ +import { YafElementDrawers } from '../../YafElementDrawers.js'; +import { YafHTMLElement } from '../../index.js'; +/** + * + */ +export declare class YafNavigationHeader extends YafHTMLElement { + drawers: YafElementDrawers; + id: string; + onConnect(): void; + disconnectedCallback(): void; + private static factory; + private keyKinds; +} diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Navigation/YafNavigationHeader.js b/docs/v1.0.0-beta01/frontend/webComponents/Navigation/YafNavigationHeader.js new file mode 100644 index 000000000..aca95b155 --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Navigation/YafNavigationHeader.js @@ -0,0 +1,112 @@ +var _a; +import appState from '../../handlers/AppState.js'; +import { YafElementDrawers } from '../../YafElementDrawers.js'; +import { makeIconSpan, makeElement, makeLinkElement, makeNameSpan, } from '../../yafElement.js'; +import { YafHTMLElement } from '../../index.js'; +import { events } from '../../handlers/index.js'; +const { action } = events; +/** + * + */ +export class YafNavigationHeader extends YafHTMLElement { + constructor() { + super(...arguments); + this.id = 'yafNavigationHeader'; + this.keyKinds = [ + appState.reflectionKind.Property, + appState.reflectionKind.Method, + appState.reflectionKind.Accessor, + appState.reflectionKind.Variable, + appState.reflectionKind.TypeAlias, + appState.reflectionKind.Constructor, + appState.reflectionKind.Function, + appState.reflectionKind.Class, + appState.reflectionKind.Namespace, + appState.reflectionKind.Interface, + appState.reflectionKind.Namespace, + appState.reflectionKind.Enum, + appState.reflectionKind.Reference, + ]; + } + onConnect() { + const { factory } = YafNavigationHeader; + const drawerTriggerHTMLElement = makeElement('span', 'info'); + const navigationControlsHTMLElement = factory.navigationControls(drawerTriggerHTMLElement); + const drawerHTMLElement = factory.infoDrawer(this.keyKinds, appState.kindSymbols); + drawerTriggerHTMLElement.appendChildren([ + makeIconSpan('question_mark', 18), + makeIconSpan('highlight_off'), + ]); + this.appendChildren([ + factory.projectTitle(), + navigationControlsHTMLElement, + drawerHTMLElement, + ]); + this.drawers = new YafElementDrawers(this, drawerHTMLElement, drawerTriggerHTMLElement, this.id); + this.drawers.renderDrawers(true); + } + disconnectedCallback() { + this.drawers.drawerHasDisconnected(); + } +} +_a = YafNavigationHeader; +YafNavigationHeader.factory = { + projectTitle: () => { + const homeLinkHTMLElement = makeLinkElement('/', 'button'); + const titleHTMLElement = makeElement('div'); + titleHTMLElement.id = 'projectTitle'; + homeLinkHTMLElement.appendChild(makeIconSpan('home')); + titleHTMLElement.appendChildren([ + homeLinkHTMLElement, + makeElement('span', 'title', appState.projectName), + ]); + return titleHTMLElement; + }, + navigationControls: (drawerTriggerHTMLElement) => { + const navigationControlsHTMLElement = makeElement('div', 'controls-navigation'); + navigationControlsHTMLElement.appendChildren([ + makeElement('yaf-navigation-searchbar'), + _a.factory.menuRollControls(drawerTriggerHTMLElement), + ]); + return navigationControlsHTMLElement; + }, + menuRollControls: (drawerTriggerHTMLElement) => { + const openAllHTMLElement = makeElement('span', 'open button'); + const closeAllHTMLElement = makeElement('span', 'close button'); + const drawerControlsHTMLElement = makeElement('span', 'controls-drawers'); + openAllHTMLElement.appendChild(makeIconSpan('expand_more')); + closeAllHTMLElement.appendChild(makeIconSpan('expand_less')); + drawerControlsHTMLElement.appendChildren([ + drawerTriggerHTMLElement, + openAllHTMLElement, + closeAllHTMLElement, + ]); + openAllHTMLElement.onclick = () => events.dispatch(action.menu.rollMenuDown()); + closeAllHTMLElement.onclick = () => events.dispatch(action.menu.rollMenuUp()); + return drawerControlsHTMLElement; + }, + infoDrawer: (keyKinds, kindSymbols) => { + const infoDrawerHTMLElement = makeElement('div', 'drawers-info'); + const innerHTMLElement = makeElement('span', 'inner'); + const keySymbolHTMLElements = keyKinds.map((keyKind) => { + let nameString = kindSymbols[keyKind].className; + nameString = + nameString.charAt(0).toUpperCase() + nameString.slice(1); + const widgetHTMLElement = makeElement('span', 'widget'); + const nameHTMLElement = makeNameSpan(nameString); + const kindIconHTMLElement = _a.factory.kindIcon(String(keyKind)); + widgetHTMLElement.appendChildren([ + kindIconHTMLElement, + nameHTMLElement, + ]); + return widgetHTMLElement; + }); + innerHTMLElement.appendChildren(keySymbolHTMLElements); + infoDrawerHTMLElement.appendChild(innerHTMLElement); + return infoDrawerHTMLElement; + }, + kindIcon: (kind) => makeElement('yaf-widget-kind', null, null, { kind }), +}; +const yafNavigationHeader = 'yaf-navigation-header'; +customElements.define(yafNavigationHeader, YafNavigationHeader); +//# sourceMappingURL=YafNavigationHeader.js.map \ No newline at end of file diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Navigation/YafNavigationHeader.js.map b/docs/v1.0.0-beta01/frontend/webComponents/Navigation/YafNavigationHeader.js.map new file mode 100644 index 000000000..52b9dae2f --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Navigation/YafNavigationHeader.js.map @@ -0,0 +1 @@ +{"version":3,"file":"YafNavigationHeader.js","sourceRoot":"","sources":["../../../../../src/frontend/webComponents/Navigation/YafNavigationHeader.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Navigation/YafNavigationLink.d.ts b/docs/v1.0.0-beta01/frontend/webComponents/Navigation/YafNavigationLink.d.ts new file mode 100644 index 000000000..ef5f69d90 --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Navigation/YafNavigationLink.d.ts @@ -0,0 +1,6 @@ +import { YafHTMLElement } from '../../index.js'; +export declare class YafNavigationLink extends YafHTMLElement { + aHTMLElement: HTMLAnchorElement; + onConnect(): void; + disconnectedCallback(): void; +} diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Navigation/YafNavigationLink.js b/docs/v1.0.0-beta01/frontend/webComponents/Navigation/YafNavigationLink.js new file mode 100644 index 000000000..42608dcc1 --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Navigation/YafNavigationLink.js @@ -0,0 +1,47 @@ +import { YafHTMLElement } from '../../index.js'; +import router from '../../handlers/Router.js'; +import { makeElement } from '../../yafElement.js'; +import appState from '../../handlers/AppState.js'; +import { events } from '../../handlers/index.js'; +export class YafNavigationLink extends YafHTMLElement { + onConnect() { + this.aHTMLElement = makeElement('a'); + this.classList.forEach((className) => { + this.aHTMLElement.classList.add(className); + this.classList.remove(className); + }); + const Href = this.getAttribute('href'); + if (Href === '/') + this.setAttribute('href', router.baseUrl); + if (Href === null || Href === void 0 ? void 0 : Href.startsWith('#')) + this.setAttribute('href', window.location.search + Href); + let targetURL = router.getTargetURL(this); + if (!isNaN(Number(Href))) { + const reflectionLink = appState.reflectionMap[Href]; + if (!reflectionLink) + return; + const { query, hash } = reflectionLink; + this.setAttribute('href', hash ? `?page=${query}#${hash}` : `?page=${query}`); + targetURL = router.getTargetURL(this); + } + if (targetURL.origin !== window.location.origin) { + this.setAttribute('target', '_blank'); + } + this.setAttribute('href', encodeURI(targetURL.href)); + this.getAttributeNames().forEach((name) => { + const value = this.getAttribute(name); + if (value) { + this.aHTMLElement.setAttribute(name, value); + } + }); + this.aHTMLElement.replaceChildren(...[...this.childNodes]); + this.replaceChildren(this.aHTMLElement); + events.on('click', (e) => router.route(this, e), this.aHTMLElement); + } + disconnectedCallback() { + events.off('click', (e) => router.route(this, e), this.aHTMLElement); + } +} +const yafNavigationLink = 'yaf-navigation-link'; +customElements.define(yafNavigationLink, YafNavigationLink); +//# sourceMappingURL=YafNavigationLink.js.map \ No newline at end of file diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Navigation/YafNavigationLink.js.map b/docs/v1.0.0-beta01/frontend/webComponents/Navigation/YafNavigationLink.js.map new file mode 100644 index 000000000..4f6e84f95 --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Navigation/YafNavigationLink.js.map @@ -0,0 +1 @@ +{"version":3,"file":"YafNavigationLink.js","sourceRoot":"","sources":["../../../../../src/frontend/webComponents/Navigation/YafNavigationLink.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Navigation/YafNavigationMenu.d.ts b/docs/v1.0.0-beta01/frontend/webComponents/Navigation/YafNavigationMenu.d.ts new file mode 100644 index 000000000..82dfc0c0e --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Navigation/YafNavigationMenu.d.ts @@ -0,0 +1,16 @@ +import { YafHTMLElement } from '../../index.js'; +import { treeMenuRoot } from '../../../types/types.js'; +/** + * + */ +export declare class YafNavigationMenu extends YafHTMLElement { + onConnect(): void; + disconnectedCallback(): void; + private recordScrollTop; + private focusIndex; + private eventsList; + static treeBranchSort: (tree: treeMenuRoot) => { + links: import("../../../types/types.js").YAFReflectionLink[]; + tree: treeMenuRoot; + }; +} diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Navigation/YafNavigationMenu.js b/docs/v1.0.0-beta01/frontend/webComponents/Navigation/YafNavigationMenu.js new file mode 100644 index 000000000..e39b1e089 --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Navigation/YafNavigationMenu.js @@ -0,0 +1,79 @@ +import appState from '../../handlers/AppState.js'; +import { makeElement, scrollToAnchor } from '../../yafElement.js'; +import { YafHTMLElement } from '../../index.js'; +import ErrorHandlers from '../../handlers/ErrorHandlers.js'; +import { events } from '../../handlers/index.js'; +const { trigger, action } = events; +/** + * + */ +export class YafNavigationMenu extends YafHTMLElement { + constructor() { + super(...arguments); + this.recordScrollTop = () => { + appState.setScrollTop('menu', this.scrollTop); + }; + this.focusIndex = ({ detail, }) => { + events.dispatch(action.menu.search('')); + events.dispatch(action.menu.toggle('open')); + setTimeout(() => { + scrollToAnchor(this, `menu_${detail.target}`); + }); + }; + this.eventsList = [ + ['scroll', this.recordScrollTop, this], + [trigger.menu.scrollTo, this.focusIndex], + ]; + } + onConnect() { + const menuData = appState.navigationMenu; + const navHTMLElement = makeElement('nav'); + const menuHTMLElement = makeElement('menu'); + const sortedBranches = YafNavigationMenu.treeBranchSort(menuData); + const { links, tree } = sortedBranches; + const listHTMLElements = links.map((link) => { + if (link.kind === appState.reflectionKind.Project) + return undefined; + const liHTMLElement = makeElement('li'); + const menuItemHTMLElement = makeElement('yaf-navigation-menu-branch', null, null, { + link, + branch: tree[link.id], + }); + menuItemHTMLElement.setAttribute('root', ''); + liHTMLElement.appendChild(menuItemHTMLElement); + return liHTMLElement; + }); + menuHTMLElement.appendChildren(listHTMLElements); + navHTMLElement.appendChild(menuHTMLElement); + this.appendChild(navHTMLElement); + /** + * NOTE: Calls `renderDrawers()` from the root of the drawer tree only. + */ + [...menuHTMLElement.children].forEach((menuItem) => { + const drawer = [...menuItem.children].find((child) => 'drawers' in child); + drawer === null || drawer === void 0 ? void 0 : drawer.drawers.renderDrawers(); + }); + this.scrollTop = appState.scrollTops['menu'] || 0; + this.eventsList.forEach((event) => events.on(...event)); + } + disconnectedCallback() { + this.eventsList.forEach((event) => events.off(...event)); + } +} +YafNavigationMenu.treeBranchSort = (tree) => { + const branchLinkList = Object.keys(tree) + .map((id) => { + const reflectionLink = appState.reflectionMap[id]; + if (!reflectionLink) + ErrorHandlers.notFound(`id "${id}" not found on reflectionMap`); + return reflectionLink; + }) + .filter((reflectionLink) => !!reflectionLink); + const sortedBranchLinkList = branchLinkList + .sort((a, b) => a.name.localeCompare(b.name)) + .sort((a, b) => (a.kind > b.kind ? -1 : a.kind === b.kind ? 0 : 1)); + return { links: sortedBranchLinkList, tree }; +}; +const yafNavigationMenu = 'yaf-navigation-menu'; +customElements.define(yafNavigationMenu, YafNavigationMenu); +//# sourceMappingURL=YafNavigationMenu.js.map \ No newline at end of file diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Navigation/YafNavigationMenu.js.map b/docs/v1.0.0-beta01/frontend/webComponents/Navigation/YafNavigationMenu.js.map new file mode 100644 index 000000000..e2491034e --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Navigation/YafNavigationMenu.js.map @@ -0,0 +1 @@ +{"version":3,"file":"YafNavigationMenu.js","sourceRoot":"","sources":["../../../../../src/frontend/webComponents/Navigation/YafNavigationMenu.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,4BAA4B,CAAC;AAElD,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAElE,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAEhD,OAAO,aAAa,MAAM,iCAAiC,CAAC;AAC5D,OAAO,EAAU,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAEzD,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;AAEnC;;GAEG;AACH,MAAM,OAAO,iBAAkB,SAAQ,cAAc;IAArD;;QAgDS,oBAAe,GAAG,GAAG,EAAE;YAC9B,QAAQ,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QAC/C,CAAC,CAAC;QACM,eAAU,GAAG,CAAC,EACrB,MAAM,GACmC,EAAE,EAAE;YAC7C,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;YACxC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;YAC5C,UAAU,CAAC,GAAG,EAAE;gBACf,cAAc,CAAC,IAAI,EAAE,QAAQ,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;YAC/C,CAAC,CAAC,CAAC;QACJ,CAAC,CAAC;QAEM,eAAU,GAAiB;YAClC,CAAC,QAAQ,EAAE,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC;YACtC,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC;SACxC,CAAC;IAmBH,CAAC;IAlFA,SAAS;QACR,MAAM,QAAQ,GAAG,QAAQ,CAAC,cAAc,CAAC;QACzC,MAAM,cAAc,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;QAC1C,MAAM,eAAe,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;QAE5C,MAAM,cAAc,GAAG,iBAAiB,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;QAClE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,cAAc,CAAC;QAEvC,MAAM,gBAAgB,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YAC3C,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,cAAc,CAAC,OAAO;gBAAE,OAAO,SAAS,CAAC;YACpE,MAAM,aAAa,GAAG,WAAW,CAAgB,IAAI,CAAC,CAAC;YACvD,MAAM,mBAAmB,GAAG,WAAW,CAGrC,4BAA4B,EAAE,IAAI,EAAE,IAAI,EAAE;gBAC3C,IAAI;gBACJ,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;aACrB,CAAC,CAAC;YACH,mBAAmB,CAAC,YAAY,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;YAC7C,aAAa,CAAC,WAAW,CAAC,mBAAmB,CAAC,CAAC;YAE/C,OAAO,aAAa,CAAC;QACtB,CAAC,CAAC,CAAC;QAEH,eAAe,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC;QACjD,cAAc,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC;QAC5C,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;QAEjC;;WAEG;QACyB,CAAC,GAAG,eAAe,CAAC,QAAQ,CAAE,CAAC,OAAO,CACjE,CAAC,QAAQ,EAAE,EAAE;YACZ,MAAM,MAAM,GAAG,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC,IAAI,CACzC,CAAC,KAAK,EAAE,EAAE,CAAC,SAAS,IAAI,KAAK,CAC7B,CAAC;YACD,MAAkC,aAAlC,MAAM,uBAAN,MAAM,CAA8B,OAAO,CAAC,aAAa,EAAE,CAAC;QAC9D,CAAC,CACD,CAAC;QAEF,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAClD,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;IACzD,CAAC;IACD,oBAAoB;QACnB,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;IAC1D,CAAC;;AAoBM,gCAAc,GAAG,CAAC,IAAkB,EAAE,EAAE;IAC9C,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;SACtC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE;QACX,MAAM,cAAc,GAAG,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;QAClD,IAAI,CAAC,cAAc;YAClB,aAAa,CAAC,QAAQ,CACrB,OAAO,EAAE,8BAA8B,CACvC,CAAC;QACH,OAAO,cAAc,CAAC;IACvB,CAAC,CAAC;SACD,MAAM,CAAC,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;IAC/C,MAAM,oBAAoB,GAAG,cAAc;SACzC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;SAC5C,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAErE,OAAO,EAAE,KAAK,EAAE,oBAAoB,EAAE,IAAI,EAAE,CAAC;AAC9C,CAAC,CAAC;AAEH,MAAM,iBAAiB,GAAkB,qBAAqB,CAAC;AAC/D,cAAc,CAAC,MAAM,CAAC,iBAAiB,EAAE,iBAAiB,CAAC,CAAC"} \ No newline at end of file diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Navigation/YafNavigationMenuBranch.d.ts b/docs/v1.0.0-beta01/frontend/webComponents/Navigation/YafNavigationMenuBranch.d.ts new file mode 100644 index 000000000..3e1b1b680 --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Navigation/YafNavigationMenuBranch.d.ts @@ -0,0 +1,17 @@ +import { treeMenuBranch, YAFReflectionLink } from '../../../types/types.js'; +import { YafElementDrawers } from '../../YafElementDrawers.js'; +import { YafHTMLElement } from '../../index.js'; +/** + * + */ +export declare class YafNavigationMenuBranch extends YafHTMLElement<{ + link: YAFReflectionLink; + branch: treeMenuBranch; + parentDrawerElement?: HTMLElement; +}> { + drawers: YafElementDrawers; + onConnect(): void; + disconnectedCallback(): void; + private eventsList; + private static factory; +} diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Navigation/YafNavigationMenuBranch.js b/docs/v1.0.0-beta01/frontend/webComponents/Navigation/YafNavigationMenuBranch.js new file mode 100644 index 000000000..11771a5c6 --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Navigation/YafNavigationMenuBranch.js @@ -0,0 +1,132 @@ +var _a; +import appState from '../../handlers/AppState.js'; +import { YafElementDrawers } from '../../YafElementDrawers.js'; +import { makeElement, normaliseFlags, makeLinkElement, makeNameSpan, makeIconSpan, } from '../../yafElement.js'; +import { YafNavigationMenu } from './index.js'; +import { YafHTMLElement } from '../../index.js'; +import { events } from '../../handlers/index.js'; +const { trigger } = events; +/** + * + */ +export class YafNavigationMenuBranch extends YafHTMLElement { + constructor() { + super(...arguments); + this.eventsList = () => { + var _b, _c; + return [ + [trigger.menu.rollMenuDown, (_b = this.drawers) === null || _b === void 0 ? void 0 : _b.openDrawer], + [trigger.menu.rollMenuUp, (_c = this.drawers) === null || _c === void 0 ? void 0 : _c.closeDrawer], + ]; + }; + } + onConnect() { + const { children } = this.props.branch; + const { kind, id } = this.props.link; + const { parentDrawerElement } = this.props; + const { factory } = YafNavigationMenuBranch; + this.id = `menu_${id}`; + this.classList.add(appState.reflectionKind[kind].toLowerCase()); + const childCount = Object.keys(children).length; + const drawerTriggerHTMLElement = makeElement('span', 'trigger'); + const drawerHeaderHTMLElement = factory.makeDrawerheader(this.props.link, 'span', drawerTriggerHTMLElement, childCount); + if (childCount) { + const drawerHTMLElement = makeElement('ul'); + drawerHTMLElement.replaceChildren(...factory.makeDrawerChildrenArray(drawerTriggerHTMLElement, childCount, this)); + this.appendChildren([drawerHeaderHTMLElement, drawerHTMLElement]); + this.drawers = new YafElementDrawers(this, drawerHTMLElement, drawerTriggerHTMLElement, `menu_${id}`, parentDrawerElement); + /** + * NOTE: `drawers.renderDrawers()` is called from `YafNavigationMenu`. + * That is the root of the menu tree and propagates downwards to branches + * from within the `renderDrawers` method itself. + */ + drawerHTMLElement.prepend(factory.makeDrawerTagToggles(this.drawers)); + } + else { + this.appendChild(drawerHeaderHTMLElement); + } + this.eventsList().forEach((event) => events.on(...event)); + } + disconnectedCallback() { + this.drawers.drawerHasDisconnected(); + this.eventsList().forEach((event) => events.off(...event)); + } +} +_a = YafNavigationMenuBranch; +YafNavigationMenuBranch.factory = { + makeDrawerChildrenArray: (drawerTrigger, childCount, self) => { + if (!childCount) + return []; + const { children } = self.props.branch; + const sortedBranches = YafNavigationMenu.treeBranchSort(children); + const { links, tree } = sortedBranches; + const newMenuElements = links.map((link) => { + const childCount = Object.keys(tree[link.id].children).length; + const menuLiHTMLElement = _a.factory.makeDrawerheader(link, 'li', drawerTrigger, childCount); + if (childCount) { + return _a.factory.makeBranch(tree[link.id], link, self, menuLiHTMLElement); + } + menuLiHTMLElement.id = `menu_${link.id}`; + return menuLiHTMLElement; + }); + return newMenuElements; + }, + makeBranch: (branch, link, self, liHTMLElement) => { + //const liHTMLElement = makeElement('li'); + const branchHTMLElement = makeElement('yaf-navigation-menu-branch', normaliseFlags(self.props.link.flags).join(' '), null, { branch, link, parentDrawerElement: self }); + liHTMLElement.appendChild(branchHTMLElement); + return liHTMLElement; + }, + makeDrawerheader: (reflectionLink, wrapper, drawerTriggerHTMLElement, childCount) => { + const { query, hash, name, kind, flags } = reflectionLink; + const flagClasses = normaliseFlags(flags).join(' ').trim(); + const isBranchList = wrapper === 'li' && childCount; + let href = `?page=${query}`; + if (hash) + href += `#${hash}`; + const classes = isBranchList + ? flagClasses + : childCount + ? 'header parent' + : `header ${flagClasses}`; + const headerHTMLElement = makeElement(wrapper, classes); + if (isBranchList) + return headerHTMLElement; + const headerLinkHTMLElement = makeLinkElement(href); + const nameHTMLElement = makeNameSpan(name); + const linkSymbolHTMLElement = makeElement('yaf-widget-kind', null, null, { kind: String(kind) }); + headerLinkHTMLElement.appendChild(nameHTMLElement); + headerHTMLElement.appendChildren([ + linkSymbolHTMLElement, + headerLinkHTMLElement, + ]); + if (!childCount) + return headerHTMLElement; + return childCount + ? _a.factory.extendHeader(headerHTMLElement, drawerTriggerHTMLElement, childCount) + : headerHTMLElement; + }, + extendHeader: (header, drawerTrigger, childCount) => { + const countWidget = makeElement('yaf-widget-counter', null, null, { + count: childCount, + fontSize: '.8rem', + }); + const icon = makeElement('span', 'icon'); + icon.appendChild(makeIconSpan('expand_less')); + drawerTrigger.appendChild(countWidget); + drawerTrigger.appendChild(icon); + header.appendChild(drawerTrigger); + return header; + }, + makeDrawerTagToggles: (drawers) => { + const toggleHTMLElement = makeElement('yaf-widget-tag-toggle', 'tagtoggles', null, { + flagCounts: drawers.flagCounts, + }); + const liHTMLElement = makeElement('li'); + liHTMLElement.appendChild(toggleHTMLElement); + return liHTMLElement; + }, +}; +const yafNavigationBranch = 'yaf-navigation-menu-branch'; +customElements.define(yafNavigationBranch, YafNavigationMenuBranch); +//# sourceMappingURL=YafNavigationMenuBranch.js.map \ No newline at end of file diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Navigation/YafNavigationMenuBranch.js.map b/docs/v1.0.0-beta01/frontend/webComponents/Navigation/YafNavigationMenuBranch.js.map new file mode 100644 index 000000000..90a3548fb --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Navigation/YafNavigationMenuBranch.js.map @@ -0,0 +1 @@ +{"version":3,"file":"YafNavigationMenuBranch.js","sourceRoot":"","sources":["../../../../../src/frontend/webComponents/Navigation/YafNavigationMenuBranch.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Navigation/YafNavigationSearch.d.ts b/docs/v1.0.0-beta01/frontend/webComponents/Navigation/YafNavigationSearch.d.ts new file mode 100644 index 000000000..ef8b26c00 --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Navigation/YafNavigationSearch.d.ts @@ -0,0 +1,16 @@ +import YafHTMLElement from '../../YafHTMLElement.js'; +/** + * + */ +export declare class YafNavigationSearch extends YafHTMLElement { + private resultsHTMLElement; + private debouncer; + private dictionary; + constructor(); + onConnect(): void; + disconnectedCallback(): void; + private search; + private match; + private eventsList; + private static factory; +} diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Navigation/YafNavigationSearch.js b/docs/v1.0.0-beta01/frontend/webComponents/Navigation/YafNavigationSearch.js new file mode 100644 index 000000000..8c153f1e1 --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Navigation/YafNavigationSearch.js @@ -0,0 +1,167 @@ +var _a; +import { appState, events } from '../../handlers/index.js'; +import { makeElement, makeLinkElement, makeNameSpan, makeSymbolSpan, normaliseFlags, } from '../../yafElement.js'; +import YafHTMLElement from '../../YafHTMLElement.js'; +const { trigger, action } = events; +/** + * + */ +export class YafNavigationSearch extends YafHTMLElement { + constructor() { + super(); + this.resultsHTMLElement = makeElement('ul', 'results'); + this.search = ({ detail }) => { + clearTimeout(this.debouncer); + this.debouncer = setTimeout(() => { + const { resultLink, tagToggles } = YafNavigationSearch.factory; + const { searchString } = detail; + const results = []; + this.dictionary.forEach((reflection) => { + if (!this.match(results, searchString, reflection)) { + this.match(results, searchString, reflection, 'query', 100); + } + }); + const resultHTMLListItems = results + .sort((a, b) => (a[0] > b[0] ? 1 : a[0] < b[0] ? -1 : 0)) + .map((result) => resultLink(result[1], searchString)); + this.resultsHTMLElement.replaceChildren(); + this.resultsHTMLElement.appendChildren(resultHTMLListItems); + const tagToggleHTMLElement = tagToggles(this.resultsHTMLElement); + this.resultsHTMLElement.prepend(tagToggleHTMLElement); + this.scrollTop = 0; + }, 600); + }; + this.match = (results, searchString, reflection, target = 'name', offset = 0) => { + searchString = searchString.trim(); + let targetString = reflection[target]; + if (searchString === targetString) { + results.push([0 + offset, reflection]); + return true; + } + if (targetString.startsWith(searchString)) { + results.push([1 + offset, reflection]); + return true; + } + if (targetString.includes(searchString)) { + results.push([2 + offset, reflection]); + return true; + } + searchString = searchString.toLocaleLowerCase(); + targetString = targetString.toLocaleLowerCase(); + if (searchString === targetString) { + results.push([3 + offset, reflection]); + return true; + } + if (targetString.startsWith(searchString)) { + results.push([4 + offset, reflection]); + return true; + } + if (targetString.includes(searchString)) { + results.push([5 + offset, reflection]); + return true; + } + return false; + }; + this.eventsList = [ + [trigger.menu.search, this.search], + [ + trigger.options.display, + ({ detail }) => { + const { key, value } = detail; + this.setAttribute(key, value); + }, + ], + ]; + const { SignatureContainer, SetSignature, GetSignature, SomeSignature, CallSignature, IndexSignature, ConstructorSignature, ContainsCallSignatures, } = appState.reflectionKind; + const excluded = [ + SignatureContainer, + SetSignature, + GetSignature, + SomeSignature, + CallSignature, + IndexSignature, + ConstructorSignature, + ContainsCallSignatures, + ]; + this.dictionary = Object.keys(appState.reflectionMap) + .map((id) => appState.reflectionMap[id]) + .filter((reflection) => excluded.indexOf(reflection.kind) === -1); + } + onConnect() { + const { display } = appState.options; + Object.keys(display).forEach((key) => { + this.setAttribute(key, appState.options.display[key]); + }); + this.eventsList.forEach((event) => events.on(...event)); + this.appendChild(this.resultsHTMLElement); + } + disconnectedCallback() { + this.eventsList.forEach((event) => events.off(...event)); + } +} +_a = YafNavigationSearch; +YafNavigationSearch.factory = { + resultLink: (reflectionLink, searchString) => { + const { highlight } = _a.factory; + const { query, hash, name, kind, flags } = reflectionLink; + const flagClasses = normaliseFlags(flags).join(' ').trim(); + const listHTMLElement = makeElement('li', flagClasses); + let href = `?page=${query}`; + if (hash) + href += `#${hash}`; + const linkHTMLElement = makeLinkElement(href); + const nameHTMLElement = highlight(makeNameSpan(name), searchString); + const queryHTMLElement = highlight(makeSymbolSpan(query), searchString); + const linkSymbolHTMLElement = makeElement('yaf-widget-kind', null, null, { kind: String(kind) }); + linkHTMLElement.appendChildren([nameHTMLElement, queryHTMLElement]); + listHTMLElement.appendChildren([ + linkSymbolHTMLElement, + linkHTMLElement, + ]); + return listHTMLElement; + }, + highlight: (span, searchString, anycase) => { + searchString = anycase + ? searchString.toLocaleLowerCase() + : searchString; + const resultString = anycase + ? span.innerText.toLocaleLowerCase() + : span.innerText; + if (resultString === searchString) { + span.classList.add('lit'); + return span; + } + if (resultString.includes(searchString)) { + const regexString = `(${searchString})`; + const regex = anycase + ? new RegExp(regexString, 'ig') + : new RegExp(regexString, 'g'); + const spanHTMLElements = span.innerText + .split(regex) + .map((part) => { + return makeElement('span', (anycase ? part.toLocaleLowerCase() : part) === + searchString + ? 'lit' + : undefined, part); + }); + span.innerText = ''; + span.appendChildren(spanHTMLElements); + return span; + } + return anycase + ? span + : _a.factory.highlight(span, searchString, true); + }, + tagToggles: (resultsHTMLElement) => { + const flagCounts = { + private: resultsHTMLElement.querySelectorAll('.private').length, + inherited: resultsHTMLElement.querySelectorAll('.inherited').length, + }; + const wrapperHTMLElement = makeElement('li'); + wrapperHTMLElement.appendChild(makeElement('yaf-widget-tag-toggle', undefined, undefined, { flagCounts })); + return wrapperHTMLElement; + }, +}; +const yafNavigationSearch = 'yaf-navigation-search'; +customElements.define(yafNavigationSearch, YafNavigationSearch); +//# sourceMappingURL=YafNavigationSearch.js.map \ No newline at end of file diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Navigation/YafNavigationSearch.js.map b/docs/v1.0.0-beta01/frontend/webComponents/Navigation/YafNavigationSearch.js.map new file mode 100644 index 000000000..2e89ffe7e --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Navigation/YafNavigationSearch.js.map @@ -0,0 +1 @@ +{"version":3,"file":"YafNavigationSearch.js","sourceRoot":"","sources":["../../../../../src/frontend/webComponents/Navigation/YafNavigationSearch.ts"],"names":[],"mappings":";AAOA,OAAO,EAAU,QAAQ,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,EACN,WAAW,EACX,eAAe,EACf,YAAY,EACZ,cAAc,EACd,cAAc,GACd,MAAM,qBAAqB,CAAC;AAC7B,OAAO,cAAc,MAAM,yBAAyB,CAAC;AAIrD,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;AAKnC;;GAEG;AACH,MAAM,OAAO,mBAAoB,SAAQ,cAAc;IAItD;QACC,KAAK,EAAE,CAAC;QAJD,uBAAkB,GAAG,WAAW,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QA4ClD,WAAM,GAAG,CAAC,EAAE,MAAM,EAAyC,EAAE,EAAE;YACtE,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC7B,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE;gBAChC,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,mBAAmB,CAAC,OAAO,CAAC;gBAC/D,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,CAAC;gBAChC,MAAM,OAAO,GAAY,EAAE,CAAC;gBAC5B,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE;oBACtC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,YAAY,EAAE,UAAU,CAAC,EAAE;wBACnD,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;qBAC5D;gBACF,CAAC,CAAC,CAAC;gBACH,MAAM,mBAAmB,GAAG,OAAO;qBACjC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;qBACxD,GAAG,CAAC,CAAC,MAAc,EAAE,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC;gBAE/D,IAAI,CAAC,kBAAkB,CAAC,eAAe,EAAE,CAAC;gBAC1C,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,mBAAmB,CAAC,CAAC;gBAC5D,MAAM,oBAAoB,GAAG,UAAU,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;gBACjE,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;gBACtD,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;YACpB,CAAC,EAAE,GAAG,CAAC,CAAC;QACT,CAAC,CAAC;QACM,UAAK,GAAG,CACf,OAAgB,EAChB,YAAoB,EACpB,UAA6B,EAC7B,SAA2B,MAAM,EACjC,MAAM,GAAG,CAAC,EACT,EAAE;YACH,YAAY,GAAG,YAAY,CAAC,IAAI,EAAE,CAAC;YACnC,IAAI,YAAY,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;YACtC,IAAI,YAAY,KAAK,YAAY,EAAE;gBAClC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC;gBACvC,OAAO,IAAI,CAAC;aACZ;YACD,IAAI,YAAY,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE;gBAC1C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC;gBACvC,OAAO,IAAI,CAAC;aACZ;YACD,IAAI,YAAY,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE;gBACxC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC;gBACvC,OAAO,IAAI,CAAC;aACZ;YACD,YAAY,GAAG,YAAY,CAAC,iBAAiB,EAAE,CAAC;YAChD,YAAY,GAAG,YAAY,CAAC,iBAAiB,EAAE,CAAC;YAChD,IAAI,YAAY,KAAK,YAAY,EAAE;gBAClC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC;gBACvC,OAAO,IAAI,CAAC;aACZ;YACD,IAAI,YAAY,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE;gBAC1C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC;gBACvC,OAAO,IAAI,CAAC;aACZ;YACD,IAAI,YAAY,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE;gBACxC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC;gBACvC,OAAO,IAAI,CAAC;aACZ;YACD,OAAO,KAAK,CAAC;QACd,CAAC,CAAC;QACM,eAAU,GAAiB;YAClC,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC;YAClC;gBACC,OAAO,CAAC,OAAO,CAAC,OAAO;gBACvB,CAAC,EAAE,MAAM,EAA6C,EAAE,EAAE;oBACzD,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC;oBAC9B,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;gBAC/B,CAAC;aACD;SACD,CAAC;QA3GD,MAAM,EACL,kBAAkB,EAClB,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,aAAa,EACb,cAAc,EACd,oBAAoB,EACpB,sBAAsB,GACtB,GAAG,QAAQ,CAAC,cAAc,CAAC;QAC5B,MAAM,QAAQ,GAAG;YAChB,kBAAkB;YAClB,YAAY;YACZ,YAAY;YACZ,aAAa;YACb,aAAa;YACb,cAAc;YACd,oBAAoB;YACpB,sBAAsB;SACtB,CAAC;QACF,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC;aACnD,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;aACvC,MAAM,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACpE,CAAC;IACD,SAAS;QACR,MAAM,EAAE,OAAO,EAAE,GAAG,QAAQ,CAAC,OAAO,CAAC;QACrC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YACpC,IAAI,CAAC,YAAY,CAChB,GAAG,EACH,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAuB,GAAG,CAAC,CACnD,CAAC;QACH,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;QAExD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;IAC3C,CAAC;IACD,oBAAoB;QACnB,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;IAC1D,CAAC;;;AAsEc,2BAAO,GAAG;IACxB,UAAU,EAAE,CACX,cAAiC,EACjC,YAAoB,EACnB,EAAE;QACH,MAAM,EAAE,SAAS,EAAE,GAAG,EAAI,CAAC,OAAO,CAAC;QACnC,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,cAAc,CAAC;QAC1D,MAAM,WAAW,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;QAC3D,MAAM,eAAe,GAAG,WAAW,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;QAEvD,IAAI,IAAI,GAAG,SAAS,KAAK,EAAE,CAAC;QAC5B,IAAI,IAAI;YAAE,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;QAE7B,MAAM,eAAe,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;QAC9C,MAAM,eAAe,GAAG,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,YAAY,CAAC,CAAC;QACpE,MAAM,gBAAgB,GAAG,SAAS,CACjC,cAAc,CAAC,KAAK,CAAC,EACrB,YAAY,CACZ,CAAC;QACF,MAAM,qBAAqB,GAAG,WAAW,CAGvC,iBAAiB,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAEzD,eAAe,CAAC,cAAc,CAAC,CAAC,eAAe,EAAE,gBAAgB,CAAC,CAAC,CAAC;QAEpE,eAAe,CAAC,cAAc,CAAC;YAC9B,qBAAqB;YACrB,eAAe;SACf,CAAC,CAAC;QAEH,OAAO,eAAe,CAAC;IACxB,CAAC;IACD,SAAS,EAAE,CACV,IAAoC,EACpC,YAAoB,EACpB,OAAiB,EACH,EAAE;QAChB,YAAY,GAAG,OAAO;YACrB,CAAC,CAAC,YAAY,CAAC,iBAAiB,EAAE;YAClC,CAAC,CAAC,YAAY,CAAC;QAChB,MAAM,YAAY,GAAG,OAAO;YAC3B,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,iBAAiB,EAAE;YACpC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC;QAClB,IAAI,YAAY,KAAK,YAAY,EAAE;YAClC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YAC1B,OAAO,IAAI,CAAC;SACZ;QACD,IAAI,YAAY,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE;YACxC,MAAM,WAAW,GAAG,IAAI,YAAY,GAAG,CAAC;YACxC,MAAM,KAAK,GAAG,OAAO;gBACpB,CAAC,CAAC,IAAI,MAAM,CAAC,WAAW,EAAE,IAAI,CAAC;gBAC/B,CAAC,CAAC,IAAI,MAAM,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;YAChC,MAAM,gBAAgB,GAAG,IAAI,CAAC,SAAS;iBACrC,KAAK,CAAC,KAAK,CAAC;iBACZ,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;gBACb,OAAO,WAAW,CACjB,MAAM,EACN,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;oBAC1C,YAAY;oBACZ,CAAC,CAAC,KAAK;oBACP,CAAC,CAAC,SAAS,EACZ,IAAI,CACJ,CAAC;YACH,CAAC,CAAC,CAAC;YACJ,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;YACpB,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC;YACtC,OAAO,IAAI,CAAC;SACZ;QACD,OAAO,OAAO;YACb,CAAC,CAAC,IAAI;YACN,CAAC,CAAC,EAAI,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,YAAY,EAAE,IAAI,CAAC,CAAC;IACrD,CAAC;IACD,UAAU,EAAE,CAAC,kBAA+B,EAAE,EAAE;QAC/C,MAAM,UAAU,GAAe;YAC9B,OAAO,EAAE,kBAAkB,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,MAAM;YAC/D,SAAS,EACR,kBAAkB,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC,MAAM;SACzD,CAAC;QACF,MAAM,kBAAkB,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;QAC7C,kBAAkB,CAAC,WAAW,CAC7B,WAAW,CACV,uBAAuB,EACvB,SAAS,EACT,SAAS,EACT,EAAE,UAAU,EAAE,CACd,CACD,CAAC;QACF,OAAO,kBAAkB,CAAC;IAC3B,CAAC;CACD,CAAC;AAEH,MAAM,mBAAmB,GAAkB,uBAAuB,CAAC;AACnE,cAAc,CAAC,MAAM,CAAC,mBAAmB,EAAE,mBAAmB,CAAC,CAAC"} \ No newline at end of file diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Navigation/YafNavigationSearchbar.d.ts b/docs/v1.0.0-beta01/frontend/webComponents/Navigation/YafNavigationSearchbar.d.ts new file mode 100644 index 000000000..eace51d86 --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Navigation/YafNavigationSearchbar.d.ts @@ -0,0 +1,14 @@ +import YafHTMLElement from '../../YafHTMLElement.js'; +/** + * + */ +export declare class YafNavigationSearchbar extends YafHTMLElement { + onConnect(): void; + disconnectedCallback(): void; + private focussed; + private blurred; + private searchChanged; + private setSearchState; + private eventsList; + private static factory; +} diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Navigation/YafNavigationSearchbar.js b/docs/v1.0.0-beta01/frontend/webComponents/Navigation/YafNavigationSearchbar.js new file mode 100644 index 000000000..a9b65ed59 --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Navigation/YafNavigationSearchbar.js @@ -0,0 +1,82 @@ +import { events } from '../../handlers/index.js'; +import { makeElement, makeIconSpan } from '../../yafElement.js'; +import YafHTMLElement from '../../YafHTMLElement.js'; +const { action, trigger } = events; +/** + * + */ +export class YafNavigationSearchbar extends YafHTMLElement { + constructor() { + super(...arguments); + this.focussed = () => { + this.classList.add('focussed'); + }; + this.blurred = () => { + this.classList.remove('focussed'); + }; + this.searchChanged = (e) => { + const target = e.target; + if (!target.validity.tooShort && target.validity.patternMismatch) + return; + const searchString = target.value; + events.dispatch(action.menu.search(searchString)); + }; + this.setSearchState = ({ detail, }) => { + const { searchString } = detail; + searchString.length > 0 ? this.classList.add('busy') : clear(this); + function clear(self) { + self.classList.remove('busy'); + self.querySelector('input').value = ''; + } + }; + this.eventsList = [ + [trigger.menu.search, this.setSearchState], + ]; + } + onConnect() { + const { searchInput, searchIcon, clearIcon } = YafNavigationSearchbar.factory; + const searchHTMLInput = searchInput(); + const iconsHTMLElement = makeElement('span', 'wrapper'); + searchHTMLInput.onfocus = this.focussed; + searchHTMLInput.onblur = this.blurred; + searchHTMLInput.oninput = this.searchChanged; + iconsHTMLElement.appendChildren([ + searchIcon(), + clearIcon(searchHTMLInput), + ]); + this.appendChildren([searchHTMLInput, iconsHTMLElement]); + this.eventsList.forEach((event) => events.on(...event)); + } + disconnectedCallback() { + this.eventsList.forEach((event) => events.off(...event)); + } +} +YafNavigationSearchbar.factory = { + searchInput: () => { + const searchHTMLInput = makeElement('input'); + searchHTMLInput.setAttribute('type', 'search'); + searchHTMLInput.setAttribute('placeholder', 'Search the documents...'); + searchHTMLInput.setAttribute('aria-label', 'Search the documents'); + searchHTMLInput.setAttribute('minlength', '3'); + searchHTMLInput.setAttribute('pattern', '^[a-z|A-Z|0-9|.|_|-]+$'); + return searchHTMLInput; + }, + searchIcon: () => { + const searchIconHTMLElement = makeIconSpan('search', 18); + searchIconHTMLElement.classList.add('searchIcon'); + return searchIconHTMLElement; + }, + clearIcon: (searchHTMLInput) => { + const clearIconHTMLElement = makeIconSpan('clear', 18); + clearIconHTMLElement.classList.add('clearIcon'); + clearIconHTMLElement.onmousedown = () => { + searchHTMLInput.value = ''; + searchHTMLInput.blur(); + events.dispatch(action.menu.search('')); + }; + return clearIconHTMLElement; + }, +}; +const yafNavigationSearchbar = 'yaf-navigation-searchbar'; +customElements.define(yafNavigationSearchbar, YafNavigationSearchbar); +//# sourceMappingURL=YafNavigationSearchbar.js.map \ No newline at end of file diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Navigation/YafNavigationSearchbar.js.map b/docs/v1.0.0-beta01/frontend/webComponents/Navigation/YafNavigationSearchbar.js.map new file mode 100644 index 000000000..30917d2c6 --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Navigation/YafNavigationSearchbar.js.map @@ -0,0 +1 @@ +{"version":3,"file":"YafNavigationSearchbar.js","sourceRoot":"","sources":["../../../../../src/frontend/webComponents/Navigation/YafNavigationSearchbar.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Navigation/index.d.ts b/docs/v1.0.0-beta01/frontend/webComponents/Navigation/index.d.ts new file mode 100644 index 000000000..e7909f9c9 --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Navigation/index.d.ts @@ -0,0 +1,6 @@ +export * from './YafNavigationHeader.js'; +export * from './YafNavigationLink.js'; +export * from './YafNavigationMenu.js'; +export * from './YafNavigationMenuBranch.js'; +export * from './YafNavigationSearchbar.js'; +export * from './YafNavigationSearch.js'; diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Navigation/index.js b/docs/v1.0.0-beta01/frontend/webComponents/Navigation/index.js new file mode 100644 index 000000000..63b483b23 --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Navigation/index.js @@ -0,0 +1,7 @@ +export * from './YafNavigationHeader.js'; +export * from './YafNavigationLink.js'; +export * from './YafNavigationMenu.js'; +export * from './YafNavigationMenuBranch.js'; +export * from './YafNavigationSearchbar.js'; +export * from './YafNavigationSearch.js'; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Navigation/index.js.map b/docs/v1.0.0-beta01/frontend/webComponents/Navigation/index.js.map new file mode 100644 index 000000000..a0f5c8b5e --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Navigation/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/frontend/webComponents/Navigation/index.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,0BAA0B,CAAC"} \ No newline at end of file diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Signature/YafSignature.d.ts b/docs/v1.0.0-beta01/frontend/webComponents/Signature/YafSignature.d.ts new file mode 100644 index 000000000..3e0cea61a --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Signature/YafSignature.d.ts @@ -0,0 +1,20 @@ +import { yafSignatureProps } from '../../../types/frontendTypes.js'; +import { YafHTMLElement } from '../../index.js'; +/** + * A factory class that produces Yaf theme HTMLCustomElements for the given props.type and props.context. \ + * The class replaces itself (`this`) in the DOM with the appropriate signature type CustomElement. + * + * This class is best used with the helper {@link frontend.yafElement}.renderSignatureType + * + */ +export declare class YafSignature extends YafHTMLElement { + onConnect(): (HTMLElement & import("../../../types/frontendTypes.js").yafHTMLExtension) | undefined; + /** + * Transforms a TypeDoc camelCased "type name" string into a hyphen separated lowercase string + * + * @param name + * @returns + */ + private static parseTypeName; + static isCallSignature: (kind: number) => boolean; +} diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Signature/YafSignature.js b/docs/v1.0.0-beta01/frontend/webComponents/Signature/YafSignature.js new file mode 100644 index 000000000..70c4b6d09 --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Signature/YafSignature.js @@ -0,0 +1,37 @@ +import { YafHTMLElement } from '../../index.js'; +import appState from '../../handlers/AppState.js'; +import { makeElement, makeNameSpan } from '../../yafElement.js'; +/** + * A factory class that produces Yaf theme HTMLCustomElements for the given props.type and props.context. \ + * The class replaces itself (`this`) in the DOM with the appropriate signature type CustomElement. + * + * This class is best used with the helper {@link frontend.yafElement}.renderSignatureType + * + */ +export class YafSignature extends YafHTMLElement { + onConnect() { + var _a; + const { context, type } = this.props; + if (!type || type.type === 'unknown') + return this.appendChild(makeNameSpan(type ? type.name : 'unknown')); + const parenthesis = appState.needsParenthesis[type.type][context]; + const typeSignature = makeElement(`yaf-signature-${YafSignature.parseTypeName(type.type)}`); + typeSignature.props = type; + if (parenthesis) + typeSignature.setAttribute('needsParenthesis', ''); + (_a = this.parentElement) === null || _a === void 0 ? void 0 : _a.replaceChild(typeSignature, this); + } +} +/** + * Transforms a TypeDoc camelCased "type name" string into a hyphen separated lowercase string + * + * @param name + * @returns + */ +YafSignature.parseTypeName = (name) => name.replace(/[A-Z]/g, (s) => `-${s.toLowerCase()}`); +YafSignature.isCallSignature = (kind) => { + return appState.callTypes.includes(kind); +}; +const yafSignature = 'yaf-signature'; +customElements.define(yafSignature, YafSignature); +//# sourceMappingURL=YafSignature.js.map \ No newline at end of file diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Signature/YafSignature.js.map b/docs/v1.0.0-beta01/frontend/webComponents/Signature/YafSignature.js.map new file mode 100644 index 000000000..1058acd1f --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Signature/YafSignature.js.map @@ -0,0 +1 @@ +{"version":3,"file":"YafSignature.js","sourceRoot":"","sources":["../../../../../src/frontend/webComponents/Signature/YafSignature.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,QAAQ,MAAM,4BAA4B,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEhE;;;;;;GAMG;AACH,MAAM,OAAO,YAAa,SAAQ,cAAiC;IAClE,SAAS;;QACR,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QAErC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS;YACnC,OAAO,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;QAErE,MAAM,WAAW,GAAG,QAAQ,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC;QAElE,MAAM,aAAa,GAEf,WAAW,CACd,iBAAiB,YAAY,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACxD,CAAC;QACF,aAAa,CAAC,KAAK,GAAG,IAAI,CAAC;QAC3B,IAAI,WAAW;YAAE,aAAa,CAAC,YAAY,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAAC;QAEpE,MAAA,IAAI,CAAC,aAAa,0CAAE,YAAY,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;IACvD,CAAC;;AAED;;;;;GAKG;AACY,0BAAa,GAAG,CAAC,IAAY,EAAE,EAAE,CAC/C,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;AAE/C,4BAAe,GAAG,CAAC,IAAY,EAAE,EAAE;IACzC,OAAO,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC1C,CAAC,CAAC;AAGH,MAAM,YAAY,GAAkB,eAAe,CAAC;AACpD,cAAc,CAAC,MAAM,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC"} \ No newline at end of file diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Signature/YafSignatureBody.d.ts b/docs/v1.0.0-beta01/frontend/webComponents/Signature/YafSignatureBody.d.ts new file mode 100644 index 000000000..ac7e60ad1 --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Signature/YafSignatureBody.d.ts @@ -0,0 +1,6 @@ +import { YafSignatureReflection } from '../../../types/types.js'; +import { YafHTMLElement } from '../../index.js'; +export declare class YafSignatureBody extends YafHTMLElement { + onConnect(): void; + private static factory; +} diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Signature/YafSignatureBody.js b/docs/v1.0.0-beta01/frontend/webComponents/Signature/YafSignatureBody.js new file mode 100644 index 000000000..94c42469f --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Signature/YafSignatureBody.js @@ -0,0 +1,84 @@ +var _a; +import { YafSignature, } from './index.js'; +import { makeElement, makeLinkElement, renderSignatureType, } from '../../yafElement.js'; +import { YafHTMLElement } from '../../index.js'; +import appState from '../../handlers/AppState.js'; +export class YafSignatureBody extends YafHTMLElement { + onConnect() { + const { text, typeParameter, parameters, type, kind, inheritedFrom, overwrites, implementationOf, } = this.props; + const { factory } = YafSignatureBody; + const isCallSignature = YafSignature.isCallSignature(kind); + const HTMLElements = [ + factory.textComment(text), + factory.sources(this.props), + factory.typeParameters(typeParameter), + factory.parameters(parameters), + factory.modifier(implementationOf, 'Implementation of:'), + factory.modifier(inheritedFrom, 'Inherited from:'), + factory.modifier(overwrites, 'Overrides:'), + factory.returns(type, isCallSignature), + ]; + this.appendChildren(HTMLElements.flat()); + } +} +_a = YafSignatureBody; +YafSignatureBody.factory = { + makeElement: (element, props) => makeElement(element, null, null, props), + textComment: (text) => (text === null || text === void 0 ? void 0 : text.comment) + ? _a.factory.makeElement('yaf-content-marked', text.comment) + : undefined, + typeParameters: (typeParameter) => typeParameter && typeParameter.length + ? _a.factory.makeElement('yaf-signature-parameters-type', typeParameter) + : undefined, + parameters: (parameters) => parameters && parameters.length + ? _a.factory.makeElement('yaf-signature-parameters', parameters) + : undefined, + sources: (reflection) => { + var _b; + if (!((_b = reflection.sources) === null || _b === void 0 ? void 0 : _b.length)) + return undefined; + return _a.factory.makeElement('yaf-member-sources', reflection); + }, + returns: (type, isCallSignature) => { + if (!(type && isCallSignature)) + return undefined; + const ulHTMLElement = makeElement('ul', 'references'); + const liHTMLElement = makeElement('li'); + liHTMLElement.appendChild(renderSignatureType(type, 'none')); + ulHTMLElement.appendChild(liHTMLElement); + return [makeElement('h5', null, 'Returns:'), ulHTMLElement]; + }, + modifier: (modifierData, modifierHeading) => { + if (!modifierData) + return undefined; + let data; + if (modifierData.id) { + const reflection = appState.reflectionMap[modifierData.id]; + let name = reflection.name.split(' ').pop(); + const refName = reflection.query.split('.').pop(); + const isConstructor = name === refName; + name = isConstructor + ? `${refName}.constructor` + : `${refName}.${name}`; + data = { + name, + link: isConstructor + ? `?page=${reflection.query}#constructor` + : `?page=${reflection.query}#${name}`, + }; + } + else { + data = { name: modifierData.name, link: null }; + } + const headingEHTMLElement = makeElement('h5', null, modifierHeading); + const ulHTMLElement = makeElement('ul', 'references'); + const liHTMLElement = makeElement('li', null, data.link ? '' : data.name); + if (data.link) + liHTMLElement.appendChild(makeLinkElement(data.link, undefined, data.name)); + ulHTMLElement.appendChild(liHTMLElement); + return [headingEHTMLElement, ulHTMLElement]; + }, +}; +const yafSignatureBody = 'yaf-signature-body'; +customElements.define(yafSignatureBody, YafSignatureBody); +//# sourceMappingURL=YafSignatureBody.js.map \ No newline at end of file diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Signature/YafSignatureBody.js.map b/docs/v1.0.0-beta01/frontend/webComponents/Signature/YafSignatureBody.js.map new file mode 100644 index 000000000..50c0bc2cc --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Signature/YafSignatureBody.js.map @@ -0,0 +1 @@ +{"version":3,"file":"YafSignatureBody.js","sourceRoot":"","sources":["../../../../../src/frontend/webComponents/Signature/YafSignatureBody.ts"],"names":[],"mappings":";AAAA,OAAO,EACN,YAAY,GAGZ,MAAM,YAAY,CAAC;AASpB,OAAO,EACN,WAAW,EACX,eAAe,EACf,mBAAmB,GACnB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAEhD,OAAO,QAAQ,MAAM,4BAA4B,CAAC;AAElD,MAAM,OAAO,gBAAiB,SAAQ,cAAsC;IAC3E,SAAS;QACR,MAAM,EACL,IAAI,EACJ,aAAa,EACb,UAAU,EACV,IAAI,EACJ,IAAI,EACJ,aAAa,EACb,UAAU,EACV,gBAAgB,GAChB,GAAG,IAAI,CAAC,KAAK,CAAC;QAEf,MAAM,EAAE,OAAO,EAAE,GAAG,gBAAgB,CAAC;QACrC,MAAM,eAAe,GAAG,YAAY,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QAE3D,MAAM,YAAY,GAAG;YACpB,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC;YACzB,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;YAC3B,OAAO,CAAC,cAAc,CAAC,aAAa,CAAC;YACrC,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC;YAC9B,OAAO,CAAC,QAAQ,CAAC,gBAAgB,EAAE,oBAAoB,CAAC;YACxD,OAAO,CAAC,QAAQ,CAAC,aAAa,EAAE,iBAAiB,CAAC;YAClD,OAAO,CAAC,QAAQ,CAAC,UAAU,EAAE,YAAY,CAAC;YAC1C,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,eAAe,CAAC;SACtC,CAAC;QAEF,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC;IAC1C,CAAC;;;AAEc,wBAAO,GAAG;IACxB,WAAW,EAAE,CAAO,OAAe,EAAE,KAAQ,EAAE,EAAE,CAChD,WAAW,CAAO,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC;IAC9C,WAAW,EAAE,CAAC,IAAmC,EAAE,EAAE,CACpD,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,OAAO;QACZ,CAAC,CAAC,EAAI,CAAC,OAAO,CAAC,WAAW,CAGtB,oBAAoB,EAAE,IAAI,CAAC,OAAO,CAAC;QACvC,CAAC,CAAC,SAAS;IACb,cAAc,EAAE,CACf,aAAuD,EACtD,EAAE,CACH,aAAa,IAAI,aAAa,CAAC,MAAM;QACpC,CAAC,CAAC,EAAI,CAAC,OAAO,CAAC,WAAW,CAGtB,+BAA+B,EAAE,aAAa,CAAC;QACnD,CAAC,CAAC,SAAS;IACb,UAAU,EAAE,CAAC,UAAgD,EAAE,EAAE,CAChE,UAAU,IAAI,UAAU,CAAC,MAAM;QAC9B,CAAC,CAAC,EAAI,CAAC,OAAO,CAAC,WAAW,CAGtB,0BAA0B,EAAE,UAAU,CAAC;QAC3C,CAAC,CAAC,SAAS;IACb,OAAO,EAAE,CAAC,UAAkC,EAAE,EAAE;;QAC/C,IAAI,CAAC,CAAA,MAAA,UAAU,CAAC,OAAO,0CAAE,MAAM,CAAA;YAAE,OAAO,SAAS,CAAC;QAClD,OAAO,EAAI,CAAC,OAAO,CAAC,WAAW,CAG7B,oBAAoB,EAAE,UAAU,CAAC,CAAC;IACrC,CAAC;IACD,OAAO,EAAE,CACR,IAAoC,EACpC,eAAwB,EACvB,EAAE;QACH,IAAI,CAAC,CAAC,IAAI,IAAI,eAAe,CAAC;YAAE,OAAO,SAAS,CAAC;QAEjD,MAAM,aAAa,GAAG,WAAW,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;QACtD,MAAM,aAAa,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;QAExC,aAAa,CAAC,WAAW,CAAC,mBAAmB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;QAC7D,aAAa,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;QAEzC,OAAO,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,UAAU,CAAC,EAAE,aAAa,CAAC,CAAC;IAC7D,CAAC;IACD,QAAQ,EAAE,CACT,YAAuD,EACvD,eAAuB,EACtB,EAAE;QACH,IAAI,CAAC,YAAY;YAAE,OAAO,SAAS,CAAC;QAEpC,IAAI,IAAI,CAAC;QACT,IAAI,YAAY,CAAC,EAAE,EAAE;YACpB,MAAM,UAAU,GAAG,QAAQ,CAAC,aAAa,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;YAC3D,IAAI,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;YAC5C,MAAM,OAAO,GAAG,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;YAClD,MAAM,aAAa,GAAG,IAAI,KAAK,OAAO,CAAC;YACvC,IAAI,GAAG,aAAa;gBACnB,CAAC,CAAC,GAAG,OAAO,cAAc;gBAC1B,CAAC,CAAC,GAAG,OAAO,IAAI,IAAI,EAAE,CAAC;YAExB,IAAI,GAAG;gBACN,IAAI;gBACJ,IAAI,EAAE,aAAa;oBAClB,CAAC,CAAC,SAAS,UAAU,CAAC,KAAK,cAAc;oBACzC,CAAC,CAAC,SAAS,UAAU,CAAC,KAAK,IAAI,IAAI,EAAE;aACtC,CAAC;SACF;aAAM;YACN,IAAI,GAAG,EAAE,IAAI,EAAE,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;SAC/C;QACD,MAAM,mBAAmB,GAAG,WAAW,CACtC,IAAI,EACJ,IAAI,EACJ,eAAe,CACf,CAAC;QACF,MAAM,aAAa,GAAG,WAAW,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;QACtD,MAAM,aAAa,GAAG,WAAW,CAChC,IAAI,EACJ,IAAI,EACJ,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAC1B,CAAC;QACF,IAAI,IAAI,CAAC,IAAI;YACZ,aAAa,CAAC,WAAW,CACxB,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,CAChD,CAAC;QACH,aAAa,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;QACzC,OAAO,CAAC,mBAAmB,EAAE,aAAa,CAAC,CAAC;IAC7C,CAAC;CACD,CAAC;AAGH,MAAM,gBAAgB,GAAkB,oBAAoB,CAAC;AAC7D,cAAc,CAAC,MAAM,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,CAAC"} \ No newline at end of file diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Signature/YafSignatureParameters.d.ts b/docs/v1.0.0-beta01/frontend/webComponents/Signature/YafSignatureParameters.d.ts new file mode 100644 index 000000000..b70af249f --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Signature/YafSignatureParameters.d.ts @@ -0,0 +1,17 @@ +import { YafParameterReflection } from '../../../types/types.js'; +import { YafHTMLElement } from '../../index.js'; +export declare class YafSignatureParameters extends YafHTMLElement { + onConnect(): void; + makeFlags: (parameter: YafParameterReflection) => HTMLElement & import("../../../types/frontendTypes.js").yafHTMLExtension; + makeName: (parameter: YafParameterReflection) => HTMLElement & import("../../../types/frontendTypes.js").yafHTMLExtension; + makeType: (parameter: YafParameterReflection) => HTMLElement & import("../../../types/frontendTypes.js").yafHTMLExtension; + makeDefault: (parameter: YafParameterReflection) => HTMLElement & import("../../../types/frontendTypes.js").yafHTMLExtension; + /** + * Places parameter comments into the table cell. \ + * Because links in these comments are stringified by the BackEnd as `` HTML elements, the string is regexed to replace `a` with `yaf-navigation-link` elements. + * + * @param parameter A meta example of `yaf-navigation-link` parsed correctly: {@link types.common.YafParameterReflection} + * @returns + */ + makeComment: (parameter: YafParameterReflection) => HTMLElement & import("../../../types/frontendTypes.js").yafHTMLExtension; +} diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Signature/YafSignatureParameters.js b/docs/v1.0.0-beta01/frontend/webComponents/Signature/YafSignatureParameters.js new file mode 100644 index 000000000..6029ac254 --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Signature/YafSignatureParameters.js @@ -0,0 +1,83 @@ +import { YafHTMLElement } from '../../index.js'; +import { makeElement, makeFlags } from '../../yafElement.js'; +export class YafSignatureParameters extends YafHTMLElement { + constructor() { + super(...arguments); + this.makeFlags = (parameter) => { + const { flags, comment } = parameter; + const td = makeElement('td'); + const flagsElement = makeFlags(flags, comment); + td.appendChild(flagsElement); + return td; + }; + this.makeName = (parameter) => { + const { flags, name } = parameter; + const td = makeElement('td', null, flags.isRest ? `...${name}` : name); + return td; + }; + this.makeType = (parameter) => { + const { type } = parameter; + const td = makeElement('td', 'type'); + const pre = makeElement('pre', 'highlight'); + const typeSignature = makeElement('yaf-signature'); + typeSignature.props = { type, context: 'none' }; + pre.appendChild(typeSignature); + td.appendChild(pre); + return td; + }; + this.makeDefault = (parameter) => { + const { defaultValue } = parameter; + const td = makeElement('td', null, defaultValue); + return td; + }; + /** + * Places parameter comments into the table cell. \ + * Because links in these comments are stringified by the BackEnd as `` HTML elements, the string is regexed to replace `a` with `yaf-navigation-link` elements. + * + * @param parameter A meta example of `yaf-navigation-link` parsed correctly: {@link types.common.YafParameterReflection} + * @returns + */ + this.makeComment = (parameter) => { + const { text } = parameter; + const td = makeElement('td'); + if (text === null || text === void 0 ? void 0 : text.comment) { + const comment = text.comment + .replace(/'); + td.innerHTML = comment; + } + return td; + }; + } + onConnect() { + if (!this.props) + return; + this.classList.add('scroller'); + this.classList.add('horizontal'); + this.appendChild(makeElement('h5', null, 'Parameters:')); + const table = makeElement('table'); + const thead = makeElement('thead'); + const headers = makeElement('tr'); + ['flags', 'name', 'type', 'default', 'comment'].forEach((heading) => headers.appendChild(makeElement('th', null, heading))); + thead.appendChild(headers); + table.appendChild(thead); + const tbody = makeElement('tbody'); + this.props.forEach((parameter) => { + const row = makeElement('tr'); + row.appendChildren([ + this.makeFlags(parameter), + this.makeName(parameter), + this.makeType(parameter), + this.makeDefault(parameter), + this.makeComment(parameter), + ]); + tbody.appendChild(row); + }); + table.appendChild(tbody); + this.appendChild(table); + this.appendChild(table); + } +} +const yafSignatureParameters = 'yaf-signature-parameters'; +customElements.define(yafSignatureParameters, YafSignatureParameters); +//# sourceMappingURL=YafSignatureParameters.js.map \ No newline at end of file diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Signature/YafSignatureParameters.js.map b/docs/v1.0.0-beta01/frontend/webComponents/Signature/YafSignatureParameters.js.map new file mode 100644 index 000000000..4f68d9302 --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Signature/YafSignatureParameters.js.map @@ -0,0 +1 @@ +{"version":3,"file":"YafSignatureParameters.js","sourceRoot":"","sources":["../../../../../src/frontend/webComponents/Signature/YafSignatureParameters.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Signature/YafSignatureParametersType.d.ts b/docs/v1.0.0-beta01/frontend/webComponents/Signature/YafSignatureParametersType.d.ts new file mode 100644 index 000000000..2030e30c5 --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Signature/YafSignatureParametersType.d.ts @@ -0,0 +1,5 @@ +import { YafTypeParameterReflection } from '../../../types/types.js'; +import { YafHTMLElement } from '../../index.js'; +export declare class YafSignatureParametersType extends YafHTMLElement { + onConnect(): void; +} diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Signature/YafSignatureParametersType.js b/docs/v1.0.0-beta01/frontend/webComponents/Signature/YafSignatureParametersType.js new file mode 100644 index 000000000..5854d8444 --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Signature/YafSignatureParametersType.js @@ -0,0 +1,45 @@ +import { YafHTMLElement } from '../../index.js'; +import { makeElement, renderSignatureType } from '../../yafElement.js'; +export class YafSignatureParametersType extends YafHTMLElement { + onConnect() { + if (!this.props) + return; + this.classList.add('scroller'); + this.classList.add('horizontal'); + this.appendChild(makeElement('h5', null, 'Type Parameters:')); + const table = makeElement('table'); + const thead = makeElement('thead'); + const headers = makeElement('tr'); + ['name', 'modifier', 'extends', 'default', 'comment'].forEach((heading) => headers.appendChild(makeElement('th', null, heading))); + thead.appendChild(headers); + table.appendChild(thead); + const tbody = makeElement('tbody'); + this.props.forEach((parameter) => { + const { varianceModifier, name, type, text } = parameter; + const defaultValue = parameter.default; + const row = makeElement('tr'); + let td = makeElement('td', null, name); + row.appendChild(td); + td = makeElement('td', null, varianceModifier); + row.appendChild(td); + td = makeElement('td'); + if (type) + td.appendChild(renderSignatureType(type, 'none')); + row.appendChild(td); + td = makeElement('td'); + if (defaultValue) + td.appendChild(renderSignatureType(defaultValue, 'none')); + row.appendChild(td); + td = makeElement('td'); + if (text === null || text === void 0 ? void 0 : text.comment) + td.innerHTML = text.comment; + row.appendChild(td); + tbody.appendChild(row); + }); + table.appendChild(tbody); + this.appendChild(table); + } +} +const yafSignatureParametersType = 'yaf-signature-parameters-type'; +customElements.define(yafSignatureParametersType, YafSignatureParametersType); +//# sourceMappingURL=YafSignatureParametersType.js.map \ No newline at end of file diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Signature/YafSignatureParametersType.js.map b/docs/v1.0.0-beta01/frontend/webComponents/Signature/YafSignatureParametersType.js.map new file mode 100644 index 000000000..df3a7e2b2 --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Signature/YafSignatureParametersType.js.map @@ -0,0 +1 @@ +{"version":3,"file":"YafSignatureParametersType.js","sourceRoot":"","sources":["../../../../../src/frontend/webComponents/Signature/YafSignatureParametersType.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAEvE,MAAM,OAAO,0BAA2B,SAAQ,cAE/C;IACA,SAAS;QACR,IAAI,CAAC,IAAI,CAAC,KAAK;YAAE,OAAO;QAExB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAC/B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAEjC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,kBAAkB,CAAC,CAAC,CAAC;QAC9D,MAAM,KAAK,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;QACnC,MAAM,KAAK,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;QACnC,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;QAClC,CAAC,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,OAAO,CAC5D,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAClE,CAAC;QACF,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAC3B,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAEzB,MAAM,KAAK,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;QACnC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE;YAChC,MAAM,EAAE,gBAAgB,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,SAAS,CAAC;YACzD,MAAM,YAAY,GAAG,SAAS,CAAC,OAAO,CAAC;YAEvC,MAAM,GAAG,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;YAE9B,IAAI,EAAE,GAAG,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;YACvC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;YAEpB,EAAE,GAAG,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,gBAAgB,CAAC,CAAC;YAC/C,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;YAEpB,EAAE,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;YACvB,IAAI,IAAI;gBAAE,EAAE,CAAC,WAAW,CAAC,mBAAmB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;YAC5D,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;YAEpB,EAAE,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;YACvB,IAAI,YAAY;gBACf,EAAE,CAAC,WAAW,CAAC,mBAAmB,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC;YAC3D,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;YAEpB,EAAE,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;YACvB,IAAI,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,OAAO;gBAAE,EAAE,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC;YAC/C,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;YAEpB,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QACxB,CAAC,CAAC,CAAC;QACH,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QACzB,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC;CACD;AAED,MAAM,0BAA0B,GAC/B,+BAA+B,CAAC;AACjC,cAAc,CAAC,MAAM,CAAC,0BAA0B,EAAE,0BAA0B,CAAC,CAAC"} \ No newline at end of file diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Signature/YafSignatureTitle.d.ts b/docs/v1.0.0-beta01/frontend/webComponents/Signature/YafSignatureTitle.d.ts new file mode 100644 index 000000000..541d2aa36 --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Signature/YafSignatureTitle.d.ts @@ -0,0 +1,6 @@ +import { yafSignatureTitleProps } from '../../../types/frontendTypes.js'; +import { YafHTMLElement } from '../../index.js'; +export declare class YafSignatureTitle extends YafHTMLElement { + onConnect(): void; + private static factory; +} diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Signature/YafSignatureTitle.js b/docs/v1.0.0-beta01/frontend/webComponents/Signature/YafSignatureTitle.js new file mode 100644 index 000000000..1d74396ec --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Signature/YafSignatureTitle.js @@ -0,0 +1,84 @@ +import appState from '../../handlers/AppState.js'; +import { makeSymbolSpan, makeTitleSpan, makeElement, makeParameterSpan, makeValueSpan, renderSignatureType, stringify, } from '../../yafElement.js'; +import { YafSignature } from './YafSignature.js'; +import { YafHTMLElement } from '../../index.js'; +export class YafSignatureTitle extends YafHTMLElement { + onConnect() { + const { name, kind, flags, typeParameter, parameters, type, hideName, arrowStyle, defaultValue, wrappedInPre, } = this.props; + const { factory } = YafSignatureTitle; + const isConstructorSignature = kind === appState.reflectionKind.ConstructorSignature; + const isCallSignature = YafSignature.isCallSignature(kind); + const HTMLElements = []; + const preHTMLElement = wrappedInPre + ? makeElement('pre', 'highlight scroller horizontal pre') + : undefined; + if (!hideName) { + HTMLElements.push(factory.name(name)); + } + else if (isConstructorSignature) { + HTMLElements.push(factory.constructor(flags)); + } + HTMLElements.push([ + factory.typeParameter(typeParameter), + isCallSignature ? makeSymbolSpan('(') : undefined, + ]); + const parameterWrapperHTMLElements = parameters === null || parameters === void 0 ? void 0 : parameters.map((parameter, i) => { + const isRest = parameter.flags.isRest; + const isOptional = parameter.flags.isOptional; + const defaultValue = parameter.defaultValue; + const parameterWrapperHTMLElement = makeElement('span', 'wrapper'); + const paramterHTMLElements = [ + isRest ? makeSymbolSpan('...') : undefined, + makeParameterSpan(parameter.name), + isOptional ? makeSymbolSpan('?') : undefined, + defaultValue ? makeSymbolSpan('?') : undefined, + makeSymbolSpan(':'), + renderSignatureType(parameter.type, 'none'), + i < parameters.length - 1 ? makeSymbolSpan(', ') : undefined, + ]; + parameterWrapperHTMLElement.appendChildren(paramterHTMLElements); + return parameterWrapperHTMLElement; + }); + HTMLElements.push(parameterWrapperHTMLElements); + if (isCallSignature) + HTMLElements.push(makeSymbolSpan(')')); + if (type) { + HTMLElements.push([ + makeSymbolSpan(`${arrowStyle ? ' => ' : ': '}`), + renderSignatureType(type, 'none'), + factory.defaultValue(defaultValue), + ].flat()); + } + preHTMLElement + ? preHTMLElement.appendChildren(HTMLElements.flat()) + : this.appendChildren(HTMLElements.flat()); + if (preHTMLElement) + this.appendChild(preHTMLElement); + } +} +YafSignatureTitle.factory = { + name: (name) => { + const nameParts = name.split(' '); + const signatureName = nameParts.pop(); + const signatureNameConstructor = nameParts.join(' '); + return [ + signatureNameConstructor.length + ? makeSymbolSpan(`${signatureNameConstructor} `) + : undefined, + makeTitleSpan(signatureName), + ]; + }, + constructor: (flags) => makeSymbolSpan(`${flags.isAbstract ? 'abstract new ' : 'new '}`), + typeParameter: (typeParameter) => typeParameter + ? makeElement('yaf-type-parameters', null, null, typeParameter) + : undefined, + defaultValue: (defaultValue) => defaultValue + ? [ + makeSymbolSpan(' = '), + makeValueSpan(stringify(defaultValue)), + ] + : undefined, +}; +const yafSignatureTitle = 'yaf-signature-title'; +customElements.define(yafSignatureTitle, YafSignatureTitle); +//# sourceMappingURL=YafSignatureTitle.js.map \ No newline at end of file diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Signature/YafSignatureTitle.js.map b/docs/v1.0.0-beta01/frontend/webComponents/Signature/YafSignatureTitle.js.map new file mode 100644 index 000000000..d09c52ea4 --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Signature/YafSignatureTitle.js.map @@ -0,0 +1 @@ +{"version":3,"file":"YafSignatureTitle.js","sourceRoot":"","sources":["../../../../../src/frontend/webComponents/Signature/YafSignatureTitle.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Signature/index.d.ts b/docs/v1.0.0-beta01/frontend/webComponents/Signature/index.d.ts new file mode 100644 index 000000000..c918d5553 --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Signature/index.d.ts @@ -0,0 +1,6 @@ +export * from './YafSignature.js'; +export * from './YafSignatureBody.js'; +export * from './YafSignatureParameters.js'; +export * from './YafSignatureParametersType.js'; +export * from './YafSignatureTitle.js'; +export * as signatureTypes from './signatureTypes/index.js'; diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Signature/index.js b/docs/v1.0.0-beta01/frontend/webComponents/Signature/index.js new file mode 100644 index 000000000..a30522d85 --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Signature/index.js @@ -0,0 +1,8 @@ +export * from './YafSignature.js'; +export * from './YafSignatureBody.js'; +export * from './YafSignatureParameters.js'; +export * from './YafSignatureParametersType.js'; +export * from './YafSignatureTitle.js'; +import * as signatureTypes_1 from './signatureTypes/index.js'; +export { signatureTypes_1 as signatureTypes }; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Signature/index.js.map b/docs/v1.0.0-beta01/frontend/webComponents/Signature/index.js.map new file mode 100644 index 000000000..f77a310f3 --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Signature/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/frontend/webComponents/Signature/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,iCAAiC,CAAC;AAChD,cAAc,wBAAwB,CAAC;kCAEP,2BAA2B;6BAA/C,cAAc"} \ No newline at end of file diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignatureArray.d.ts b/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignatureArray.d.ts new file mode 100644 index 000000000..973d68fcf --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignatureArray.d.ts @@ -0,0 +1,6 @@ +import { JSONOutput } from 'typedoc'; +import { YafHTMLElement } from '../../../index.js'; +export declare class YafSignatureArray extends YafHTMLElement { + array: string; + onConnect(): void; +} diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignatureArray.js b/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignatureArray.js new file mode 100644 index 000000000..f291032ca --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignatureArray.js @@ -0,0 +1,23 @@ +import { YafHTMLElement } from '../../../index.js'; +import { makeSymbolSpan, needsParenthesis, renderSignatureType, } from '../../../yafElement.js'; +export class YafSignatureArray extends YafHTMLElement { + constructor() { + super(...arguments); + this.array = 'array'; + } + onConnect() { + const { elementType } = this.props; + const HTMLElements = [ + renderSignatureType(elementType, 'arrayElement'), + makeSymbolSpan('[]'), + ]; + if (needsParenthesis(this)) { + HTMLElements.unshift(makeSymbolSpan('(')); + HTMLElements.push(makeSymbolSpan(')')); + } + this.appendChildren(HTMLElements); + } +} +const yafSignatureArray = 'yaf-signature-array'; +customElements.define(yafSignatureArray, YafSignatureArray); +//# sourceMappingURL=YafSignatureArray.js.map \ No newline at end of file diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignatureArray.js.map b/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignatureArray.js.map new file mode 100644 index 000000000..179d1ba22 --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignatureArray.js.map @@ -0,0 +1 @@ +{"version":3,"file":"YafSignatureArray.js","sourceRoot":"","sources":["../../../../../../src/frontend/webComponents/Signature/signatureTypes/YafSignatureArray.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EACN,cAAc,EACd,gBAAgB,EAChB,mBAAmB,GACnB,MAAM,wBAAwB,CAAC;AAEhC,MAAM,OAAO,iBAAkB,SAAQ,cAAoC;IAA3E;;QACC,UAAK,GAAG,OAAO,CAAC;IAejB,CAAC;IAdA,SAAS;QACR,MAAM,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QAEnC,MAAM,YAAY,GAAG;YACpB,mBAAmB,CAAC,WAAW,EAAE,cAAc,CAAC;YAChD,cAAc,CAAC,IAAI,CAAC;SACpB,CAAC;QACF,IAAI,gBAAgB,CAAC,IAAI,CAAC,EAAE;YAC3B,YAAY,CAAC,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC;YAC1C,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC;SACvC;QAED,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;IACnC,CAAC;CACD;AACD,MAAM,iBAAiB,GAAkB,qBAAqB,CAAC;AAC/D,cAAc,CAAC,MAAM,CAAC,iBAAiB,EAAE,iBAAiB,CAAC,CAAC"} \ No newline at end of file diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignatureConditional.d.ts b/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignatureConditional.d.ts new file mode 100644 index 000000000..e73036e2d --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignatureConditional.d.ts @@ -0,0 +1,5 @@ +import { JSONOutput } from 'typedoc'; +import { YafHTMLElement } from '../../../index.js'; +export declare class YafSignatureConditional extends YafHTMLElement { + onConnect(): void; +} diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignatureConditional.js b/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignatureConditional.js new file mode 100644 index 000000000..97f858ca2 --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignatureConditional.js @@ -0,0 +1,20 @@ +import { YafHTMLElement } from '../../../index.js'; +import { renderSignatureType, makeSymbolSpan } from '../../../yafElement.js'; +export class YafSignatureConditional extends YafHTMLElement { + onConnect() { + const { checkType, extendsType, falseType, trueType } = this.props; + const HTMLElements = [ + renderSignatureType(checkType, 'conditionalCheck'), + makeSymbolSpan(' extends '), + renderSignatureType(extendsType, 'conditionalExtends'), + makeSymbolSpan(' ? '), + renderSignatureType(trueType, 'conditionalTrue'), + makeSymbolSpan(' : '), + renderSignatureType(falseType, 'conditionalFalse'), + ]; + this.appendChildren(HTMLElements); + } +} +const yafSignatureConditional = 'yaf-signature-conditional'; +customElements.define(yafSignatureConditional, YafSignatureConditional); +//# sourceMappingURL=YafSignatureConditional.js.map \ No newline at end of file diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignatureConditional.js.map b/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignatureConditional.js.map new file mode 100644 index 000000000..55584e473 --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignatureConditional.js.map @@ -0,0 +1 @@ +{"version":3,"file":"YafSignatureConditional.js","sourceRoot":"","sources":["../../../../../../src/frontend/webComponents/Signature/signatureTypes/YafSignatureConditional.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAE7E,MAAM,OAAO,uBAAwB,SAAQ,cAA0C;IACtF,SAAS;QACR,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QAEnE,MAAM,YAAY,GAAG;YACpB,mBAAmB,CAAC,SAAS,EAAE,kBAAkB,CAAC;YAClD,cAAc,CAAC,WAAW,CAAC;YAC3B,mBAAmB,CAAC,WAAW,EAAE,oBAAoB,CAAC;YACtD,cAAc,CAAC,KAAK,CAAC;YACrB,mBAAmB,CAAC,QAAQ,EAAE,iBAAiB,CAAC;YAChD,cAAc,CAAC,KAAK,CAAC;YACrB,mBAAmB,CAAC,SAAS,EAAE,kBAAkB,CAAC;SAClD,CAAC;QAEF,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;IACnC,CAAC;CACD;AAED,MAAM,uBAAuB,GAAG,2BAA2B,CAAC;AAC5D,cAAc,CAAC,MAAM,CAAC,uBAAuB,EAAE,uBAAuB,CAAC,CAAC"} \ No newline at end of file diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignatureIndexedAccess.d.ts b/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignatureIndexedAccess.d.ts new file mode 100644 index 000000000..849320d32 --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignatureIndexedAccess.d.ts @@ -0,0 +1,18 @@ +import { JSONOutput } from 'typedoc'; +import { YafHTMLElement } from '../../../index.js'; +export declare class YafSignatureIndexedAccess extends YafHTMLElement { + onConnect(): void; + private static factory; +} +/** + * With reference to typedoc definitions: \ + * `JSONOutput.IndexedAccessType['objectType']` has an untyped `id?` property \ + * which carries from a `reference` objectType. + * + * This type is a hack to work with the `id` to determine the frontend url link. + * + * @see https://typedoc.org/api/interfaces/JSONOutput.IndexedAccessType.html + */ +export type objectWithId = JSONOutput.IndexedAccessType['objectType'] & { + id?: number; +}; diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignatureIndexedAccess.js b/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignatureIndexedAccess.js new file mode 100644 index 000000000..d60600191 --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignatureIndexedAccess.js @@ -0,0 +1,32 @@ +import { YafHTMLElement } from '../../../index.js'; +import appState from '../../../handlers/AppState.js'; +import { renderSignatureType, makeLinkElement, makeSymbolSpan, } from '../../../yafElement.js'; +export class YafSignatureIndexedAccess extends YafHTMLElement { + onConnect() { + const { indexType, objectType } = this.props; + const { factory } = YafSignatureIndexedAccess; + const referenceId = objectType.id; + const linkTheSignature = !!referenceId && objectType.type !== 'reference'; + const indexTypeHTMLElement = renderSignatureType(indexType, 'indexedIndex'); + const indexSignatureHTMLElement = linkTheSignature + ? factory.wrapSignatureInLink(String(referenceId), indexTypeHTMLElement) + : indexTypeHTMLElement; + const HTMLElements = [ + renderSignatureType(objectType, 'indexedObject'), + makeSymbolSpan('['), + indexSignatureHTMLElement, + makeSymbolSpan(']'), + ]; + this.appendChildren(HTMLElements); + } +} +YafSignatureIndexedAccess.factory = { + wrapSignatureInLink: (referenceId, indexTypeElement) => { + const linkElement = makeLinkElement(`?page=${appState.reflectionMap[referenceId].query}`); + linkElement.appendChild(indexTypeElement); + return linkElement; + }, +}; +const yafSignatureIndexedAccess = 'yaf-signature-indexed-access'; +customElements.define(yafSignatureIndexedAccess, YafSignatureIndexedAccess); +//# sourceMappingURL=YafSignatureIndexedAccess.js.map \ No newline at end of file diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignatureIndexedAccess.js.map b/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignatureIndexedAccess.js.map new file mode 100644 index 000000000..bb733a4c5 --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignatureIndexedAccess.js.map @@ -0,0 +1 @@ +{"version":3,"file":"YafSignatureIndexedAccess.js","sourceRoot":"","sources":["../../../../../../src/frontend/webComponents/Signature/signatureTypes/YafSignatureIndexedAccess.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,QAAQ,MAAM,+BAA+B,CAAC;AACrD,OAAO,EACN,mBAAmB,EACnB,eAAe,EACf,cAAc,GACd,MAAM,wBAAwB,CAAC;AAEhC,MAAM,OAAO,yBAA0B,SAAQ,cAA4C;IAC1F,SAAS;QACR,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QAC7C,MAAM,EAAE,OAAO,EAAE,GAAG,yBAAyB,CAAC;QAE9C,MAAM,WAAW,GAAkB,UAAW,CAAC,EAAE,CAAC;QAClD,MAAM,gBAAgB,GACrB,CAAC,CAAC,WAAW,IAAI,UAAU,CAAC,IAAI,KAAK,WAAW,CAAC;QAClD,MAAM,oBAAoB,GAAG,mBAAmB,CAC/C,SAAS,EACT,cAAc,CACd,CAAC;QACF,MAAM,yBAAyB,GAAG,gBAAgB;YACjD,CAAC,CAAC,OAAO,CAAC,mBAAmB,CAC3B,MAAM,CAAC,WAAY,CAAC,EACpB,oBAAoB,CACnB;YACH,CAAC,CAAC,oBAAoB,CAAC;QAExB,MAAM,YAAY,GAAG;YACpB,mBAAmB,CAAC,UAAU,EAAE,eAAe,CAAC;YAChD,cAAc,CAAC,GAAG,CAAC;YACnB,yBAAyB;YACzB,cAAc,CAAC,GAAG,CAAC;SACnB,CAAC;QAEF,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;IACnC,CAAC;;AAEc,iCAAO,GAAG;IACxB,mBAAmB,EAAE,CACpB,WAAmB,EACnB,gBAA6B,EAC5B,EAAE;QACH,MAAM,WAAW,GAAG,eAAe,CAClC,SAAS,QAAQ,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC,KAAK,EAAE,CACpD,CAAC;QACF,WAAW,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC;QAC1C,OAAO,WAAW,CAAC;IACpB,CAAC;CACD,CAAC;AAGH,MAAM,yBAAyB,GAAG,8BAA8B,CAAC;AACjE,cAAc,CAAC,MAAM,CAAC,yBAAyB,EAAE,yBAAyB,CAAC,CAAC"} \ No newline at end of file diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignatureInferred.d.ts b/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignatureInferred.d.ts new file mode 100644 index 000000000..c9458ade7 --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignatureInferred.d.ts @@ -0,0 +1,5 @@ +import { JSONOutput } from 'typedoc'; +import { YafHTMLElement } from '../../../index.js'; +export declare class YafSignatureInferred extends YafHTMLElement { + onConnect(): void; +} diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignatureInferred.js b/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignatureInferred.js new file mode 100644 index 000000000..ec64e553c --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignatureInferred.js @@ -0,0 +1,21 @@ +import { YafHTMLElement } from '../../../index.js'; +import { makeSymbolSpan, makeTypeSpan, renderSignatureType, } from '../../../yafElement.js'; +export class YafSignatureInferred extends YafHTMLElement { + onConnect() { + const { name, constraint } = this.props; + const HTMLElements = [ + makeSymbolSpan('infer '), + makeTypeSpan(name), + ]; + if (constraint) { + HTMLElements.push([ + makeSymbolSpan(' extends '), + renderSignatureType(constraint, 'inferredConstraint'), + ]); + } + this.appendChildren(HTMLElements.flat()); + } +} +const yafSignatureinferred = 'yaf-signature-inferred'; +customElements.define(yafSignatureinferred, YafSignatureInferred); +//# sourceMappingURL=YafSignatureInferred.js.map \ No newline at end of file diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignatureInferred.js.map b/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignatureInferred.js.map new file mode 100644 index 000000000..622b390dd --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignatureInferred.js.map @@ -0,0 +1 @@ +{"version":3,"file":"YafSignatureInferred.js","sourceRoot":"","sources":["../../../../../../src/frontend/webComponents/Signature/signatureTypes/YafSignatureInferred.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EACN,cAAc,EACd,YAAY,EACZ,mBAAmB,GACnB,MAAM,wBAAwB,CAAC;AAEhC,MAAM,OAAO,oBAAqB,SAAQ,cAAuC;IAChF,SAAS;QACR,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QACxC,MAAM,YAAY,GAAoC;YACrD,cAAc,CAAC,QAAQ,CAAC;YACxB,YAAY,CAAC,IAAI,CAAC;SAClB,CAAC;QAEF,IAAI,UAAU,EAAE;YACf,YAAY,CAAC,IAAI,CAAC;gBACjB,cAAc,CAAC,WAAW,CAAC;gBAC3B,mBAAmB,CAAC,UAAU,EAAE,oBAAoB,CAAC;aACrD,CAAC,CAAC;SACH;QAED,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC;IAC1C,CAAC;CACD;AAED,MAAM,oBAAoB,GAAG,wBAAwB,CAAC;AACtD,cAAc,CAAC,MAAM,CAAC,oBAAoB,EAAE,oBAAoB,CAAC,CAAC"} \ No newline at end of file diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignatureIntersection.d.ts b/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignatureIntersection.d.ts new file mode 100644 index 000000000..5cd861e53 --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignatureIntersection.d.ts @@ -0,0 +1,5 @@ +import { JSONOutput } from 'typedoc'; +import { YafHTMLElement } from '../../../index.js'; +export declare class YafSignatureIntersection extends YafHTMLElement { + onConnect(): void; +} diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignatureIntersection.js b/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignatureIntersection.js new file mode 100644 index 000000000..90f0a625e --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignatureIntersection.js @@ -0,0 +1,15 @@ +import { YafHTMLElement } from '../../../index.js'; +import { renderSignatureType, makeSymbolSpan } from '../../../yafElement.js'; +export class YafSignatureIntersection extends YafHTMLElement { + onConnect() { + const { types } = this.props; + const HTMLElements = types.map((type, i) => [ + renderSignatureType(type, 'intersectionElement'), + i < types.length - 1 ? makeSymbolSpan(' & ') : undefined, + ]); + this.appendChildren(HTMLElements.flat()); + } +} +const yafSignatureIntersection = 'yaf-signature-intersection'; +customElements.define(yafSignatureIntersection, YafSignatureIntersection); +//# sourceMappingURL=YafSignatureIntersection.js.map \ No newline at end of file diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignatureIntersection.js.map b/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignatureIntersection.js.map new file mode 100644 index 000000000..46fd8db64 --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignatureIntersection.js.map @@ -0,0 +1 @@ +{"version":3,"file":"YafSignatureIntersection.js","sourceRoot":"","sources":["../../../../../../src/frontend/webComponents/Signature/signatureTypes/YafSignatureIntersection.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAE7E,MAAM,OAAO,wBAAyB,SAAQ,cAA2C;IACxF,SAAS;QACR,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QAE7B,MAAM,YAAY,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3C,mBAAmB,CAAC,IAAI,EAAE,qBAAqB,CAAC;YAChD,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS;SACxD,CAAC,CAAC;QAEH,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC;IAC1C,CAAC;CACD;AAED,MAAM,wBAAwB,GAAG,4BAA4B,CAAC;AAC9D,cAAc,CAAC,MAAM,CAAC,wBAAwB,EAAE,wBAAwB,CAAC,CAAC"} \ No newline at end of file diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignatureIntrinsic.d.ts b/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignatureIntrinsic.d.ts new file mode 100644 index 000000000..3072dee42 --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignatureIntrinsic.d.ts @@ -0,0 +1,5 @@ +import { JSONOutput } from 'typedoc'; +import { YafHTMLElement } from '../../../index.js'; +export declare class YafContentSignatureIntrinsic extends YafHTMLElement { + onConnect(): void; +} diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignatureIntrinsic.js b/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignatureIntrinsic.js new file mode 100644 index 000000000..02a09fc13 --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignatureIntrinsic.js @@ -0,0 +1,16 @@ +import { needsParenthesis, makeIntrinsicSpan, makeSymbolSpan, } from '../../../yafElement.js'; +import { YafHTMLElement } from '../../../index.js'; +export class YafContentSignatureIntrinsic extends YafHTMLElement { + onConnect() { + const { name: typeName } = this.props; + const HTMLElements = [makeIntrinsicSpan(typeName)]; + if (needsParenthesis(this)) { + HTMLElements.unshift(makeSymbolSpan('(')); + HTMLElements.push(makeSymbolSpan(')')); + } + this.appendChildren(HTMLElements.flat()); + } +} +const componentName = 'yaf-signature-intrinsic'; +customElements.define(componentName, YafContentSignatureIntrinsic); +//# sourceMappingURL=YafSignatureIntrinsic.js.map \ No newline at end of file diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignatureIntrinsic.js.map b/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignatureIntrinsic.js.map new file mode 100644 index 000000000..01e45791a --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignatureIntrinsic.js.map @@ -0,0 +1 @@ +{"version":3,"file":"YafSignatureIntrinsic.js","sourceRoot":"","sources":["../../../../../../src/frontend/webComponents/Signature/signatureTypes/YafSignatureIntrinsic.ts"],"names":[],"mappings":"AAGA,OAAO,EACN,gBAAgB,EAChB,iBAAiB,EACjB,cAAc,GACd,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD,MAAM,OAAO,4BAA6B,SAAQ,cAAwC;IACzF,SAAS;QACR,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QACtC,MAAM,YAAY,GAAG,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC,CAAC;QAEnD,IAAI,gBAAgB,CAAC,IAAI,CAAC,EAAE;YAC3B,YAAY,CAAC,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC;YAC1C,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC;SACvC;QACD,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC;IAC1C,CAAC;CACD;AAED,MAAM,aAAa,GAAkB,yBAAyB,CAAC;AAC/D,cAAc,CAAC,MAAM,CAAC,aAAa,EAAE,4BAA4B,CAAC,CAAC"} \ No newline at end of file diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignatureLiteral.d.ts b/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignatureLiteral.d.ts new file mode 100644 index 000000000..e18dc481c --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignatureLiteral.d.ts @@ -0,0 +1,5 @@ +import { JSONOutput } from 'typedoc'; +import { YafHTMLElement } from '../../../index.js'; +export declare class YafContentSignatureLiteral extends YafHTMLElement { + onConnect(): void; +} diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignatureLiteral.js b/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignatureLiteral.js new file mode 100644 index 000000000..50584693d --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignatureLiteral.js @@ -0,0 +1,16 @@ +import { needsParenthesis, makeElement, makeSymbolSpan, stringify, } from '../../../yafElement.js'; +import { YafHTMLElement } from '../../../index.js'; +export class YafContentSignatureLiteral extends YafHTMLElement { + onConnect() { + const { value } = this.props; + const HTMLElements = [makeElement('span', null, stringify(value))]; + if (needsParenthesis(this)) { + HTMLElements.unshift(makeSymbolSpan('(')); + HTMLElements.push(makeSymbolSpan(')')); + } + this.appendChildren(HTMLElements.flat()); + } +} +const componentName = 'yaf-signature-literal'; +customElements.define(componentName, YafContentSignatureLiteral); +//# sourceMappingURL=YafSignatureLiteral.js.map \ No newline at end of file diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignatureLiteral.js.map b/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignatureLiteral.js.map new file mode 100644 index 000000000..007a6c035 --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignatureLiteral.js.map @@ -0,0 +1 @@ +{"version":3,"file":"YafSignatureLiteral.js","sourceRoot":"","sources":["../../../../../../src/frontend/webComponents/Signature/signatureTypes/YafSignatureLiteral.ts"],"names":[],"mappings":"AAEA,OAAO,EACN,gBAAgB,EAChB,WAAW,EACX,cAAc,EACd,SAAS,GACT,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD,MAAM,OAAO,0BAA2B,SAAQ,cAAsC;IACrF,SAAS;QACR,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QAC7B,MAAM,YAAY,GAAG,CAAC,WAAW,CAAC,MAAM,EAAE,IAAI,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAEnE,IAAI,gBAAgB,CAAC,IAAI,CAAC,EAAE;YAC3B,YAAY,CAAC,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC;YAC1C,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC;SACvC;QAED,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC;IAC1C,CAAC;CACD;AAED,MAAM,aAAa,GAAkB,uBAAuB,CAAC;AAC7D,cAAc,CAAC,MAAM,CAAC,aAAa,EAAE,0BAA0B,CAAC,CAAC"} \ No newline at end of file diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignatureMapped.d.ts b/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignatureMapped.d.ts new file mode 100644 index 000000000..336c49e1c --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignatureMapped.d.ts @@ -0,0 +1,6 @@ +import { JSONOutput } from 'typedoc'; +import { YafHTMLElement } from '../../../index.js'; +export declare class YafSignatureMapped extends YafHTMLElement { + onConnect(): void; + private static factory; +} diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignatureMapped.js b/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignatureMapped.js new file mode 100644 index 000000000..72e377a7c --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignatureMapped.js @@ -0,0 +1,44 @@ +import { YafHTMLElement } from '../../../index.js'; +import { makeSymbolSpan, makeTypeSpan, renderSignatureType, } from '../../../yafElement.js'; +export class YafSignatureMapped extends YafHTMLElement { + onConnect() { + const { parameter, parameterType, templateType, nameType, optionalModifier, readonlyModifier, } = this.props; + const { factory } = YafSignatureMapped; + const readonlyModifierHTMLElement = factory.readonlyModifier(readonlyModifier); + const nameTypeHTMLElements = factory.nameType(nameType); + const HTMLElements = [ + makeSymbolSpan('{'), + readonlyModifierHTMLElement, + makeSymbolSpan('['), + makeTypeSpan(parameter), + makeSymbolSpan(' in '), + renderSignatureType(parameterType, 'mappedParameter'), + nameTypeHTMLElements, + makeSymbolSpan(']'), + makeSymbolSpan(factory.colon(optionalModifier)), + renderSignatureType(templateType, 'mappedTemplate'), + makeSymbolSpan('}'), + ]; + this.appendChildren(HTMLElements.flat()); + } +} +YafSignatureMapped.factory = { + readonlyModifier: (readonlyModifier) => readonlyModifier + ? makeSymbolSpan(readonlyModifier === '+' ? 'readonly ' : '-readonly ') + : undefined, + nameType: (nameType) => nameType + ? [ + makeSymbolSpan(' as '), + renderSignatureType(nameType, 'mappedName'), + ] + : undefined, + colon: (optionalModifier) => { + let colon = ': '; + if (optionalModifier) + colon = optionalModifier === '+' ? '?: ' : '-?: '; + return colon; + }, +}; +const yafSignatureMapped = 'yaf-signature-mapped'; +customElements.define(yafSignatureMapped, YafSignatureMapped); +//# sourceMappingURL=YafSignatureMapped.js.map \ No newline at end of file diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignatureMapped.js.map b/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignatureMapped.js.map new file mode 100644 index 000000000..e4882ca12 --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignatureMapped.js.map @@ -0,0 +1 @@ +{"version":3,"file":"YafSignatureMapped.js","sourceRoot":"","sources":["../../../../../../src/frontend/webComponents/Signature/signatureTypes/YafSignatureMapped.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EACN,cAAc,EACd,YAAY,EACZ,mBAAmB,GACnB,MAAM,wBAAwB,CAAC;AAEhC,MAAM,OAAO,kBAAmB,SAAQ,cAAqC;IAC5E,SAAS;QACR,MAAM,EACL,SAAS,EACT,aAAa,EACb,YAAY,EACZ,QAAQ,EACR,gBAAgB,EAChB,gBAAgB,GAChB,GAAG,IAAI,CAAC,KAAK,CAAC;QACf,MAAM,EAAE,OAAO,EAAE,GAAG,kBAAkB,CAAC;QAEvC,MAAM,2BAA2B,GAChC,OAAO,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,CAAC;QAC5C,MAAM,oBAAoB,GAAG,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAExD,MAAM,YAAY,GAAG;YACpB,cAAc,CAAC,GAAG,CAAC;YACnB,2BAA2B;YAC3B,cAAc,CAAC,GAAG,CAAC;YACnB,YAAY,CAAC,SAAS,CAAC;YACvB,cAAc,CAAC,MAAM,CAAC;YACtB,mBAAmB,CAAC,aAAa,EAAE,iBAAiB,CAAC;YACrD,oBAAoB;YACpB,cAAc,CAAC,GAAG,CAAC;YACnB,cAAc,CAAC,OAAO,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;YAC/C,mBAAmB,CAAC,YAAY,EAAE,gBAAgB,CAAC;YACnD,cAAc,CAAC,GAAG,CAAC;SACnB,CAAC;QAEF,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC;IAC1C,CAAC;;AAEc,0BAAO,GAAG;IACxB,gBAAgB,EAAE,CAAC,gBAAuC,EAAE,EAAE,CAC7D,gBAAgB;QACf,CAAC,CAAC,cAAc,CACd,gBAAgB,KAAK,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,YAAY,CACpD;QACH,CAAC,CAAC,SAAS;IACb,QAAQ,EAAE,CAAC,QAA2C,EAAE,EAAE,CACzD,QAAQ;QACP,CAAC,CAAC;YACA,cAAc,CAAC,MAAM,CAAC;YACtB,mBAAmB,CAAC,QAAQ,EAAE,YAAY,CAAC;SAC1C;QACH,CAAC,CAAC,SAAS;IACb,KAAK,EAAE,CAAC,gBAAuC,EAAE,EAAE;QAClD,IAAI,KAAK,GAAG,IAAI,CAAC;QACjB,IAAI,gBAAgB;YACnB,KAAK,GAAG,gBAAgB,KAAK,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;QACnD,OAAO,KAAK,CAAC;IACd,CAAC;CACD,CAAC;AAGH,MAAM,kBAAkB,GAAG,sBAAsB,CAAC;AAClD,cAAc,CAAC,MAAM,CAAC,kBAAkB,EAAE,kBAAkB,CAAC,CAAC"} \ No newline at end of file diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignatureNamedTupleMember.d.ts b/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignatureNamedTupleMember.d.ts new file mode 100644 index 000000000..75e26ba4d --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignatureNamedTupleMember.d.ts @@ -0,0 +1,5 @@ +import { JSONOutput } from 'typedoc'; +import { YafHTMLElement } from '../../../index.js'; +export declare class YafSignatureNamedTupleMember extends YafHTMLElement { + onConnect(): void; +} diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignatureNamedTupleMember.js b/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignatureNamedTupleMember.js new file mode 100644 index 000000000..e7d55b413 --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignatureNamedTupleMember.js @@ -0,0 +1,16 @@ +import { makeNameSpan, makeSymbolSpan, renderSignatureType, } from '../../../yafElement.js'; +import { YafHTMLElement } from '../../../index.js'; +export class YafSignatureNamedTupleMember extends YafHTMLElement { + onConnect() { + const { name, isOptional, element } = this.props; + const HTMLElements = [ + makeNameSpan(name), + makeSymbolSpan(isOptional ? '?:' : ':'), + renderSignatureType(element, 'tupleElement'), + ]; + this.appendChildren(HTMLElements.flat()); + } +} +const yafSignatureNamedTupleMember = 'yaf-signature-named-tuple-member'; +customElements.define(yafSignatureNamedTupleMember, YafSignatureNamedTupleMember); +//# sourceMappingURL=YafSignatureNamedTupleMember.js.map \ No newline at end of file diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignatureNamedTupleMember.js.map b/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignatureNamedTupleMember.js.map new file mode 100644 index 000000000..e7b88fecb --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignatureNamedTupleMember.js.map @@ -0,0 +1 @@ +{"version":3,"file":"YafSignatureNamedTupleMember.js","sourceRoot":"","sources":["../../../../../../src/frontend/webComponents/Signature/signatureTypes/YafSignatureNamedTupleMember.ts"],"names":[],"mappings":"AACA,OAAO,EACN,YAAY,EACZ,cAAc,EACd,mBAAmB,GACnB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD,MAAM,OAAO,4BAA6B,SAAQ,cAA+C;IAChG,SAAS;QACR,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QAEjD,MAAM,YAAY,GAAG;YACpB,YAAY,CAAC,IAAI,CAAC;YAClB,cAAc,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC;YACvC,mBAAmB,CAAC,OAAO,EAAE,cAAc,CAAC;SAC5C,CAAC;QAEF,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC;IAC1C,CAAC;CACD;AAED,MAAM,4BAA4B,GAAG,kCAAkC,CAAC;AACxE,cAAc,CAAC,MAAM,CACpB,4BAA4B,EAC5B,4BAA4B,CAC5B,CAAC"} \ No newline at end of file diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignatureOptional.d.ts b/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignatureOptional.d.ts new file mode 100644 index 000000000..e854a133f --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignatureOptional.d.ts @@ -0,0 +1,5 @@ +import { JSONOutput } from 'typedoc'; +import { YafHTMLElement } from '../../../index.js'; +export declare class YafSignatureOptional extends YafHTMLElement { + onConnect(): void; +} diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignatureOptional.js b/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignatureOptional.js new file mode 100644 index 000000000..27e141ce0 --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignatureOptional.js @@ -0,0 +1,15 @@ +import { YafHTMLElement } from '../../../index.js'; +import { renderSignatureType, makeSymbolSpan } from '../../../yafElement.js'; +export class YafSignatureOptional extends YafHTMLElement { + onConnect() { + const { elementType } = this.props; + const HTMLElements = [ + renderSignatureType(elementType, 'optionalElement'), + makeSymbolSpan('?'), + ]; + this.appendChildren(HTMLElements.flat()); + } +} +const yafSignatureOptional = 'yaf-signature-optional'; +customElements.define(yafSignatureOptional, YafSignatureOptional); +//# sourceMappingURL=YafSignatureOptional.js.map \ No newline at end of file diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignatureOptional.js.map b/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignatureOptional.js.map new file mode 100644 index 000000000..28e37cb2d --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignatureOptional.js.map @@ -0,0 +1 @@ +{"version":3,"file":"YafSignatureOptional.js","sourceRoot":"","sources":["../../../../../../src/frontend/webComponents/Signature/signatureTypes/YafSignatureOptional.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAE7E,MAAM,OAAO,oBAAqB,SAAQ,cAAuC;IAChF,SAAS;QACR,MAAM,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QACnC,MAAM,YAAY,GAAG;YACpB,mBAAmB,CAAC,WAAW,EAAE,iBAAiB,CAAC;YACnD,cAAc,CAAC,GAAG,CAAC;SACnB,CAAC;QAEF,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC;IAC1C,CAAC;CACD;AAED,MAAM,oBAAoB,GAAG,wBAAwB,CAAC;AACtD,cAAc,CAAC,MAAM,CAAC,oBAAoB,EAAE,oBAAoB,CAAC,CAAC"} \ No newline at end of file diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignaturePredicate.d.ts b/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignaturePredicate.d.ts new file mode 100644 index 000000000..08b4f511a --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignaturePredicate.d.ts @@ -0,0 +1,6 @@ +import { JSONOutput } from 'typedoc'; +import { YafHTMLElement } from '../../../index.js'; +export declare class YafSignaturePredicate extends YafHTMLElement { + onConnect(): void; + private static factory; +} diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignaturePredicate.js b/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignaturePredicate.js new file mode 100644 index 000000000..121e71f69 --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignaturePredicate.js @@ -0,0 +1,26 @@ +import { YafHTMLElement } from '../../../index.js'; +import { makeSymbolSpan, makeNameSpan, renderSignatureType, } from '../../../yafElement.js'; +export class YafSignaturePredicate extends YafHTMLElement { + onConnect() { + const { name, asserts, targetType } = this.props; + const { factory } = YafSignaturePredicate; + const HTMLElements = [ + factory.asserts(asserts), + makeNameSpan(name), + factory.targetType(targetType), + ]; + this.appendChildren(HTMLElements.flat()); + } +} +YafSignaturePredicate.factory = { + asserts: (asserts) => asserts ? makeSymbolSpan('asserts ') : undefined, + targetType: (targetType) => targetType + ? [ + makeSymbolSpan(' is '), + renderSignatureType(targetType, 'predicateTarget'), + ] + : undefined, +}; +const yafSignaturePredicate = 'yaf-signature-predicate'; +customElements.define(yafSignaturePredicate, YafSignaturePredicate); +//# sourceMappingURL=YafSignaturePredicate.js.map \ No newline at end of file diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignaturePredicate.js.map b/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignaturePredicate.js.map new file mode 100644 index 000000000..59863e172 --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignaturePredicate.js.map @@ -0,0 +1 @@ +{"version":3,"file":"YafSignaturePredicate.js","sourceRoot":"","sources":["../../../../../../src/frontend/webComponents/Signature/signatureTypes/YafSignaturePredicate.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EACN,cAAc,EACd,YAAY,EACZ,mBAAmB,GACnB,MAAM,wBAAwB,CAAC;AAEhC,MAAM,OAAO,qBAAsB,SAAQ,cAAwC;IAClF,SAAS;QACR,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QACjD,MAAM,EAAE,OAAO,EAAE,GAAG,qBAAqB,CAAC;QAE1C,MAAM,YAAY,GAAG;YACpB,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC;YACxB,YAAY,CAAC,IAAI,CAAC;YAClB,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC;SAC9B,CAAC;QAEF,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC;IAC1C,CAAC;;AAEc,6BAAO,GAAG;IACxB,OAAO,EAAE,CAAC,OAAgB,EAAE,EAAE,CAC7B,OAAO,CAAC,CAAC,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS;IACjD,UAAU,EAAE,CAAC,UAAkD,EAAE,EAAE,CAClE,UAAU;QACT,CAAC,CAAC;YACA,cAAc,CAAC,MAAM,CAAC;YACtB,mBAAmB,CAAC,UAAU,EAAE,iBAAiB,CAAC;SACjD;QACH,CAAC,CAAC,SAAS;CACb,CAAC;AAGH,MAAM,qBAAqB,GAAG,yBAAyB,CAAC;AACxD,cAAc,CAAC,MAAM,CAAC,qBAAqB,EAAE,qBAAqB,CAAC,CAAC"} \ No newline at end of file diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignatureQuery.d.ts b/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignatureQuery.d.ts new file mode 100644 index 000000000..bf9df708c --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignatureQuery.d.ts @@ -0,0 +1,5 @@ +import { JSONOutput } from 'typedoc'; +import { YafHTMLElement } from '../../../index.js'; +export declare class YafSignatureQuery extends YafHTMLElement { + onConnect(): void; +} diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignatureQuery.js b/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignatureQuery.js new file mode 100644 index 000000000..15ac4f7bf --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignatureQuery.js @@ -0,0 +1,15 @@ +import { YafHTMLElement } from '../../../index.js'; +import { makeSymbolSpan, renderSignatureType } from '../../../yafElement.js'; +export class YafSignatureQuery extends YafHTMLElement { + onConnect() { + const { queryType } = this.props; + const HTMLElements = [ + makeSymbolSpan('typeof '), + renderSignatureType(queryType, 'queryTypeTarget'), + ]; + this.appendChildren(HTMLElements.flat()); + } +} +const yafSignatureQuery = 'yaf-signature-query'; +customElements.define(yafSignatureQuery, YafSignatureQuery); +//# sourceMappingURL=YafSignatureQuery.js.map \ No newline at end of file diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignatureQuery.js.map b/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignatureQuery.js.map new file mode 100644 index 000000000..afd91276c --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignatureQuery.js.map @@ -0,0 +1 @@ +{"version":3,"file":"YafSignatureQuery.js","sourceRoot":"","sources":["../../../../../../src/frontend/webComponents/Signature/signatureTypes/YafSignatureQuery.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAE7E,MAAM,OAAO,iBAAkB,SAAQ,cAAoC;IAC1E,SAAS;QACR,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QACjC,MAAM,YAAY,GAAG;YACpB,cAAc,CAAC,SAAS,CAAC;YACzB,mBAAmB,CAAC,SAAS,EAAE,iBAAiB,CAAC;SACjD,CAAC;QAEF,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC;IAC1C,CAAC;CACD;AAED,MAAM,iBAAiB,GAAG,qBAAqB,CAAC;AAChD,cAAc,CAAC,MAAM,CAAC,iBAAiB,EAAE,iBAAiB,CAAC,CAAC"} \ No newline at end of file diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignatureReference.d.ts b/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignatureReference.d.ts new file mode 100644 index 000000000..6129bf26e --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignatureReference.d.ts @@ -0,0 +1,9 @@ +import { JSONOutput } from 'typedoc'; +import { YafHTMLElement } from '../../../index.js'; +/** + * + */ +export declare class YafSignatureReference extends YafHTMLElement { + onConnect(): void; + private static factory; +} diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignatureReference.js b/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignatureReference.js new file mode 100644 index 000000000..af852c9cb --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignatureReference.js @@ -0,0 +1,49 @@ +var _a; +import appState from '../../../handlers/AppState.js'; +import { makeLinkElement, makeElement, makeTypeSpan, } from '../../../yafElement.js'; +import { YafHTMLElement } from '../../../index.js'; +/** + * + */ +export class YafSignatureReference extends YafHTMLElement { + onConnect() { + const { externalUrl, id, name: typeName, typeArguments } = this.props; + const { factory } = YafSignatureReference; + const fileLink = id ? appState.reflectionMap[id] : undefined; + const fileLinkName = fileLink ? fileLink.query : undefined; + const typeHTMLElement = externalUrl + ? factory.externalUrl(externalUrl, typeName) + : fileLinkName + ? factory.fileLinkName(fileLinkName, typeName) + : makeTypeSpan(typeName); + const HTMLElements = [ + typeHTMLElement, + factory.typeArguments(typeArguments), + ]; + this.appendChildren(HTMLElements.flat()); + } +} +_a = YafSignatureReference; +YafSignatureReference.factory = { + renderTypeArguments: (args) => makeElement('yaf-type-arguments', null, null, { + args, + context: 'referenceTypeArgument', + }), + externalUrl: (externalUrl, typeName) => { + const linkHTMLElement = makeLinkElement(externalUrl); + linkHTMLElement.setAttribute('target', '_blank'); + linkHTMLElement.appendChild(makeTypeSpan(typeName)); + return linkHTMLElement; + }, + fileLinkName: (fileLinkName, typeName) => { + const linkHTMLElement = makeLinkElement(`?page=${fileLinkName}`); + linkHTMLElement.appendChild(makeTypeSpan(typeName)); + return linkHTMLElement; + }, + typeArguments: (typeArguments) => typeArguments && typeArguments.length + ? _a.factory.renderTypeArguments(typeArguments) + : undefined, +}; +const componentName = 'yaf-signature-reference'; +customElements.define(componentName, YafSignatureReference); +//# sourceMappingURL=YafSignatureReference.js.map \ No newline at end of file diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignatureReference.js.map b/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignatureReference.js.map new file mode 100644 index 000000000..b643d9711 --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignatureReference.js.map @@ -0,0 +1 @@ +{"version":3,"file":"YafSignatureReference.js","sourceRoot":"","sources":["../../../../../../src/frontend/webComponents/Signature/signatureTypes/YafSignatureReference.ts"],"names":[],"mappings":";AAGA,OAAO,QAAQ,MAAM,+BAA+B,CAAC;AACrD,OAAO,EACN,eAAe,EACf,WAAW,EACX,YAAY,GACZ,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD;;GAEG;AACH,MAAM,OAAO,qBAAsB,SAAQ,cAAwC;IAClF,SAAS;QACR,MAAM,EAAE,WAAW,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,aAAa,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QACtE,MAAM,EAAE,OAAO,EAAE,GAAG,qBAAqB,CAAC;QAC1C,MAAM,QAAQ,GAAG,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC7D,MAAM,YAAY,GAAG,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;QAE3D,MAAM,eAAe,GAAG,WAAW;YAClC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,WAAW,EAAE,QAAQ,CAAC;YAC5C,CAAC,CAAC,YAAY;gBACd,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,YAAY,EAAE,QAAQ,CAAC;gBAC9C,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QAE1B,MAAM,YAAY,GAAG;YACpB,eAAe;YACf,OAAO,CAAC,aAAa,CAAC,aAAa,CAAC;SACpC,CAAC;QAEF,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC;IAC1C,CAAC;;;AAEc,6BAAO,GAAG;IACxB,mBAAmB,EAAE,CACpB,IAA+C,EAC9C,EAAE,CACH,WAAW,CACV,oBAAoB,EACpB,IAAI,EACJ,IAAI,EACJ;QACC,IAAI;QACJ,OAAO,EAAE,uBAAuB;KAChC,CACD;IACF,WAAW,EAAE,CAAC,WAAmB,EAAE,QAAgB,EAAE,EAAE;QACtD,MAAM,eAAe,GAAG,eAAe,CAAC,WAAW,CAAC,CAAC;QACrD,eAAe,CAAC,YAAY,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QACjD,eAAe,CAAC,WAAW,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC;QAEpD,OAAO,eAAe,CAAC;IACxB,CAAC;IACD,YAAY,EAAE,CAAC,YAAoB,EAAE,QAAgB,EAAE,EAAE;QACxD,MAAM,eAAe,GAAG,eAAe,CAAC,SAAS,YAAY,EAAE,CAAC,CAAC;QACjE,eAAe,CAAC,WAAW,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC;QAEpD,OAAO,eAAe,CAAC;IACxB,CAAC;IACD,aAAa,EAAE,CACd,aAAwD,EACvD,EAAE,CACH,aAAa,IAAI,aAAa,CAAC,MAAM;QACpC,CAAC,CAAC,EAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,aAAa,CAAC;QACjD,CAAC,CAAC,SAAS;CACb,CAAC;AAGH,MAAM,aAAa,GAAkB,yBAAyB,CAAC;AAC/D,cAAc,CAAC,MAAM,CAAC,aAAa,EAAE,qBAAqB,CAAC,CAAC"} \ No newline at end of file diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignatureReflection.d.ts b/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignatureReflection.d.ts new file mode 100644 index 000000000..39848cd38 --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignatureReflection.d.ts @@ -0,0 +1,10 @@ +import { JSONOutput } from 'typedoc'; +import { YafSignatureTitle } from '../index.js'; +import { YafHTMLElement } from '../../../index.js'; +/** + * + */ +export declare class YafSignatureReflection extends YafHTMLElement { + onConnect(): (YafSignatureTitle & import("../../../../types/frontendTypes").yafHTMLExtension) | undefined; + private static factory; +} diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignatureReflection.js b/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignatureReflection.js new file mode 100644 index 000000000..b51c9bb16 --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignatureReflection.js @@ -0,0 +1,122 @@ +import { makeSymbolSpan, makeNameSpan, renderSignatureType, makeElement, } from '../../../yafElement.js'; +import { YafHTMLElement } from '../../../index.js'; +/** + * + */ +export class YafSignatureReflection extends YafHTMLElement { + onConnect() { + var _a, _b, _c; + const { declaration } = this.props; + const { factory } = YafSignatureReflection; + const HTMLElementGroups = []; + let i = 0; + for (const child of (declaration === null || declaration === void 0 ? void 0 : declaration.children) || []) { + if (child.getSignature && child.setSignature) { + HTMLElementGroups.push(factory.getAndSetSignatures(child)); + continue; + } + if (child.getSignature) { + HTMLElementGroups.push(factory.getSignature(child)); + continue; + } + if (child.setSignature) { + HTMLElementGroups.push(factory.setSignature(child)); + continue; + } + if (child.signatures) { + HTMLElementGroups.push(factory.signatures(child, i)); + continue; + } + HTMLElementGroups.push([ + makeNameSpan(!i ? child.name : `\n${child.name}`), + makeSymbolSpan(child.flags.isOptional ? '?: ' : ': '), + renderSignatureType(child.type, 'none'), + ]); + i++; + } + if (declaration === null || declaration === void 0 ? void 0 : declaration.indexSignature) { + const index = declaration.indexSignature; + HTMLElementGroups.push([ + makeSymbolSpan('['), + makeNameSpan(index.parameters[0].name), + makeSymbolSpan(':'), + renderSignatureType(index.parameters[0].type, 'none'), + makeSymbolSpan(']'), + makeSymbolSpan(':'), + renderSignatureType(index.type, 'none'), + ]); + } + if (!HTMLElementGroups.length && + ((_a = declaration === null || declaration === void 0 ? void 0 : declaration.signatures) === null || _a === void 0 ? void 0 : _a.length) === 1) { + return this.appendChild(factory.signatureTitle(declaration)); + } + if (declaration) + HTMLElementGroups.push(factory.declarationSignatures(declaration).flat()); + if (HTMLElementGroups.length) { + const openBrace = makeSymbolSpan('{ '); + const closeBrace = makeSymbolSpan('}'); + this.classList.add('block'); + (_b = this.parentElement) === null || _b === void 0 ? void 0 : _b.insertBefore(openBrace, this); + HTMLElementGroups.forEach((elements) => { + const HTMLElements = factory.mapElementGroups(elements, this.tagName); + this.appendChildren(HTMLElements.flat()); + }); + (_c = this.parentElement) === null || _c === void 0 ? void 0 : _c.insertBefore(closeBrace, this.nextSibling); + } + } +} +YafSignatureReflection.factory = { + mapElementGroups: (elements, tagName) => elements.map((element, i) => { + const hasSemicolon = i === elements.length - 1 && element.tagName !== tagName; + return [ + element, + hasSemicolon ? makeSymbolSpan('; ') : undefined, + ]; + }), + declarationSignatures: (declaration) => { + var _a; + return ((_a = declaration === null || declaration === void 0 ? void 0 : declaration.signatures) === null || _a === void 0 ? void 0 : _a.map((signature) => [ + makeElement('yaf-signature-title', null, null, Object.assign(Object.assign({}, signature), { hideName: true })), + ])) || []; + }, + signatureTitle: (declaration) => makeElement('yaf-signature-title', null, null, Object.assign(Object.assign({}, declaration.signatures[0]), { hideName: true, arrowStyle: true })), + getAndSetSignatures: (child) => [ + makeNameSpan(child.name), + makeSymbolSpan(': '), + renderSignatureType(child.getSignature.type, 'none'), + ], + getSignature: (child) => [ + makeSymbolSpan('get '), + makeNameSpan(child.name), + makeSymbolSpan('(): '), + renderSignatureType(child.getSignature.type, 'none'), + ], + setSignature: (child) => { + var _a; + const HTMLElements = [ + makeSymbolSpan('set '), + makeNameSpan(child.name), + makeSymbolSpan('('), + ]; + (_a = child.setSignature.parameters) === null || _a === void 0 ? void 0 : _a.forEach((parameter) => { + HTMLElements.push(makeNameSpan(parameter.name)); + HTMLElements.push(renderSignatureType(parameter.type, 'none')); + }); + HTMLElements.push(makeSymbolSpan(')')); + return HTMLElements; + }, + signatures: (child, i) => { + return child.signatures + .map((signature) => { + return [ + makeNameSpan(!i ? child.name : `\n${child.name}`), + makeSymbolSpan(child.flags.isOptional ? '?: ' : ': '), + makeElement('yaf-signature-title', null, null, Object.assign(Object.assign({}, signature), { hideName: true, arrowStyle: false })), + ]; + }) + .flat(); + }, +}; +const yafSignatureReflection = 'yaf-signature-reflection'; +customElements.define(yafSignatureReflection, YafSignatureReflection); +//# sourceMappingURL=YafSignatureReflection.js.map \ No newline at end of file diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignatureReflection.js.map b/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignatureReflection.js.map new file mode 100644 index 000000000..9362f886a --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignatureReflection.js.map @@ -0,0 +1 @@ +{"version":3,"file":"YafSignatureReflection.js","sourceRoot":"","sources":["../../../../../../src/frontend/webComponents/Signature/signatureTypes/YafSignatureReflection.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignatureRest.d.ts b/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignatureRest.d.ts new file mode 100644 index 000000000..de57b9ad0 --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignatureRest.d.ts @@ -0,0 +1,5 @@ +import { JSONOutput } from 'typedoc'; +import { YafHTMLElement } from '../../../index.js'; +export declare class YafSignatureRest extends YafHTMLElement { + onConnect(): void; +} diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignatureRest.js b/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignatureRest.js new file mode 100644 index 000000000..b14d4ed07 --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignatureRest.js @@ -0,0 +1,15 @@ +import { YafHTMLElement } from '../../../index.js'; +import { makeSymbolSpan, renderSignatureType } from '../../../yafElement.js'; +export class YafSignatureRest extends YafHTMLElement { + onConnect() { + const { elementType } = this.props; + const HTMLElements = [ + makeSymbolSpan('...'), + renderSignatureType(elementType, 'restElement'), + ]; + this.appendChildren(HTMLElements.flat()); + } +} +const yafSignatureRest = 'yaf-signature-rest'; +customElements.define(yafSignatureRest, YafSignatureRest); +//# sourceMappingURL=YafSignatureRest.js.map \ No newline at end of file diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignatureRest.js.map b/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignatureRest.js.map new file mode 100644 index 000000000..adf52511e --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignatureRest.js.map @@ -0,0 +1 @@ +{"version":3,"file":"YafSignatureRest.js","sourceRoot":"","sources":["../../../../../../src/frontend/webComponents/Signature/signatureTypes/YafSignatureRest.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAE7E,MAAM,OAAO,gBAAiB,SAAQ,cAAmC;IACxE,SAAS;QACR,MAAM,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QAEnC,MAAM,YAAY,GAAG;YACpB,cAAc,CAAC,KAAK,CAAC;YACrB,mBAAmB,CAAC,WAAW,EAAE,aAAa,CAAC;SAC/C,CAAC;QAEF,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC;IAC1C,CAAC;CACD;AAED,MAAM,gBAAgB,GAAkB,oBAAoB,CAAC;AAC7D,cAAc,CAAC,MAAM,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,CAAC"} \ No newline at end of file diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignatureTemplateLiteral.d.ts b/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignatureTemplateLiteral.d.ts new file mode 100644 index 000000000..2acfb7bad --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignatureTemplateLiteral.d.ts @@ -0,0 +1,6 @@ +import { JSONOutput } from 'typedoc'; +import { YafHTMLElement } from '../../../index.js'; +export declare class YafSignatureTemplateLiteral extends YafHTMLElement { + onConnect(): void; + private static factory; +} diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignatureTemplateLiteral.js b/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignatureTemplateLiteral.js new file mode 100644 index 000000000..278eb2eb2 --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignatureTemplateLiteral.js @@ -0,0 +1,33 @@ +import { makeSymbolSpan, makeLiteralSpan, renderSignatureType, } from '../../../yafElement.js'; +import { YafHTMLElement } from '../../../index.js'; +export class YafSignatureTemplateLiteral extends YafHTMLElement { + onConnect() { + const { head, tail } = this.props; + const { factory } = YafSignatureTemplateLiteral; + const HTMLElements = [ + makeSymbolSpan('`'), + head ? makeLiteralSpan(head) : undefined, + factory.tail(tail), + makeSymbolSpan('`'), + ]; + this.appendChildren(HTMLElements.flat()); + } +} +YafSignatureTemplateLiteral.factory = { + tail: (tail) => tail + .map((item) => { + const tailElements = [ + makeSymbolSpan('${'), + renderSignatureType(item[0], 'templateLiteralElement'), + makeSymbolSpan('}'), + ]; + if (item[1]) { + tailElements.push(makeLiteralSpan(item[1])); + } + return tailElements; + }) + .flat(), +}; +const componentName = 'yaf-signature-template-literal'; +customElements.define(componentName, YafSignatureTemplateLiteral); +//# sourceMappingURL=YafSignatureTemplateLiteral.js.map \ No newline at end of file diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignatureTemplateLiteral.js.map b/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignatureTemplateLiteral.js.map new file mode 100644 index 000000000..cbd700038 --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignatureTemplateLiteral.js.map @@ -0,0 +1 @@ +{"version":3,"file":"YafSignatureTemplateLiteral.js","sourceRoot":"","sources":["../../../../../../src/frontend/webComponents/Signature/signatureTypes/YafSignatureTemplateLiteral.ts"],"names":[],"mappings":"AAEA,OAAO,EACN,cAAc,EACd,eAAe,EACf,mBAAmB,GACnB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD,MAAM,OAAO,2BAA4B,SAAQ,cAA8C;IAC9F,SAAS;QACR,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QAClC,MAAM,EAAE,OAAO,EAAE,GAAG,2BAA2B,CAAC;QAEhD,MAAM,YAAY,GAAG;YACpB,cAAc,CAAC,GAAG,CAAC;YACnB,IAAI,CAAC,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;YACxC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;YAClB,cAAc,CAAC,GAAG,CAAC;SACnB,CAAC;QAEF,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC;IAC1C,CAAC;;AAEc,mCAAO,GAAG;IACxB,IAAI,EAAE,CAAC,IAA4C,EAAE,EAAE,CACtD,IAAI;SACF,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACb,MAAM,YAAY,GAAG;YACpB,cAAc,CAAC,IAAI,CAAC;YACpB,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,wBAAwB,CAAC;YACtD,cAAc,CAAC,GAAG,CAAC;SACnB,CAAC;QACF,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE;YACZ,YAAY,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SAC5C;QACD,OAAO,YAAY,CAAC;IACrB,CAAC,CAAC;SACD,IAAI,EAAE;CACT,CAAC;AAGH,MAAM,aAAa,GAAkB,gCAAgC,CAAC;AACtE,cAAc,CAAC,MAAM,CAAC,aAAa,EAAE,2BAA2B,CAAC,CAAC"} \ No newline at end of file diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignatureTuple.d.ts b/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignatureTuple.d.ts new file mode 100644 index 000000000..d16f64efd --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignatureTuple.d.ts @@ -0,0 +1,6 @@ +import { JSONOutput } from 'typedoc'; +import { YafHTMLElement } from '../../../index.js'; +export declare class YafSignatureTuple extends YafHTMLElement { + onConnect(): void; + private static factory; +} diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignatureTuple.js b/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignatureTuple.js new file mode 100644 index 000000000..e6462134d --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignatureTuple.js @@ -0,0 +1,25 @@ +import { makeSymbolSpan, renderSignatureType } from '../../../yafElement.js'; +import { YafHTMLElement } from '../../../index.js'; +export class YafSignatureTuple extends YafHTMLElement { + onConnect() { + const { elements: tupleTypes } = this.props; + const { factory } = YafSignatureTuple; + const HTMLElements = [ + makeSymbolSpan('['), + factory.tupleTypes(tupleTypes), + makeSymbolSpan(']'), + ]; + this.appendChildren(HTMLElements.flat()); + } +} +YafSignatureTuple.factory = { + tupleTypes: (tupleTypes) => tupleTypes === null || tupleTypes === void 0 ? void 0 : tupleTypes.map((type, i) => [ + renderSignatureType(type, 'tupleElement'), + i < tupleTypes.length - 1 + ? makeSymbolSpan(', ') + : undefined, + ]).flat(), +}; +const yafSignatureTuple = 'yaf-signature-tuple'; +customElements.define(yafSignatureTuple, YafSignatureTuple); +//# sourceMappingURL=YafSignatureTuple.js.map \ No newline at end of file diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignatureTuple.js.map b/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignatureTuple.js.map new file mode 100644 index 000000000..c890e8747 --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignatureTuple.js.map @@ -0,0 +1 @@ +{"version":3,"file":"YafSignatureTuple.js","sourceRoot":"","sources":["../../../../../../src/frontend/webComponents/Signature/signatureTypes/YafSignatureTuple.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7E,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAGnD,MAAM,OAAO,iBAAkB,SAAQ,cAAoC;IAC1E,SAAS;QACR,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QAC5C,MAAM,EAAE,OAAO,EAAE,GAAG,iBAAiB,CAAC;QAEtC,MAAM,YAAY,GAAG;YACpB,cAAc,CAAC,GAAG,CAAC;YACnB,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC;YAC9B,cAAc,CAAC,GAAG,CAAC;SACnB,CAAC;QAEF,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC;IAC1C,CAAC;;AAEc,yBAAO,GAAG;IACxB,UAAU,EAAE,CAAC,UAA4C,EAAE,EAAE,CAC5D,UAAU,aAAV,UAAU,uBAAV,UAAU,CACP,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC;QAClB,mBAAmB,CAAC,IAAI,EAAE,cAAc,CAAC;QACzC,CAAC,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC;YACxB,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC;YACtB,CAAC,CAAC,SAAS;KACZ,EACA,IAAI,EAAE;CACT,CAAC;AAGH,MAAM,iBAAiB,GAAkB,qBAAqB,CAAC;AAC/D,cAAc,CAAC,MAAM,CAAC,iBAAiB,EAAE,iBAAiB,CAAC,CAAC"} \ No newline at end of file diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignatureTypeOperator.d.ts b/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignatureTypeOperator.d.ts new file mode 100644 index 000000000..08bcabeca --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignatureTypeOperator.d.ts @@ -0,0 +1,5 @@ +import { JSONOutput } from 'typedoc'; +import { YafHTMLElement } from '../../../index.js'; +export declare class YafSignatureTypeOperator extends YafHTMLElement { + onConnect(): void; +} diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignatureTypeOperator.js b/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignatureTypeOperator.js new file mode 100644 index 000000000..e278aca26 --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignatureTypeOperator.js @@ -0,0 +1,15 @@ +import { YafHTMLElement } from '../../../index.js'; +import { makeSymbolSpan, renderSignatureType } from '../../../yafElement.js'; +export class YafSignatureTypeOperator extends YafHTMLElement { + onConnect() { + const { operator, target } = this.props; + const HTMLElements = [ + makeSymbolSpan(`${operator} `), + renderSignatureType(target, 'typeOperatorTarget'), + ]; + this.appendChildren(HTMLElements.flat()); + } +} +const yafSignatureTypeOperator = 'yaf-signature-type-operator'; +customElements.define(yafSignatureTypeOperator, YafSignatureTypeOperator); +//# sourceMappingURL=YafSignatureTypeOperator.js.map \ No newline at end of file diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignatureTypeOperator.js.map b/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignatureTypeOperator.js.map new file mode 100644 index 000000000..134f5a574 --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignatureTypeOperator.js.map @@ -0,0 +1 @@ +{"version":3,"file":"YafSignatureTypeOperator.js","sourceRoot":"","sources":["../../../../../../src/frontend/webComponents/Signature/signatureTypes/YafSignatureTypeOperator.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAE7E,MAAM,OAAO,wBAAyB,SAAQ,cAA2C;IACxF,SAAS;QACR,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QAExC,MAAM,YAAY,GAAG;YACpB,cAAc,CAAC,GAAG,QAAQ,GAAG,CAAC;YAC9B,mBAAmB,CAAC,MAAM,EAAE,oBAAoB,CAAC;SACjD,CAAC;QAEF,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC;IAC1C,CAAC;CACD;AAED,MAAM,wBAAwB,GAAkB,6BAA6B,CAAC;AAC9E,cAAc,CAAC,MAAM,CAAC,wBAAwB,EAAE,wBAAwB,CAAC,CAAC"} \ No newline at end of file diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignatureUnion.d.ts b/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignatureUnion.d.ts new file mode 100644 index 000000000..e01d177f1 --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignatureUnion.d.ts @@ -0,0 +1,5 @@ +import { JSONOutput } from 'typedoc'; +import { YafHTMLElement } from '../../../index.js'; +export declare class YafSignatureUnion extends YafHTMLElement { + onConnect(): void; +} diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignatureUnion.js b/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignatureUnion.js new file mode 100644 index 000000000..07d1ef4cc --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignatureUnion.js @@ -0,0 +1,15 @@ +import { renderSignatureType, makeSymbolSpan } from '../../../yafElement.js'; +import { YafHTMLElement } from '../../../index.js'; +export class YafSignatureUnion extends YafHTMLElement { + onConnect() { + const { types } = this.props; + const HTMLElements = types.map((type, i) => [ + renderSignatureType(type, 'unionElement'), + i < types.length - 1 ? makeSymbolSpan(' | ') : undefined, + ]); + this.appendChildren(HTMLElements.flat()); + } +} +const componentName = 'yaf-signature-union'; +customElements.define(componentName, YafSignatureUnion); +//# sourceMappingURL=YafSignatureUnion.js.map \ No newline at end of file diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignatureUnion.js.map b/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignatureUnion.js.map new file mode 100644 index 000000000..499fbe0b3 --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/YafSignatureUnion.js.map @@ -0,0 +1 @@ +{"version":3,"file":"YafSignatureUnion.js","sourceRoot":"","sources":["../../../../../../src/frontend/webComponents/Signature/signatureTypes/YafSignatureUnion.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7E,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD,MAAM,OAAO,iBAAkB,SAAQ,cAAoC;IAC1E,SAAS;QACR,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QAE7B,MAAM,YAAY,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3C,mBAAmB,CAAC,IAAI,EAAE,cAAc,CAAC;YACzC,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS;SACxD,CAAC,CAAC;QAEH,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC;IAC1C,CAAC;CACD;AAED,MAAM,aAAa,GAAkB,qBAAqB,CAAC;AAC3D,cAAc,CAAC,MAAM,CAAC,aAAa,EAAE,iBAAiB,CAAC,CAAC"} \ No newline at end of file diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/index.d.ts b/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/index.d.ts new file mode 100644 index 000000000..5071c54a6 --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/index.d.ts @@ -0,0 +1,19 @@ +export * from './YafSignatureArray.js'; +export * from './YafSignatureConditional.js'; +export * from './YafSignatureIndexedAccess.js'; +export * from './YafSignatureInferred.js'; +export * from './YafSignatureIntersection.js'; +export * from './YafSignatureIntrinsic.js'; +export * from './YafSignatureLiteral.js'; +export * from './YafSignatureMapped.js'; +export * from './YafSignatureNamedTupleMember.js'; +export * from './YafSignatureOptional.js'; +export * from './YafSignaturePredicate.js'; +export * from './YafSignatureQuery.js'; +export * from './YafSignatureReference.js'; +export * from './YafSignatureReflection.js'; +export * from './YafSignatureRest.js'; +export * from './YafSignatureTemplateLiteral.js'; +export * from './YafSignatureTuple.js'; +export * from './YafSignatureTypeOperator.js'; +export * from './YafSignatureUnion.js'; diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/index.js b/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/index.js new file mode 100644 index 000000000..f5166255e --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/index.js @@ -0,0 +1,20 @@ +export * from './YafSignatureArray.js'; +export * from './YafSignatureConditional.js'; +export * from './YafSignatureIndexedAccess.js'; +export * from './YafSignatureInferred.js'; +export * from './YafSignatureIntersection.js'; +export * from './YafSignatureIntrinsic.js'; +export * from './YafSignatureLiteral.js'; +export * from './YafSignatureMapped.js'; +export * from './YafSignatureNamedTupleMember.js'; +export * from './YafSignatureOptional.js'; +export * from './YafSignaturePredicate.js'; +export * from './YafSignatureQuery.js'; +export * from './YafSignatureReference.js'; +export * from './YafSignatureReflection.js'; +export * from './YafSignatureRest.js'; +export * from './YafSignatureTemplateLiteral.js'; +export * from './YafSignatureTuple.js'; +export * from './YafSignatureTypeOperator.js'; +export * from './YafSignatureUnion.js'; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/index.js.map b/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/index.js.map new file mode 100644 index 000000000..3f91740af --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Signature/signatureTypes/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/frontend/webComponents/Signature/signatureTypes/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC;AACvC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC;AACxC,cAAc,mCAAmC,CAAC;AAClD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,wBAAwB,CAAC;AACvC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,uBAAuB,CAAC;AACtC,cAAc,kCAAkC,CAAC;AACjD,cAAc,wBAAwB,CAAC;AACvC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,wBAAwB,CAAC"} \ No newline at end of file diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Type/YafTypeArguments.d.ts b/docs/v1.0.0-beta01/frontend/webComponents/Type/YafTypeArguments.d.ts new file mode 100644 index 000000000..998cd22bd --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Type/YafTypeArguments.d.ts @@ -0,0 +1,6 @@ +import { yafTypeArgumentsProps } from '../../../types/frontendTypes.js'; +import { YafHTMLElement } from '../../index.js'; +export declare class YafTypeArguments extends YafHTMLElement { + onConnect(): void; + private static factory; +} diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Type/YafTypeArguments.js b/docs/v1.0.0-beta01/frontend/webComponents/Type/YafTypeArguments.js new file mode 100644 index 000000000..977fe2d79 --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Type/YafTypeArguments.js @@ -0,0 +1,32 @@ +import { YafHTMLElement } from '../../index.js'; +import { makeSymbolSpan, makeElement } from '../../yafElement.js'; +export class YafTypeArguments extends YafHTMLElement { + onConnect() { + const { args } = this.props; + const { factory } = YafTypeArguments; + if (!args || !args.length) + return; + const HTMLElements = [ + makeSymbolSpan('<'), + factory.mapArguments(args), + makeSymbolSpan('>'), + ].flat(); + this.appendChildren(HTMLElements); + } +} +YafTypeArguments.factory = { + mapArguments: (args = []) => args + .map((argument, i) => { + const signature = makeElement('yaf-signature', null, null, { + type: argument, + context: 'referenceTypeArgument', + }); + if (i >= args.length - 1) + return signature; + return [signature, makeSymbolSpan(', ')]; + }) + .flat(), +}; +const yafTypeArguments = 'yaf-type-arguments'; +customElements.define(yafTypeArguments, YafTypeArguments); +//# sourceMappingURL=YafTypeArguments.js.map \ No newline at end of file diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Type/YafTypeArguments.js.map b/docs/v1.0.0-beta01/frontend/webComponents/Type/YafTypeArguments.js.map new file mode 100644 index 000000000..2b7369836 --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Type/YafTypeArguments.js.map @@ -0,0 +1 @@ +{"version":3,"file":"YafTypeArguments.js","sourceRoot":"","sources":["../../../../../src/frontend/webComponents/Type/YafTypeArguments.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAGlE,MAAM,OAAO,gBAAiB,SAAQ,cAAqC;IAC1E,SAAS;QACR,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QAC5B,MAAM,EAAE,OAAO,EAAE,GAAG,gBAAgB,CAAC;QACrC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,OAAO;QAElC,MAAM,YAAY,GAAG;YACpB,cAAc,CAAC,GAAG,CAAC;YACnB,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC;YAC1B,cAAc,CAAC,GAAG,CAAC;SACnB,CAAC,IAAI,EAAE,CAAC;QAET,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;IACnC,CAAC;;AAEc,wBAAO,GAAG;IACxB,YAAY,EAAE,CAAC,OAAsC,EAAE,EAAE,EAAE,CAC1D,IAAI;SACF,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,EAAE,EAAE;QACpB,MAAM,SAAS,GAAG,WAAW,CAG3B,eAAe,EAAE,IAAI,EAAE,IAAI,EAAE;YAC9B,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,uBAAuB;SAChC,CAAC,CAAC;QACH,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,SAAS,CAAC;QAC3C,OAAO,CAAC,SAAS,EAAE,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC;IAC1C,CAAC,CAAC;SACD,IAAI,EAAE;CACT,CAAC;AAEH,MAAM,gBAAgB,GAAG,oBAAoB,CAAC;AAC9C,cAAc,CAAC,MAAM,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,CAAC"} \ No newline at end of file diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Type/YafTypeParameters.d.ts b/docs/v1.0.0-beta01/frontend/webComponents/Type/YafTypeParameters.d.ts new file mode 100644 index 000000000..86a772af2 --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Type/YafTypeParameters.d.ts @@ -0,0 +1,6 @@ +import { YAFDataObject } from '../../../types/types.js'; +import { YafHTMLElement } from '../../index.js'; +export declare class YafTypeParameters extends YafHTMLElement { + onConnect(): void; + private static factory; +} diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Type/YafTypeParameters.js b/docs/v1.0.0-beta01/frontend/webComponents/Type/YafTypeParameters.js new file mode 100644 index 000000000..2303aea51 --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Type/YafTypeParameters.js @@ -0,0 +1,34 @@ +import { YafHTMLElement } from '../../index.js'; +import { makeElement, makeSymbolSpan } from '../../yafElement.js'; +export class YafTypeParameters extends YafHTMLElement { + onConnect() { + const { factory } = YafTypeParameters; + const HTMLElements = [ + makeSymbolSpan('<'), + factory.mapParams(factory.makeParams(this.props)), + makeSymbolSpan('>'), + ].flat(); + this.appendChildren(HTMLElements); + } +} +YafTypeParameters.factory = { + makeParams: (params) => (params || []).flatMap((param) => { + const span = makeElement('span', `type ${param.kindString ? ` ${param.kindString}` : ''}`, param.name); + return param.varianceModifier + ? [ + makeElement('span', 'modifier', `${param.varianceModifier}`), + span, + ] + : span; + }), + mapParams: (params) => params + .map((param, i) => { + if (i >= params.length - 1) + return param; + return [param, makeSymbolSpan(',')]; + }) + .flat(), +}; +const yafTypeParameters = 'yaf-type-parameters'; +customElements.define(yafTypeParameters, YafTypeParameters); +//# sourceMappingURL=YafTypeParameters.js.map \ No newline at end of file diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Type/YafTypeParameters.js.map b/docs/v1.0.0-beta01/frontend/webComponents/Type/YafTypeParameters.js.map new file mode 100644 index 000000000..3b07db417 --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Type/YafTypeParameters.js.map @@ -0,0 +1 @@ +{"version":3,"file":"YafTypeParameters.js","sourceRoot":"","sources":["../../../../../src/frontend/webComponents/Type/YafTypeParameters.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAElE,MAAM,OAAO,iBAAkB,SAAQ,cAEtC;IACA,SAAS;QACR,MAAM,EAAE,OAAO,EAAE,GAAG,iBAAiB,CAAC;QAEtC,MAAM,YAAY,GAAG;YACpB,cAAc,CAAC,GAAG,CAAC;YACnB,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACjD,cAAc,CAAC,GAAG,CAAC;SACnB,CAAC,IAAI,EAAE,CAAC;QAET,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;IACnC,CAAC;;AAEc,yBAAO,GAAG;IACxB,UAAU,EAAE,CAAC,MAAuC,EAAE,EAAE,CACvD,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;QAChC,MAAM,IAAI,GAAG,WAAW,CACvB,MAAM,EACN,QAAQ,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EACxD,KAAK,CAAC,IAAI,CACV,CAAC;QACF,OAAO,KAAK,CAAC,gBAAgB;YAC5B,CAAC,CAAC;gBACA,WAAW,CACV,MAAM,EACN,UAAU,EACV,GAAG,KAAK,CAAC,gBAAgB,EAAE,CAC3B;gBACD,IAAI;aACH;YACH,CAAC,CAAC,IAAI,CAAC;IACT,CAAC,CAAC;IACH,SAAS,EAAE,CAAC,MAAqB,EAAE,EAAE,CACpC,MAAM;SACJ,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE;QACjB,IAAI,CAAC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,KAAK,CAAC;QACzC,OAAO,CAAC,KAAK,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC;IACrC,CAAC,CAAC;SACD,IAAI,EAAE;CACT,CAAC;AAEH,MAAM,iBAAiB,GAAG,qBAAqB,CAAC;AAChD,cAAc,CAAC,MAAM,CAAC,iBAAiB,EAAE,iBAAiB,CAAC,CAAC"} \ No newline at end of file diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Type/index.d.ts b/docs/v1.0.0-beta01/frontend/webComponents/Type/index.d.ts new file mode 100644 index 000000000..3940a2fce --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Type/index.d.ts @@ -0,0 +1,2 @@ +export * from './YafTypeArguments.js'; +export * from './YafTypeParameters.js'; diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Type/index.js b/docs/v1.0.0-beta01/frontend/webComponents/Type/index.js new file mode 100644 index 000000000..3197f9512 --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Type/index.js @@ -0,0 +1,3 @@ +export * from './YafTypeArguments.js'; +export * from './YafTypeParameters.js'; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Type/index.js.map b/docs/v1.0.0-beta01/frontend/webComponents/Type/index.js.map new file mode 100644 index 000000000..f91f4d384 --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Type/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/frontend/webComponents/Type/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC"} \ No newline at end of file diff --git a/docs/v1.0.0-beta01/frontend/webComponents/TypedocThemeYaf.d.ts b/docs/v1.0.0-beta01/frontend/webComponents/TypedocThemeYaf.d.ts new file mode 100644 index 000000000..5161a6f61 --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/TypedocThemeYaf.d.ts @@ -0,0 +1,12 @@ +import { YafHTMLElement } from '../index.js'; +/** + * This is the highest level component of the theme, parent container to all other custom theme elements + */ +export declare class TypedocThemeYaf extends YafHTMLElement { + onConnect(): void; + disconnectedCallback(): void; + private setTitle; + private initVersions; + private toggleMenu; + private events; +} diff --git a/docs/v1.0.0-beta01/frontend/webComponents/TypedocThemeYaf.js b/docs/v1.0.0-beta01/frontend/webComponents/TypedocThemeYaf.js new file mode 100644 index 000000000..654e98071 --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/TypedocThemeYaf.js @@ -0,0 +1,47 @@ +import { getHtmlTemplate } from '../yafElement.js'; +import appState from '../handlers/AppState.js'; +import { YafHTMLElement } from '../index.js'; +import { events } from '../handlers/index.js'; +const { trigger } = events; +/** + * This is the highest level component of the theme, parent container to all other custom theme elements + */ +export class TypedocThemeYaf extends YafHTMLElement { + constructor() { + super(...arguments); + this.setTitle = () => { + const titleHTMLElement = document.querySelector('title'); + titleHTMLElement.innerText = appState.projectName; + }; + this.initVersions = () => { + const versionHTMLElement = document.getElementById('plugin-versions-select'); + const footerHTMLElement = document.querySelector('yaf-navigation-footer'); + footerHTMLElement === null || footerHTMLElement === void 0 ? void 0 : footerHTMLElement.appendChild(versionHTMLElement); + document.querySelector('body').classList.remove('init'); + }; + this.toggleMenu = ({ detail, }) => { + const { state } = detail; + if (state === 'close' || this.classList.contains('menuOpen')) { + this.classList.remove('menuOpen'); + } + else { + this.classList.add('menuOpen'); + } + }; + this.events = [[trigger.menu.toggle, this.toggleMenu]]; + } + onConnect() { + appState + .initCache() + .then(this.setTitle) + .then(() => this.appendChild(getHtmlTemplate(typedocThemeYaf))) + .then(this.initVersions); + this.events.forEach((event) => events.on(...event)); + } + disconnectedCallback() { + this.events.forEach((event) => events.off(...event)); + } +} +const typedocThemeYaf = 'typedoc-theme-yaf'; +customElements.define(typedocThemeYaf, TypedocThemeYaf); +//# sourceMappingURL=TypedocThemeYaf.js.map \ No newline at end of file diff --git a/docs/v1.0.0-beta01/frontend/webComponents/TypedocThemeYaf.js.map b/docs/v1.0.0-beta01/frontend/webComponents/TypedocThemeYaf.js.map new file mode 100644 index 000000000..8ecf93a44 --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/TypedocThemeYaf.js.map @@ -0,0 +1 @@ +{"version":3,"file":"TypedocThemeYaf.js","sourceRoot":"","sources":["../../../../src/frontend/webComponents/TypedocThemeYaf.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,QAAQ,MAAM,yBAAyB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAU,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAEtD,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC;AAE3B;;GAEG;AACH,MAAM,OAAO,eAAgB,SAAQ,cAAc;IAAnD;;QAYS,aAAQ,GAAG,GAAG,EAAE;YACvB,MAAM,gBAAgB,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;YACzD,gBAAiB,CAAC,SAAS,GAAG,QAAQ,CAAC,WAAW,CAAC;QACpD,CAAC,CAAC;QACM,iBAAY,GAAG,GAAG,EAAE;YAC3B,MAAM,kBAAkB,GAAG,QAAQ,CAAC,cAAc,CACjD,wBAAwB,CACxB,CAAC;YACF,MAAM,iBAAiB,GAAG,QAAQ,CAAC,aAAa,CAC/C,uBAAuB,CACvB,CAAC;YAEF,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAE,WAAW,CAAC,kBAAmB,CAAC,CAAC;YACpD,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAE,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC1D,CAAC,CAAC;QACM,eAAU,GAAG,CAAC,EACrB,MAAM,GACiC,EAAE,EAAE;YAC3C,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC;YACzB,IAAI,KAAK,KAAK,OAAO,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE;gBAC7D,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;aAClC;iBAAM;gBACN,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;aAC/B;QACF,CAAC,CAAC;QACM,WAAM,GAAiB,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;IACzE,CAAC;IArCA,SAAS;QACR,QAAQ;aACN,SAAS,EAAE;aACX,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;aACnB,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,eAAe,CAAC,CAAC,CAAC;aAC9D,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC1B,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;IACrD,CAAC;IACD,oBAAoB;QACnB,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;IACtD,CAAC;CA2BD;AACD,MAAM,eAAe,GAAkB,mBAAmB,CAAC;AAC3D,cAAc,CAAC,MAAM,CAAC,eAAe,EAAE,eAAe,CAAC,CAAC"} \ No newline at end of file diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Widget/YafWidgetCounter.d.ts b/docs/v1.0.0-beta01/frontend/webComponents/Widget/YafWidgetCounter.d.ts new file mode 100644 index 000000000..afe68b94e --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Widget/YafWidgetCounter.d.ts @@ -0,0 +1,5 @@ +import { yafWidgetCounterProps } from '../../../types/frontendTypes.js'; +import { YafHTMLElement } from '../../index.js'; +export declare class YafWidgetCounter extends YafHTMLElement { + onConnect(): void; +} diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Widget/YafWidgetCounter.js b/docs/v1.0.0-beta01/frontend/webComponents/Widget/YafWidgetCounter.js new file mode 100644 index 000000000..355f97ba8 --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Widget/YafWidgetCounter.js @@ -0,0 +1,14 @@ +import { YafHTMLElement } from '../../index.js'; +const countFontSize = '0.9rem'; +export class YafWidgetCounter extends YafHTMLElement { + onConnect() { + if (!this.props.fontSize) + this.props.fontSize = countFontSize; + this.innerHTML = `[ ${this.props.count} ]`; + if (this.props.fontSize) + this.setAttribute('style', `font-size: ${this.props.fontSize};`); + } +} +const yafWidgetCounter = 'yaf-widget-counter'; +customElements.define(yafWidgetCounter, YafWidgetCounter); +//# sourceMappingURL=YafWidgetCounter.js.map \ No newline at end of file diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Widget/YafWidgetCounter.js.map b/docs/v1.0.0-beta01/frontend/webComponents/Widget/YafWidgetCounter.js.map new file mode 100644 index 000000000..05523dbb4 --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Widget/YafWidgetCounter.js.map @@ -0,0 +1 @@ +{"version":3,"file":"YafWidgetCounter.js","sourceRoot":"","sources":["../../../../../src/frontend/webComponents/Widget/YafWidgetCounter.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAEhD,MAAM,aAAa,GAAG,QAAQ,CAAC;AAE/B,MAAM,OAAO,gBAAiB,SAAQ,cAAqC;IAC1E,SAAS;QACR,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ;YAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,aAAa,CAAC;QAE9D,IAAI,CAAC,SAAS,GAAG,yBAAyB,IAAI,CAAC,KAAK,CAAC,KAAK,WAAW,CAAC;QACtE,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ;YACtB,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,cAAc,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC;IACnE,CAAC;CACD;AACD,MAAM,gBAAgB,GAAkB,oBAAoB,CAAC;AAC7D,cAAc,CAAC,MAAM,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,CAAC"} \ No newline at end of file diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Widget/YafWidgetFlags.d.ts b/docs/v1.0.0-beta01/frontend/webComponents/Widget/YafWidgetFlags.d.ts new file mode 100644 index 000000000..a78afe27a --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Widget/YafWidgetFlags.d.ts @@ -0,0 +1,5 @@ +import { yafWidgetFlagsProps } from '../../../types/frontendTypes.js'; +import { YafHTMLElement } from '../../index.js'; +export declare class YafWidgetFlags extends YafHTMLElement { + onConnect(): void; +} diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Widget/YafWidgetFlags.js b/docs/v1.0.0-beta01/frontend/webComponents/Widget/YafWidgetFlags.js new file mode 100644 index 000000000..e13548af6 --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Widget/YafWidgetFlags.js @@ -0,0 +1,13 @@ +import { YafHTMLElement } from '../../index.js'; +import { makeElement } from '../../yafElement.js'; +export class YafWidgetFlags extends YafHTMLElement { + onConnect() { + const { flags, comment } = this.props; + const allFlags = [...flags, ...((comment === null || comment === void 0 ? void 0 : comment.modifierTags) || [])]; + const HTMLElements = allFlags.map((flag) => makeElement('span', 'flag', flag.replace(/^@/, ''))); + this.appendChildren(HTMLElements); + } +} +const yafWidgetFlags = 'yaf-widget-flags'; +customElements.define(yafWidgetFlags, YafWidgetFlags); +//# sourceMappingURL=YafWidgetFlags.js.map \ No newline at end of file diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Widget/YafWidgetFlags.js.map b/docs/v1.0.0-beta01/frontend/webComponents/Widget/YafWidgetFlags.js.map new file mode 100644 index 000000000..afb7da887 --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Widget/YafWidgetFlags.js.map @@ -0,0 +1 @@ +{"version":3,"file":"YafWidgetFlags.js","sourceRoot":"","sources":["../../../../../src/frontend/webComponents/Widget/YafWidgetFlags.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAElD,MAAM,OAAO,cAAe,SAAQ,cAAmC;IACtE,SAAS;QACR,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QAEtC,MAAM,QAAQ,GAAG,CAAC,GAAG,KAAK,EAAE,GAAG,CAAC,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,YAAY,KAAI,EAAE,CAAC,CAAC,CAAC;QAE9D,MAAM,YAAY,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAC1C,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CACnD,CAAC;QAEF,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;IACnC,CAAC;CACD;AAED,MAAM,cAAc,GAAG,kBAAkB,CAAC;AAC1C,cAAc,CAAC,MAAM,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC"} \ No newline at end of file diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Widget/YafWidgetKind.d.ts b/docs/v1.0.0-beta01/frontend/webComponents/Widget/YafWidgetKind.d.ts new file mode 100644 index 000000000..9e27ea791 --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Widget/YafWidgetKind.d.ts @@ -0,0 +1,6 @@ +import { YafHTMLElement } from '../../index.js'; +export declare class YafWidgetKind extends YafHTMLElement<{ + kind: string; +}> { + onConnect(): void; +} diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Widget/YafWidgetKind.js b/docs/v1.0.0-beta01/frontend/webComponents/Widget/YafWidgetKind.js new file mode 100644 index 000000000..6a3937d3b --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Widget/YafWidgetKind.js @@ -0,0 +1,19 @@ +import { YafHTMLElement } from '../../index.js'; +import appState from '../../handlers/AppState.js'; +export class YafWidgetKind extends YafHTMLElement { + onConnect() { + var _a; + const { kind } = this.props; + if (kind) { + const data = appState.kindSymbols[Number(kind)]; + this.classList.add(data.className || 'notfound'); + this.innerHTML = `${data.symbol || '*'}`; + } + else { + (_a = this.parentElement) === null || _a === void 0 ? void 0 : _a.removeChild(this); + } + } +} +const yafWidgetKind = 'yaf-widget-kind'; +customElements.define(yafWidgetKind, YafWidgetKind); +//# sourceMappingURL=YafWidgetKind.js.map \ No newline at end of file diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Widget/YafWidgetKind.js.map b/docs/v1.0.0-beta01/frontend/webComponents/Widget/YafWidgetKind.js.map new file mode 100644 index 000000000..ca5ebd488 --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Widget/YafWidgetKind.js.map @@ -0,0 +1 @@ +{"version":3,"file":"YafWidgetKind.js","sourceRoot":"","sources":["../../../../../src/frontend/webComponents/Widget/YafWidgetKind.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,QAAQ,MAAM,4BAA4B,CAAC;AAElD,MAAM,OAAO,aAAc,SAAQ,cAAgC;IAClE,SAAS;;QACR,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QAC5B,IAAI,IAAI,EAAE;YACT,MAAM,IAAI,GAAG,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;YAChD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,IAAI,UAAU,CAAC,CAAC;YACjD,IAAI,CAAC,SAAS,GAAG,SAAS,IAAI,CAAC,MAAM,IAAI,GAAG,SAAS,CAAC;SACtD;aAAM;YACN,MAAA,IAAI,CAAC,aAAa,0CAAE,WAAW,CAAC,IAAI,CAAC,CAAC;SACtC;IACF,CAAC;CACD;AACD,MAAM,aAAa,GAAkB,iBAAiB,CAAC;AACvD,cAAc,CAAC,MAAM,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC"} \ No newline at end of file diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Widget/YafWidgetTagToggle.d.ts b/docs/v1.0.0-beta01/frontend/webComponents/Widget/YafWidgetTagToggle.d.ts new file mode 100644 index 000000000..50d38f11b --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Widget/YafWidgetTagToggle.d.ts @@ -0,0 +1,12 @@ +import { displayStates, flagCounts, yafDisplayOptions } from '../../../types/frontendTypes.js'; +import { YafHTMLElement } from '../../index.js'; +export declare class YafWidgetTagToggle extends YafHTMLElement<{ + flagCounts: flagCounts; +}> { + static get observedAttributes(): string[]; + attributeChangedCallback(name: yafDisplayOptions, oldValue: displayStates, newValue: displayStates): void; + onConnect(): void; + disconnectedCallback(): void; + private eventList; + private static factory; +} diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Widget/YafWidgetTagToggle.js b/docs/v1.0.0-beta01/frontend/webComponents/Widget/YafWidgetTagToggle.js new file mode 100644 index 000000000..b978f9282 --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Widget/YafWidgetTagToggle.js @@ -0,0 +1,71 @@ +import { YafHTMLElement } from '../../index.js'; +import appState from '../../handlers/AppState.js'; +import { makeElement, flashElementBackground } from '../../yafElement.js'; +import { events } from '../../handlers/index.js'; +const { action, trigger } = events; +export class YafWidgetTagToggle extends YafHTMLElement { + constructor() { + super(...arguments); + this.eventList = [ + [ + trigger.options.display, + ({ detail }) => { + const { key, value } = detail; + this.setAttribute(key, value); + }, + ], + ]; + } + static get observedAttributes() { + return ['inherited', 'private']; + } + attributeChangedCallback(name, oldValue, newValue) { + if (!oldValue || oldValue === newValue) + return; + const HTMLElement = this.querySelector(`.${name}`); + if (HTMLElement === null || HTMLElement === void 0 ? void 0 : HTMLElement.textContent) + HTMLElement.textContent = HTMLElement.textContent.replace(newValue, oldValue); + } + onConnect() { + const { factory } = YafWidgetTagToggle; + const { flagCounts } = this.props; + Object.keys(flagCounts).forEach((flag) => { + const count = flagCounts[flag]; + if (!count) + return; + let display = appState.options.display[flag]; + this.setAttribute(flag, display); + display = display === 'hide' ? 'show' : 'hide'; + this.appendChild(makeElement('span', flag, `${display} [ ${count} ] ${flag}`)).onclick = (e) => { + const newState = appState.toggleDisplayOption(flag); + events.dispatch(action.options.display(flag, newState)); + events.dispatch(action.drawers.resetHeight()); + factory.handleClickAnimations(e); + }; + this.eventList.forEach((event) => events.on(...event)); + }); + } + disconnectedCallback() { + this.eventList.forEach((event) => events.off(...event)); + } +} +YafWidgetTagToggle.factory = { + handleClickAnimations: (e) => { + setTimeout(() => { + const target = e.target; + const container = getScrollContainer(target); + container.classList.add('instant'); + container.scrollTop = target.offsetTop; + container.classList.remove('instant'); + flashElementBackground(e.target); + }); + function getScrollContainer(target) { + return target.classList.contains('scroller') + ? target + : getScrollContainer(target.parentElement); + } + }, +}; +const yafWidgetTagToggle = 'yaf-widget-tag-toggle'; +customElements.define(yafWidgetTagToggle, YafWidgetTagToggle); +//# sourceMappingURL=YafWidgetTagToggle.js.map \ No newline at end of file diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Widget/YafWidgetTagToggle.js.map b/docs/v1.0.0-beta01/frontend/webComponents/Widget/YafWidgetTagToggle.js.map new file mode 100644 index 000000000..e5c7afffe --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Widget/YafWidgetTagToggle.js.map @@ -0,0 +1 @@ +{"version":3,"file":"YafWidgetTagToggle.js","sourceRoot":"","sources":["../../../../../src/frontend/webComponents/Widget/YafWidgetTagToggle.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Widget/index.d.ts b/docs/v1.0.0-beta01/frontend/webComponents/Widget/index.d.ts new file mode 100644 index 000000000..884bd8e95 --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Widget/index.d.ts @@ -0,0 +1,4 @@ +export * from './YafWidgetTagToggle.js'; +export * from './YafWidgetFlags.js'; +export * from './YafWidgetCounter.js'; +export * from './YafWidgetKind.js'; diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Widget/index.js b/docs/v1.0.0-beta01/frontend/webComponents/Widget/index.js new file mode 100644 index 000000000..696b09dff --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Widget/index.js @@ -0,0 +1,5 @@ +export * from './YafWidgetTagToggle.js'; +export * from './YafWidgetFlags.js'; +export * from './YafWidgetCounter.js'; +export * from './YafWidgetKind.js'; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/docs/v1.0.0-beta01/frontend/webComponents/Widget/index.js.map b/docs/v1.0.0-beta01/frontend/webComponents/Widget/index.js.map new file mode 100644 index 000000000..6fe29f621 --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/Widget/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/frontend/webComponents/Widget/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC;AACxC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC"} \ No newline at end of file diff --git a/docs/v1.0.0-beta01/frontend/webComponents/index.d.ts b/docs/v1.0.0-beta01/frontend/webComponents/index.d.ts new file mode 100644 index 000000000..686fac7b0 --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/index.d.ts @@ -0,0 +1,8 @@ +export * as Chrome from './Chrome/index.js'; +export * as Content from './Content/index.js'; +export * as Member from './Member/index.js'; +export * as Navigation from './Navigation/index.js'; +export * as Signature from './Signature/index.js'; +export * as Type from './Type/index.js'; +export * as Widget from './Widget/index.js'; +export * from './TypedocThemeYaf.js'; diff --git a/docs/v1.0.0-beta01/frontend/webComponents/index.js b/docs/v1.0.0-beta01/frontend/webComponents/index.js new file mode 100644 index 000000000..3d2d85f5b --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/index.js @@ -0,0 +1,16 @@ +import * as Chrome_1 from './Chrome/index.js'; +export { Chrome_1 as Chrome }; +import * as Content_1 from './Content/index.js'; +export { Content_1 as Content }; +import * as Member_1 from './Member/index.js'; +export { Member_1 as Member }; +import * as Navigation_1 from './Navigation/index.js'; +export { Navigation_1 as Navigation }; +import * as Signature_1 from './Signature/index.js'; +export { Signature_1 as Signature }; +import * as Type_1 from './Type/index.js'; +export { Type_1 as Type }; +import * as Widget_1 from './Widget/index.js'; +export { Widget_1 as Widget }; +export * from './TypedocThemeYaf.js'; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/docs/v1.0.0-beta01/frontend/webComponents/index.js.map b/docs/v1.0.0-beta01/frontend/webComponents/index.js.map new file mode 100644 index 000000000..8ef5a8038 --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/webComponents/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/frontend/webComponents/index.ts"],"names":[],"mappings":"0BAAwB,mBAAmB;qBAA/B,MAAM;2BACO,oBAAoB;sBAAjC,OAAO;0BACK,mBAAmB;qBAA/B,MAAM;8BACU,uBAAuB;yBAAvC,UAAU;6BACK,sBAAsB;wBAArC,SAAS;wBACC,iBAAiB;mBAA3B,IAAI;0BACQ,mBAAmB;qBAA/B,MAAM;AAElB,cAAc,sBAAsB,CAAC"} \ No newline at end of file diff --git a/docs/v1.0.0-beta01/frontend/yafElement.d.ts b/docs/v1.0.0-beta01/frontend/yafElement.d.ts new file mode 100644 index 000000000..e317f72e1 --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/yafElement.d.ts @@ -0,0 +1,39 @@ +import { componentName, materialIcon, TypeContext, yafHTMLExtension } from '../types/frontendTypes.js'; +import { JSONOutput } from 'typedoc'; +import { YAFDataObject } from '../types/types'; +import { YafNavigationLink } from './webComponents/Navigation/index.js'; +import { YafWidgetFlags } from './webComponents/Widget/index.js'; +export declare const appendChildren: (element: HTMLElement) => yafHTMLExtension['appendChildren']; +export declare const makeElement: >(tagName: string, className?: string | null, innerText?: string | null, props?: P | undefined) => T & yafHTMLExtension; +export declare const makeSymbolSpan: (text: string) => HTMLElement & yafHTMLExtension; +export declare const makeNameSpan: (text: string) => HTMLElement & yafHTMLExtension; +export declare const makeTypeSpan: (text: string) => HTMLElement & yafHTMLExtension; +export declare const makeTitleSpan: (text: string) => HTMLElement & yafHTMLExtension; +export declare const makeParameterSpan: (text: string) => HTMLElement & yafHTMLExtension; +export declare const makeIntrinsicSpan: (text: string) => HTMLElement & yafHTMLExtension; +export declare const makeKindSpan: (text: string) => HTMLElement & yafHTMLExtension; +export declare const makeValueSpan: (text: string) => HTMLElement & yafHTMLExtension; +export declare const makeParametersSpan: (text: string) => HTMLElement & yafHTMLExtension; +export declare const makeLiteralSpan: (text: string) => HTMLElement & yafHTMLExtension; +export declare const makeIconSpan: (iconInnerHtml: materialIcon, size?: 18 | 24 | 36 | 48) => HTMLElement; +export declare const makeLinkElement: (href: string, className?: string, innerText?: string) => YafNavigationLink & yafHTMLExtension; +export declare const makeFlags: (flags: JSONOutput.ReflectionFlags, comment: JSONOutput.Comment | undefined) => YafWidgetFlags & yafHTMLExtension; +/** + * Converts a ReflectionFlags Record object into an array of flags + * @param flags + * @returns + */ +export declare const normaliseFlags: (flags: JSONOutput.ReflectionFlags | undefined) => string[]; +/** + * Fetches the given document template from `index.html`. + * @param id The DOM id of the template + * @returns + */ +export declare const getHtmlTemplate: (id: componentName) => DocumentFragment; +export declare const needsParenthesis: (element: HTMLElement) => boolean; +export declare const renderSignatureType: (type: YAFDataObject['type'], context: TypeContext) => HTMLElement & yafHTMLExtension; +export declare const initCap: (text: string) => string; +export declare const getTransitionDuration: (drawer: HTMLElement) => number; +export declare const scrollToAnchor: (container: HTMLElement, anchor: string | number) => 0 | undefined; +export declare const flashElementBackground: (element: HTMLElement) => void; +export declare const stringify: (value: unknown) => string; diff --git a/docs/v1.0.0-beta01/frontend/yafElement.js b/docs/v1.0.0-beta01/frontend/yafElement.js new file mode 100644 index 000000000..d532ebd12 --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/yafElement.js @@ -0,0 +1,130 @@ +import errorHandlers from './handlers/ErrorHandlers.js'; +import { YafElementDrawers } from './YafElementDrawers.js'; +const iconClass = 'material-icons-sharp'; +export const appendChildren = (element) => (children = []) => { + children.forEach((child) => { + if (child) + element.appendChild(child); + }); +}; +export const makeElement = (tagName, className, innerText, props) => { + const element = document.createElement(tagName); + if (className) + className.split(' ').forEach((c) => { + if (c.length) + element.classList.add(c); + }); + if (innerText) + element.innerText = innerText; + element.props = props ? props : {}; + element.appendChildren = + appendChildren(element); + return element; +}; +export const makeSymbolSpan = (text) => makeElement('span', 'symbol', text); +export const makeNameSpan = (text) => makeElement('span', 'name', text); +export const makeTypeSpan = (text) => makeElement('span', 'type', text); +export const makeTitleSpan = (text) => makeElement('span', 'title', text); +export const makeParameterSpan = (text) => makeElement('span', 'parameter', text); +export const makeIntrinsicSpan = (text) => makeElement('span', 'intrinsic', text); +export const makeKindSpan = (text) => makeElement('span', 'kind', text); +export const makeValueSpan = (text) => makeElement('span', 'value', text); +export const makeParametersSpan = (text) => makeElement('span', 'parameters', text); +export const makeLiteralSpan = (text) => makeElement('span', 'literal', text); +export const makeIconSpan = (iconInnerHtml, size = 24) => { + return makeElement('span', `${iconClass} md-${size} yaficon`, iconInnerHtml); +}; +export const makeLinkElement = (href, className, innerText) => { + const link = makeElement('yaf-navigation-link', className, innerText, undefined); + link.setAttribute('href', href); + return link; +}; +export const makeFlags = (flags, comment) => { + const normalisedFlags = normaliseFlags(flags); + const flagElement = makeElement('yaf-widget-flags', null, null, { + flags: normalisedFlags, + comment, + }); + return flagElement; +}; +/** + * Converts a ReflectionFlags Record object into an array of flags + * @param flags + * @returns + */ +export const normaliseFlags = (flags) => { + if (!flags) + return []; + const flagsArray = Object.keys(flags) + .map((flag) => flag.replace('is', '').replace('has', '').toLowerCase().trim()) + .filter((flag) => !!flag); + return flagsArray; +}; +/** + * Fetches the given document template from `index.html`. + * @param id The DOM id of the template + * @returns + */ +export const getHtmlTemplate = (id) => { + const template = document.getElementById(id); + return template + ? template.content + : errorHandlers.notFound(`Could not find the HTMLTemplate for "#${id}".`); +}; +export const needsParenthesis = (element) => { + return element.hasAttribute('needsParenthesis'); +}; +export const renderSignatureType = (type, context) => { + if (!type) + return makeElement('span', null, 'null'); + return makeElement('yaf-signature', null, null, { + type, + context, + }); +}; +export const initCap = (text) => `${text.charAt(0).toUpperCase()}${text.slice(1)}`; +export const getTransitionDuration = (drawer) => { + const animationDelay = getComputedStyle(drawer).getPropertyValue('transition-duration'); + return parseFloat(animationDelay) * 1000; +}; +export const scrollToAnchor = (container, anchor) => { + if (typeof anchor === 'number') + return (container.scrollTop = 0); + const targetElement = document.getElementById(anchor); + if (targetElement) { + const drawerParents = YafElementDrawers.findParentDrawers(targetElement); + const scrollIntoView = () => { + container.scrollTop = targetElement.offsetTop; + hackFixMobileScrolling(); + flashElementBackground(targetElement); + }; + if (!YafElementDrawers.hasClosedDrawers(drawerParents)) { + scrollIntoView(); + } + else if (drawerParents.length) { + drawerParents.forEach((element) => element.drawers.openDrawer()); + setTimeout(() => scrollIntoView(), getTransitionDuration(drawerParents[0].drawers.drawer) / 2); + } + } + else { + return errorHandlers.notFound(`Could not find element for "#${anchor}"`); + } + function hackFixMobileScrolling() { + const containerHTMLElements = document.querySelectorAll('html, body, typedoc-theme-yaf, yaf-chrome-left, yaf-chrome-right'); + [...containerHTMLElements].forEach((containerHTMLElement) => { + if (containerHTMLElement) + containerHTMLElement.scrollTop = 0; + }); + } +}; +export const flashElementBackground = (element) => { + element.classList.add('flash'); + setTimeout(() => element.classList.remove('flash'), 1000); +}; +export const stringify = (value) => { + if (typeof value === 'bigint') { + return String(value) + 'n'; + } + return JSON.stringify(value).replace(/^"|"$/g, ''); +}; +//# sourceMappingURL=yafElement.js.map \ No newline at end of file diff --git a/docs/v1.0.0-beta01/frontend/yafElement.js.map b/docs/v1.0.0-beta01/frontend/yafElement.js.map new file mode 100644 index 000000000..7a0806e52 --- /dev/null +++ b/docs/v1.0.0-beta01/frontend/yafElement.js.map @@ -0,0 +1 @@ +{"version":3,"file":"yafElement.js","sourceRoot":"","sources":["../../../src/frontend/yafElement.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/docs/v1.0.0-beta01/index.html b/docs/v1.0.0-beta01/index.html new file mode 100644 index 000000000..121aa7789 --- /dev/null +++ b/docs/v1.0.0-beta01/index.html @@ -0,0 +1,62 @@ + + + + + + + Document + + + + + + + + + +
    + loop +
    + + + + + + + diff --git a/docs/v1.0.0-beta01/media/favicon.ico b/docs/v1.0.0-beta01/media/favicon.ico new file mode 100644 index 000000000..98d4c61ea Binary files /dev/null and b/docs/v1.0.0-beta01/media/favicon.ico differ diff --git a/docs/v1.0.0-beta01/media/fonts/materialIcons/LICENSE b/docs/v1.0.0-beta01/media/fonts/materialIcons/LICENSE new file mode 100644 index 000000000..d64569567 --- /dev/null +++ b/docs/v1.0.0-beta01/media/fonts/materialIcons/LICENSE @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/docs/v1.0.0-beta01/media/fonts/materialIcons/material-icons-sharp.woff b/docs/v1.0.0-beta01/media/fonts/materialIcons/material-icons-sharp.woff new file mode 100644 index 000000000..80d8c991d Binary files /dev/null and b/docs/v1.0.0-beta01/media/fonts/materialIcons/material-icons-sharp.woff differ diff --git a/docs/v1.0.0-beta01/media/fonts/materialIcons/material-icons-sharp.woff2 b/docs/v1.0.0-beta01/media/fonts/materialIcons/material-icons-sharp.woff2 new file mode 100644 index 000000000..406268527 Binary files /dev/null and b/docs/v1.0.0-beta01/media/fonts/materialIcons/material-icons-sharp.woff2 differ diff --git a/docs/v1.0.0-beta01/media/fonts/materialIcons/sharp.css b/docs/v1.0.0-beta01/media/fonts/materialIcons/sharp.css new file mode 100644 index 000000000..d8cf2cfdc --- /dev/null +++ b/docs/v1.0.0-beta01/media/fonts/materialIcons/sharp.css @@ -0,0 +1,27 @@ +/* Derived from Google Material Icons */ + +@font-face { + font-family: 'Material Icons Sharp'; + font-style: normal; + font-weight: 400; + font-display: block; + src: url('./material-icons-sharp.woff2') format('woff2'), + url('./material-icons-sharp.woff') format('woff'); +} +.material-icons-sharp { + font-family: 'Material Icons Sharp'; + font-weight: normal; + font-style: normal; + font-size: 24px; + line-height: 1; + letter-spacing: normal; + text-transform: none; + display: inline-block; + white-space: nowrap; + word-wrap: normal; + direction: ltr; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + text-rendering: optimizeLegibility; + font-feature-settings: 'liga'; +} diff --git a/docs/v1.0.0-beta01/media/fonts/roboto/Apache License.txt b/docs/v1.0.0-beta01/media/fonts/roboto/Apache License.txt new file mode 100644 index 000000000..63d530249 --- /dev/null +++ b/docs/v1.0.0-beta01/media/fonts/roboto/Apache License.txt @@ -0,0 +1,203 @@ +Font data copyright Google 2012 + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. \ No newline at end of file diff --git a/docs/v1.0.0-beta01/media/fonts/roboto/Bold.woff b/docs/v1.0.0-beta01/media/fonts/roboto/Bold.woff new file mode 100644 index 000000000..ee614ee19 Binary files /dev/null and b/docs/v1.0.0-beta01/media/fonts/roboto/Bold.woff differ diff --git a/docs/v1.0.0-beta01/media/fonts/roboto/BoldItalic.woff b/docs/v1.0.0-beta01/media/fonts/roboto/BoldItalic.woff new file mode 100644 index 000000000..38facd2e8 Binary files /dev/null and b/docs/v1.0.0-beta01/media/fonts/roboto/BoldItalic.woff differ diff --git a/docs/v1.0.0-beta01/media/fonts/roboto/Light.woff b/docs/v1.0.0-beta01/media/fonts/roboto/Light.woff new file mode 100644 index 000000000..8f5552d87 Binary files /dev/null and b/docs/v1.0.0-beta01/media/fonts/roboto/Light.woff differ diff --git a/docs/v1.0.0-beta01/media/fonts/roboto/LightItalic.woff b/docs/v1.0.0-beta01/media/fonts/roboto/LightItalic.woff new file mode 100644 index 000000000..f6c57b8c8 Binary files /dev/null and b/docs/v1.0.0-beta01/media/fonts/roboto/LightItalic.woff differ diff --git a/docs/v1.0.0-beta01/media/fonts/roboto/Medium.woff b/docs/v1.0.0-beta01/media/fonts/roboto/Medium.woff new file mode 100644 index 000000000..7796d82b4 Binary files /dev/null and b/docs/v1.0.0-beta01/media/fonts/roboto/Medium.woff differ diff --git a/docs/v1.0.0-beta01/media/fonts/roboto/MediumItalic.woff b/docs/v1.0.0-beta01/media/fonts/roboto/MediumItalic.woff new file mode 100644 index 000000000..c80ebf617 Binary files /dev/null and b/docs/v1.0.0-beta01/media/fonts/roboto/MediumItalic.woff differ diff --git a/docs/v1.0.0-beta01/media/fonts/roboto/Regular.woff b/docs/v1.0.0-beta01/media/fonts/roboto/Regular.woff new file mode 100644 index 000000000..8aa07d731 Binary files /dev/null and b/docs/v1.0.0-beta01/media/fonts/roboto/Regular.woff differ diff --git a/docs/v1.0.0-beta01/media/fonts/roboto/RegularItalic.woff b/docs/v1.0.0-beta01/media/fonts/roboto/RegularItalic.woff new file mode 100644 index 000000000..a5fc52fc7 Binary files /dev/null and b/docs/v1.0.0-beta01/media/fonts/roboto/RegularItalic.woff differ diff --git a/docs/v1.0.0-beta01/media/fonts/roboto/Thin.woff b/docs/v1.0.0-beta01/media/fonts/roboto/Thin.woff new file mode 100644 index 000000000..f9d701707 Binary files /dev/null and b/docs/v1.0.0-beta01/media/fonts/roboto/Thin.woff differ diff --git a/docs/v1.0.0-beta01/media/fonts/roboto/ThinItalic.woff b/docs/v1.0.0-beta01/media/fonts/roboto/ThinItalic.woff new file mode 100644 index 000000000..07ca10c7b Binary files /dev/null and b/docs/v1.0.0-beta01/media/fonts/roboto/ThinItalic.woff differ diff --git a/docs/v1.0.0-beta01/media/fonts/roboto/roboto.css b/docs/v1.0.0-beta01/media/fonts/roboto/roboto.css new file mode 100644 index 000000000..56d09844f --- /dev/null +++ b/docs/v1.0.0-beta01/media/fonts/roboto/roboto.css @@ -0,0 +1,66 @@ +/* Derived from https://www.fontsquirrel.com/fonts/roboto Webfont Kit download */ + +@font-face { + font-family: 'Roboto'; + src: url('./Thin.woff') format('woff'); + font-weight: 200; + font-style: normal; +} +@font-face { + font-family: 'Roboto'; + src: url('./ThinItalic.woff') format('woff'); + font-weight: 200; + font-style: italic; +} + +@font-face { + font-family: 'Roboto'; + src: url('./Light.woff') format('woff'); + font-weight: 300; + font-style: normal; +} +@font-face { + font-family: 'Roboto'; + src: url('./LightItalic.woff') format('woff'); + font-weight: 300; + font-style: italic; +} + +@font-face { + font-family: 'Roboto'; + src: url('./Regular.woff') format('woff'); + font-weight: 400; + font-style: normal; +} +@font-face { + font-family: 'Roboto'; + src: url('./RegularItalic.woff') format('woff'); + font-weight: 400; + font-style: italic; +} + +@font-face { + font-family: 'Roboto'; + src: url('./Medium.woff') format('woff'); + font-weight: 500; + font-style: normal; +} +@font-face { + font-family: 'Roboto'; + src: url('./MediumItalic.woff') format('woff'); + font-weight: 500; + font-style: italic; +} + +@font-face { + font-family: 'Roboto'; + src: url('./Bold.woff') format('woff'); + font-weight: 600; + font-style: normal; +} +@font-face { + font-family: 'Roboto'; + src: url('./BoldItalic.woff') format('woff'); + font-weight: 600; + font-style: italic; +} diff --git a/docs/v1.0.0-beta01/media/index.css b/docs/v1.0.0-beta01/media/index.css new file mode 100644 index 000000000..5ec49ddcd --- /dev/null +++ b/docs/v1.0.0-beta01/media/index.css @@ -0,0 +1,3 @@ +html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font-size:100%;font:inherit;vertical-align:baseline}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}body{line-height:1}ol,ul,menu{list-style:none}blockquote,q{quotes:none}blockquote:before,blockquote:after,q:before,q:after{content:"";content:none}table{border-collapse:collapse;border-spacing:0}@media(prefers-color-scheme: dark){:root{color-scheme:dark;--color-prettylights-syntax-comment: #8b949e;--color-prettylights-syntax-constant: #79c0ff;--color-prettylights-syntax-entity: #d2a8ff;--color-prettylights-syntax-storage-modifier-import: #c9d1d9;--color-prettylights-syntax-entity-tag: #7ee787;--color-prettylights-syntax-keyword: #ff7b72;--color-prettylights-syntax-string: #a5d6ff;--color-prettylights-syntax-variable: #ffa657;--color-prettylights-syntax-brackethighlighter-unmatched: #f85149;--color-prettylights-syntax-invalid-illegal-text: #f0f6fc;--color-prettylights-syntax-invalid-illegal-bg: #8e1519;--color-prettylights-syntax-carriage-return-text: #f0f6fc;--color-prettylights-syntax-carriage-return-bg: #b62324;--color-prettylights-syntax-string-regexp: #7ee787;--color-prettylights-syntax-markup-list: #f2cc60;--color-prettylights-syntax-markup-heading: #1f6feb;--color-prettylights-syntax-markup-italic: #c9d1d9;--color-prettylights-syntax-markup-bold: #c9d1d9;--color-prettylights-syntax-markup-deleted-text: #ffdcd7;--color-prettylights-syntax-markup-deleted-bg: #67060c;--color-prettylights-syntax-markup-inserted-text: #aff5b4;--color-prettylights-syntax-markup-inserted-bg: #033a16;--color-prettylights-syntax-markup-changed-text: #ffdfb6;--color-prettylights-syntax-markup-changed-bg: #5a1e02;--color-prettylights-syntax-markup-ignored-text: #c9d1d9;--color-prettylights-syntax-markup-ignored-bg: #1158c7;--color-prettylights-syntax-meta-diff-range: #d2a8ff;--color-prettylights-syntax-brackethighlighter-angle: #8b949e;--color-prettylights-syntax-sublimelinter-gutter-mark: #484f58;--color-prettylights-syntax-constant-other-reference-link: #a5d6ff;--color-fg-default: #c9d1d9;--color-fg-muted: #8b949e;--color-fg-subtle: #484f58;--color-canvas-default: #0d1117;--color-canvas-subtle: #161b22;--color-border-default: #30363d;--color-border-muted: #21262d;--color-neutral-muted: rgba(110, 118, 129, 0.4);--color-accent-fg: #58a6ff;--color-accent-emphasis: #1f6feb;--color-attention-subtle: rgba(187, 128, 9, 0.15);--color-danger-fg: #f85149}}@media(prefers-color-scheme: light){:root{color-scheme:light;--color-prettylights-syntax-comment: #6e7781;--color-prettylights-syntax-constant: #0550ae;--color-prettylights-syntax-entity: #8250df;--color-prettylights-syntax-storage-modifier-import: #24292f;--color-prettylights-syntax-entity-tag: #116329;--color-prettylights-syntax-keyword: #cf222e;--color-prettylights-syntax-string: #0a3069;--color-prettylights-syntax-variable: #953800;--color-prettylights-syntax-brackethighlighter-unmatched: #82071e;--color-prettylights-syntax-invalid-illegal-text: #f6f8fa;--color-prettylights-syntax-invalid-illegal-bg: #82071e;--color-prettylights-syntax-carriage-return-text: #f6f8fa;--color-prettylights-syntax-carriage-return-bg: #cf222e;--color-prettylights-syntax-string-regexp: #116329;--color-prettylights-syntax-markup-list: #3b2300;--color-prettylights-syntax-markup-heading: #0550ae;--color-prettylights-syntax-markup-italic: #24292f;--color-prettylights-syntax-markup-bold: #24292f;--color-prettylights-syntax-markup-deleted-text: #82071e;--color-prettylights-syntax-markup-deleted-bg: #ffebe9;--color-prettylights-syntax-markup-inserted-text: #116329;--color-prettylights-syntax-markup-inserted-bg: #dafbe1;--color-prettylights-syntax-markup-changed-text: #953800;--color-prettylights-syntax-markup-changed-bg: #ffd8b5;--color-prettylights-syntax-markup-ignored-text: #eaeef2;--color-prettylights-syntax-markup-ignored-bg: #0550ae;--color-prettylights-syntax-meta-diff-range: #8250df;--color-prettylights-syntax-brackethighlighter-angle: #57606a;--color-prettylights-syntax-sublimelinter-gutter-mark: #8c959f;--color-prettylights-syntax-constant-other-reference-link: #0a3069;--color-fg-default: #24292f;--color-fg-muted: #57606a;--color-fg-subtle: #6e7781;--color-canvas-default: #ffffff;--color-canvas-subtle: #f6f8fa;--color-border-default: #d0d7de;--color-border-muted: hsla(210, 18%, 87%, 1);--color-neutral-muted: rgba(175, 184, 193, 0.2);--color-accent-fg: #0969da;--color-accent-emphasis: #0969da;--color-attention-subtle: #fff8c5;--color-danger-fg: #cf222e}}*{box-sizing:border-box}:root{--dim-header-height: 2.25rem;--dim-footer-height: 2.25rem;--dim-menu-width: 450px;--font: "Roboto";--transition-fades: 300ms;--transition-rotates: 600ms;--transition-drawer: 600ms;--media-max-width: 900px;--scrollBarColor: #4384d1}html,body{font-family:"Roboto";background-color:var(--color-canvas-default)}html #loading,body #loading{position:fixed;z-index:10;top:0;left:0;width:100vw;height:100vh;pointer-events:none;background:var(--color-accent-fg);color:var(--color-canvas-subtle);display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity var(--transition-fades)}body.loading #loading{opacity:80%}body.loading #loading span{animation-name:loading;animation-duration:1.2s;animation-iteration-count:infinite;animation-timing-function:linear}.init #plugin-versions-select{display:none}@keyframes loading{from{rotate:0deg}to{rotate:360deg}}@media(prefers-reduced-motion: no-preference){.loaded .scroller{scroll-behavior:smooth}}.scroller.instant{scroll-behavior:auto}typedoc-theme-yaf{display:flex;height:100vh;width:100vw;position:relative;overflow:hidden}typedoc-theme-yaf .scroller.vertical{overflow-y:scroll}typedoc-theme-yaf .scroller.horizontal{overflow-x:scroll}typedoc-theme-yaf .scroller{scrollbar-color:var(--scrollBarColor) var(--color-canvas-default)}typedoc-theme-yaf .scroller::-webkit-scrollbar{width:6px;height:6px;background-color:var(--color-canvas-default)}typedoc-theme-yaf .scroller::-webkit-scrollbar-thumb{background:var(--scrollBarColor)}typedoc-theme-yaf .scroller::-webkit-scrollbar-track{background:var(--color-canvas-default)}typedoc-theme-yaf .yaf-drawer{overflow:hidden}typedoc-theme-yaf .yaf-parent-drawer.closed>.yaf-drawer{max-height:0 !important;opacity:0}typedoc-theme-yaf .yaf-parent-drawer.rendered>.yaf-drawer{transition-property:opacity,max-height;transition-duration:var(--transition-drawer)}typedoc-theme-yaf .icon{-webkit-user-select:none;-moz-user-select:none;user-select:none}typedoc-theme-yaf .flash,typedoc-theme-yaf .flash pre,typedoc-theme-yaf .flash table *{animation-name:flash;animation-duration:1s}typedoc-theme-yaf yaf-widget-tag-toggle{display:flex}typedoc-theme-yaf yaf-widget-tag-toggle span{cursor:pointer;font-size:.9rem;padding:.5rem;margin:0 .25rem;color:var(--color-fg-muted);border:1px solid var(--color-border-muted);margin-bottom:.5rem;text-align:center}typedoc-theme-yaf *[inherited=hide]>ul>.inherited{display:none !important}typedoc-theme-yaf *[private=hide]>ul>.private{display:none !important}typedoc-theme-yaf yaf-widget-counter{font-weight:300;-webkit-user-select:none;-moz-user-select:none;user-select:none}typedoc-theme-yaf yaf-widget-counter .count{font-weight:550}typedoc-theme-yaf yaf-widget-kind{display:flex;width:1.2rem;height:1.2rem;justify-content:center;align-items:center;position:relative;margin-right:.25rem;-webkit-user-select:none;-moz-user-select:none;user-select:none;flex:0 0 auto;color:var(--color-canvas-default)}typedoc-theme-yaf yaf-widget-kind>span{padding-top:1px;font-size:.65rem;font-weight:550}typedoc-theme-yaf yaf-widget-kind.accessor{background:var(--color-prettylights-syntax-entity-tag);border-radius:50%}typedoc-theme-yaf yaf-widget-kind.class{background:var(--color-prettylights-syntax-entity)}typedoc-theme-yaf yaf-widget-kind.constructor{background:var(--color-prettylights-syntax-entity);border-radius:50%}typedoc-theme-yaf yaf-widget-kind.enum{background:var(--color-prettylights-syntax-entity-tag)}typedoc-theme-yaf yaf-widget-kind.function{background:var(--color-prettylights-syntax-constant);border-radius:50%}typedoc-theme-yaf yaf-widget-kind.interface{background:var(--color-prettylights-syntax-entity)}typedoc-theme-yaf yaf-widget-kind.method{background:var(--color-prettylights-syntax-string);border-radius:50%}typedoc-theme-yaf yaf-widget-kind.namespace{background:var(--color-accent-fg)}typedoc-theme-yaf yaf-widget-kind.property{background:var(--color-prettylights-syntax-variable);border-radius:50%}typedoc-theme-yaf yaf-widget-kind.reference{background:var(--color-prettylights-syntax-entity)}typedoc-theme-yaf yaf-widget-kind.variable{background:var(--color-prettylights-syntax-variable);border-radius:50%}typedoc-theme-yaf yaf-widget-kind.typealias{background:var(--color-prettylights-syntax-variable);border-radius:50%}typedoc-theme-yaf yaf-widget-kind.module{background:var(--color-accent-fg)}typedoc-theme-yaf yaf-chrome-left,typedoc-theme-yaf yaf-chrome-header,typedoc-theme-yaf yaf-chrome-content{display:block;background:var(--color-canvas-default)}typedoc-theme-yaf yaf-chrome-left{flex:0 0 var(--dim-menu-width);overflow:hidden}typedoc-theme-yaf yaf-chrome-left.activeSearch #menuWrapper{background:var(--color-neutral-muted)}typedoc-theme-yaf yaf-chrome-left{display:flex;flex-direction:column;align-items:stretch}typedoc-theme-yaf yaf-chrome-left yaf-navigation-search{display:block;opacity:0;transition:opacity var(--transition-fades);z-index:1;position:absolute}typedoc-theme-yaf yaf-chrome-left yaf-navigation-menu{display:block;opacity:100%;transition:opacity var(--transition-fades);z-index:2;position:relative}typedoc-theme-yaf yaf-chrome-left.activeSearch yaf-navigation-search{z-index:2;opacity:100%;position:relative}typedoc-theme-yaf yaf-chrome-left.activeSearch yaf-navigation-menu{opacity:0;z-index:1;position:absolute}typedoc-theme-yaf yaf-chrome-left yaf-navigation-header{display:flex;flex-direction:column;border:1px solid var(--color-accent-fg);border-left:none}typedoc-theme-yaf yaf-chrome-left yaf-navigation-header #projectTitle{background:var(--color-accent-fg);color:var(--color-canvas-subtle);padding:.25rem 1rem;display:flex;align-items:center;font-weight:500;font-size:1.2rem;-webkit-user-select:none;-moz-user-select:none;user-select:none}typedoc-theme-yaf yaf-chrome-left yaf-navigation-header #projectTitle .title{flex-grow:1;padding:1rem}typedoc-theme-yaf yaf-chrome-left yaf-navigation-header #projectTitle a{display:block;color:var(--color-canvas-subtle)}typedoc-theme-yaf yaf-chrome-left yaf-navigation-header #projectTitle a:hover{color:var(--color-border-default)}typedoc-theme-yaf yaf-chrome-left yaf-navigation-header .controls-navigation{-webkit-user-select:none;-moz-user-select:none;user-select:none;height:2rem;display:flex;align-items:center}typedoc-theme-yaf yaf-chrome-left yaf-navigation-header .controls-navigation yaf-navigation-searchbar{flex-grow:1;display:flex;height:100%;position:relative;align-items:center}typedoc-theme-yaf yaf-chrome-left yaf-navigation-header .controls-navigation yaf-navigation-searchbar input::-ms-clear{display:none;width:0;height:0}typedoc-theme-yaf yaf-chrome-left yaf-navigation-header .controls-navigation yaf-navigation-searchbar input::-ms-reveal{display:none;width:0;height:0}typedoc-theme-yaf yaf-chrome-left yaf-navigation-header .controls-navigation yaf-navigation-searchbar input::-webkit-search-decoration,typedoc-theme-yaf yaf-chrome-left yaf-navigation-header .controls-navigation yaf-navigation-searchbar input::-webkit-search-cancel-button,typedoc-theme-yaf yaf-chrome-left yaf-navigation-header .controls-navigation yaf-navigation-searchbar input::-webkit-search-results-button,typedoc-theme-yaf yaf-chrome-left yaf-navigation-header .controls-navigation yaf-navigation-searchbar input::-webkit-search-results-decoration{display:none}typedoc-theme-yaf yaf-chrome-left yaf-navigation-header .controls-navigation yaf-navigation-searchbar input{width:calc(100% - 8px);height:calc(100% - 8px);display:block;border:none;border-radius:0;padding-left:1rem;padding-right:2em;margin-left:4px;background-color:var(--color-canvas-subtle)}typedoc-theme-yaf yaf-chrome-left yaf-navigation-header .controls-navigation yaf-navigation-searchbar input:invalid{color:var(--color-danger-fg)}typedoc-theme-yaf yaf-chrome-left yaf-navigation-header .controls-navigation yaf-navigation-searchbar .wrapper{height:calc(100% - 8px);aspect-ratio:1/1;position:absolute;right:4px;display:flex;justify-content:center;align-items:center}typedoc-theme-yaf yaf-chrome-left yaf-navigation-header .controls-navigation yaf-navigation-searchbar .searchIcon,typedoc-theme-yaf yaf-chrome-left yaf-navigation-header .controls-navigation yaf-navigation-searchbar .clearIcon{color:var(--color-fg-muted);width:100%;height:100%;display:flex;justify-content:center;align-items:center}typedoc-theme-yaf yaf-chrome-left yaf-navigation-header .controls-navigation yaf-navigation-searchbar .clearIcon{display:none;cursor:pointer;color:var(--color-danger-fg)}typedoc-theme-yaf yaf-chrome-left yaf-navigation-header .controls-navigation yaf-navigation-searchbar.busy .clearIcon{display:flex}typedoc-theme-yaf yaf-chrome-left yaf-navigation-header .controls-navigation yaf-navigation-searchbar.busy .searchIcon{display:none}typedoc-theme-yaf yaf-chrome-left yaf-navigation-header .controls-navigation .button,typedoc-theme-yaf yaf-chrome-left yaf-navigation-header .controls-navigation .info{display:flex;justify-content:center;align-items:center;width:2rem;height:2rem;cursor:pointer;color:var(--color-fg-default);text-decoration:none;transition:all var(--transition-fades)}typedoc-theme-yaf yaf-chrome-left yaf-navigation-header .controls-navigation .button:hover,typedoc-theme-yaf yaf-chrome-left yaf-navigation-header .controls-navigation .info:hover{background:var(--color-border-default);color:var(--color-accent-emphasis)}typedoc-theme-yaf yaf-chrome-left yaf-navigation-header .controls-navigation .controls-drawers{display:flex}typedoc-theme-yaf yaf-chrome-left yaf-navigation-header .controls-navigation .controls-drawers .open.button{padding-left:.5rem}typedoc-theme-yaf yaf-chrome-left yaf-navigation-header .controls-navigation .controls-drawers .close.button{padding-right:.5rem}typedoc-theme-yaf yaf-chrome-left yaf-navigation-header .controls-navigation .info{font-size:2px !important}typedoc-theme-yaf yaf-chrome-left yaf-navigation-header.open .info{background:var(--color-border-default);color:var(--color-accent-emphasis)}typedoc-theme-yaf yaf-chrome-left yaf-navigation-header.open .info>span:first-child{display:none}typedoc-theme-yaf yaf-chrome-left yaf-navigation-header.open .drawers-info{border-top:1px solid var(--color-border-default)}typedoc-theme-yaf yaf-chrome-left yaf-navigation-header.closed .info>span:last-child{display:none}typedoc-theme-yaf yaf-chrome-left yaf-navigation-header .drawers-info{position:relative;width:100%;background:var(--color-border-default)}typedoc-theme-yaf yaf-chrome-left yaf-navigation-header .drawers-info .inner{display:flex;padding:.5rem;flex-wrap:wrap}typedoc-theme-yaf yaf-chrome-left yaf-navigation-header .drawers-info .widget{padding:.5rem;display:flex;align-items:center;justify-content:center}typedoc-theme-yaf yaf-chrome-left yaf-navigation-header .drawers-info .name{color:var(--color-fg-muted)}typedoc-theme-yaf yaf-chrome-left #menuWrapper{flex-grow:1;border-right:1px solid var(--color-border-default);position:relative;overflow:hidden}typedoc-theme-yaf yaf-chrome-left yaf-navigation-search,typedoc-theme-yaf yaf-chrome-left yaf-navigation-menu{padding:1rem;width:100%;height:100%}typedoc-theme-yaf yaf-chrome-left yaf-navigation-search .results{position:relative;z-index:1}typedoc-theme-yaf yaf-chrome-left yaf-navigation-search .results li{display:flex;align-items:center;padding:.5rem 0}typedoc-theme-yaf yaf-chrome-left yaf-navigation-search .results li a{display:flex;flex-direction:column;text-decoration:none}typedoc-theme-yaf yaf-chrome-left yaf-navigation-search .results li a .name{color:var(--color-fg-default)}typedoc-theme-yaf yaf-chrome-left yaf-navigation-search .results li a .symbol{color:var(--color-fg-muted);font-size:.8rem;font-weight:300}typedoc-theme-yaf yaf-chrome-left yaf-navigation-search .results li a .lit{color:var(--color-accent-emphasis)}typedoc-theme-yaf yaf-chrome-left yaf-navigation-menu .rendered .icon>span{transition:background-color var(--transition-rotates)}typedoc-theme-yaf yaf-chrome-left yaf-navigation-menu menu ul,typedoc-theme-yaf yaf-chrome-left yaf-navigation-menu ul ul{padding:0 .5rem}typedoc-theme-yaf yaf-chrome-left yaf-navigation-menu menu ul li:last-child,typedoc-theme-yaf yaf-chrome-left yaf-navigation-menu ul ul li:last-child{padding-bottom:1rem}typedoc-theme-yaf yaf-chrome-left yaf-navigation-menu yaf-navigation-menu-branch{display:list-item;padding:0}typedoc-theme-yaf yaf-chrome-left yaf-navigation-menu yaf-navigation-menu-branch a{color:var(--color-fg-default);text-decoration:none;transition:color var(--transition-fades)}typedoc-theme-yaf yaf-chrome-left yaf-navigation-menu yaf-navigation-menu-branch a .name{padding:.5rem 0}typedoc-theme-yaf yaf-chrome-left yaf-navigation-menu yaf-navigation-menu-branch .yaf-drawer.show .hide a{color:var(--color-fg-muted)}typedoc-theme-yaf yaf-chrome-left yaf-navigation-menu yaf-navigation-menu-branch .yaf-drawer.show .hide a:hover,typedoc-theme-yaf yaf-chrome-left yaf-navigation-menu yaf-navigation-menu-branch a:hover{color:var(--color-accent-fg)}typedoc-theme-yaf yaf-chrome-left yaf-navigation-menu yaf-navigation-menu-branch .header.parent{border-bottom:1px solid var(--color-border-muted);margin:.25rem 0}typedoc-theme-yaf yaf-chrome-left yaf-navigation-menu yaf-navigation-menu-branch .header{display:flex;width:100%;align-items:center;transition:border var(--transition-fades)}typedoc-theme-yaf yaf-chrome-left yaf-navigation-menu yaf-navigation-menu-branch .header>yaf-navigation-link{display:flex;align-items:center;flex-grow:1;position:relative;overflow:hidden}typedoc-theme-yaf yaf-chrome-left yaf-navigation-menu yaf-navigation-menu-branch .header>yaf-navigation-link a{display:block;max-width:100%;position:relative;overflow:hidden}typedoc-theme-yaf yaf-chrome-left yaf-navigation-menu yaf-navigation-menu-branch .header>yaf-navigation-link a .name{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding-right:.5rem}typedoc-theme-yaf yaf-chrome-left yaf-navigation-menu yaf-navigation-menu-branch .header>yaf-navigation-link:hover a .name{overflow:visible;float:right}typedoc-theme-yaf yaf-chrome-left yaf-navigation-menu yaf-navigation-menu-branch .header .trigger{cursor:pointer;display:flex;align-items:center;justify-content:flex-end;align-self:flex-end;flex:0 0 auto}typedoc-theme-yaf yaf-chrome-left yaf-navigation-menu yaf-navigation-menu-branch .header .trigger .icon{display:flex;align-items:center;justify-content:center;border:1px solid var(--color-border-muted);border-bottom:none;width:var(--size);height:var(--size);margin-left:calc(var(--size)/2);transition:all var(--transition-fades)}typedoc-theme-yaf yaf-chrome-left yaf-navigation-menu yaf-navigation-menu-branch .header .trigger yaf-widget-counter{flex:0 0 auto;height:100%;padding-right:.5rem}typedoc-theme-yaf yaf-chrome-left yaf-navigation-menu yaf-navigation-menu-branch .header .trigger:hover .icon{background:var(--color-border-muted);color:var(--color-accent-fg)}typedoc-theme-yaf yaf-chrome-left yaf-navigation-menu yaf-navigation-menu-branch .inherited_toggle{cursor:pointer;font-size:.9rem;padding:.5rem;color:var(--color-fg-muted);border:1px solid var(--color-border-muted);margin-bottom:.5rem;text-align:center}typedoc-theme-yaf yaf-chrome-left yaf-navigation-menu yaf-navigation-menu-branch .yaf-drawer.hide>.hide{overflow:hidden;height:0px;opacity:0}typedoc-theme-yaf yaf-chrome-left yaf-navigation-menu yaf-navigation-menu-branch yaf-navigation-menu-branch{margin-right:var(--size)}typedoc-theme-yaf yaf-chrome-left yaf-navigation-menu yaf-navigation-menu-branch.closed>.header .icon>span{transform:rotate(270deg)}typedoc-theme-yaf yaf-chrome-left yaf-navigation-menu yaf-navigation-menu-branch.open>.header{border-bottom-color:var(--color-accent-fg)}typedoc-theme-yaf yaf-chrome-left yaf-navigation-menu yaf-navigation-menu-branch.open>.header .name{font-weight:550}typedoc-theme-yaf yaf-chrome-left yaf-navigation-menu yaf-navigation-menu-branch.open>.header .icon{border-color:var(--color-accent-fg);background:var(--color-accent-fg);color:var(--color-canvas-subtle)}typedoc-theme-yaf yaf-chrome-left yaf-navigation-menu yaf-navigation-menu-branch.open>.header .icon>span{transform:rotate(180deg)}typedoc-theme-yaf yaf-chrome-left yaf-navigation-footer{display:block;position:relative;border-top:1px solid var(--color-border-default);border-right:1px solid var(--color-border-default);flex:0 0 var(--dim-footer-height);background-color:var(--color-accent-fg);padding:0 1rem}typedoc-theme-yaf yaf-chrome-left yaf-navigation-footer select{width:100%;height:100%;border:none;border-radius:0;box-shadow:none;background-color:var(--color-accent-fg);color:var(--color-canvas-default)}typedoc-theme-yaf yaf-chrome-right{display:flex;flex-direction:column;overflow:hidden;flex-grow:1}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content{-ms-text-size-adjust:100%;margin:0;color:var(--color-fg-default);background-color:var(--color-canvas-default);font-size:16px;line-height:1.5;word-wrap:break-word}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content .octicon{display:inline-block;fill:currentColor;vertical-align:text-bottom}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content h1:hover .anchor .octicon-link:before,typedoc-theme-yaf yaf-chrome-right yaf-chrome-content h2:hover .anchor .octicon-link:before,typedoc-theme-yaf yaf-chrome-right yaf-chrome-content h3:hover .anchor .octicon-link:before,typedoc-theme-yaf yaf-chrome-right yaf-chrome-content h4:hover .anchor .octicon-link:before,typedoc-theme-yaf yaf-chrome-right yaf-chrome-content h5:hover .anchor .octicon-link:before,typedoc-theme-yaf yaf-chrome-right yaf-chrome-content h6:hover .anchor .octicon-link:before{width:16px;height:16px;content:" ";display:inline-block;background-color:currentColor;-webkit-mask-image:url("data:image/svg+xml,");mask-image:url("data:image/svg+xml,")}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content details,typedoc-theme-yaf yaf-chrome-right yaf-chrome-content figcaption,typedoc-theme-yaf yaf-chrome-right yaf-chrome-content figure{display:block}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content summary{display:list-item}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content [hidden]{display:none !important}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content a{background-color:rgba(0,0,0,0);color:var(--color-accent-fg);text-decoration:none}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content a:active,typedoc-theme-yaf yaf-chrome-right yaf-chrome-content a:hover{outline-width:0}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content abbr[title]{border-bottom:none;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content b,typedoc-theme-yaf yaf-chrome-right yaf-chrome-content strong{font-weight:600}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content dfn{font-style:italic}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content h1{margin:.67em 0;font-weight:600;padding-bottom:.3em;font-size:2em;border-bottom:1px solid var(--color-border-muted)}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content mark{background-color:var(--color-attention-subtle);color:var(--color-text-primary)}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content small{font-size:90%}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content sub,typedoc-theme-yaf yaf-chrome-right yaf-chrome-content sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content sub{bottom:-0.25em}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content sup{top:-0.5em}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content img{border-style:none;max-width:100%;box-sizing:content-box;background-color:var(--color-canvas-default)}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content code,typedoc-theme-yaf yaf-chrome-right yaf-chrome-content kbd,typedoc-theme-yaf yaf-chrome-right yaf-chrome-content pre,typedoc-theme-yaf yaf-chrome-right yaf-chrome-content samp{font-family:monospace,monospace;font-size:1em}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content figure{margin:1em 40px}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content hr{box-sizing:content-box;overflow:hidden;background:rgba(0,0,0,0);border-bottom:1px solid var(--color-border-muted);height:.25em;padding:0;margin:24px 0;background-color:var(--color-border-default);border:0}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content input{font:inherit;margin:0;overflow:visible;font-family:inherit;font-size:inherit;line-height:inherit}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content [type=button],typedoc-theme-yaf yaf-chrome-right yaf-chrome-content [type=reset],typedoc-theme-yaf yaf-chrome-right yaf-chrome-content [type=submit]{-webkit-appearance:button}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content [type=button]::-moz-focus-inner,typedoc-theme-yaf yaf-chrome-right yaf-chrome-content [type=reset]::-moz-focus-inner,typedoc-theme-yaf yaf-chrome-right yaf-chrome-content [type=submit]::-moz-focus-inner{border-style:none;padding:0}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content [type=button]:-moz-focusring,typedoc-theme-yaf yaf-chrome-right yaf-chrome-content [type=reset]:-moz-focusring,typedoc-theme-yaf yaf-chrome-right yaf-chrome-content [type=submit]:-moz-focusring{outline:1px dotted ButtonText}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content [type=checkbox],typedoc-theme-yaf yaf-chrome-right yaf-chrome-content [type=radio]{box-sizing:border-box;padding:0}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content [type=number]::-webkit-inner-spin-button,typedoc-theme-yaf yaf-chrome-right yaf-chrome-content [type=number]::-webkit-outer-spin-button{height:auto}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content [type=search]{-webkit-appearance:textfield;outline-offset:-2px}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content [type=search]::-webkit-search-cancel-button,typedoc-theme-yaf yaf-chrome-right yaf-chrome-content [type=search]::-webkit-search-decoration{-webkit-appearance:none}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content ::-webkit-input-placeholder{color:inherit;opacity:.54}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content ::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content a:hover{text-decoration:underline}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content hr::before{display:table;content:""}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content hr::after{display:table;clear:both;content:""}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content table{border-spacing:0;border-collapse:collapse;display:block;width:-moz-max-content;width:max-content;max-width:100%;overflow:auto}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content td,typedoc-theme-yaf yaf-chrome-right yaf-chrome-content th{padding:0}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content details summary{cursor:pointer}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content details:not([open])>*:not(summary){display:none !important}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content kbd{display:inline-block;padding:3px 5px;font:11px ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace;line-height:10px;color:var(--color-fg-default);vertical-align:middle;background-color:var(--color-canvas-subtle);border:solid 1px var(--color-neutral-muted);border-bottom-color:var(--color-neutral-muted);border-radius:6px;box-shadow:inset 0 -1px 0 var(--color-neutral-muted)}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content h1,typedoc-theme-yaf yaf-chrome-right yaf-chrome-content h2,typedoc-theme-yaf yaf-chrome-right yaf-chrome-content h3,typedoc-theme-yaf yaf-chrome-right yaf-chrome-content h4,typedoc-theme-yaf yaf-chrome-right yaf-chrome-content h5,typedoc-theme-yaf yaf-chrome-right yaf-chrome-content h6{margin-top:24px;margin-bottom:16px;font-weight:600;line-height:1.25}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content h2{font-weight:600;padding-bottom:.3em;font-size:1.5em;border-bottom:1px solid var(--color-border-muted)}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content h3{font-weight:600;font-size:1.25em}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content h4{font-weight:600;font-size:1em}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content h5{font-weight:500;font-size:.875em}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content h6{font-weight:600;font-size:.85em;color:var(--color-fg-muted)}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content p{margin-top:0;margin-bottom:10px}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content blockquote{margin:0;padding:0 1em;color:var(--color-fg-muted);border-left:.25em solid var(--color-border-default)}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content ul,typedoc-theme-yaf yaf-chrome-right yaf-chrome-content ol{margin-top:0;margin-bottom:0;padding-left:2em}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content ol ol,typedoc-theme-yaf yaf-chrome-right yaf-chrome-content ul ol{list-style-type:lower-roman}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content ul ul ol,typedoc-theme-yaf yaf-chrome-right yaf-chrome-content ul ol ol,typedoc-theme-yaf yaf-chrome-right yaf-chrome-content ol ul ol,typedoc-theme-yaf yaf-chrome-right yaf-chrome-content ol ol ol{list-style-type:lower-alpha}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content dd{margin-left:0}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content tt,typedoc-theme-yaf yaf-chrome-right yaf-chrome-content code{font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace;font-size:12px}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content pre{margin-top:0;margin-bottom:0;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace;font-size:12px;word-wrap:normal}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content .octicon{display:inline-block;overflow:visible !important;vertical-align:text-bottom;fill:currentColor}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content ::-moz-placeholder{color:var(--color-fg-subtle);opacity:1}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content ::placeholder{color:var(--color-fg-subtle);opacity:1}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content input::-webkit-outer-spin-button,typedoc-theme-yaf yaf-chrome-right yaf-chrome-content input::-webkit-inner-spin-button{margin:0;-webkit-appearance:none;appearance:none}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content .pl-c{color:var(--color-prettylights-syntax-comment)}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content .pl-c1,typedoc-theme-yaf yaf-chrome-right yaf-chrome-content .pl-s .pl-v{color:var(--color-prettylights-syntax-constant)}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content .pl-e,typedoc-theme-yaf yaf-chrome-right yaf-chrome-content .pl-en{color:var(--color-prettylights-syntax-entity)}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content .pl-smi,typedoc-theme-yaf yaf-chrome-right yaf-chrome-content .pl-s .pl-s1{color:var(--color-prettylights-syntax-storage-modifier-import)}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content .pl-ent{color:var(--color-prettylights-syntax-entity-tag)}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content .pl-k{color:var(--color-prettylights-syntax-keyword)}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content .pl-s,typedoc-theme-yaf yaf-chrome-right yaf-chrome-content .pl-pds,typedoc-theme-yaf yaf-chrome-right yaf-chrome-content .pl-s .pl-pse .pl-s1,typedoc-theme-yaf yaf-chrome-right yaf-chrome-content .pl-sr,typedoc-theme-yaf yaf-chrome-right yaf-chrome-content .pl-sr .pl-cce,typedoc-theme-yaf yaf-chrome-right yaf-chrome-content .pl-sr .pl-sre,typedoc-theme-yaf yaf-chrome-right yaf-chrome-content .pl-sr .pl-sra{color:var(--color-prettylights-syntax-string)}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content .pl-v,typedoc-theme-yaf yaf-chrome-right yaf-chrome-content .pl-smw{color:var(--color-prettylights-syntax-variable)}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content .pl-bu{color:var(--color-prettylights-syntax-brackethighlighter-unmatched)}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content .pl-ii{color:var(--color-prettylights-syntax-invalid-illegal-text);background-color:var(--color-prettylights-syntax-invalid-illegal-bg)}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content .pl-c2{color:var(--color-prettylights-syntax-carriage-return-text);background-color:var(--color-prettylights-syntax-carriage-return-bg)}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content .pl-sr .pl-cce{font-weight:bold;color:var(--color-prettylights-syntax-string-regexp)}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content .pl-ml{color:var(--color-prettylights-syntax-markup-list)}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content .pl-mh,typedoc-theme-yaf yaf-chrome-right yaf-chrome-content .pl-mh .pl-en,typedoc-theme-yaf yaf-chrome-right yaf-chrome-content .pl-ms{font-weight:bold;color:var(--color-prettylights-syntax-markup-heading)}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content .pl-mi{font-style:italic;color:var(--color-prettylights-syntax-markup-italic)}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content .pl-mb{font-weight:bold;color:var(--color-prettylights-syntax-markup-bold)}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content .pl-md{color:var(--color-prettylights-syntax-markup-deleted-text);background-color:var(--color-prettylights-syntax-markup-deleted-bg)}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content .pl-mi1{color:var(--color-prettylights-syntax-markup-inserted-text);background-color:var(--color-prettylights-syntax-markup-inserted-bg)}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content .pl-mc{color:var(--color-prettylights-syntax-markup-changed-text);background-color:var(--color-prettylights-syntax-markup-changed-bg)}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content .pl-mi2{color:var(--color-prettylights-syntax-markup-ignored-text);background-color:var(--color-prettylights-syntax-markup-ignored-bg)}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content .pl-mdr{font-weight:bold;color:var(--color-prettylights-syntax-meta-diff-range)}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content .pl-ba{color:var(--color-prettylights-syntax-brackethighlighter-angle)}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content .pl-sg{color:var(--color-prettylights-syntax-sublimelinter-gutter-mark)}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content .pl-corl{text-decoration:underline;color:var(--color-prettylights-syntax-constant-other-reference-link)}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content [data-catalyst]{display:block}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content g-emoji{font-family:"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";font-size:1em;font-style:normal !important;font-weight:400;line-height:1;vertical-align:-0.075em}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content g-emoji img{width:1em;height:1em}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content .markdown-body::before{display:table;content:""}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content .markdown-body::after{display:table;clear:both;content:""}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content .markdown-body>*:first-child{margin-top:0 !important}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content .markdown-body>*:last-child{margin-bottom:0 !important}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content a:not([href]){color:inherit;text-decoration:none}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content .absent{color:var(--color-danger-fg)}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content .anchor{float:left;padding-right:4px;margin-left:-20px;line-height:1}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content .anchor:focus{outline:none}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content p,typedoc-theme-yaf yaf-chrome-right yaf-chrome-content blockquote,typedoc-theme-yaf yaf-chrome-right yaf-chrome-content ul,typedoc-theme-yaf yaf-chrome-right yaf-chrome-content ol,typedoc-theme-yaf yaf-chrome-right yaf-chrome-content dl,typedoc-theme-yaf yaf-chrome-right yaf-chrome-content table,typedoc-theme-yaf yaf-chrome-right yaf-chrome-content pre,typedoc-theme-yaf yaf-chrome-right yaf-chrome-content details{margin-top:0;margin-bottom:16px}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content blockquote>:first-child{margin-top:0}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content blockquote>:last-child{margin-bottom:0}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content sup>a::before{content:"["}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content sup>a::after{content:"]"}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content h1 .octicon-link,typedoc-theme-yaf yaf-chrome-right yaf-chrome-content h2 .octicon-link,typedoc-theme-yaf yaf-chrome-right yaf-chrome-content h3 .octicon-link,typedoc-theme-yaf yaf-chrome-right yaf-chrome-content h4 .octicon-link,typedoc-theme-yaf yaf-chrome-right yaf-chrome-content h5 .octicon-link,typedoc-theme-yaf yaf-chrome-right yaf-chrome-content h6 .octicon-link{color:var(--color-fg-default);vertical-align:middle;visibility:hidden}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content h1:hover .anchor,typedoc-theme-yaf yaf-chrome-right yaf-chrome-content h2:hover .anchor,typedoc-theme-yaf yaf-chrome-right yaf-chrome-content h3:hover .anchor,typedoc-theme-yaf yaf-chrome-right yaf-chrome-content h4:hover .anchor,typedoc-theme-yaf yaf-chrome-right yaf-chrome-content h5:hover .anchor,typedoc-theme-yaf yaf-chrome-right yaf-chrome-content h6:hover .anchor{text-decoration:none}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content h1:hover .anchor .octicon-link,typedoc-theme-yaf yaf-chrome-right yaf-chrome-content h2:hover .anchor .octicon-link,typedoc-theme-yaf yaf-chrome-right yaf-chrome-content h3:hover .anchor .octicon-link,typedoc-theme-yaf yaf-chrome-right yaf-chrome-content h4:hover .anchor .octicon-link,typedoc-theme-yaf yaf-chrome-right yaf-chrome-content h5:hover .anchor .octicon-link,typedoc-theme-yaf yaf-chrome-right yaf-chrome-content h6:hover .anchor .octicon-link{visibility:visible}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content h1 tt,typedoc-theme-yaf yaf-chrome-right yaf-chrome-content h1 code,typedoc-theme-yaf yaf-chrome-right yaf-chrome-content h2 tt,typedoc-theme-yaf yaf-chrome-right yaf-chrome-content h2 code,typedoc-theme-yaf yaf-chrome-right yaf-chrome-content h3 tt,typedoc-theme-yaf yaf-chrome-right yaf-chrome-content h3 code,typedoc-theme-yaf yaf-chrome-right yaf-chrome-content h4 tt,typedoc-theme-yaf yaf-chrome-right yaf-chrome-content h4 code,typedoc-theme-yaf yaf-chrome-right yaf-chrome-content h5 tt,typedoc-theme-yaf yaf-chrome-right yaf-chrome-content h5 code,typedoc-theme-yaf yaf-chrome-right yaf-chrome-content h6 tt,typedoc-theme-yaf yaf-chrome-right yaf-chrome-content h6 code{padding:0 .2em;font-size:inherit}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content ul.no-list,typedoc-theme-yaf yaf-chrome-right yaf-chrome-content ol.no-list{padding:0;list-style-type:none}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content ol[type="1"]{list-style-type:decimal}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content ol[type=a]{list-style-type:lower-alpha}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content ol[type=i]{list-style-type:lower-roman}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content div>ol:not([type]){list-style-type:decimal}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content ul ul,typedoc-theme-yaf yaf-chrome-right yaf-chrome-content ul ol,typedoc-theme-yaf yaf-chrome-right yaf-chrome-content ol ol,typedoc-theme-yaf yaf-chrome-right yaf-chrome-content ol ul{margin-top:0;margin-bottom:0}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content li>p{margin-top:16px}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content li+li{margin-top:.25em}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content dl{padding:0}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content dl dt{padding:0;margin-top:16px;font-size:1em;font-style:italic;font-weight:600}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content dl dd{padding:0 16px;margin-bottom:16px}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content table th{font-weight:600}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content table th,typedoc-theme-yaf yaf-chrome-right yaf-chrome-content table td{padding:6px 13px;border:1px solid var(--color-border-default)}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content table tr{background-color:var(--color-canvas-default);border-top:1px solid var(--color-border-muted)}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content table tr:nth-child(2n){background-color:var(--color-canvas-subtle)}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content table img{background-color:rgba(0,0,0,0)}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content img[align=right]{padding-left:20px}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content img[align=left]{padding-right:20px}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content .emoji{max-width:none;vertical-align:text-top;background-color:rgba(0,0,0,0)}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content span.frame{display:block;overflow:hidden}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content span.frame>span{display:block;float:left;width:auto;padding:7px;margin:13px 0 0;overflow:hidden;border:1px solid var(--color-border-default)}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content span.frame span img{display:block;float:left}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content span.frame span span{display:block;padding:5px 0 0;clear:both;color:var(--color-fg-default)}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content span.align-center{display:block;overflow:hidden;clear:both}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content span.align-center>span{display:block;margin:13px auto 0;overflow:hidden;text-align:center}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content span.align-center span img{margin:0 auto;text-align:center}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content span.align-right{display:block;overflow:hidden;clear:both}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content span.align-right>span{display:block;margin:13px 0 0;overflow:hidden;text-align:right}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content span.align-right span img{margin:0;text-align:right}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content span.float-left{display:block;float:left;margin-right:13px;overflow:hidden}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content span.float-left span{margin:13px 0 0}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content span.float-right{display:block;float:right;margin-left:13px;overflow:hidden}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content span.float-right>span{display:block;margin:13px auto 0;overflow:hidden;text-align:right}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content code,typedoc-theme-yaf yaf-chrome-right yaf-chrome-content tt{padding:.2em .4em;margin:0;font-size:85%;background-color:var(--color-neutral-muted);border-radius:6px}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content code br,typedoc-theme-yaf yaf-chrome-right yaf-chrome-content tt br{display:none}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content del code{text-decoration:inherit}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content pre code{font-size:100%}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content pre>code{padding:0;margin:0;word-break:normal;white-space:pre;background:rgba(0,0,0,0);border:0}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content .highlight{margin-bottom:16px}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content .highlight pre{margin-bottom:0;word-break:normal}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content .highlight pre,typedoc-theme-yaf yaf-chrome-right yaf-chrome-content pre{padding:16px;overflow:auto;font-size:85%;line-height:1.45;background-color:var(--color-canvas-subtle);border-radius:6px}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content pre code,typedoc-theme-yaf yaf-chrome-right yaf-chrome-content pre tt{display:inline;max-width:none;padding:0;margin:0;overflow:visible;line-height:inherit;word-wrap:normal;background-color:rgba(0,0,0,0);border:0}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content .csv-data td,typedoc-theme-yaf yaf-chrome-right yaf-chrome-content .csv-data th{padding:5px;overflow:hidden;font-size:12px;line-height:1;text-align:left;white-space:nowrap}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content .csv-data .blob-num{padding:10px 8px 9px;text-align:right;background:var(--color-canvas-default);border:0}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content .csv-data tr{border-top:0}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content .csv-data th{font-weight:600;background:var(--color-canvas-subtle);border-top:0}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content .footnotes{font-size:12px;color:var(--color-fg-muted);border-top:1px solid var(--color-border-default)}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content .footnotes ol{padding-left:16px}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content .footnotes li{position:relative}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content .footnotes li:target::before{position:absolute;top:-8px;right:-8px;bottom:-8px;left:-24px;pointer-events:none;content:"";border:2px solid var(--color-accent-emphasis);border-radius:6px}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content .footnotes li:target{color:var(--color-fg-default)}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content .footnotes .data-footnote-backref g-emoji{font-family:monospace}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content .task-list-item{list-style-type:none}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content .task-list-item label{font-weight:400}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content .task-list-item.enabled label{cursor:pointer}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content .task-list-item+.task-list-item{margin-top:3px}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content .task-list-item .handle{display:none}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content .task-list-item-checkbox{margin:0 .2em .25em -1.6em;vertical-align:middle}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content .contains-task-list:dir(rtl) .task-list-item-checkbox{margin:0 -1.6em .25em .2em}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content ::-webkit-calendar-picker-indicator{filter:invert(50%)}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content yaf-content{flex-grow:1;display:block;max-width:900px;padding:2rem}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content yaf-content .markdown-body ul{list-style:inside}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content yaf-content h5{margin-bottom:.25rem;color:var(--color-fg-muted)}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content yaf-content ul.references{list-style:circle;font-size:.9rem;font-weight:100}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content yaf-content ul.references a{color:var(--color-fg-subtle);text-decoration:underline}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content yaf-content ul.references a:hover{color:var(--color-fg-default)}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content yaf-content pre.highlight .block{display:block;padding-left:1rem}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content yaf-content pre.highlight .name{color:var(--color-prettylights-syntax-variable)}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content yaf-content pre.highlight .title{color:var(--color-prettylights-syntax-markup-heading)}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content yaf-content pre.highlight .parameter{color:var(--color-prettylights-syntax-keyword)}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content yaf-content pre.highlight .symbol{color:var(--color-prettylights-syntax-brackethighlighter-angle)}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content yaf-content pre.highlight .type{font-style:italic;color:var(--color-prettylights-syntax-entity)}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content yaf-content pre.highlight .intrinsic{font-style:italic;color:var(--color-fg-muted)}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content yaf-content pre.highlight .literal{font-weight:600;color:var(--color-accent-emphasis)}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content yaf-content pre.highlight .value{font-weight:600;color:var(--color-prettylights-syntax-variable)}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content yaf-content pre.highlight a{text-decoration:underline;text-decoration-color:var(--color-border-default)}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content yaf-content pre.highlight a:hover{text-decoration-color:var(--color-accent-fg)}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content yaf-content yaf-widget-flags{font-size:1rem;font-weight:300;flex-grow:1;display:flex;justify-content:flex-end}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content yaf-content yaf-widget-flags .flag{padding:.5rem;border:1px solid var(--color-border-default)}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content yaf-content yaf-content-marked.markdown-body{display:block;margin:0 1rem}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content yaf-content>yaf-content-hierarchy>ul{background-color:var(--color-canvas-subtle)}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content yaf-content>yaf-content-hierarchy>ul li:last-child{margin-bottom:1rem}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content yaf-content>yaf-content-hierarchy>ul li:first-child{margin-top:1rem}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content yaf-content yaf-content-hierarchy h5{cursor:pointer;display:flex;align-items:center}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content yaf-content yaf-content-hierarchy ul{font-size:.9rem}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content yaf-content yaf-content-hierarchy li.target{font-weight:600}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content yaf-content yaf-content-hierarchy.closed h5 .yaficon{rotate:180deg}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content yaf-content yaf-content-header pre{white-space:pre-wrap;line-height:1.2rem}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content yaf-content yaf-content-header h1{position:relative;display:flex;align-items:center}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content yaf-content yaf-content-header h1 .name{cursor:pointer}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content yaf-content yaf-content-header h1>span{font-size:1rem}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content yaf-content yaf-content-header .name,typedoc-theme-yaf yaf-chrome-right yaf-chrome-content yaf-content yaf-content-header .parameters{color:var(--color-accent-emphasis);font-size:2.5rem;font-weight:400}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content yaf-content yaf-content-header .parameters{font-style:italic}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content yaf-content yaf-content-header .kind{position:absolute;left:0;bottom:100%;background:var(--color-accent-fg);color:var(--color-canvas-subtle);padding:5px 10px}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content yaf-content yaf-content-header .signature{display:block;margin-left:1rem}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content yaf-content yaf-content-header .type{font-style:italic}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content yaf-content yaf-content-header .symbol.nl{display:block}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content yaf-content yaf-signature-body,typedoc-theme-yaf yaf-chrome-right yaf-chrome-content yaf-content yaf-signature-parameters,typedoc-theme-yaf yaf-chrome-right yaf-chrome-content yaf-content yaf-signature-parameters-type{display:block}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content yaf-content yaf-signature-parameters,typedoc-theme-yaf yaf-chrome-right yaf-chrome-content yaf-content yaf-signature-parameters-type{display:block}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content yaf-content yaf-signature-parameters table,typedoc-theme-yaf yaf-chrome-right yaf-chrome-content yaf-content yaf-signature-parameters-type table{display:table;width:100%}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content yaf-content yaf-signature-parameters table th,typedoc-theme-yaf yaf-chrome-right yaf-chrome-content yaf-content yaf-signature-parameters-type table th{background:var(--color-attention-subtle)}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content yaf-content yaf-signature-parameters table td,typedoc-theme-yaf yaf-chrome-right yaf-chrome-content yaf-content yaf-signature-parameters-type table td{vertical-align:top}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content yaf-content yaf-signature-parameters table td.type pre,typedoc-theme-yaf yaf-chrome-right yaf-chrome-content yaf-content yaf-signature-parameters-type table td.type pre{padding:0;background:none;display:block;white-space:pre-wrap}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content yaf-content yaf-signature-reflection{display:inline}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content yaf-content yaf-member-group-reflection h2,typedoc-theme-yaf yaf-chrome-right yaf-chrome-content yaf-content yaf-member-group-reflection h3,typedoc-theme-yaf yaf-chrome-right yaf-chrome-content yaf-content yaf-member-group-reflection h3 .trigger,typedoc-theme-yaf yaf-chrome-right yaf-chrome-content yaf-content yaf-member-group-link h2,typedoc-theme-yaf yaf-chrome-right yaf-chrome-content yaf-content yaf-member-group-link h3,typedoc-theme-yaf yaf-chrome-right yaf-chrome-content yaf-content yaf-member-group-link h3 .trigger{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content yaf-content yaf-member-group-reflection h2,typedoc-theme-yaf yaf-chrome-right yaf-chrome-content yaf-content yaf-member-group-link h2{font-weight:400;border-color:var(--color-fg-subtle);color:var(--color-fg-default)}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content yaf-content yaf-member-group-reflection h2 span.trigger,typedoc-theme-yaf yaf-chrome-right yaf-chrome-content yaf-content yaf-member-group-link h2 span.trigger{display:flex;align-items:center}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content yaf-content yaf-member-group-reflection h2 span.trigger .icon,typedoc-theme-yaf yaf-chrome-right yaf-chrome-content yaf-content yaf-member-group-link h2 span.trigger .icon{display:flex;align-items:center;justify-content:center;margin-right:1rem;border:1px solid var(--color-border-muted);-webkit-user-select:none;-moz-user-select:none;user-select:none;background:var(--color-canvas-default);width:2rem;height:2rem}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content yaf-content yaf-member-group-reflection h2 span.trigger:hover,typedoc-theme-yaf yaf-chrome-right yaf-chrome-content yaf-content yaf-member-group-link h2 span.trigger:hover{cursor:pointer}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content yaf-content yaf-member-group-reflection h2 span.trigger:hover .icon,typedoc-theme-yaf yaf-chrome-right yaf-chrome-content yaf-content yaf-member-group-link h2 span.trigger:hover .icon{background:var(--color-border-muted);transition:background var(--transition-fades)}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content yaf-content yaf-member-group-reflection h3 .icon,typedoc-theme-yaf yaf-chrome-right yaf-chrome-content yaf-content yaf-member-group-link h3 .icon{display:inline-block;height:24px}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content yaf-content yaf-member-group-reflection h3 .trigger,typedoc-theme-yaf yaf-chrome-right yaf-chrome-content yaf-content yaf-member-group-link h3 .trigger{cursor:pointer}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content yaf-content yaf-member-group-reflection>ul,typedoc-theme-yaf yaf-chrome-right yaf-chrome-content yaf-content yaf-member-group-link>ul{border:0;padding:0}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content yaf-content yaf-member-group-link ul{display:flex;flex-wrap:wrap;align-items:stretch;gap:5px}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content yaf-content yaf-member-group-link ul a{color:var(--color-fg-muted);display:block;width:100%;height:100%}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content yaf-content yaf-member-group-link ul li{margin:0;border:1px solid var(--color-border-muted);flex-grow:1;flex-basis:30%;text-align:center;background:var(--color-canvas-subtle);transition:all var(--transition-fades)}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content yaf-content yaf-member-group-link ul li a{padding:.5rem}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content yaf-content yaf-member-group-link ul li:hover{background:var(--color-border-muted);cursor:pointer}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content yaf-content yaf-member-group-link ul li:hover a{text-decoration:none;color:var(--color-accent-emphasis)}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content yaf-content yaf-member-group-reflection{display:block;color:var(--color-fg-muted)}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content yaf-content yaf-member-group-reflection h3 .wrapper{display:flex}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content yaf-content yaf-member-group-reflection h3 .wrapper a{color:var(--color-accent-fg);font-weight:400;padding:0}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content yaf-content yaf-member-group-reflection h3 .wrapper a:hover{color:var(--color-fg-muted)}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content yaf-content yaf-member-group-reflection h3 .wrapper .symbol{padding:0 .5rem}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content yaf-content yaf-member-group-reflection yaf-member{padding-left:.5rem}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content yaf-content yaf-member-group-reflection.open .icon>span{transform:rotate(180deg)}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content yaf-content yaf-member-group-reflection.closed .icon>span{transform:rotate(90deg)}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content yaf-content yaf-member-group-reflection.rendered h2 span.trigger .icon>span{transition:transform var(--transition-rotates)}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content yaf-content yaf-member,typedoc-theme-yaf yaf-chrome-right yaf-chrome-content yaf-content yaf-member-signatures{display:block}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content yaf-content yaf-member-group-reflection yaf-member{border-left:3px solid var(--color-fg-subtle)}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content yaf-content yaf-member-signatures,typedoc-theme-yaf yaf-chrome-right yaf-chrome-content yaf-content yaf-member-getter-setter{position:relative;display:block;padding-bottom:1rem;margin-bottom:3rem;border-bottom:1px solid var(--color-fg-subtle)}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content yaf-content yaf-member-signatures .flag,typedoc-theme-yaf yaf-chrome-right yaf-chrome-content yaf-content yaf-member-getter-setter .flag{border:none;background-color:var(--color-canvas-subtle);margin-right:1px}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content yaf-content yaf-member-signatures pre,typedoc-theme-yaf yaf-chrome-right yaf-chrome-content yaf-content yaf-member-getter-setter pre{border-radius:0}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content yaf-content yaf-member{display:block;margin-bottom:3rem}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content yaf-content yaf-member h3>yaf-navigation-link{display:flex;position:relative;align-items:center;background:var(--color-fg-subtle);left:-0.5rem}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content yaf-content yaf-member h3 yaf-navigation-link:after{content:"";position:absolute;width:100%;height:1px;background:var(--color-border-default);bottom:-1px;left:0}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content yaf-content yaf-member h3 a{padding:.25rem 1rem;cursor:pointer;display:block;color:var(--color-canvas-default);font-weight:350;font-size:1.2rem}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content yaf-content yaf-member h3 a:hover{text-decoration:none;color:var(--color-attention-subtle)}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content yaf-content yaf-member .inner>yaf-member-signatures>yaf-signature-title,typedoc-theme-yaf yaf-chrome-right yaf-chrome-content yaf-content yaf-member yaf-member-declaration>yaf-member-signatures>yaf-signature-title{background:var(--color-canvas-subtle);width:100%;display:block;position:relative}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content yaf-content yaf-member .inner>yaf-member-signatures>yaf-signature-title>.wrapper,typedoc-theme-yaf yaf-chrome-right yaf-chrome-content yaf-content yaf-member yaf-member-declaration>yaf-member-signatures>yaf-signature-title>.wrapper{display:block;margin-left:1rem}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content yaf-content yaf-member .inner>yaf-member-signatures>yaf-signature-title .highlight,typedoc-theme-yaf yaf-chrome-right yaf-chrome-content yaf-content yaf-member yaf-member-declaration>yaf-member-signatures>yaf-signature-title .highlight{position:relative;left:-0.5rem}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content yaf-content yaf-member yaf-member-getter-setter .highlight{position:relative;left:-0.5rem}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content yaf-content yaf-member .header{display:flex;align-items:stretch;color:var(--color-fg-subtle);border-bottom:1px solid var(--color-fg-subtle);margin-bottom:0}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content yaf-content yaf-member .header .flag{border-bottom:none}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content yaf-content yaf-member pre.highlight{border-radius:0;margin-bottom:0;margin-bottom:1rem}typedoc-theme-yaf yaf-chrome-right yaf-chrome-content yaf-content yaf-member .flag{margin-left:.5rem}typedoc-theme-yaf yaf-chrome-header[context=mobile]{display:none}typedoc-theme-yaf yaf-chrome-header[context=mobile] #mobileNav .yaficon,typedoc-theme-yaf yaf-chrome-header[context=mobile] #hamburger .yaficon{cursor:pointer}typedoc-theme-yaf yaf-chrome-header[context=mobile] #mobileNav .yaficon{padding:0 .5rem}typedoc-theme-yaf yaf-chrome-header[context=mobile] #mobileNav .projectHome{font-weight:450;font-size:1.2rem}typedoc-theme-yaf yaf-chrome-header{flex:0 0 var(--dim-header-height);background:var(--color-accent-fg);display:flex;color:var(--color-canvas-default)}typedoc-theme-yaf yaf-chrome-header *{-webkit-user-select:none;-moz-user-select:none;user-select:none}typedoc-theme-yaf yaf-chrome-header .breadcrumb{color:var(--color-canvas-subtle);display:flex;flex-wrap:wrap;align-items:center}typedoc-theme-yaf yaf-chrome-header .breadcrumb yaf-navigation-link{display:block}typedoc-theme-yaf yaf-chrome-header .breadcrumb a{padding:.5rem 0;display:block}typedoc-theme-yaf yaf-chrome-header .breadcrumb .divider{padding:0 .5rem}typedoc-theme-yaf yaf-chrome-header a{text-decoration:none;color:var(--color-canvas-subtle)}typedoc-theme-yaf yaf-chrome-content{flex-grow:1;display:flex;flex-direction:column;position:relative}typedoc-theme-yaf yaf-chrome-footer{display:flex;border-top:1px solid var(--color-border-default);flex:0 0 var(--dim-footer-height);width:100%;align-items:center;justify-content:center;font-size:.8rem;color:var(--color-fg-muted)}@media screen and (max-width: 900px){#projectTitle{display:none !important}body{width:100vw;height:100vh}typedoc-theme-yaf{display:grid;grid-template-columns:100vw;grid-template-rows:auto 100fr}typedoc-theme-yaf #hamburger{display:flex !important;align-items:center;padding:1rem}typedoc-theme-yaf #hamburger .open{display:flex}typedoc-theme-yaf #hamburger .close{display:none}typedoc-theme-yaf.menuOpen yaf-chrome-left{left:0 !important}typedoc-theme-yaf.menuOpen #hamburger .open{display:none}typedoc-theme-yaf.menuOpen #hamburger .close{display:flex}yaf-chrome-header[context=mobile]{display:flex !important;grid-column:1/2;grid-row:1/2}yaf-chrome-header[context=mobile] #mobileNav{display:flex !important;padding:.5rem 0}yaf-chrome-header[context=mobile] .wrapper{padding:.5rem 0;padding-left:1rem;display:flex;flex-direction:column;align-content:stretch;justify-content:center}yaf-chrome-header[context=desktop]{display:none}yaf-chrome-left{overflow:hidden;position:relative;grid-column:1/2;grid-row:2/3;transition:left var(--transition-drawer);z-index:10;box-shadow:10px -1px 21px -9px var(--color-fg-default);width:calc(100vw - 1rem);left:-100vw}yaf-chrome-left yaf-navigation-header{border-top:none}yaf-chrome-left yaf-navigation-header .controls-navigation{border-top:1px solid var(--color-accent-fg)}yaf-chrome-right{overflow:hidden;grid-column:1/2;grid-row:2/3}yaf-chrome-right yaf-chrome-content{height:100%}}.material-icons-sharp.md-18{font-size:18px}.material-icons-sharp.md-24{font-size:24px}.material-icons-sharp.md-36{font-size:36px}.material-icons-sharp.md-48{font-size:48px}@keyframes flash{0%{background:none}50%{background:var(--color-attention-subtle)}100%{background:none}} + +/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9tZWRpYS9zY3NzL3Jlc2V0LnNjc3MiLCIuLi8uLi8uLi9zcmMvbWVkaWEvc2Nzcy9jb2xvdXJzLnNjc3MiLCIuLi8uLi8uLi9zcmMvbWVkaWEvc2Nzcy90eXBlZG9jVGhlbWVZYWYuc2NzcyIsIi4uLy4uLy4uL3NyYy9tZWRpYS9zY3NzL2NvbXBvbmVudHMveWFmV2lkZ2V0LnNjc3MiLCIuLi8uLi8uLi9zcmMvbWVkaWEvc2Nzcy9jb21wb25lbnRzL3lhZkNocm9tZS5zY3NzIiwiLi4vLi4vLi4vc3JjL21lZGlhL3Njc3MvY29tcG9uZW50cy95YWZOYXZpZ2F0aW9uLnNjc3MiLCIuLi8uLi8uLi9zcmMvbWVkaWEvc2Nzcy9naXRodWItbWFya2Rvd24uc2NzcyIsIi4uLy4uLy4uL3NyYy9tZWRpYS9zY3NzL2NvbXBvbmVudHMveWFmQ29udGVudC5zY3NzIiwiLi4vLi4vLi4vc3JjL21lZGlhL3Njc3MvY29tcG9uZW50cy95YWZTaWduYXR1cmUuc2NzcyIsIi4uLy4uLy4uL3NyYy9tZWRpYS9zY3NzL2NvbXBvbmVudHMveWFmTWVtYmVyR3JvdXBzLnNjc3MiLCIuLi8uLi8uLi9zcmMvbWVkaWEvc2Nzcy9jb21wb25lbnRzL3lhZk1lbWJlci5zY3NzIiwiLi4vLi4vLi4vc3JjL21lZGlhL3Njc3MvbW9iaWxlLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBS0EsMlpBaUZDLFFBQUEsQ0FDQSxTQUFBLENBQ0EsUUFBQSxDQUNBLGNBQUEsQ0FDQSxZQUFBLENBQ0EsdUJBQUEsQ0FHRCw4RUFXQyxhQUFBLENBRUQsS0FDQyxhQUFBLENBRUQsV0FHQyxlQUFBLENBRUQsYUFFQyxXQUFBLENBRUQsb0RBSUMsVUFBQSxDQUNBLFlBQUEsQ0FFRCxNQUNDLHdCQUFBLENBQ0EsZ0JBQUEsQ0NoSUQsbUNBQ0MsTUFDQyxpQkFBQSxDQUNBLDRDQUFBLENBQ0EsNkNBQUEsQ0FDQSwyQ0FBQSxDQUNBLDREQUFBLENBQ0EsK0NBQUEsQ0FDQSw0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 */ \ No newline at end of file diff --git a/docs/v1.0.0-beta01/media/index.css.map b/docs/v1.0.0-beta01/media/index.css.map new file mode 100644 index 000000000..8445f6ab7 --- /dev/null +++ b/docs/v1.0.0-beta01/media/index.css.map @@ -0,0 +1 @@ +{"version":3,"sourceRoot":"","sources":["../../../src/media/scss/reset.scss","../../../src/media/scss/colours.scss","../../../src/media/scss/typedocThemeYaf.scss","../../../src/media/scss/components/yafWidget.scss","../../../src/media/scss/components/yafChrome.scss","../../../src/media/scss/components/yafNavigation.scss","../../../src/media/scss/github-markdown.scss","../../../src/media/scss/components/yafContent.scss","../../../src/media/scss/components/yafSignature.scss","../../../src/media/scss/components/yafMemberGroups.scss","../../../src/media/scss/components/yafMember.scss","../../../src/media/scss/mobile.scss"],"names":[],"mappings":"AAKA,2ZAiFC,SACA,UACA,SACA,eACA,aACA,wBAGD,8EAWC,cAED,KACC,cAED,WAGC,gBAED,aAEC,YAED,oDAIC,WACA,aAED,MACC,yBACA,iBChID,mCACC,MACC,kBACA,6CACA,8CACA,4CACA,6DACA,gDACA,6CACA,4CACA,8CACA,kEACA,0DACA,wDACA,0DACA,wDACA,mDACA,iDACA,oDACA,mDACA,iDACA,yDACA,uDACA,0DACA,wDACA,yDACA,uDACA,yDACA,uDACA,qDACA,8DACA,+DACA,mEACA,4BACA,0BACA,2BACA,gCACA,+BACA,gCACA,8BACA,gDACA,2BACA,iCACA,kDACA,4BAIF,oCACC,MACC,mBACA,6CACA,8CACA,4CACA,6DACA,gDACA,6CACA,4CACA,8CACA,kEACA,0DACA,wDACA,0DACA,wDACA,mDACA,iDACA,oDACA,mDACA,iDACA,yDACA,uDACA,0DACA,wDACA,yDACA,uDACA,yDACA,uDACA,qDACA,8DACA,+DACA,mEACA,4BACA,0BACA,2BACA,gCACA,+BACA,gCACA,6CACA,gDACA,2BACA,iCACA,kCACA,4BC5FF,EACC,sBAED,MACC,6BACA,6BACA,wBACA,iBACA,0BACA,4BACA,2BACA,yBACA,0BAGD,UAEC,qBACA,6CACA,4BACC,eACA,WACA,MACA,OACA,YACA,aACA,oBACA,kCACA,iCACA,aACA,mBACA,uBACA,UACA,2CAID,sBACC,YACA,2BACC,uBACA,wBACA,mCACA,iCAIH,8BACC,aAED,mBACC,KACC,YAED,GACC,eAGF,8CACC,kBACC,wBAGF,kBACC,qBAGD,kBACC,aACA,aACA,YACA,kBACA,gBAEA,qCACC,kBAED,uCACC,kBAED,4BACC,kEAED,+CACC,UACA,WACA,6CAED,qDACC,iCAED,qDACC,uCAED,8BACC,gBAGA,wDACC,wBACA,UAGF,0DACC,uCACA,6CAED,wBACC,iBAGD,uFAGC,qBACA,sBCnHF,wCACC,aACA,6CACC,eACA,gBACA,cACA,gBACA,4BACA,2CACA,oBACA,kBAGF,kDACC,wBAED,8CACC,wBAGD,qCACC,gBACA,iBACA,4CACC,gBAIF,kCACC,aACA,aACA,cACA,uBACA,mBACA,kBACA,oBACA,iBACA,cAMA,kCALA,uCACC,gBACA,iBACA,gBAGD,2CACC,uDACA,kBAED,wCACC,mDAED,8CACC,mDACA,kBAED,uCACC,uDAED,2CACC,qDACA,kBAED,4CACC,mDAED,yCACC,mDACA,kBAED,4CACC,kCAED,2CACC,qDACA,kBAED,4CACC,mDAED,2CACC,qDACA,kBAED,4CACC,qDACA,kBAED,yCACC,kCCxFF,2GAGC,cACA,uCAGD,kCACC,+BACA,gBACA,4DACC,sCCXF,kCACC,aACA,sBACA,oBACA,wDACC,cACA,UACA,2CACA,UACA,kBAED,sDACC,cACA,aACA,2CACA,UACA,kBAID,qEACC,UACA,aACA,kBAED,mEACC,UACA,UACA,kBAGF,wDAsBC,aACA,sBACA,wCACA,iBAxBA,sEACC,kCACA,iCACA,oBACA,aACA,mBACA,gBACA,iBACA,iBACA,6EACC,YACA,aAED,wEACC,cACA,iCAED,8EACC,kCAOF,6EACC,iBACA,YACA,aACA,mBACA,sGACC,YACA,aACA,YACA,kBACA,mBACA,uHACC,aACA,QACA,SAED,wHACC,aACA,QACA,SAED,2iBAIC,aAGD,4GACC,uBACA,wBACA,cACA,YACA,gBACA,kBACA,kBACA,gBACA,4CAED,oHACC,6BAED,+GACC,wBACA,iBACA,kBACA,UACA,aACA,uBACA,mBAED,mOAEC,4BACA,WACA,YACA,aACA,uBACA,mBAED,iHACC,aACA,eACA,6BAGA,sHACC,aAED,uHACC,aAIH,wKAEC,aACA,uBACA,mBACA,WACA,YACA,eACA,8BACA,qBACA,uCAED,oLAEC,uCACA,mCAED,+FACC,aACA,4GACC,mBAED,6GACC,oBAGF,mFACC,yBAGF,mEACC,uCACA,mCACA,oFACC,aAGF,2EACC,iDAGA,qFACC,aAGF,sEACC,kBACA,WACA,uCACA,6EACC,aACA,cACA,eAED,8EACC,cAEA,aACA,mBACA,uBAED,4EACC,4BAIH,+CACC,YAEA,mDACA,kBACA,gBAGD,8GAEC,aACA,WACA,YAGA,iEACC,kBACA,UACA,oEACC,aACA,mBACA,gBACA,sEACC,aACA,sBACA,qBACA,4EACC,8BAED,8EACC,4BACA,gBACA,gBAED,2EACC,mCAQH,2EACC,sDAKD,0HACC,gBACA,sJACC,oBAIH,iFACC,kBACA,UAEA,mFACC,8BACA,qBACA,yCACA,yFACC,gBAGF,0GACC,4BAED,yMAEC,6BAED,gGACC,kDACA,gBAED,yFACC,aACA,WACA,mBAEA,0CAEA,6GACC,aACA,mBACA,YACA,kBACA,gBACA,+GACC,cACA,eACA,kBACA,gBACA,qHACC,cACA,mBACA,gBACA,uBACA,oBAKF,2HACC,iBACA,YAIF,kGACC,eACA,aACA,mBACA,yBACA,oBACA,cACA,wGACC,aACA,mBACA,uBACA,2CACA,mBACA,kBACA,mBACA,gCACA,uCAED,qHACC,cACA,YACA,oBAID,8GACC,qCACA,6BAKH,mGACC,eACA,gBACA,cACA,4BACA,2CACA,oBACA,kBAED,wGACC,gBACA,WACA,UAGD,4GACC,yBAKA,2GACC,yBAKF,8FACC,2CACA,oGACC,gBAED,oGACC,oCACA,kCACA,iCAED,yGACC,yBAMJ,wDACC,cACA,kBACA,iDACA,mDACA,kCAEA,wCACA,eACA,+DACC,WACA,YACA,YACA,gBACA,gBACA,wCACA,kCDnYF,mCACC,aACA,sBACA,gBACA,YEnBD,sDACC,0BAEA,SACA,8BACA,6CACA,eACA,gBACA,qBAGD,+DACC,qBACA,kBACA,2BAGD,wiBAMC,WACA,YACA,YACA,qBACA,8BACA,shBACA,8gBAGD,4LAGC,cAGD,8DACC,kBAGD,+DACC,wBAGD,wDACC,+BACA,6BACA,qBAGD,6HAEC,gBAGD,kEACC,mBACA,iCAGD,qHAEC,gBAGD,0DACC,kBAGD,yDACC,eACA,gBACA,oBACA,cACA,kDAGD,2DACC,+CACA,gCAGD,4DACC,cAGD,oHAEC,cACA,cACA,kBACA,wBAGD,0DACC,eAGD,0DACC,WAGD,0DACC,kBACA,eACA,uBACA,6CAGD,0OAIC,gCACA,cAGD,6DACC,gBAGD,yDACC,uBACA,gBACA,yBACA,kDACA,aACA,UACA,cACA,6CACA,SAGD,4DACC,aACA,SACA,iBACA,oBACA,kBACA,oBAGD,2MAGC,0BAGD,iQAGC,kBACA,UAGD,wPAGC,8BAGD,yIAEC,sBACA,UAGD,8LAEC,YAGD,oEACC,6BACA,oBAGD,iMAEC,wBAGD,kFACC,cACA,YAGD,mFACC,0BACA,aAGD,8DACC,0BAGD,iEACC,cACA,WAGD,gEACC,cACA,WACA,WAGD,4DACC,iBACA,yBACA,cACA,kBACA,eACA,cAGD,kHAEC,UAGD,sEACC,eAGD,yFACC,wBAGD,0DACC,qBACA,gBACA,uFAEA,iBACA,8BACA,sBACA,4CACA,4CACA,+CACA,kBACA,qDAGD,sVAMC,gBACA,mBACA,gBACA,iBAGD,yDACC,gBACA,oBACA,gBACA,kDAGD,yDACC,gBACA,iBAGD,yDACC,gBACA,cAGD,yDACC,gBACA,iBAGD,yDACC,gBACA,gBACA,4BAGD,wDACC,aACA,mBAGD,iEACC,SACA,cACA,4BACA,oDAGD,kHAEC,aACA,gBACA,iBAGD,wHAEC,4BAGD,4PAIC,4BAGD,yDACC,cAGD,oHAEC,yFAEA,eAGD,0DACC,aACA,gBACA,yFAEA,eACA,iBAGD,+DACC,qBACA,4BACA,2BACA,kBAGD,oEACC,6BACA,UAGD,8KAEC,SACA,wBACA,gBAGD,4DACC,+CAGD,+HAEC,gDAGD,yHAEC,8CAGD,iIAEC,+DAGD,8DACC,kDAGD,4DACC,+CAGD,idAOC,8CAGD,0HAEC,gDAGD,6DACC,oEAGD,6DACC,4DACA,qEAGD,6DACC,4DACA,qEAGD,qEACC,iBACA,qDAGD,6DACC,mDAGD,8LAGC,iBACA,sDAGD,6DACC,kBACA,qDAGD,6DACC,iBACA,mDAGD,6DACC,2DACA,oEAGD,8DACC,4DACA,qEAGD,6DACC,2DACA,oEAGD,8DACC,2DACA,oEAGD,8DACC,iBACA,uDAGD,6DACC,gEAGD,6DACC,iEAGD,+DACC,0BACA,qEAGD,sEACC,cAGD,8DACC,mEACA,cACA,6BACA,gBACA,cACA,wBAGD,kEACC,UACA,WAGD,6EACC,cACA,WAGD,4EACC,cACA,WACA,WAGD,mFACC,wBAGD,kFACC,2BAGD,oEACC,cACA,qBAGD,8DACC,6BAGD,8DACC,WACA,kBACA,kBACA,cAGD,oEACC,aAGD,wdAQC,aACA,mBAGD,8EACC,aAGD,6EACC,gBAGD,oEACC,YAGD,mEACC,YAGD,0aAMC,8BACA,sBACA,kBAGD,0aAMC,qBAGD,8fAMC,mBAGD,4tBAYC,eACA,kBAGD,kIAEC,UACA,qBAGD,mEACC,wBAGD,iEACC,4BAGD,iEACC,4BAGD,yEACC,wBAGD,gPAIC,aACA,gBAGD,2DACC,gBAGD,4DACC,iBAGD,yDACC,UAGD,4DACC,UACA,gBACA,cACA,kBACA,gBAGD,4DACC,eACA,mBAGD,+DACC,gBAGD,8HAEC,iBACA,6CAGD,+DACC,6CACA,+CAGD,6EACC,4CAGD,gEACC,+BAGD,uEACC,kBAGD,sEACC,mBAGD,6DACC,eACA,wBACA,+BAGD,iEACC,cACA,gBAGD,sEACC,cACA,WACA,WACA,YACA,gBACA,gBACA,6CAGD,0EACC,cACA,WAGD,2EACC,cACA,gBACA,WACA,8BAGD,wEACC,cACA,gBACA,WAGD,6EACC,cACA,mBACA,gBACA,kBAGD,iFACC,cACA,kBAGD,uEACC,cACA,gBACA,WAGD,4EACC,cACA,gBACA,gBACA,iBAGD,gFACC,SACA,iBAGD,sEACC,cACA,WACA,kBACA,gBAGD,2EACC,gBAGD,uEACC,cACA,YACA,iBACA,gBAGD,4EACC,cACA,mBACA,gBACA,iBAGD,oHAEC,kBACA,SACA,cACA,4CACA,kBAGD,0HAEC,aAGD,+DACC,wBAGD,+DACC,eAGD,+DACC,UACA,SACA,kBACA,gBACA,yBACA,SAGD,iEACC,mBAGD,qEACC,gBACA,kBAGD,+HAEC,aACA,cACA,cACA,iBACA,4CACA,kBAGD,4HAEC,eACA,eACA,UACA,SACA,iBACA,oBACA,iBACA,+BACA,SAGD,sIAEC,YACA,gBACA,eACA,cACA,gBACA,mBAGD,0EACC,qBACA,iBACA,uCACA,SAGD,mEACC,aAGD,mEACC,gBACA,sCACA,aAGD,iEACC,eACA,4BACA,iDAGD,oEACC,kBAGD,oEACC,kBAGD,mFACC,kBACA,SACA,WACA,YACA,WACA,oBACA,WACA,8CACA,kBAGD,2EACC,8BAGD,gGACC,sBAGD,sEACC,qBAGD,4EACC,gBAGD,oFACC,eAGD,sFACC,eAGD,8EACC,aAGD,+EACC,2BACA,sBAGD,4GACC,2BAGD,0FACC,mBC56BD,kEACC,YACA,cACA,gBACA,aACA,oFACC,kBAED,qEACC,qBACA,4BAED,gFACC,kBACA,gBACA,gBACA,kFACC,6BACA,0BAED,wFACC,8BAID,uFACC,cACA,kBAED,sFACC,gDAED,uFACC,sDAED,2FACC,+CAED,wFACC,gEAED,sFACC,kBACA,8CAED,2FACC,kBACA,4BAED,yFACC,gBACA,mCAED,uFACC,gBACA,gDAED,kFACC,0BACA,kDAED,wFACC,6CAIF,mFACC,eACA,gBACA,YACA,aACA,yBACA,yFACC,cACA,6CAIF,mGACC,cACA,cAGD,2FACC,4CACA,yGACC,mBAED,0GACC,gBAID,2FACC,eACA,aACA,mBAED,2FACC,gBAED,kGACC,gBAID,2GACC,cAID,yFACC,qBACA,mBAGD,wFACC,kBACA,aACA,mBACA,8FACC,eAGF,6FACC,eAED,4LAEC,mCACA,iBACA,gBAED,iGACC,kBAED,2FACC,kBACA,OACA,YACA,kCACA,iCACA,iBAGD,gGACC,cACA,iBAED,2FACC,kBAED,gGACC,cCzJH,gRAGC,cAGD,2LAEC,cACA,uMACC,cACA,WACA,6MACC,yCAED,6MACC,mBAGA,+NACC,UACA,gBACA,cACA,qBAWJ,2FACC,eCjCA,skBAGC,aACA,8BACA,mBACA,eAGD,4LACC,gBACA,oCACA,8BACA,sNACC,aACA,mBACA,kOACC,aACA,mBACA,uBACA,kBACA,2CACA,iBACA,uCACA,WACA,YAGF,kOACC,eACA,8OACC,qCACA,8CAIH,wMACC,qBACA,YAED,8MACC,eAED,4LACC,SACA,UAID,2FACC,aACA,eACA,oBACA,QACA,6FACC,4BACA,cACA,WACA,YAED,8FACC,SACA,2CACA,YACA,eACA,kBAEA,sCACA,uCACA,gGACC,cAGF,oGACC,qCACA,eACA,sGACC,qBACA,mCAMJ,8FACC,cAsCA,4BApCC,0GACC,aACA,4GACC,6BACA,gBACA,UAED,kHACC,4BAED,kHACC,gBAIH,yGACC,mBAGA,8GACC,yBAKD,gHACC,wBAKD,kIACC,+CCzHH,qKAEC,cAED,yGACC,6CAGD,mLAEC,kBACA,cASA,oBACA,mBACA,+CAVA,+LACC,YACA,4CACA,iBAED,2LACC,gBAOF,6EACC,cACA,mBAGC,oGACC,aACA,kBACA,mBACA,kCACA,aAED,0GACC,WACA,kBACA,WACA,WACA,uCACA,YACA,OAED,kFACC,oBACA,eACA,cAEA,kCACA,gBACA,iBAGD,wFACC,qBACA,oCAGF,4QAEC,sCACA,WACA,cACA,kBACA,8RACC,cACA,iBAED,kSACC,kBACA,aAIF,iHACC,kBACA,aAGD,qFACC,aACA,oBACA,6BACA,+CACA,gBACA,2FACC,mBAIF,2FACC,gBACA,gBACA,mBAGD,mFACC,kBN1EF,oDACC,aAGC,gJACC,eAID,wEACC,gBAED,4EACC,gBACA,iBAIH,oCACC,kCACA,kCACA,aACA,kCACA,sCACC,iBAGD,gDACC,iCACA,aACA,eACA,mBACA,oEACC,cAED,kDACC,gBACA,cAED,yDACC,gBAGF,sCACC,qBACA,iCAGF,qCACC,YACA,aACA,sBACA,kBAED,oCACC,aACA,iDACA,kCACA,WACA,mBACA,uBACA,gBACA,4BOxFD,qCACC,cACC,wBAED,KACC,YACA,aAED,kBACC,aACA,4BACA,8BAEA,6BACC,wBACA,mBACA,aACA,mCACC,aAED,oCACC,aAKD,2CACC,kBAGA,4CACC,aAED,6CACC,aAKJ,kCACC,wBACA,gBACA,aAEA,6CACC,wBACA,gBAGD,2CACC,gBACA,kBACA,aACA,sBACA,sBACA,uBAGF,mCACC,aAGD,gBACC,gBACA,kBACA,gBACA,aACA,yCACA,WACA,uDACA,yBAEA,YACA,sCACC,gBACA,2DACC,4CAKH,iBACC,gBACA,gBACA,aACA,oCACC,aTqCF,4BACC,eAED,4BACC,eAED,4BACC,eAED,4BACC,eAIF,iBACC,GACC,gBAED,IACC,yCAED,KACC","file":"index.css"} \ No newline at end of file diff --git a/docs/v1.0.0-beta01/media/versionsMenu.js b/docs/v1.0.0-beta01/media/versionsMenu.js new file mode 100644 index 000000000..2f3475a6a --- /dev/null +++ b/docs/v1.0.0-beta01/media/versionsMenu.js @@ -0,0 +1,31 @@ +import { DOC_VERSIONS } from '../../versions.js'; + +const select = document.getElementById('plugin-versions-select'); + +DOC_VERSIONS.forEach((version) => { + const option = document.createElement('option'); + option.value = version; + option.innerHTML = version; + select.appendChild(option); +}); + +const locationSplit = location.pathname.split('/'); +const thisVersion = locationSplit.find((path) => + ['stable', 'dev', ...DOC_VERSIONS].includes(path) +); +select.value = DOC_VERSIONS.includes(thisVersion) + ? thisVersion + : DOC_VERSIONS[0]; +select.onchange = () => { + const newPaths = window.location.pathname.replace( + `/${thisVersion}/`, + `/${select.value}/` + ); + const newUrl = new URL(newPaths, window.location.origin); + window.location.assign(newUrl); +}; + +const header = document.querySelector('header.tsd-page-toolbar #tsd-search'); +if (!!header && select.className.includes('title')) { + header.prepend(select); +} diff --git a/docs/versions.js b/docs/versions.js new file mode 100644 index 000000000..102e554f5 --- /dev/null +++ b/docs/versions.js @@ -0,0 +1,6 @@ +"use strict" +export const DOC_VERSIONS = [ + 'stable', + 'v1.0', + 'dev', +]; diff --git a/project-templates/backend/fastify/yarn.lock b/project-templates/backend/fastify/yarn.lock index d4e73bbe3..0e7f8bab7 100644 --- a/project-templates/backend/fastify/yarn.lock +++ b/project-templates/backend/fastify/yarn.lock @@ -24,7 +24,7 @@ resolved "https://registry.npmmirror.com/@babel/compat-data/-/compat-data-7.27.3.tgz" integrity sha512-V42wFfx1ymFte+ecf6iXghnnP8kWTO+ZLXIyZq+1LAXHHvTZdVxicn4yiVYdYMGaCO3tmqub11AorKkv+iodqw== -"@babel/core@^7.0.0", "@babel/core@^7.0.0-0", "@babel/core@^7.11.6", "@babel/core@^7.12.3", "@babel/core@^7.23.9", "@babel/core@^7.8.0", "@babel/core@>=7.0.0-beta.0 <8": +"@babel/core@^7.11.6", "@babel/core@^7.12.3", "@babel/core@^7.23.9": version "7.27.4" resolved "https://registry.npmmirror.com/@babel/core/-/core-7.27.4.tgz" integrity sha512-bXYxrXFubeYdvB0NhD/NBB3Qi6aZeV20GOWVI47t2dkecCEoneR4NPVcb7abpXDEvejgrUfFtG6vG/zxAKmg+g== @@ -334,12 +334,7 @@ fastify-plugin "^4.0.0" mnemonist "0.39.6" -"@fastify/error@^3.3.0": - version "3.4.1" - resolved "https://registry.npmmirror.com/@fastify/error/-/error-3.4.1.tgz" - integrity sha512-wWSvph+29GR783IhmvdwWnN4bUxTD01Vm5Xad4i7i1VuAOItLvbPAb69sb0IQ2N57yprvhNIwAP5B6xfKTmjmQ== - -"@fastify/error@^3.4.0": +"@fastify/error@^3.3.0", "@fastify/error@^3.4.0": version "3.4.1" resolved "https://registry.npmmirror.com/@fastify/error/-/error-3.4.1.tgz" integrity sha512-wWSvph+29GR783IhmvdwWnN4bUxTD01Vm5Xad4i7i1VuAOItLvbPAb69sb0IQ2N57yprvhNIwAP5B6xfKTmjmQ== @@ -619,7 +614,7 @@ jest-haste-map "^29.7.0" slash "^3.0.0" -"@jest/transform@^29.0.0", "@jest/transform@^29.7.0": +"@jest/transform@^29.7.0": version "29.7.0" resolved "https://registry.npmmirror.com/@jest/transform/-/transform-29.7.0.tgz" integrity sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw== @@ -640,7 +635,7 @@ slash "^3.0.0" write-file-atomic "^4.0.2" -"@jest/types@^29.0.0", "@jest/types@^29.6.3": +"@jest/types@^29.6.3": version "29.6.3" resolved "https://registry.npmmirror.com/@jest/types/-/types-29.6.3.tgz" integrity sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw== @@ -676,14 +671,6 @@ resolved "https://registry.npmmirror.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz" integrity sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ== -"@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.18", "@jridgewell/trace-mapping@^0.3.24", "@jridgewell/trace-mapping@^0.3.25": - version "0.3.25" - resolved "https://registry.npmmirror.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz" - integrity sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ== - dependencies: - "@jridgewell/resolve-uri" "^3.1.0" - "@jridgewell/sourcemap-codec" "^1.4.14" - "@jridgewell/trace-mapping@0.3.9": version "0.3.9" resolved "https://registry.npmmirror.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz" @@ -692,6 +679,14 @@ "@jridgewell/resolve-uri" "^3.0.3" "@jridgewell/sourcemap-codec" "^1.4.10" +"@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.18", "@jridgewell/trace-mapping@^0.3.24", "@jridgewell/trace-mapping@^0.3.25": + version "0.3.25" + resolved "https://registry.npmmirror.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz" + integrity sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ== + dependencies: + "@jridgewell/resolve-uri" "^3.1.0" + "@jridgewell/sourcemap-codec" "^1.4.14" + "@lukeed/ms@^2.0.1": version "2.0.2" resolved "https://registry.npmmirror.com/@lukeed/ms/-/ms-2.0.2.tgz" @@ -710,7 +705,7 @@ "@nodelib/fs.stat" "2.0.5" run-parallel "^1.1.9" -"@nodelib/fs.stat@^2.0.2", "@nodelib/fs.stat@2.0.5": +"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": version "2.0.5" resolved "https://registry.npmmirror.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz" integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== @@ -1008,7 +1003,7 @@ semver "^7.3.7" tsutils "^3.21.0" -"@typescript-eslint/parser@^5.0.0", "@typescript-eslint/parser@^5.59.0": +"@typescript-eslint/parser@^5.59.0": version "5.62.0" resolved "https://registry.npmmirror.com/@typescript-eslint/parser/-/parser-5.62.0.tgz" integrity sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA== @@ -1105,7 +1100,7 @@ acorn-walk@^8.1.1: dependencies: acorn "^8.11.0" -"acorn@^6.0.0 || ^7.0.0 || ^8.0.0", acorn@^8.11.0, acorn@^8.4.1, acorn@^8.9.0: +acorn@^8.11.0, acorn@^8.4.1, acorn@^8.9.0: version "8.14.1" resolved "https://registry.npmmirror.com/acorn/-/acorn-8.14.1.tgz" integrity sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg== @@ -1226,7 +1221,7 @@ avvio@^8.3.0: "@fastify/error" "^3.3.0" fastq "^1.17.1" -babel-jest@^29.0.0, babel-jest@^29.7.0: +babel-jest@^29.7.0: version "29.7.0" resolved "https://registry.npmmirror.com/babel-jest/-/babel-jest-29.7.0.tgz" integrity sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg== @@ -1326,7 +1321,7 @@ braces@^3.0.3, braces@~3.0.2: dependencies: fill-range "^7.1.1" -browserslist@^4.24.0, "browserslist@>= 4.21.0": +browserslist@^4.24.0: version "4.25.0" resolved "https://registry.npmmirror.com/browserslist/-/browserslist-4.25.0.tgz" integrity sha512-PJ8gYKeS5e/whHBh8xrwYK+dAvEj7JXtz6uTucnMRB8OiGTsKccFekoRrjajPBHV8oOY+2tI4uxeceSimKwMFA== @@ -1755,7 +1750,7 @@ eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1, eslint-visitor-keys@^3.4 resolved "https://registry.npmmirror.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz" integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag== -eslint@*, "eslint@^6.0.0 || ^7.0.0 || ^8.0.0", "eslint@^6.0.0 || ^7.0.0 || >=8.0.0", eslint@^8.39.0, eslint@>=7.0.0, eslint@>=7.28.0: +eslint@^8.39.0: version "8.57.1" resolved "https://registry.npmmirror.com/eslint/-/eslint-8.57.1.tgz" integrity sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA== @@ -1919,7 +1914,7 @@ fast-glob@^3.2.9: merge2 "^1.3.0" micromatch "^4.0.8" -fast-json-stable-stringify@^2.0.0, fast-json-stable-stringify@^2.1.0, fast-json-stable-stringify@2.x: +fast-json-stable-stringify@2.x, fast-json-stable-stringify@^2.0.0, fast-json-stable-stringify@^2.1.0: version "2.1.0" resolved "https://registry.npmmirror.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz" integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== @@ -2671,7 +2666,7 @@ jest-resolve-dependencies@^29.7.0: jest-regex-util "^29.6.3" jest-snapshot "^29.7.0" -jest-resolve@*, jest-resolve@^29.7.0: +jest-resolve@^29.7.0: version "29.7.0" resolved "https://registry.npmmirror.com/jest-resolve/-/jest-resolve-29.7.0.tgz" integrity sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA== @@ -2815,7 +2810,7 @@ jest-worker@^29.7.0: merge-stream "^2.0.0" supports-color "^8.0.0" -jest@^29.0.0, jest@^29.5.0: +jest@^29.5.0: version "29.7.0" resolved "https://registry.npmmirror.com/jest/-/jest-29.7.0.tgz" integrity sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw== @@ -3048,16 +3043,16 @@ mime-types@^2.1.12: dependencies: mime-db "1.52.0" -mime@^3.0.0: - version "3.0.0" - resolved "https://registry.npmmirror.com/mime/-/mime-3.0.0.tgz" - integrity sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A== - mime@2.6.0: version "2.6.0" resolved "https://registry.npmmirror.com/mime/-/mime-2.6.0.tgz" integrity sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg== +mime@^3.0.0: + version "3.0.0" + resolved "https://registry.npmmirror.com/mime/-/mime-3.0.0.tgz" + integrity sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A== + mimic-fn@^2.1.0: version "2.1.0" resolved "https://registry.npmmirror.com/mimic-fn/-/mimic-fn-2.1.0.tgz" @@ -3343,7 +3338,7 @@ prettier-linter-helpers@^1.0.0: dependencies: fast-diff "^1.1.2" -prettier@^2.8.8, prettier@>=2.0.0: +prettier@^2.8.8: version "2.8.8" resolved "https://registry.npmmirror.com/prettier/-/prettier-2.8.8.tgz" integrity sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q== @@ -3407,9 +3402,9 @@ pure-rand@^6.0.0: integrity sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA== qs@^6.11.0: - version "6.14.0" - resolved "https://registry.npmmirror.com/qs/-/qs-6.14.0.tgz" - integrity sha512-YWWTjgABSKcvs/nWBi9PycY/JiPJqOD4JA6o9Sej2AtvSGarXxKC3OQSk4pAarbdQlKAh5D4FCQkJNkW+GAn3w== + version "6.14.2" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.14.2.tgz#b5634cf9d9ad9898e31fba3504e866e8efb6798c" + integrity sha512-V/yCWTTF7VJ9hIh18Ugr2zhJMP01MY7c5kh4J870L7imm6/DIzBsNLTXzMwUA3yZ5b/KBqLx8Kp3uRvd7xSe3Q== dependencies: side-channel "^1.1.0" @@ -3533,7 +3528,7 @@ run-parallel@^1.1.9: dependencies: queue-microtask "^1.2.2" -safe-buffer@~5.2.0, safe-buffer@5.2.1: +safe-buffer@5.2.1, safe-buffer@~5.2.0: version "5.2.1" resolved "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.2.1.tgz" integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== @@ -3555,12 +3550,7 @@ secure-json-parse@^2.4.0, secure-json-parse@^2.7.0: resolved "https://registry.npmmirror.com/secure-json-parse/-/secure-json-parse-2.7.0.tgz" integrity sha512-6aU+Rwsezw7VR8/nyvKTx8QpWH9FrcYiXXlqC4z5d5XQBDRqtbfsRjnwGyqbi3gddNtWHuEk9OANUotL26qKUw== -semver@^6.3.0: - version "6.3.1" - resolved "https://registry.npmmirror.com/semver/-/semver-6.3.1.tgz" - integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== - -semver@^6.3.1: +semver@^6.3.0, semver@^6.3.1: version "6.3.1" resolved "https://registry.npmmirror.com/semver/-/semver-6.3.1.tgz" integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== @@ -3661,14 +3651,6 @@ sonic-boom@^4.0.1: dependencies: atomic-sleep "^1.0.0" -source-map-support@^0.5.12: - version "0.5.21" - resolved "https://registry.npmmirror.com/source-map-support/-/source-map-support-0.5.21.tgz" - integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== - dependencies: - buffer-from "^1.0.0" - source-map "^0.6.0" - source-map-support@0.5.13: version "0.5.13" resolved "https://registry.npmmirror.com/source-map-support/-/source-map-support-0.5.13.tgz" @@ -3677,6 +3659,14 @@ source-map-support@0.5.13: buffer-from "^1.0.0" source-map "^0.6.0" +source-map-support@^0.5.12: + version "0.5.21" + resolved "https://registry.npmmirror.com/source-map-support/-/source-map-support-0.5.21.tgz" + integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== + dependencies: + buffer-from "^1.0.0" + source-map "^0.6.0" + source-map@^0.6.0, source-map@^0.6.1: version "0.6.1" resolved "https://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz" @@ -3713,13 +3703,6 @@ streamroller@^3.1.5: debug "^4.3.4" fs-extra "^8.1.0" -string_decoder@^1.3.0: - version "1.3.0" - resolved "https://registry.npmmirror.com/string_decoder/-/string_decoder-1.3.0.tgz" - integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== - dependencies: - safe-buffer "~5.2.0" - string-length@^4.0.1: version "4.0.2" resolved "https://registry.npmmirror.com/string-length/-/string-length-4.0.2.tgz" @@ -3737,6 +3720,13 @@ string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: is-fullwidth-code-point "^3.0.0" strip-ansi "^6.0.1" +string_decoder@^1.3.0: + version "1.3.0" + resolved "https://registry.npmmirror.com/string_decoder/-/string_decoder-1.3.0.tgz" + integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== + dependencies: + safe-buffer "~5.2.0" + strip-ansi@^6.0.0, strip-ansi@^6.0.1: version "6.0.1" resolved "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-6.0.1.tgz" @@ -3897,7 +3887,7 @@ ts-node-dev@^2.0.0: ts-node "^10.4.0" tsconfig "^7.0.0" -ts-node@^10.4.0, ts-node@>=9.0.0: +ts-node@^10.4.0: version "10.9.2" resolved "https://registry.npmmirror.com/ts-node/-/ts-node-10.9.2.tgz" integrity sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ== @@ -3965,7 +3955,7 @@ type-fest@^4.41.0: resolved "https://registry.npmmirror.com/type-fest/-/type-fest-4.41.0.tgz" integrity sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA== -typescript@*, typescript@^5.0.0, typescript@>=2.7, "typescript@>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta", "typescript@>=4.3 <6": +typescript@^5.0.0: version "5.8.3" resolved "https://registry.npmmirror.com/typescript/-/typescript-5.8.3.tgz" integrity sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ== @@ -3975,11 +3965,6 @@ undici-types@~6.19.2: resolved "https://registry.npmmirror.com/undici-types/-/undici-types-6.19.8.tgz" integrity sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw== -undici-types@~6.21.0: - version "6.21.0" - resolved "https://registry.npmmirror.com/undici-types/-/undici-types-6.21.0.tgz" - integrity sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ== - universalify@^0.1.0: version "0.1.2" resolved "https://registry.npmmirror.com/universalify/-/universalify-0.1.2.tgz"