Remove jquery-letterfx, just like cd55e3ccc2

This commit is contained in:
djmaze 2020-07-20 11:26:40 +02:00
parent f16f604f48
commit ec3fd5b7e4
8 changed files with 3 additions and 493 deletions

View file

@ -4,7 +4,7 @@ import $ from '$';
import ko from 'ko';
import { Notification, UploadErrorCode } from 'Common/Enums';
import { pInt, isUnd, isNull, has, microtime, inArray } from 'Common/Utils';
import { $html, $htmlCL, bAnimationSupported } from 'Common/Globals';
import { $html, $htmlCL } from 'Common/Globals';
import { reload as momentorReload } from 'Common/Momentor';
import { langLink } from 'Common/Links';
@ -137,22 +137,11 @@ const i18nToNode = (element) => {
* @param {Object} elements
* @param {boolean=} animate = false
*/
export function i18nToNodes(elements, animate = false) {
export function i18nToNodes(elements) {
_.defer(() => {
$('[data-i18n]', elements).each((index, item) => {
i18nToNode(item);
});
if (animate && bAnimationSupported) {
$('.i18n-animation[data-i18n]', elements).letterfx({
'fx': 'fall fade',
'backwards': false,
'timing': 50,
'fx_duration': '50ms',
'letter_end': 'restore',
'element_end': 'restore'
});
}
});
}
@ -160,7 +149,7 @@ const reloadData = () => {
if (window.rainloopI18N) {
I18N_DATA = window.rainloopI18N || {};
i18nToNodes(window.document, true);
i18nToNodes(window.document);
momentorReload();
trigger(!trigger());

View file

@ -53,7 +53,6 @@ config.paths.css = {
'node_modules/normalize.css/normalize.css',
'vendors/jquery-ui/css/smoothness/jquery-ui-1.12.1.custom.css',
'vendors/fontastic/styles.css',
'vendors/jquery-letterfx/jquery-letterfx.min.css',
'vendors/inputosaurus/inputosaurus.css',
'vendors/flags/flags-fixed.css',
'node_modules/opentip/css/opentip.css',
@ -75,7 +74,6 @@ config.paths.js = {
src: [
'node_modules/jquery/dist/jquery.min.js',
'vendors/jquery-ui/js/jquery-ui-1.12.1.custom.min.js', // custom
'vendors/jquery-letterfx/jquery-letterfx.min.js', // no-npm
'vendors/inputosaurus/inputosaurus.js', // custom (modified)
'vendors/routes/signals.min.js', // fixed
'vendors/routes/hasher.min.js', // fixed

View file

@ -1,21 +0,0 @@
The MIT License (MIT)
Copyright (c) 2014 Jared Anderson, dba tuxsudo.com
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

View file

@ -1,11 +0,0 @@
LetterFX
========
A jQuery plugin to apply animated, visual effects to letters, words or other text patterns.
example usage:
$(element).letterfx({"fx":"fly-right fly-bottom spin"})
[More Info](http://tuxsudo.com/code/project/letterfx)

View file

@ -1,111 +0,0 @@
.letterfx-container{}
.letterfx{
display:inline-block;
margin:0;
padding:0;
transition: all 1s; -ms-transition: all 1s; -webkit-transition: all 1s;
}
/* Spin FX */
.letterfx-spin-before{
transform:rotate(3600deg); -ms-transform:rotate(3600deg); -webkit-transform:rotate(3600deg);
}
.letterfx-spin-after{
transform:none;
}
/* Fade FX */
.letterfx-fade-before{
opacity: 0;
}
/* Grow FX */
.letterfx-grow-before{
transform:scale(0,0); -ms-transform:scale(0,0); -webkit-transform:scale(0,0);
}
.letterfx-grow-after{
transform:none;
}
/* Smear FX */
.letterfx-smear-before{
color: transparent;
text-shadow:-1px -1px 25px transparent;
}
.letterfx-smear-after{
color:inherit;
text-shadow:0 0 #333;
}
/* Fall FX */
.letterfx-fall-before
{
visibility: hidden;
transform:scale(3,3); -ms-transform:scale(3,3); -webkit-transform:scale(3,3);
}
.letterfx-fall-after{
transform:scale(1,1); -ms-transform:scale(1,1); -webkit-transform:scale(1,1);
text-shadow:0;
}
/* Swirl FX */
.letterfx-swirl-before
{
visibility: hidden;
transform:scale(3,3) rotate(3600deg); -ms-transform:scale(3,3) rotate(3600deg); -webkit-transform:scale(3,3) rotate(3600deg);
}
.letterfx-swirl-after{
transform:none;
text-shadow:0;
}
/* Wave FX */
.letterfx-wave-container .letterfx
{
position:relative;
}
.letterfx-wave-before
{
bottom:0;
}
.letterfx-wave-after{
bottom:15px;
}
/* FLY FX */
.letterfx-fly-left-container .letterfx,
.letterfx-fly-right-container .letterfx,
.letterfx-fly-top-container .letterfx,
.letterfx-fly-bottom-container .letterfx
{
position:relative;
}
.letterfx-fly-left-before{ left:-50em; }
.letterfx-fly-left-after{ left:0; }
.letterfx-fly-right-before{ right:-50em; }
.letterfx-fly-right-after{ right:0; }
.letterfx-fly-top-before{ top:-20em; }
.letterfx-fly-top-after{ top:0; }
.letterfx-fly-bottom-before{ bottom:-20em; }
.letterfx-fly-bottom-after{ bottom:0; }

View file

@ -1,332 +0,0 @@
(function ($) {
"use strict";
var LetterFx = function (element, options) {
this.options = $.extend({}, $.fn.letterfx.defaults, options);
this.num_completed_fx = 0;
this.is_done = false;
this.monitor_timer = null;
this.killswitch=null;
this.$element = $(element);
if(this.options.restore)
this.original_html = this.$element.html();
this.init();
}
LetterFx.prototype.init = function(){
this.new_html = this.$element.text().replace( this.options.pattern, this.options.replacement );
this.$element.addClass(this.options.css.element.base).addClass( this.options.css.element.before );
this.$element.html( this.new_html );
this.$letters = this.$element.find(this.options.selector);
this.$letters
.css('transition-duration', this.options.fx_duration)
.addClass(this.options.css.letters.base)
.addClass(this.options.css.letters.before);
this.bindLetterFxEnd();
this.num_letters = this.$letters.length;
this.fx();
return this;
}
LetterFx.prototype.bindLetterFxEnd = function(){
var options = this.options;
var lfx = this;
this.$letters.bind("transitionend", function(){
options.onLetterComplete( $(this), lfx.$element, lfx );
lfx.notifyFXEnd( );
switch(options.letter_end){
case "destroy":
$(this).remove();
break;
case "rewind":
lfx.applyLetterFx( $(this), options.timing, options.css.letters.after, options.css.letters.before );
break;
case "stay":
break;
// restore
default:
$(this).replaceWith( $(this).text() );
}
});
return lfx;
}
LetterFx.prototype.terminate=function(){
this.is_done = true;
this.options.onElementComplete(this.$element, this);
clearTimeout(this.killswitch);
switch(this.options.element_end){
case "destroy":
this.$element.remove();
break;
case "stay":
break;
// restore
default:
this.$element.html( this.original_html );
this.$element.removeClass( this.options.css.element.base ).removeClass(this.options.css.element.after);
break;
}
}
LetterFx.prototype.notifyFXEnd=function(){
clearTimeout(this.monitor_timer);
this.num_completed_fx++;
var lfx = this;
this.monitor_timer = setTimeout(
function(){
if(lfx.num_completed_fx % lfx.num_letters===0){
lfx.terminate();
}
},
Math.max(this.options.timing+10, 50)
);
return this;
}
LetterFx.prototype.startKillWatch = function(){
var fx_duration = this.options.fx_duration.match(/\d+s/) ? parseInt(this.options.fx_duration) : 1;
var time = Math.ceil(1.5 * this.num_letters * this.options.timing * fx_duration );
var lfx = this;
this.killswitch = window.setTimeout(function(){
if(!lfx.isDone()){
lfx.terminate()
}
}, time)
}
LetterFx.prototype.fx = function(){
var lfx = this;
this.startKillWatch();
this.$element.removeClass(this.options.css.element.before).addClass(this.options.css.element.after);
var $letters = this.options.sort(this.$letters);
var options = this.options;
$letters.each(
function(i, letter){
lfx.applyLetterFx( $(letter), (i+1)*options.timing, options.css.letters.before, options.css.letters.after);
}
);
return this;
}
LetterFx.prototype.applyLetterFx = function($letter, timing, css_before, css_after){
var options = this.options;
window.setTimeout(
function(){
$letter.removeClass(css_before).addClass(css_after);
},
timing
);
return this
}
LetterFx.prototype.isDone = function(){
return this.is_done;
}
var LetterFxConfig = function(conf){
this.config = $.extend({}, $.fn.letterfx.defaults, conf);
this.buildCss(this.config.backwards);
// check & change to word pattern
if(this.config.words)
this.config.pattern=/(\S+)/g;
}
LetterFxConfig.prototype.buildCss = function(flip){
var options = this.config;
var before = flip ? 'after' : 'before';
var after = flip ? 'before' : 'after';
var css = { element:{}, letters:{} };
css.element.base=options.element_class+ "-container " + options.fx.replace(/(\S+)/g, options.element_class + "-$1-container");
css.element[before]=options.fx.replace(/(\S+)/g, options.element_class + "-$1-before-container");
css.element[after]=options.fx.replace(/(\S+)/g, options.element_class + "-$1-after-container");
css.letters.base = options.element_class;
css.letters[before] = options.fx.replace(/(\S+)/g, options.element_class + "-$1-before")
css.letters[after] = options.fx.replace(/(\S+)/g, options.element_class + "-$1-after")
this.config = $.extend( options, {'css':css} );
}
LetterFxConfig.prototype.getConfig = function(){
return this.config;
}
LetterFxConfig.parse=function(config){
return (new LetterFxConfig( config )).getConfig();
}
$.fn.letterfx=function(config){
config = LetterFxConfig.parse( config );
return $(this).each(function(){
var $element = $(this);
if (! $element.data('letterfx-obj') || $element.data('letterfx-obj').isDone() ){
$element.data('letterfx-obj', new LetterFx( $element, config ) );
}
});
};
$.fn.letterfx.sort={
random:function(array){
var currentIndex = array.length, temporaryValue, randomIndex;
// While there remain elements to shuffle...
while (0 !== currentIndex) {
// Pick a remaining element...
randomIndex = Math.floor(Math.random() * currentIndex);
currentIndex -= 1;
// And swap it with the current element.
temporaryValue = array[currentIndex];
array[currentIndex] = array[randomIndex];
array[randomIndex] = temporaryValue;
}
return array;
},
reverse:function($array){
return $array.toArray().reverse();
}
}
$.fn.letterfx.patterns={
letters:/(\S)/gi
}
// Plugin Configurables
$.fn.letterfx.defaults = {
// Default fx
fx:'spin fly-top',
// defaults to selecting all characters
pattern:/(\S)/gi,
// switch from letter FX to word FX.
word:false,
// fx, like fly or fade, can happen in (eg fade-in) or out (eg fade-out).
// The default is in; change backwards to true to reverse the order of the effects.
backwards:false,
// defaults to injecting spans, can be any inline element
replacement:"<span>$1</span>",
//selector -- should match replacement above
selector:'span',
// letter fx start sequentially: letters start their fx one after another.
// this sets time between the letters
timing:50,
//duration of each fx
// options the same as css property for transition-duration ("1ms", "1s", etc)
fx_duration:"1s",
// stabile dimensions
// stabilize:true,
// sort callback for custom sorting elements
sort:function($letters){ return $letters; },
// Callback when letter is done animating. Runs after each letter
onLetterComplete:function($letter, $element, LetterFXObj){},
// Runs after all are done.
onElementComplete:function($element, LetterFXObj){},
// what to do when a letter completes its animation.
// options include
// restore: return letter to plain text (default)
// destroy: get rid of the letter.
// stay: leave it as is.
// rewind: reverse the animation
letter_end:"restore",
// what to do when the entire element has completed all its letter effects
// options include:
// restore: return element to its pre-fx state (default)
// stay: do nothing
// destroy: get rid of the element... FOREVER
element_end:"restore",
// Restore container element back to original state.
// options: true, false, "element" ("element" waits until all letters complete fx before restoring)
restore:true,
// destroy element/letters after fx, useful on {out:true} fx
// options: true, false, "letters" ("letters" destroys each letter after fx, but elements original content may be restored after all letters complete fx)
destroy:false,
// default class for injected elements
element_class:'letterfx',
// placeholder values that are calculated on launch
css:{
element:{ base:'', before:'', after:''},
letters:{ base:'', before:'', after:''}
}
};
}(jQuery));

View file

@ -1 +0,0 @@
.letterfx{display:inline-block;margin:0;padding:0;transition:all 1s;-ms-transition:all 1s;-webkit-transition:all 1s}.letterfx-spin-before{transform:rotate(3600deg);-ms-transform:rotate(3600deg);-webkit-transform:rotate(3600deg)}.letterfx-spin-after{transform:none}.letterfx-fade-before{opacity:0}.letterfx-grow-before{transform:scale(0,0);-ms-transform:scale(0,0);-webkit-transform:scale(0,0)}.letterfx-grow-after{transform:none}.letterfx-smear-before{color:transparent;text-shadow:-1px -1px 25px transparent}.letterfx-smear-after{color:inherit;text-shadow:0 0 #333}.letterfx-fall-before{visibility:hidden;transform:scale(3,3);-ms-transform:scale(3,3);-webkit-transform:scale(3,3)}.letterfx-fall-after{transform:scale(1,1);-ms-transform:scale(1,1);-webkit-transform:scale(1,1);text-shadow:0}.letterfx-swirl-before{visibility:hidden;transform:scale(3,3) rotate(3600deg);-ms-transform:scale(3,3) rotate(3600deg);-webkit-transform:scale(3,3) rotate(3600deg)}.letterfx-swirl-after{transform:none; text-shadow:0}.letterfx-wave-container .letterfx{position:relative}.letterfx-wave-before{bottom:0}.letterfx-wave-after{bottom:15px}.letterfx-fly-left-container .letterfx,.letterfx-fly-right-container .letterfx,.letterfx-fly-top-container .letterfx,.letterfx-fly-bottom-container .letterfx{position:relative}.letterfx-fly-left-before{left:-50em}.letterfx-fly-left-after{left:0}.letterfx-fly-right-before{right:-50em}.letterfx-fly-right-after{right:0}.letterfx-fly-top-before{top:-20em}.letterfx-fly-top-after{top:0}.letterfx-fly-bottom-before{bottom:-20em}.letterfx-fly-bottom-after{bottom:0}

File diff suppressed because one or more lines are too long