diff --git a/examples/sites/demos/apis/dialog-select.js b/examples/sites/demos/apis/dialog-select.js index 31e874fa9..da41b05f5 100644 --- a/examples/sites/demos/apis/dialog-select.js +++ b/examples/sites/demos/apis/dialog-select.js @@ -377,6 +377,21 @@ export default { } ], methods: [ + { + name: 'getSelection', + type: '() => IData[]', + typeAnchorName: 'IData', + meta: { + stable: '3.19.0' + }, + defaultValue: '', + desc: { + 'zh-CN': '获取多选选中数据', + 'en-US': 'Get multi-select selected data' + }, + mode: ['pc'], + pcDemo: 'set-selection' + }, { name: 'queryGridData', type: '() => void', @@ -387,6 +402,21 @@ export default { }, mode: ['pc'], pcDemo: 'nest-grid-multi' + }, + { + name: 'setSelection', + type: '(data: IData | IData[], checked: boolean) => void', + typeAnchorName: 'IData', + meta: { + stable: '3.19.0' + }, + defaultValue: '', + desc: { + 'zh-CN': '设置数据的多选选中状态,需要在弹窗初始化后调用,否则调用无效', + 'en-US': 'Set the multi-select selected state of data' + }, + mode: ['pc'], + pcDemo: 'set-selection' } ], slots: [ @@ -674,6 +704,16 @@ interface IResizeEvent { fullscreen: boolean // 弹窗的元素 dialog: HTMLElement +} + ` + }, + { + name: 'IData', + type: 'interface', + code: ` +interface IData { + // 表格或者tree行数据 + [prop: string]: any } ` } diff --git a/examples/sites/demos/apis/form.js b/examples/sites/demos/apis/form.js index 9306358d4..efbfab5d5 100644 --- a/examples/sites/demos/apis/form.js +++ b/examples/sites/demos/apis/form.js @@ -631,7 +631,7 @@ type IFormTrigger = 'change' | 'blur' interface IFormRules { required?: boolean // 是否必填 - message?: number // 校验错误的提示 + message?: string // 校验错误的提示 // 内置的类型校验 type?: 'date' | 'dateTime' | 'float' | 'array' | 'string' | 'number' | 'url' | 'time' | 'email' | 'object' | 'boolean' | 'enum' // 校验触发时机, 默认为 ['change', 'blur'] 两种场景都触发,如果仅在主动调用校验方式时触发,可设置为空数组 []。 diff --git a/examples/sites/demos/apis/grid.js b/examples/sites/demos/apis/grid.js index 616dd3dba..9d710a9e0 100644 --- a/examples/sites/demos/apis/grid.js +++ b/examples/sites/demos/apis/grid.js @@ -4415,6 +4415,8 @@ interface IEditConfig { showStatus?: boolean // 自定义编辑规则,返回true可以编辑返回false则禁止编辑 activeMethod?: ({row: IRow, column: IColumnConfig})=> boolean + // (3.19新增)当mode为'row'时,行编辑激活状态下默认会忽略activeMethod,配置为true使其生效 + activeStrictly?: boolean } ` }, diff --git a/examples/sites/demos/apis/icon-multicolor.js b/examples/sites/demos/apis/icon-multicolor.js new file mode 100644 index 000000000..b4b58ca0e --- /dev/null +++ b/examples/sites/demos/apis/icon-multicolor.js @@ -0,0 +1,4 @@ +export default { + mode: ['pc'], + apis: [] +} diff --git a/examples/sites/demos/apis/image.js b/examples/sites/demos/apis/image.js index c0881c565..a778f474e 100644 --- a/examples/sites/demos/apis/image.js +++ b/examples/sites/demos/apis/image.js @@ -222,6 +222,21 @@ export default { mode: ['pc', 'mobile-first'], pcDemo: 'count-slot', mfDemo: '' + }, + { + name: 'appendToBody', + type: 'boolean', + defaultValue: 'true', + meta: { + stable: '3.19.0' + }, + desc: { + 'zh-CN': '预览弹框是否显示在当前节点下面', + 'en-US': 'Indicates whether the preview dialog box is displayed under the current node.' + }, + mode: ['pc', 'mobile-first'], + pcDemo: 'preview', + mfDemo: '' } ] } diff --git a/examples/sites/demos/apis/tree-menu.js b/examples/sites/demos/apis/tree-menu.js index 4509f4149..eb36cf68f 100644 --- a/examples/sites/demos/apis/tree-menu.js +++ b/examples/sites/demos/apis/tree-menu.js @@ -422,6 +422,21 @@ export default { }, mode: ['pc'], pcDemo: 'show-filter' + }, + { + name: 'width-adapt', + type: 'boolean', + defaultValue: 'false', + desc: { + 'zh-CN': '通过 widthAdapt 属性,是否让组件宽度自适应父容器。', + 'en-US': + 'The widthAdapt attribute specifies whether to enable the component width to adapt to the parent container.' + }, + meta: { + stable: '3.19.0' + }, + mode: ['pc'], + pcDemo: 'show-filter' } ], events: [ diff --git a/examples/sites/demos/pc/app/action-menu/icon-composition-api.vue b/examples/sites/demos/pc/app/action-menu/icon-composition-api.vue index 666ae19a8..8c92063d0 100644 --- a/examples/sites/demos/pc/app/action-menu/icon-composition-api.vue +++ b/examples/sites/demos/pc/app/action-menu/icon-composition-api.vue @@ -11,9 +11,6 @@ >
- - -

场景2:只显示文本

@@ -22,12 +19,12 @@ + + diff --git a/examples/sites/demos/pc/app/button/image.vue b/examples/sites/demos/pc/app/button/image.vue index c0b503b36..c8a20487c 100644 --- a/examples/sites/demos/pc/app/button/image.vue +++ b/examples/sites/demos/pc/app/button/image.vue @@ -1,5 +1,5 @@ - diff --git a/examples/sites/demos/pc/app/dialog-select/nest-grid-single-composition-api.vue b/examples/sites/demos/pc/app/dialog-select/nest-grid-single-composition-api.vue index ec0da5c39..7e375bf61 100644 --- a/examples/sites/demos/pc/app/dialog-select/nest-grid-single-composition-api.vue +++ b/examples/sites/demos/pc/app/dialog-select/nest-grid-single-composition-api.vue @@ -18,7 +18,7 @@ @change="onDialogSelectChange" value-field="id" text-field="name" - :main-height="290" + :main-height="240" > - diff --git a/examples/sites/demos/pc/app/dialog-select/nest-tree-multi-composition-api.vue b/examples/sites/demos/pc/app/dialog-select/nest-tree-multi-composition-api.vue index 0418a1fc2..ae8046ee2 100644 --- a/examples/sites/demos/pc/app/dialog-select/nest-tree-multi-composition-api.vue +++ b/examples/sites/demos/pc/app/dialog-select/nest-tree-multi-composition-api.vue @@ -1,6 +1,10 @@ @@ -35,9 +49,10 @@ import { DropdownMenu as TinyDropdownMenu, DropdownItem as TinyDropdownItem } from '@opentiny/vue' -import { iconEllipsis } from '@opentiny/vue-icon' +import { iconEllipsis, iconLanguage } from '@opentiny/vue-icon' const tinyIconEllipsis = iconEllipsis() +const tinyIconLanguage = iconLanguage() diff --git a/examples/sites/demos/pc/app/grid/editor/active-strictly.spec.js b/examples/sites/demos/pc/app/grid/editor/active-strictly.spec.js new file mode 100644 index 000000000..c96122109 --- /dev/null +++ b/examples/sites/demos/pc/app/grid/editor/active-strictly.spec.js @@ -0,0 +1,11 @@ +import { test, expect } from '@playwright/test' + +test('维护编辑状态', async ({ page }) => { + page.on('pageerror', (exception) => expect(exception).toBeNull()) + await page.goto('grid-editor#active-strictly') + await page.getByRole('cell', { name: '福州' }).click() + const demo = page.locator('#active-strictly') + await expect( + demo.locator('.tiny-grid-body__row').first().locator('.tiny-grid-body__column').nth(1).locator('input') + ).toHaveCount(0) +}) diff --git a/examples/sites/demos/pc/app/grid/editor/active-strictly.vue b/examples/sites/demos/pc/app/grid/editor/active-strictly.vue new file mode 100644 index 000000000..0553c711e --- /dev/null +++ b/examples/sites/demos/pc/app/grid/editor/active-strictly.vue @@ -0,0 +1,92 @@ + + + + + diff --git a/examples/sites/demos/pc/app/grid/mouse-keyboard/keyboard-navigation.spec.js b/examples/sites/demos/pc/app/grid/mouse-keyboard/keyboard-navigation.spec.js index 12c99ec57..42a611ab4 100644 --- a/examples/sites/demos/pc/app/grid/mouse-keyboard/keyboard-navigation.spec.js +++ b/examples/sites/demos/pc/app/grid/mouse-keyboard/keyboard-navigation.spec.js @@ -4,7 +4,9 @@ test('键盘导航测试', async ({ page }) => { page.on('pageerror', (exception) => expect(exception).toBeNull()) const demo = page.locator('#mouse-keyboard-keyboard-navigation') await page.goto('grid-mouse-keyboard#mouse-keyboard-keyboard-navigation') + await page.getByText('GFD科技YX公司').click() + await page.waitForTimeout(300) await page.locator('body').press('ArrowDown') await page.waitForTimeout(300) await page.locator('body').press('F2') diff --git a/examples/sites/demos/pc/app/grid/webdoc/grid-editor.js b/examples/sites/demos/pc/app/grid/webdoc/grid-editor.js index 9b54178e0..e1319cba7 100644 --- a/examples/sites/demos/pc/app/grid/webdoc/grid-editor.js +++ b/examples/sites/demos/pc/app/grid/webdoc/grid-editor.js @@ -64,6 +64,16 @@ export default { }, 'codeFiles': ['editor/editor-bg.vue'] }, + { + 'demoId': 'active-strictly', + 'name': { 'zh-CN': '行编辑禁用特定列', 'en-US': '' }, + 'desc': { + 'zh-CN': + "

editConfig.mode 为'row'时,行编辑激活状态下默认会忽略 editConfig.activeMethod ,配置 editConfig.activeStrictly 为true使其生效", + 'en-US': '' + }, + 'codeFiles': ['editor/active-strictly.vue'] + }, { 'demoId': 'editor-custom-edit', 'name': { 'zh-CN': '多行编辑', 'en-US': '' }, diff --git a/examples/sites/demos/pc/app/icon-multicolor/basic-usage-composition-api.vue b/examples/sites/demos/pc/app/icon-multicolor/basic-usage-composition-api.vue new file mode 100644 index 000000000..b4bb83018 --- /dev/null +++ b/examples/sites/demos/pc/app/icon-multicolor/basic-usage-composition-api.vue @@ -0,0 +1,38 @@ + + + + + diff --git a/examples/sites/demos/pc/app/icon-multicolor/basic-usage.vue b/examples/sites/demos/pc/app/icon-multicolor/basic-usage.vue new file mode 100644 index 000000000..ff172fc58 --- /dev/null +++ b/examples/sites/demos/pc/app/icon-multicolor/basic-usage.vue @@ -0,0 +1,54 @@ + + + + + diff --git a/examples/sites/demos/pc/app/icon-multicolor/list-composition-api.vue b/examples/sites/demos/pc/app/icon-multicolor/list-composition-api.vue new file mode 100644 index 000000000..38c5518c3 --- /dev/null +++ b/examples/sites/demos/pc/app/icon-multicolor/list-composition-api.vue @@ -0,0 +1,120 @@ + + + + + diff --git a/examples/sites/demos/pc/app/icon-multicolor/list.vue b/examples/sites/demos/pc/app/icon-multicolor/list.vue new file mode 100644 index 000000000..b71b7fb7d --- /dev/null +++ b/examples/sites/demos/pc/app/icon-multicolor/list.vue @@ -0,0 +1,131 @@ + + + + + diff --git a/examples/sites/demos/pc/app/icon-multicolor/webdoc/icon-multicolor.cn.md b/examples/sites/demos/pc/app/icon-multicolor/webdoc/icon-multicolor.cn.md new file mode 100644 index 000000000..ed5ad9692 --- /dev/null +++ b/examples/sites/demos/pc/app/icon-multicolor/webdoc/icon-multicolor.cn.md @@ -0,0 +1,7 @@ +--- +title: IconMulticolor 多色图标 +--- + +# IconMulticolor 多色图标 + +

多色图标集合
diff --git a/examples/sites/demos/pc/app/icon-multicolor/webdoc/icon-multicolor.en.md b/examples/sites/demos/pc/app/icon-multicolor/webdoc/icon-multicolor.en.md new file mode 100644 index 000000000..00f80c961 --- /dev/null +++ b/examples/sites/demos/pc/app/icon-multicolor/webdoc/icon-multicolor.en.md @@ -0,0 +1,7 @@ +--- +title: IconMulticolor +--- + +# IconMulticolor + +
MultiColor icon collection
diff --git a/examples/sites/demos/pc/app/icon-multicolor/webdoc/icon-multicolor.js b/examples/sites/demos/pc/app/icon-multicolor/webdoc/icon-multicolor.js new file mode 100644 index 000000000..4256b1b59 --- /dev/null +++ b/examples/sites/demos/pc/app/icon-multicolor/webdoc/icon-multicolor.js @@ -0,0 +1,38 @@ +export default { + column: '1', + owner: '', + demos: [ + { + demoId: 'basic-usage', + name: { + 'zh-CN': '基本用法', + 'en-US': 'Basic Usage' + }, + desc: { + 'zh-CN': `通过 first-color 自定义图标第一层颜色,通过 second-color 自定义图标第二层颜色。 +
+

图标颜色规则: 共三层颜色,其中一二层颜色可独立配置,第三层颜色为第二层颜色透明度的50%

+

第一层默认颜色: rgba(0,103,209,1)

+

第二层默认颜色: rgba(0,103,209,0.7) (默认为第一层的70%)

+

第三层默认颜色: rgba(0,103,209,0.35)(第二层的50%)

+
+ `, + 'en-US': + 'Introduce icon functions from the @opentiny/vue-icon icon library, execute them, and generate corresponding icons.' + }, + codeFiles: ['basic-usage.vue'] + }, + { + demoId: 'list', + name: { + 'zh-CN': '图标集合', + 'en-US': 'Icon Set' + }, + desc: { + 'zh-CN': '输入图标名称进行搜索,点击图标即可快速复制名称。', + 'en-US': 'Enter the icon name for search, Click on the icon to quickly copy the name.' + }, + codeFiles: ['list.vue'] + } + ] +} diff --git a/examples/sites/demos/pc/app/icon/iconGroups.js b/examples/sites/demos/pc/app/icon/iconGroups.js index 25411c6c2..d55d7186b 100644 --- a/examples/sites/demos/pc/app/icon/iconGroups.js +++ b/examples/sites/demos/pc/app/icon/iconGroups.js @@ -69,6 +69,7 @@ export const iconGroups = { 'IconDeltaUpO', 'IconFreeze', 'IconUp', + 'IconUpdate', 'IconUpO', 'IconUpWard' ], @@ -179,6 +180,7 @@ export const iconGroups = { ], Stretchable: [ 'IconFullscreenLeft', + 'IconFullscreenRight', 'IconMinscreenLeft', 'IconMinscreenRight', 'IconStretch', @@ -247,12 +249,15 @@ export const iconGroups = { Brands: ['IconAngularjs', 'IconEspaceAuto', 'IconEspace', 'IconNodejs', 'IconReactjs', 'IconVuejs'], Charts: ['IconAreaChart', 'IconDotChart', 'IconLineChart', 'IconPieChart', 'IconStatistics'], Editor: [ + 'IconEdit', + 'IconEditor', 'IconEditorAlignCenter', 'IconEditorAlignLeft', 'IconEditorAlignRight', 'IconEditorBackground', 'IconEditorCode', 'IconEditorEraser', + 'IconEditorEraserFilled', 'IconEditorLeftBorder', 'IconEditorList', 'IconEditorListDot', @@ -262,6 +267,7 @@ export const iconGroups = { 'IconEditorQuote', 'IconEditorRedo', 'IconEditorRightBorder', + 'IconEditorTab', 'IconEditorTable', 'IconEditorTextcolor', 'IconExport', @@ -276,6 +282,7 @@ export const iconGroups = { 'IconDesktopView', 'IconException', 'IconLanguage', + 'IconLock', 'IconMobileView', 'IconMobile', 'IconPrintPreview', @@ -294,10 +301,16 @@ export const iconGroups = { Email: ['IconEmailAdd', 'IconEmailCircle', 'IconMailContent', 'IconMail', 'IconReplies', 'IconSent', 'IconUnsent'], Folder: ['IconFileCloudupload', 'IconFolder', 'IconFolderClosed', 'IconFolderOpened'], File: [ + 'IconAgency', 'IconCloudUpload', + 'iconCheckOut', + 'IconCheckedTrue', + 'IconDeletePage', 'IconDocument', 'IconExcel', 'IconExcelType', + 'IconExpressSearch', + 'IconFeedback', 'IconFileExcel', 'IconFile', 'IconFilesCircle', @@ -307,9 +320,14 @@ export const iconGroups = { 'IconFileupload', 'IconFinishO', 'IconHistoryRecord', + 'IconLocalePanel', + 'IconNoPremission', 'IconOtherType', + 'IconPagelink', 'IconPdfType', 'IconPptType', + 'IconRenew', + 'IconSynchronize', 'IconTextType', 'IconText', 'IconTextAlign', diff --git a/examples/sites/demos/pc/app/image/preview-composition-api.vue b/examples/sites/demos/pc/app/image/preview-composition-api.vue index 82f0bde1e..13106f458 100644 --- a/examples/sites/demos/pc/app/image/preview-composition-api.vue +++ b/examples/sites/demos/pc/app/image/preview-composition-api.vue @@ -3,7 +3,7 @@
点击图片预览大图

- +
diff --git a/examples/sites/demos/pc/app/image/preview.vue b/examples/sites/demos/pc/app/image/preview.vue index 19335206a..b17f03b7a 100644 --- a/examples/sites/demos/pc/app/image/preview.vue +++ b/examples/sites/demos/pc/app/image/preview.vue @@ -3,7 +3,7 @@
点击图片预览大图

- +
diff --git a/examples/sites/demos/pc/app/link/basic-usage-composition-api.vue b/examples/sites/demos/pc/app/link/basic-usage-composition-api.vue index 0817c702d..3a0d42447 100644 --- a/examples/sites/demos/pc/app/link/basic-usage-composition-api.vue +++ b/examples/sites/demos/pc/app/link/basic-usage-composition-api.vue @@ -1,12 +1,16 @@ - - - ` + const cloesIcon = ` + + Created with Pixso. + + + + + + ` cancelIcon.innerHTML = cloesIcon const progress = document.createElement('span') diff --git a/packages/renderless/src/image-viewer/vue.ts b/packages/renderless/src/image-viewer/vue.ts index 00558b202..921761ba9 100644 --- a/packages/renderless/src/image-viewer/vue.ts +++ b/packages/renderless/src/image-viewer/vue.ts @@ -93,7 +93,8 @@ const initState = ({ reactive, computed, api, mode, props, constants, inject }) infinite: true, loading: false, transform: { scale: 1, deg: 0, offsetX: 0, offsetY: 0, objfit: 'contain', enableTransition: false }, - urlList: props.urlList || inject('urlList', null), + urlList: + props.urlList || (Array.isArray(inject('urlList')) && inject('urlList').length !== 0) ? inject('urlList') : null, mode: constants.MODE.CONTAIN, previewVisible: props.previewVisible, fullScreen: props.imageFullCurrent, diff --git a/packages/renderless/src/input/index.ts b/packages/renderless/src/input/index.ts index c3954bfcc..4fc2c075f 100644 --- a/packages/renderless/src/input/index.ts +++ b/packages/renderless/src/input/index.ts @@ -11,13 +11,7 @@ */ import { omitText } from '../common/string' -import type { - IInputApi, - IInputClassPrefixConstants, - IInputRenderlessParamUtils, - IInputRenderlessParams, - IInputState -} from 'types/input.type' +import type { IInputApi, IInputRenderlessParamUtils, IInputRenderlessParams, IInputState } from 'types/input.type' const HIDDEN_STYLE = ` height:0 !important;visibility:hidden !important;overflow:hidden !important; @@ -340,11 +334,9 @@ export const handleCompositionEnd = } export const calcIconOffset = - ({ CLASS_PREFIX, parent }: Pick & { CLASS_PREFIX: IInputClassPrefixConstants }) => + ({ vm, parent }: Pick) => (place: 'prefix' | 'suffix'): void => { - const elList = [].slice.call( - parent.$el.querySelectorAll(`.${CLASS_PREFIX.Input}${place}`) || [] - ) as unknown as HTMLElement[] + const elList = vm.$refs[place] ? [vm.$refs[place]] : [] if (!elList.length) { return @@ -367,11 +359,11 @@ export const calcIconOffset = const pendant = pendantMap[place] if (parent.$slots[pendant]) { - const dom = parent.$el.querySelector(`.${CLASS_PREFIX.InputGroup}${pendant}`) + const dom = vm.$refs[pendant] let transform if (place === 'suffix') { - transform = `translateX(-${dom.offsetWidth}px)` + transform = `translateX(-${dom.offsetWidth}px) translateY(-50%)` } else if (place === 'prefix') { transform = `translate(${dom.offsetWidth}px, -50%)` } diff --git a/packages/renderless/src/input/vue.ts b/packages/renderless/src/input/vue.ts index d7eed2338..8985102e6 100644 --- a/packages/renderless/src/input/vue.ts +++ b/packages/renderless/src/input/vue.ts @@ -15,7 +15,6 @@ import type { IInputState, ISharedRenderlessParamHooks, IInputRenderlessParamUtils, - IInputClassPrefixConstants, IInputEventNameConstants, IInputRenderlessParams } from '@/types' @@ -195,15 +194,12 @@ const initApi = ({ emit, vm, props, - CLASS_PREFIX, parent, nextTick }: Pick< IInputRenderlessParams, 'api' | 'state' | 'dispatch' | 'broadcast' | 'emit' | 'refs' | 'props' | 'parent' | 'vm' | 'nextTick' -> & { - CLASS_PREFIX: IInputClassPrefixConstants -}) => { +>) => { Object.assign(api, { state, dispatch, @@ -214,7 +210,7 @@ const initApi = ({ setShowMoreBtn: setShowMoreBtn({ state, vm }), handleChange: handleChange(emit), watchFormSelect: watchFormSelect({ emit, props, state }), - calcIconOffset: calcIconOffset({ CLASS_PREFIX, parent }), + calcIconOffset: calcIconOffset({ vm, parent }), getSuffixVisible: getSuffixVisible({ parent, props, state }), calculateNodeStyling: calculateNodeStyling(), handleCompositionStart: handleCompositionStart(state), @@ -388,13 +384,9 @@ export const renderless = ( const api = {} as IInputApi const componentName = constants.COMPONENT_NAME.FormItem const eventName: IInputEventNameConstants = { change: 'form.change', blur: 'form.blur' } - const CLASS_PREFIX: IInputClassPrefixConstants = { - Input: constants.inputMode(mode), - InputGroup: constants.inputGroupMode(mode) - } const state = initState({ reactive, computed, mode, props, parent, constants, api, vm, designConfig }) - initApi({ api, state, dispatch, broadcast, emit, refs, props, CLASS_PREFIX, parent, vm, nextTick }) + initApi({ api, state, dispatch, broadcast, emit, refs, props, parent, vm, nextTick }) const storages = useStorageBox({ api, props, reactive, toRefs }) diff --git a/packages/renderless/src/locales/index.ts b/packages/renderless/src/locales/index.ts index fa397b963..114476206 100644 --- a/packages/renderless/src/locales/index.ts +++ b/packages/renderless/src/locales/index.ts @@ -10,7 +10,7 @@ * */ -import { xss } from '../common' +import { xss } from '../common/xss' export const getLocales = ({ api, service, state }) => @@ -33,16 +33,10 @@ export const switchLanguage = ({ api, state, service }) => (lang) => { const { locales, current } = state - const domain = service.getDomain() const hasMultiLocale = state.locales.length === 2 state.current = hasMultiLocale ? (state.current = locales.indexOf(current) === 0 ? locales[1] : locales[0]) : lang - const expires = new Date(new Date().getTime() + 3600000).toGMTString() - const currLang = state.current.substring(0, 2) === 'zh' ? 'zh' : 'en' - - document.cookie = `lang=${currLang};expires=${expires};domain=${domain};path=/` - api.setText() } diff --git a/packages/renderless/src/logout/index.ts b/packages/renderless/src/logout/index.ts index 7676c3357..205efe5ab 100644 --- a/packages/renderless/src/logout/index.ts +++ b/packages/renderless/src/logout/index.ts @@ -10,7 +10,7 @@ * */ -import { xss } from '../common' +import { xss } from '../common/xss' export const logout = ({ service, state, props }) => diff --git a/packages/renderless/src/modal/index.ts b/packages/renderless/src/modal/index.ts index 511bc4ef9..9e480b23b 100644 --- a/packages/renderless/src/modal/index.ts +++ b/packages/renderless/src/modal/index.ts @@ -138,6 +138,7 @@ export const beforeUnmouted = isMobileFirstMode && off(window, 'resize', api.resetDragStyle) off(document, 'keydown', api.handleGlobalKeydownEvent) off(window, 'hashchange', api.handleHashChange) + off(window, 'resize', api.resetModalViewPosition) api.removeMsgQueue() api.hideScrollbar() @@ -292,13 +293,13 @@ export const open = } else { modalBoxElem.style.left = `${clientVisibleWidth / 2 - modalBoxElem.offsetWidth / 2}px` } - if ( modalBoxElem.offsetHeight + modalBoxElem.offsetTop + (props.marginSize as number) > clientVisibleHeight ) { modalBoxElem.style.top = `${props.marginSize}px` } + on(window, 'resize', api.resetModalViewPosition) } if (props.fullscreen) { @@ -915,3 +916,11 @@ export const showScrollbar = (lockScrollClass) => () => { export const hideScrollbar = (lockScrollClass) => () => { removeClass(document.body, lockScrollClass) } + +export const resetModalViewPosition = (api: IModalApi) => () => { + const modalBoxElement = api.getBox() + const viewportWindow = getViewportWindow() + const clientVisibleWidth = + viewportWindow.document.documentElement.clientWidth || viewportWindow.document.body.clientWidth + modalBoxElement.style.left = `${clientVisibleWidth / 2 - modalBoxElement.offsetWidth / 2}px` +} diff --git a/packages/renderless/src/modal/vue.ts b/packages/renderless/src/modal/vue.ts index 816cd5161..bc84b1ae8 100644 --- a/packages/renderless/src/modal/vue.ts +++ b/packages/renderless/src/modal/vue.ts @@ -37,6 +37,7 @@ import { cancelEvent, open, resetDragStyle, + resetModalViewPosition, computedBoxStyle, handleHashChange, showScrollbar, @@ -64,7 +65,8 @@ export const api = [ 'cancelEvent', 'open', 'beforeUnmouted', - 'resetDragStyle' + 'resetDragStyle', + 'resetModalViewPosition' ] export const renderless = ( @@ -121,6 +123,7 @@ export const renderless = ( mousedownEvent: mousedownEvent({ api, nextTick, props, state, emit, isMobileFirstMode }), dragEvent: dragEvent({ api, emit, parent, props, state }), resetDragStyle: resetDragStyle(api), + resetModalViewPosition: resetModalViewPosition(api), computedBoxStyle: computedBoxStyle({ props, isMobileFirstMode }), watchVisible: watchVisible({ api, props }), hideScrollbar: hideScrollbar(lockScrollClass), diff --git a/packages/renderless/src/nav-menu/index.ts b/packages/renderless/src/nav-menu/index.ts index c2f223510..1e05f20d8 100644 --- a/packages/renderless/src/nav-menu/index.ts +++ b/packages/renderless/src/nav-menu/index.ts @@ -23,7 +23,7 @@ import PopupManager from '../common/deps/popup-manager' import { mapTree } from '../grid/static' import { transformTreeData } from '../common/array' import { on, off } from '../common/deps/dom' -import { xss } from '../common/xss.js' +import { xss } from '../common/xss' const { nextZIndex } = PopupManager diff --git a/packages/renderless/src/picker/index.ts b/packages/renderless/src/picker/index.ts index 613abec23..421182ca5 100644 --- a/packages/renderless/src/picker/index.ts +++ b/packages/renderless/src/picker/index.ts @@ -66,7 +66,7 @@ export const watchMobileVisible = export const watchPickerVisible = ({ api, vm, dispatch, emit, props, state, nextTick }) => (value) => { - if (props.readonly || state.pickerDisabled || state.isMobileMode) return + if (props.readonly || state.pickerDisabled || state.isMobileScreen) return if (value) { api.showPicker() @@ -939,9 +939,9 @@ export const handleFocus = const type = state.type if (DATEPICKER.TriggerTypes.includes(type)) { - if (state.isMobileMode && state.isDateMobileComponent) { + if (state.isMobileScreen && state.isDateMobileComponent) { api.dateMobileToggle(true) - } else if (state.isMobileMode && state.isTimeMobileComponent) { + } else if (state.isMobileScreen && state.isTimeMobileComponent) { api.timeMobileToggle(true) } else { state.pickerVisible = true diff --git a/packages/renderless/src/picker/vue.ts b/packages/renderless/src/picker/vue.ts index dfb3e7ec0..5db6136bd 100644 --- a/packages/renderless/src/picker/vue.ts +++ b/packages/renderless/src/picker/vue.ts @@ -143,7 +143,7 @@ const initState = ({ api, reactive, vm, computed, props, utils, parent, breakpoi labelTooltip: '', displayOnlyTooltip: '', isDisplayOnly: computed(() => props.displayOnly || (parent.tinyForm || {}).displayOnly), - isMobileMode: computed(() => vm.$mode.includes('mobile')), + isMobileScreen: computed(() => breakpoint.current.value === 'default'), dateMobileOption: { visible: false, type: props.type, diff --git a/packages/renderless/src/rich-text/table-module.ts b/packages/renderless/src/rich-text/table-module.ts index 2594ac5de..d44e6e04d 100644 --- a/packages/renderless/src/rich-text/table-module.ts +++ b/packages/renderless/src/rich-text/table-module.ts @@ -25,8 +25,8 @@ function addMatcherTr({ _quill, oper }) { }) } -function addMatcherTd({ _quill, oper, Delta }) { - _quill.clipboard.addMatcher('TD', function (node, delta) { +function addMatcherTdOrTh({ _quill, oper, Delta, tagName }) { + _quill.clipboard.addMatcher(tagName, function (node, delta) { const tableId = oper.getTableId() const rowId = oper.getRowId() const cellId = cellName() @@ -104,7 +104,8 @@ function addMatcher({ qil: _quill, Delta }) { addMatcherTable({ _quill, oper }) addMatcherTr({ _quill, oper }) - addMatcherTd({ _quill, oper, Delta }) + addMatcherTdOrTh({ _quill, oper, Delta, tagName: 'TD' }) + addMatcherTdOrTh({ _quill, oper, Delta, tagName: 'TH' }) // 移除table/tr, tr/td间空白符 addMatcher3(_quill) // word粘贴到IE里会出现几个空内容的font标签 diff --git a/packages/renderless/src/roles/index.ts b/packages/renderless/src/roles/index.ts index 7ead14006..e1452d49e 100644 --- a/packages/renderless/src/roles/index.ts +++ b/packages/renderless/src/roles/index.ts @@ -10,7 +10,7 @@ * */ -import { xss } from '../common' +import { xss } from '../common/xss' export const showList = (state) => () => (state.showPopover = true) diff --git a/packages/renderless/src/selected-box/vue.ts b/packages/renderless/src/selected-box/vue.ts index 9ff0e5afe..e7817176b 100644 --- a/packages/renderless/src/selected-box/vue.ts +++ b/packages/renderless/src/selected-box/vue.ts @@ -57,7 +57,8 @@ export const renderless = ( popoverContent: '', dragInstance: null, slotParams: computed(() => ({ inverse: state.inverse, total: state.total, select: state.select })), - showClear: computed(() => api.computedShowClear()) + showClear: computed(() => api.computedShowClear()), + theme: vm.theme }) const api = { diff --git a/packages/renderless/src/tabbar-item/vue.ts b/packages/renderless/src/tabbar-item/vue.ts index d55e5b1b8..bb8b2e0f3 100644 --- a/packages/renderless/src/tabbar-item/vue.ts +++ b/packages/renderless/src/tabbar-item/vue.ts @@ -11,7 +11,7 @@ */ import { getRouteActive, onClick, bindChildren, routeTab, getTabbarItemsWidth } from './index' -import { xss } from '../common' +import { xss } from '../common/xss' export const api = ['state', 'onClick', 'getTabbarItemsWidth'] diff --git a/packages/renderless/src/toggle-menu/index.ts b/packages/renderless/src/toggle-menu/index.ts index ebdaddd05..7cccbd87e 100644 --- a/packages/renderless/src/toggle-menu/index.ts +++ b/packages/renderless/src/toggle-menu/index.ts @@ -10,7 +10,7 @@ * */ -import { xss } from '../common/xss.js' +import { xss } from '../common/xss' import { isObject } from '../common/type' export const filterNode = (props) => (value, data) => { diff --git a/packages/renderless/src/user-contact/vue.ts b/packages/renderless/src/user-contact/vue.ts index 9776e23e5..a3c90687c 100644 --- a/packages/renderless/src/user-contact/vue.ts +++ b/packages/renderless/src/user-contact/vue.ts @@ -13,18 +13,29 @@ import { init } from '../common/deps/eSpaceCtrl' import { getUserHref, doUserAction, initEspaceLink, openEspace } from './index' import { testUID } from '../espace' +import type { + IUserContactApi, + IUserContactProps, + IUserContactState, + ISharedRenderlessParamHooks, + IUserContactRenderlessParamUtils +} from '@/types' export const api = ['show', 'getUserHref', 'doUserAction', 'initEspaceLink', 'openEspace', 'testUID'] -export const renderless = (props, { reactive, ref }, { service }) => { - const api = {} +export const renderless = ( + props: IUserContactProps, + { reactive, ref }: ISharedRenderlessParamHooks, + { service }: IUserContactRenderlessParamUtils +): IUserContactApi => { + const api = {} as IUserContactApi const { setting = {} } = service || {} const { widgets = {} } = setting const eSpaceCtrlDisabled = widgets.ESpaceCtrl && !widgets.ESpaceCtrl.autoLink const eSpaceCtrl = eSpaceCtrlDisabled ? {} : init() - const state = reactive({ + const state: IUserContactState = reactive({ initialized: false }) diff --git a/packages/renderless/types/modal.type.ts b/packages/renderless/types/modal.type.ts index c989871d9..04fac1cba 100644 --- a/packages/renderless/types/modal.type.ts +++ b/packages/renderless/types/modal.type.ts @@ -63,6 +63,7 @@ export interface IModalApi { mousedownEvent: (event: MouseEvent) => void dragEvent: (event: MouseEvent) => void resetDragStyle: () => void + resetModalViewPosition: () => void } export type IModalRenderlessParamUtils = ISharedRenderlessParamUtils diff --git a/packages/renderless/types/user-contact.type.ts b/packages/renderless/types/user-contact.type.ts index e69de29bb..22ca15ea6 100644 --- a/packages/renderless/types/user-contact.type.ts +++ b/packages/renderless/types/user-contact.type.ts @@ -0,0 +1,29 @@ +import type { ExtractPropTypes, ref } from 'vue' +import type { userContactProps } from '@/user-contact/src' +import type { ISharedRenderlessFunctionParams, ISharedRenderlessParamUtils } from './shared.type' +import type { getUserHref, doUserAction, initEspaceLink, openEspace } from '../src/user-contact' +import type { testUID } from '../src/espace' + +export type IUserContactProps = ExtractPropTypes + +export interface IUserContactState { + initialized: boolean +} + +export type IUserContactRenderlessParams = ISharedRenderlessFunctionParams & { + api: IUserContactApi + state: IUserContactState + props: IUserContactProps +} + +export interface IUserContactApi { + state: IUserContactState + testUID: ReturnType + show: ReturnType + getUserHref: ReturnType + initEspaceLink: ReturnType + doUserAction: ReturnType + openEspace: ReturnType +} + +export type IUserContactRenderlessParamUtils = ISharedRenderlessParamUtils diff --git a/packages/theme-saas/src/svgs/agency.svg b/packages/theme-saas/src/svgs/agency.svg new file mode 100644 index 000000000..7910aaaeb --- /dev/null +++ b/packages/theme-saas/src/svgs/agency.svg @@ -0,0 +1,9 @@ + + + Created with Pixso. + + + + + + diff --git a/packages/theme-saas/src/svgs/feedback.svg b/packages/theme-saas/src/svgs/feedback.svg new file mode 100644 index 000000000..e572b091f --- /dev/null +++ b/packages/theme-saas/src/svgs/feedback.svg @@ -0,0 +1,9 @@ + + + Created with Pixso. + + + + + + diff --git a/packages/theme-saas/src/svgs/fullscreen-right.svg b/packages/theme-saas/src/svgs/fullscreen-right.svg new file mode 100644 index 000000000..4c8700113 --- /dev/null +++ b/packages/theme-saas/src/svgs/fullscreen-right.svg @@ -0,0 +1,9 @@ + + + Created with Pixso. + + + + + + diff --git a/packages/theme-saas/src/svgs/locale-panel.svg b/packages/theme-saas/src/svgs/locale-panel.svg new file mode 100644 index 000000000..fe1ab3815 --- /dev/null +++ b/packages/theme-saas/src/svgs/locale-panel.svg @@ -0,0 +1,9 @@ + + + Created with Pixso. + + + + + + diff --git a/packages/theme-saas/src/svgs/refresh.svg b/packages/theme-saas/src/svgs/refresh.svg index c0ed6fa7c..2a77716d1 100644 --- a/packages/theme-saas/src/svgs/refresh.svg +++ b/packages/theme-saas/src/svgs/refresh.svg @@ -1,14 +1,7 @@ - - - - - - - + + + + \ No newline at end of file diff --git a/packages/theme-saas/src/svgs/shutdown.svg b/packages/theme-saas/src/svgs/shutdown.svg new file mode 100644 index 000000000..98cb80727 --- /dev/null +++ b/packages/theme-saas/src/svgs/shutdown.svg @@ -0,0 +1,9 @@ + + + Created with Pixso. + + + + + + diff --git a/packages/theme-saas/src/svgs/synchronize.svg b/packages/theme-saas/src/svgs/synchronize.svg new file mode 100644 index 000000000..970ed136d --- /dev/null +++ b/packages/theme-saas/src/svgs/synchronize.svg @@ -0,0 +1,9 @@ + + + Created with Pixso. + + + + + + diff --git a/packages/theme-saas/src/svgs/update.svg b/packages/theme-saas/src/svgs/update.svg new file mode 100644 index 000000000..5a2eec6bb --- /dev/null +++ b/packages/theme-saas/src/svgs/update.svg @@ -0,0 +1,7 @@ + + + Created with Pixso. + + + + diff --git a/packages/theme/src/calendar-view/index.less b/packages/theme/src/calendar-view/index.less index c079b9f35..733fd8197 100644 --- a/packages/theme/src/calendar-view/index.less +++ b/packages/theme/src/calendar-view/index.less @@ -34,6 +34,9 @@ &__header div:first-child { flex-grow: 1; } + &__header div:first-child{ + flex-grow: 1; + } &__picker { flex-shrink: 0; diff --git a/packages/theme/src/dialog-select/index.less b/packages/theme/src/dialog-select/index.less index 26a5d78f5..69636f54b 100644 --- a/packages/theme/src/dialog-select/index.less +++ b/packages/theme/src/dialog-select/index.less @@ -14,34 +14,76 @@ @import './vars.less'; @dialog-select-prefix-cls: ~'@{css-prefix}dialog-select'; -@dialog-box-prefix-cls: ~'@{css-prefix}dialog-box'; .@{dialog-select-prefix-cls} { - .component-css-vars-dialog-select(); - - .@{dialog-box-prefix-cls}__body { - margin-top: var(--ti-dialog-box-body-margin-top); - margin-bottom: var(--ti-dialog-box-body-margin-bottom); - } + .inject-DialogSelect-vars(); .@{dialog-select-prefix-cls}__body { + &-search { + margin-bottom: var(--tv-DialogSelect-search-margin-bottom); + } - &-search, &-selector { - margin-bottom: var(--ti-dialog-select-body-margin-bottom); + .tiny-split-pane { + &.left-pane { + padding-right: var(--tv-DialogSelect-split-pane-padding-right-left); + } + } + + .tiny-split-trigger-con-simple:hover { + .tiny-split-trigger { + background: transparent; + } + } + + .tiny-split-trigger-vertical { + background-color: transparent; + } + } + + &-grid { + border: var(--tv-DialogSelect-body-box-border); + border-radius: var(--tv-DialogSelect-border-radius); + overflow: hidden; } &-tree { - margin-right: var(--ti-dialog-select-tree-margin-right); + margin-right: var(--tv-DialogSelect-tree-margin-right); + + .tiny-input-prefix .tiny-input__inner { + padding-left: var(--tv-DialogSelect-search-input-padding-left); + } + + .tiny-input__prefix { + display: inline-block; + + .tiny-svg { + font-size: var(--tv-DialogSelect-icon-size); + } + } + + &-wrapper { + margin-top: var(--tv-DialogSelect-tree-wrapper-margin-top); + border: var(--tv-DialogSelect-body-box-border); + border-radius: var(--tv-DialogSelect-border-radius); + padding: var(--tv-DialogSelect-tree-wrapper-padding); + + > div { + height: 100%; + overflow: auto; + + .tiny-tree { + padding: 0; + } + } + } } &-box { - border: var(--ti-dialog-select-body-box-border-weight) var(--ti-dialog-select-body-box-border-style) var(--ti-dialog-select-body-box-border-color); - border-left: none; - } - - &-tree-wrapper { - overflow: auto; + border: var(--tv-DialogSelect-body-box-border); + border-radius: var(--tv-DialogSelect-border-radius); + margin-left: var(--tv-DialogSelect-box-margin-left); + overflow: hidden; } } @@ -49,34 +91,26 @@ display: flex; justify-content: space-between; align-items: center; - padding: var(--ti-dialog-select-footer-padding-vertical) var(--ti-dialog-select-footer-padding-horizontal); &-pager { .tiny-pager { - padding: var(--ti-dialog-select-pager-padding-vertical) var(--ti-dialog-select-pager-padding-horizontal); + padding: 0; &__btn-prev { - margin-left: var(--ti-dialog-select-pager-prev-margin-left); + margin-left: 0; } } } } - .tiny-grid__body-wrapper { - border-bottom: var(--ti-dialog-select-grid-body-border-weight-bottom); - } - .tiny-split-trigger-con-vertical.tiny-split-trigger-con-simple { - padding-left: var(--ti-dialog-select-split-simple-padding-left); - padding-right: var(--ti-dialog-select-split-simple-padding-right); - } - - .tiny-split-trigger-vertical { - background-color: var(--ti-dialog-select-split-bg-color); + padding: var(--tv-DialogSelect-split-trigger-padding); } .tiny-split-wrapper { box-shadow: none; + border: none; + border-radius: 0; } &.radio-check { @@ -85,7 +119,27 @@ } .tiny-dialog-select__body-tree { - margin-right: var(--ti-dialog-select-tree-radio-margin-right); + margin-right: 0; + } + + .@{dialog-select-prefix-cls}__body-grid { + border: none; + border-radius: 0; + overflow: auto; } } -} \ No newline at end of file + + &.is-tree { + .tiny-split-pane { + &.left-pane { + padding-right: 0; + } + + &.right-pane { + .tiny-dialog-select__body-box { + margin-left: 0; + } + } + } + } +} diff --git a/packages/theme/src/dialog-select/vars.less b/packages/theme/src/dialog-select/vars.less index 513428f92..c16509504 100644 --- a/packages/theme/src/dialog-select/vars.less +++ b/packages/theme/src/dialog-select/vars.less @@ -10,39 +10,31 @@ * */ -.component-css-vars-dialog-select() { - // 弹窗主体的顶部外边距 - --ti-dialog-box-body-margin-top: var(--ti-common-space-4x, 16px); - // 弹窗主体的底部外边距 - --ti-dialog-box-body-margin-bottom: var(--ti-common-space-0, 0px); - // 选择主体的底部外边距 - --ti-dialog-select-body-margin-bottom: var(--ti-common-space-4x, 16px); +.inject-DialogSelect-vars() { + // 左侧表格的圆角 + --tv-DialogSelect-border-radius: var(--tv-border-radius-md, 6px); + // 图标尺寸 + --tv-DialogSelect-icon-size: var(--tv-icon-size, 16px); + + // 搜索区域底部外边距 + --tv-DialogSelect-search-margin-bottom: var(--tv-space-md, 8px); + // 搜索框左侧内间距 + --tv-DialogSelect-search-input-padding-left: 32px; + // 树选择的右侧外边距 - --ti-dialog-select-tree-margin-right: var(--ti-common-space-2x, 8px); + --tv-DialogSelect-tree-margin-right: var(--tv-space-md, 8px); + // 树容器内边距 + --tv-DialogSelect-tree-wrapper-padding: var(--tv-space-md, 8px) var(--tv-space-sm, 4px) var(--tv-space-md, 8px) + var(--tv-space-xl, 16px); + // 树容器顶部外边距 + --tv-DialogSelect-tree-wrapper-margin-top: var(--tv-space-md, 8px); // 选择主体的边框粗细 - --ti-dialog-select-body-box-border-weight: var(--ti-common-border-weight-normal, 1px); - // 选择主体的边框样式 - --ti-dialog-select-body-box-border-style: var(--ti-common-border-style-solid, solid); - // 选择主题的边框颜色 - --ti-dialog-select-body-box-border-color: var(--ti-common-color-line-normal, #c2c2c2); - // 选择底部的水平方向内边距 - --ti-dialog-select-footer-padding-horizontal: var(--ti-common-space-6x, 24px); - // 选择底部的垂直方向的内边距 - --ti-dialog-select-footer-padding-vertical: var(--ti-common-space-0, 0px); - // 分页的水平方向内边距 - --ti-dialog-select-pager-padding-horizontal: var(--ti-common-space-0, 0px); - // 分页的垂直方向内边距 - --ti-dialog-select-pager-padding-vertical: var(--ti-common-space-0, 0px); - // 分页的上一页按钮的左侧外边距 - --ti-dialog-select-pager-prev-margin-left: var(--ti-common-space-0, 0px); - // 表格主体的底部边框 - --ti-dialog-select-grid-body-border-weight-bottom: var(--ti-common-space-0, 0px); - // 树单选时右侧外边距 - --ti-dialog-select-tree-radio-margin-right: var(--ti-common-space-0, 0px); - // 面板分割线的背景色 - --ti-dialog-select-split-bg-color: rgba(22, 30, 38, 0.2); + --tv-DialogSelect-body-box-border: var(--tv-border-width, 1px) solid var(--tv-color-border, #c2c2c2); + // 右侧选择框的左侧外边距 + --tv-DialogSelect-box-margin-left: var(--tv-space-sm, 4px); + // 面板分割线左侧内边距 - --ti-dialog-select-split-simple-padding-left: var(--ti-common-dropdown-gap, 4px); - // 面板分割线右侧内边距 - --ti-dialog-select-split-simple-padding-right: var(--ti-common-dropdown-gap, 4px); -} \ No newline at end of file + --tv-DialogSelect-split-trigger-padding: 0 var(--tv-space-sm, 4px); + // 左侧面板的右侧内间距 + --tv-DialogSelect-split-pane-padding-right-left: var(--tv-space-sm, 4px); +} diff --git a/packages/theme/src/grid/table.less b/packages/theme/src/grid/table.less index c00ea8b82..10b68ba3f 100644 --- a/packages/theme/src/grid/table.less +++ b/packages/theme/src/grid/table.less @@ -418,7 +418,8 @@ background-color: var(--tv-Grid-bg-color); // 勾选某一行时的背景颜色 - &.row__selected { + &.row__selected, + &.row__radio { background-color: var(--tv-Grid-bg-color-selected); } // 选中某一行时的背景颜色 diff --git a/packages/theme/src/selected-box/index.less b/packages/theme/src/selected-box/index.less index b197ca224..03d4ed08e 100644 --- a/packages/theme/src/selected-box/index.less +++ b/packages/theme/src/selected-box/index.less @@ -1,23 +1,27 @@ @import '../custom.less'; +@import './vars.less'; + @selected-box-prefix-cls: ~'@{css-prefix}selected-box'; .@{selected-box-prefix-cls} { + .inject-SelectedBox-vars(); + height: 100%; - margin-left: 0.5rem; - margin-right: 0.5rem; display: grid; grid-template-columns: repeat(1, minmax(0, 1fr)); - grid-template-rows: 36px auto; - background-color: rgb(255 255 255); + grid-template-rows: var(--tv-SelectedBox-header-height) auto; + background-color: var(--tv-SelectedBox-bg-color); + font-size: var(--tv-SelectedBox-font-size); + line-height: var(--tv-SelectedBox-line-height); + color: var(--ti-selected-text-color); .@{selected-box-prefix-cls}__header { display: flex; justify-content: space-between; align-items: center; - font-size: 0.75rem; - color: #191919; - padding-left: 0.5rem; - padding-right: 0.5rem; + padding: var(--tv-SelectedBox-header-padding); + border-bottom: var(--tv-SelectedBox-header-border); + height: var(--tv-SelectedBox-header-height); .@{selected-box-prefix-cls}__header-select { max-width: 8rem; @@ -30,7 +34,7 @@ .@{selected-box-prefix-cls}__header-right { display: flex; user-select: none; - color: #0067d1; + color: var(--tv-SelectedBox-text-color-clear); > :not([hidden]) ~ :not([hidden]) { margin-right: 0; @@ -46,22 +50,19 @@ .@{selected-box-prefix-cls}__list { overflow-x: hidden; overflow-y: auto; - font-size: 0.75rem; - color: #191919; + padding: var(--tv-SelectedBox-list-padding); .@{selected-box-prefix-cls}__item { cursor: pointer; - padding-left: 0.5rem; - padding-right: 0.5rem; - border-radius: 0.125rem; + padding: var(--tv-SelectedBox-item-padding); &:hover { - background-color: #f5f5f5; + background-color: var(--tv-SelectedBox-bg-color-hover); } .@{selected-box-prefix-cls}__item-grid { display: grid; - grid-template-columns: auto 24px; + grid-template-columns: auto var(--tv-SelectedBox-item-right-width); .@{selected-box-prefix-cls}__item-grid-left { overflow: hidden; @@ -69,61 +70,65 @@ white-space: nowrap; .@{selected-box-prefix-cls}__item-grid-left-label { - height: 1.75rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; - transform: translateY(0.25rem); .@{selected-box-prefix-cls}__item-grid-left-label-pri { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; position: relative; - top: 50%; - transform: translateY(-50%); } } .@{selected-box-prefix-cls}__item-grid-left-text { - height: 1.75rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; - transform: translateY(-0.25rem); .@{selected-box-prefix-cls}__item-grid-left-text-aux { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; - color: #939393; + color: var(--tv-SelectedBox-item-aux-text-color); position: relative; - top: 50%; - transform: translateY(-50%); } } } .@{selected-box-prefix-cls}__item-grid-right { - height: 1.75rem; - transform: translateY(0.25rem); display: flex; align-items: center; justify-content: flex-end; - fill: #393939; + fill: var(--tv-SelectedBox-icon-color); + height: var(--tv-SelectedBox-item-right-height); + + .tiny-svg { + font-size: var(--tv-SelectedBox-icon-size); + } &:hover { - fill: #0072e8; + fill: var(--tv-SelectedBox-icon-color-hover); } } } } + + &-empty { + text-align: center; + color: var(--tv-SelectedBox-text-color-empty); + + > div { + margin-top: 50%; + } + } } .@{selected-box-prefix-cls}__list--inverse { text-decoration-line: line-through; text-decoration-style: solid; - text-decoration-color: #191919; + text-decoration-color: var(--tv-SelectedBox-text-color); } .@{selected-box-prefix-cls}__popover { diff --git a/packages/theme/src/selected-box/vars.less b/packages/theme/src/selected-box/vars.less new file mode 100644 index 000000000..30be508d3 --- /dev/null +++ b/packages/theme/src/selected-box/vars.less @@ -0,0 +1,56 @@ +/** +* Copyright (c) 2022 - present TinyVue Authors. +* Copyright (c) 2022 - present Huawei Cloud Computing Technologies Co., Ltd. +* +* Use of this source code is governed by an MIT-style license. +* +* THE OPEN SOURCE SOFTWARE IN THIS PRODUCT IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, +* BUT WITHOUT ANY WARRANTY, WITHOUT EVEN THE IMPLIED WARRANTY OF MERCHANTABILITY OR FITNESS FOR +* A PARTICULAR PURPOSE. SEE THE APPLICABLE LICENSES FOR MORE DETAILS. +* +*/ + +.inject-SelectedBox-vars() { + // 文本色 + --tv-SelectedBox-text-color: var(--tv-color-text, #191919); + // 字号 + --tv-SelectedBox-font-size: var(--tv-font-size-md, 14px); + // 行高 + --tv-SelectedBox-line-height: var(--tv-line-height-number, 1.5); + // 背景色 + --tv-SelectedBox-bg-color: var(--tv-color-bg-secondary, #fff); + // 悬浮背景色 + --tv-SelectedBox-bg-color-hover: var(--tv-color-bg-hover, #f5f5f5); + + // 图标色 + --tv-SelectedBox-icon-color: var(--tv-color-icon, #808080); + // 图标悬浮色 + --tv-SelectedBox-icon-color-hover: var(--tv-color-icon-hover#191919); + // 图标尺寸 + --tv-SelectedBox-icon-size: var(--tv-icon-size, 16px); + + // 列表框内间距 + --tv-SelectedBox-list-padding: var(--tv-space-md, 8px) 0; + // 空数据提示文本色 + --tv-SelectedBox-text-color-empty: var(--tv-color-text-secondary, #595959); + // 清空按钮文本色 + --tv-SelectedBox-text-color-clear: var(--tv-color-icon-link, #1476ff); + + // 头部高度 + --tv-SelectedBox-header-height: var(--tv-size-height-md, 32px); + //头部内间距 + --tv-SelectedBox-header-padding: 0px var(--tv-space-lg, 12px); + // 头部分割线 + --tv-SelectedBox-header-border: var(--tv-border-width, 1px) solid var(--tv-color-border-divider, #f0f0f0); + + // 列表项内间距 + --tv-SelectedBox-item-padding: 5.5px var(--tv-space-lg, 12px); + // 列表项右侧高度 + --tv-SelectedBox-item-right-height: calc( + var(--tv-SelectedBox-line-height, 1.5) * var(--tv-SelectedBox-font-size, 14px) + ); + // 列表项右侧宽度 + --tv-SelectedBox-item-right-width: 24px; + // 列表项弱化文本色 + --tv-SelectedBox-item-aux-text-color: var(--tv-color-text-weaken, #808080); +} diff --git a/packages/theme/src/svgs/agency.svg b/packages/theme/src/svgs/agency.svg new file mode 100644 index 000000000..7910aaaeb --- /dev/null +++ b/packages/theme/src/svgs/agency.svg @@ -0,0 +1,9 @@ + + + Created with Pixso. + + + + + + diff --git a/packages/theme/src/svgs/app.svg b/packages/theme/src/svgs/app.svg index ad5eddbe8..1cfcca3f1 100644 --- a/packages/theme/src/svgs/app.svg +++ b/packages/theme/src/svgs/app.svg @@ -1,6 +1,9 @@ - - - - - - \ No newline at end of file + + + Created with Pixso. + + + + + + diff --git a/packages/theme/src/svgs/chevron-down.svg b/packages/theme/src/svgs/chevron-down.svg index ee2f28682..71787e8cf 100644 --- a/packages/theme/src/svgs/chevron-down.svg +++ b/packages/theme/src/svgs/chevron-down.svg @@ -1,15 +1,12 @@ - - - - - - - - - - - \ No newline at end of file + + + + + + diff --git a/packages/theme/src/svgs/chevron-left.svg b/packages/theme/src/svgs/chevron-left.svg index cdbde3c56..adec662ad 100644 --- a/packages/theme/src/svgs/chevron-left.svg +++ b/packages/theme/src/svgs/chevron-left.svg @@ -1,13 +1,10 @@ - - - - - - + + + Created with Pixso. + + + + + + diff --git a/packages/theme/src/svgs/chevron-right.svg b/packages/theme/src/svgs/chevron-right.svg index 80c31c5c8..8b4b29c58 100644 --- a/packages/theme/src/svgs/chevron-right.svg +++ b/packages/theme/src/svgs/chevron-right.svg @@ -1,13 +1,10 @@ - - - - - - + + + Created with Pixso. + + + + + + diff --git a/packages/theme/src/svgs/close.svg b/packages/theme/src/svgs/close.svg index 62716536a..e7316da3d 100644 --- a/packages/theme/src/svgs/close.svg +++ b/packages/theme/src/svgs/close.svg @@ -1,13 +1,9 @@ - - - - - - + + + Created with Pixso. + + + + + diff --git a/packages/theme/src/svgs/del.svg b/packages/theme/src/svgs/del.svg index 711653ccc..ba4da63b2 100644 --- a/packages/theme/src/svgs/del.svg +++ b/packages/theme/src/svgs/del.svg @@ -1,20 +1,9 @@ - - - - - - - - - - - + + + Created with Pixso. + + + + - - \ No newline at end of file + diff --git a/packages/theme/src/svgs/double-left.svg b/packages/theme/src/svgs/double-left.svg index d573f7212..c2af789ac 100644 --- a/packages/theme/src/svgs/double-left.svg +++ b/packages/theme/src/svgs/double-left.svg @@ -1,15 +1,30 @@ - + + + + + + + + +]> + - - + + + + + + + + + diff --git a/packages/theme/src/svgs/double-right.svg b/packages/theme/src/svgs/double-right.svg index 76e249a0d..79c0388a0 100644 --- a/packages/theme/src/svgs/double-right.svg +++ b/packages/theme/src/svgs/double-right.svg @@ -1,15 +1,30 @@ - + + + + + + + + +]> + - - + + + + + + + + diff --git a/packages/theme/src/svgs/down-ward.svg b/packages/theme/src/svgs/down-ward.svg index 343a76329..7a0187395 100644 --- a/packages/theme/src/svgs/down-ward.svg +++ b/packages/theme/src/svgs/down-ward.svg @@ -1,7 +1,8 @@ - - - - \ No newline at end of file + + + Created with Pixso. + + + + + diff --git a/packages/theme/src/svgs/download.svg b/packages/theme/src/svgs/download.svg index 540955329..889ecb3b4 100644 --- a/packages/theme/src/svgs/download.svg +++ b/packages/theme/src/svgs/download.svg @@ -1,17 +1,10 @@ - - - - - - - - - + + + Created with Pixso. + + + + - - \ No newline at end of file + + diff --git a/packages/theme/src/svgs/editor-list.svg b/packages/theme/src/svgs/editor-list.svg index 2613631df..896f0838c 100644 --- a/packages/theme/src/svgs/editor-list.svg +++ b/packages/theme/src/svgs/editor-list.svg @@ -1,11 +1,9 @@ - - - - - - - - - - - \ No newline at end of file + + + Created with Pixso. + + + + + + diff --git a/packages/theme/src/svgs/ellipsis.svg b/packages/theme/src/svgs/ellipsis.svg index 30c4c2f5a..fcddae578 100644 --- a/packages/theme/src/svgs/ellipsis.svg +++ b/packages/theme/src/svgs/ellipsis.svg @@ -1,16 +1,9 @@ - - - - - - - - - - - + + + Created with Pixso. + + + + - - \ No newline at end of file + diff --git a/packages/theme/src/svgs/feedback.svg b/packages/theme/src/svgs/feedback.svg new file mode 100644 index 000000000..e572b091f --- /dev/null +++ b/packages/theme/src/svgs/feedback.svg @@ -0,0 +1,9 @@ + + + Created with Pixso. + + + + + + diff --git a/packages/theme/src/svgs/fileupload.svg b/packages/theme/src/svgs/fileupload.svg index 32a6375a5..02903b0ab 100644 --- a/packages/theme/src/svgs/fileupload.svg +++ b/packages/theme/src/svgs/fileupload.svg @@ -1,13 +1,9 @@ - - - - - - \ No newline at end of file + + + Created with Pixso. + + + + + + diff --git a/packages/theme/src/svgs/finish.svg b/packages/theme/src/svgs/finish.svg index b9fad9ce4..da266f34b 100644 --- a/packages/theme/src/svgs/finish.svg +++ b/packages/theme/src/svgs/finish.svg @@ -1,10 +1,8 @@ - - - - - - - - - - \ No newline at end of file + + + Created with Pixso. + + + + + diff --git a/packages/theme/src/svgs/fullscreen-right.svg b/packages/theme/src/svgs/fullscreen-right.svg new file mode 100644 index 000000000..4c8700113 --- /dev/null +++ b/packages/theme/src/svgs/fullscreen-right.svg @@ -0,0 +1,9 @@ + + + Created with Pixso. + + + + + + diff --git a/packages/theme/src/svgs/help-circle.svg b/packages/theme/src/svgs/help-circle.svg index 04a7c6bc3..61ebe7886 100644 --- a/packages/theme/src/svgs/help-circle.svg +++ b/packages/theme/src/svgs/help-circle.svg @@ -1,22 +1,9 @@ - - - - - - - - - + + + Created with Pixso. + + + + - - \ No newline at end of file + diff --git a/packages/theme/src/svgs/left-frozen.svg b/packages/theme/src/svgs/left-frozen.svg index 74828dfd6..9929b6cdf 100644 --- a/packages/theme/src/svgs/left-frozen.svg +++ b/packages/theme/src/svgs/left-frozen.svg @@ -1,26 +1,16 @@ - - + - - - - - - - - - - - - - - + viewBox="0 0 16 16" style="enable-background:new 0 0 16 16;" xml:space="preserve"> + +Created with Pixso. + + diff --git a/packages/theme/src/svgs/locale-panel.svg b/packages/theme/src/svgs/locale-panel.svg new file mode 100644 index 000000000..fe1ab3815 --- /dev/null +++ b/packages/theme/src/svgs/locale-panel.svg @@ -0,0 +1,9 @@ + + + Created with Pixso. + + + + + + diff --git a/packages/theme/src/svgs/lock.svg b/packages/theme/src/svgs/lock.svg index 2939a1982..9eb37fd94 100644 --- a/packages/theme/src/svgs/lock.svg +++ b/packages/theme/src/svgs/lock.svg @@ -1,17 +1,10 @@ - - - - - - - - - - - + + + Created with Pixso. + + + + + - - \ No newline at end of file + diff --git a/packages/theme/src/svgs/mail.svg b/packages/theme/src/svgs/mail.svg index 89c94a7eb..721a99b65 100644 --- a/packages/theme/src/svgs/mail.svg +++ b/packages/theme/src/svgs/mail.svg @@ -1,16 +1,10 @@ - - - - - - - - - + + + Created with Pixso. + + + + + - - \ No newline at end of file + diff --git a/packages/theme/src/svgs/minscreen-right.svg b/packages/theme/src/svgs/minscreen-right.svg index d3e130b59..7b4a4b2e2 100644 --- a/packages/theme/src/svgs/minscreen-right.svg +++ b/packages/theme/src/svgs/minscreen-right.svg @@ -1,10 +1,10 @@ - - - - - - - - - - \ No newline at end of file + + + Created with Pixso. + + + + + + + diff --git a/packages/theme/src/svgs/picture.svg b/packages/theme/src/svgs/picture.svg index bf9b98ee4..38fdacfc0 100644 --- a/packages/theme/src/svgs/picture.svg +++ b/packages/theme/src/svgs/picture.svg @@ -1,18 +1,9 @@ - - - - - - - - - + + + Created with Pixso. + + + + - - \ No newline at end of file + diff --git a/packages/theme/src/svgs/popup.svg b/packages/theme/src/svgs/popup.svg index 2045fd6c4..fcddae578 100644 --- a/packages/theme/src/svgs/popup.svg +++ b/packages/theme/src/svgs/popup.svg @@ -1 +1,9 @@ - \ No newline at end of file + + + Created with Pixso. + + + + + + diff --git a/packages/theme/src/svgs/right-frozen.svg b/packages/theme/src/svgs/right-frozen.svg index 3fdc42a1a..e98c6c4e4 100644 --- a/packages/theme/src/svgs/right-frozen.svg +++ b/packages/theme/src/svgs/right-frozen.svg @@ -1,25 +1,16 @@ - - - - - - - - - - - - - - - - \ No newline at end of file + + + +Created with Pixso. + + + diff --git a/packages/theme/src/svgs/setting.svg b/packages/theme/src/svgs/setting.svg index 273f7d9ba..aefa63989 100644 --- a/packages/theme/src/svgs/setting.svg +++ b/packages/theme/src/svgs/setting.svg @@ -1,30 +1,9 @@ - - - - - - - - - + + + Created with Pixso. + + + + - - \ No newline at end of file + diff --git a/packages/theme/src/svgs/shutdown.svg b/packages/theme/src/svgs/shutdown.svg new file mode 100644 index 000000000..98cb80727 --- /dev/null +++ b/packages/theme/src/svgs/shutdown.svg @@ -0,0 +1,9 @@ + + + Created with Pixso. + + + + + + diff --git a/packages/theme/src/svgs/star-o.svg b/packages/theme/src/svgs/star-o.svg index 97c686d32..83e96c6d3 100644 --- a/packages/theme/src/svgs/star-o.svg +++ b/packages/theme/src/svgs/star-o.svg @@ -1,20 +1,9 @@ - - - - - - - - - + + + Created with Pixso. + + + + - - \ No newline at end of file + diff --git a/packages/theme/src/svgs/successful.svg b/packages/theme/src/svgs/successful.svg index 28189d145..c11f32713 100644 --- a/packages/theme/src/svgs/successful.svg +++ b/packages/theme/src/svgs/successful.svg @@ -1,20 +1,9 @@ - - - - - - - - - - + + + Created with Pixso. + + + + - - \ No newline at end of file + diff --git a/packages/theme/src/svgs/synchronize.svg b/packages/theme/src/svgs/synchronize.svg new file mode 100644 index 000000000..970ed136d --- /dev/null +++ b/packages/theme/src/svgs/synchronize.svg @@ -0,0 +1,9 @@ + + + Created with Pixso. + + + + + + diff --git a/packages/theme/src/svgs/unlock.svg b/packages/theme/src/svgs/unlock.svg index 346996141..2575766f1 100644 --- a/packages/theme/src/svgs/unlock.svg +++ b/packages/theme/src/svgs/unlock.svg @@ -1,18 +1,11 @@ - - - - - - - - - - - - - \ No newline at end of file + + +Created with Pixso. + + diff --git a/packages/theme/src/svgs/update.svg b/packages/theme/src/svgs/update.svg new file mode 100644 index 000000000..5a2eec6bb --- /dev/null +++ b/packages/theme/src/svgs/update.svg @@ -0,0 +1,7 @@ + + + Created with Pixso. + + + + diff --git a/packages/theme/src/svgs/warn.svg b/packages/theme/src/svgs/warn.svg index 026e9f303..959a1b5a6 100644 --- a/packages/theme/src/svgs/warn.svg +++ b/packages/theme/src/svgs/warn.svg @@ -1,13 +1,7 @@ - - - - - - - - - - \ No newline at end of file + + + Created with Pixso. + + + + diff --git a/packages/theme/src/svgs/warning.svg b/packages/theme/src/svgs/warning.svg index 6bbf04118..20be54b6f 100644 --- a/packages/theme/src/svgs/warning.svg +++ b/packages/theme/src/svgs/warning.svg @@ -1,16 +1,14 @@ - - - - - - - - - - - \ No newline at end of file + + + + + + diff --git a/packages/theme/src/svgs/web-plus.svg b/packages/theme/src/svgs/web-plus.svg index b8172cf59..fbb861a42 100644 --- a/packages/theme/src/svgs/web-plus.svg +++ b/packages/theme/src/svgs/web-plus.svg @@ -1,9 +1,9 @@ - - - - - - - + + + Created with Pixso. + + + + + diff --git a/packages/vue-common/src/index.ts b/packages/vue-common/src/index.ts index e4edc64a5..4c7b59b18 100644 --- a/packages/vue-common/src/index.ts +++ b/packages/vue-common/src/index.ts @@ -256,7 +256,14 @@ export function svg({ name = 'Icon', component }) { defineComponent({ name: $prefix + name, setup: (props, context) => { - const { fill, width, height, 'custom-class': customClass } = context.attrs || {} + const { + fill, + width, + height, + 'custom-class': customClass, + 'first-color': firstColor, + 'second-color': secondColor + } = context.attrs || {} const mergeProps = Object.assign({}, props, propData || null) const mode = resolveMode(mergeProps, context) const isMobileFirst = mode === 'mobile-first' @@ -271,7 +278,13 @@ export function svg({ name = 'Icon', component }) { const extend = Object.assign( { - style: { fill, width, height }, + style: { + fill, + width, + height, + '--tiny-first-color': firstColor || '', + '--tiny-second-color': secondColor || '' + }, class: className, isSvg: true }, diff --git a/packages/vue-icon-multicolor/CHANGELOG.md b/packages/vue-icon-multicolor/CHANGELOG.md new file mode 100644 index 000000000..420e6f23d --- /dev/null +++ b/packages/vue-icon-multicolor/CHANGELOG.md @@ -0,0 +1 @@ +# Change Log diff --git a/packages/vue-icon-multicolor/index.ts b/packages/vue-icon-multicolor/index.ts new file mode 100644 index 000000000..0ff50e327 --- /dev/null +++ b/packages/vue-icon-multicolor/index.ts @@ -0,0 +1,130 @@ +import ColorIconActivitys from './src/activitys' +import ColorIconAdministrativeFees from './src/administrative-fees' +import ColorIconAirFares from './src/air-fares' +import ColorIconApply from './src/apply' +import ColorIconArchives from './src/archives' +import ColorIconBaggageFees from './src/baggage-fees' +import ColorIconCarInsurance from './src/car-insurance' +import ColorIconCarRental from './src/car-rental' +import ColorIconCeremonyFees from './src/ceremony-fees' +import ColorIconConolences from './src/condolences' +import ColorIconEntertainmentExpense from './src/entertainment-expense' +import ColorIconExpertConsultationFees from './src/expert-consultation-fees' +import ColorIconExpertTeachingFees from './src/expert-teaching-fees' +import ColorIconExpressDelivery from './src/express-delivery' +import ColorIconFerryFares from './src/ferry-fares' +import ColorIconFuelCost from './src/fuel-cost' +import ColorIconGiftCost from './src/gift-cost' +import ColorIconHousingSubsidy from './src/housing-subsidy' +import ColorIconIncidentalExpenses from './src/incidental-expenses' +import ColorIconLandlinePhone from './src/landline-phone' +import ColorIconLineRental from './src/line-rental' +import ColorIconLivingSubsidy from './src/living-subsidy' +import ColorIconLodgingFees from './src/lodging-fees' +import ColorIconMaintenanceService from './src/maintenance-service' +import ColorIconMealAllowance from './src/meal-allowance' +import ColorIconMealSubsidy from './src/meal-subsidy' +import ColorIconMeetingExpenses from './src/meeting-expenses' +import ColorIconNewspaperSubscription from './src/newspaper-subscription' +import ColorIconOfficeEquipments from './src/office-equipments' +import ColorIconOfficeSupplies from './src/office-supplies' +import ColorIconOthers from './src/others' +import ColorIconPhoneBills from './src/phone-bills' +import ColorIconPhysicalExamination from './src/physical-examination' +import ColorIconPrivateVehicleAllowance from './src/private-vehicle-allowance' +import ColorIconServiceCharges from './src/service-charges' +import ColorIconTaxiFares from './src/taxi-fares' +import ColorIconTrainFares from './src/train-fares' +import ColorIconTrainingFees from './src/training-fees' +import ColorIconTravelExpenses from './src/travel-expenses' +import ColorIconVenueHospitalityFees from './src/venue-hospitality-fees' +import ColorIconVenueRentalFees from './src/venue-rental-fees' +import ColorIconVisaFees from './src/visa-fees' + +export { ColorIconActivitys } +export { ColorIconAdministrativeFees } +export { ColorIconAirFares } +export { ColorIconApply } +export { ColorIconArchives } +export { ColorIconBaggageFees } +export { ColorIconCarInsurance } +export { ColorIconCarRental } +export { ColorIconCeremonyFees } +export { ColorIconConolences } +export { ColorIconEntertainmentExpense } +export { ColorIconExpertConsultationFees } +export { ColorIconExpertTeachingFees } +export { ColorIconExpressDelivery } +export { ColorIconFerryFares } +export { ColorIconFuelCost } +export { ColorIconGiftCost } +export { ColorIconHousingSubsidy } +export { ColorIconIncidentalExpenses } +export { ColorIconLandlinePhone } +export { ColorIconLineRental } +export { ColorIconLivingSubsidy } +export { ColorIconLodgingFees } +export { ColorIconMaintenanceService } +export { ColorIconMealAllowance } +export { ColorIconMealSubsidy } +export { ColorIconMeetingExpenses } +export { ColorIconNewspaperSubscription } +export { ColorIconOfficeEquipments } +export { ColorIconOfficeSupplies } +export { ColorIconOthers } +export { ColorIconPhoneBills } +export { ColorIconPhysicalExamination } +export { ColorIconPrivateVehicleAllowance } +export { ColorIconServiceCharges } +export { ColorIconTaxiFares } +export { ColorIconTrainFares } +export { ColorIconTrainingFees } +export { ColorIconTravelExpenses } +export { ColorIconVenueHospitalityFees } +export { ColorIconVenueRentalFees } +export { ColorIconVisaFees } + +export default { + ColorIconActivitys, + ColorIconAdministrativeFees, + ColorIconAirFares, + ColorIconApply, + ColorIconArchives, + ColorIconBaggageFees, + ColorIconCarInsurance, + ColorIconCarRental, + ColorIconCeremonyFees, + ColorIconConolences, + ColorIconEntertainmentExpense, + ColorIconExpertConsultationFees, + ColorIconExpertTeachingFees, + ColorIconExpressDelivery, + ColorIconFerryFares, + ColorIconFuelCost, + ColorIconGiftCost, + ColorIconHousingSubsidy, + ColorIconIncidentalExpenses, + ColorIconLandlinePhone, + ColorIconLineRental, + ColorIconLivingSubsidy, + ColorIconLodgingFees, + ColorIconMaintenanceService, + ColorIconMealAllowance, + ColorIconMealSubsidy, + ColorIconMeetingExpenses, + ColorIconNewspaperSubscription, + ColorIconOfficeEquipments, + ColorIconOfficeSupplies, + ColorIconOthers, + ColorIconPhoneBills, + ColorIconPhysicalExamination, + ColorIconPrivateVehicleAllowance, + ColorIconServiceCharges, + ColorIconTaxiFares, + ColorIconTrainFares, + ColorIconTrainingFees, + ColorIconTravelExpenses, + ColorIconVenueHospitalityFees, + ColorIconVenueRentalFees, + ColorIconVisaFees +} diff --git a/packages/vue-icon-multicolor/package.json b/packages/vue-icon-multicolor/package.json new file mode 100644 index 000000000..d6d60a22e --- /dev/null +++ b/packages/vue-icon-multicolor/package.json @@ -0,0 +1,19 @@ +{ + "name": "@opentiny/vue-icon-multicolor", + "version": "3.18.0", + "description": "", + "main": "index.ts", + "license": "MIT", + "sideEffects": false, + "exports": { + ".": "./index.ts", + "./*": "./src/*" + }, + "dependencies": { + "@opentiny/vue-common": "workspace:~" + }, + "scripts": { + "build": "pnpm -w build:ui $npm_package_name", + "//postversion": "pnpm build" + } +} diff --git a/packages/vue-icon-multicolor/src/activitys/index.ts b/packages/vue-icon-multicolor/src/activitys/index.ts new file mode 100644 index 000000000..eb35d2fd4 --- /dev/null +++ b/packages/vue-icon-multicolor/src/activitys/index.ts @@ -0,0 +1,4 @@ +import { svg } from '@opentiny/vue-common' +import Activitys from '../../svgs/activitys.svg' + +export default svg({ name: 'ColorIconActivitys', component: Activitys }) diff --git a/packages/vue-icon-multicolor/src/administrative-fees/index.ts b/packages/vue-icon-multicolor/src/administrative-fees/index.ts new file mode 100644 index 000000000..11716f78b --- /dev/null +++ b/packages/vue-icon-multicolor/src/administrative-fees/index.ts @@ -0,0 +1,4 @@ +import { svg } from '@opentiny/vue-common' +import AdministrativeFees from '../../svgs/administrative-fees.svg' + +export default svg({ name: 'ColorIconAdministrativeFees', component: AdministrativeFees }) diff --git a/packages/vue-icon-multicolor/src/air-fares/index.ts b/packages/vue-icon-multicolor/src/air-fares/index.ts new file mode 100644 index 000000000..ff1607a58 --- /dev/null +++ b/packages/vue-icon-multicolor/src/air-fares/index.ts @@ -0,0 +1,4 @@ +import { svg } from '@opentiny/vue-common' +import AirFares from '../../svgs/air-fares.svg' + +export default svg({ name: 'ColorIconAirFares', component: AirFares }) diff --git a/packages/vue-icon-multicolor/src/apply/index.ts b/packages/vue-icon-multicolor/src/apply/index.ts new file mode 100644 index 000000000..7b22d0a49 --- /dev/null +++ b/packages/vue-icon-multicolor/src/apply/index.ts @@ -0,0 +1,4 @@ +import { svg } from '@opentiny/vue-common' +import Apply from '../../svgs/apply.svg' + +export default svg({ name: 'ColorIconApply', component: Apply }) diff --git a/packages/vue-icon-multicolor/src/archives/index.ts b/packages/vue-icon-multicolor/src/archives/index.ts new file mode 100644 index 000000000..34d36de01 --- /dev/null +++ b/packages/vue-icon-multicolor/src/archives/index.ts @@ -0,0 +1,4 @@ +import { svg } from '@opentiny/vue-common' +import Archives from '../../svgs/archives.svg' + +export default svg({ name: 'ColorIconArchives', component: Archives }) diff --git a/packages/vue-icon-multicolor/src/baggage-fees/index.ts b/packages/vue-icon-multicolor/src/baggage-fees/index.ts new file mode 100644 index 000000000..c357c495c --- /dev/null +++ b/packages/vue-icon-multicolor/src/baggage-fees/index.ts @@ -0,0 +1,4 @@ +import { svg } from '@opentiny/vue-common' +import BaggageFees from '../../svgs/baggage-fees.svg' + +export default svg({ name: 'ColorIconBaggageFees', component: BaggageFees }) diff --git a/packages/vue-icon-multicolor/src/car-insurance/index.ts b/packages/vue-icon-multicolor/src/car-insurance/index.ts new file mode 100644 index 000000000..1fd129f24 --- /dev/null +++ b/packages/vue-icon-multicolor/src/car-insurance/index.ts @@ -0,0 +1,4 @@ +import { svg } from '@opentiny/vue-common' +import CarInsurance from '../../svgs/car-insurance.svg' + +export default svg({ name: 'ColorIconCarInsurance', component: CarInsurance }) diff --git a/packages/vue-icon-multicolor/src/car-rental/index.ts b/packages/vue-icon-multicolor/src/car-rental/index.ts new file mode 100644 index 000000000..3d92f52d9 --- /dev/null +++ b/packages/vue-icon-multicolor/src/car-rental/index.ts @@ -0,0 +1,4 @@ +import { svg } from '@opentiny/vue-common' +import CarRental from '../../svgs/car-rental.svg' + +export default svg({ name: 'ColorIconCarRental', component: CarRental }) diff --git a/packages/vue-icon-multicolor/src/ceremony-fees/index.ts b/packages/vue-icon-multicolor/src/ceremony-fees/index.ts new file mode 100644 index 000000000..840ad70ef --- /dev/null +++ b/packages/vue-icon-multicolor/src/ceremony-fees/index.ts @@ -0,0 +1,4 @@ +import { svg } from '@opentiny/vue-common' +import CeremonyFees from '../../svgs/ceremony-fees.svg' + +export default svg({ name: 'IconCeremonyFees', component: CeremonyFees }) diff --git a/packages/vue-icon-multicolor/src/condolences/index.ts b/packages/vue-icon-multicolor/src/condolences/index.ts new file mode 100644 index 000000000..fd3b5f483 --- /dev/null +++ b/packages/vue-icon-multicolor/src/condolences/index.ts @@ -0,0 +1,4 @@ +import { svg } from '@opentiny/vue-common' +import Conolences from '../../svgs/condolences.svg' + +export default svg({ name: 'ColorIconConolences', component: Conolences }) diff --git a/packages/vue-icon-multicolor/src/entertainment-expense/index.ts b/packages/vue-icon-multicolor/src/entertainment-expense/index.ts new file mode 100644 index 000000000..406193aa3 --- /dev/null +++ b/packages/vue-icon-multicolor/src/entertainment-expense/index.ts @@ -0,0 +1,4 @@ +import { svg } from '@opentiny/vue-common' +import EntertainmentExpense from '../../svgs/entertainment-expense.svg' + +export default svg({ name: 'IconEntertainmentExpense', component: EntertainmentExpense }) diff --git a/packages/vue-icon-multicolor/src/expert-consultation-fees/index.ts b/packages/vue-icon-multicolor/src/expert-consultation-fees/index.ts new file mode 100644 index 000000000..5f6898bfe --- /dev/null +++ b/packages/vue-icon-multicolor/src/expert-consultation-fees/index.ts @@ -0,0 +1,4 @@ +import { svg } from '@opentiny/vue-common' +import ExpertConsultationFees from '../../svgs/expert-consultation-fees.svg' + +export default svg({ name: 'ColorIconExpertConsultationFees', component: ExpertConsultationFees }) diff --git a/packages/vue-icon-multicolor/src/expert-teaching-fees/index.ts b/packages/vue-icon-multicolor/src/expert-teaching-fees/index.ts new file mode 100644 index 000000000..782cf28ee --- /dev/null +++ b/packages/vue-icon-multicolor/src/expert-teaching-fees/index.ts @@ -0,0 +1,4 @@ +import { svg } from '@opentiny/vue-common' +import ExpertTeachingFees from '../../svgs/expert-teaching-fees.svg' + +export default svg({ name: 'ColorIconExpertTeachingFees', component: ExpertTeachingFees }) diff --git a/packages/vue-icon-multicolor/src/express-delivery/index.ts b/packages/vue-icon-multicolor/src/express-delivery/index.ts new file mode 100644 index 000000000..c8514cc43 --- /dev/null +++ b/packages/vue-icon-multicolor/src/express-delivery/index.ts @@ -0,0 +1,4 @@ +import { svg } from '@opentiny/vue-common' +import ExpressDelivery from '../../svgs/express-delivery.svg' + +export default svg({ name: 'ColorIconExpressDelivery', component: ExpressDelivery }) diff --git a/packages/vue-icon-multicolor/src/ferry-fares/index.ts b/packages/vue-icon-multicolor/src/ferry-fares/index.ts new file mode 100644 index 000000000..569aae2db --- /dev/null +++ b/packages/vue-icon-multicolor/src/ferry-fares/index.ts @@ -0,0 +1,4 @@ +import { svg } from '@opentiny/vue-common' +import FerryFares from '../../svgs/ferry-fares.svg' + +export default svg({ name: 'ColorIconFerryFares', component: FerryFares }) diff --git a/packages/vue-icon-multicolor/src/fuel-cost/index.ts b/packages/vue-icon-multicolor/src/fuel-cost/index.ts new file mode 100644 index 000000000..421ccc927 --- /dev/null +++ b/packages/vue-icon-multicolor/src/fuel-cost/index.ts @@ -0,0 +1,4 @@ +import { svg } from '@opentiny/vue-common' +import FuelCost from '../../svgs/fuel-cost.svg' + +export default svg({ name: 'ColorIconFuelCost', component: FuelCost }) diff --git a/packages/vue-icon-multicolor/src/gift-cost/index.ts b/packages/vue-icon-multicolor/src/gift-cost/index.ts new file mode 100644 index 000000000..7e42b4217 --- /dev/null +++ b/packages/vue-icon-multicolor/src/gift-cost/index.ts @@ -0,0 +1,4 @@ +import { svg } from '@opentiny/vue-common' +import GiftCost from '../../svgs/gift-cost.svg' + +export default svg({ name: 'ColorIconGiftCost', component: GiftCost }) diff --git a/packages/vue-icon-multicolor/src/housing-subsidy/index.ts b/packages/vue-icon-multicolor/src/housing-subsidy/index.ts new file mode 100644 index 000000000..507142ee6 --- /dev/null +++ b/packages/vue-icon-multicolor/src/housing-subsidy/index.ts @@ -0,0 +1,4 @@ +import { svg } from '@opentiny/vue-common' +import HousingSubsidy from '../../svgs/housing-subsidy.svg' + +export default svg({ name: 'ColorIconHousingSubsidy', component: HousingSubsidy }) diff --git a/packages/vue-icon-multicolor/src/incidental-expenses/index.ts b/packages/vue-icon-multicolor/src/incidental-expenses/index.ts new file mode 100644 index 000000000..05f664eab --- /dev/null +++ b/packages/vue-icon-multicolor/src/incidental-expenses/index.ts @@ -0,0 +1,4 @@ +import { svg } from '@opentiny/vue-common' +import IncidentalExpenses from '../../svgs/incidental-expenses.svg' + +export default svg({ name: 'ColorIconIncidentalExpenses', component: IncidentalExpenses }) diff --git a/packages/vue-icon-multicolor/src/index.ts b/packages/vue-icon-multicolor/src/index.ts new file mode 100644 index 000000000..76d0cfac9 --- /dev/null +++ b/packages/vue-icon-multicolor/src/index.ts @@ -0,0 +1,130 @@ +import ColorIconActivitys from './activitys' +import ColorIconAdministrativeFees from './administrative-fees' +import ColorIconAirFares from './air-fares' +import ColorIconApply from './apply' +import ColorIconArchives from './archives' +import ColorIconBaggageFees from './baggage-fees' +import ColorIconCarInsurance from './car-insurance' +import ColorIconCarRental from './car-rental' +import ColorIconCeremonyFees from './ceremony-fees' +import ColorIconConolences from './condolences' +import ColorIconEntertainmentExpense from './entertainment-expense' +import ColorIconExpertConsultationFees from './expert-consultation-fees' +import ColorIconExpertTeachingFees from './expert-teaching-fees' +import ColorIconExpressDelivery from './express-delivery' +import ColorIconFerryFares from './ferry-fares' +import ColorIconFuelCost from './fuel-cost' +import ColorIconGiftCost from './gift-cost' +import ColorIconHousingSubsidy from './housing-subsidy' +import ColorIconIncidentalExpenses from './incidental-expenses' +import ColorIconLandlinePhone from './landline-phone' +import ColorIconLineRental from './line-rental' +import ColorIconLivingSubsidy from './living-subsidy' +import ColorIconLodgingFees from './lodging-fees' +import ColorIconMaintenanceService from './maintenance-service' +import ColorIconMealAllowance from './meal-allowance' +import ColorIconMealSubsidy from './meal-subsidy' +import ColorIconMeetingExpenses from './meeting-expenses' +import ColorIconNewspaperSubscription from './newspaper-subscription' +import ColorIconOfficeEquipments from './office-equipments' +import ColorIconOfficeSupplies from './office-supplies' +import ColorIconOthers from './others' +import ColorIconPhoneBills from './phone-bills' +import ColorIconPhysicalExamination from './physical-examination' +import ColorIconPrivateVehicleAllowance from './private-vehicle-allowance' +import ColorIconServiceCharges from './service-charges' +import ColorIconTaxiFares from './taxi-fares' +import ColorIconTrainFares from './train-fares' +import ColorIconTrainingFees from './training-fees' +import ColorIconTravelExpenses from './travel-expenses' +import ColorIconVenueHospitalityFees from './venue-hospitality-fees' +import ColorIconVenueRentalFees from './venue-rental-fees' +import ColorIconVisaFees from './visa-fees' + +export { ColorIconActivitys } +export { ColorIconAdministrativeFees } +export { ColorIconAirFares } +export { ColorIconApply } +export { ColorIconArchives } +export { ColorIconBaggageFees } +export { ColorIconCarInsurance } +export { ColorIconCarRental } +export { ColorIconCeremonyFees } +export { ColorIconConolences } +export { ColorIconEntertainmentExpense } +export { ColorIconExpertConsultationFees } +export { ColorIconExpertTeachingFees } +export { ColorIconExpressDelivery } +export { ColorIconFerryFares } +export { ColorIconFuelCost } +export { ColorIconGiftCost } +export { ColorIconHousingSubsidy } +export { ColorIconIncidentalExpenses } +export { ColorIconLandlinePhone } +export { ColorIconLineRental } +export { ColorIconLivingSubsidy } +export { ColorIconLodgingFees } +export { ColorIconMaintenanceService } +export { ColorIconMealAllowance } +export { ColorIconMealSubsidy } +export { ColorIconMeetingExpenses } +export { ColorIconNewspaperSubscription } +export { ColorIconOfficeEquipments } +export { ColorIconOfficeSupplies } +export { ColorIconOthers } +export { ColorIconPhoneBills } +export { ColorIconPhysicalExamination } +export { ColorIconPrivateVehicleAllowance } +export { ColorIconServiceCharges } +export { ColorIconTaxiFares } +export { ColorIconTrainFares } +export { ColorIconTrainingFees } +export { ColorIconTravelExpenses } +export { ColorIconVenueHospitalityFees } +export { ColorIconVenueRentalFees } +export { ColorIconVisaFees } + +export default { + ColorIconActivitys, + ColorIconAdministrativeFees, + ColorIconAirFares, + ColorIconApply, + ColorIconArchives, + ColorIconBaggageFees, + ColorIconCarInsurance, + ColorIconCarRental, + ColorIconCeremonyFees, + ColorIconConolences, + ColorIconEntertainmentExpense, + ColorIconExpertConsultationFees, + ColorIconExpertTeachingFees, + ColorIconExpressDelivery, + ColorIconFerryFares, + ColorIconFuelCost, + ColorIconGiftCost, + ColorIconHousingSubsidy, + ColorIconIncidentalExpenses, + ColorIconLandlinePhone, + ColorIconLineRental, + ColorIconLivingSubsidy, + ColorIconLodgingFees, + ColorIconMaintenanceService, + ColorIconMealAllowance, + ColorIconMealSubsidy, + ColorIconMeetingExpenses, + ColorIconNewspaperSubscription, + ColorIconOfficeEquipments, + ColorIconOfficeSupplies, + ColorIconOthers, + ColorIconPhoneBills, + ColorIconPhysicalExamination, + ColorIconPrivateVehicleAllowance, + ColorIconServiceCharges, + ColorIconTaxiFares, + ColorIconTrainFares, + ColorIconTrainingFees, + ColorIconTravelExpenses, + ColorIconVenueHospitalityFees, + ColorIconVenueRentalFees, + ColorIconVisaFees +} diff --git a/packages/vue-icon-multicolor/src/landline-phone/index.ts b/packages/vue-icon-multicolor/src/landline-phone/index.ts new file mode 100644 index 000000000..05444c65c --- /dev/null +++ b/packages/vue-icon-multicolor/src/landline-phone/index.ts @@ -0,0 +1,4 @@ +import { svg } from '@opentiny/vue-common' +import LandlinePhone from '../../svgs/landline-phone.svg' + +export default svg({ name: 'ColorIconLandlinePhone', component: LandlinePhone }) diff --git a/packages/vue-icon-multicolor/src/line-rental/index.ts b/packages/vue-icon-multicolor/src/line-rental/index.ts new file mode 100644 index 000000000..a4a84e504 --- /dev/null +++ b/packages/vue-icon-multicolor/src/line-rental/index.ts @@ -0,0 +1,4 @@ +import { svg } from '@opentiny/vue-common' +import LineRental from '../../svgs/line-rental.svg' + +export default svg({ name: 'ColorIconLineRental', component: LineRental }) diff --git a/packages/vue-icon-multicolor/src/living-subsidy/index.ts b/packages/vue-icon-multicolor/src/living-subsidy/index.ts new file mode 100644 index 000000000..41bed49b8 --- /dev/null +++ b/packages/vue-icon-multicolor/src/living-subsidy/index.ts @@ -0,0 +1,4 @@ +import { svg } from '@opentiny/vue-common' +import LivingSubsidy from '../../svgs/living-subsidy.svg' + +export default svg({ name: 'ColorIconLivingSubsidy', component: LivingSubsidy }) diff --git a/packages/vue-icon-multicolor/src/lodging-fees/index.ts b/packages/vue-icon-multicolor/src/lodging-fees/index.ts new file mode 100644 index 000000000..8e2e0d069 --- /dev/null +++ b/packages/vue-icon-multicolor/src/lodging-fees/index.ts @@ -0,0 +1,4 @@ +import { svg } from '@opentiny/vue-common' +import LodgingFees from '../../svgs/lodging-fees.svg' + +export default svg({ name: 'ColorIconLodgingFees', component: LodgingFees }) diff --git a/packages/vue-icon-multicolor/src/maintenance-service/index.ts b/packages/vue-icon-multicolor/src/maintenance-service/index.ts new file mode 100644 index 000000000..ada01fa81 --- /dev/null +++ b/packages/vue-icon-multicolor/src/maintenance-service/index.ts @@ -0,0 +1,4 @@ +import { svg } from '@opentiny/vue-common' +import MaintenanceService from '../../svgs/maintenance-service.svg' + +export default svg({ name: 'ColorIconMaintenanceService', component: MaintenanceService }) diff --git a/packages/vue-icon-multicolor/src/meal-allowance/index.ts b/packages/vue-icon-multicolor/src/meal-allowance/index.ts new file mode 100644 index 000000000..a231d08bd --- /dev/null +++ b/packages/vue-icon-multicolor/src/meal-allowance/index.ts @@ -0,0 +1,4 @@ +import { svg } from '@opentiny/vue-common' +import MealAllowance from '../../svgs/meal-allowance.svg' + +export default svg({ name: 'ColorIconMealAllowance', component: MealAllowance }) diff --git a/packages/vue-icon-multicolor/src/meal-subsidy/index.ts b/packages/vue-icon-multicolor/src/meal-subsidy/index.ts new file mode 100644 index 000000000..8bc934309 --- /dev/null +++ b/packages/vue-icon-multicolor/src/meal-subsidy/index.ts @@ -0,0 +1,4 @@ +import { svg } from '@opentiny/vue-common' +import MealSubsidy from '../../svgs/meal-subsidy.svg' + +export default svg({ name: 'ColorIconMealSubsidy', component: MealSubsidy }) diff --git a/packages/vue-icon-multicolor/src/meeting-expenses/index.ts b/packages/vue-icon-multicolor/src/meeting-expenses/index.ts new file mode 100644 index 000000000..b8730f5a9 --- /dev/null +++ b/packages/vue-icon-multicolor/src/meeting-expenses/index.ts @@ -0,0 +1,4 @@ +import { svg } from '@opentiny/vue-common' +import MeetingExpenses from '../../svgs/meeting-expenses.svg' + +export default svg({ name: 'ColorIconMeetingExpenses', component: MeetingExpenses }) diff --git a/packages/vue-icon-multicolor/src/newspaper-subscription/index.ts b/packages/vue-icon-multicolor/src/newspaper-subscription/index.ts new file mode 100644 index 000000000..3f6024ea5 --- /dev/null +++ b/packages/vue-icon-multicolor/src/newspaper-subscription/index.ts @@ -0,0 +1,4 @@ +import { svg } from '@opentiny/vue-common' +import NewspaperSubscription from '../../svgs/newspaper-subscription.svg' + +export default svg({ name: 'ColorIconNewspaperSubscription', component: NewspaperSubscription }) diff --git a/packages/vue-icon-multicolor/src/office-equipments/index.ts b/packages/vue-icon-multicolor/src/office-equipments/index.ts new file mode 100644 index 000000000..c083c65c5 --- /dev/null +++ b/packages/vue-icon-multicolor/src/office-equipments/index.ts @@ -0,0 +1,4 @@ +import { svg } from '@opentiny/vue-common' +import OfficeEquipments from '../../svgs/office-equipments.svg' + +export default svg({ name: 'ColorIconOfficeEquipments', component: OfficeEquipments }) diff --git a/packages/vue-icon-multicolor/src/office-supplies/index.ts b/packages/vue-icon-multicolor/src/office-supplies/index.ts new file mode 100644 index 000000000..34a1ea5b3 --- /dev/null +++ b/packages/vue-icon-multicolor/src/office-supplies/index.ts @@ -0,0 +1,4 @@ +import { svg } from '@opentiny/vue-common' +import OfficeSupplies from '../../svgs/office-supplies.svg' + +export default svg({ name: 'ColorIconOfficeSupplies', component: OfficeSupplies }) diff --git a/packages/vue-icon-multicolor/src/others/index.ts b/packages/vue-icon-multicolor/src/others/index.ts new file mode 100644 index 000000000..1c7d010fa --- /dev/null +++ b/packages/vue-icon-multicolor/src/others/index.ts @@ -0,0 +1,4 @@ +import { svg } from '@opentiny/vue-common' +import Others from '../../svgs/others.svg' + +export default svg({ name: 'ColorIconOthers', component: Others }) diff --git a/packages/vue-icon-multicolor/src/phone-bills/index.ts b/packages/vue-icon-multicolor/src/phone-bills/index.ts new file mode 100644 index 000000000..c4fc26e0b --- /dev/null +++ b/packages/vue-icon-multicolor/src/phone-bills/index.ts @@ -0,0 +1,4 @@ +import { svg } from '@opentiny/vue-common' +import PhoneBills from '../../svgs/phone-bills.svg' + +export default svg({ name: 'ColorIconPhoneBills', component: PhoneBills }) diff --git a/packages/vue-icon-multicolor/src/physical-examination/index.ts b/packages/vue-icon-multicolor/src/physical-examination/index.ts new file mode 100644 index 000000000..a8b0aabf2 --- /dev/null +++ b/packages/vue-icon-multicolor/src/physical-examination/index.ts @@ -0,0 +1,4 @@ +import { svg } from '@opentiny/vue-common' +import PhysicalExamination from '../../svgs/physical-examination.svg' + +export default svg({ name: 'ColorIconPhysicalExamination', component: PhysicalExamination }) diff --git a/packages/vue-icon-multicolor/src/private-vehicle-allowance/index.ts b/packages/vue-icon-multicolor/src/private-vehicle-allowance/index.ts new file mode 100644 index 000000000..60093a243 --- /dev/null +++ b/packages/vue-icon-multicolor/src/private-vehicle-allowance/index.ts @@ -0,0 +1,4 @@ +import { svg } from '@opentiny/vue-common' +import PrivateVehicleAllowance from '../../svgs/private-vehicle-allowance.svg' + +export default svg({ name: 'ColorIconPrivateVehicleAllowance', component: PrivateVehicleAllowance }) diff --git a/packages/vue-icon-multicolor/src/service-charges/index.ts b/packages/vue-icon-multicolor/src/service-charges/index.ts new file mode 100644 index 000000000..535fe438f --- /dev/null +++ b/packages/vue-icon-multicolor/src/service-charges/index.ts @@ -0,0 +1,4 @@ +import { svg } from '@opentiny/vue-common' +import ServiceCharges from '../../svgs/service-charges.svg' + +export default svg({ name: 'ColorIconServiceCharges', component: ServiceCharges }) diff --git a/packages/vue-icon-multicolor/src/taxi-fares/index.ts b/packages/vue-icon-multicolor/src/taxi-fares/index.ts new file mode 100644 index 000000000..b2b049de8 --- /dev/null +++ b/packages/vue-icon-multicolor/src/taxi-fares/index.ts @@ -0,0 +1,4 @@ +import { svg } from '@opentiny/vue-common' +import TaxiFares from '../../svgs/taxi-fares.svg' + +export default svg({ name: 'ColorIconTaxiFares', component: TaxiFares }) diff --git a/packages/vue-icon-multicolor/src/train-fares/index.ts b/packages/vue-icon-multicolor/src/train-fares/index.ts new file mode 100644 index 000000000..04f2ca419 --- /dev/null +++ b/packages/vue-icon-multicolor/src/train-fares/index.ts @@ -0,0 +1,4 @@ +import { svg } from '@opentiny/vue-common' +import TrainFares from '../../svgs/train-fares.svg' + +export default svg({ name: 'ColorIconTrainFares', component: TrainFares }) diff --git a/packages/vue-icon-multicolor/src/training-fees/index.ts b/packages/vue-icon-multicolor/src/training-fees/index.ts new file mode 100644 index 000000000..a1bd2e9cb --- /dev/null +++ b/packages/vue-icon-multicolor/src/training-fees/index.ts @@ -0,0 +1,4 @@ +import { svg } from '@opentiny/vue-common' +import TrainingFees from '../../svgs/training-fees.svg' + +export default svg({ name: 'ColorIconTrainingFees', component: TrainingFees }) diff --git a/packages/vue-icon-multicolor/src/travel-expenses/index.ts b/packages/vue-icon-multicolor/src/travel-expenses/index.ts new file mode 100644 index 000000000..40ebf38f7 --- /dev/null +++ b/packages/vue-icon-multicolor/src/travel-expenses/index.ts @@ -0,0 +1,4 @@ +import { svg } from '@opentiny/vue-common' +import TravelExpenses from '../../svgs/travel-expenses.svg' + +export default svg({ name: 'ColorIconTravelExpenses', component: TravelExpenses }) diff --git a/packages/vue-icon-multicolor/src/venue-hospitality-fees/index.ts b/packages/vue-icon-multicolor/src/venue-hospitality-fees/index.ts new file mode 100644 index 000000000..4d7c8d363 --- /dev/null +++ b/packages/vue-icon-multicolor/src/venue-hospitality-fees/index.ts @@ -0,0 +1,4 @@ +import { svg } from '@opentiny/vue-common' +import VenueHospitalityFees from '../../svgs/venue-hospitality-fees.svg' + +export default svg({ name: 'ColorIconVenueHospitalityFees', component: VenueHospitalityFees }) diff --git a/packages/vue-icon-multicolor/src/venue-rental-fees/index.ts b/packages/vue-icon-multicolor/src/venue-rental-fees/index.ts new file mode 100644 index 000000000..d3717957d --- /dev/null +++ b/packages/vue-icon-multicolor/src/venue-rental-fees/index.ts @@ -0,0 +1,4 @@ +import { svg } from '@opentiny/vue-common' +import VenueRentalFees from '../../svgs/venue-rental-fees.svg' + +export default svg({ name: 'ColorIconVenueRentalFees', component: VenueRentalFees }) diff --git a/packages/vue-icon-multicolor/src/visa-fees/index.ts b/packages/vue-icon-multicolor/src/visa-fees/index.ts new file mode 100644 index 000000000..10d22a70b --- /dev/null +++ b/packages/vue-icon-multicolor/src/visa-fees/index.ts @@ -0,0 +1,4 @@ +import { svg } from '@opentiny/vue-common' +import VisaFees from '../../svgs/visa-fees.svg' + +export default svg({ name: 'ColorIconVisaFees', component: VisaFees }) diff --git a/packages/vue-icon-multicolor/svgs/activitys.svg b/packages/vue-icon-multicolor/svgs/activitys.svg new file mode 100644 index 000000000..0acf785da --- /dev/null +++ b/packages/vue-icon-multicolor/svgs/activitys.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/packages/vue-icon-multicolor/svgs/administrative-fees.svg b/packages/vue-icon-multicolor/svgs/administrative-fees.svg new file mode 100644 index 000000000..87387a2ef --- /dev/null +++ b/packages/vue-icon-multicolor/svgs/administrative-fees.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/packages/vue-icon-multicolor/svgs/air-fares.svg b/packages/vue-icon-multicolor/svgs/air-fares.svg new file mode 100644 index 000000000..c01e3b1c3 --- /dev/null +++ b/packages/vue-icon-multicolor/svgs/air-fares.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/packages/vue-icon-multicolor/svgs/apply.svg b/packages/vue-icon-multicolor/svgs/apply.svg new file mode 100644 index 000000000..78d08da08 --- /dev/null +++ b/packages/vue-icon-multicolor/svgs/apply.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/packages/vue-icon-multicolor/svgs/archives.svg b/packages/vue-icon-multicolor/svgs/archives.svg new file mode 100644 index 000000000..4e0d71395 --- /dev/null +++ b/packages/vue-icon-multicolor/svgs/archives.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/packages/vue-icon-multicolor/svgs/baggage-fees.svg b/packages/vue-icon-multicolor/svgs/baggage-fees.svg new file mode 100644 index 000000000..6421726e7 --- /dev/null +++ b/packages/vue-icon-multicolor/svgs/baggage-fees.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/packages/vue-icon-multicolor/svgs/car-insurance.svg b/packages/vue-icon-multicolor/svgs/car-insurance.svg new file mode 100644 index 000000000..b0dc9e5cf --- /dev/null +++ b/packages/vue-icon-multicolor/svgs/car-insurance.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/packages/vue-icon-multicolor/svgs/car-rental.svg b/packages/vue-icon-multicolor/svgs/car-rental.svg new file mode 100644 index 000000000..70648675c --- /dev/null +++ b/packages/vue-icon-multicolor/svgs/car-rental.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/packages/vue-icon-multicolor/svgs/ceremony-fees.svg b/packages/vue-icon-multicolor/svgs/ceremony-fees.svg new file mode 100644 index 000000000..0e3497a22 --- /dev/null +++ b/packages/vue-icon-multicolor/svgs/ceremony-fees.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/packages/vue-icon-multicolor/svgs/condolences.svg b/packages/vue-icon-multicolor/svgs/condolences.svg new file mode 100644 index 000000000..db27f9da8 --- /dev/null +++ b/packages/vue-icon-multicolor/svgs/condolences.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/packages/vue-icon-multicolor/svgs/entertainment-expense.svg b/packages/vue-icon-multicolor/svgs/entertainment-expense.svg new file mode 100644 index 000000000..db2f1d69f --- /dev/null +++ b/packages/vue-icon-multicolor/svgs/entertainment-expense.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/packages/vue-icon-multicolor/svgs/expert-consultation-fees.svg b/packages/vue-icon-multicolor/svgs/expert-consultation-fees.svg new file mode 100644 index 000000000..6754918fe --- /dev/null +++ b/packages/vue-icon-multicolor/svgs/expert-consultation-fees.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/packages/vue-icon-multicolor/svgs/expert-teaching-fees.svg b/packages/vue-icon-multicolor/svgs/expert-teaching-fees.svg new file mode 100644 index 000000000..64c6a7bba --- /dev/null +++ b/packages/vue-icon-multicolor/svgs/expert-teaching-fees.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/packages/vue-icon-multicolor/svgs/express-delivery.svg b/packages/vue-icon-multicolor/svgs/express-delivery.svg new file mode 100644 index 000000000..ed7f1fcda --- /dev/null +++ b/packages/vue-icon-multicolor/svgs/express-delivery.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/packages/vue-icon-multicolor/svgs/ferry-fares.svg b/packages/vue-icon-multicolor/svgs/ferry-fares.svg new file mode 100644 index 000000000..0ef922875 --- /dev/null +++ b/packages/vue-icon-multicolor/svgs/ferry-fares.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/packages/vue-icon-multicolor/svgs/fuel-cost.svg b/packages/vue-icon-multicolor/svgs/fuel-cost.svg new file mode 100644 index 000000000..70928b96f --- /dev/null +++ b/packages/vue-icon-multicolor/svgs/fuel-cost.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/packages/vue-icon-multicolor/svgs/gift-cost.svg b/packages/vue-icon-multicolor/svgs/gift-cost.svg new file mode 100644 index 000000000..6744c353c --- /dev/null +++ b/packages/vue-icon-multicolor/svgs/gift-cost.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/packages/vue-icon-multicolor/svgs/housing-subsidy.svg b/packages/vue-icon-multicolor/svgs/housing-subsidy.svg new file mode 100644 index 000000000..84becf321 --- /dev/null +++ b/packages/vue-icon-multicolor/svgs/housing-subsidy.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/packages/vue-icon-multicolor/svgs/incidental-expenses.svg b/packages/vue-icon-multicolor/svgs/incidental-expenses.svg new file mode 100644 index 000000000..2a4075a13 --- /dev/null +++ b/packages/vue-icon-multicolor/svgs/incidental-expenses.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/packages/vue-icon-multicolor/svgs/landline-phone.svg b/packages/vue-icon-multicolor/svgs/landline-phone.svg new file mode 100644 index 000000000..e805b512b --- /dev/null +++ b/packages/vue-icon-multicolor/svgs/landline-phone.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/packages/vue-icon-multicolor/svgs/line-rental.svg b/packages/vue-icon-multicolor/svgs/line-rental.svg new file mode 100644 index 000000000..b9d6eb8d8 --- /dev/null +++ b/packages/vue-icon-multicolor/svgs/line-rental.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/packages/vue-icon-multicolor/svgs/living-subsidy.svg b/packages/vue-icon-multicolor/svgs/living-subsidy.svg new file mode 100644 index 000000000..cf60eb5b5 --- /dev/null +++ b/packages/vue-icon-multicolor/svgs/living-subsidy.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/packages/vue-icon-multicolor/svgs/lodging-fees.svg b/packages/vue-icon-multicolor/svgs/lodging-fees.svg new file mode 100644 index 000000000..4c67ad25e --- /dev/null +++ b/packages/vue-icon-multicolor/svgs/lodging-fees.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/packages/vue-icon-multicolor/svgs/maintenance-service.svg b/packages/vue-icon-multicolor/svgs/maintenance-service.svg new file mode 100644 index 000000000..02e7c2c8c --- /dev/null +++ b/packages/vue-icon-multicolor/svgs/maintenance-service.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/packages/vue-icon-multicolor/svgs/meal-allowance.svg b/packages/vue-icon-multicolor/svgs/meal-allowance.svg new file mode 100644 index 000000000..060b1c181 --- /dev/null +++ b/packages/vue-icon-multicolor/svgs/meal-allowance.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/packages/vue-icon-multicolor/svgs/meal-subsidy.svg b/packages/vue-icon-multicolor/svgs/meal-subsidy.svg new file mode 100644 index 000000000..5372fe9c8 --- /dev/null +++ b/packages/vue-icon-multicolor/svgs/meal-subsidy.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/packages/vue-icon-multicolor/svgs/meeting-expenses.svg b/packages/vue-icon-multicolor/svgs/meeting-expenses.svg new file mode 100644 index 000000000..72934686a --- /dev/null +++ b/packages/vue-icon-multicolor/svgs/meeting-expenses.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/packages/vue-icon-multicolor/svgs/newspaper-subscription.svg b/packages/vue-icon-multicolor/svgs/newspaper-subscription.svg new file mode 100644 index 000000000..e9b001618 --- /dev/null +++ b/packages/vue-icon-multicolor/svgs/newspaper-subscription.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/packages/vue-icon-multicolor/svgs/office-equipments.svg b/packages/vue-icon-multicolor/svgs/office-equipments.svg new file mode 100644 index 000000000..a7181be3c --- /dev/null +++ b/packages/vue-icon-multicolor/svgs/office-equipments.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/packages/vue-icon-multicolor/svgs/office-supplies.svg b/packages/vue-icon-multicolor/svgs/office-supplies.svg new file mode 100644 index 000000000..5f2fbcdc7 --- /dev/null +++ b/packages/vue-icon-multicolor/svgs/office-supplies.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/packages/vue-icon-multicolor/svgs/others.svg b/packages/vue-icon-multicolor/svgs/others.svg new file mode 100644 index 000000000..0dff02098 --- /dev/null +++ b/packages/vue-icon-multicolor/svgs/others.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/packages/vue-icon-multicolor/svgs/phone-bills.svg b/packages/vue-icon-multicolor/svgs/phone-bills.svg new file mode 100644 index 000000000..b28803c93 --- /dev/null +++ b/packages/vue-icon-multicolor/svgs/phone-bills.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/packages/vue-icon-multicolor/svgs/physical-examination.svg b/packages/vue-icon-multicolor/svgs/physical-examination.svg new file mode 100644 index 000000000..bd0097cb6 --- /dev/null +++ b/packages/vue-icon-multicolor/svgs/physical-examination.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/packages/vue-icon-multicolor/svgs/private-vehicle-allowance.svg b/packages/vue-icon-multicolor/svgs/private-vehicle-allowance.svg new file mode 100644 index 000000000..738b79a74 --- /dev/null +++ b/packages/vue-icon-multicolor/svgs/private-vehicle-allowance.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/packages/vue-icon-multicolor/svgs/service-charges.svg b/packages/vue-icon-multicolor/svgs/service-charges.svg new file mode 100644 index 000000000..1fc79b0d6 --- /dev/null +++ b/packages/vue-icon-multicolor/svgs/service-charges.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/packages/vue-icon-multicolor/svgs/taxi-fares.svg b/packages/vue-icon-multicolor/svgs/taxi-fares.svg new file mode 100644 index 000000000..51c207c95 --- /dev/null +++ b/packages/vue-icon-multicolor/svgs/taxi-fares.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/packages/vue-icon-multicolor/svgs/train-fares.svg b/packages/vue-icon-multicolor/svgs/train-fares.svg new file mode 100644 index 000000000..abc1faba7 --- /dev/null +++ b/packages/vue-icon-multicolor/svgs/train-fares.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/packages/vue-icon-multicolor/svgs/training-fees.svg b/packages/vue-icon-multicolor/svgs/training-fees.svg new file mode 100644 index 000000000..180e31e79 --- /dev/null +++ b/packages/vue-icon-multicolor/svgs/training-fees.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/packages/vue-icon-multicolor/svgs/travel-expenses.svg b/packages/vue-icon-multicolor/svgs/travel-expenses.svg new file mode 100644 index 000000000..91e5ae2c7 --- /dev/null +++ b/packages/vue-icon-multicolor/svgs/travel-expenses.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/packages/vue-icon-multicolor/svgs/venue-hospitality-fees.svg b/packages/vue-icon-multicolor/svgs/venue-hospitality-fees.svg new file mode 100644 index 000000000..aa3e1c478 --- /dev/null +++ b/packages/vue-icon-multicolor/svgs/venue-hospitality-fees.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/packages/vue-icon-multicolor/svgs/venue-rental-fees.svg b/packages/vue-icon-multicolor/svgs/venue-rental-fees.svg new file mode 100644 index 000000000..08a337487 --- /dev/null +++ b/packages/vue-icon-multicolor/svgs/venue-rental-fees.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/packages/vue-icon-multicolor/svgs/visa-fees.svg b/packages/vue-icon-multicolor/svgs/visa-fees.svg new file mode 100644 index 000000000..8f2f0dbd0 --- /dev/null +++ b/packages/vue-icon-multicolor/svgs/visa-fees.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/packages/vue-icon/index.ts b/packages/vue-icon/index.ts index c904be4b9..ed4536af2 100644 --- a/packages/vue-icon/index.ts +++ b/packages/vue-icon/index.ts @@ -127,6 +127,7 @@ import IconExport from './src/export' import IconExpressSearch from './src/express-search' import IconEyeclose from './src/eyeclose' import IconEyeopen from './src/eyeopen' +import IconFeedback from './src/feedback' import IconEditorAlignCenter from './src/editor-align-center' import IconEditorAlignLeft from './src/editor-align-left' import IconEditorAlignRight from './src/editor-align-right' @@ -180,6 +181,7 @@ import IconFrownO from './src/frown-o' import IconFrown from './src/frown' import IconFullscreen from './src/fullscreen' import IconFullscreenLeft from './src/fullscreen-left' +import IconFullscreenRight from './src/fullscreen-right' import IconGoBack from './src/go-back' import IconGrade from './src/grade' import IconGroupTransfer from './src/group-transfer' @@ -219,6 +221,7 @@ import IconLineThrought from './src/line-throught' import IconLink from './src/link' import IconLoading from './src/loading' import IconLoadingShadow from './src/loading-shadow' +import IconLocalePanel from './src/locale-panel' import IconLock from './src/lock' import IconMailContent from './src/mail-content' import IconMail from './src/mail' @@ -339,6 +342,7 @@ import IconSetting from './src/setting' import IconShare from './src/share' import IconShareArrow from './src/share-arrow' import IconShoppingCard from './src/shopping-card' +import IconShutdown from './src/shutdown' import IconSmileO from './src/smile-o' import IconSmile from './src/smile' import IconSoldOut from './src/sold-out' @@ -377,6 +381,7 @@ import IconUnlock from './src/unlock' import IconUnsent from './src/unsent' import IconUpO from './src/up-o' import IconUp from './src/up' +import IconUpdate from './src/update' import IconUpload from './src/upload' import IconUser from './src/user' import IconVersiontree from './src/versiontree' @@ -431,6 +436,7 @@ import IconAddPicture from './src/add-picture' // sync aui icons import IconAdministratorO from './src/administrator-o' +import IconAgency from './src/agency' import IconAudit from './src/audit' import IconBatchFill from './src/batch-fill' import IconCardMode from './src/card-mode' @@ -509,6 +515,7 @@ import IconShipped from './src/shipped' import IconSubstituteMaterial from './src/substitute-material' import IconSurchargeSettled from './src/surcharge-settled' import IconSurchargeToBeSettled from './src/surcharge-to-be-settled' +import IconSynchronize from './src/synchronize' import IconToBeUploaded from './src/to-be-uploaded' import IconTotalNolume from './src/total-nolume' import IconTotalNumber from './src/total-number' @@ -593,6 +600,8 @@ export { IconSurchargeSettled as iconSurchargeSettled, IconSurchargeToBeSettled, IconSurchargeToBeSettled as iconSurchargeToBeSettled, + IconSynchronize, + IconSynchronize as iconSynchronize, IconToBeUploaded, IconToBeUploaded as iconToBeUploaded, IconTotalNolume, @@ -919,6 +928,8 @@ export { IconEyeclose as iconEyeclose, IconEyeopen, IconEyeopen as iconEyeopen, + IconFeedback, + IconFeedback as iconFeedback, IconEditorAlignCenter, IconEditorAlignCenter as iconEditorAlignCenter, IconEditorAlignLeft, @@ -1025,6 +1036,8 @@ export { IconFullscreen as iconFullscreen, IconFullscreenLeft, IconFullscreenLeft as iconFullscreenLeft, + IconFullscreenRight, + IconFullscreenRight as iconFullscreenRight, IconMinscreenLeft, IconMinscreenLeft as iconMinscreenLeft, IconGoBack, @@ -1105,6 +1118,8 @@ export { IconLoading as iconLoading, IconLoadingShadow, IconLoadingShadow as iconLoadingShadow, + IconLocalePanel, + IconLocalePanel as iconLocalePanel, IconLock, IconLock as iconLock, IconLeftWardArrow, @@ -1345,6 +1360,8 @@ export { IconShareArrow as iconShareArrow, IconShoppingCard, IconShoppingCard as iconShoppingCard, + IconShutdown, + IconShutdown as iconShutdown, IconSmileO, IconSmileO as iconSmileO, IconSmile, @@ -1421,6 +1438,8 @@ export { IconUpO as iconUpO, IconUp, IconUp as iconUp, + IconUpdate, + IconUpdate as iconUpdate, IconUpWard, IconUpWard as iconUpWard, IconUpload, @@ -1457,6 +1476,8 @@ export { // sync aui icons IconAdministratorO, IconAdministratorO as iconAdministratorO, + IconAgency, + IconAgency as iconAgency, IconAudit, IconAudit as iconAudit, IconBatchFill, @@ -1580,6 +1601,7 @@ export default { IconSubstituteMaterial, IconSurchargeSettled, IconSurchargeToBeSettled, + IconSynchronize, IconToBeUploaded, IconTotalNolume, IconTotalNumber, @@ -1741,6 +1763,7 @@ export default { IconExpressSearch, IconEyeclose, IconEyeopen, + IconFeedback, IconEditorAlignCenter, IconEditorAlignLeft, IconEditorAlignRight, @@ -1794,6 +1817,7 @@ export default { IconFrown, IconFullscreen, IconFullscreenLeft, + IconFullscreenRight, IconMinscreenLeft, IconGoBack, IconGrade, @@ -1834,6 +1858,7 @@ export default { IconLink, IconLoading, IconLoadingShadow, + IconLocalePanel, IconLock, IconLeftWardArrow, IconMailContent, @@ -1953,6 +1978,7 @@ export default { IconShare, IconShareArrow, IconShoppingCard, + IconShutdown, IconSmileO, IconSmile, IconSoldOut, @@ -1991,6 +2017,7 @@ export default { IconUnsent, IconUpO, IconUp, + IconUpdate, IconUpWard, IconUpload, IconUser, @@ -2009,6 +2036,7 @@ export default { IconAddPicture, // sync aui icons IconAdministratorO, + IconAgency, IconAudit, IconBatchFill, IconCardMode, diff --git a/packages/vue-icon/src/agency/index.ts b/packages/vue-icon/src/agency/index.ts new file mode 100644 index 000000000..a08ec0c21 --- /dev/null +++ b/packages/vue-icon/src/agency/index.ts @@ -0,0 +1,15 @@ +/** + * Copyright (c) 2022 - present TinyVue Authors. + * Copyright (c) 2022 - present Huawei Cloud Computing Technologies Co., Ltd. + * + * Use of this source code is governed by an MIT-style license. + * + * THE OPEN SOURCE SOFTWARE IN THIS PRODUCT IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, + * BUT WITHOUT ANY WARRANTY, WITHOUT EVEN THE IMPLIED WARRANTY OF MERCHANTABILITY OR FITNESS FOR + * A PARTICULAR PURPOSE. SEE THE APPLICABLE LICENSES FOR MORE DETAILS. + * + */ +import { svg } from '@opentiny/vue-common' +import Agency from '@opentiny/vue-theme/svgs/agency.svg' + +export default () => svg({ name: 'IconAgency', component: Agency })() diff --git a/packages/vue-icon/src/feedback/index.ts b/packages/vue-icon/src/feedback/index.ts new file mode 100644 index 000000000..ea5f32842 --- /dev/null +++ b/packages/vue-icon/src/feedback/index.ts @@ -0,0 +1,15 @@ +/** + * Copyright (c) 2022 - present TinyVue Authors. + * Copyright (c) 2022 - present Huawei Cloud Computing Technologies Co., Ltd. + * + * Use of this source code is governed by an MIT-style license. + * + * THE OPEN SOURCE SOFTWARE IN THIS PRODUCT IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, + * BUT WITHOUT ANY WARRANTY, WITHOUT EVEN THE IMPLIED WARRANTY OF MERCHANTABILITY OR FITNESS FOR + * A PARTICULAR PURPOSE. SEE THE APPLICABLE LICENSES FOR MORE DETAILS. + * + */ +import { svg } from '@opentiny/vue-common' +import Feedback from '@opentiny/vue-theme/svgs/feedback.svg' + +export default () => svg({ name: 'IconFeedback', component: Feedback })() diff --git a/packages/vue-icon/src/fullscreen-right/index.ts b/packages/vue-icon/src/fullscreen-right/index.ts new file mode 100644 index 000000000..eb12f1dac --- /dev/null +++ b/packages/vue-icon/src/fullscreen-right/index.ts @@ -0,0 +1,15 @@ +/** + * Copyright (c) 2022 - present TinyVue Authors. + * Copyright (c) 2022 - present Huawei Cloud Computing Technologies Co., Ltd. + * + * Use of this source code is governed by an MIT-style license. + * + * THE OPEN SOURCE SOFTWARE IN THIS PRODUCT IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, + * BUT WITHOUT ANY WARRANTY, WITHOUT EVEN THE IMPLIED WARRANTY OF MERCHANTABILITY OR FITNESS FOR + * A PARTICULAR PURPOSE. SEE THE APPLICABLE LICENSES FOR MORE DETAILS. + * + */ +import { svg } from '@opentiny/vue-common' +import FullscreenRight from '@opentiny/vue-theme/svgs/fullscreen-right.svg' + +export default () => svg({ name: 'IconFullscreenRight', component: FullscreenRight })() diff --git a/packages/vue-icon/src/locale-panel/index.ts b/packages/vue-icon/src/locale-panel/index.ts new file mode 100644 index 000000000..b6a876b1b --- /dev/null +++ b/packages/vue-icon/src/locale-panel/index.ts @@ -0,0 +1,15 @@ +/** + * Copyright (c) 2022 - present TinyVue Authors. + * Copyright (c) 2022 - present Huawei Cloud Computing Technologies Co., Ltd. + * + * Use of this source code is governed by an MIT-style license. + * + * THE OPEN SOURCE SOFTWARE IN THIS PRODUCT IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, + * BUT WITHOUT ANY WARRANTY, WITHOUT EVEN THE IMPLIED WARRANTY OF MERCHANTABILITY OR FITNESS FOR + * A PARTICULAR PURPOSE. SEE THE APPLICABLE LICENSES FOR MORE DETAILS. + * + */ +import { svg } from '@opentiny/vue-common' +import LocalePanel from '@opentiny/vue-theme/svgs/locale-panel.svg' + +export default () => svg({ name: 'IconLocalePanel', component: LocalePanel })() diff --git a/packages/vue-icon/src/shutdown/index.ts b/packages/vue-icon/src/shutdown/index.ts new file mode 100644 index 000000000..d4def2177 --- /dev/null +++ b/packages/vue-icon/src/shutdown/index.ts @@ -0,0 +1,15 @@ +/** + * Copyright (c) 2022 - present TinyVue Authors. + * Copyright (c) 2022 - present Huawei Cloud Computing Technologies Co., Ltd. + * + * Use of this source code is governed by an MIT-style license. + * + * THE OPEN SOURCE SOFTWARE IN THIS PRODUCT IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, + * BUT WITHOUT ANY WARRANTY, WITHOUT EVEN THE IMPLIED WARRANTY OF MERCHANTABILITY OR FITNESS FOR + * A PARTICULAR PURPOSE. SEE THE APPLICABLE LICENSES FOR MORE DETAILS. + * + */ +import { svg } from '@opentiny/vue-common' +import Shutdown from '@opentiny/vue-theme/svgs/shutdown.svg' + +export default () => svg({ name: 'IconShutdown', component: Shutdown })() diff --git a/packages/vue-icon/src/synchronize/index.ts b/packages/vue-icon/src/synchronize/index.ts new file mode 100644 index 000000000..4935401a9 --- /dev/null +++ b/packages/vue-icon/src/synchronize/index.ts @@ -0,0 +1,15 @@ +/** + * Copyright (c) 2022 - present TinyVue Authors. + * Copyright (c) 2022 - present Huawei Cloud Computing Technologies Co., Ltd. + * + * Use of this source code is governed by an MIT-style license. + * + * THE OPEN SOURCE SOFTWARE IN THIS PRODUCT IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, + * BUT WITHOUT ANY WARRANTY, WITHOUT EVEN THE IMPLIED WARRANTY OF MERCHANTABILITY OR FITNESS FOR + * A PARTICULAR PURPOSE. SEE THE APPLICABLE LICENSES FOR MORE DETAILS. + * + */ +import { svg } from '@opentiny/vue-common' +import Synchronize from '@opentiny/vue-theme/svgs/synchronize.svg' + +export default () => svg({ name: 'IconSynchronize', component: Synchronize })() diff --git a/packages/vue-icon/src/update/index.ts b/packages/vue-icon/src/update/index.ts new file mode 100644 index 000000000..15d8c9140 --- /dev/null +++ b/packages/vue-icon/src/update/index.ts @@ -0,0 +1,15 @@ +/** + * Copyright (c) 2022 - present TinyVue Authors. + * Copyright (c) 2022 - present Huawei Cloud Computing Technologies Co., Ltd. + * + * Use of this source code is governed by an MIT-style license. + * + * THE OPEN SOURCE SOFTWARE IN THIS PRODUCT IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, + * BUT WITHOUT ANY WARRANTY, WITHOUT EVEN THE IMPLIED WARRANTY OF MERCHANTABILITY OR FITNESS FOR + * A PARTICULAR PURPOSE. SEE THE APPLICABLE LICENSES FOR MORE DETAILS. + * + */ +import { svg } from '@opentiny/vue-common' +import Update from '@opentiny/vue-theme/svgs/update.svg' + +export default () => svg({ name: 'IconUpdate', component: Update })() diff --git a/packages/vue-locale/src/lang/en.ts b/packages/vue-locale/src/lang/en.ts index a69825402..c2d5c191f 100644 --- a/packages/vue-locale/src/lang/en.ts +++ b/packages/vue-locale/src/lang/en.ts @@ -11,7 +11,7 @@ */ export default { 'en-US': 'English', - 'zh-CN': '中文', + 'zh-CN': 'Chinese', 'zh-TW': '中国台湾', hello: 'Hello {name}', code: 'en-US', @@ -26,12 +26,12 @@ export default { numeric: { equalTo: 'Equal to', notEqualTo: 'Not equal to', - moreThan: 'More than', - moreThanOrEqualTo: 'More than or equal to', + moreThan: 'Greater than', + moreThanOrEqualTo: 'Greater than or equal to', lessThan: 'Less than', lessThanOrEqualTo: 'Less than or equal to', - empty: 'Empty', - nonEmpty: 'Non-empty' + empty: 'Null', + nonEmpty: 'Not null' }, queryBuilder: { addItem: 'Add Rule', @@ -39,16 +39,16 @@ export default { removeGroup: 'Del Rule Group' }, wizard: { - previousStep: 'LastStep', - nextStep: 'NextStep', + previousStep: 'Previous', + nextStep: 'Next', save: 'Save', submit: 'Submit' }, linkMenu: { - title: 'news', - placeholder: 'Please enter keywords to filter...', - sure: 'Determine', - cancel: 'cancel' + title: '', + placeholder: 'Enter a keyword.', + sure: 'OK', + cancel: 'Cancel' }, todoList: { add: 'Add', @@ -56,9 +56,9 @@ export default { }, alert: { error: 'Error', - info: 'Info', + info: 'Information', success: 'Success', - title: 'Message notification', + title: 'Information', warning: 'Warning' }, amount: { @@ -74,6 +74,9 @@ export default { empty: 'Empty', nonEmpty: 'Non-empty' }, + actionMenu: { + moreText: 'More' + }, base: { all: 'All', cancel: 'Cancel', @@ -97,13 +100,13 @@ export default { confirm: 'Confirm' }, cell: { - placeholder: 'Select' + placeholder: '--Select--' }, cascader: { - noMatch: 'No matching data', + noMatch: 'No matches', loading: 'Loading', - placeholder: 'Select', - noData: 'No data' + placeholder: '--Select--', + noData: 'No data available.' }, chart: { auxiliary: 'Auxiliary', @@ -115,11 +118,11 @@ export default { value: 'Value' }, colorSelectPanel: { - confirm: 'Ok', + confirm: 'Select', cancel: 'Cancel', - predefine: 'Predefine Color', - history: 'History', - empty: 'Empty' + predefine: 'Default Colors', + history: 'Recent Colors', + empty: 'None' }, crop: { choose: 'choose image', @@ -129,15 +132,15 @@ export default { rotate45: 'rotate 45°', closeCropArea: 'hide selection', reset: 'reset', - closeCrop: 'exit crop', - cropImage: 'select area' + cropImage: 'crop image', + croppedImage: 'Target image' }, datepicker: { clear: 'Clear', cancel: 'Cancel', endDate: 'End Date', confirm: 'OK', - month: 'month', + month: 'Month', endTime: 'End Time', month2: 'February', month1: 'January', @@ -165,16 +168,16 @@ export default { dec: 'Dec', nov: 'Nov' }, - nextYear: 'Next Year', + nextYear: 'Next year', nextMonth: 'Next Month', prevMonth: 'Previous Month', now: 'Now', - selectDate: 'Select date', - prevYear: 'Previous Year', + selectDate: 'Select a date.', + prevYear: 'Previous year', startDate: 'Start Date', - selectTime: 'Select time', + selectTime: 'Select a time.', today: 'Today', - currentMonth: 'Current Month', + currentMonth: 'This Month', startTime: 'Start Time', week: 'week', weeks: { @@ -186,14 +189,14 @@ export default { sat: 'Sat', fri: 'Fri' }, - timezone: 'selecting a timezone', - year: '', + timezone: 'Select a time zone.', + year: 'Year', hour: 'hour', minute: 'minute', second: 'second', - to: 'to', - yearMonth: '{year} / {month}', - yearMonthDay: '{year} / {month} / {day}' + to: '', + yearMonth: '{month} {year}', + yearMonthDay: '{month} {day}, {year}' }, richTextEditor: { bold: 'bold', @@ -298,7 +301,7 @@ export default { calcHash: 'Document is calculating encryption', uploadFile: 'Upload file', downloadAll: 'Download all', - onlySupport: 'Support {type} file', + onlySupport: 'Only support {type} file', fileNotLessThan: 'The size of single file cannot be less than ', fileNotMoreThan: 'The size of single file cannot be more than ', fileSizeRange: 'The size of a single file must range from {moreThan} to {lessThan}.', @@ -343,21 +346,14 @@ export default { deleteSelectRecord: 'Are you sure you want to delete the selected record?', emptyText: 'No Data', error: { - cellEditRender: 'The renderer cell-render and edit-render cannot be used together.', - delGetAllRecords: 'The function getAllRecords is deprecated, please use getRecordset.', - delGetRecords: 'The function getRecords is deprecated, please use getData.', - delLabel: 'The property label is deprecated, please use title.', - delProp: 'The property prop is deprecated, please use field.', delRevert: 'The function revert is deprecated, please use revertData.', groupFixed: 'If grouping headers are used, fixed columns must be on the left and right sides.', notDelete: 'delete method not exist.', - notMouse: 'Horizontal virtual scrolling does not support mouse-config.', notQuery: 'query method not exist.', notResizable: 'Horizontal virtual scrolling does not support resizable.', notSave: 'save method not exist.', reqModule: 'require {{name}} module.', rowIdEmpty: 'The property row-id is not allowed to be empty.', - scrollOriginal: 'Virtual scrolling can only export source data, please set original=true.', scrollYHeight: 'You must set the height or max-height to enable virtual scrolling.', toolbarId: 'Toolbar must have a unique id', treeFixedExpand: 'The fixed columns of the tree structure conflict with the expanded row.', @@ -378,7 +374,6 @@ export default { clipboardWriteError: 'clipboard write error' }, filter: { - allFilter: 'All', allSelect: '(All)', endDate: 'End Date', startDate: 'Start Date', @@ -610,10 +605,7 @@ export default { usercard: { address: 'Address', collapse: 'Collapse', - department: 'Department', email: 'email', - employeeId: 'Employee ID', - 'employee_id': 'Employee ID', empno: 'Employee Number', expand: 'Expand', fax: 'Fax', @@ -623,10 +615,8 @@ export default { other: 'Other', phone: 'Telephone', timezone: 'Time zone', - title: 'User information: {0}', travelcode: 'Travel code', - viop: 'VIOP', - zipcode: 'Postal Code' + viop: 'VIOP' }, richText: { bold: 'Bold', @@ -721,7 +711,15 @@ export default { chooseCurrency: 'Choose currency' }, calendarBar: { - week: { 0: 'SUN', 1: 'MON', 2: 'TUE', 3: 'WED', 4: 'THU', 5: 'FRI', 6: 'SAT' }, + week: { + 0: 'SUN', + 1: 'MON', + 2: 'TUE', + 3: 'WED', + 4: 'THU', + 5: 'FRI', + 6: 'SAT' + }, year: 'Year %s', yearMonth: '%m %y', month: { @@ -754,8 +752,24 @@ export default { } }, calendarView: { - week: { 0: 'SUN', 1: 'MON', 2: 'TUE', 3: 'WED', 4: 'THU', 5: 'FRI', 6: 'SAT' }, - weekDays: { 0: 'SUN', 1: 'MON', 2: 'TUE', 3: 'WED', 4: 'THU', 5: 'FRI', 6: 'SAT' }, + week: { + 0: 'SUN', + 1: 'MON', + 2: 'TUE', + 3: 'WED', + 4: 'THU', + 5: 'FRI', + 6: 'SAT' + }, + weekDays: { + 0: 'SUN', + 1: 'MON', + 2: 'TUE', + 3: 'WED', + 4: 'THU', + 5: 'FRI', + 6: 'SAT' + }, backToday: 'back to today', new: 'New', noSchedule: 'No Schedule', @@ -766,7 +780,8 @@ export default { selectedBox: { select: 'Selected (%s)', allSelect: 'All selected (%s)', - clear: 'Clear' + clear: 'Clear', + noData: 'No data' }, record: { record: 'Record', diff --git a/packages/vue-locale/src/lang/zh-CN.ts b/packages/vue-locale/src/lang/zh-CN.ts index c29396d6e..52964fd77 100644 --- a/packages/vue-locale/src/lang/zh-CN.ts +++ b/packages/vue-locale/src/lang/zh-CN.ts @@ -345,21 +345,14 @@ export default { deleteSelectRecord: '您确定要删除所选记录吗?', emptyText: '暂无数据', error: { - cellEditRender: '渲染器 cell-render 和 edit-render 不能同时使用', - delGetAllRecords: '方法 getAllRecords 已废弃,请使用 getRecordset', - delGetRecords: '方法 getRecords 已废弃,请使用 getData', - delLabel: '参数 label 已废弃,请使用 title', - delProp: '参数 prop 已废弃,请使用 field', delRevert: '方法 revert 已废弃,请使用 revertData', groupFixed: '如果使用分组表头,固定列必须在左右两侧', notDelete: 'Delete 方法不存在', - notMouse: '虚拟滚动不支持 mouse-config', notQuery: 'query 方法不存在', notResizable: '横向虚拟滚动不支持 resizable', notSave: 'save 方法不存在', reqModule: '缺少 {{name}} 模块', rowIdEmpty: '参数 row-id 不允许为空', - scrollOriginal: '虚拟滚动启用后只能导出源数据,请将设置 original=true', scrollYHeight: '启用虚拟滚动必须要设置 height 或 max-height', toolbarId: '工具栏需要设置唯一 id', treeFixedExpand: '树结构的固定列与展开行功能有冲突', @@ -378,7 +371,6 @@ export default { clipboardWriteError: '剪切板写入错误' }, filter: { - allFilter: '全部', allSelect: '(全选)', endDate: '结束日期', startDate: '开始日期', @@ -609,10 +601,7 @@ export default { usercard: { address: '地址', collapse: '收起', - department: '部门', email: '邮箱', - employeeId: '员工 ID', - 'employee_id': '员工 ID', empno: '工号', expand: '展开', fax: '传真', @@ -622,10 +611,8 @@ export default { other: '其他', phone: '固定电话', timezone: '时区', - title: '用户信息: {0}', travelcode: '出差联系信息', - viop: 'VIOP', - zipcode: '邮编' + viop: 'VIOP' }, richText: { bold: '加粗', @@ -765,7 +752,8 @@ export default { selectedBox: { select: '已选(%s)', allSelect: '已全选(%s)', - clear: '清空' + clear: '清空', + noData: '暂无数据' }, record: { record: '录音', diff --git a/packages/vue/src/button-group/src/pc.vue b/packages/vue/src/button-group/src/pc.vue index 657ff8b2c..358dfe292 100644 --- a/packages/vue/src/button-group/src/pc.vue +++ b/packages/vue/src/button-group/src/pc.vue @@ -99,7 +99,7 @@
  • - +
  • @@ -116,7 +116,7 @@ import { renderless, api } from '@opentiny/vue-renderless/button-group/vue' import { props, setup, defineComponent } from '@opentiny/vue-common' import Popover from '@opentiny/vue-popover' import Button from '@opentiny/vue-button' -import { iconPopup, iconWriting } from '@opentiny/vue-icon' +import { iconPopup, iconEditor } from '@opentiny/vue-icon' import { AutoTip } from '@opentiny/vue-directive' import type { IButtonGroupApi } from '@opentiny/vue-renderless/types/button-group.type' @@ -140,7 +140,7 @@ export default defineComponent({ TinyPopover: Popover, TinyButton: Button, IconPopup: iconPopup(), - IconWriting: iconWriting() + IconEditor: iconEditor() // 新规范图标 }, setup(props, context) { return setup({ props, context, renderless, api }) as unknown as IButtonGroupApi diff --git a/packages/vue/src/calendar-view/src/pc.vue b/packages/vue/src/calendar-view/src/pc.vue index 728f8b410..a471155ca 100644 --- a/packages/vue/src/calendar-view/src/pc.vue +++ b/packages/vue/src/calendar-view/src/pc.vue @@ -58,8 +58,8 @@ day.isLast || day.isNext ? 'is-next-or-last' : isToday(day) || isSelectedDate(day) - ? 'is-selected' - : '', + ? 'is-selected' + : '', day.disabled ? 'is-disabled' : '' ]" > diff --git a/packages/vue/src/card/src/pc.vue b/packages/vue/src/card/src/pc.vue index eff3be628..cd8b9d651 100644 --- a/packages/vue/src/card/src/pc.vue +++ b/packages/vue/src/card/src/pc.vue @@ -147,7 +147,6 @@ import DropdownMenu from '@opentiny/vue-dropdown-menu' import DropdownItem from '@opentiny/vue-dropdown-item' import Checkbox from '@opentiny/vue-checkbox' import Radio from '@opentiny/vue-radio' -import { IconEllipsis } from '@opentiny/vue-icon' import '@opentiny/vue-theme/card/index.less' export default defineComponent({ @@ -158,8 +157,7 @@ export default defineComponent({ TinyDropdownMenu: DropdownMenu, TinyDropdownItem: DropdownItem, TinyCheckbox: Checkbox, - TinyRadio: Radio, - IconEllipsis: IconEllipsis() + TinyRadio: Radio }, props: [ ...props, diff --git a/packages/vue/src/dialog-select/src/index.ts b/packages/vue/src/dialog-select/src/index.ts index b74fd57cc..63b9d7f85 100644 --- a/packages/vue/src/dialog-select/src/index.ts +++ b/packages/vue/src/dialog-select/src/index.ts @@ -5,10 +5,19 @@ const template = () => { return PCTemplate } +const $constants = { + INPUT_HEIGHT: '32px', + INPUT_MARGIN_BOTTOM: '8px' +} + export default defineComponent({ name: $prefix + 'DialogSelect', props: { ...$props, + _constants: { + type: Object, + default: () => $constants + }, dialogOp: { type: Object, default: () => ({}) diff --git a/packages/vue/src/dialog-select/src/pc.vue b/packages/vue/src/dialog-select/src/pc.vue index 21ad69875..c7da2b301 100644 --- a/packages/vue/src/dialog-select/src/pc.vue +++ b/packages/vue/src/dialog-select/src/pc.vue @@ -1,6 +1,11 @@ @@ -155,6 +172,7 @@ import Split from '@opentiny/vue-split' import SelectedBox from '@opentiny/vue-selected-box' import Input from '@opentiny/vue-input' import Tree from '@opentiny/vue-tree' +import { iconSearch } from '@opentiny/vue-icon' import '@opentiny/vue-theme/dialog-select/index.less' export default defineComponent({ @@ -206,7 +224,8 @@ export default defineComponent({ TinySplit: Split, TinySelectedBox: SelectedBox, TinyInput: Input, - TinyTree: Tree + TinyTree: Tree, + TinyIconSearch: iconSearch() }, setup(props, context): any { return setup({ props, context, renderless, api }) diff --git a/packages/vue/src/dropdown/src/pc.vue b/packages/vue/src/dropdown/src/pc.vue index 6133d1494..cdbd09fa9 100644 --- a/packages/vue/src/dropdown/src/pc.vue +++ b/packages/vue/src/dropdown/src/pc.vue @@ -88,6 +88,7 @@ export default defineComponent({ default: false }, suffixIcon: Object, + prefixIcon: Object, lazyShowPopper: { type: Boolean, default: false @@ -106,7 +107,7 @@ export default defineComponent({ return setup({ props, context, renderless, api, h }) }, render() { - const { splitButton, type, disabled, handleMainButtonClick, menuOptions, title, suffixIcon } = this + const { splitButton, type, disabled, handleMainButtonClick, menuOptions, title, suffixIcon, prefixIcon } = this const { slots, size, state, border, showIcon, round, clickOutside } = this const params = { visible: state.visible } @@ -117,6 +118,7 @@ export default defineComponent({ // 优先级:suffix-icon 插槽 > suffixIcon 属性 > 其他主题图标 > 默认主题图标 const IconDown = suffixIcon || state.designConfig?.icons?.dropdownIcon || iconDownWard() + const IconPre = prefixIcon const ButtonIconDown = state.designConfig?.icons?.dropdownIcon || iconDownWard() const defaultSlot = slots.default && slots.default(params) @@ -144,6 +146,7 @@ export default defineComponent({ ) } else { const suffixSlot = slots['suffix-icon'] && slots['suffix-icon']() + const prefixSlot = slots['prefix-icon'] && slots['prefix-icon']() const vnodeData = (defaultSlot && defaultSlot[0]?.data) || {} const { attrs = {} } = vnodeData @@ -159,6 +162,13 @@ export default defineComponent({ '' ) + const prefixInner = + prefixIcon || prefixSlot ? ( + {prefixSlot || } + ) : ( + '' + ) + let defaultTriggerElm = defaultSlot || title ? {defaultSlot || title} : null @@ -172,15 +182,15 @@ export default defineComponent({ showIcon ? ' is-show-icon ' : '' } ${triggerClass}`} reset-time={0}> + {prefixInner} {defaultTriggerElm} {suffixInner} ) : ( + class={`is-text${state.visible ? ' is-expand' : ' is-hide'}${disabled ? ' is-disabled' : ''} ${triggerClass}`}> + {prefixInner} {defaultTriggerElm} {suffixInner} diff --git a/packages/vue/src/file-upload/src/pc.vue b/packages/vue/src/file-upload/src/pc.vue index 8077be0d5..9eeb9b6ee 100644 --- a/packages/vue/src/file-upload/src/pc.vue +++ b/packages/vue/src/file-upload/src/pc.vue @@ -43,7 +43,7 @@ import type { IFileUploadApi } from '@opentiny/vue-renderless/types/file-upload. const TinyIconAttachment = iconAttachment() const TinyIconSuccessful = iconSuccessful() -const TinyIconCloseCircle = iconClose() +const TinyIconClose = iconClose() const TinyIconDownload = iconDownload() const TinyIconFileCloudupload = iconFileCloudupload() const TinyIconPlus = iconPlus() @@ -239,7 +239,7 @@ export default defineComponent({ ), showDel && ( handleRemove(file)}> - + ) ] diff --git a/packages/vue/src/grid/package.json b/packages/vue/src/grid/package.json index 0b4dd1993..0c1d45200 100644 --- a/packages/vue/src/grid/package.json +++ b/packages/vue/src/grid/package.json @@ -15,20 +15,20 @@ "//postversion": "pnpm build" }, "dependencies": { - "@opentiny/vue-renderless": "workspace:~", - "@opentiny/vue-locale": "workspace:~", - "@opentiny/vue-modal": "workspace:~", + "@opentiny/vue-common": "workspace:~", "@opentiny/vue-dropdown": "workspace:~", "@opentiny/vue-dropdown-item": "workspace:~", "@opentiny/vue-dropdown-menu": "workspace:~", "@opentiny/vue-exception": "workspace:~", - "@opentiny/vue-pager": "workspace:~", "@opentiny/vue-icon": "workspace:~", - "@opentiny/vue-tooltip": "workspace:~", - "@opentiny/vue-theme": "workspace:~", - "@opentiny/vue-tag": "workspace:~", "@opentiny/vue-loading": "workspace:~", - "@opentiny/vue-common": "workspace:~" + "@opentiny/vue-locale": "workspace:~", + "@opentiny/vue-modal": "workspace:~", + "@opentiny/vue-pager": "workspace:~", + "@opentiny/vue-renderless": "workspace:~", + "@opentiny/vue-tag": "workspace:~", + "@opentiny/vue-theme": "workspace:~", + "@opentiny/vue-tooltip": "workspace:~" }, "license": "MIT" } diff --git a/packages/vue/src/grid/src/body/src/body.tsx b/packages/vue/src/grid/src/body/src/body.tsx index e1e566b91..1060d2fc9 100644 --- a/packages/vue/src/grid/src/body/src/body.tsx +++ b/packages/vue/src/grid/src/body/src/body.tsx @@ -57,6 +57,7 @@ const classMap = { colActived: 'col__actived', rowNew: 'row__new', rowSelected: 'row__selected', + rowRadio: 'row__radio', rowActived: 'row__actived', isScrollload: 'is__scrollload' } @@ -548,7 +549,8 @@ function renderRow(args) { { [`row__level-${rowLevel}`]: treeConfig, [classMap.rowNew]: editStore.insertList.includes(row), - [classMap.rowSelected]: selection.includes(row) || selectRow === row, + [classMap.rowSelected]: selection.includes(row), + [classMap.rowRadio]: selectRow === row, [classMap.rowActived]: rowActived }, rowClassName diff --git a/packages/vue/src/grid/src/cell/src/cell.ts b/packages/vue/src/grid/src/cell/src/cell.ts index afe0e4e23..4d19043fc 100644 --- a/packages/vue/src/grid/src/cell/src/cell.ts +++ b/packages/vue/src/grid/src/cell/src/cell.ts @@ -536,12 +536,6 @@ export const Cell = { checkMethod && (options.attrs.disabled = isDisabled = !checkMethod(params)) treeConfig && (indeterminate = ~treeIndeterminates.indexOf(row)) options.domProps = { checked: ~$table.selection.indexOf(row) } - options.on = { - change(event) { - $table.triggerCheckRowEvent(event, params, event.target.checked) - $table.showSelectToolbar() - } - } let { twcls } = params let labelCls = [ @@ -565,7 +559,31 @@ export const Cell = { options.class = inputCls } - let vnode = h('label', { class: labelCls, key: random() }, [ + /** 之前版本通过监听input的change事件切换选中状态, + * 当同时配置了单选和多选时,且单选的trigger为row时: + * 点击后由于先触发了单元格点击事件,切换了行单元状态,导致行重渲染,input的change事件无法触发,导致多选无法选中问题 + * 3.19.0将选切换提前至点击事件,从而支持单选和多选同时配置。 + */ + const checkboxEvent = { + click(event) { + // 忽略label特性触发的input点击冒泡 + if (event?.target?.tagName.toLowerCase() === 'input') { + return + } + const isChecked = $table.selection.includes(row) + /** triggerCheckRowEvent会修改dom,导致事件冒泡处理时,依靠dom的逻辑判断有误。 + * 例如:onClickSelectColumn方法中,会使用event.target向上查找父元素判断是否点击复现框,从而避免重复处理选中逻辑。 + * 修改dom后,原本复选框已被移出document,因此需要使用setTimeout宏任务来将修改dom的操作延迟到所有事件冒泡处理完毕。 + */ + setTimeout(() => { + $table.triggerCheckRowEvent(event, params, !isChecked) + // TODO: 多选工具栏,貌似没什么用,待梳理后去除。 + $table.showSelectToolbar() + }, 0) + } + } + + let vnode = h('label', { class: labelCls, key: random(), on: checkboxEvent }, [ h('input', options), h('span', { class: spanCls }, [ h(iconCheck(), { class: ['tiny-svg-size', 'icon-check'] }), @@ -580,6 +598,7 @@ export const Cell = { renderTreeSelectionCell(h, params) { return Cell.renderTreeIcon(h, params).concat(Cell.renderSelectionCell(h, params)) }, + // TODO: 与renderSelectionCell代码方法高度相似,待提取公共逻辑。 renderSelectionCellByProp(h, params) { let { $table, column, row } = params let { slots } = column @@ -838,12 +857,8 @@ export const Cell = { let { actived } = params.$table.editStore const { editConfig } = params.$table - return Cell.runRenderer( - h, - params, - this, - actived && actived.row === params.row && handleActivedCanActive({ editConfig, params }) - ) + const isActiveCell = () => (editConfig?.activeStrictly ? handleActivedCanActive({ editConfig, params }) : true) + return Cell.runRenderer(h, params, this, actived?.row === params.row && isActiveCell()) }, renderTreeCellEdit(h, params) { return Cell.renderTreeIcon(h, params).concat(Cell.renderCellEdit(h, params)) diff --git a/packages/vue/src/grid/src/filter/src/panel.tsx b/packages/vue/src/grid/src/filter/src/panel.tsx index 80ff20cdd..9625fee77 100644 --- a/packages/vue/src/grid/src/filter/src/panel.tsx +++ b/packages/vue/src/grid/src/filter/src/panel.tsx @@ -1,5 +1,4 @@ /* eslint-disable vue/no-mutating-props */ -/* eslint-disable vue/no-use-computed-property-like-method */ /** * MIT License * @@ -289,20 +288,29 @@ export default defineComponent({ } } - this.popperJS && this.popperJS.destroy() && (this.popperJS = null) - this.$nextTick(() => { - const { targetElemParentTr, id } = this.filterStore - const reference = targetElemParentTr && targetElemParentTr.querySelector(`svg.tiny-grid-filter__btn.${id}`) - const popper = this.$el + if (this.popperJS) { + this.popperJS.destroy() + this.popperJS = null + } + if (this.visible) { + /** popper通过resizeObserver监听尺寸变化,resizeObserver的回调默认会在下一事件循环执行一次,从而update popper + 此处获取的reference,在遇到长任务后,在下一事件循环时,可能已经被移除了,导致popper元素位置在左上角。 + 使用setTimeout延迟弹出时机,使得两次update中的reference都为选中态的过滤图标。 + */ + setTimeout(() => { + const { targetElemParentTr, id } = this.filterStore + const reference = targetElemParentTr && targetElemParentTr.querySelector(`svg.tiny-grid-filter__btn.${id}`) + const popper = this.$el - popper.style.zIndex = PopupManager.nextZIndex() + popper.style.zIndex = PopupManager.nextZIndex() - if (this.visible) { this.popperJS = new PopperJS(reference, popper, { - placement: 'bottom-end' - }).update() - } - }) + placement: 'bottom-end', + gpuAcceleration: false + }) + popper.style.display = 'block' + }) + } }), // 基础清除选项 renderBase() { diff --git a/packages/vue/src/grid/src/table/src/table.ts b/packages/vue/src/grid/src/table/src/table.ts index 71ec1d3be..242d3367d 100644 --- a/packages/vue/src/grid/src/table/src/table.ts +++ b/packages/vue/src/grid/src/table/src/table.ts @@ -27,7 +27,7 @@ import Tooltip from '@opentiny/vue-tooltip' import { extend } from '@opentiny/vue-renderless/common/object' import { isEmptyObject, isObject, isNull } from '@opentiny/vue-renderless/common/type' import { uniqueId, template, toNumber, isBoolean } from '@opentiny/vue-renderless/grid/static/' -import { getRowkey, GlobalEvent, hasChildrenList, getListeners, isScale } from '@opentiny/vue-renderless/grid/utils' +import { getRowkey, GlobalEvent, hasChildrenList, getListeners } from '@opentiny/vue-renderless/grid/utils' import TINYGrid from '../../adapter' import GridHeader from '../../header' import GridFooter from '../../footer' @@ -103,7 +103,9 @@ function mergeTreeConfig(_vm) { } const renderEmptyPartFn = (opt) => { - const { _vm, tableData, $slots, renderEmpty } = opt + const { _vm, tableData } = opt + const { $grid = {}, renderEmpty } = _vm + const { $slots } = $grid return () => { let emptyPartVnode = null let { computerTableBodyHeight } = _vm @@ -272,21 +274,13 @@ function getRenderer(opt) { visibleColumn } = opt const { $grid, ctxMenuStore, editRules, filterStore, footerData, footerMethod, hasFilter, hasTip, height, id } = _vm - const { - isCtxMenu, - isResizable, - renderEmpty, - scrollbarHeight, - selectToolbarStore, - tooltipContentOpts, - vaildTipOpts, - validOpts - } = _vm + const { isCtxMenu, isResizable, scrollbarHeight, selectToolbarStore, tooltipContentOpts, vaildTipOpts, validOpts } = + _vm const { selectToolbar, renderedToolbar } = $grid const renderHeader = () => showHeader ? h(GridHeader, { ref: 'tableHeader', props, class: _vm.viewCls('tableHeader') }) : [null] - const renderEmptyPart = renderEmptyPartFn({ _vm, tableData, $slots, renderEmpty }) + const renderEmptyPart = renderEmptyPartFn({ _vm, tableData }) const renderFooter = renderFooterFn({ _vm, showFooter, footerData, footerMethod, tableColumn, visibleColumn, vSize }) const renderResizeBar = renderResizeBarFn({ _vm, isResizable, overflowX, scrollbarHeight }) const arg1 = { hasFilter, optimizeOpts, filterStore, isCtxMenu, ctxMenuStore, hasTip, tooltipContentOpts } @@ -316,9 +310,13 @@ const renderFooterBorder = (_vm) => { // 设置表格最外层元素类名 function getTableAttrs(tableVm) { const { isShapeTable, vSize, editConfig, showHeader, showFooter, overflowY, overflowX, showOverflow } = tableVm - const { showHeaderOverflow, highlightCell, optimizeOpts, stripe, border, isGroup, mouseConfig = {} } = tableVm + const { showHeaderOverflow, highlightCell, optimizeOpts, stripe, border, isGroup } = tableVm const { maxHeight, loading, highlightHoverRow, highlightHoverColumn, validOpts } = tableVm - const { stripeSaas, borderSaas, borderVertical, isThemeSaas, rowSpan, dropConfig = {} } = tableVm + const { stripeSaas, borderSaas, borderVertical, isThemeSaas, rowSpan } = tableVm + + // 当用户传null值,解构得到的值为null,因此需要使用fallback值 + const dropConfig = tableVm.dropConfig || {} + const mouseConfig = tableVm.mouseConfig || {} const map = { showHeader: 'show__head', @@ -334,7 +332,7 @@ function getTableAttrs(tableVm) { // 多端表格的最大高度在多端模板中处理,此处仅处理pc端表格逻辑 if (isShapeTable && maxHeight) { - style.maxHeight = isScale(maxHeight) ? maxHeight : toNumber(maxHeight) + 'px' + style.maxHeight = Number(maxHeight) ? maxHeight + 'px' : maxHeight } return { diff --git a/packages/vue/src/grid/src/validator/src/methods.ts b/packages/vue/src/grid/src/validator/src/methods.ts index 0aa7ecec3..e919c8f9d 100644 --- a/packages/vue/src/grid/src/validator/src/methods.ts +++ b/packages/vue/src/grid/src/validator/src/methods.ts @@ -60,8 +60,12 @@ const onRejected = (opt, _this) => { cb ? resolve() : reject(args) } - const funcPosAndFinish = (params, finish) => () => { - getCell(_this, params).then((activeCell) => { + const funcPosAndFinish = (params, finish) => async () => { + // 如果是虚拟滚动,则先滚动到对应单元格且渲染后再显示提示 + if (_this.scrollXLoad) { + await _this.scrollToColumn(params.column, true) + } + return getCell(_this, params).then((activeCell) => { params.cell = activeCell _this.handleValidError(params) finish() diff --git a/packages/vue/src/image/src/index.ts b/packages/vue/src/image/src/index.ts index 7256ec0c3..f51fcbdea 100644 --- a/packages/vue/src/image/src/index.ts +++ b/packages/vue/src/image/src/index.ts @@ -66,6 +66,10 @@ export const imageProps = { keepStyle: { type: Boolean, default: false + }, + appendToBody: { + type: Boolean, + default: true } } export default defineComponent({ diff --git a/packages/vue/src/image/src/mobile-first.vue b/packages/vue/src/image/src/mobile-first.vue index b4d62eb7f..ffbcce2bb 100644 --- a/packages/vue/src/image/src/mobile-first.vue +++ b/packages/vue/src/image/src/mobile-first.vue @@ -37,7 +37,7 @@ showHover ? 'block' : 'hidden' ]" > - + - + , setup(props, context) { return $setup({ props, context, template }) } diff --git a/packages/vue/src/modal/src/pc.vue b/packages/vue/src/modal/src/pc.vue index f298a127f..8b4429b4e 100644 --- a/packages/vue/src/modal/src/pc.vue +++ b/packages/vue/src/modal/src/pc.vue @@ -23,8 +23,8 @@ import { iconLoadingShadow, iconWarning, iconClose, - iconFullscreenLeft, - iconMinscreenLeft + iconFullscreenRight, + iconMinscreenRight } from '@opentiny/vue-icon' import '@opentiny/vue-theme/modal/index.less' import type { IModalApi } from '@opentiny/vue-renderless/types/modal.type' @@ -192,7 +192,7 @@ export default defineComponent({ ) : null, resize - ? h(zoomLocat ? iconMinscreenLeft() : iconFullscreenLeft(), { + ? h(zoomLocat ? iconMinscreenRight() : iconFullscreenRight(), { class: ['tiny-modal__zoom-btn', 'trigger__btn'], on: { click: this.toggleZoomEvent diff --git a/packages/vue/src/picker/src/mobile-first.vue b/packages/vue/src/picker/src/mobile-first.vue index 1263e1b23..e6fae9e3b 100644 --- a/packages/vue/src/picker/src/mobile-first.vue +++ b/packages/vue/src/picker/src/mobile-first.vue @@ -17,7 +17,7 @@ :tabindex="tabindex" v-else-if="!state.ranged" data-tag="tiny-date-editor" - :readonly="state.isMobileMode || !editable || readonly || state.type === 'dates' || state.type === 'week'" + :readonly="state.isMobileScreen || !editable || readonly || state.type === 'dates' || state.type === 'week'" :disabled="state.pickerDisabled" :size="state.pickerSize" :name="name" @@ -49,7 +49,7 @@