I hereby claim:
- I am IceCreamYou on github.
- I am isaacdfx (https://keybase.io/isaacdfx) on keybase.
- I have a public key whose fingerprint is 1FA3 86C5 4E28 39E9 9C3D F15A 9724 467C BEC5 0586
To claim this, I am signing this object:
/** | |
* Creates and immediately starts running a new PromisePool. | |
* | |
* Note the pool currently has a fixed size, but dynamic sizing could be added. Also fns for size, isRunning. Does not track return values. | |
* | |
* @param producer | |
* A function that does some work concurrently. If the function returns a | |
* Promise, the producer will be called again when the Promise resolves and | |
* the new work will be added to the stack. If the function returns nothing, | |
* the pool will drain and stop. |
/** | |
* Given an array of values, finds sequences of nulls. | |
* | |
* @param data The array of values within which to search. | |
* | |
* @returns | |
* An array of objects with `start` and `end` properties. These hold indices | |
* of non-null values on either side of one or more null values. No object is | |
* returned for leading or trailing nulls. | |
*/ |
export type CSVOptions = Partial<{ | |
fieldSeparator: string, | |
rowSeparator: string, | |
quote: string, | |
trimFields: boolean, | |
sanitizeRowSeparators: boolean, | |
}>; | |
/** | |
* Converts a CSV string to an array of arrays. |
/** | |
* Wraps the specified string onto multiple lines by character count. | |
* | |
* Words (consecutive non-space characters) are not split up. | |
* Lines may be shorter than `len` characters as a result. | |
* Careful: words longer than `len` will be dropped! | |
* | |
* @param str The string to wrap. | |
* @param len The max character count per line. | |
* |
/* | |
* Adds the ability to have multiple main loops to MainLoop.js. | |
* | |
* The functionality in this file modifies the MainLoop object. | |
*/ | |
(function(root) { | |
// All the active MainLoop instances. | |
var instances = [], |
/** | |
* Creates a new queue that reuses space and expires elements. | |
* | |
* This data type is optimized for frequent additions and expirations. One use | |
* case is keeping track of mouse/touch positions every frame for gesture | |
* detection (instead of, for example, pushing and shifting elements onto / | |
* off of an array, which would churn memory). | |
* | |
* If you frequently need to do something with the values that requires | |
* knowing how many values there are, the best approach is usually to walk the |
I hereby claim:
To claim this, I am signing this object:
.force-show-scrollbars ::-webkit-scrollbar-track:vertical { | |
border-left: 1px solid #E7E7E7; | |
box-shadow: 1px 0 1px 0 #F6F6F6 inset, -1px 0 1px 0 #F6F6F6 inset; | |
} | |
.force-show-scrollbars ::-webkit-scrollbar-track:horizontal { | |
border-top: 1px solid #E7E7E7; | |
box-shadow: 0 1px 1px 0 #F6F6F6 inset, 0 -1px 1px 0 #F6F6F6 inset; | |
} |
Sometimes for scheduling purposes it would be nice to be able to take a screenshot of your calendar and send it to someone, but you may not want to show that someone the names of every event on your calendar. This code and bookmarklet solves that problem by blurring out event names on your calendar.
Here is the code:
var style = document.getElementById('--style') || document.createElement('style'), // <style> element holding blur/hide rules
spans = document.querySelectorAll('[data-eventchip] span'); // This worked as of May 3, 2023 but it may change.
// Add the styles
style.id = '--style';
/** | |
* Translates HTML in Chrome extensions. | |
* | |
* This works by replacing the content or attributes of a DOM element with a | |
* translated string identified by the element's "data-i18n" attribute. For | |
* example, `<p data-i18n="p_contents,title=p_title" title="hello">world</p>` | |
* will be translated to `<p title="__MSG_p_title__">__MSG_p_contents__</p>` | |
* (assuming `p_title` and `p_contents` are defined keys in a messages.json | |
* file in the extension as described at | |
* https://developer.chrome.com/extensions/i18n). |