@mantou/gem 1.7.12 → 2.0.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (126) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +1 -1
  3. package/dist/gem.es.js +2010 -1765
  4. package/dist/gem.umd.js +52 -53
  5. package/elements/base/dialog.d.ts +0 -11
  6. package/elements/base/dialog.d.ts.map +1 -1
  7. package/elements/base/dialog.js +93 -66
  8. package/elements/base/dialog.js.map +1 -1
  9. package/elements/base/gesture.d.ts +1 -2
  10. package/elements/base/gesture.d.ts.map +1 -1
  11. package/elements/base/gesture.js +157 -96
  12. package/elements/base/gesture.js.map +1 -1
  13. package/elements/base/link.d.ts +5 -5
  14. package/elements/base/link.d.ts.map +1 -1
  15. package/elements/base/link.js +249 -145
  16. package/elements/base/link.js.map +1 -1
  17. package/elements/base/modal-factory.d.ts +145 -139
  18. package/elements/base/modal-factory.d.ts.map +1 -1
  19. package/elements/base/modal-factory.js +84 -25
  20. package/elements/base/modal-factory.js.map +1 -1
  21. package/elements/base/reflect.d.ts +0 -1
  22. package/elements/base/reflect.d.ts.map +1 -1
  23. package/elements/base/reflect.js +83 -38
  24. package/elements/base/reflect.js.map +1 -1
  25. package/elements/base/route.d.ts +12 -24
  26. package/elements/base/route.d.ts.map +1 -1
  27. package/elements/base/route.js +263 -164
  28. package/elements/base/route.js.map +1 -1
  29. package/elements/base/title.d.ts +3 -11
  30. package/elements/base/title.d.ts.map +1 -1
  31. package/elements/base/title.js +110 -59
  32. package/elements/base/title.js.map +1 -1
  33. package/elements/base/unsafe.d.ts +0 -1
  34. package/elements/base/unsafe.d.ts.map +1 -1
  35. package/elements/base/unsafe.js +82 -33
  36. package/elements/base/unsafe.js.map +1 -1
  37. package/elements/base/use.d.ts.map +1 -1
  38. package/elements/base/use.js +95 -47
  39. package/elements/base/use.js.map +1 -1
  40. package/helper/i18n.d.ts +4 -9
  41. package/helper/i18n.d.ts.map +1 -1
  42. package/helper/i18n.js +69 -65
  43. package/helper/i18n.js.map +1 -1
  44. package/helper/logger.js +10 -9
  45. package/helper/logger.js.map +1 -1
  46. package/helper/react-shim.d.ts +15 -0
  47. package/helper/react-shim.d.ts.map +1 -0
  48. package/helper/react-shim.js +56 -0
  49. package/helper/react-shim.js.map +1 -0
  50. package/helper/react-utils.d.ts +15 -0
  51. package/helper/react-utils.d.ts.map +1 -0
  52. package/helper/react-utils.js +50 -0
  53. package/helper/react-utils.js.map +1 -0
  54. package/helper/request.d.ts +4 -4
  55. package/helper/request.d.ts.map +1 -1
  56. package/helper/request.js +1 -1
  57. package/helper/request.js.map +1 -1
  58. package/helper/ssr-shim.d.ts.map +1 -1
  59. package/helper/ssr-shim.js +8 -1
  60. package/helper/ssr-shim.js.map +1 -1
  61. package/helper/theme.d.ts +14 -21
  62. package/helper/theme.d.ts.map +1 -1
  63. package/helper/theme.js +55 -38
  64. package/helper/theme.js.map +1 -1
  65. package/index.d.ts +4 -3
  66. package/index.d.ts.map +1 -1
  67. package/index.js +5 -3
  68. package/index.js.map +1 -1
  69. package/lib/decorators.d.ts +74 -42
  70. package/lib/decorators.d.ts.map +1 -1
  71. package/lib/decorators.js +324 -84
  72. package/lib/decorators.js.map +1 -1
  73. package/lib/directives.d.ts +4 -0
  74. package/lib/directives.d.ts.map +1 -0
  75. package/lib/directives.js +5 -0
  76. package/lib/directives.js.map +1 -0
  77. package/lib/element.d.ts +112 -110
  78. package/lib/element.d.ts.map +1 -1
  79. package/lib/element.js +431 -468
  80. package/lib/element.js.map +1 -1
  81. package/lib/history.d.ts +4 -0
  82. package/lib/history.d.ts.map +1 -1
  83. package/lib/history.js +12 -13
  84. package/lib/history.js.map +1 -1
  85. package/lib/store.d.ts +1 -1
  86. package/lib/store.d.ts.map +1 -1
  87. package/lib/store.js +4 -5
  88. package/lib/store.js.map +1 -1
  89. package/lib/utils.d.ts +3 -43
  90. package/lib/utils.d.ts.map +1 -1
  91. package/lib/utils.js +61 -235
  92. package/lib/utils.js.map +1 -1
  93. package/lib/version.d.ts +1 -1
  94. package/lib/version.d.ts.map +1 -1
  95. package/lib/version.js +2 -1
  96. package/lib/version.js.map +1 -1
  97. package/package.json +12 -11
  98. package/src/dist.ts +3 -2
  99. package/src/elements/base/dialog.ts +10 -20
  100. package/src/elements/base/gesture.ts +16 -14
  101. package/src/elements/base/link.ts +65 -44
  102. package/src/elements/base/modal-factory.ts +14 -14
  103. package/src/elements/base/reflect.ts +24 -32
  104. package/src/elements/base/route.ts +55 -68
  105. package/src/elements/base/title.ts +25 -42
  106. package/src/elements/base/unsafe.ts +12 -21
  107. package/src/elements/base/use.ts +17 -13
  108. package/src/helper/i18n.ts +20 -14
  109. package/src/helper/react-utils.ts +66 -0
  110. package/src/helper/ssr-shim.ts +8 -1
  111. package/src/helper/theme.ts +72 -45
  112. package/src/index.ts +6 -4
  113. package/src/lib/decorators.ts +394 -93
  114. package/src/lib/directives.ts +6 -0
  115. package/src/lib/element.ts +473 -500
  116. package/src/lib/history.ts +4 -3
  117. package/src/lib/store.ts +2 -1
  118. package/src/lib/utils.ts +12 -191
  119. package/src/lib/version.ts +2 -1
  120. package/src/test/elements/link.test.ts +1 -1
  121. package/src/test/elements/title.test.ts +1 -0
  122. package/src/test/gem-element/advance.test.ts +72 -49
  123. package/src/test/gem-element/basic.test.ts +37 -50
  124. package/src/test/gem-element/decorators.test.ts +22 -21
  125. package/src/test/gem-element/multi.test.ts +5 -5
  126. package/src/test/utils.test.ts +15 -45
@@ -1,8 +1,18 @@
1
1
  import { fixture, expect, nextFrame } from '@open-wc/testing';
2
2
 
3
- import { GemElement, html } from '../../lib/element';
3
+ import { createCSSSheet, createState, GemElement, html } from '../../lib/element';
4
4
  import { createStore, updateStore } from '../../lib/store';
5
- import { createCSSSheet, css } from '../../lib/utils';
5
+ import { css } from '../../lib/utils';
6
+ import {
7
+ adoptedStyle,
8
+ attribute,
9
+ boolattribute,
10
+ connectStore,
11
+ customElement,
12
+ numattribute,
13
+ property,
14
+ shadow,
15
+ } from '../../lib/decorators';
6
16
 
7
17
  const store = createStore({
8
18
  a: 1,
@@ -14,47 +24,40 @@ const styles = createCSSSheet(css`
14
24
  }
15
25
  `);
16
26
 
27
+ @connectStore(store)
28
+ @adoptedStyle(styles)
29
+ @customElement('gem-demo')
30
+ @shadow()
17
31
  class GemDemo extends GemElement {
18
- /** @attr */ attr: string | null;
19
- /** @attr */ disabled: boolean;
20
- /** @attr */ count: number;
21
- /** @attr long-attr*/ longAttr: string;
22
- static observedAttributes = ['attr', 'long-attr', 'disabled', 'count'];
23
- static booleanAttributes = new Set(['disabled']);
24
- static numberAttributes = new Set(['count']);
32
+ @attribute longAttr: string;
33
+ @attribute attr: string;
34
+ @boolattribute disabled: boolean;
35
+ @numattribute count: number;
36
+ @property prop = { value: '' };
25
37
 
26
- static observedStores = [store];
27
-
28
- prop = { value: '' };
29
- static observedProperties = ['prop'];
30
-
31
- static adoptedStyleSheets = [styles];
32
- state = { value: '' };
38
+ #state = createState({ value: '' });
33
39
 
34
40
  renderCount = 0;
35
41
 
36
42
  render() {
37
- const { attr, disabled, count, prop, state } = this;
43
+ const { attr, disabled, count, prop } = this;
44
+ const { value } = this.#state;
38
45
  this.renderCount++;
39
- return html`attr: ${attr}, disabled: ${disabled}, count: ${count}, prop: ${prop.value}, state: ${state.value}`;
46
+ return html`attr: ${attr}, disabled: ${disabled}, count: ${count}, prop: ${prop.value}, state: ${value}`;
40
47
  }
41
48
  }
42
49
 
43
- customElements.define('gem-demo', GemDemo);
44
-
45
- class DeferGemElement extends GemElement {
46
- /** @attr */ attr: string | null;
47
- static observedAttributes = ['attr'];
48
- prop: { value: string };
49
- }
50
-
51
50
  describe('基本 gem element 测试', () => {
52
51
  it('后定义元素', async () => {
53
52
  const el: DeferGemElement = await fixture(html`
54
53
  <defer-gem-demo attr="attr" .prop=${{ value: 'prop' }}></defer-gem-demo>
55
54
  `);
56
55
  expect(el.prop.value).to.equal('prop');
57
- customElements.define('defer-gem-demo', DeferGemElement);
56
+ @customElement('defer-gem-demo')
57
+ class DeferGemElement extends GemElement {
58
+ @attribute attr: string;
59
+ @property prop: { value: string };
60
+ }
58
61
  await nextFrame();
59
62
  expect(el.prop.value).to.equal('prop');
60
63
  expect(el.attr).to.equal('attr');
@@ -63,11 +66,6 @@ describe('基本 gem element 测试', () => {
63
66
  const el = await fixture(html`<gem-demo attr="attr" .prop=${{ value: 'prop' }}></gem-demo>`);
64
67
  expect(window.getComputedStyle(el).backgroundColor).to.equal('rgb(255, 0, 0)');
65
68
  });
66
- it('closestElement 方法', async () => {
67
- const el: GemDemo = await fixture(html`<gem-demo attr="attr" .prop=${{ value: 'prop' }}></gem-demo>`);
68
- expect(el.closestElement('body')).to.equal(document.body);
69
- expect(el.closestElement(HTMLBodyElement)).to.equal(document.body);
70
- });
71
69
  it('渲染 gem element', async () => {
72
70
  const el: GemDemo = await fixture(html`<gem-demo attr="attr" .prop=${{ value: 'prop' }}></gem-demo>`);
73
71
  expect(el).shadowDom.to.equal('attr: attr, disabled: false, count: 0, prop: prop, state: ');
@@ -78,13 +76,6 @@ describe('基本 gem element 测试', () => {
78
76
  expect(el.renderCount).to.equal(2);
79
77
  });
80
78
  it('读取 attr', async () => {
81
- class G extends GemElement {
82
- static observedAttributes = ['attr'];
83
- attr!: string;
84
- test = expect(this.attr).to.equal('attr');
85
- }
86
- customElements.define('temp-field-read-attr', G);
87
- await fixture(html`<temp-field-read-attr attr="attr"></temp-field-read-attr>`);
88
79
  const el: GemDemo = await fixture(html`
89
80
  <gem-demo attr="attr" ?disabled=${true} count=${1} long-attr="hi"></gem-demo>
90
81
  `);
@@ -102,6 +93,7 @@ describe('基本 gem element 测试', () => {
102
93
  el.disabled = true;
103
94
  el.count = 2;
104
95
  await Promise.resolve();
96
+ // 相同值不触发更新
105
97
  el.attr = 'value';
106
98
  el.disabled = true;
107
99
  el.count = 2;
@@ -111,19 +103,14 @@ describe('基本 gem element 测试', () => {
111
103
  expect(el.disabled).to.equal(true);
112
104
  expect(el.count).to.equal(2);
113
105
  expect(el).shadowDom.to.equal('attr: value, disabled: true, count: 2, prop: , state: ');
106
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
107
+ // @ts-ignore
114
108
  el.attr = null;
115
109
  await Promise.resolve();
116
110
  expect(el.hasAttribute('attr')).to.equal(false);
117
111
  });
118
112
 
119
113
  it('读取 prop', async () => {
120
- class G extends GemElement {
121
- static observedPropertys = ['prop'];
122
- prop!: any;
123
- test = expect(this.prop).to.equal(undefined);
124
- }
125
- customElements.define('temp-field-read-prop', G);
126
- await fixture(html`<temp-field-read-prop .prop=${{ value: 'prop' }}></temp-field-read-prop>`);
127
114
  const el: GemDemo = await fixture(html`<gem-demo .prop=${{ value: 'prop' }}></gem-demo>`);
128
115
  expect(el.prop).to.deep.equal({ value: 'prop' });
129
116
  });
@@ -143,12 +130,12 @@ describe('基本 gem element 测试', () => {
143
130
  it('修改 state', async () => {
144
131
  const el: GemDemo = await fixture(html`<gem-demo></gem-demo>`);
145
132
  expect(el.renderCount).to.equal(1);
146
- el.setState({ value: 'asfasdf' });
147
- el.setState({ value: 'state' });
148
- el.setState({ value: 'state' });
133
+ el.internals.stateList[0]({ value: 'asfasdf' });
134
+ el.internals.stateList[0]({ value: 'state' });
135
+ el.internals.stateList[0]({ value: 'state' });
149
136
  await Promise.resolve();
150
137
  expect(el.renderCount).to.equal(2);
151
- expect(el.state).to.deep.equal({ value: 'state' });
138
+ expect({ ...el.internals.stateList[0] }).to.deep.equal({ value: 'state' });
152
139
  expect(el).shadowDom.to.equal('attr: , disabled: false, count: 0, prop: , state: state');
153
140
  });
154
141
 
@@ -1,8 +1,10 @@
1
1
  import { fixture, expect } from '@open-wc/testing';
2
2
 
3
- import { GemElement, html } from '../../lib/element';
3
+ import type { Metadata } from '../../lib/element';
4
+ import { createCSSSheet, GemElement, html, createRef } from '../../lib/element';
4
5
  import { createStore, updateStore } from '../../lib/store';
5
- import { createCSSSheet, css } from '../../lib/utils';
6
+ import { css } from '../../lib/utils';
7
+ import type { Emitter } from '../../lib/decorators';
6
8
  import {
7
9
  attribute,
8
10
  property,
@@ -12,12 +14,10 @@ import {
12
14
  emitter,
13
15
  boolattribute,
14
16
  numattribute,
15
- Emitter,
16
17
  part,
17
- RefObject,
18
- refobject,
19
18
  slot,
20
19
  state,
20
+ shadow,
21
21
  } from '../../lib/decorators';
22
22
 
23
23
  const store = createStore({
@@ -33,7 +33,12 @@ const styles = createCSSSheet(css`
33
33
  @connectStore(store)
34
34
  @adoptedStyle(styles)
35
35
  @customElement('decorator-gem-demo')
36
+ @shadow()
36
37
  class DecoratorGemElement extends GemElement {
38
+ // 测试同名
39
+ @part static sayHi: string;
40
+ @slot static rankAttr: string;
41
+
37
42
  @emitter sayHi: Emitter;
38
43
  @attribute rankAttr: string;
39
44
  @boolattribute rankDisabled: boolean;
@@ -41,8 +46,8 @@ class DecoratorGemElement extends GemElement {
41
46
  @property propData = { value: '' };
42
47
  @state openState: boolean;
43
48
  @part headerPart: string;
44
- @refobject inputRef: RefObject<HTMLElement>;
45
49
  @slot bodySlot: string;
50
+ inputRef = createRef<HTMLElement>();
46
51
  renderCount = 0;
47
52
  render() {
48
53
  this.renderCount++;
@@ -56,10 +61,6 @@ describe('装饰器', () => {
56
61
  const el = new DecoratorGemElement();
57
62
  expect(el.propData).to.eql({ value: '' });
58
63
  expect(el.getAttribute('rank-attr')).to.equal(null);
59
- // v2 BUG
60
- expect(el.rankAttr).to.equal('');
61
- el.connectedCallback();
62
- expect(el.getAttribute('rank-attr')).to.equal(null);
63
64
  expect(el.rankAttr).to.equal('');
64
65
 
65
66
  el.rankAttr = 'attr';
@@ -82,23 +83,23 @@ describe('装饰器', () => {
82
83
  `);
83
84
  updateStore(store, { a: 1 });
84
85
  await Promise.resolve();
85
- expect(DecoratorGemElement.observedStores).to.eql([{ a: 1 }]);
86
- expect(DecoratorGemElement.observedAttributes).to.eql(['rank-attr', 'rank-disabled', 'rank-count']);
87
- expect(DecoratorGemElement.booleanAttributes).to.eql(new Set(['rank-disabled']));
88
- expect(DecoratorGemElement.numberAttributes).to.eql(new Set(['rank-count']));
89
- expect(DecoratorGemElement.defineEvents).to.eql(['say-hi']);
90
- expect(DecoratorGemElement.defineCSSStates).to.eql(['open-state']);
91
- expect(DecoratorGemElement.defineParts).to.eql(['header-part']);
92
- expect(DecoratorGemElement.defineSlots).to.eql(['body-slot']);
93
- expect(DecoratorGemElement.defineRefs?.[0].startsWith('input-ref-')).to.equal(true);
94
- expect(DecoratorGemElement.observedProperties).to.eql(['propData']);
86
+ const metadata: Metadata = Reflect.get(DecoratorGemElement, Symbol.metadata);
87
+ expect(metadata.observedStores).to.eql([{ a: 1 }]);
88
+ expect(metadata.observedAttributes).to.eql(['rank-attr', 'rank-disabled', 'rank-count']);
89
+ expect(metadata.definedEvents).to.eql(['say-hi']);
90
+ expect(metadata.definedCSSStates).to.eql(['open-state']);
91
+ expect(metadata.definedParts).to.eql(['say-hi', 'header-part']);
92
+ expect(metadata.definedSlots).to.eql(['rank-attr', 'body-slot']);
93
+ expect(metadata.observedProperties).to.eql(['propData']);
94
+ expect(DecoratorGemElement.sayHi).to.equal('say-hi');
95
+ expect(DecoratorGemElement.rankAttr).to.equal('rank-attr');
95
96
  expect(el.rankAttr).to.equal('attr');
96
97
  expect(el.rankDisabled).to.equal(true);
97
98
  expect(el.rankCount).to.equal(2);
98
99
  expect(el.propData).to.eql({ value: 'prop' });
99
100
  expect(el.openState).to.equal(false);
100
101
  expect(el.headerPart).to.equal('header-part');
101
- expect(el.inputRef.ref.startsWith('input-ref-')).to.equal(true);
102
+ expect(el.inputRef.ref.startsWith('ref-')).to.equal(true);
102
103
  expect(el.bodySlot).to.equal('body-slot');
103
104
  expect(el).shadowDom.to.equal('attr: attr, disabled: true, count: 2, prop: prop');
104
105
  updateStore(store, { a: 3 });
@@ -1,13 +1,13 @@
1
1
  import { expect, fixture } from '@open-wc/testing';
2
2
 
3
- import { attribute, customElement, property, RefObject, refobject } from '../../lib/decorators';
4
- import { GemElement, html } from '../../lib/element';
3
+ import { attribute, customElement, property } from '../../lib/decorators';
4
+ import { GemElement, html, createRef } from '../../lib/element';
5
5
 
6
6
  @customElement('app-children')
7
7
  export class Children extends GemElement {
8
- @refobject inputRef: RefObject<HTMLInputElement>;
9
8
  @property value?: { value: number };
10
9
  @attribute attr: string;
10
+ inputRef = createRef<HTMLInputElement>();
11
11
 
12
12
  render() {
13
13
  return html`<input ref=${this.inputRef.ref} />`;
@@ -16,8 +16,8 @@ export class Children extends GemElement {
16
16
 
17
17
  @customElement('app-root')
18
18
  export class App extends GemElement {
19
- @refobject childrenRef1: RefObject<Children>;
20
- @refobject childrenRef2: RefObject<Children>;
19
+ childrenRef1 = createRef<Children>();
20
+ childrenRef2 = createRef<Children>();
21
21
  render() {
22
22
  return html`
23
23
  <app-children ref=${this.childrenRef1.ref} .value=${{ value: 1 }} attr="1"></app-children>
@@ -1,13 +1,12 @@
1
1
  import { expect } from '@open-wc/testing';
2
2
 
3
+ import { createCSSSheet, SheetToken } from '../lib/element';
3
4
  import {
4
5
  LinkedList,
5
6
  QueryString,
6
7
  css,
7
8
  raw,
8
- createCSSSheet,
9
9
  styled,
10
- SheetToken,
11
10
  styleMap,
12
11
  classMap,
13
12
  exportPartsMap,
@@ -84,13 +83,17 @@ describe('utils 测试', () => {
84
83
  });
85
84
  it('createCSSSheet', () => {
86
85
  const cssSheet = createCSSSheet(css`
87
- body {
86
+ div {
88
87
  background: red;
89
88
  }
90
89
  `);
91
- const rules = cssSheet[SheetToken].cssRules;
92
- expect(rules.item(0).selectorText).to.equal('body');
90
+ const rules = cssSheet[SheetToken].getStyle().cssRules;
91
+ expect(rules.item(0).selectorText).to.equal('div');
93
92
  expect(rules.item(0).style.background).to.equal('red');
93
+ const bodyStyleSheet = cssSheet[SheetToken].getStyle(document.body);
94
+ expect(bodyStyleSheet.cssRules.item(0).cssText.startsWith('@scope (body)')).to.true;
95
+ expect(bodyStyleSheet).to.equal(bodyStyleSheet);
96
+ expect(bodyStyleSheet).not.to.equal(cssSheet[SheetToken].getStyle(document.documentElement));
94
97
  });
95
98
  it('raw/css', () => {
96
99
  const title: any = undefined;
@@ -99,30 +102,21 @@ describe('utils 测试', () => {
99
102
  });
100
103
  it('styled', () => {
101
104
  const cssSheet = createCSSSheet({
105
+ $: styled.class``,
102
106
  scroll: styled.class`
103
107
  background: red;
104
108
  &:hover * {
105
109
  background: blue;
106
110
  }
107
111
  `,
108
- wrap: styled.id`
109
- position: fixed;
110
- animation: 3s infinite alternate slideIn;
111
- `,
112
- slideIn: styled.keyframes`
113
- from {
114
- transform: translateX(0%);
115
- }
116
- `,
117
112
  });
118
113
  expect(cssSheet.scroll.startsWith('scroll')).to.true;
119
- const rules = cssSheet[SheetToken].cssRules;
120
- expect(rules.item(0).selectorText.startsWith('.scroll')).to.true;
121
- expect(rules.item(0).style.background).to.equal('red');
122
- expect(rules.item(0).cssRules.item(0).selectorText).to.equal('&:hover *');
123
- expect(rules.item(0).cssRules.item(0).style.background).to.equal('blue');
124
- expect(rules.item(1).selectorText.startsWith('#wrap')).to.true;
125
- expect((rules.item(2) as any).name).to.equal('slideIn');
114
+ const rules = cssSheet[SheetToken].getStyle().cssRules;
115
+ expect(rules.item(0).selectorText).to.equal(':scope, :host');
116
+ expect(rules.item(1).selectorText.startsWith('.scroll')).to.true;
117
+ expect(rules.item(1).style.background).to.equal('red');
118
+ expect(rules.item(1).cssRules.item(0).selectorText).to.equal('&:hover *');
119
+ expect(rules.item(1).cssRules.item(0).style.background).to.equal('blue');
126
120
  });
127
121
  it('styleMap/classMap/exportPartsMap', () => {
128
122
  expect(styleMap({ '--x': '1px', fontSize: '14px', content: `'*'` })).to.equal(
@@ -132,28 +126,4 @@ describe('utils 测试', () => {
132
126
  expect(exportPartsMap({ foo: 'bar', content: 'content', false: false })).to.equal(`,foo:bar,content,`);
133
127
  expect(exportPartsMap({ foo: 'bar', content: true })).to.equal(`,foo:bar,content,`);
134
128
  });
135
- // it('createCSSAnimation', () => {
136
- // expect(createCSSAnimation([{ opacity: 0 }])).to.equal('100%{;opacity:0;}');
137
- // expect(createCSSAnimation([{ opacity: 1 }, { opacity: 0 }])).to.equal('0%{;opacity:1;}100%{;opacity:0;}');
138
- // expect(createCSSAnimation([{ opacity: 1 }, { opacity: 0.1, offset: 0.7 }, { opacity: 0 }])).to.equal(
139
- // '0%{;opacity:1;}70%{;opacity:0.1;}100%{;opacity:0;}',
140
- // );
141
- // expect(createCSSAnimation({ opacity: [0] })).to.equal('100%{;opacity:0;}');
142
- // expect(createCSSAnimation({ opacity: [1, 0] })).to.equal('0%{;opacity:1;}100%{;opacity:0;}');
143
- // expect(createCSSAnimation({ opacity: [1, 0], offset: [0, 0.7] })).to.equal(
144
- // '0%{;opacity:1;}70%{;opacity:0;}100%{;}',
145
- // );
146
- // expect(createCSSAnimation({ opacity: [1, 0], backgroundColor: ['red', 'yellow', 'green'] })).to.equal(
147
- // '0%{;opacity:1;background-color:red;}100%{;opacity:0;background-color:green;}50%{;background-color:yellow;}',
148
- // );
149
- // expect(
150
- // createCSSAnimation({
151
- // opacity: [1, 0],
152
- // backgroundColor: ['red', 'yellow', 'green'],
153
- // offset: [0, 0.7],
154
- // }),
155
- // ).to.equal(
156
- // '0%{;opacity:1;background-color:red;}70%{;opacity:0;background-color:yellow;}100%{;background-color:green;}',
157
- // );
158
- // });
159
129
  });