$textLinks = array_filter($l, function($n) {
return $n['type'] === '35';
});
- $rulers = $request->rulers;
$fb = FluidbookPublication::find($id);
$wdir = $fb->protected_path('fluidbookpublication/working/'.$id).'/';
$css = [];
$dest = $wdir . '/' . $final;
if(!file_exists($dest)) {
FluidbookFontToWoff::fontforge($dest, $filepath);
- FluidbookFontToWoff::fontline($filepath);
}
- $i = \App\Fluidbook\Link\Link::getInstance($link['id'],$link,$compiler);
- $css[$link['uid']]['capHeight'] = FluidbookFontToWoff::getCSS($i, $fontFile, $hash, $filepath, $w, $h);
- $css[$link['uid']]['font'] = $hash;
- $css[$link['uid']]['hash'] = $final;
+
+ $config = FluidbookFontToWoff::configFont($fontFile,$hash,$filepath);
+ $css[$hash]['capHeight'] = $config['capHeight'];
+ $css[$hash]['font'] = $hash;
+ $css[$hash]['hash'] = $final;
}
}
this.linkeditor.hasChanged();
this.updatePolygonLinks();
this.updateLayers();
+ this.updatePreview(this.lastSelectedLinkData);
},
hasUIDLink: function (uid) {
this.linkeditor.form.updateLinkForm();
this.resizeLinkPos = null;
this.linkeditor.hasChanged();
- this.setFontSize(this.lastSelectedLinkData)
},
moveResizeLink: function () {
addLink: function (link, triggerChange) {
+ console.log('new')
if (triggerChange === undefined) {
triggerChange = true;
}
this.linkeditor.rulers.updateMagnetValues();
this.updateLayers();
this.updatePolygonLinks(false);
+ if($(['data-action=links.preview']).hasClass("active")) {
+ this.updatePreview(LINKS[id]);
+ }
},
updateSelectionData: function (props) {
});
},
- setPreview: function(p) {
- const links = this.getLinksOfPage(this.linkeditor.currentPage)
+ updatePreview: function(link) {
+ let linkData = link,
+ gsapConfig = this.convertAnimationStringToObject(linkData.image_rollover)
- const imageFormat = FLUIDBOOK_DATA.settings.imageFormat
+ $("[data-id-preview="+linkData.uid+"]").css({
+ height: '100%',
+ width: '100%'
+ })
- for(let link in links) {
- let linkData = links[link],
- l = this.getLinkById(linkData.uid),
- gsapConfig = this.convertAnimationStringToObject(linkData.image_rollover)
+ if(linkData.type === '14') {
+ $("[data-id-preview="+linkData.uid+"]").css({
+ backgroundColor: linkData.to,
+ 'z-index': 99
+ })
- l.html("<div data-id-preview='"+linkData.uid+"'></div>")
+ /*gsapConfig.forEach(function(conf) {
+ gsap.to($("[data-id-preview="+linkData.uid+"]"),conf)
+ })*/
+ } else if(linkData.type === '15' || /\.(jpg|png|svg|webp|avif)$/.exec(linkData.image)) {
+ let imgUrl = linkData.type === '15' ? ASSETS['uid_'+linkData.uid]['url'] : "/fluidbook-publication/"+FLUIDBOOK_DATA.id +"/edit/links/assets/"+linkData.image
+ let img = "<img src='"+imgUrl+"' />"
+ $("[data-id-preview="+linkData.uid+"]").html(img)
- $("[data-id-preview="+linkData.uid+"]").css({
+ $("[data-id-preview="+linkData.uid+"] img").css({
height: '100%',
- width: '100%'
+ width: '100%',
+ display: 'block',
+ 'background-size': '100% 100%',
+ 'background-position': '0 0',
})
+ } else if(linkData.type === '35') {
+ var hash = 'fb_'+window.MD5(link.image).toString().substring(0,10)
+ this.setFontSize(linkData, hash)
+ $("[data-id-preview=" + linkData.uid + "]").text(linkData.to).css({
+ 'font-family': hash,
+ 'color': linkData.extra,
+ })
+ }
+ },
- if(linkData.type === '14') {
- $("[data-id-preview="+linkData.uid+"]").css({
- backgroundColor: linkData.to,
- 'z-index': 99
- })
+ setPreview: function() {
+ const links = this.getLinksOfPage(this.linkeditor.currentPage)
- /*gsapConfig.forEach(function(conf) {
- gsap.to($("[data-id-preview="+linkData.uid+"]"),conf)
- })*/
- } else if(linkData.type === '15' || /\.(jpg|png|svg|webp|avif)$/.exec(linkData.image)) {
- let imgUrl = linkData.type === '15' ? ASSETS['uid_'+linkData.uid]['url'] : "/fluidbook-publication/"+FLUIDBOOK_DATA.id +"/edit/links/assets/"+linkData.image
- let img = "<img src='"+imgUrl+"' />"
- $("[data-id-preview="+linkData.uid+"]").append(img)
-
- $("[data-id-preview="+linkData.uid+"] img").css({
- height: '100%',
- width: '100%',
- display: 'block',
- 'background-size': '100% 100%',
- 'background-position': '0 0',
- })
- } else if(linkData.type === '35') {
- this.setFontSize(linkData)
- $("[data-id-preview=" + linkData.uid + "]").text(linkData.to).css({
- 'font-family': FONT_SIZE[linkData.uid]['font'],
- 'color': linkData.extra,
- })
- }
+ for(let link in links) {
+ let l = this.getLinkById(links[link].uid)
+ l.html("<div data-id-preview='"+links[link].uid+"'></div>")
+ this.updatePreview(links[link])
}
},
- setFontSize: function(link) {
+ setFontSize: function(link, hash) {
var pw = FLUIDBOOK_DATA.settings.width;
var ph = FLUIDBOOK_DATA.settings.height;
var fs = link.height * (1 * Math.min((567 / pw), (709 / ph) ));
- $("[data-id-preview=" + link.uid + "]").text(link.to).css({
- 'font-size': Math.round((fs / FONT_SIZE[link.uid].capHeight))+'px',
- 'line-height': FONT_SIZE[link.uid]['capHeight']
- })
- },
+ try {
+ $("[data-id-preview=" + link.uid + "]").text(link.to).css({
+ 'font-size': Math.round((fs / FONT_SIZE[hash]['capHeight'])) + 'px',
+ 'line-height': FONT_SIZE[hash]['capHeight']
+ })
+ } catch (e) {
- updateFontSize: function(zoom) {
- for(let k in LINKS) {
- if(LINKS[k].type === '35') {
- $("[data-id-preview="+LINKS[k].uid+"]").css({
- transform: "scale("+zoom+")",
- 'transform-origin': 'left top'
- })
- }
}
},
+ updateFontSize: function(zoom, link) {
+ $("[data-id-preview="+link.uid+"]").css({
+ transform: "scale("+zoom+")",
+ 'transform-origin': 'left top'
+ })
+ },
+
clearPreview: function() {
$("[data-id-preview]").remove()
},