aberdeen 0.2.4 → 0.4.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.
@@ -1,4 +1,13 @@
1
- import { scheduleDomReader, scheduleDomWriter } from 'aberdeen';
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ import { DOM_READ_PHASE, DOM_WRITE_PHASE } from './aberdeen.js';
2
11
  const FADE_TIME = 400;
3
12
  const GROW_SHRINK_TRANSITION = `margin ${FADE_TIME}ms ease-out, transform ${FADE_TIME}ms ease-out`;
4
13
  function getGrowShrinkProps(el) {
@@ -17,31 +26,26 @@ function getGrowShrinkProps(el) {
17
26
  * for other specific cases as well.
18
27
  */
19
28
  export function grow(el) {
20
- // This timeout is to await all other elements having been added to the Dom
21
- scheduleDomReader(() => {
22
- // Make the element size 0 using transforms and negative margins.
23
- // This causes a browser layout, as we're querying el.offset<>.
29
+ return __awaiter(this, void 0, void 0, function* () {
30
+ // Wait until all DOM updates have been done. Then get info from the computed layout.
31
+ yield DOM_READ_PHASE;
24
32
  let props = getGrowShrinkProps(el);
25
- // The timeout is in order to batch all reads and then all writes when there
26
- // are multiple simultaneous grow transitions.
27
- scheduleDomWriter(() => {
28
- Object.assign(el.style, props);
29
- // This timeout is to combine multiple transitions into a single browser layout
30
- scheduleDomReader(() => {
31
- // Make sure the layouting has been performed, to cause transitions to trigger
32
- el.offsetHeight;
33
- scheduleDomWriter(() => {
34
- // Do the transitions
35
- el.style.transition = GROW_SHRINK_TRANSITION;
36
- for (let prop in props)
37
- el.style[prop] = "";
38
- setTimeout(() => {
39
- // Reset the element to a clean state
40
- el.style.transition = "";
41
- }, FADE_TIME);
42
- });
43
- });
44
- });
33
+ // In the write phase, make the element size 0 using transforms and negative margins.
34
+ yield DOM_WRITE_PHASE;
35
+ Object.assign(el.style, props);
36
+ // Await read phase, to combine multiple transitions into a single browser layout
37
+ yield DOM_READ_PHASE;
38
+ // Make sure the layouting has been performed, to cause transitions to trigger
39
+ el.offsetHeight;
40
+ // In the next write phase, do the transitions
41
+ yield DOM_WRITE_PHASE;
42
+ el.style.transition = GROW_SHRINK_TRANSITION;
43
+ for (let prop in props)
44
+ el.style[prop] = '';
45
+ setTimeout(() => {
46
+ // Disable transitions.
47
+ el.style.transition = '';
48
+ }, FADE_TIME);
45
49
  });
46
50
  }
47
51
  /** Do a shrink transition for the given element, and remove it from the DOM
@@ -53,15 +57,18 @@ export function grow(el) {
53
57
  * for other specific cases as well.
54
58
  */
55
59
  export function shrink(el) {
56
- scheduleDomReader(() => {
60
+ return __awaiter(this, void 0, void 0, function* () {
61
+ // Wait until all DOM updates have been done. Then get info from the computed layout.
62
+ yield DOM_READ_PHASE;
57
63
  const props = getGrowShrinkProps(el);
58
- // The timeout is in order to batch all reads and then all writes when there
59
- // are multiple simultaneous shrink transitions.
60
- scheduleDomWriter(() => {
61
- el.style.transition = GROW_SHRINK_TRANSITION;
62
- Object.assign(el.style, props);
63
- setTimeout(() => el.remove(), FADE_TIME);
64
- });
64
+ // Batch starting transitions in the write phase.
65
+ yield DOM_WRITE_PHASE;
66
+ el.style.transition = GROW_SHRINK_TRANSITION;
67
+ Object.assign(el.style, props);
68
+ // Remove the element after the transition is done.
69
+ setTimeout(() => {
70
+ el.remove();
71
+ }, FADE_TIME);
65
72
  });
66
73
  }
67
74
  //# sourceMappingURL=transitions.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"transitions.js","sourceRoot":"","sources":["../src/transitions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,iBAAiB,EAAE,iBAAiB,EAAC,MAAM,UAAU,CAAA;AAE7D,MAAM,SAAS,GAAG,GAAG,CAAA;AACrB,MAAM,sBAAsB,GAAG,UAAU,SAAS,0BAA0B,SAAS,aAAa,CAAA;AAElG,SAAS,kBAAkB,CAAC,EAAe;IAC1C,MAAM,WAAW,GAAQ,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,gBAAgB,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;IACnF,MAAM,YAAY,GAAG,WAAW,CAAC,OAAO,KAAK,MAAM,IAAI,CAAC,WAAW,CAAC,aAAa,IAAE,EAAE,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAA;IACxG,OAAO,YAAY,CAAC,CAAC;QACpB,EAAC,UAAU,EAAE,IAAI,EAAE,CAAC,WAAW,GAAC,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,WAAW,GAAC,CAAC,IAAI,EAAE,SAAS,EAAE,WAAW,EAAC,CAAC,CAAC;QACvG,EAAC,YAAY,EAAE,IAAI,EAAE,CAAC,YAAY,GAAC,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,YAAY,GAAC,CAAC,IAAI,EAAE,SAAS,EAAE,WAAW,EAAC,CAAA;AAEzG,CAAC;AAED;;;;;;;EAOE;AACF,MAAM,UAAU,IAAI,CAAC,EAAe;IACnC,2EAA2E;IAC3E,iBAAiB,CAAC,GAAG,EAAE;QACtB,iEAAiE;QACjE,+DAA+D;QAC/D,IAAI,KAAK,GAAG,kBAAkB,CAAC,EAAE,CAAC,CAAA;QAElC,4EAA4E;QAC5E,8CAA8C;QAC9C,iBAAiB,CAAC,GAAG,EAAE;YACtB,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;YAE9B,+EAA+E;YAC/E,iBAAiB,CAAC,GAAG,EAAE;gBACtB,8EAA8E;gBAC9E,EAAE,CAAC,YAAY,CAAA;gBACf,iBAAiB,CAAC,GAAG,EAAE;oBACtB,qBAAqB;oBACrB,EAAE,CAAC,KAAK,CAAC,UAAU,GAAG,sBAAsB,CAAA;oBAC5C,KAAI,IAAI,IAAI,IAAI,KAAK;wBAAE,EAAE,CAAC,KAAK,CAAC,IAAW,CAAC,GAAG,EAAE,CAAA;oBACjD,UAAU,CAAC,GAAG,EAAE;wBACf,qCAAqC;wBACrC,EAAE,CAAC,KAAK,CAAC,UAAU,GAAG,EAAE,CAAA;oBACzB,CAAC,EAAE,SAAS,CAAC,CAAA;gBACd,CAAC,CAAC,CAAA;YACH,CAAC,CAAC,CAAA;QACH,CAAC,CAAC,CAAA;IACH,CAAC,CAAC,CAAA;AACH,CAAC;AAED;;;;;;;EAOE;AACF,MAAM,UAAU,MAAM,CAAC,EAAe;IACrC,iBAAiB,CAAC,GAAG,EAAE;QACtB,MAAM,KAAK,GAAG,kBAAkB,CAAC,EAAE,CAAC,CAAA;QACpC,4EAA4E;QAC5E,gDAAgD;QAChD,iBAAiB,CAAC,GAAG,EAAE;YACtB,EAAE,CAAC,KAAK,CAAC,UAAU,GAAG,sBAAsB,CAAA;YAC5C,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;YAE9B,UAAU,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,SAAS,CAAC,CAAA;QACzC,CAAC,CAAC,CAAA;IACH,CAAC,CAAC,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"transitions.js","sourceRoot":"","sources":["../src/transitions.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAC,cAAc,EAAE,eAAe,EAAC,MAAM,eAAe,CAAA;AAE7D,MAAM,SAAS,GAAG,GAAG,CAAA;AACrB,MAAM,sBAAsB,GAAG,UAAU,SAAS,0BAA0B,SAAS,aAAa,CAAA;AAElG,SAAS,kBAAkB,CAAC,EAAe;IAC1C,MAAM,WAAW,GAAQ,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,gBAAgB,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;IACnF,MAAM,YAAY,GAAG,WAAW,CAAC,OAAO,KAAK,MAAM,IAAI,CAAC,WAAW,CAAC,aAAa,IAAE,EAAE,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAA;IACxG,OAAO,YAAY,CAAC,CAAC;QACpB,EAAC,UAAU,EAAE,IAAI,EAAE,CAAC,WAAW,GAAC,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,WAAW,GAAC,CAAC,IAAI,EAAE,SAAS,EAAE,WAAW,EAAC,CAAC,CAAC;QACvG,EAAC,YAAY,EAAE,IAAI,EAAE,CAAC,YAAY,GAAC,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,YAAY,GAAC,CAAC,IAAI,EAAE,SAAS,EAAE,WAAW,EAAC,CAAA;AAEzG,CAAC;AAED;;;;;;;EAOE;AACF,MAAM,UAAgB,IAAI,CAAC,EAAe;;QACzC,qFAAqF;QACrF,MAAM,cAAc,CAAA;QACpB,IAAI,KAAK,GAAG,kBAAkB,CAAC,EAAE,CAAC,CAAA;QAElC,qFAAqF;QACrF,MAAM,eAAe,CAAA;QACrB,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;QAE9B,iFAAiF;QACjF,MAAM,cAAc,CAAA;QACpB,8EAA8E;QAC9E,EAAE,CAAC,YAAY,CAAA;QAEf,8CAA8C;QAC9C,MAAM,eAAe,CAAA;QACrB,EAAE,CAAC,KAAK,CAAC,UAAU,GAAG,sBAAsB,CAAA;QAC5C,KAAI,IAAI,IAAI,IAAI,KAAK;YAAE,EAAE,CAAC,KAAK,CAAC,IAAW,CAAC,GAAG,EAAE,CAAA;QACjD,UAAU,CAAC,GAAG,EAAE;YACf,uBAAuB;YACvB,EAAE,CAAC,KAAK,CAAC,UAAU,GAAG,EAAE,CAAA;QACzB,CAAC,EAAE,SAAS,CAAC,CAAA;IACd,CAAC;CAAA;AAED;;;;;;;EAOE;AACF,MAAM,UAAgB,MAAM,CAAC,EAAe;;QAC3C,qFAAqF;QACrF,MAAM,cAAc,CAAA;QACpB,MAAM,KAAK,GAAG,kBAAkB,CAAC,EAAE,CAAC,CAAA;QAEpC,iDAAiD;QACjD,MAAM,eAAe,CAAA;QACrB,EAAE,CAAC,KAAK,CAAC,UAAU,GAAG,sBAAsB,CAAA;QAC5C,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;QAE9B,mDAAmD;QACnD,UAAU,CAAC,GAAG,EAAE;YACf,EAAE,CAAC,MAAM,EAAE,CAAA;QACZ,CAAC,EAAE,SAAS,CAAC,CAAA;IACd,CAAC;CAAA"}