%PDF- %PDF-
Direktori : /home/bitrix/www/bitrix/js/landing/ui/panel/ |
Current File : //home/bitrix/www/bitrix/js/landing/ui/panel/google_fonts_panel.min.js |
(function(){"use strict";BX.namespace("BX.Landing.UI.Panel");var e=BX.Landing.Utils.addClass;var n=BX.Landing.Utils.proxy;var t=BX.Landing.Utils.append;var i=BX.Landing.Utils.slice;var s=BX.Landing.Utils.clone;var a=BX.Landing.Utils.bind;var o=["A red flare silhouetted the jagged edge of a wing","I watched the storm, so beautiful yet terrific","Almost before we knew it, we had left the ground","Waves flung themselves at the blue evening","A shining crescent far beneath the flying vessel"];var r=["Утреннее солнце ярко осветило поляну и лес","Прилетевшие птицы заняли весь скалистый берег","Бодрящий морской воздух был прохладен и свеж","Это лучшее, что могло с ним произойти в новом городе","Новая книга оказалась интересной и познавательной"];var x="بطابع أحمر ارتسمت صورة ظليّة لحدود الجناح المسننة.";var l="הטבע האחד שלי והטבע האחר חלקו זיכרון משותף.";var h="나는 폭풍을 지켜보았다. 너무나 아름다우면서도 엄청난 폭풍을.";BX.Landing.UI.Panel.GoogleFonts=function(){BX.Landing.UI.Panel.Content.apply(this,["google-fonts-panel",{title:BX.message("LANDING_GOOGLE_FONT_PANEL_TITLE")}]);this.pangramIndex=-1;e(this.layout,"landing-ui-panel-google-fonts");e(this.overlay,"landing-ui-panel-google-fonts-overlay");this.client=new BX.Landing.Client.GoogleFonts;var n=top.document.body.querySelector(".landing-ui-view-container");t(this.layout,n);t(this.overlay,n);this.categoryForm=this.createCategoryForm();this.languageForm=this.createLanguageForm();t(this.categoryForm.layout,this.sidebar);t(this.languageForm.layout,this.sidebar)};BX.Landing.UI.Panel.GoogleFonts.getInstance=function(){return BX.Landing.UI.Panel.GoogleFonts.instance||(BX.Landing.UI.Panel.GoogleFonts.instance=new BX.Landing.UI.Panel.GoogleFonts)};BX.Landing.UI.Panel.GoogleFonts.prototype={constructor:BX.Landing.UI.Panel.GoogleFonts,__proto__:BX.Landing.UI.Panel.Content.prototype,superclass:BX.Landing.UI.Panel.Content.prototype,show:function(){var e=this.superclass.show.call(this);if(this.isFontsLoaded()){return e.then(n(this.saveResolver,this))}return e.then(n(this.showLoader,this)).then(n(this.getFonts,this)).then(n(this.loadFonts,this)).then(n(this.renderList,this)).then(n(this.hideLoader,this)).then(n(this.saveResolver,this))},saveResolver:function(){var e=this;return new Promise(function(n){e.resolver=n})},getFonts:function(){if(this.response){return Promise.resolve(this.response)}return this.client.getList().then(n(this.saveResponse,this))},saveResponse:function(e){return this.response=e},isFontsLoaded:function(){return!!this.response},showLoader:function(){return Promise.resolve((this.loader=this.loader||new BX.Loader({target:this.content})).show())},hideLoader:function(){if(this.loader){this.loader.hide()}return Promise.resolve()},loadFonts:function(e){return new Promise(function(n){WebFont.load({google:{families:e.map(function(e){return e.family.replace(/ /g,"+")})},context:top,classes:false,active:function(){if(top.document.fonts){top.document.fonts.ready.then(function(){n(e)})}else{setTimeout(n,3e3,e)}}})})},applyFilter:function(e){var n=this.languageForm.fields[0].getValue();var t=this.categoryForm.fields[0].getValue();return e.filter(function(e){return n.every(function(n){return e.subsets.indexOf(n)!==-1})&&t.some(function(n){return n===e.category})})},createListItem:function(e){var n=this.languageForm.fields[0].getValue();var t="";var i="ltr";this.pangramIndex+=1;this.pangramIndex=this.pangramIndex>4?0:this.pangramIndex;if(n.includes("latin")){t=o[this.pangramIndex]}if(n.includes("cyrillic")){t=r[this.pangramIndex]}if(n.includes("arabic")){i="rtl";t=x}if(n.includes("hebrew")){i="rtl";t=l}if(n.includes("korean")){t=h}return'<div class="landing-ui-font-preview">'+'<div class="landing-ui-font-preview-font-name">'+e.family+"</div>"+'<div class="landing-ui-font-preview-font-button">'+'<span class="ui-btn ui-btn-xs ui-btn-light-border ui-btn-round">'+BX.message("LANDING_GOOGLE_FONT_SELECT_BUTTON")+"</span>"+"</div>"+'<div style="font-family: '+e.family+"; direction: "+i+';" class="landing-ui-font-preview-pangram" contenteditable="true">'+t+"</div>"+"</div>"},onFilterChange:function(){this.renderList()},renderList:function(){return this.getFonts().then(n(this.applyFilter,this)).then(n(this.renderItems,this))},renderItems:function(e){this.content.innerHTML=e.map(this.createListItem,this).join("");i(this.content.children).forEach(this.initItem(e),this)},initItem:function(e){return function(n,t){var i=n.querySelector(".landing-ui-font-preview-font-button");a(i,"click",this.onFontSelect.bind(this,e[t]))}},getListItems:function(){return i(this.content.querySelectorAll(".landing-ui-font-preview.cell"))},createLanguageForm:function(){var e=new BX.Landing.UI.Form.StyleForm({title:BX.message("LANDING_GOOGLE_FONT_PANEL_LANGUAGE_FORM_TITLE")});var t=new BX.Landing.UI.Factory.FieldFactory({onValueChange:n(this.onFilterChange,this)});var i=window.location.host.includes(".ru");e.addField(t.create({type:"radio",items:[{name:BX.message("LANDING_GOOGLE_FONT_PANEL_LANGUAGE_CYRILLIC"),value:"cyrillic",checked:i},{name:BX.message("LANDING_GOOGLE_FONT_PANEL_LANGUAGE_LATIN"),value:"latin",checked:!i},{name:BX.message("LANDING_GOOGLE_FONT_PANEL_LANGUAGE_ARABIC"),value:"arabic"},{name:BX.message("LANDING_GOOGLE_FONT_PANEL_LANGUAGE_HEBREW"),value:"hebrew"},{name:BX.message("LANDING_GOOGLE_FONT_PANEL_LANGUAGE_KOREAN"),value:"korean"}]}));return e},createCategoryForm:function(){var e=new BX.Landing.UI.Form.StyleForm({title:BX.message("LANDING_GOOGLE_FONT_PANEL_CATEGORY_FORM_TITLE")});var t=new BX.Landing.UI.Factory.FieldFactory({onValueChange:n(this.onFilterChange,this)});e.addField(t.create({type:"checkbox",items:[{name:BX.message("LANDING_GOOGLE_FONT_PANEL_CATEGORY_SANS_SERIF"),value:"sans-serif",checked:true},{name:BX.message("LANDING_GOOGLE_FONT_PANEL_CATEGORY_SERIF"),value:"serif",checked:true},{name:BX.message("LANDING_GOOGLE_FONT_PANEL_CATEGORY_DISPLAY"),value:"display",checked:true},{name:BX.message("LANDING_GOOGLE_FONT_PANEL_CATEGORY_HANDWRITING"),value:"handwriting",checked:true},{name:BX.message("LANDING_GOOGLE_FONT_PANEL_CATEGORY_MONOSPACE"),value:"monospace",checked:true}]}));return e},onFontSelect:function(e){this.selectedFont=e;this.onApply()},onApply:function(){if(this.resolver){var e=s(this.selectedFont);e.subset=this.languageForm.fields[0].getValue();this.hide().then(this.resolver.bind(null,e))}},onCancel:function(){this.hide()}}})();