gobstones-blockly 0.6.0 → 0.8.5
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.
- checksums.yaml +5 -5
- data/app/assets/htmls/gs-element-blockly.html +3603 -3322
- data/app/assets/htmls/vendor/polymer-micro.html +1 -1
- data/app/assets/htmls/vendor/polymer.html +113 -26
- data/lib/gobstones/blockly/version.rb +3 -3
- metadata +4 -4
@@ -791,7 +791,7 @@ default:
|
|
791
791
|
return value != null ? value : undefined;
|
792
792
|
}
|
793
793
|
}
|
794
|
-
});Polymer.version = "1.11.
|
794
|
+
});Polymer.version = "1.11.3";Polymer.Base._addFeature({
|
795
795
|
_registerFeatures: function () {
|
796
796
|
this._prepIs();
|
797
797
|
this._prepBehaviors();
|
@@ -572,7 +572,10 @@ window.removeEventListener('test', null, opts);
|
|
572
572
|
} catch (e) {
|
573
573
|
}
|
574
574
|
}());
|
575
|
-
function PASSIVE_TOUCH() {
|
575
|
+
function PASSIVE_TOUCH(eventName) {
|
576
|
+
if (isMouseEvent(eventName) || eventName === 'touchend') {
|
577
|
+
return;
|
578
|
+
}
|
576
579
|
if (HAS_NATIVE_TA && SUPPORTS_PASSIVE && Polymer.Settings.passiveTouchGestures) {
|
577
580
|
return { passive: true };
|
578
581
|
}
|
@@ -586,11 +589,13 @@ return;
|
|
586
589
|
mouseEvent[HANDLED_OBJ] = { skip: true };
|
587
590
|
if (mouseEvent.type === 'click') {
|
588
591
|
var path = Polymer.dom(mouseEvent).path;
|
592
|
+
if (path) {
|
589
593
|
for (var i = 0; i < path.length; i++) {
|
590
594
|
if (path[i] === POINTERSTATE.mouse.target) {
|
591
595
|
return;
|
592
596
|
}
|
593
597
|
}
|
598
|
+
}
|
594
599
|
mouseEvent.preventDefault();
|
595
600
|
mouseEvent.stopPropagation();
|
596
601
|
}
|
@@ -805,8 +810,7 @@ if (!gd) {
|
|
805
810
|
gobj[dep] = gd = { _count: 0 };
|
806
811
|
}
|
807
812
|
if (gd._count === 0) {
|
808
|
-
|
809
|
-
node.addEventListener(dep, this.handleNative, options);
|
813
|
+
node.addEventListener(dep, this.handleNative, PASSIVE_TOUCH(dep));
|
810
814
|
}
|
811
815
|
gd[name] = (gd[name] || 0) + 1;
|
812
816
|
gd._count = (gd._count || 0) + 1;
|
@@ -830,8 +834,7 @@ if (gd && gd[name]) {
|
|
830
834
|
gd[name] = (gd[name] || 1) - 1;
|
831
835
|
gd._count = (gd._count || 1) - 1;
|
832
836
|
if (gd._count === 0) {
|
833
|
-
|
834
|
-
node.removeEventListener(dep, this.handleNative, options);
|
837
|
+
node.removeEventListener(dep, this.handleNative, PASSIVE_TOUCH(dep));
|
835
838
|
}
|
836
839
|
}
|
837
840
|
}
|
@@ -2525,7 +2528,7 @@ MIXIN_RULE: 1000
|
|
2525
2528
|
OPEN_BRACE: '{',
|
2526
2529
|
CLOSE_BRACE: '}',
|
2527
2530
|
_rx: {
|
2528
|
-
comments: /\/\*[^*]*\*+([
|
2531
|
+
comments: /\/\*[^*]*\*+([^\/*][^*]*\*+)*\//gim,
|
2529
2532
|
port: /@import[^;]*;/gim,
|
2530
2533
|
customProp: /(?:^[^;\-\s}]+)?--[^;{}]*?:[^{};]*?(?:[;\n]|$)/gim,
|
2531
2534
|
mixinProp: /(?:^[^;\-\s}]+)?--[^;{}]*?:[^{};]*?{[^}]*?}(?:[;\n]|$)?/gim,
|
@@ -2541,6 +2544,8 @@ AT_START: '@'
|
|
2541
2544
|
}();Polymer.StyleUtil = function () {
|
2542
2545
|
var settings = Polymer.Settings;
|
2543
2546
|
return {
|
2547
|
+
unscopedStyleImports: new WeakMap(),
|
2548
|
+
SHADY_UNSCOPED_ATTR: 'shady-unscoped',
|
2544
2549
|
NATIVE_VARIABLES: Polymer.Settings.useNativeCSSProperties,
|
2545
2550
|
MODULE_STYLES_SELECTOR: 'style, link[rel=import][type~=css], template',
|
2546
2551
|
INCLUDE_ATTR: 'include',
|
@@ -2648,7 +2653,7 @@ this.__lastHeadApplyNode = placeHolder;
|
|
2648
2653
|
return placeHolder;
|
2649
2654
|
},
|
2650
2655
|
cssFromModules: function (moduleIds, warnIfNotFound) {
|
2651
|
-
var modules = moduleIds.trim().split(
|
2656
|
+
var modules = moduleIds.trim().split(/\s+/);
|
2652
2657
|
var cssText = '';
|
2653
2658
|
for (var i = 0; i < modules.length; i++) {
|
2654
2659
|
cssText += this.cssFromModule(modules[i], warnIfNotFound);
|
@@ -2683,9 +2688,26 @@ cssText += this.cssFromModules(include, true);
|
|
2683
2688
|
}
|
2684
2689
|
e = e.__appliedElement || e;
|
2685
2690
|
e.parentNode.removeChild(e);
|
2686
|
-
|
2691
|
+
var css = this.resolveCss(e.textContent, element.ownerDocument);
|
2692
|
+
if (!settings.useNativeShadow && e.hasAttribute(this.SHADY_UNSCOPED_ATTR)) {
|
2693
|
+
e.textContent = css;
|
2694
|
+
document.head.insertBefore(e, document.head.firstChild);
|
2695
|
+
} else {
|
2696
|
+
cssText += css;
|
2697
|
+
}
|
2687
2698
|
} else if (e.import && e.import.body) {
|
2688
|
-
|
2699
|
+
var importCss = this.resolveCss(e.import.body.textContent, e.import);
|
2700
|
+
if (!settings.useNativeShadow && e.hasAttribute(this.SHADY_UNSCOPED_ATTR)) {
|
2701
|
+
if (!this.unscopedStyleImports.has(e.import)) {
|
2702
|
+
this.unscopedStyleImports.set(e.import, true);
|
2703
|
+
var importStyle = document.createElement('style');
|
2704
|
+
importStyle.setAttribute(this.SHADY_UNSCOPED_ATTR, '');
|
2705
|
+
importStyle.textContent = importCss;
|
2706
|
+
document.head.insertBefore(importStyle, document.head.firstChild);
|
2707
|
+
}
|
2708
|
+
} else {
|
2709
|
+
cssText += importCss;
|
2710
|
+
}
|
2689
2711
|
}
|
2690
2712
|
}
|
2691
2713
|
}
|
@@ -2881,8 +2903,31 @@ this._transformRule(rule, this._transformComplexSelector, scope, hostScope);
|
|
2881
2903
|
_transformRule: function (rule, transformer, scope, hostScope) {
|
2882
2904
|
rule.selector = rule.transformedSelector = this._transformRuleCss(rule, transformer, scope, hostScope);
|
2883
2905
|
},
|
2906
|
+
_splitSelectorList: function (selector) {
|
2907
|
+
var parts = [];
|
2908
|
+
var part = '';
|
2909
|
+
for (var i = 0; i >= 0 && i < selector.length; i++) {
|
2910
|
+
if (selector[i] === '(') {
|
2911
|
+
var end = styleUtil._findMatchingParen(selector, i);
|
2912
|
+
part += selector.slice(i, end + 1);
|
2913
|
+
i = end;
|
2914
|
+
} else if (selector[i] === COMPLEX_SELECTOR_SEP) {
|
2915
|
+
parts.push(part);
|
2916
|
+
part = '';
|
2917
|
+
} else {
|
2918
|
+
part += selector[i];
|
2919
|
+
}
|
2920
|
+
}
|
2921
|
+
if (part) {
|
2922
|
+
parts.push(part);
|
2923
|
+
}
|
2924
|
+
if (parts.length === 0) {
|
2925
|
+
parts.push(selector);
|
2926
|
+
}
|
2927
|
+
return parts;
|
2928
|
+
},
|
2884
2929
|
_transformRuleCss: function (rule, transformer, scope, hostScope) {
|
2885
|
-
var p$ = rule.selector
|
2930
|
+
var p$ = this._splitSelectorList(rule.selector);
|
2886
2931
|
if (!styleUtil.isKeyframesSelector(rule)) {
|
2887
2932
|
for (var i = 0, l = p$.length, p; i < l && (p = p$[i]); i++) {
|
2888
2933
|
p$[i] = transformer.call(this, p, scope, hostScope);
|
@@ -2890,19 +2935,36 @@ p$[i] = transformer.call(this, p, scope, hostScope);
|
|
2890
2935
|
}
|
2891
2936
|
return p$.join(COMPLEX_SELECTOR_SEP);
|
2892
2937
|
},
|
2938
|
+
_ensureScopedDir: function (s) {
|
2939
|
+
var m = s.match(DIR_PAREN);
|
2940
|
+
if (m && m[1] === '' && m[0].length === s.length) {
|
2941
|
+
s = '*' + s;
|
2942
|
+
}
|
2943
|
+
return s;
|
2944
|
+
},
|
2945
|
+
_additionalDirSelectors: function (dir, after, prefix) {
|
2946
|
+
if (!dir || !after) {
|
2947
|
+
return '';
|
2948
|
+
}
|
2949
|
+
prefix = prefix || '';
|
2950
|
+
return COMPLEX_SELECTOR_SEP + prefix + ' ' + dir + ' ' + after;
|
2951
|
+
},
|
2893
2952
|
_transformComplexSelector: function (selector, scope, hostScope) {
|
2894
2953
|
var stop = false;
|
2895
2954
|
var hostContext = false;
|
2955
|
+
var dir = false;
|
2896
2956
|
var self = this;
|
2897
2957
|
selector = selector.trim();
|
2898
2958
|
selector = this._slottedToContent(selector);
|
2899
2959
|
selector = selector.replace(ROOT, ':host > *');
|
2900
2960
|
selector = selector.replace(CONTENT_START, HOST + ' $1');
|
2961
|
+
selector = this._ensureScopedDir(selector);
|
2901
2962
|
selector = selector.replace(SIMPLE_SELECTOR_SEP, function (m, c, s) {
|
2902
2963
|
if (!stop) {
|
2903
2964
|
var info = self._transformCompoundSelector(s, c, scope, hostScope);
|
2904
2965
|
stop = stop || info.stop;
|
2905
2966
|
hostContext = hostContext || info.hostContext;
|
2967
|
+
dir = dir || info.dir;
|
2906
2968
|
c = info.combinator;
|
2907
2969
|
s = info.value;
|
2908
2970
|
} else {
|
@@ -2912,14 +2974,28 @@ return c + s;
|
|
2912
2974
|
});
|
2913
2975
|
if (hostContext) {
|
2914
2976
|
selector = selector.replace(HOST_CONTEXT_PAREN, function (m, pre, paren, post) {
|
2915
|
-
|
2977
|
+
var replacement = pre + paren + ' ' + hostScope + post + COMPLEX_SELECTOR_SEP + ' ' + pre + hostScope + paren + post;
|
2978
|
+
if (dir) {
|
2979
|
+
replacement += self._additionalDirSelectors(paren, post, hostScope);
|
2980
|
+
}
|
2981
|
+
return replacement;
|
2916
2982
|
});
|
2917
2983
|
}
|
2918
2984
|
return selector;
|
2919
2985
|
},
|
2986
|
+
_transformDir: function (s) {
|
2987
|
+
s = s.replace(HOST_DIR, HOST_DIR_REPLACE);
|
2988
|
+
s = s.replace(DIR_PAREN, DIR_REPLACE);
|
2989
|
+
return s;
|
2990
|
+
},
|
2920
2991
|
_transformCompoundSelector: function (selector, combinator, scope, hostScope) {
|
2921
2992
|
var jumpIndex = selector.search(SCOPE_JUMP);
|
2922
2993
|
var hostContext = false;
|
2994
|
+
var dir = false;
|
2995
|
+
if (selector.match(DIR_PAREN)) {
|
2996
|
+
selector = this._transformDir(selector);
|
2997
|
+
dir = true;
|
2998
|
+
}
|
2923
2999
|
if (selector.indexOf(HOST_CONTEXT) >= 0) {
|
2924
3000
|
hostContext = true;
|
2925
3001
|
} else if (selector.indexOf(HOST) >= 0) {
|
@@ -2935,12 +3011,12 @@ if (jumpIndex >= 0) {
|
|
2935
3011
|
selector = selector.replace(SCOPE_JUMP, ' ');
|
2936
3012
|
stop = true;
|
2937
3013
|
}
|
2938
|
-
selector = selector.replace(DIR_PAREN, DIR_REPLACE);
|
2939
3014
|
return {
|
2940
3015
|
value: selector,
|
2941
3016
|
combinator: combinator,
|
2942
3017
|
stop: stop,
|
2943
|
-
hostContext: hostContext
|
3018
|
+
hostContext: hostContext,
|
3019
|
+
dir: dir
|
2944
3020
|
};
|
2945
3021
|
},
|
2946
3022
|
_transformSimpleSelector: function (selector, scope) {
|
@@ -2977,7 +3053,7 @@ this._transformRule(rule, this._transformDocumentSelector);
|
|
2977
3053
|
},
|
2978
3054
|
normalizeRootSelector: function (rule) {
|
2979
3055
|
rule.selector = rule.selector.replace(ROOT, 'html');
|
2980
|
-
var parts = rule.selector
|
3056
|
+
var parts = this._splitSelectorList(rule.selector);
|
2981
3057
|
parts = parts.filter(function (part) {
|
2982
3058
|
return !part.match(HOST_OR_HOST_GT_STAR);
|
2983
3059
|
});
|
@@ -2990,11 +3066,18 @@ _slottedToContent: function (cssText) {
|
|
2990
3066
|
return cssText.replace(SLOTTED_PAREN, CONTENT + '> $1');
|
2991
3067
|
},
|
2992
3068
|
_dirShadowTransform: function (selector) {
|
2993
|
-
|
2994
|
-
|
2995
|
-
|
3069
|
+
if (!selector.match(/:dir\(/)) {
|
3070
|
+
return selector;
|
3071
|
+
}
|
3072
|
+
return this._splitSelectorList(selector).map(function (s) {
|
3073
|
+
s = this._ensureScopedDir(s);
|
3074
|
+
s = this._transformDir(s);
|
3075
|
+
var m = HOST_CONTEXT_PAREN.exec(s);
|
3076
|
+
if (m) {
|
3077
|
+
s += this._additionalDirSelectors(m[2], m[3], '');
|
3078
|
+
}
|
2996
3079
|
return s;
|
2997
|
-
}).join(
|
3080
|
+
}, this).join(COMPLEX_SELECTOR_SEP);
|
2998
3081
|
},
|
2999
3082
|
SCOPE_NAME: 'style-scope'
|
3000
3083
|
};
|
@@ -3019,9 +3102,8 @@ var CONTENT_START = new RegExp('^(' + CONTENT + ')');
|
|
3019
3102
|
var SELECTOR_NO_MATCH = 'should_not_match';
|
3020
3103
|
var SLOTTED_PAREN = /(?:::slotted)(?:\(((?:\([^)(]*\)|[^)(]*)+?)\))/g;
|
3021
3104
|
var HOST_OR_HOST_GT_STAR = /:host(?:\s*>\s*\*)?/;
|
3022
|
-
var DIR_PAREN = /(.*):dir\((ltr|rtl)\)
|
3023
|
-
var DIR_REPLACE = '[dir="$2"] $1
|
3024
|
-
var SHADOW_DIR_REPLACE = ':host-context([dir="$2"]) $1';
|
3105
|
+
var DIR_PAREN = /(.*):dir\((ltr|rtl)\)/;
|
3106
|
+
var DIR_REPLACE = ':host-context([dir="$2"]) $1';
|
3025
3107
|
var HOST_DIR = /:host\(:dir\((rtl|ltr)\)\)/g;
|
3026
3108
|
var HOST_DIR_REPLACE = ':host-context([dir="$1"])';
|
3027
3109
|
return api;
|
@@ -3699,18 +3781,23 @@ return cssText.replace(keyframesRule.keyframesNameRx, keyframesRule.transformedK
|
|
3699
3781
|
};
|
3700
3782
|
},
|
3701
3783
|
_scopeKeyframes: function (rule, scopeId) {
|
3702
|
-
rule.keyframesNameRx = new RegExp(rule.keyframesName, 'g');
|
3784
|
+
rule.keyframesNameRx = new RegExp('\\b' + rule.keyframesName + '(?!\\B|-)', 'g');
|
3703
3785
|
rule.transformedKeyframesName = rule.keyframesName + '-' + scopeId;
|
3704
3786
|
rule.transformedSelector = rule.transformedSelector || rule.selector;
|
3705
3787
|
rule.selector = rule.transformedSelector.replace(rule.keyframesName, rule.transformedKeyframesName);
|
3706
3788
|
},
|
3789
|
+
_hasDirOrHostContext: function (parsedSelector) {
|
3790
|
+
return /:host-context|:dir/.test(parsedSelector);
|
3791
|
+
},
|
3707
3792
|
_scopeSelector: function (rule, hostRx, hostSelector, viaAttr, scopeId) {
|
3708
3793
|
rule.transformedSelector = rule.transformedSelector || rule.selector;
|
3709
3794
|
var selector = rule.transformedSelector;
|
3710
|
-
var scope =
|
3795
|
+
var scope = styleTransformer._calcElementScope(scopeId, viaAttr);
|
3796
|
+
var hostScope = styleTransformer._calcElementScope(hostSelector, viaAttr);
|
3711
3797
|
var parts = selector.split(',');
|
3798
|
+
var isDirOrHostContextSelector = this._hasDirOrHostContext(rule.parsedSelector);
|
3712
3799
|
for (var i = 0, l = parts.length, p; i < l && (p = parts[i]); i++) {
|
3713
|
-
parts[i] = p.match(hostRx) ? p.replace(hostSelector, scope) : scope + ' ' + p;
|
3800
|
+
parts[i] = p.match(hostRx) ? p.replace(hostSelector, scope) : isDirOrHostContextSelector ? p.replace(hostScope, scope + ' ' + hostScope) : scope + ' ' + p;
|
3714
3801
|
}
|
3715
3802
|
rule.selector = parts.join(',');
|
3716
3803
|
},
|
@@ -4340,8 +4427,8 @@ archetype._addPropertyEffect(prop, 'function', this._createInstancePropEffector(
|
|
4340
4427
|
}
|
4341
4428
|
},
|
4342
4429
|
_customPrepAnnotations: function (archetype, template) {
|
4343
|
-
archetype._template = template;
|
4344
|
-
var c = template._content;
|
4430
|
+
var t = archetype._template = document.createElement('template');
|
4431
|
+
var c = t._content = template._content;
|
4345
4432
|
if (!c._notes) {
|
4346
4433
|
var rootDataHost = archetype._rootDataHost;
|
4347
4434
|
if (rootDataHost) {
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gobstones-blockly
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.8.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Rodrigo Alfonso
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-
|
11
|
+
date: 2018-03-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -68,7 +68,7 @@ files:
|
|
68
68
|
- app/assets/javascripts/vendor/webcomponents.min.js
|
69
69
|
- lib/gobstones/blockly.rb
|
70
70
|
- lib/gobstones/blockly/version.rb
|
71
|
-
homepage: https://github.com/
|
71
|
+
homepage: https://github.com/Program-AR/gs-element-blockly
|
72
72
|
licenses:
|
73
73
|
- MIT
|
74
74
|
metadata: {}
|
@@ -88,7 +88,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
88
88
|
version: '0'
|
89
89
|
requirements: []
|
90
90
|
rubyforge_project:
|
91
|
-
rubygems_version: 2.
|
91
|
+
rubygems_version: 2.7.6
|
92
92
|
signing_key:
|
93
93
|
specification_version: 4
|
94
94
|
summary: Gobstones Blockly
|