优化页面

This commit is contained in:
pengxiaolong
2025-06-09 23:02:05 +08:00
parent c5042d08c3
commit 8c70c2c850
605 changed files with 661 additions and 945 deletions

File diff suppressed because one or more lines are too long

View File

@@ -1 +1 @@
{"version":3,"file":"index.js","sources":["TUIKit/components/TUIConversation/conversation-header/index.vue","../../HBuilderX/plugins/uniapp-cli-vite/uniComponent:/RDov6aG555uuL3RrLW1pbmktcHJvZ3JhbS9UVUlLaXQvY29tcG9uZW50cy9UVUlDb252ZXJzYXRpb24vY29udmVyc2F0aW9uLWhlYWRlci9pbmRleC52dWU"],"sourcesContent":["<template>\n <div\n :ref=\"convHeaderRef\"\n class=\"tui-conversation-header\"\n >\n <ul\n v-if=\"menuList.length > 0\"\n class=\"list\"\n >\n <li\n v-for=\"(item, index) in menuList\"\n :key=\"index\"\n class=\"list-item\"\n >\n <main\n class=\"tui-conversation-header-item\"\n @click.stop=\"handleMenu(item)\"\n >\n <Icon\n v-if=\"item.icon && !item.data.children\"\n class=\"tui-conversation-header-item-icon\"\n :file=\"item.icon\"\n />\n <i\n v-else\n class=\"plus\"\n />\n <h1 class=\"tui-conversation-header-item-title\">\n {{ item.text }}\n </h1>\n </main>\n </li>\n </ul>\n <ul\n v-if=\"showChildren.length > 0\"\n class=\"tui-conversation-header-children list\"\n >\n <li\n v-for=\"(childrenItem, childrenIndex) in showChildren\"\n :key=\"childrenIndex\"\n class=\"list-item\"\n >\n <main\n class=\"tui-conversation-header-item\"\n @click=\"handleMenu(childrenItem)\"\n >\n <Icon\n v-if=\"childrenItem.icon\"\n class=\"tui-conversation-header-item-icon\"\n :file=\"childrenItem.icon\"\n />\n <h1 class=\"tui-conversation-header-item-title\">\n {{ childrenItem.text }}\n </h1>\n </main>\n </li>\n </ul>\n </div>\n</template>\n<script lang=\"ts\" setup>\nimport { computed, ref, onMounted } from '../../../adapter-vue';\nimport Icon from '../../common/Icon.vue';\nimport Server, { IMenuItem } from './server';\n\nconst showChildren = ref<Array<IMenuItem>>([]);\nconst convHeaderRef = ref<HTMLElement | undefined>();\n\nconst menuList = computed(() => {\n return Server.getInstance().getMenu();\n});\n\nonMounted(() => {\n showChildren.value = [];\n});\n\nconst handleMenu = (item: IMenuItem) => {\n const { data: { children }, listener = { onClicked: () => {} } } = item;\n if (children) {\n showChildren.value = showChildren.value.length > 0 ? [] : children;\n } else {\n listener.onClicked(item);\n closeChildren();\n }\n};\n\nconst closeChildren = () => {\n showChildren.value = [];\n};\n\ndefineExpose({\n closeChildren,\n});\n\n</script>\n\n<style lang=\"scss\" scoped src=\"../style/index.scss\"></style>\n","import Component from 'D:/项目/tk-mini-program/TUIKit/components/TUIConversation/conversation-header/index.vue'\nwx.createComponent(Component)"],"names":["ref","computed","Server","onMounted"],"mappings":";;;;;;;AA6DA,MAAA,OAAiB,MAAA;;;;AAGX,UAAA,eAAeA,kBAAsB,CAAA,CAAE;AAC7C,UAAM,gBAAgBA,cAAAA;AAEhB,UAAA,WAAWC,cAAAA,SAAS,MAAM;AACvB,aAAAC,qFAAO,cAAc;IAAQ,CACrC;AAEDC,kBAAAA,UAAU,MAAM;AACd,mBAAa,QAAQ;IAAC,CACvB;AAEK,UAAA,aAAa,CAAC,SAAoB;AAChC,YAAA,EAAE,MAAM,EAAE,YAAY,WAAW,EAAE,WAAW,MAAM;AAAA,MAAA,QAAS;AACnE,UAAI,UAAU;AACZ,qBAAa,QAAQ,aAAa,MAAM,SAAS,IAAI,CAAK,IAAA;AAAA,MAAA,OACrD;AACL,iBAAS,UAAU,IAAI;AACT;MAChB;AAAA,IAAA;AAGF,UAAM,gBAAgB,MAAM;AAC1B,mBAAa,QAAQ;IAAC;AAGX,aAAA;AAAA,MACX;AAAA,IAAA,CACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC1FD,GAAG,gBAAgB,SAAS;"}
{"version":3,"file":"index.js","sources":["TUIKit/components/TUIConversation/conversation-header/index.vue","../../HBuilderX/plugins/uniapp-cli-vite/uniComponent:/RDov6aG555uuL3RrLW1pbmktcHJvZ3JhbS9UVUlLaXQvY29tcG9uZW50cy9UVUlDb252ZXJzYXRpb24vY29udmVyc2F0aW9uLWhlYWRlci9pbmRleC52dWU"],"sourcesContent":["<template>\r\n <div\r\n :ref=\"convHeaderRef\"\r\n class=\"tui-conversation-header\"\r\n >\r\n <ul\r\n v-if=\"menuList.length > 0\"\r\n class=\"list\"\r\n >\r\n <li\r\n v-for=\"(item, index) in menuList\"\r\n :key=\"index\"\r\n class=\"list-item\"\r\n >\r\n <main\r\n class=\"tui-conversation-header-item\"\r\n @click.stop=\"handleMenu(item)\"\r\n >\r\n <Icon\r\n v-if=\"item.icon && !item.data.children\"\r\n class=\"tui-conversation-header-item-icon\"\r\n :file=\"item.icon\"\r\n />\r\n <i\r\n v-else\r\n class=\"plus\"\r\n />\r\n <h1 class=\"tui-conversation-header-item-title\">\r\n {{ item.text }}\r\n </h1>\r\n </main>\r\n </li>\r\n </ul>\r\n <ul\r\n v-if=\"showChildren.length > 0\"\r\n class=\"tui-conversation-header-children list\"\r\n >\r\n <li\r\n v-for=\"(childrenItem, childrenIndex) in showChildren\"\r\n :key=\"childrenIndex\"\r\n class=\"list-item\"\r\n >\r\n <main\r\n class=\"tui-conversation-header-item\"\r\n @click=\"handleMenu(childrenItem)\"\r\n >\r\n <Icon\r\n v-if=\"childrenItem.icon\"\r\n class=\"tui-conversation-header-item-icon\"\r\n :file=\"childrenItem.icon\"\r\n />\r\n <h1 class=\"tui-conversation-header-item-title\">\r\n {{ childrenItem.text }}\r\n </h1>\r\n </main>\r\n </li>\r\n </ul>\r\n </div>\r\n</template>\r\n<script lang=\"ts\" setup>\r\nimport { computed, ref, onMounted } from '../../../adapter-vue';\r\nimport Icon from '../../common/Icon.vue';\r\nimport Server, { IMenuItem } from './server';\r\n\r\nconst showChildren = ref<Array<IMenuItem>>([]);\r\nconst convHeaderRef = ref<HTMLElement | undefined>();\r\n\r\nconst menuList = computed(() => {\r\n return Server.getInstance().getMenu();\r\n});\r\n\r\nonMounted(() => {\r\n showChildren.value = [];\r\n});\r\n\r\nconst handleMenu = (item: IMenuItem) => {\r\n const { data: { children }, listener = { onClicked: () => {} } } = item;\r\n if (children) {\r\n showChildren.value = showChildren.value.length > 0 ? [] : children;\r\n } else {\r\n listener.onClicked(item);\r\n closeChildren();\r\n }\r\n};\r\n\r\nconst closeChildren = () => {\r\n showChildren.value = [];\r\n};\r\n\r\ndefineExpose({\r\n closeChildren,\r\n});\r\n\r\n</script>\r\n\r\n<style lang=\"scss\" scoped src=\"../style/index.scss\"></style>\r\n","import Component from 'D:/项目/tk-mini-program/TUIKit/components/TUIConversation/conversation-header/index.vue'\nwx.createComponent(Component)"],"names":["ref","computed","Server","onMounted"],"mappings":";;;;;;;AA6DA,MAAA,OAAiB,MAAA;;;;AAGX,UAAA,eAAeA,kBAAsB,CAAA,CAAE;AAC7C,UAAM,gBAAgBA,cAAAA;AAEhB,UAAA,WAAWC,cAAAA,SAAS,MAAM;AACvB,aAAAC,qFAAO,cAAc;IAAQ,CACrC;AAEDC,kBAAAA,UAAU,MAAM;AACd,mBAAa,QAAQ;IAAC,CACvB;AAEK,UAAA,aAAa,CAAC,SAAoB;AAChC,YAAA,EAAE,MAAM,EAAE,YAAY,WAAW,EAAE,WAAW,MAAM;AAAA,MAAA,QAAS;AACnE,UAAI,UAAU;AACZ,qBAAa,QAAQ,aAAa,MAAM,SAAS,IAAI,CAAK,IAAA;AAAA,MAAA,OACrD;AACL,iBAAS,UAAU,IAAI;AACT;MAChB;AAAA,IAAA;AAGF,UAAM,gBAAgB,MAAM;AAC1B,mBAAa,QAAQ;IAAC;AAGX,aAAA;AAAA,MACX;AAAA,IAAA,CACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC1FD,GAAG,gBAAgB,SAAS;"}

View File

@@ -1 +1 @@
{"version":3,"file":"server.js","sources":["TUIKit/components/TUIConversation/conversation-header/server.ts"],"sourcesContent":["import TUICore, { TUIConstants } from '@tencentcloud/tui-core';\nimport { TUITranslateService } from '@tencentcloud/chat-uikit-engine';\nimport { isPC } from '../../../utils/env';\nimport createGroup from '../../../assets/icon/start-group.svg';\nimport C2C from '../../../assets/icon/icon-c2c.svg';\nimport { CONV_CREATE_TYPE } from '../../../constant';\n\nexport interface IMenuItem {\n icon?: string;\n text: string;\n data: {\n name: string;\n children?: any[];\n };\n listener?: {\n onClicked: (...args: any[]) => void;\n };\n}\n\nexport default class ConversationHeaderServer {\n static instance: ConversationHeaderServer;\n\n static getInstance(): ConversationHeaderServer {\n if (!ConversationHeaderServer.instance) {\n ConversationHeaderServer.instance = new ConversationHeaderServer();\n }\n return ConversationHeaderServer.instance;\n }\n\n public getMenu(): any[] {\n const list = this.generateMenuList();\n if (!isPC && list.length > 0) {\n return [{\n text: TUITranslateService.t('TUIConversation.发起会话'),\n data: {\n name: 'all',\n children: list,\n },\n }];\n }\n return list;\n }\n\n private generateMenuList(): any[] {\n const list = [\n {\n icon: C2C,\n text: TUITranslateService.t('TUIConversation.发起单聊'),\n data: {\n name: CONV_CREATE_TYPE.TYPEC2C,\n },\n listener: {\n onClicked: this.createConversation.bind(this),\n },\n },\n {\n icon: createGroup,\n text: TUITranslateService.t('TUIConversation.发起群聊'),\n data: {\n name: CONV_CREATE_TYPE.TYPEGROUP,\n },\n listener: {\n onClicked: this.createConversation.bind(this),\n },\n },\n ];\n return list;\n }\n\n private createConversation(item: IMenuItem) {\n // Create a conversation and notify conversationServer via TUICore.callService\n TUICore.callService({\n serviceName: TUIConstants.TUIConversation.SERVICE.NAME,\n method: TUIConstants.TUIConversation.SERVICE.METHOD.CREATE_CONVERSATION,\n params: item,\n });\n }\n}\n"],"names":["isPC","TUITranslateService","C2C","CONV_CREATE_TYPE","createGroup","TUICore","TUIConstants"],"mappings":";;;;;AAmBA,MAAqB,yBAAyB;AAAA,EAG5C,OAAO,cAAwC;AACzC,QAAA,CAAC,yBAAyB,UAAU;AACb,+BAAA,WAAW,IAAI;IAC1C;AACA,WAAO,yBAAyB;AAAA,EAClC;AAAA,EAEO,UAAiB;AAChB,UAAA,OAAO,KAAK;AAClB,QAAI,CAACA,iBAAA,QAAQ,KAAK,SAAS,GAAG;AAC5B,aAAO,CAAC;AAAA,QACN,MAAMC,cAAAA,GAAoB,EAAE,sBAAsB;AAAA,QAClD,MAAM;AAAA,UACJ,MAAM;AAAA,UACN,UAAU;AAAA,QACZ;AAAA,MAAA,CACD;AAAA,IACH;AACO,WAAA;AAAA,EACT;AAAA,EAEQ,mBAA0B;AAChC,UAAM,OAAO;AAAA,MACX;AAAA,QACE,MAAMC,cAAA;AAAA,QACN,MAAMD,cAAAA,GAAoB,EAAE,sBAAsB;AAAA,QAClD,MAAM;AAAA,UACJ,MAAME,gBAAiB,iBAAA;AAAA,QACzB;AAAA,QACA,UAAU;AAAA,UACR,WAAW,KAAK,mBAAmB,KAAK,IAAI;AAAA,QAC9C;AAAA,MACF;AAAA,MACA;AAAA,QACE,MAAMC,cAAA;AAAA,QACN,MAAMH,cAAAA,GAAoB,EAAE,sBAAsB;AAAA,QAClD,MAAM;AAAA,UACJ,MAAME,gBAAiB,iBAAA;AAAA,QACzB;AAAA,QACA,UAAU;AAAA,UACR,WAAW,KAAK,mBAAmB,KAAK,IAAI;AAAA,QAC9C;AAAA,MACF;AAAA,IAAA;AAEK,WAAA;AAAA,EACT;AAAA,EAEQ,mBAAmB,MAAiB;AAE1CE,kBAAAA,EAAQ,YAAY;AAAA,MAClB,aAAaC,cAAa,EAAA,gBAAgB,QAAQ;AAAA,MAClD,QAAQA,cAAAA,EAAa,gBAAgB,QAAQ,OAAO;AAAA,MACpD,QAAQ;AAAA,IAAA,CACT;AAAA,EACH;AACF;;"}
{"version":3,"file":"server.js","sources":["TUIKit/components/TUIConversation/conversation-header/server.ts"],"sourcesContent":["import TUICore, { TUIConstants } from '@tencentcloud/tui-core';\r\nimport { TUITranslateService } from '@tencentcloud/chat-uikit-engine';\r\nimport { isPC } from '../../../utils/env';\r\nimport createGroup from '../../../assets/icon/start-group.svg';\r\nimport C2C from '../../../assets/icon/icon-c2c.svg';\r\nimport { CONV_CREATE_TYPE } from '../../../constant';\r\n\r\nexport interface IMenuItem {\r\n icon?: string;\r\n text: string;\r\n data: {\r\n name: string;\r\n children?: any[];\r\n };\r\n listener?: {\r\n onClicked: (...args: any[]) => void;\r\n };\r\n}\r\n\r\nexport default class ConversationHeaderServer {\r\n static instance: ConversationHeaderServer;\r\n\r\n static getInstance(): ConversationHeaderServer {\r\n if (!ConversationHeaderServer.instance) {\r\n ConversationHeaderServer.instance = new ConversationHeaderServer();\r\n }\r\n return ConversationHeaderServer.instance;\r\n }\r\n\r\n public getMenu(): any[] {\r\n const list = this.generateMenuList();\r\n if (!isPC && list.length > 0) {\r\n return [{\r\n text: TUITranslateService.t('TUIConversation.发起会话'),\r\n data: {\r\n name: 'all',\r\n children: list,\r\n },\r\n }];\r\n }\r\n return list;\r\n }\r\n\r\n private generateMenuList(): any[] {\r\n const list = [\r\n {\r\n icon: C2C,\r\n text: TUITranslateService.t('TUIConversation.发起单聊'),\r\n data: {\r\n name: CONV_CREATE_TYPE.TYPEC2C,\r\n },\r\n listener: {\r\n onClicked: this.createConversation.bind(this),\r\n },\r\n },\r\n {\r\n icon: createGroup,\r\n text: TUITranslateService.t('TUIConversation.发起群聊'),\r\n data: {\r\n name: CONV_CREATE_TYPE.TYPEGROUP,\r\n },\r\n listener: {\r\n onClicked: this.createConversation.bind(this),\r\n },\r\n },\r\n ];\r\n return list;\r\n }\r\n\r\n private createConversation(item: IMenuItem) {\r\n // Create a conversation and notify conversationServer via TUICore.callService\r\n TUICore.callService({\r\n serviceName: TUIConstants.TUIConversation.SERVICE.NAME,\r\n method: TUIConstants.TUIConversation.SERVICE.METHOD.CREATE_CONVERSATION,\r\n params: item,\r\n });\r\n }\r\n}\r\n"],"names":["isPC","TUITranslateService","C2C","CONV_CREATE_TYPE","createGroup","TUICore","TUIConstants"],"mappings":";;;;;AAmBA,MAAqB,yBAAyB;AAAA,EAG5C,OAAO,cAAwC;AACzC,QAAA,CAAC,yBAAyB,UAAU;AACb,+BAAA,WAAW,IAAI;IAC1C;AACA,WAAO,yBAAyB;AAAA,EAClC;AAAA,EAEO,UAAiB;AAChB,UAAA,OAAO,KAAK;AAClB,QAAI,CAACA,iBAAA,QAAQ,KAAK,SAAS,GAAG;AAC5B,aAAO,CAAC;AAAA,QACN,MAAMC,cAAAA,GAAoB,EAAE,sBAAsB;AAAA,QAClD,MAAM;AAAA,UACJ,MAAM;AAAA,UACN,UAAU;AAAA,QACZ;AAAA,MAAA,CACD;AAAA,IACH;AACO,WAAA;AAAA,EACT;AAAA,EAEQ,mBAA0B;AAChC,UAAM,OAAO;AAAA,MACX;AAAA,QACE,MAAMC,cAAA;AAAA,QACN,MAAMD,cAAAA,GAAoB,EAAE,sBAAsB;AAAA,QAClD,MAAM;AAAA,UACJ,MAAME,gBAAiB,iBAAA;AAAA,QACzB;AAAA,QACA,UAAU;AAAA,UACR,WAAW,KAAK,mBAAmB,KAAK,IAAI;AAAA,QAC9C;AAAA,MACF;AAAA,MACA;AAAA,QACE,MAAMC,cAAA;AAAA,QACN,MAAMH,cAAAA,GAAoB,EAAE,sBAAsB;AAAA,QAClD,MAAM;AAAA,UACJ,MAAME,gBAAiB,iBAAA;AAAA,QACzB;AAAA,QACA,UAAU;AAAA,UACR,WAAW,KAAK,mBAAmB,KAAK,IAAI;AAAA,QAC9C;AAAA,MACF;AAAA,IAAA;AAEK,WAAA;AAAA,EACT;AAAA,EAEQ,mBAAmB,MAAiB;AAE1CE,kBAAAA,EAAQ,YAAY;AAAA,MAClB,aAAaC,cAAa,EAAA,gBAAgB,QAAQ;AAAA,MAClD,QAAQA,cAAAA,EAAa,gBAAgB,QAAQ,OAAO;AAAA,MACpD,QAAQ;AAAA,IAAA,CACT;AAAA,EACH;AACF;;"}

View File

@@ -1 +1 @@
{"version":3,"file":"index.js","sources":["TUIKit/components/TUIConversation/conversation-network/index.vue","../../HBuilderX/plugins/uniapp-cli-vite/uniComponent:/RDov6aG555uuL3RrLW1pbmktcHJvZ3JhbS9UVUlLaXQvY29tcG9uZW50cy9UVUlDb252ZXJzYXRpb24vY29udmVyc2F0aW9uLW5ldHdvcmsvaW5kZXgudnVl"],"sourcesContent":["<template>\n <div\n v-if=\"isNotNetwork\"\n class=\"network\"\n >\n <i class=\"icon icon-error\">!</i>\n <p class=\"network-content\">\n {{\n TUITranslateService.t(\"TUIConversation.网络异常,请您检查网络设置\")\n }}\n </p>\n </div>\n</template>\n<script lang=\"ts\" setup>\nimport TUIChatEngine, {\n TUIStore,\n StoreName,\n TUITranslateService,\n} from '@tencentcloud/chat-uikit-engine';\nimport {\n ref,\n} from '../../../adapter-vue';\n\nconst isNotNetwork = ref(false);\n\nTUIStore.watch(StoreName.USER, {\n netStateChange: (value: string) => {\n isNotNetwork.value = (value === TUIChatEngine.TYPES.NET_STATE_DISCONNECTED);\n },\n});\n</script>\n\n<style lang=\"scss\" scoped src=\"../style/index.scss\"></style>\n","import Component from 'D:/项目/tk-mini-program/TUIKit/components/TUIConversation/conversation-network/index.vue'\nwx.createComponent(Component)"],"names":["ref","TUIStore","StoreName","TUIChatEngine"],"mappings":";;;;;;AAuBM,UAAA,eAAeA,kBAAI,KAAK;AAErBC,qBAAA,MAAMC,gBAAU,MAAM;AAAA,MAC7B,gBAAgB,CAAC,UAAkB;AACpB,qBAAA,QAAS,UAAUC,cAAAA,GAAc,MAAM;AAAA,MACtD;AAAA,IAAA,CACD;;;;;;;;;;;AC5BD,GAAG,gBAAgB,SAAS;"}
{"version":3,"file":"index.js","sources":["TUIKit/components/TUIConversation/conversation-network/index.vue","../../HBuilderX/plugins/uniapp-cli-vite/uniComponent:/RDov6aG555uuL3RrLW1pbmktcHJvZ3JhbS9UVUlLaXQvY29tcG9uZW50cy9UVUlDb252ZXJzYXRpb24vY29udmVyc2F0aW9uLW5ldHdvcmsvaW5kZXgudnVl"],"sourcesContent":["<template>\r\n <div\r\n v-if=\"isNotNetwork\"\r\n class=\"network\"\r\n >\r\n <i class=\"icon icon-error\">!</i>\r\n <p class=\"network-content\">\r\n {{\r\n TUITranslateService.t(\"TUIConversation.网络异常,请您检查网络设置\")\r\n }}\r\n </p>\r\n </div>\r\n</template>\r\n<script lang=\"ts\" setup>\r\nimport TUIChatEngine, {\r\n TUIStore,\r\n StoreName,\r\n TUITranslateService,\r\n} from '@tencentcloud/chat-uikit-engine';\r\nimport {\r\n ref,\r\n} from '../../../adapter-vue';\r\n\r\nconst isNotNetwork = ref(false);\r\n\r\nTUIStore.watch(StoreName.USER, {\r\n netStateChange: (value: string) => {\r\n isNotNetwork.value = (value === TUIChatEngine.TYPES.NET_STATE_DISCONNECTED);\r\n },\r\n});\r\n</script>\r\n\r\n<style lang=\"scss\" scoped src=\"../style/index.scss\"></style>\r\n","import Component from 'D:/项目/tk-mini-program/TUIKit/components/TUIConversation/conversation-network/index.vue'\nwx.createComponent(Component)"],"names":["ref","TUIStore","StoreName","TUIChatEngine"],"mappings":";;;;;;AAuBM,UAAA,eAAeA,kBAAI,KAAK;AAErBC,qBAAA,MAAMC,gBAAU,MAAM;AAAA,MAC7B,gBAAgB,CAAC,UAAkB;AACpB,qBAAA,QAAS,UAAUC,cAAAA,GAAc,MAAM;AAAA,MACtD;AAAA,IAAA,CACD;;;;;;;;;;;AC5BD,GAAG,gBAAgB,SAAS;"}

View File

@@ -1 +1 @@
{"version":3,"file":"entry.js","sources":["TUIKit/components/TUIConversation/entry.ts"],"sourcesContent":["import { TUIChatKit } from '../../index.ts';\nTUIChatKit?.init(); // Add optional chaining operator to fix sample main package integration errors\n"],"names":["TUIChatKit"],"mappings":";;;CACAA,kBAAA,eAAAA,mBAAY;"}
{"version":3,"file":"entry.js","sources":["TUIKit/components/TUIConversation/entry.ts"],"sourcesContent":["import { TUIChatKit } from '../../index.ts';\r\nTUIChatKit?.init(); // Add optional chaining operator to fix sample main package integration errors\r\n"],"names":["TUIChatKit"],"mappings":";;;CACAA,kBAAA,eAAAA,mBAAY;"}

File diff suppressed because one or more lines are too long