profile
viewpoint

julianshapiro/velocity 16856

Accelerated JavaScript animation.

pieroxy/lz-string 2655

LZ-based compression algorithm for JavaScript

Rycochet/postcss-epub 29

PostCSS plugin to prefix ePub3 properties.

Rycochet/Chrome 13

Chrome extensions

Rycochet/postcss-epub-clean 2

PostCSS plugin to produce valid epub3 css.

Rycochet/mmo-rogue 1

Web based client/server rogue-like mmo

Rycochet/PlexConnect-QNAP 1

QPKG for PlexConnect on QNAP with a simple UI page

Rycochet/blueprint_flip_and_turn 0

Mirrors/Flips a blueprint in hand

Rycochet/goog-webfont-dl 0

A utility to download google webfonts to your local machine

issue openedgabiseabra/google-fonts-webpack-plugin

breaks with webpack > 4

Hello, it appears gabiseabra/google-fonts-webpack-plugin breaks with webpack 4. Could you please update the README?

This seems to be the default root package for google-fonts-webpack-plugin so, there is probably quite a few people who try this first like me and go into a debugging cycle.

yarn run v1.22.4                                                                          
$ vue-cli-service serve                                                                    
INFO  Starting development server...
10% building 2/2 modules 0 active(node:29517) DeprecationWarning: Tapable.plugin is deprecated. Use new API on `.hooks` instead       

beyonk-adventures/google-fonts-webpack-plugin is compatible with webpack > 4.

created time in 2 days

issue commentjulianshapiro/velocity

Changing width and translate at the same time causes crash

Oh ok thanks for the clarification. I misunderstood how forcefeeding worked and was doing it wrong so it didn't do anything when I ran it.

joeraad

comment created time in 2 days

issue openedencounterplus/encounterplus

Walls don’t clear with a map reset

Pressing the reset button on the map settings erases everything except walls. I think that walls should be cleared too. Also, I think there should be some kind of confirmation on a reset, since it cannot be undone.

created time in 2 days

issue openedjulianshapiro/velocity

Changing width and translate at the same time causes crash

Your system information

  • VelocityJS version: 2.0.6
  • Browser: Chrome/Safari
  • Operating System: Windows 10

Checklist

  • Is this an issue with code?: No
  • Is this an issue with documentation?: No
  • Have you reproduced this in other browsers?: Yes
  • Have you checked for updates?: Yes
  • Have you checked for similar open issues?: Yes

Please describe your issue in as much detail as possible:

I wanted to change the dimensions of a video container and then make the video bigger while repositioning it to be centered in the container. https://jsfiddle.net/0j869yqw/1/

document.getElementById("div1").velocity({width:"100px", transform:"translateX(-50px)" }, {
     duration: 100,
     easing: "swing",
     loop: false,
     delay: 0,
})

I ended up using the on progress function percentage complete to manually change the transform like so https://jsfiddle.net/wcd27as5/3/

document.getElementById("div1").velocity({width:"100px", }, {
     duration: 100,
     easing: "swing",
     loop: false,
     delay: 0,
     progress: function(elements, percentComplete, activeCall){
       translate=50*percentComplete
       document.getElementById("div1").style.transform="translateX("+translate+"px)"
     },
})

Steps for reproducing this issue (code):

  1. change width and transform at the same time
  2. or change transform in the progress function of the width change

JSFiddle example showing issue in action (code):

https://jsfiddle.net/0j869yqw/1/

created time in 5 days

issue commentencounterplus/encounterplus

[Feature request] Object oriented fog of war

Just adding context, the use case in which this is super helpful for is when playing with actual minis on a TV table. I don't want players (or myself) to have to physically move their minis AND digitally move their tokens. So a very quick hide/reveal would be great.

And now that "erasing" fog of war is thing, there could even be an in-between state "explored, but not presently in the room" just like you are working on for line of sight.

Duseylicious

comment created time in 7 days

fork benfoxall/snowpack

WASM-powered frontend build tool. Fast, lightweight, unbundled ESM. ✌️

https://www.snowpack.dev

fork in 8 days

issue commentencounterplus/encounterplus

Highlight distance when dragging by finger

yeah, the font size is based on grid size + current zoom level, so it should appear in same size regardless of the map settings (I can make it larger hovever), but the distance label position for spells are problematic during drag, I need to make it "above" the point instead of relative angle from center.

Rycochet

comment created time in 8 days

fork benfoxall/irdb

One of the largest crowd-sourced, manufacturer-independent databases of infrared remote control codes on the web, and aspiring to become the most comprehensive and most accurate one

fork in 9 days

created repositorybenfoxall/ir

A remote control for my TV

created time in 10 days

issue commentencounterplus/encounterplus

New Feature in statblocks

It's easy enough to calculate. Here's the formula in swift: let prof = 2+Int((cr < 0 ? -1 : cr > 0 ? 1 : 0)*((abs(cr-1))/4))

leoincendia

comment created time in 10 days

issue openedencounterplus/encounterplus

New Feature in statblocks

As in Tasha's Cauldron of Everything the Proficiency Bonus is now a part of the statblock. It is located right-justified across from the CR rating. Though it could go below the CR rating and be fine there too. Sometimes it has (PB) at the end of the title, sometimes not.

created time in 10 days

startedautomerge/automerge

started time in 12 days

startedespruino/EspruinoApps

started time in 12 days

issue commentjulianshapiro/velocity

Slideindown animations not working correctly in V2

I have a sequenceFactory() in order to fix the issue with translate3d() not working in v2.0(beta). It "overwrites" the default sequences `` but can be used for all sequences you want to fix or add. You need a config object/matrix, with either static vars, or custom callback functions

const slideProps = {
 // steps:     ['0%',   '100%'],                // optional for 2 columns, mandatory for >2 columns
    opacity:   ['0',    '1'   ],
    transform: ['100%', '0'   ].map(translate), // some props might need a custom callback, e.g. to flip 100% -> -100%, or translateX -> translateY
    display:   ['block'       ],
 // …n:        [from,   step1, step2, …, stepX]
};

Then call the factory with some common default config, in order to create 8 sequences at once: slide + (Out || In) + (Up || Down || Left || Right)

sequenceFactory('slide', slideProps, {duration: 500, easing: 'easeOut'});

... Will register this:

  • slideOutUp
  • slideOutDown
  • slideOutLeft
  • slideOutRight
  • slideInUp
  • slideInDown
  • slideInLeft
  • slideInRight

Now the sequenceFactory(). It might look complex, in fact it is just a simple/nested chain of vanilla Array/Object methods, with no assignment.

const sequenceFactory = (name, {steps = ['0%', '100%'], ...props} = {}, config = {}) => Velocity(
    'registerSequence',
// ➜ console.log(JSON.stringify(
    ['In', 'Out'].reduce((sequences, inOut) => ({ // build 'in', 'out' sequences …
        ...sequences,
        ...['Up', 'Down', 'Left', 'Right'].reduce( // … for each direction …
            (seq, direction) => ({
                ...seq,
                [`${name}${inOut}${direction}`]: Object.assign(// … with unique name. Merge default config …
                    steps.reduce(
                        (stepProps, step, i) => ({ // … with animation steps objects (0%, ➜ 100%) …
                            ...stepProps,
                            [step]: Object.fromEntries( //  … build animation step object …
                                Object.entries(props).map( // … from parameter matrix
                                    ([prop, row]) => (
                                        [
                                            prop,
                                            (cell => ( // check cell value …
                                                typeof cell === 'function' ? // … if cell has function …
                                                    cell({ // … call cell function and use returned value …
                                                        inOut,
                                                        direction
                                                    }) :
                                                    cell // … if cell has no function use plain cell value … (could be 'undefined')
                                            ))( // … ^^ invoke this with current row[colIndex]
                                                row[
                                                    inOut === 'In' ?
                                                        i :                 // … from matrix column …
                                                        row.length - 1 - i  // … or inverted matrix column …
                                                ]
                                            )
                                        ]
                                    )
                                ).filter(([prop, val]) => val !== undefined) // … filter props with empty cell value (see 'undefined' above)
                            )
                        }), {}
                    ),
                    config // default config
                )
            }), {}
        )
    }), {})
// ➜ , null, 2))
);

Uncomment the two marked lines to see the related object thrown into Velocity('registerSequence', XXX):

<details> <summary>Click to expand!</summary>

{
"slideInUp": {
  "0%": {
    "opacity": "0",
    "transform": "translateY(-100%)",
    "display": "block"
  },
  "100%": {
    "opacity": "1",
    "transform": "translateY(0)"
  },
  "duration": 500,
  "easing": "easeOut"
},
"slideInDown": {
  "0%": {
    "opacity": "0",
    "transform": "translateY(100%)",
    "display": "block"
  },
  "100%": {
    "opacity": "1",
    "transform": "translateY(0)"
  },
  "duration": 500,
  "easing": "easeOut"
},
"slideInLeft": {
  "0%": {
    "opacity": "0",
    "transform": "translateX(-100%)",
    "display": "block"
  },
  "100%": {
    "opacity": "1",
    "transform": "translateX(0)"
  },
  "duration": 500,
  "easing": "easeOut"
},
"slideInRight": {
  "0%": {
    "opacity": "0",
    "transform": "translateX(100%)",
    "display": "block"
  },
  "100%": {
    "opacity": "1",
    "transform": "translateX(0)"
  },
  "duration": 500,
  "easing": "easeOut"
},
"slideOutUp": {
  "0%": {
    "opacity": "1",
    "transform": "translateY(0)",
    "display": "block"
  },
  "100%": {
    "opacity": "0",
    "transform": "translateY(-100%)"
  },
  "duration": 500,
  "easing": "easeOut"
},
"slideOutDown": {
  "0%": {
    "opacity": "1",
    "transform": "translateY(0)",
    "display": "block"
  },
  "100%": {
    "opacity": "0",
    "transform": "translateY(100%)"
  },
  "duration": 500,
  "easing": "easeOut"
},
"slideOutLeft": {
  "0%": {
    "opacity": "1",
    "transform": "translateX(0)",
    "display": "block"
  },
  "100%": {
    "opacity": "0",
    "transform": "translateX(-100%)"
  },
  "duration": 500,
  "easing": "easeOut"
},
"slideOutRight": {
  "0%": {
    "opacity": "1",
    "transform": "translateX(0)",
    "display": "block"
  },
  "100%": {
    "opacity": "0",
    "transform": "translateX(100%)"
  },
  "duration": 500,
  "easing": "easeOut"
}
}

</details>

Callbacks

Some prop values need some more attention, and might change based on current 'In/Outand directionLeft,Top,.. From theslideconfig (see above):transform: ['100%', '0'].map(translate)I have atranslate()` that creates my callback:

const axesByDirection = direction => (['Left', 'Right'].includes(direction) ? 'X' : 'Y');
const invertValueByDirection = (direction, value) => `${['Left', 'Up'].includes(direction) && value !== '0' ? '-' : ''}${value}`;
const translate = value => ({direction}) => `translate${axesByDirection(direction)}(${invertValueByDirection(direction, value)})`;

Demo

stickyPanelServer.velocity('slideOutUp');
stickyPanelServer.velocity('slideOutDown');
stickyPanelServer.velocity('slideOutLeft');
stickyPanelServer.velocity('slideOutRight');
stickyPanelServer.velocity('slideInUp');
stickyPanelServer.velocity('slideInDown');
stickyPanelServer.velocity('slideInLeft');
stickyPanelServer.velocity('slideInRight');

velocity

datainvestor

comment created time in 14 days

issue openedencounterplus/encounterplus

Bug - Blank markers when generated from second window

It looks like at least on Mac if you drag and drop a page from a separate window to make a marker it does not link correctly and will generate a blank marker.

created time in 15 days

issue openedencounterplus/encounterplus

Rolling 3D dice stops background music

I love having atmospheric music when running games, but whenever I roll those cool dice in E+ it stops the music playing from Youtube music dead. I have a Premium music subscription so I know it can play in the background.

created time in 16 days

Pull request review commentencounterplus/external-screen

Add Dockerfile to run external-screen

+# Stage1+FROM node:lts as node++WORKDIR /usr/src/app++COPY package*.json ./++RUN npm ci++RUN npm install -g @angular/cli ++COPY . .++RUN ng build++# Stage 2+FROM nginx:1.13.12-alpine

I have updated the nginx image to the stable image.

schemen

comment created time in 16 days

Pull request review commentencounterplus/external-screen

Add Dockerfile to run external-screen

+# Stage1+FROM node:lts as node++WORKDIR /usr/src/app++COPY package*.json ./++RUN npm ci

Yeah, I try to make this image as tiny as possible as it's essentially a static site :)

schemen

comment created time in 16 days

Pull request review commentencounterplus/external-screen

Add Dockerfile to run external-screen

+# Stage1+FROM node:lts as node++WORKDIR /usr/src/app++COPY package*.json ./++RUN npm ci

I'm afraid I'm no node expert, just dockerizing this by using the install instructions.

Adding the --production flag leads to a error in the RUN ng build section:

An unhandled exception occurred: Cannot find module '@angular-devkit/build-angular/package.json'
Require stack:
- /usr/local/lib/node_modules/@angular/cli/node_modules/@angular-devkit/architect/node/node-modules-architect-host.js
- /usr/local/lib/node_modules/@angular/cli/node_modules/@angular-devkit/architect/node/index.js
- /usr/local/lib/node_modules/@angular/cli/models/architect-command.js
- /usr/local/lib/node_modules/@angular/cli/commands/build-impl.js
- /usr/local/lib/node_modules/@angular/cli/node_modules/@angular-devkit/schematics/tools/export-ref.js
- /usr/local/lib/node_modules/@angular/cli/node_modules/@angular-devkit/schematics/tools/index.js
- /usr/local/lib/node_modules/@angular/cli/utilities/json-schema.js
- /usr/local/lib/node_modules/@angular/cli/models/command-runner.js
- /usr/local/lib/node_modules/@angular/cli/lib/cli/index.js
- /usr/local/lib/node_modules/@angular/cli/lib/init.js
- /usr/local/lib/node_modules/@angular/cli/bin/ng
See "/tmp/ng-eIwsIt/angular-errors.log" for further details.

Any idea?

schemen

comment created time in 16 days

Pull request review commentencounterplus/external-screen

Add Dockerfile to run external-screen

+# Stage1+FROM node:lts as node++WORKDIR /usr/src/app++COPY package*.json ./++RUN npm ci++RUN npm install -g @angular/cli ++COPY . .++RUN ng build++# Stage 2+FROM nginx:1.13.12-alpine

Sorry, this was a mistake from copying another docker image I had! Will change of course.

schemen

comment created time in 16 days

PR opened encounterplus/external-screen

Add Dockerfile to run external-screen

Allows for easy setup on a container host/cluster

+22 -0

0 comment

2 changed files

pr created time in 18 days

startedbenfoxall/ycode

started time in 21 days

startedalephjs/aleph.js

started time in 21 days

issue commentjulianshapiro/velocity

Velocity v3 and the future

Thanks for your report of the current state of velocity :) I have some questions:

  1. At this point, would you recommend to update an existing project (heavily based on velocity) from 1.5.2 to 2.x beta? Or should I wait for 3.x beta?
  2. Do have any idea, of a raw timeframe, when to expect the first 3.x beta?
Rycochet

comment created time in 22 days

issue commentjulianshapiro/velocity

SlideDown and SlideUp

I'm having so many problems figuring out how to get basic v1 functionality in v2 that I've given up :) Is there a migration guide for v1 -> v2?

MadZee-M

comment created time in 23 days

issue openedencounterplus/encounterplus

[Features Request] Optional diagonal movement rules

The DMG has an optional rule to count every other diagonal as 10 ft. It'd be great if this optional movement rule were put into E+ as an option.

created time in 24 days

issue commentencounterplus/encounterplus

Feature Request: The ability to use the import button to open an image file and create a new map

That certainly makes a lot of sense, so I second the motion!

rrgeorge

comment created time in a month

issue openedencounterplus/encounterplus

Feature Request: The ability to use the import button to open an image file and create a new map

A new user was trying to import a jpeg for use as a map, and was confused why they could import a vtt (ddvtt?) but not a jpeg (link to discord message ). For a more unified experience, I think it would make sense to allow for importing an image, which then would open a new map with the image set as the background.

created time in a month

PublicEvent

issue openedencounterplus/encounterplus

Error on exporting asset pack

I built a very large asset pack (~3 GB, over 13k assets). When I try to export it, I experience atypical export behavior. First, I am not prompted for a save location. Instead it immediately begins spinning. After about a minute, I get an error which says “the operation couldn’t be completed” along with a ZipFoundation error (see screenshot). F4D4AA1A-79E0-40AE-B2EE-41577F85A37F

created time in a month

more