From 431f567908e22011feca9dbf1efe3cc5fe6c5d20 Mon Sep 17 00:00:00 2001 From: pushkine Date: Tue, 28 Apr 2020 22:19:04 +0200 Subject: [PATCH] broken --- .prettierrc | 9 + .../render_dom/wrappers/Element/index.ts | 571 ++++++++---------- src/runtime/internal/Component.ts | 122 ++-- src/runtime/internal/animations.ts | 92 +-- src/runtime/internal/loop.ts | 78 ++- src/runtime/internal/scheduler.ts | 68 ++- src/runtime/internal/style_manager.ts | 109 ++-- src/runtime/internal/transitions.ts | 391 +++--------- src/runtime/transition/index.ts | 162 ++--- 9 files changed, 640 insertions(+), 962 deletions(-) create mode 100644 .prettierrc diff --git a/.prettierrc b/.prettierrc new file mode 100644 index 0000000000..246bfab6d4 --- /dev/null +++ b/.prettierrc @@ -0,0 +1,9 @@ +{ + "printWidth": 120, + "singleQuote": true, + "jsxBracketSameLine": true, + "semi": true, + "useTabs": true, + "jsxSingleQuote": true, + "quoteProps": "consistent" +} diff --git a/src/compiler/compile/render_dom/wrappers/Element/index.ts b/src/compiler/compile/render_dom/wrappers/Element/index.ts index 64d02191fb..3d6c2eddf1 100644 --- a/src/compiler/compile/render_dom/wrappers/Element/index.ts +++ b/src/compiler/compile/render_dom/wrappers/Element/index.ts @@ -26,105 +26,85 @@ import { Identifier } from 'estree'; import EventHandler from './EventHandler'; import { extract_names } from 'periscopic'; import Action from '../../../nodes/Action'; +import Transition from '../../../nodes/Transition'; const events = [ { event_names: ['input'], filter: (node: Element, _name: string) => node.name === 'textarea' || - node.name === 'input' && !/radio|checkbox|range|file/.test(node.get_static_attribute_value('type') as string) + (node.name === 'input' && !/radio|checkbox|range|file/.test(node.get_static_attribute_value('type') as string)), }, { event_names: ['input'], filter: (node: Element, name: string) => (name === 'textContent' || name === 'innerHTML') && - node.attributes.some(attribute => attribute.name === 'contenteditable') + node.attributes.some((attribute) => attribute.name === 'contenteditable'), }, { event_names: ['change'], filter: (node: Element, _name: string) => node.name === 'select' || - node.name === 'input' && /radio|checkbox|file/.test(node.get_static_attribute_value('type') as string) + (node.name === 'input' && /radio|checkbox|file/.test(node.get_static_attribute_value('type') as string)), }, { event_names: ['change', 'input'], filter: (node: Element, _name: string) => - node.name === 'input' && node.get_static_attribute_value('type') === 'range' + node.name === 'input' && node.get_static_attribute_value('type') === 'range', }, { event_names: ['elementresize'], - filter: (_node: Element, name: string) => - dimensions.test(name) + filter: (_node: Element, name: string) => dimensions.test(name), }, // media events { event_names: ['timeupdate'], filter: (node: Element, name: string) => - node.is_media_node() && - (name === 'currentTime' || name === 'played' || name === 'ended') + node.is_media_node() && (name === 'currentTime' || name === 'played' || name === 'ended'), }, { event_names: ['durationchange'], - filter: (node: Element, name: string) => - node.is_media_node() && - name === 'duration' + filter: (node: Element, name: string) => node.is_media_node() && name === 'duration', }, { event_names: ['play', 'pause'], - filter: (node: Element, name: string) => - node.is_media_node() && - name === 'paused' + filter: (node: Element, name: string) => node.is_media_node() && name === 'paused', }, { event_names: ['progress'], - filter: (node: Element, name: string) => - node.is_media_node() && - name === 'buffered' + filter: (node: Element, name: string) => node.is_media_node() && name === 'buffered', }, { event_names: ['loadedmetadata'], - filter: (node: Element, name: string) => - node.is_media_node() && - (name === 'buffered' || name === 'seekable') + filter: (node: Element, name: string) => node.is_media_node() && (name === 'buffered' || name === 'seekable'), }, { event_names: ['volumechange'], - filter: (node: Element, name: string) => - node.is_media_node() && - name === 'volume' + filter: (node: Element, name: string) => node.is_media_node() && name === 'volume', }, { event_names: ['ratechange'], - filter: (node: Element, name: string) => - node.is_media_node() && - name === 'playbackRate' + filter: (node: Element, name: string) => node.is_media_node() && name === 'playbackRate', }, { event_names: ['seeking', 'seeked'], - filter: (node: Element, name: string) => - node.is_media_node() && - (name === 'seeking') + filter: (node: Element, name: string) => node.is_media_node() && name === 'seeking', }, { event_names: ['ended'], - filter: (node: Element, name: string) => - node.is_media_node() && - name === 'ended' + filter: (node: Element, name: string) => node.is_media_node() && name === 'ended', }, { event_names: ['resize'], - filter: (node: Element, name: string) => - node.is_media_node() && - (name === 'videoHeight' || name === 'videoWidth') + filter: (node: Element, name: string) => node.is_media_node() && (name === 'videoHeight' || name === 'videoWidth'), }, // details event { event_names: ['toggle'], - filter: (node: Element, _name: string) => - node.name === 'details' + filter: (node: Element, _name: string) => node.name === 'details', }, ]; @@ -153,7 +133,7 @@ export default class ElementWrapper extends Wrapper { super(renderer, block, parent, node); this.var = { type: 'Identifier', - name: node.name.replace(/[^a-zA-Z0-9_$]/g, '_') + name: node.name.replace(/[^a-zA-Z0-9_$]/g, '_'), }; this.void = is_void(node.name); @@ -161,14 +141,14 @@ export default class ElementWrapper extends Wrapper { this.class_dependencies = []; if (this.node.children.length) { - this.node.lets.forEach(l => { - extract_names(l.value || l.name).forEach(name => { + this.node.lets.forEach((l) => { + extract_names(l.value || l.name).forEach((name) => { renderer.add_to_context(name, true); }); }); } - this.attributes = this.node.attributes.map(attribute => { + this.attributes = this.node.attributes.map((attribute) => { if (attribute.name === 'slot') { // TODO make separate subclass for this? let owner = this.parent; @@ -187,28 +167,28 @@ export default class ElementWrapper extends Wrapper { if (owner && owner.node.type === 'InlineComponent') { const name = attribute.get_static_value() as string; - if (!(owner as unknown as InlineComponentWrapper).slots.has(name)) { + if (!((owner as unknown) as InlineComponentWrapper).slots.has(name)) { const child_block = block.child({ comment: create_debugging_comment(node, this.renderer.component), name: this.renderer.component.get_unique_name(`create_${sanitize(name)}_slot`), - type: 'slot' + type: 'slot', }); const { scope, lets } = this.node; - const seen = new Set(lets.map(l => l.name.name)); + const seen = new Set(lets.map((l) => l.name.name)); - (owner as unknown as InlineComponentWrapper).node.lets.forEach(l => { + ((owner as unknown) as InlineComponentWrapper).node.lets.forEach((l) => { if (!seen.has(l.name.name)) lets.push(l); }); - (owner as unknown as InlineComponentWrapper).slots.set( + ((owner as unknown) as InlineComponentWrapper).slots.set( name, get_slot_definition(child_block, scope, lets) ); this.renderer.blocks.push(child_block); } - this.slot_block = (owner as unknown as InlineComponentWrapper).slots.get(name).block; + this.slot_block = ((owner as unknown) as InlineComponentWrapper).slots.get(name).block; block = this.slot_block; } } @@ -221,9 +201,9 @@ export default class ElementWrapper extends Wrapper { // ordinarily, there'll only be one... but we need to handle // the rare case where an element can have multiple bindings, // e.g.