From bc2004f704eec7c51a9add6db43a104a7e20b548 Mon Sep 17 00:00:00 2001 From: yehuozhili <673632758@qq.com> Date: Tue, 5 Apr 2022 02:47:09 +0800 Subject: [PATCH] update 0.13.2 --- CHANGELOG.md | 4 ++ .../docs/ChangeLog/index.en.md | 6 +- .../dooringx-dumi-doc/docs/ChangeLog/index.md | 4 ++ .../plugin/formComponents/animateControl.tsx | 2 +- packages/dooringx-lib/package.json | 2 +- .../src/core/AnimateFactory/index.ts | 60 +++++++++---------- .../dooringx-plugin-template/package.json | 2 +- .../template/template.json | 2 +- script/translate.js | 1 + 9 files changed, 44 insertions(+), 39 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ce95432..23af8bc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.13.2 + +修复自定义动画可能失效问题。 + ## 0.13.1 修复定制动画重载画布的编辑问题。 diff --git a/packages/dooringx-dumi-doc/docs/ChangeLog/index.en.md b/packages/dooringx-dumi-doc/docs/ChangeLog/index.en.md index a402cc2..4f6f850 100644 --- a/packages/dooringx-dumi-doc/docs/ChangeLog/index.en.md +++ b/packages/dooringx-dumi-doc/docs/ChangeLog/index.en.md @@ -1,10 +1,12 @@ --- -title: change log +title: Change log toc: menu nav: - title: change log + title: Change log order: 6 --- +## 0.13.2 +Fixed possible invalidation of custom animation. ## 0.13.1 Fixed editing problem of custom animation overloaded canvas. ## 0.13.0 diff --git a/packages/dooringx-dumi-doc/docs/ChangeLog/index.md b/packages/dooringx-dumi-doc/docs/ChangeLog/index.md index 7ff133b..8dbab61 100644 --- a/packages/dooringx-dumi-doc/docs/ChangeLog/index.md +++ b/packages/dooringx-dumi-doc/docs/ChangeLog/index.md @@ -5,6 +5,10 @@ nav: title: 变更日志 order: 6 --- +## 0.13.2 + +修复自定义动画可能失效问题。 + ## 0.13.1 修复定制动画重载画布的编辑问题。 diff --git a/packages/dooringx-example/src/plugin/formComponents/animateControl.tsx b/packages/dooringx-example/src/plugin/formComponents/animateControl.tsx index fb65572..33f5836 100644 --- a/packages/dooringx-example/src/plugin/formComponents/animateControl.tsx +++ b/packages/dooringx-example/src/plugin/formComponents/animateControl.tsx @@ -585,7 +585,7 @@ function AnimateControl(props: AnimateControlProps) { setDeletModal(false); }} > -
+
); diff --git a/packages/dooringx-lib/package.json b/packages/dooringx-lib/package.json index f59ea7c..bb2138e 100644 --- a/packages/dooringx-lib/package.json +++ b/packages/dooringx-lib/package.json @@ -1,5 +1,5 @@ { - "version": "0.13.1", + "version": "0.13.2", "license": "MIT", "main": "dist/index.js", "module": "dist/dooringx-lib.esm.js", diff --git a/packages/dooringx-lib/src/core/AnimateFactory/index.ts b/packages/dooringx-lib/src/core/AnimateFactory/index.ts index ff05ea4..9594c01 100644 --- a/packages/dooringx-lib/src/core/AnimateFactory/index.ts +++ b/packages/dooringx-lib/src/core/AnimateFactory/index.ts @@ -33,15 +33,34 @@ export interface TransformItem { animateName: string; keyframes: TransformItemObj[]; } - +export const styleSheetId = 'dooringx_dynamic_style'; export class AnimateFactory { constructor(public customAnimateName: Array = []) {} getCustomAnimateName() { return this.customAnimateName; } + searchSheet(): null | CSSStyleSheet { + let sheet: null | CSSStyleSheet = null; + Array.from(document.styleSheets).forEach((v) => { + const node = v?.ownerNode as Element; + if (node?.id === styleSheetId) { + sheet = v; + } + }); + return sheet; + } + getStyleSheets() { - return document.styleSheets; + let sheet = this.searchSheet(); + if (!sheet) { + let style = document.createElement('style'); + style.id = styleSheetId; + style.appendChild(document.createTextNode('')); + document.head.appendChild(style); + } + sheet = this.searchSheet(); + return sheet; } /** @@ -51,32 +70,8 @@ export class AnimateFactory { * @memberof AnimateFactory */ inserKeyframeAnimate(ruleText: string) { - const sheets = this.getStyleSheets(); - if (sheets.length === 0) { - let style = document.createElement('style'); - style.appendChild(document.createTextNode('')); - document.head.appendChild(style); - } - // const len = sheets.length; - // let ss: number | null = null; - // let st: number | null = null; - // for (let i = 0; i < len; i++) { - // for (let k = 0; k < sheets[i].cssRules.length; k++) { - // const rule = sheets[i].cssRules[k] as CSSKeyframesRule; - // const name = rule?.name; - // if (name && name === keyframeName) { - // // 删除该keyframe - // ss = i; - // st = k; - // } - // } - // } - // if (ss !== null && st !== null) { - // sheets[ss].deleteRule(st); - // } - // let sheet = sheets[ss ? ss : sheets.length - 1] as CSSStyleSheet; - let sheet = sheets[0] as CSSStyleSheet; // 末尾的经常存在重复覆盖的问题 - sheet.insertRule(ruleText, sheet.cssRules.length); + const sheet = this.getStyleSheets(); + if (sheet) sheet.insertRule(ruleText, sheet.cssRules.length); } /** @@ -88,21 +83,20 @@ export class AnimateFactory { */ deleteKeyFrameAnimate(animateName: string) { const sheets = this.getStyleSheets(); - if (sheets.length === 0) { + if (!sheets) { return; } - const sheet = sheets[0] as CSSStyleSheet; - const len = sheet.cssRules.length; + const len = sheets.cssRules.length; let ss = null; for (let i = 0; i < len; i++) { - const rule = sheet.cssRules[i] as CSSKeyframesRule; + const rule = sheets.cssRules[i] as CSSKeyframesRule; const name = rule?.name; if (name && name === animateName) { ss = i; } } if (ss !== null) { - sheet.deleteRule(ss); + sheets.deleteRule(ss); } } diff --git a/packages/dooringx-plugin-template/package.json b/packages/dooringx-plugin-template/package.json index 9bfce55..bda998b 100644 --- a/packages/dooringx-plugin-template/package.json +++ b/packages/dooringx-plugin-template/package.json @@ -1,6 +1,6 @@ { "name": "dooringx-plugin-template", - "version": "0.13.1", + "version": "0.13.2", "description": "> TODO: description", "author": "yehuozhili <673632758@qq.com>", "homepage": "https://github.com/H5-Dooring/dooringx#readme", diff --git a/packages/dooringx-plugin-template/template/template.json b/packages/dooringx-plugin-template/template/template.json index 74f81c2..ec65c9e 100644 --- a/packages/dooringx-plugin-template/template/template.json +++ b/packages/dooringx-plugin-template/template/template.json @@ -40,7 +40,7 @@ "@rollup/plugin-node-resolve": "^13.0.4", "@rollup/plugin-url": "^6.1.0", "@svgr/rollup": "^5.5.0", - "dooringx-lib": "^0.13.1", + "dooringx-lib": "^0.13.2", "postcss": "^8.3.6", "rollup-plugin-peer-deps-external": "^2.2.4", "rollup-plugin-postcss": "^4.0.1", diff --git a/script/translate.js b/script/translate.js index b9388da..3899e56 100644 --- a/script/translate.js +++ b/script/translate.js @@ -51,6 +51,7 @@ const concatResult = (result) => { //替换Title: if (v.src.startsWith('title:') && v.dst.startsWith('Title:')) { v.dst = v.dst.replace('Title:', 'title:'); + v.dst = v.dst.replace('change log', 'Change log'); } const fi = v.src.startsWith('##') ? v.src : v.dst; if (i > navstart && i < line) {