Browse Source

feat: 基本实现日志内容的展示

zhupei 1 năm trước cách đây
mục cha
commit
59a7d91ba3
36 tập tin đã thay đổi với 976 bổ sung0 xóa
  1. 107 0
      src/components/doc-gen-logs/BtnShowLog.vue
  2. 91 0
      src/components/doc-gen-logs/DocumentGenerateLogs.vue
  3. 200 0
      src/components/doc-gen-logs/LogsBaseInfo.vue
  4. 71 0
      src/components/doc-gen-logs/LogsStepsItem.vue
  5. 19 0
      src/components/doc-gen-logs/LogsStepsList.vue
  6. 91 0
      src/components/doc-gen-logs/README.md
  7. 92 0
      src/components/doc-gen-logs/WorkFlowNodeType.vue
  8. 59 0
      src/components/doc-gen-logs/WorkFlowStatus.vue
  9. 36 0
      src/components/doc-gen-logs/WorkFlowTimeWaste.vue
  10. 5 0
      src/components/doc-gen-logs/node-type/answer.svg
  11. 9 0
      src/components/doc-gen-logs/node-type/assigner.svg
  12. 5 0
      src/components/doc-gen-logs/node-type/code.svg
  13. 9 0
      src/components/doc-gen-logs/node-type/docs-extractor.svg
  14. 5 0
      src/components/doc-gen-logs/node-type/end.svg
  15. 2 0
      src/components/doc-gen-logs/node-type/home.svg
  16. 10 0
      src/components/doc-gen-logs/node-type/http.svg
  17. 5 0
      src/components/doc-gen-logs/node-type/if-else.svg
  18. 5 0
      src/components/doc-gen-logs/node-type/iteration-start.svg
  19. 2 0
      src/components/doc-gen-logs/node-type/iteration.svg
  20. 13 0
      src/components/doc-gen-logs/node-type/jinja.svg
  21. 5 0
      src/components/doc-gen-logs/node-type/knowledge-retrieval.svg
  22. 5 0
      src/components/doc-gen-logs/node-type/list-filter.svg
  23. 2 0
      src/components/doc-gen-logs/node-type/llm.svg
  24. 41 0
      src/components/doc-gen-logs/node-type/node-type-icon-map.js
  25. 28 0
      src/components/doc-gen-logs/node-type/parameter-extractor.svg
  26. 5 0
      src/components/doc-gen-logs/node-type/question-classifier.svg
  27. 19 0
      src/components/doc-gen-logs/node-type/templating-transform.svg
  28. 3 0
      src/components/doc-gen-logs/node-type/time.svg
  29. 5 0
      src/components/doc-gen-logs/node-type/variable-x.svg
  30. 3 0
      src/components/doc-gen-logs/status/alert-fill.svg
  31. 1 0
      src/components/doc-gen-logs/status/arrow-right-s-line.svg
  32. 3 0
      src/components/doc-gen-logs/status/checkbox-circle-fill.svg
  33. 3 0
      src/components/doc-gen-logs/status/error-warning-line.svg
  34. 1 0
      src/components/doc-gen-logs/status/loader-2-line.svg
  35. 1 0
      src/components/doc-gen-logs/status/restart-fill.svg
  36. 15 0
      src/components/doc-gen-logs/status/status-icon-map.js

+ 107 - 0
src/components/doc-gen-logs/BtnShowLog.vue

@@ -0,0 +1,107 @@
+<template>
+    <div>
+        <a-button type="primary" @click="handleClick">查看日志</a-button>
+
+        <a-drawer :width="340" :visible="visible" @ok="handleOk" @cancel="handleCancel" unmountOnClose>
+            <DocumentGenerateLogs :logs_info="example_res" />
+        </a-drawer>
+    </div>
+</template>
+<script setup>
+import { ref, inject, computed, nextTick } from "vue";
+
+import DocumentGenerateLogs from './DocumentGenerateLogs.vue'
+
+const visible = ref(false);
+
+const handleClick = () => {
+    visible.value = true;
+};
+const handleOk = () => {
+    visible.value = false;
+};
+const handleCancel = () => {
+    visible.value = false;
+}
+
+const example_res = {
+    "node_data":
+        [
+            {
+                "title": "开始",
+                "status": "succeeded",
+                "created_at": 1735874530,
+                "finished_at": 1735874530,
+                "node_type": "start",
+                "error": null
+            },
+            {
+                "title": "文档提取器",
+                "status": "succeeded",
+                "created_at": 1735874530,
+                "finished_at": 1735874530,
+                "node_type": "document-extractor",
+                "error": null
+            },
+            {
+                "title": "切片",
+                "status": "succeeded",
+                "created_at": 1735874530,
+                "finished_at": 1735874530,
+                "node_type": "code",
+                "error": null
+            },
+            {
+                "title": "去除冗余",
+                "status": "succeeded",
+                "created_at": 1735874531,
+                "finished_at": 1735874569,
+                "node_type": "llm",
+                "error": null
+            },
+            {
+                "title": "整合为一个text",
+                "status": "succeeded",
+                "created_at": 1735874569,
+                "finished_at": 1735874569,
+                "node_type": "code",
+                "error": null
+            },
+            {
+                "title": "模板转换",
+                "status": "succeeded",
+                "created_at": 1735874569,
+                "finished_at": 1735874569,
+                "node_type": "template-transform",
+                "error": null
+            },
+            {
+                "title": "获取当前时间",
+                "status": "succeeded",
+                "created_at": 1735874569,
+                "finished_at": 1735874569,
+                "node_type": "tool",
+                "error": null
+            },
+            {
+                "title": "HTTP 请求",
+                "status": "failed",
+                "created_at": 1735874569,
+                "finished_at": 1735874573,
+                "node_type": "http-request",
+                "error": "Reached maximum retries (3) for URL http://smartai.com:8195/markdown-to-word/"
+            }
+        ],
+    "total_tokens": 0,
+    "created_at": 1735874531,
+    "finished_at": 1735874573,
+    "status": "failed",
+    "error": "Reached maximum retries (3) for URL http://smartai.com:8195/markdown-to-word/"
+};
+
+</script>
+<style lang="scss" scoped>
+.attention-requred {
+    color: red;
+}
+</style>

+ 91 - 0
src/components/doc-gen-logs/DocumentGenerateLogs.vue

@@ -0,0 +1,91 @@
+<template>
+    <div>
+        <LogsBaseInfo :info="base_info"/>
+
+        <LogsStepsList :list="workflows"/>
+    </div>
+</template>
+<script setup>
+import { ref, inject, computed, nextTick } from "vue";
+
+import LogsBaseInfo from './LogsBaseInfo.vue';
+import LogsStepsList from './LogsStepsList.vue'
+
+const props = defineProps({
+    logs_info: Object
+});
+
+const base_info = computed(() => {
+    const logsInfo = props.logs_info || {};
+
+    return {
+        "total_tokens": logsInfo.total_tokens || 50,  // 花费token数
+        "created_at": logsInfo.created_at, // 开始时间
+        "finished_at": logsInfo.finished_at, // 结束时间
+        "status": logsInfo.status || '', // 工作流状态
+        "error": logsInfo.error || ''   // 错误日志
+    }
+});
+
+/**
+ * 节点的信息
+ */
+const workflows = computed(() => {
+    const logsInfo = props.logs_info || {};
+
+    return logsInfo.node_data || [];
+});
+
+
+const res = {
+    "node_data": [
+        {
+            "title": "去除冗余", // 节点名称
+            "status": "succeeded", // 节点状态
+            "created_at": 1735817337, // 开始时间
+            "finished_at": 1735817337, // 结束时间
+            "error": ""  // 错误日志
+        }
+    ],
+
+    "total_tokens": 100,  // 花费token数
+    "created_at": 1735817402, // 开始时间
+    "finished_at": 1735817402, // 结束时间
+    "status": "succeeded", // 工作流状态
+    "error": "",   // 错误日志
+}
+
+/**
+ * 文档报告相关的记录详情
+ * 日志详情
+ */
+
+const emit = defineEmits(['change']);
+
+// 标题
+const text_title = ref("");
+
+const handleChange = () => {
+    nextTick(() => {
+        emit('change', {
+            title: text_title.value,
+            description: ''
+        });
+    });
+}
+
+/**
+ * 标题数据变化
+ * @param value
+ */
+const handleInputChange = (value) => {
+    text_title.value = value;
+
+    handleChange();
+}
+</script>
+<style lang="scss" scoped>
+.attention-requred {
+    color: red;
+}
+</style>

+ 200 - 0
src/components/doc-gen-logs/LogsBaseInfo.vue

@@ -0,0 +1,200 @@
+<template>
+    <div class="logs-base-info" :class="container_klass">
+        <div class="base-info-content">
+            <div>
+                <div class="st-field-label">状态</div>
+                <div class="st-field-value filed-text-status" :class="status_text_klass">{{info.status}}</div>
+            </div>
+
+            <div>
+                <div class="st-field-label">运行时间</div>
+                <div class="st-field-value">{{ time_display }}</div>
+            </div>
+
+            <div>
+                <div class="st-field-label">总TOKEN数</div>
+                <div class="st-field-value">{{ info.total_tokens }} Tokens</div>
+            </div>
+        </div>
+
+        <div v-if="show_error" class="error-container">{{ info.error }}</div>
+    </div>
+</template>
+<script setup>
+import { ref, inject, computed, nextTick } from "vue";
+
+/**
+ * 文档报告相关的记录详情
+ * 日志详情
+ */
+const props = defineProps({
+    info: Object
+});
+
+
+
+// "total_tokens": 100,  // 花费token数
+// "created_at": 1735817402, // 开始时间
+// "finished_at": 1735817402, // 结束时间
+// "status": "succeeded", // 工作流状态
+// "error": "",   // 错误日志
+
+const show_error = computed(() => {
+    const info = props.info || {};
+
+    if (info.error) {
+        return true;
+    }
+
+    return false;
+});
+
+
+/**
+ * 转换为秒
+ */
+const time_display = computed(() => {
+    const info = props.info || {};
+
+    const dis = info.finished_at - info.created_at;
+
+    const str = Number(dis/1000).toFixed(3);
+
+    return `${str}s`;
+});
+
+const container_klass = computed(() => {
+    const info = props.info || {};
+
+    // return 'status-running'
+    // return 'status-succeeded'
+    // return 'status-partial_succeeded'
+    // return 'status-exception'
+    // return 'status-failed'
+    // return 'status-stopped'
+
+    return `status-${info.status}`;
+});
+
+const status_text_klass = computed(() => {
+    const info = props.info || {};
+
+    // return 'text-running'
+    // return 'text-succeeded'
+    // return 'text-partial_succeeded'
+    // return 'text-exception'
+    // return 'text-failed'
+    // return 'text-stopped'
+
+    return `text-${info.status}`;
+
+});
+
+</script>
+<style lang="scss" scoped>
+.logs-base-info{
+
+
+    border-radius: 10px;
+    padding: 10px;
+    // color: #fff;
+    color: #676f83;
+    font-size: 14px;
+
+    border-width: 2px;
+    border-style: solid;
+}
+.base-info-content{
+    display: flex;
+    justify-content: space-between;
+    align-items: center;
+}
+.status-running {
+    background-color: #155aef;
+}
+
+.status-succeeded {
+    // background-color: #079455;
+    background-color: #ecfdf3;
+    border-color: rgba(23, 178, 106, .8);
+
+}
+
+.status-partial_succeeded {
+    background-color: #079455;
+}
+
+.status-exception {
+    background-color: #f79009;
+}
+
+.status-failed {
+    // background-color: #dc6803;
+    background-color: #fef3f2;
+    border-color: #dc6803;
+}
+
+.status-stopped {
+    background-color: #f79009;
+}
+// ----------------------------------------------
+// ----------------------------------------------
+// ----------------------------------------------
+// ----------------------------------------------
+// ----------------------------------------------
+// ----------------------------------------------
+
+.st-field-label{
+    font-size: 12px;
+}
+.st-field-value{
+    font-weight: 500;
+}
+
+
+// ----------------------------------------------
+// ----------------------------------------------
+// ----------------------------------------------
+// ----------------------------------------------
+// ----------------------------------------------
+// ----------------------------------------------
+.filed-text-status {
+    font-weight: bold;
+}
+.text-running {
+    color: #155aef;
+}
+
+.text-succeeded {
+    color: #079455;
+}
+
+.text-partial_succeeded {
+    color: #079455;
+}
+
+.text-exception {
+    color: #f79009;
+}
+
+.text-failed {
+    // color: #dc6803;
+    color: #dc6803;
+}
+
+.text-stopped {
+    color: #f79009;
+}
+
+// ----------------------------------------------
+// ----------------------------------------------
+// ----------------------------------------------
+// ----------------------------------------------
+// ----------------------------------------------
+// ----------------------------------------------
+
+.error-container{
+    font-size: 12px;
+    color: #d92d20;
+}
+</style>

+ 71 - 0
src/components/doc-gen-logs/LogsStepsItem.vue

@@ -0,0 +1,71 @@
+<template>
+    <div class="logs-steps-item">
+        <div class="step-item-left">
+            <WorkFlowNodeType :node_type="node.node_type" />
+
+            <div class="step-item-title">{{node.title}}</div>
+        </div>
+
+        <div class="step-item-right">
+            <WorkFlowTimeWaste :created="node.created_at" :finished="node.finished_at" class="workflow-timewaste"/>
+
+            <WorkFlowStatus :status="node.status" />
+        </div>
+    </div>
+</template>
+<script setup>
+import { ref, inject, computed, nextTick } from "vue";
+
+import WorkFlowNodeType from './WorkFlowNodeType.vue';
+
+import WorkFlowTimeWaste from './WorkFlowTimeWaste.vue'
+import WorkFlowStatus from './WorkFlowStatus.vue';
+
+/**
+{
+    "title": "去除冗余", // 节点名称
+    "status": "succeeded", // 节点状态
+    "created_at": 1735817337, // 开始时间
+    "finished_at": 1735817337, // 结束时间
+    "error": ""  // 错误日志
+}
+ */
+
+const props = defineProps({
+    node: Object
+});
+
+</script>
+<style lang="scss" scoped>
+.logs-steps-item{
+    display: flex;
+    justify-content: space-between;
+    align-items: center;
+
+    padding: 4px;
+}
+
+.step-item-left{
+    display: flex;
+    justify-content: space-between;
+    align-items: center;
+}
+
+.step-item-right {
+    display: flex;
+    justify-content: space-between;
+    align-items: center;
+}
+
+.step-item-title{
+    font-size: 12px;
+    font-weight: 600;
+    line-height: 16px;
+
+    margin-left: 3px;
+}
+
+.workflow-timewaste{
+    margin-right: 5px;
+}
+</style>

+ 19 - 0
src/components/doc-gen-logs/LogsStepsList.vue

@@ -0,0 +1,19 @@
+<template>
+    <div class="logs-steps-list">
+        <LogsStepsItem v-for="(item, index) of list" :key="item.created_at" :node="item"/>
+    </div>
+</template>
+<script setup>
+import { ref, inject, computed, nextTick } from "vue";
+import LogsStepsItem from './LogsStepsItem.vue'
+
+const props = defineProps({
+    list: Array
+});
+
+</script>
+<style lang="scss" scoped>
+.logs-steps-list{
+
+}
+</style>

+ 91 - 0
src/components/doc-gen-logs/README.md

@@ -0,0 +1,91 @@
+# 状态图标
+
+* https://remixicon.com/icon/checkbox-circle-fill
+* https://remixicon.com/icon/alert-fill
+* https://remixicon.com/icon/error-warning-line
+* https://remixicon.com/icon/arrow-right-s-line
+* https://remixicon.com/icon/loader-2-line
+* https://remixicon.com/icon/restart-fill
+
+
+
+RiAlertFill,
+RiArrowRightSLine,
+RiCheckboxCircleFill,
+RiErrorWarningLine,
+RiLoader2Line,
+RiRestartFill,
+
+
+```jsx
+{nodeInfo.status === 'succeeded' && (
+<RiCheckboxCircleFill className='shrink-0 ml-2 w-3.5 h-3.5 text-text-success' />
+)}
+{nodeInfo.status === 'failed' && (
+<RiErrorWarningLine className='shrink-0 ml-2 w-3.5 h-3.5 text-text-warning' />
+)}
+{nodeInfo.status === 'stopped' && (
+<RiAlertFill className={cn('shrink-0 ml-2 w-4 h-4 text-text-warning-secondary', inMessage && 'w-3.5 h-3.5')} />
+)}
+{nodeInfo.status === 'exception' && (
+<RiAlertFill className={cn('shrink-0 ml-2 w-4 h-4 text-text-warning-secondary', inMessage && 'w-3.5 h-3.5')} />
+)}
+{nodeInfo.status === 'running' && (
+<div className='shrink-0 flex items-center text-text-accent text-[13px] leading-[16px] font-medium'>
+    <span className='mr-2 text-xs font-normal'>Running</span>
+    <RiLoader2Line className='w-3.5 h-3.5 animate-spin' />
+</div>
+)}
+```
+
+info
+
+```jsx
+<div
+    className={cn(
+        'flex items-center gap-1 system-xs-semibold-uppercase',
+        status === 'succeeded' && 'text-util-colors-green-green-600',
+        status === 'partial-succeeded' && 'text-util-colors-green-green-600',
+        status === 'failed' && 'text-util-colors-red-red-600',
+        status === 'stopped' && 'text-util-colors-warning-warning-600',
+        status === 'running' && 'text-util-colors-blue-light-blue-light-600',
+    )}
+>
+    {status === 'running' && (
+        <>
+            <Indicator color={'blue'} />
+            <span>Running</span>
+        </>
+    )}
+    {status === 'succeeded' && (
+        <>
+            <Indicator color={'green'} />
+            <span>SUCCESS</span>
+        </>
+    )}
+    {status === 'partial-succeeded' && (
+        <>
+            <Indicator color={'green'} />
+            <span>PARTIAL SUCCESS</span>
+        </>
+    )}
+    {status === 'exception' && (
+        <>
+            <Indicator color={'yellow'} />
+            <span>EXCEPTION</span>
+        </>
+    )}
+    {status === 'failed' && (
+        <>
+            <Indicator color={'red'} />
+            <span>FAIL</span>
+        </>
+    )}
+    {status === 'stopped' && (
+        <>
+            <Indicator color={'yellow'} />
+            <span>STOP</span>
+        </>
+    )}
+</div>
+```

+ 92 - 0
src/components/doc-gen-logs/WorkFlowNodeType.vue

@@ -0,0 +1,92 @@
+<template>
+    <div class="work-flow-node-type" :class="icon_klass">
+        <img :src="icon_node" />
+    </div>
+</template>
+<script setup>
+import { ref, inject, computed, nextTick } from "vue";
+
+import icon_map from './node-type/node-type-icon-map';
+
+const type_map = {
+    "start": icon_map.home, // #296dff
+    "end": icon_map.end, // #f79009;
+    "template-transform": icon_map.templating_transform, // #2e90fa
+    "code": icon_map.code, // #2e90fa
+    "http-request": icon_map.http, // #875bf7
+    "tool": icon_map.time, // 获取当前时间
+    "llm": icon_map.llm,
+    "iteration": icon_map.iteration, // #06aed4
+    "document-extractor": icon_map.docs_extractor, // #17b26a
+}
+
+/**
+ * 状态值
+ */
+const props = defineProps({
+    /**
+     * 根据节点类型,展示图标
+     */
+    node_type: String
+});
+
+const icon_node = computed(() => {
+    return type_map[props.node_type];
+});
+
+const icon_klass = computed(() => {
+    return `type-${props.node_type}`;
+});
+
+</script>
+<style lang="scss" scoped>
+.work-flow-node-type {
+    color: red;
+    background-color: #aaa;
+
+    width: 20px;
+    height: 20px;
+    border-radius: 5px;
+    display: flex;
+    align-items: center;
+    justify-content: center;
+}
+.work-flow-node-type img{
+    width: 14px;
+    height: 14px;
+}
+
+
+.type-start{
+    background-color: #296dff;
+}
+.type-end{
+    background-color: #f79009;
+}
+.type-template-transform{
+    background-color: #2e90fa;
+}
+.type-code{
+    background-color: #2e90fa;
+}
+.type-http-request{
+    background-color: #875bf7;
+}
+.type-iteration{
+    background-color: #06aed4;
+}
+.type-document-extractor{
+    background-color: #17b26a;
+}
+.type-llm{
+    background-color: #ead1f4;
+}
+.type-tool{
+    width: 20px;
+    height: 20px;
+}
+.type-tool img{
+    width: 20px;
+    height: 20px;
+}
+</style>

+ 59 - 0
src/components/doc-gen-logs/WorkFlowStatus.vue

@@ -0,0 +1,59 @@
+<template>
+    <div class="work-flow-status">
+        <img :src="status_icon" />
+    </div>
+</template>
+<script setup>
+import { ref, inject, computed, nextTick } from "vue";
+
+import icon_map from './status/status-icon-map';
+
+/**
+ * 状态值
+ */
+const props = defineProps({
+    /**
+     * succeeded RiCheckboxCircleFill
+     * failed RiErrorWarningLine
+     * stopped RiAlertFill
+     * exception RiAlertFill
+     * running RiLoader2Line
+     */
+    status: String
+});
+
+    // .text-text-secondary{ color: var(--color-text-secondary) } #079455
+
+	//succeeded .text-text-success{ color: var(--color-text-success) }
+    //failed .text-text-warning{ color: var(--color-text-warning) }    #dc6803
+	//stopped/exception .text-text-warning-secondary{ color: var(--color-text-warning-secondary) } #f79009
+
+
+const status_map = {
+    succeeded: icon_map.checkbox_circle_fill,
+    failed: icon_map.error_warning_line,
+    stopped: icon_map.alert_fill,
+    exception: icon_map.alert_fill,
+    running: icon_map.loader_2_line,
+}
+
+const status_icon = computed(() => {
+    return status_map[props.status];
+});
+
+</script>
+<style lang="scss" scoped>
+.work-flow-status {
+    width: 16px;
+    height: 16px;
+    display: flex;
+    justify-content: center;
+    align-items: center;
+
+    // color: #079455;
+}
+
+.work-flow-status img{
+    width: 14px;
+}
+</style>

+ 36 - 0
src/components/doc-gen-logs/WorkFlowTimeWaste.vue

@@ -0,0 +1,36 @@
+<template>
+    <div class="work-flow-time-waste">
+        {{ time_display }}
+    </div>
+</template>
+<script setup>
+import { ref, inject, computed, nextTick } from "vue";
+
+/**
+ * 节点的时间消耗
+ */
+const props = defineProps({
+    /**
+     * 开始时间
+     */
+    created: Number,
+    /**
+     * 结束时间
+     */
+    finished: Number,
+});
+
+const time_display = computed(() => {
+    const dis = props.finished - props.created;
+
+    const str = Number(dis).toFixed(3);
+
+    return `${str} ms`;
+});
+
+</script>
+<style lang="scss" scoped>
+.work-flow-time-waste {
+    font-size: 12px;
+}
+</style>

+ 5 - 0
src/components/doc-gen-logs/node-type/answer.svg

@@ -0,0 +1,5 @@
+<svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg">
+<g id="icons/answer">
+<path id="Vector (Stroke)" fill-rule="evenodd" clip-rule="evenodd" d="M3.50114 1.67701L10.5011 1.677C11.5079 1.677 12.3241 2.49311 12.3241 3.49992V9.35414C12.3241 10.3609 11.5079 11.177 10.5012 11.1771H8.9954L7.41734 12.4845C7.17339 12.6866 6.81987 12.6856 6.57708 12.4821L5.02026 11.1771H3.50114C2.49436 11.1771 1.67822 10.3608 1.67822 9.35414V3.49993C1.67822 2.49316 2.49437 1.67701 3.50114 1.67701ZM10.5011 2.9895L3.50114 2.98951C3.21924 2.98951 2.99072 3.21803 2.99072 3.49993V9.35414C2.99072 9.63601 3.21926 9.86455 3.50114 9.86455H5.04675C5.33794 9.86455 5.61984 9.96705 5.84302 10.1541L7.00112 11.1249L8.17831 10.1496C8.40069 9.96537 8.68041 9.86455 8.96916 9.86455H10.5011C10.5011 9.86455 10.5011 9.86455 10.5011 9.86455C10.783 9.8645 11.0116 9.63592 11.0116 9.35414V3.49992C11.0116 3.21806 10.7831 2.9895 10.5011 2.9895ZM9.06809 4.93171C9.32437 5.18799 9.32437 5.60351 9.06809 5.85979L7.02642 7.90146C6.77014 8.15774 6.35464 8.15774 6.09835 7.90146L5.22333 7.02646C4.96704 6.77019 4.96704 6.35467 5.22332 6.09839C5.4796 5.8421 5.89511 5.8421 6.15139 6.09837L6.56238 6.50935L8.14001 4.93171C8.3963 4.67543 8.81181 4.67543 9.06809 4.93171Z" fill="white"/>
+</g>
+</svg>

+ 9 - 0
src/components/doc-gen-logs/node-type/assigner.svg

@@ -0,0 +1,9 @@
+<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
+<g id="variable assigner">
+<g id="Vector">
+<path fill-rule="evenodd" clip-rule="evenodd" d="M1.71438 4.42875C1.71438 3.22516 2.68954 2.25 3.89313 2.25C4.30734 2.25 4.64313 2.58579 4.64313 3C4.64313 3.41421 4.30734 3.75 3.89313 3.75C3.51796 3.75 3.21438 4.05359 3.21438 4.42875V7.28563C3.21438 7.48454 3.13536 7.6753 2.9947 7.81596L2.81066 8L2.9947 8.18404C3.13536 8.3247 3.21438 8.51546 3.21438 8.71437V11.5713C3.21438 11.9464 3.51796 12.25 3.89313 12.25C4.30734 12.25 4.64313 12.5858 4.64313 13C4.64313 13.4142 4.30734 13.75 3.89313 13.75C2.68954 13.75 1.71438 12.7748 1.71438 11.5713V9.02503L1.21967 8.53033C1.07902 8.38968 1 8.19891 1 8C1 7.80109 1.07902 7.61032 1.21967 7.46967L1.71438 6.97497V4.42875ZM11.3568 3C11.3568 2.58579 11.6925 2.25 12.1068 2.25C13.3103 2.25 14.2855 3.22516 14.2855 4.42875V6.97497L14.7802 7.46967C14.9209 7.61032 14.9999 7.80109 14.9999 8C14.9999 8.19891 14.9209 8.38968 14.7802 8.53033L14.2855 9.02503V11.5713C14.2855 12.7751 13.3095 13.75 12.1068 13.75C11.6925 13.75 11.3568 13.4142 11.3568 13C11.3568 12.5858 11.6925 12.25 12.1068 12.25C12.4815 12.25 12.7855 11.9462 12.7855 11.5713V8.71437C12.7855 8.51546 12.8645 8.3247 13.0052 8.18404L13.1892 8L13.0052 7.81596C12.8645 7.6753 12.7855 7.48454 12.7855 7.28563V4.42875C12.7855 4.05359 12.4819 3.75 12.1068 3.75C11.6925 3.75 11.3568 3.41421 11.3568 3Z" fill="white"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M5.25 6C5.25 5.58579 5.58579 5.25 6 5.25H10C10.4142 5.25 10.75 5.58579 10.75 6C10.75 6.41421 10.4142 6.75 10 6.75H6C5.58579 6.75 5.25 6.41421 5.25 6Z" fill="white"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M5.25 10C5.25 9.58579 5.58579 9.25 6 9.25H10C10.4142 9.25 10.75 9.58579 10.75 10C10.75 10.4142 10.4142 10.75 10 10.75H6C5.58579 10.75 5.25 10.4142 5.25 10Z" fill="white"/>
+</g>
+</g>
+</svg>

+ 5 - 0
src/components/doc-gen-logs/node-type/code.svg

@@ -0,0 +1,5 @@
+<svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg">
+<g id="icons/code">
+<path id="Vector (Stroke)" fill-rule="evenodd" clip-rule="evenodd" d="M8.32593 1.69675C8.67754 1.78466 8.89132 2.14096 8.80342 2.49257L6.47009 11.8259C6.38218 12.1775 6.02588 12.3913 5.67427 12.3034C5.32265 12.2155 5.10887 11.8592 5.19678 11.5076L7.53011 2.17424C7.61801 1.82263 7.97431 1.60885 8.32593 1.69675ZM3.96414 4.20273C4.22042 4.45901 4.22042 4.87453 3.96413 5.13081L2.45578 6.63914C2.45577 6.63915 2.45578 6.63914 2.45578 6.63914C2.25645 6.83851 2.25643 7.16168 2.45575 7.36103C2.45574 7.36103 2.45576 7.36104 2.45575 7.36103L3.96413 8.86936C4.22041 9.12564 4.22042 9.54115 3.96414 9.79744C3.70787 10.0537 3.29235 10.0537 3.03607 9.79745L1.52769 8.28913C0.815811 7.57721 0.815803 6.42302 1.52766 5.7111L3.03606 4.20272C3.29234 3.94644 3.70786 3.94644 3.96414 4.20273ZM10.0361 4.20273C10.2923 3.94644 10.7078 3.94644 10.9641 4.20272L12.4725 5.71108C13.1843 6.423 13.1844 7.57717 12.4725 8.28909L10.9641 9.79745C10.7078 10.0537 10.2923 10.0537 10.036 9.79744C9.77977 9.54115 9.77978 9.12564 10.0361 8.86936L11.5444 7.36107C11.7437 7.16172 11.7438 6.83854 11.5444 6.63917C11.5444 6.63915 11.5445 6.63918 11.5444 6.63917L10.0361 5.13081C9.77978 4.87453 9.77978 4.45901 10.0361 4.20273Z" fill="white"/>
+</g>
+</svg>

+ 9 - 0
src/components/doc-gen-logs/node-type/docs-extractor.svg

@@ -0,0 +1,9 @@
+<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
+<g id="docs-extractor">
+<g id="Vector">
+<path fill-rule="evenodd" clip-rule="evenodd" d="M2.66663 3.33325C2.66663 2.22869 3.56206 1.33325 4.66663 1.33325H12.6666C13.0348 1.33325 13.3333 1.63173 13.3333 1.99992V13.9999C13.3333 14.3681 13.0348 14.6666 12.6666 14.6666H4.66663C3.56206 14.6666 2.66663 13.7712 2.66663 12.6666V3.33325ZM3.99996 10.7804V3.33325C3.99996 2.96507 4.29844 2.66659 4.66663 2.66659H12V10.6666H4.66663C4.43287 10.6666 4.20848 10.7067 3.99996 10.7804ZM12 11.9999H4.66663C4.29844 11.9999 3.99996 12.2984 3.99996 12.6666C3.99996 13.0348 4.29844 13.3333 4.66663 13.3333H12V11.9999Z" fill="white"/>
+<path d="M8.12296 4.9385C8.18749 4.90624 8.23983 4.85394 8.27203 4.78942L8.70203 3.92954C8.82483 3.68385 9.17543 3.68385 9.29829 3.92954L9.72823 4.78942C9.76049 4.85394 9.81276 4.90624 9.87729 4.9385L10.7372 5.36844C10.9829 5.49128 10.9829 5.84189 10.7372 5.96473L9.87729 6.39467C9.81276 6.42692 9.76049 6.47923 9.72823 6.54375L9.29829 7.40365C9.17543 7.64932 8.82483 7.64932 8.70203 7.40365L8.27203 6.54375C8.23983 6.47923 8.18749 6.42692 8.12296 6.39467L7.26309 5.96473C7.01743 5.84189 7.01743 5.49128 7.26309 5.36844L8.12296 4.9385Z" fill="white"/>
+<path d="M5.71829 7.80752C5.757 7.78819 5.78838 7.75678 5.80773 7.71805L6.15459 7.02438C6.22829 6.87692 6.43865 6.87692 6.51236 7.02438L6.85923 7.71805C6.87856 7.75678 6.90996 7.78819 6.94863 7.80752L7.64236 8.15439C7.78976 8.22805 7.78976 8.43845 7.64236 8.51212L6.94863 8.85898C6.90996 8.87832 6.87856 8.90972 6.85923 8.94845L6.51236 9.64212C6.43865 9.78959 6.22829 9.78959 6.15459 9.64212L5.80773 8.94845C5.78838 8.90972 5.757 8.87832 5.71829 8.85898L5.02458 8.51212C4.87717 8.43845 4.87717 8.22805 5.02458 8.15439L5.71829 7.80752Z" fill="white"/>
+</g>
+</g>
+</svg>

+ 5 - 0
src/components/doc-gen-logs/node-type/end.svg

@@ -0,0 +1,5 @@
+<svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg">
+<g id="icons/end">
+<path id="Vector (Stroke)" fill-rule="evenodd" clip-rule="evenodd" d="M6.67315 1.18094C6.87691 1.0639 7.12769 1.06475 7.33067 1.18315L10.8307 3.22481C11.0323 3.34242 11.1562 3.55826 11.1562 3.79167C11.1562 4.02507 11.0323 4.24091 10.8307 4.35852L7.65625 6.21026V9.91667C7.65625 10.2791 7.36244 10.5729 7 10.5729C6.63756 10.5729 6.34375 10.2791 6.34375 9.91667V5.84577C6.34361 5.83788 6.34361 5.83 6.34375 5.82213V1.75C6.34375 1.51502 6.46939 1.29797 6.67315 1.18094ZM7.65625 4.69078L9.19758 3.79167L7.65625 2.89256V4.69078ZM5.31099 8.25466C5.37977 8.61051 5.14704 8.95473 4.79119 9.0235C3.97285 9.18165 3.32667 9.41764 2.90374 9.67762C2.45323 9.95454 2.40625 10.1564 2.40625 10.2086C2.40625 10.2448 2.42254 10.3508 2.60674 10.5202C2.79151 10.6901 3.09509 10.8732 3.52555 11.0406C4.38229 11.3738 5.61047 11.594 7 11.594C8.38954 11.594 9.61773 11.3738 10.4745 11.0406C10.9049 10.8732 11.2085 10.6901 11.3933 10.5202C11.5775 10.3508 11.5938 10.2448 11.5938 10.2086C11.5938 10.1564 11.5468 9.95454 11.0963 9.67762C10.6733 9.41764 10.0271 9.18165 9.20881 9.0235C8.85296 8.95473 8.62023 8.61051 8.68901 8.25465C8.75778 7.8988 9.102 7.66608 9.45786 7.73485C10.3682 7.91077 11.1803 8.18867 11.7836 8.55947C12.3592 8.91331 12.9062 9.45912 12.9062 10.2086C12.9062 10.7361 12.6287 11.1672 12.2816 11.4864C11.935 11.805 11.4698 12.0618 10.9502 12.2639C9.90679 12.6696 8.50997 12.9065 7 12.9065C5.49004 12.9065 4.09322 12.6696 3.04983 12.2639C2.53023 12.0618 2.06497 11.805 1.7184 11.4864C1.37128 11.1672 1.09375 10.7361 1.09375 10.2086C1.09375 9.45913 1.64077 8.91332 2.21642 8.55947C2.81966 8.18867 3.63181 7.91077 4.54215 7.73485C4.898 7.66608 5.24222 7.8988 5.31099 8.25466Z" fill="white"/>
+</g>
+</svg>

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 2 - 0
src/components/doc-gen-logs/node-type/home.svg


+ 10 - 0
src/components/doc-gen-logs/node-type/http.svg

@@ -0,0 +1,10 @@
+<svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg">
+<g id="icons/http">
+<g id="Vector">
+<path d="M13.0968 4.66675H10.8387V9.18288H11.7419V7.82804H13.0968C13.3362 7.82772 13.5658 7.73245 13.7351 7.56313C13.9044 7.39382 13.9997 7.16426 14 6.92481V5.56997C13.9997 5.33051 13.9045 5.10093 13.7351 4.9316C13.5658 4.76227 13.3362 4.66702 13.0968 4.66675ZM11.7419 6.92481V5.56997H13.0968L13.0972 6.92481H11.7419Z" fill="white"/>
+<path d="M4.06452 5.56997H4.96774V9.18288H5.87097V5.56997H6.77419V4.66675H4.06452V5.56997Z" fill="white"/>
+<path d="M9.93548 4.66675H7.22581V5.56997H8.12903V9.18288H9.03226V5.56997H9.93548V4.66675Z" fill="white"/>
+<path d="M2.25806 4.66675V6.4732H0.903226V4.66675H0V9.18288H0.903226V7.37643H2.25806V9.18288H3.16129V4.66675H2.25806Z" fill="white"/>
+</g>
+</g>
+</svg>

+ 5 - 0
src/components/doc-gen-logs/node-type/if-else.svg

@@ -0,0 +1,5 @@
+<svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg">
+<g id="icons/if-else">
+<path id="Vector (Stroke)" fill-rule="evenodd" clip-rule="evenodd" d="M8.16667 2.98975C7.80423 2.98975 7.51042 2.69593 7.51042 2.3335C7.51042 1.97106 7.80423 1.67725 8.16667 1.67725H11.0833C11.4458 1.67725 11.7396 1.97106 11.7396 2.3335V5.25016C11.7396 5.6126 11.4458 5.90641 11.0833 5.90641C10.7209 5.90641 10.4271 5.6126 10.4271 5.25016V3.91782L7.34474 7.00016L10.4271 10.0825V8.75016C10.4271 8.38773 10.7209 8.09391 11.0833 8.09391C11.4458 8.09391 11.7396 8.38773 11.7396 8.75016V11.6668C11.7396 12.0293 11.4458 12.3231 11.0833 12.3231H8.16667C7.80423 12.3231 7.51042 12.0293 7.51042 11.6668C7.51042 11.3044 7.80423 11.0106 8.16667 11.0106H9.49901L6.14484 7.65641H1.75C1.38756 7.65641 1.09375 7.3626 1.09375 7.00016C1.09375 6.63773 1.38756 6.34391 1.75 6.34391H6.14484L9.49901 2.98975H8.16667Z" fill="white"/>
+</g>
+</svg>

+ 5 - 0
src/components/doc-gen-logs/node-type/iteration-start.svg

@@ -0,0 +1,5 @@
+<svg width="12" height="12" viewBox="0 0 12 12" fill="none" xmlns="http://www.w3.org/2000/svg">
+<g id="icons/block-start">
+<path id="Vector" d="M6.8498 1.72732C6.3379 1.3754 5.6621 1.3754 5.1502 1.72732L2.1502 3.78982C1.74317 4.06965 1.5 4.53193 1.5 5.02588V8.99983C1.5 9.82828 2.17158 10.4998 3 10.4998H4.25C4.52614 10.4998 4.75 10.276 4.75 9.99983V8.24983C4.75 7.55948 5.30965 6.99983 6 6.99983C6.69035 6.99983 7.25 7.55948 7.25 8.24983V9.99983C7.25 10.276 7.47385 10.4998 7.75 10.4998H9C9.82845 10.4998 10.5 9.82828 10.5 8.99983V5.02588C10.5 4.53193 10.2568 4.06965 9.8498 3.78982L6.8498 1.72732Z" fill="white"/>
+</g>
+</svg>

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 2 - 0
src/components/doc-gen-logs/node-type/iteration.svg


+ 13 - 0
src/components/doc-gen-logs/node-type/jinja.svg

@@ -0,0 +1,13 @@
+<svg width="24" height="12" viewBox="0 0 24 12" fill="none" xmlns="http://www.w3.org/2000/svg">
+<g id="Jinja Icon">
+<g id="Vector">
+<path d="M7.46013 5.99982C7.46013 4.87982 7.48013 3.92982 7.53013 3.16982V3.06982L6.13013 3.23982L6.15013 3.32982C6.29013 4.03982 6.36013 4.93982 6.36013 5.99982C6.36013 6.93982 6.33013 7.78982 6.28013 8.51982V8.60982H7.55013V8.51982C7.49013 7.72982 7.46013 6.87982 7.46013 5.99982Z" fill="#667085"/>
+<path d="M3.33016 1.31998C3.38016 2.31998 3.38016 5.13998 3.38016 7.00998V7.77998C3.38016 8.21998 3.35016 8.58998 3.28016 8.85998C3.22016 9.12998 3.11016 9.34998 2.96016 9.52998C2.82016 9.70998 2.62016 9.83998 2.37016 9.92998C2.12016 10.01 1.82016 10.06 1.49016 10.06C1.19016 10.06 0.900156 9.99998 0.620156 9.87998L0.520156 9.83998L0.410156 10.83L0.480156 10.85C0.800156 10.93 1.16016 10.97 1.56016 10.97C2.08016 10.97 2.53016 10.9 2.90016 10.77C3.28016 10.64 3.59016 10.43 3.83016 10.15C4.07016 9.87998 4.25016 9.52998 4.36016 9.13998C4.47016 8.74998 4.53016 8.23998 4.53016 7.64998C4.53016 6.78998 4.59016 3.54998 4.59016 3.17998C4.61016 2.47998 4.63016 1.86998 4.66016 1.31998V1.22998H3.33016V1.31998Z" fill="#667085"/>
+<path d="M7.08021 0.919922C6.82022 0.919922 6.60021 0.999922 6.45021 1.14992C6.30021 1.29992 6.22021 1.47992 6.22021 1.68992C6.22021 1.87992 6.28021 2.04992 6.41021 2.18992C6.54022 2.31992 6.73022 2.38992 6.96022 2.38992C7.23022 2.38992 7.44021 2.30992 7.59021 2.15992C7.74021 1.99992 7.81021 1.81992 7.81021 1.60992C7.81021 1.42992 7.74021 1.25992 7.61021 1.12992C7.48021 0.989922 7.30021 0.919922 7.08021 0.919922Z" fill="#667085"/>
+<path d="M15.6102 3.30981C15.7702 4.07981 15.8502 5.25981 15.8502 6.81981C15.8502 8.26981 15.7902 9.23981 15.6702 9.67981C15.5902 9.96981 15.3802 10.2598 15.0302 10.5198L14.9702 10.5698L15.3502 11.0998H15.4002C16.4302 10.8198 16.9602 10.0598 16.9602 8.83981C16.9602 8.64981 16.9502 8.30981 16.9202 7.80981C16.9002 7.31981 16.8902 6.90981 16.8902 6.59981C16.8902 5.44981 16.9202 4.28981 16.9902 3.15981V3.05981L15.5802 3.21981L15.6002 3.30981H15.6102Z" fill="#667085"/>
+<path d="M14.2901 5.77C14.2901 5.7 14.2901 5.56 14.3001 5.36C14.3001 5.15 14.3101 5.01 14.3101 4.94C14.3101 4.22 14.1101 3.71 13.7201 3.43C13.3401 3.15 12.8001 3 12.1101 3C11.4201 3 10.7901 3.24 10.2001 3.71L10.0901 3.06L8.8501 3.22L8.8701 3.31C9.0501 4.11 9.1401 4.95 9.1401 5.8C9.1401 6.36 9.1101 7.27 9.0401 8.52V8.61H10.3101V8.53C10.2901 7.07 10.2801 5.71 10.2801 4.49C10.7401 4.14 11.2501 3.96 11.7901 3.96C12.2401 3.96 12.5801 4.06 12.8201 4.26C13.0501 4.45 13.1701 4.82 13.1701 5.36C13.1701 6.5 13.1301 7.56 13.0401 8.53V8.62H14.3101V8.54C14.2901 7.35 14.2801 6.42 14.2801 5.79L14.2901 5.77Z" fill="#667085"/>
+<path d="M16.5302 0.919922C16.2702 0.919922 16.0502 0.999922 15.9002 1.14992C15.7502 1.29992 15.6702 1.47992 15.6702 1.68992C15.6702 1.87992 15.7302 2.04992 15.8602 2.18992C15.9902 2.31992 16.1802 2.38992 16.4102 2.38992C16.6702 2.38992 16.8902 2.30992 17.0302 2.15992C17.1802 1.99992 17.2502 1.81992 17.2502 1.60992C17.2502 1.42992 17.1802 1.25992 17.0502 1.12992C16.9202 0.989922 16.7402 0.919922 16.5202 0.919922H16.5302Z" fill="#667085"/>
+<path d="M23.1802 8.51001C23.0702 8.00001 23.0202 7.40001 23.0202 6.73001C23.0202 6.57001 23.0202 6.26001 23.0402 5.83001C23.0602 5.38001 23.0702 5.06001 23.0702 4.88001C23.0702 4.20001 22.8602 3.71001 22.4502 3.43001C22.0402 3.15001 21.4702 3.01001 20.7302 3.01001C19.9402 3.01001 19.2302 3.09001 18.6102 3.25001H18.5602L18.4302 4.20001L18.5502 4.17001C19.1602 4.03001 19.7802 3.96001 20.4102 3.96001C20.9302 3.96001 21.3202 4.03001 21.5702 4.18001C21.8102 4.31001 21.9302 4.59001 21.9302 5.01001C21.9302 5.09001 21.9302 5.16001 21.9302 5.23001C20.5102 5.25001 19.5602 5.44001 19.0302 5.79001C18.4802 6.15001 18.2002 6.63001 18.2002 7.23001C18.2002 7.72001 18.3802 8.10001 18.7402 8.36001C19.0902 8.62001 19.5102 8.75001 19.9902 8.75001C20.8202 8.75001 21.5002 8.55001 22.0102 8.17001C22.0102 8.30001 22.0402 8.44001 22.0802 8.58001L22.1002 8.64001L23.2202 8.60001L23.2002 8.50001L23.1802 8.51001ZM20.2802 6.18001C20.6502 6.08001 21.2002 6.03001 21.9102 6.03001C21.9102 6.45001 21.9202 6.92001 21.9402 7.42001C21.5602 7.69001 21.0502 7.83001 20.4302 7.83001C19.7002 7.83001 19.3502 7.61001 19.3502 7.16001C19.3502 6.68001 19.6602 6.36001 20.2802 6.18001Z" fill="#667085"/>
+</g>
+</g>
+</svg>

+ 5 - 0
src/components/doc-gen-logs/node-type/knowledge-retrieval.svg

@@ -0,0 +1,5 @@
+<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
+<g id="icons/knowledge-retrieval">
+<path id="Vector (Stroke)" fill-rule="evenodd" clip-rule="evenodd" d="M3.78528 2.62834C3.78527 2.62834 3.78528 2.62834 3.78528 2.62834L8 3.56494L12.2147 2.62834C13.5158 2.33921 14.75 3.32924 14.75 4.66206V11.2637C14.75 12.2401 14.0718 13.0855 13.1187 13.2974L8.1627 14.3987C8.05554 14.4225 7.94446 14.4225 7.8373 14.3987L2.88139 13.2974C1.92824 13.0855 1.25 12.2401 1.25 11.2637V4.66206C1.25 3.32925 2.4842 2.33921 3.78528 2.62834ZM7.25 4.93487L3.45988 4.09262C3.09558 4.01166 2.75 4.28887 2.75 4.66206V11.2637C2.75 11.537 2.93986 11.7738 3.20679 11.8331C3.20678 11.8331 3.20681 11.8331 3.20679 11.8331L7.25 12.7316V4.93487ZM8.75 12.7316L12.7932 11.8331C13.0601 11.7738 13.25 11.537 13.25 11.2637V4.66206C13.25 4.28887 12.9044 4.01165 12.5401 4.09262L8.75 4.93487V12.7316Z" fill="white"/>
+</g>
+</svg>

+ 5 - 0
src/components/doc-gen-logs/node-type/list-filter.svg

@@ -0,0 +1,5 @@
+<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
+<g id="filter">
+<path id="Vector" fill-rule="evenodd" clip-rule="evenodd" d="M2 4C2 2.89543 2.89543 2 4 2L12 2C13.1046 2 14 2.89544 14 4V4.78105C14 5.31148 13.7893 5.82019 13.4142 6.19528L10.1953 9.4142C10.0702 9.53925 10 9.70881 10 9.8856V12.8713C10 13.427 9.65528 13.9246 9.13482 14.1198C9.13479 14.1198 9.13476 14.1198 9.13473 14.1198L7.80153 14.6197C6.92984 14.9467 6 14.3022 6 13.3713L6 9.8856C6 9.70883 5.92978 9.53926 5.80474 9.4142C5.80473 9.4142 5.80473 9.4142 5.80472 9.41419L2.58579 6.19526L3.05004 5.73102L2.58579 6.19526C2.21071 5.82019 2 5.31148 2 4.78105V4ZM4 3.33333C3.63181 3.33333 3.33333 3.63181 3.33333 4L3.33333 4.78105C3.33333 4.95786 3.40357 5.12743 3.5286 5.25246L6.74754 8.47139L6.74756 8.47141C7.12262 8.84649 7.33333 9.35518 7.33333 9.8856L7.33333 13.3713L8.66665 12.8713L8.66667 12.8713L8.66667 9.8856C8.66667 9.35518 8.87737 8.84648 9.25246 8.4714L12.4714 5.25246L12.4714 5.25244C12.5964 5.12742 12.6667 4.95787 12.6667 4.78105V4C12.6667 3.6318 12.3682 3.33333 12 3.33333L4 3.33333Z" fill="white"/>
+</g>
+</svg>

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 2 - 0
src/components/doc-gen-logs/node-type/llm.svg


+ 41 - 0
src/components/doc-gen-logs/node-type/node-type-icon-map.js

@@ -0,0 +1,41 @@
+import answer from './answer.svg';
+import assigner from './assigner.svg';
+import code from './code.svg';
+import docs_extractor from './docs-extractor.svg';
+import end from './end.svg';
+import home from './home.svg';
+import http from './http.svg';
+import if_else from './if-else.svg';
+import iteration_start from './iteration-start.svg';
+import iteration from './iteration.svg';
+import jinja from './jinja.svg';
+import knowledge_retrieval from './knowledge-retrieval.svg';
+import list_filter from './list-filter.svg';
+import llm from './llm.svg';
+import parameter_extractor from './parameter-extractor.svg';
+import question_classifier from './question-classifier.svg';
+import templating_transform from './templating-transform.svg';
+import time from './time.svg';
+import variable_x from './variable-x.svg';
+
+export default {
+    answer,
+    assigner,
+    code,
+    docs_extractor,
+    end,
+    home,
+    http,
+    if_else,
+    iteration_start,
+    iteration,
+    jinja,
+    knowledge_retrieval,
+    list_filter,
+    llm,
+    parameter_extractor,
+    question_classifier,
+    templating_transform,
+    time,
+    variable_x,
+}

+ 28 - 0
src/components/doc-gen-logs/node-type/parameter-extractor.svg

@@ -0,0 +1,28 @@
+<svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg">
+<g id="icons/parma-extractor">
+<path id="Vector" d="M7.58398 10.3543C7.58398 10.0322 7.84514 9.771 8.16732 9.771C8.48949 9.771 8.75065 10.0322 8.75065 10.3543C8.75065 10.6765 8.48949 10.9377 8.16732 10.9377C7.84514 10.9377 7.58398 10.6765 7.58398 10.3543Z" fill="white"/>
+<path id="Vector_2" d="M9.625 10.3543C9.625 10.0322 9.88616 9.771 10.2083 9.771C10.5305 9.771 10.7917 10.0322 10.7917 10.3543C10.7917 10.6765 10.5305 10.9377 10.2083 10.9377C9.88616 10.9377 9.625 10.6765 9.625 10.3543Z" fill="white"/>
+<path id="Vector_3" d="M7.58398 3.64583C7.58398 3.32366 7.84514 3.0625 8.16732 3.0625C8.48949 3.0625 8.75065 3.32366 8.75065 3.64583C8.75065 3.968 8.48949 4.22917 8.16732 4.22917C7.84514 4.22917 7.58398 3.968 7.58398 3.64583Z" fill="white"/>
+<path id="Vector_4" d="M7.72852 12.104C7.72852 11.8624 7.9244 11.6665 8.16602 11.6665C8.40763 11.6665 8.60352 11.8624 8.60352 12.104C8.60352 12.3456 8.40763 12.5415 8.16602 12.5415C7.9244 12.5415 7.72852 12.3456 7.72852 12.104Z" fill="white"/>
+<path id="Vector_5" d="M11.375 8.1665C11.375 7.92489 11.5709 7.729 11.8125 7.729C12.0541 7.729 12.25 7.92489 12.25 8.1665C12.25 8.40812 12.0541 8.604 11.8125 8.604C11.5709 8.604 11.375 8.40812 11.375 8.1665Z" fill="white"/>
+<path id="Vector_6" d="M11.375 5.8335C11.375 5.59187 11.5709 5.396 11.8125 5.396C12.0541 5.396 12.25 5.59187 12.25 5.8335C12.25 6.07511 12.0541 6.271 11.8125 6.271C11.5709 6.271 11.375 6.07511 11.375 5.8335Z" fill="white"/>
+<path id="Vector_7" d="M7.72852 1.896C7.72852 1.65437 7.9244 1.4585 8.16602 1.4585C8.40763 1.4585 8.60352 1.65437 8.60352 1.896C8.60352 2.13762 8.40763 2.3335 8.16602 2.3335C7.9244 2.3335 7.72852 2.13762 7.72852 1.896Z" fill="white"/>
+<path id="Vector_8" d="M7.29102 8.1665C7.29102 7.68327 7.68278 7.2915 8.16602 7.2915C8.64925 7.2915 9.04102 7.68327 9.04102 8.1665C9.04102 8.64974 8.64925 9.0415 8.16602 9.0415C7.68278 9.0415 7.29102 8.64974 7.29102 8.1665Z" fill="white"/>
+<path id="Vector_9" d="M7.29102 5.8335C7.29102 5.35025 7.68278 4.9585 8.16602 4.9585C8.64925 4.9585 9.04102 5.35025 9.04102 5.8335C9.04102 6.31673 8.64925 6.7085 8.16602 6.7085C7.68278 6.7085 7.29102 6.31673 7.29102 5.8335Z" fill="white"/>
+<path id="Vector_10" d="M9.625 8.16683C9.625 7.84465 9.88616 7.5835 10.2083 7.5835C10.5305 7.5835 10.7917 7.84465 10.7917 8.16683C10.7917 8.489 10.5305 8.75016 10.2083 8.75016C9.88616 8.75016 9.625 8.489 9.625 8.16683Z" fill="white"/>
+<path id="Vector_11" d="M9.625 5.83333C9.625 5.51116 9.88616 5.25 10.2083 5.25C10.5305 5.25 10.7917 5.51116 10.7917 5.83333C10.7917 6.15551 10.5305 6.41667 10.2083 6.41667C9.88616 6.41667 9.625 6.15551 9.625 5.83333Z" fill="white"/>
+<path id="Vector_12" d="M9.625 3.64583C9.625 3.32366 9.88616 3.0625 10.2083 3.0625C10.5305 3.0625 10.7917 3.32366 10.7917 3.64583C10.7917 3.968 10.5305 4.22917 10.2083 4.22917C9.88616 4.22917 9.625 3.968 9.625 3.64583Z" fill="white"/>
+<path id="Vector_13" d="M6.41667 3.64583C6.41667 3.968 6.15551 4.22917 5.83333 4.22917C5.51117 4.22917 5.25 3.968 5.25 3.64583C5.25 3.32367 5.51117 3.0625 5.83333 3.0625C6.15551 3.0625 6.41667 3.32367 6.41667 3.64583Z" fill="white"/>
+<path id="Vector_14" d="M4.37565 3.64583C4.37565 3.968 4.11448 4.22917 3.79232 4.22917C3.47015 4.22917 3.20898 3.968 3.20898 3.64583C3.20898 3.32367 3.47015 3.0625 3.79232 3.0625C4.11448 3.0625 4.37565 3.32367 4.37565 3.64583Z" fill="white"/>
+<path id="Vector_15" d="M6.41667 10.3543C6.41667 10.6765 6.15551 10.9377 5.83333 10.9377C5.51117 10.9377 5.25 10.6765 5.25 10.3543C5.25 10.0322 5.51117 9.771 5.83333 9.771C6.15551 9.771 6.41667 10.0322 6.41667 10.3543Z" fill="white"/>
+<path id="Vector_16" d="M6.27148 1.896C6.27148 2.13762 6.0756 2.3335 5.83398 2.3335C5.59236 2.3335 5.39648 2.13762 5.39648 1.896C5.39648 1.65437 5.59236 1.4585 5.83398 1.4585C6.0756 1.4585 6.27148 1.65437 6.27148 1.896Z" fill="white"/>
+<path id="Vector_17" d="M2.625 5.8335C2.625 6.07511 2.42912 6.271 2.1875 6.271C1.94588 6.271 1.75 6.07511 1.75 5.8335C1.75 5.59187 1.94588 5.396 2.1875 5.396C2.42912 5.396 2.625 5.59187 2.625 5.8335Z" fill="white"/>
+<path id="Vector_18" d="M2.625 8.1665C2.625 8.40812 2.42912 8.604 2.1875 8.604C1.94588 8.604 1.75 8.40812 1.75 8.1665C1.75 7.92489 1.94588 7.729 2.1875 7.729C2.42912 7.729 2.625 7.92489 2.625 8.1665Z" fill="white"/>
+<path id="Vector_19" d="M6.27148 12.104C6.27148 12.3456 6.0756 12.5415 5.83398 12.5415C5.59236 12.5415 5.39648 12.3456 5.39648 12.104C5.39648 11.8624 5.59236 11.6665 5.83398 11.6665C6.0756 11.6665 6.27148 11.8624 6.27148 12.104Z" fill="white"/>
+<path id="Vector_20" d="M6.70898 5.8335C6.70898 6.31673 6.31722 6.7085 5.83398 6.7085C5.35073 6.7085 4.95898 6.31673 4.95898 5.8335C4.95898 5.35025 5.35073 4.9585 5.83398 4.9585C6.31722 4.9585 6.70898 5.35025 6.70898 5.8335Z" fill="white"/>
+<path id="Vector_21" d="M6.70898 8.1665C6.70898 8.64974 6.31722 9.0415 5.83398 9.0415C5.35073 9.0415 4.95898 8.64974 4.95898 8.1665C4.95898 7.68327 5.35073 7.2915 5.83398 7.2915C6.31722 7.2915 6.70898 7.68327 6.70898 8.1665Z" fill="white"/>
+<path id="Vector_22" d="M4.37565 5.83333C4.37565 6.15551 4.11448 6.41667 3.79232 6.41667C3.47015 6.41667 3.20898 6.15551 3.20898 5.83333C3.20898 5.51117 3.47015 5.25 3.79232 5.25C4.11448 5.25 4.37565 5.51117 4.37565 5.83333Z" fill="white"/>
+<path id="Vector_23" d="M4.37565 8.16683C4.37565 8.489 4.11448 8.75016 3.79232 8.75016C3.47015 8.75016 3.20898 8.489 3.20898 8.16683C3.20898 7.84465 3.47015 7.5835 3.79232 7.5835C4.11448 7.5835 4.37565 7.84465 4.37565 8.16683Z" fill="white"/>
+<path id="Vector_24" d="M4.37565 10.3543C4.37565 10.6765 4.11448 10.9377 3.79232 10.9377C3.47015 10.9377 3.20898 10.6765 3.20898 10.3543C3.20898 10.0322 3.47015 9.771 3.79232 9.771C4.11448 9.771 4.37565 10.0322 4.37565 10.3543Z" fill="white"/>
+</g>
+</svg>

+ 5 - 0
src/components/doc-gen-logs/node-type/question-classifier.svg

@@ -0,0 +1,5 @@
+<svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg">
+<g id="icons/question-classifier">
+<path id="Vector (Stroke)" fill-rule="evenodd" clip-rule="evenodd" d="M6.34379 3.53597C6.34379 2.35003 7.45832 1.47985 8.60885 1.76749L10.9422 2.35082C11.7537 2.55369 12.323 3.28283 12.323 4.1193V9.88081C12.323 10.7173 11.7537 11.4464 10.9422 11.6493L8.60886 12.2326C7.45832 12.5203 6.34379 11.6501 6.34379 10.4641V3.53597ZM8.29052 3.0408C7.96836 2.96026 7.65629 3.20392 7.65629 3.53597V10.4641C7.65629 10.7962 7.96836 11.0399 8.29051 10.9593L10.6238 10.376C10.6238 10.376 10.6238 10.376 10.6238 10.376C10.8511 10.3192 11.0105 10.115 11.0105 9.88081V4.1193C11.0105 3.88509 10.851 3.68093 10.6239 3.62413L8.29052 3.0408ZM4.66671 2.26048C5.02914 2.26048 5.32296 2.5543 5.32296 2.91673V11.0834C5.32296 11.4458 5.02914 11.7397 4.66671 11.7397C4.30427 11.7397 4.01046 11.4458 4.01046 11.0834V2.91673C4.01046 2.5543 4.30427 2.26048 4.66671 2.26048ZM2.33337 2.84382C2.69581 2.84382 2.98962 3.13763 2.98962 3.50007V10.5001C2.98962 10.8625 2.69581 11.1563 2.33337 11.1563C1.97094 11.1563 1.67712 10.8625 1.67712 10.5001V3.50007C1.67712 3.13763 1.97094 2.84382 2.33337 2.84382Z" fill="white"/>
+</g>
+</svg>

+ 19 - 0
src/components/doc-gen-logs/node-type/templating-transform.svg

@@ -0,0 +1,19 @@
+<svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg">
+<g id="icons/templating-transform">
+<g id="Vector">
+<path fill-rule="evenodd" clip-rule="evenodd" d="M6.34375 1.75C6.34375 1.38756 6.63756 1.09375 7 1.09375C10.262 1.09375 12.9062 3.73807 12.9062 7C12.9062 10.262 10.262 12.9062 7 12.9062C6.63756 12.9062 6.34375 12.6124 6.34375 12.25V1.75Z" fill="white"/>
+<path d="M5.54167 3.64583C5.54167 3.968 5.2805 4.22917 4.95833 4.22917C4.63617 4.22917 4.375 3.968 4.375 3.64583C4.375 3.32367 4.63617 3.0625 4.95833 3.0625C5.2805 3.0625 5.54167 3.32367 5.54167 3.64583Z" fill="white"/>
+<path d="M3.5 3.64583C3.5 3.968 3.23883 4.22917 2.91667 4.22917C2.5945 4.22917 2.33333 3.968 2.33333 3.64583C2.33333 3.32367 2.5945 3.0625 2.91667 3.0625C3.23883 3.0625 3.5 3.32367 3.5 3.64583Z" fill="white"/>
+<path d="M5.54167 10.3542C5.54167 10.6763 5.2805 10.9375 4.95833 10.9375C4.63617 10.9375 4.375 10.6763 4.375 10.3542C4.375 10.032 4.63617 9.77083 4.95833 9.77083C5.2805 9.77083 5.54167 10.032 5.54167 10.3542Z" fill="white"/>
+<path d="M5.39583 1.89583C5.39583 2.13746 5.19996 2.33333 4.95833 2.33333C4.71671 2.33333 4.52083 2.13746 4.52083 1.89583C4.52083 1.65421 4.71671 1.45833 4.95833 1.45833C5.19996 1.45833 5.39583 1.65421 5.39583 1.89583Z" fill="white"/>
+<path d="M1.75 5.83333C1.75 6.07495 1.55412 6.27083 1.3125 6.27083C1.07088 6.27083 0.875 6.07495 0.875 5.83333C0.875 5.59171 1.07088 5.39583 1.3125 5.39583C1.55412 5.39583 1.75 5.59171 1.75 5.83333Z" fill="white"/>
+<path d="M1.75 8.16667C1.75 8.40828 1.55412 8.60417 1.3125 8.60417C1.07088 8.60417 0.875 8.40828 0.875 8.16667C0.875 7.92505 1.07088 7.72917 1.3125 7.72917C1.55412 7.72917 1.75 7.92505 1.75 8.16667Z" fill="white"/>
+<path d="M5.39583 12.1042C5.39583 12.3458 5.19996 12.5417 4.95833 12.5417C4.71671 12.5417 4.52083 12.3458 4.52083 12.1042C4.52083 11.8625 4.71671 11.6667 4.95833 11.6667C5.19996 11.6667 5.39583 11.8625 5.39583 12.1042Z" fill="white"/>
+<path d="M5.83333 5.83333C5.83333 6.31657 5.44158 6.70833 4.95833 6.70833C4.47508 6.70833 4.08333 6.31657 4.08333 5.83333C4.08333 5.35008 4.47508 4.95833 4.95833 4.95833C5.44158 4.95833 5.83333 5.35008 5.83333 5.83333Z" fill="white"/>
+<path d="M5.83333 8.16667C5.83333 8.6499 5.44158 9.04167 4.95833 9.04167C4.47508 9.04167 4.08333 8.6499 4.08333 8.16667C4.08333 7.68343 4.47508 7.29167 4.95833 7.29167C5.44158 7.29167 5.83333 7.68343 5.83333 8.16667Z" fill="white"/>
+<path d="M3.5 5.83333C3.5 6.15551 3.23883 6.41667 2.91667 6.41667C2.5945 6.41667 2.33333 6.15551 2.33333 5.83333C2.33333 5.51117 2.5945 5.25 2.91667 5.25C3.23883 5.25 3.5 5.51117 3.5 5.83333Z" fill="white"/>
+<path d="M3.5 8.16667C3.5 8.48884 3.23883 8.75 2.91667 8.75C2.5945 8.75 2.33333 8.48884 2.33333 8.16667C2.33333 7.84449 2.5945 7.58333 2.91667 7.58333C3.23883 7.58333 3.5 7.84449 3.5 8.16667Z" fill="white"/>
+<path d="M3.5 10.3542C3.5 10.6763 3.23883 10.9375 2.91667 10.9375C2.5945 10.9375 2.33333 10.6763 2.33333 10.3542C2.33333 10.032 2.5945 9.77083 2.91667 9.77083C3.23883 9.77083 3.5 10.032 3.5 10.3542Z" fill="white"/>
+</g>
+</g>
+</svg>

+ 3 - 0
src/components/doc-gen-logs/node-type/time.svg

@@ -0,0 +1,3 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="none">
+  <path fill-rule="evenodd" clip-rule="evenodd" d="M0.666992 8.00008C0.666992 3.94999 3.95024 0.666748 8.00033 0.666748C12.0504 0.666748 15.3337 3.94999 15.3337 8.00008C15.3337 12.0502 12.0504 15.3334 8.00033 15.3334C3.95024 15.3334 0.666992 12.0502 0.666992 8.00008ZM8.66699 4.00008C8.66699 3.63189 8.36852 3.33341 8.00033 3.33341C7.63213 3.33341 7.33366 3.63189 7.33366 4.00008V8.00008C7.33366 8.2526 7.47633 8.48344 7.70218 8.59637L10.3688 9.9297C10.6982 10.0944 11.0986 9.96088 11.2633 9.63156C11.4279 9.30224 11.2945 8.90179 10.9651 8.73713L8.66699 7.58806V4.00008Z" fill="#EC4A0A"/>
+</svg>

+ 5 - 0
src/components/doc-gen-logs/node-type/variable-x.svg

@@ -0,0 +1,5 @@
+<svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg">
+<g id="icons/variable-x">
+<path id="Icon (Stroke)" fill-rule="evenodd" clip-rule="evenodd" d="M0.714375 3.42875C0.714375 2.22516 1.68954 1.25 2.89313 1.25C3.30734 1.25 3.64313 1.58579 3.64313 2C3.64313 2.41421 3.30734 2.75 2.89313 2.75C2.51796 2.75 2.21438 3.05359 2.21438 3.42875V6.28563C2.21438 6.48454 2.13536 6.6753 1.9947 6.81596L1.81066 7L1.9947 7.18404C2.13536 7.3247 2.21438 7.51546 2.21438 7.71437V10.5713C2.21438 10.9464 2.51796 11.25 2.89313 11.25C3.30734 11.25 3.64313 11.5858 3.64313 12C3.64313 12.4142 3.30734 12.75 2.89313 12.75C1.68954 12.75 0.714375 11.7748 0.714375 10.5713V8.02503L0.21967 7.53033C0.0790176 7.38968 0 7.19891 0 7C0 6.80109 0.0790176 6.61032 0.21967 6.46967L0.714375 5.97497V3.42875ZM10.3568 2C10.3568 1.58579 10.6925 1.25 11.1068 1.25C12.3103 1.25 13.2855 2.22516 13.2855 3.42875V5.97497L13.7802 6.46967C13.9209 6.61032 13.9999 6.80109 13.9999 7C13.9999 7.19891 13.9209 7.38968 13.7802 7.53033L13.2855 8.02503V10.5713C13.2855 11.7751 12.3095 12.75 11.1068 12.75C10.6925 12.75 10.3568 12.4142 10.3568 12C10.3568 11.5858 10.6925 11.25 11.1068 11.25C11.4815 11.25 11.7855 10.9462 11.7855 10.5713V7.71437C11.7855 7.51546 11.8645 7.3247 12.0052 7.18404L12.1892 7L12.0052 6.81596C11.8645 6.6753 11.7855 6.48454 11.7855 6.28563V3.42875C11.7855 3.05359 11.4819 2.75 11.1068 2.75C10.6925 2.75 10.3568 2.41421 10.3568 2ZM4.59467 4.59467C4.88756 4.30178 5.36244 4.30178 5.65533 4.59467L7 5.93934L8.34467 4.59467C8.63756 4.30178 9.11244 4.30178 9.40533 4.59467C9.69822 4.88756 9.69822 5.36244 9.40533 5.65533L8.06066 7L9.40533 8.34467C9.69822 8.63756 9.69822 9.11244 9.40533 9.40533C9.11244 9.69822 8.63756 9.69822 8.34467 9.40533L7 8.06066L5.65533 9.40533C5.36244 9.69822 4.88756 9.69822 4.59467 9.40533C4.30178 9.11244 4.30178 8.63756 4.59467 8.34467L5.93934 7L4.59467 5.65533C4.30178 5.36244 4.30178 4.88756 4.59467 4.59467Z" fill="white"/>
+</g>
+</svg>

+ 3 - 0
src/components/doc-gen-logs/status/alert-fill.svg

@@ -0,0 +1,3 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="#f79009">
+    <path d="M12.8659 3.00017L22.3922 19.5002C22.6684 19.9785 22.5045 20.5901 22.0262 20.8662C21.8742 20.954 21.7017 21.0002 21.5262 21.0002H2.47363C1.92135 21.0002 1.47363 20.5525 1.47363 20.0002C1.47363 19.8246 1.51984 19.6522 1.60761 19.5002L11.1339 3.00017C11.41 2.52187 12.0216 2.358 12.4999 2.63414C12.6519 2.72191 12.7782 2.84815 12.8659 3.00017ZM10.9999 16.0002V18.0002H12.9999V16.0002H10.9999ZM10.9999 9.00017V14.0002H12.9999V9.00017H10.9999Z"></path>
+</svg>

+ 1 - 0
src/components/doc-gen-logs/status/arrow-right-s-line.svg

@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor"><path d="M13.1717 12.0007L8.22192 7.05093L9.63614 5.63672L16.0001 12.0007L9.63614 18.3646L8.22192 16.9504L13.1717 12.0007Z"></path></svg>

+ 3 - 0
src/components/doc-gen-logs/status/checkbox-circle-fill.svg

@@ -0,0 +1,3 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="#079455">
+    <path d="M12 22C17.5228 22 22 17.5228 22 12C22 6.47715 17.5228 2 12 2C6.47715 2 2 6.47715 2 12C2 17.5228 6.47715 22 12 22ZM17.4571 9.45711L11 15.9142L6.79289 11.7071L8.20711 10.2929L11 13.0858L16.0429 8.04289L17.4571 9.45711Z"></path>
+</svg>

+ 3 - 0
src/components/doc-gen-logs/status/error-warning-line.svg

@@ -0,0 +1,3 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="#dc6803">
+    <path d="M12 22C6.47715 22 2 17.5228 2 12C2 6.47715 6.47715 2 12 2C17.5228 2 22 6.47715 22 12C22 17.5228 17.5228 22 12 22ZM12 20C16.4183 20 20 16.4183 20 12C20 7.58172 16.4183 4 12 4C7.58172 4 4 7.58172 4 12C4 16.4183 7.58172 20 12 20ZM11 15H13V17H11V15ZM11 7H13V13H11V7Z"></path>
+</svg>

+ 1 - 0
src/components/doc-gen-logs/status/loader-2-line.svg

@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor"><path d="M12 2C12.5523 2 13 2.44772 13 3V6C13 6.55228 12.5523 7 12 7C11.4477 7 11 6.55228 11 6V3C11 2.44772 11.4477 2 12 2ZM12 17C12.5523 17 13 17.4477 13 18V21C13 21.5523 12.5523 22 12 22C11.4477 22 11 21.5523 11 21V18C11 17.4477 11.4477 17 12 17ZM22 12C22 12.5523 21.5523 13 21 13H18C17.4477 13 17 12.5523 17 12C17 11.4477 17.4477 11 18 11H21C21.5523 11 22 11.4477 22 12ZM7 12C7 12.5523 6.55228 13 6 13H3C2.44772 13 2 12.5523 2 12C2 11.4477 2.44772 11 3 11H6C6.55228 11 7 11.4477 7 12ZM19.0711 19.0711C18.6805 19.4616 18.0474 19.4616 17.6569 19.0711L15.5355 16.9497C15.145 16.5592 15.145 15.9261 15.5355 15.5355C15.9261 15.145 16.5592 15.145 16.9497 15.5355L19.0711 17.6569C19.4616 18.0474 19.4616 18.6805 19.0711 19.0711ZM8.46447 8.46447C8.07394 8.85499 7.44078 8.85499 7.05025 8.46447L4.92893 6.34315C4.53841 5.95262 4.53841 5.31946 4.92893 4.92893C5.31946 4.53841 5.95262 4.53841 6.34315 4.92893L8.46447 7.05025C8.85499 7.44078 8.85499 8.07394 8.46447 8.46447ZM4.92893 19.0711C4.53841 18.6805 4.53841 18.0474 4.92893 17.6569L7.05025 15.5355C7.44078 15.145 8.07394 15.145 8.46447 15.5355C8.85499 15.9261 8.85499 16.5592 8.46447 16.9497L6.34315 19.0711C5.95262 19.4616 5.31946 19.4616 4.92893 19.0711ZM15.5355 8.46447C15.145 8.07394 15.145 7.44078 15.5355 7.05025L17.6569 4.92893C18.0474 4.53841 18.6805 4.53841 19.0711 4.92893C19.4616 5.31946 19.4616 5.95262 19.0711 6.34315L16.9497 8.46447C16.5592 8.85499 15.9261 8.85499 15.5355 8.46447Z"></path></svg>

+ 1 - 0
src/components/doc-gen-logs/status/restart-fill.svg

@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor"><path d="M12 22C6.47715 22 2 17.5228 2 12C2 6.47715 6.47715 2 12 2C17.5228 2 22 6.47715 22 12C22 17.5228 17.5228 22 12 22ZM16.8201 17.0761C18.1628 15.8007 19 13.9981 19 12C19 8.13401 15.866 5 12 5C8.13401 5 5 8.13401 5 12C5 15.866 8.13401 19 12 19C13.0609 19 14.0666 18.764 14.9676 18.3417L13.9928 16.5871C13.3823 16.8527 12.7083 17 12 17C9.23858 17 7 14.7614 7 12C7 9.23858 9.23858 7 12 7C14.7614 7 17 9.23858 17 12H14L16.8201 17.0761Z"></path></svg>

+ 15 - 0
src/components/doc-gen-logs/status/status-icon-map.js

@@ -0,0 +1,15 @@
+import alert_fill from './alert-fill.svg'
+import arrow_right_s_line from './arrow-right-s-line.svg'
+import checkbox_circle_fill from './checkbox-circle-fill.svg'
+import error_warning_line from './error-warning-line.svg'
+import loader_2_line from './loader-2-line.svg'
+import restart_fill from './restart-fill.svg'
+
+export default {
+    alert_fill,
+    arrow_right_s_line,
+    checkbox_circle_fill,
+    error_warning_line,
+    loader_2_line,
+    restart_fill,
+}

Một số tệp đã không được hiển thị bởi vì quá nhiều tập tin thay đổi trong này khác