UNPKG

jsharmony-cms

Version:
1,108 lines (1,068 loc) 60.4 kB
/* Copyright 2019 apHarmony This file is part of jsHarmony. jsHarmony is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. jsHarmony is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this package. If not, see <http://www.gnu.org/licenses/>. */ var jsHarmonyCMSEditorPicker = require('./jsHarmonyCMS.Editor.Picker.js'); var jsHarmonyCMSEditorTinyMCEPlugin = require('./jsHarmonyCMS.Editor.TinyMCEPlugin.js'); exports = module.exports = function(jsh, cms, toolbarContainer){ var _this = this; var $ = jsh.$; var _ = jsh._; var XExt = jsh.XExt; this.isEditing = false; this.picker = new jsHarmonyCMSEditorPicker(jsh, cms); this.tinyMCEPlugin = new jsHarmonyCMSEditorTinyMCEPlugin(jsh, cms, this); this.defaultConfig = {}; this.toolbarContainer = null; this.defaultToolbarOptions = { dock: 'auto', show_menu: true, show_toolbar: true, orig_dock: undefined, orig_toolbar_or_menu: undefined, }; this.onBeginEdit = null; //function(mceEditor){}; this.onEndEdit = null; //function(mceEditor){}; this.onSetContent = null; //function(mceEditor){}; this.editorConfig = { base: null, full: null, text: null }; this.init = function(cb){ if(!cb) cb = function(){}; //Initialize Editor _this.initToolbarContainer(toolbarContainer); XExt.TinyMCE('', undefined, function(){ _this.tinyMCEPlugin.register(); //Change text labels window.tinymce.addI18n('en', { 'Media...': 'Video...', 'Insert / Edit': 'Video...', 'Insert/edit media': 'Insert/edit video', 'Insert/Edit Media': 'Insert/Edit Video', }); //Initialize each content editor var materialIcons = _this.getMaterialIcons(); _this.editorConfig.base = _.extend({}, { inline: true, branding: false, browser_spellcheck: true, valid_elements: '+*[*],#p[*]', valid_children: '+h1[p],+h2[p],+h3[p],+h4[p],+h5[p],+h6[p],+body[style],+div[style],+p[style]', extended_valid_elements: 'script[language|type|src|async|defer|charset],style[type]', entity_encoding: 'numeric', plugins: [ 'advlist autolink autoresize lists link image charmapmaterialicons anchor', 'searchreplace visualblocks code fullscreen wordcount jsHarmonyCmsWebSnippet jsHarmonyCms', 'insertdatetime media table jsHarmonyCmsPaste code noneditable' ], contextmenu: 'jsharmonycmscomponentcontextmenu link linkchecker image imagetools table spellchecker configurepermanentpen', toolbar: 'formatselect | backcolor forecolor | bold italic underline | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link image charmapmaterialicons table fullscreen | jsHarmonyCmsWebSnippet | jsHarmonyCmsComponent | jsHarmonyCmsView | jsHarmonyCmsEndEdit', mobile: { toolbar_mode: 'floating', }, removed_menuitems: 'newdocument', image_advtab: true, menu: { edit: { title: 'Edit', items: 'undo redo | cut copy paste | selectall | jsHarmonyCmsElementPath | searchreplace' }, view: { title: 'View', items: 'code | visualaid visualchars visualblocks | spellchecker | preview fullscreen | jsHarmonyCmsToggleMenu jsHarmonyCmsToggleToolbar jsharmonyCmsDockToolbar' }, insert: { title: 'Insert', items: 'image link media jsHarmonyCmsWebSnippet jsHarmonyCmsComponent codesample inserttable | charmapmaterialicons emoticons hr | pagebreak nonbreaking anchor toc | insertdatetime' }, format: { title: 'Format', items: 'bold italic underline strikethrough superscript subscript codeformat | formats | backcolor forecolor | removeformat' }, tools: { title: 'Tools', items: 'jsHarmonyCmsSpellCheckMessage spellchecker spellcheckerlanguage | code wordcount' }, table: { title: 'Table', items: 'inserttable tableprops deletetable row column cell' }, help: { title: 'Help', items: 'help' }, endedit: { title: 'End Edit', items: 'jsHarmonyCmsEndEdit' }, }, menubar: 'file edit view insert format tools table help endedit', file_picker_types: 'file image', file_picker_callback: function(cb, value, meta) { // Provide file and text for the link dialog if (meta.filetype == 'file') _this.picker.openLink(cb, value, meta); else if (meta.filetype == 'image') _this.picker.openMedia(cb, value, meta); }, relative_urls: false, urlconverter_callback: function(url, node, on_save, name){ var urlparts = document.createElement('a'); var urlparts_editor = document.createElement('a'); urlparts.href = url; urlparts_editor.href = document.location; if(urlparts.host == urlparts_editor.host){ url = url.replace(/^[^:]*:\/{2}[^/]*\/(.*)/, '/$1'); } return url; }, fixed_toolbar_container: _this.toolbarContainer ? '#' + _this.toolbarContainer.attr('id') : '', statusbar: true, charmap_append: materialIcons, charmap_append_title: (materialIcons.length ? 'Material Icons' : 'Other'), paste_data_images: true, }, _this.getDefaultEditorConfig(), _this.defaultConfig); _this.editorConfig.full = _.extend({}, _this.editorConfig.base); _this.editorConfig.full.init_instance_callback = XExt.chainToEnd(_this.editorConfig.full.init_instance_callback, function(mceEditor){ var firstFocus = true; mceEditor.on('focus', function(){ //Fix bug where alignment not reset when switching between editors if(firstFocus){ $('.jsharmony_cms_content_editor_toolbar').find('.tox-tbtn--enabled:visible').removeClass('tox-tbtn--enabled'); firstFocus = false; } $('[data-component="header"]').css('pointer-events', 'none'); _this.isEditing = mceEditor.id.substr(('jsharmony_cms_content_').length); var wasOnBottom = _this.toolbarContainer.hasClass('jsharmony_cms_content_editor_toolbar_dock_bottom'); if(_this.toolbarContainer.length){ var computedContainerStyles = window.getComputedStyle(_this.toolbarContainer[0]); wasOnBottom = wasOnBottom && (computedContainerStyles.opacity > 0); } _this.renderContentEditorToolbar(mceEditor, { onFocus: true }); if(_this.toolbarContainer.hasClass('jsharmony_cms_content_editor_toolbar_dock_bottom')){ //If dock=bottom, slide up _this.toolbarContainer.stop(true).css({ opacity:1, display:'none' }); _this.toolbarContainer.slideDown(wasOnBottom ? 0 : 300); } else if(_this.toolbarContainer.hasClass('jsharmony_cms_content_editor_toolbar_dock_top_offset')){ //Top-offset _this.toolbarContainer.stop(true).css({ opacity:1 }); } else { _this.toolbarContainer.stop(true).animate({ opacity:1 },300); } cms.refreshLayout(); var jshEditorId = (mceEditor.id.indexOf('jsharmony_cms_content_')>=0) ? mceEditor.id.substr(('jsharmony_cms_content_').length) : ''; $('body').not('.jsharmony_cms_editing').addClass('jsharmony_cms_editing'); if(jshEditorId) $('body').addClass('jsharmony_cms_editing_'+XExt.escapeCSSClass(jshEditorId)); if(_this.onBeginEdit) _this.onBeginEdit(mceEditor); }); mceEditor.on('blur', function(){ $('[data-component="header"]').css('pointer-events', 'auto'); _this.isEditing = false; var clearClasses = function(){ _this.toolbarContainer.removeClass('jsharmony_cms_content_editor_toolbar_hide_toolbar'); }; if(_this.toolbarContainer.hasClass('jsharmony_cms_content_editor_toolbar_dock_top_offset')){ _this.toolbarContainer.stop(true).css({ opacity:0 }); clearClasses(); cms.toolbar.refreshOffsets(); } else { _this.toolbarContainer.stop(true).animate({ opacity:0 },300, clearClasses); } if(_this.onEndEdit) _this.onEndEdit(mceEditor); var jshEditorId = (mceEditor.id.indexOf('jsharmony_cms_content_')>=0) ? mceEditor.id.substr(('jsharmony_cms_content_').length) : ''; $('body').removeClass('jsharmony_cms_editing_'+XExt.escapeCSSClass(jshEditorId)); //Remove class if(!$('.mce-edit-focus').length){ $('body.jsharmony_cms_editing').removeClass('jsharmony_cms_editing'); var bodyElem = $('body')[0]; if(bodyElem){ var editingClasses = []; _.each(bodyElem.classList||[], function(className){ if(className.indexOf('jsharmony_cms_editing_')>=0) editingClasses.push(className); }); _.each(editingClasses, function(className){ $('body').removeClass(className); }); } } }); //Override background color icon var allIcons = mceEditor.ui.registry.getAll(); mceEditor.ui.registry.addIcon('highlight-bg-color', allIcons.icons['fill']); }); _this.editorConfig.text = _.extend({}, _this.editorConfig.base, { inline: true, branding: false, toolbar: '', valid_elements: '', valid_children: '', valid_styles: { '*': '' }, menubar: false, browser_spellcheck: true, }); _this.editorConfig.text.init_instance_callback = XExt.chainToEnd(_this.editorConfig.text.init_instance_callback, function(mceEditor){ mceEditor.on('blur', function(){ if(_this.onEndEdit) _this.onEndEdit(mceEditor); }); }); return cb(); }); }; this.getDefaultEditorConfig = function(){ return _.extend({}, jsh.globalparams.defaultEditorConfig, cms.site_config.defaultEditorConfig); }; this.attach = function(config_id, elem_id, options, cb){ if(!cb) cb = function(){}; var cb_called = false; var orig_cb = cb; cb = function(err){ if(cb_called) return; cb_called = true; orig_cb(err); }; if(!$('#'+elem_id).length) return cb(new Error('Editor container element not found: #'+elem_id)); if(!(config_id in _this.editorConfig)) throw new Error('Editor config ' + (config_id||'').toString() + ' not defined'); var config = _.extend({ selector: '#' + elem_id, base_url: window.TINYMCE_BASEPATH }, _this.editorConfig[config_id], options); config.init_instance_callback = XExt.chainToEnd(config.init_instance_callback, function(){ return cb(); }); window.tinymce.init(config).catch(cb); }; this.detach = function(id){ var mceEditor = window.tinymce.get('jsharmony_cms_content_'+XExt.escapeCSSClass(id, { nodash: true })); if(mceEditor){ if(_this.isEditing == id) mceEditor.fire('blur'); mceEditor.destroy(); } }; /** * @param {string} id * @param {'top' | 'bottom'} position */ this.setToolbarOptions = function(id, toolbarOptions) { if(!toolbarOptions) return; var mceEditor = window.tinymce.get('jsharmony_cms_content_'+XExt.escapeCSSClass(id, { nodash: true })); if(!mceEditor) throw new Error('Editor not found: '+id); mceEditor.fire('setToolbarOptions', {toolbarOptions:toolbarOptions}); }; this.disableLinks = function(container, options){ options = _.extend({ onlyJSHCMSLinks: false, addFlag: false }, options); $(container).find('a').each(function(){ var jobj = $(this); if(options.onlyJSHCMSLinks){ var url = jobj.attr('href'); //If it is not a jsHarmony Internal Link if(url.indexOf('#@JSHCMS') < 0){ //If it is not inside of a component if(!jobj.closest('[data-component]').length) return; } } if(options.addFlag && jobj.data('disabled_links')) return; if(options.addFlag) jobj.data('disabled_links', '1'); jobj.on('click', function(e){ e.preventDefault(); }); }); }; this.setContent = function(id, val, desc){ if(!desc) desc = id; var containerId = 'jsharmony_cms_content_'+XExt.escapeCSSClass(id, { nodash: true }); if(cms.readonly){ //Delay load, so that errors in the HTML do not stop the page loading process window.setTimeout(function(){ $('#'+containerId).html(val); cms.componentManager.renderContainerContentComponents(document.getElementById(containerId), function(err){ if(err) throw new Error(err); _this.disableLinks(document.getElementById(containerId), { addFlag: true, onlyJSHCMSLinks: true }); }); },1); } else { var mceEditor = window.tinymce.get(containerId); if(!mceEditor) cms.fatalError('editor.setContent: Missing editor for "'+desc+'". Please add a cms-content-editor element for that field, ex: <div cms-content-editor="'+desc+'"></div>'); if(!_this.isInitialized) mceEditor.undoManager.clear(); mceEditor.setContent(val, { jsHarmonyCmsSource: 'editor' }); if(!_this.isInitialized) mceEditor.undoManager.add(); } }; this.getContent = function(id, desc){ if(!desc) desc = id; var mceEditor = window.tinymce.get('jsharmony_cms_content_'+XExt.escapeCSSClass(id, { nodash: true })); if(!mceEditor) cms.fatalError('editor.getContent: Missing editor for "'+desc+'". Please add a cms-content-editor element for that field, ex: <div cms-content-editor="'+desc+'"></div>'); return mceEditor.getContent(); }; this.initToolbarContainer = function(element) { this.toolbarContainer = $(element); var id = this.toolbarContainer.attr('id'); if (!id) { do { id = 'jsharmony_cms_editor_toolbar_' + Math.random().toString().replace('.', ''); } while($('#' + id).length > 0); this.toolbarContainer.attr('id', id); } }; this.onEditorInitialized = function(){ if(window.tinymce && window.tinymce.activeEditor && window.tinymce.activeEditor.hasFocus()){ window.tinymce.activeEditor.fire('focus'); } }; this.getContentEditorTopOffset = function(mceEditor){ var contentOffset = $(mceEditor.contentAreaContainer).offset(); if(!contentOffset) return undefined; var contentOffsetTop = contentOffset.top; var contentStyles = window.getComputedStyle(mceEditor.contentAreaContainer); contentOffsetTop += parseInt(contentStyles.paddingTop); contentOffsetTop -= cms.toolbar.currentOffsetTop; return contentOffsetTop; }; this.getDockPosition = function(mceEditor){ if(!mceEditor) throw new Error('Editor is required'); var toolbarOptions = mceEditor.queryCommandValue('jsHarmonyCmsGetToolbarOptions'); var dockPosition = toolbarOptions.dock; if(!dockPosition) dockPosition = 'auto'; //Calculate auto if(dockPosition=='auto'){ //Check if content would overlap editor var contentOffsetTop = _this.getContentEditorTopOffset(mceEditor); if(typeof contentOffsetTop == 'undefined') return 'top'; var editorToolbarHeight = $('#jsharmony_cms_content_editor_toolbar').outerHeight(); if(editorToolbarHeight > contentOffsetTop){ if(cms.toolbar.dockPosition == 'top_offset') return 'top_offset'; } return 'top'; } return dockPosition; }; this.getOffsetTop = function(){ if(!window.tinymce) return 0; var mceEditor = window.tinymce.activeEditor; if(!mceEditor) return 0; var dockPosition = _this.getDockPosition(mceEditor); if(dockPosition=='top_offset'){ return $('#jsharmony_cms_content_editor_toolbar').outerHeight() || 0; } return 0; }; this.renderContentEditorToolbar = function(mceEditor, options){ if(!window.tinymce) return; if(!mceEditor) mceEditor = window.tinymce.activeEditor; if(!mceEditor) return; options = _.extend({ onFocus: false }, options); var toolbarOptions = mceEditor.queryCommandValue('jsHarmonyCmsGetToolbarOptions'); if(options.onFocus){ if(!toolbarOptions.show_menu && !toolbarOptions.show_toolbar){ if(toolbarOptions.orig_toolbar_or_menu) toolbarOptions.show_toolbar = true; } } toolbarOptions = _.extend({}, _this.defaultToolbarOptions, toolbarOptions); var jContentToolbar = $('#jsharmony_cms_content_editor_toolbar'); jContentToolbar.toggleClass('jsharmony_cms_content_editor_toolbar_hide_menu', !toolbarOptions.show_menu); jContentToolbar.toggleClass('jsharmony_cms_content_editor_toolbar_hide_toolbar', !toolbarOptions.show_toolbar); var dockPosition = _this.getDockPosition(mceEditor); jContentToolbar.toggleClass('jsharmony_cms_content_editor_toolbar_dock_bottom', (dockPosition == 'bottom')); jContentToolbar.toggleClass('jsharmony_cms_content_editor_toolbar_dock_top_offset', (dockPosition == 'top_offset')); var isPageToolbarBottom = jContentToolbar.hasClass('jsharmony_cms_page_toolbar_bottom'); var barh = cms.toolbar.getHeight(); if (dockPosition == 'bottom') { //Bottom Dock Position jContentToolbar .css('top', 'auto') // Need to override any CSS. Use 'auto' instead of clearing. .css('bottom', isPageToolbarBottom ? barh+'px' : '0'); } else { //Top Dock Position jContentToolbar .css('top', isPageToolbarBottom ? '0' : barh + 'px') .css('bottom', ''); } cms.toolbar.refreshOffsets(); }; this.endEdit = function(){ jsh.root.append($('<div id="jsharmony_cms_virtual_focus_element" style="width:1px;height:1px;position:fixed;top:0;left:0;"><a href="#">&nbsp;</a></div>')); $('#jsharmony_cms_virtual_focus_element a').focus(); setTimeout(function(){ jsh.XExt.waitUntil( function(){ !(window.tinymce && window.tinymce.activeEditor && window.tinymce.activeEditor.hasFocus()); }, function(){ jsh.$root('#jsharmony_cms_virtual_focus_element').remove(); } ); }, 100); }; this.getMaterialIcons = function(){ var defaultEditorConfig = _this.getDefaultEditorConfig(); if(!defaultEditorConfig.materialIcons) return []; return [ [0xe84d,'materialicon_3d_rotation'], [0xeb3b,'materialicon_ac_unit'], [0xe190,'materialicon_access_alarm'], [0xe191,'materialicon_access_alarms'], [0xe192,'materialicon_access_time'], [0xe84e,'materialicon_accessibility'], [0xe914,'materialicon_accessible'], [0xe84f,'materialicon_account_balance'], [0xe850,'materialicon_account_balance_wallet'], [0xe851,'materialicon_account_box'], [0xe853,'materialicon_account_circle'], [0xe60e,'materialicon_adb'], [0xe145,'materialicon_add'], [0xe439,'materialicon_add_a_photo'], [0xe193,'materialicon_add_alarm'], [0xe003,'materialicon_add_alert'], [0xe146,'materialicon_add_box'], [0xe147,'materialicon_add_circle'], [0xe148,'materialicon_add_circle_outline'], [0xe567,'materialicon_add_location'], [0xe854,'materialicon_add_shopping_cart'], [0xe39d,'materialicon_add_to_photos'], [0xe05c,'materialicon_add_to_queue'], [0xe39e,'materialicon_adjust'], [0xe630,'materialicon_airline_seat_flat'], [0xe631,'materialicon_airline_seat_flat_angled'], [0xe632,'materialicon_airline_seat_individual_suite'], [0xe633,'materialicon_airline_seat_legroom_extra'], [0xe634,'materialicon_airline_seat_legroom_normal'], [0xe635,'materialicon_airline_seat_legroom_reduced'], [0xe636,'materialicon_airline_seat_recline_extra'], [0xe637,'materialicon_airline_seat_recline_normal'], [0xe195,'materialicon_airplanemode_active'], [0xe194,'materialicon_airplanemode_inactive'], [0xe055,'materialicon_airplay'], [0xeb3c,'materialicon_airport_shuttle'], [0xe855,'materialicon_alarm'], [0xe856,'materialicon_alarm_add'], [0xe857,'materialicon_alarm_off'], [0xe858,'materialicon_alarm_on'], [0xe019,'materialicon_album'], [0xeb3d,'materialicon_all_inclusive'], [0xe90b,'materialicon_all_out'], [0xe859,'materialicon_android'], [0xe85a,'materialicon_announcement'], [0xe5c3,'materialicon_apps'], [0xe149,'materialicon_archive'], [0xe5c4,'materialicon_arrow_back'], [0xe5db,'materialicon_arrow_downward'], [0xe5c5,'materialicon_arrow_drop_down'], [0xe5c6,'materialicon_arrow_drop_down_circle'], [0xe5c7,'materialicon_arrow_drop_up'], [0xe5c8,'materialicon_arrow_forward'], [0xe5d8,'materialicon_arrow_upward'], [0xe060,'materialicon_art_track'], [0xe85b,'materialicon_aspect_ratio'], [0xe85c,'materialicon_assessment'], [0xe85d,'materialicon_assignment'], [0xe85e,'materialicon_assignment_ind'], [0xe85f,'materialicon_assignment_late'], [0xe860,'materialicon_assignment_return'], [0xe861,'materialicon_assignment_returned'], [0xe862,'materialicon_assignment_turned_in'], [0xe39f,'materialicon_assistant'], [0xe3a0,'materialicon_assistant_photo'], [0xe226,'materialicon_attach_file'], [0xe227,'materialicon_attach_money'], [0xe2bc,'materialicon_attachment'], [0xe3a1,'materialicon_audiotrack'], [0xe863,'materialicon_autorenew'], [0xe01b,'materialicon_av_timer'], [0xe14a,'materialicon_backspace'], [0xe864,'materialicon_backup'], [0xe19c,'materialicon_battery_alert'], [0xe1a3,'materialicon_battery_charging_full'], [0xe1a4,'materialicon_battery_full'], [0xe1a5,'materialicon_battery_std'], [0xe1a6,'materialicon_battery_unknown'], [0xeb3e,'materialicon_beach_access'], [0xe52d,'materialicon_beenhere'], [0xe14b,'materialicon_block'], [0xe1a7,'materialicon_bluetooth'], [0xe60f,'materialicon_bluetooth_audio'], [0xe1a8,'materialicon_bluetooth_connected'], [0xe1a9,'materialicon_bluetooth_disabled'], [0xe1aa,'materialicon_bluetooth_searching'], [0xe3a2,'materialicon_blur_circular'], [0xe3a3,'materialicon_blur_linear'], [0xe3a4,'materialicon_blur_off'], [0xe3a5,'materialicon_blur_on'], [0xe865,'materialicon_book'], [0xe866,'materialicon_bookmark'], [0xe867,'materialicon_bookmark_border'], [0xe228,'materialicon_border_all'], [0xe229,'materialicon_border_bottom'], [0xe22a,'materialicon_border_clear'], [0xe22b,'materialicon_border_color'], [0xe22c,'materialicon_border_horizontal'], [0xe22d,'materialicon_border_inner'], [0xe22e,'materialicon_border_left'], [0xe22f,'materialicon_border_outer'], [0xe230,'materialicon_border_right'], [0xe231,'materialicon_border_style'], [0xe232,'materialicon_border_top'], [0xe233,'materialicon_border_vertical'], [0xe06b,'materialicon_branding_watermark'], [0xe3a6,'materialicon_brightness_1'], [0xe3a7,'materialicon_brightness_2'], [0xe3a8,'materialicon_brightness_3'], [0xe3a9,'materialicon_brightness_4'], [0xe3aa,'materialicon_brightness_5'], [0xe3ab,'materialicon_brightness_6'], [0xe3ac,'materialicon_brightness_7'], [0xe1ab,'materialicon_brightness_auto'], [0xe1ac,'materialicon_brightness_high'], [0xe1ad,'materialicon_brightness_low'], [0xe1ae,'materialicon_brightness_medium'], [0xe3ad,'materialicon_broken_image'], [0xe3ae,'materialicon_brush'], [0xe6dd,'materialicon_bubble_chart'], [0xe868,'materialicon_bug_report'], [0xe869,'materialicon_build'], [0xe43c,'materialicon_burst_mode'], [0xe0af,'materialicon_business'], [0xeb3f,'materialicon_business_center'], [0xe86a,'materialicon_cached'], [0xe7e9,'materialicon_cake'], [0xe0b0,'materialicon_call'], [0xe0b1,'materialicon_call_end'], [0xe0b2,'materialicon_call_made'], [0xe0b3,'materialicon_call_merge'], [0xe0b4,'materialicon_call_missed'], [0xe0e4,'materialicon_call_missed_outgoing'], [0xe0b5,'materialicon_call_received'], [0xe0b6,'materialicon_call_split'], [0xe06c,'materialicon_call_to_action'], [0xe3af,'materialicon_camera'], [0xe3b0,'materialicon_camera_alt'], [0xe8fc,'materialicon_camera_enhance'], [0xe3b1,'materialicon_camera_front'], [0xe3b2,'materialicon_camera_rear'], [0xe3b3,'materialicon_camera_roll'], [0xe5c9,'materialicon_cancel'], [0xe8f6,'materialicon_card_giftcard'], [0xe8f7,'materialicon_card_membership'], [0xe8f8,'materialicon_card_travel'], [0xeb40,'materialicon_casino'], [0xe307,'materialicon_cast'], [0xe308,'materialicon_cast_connected'], [0xe3b4,'materialicon_center_focus_strong'], [0xe3b5,'materialicon_center_focus_weak'], [0xe86b,'materialicon_change_history'], [0xe0b7,'materialicon_chat'], [0xe0ca,'materialicon_chat_bubble'], [0xe0cb,'materialicon_chat_bubble_outline'], [0xe5ca,'materialicon_check'], [0xe834,'materialicon_check_box'], [0xe835,'materialicon_check_box_outline_blank'], [0xe86c,'materialicon_check_circle'], [0xe5cb,'materialicon_chevron_left'], [0xe5cc,'materialicon_chevron_right'], [0xeb41,'materialicon_child_care'], [0xeb42,'materialicon_child_friendly'], [0xe86d,'materialicon_chrome_reader_mode'], [0xe86e,'materialicon_class'], [0xe14c,'materialicon_clear'], [0xe0b8,'materialicon_clear_all'], [0xe5cd,'materialicon_close'], [0xe01c,'materialicon_closed_caption'], [0xe2bd,'materialicon_cloud'], [0xe2be,'materialicon_cloud_circle'], [0xe2bf,'materialicon_cloud_done'], [0xe2c0,'materialicon_cloud_download'], [0xe2c1,'materialicon_cloud_off'], [0xe2c2,'materialicon_cloud_queue'], [0xe2c3,'materialicon_cloud_upload'], [0xe86f,'materialicon_code'], [0xe3b6,'materialicon_collections'], [0xe431,'materialicon_collections_bookmark'], [0xe3b7,'materialicon_color_lens'], [0xe3b8,'materialicon_colorize'], [0xe0b9,'materialicon_comment'], [0xe3b9,'materialicon_compare'], [0xe915,'materialicon_compare_arrows'], [0xe30a,'materialicon_computer'], [0xe638,'materialicon_confirmation_number'], [0xe0d0,'materialicon_contact_mail'], [0xe0cf,'materialicon_contact_phone'], [0xe0ba,'materialicon_contacts'], [0xe14d,'materialicon_content_copy'], [0xe14e,'materialicon_content_cut'], [0xe14f,'materialicon_content_paste'], [0xe3ba,'materialicon_control_point'], [0xe3bb,'materialicon_control_point_duplicate'], [0xe90c,'materialicon_copyright'], [0xe150,'materialicon_create'], [0xe2cc,'materialicon_create_new_folder'], [0xe870,'materialicon_credit_card'], [0xe3be,'materialicon_crop'], [0xe3bc,'materialicon_crop_16_9'], [0xe3bd,'materialicon_crop_3_2'], [0xe3bf,'materialicon_crop_5_4'], [0xe3c0,'materialicon_crop_7_5'], [0xe3c1,'materialicon_crop_din'], [0xe3c2,'materialicon_crop_free'], [0xe3c3,'materialicon_crop_landscape'], [0xe3c4,'materialicon_crop_original'], [0xe3c5,'materialicon_crop_portrait'], [0xe437,'materialicon_crop_rotate'], [0xe3c6,'materialicon_crop_square'], [0xe871,'materialicon_dashboard'], [0xe1af,'materialicon_data_usage'], [0xe916,'materialicon_date_range'], [0xe3c7,'materialicon_dehaze'], [0xe872,'materialicon_delete'], [0xe92b,'materialicon_delete_forever'], [0xe16c,'materialicon_delete_sweep'], [0xe873,'materialicon_description'], [0xe30b,'materialicon_desktop_mac'], [0xe30c,'materialicon_desktop_windows'], [0xe3c8,'materialicon_details'], [0xe30d,'materialicon_developer_board'], [0xe1b0,'materialicon_developer_mode'], [0xe335,'materialicon_device_hub'], [0xe1b1,'materialicon_devices'], [0xe337,'materialicon_devices_other'], [0xe0bb,'materialicon_dialer_sip'], [0xe0bc,'materialicon_dialpad'], [0xe52e,'materialicon_directions'], [0xe52f,'materialicon_directions_bike'], [0xe532,'materialicon_directions_boat'], [0xe530,'materialicon_directions_bus'], [0xe531,'materialicon_directions_car'], [0xe534,'materialicon_directions_railway'], [0xe566,'materialicon_directions_run'], [0xe533,'materialicon_directions_subway'], [0xe535,'materialicon_directions_transit'], [0xe536,'materialicon_directions_walk'], [0xe610,'materialicon_disc_full'], [0xe875,'materialicon_dns'], [0xe612,'materialicon_do_not_disturb'], [0xe611,'materialicon_do_not_disturb_alt'], [0xe643,'materialicon_do_not_disturb_off'], [0xe644,'materialicon_do_not_disturb_on'], [0xe30e,'materialicon_dock'], [0xe7ee,'materialicon_domain'], [0xe876,'materialicon_done'], [0xe877,'materialicon_done_all'], [0xe917,'materialicon_donut_large'], [0xe918,'materialicon_donut_small'], [0xe151,'materialicon_drafts'], [0xe25d,'materialicon_drag_handle'], [0xe613,'materialicon_drive_eta'], [0xe1b2,'materialicon_dvr'], [0xe3c9,'materialicon_edit'], [0xe568,'materialicon_edit_location'], [0xe8fb,'materialicon_eject'], [0xe0be,'materialicon_email'], [0xe63f,'materialicon_enhanced_encryption'], [0xe01d,'materialicon_equalizer'], [0xe000,'materialicon_error'], [0xe001,'materialicon_error_outline'], [0xe926,'materialicon_euro_symbol'], [0xe56d,'materialicon_ev_station'], [0xe878,'materialicon_event'], [0xe614,'materialicon_event_available'], [0xe615,'materialicon_event_busy'], [0xe616,'materialicon_event_note'], [0xe903,'materialicon_event_seat'], [0xe879,'materialicon_exit_to_app'], [0xe5ce,'materialicon_expand_less'], [0xe5cf,'materialicon_expand_more'], [0xe01e,'materialicon_explicit'], [0xe87a,'materialicon_explore'], [0xe3ca,'materialicon_exposure'], [0xe3cb,'materialicon_exposure_neg_1'], [0xe3cc,'materialicon_exposure_neg_2'], [0xe3cd,'materialicon_exposure_plus_1'], [0xe3ce,'materialicon_exposure_plus_2'], [0xe3cf,'materialicon_exposure_zero'], [0xe87b,'materialicon_extension'], [0xe87c,'materialicon_face'], [0xe01f,'materialicon_fast_forward'], [0xe020,'materialicon_fast_rewind'], [0xe87d,'materialicon_favorite'], [0xe87e,'materialicon_favorite_border'], [0xe06d,'materialicon_featured_play_list'], [0xe06e,'materialicon_featured_video'], [0xe87f,'materialicon_feedback'], [0xe05d,'materialicon_fiber_dvr'], [0xe061,'materialicon_fiber_manual_record'], [0xe05e,'materialicon_fiber_new'], [0xe06a,'materialicon_fiber_pin'], [0xe062,'materialicon_fiber_smart_record'], [0xe2c4,'materialicon_file_download'], [0xe2c6,'materialicon_file_upload'], [0xe3d3,'materialicon_filter'], [0xe3d0,'materialicon_filter_1'], [0xe3d1,'materialicon_filter_2'], [0xe3d2,'materialicon_filter_3'], [0xe3d4,'materialicon_filter_4'], [0xe3d5,'materialicon_filter_5'], [0xe3d6,'materialicon_filter_6'], [0xe3d7,'materialicon_filter_7'], [0xe3d8,'materialicon_filter_8'], [0xe3d9,'materialicon_filter_9'], [0xe3da,'materialicon_filter_9_plus'], [0xe3db,'materialicon_filter_b_and_w'], [0xe3dc,'materialicon_filter_center_focus'], [0xe3dd,'materialicon_filter_drama'], [0xe3de,'materialicon_filter_frames'], [0xe3df,'materialicon_filter_hdr'], [0xe152,'materialicon_filter_list'], [0xe3e0,'materialicon_filter_none'], [0xe3e2,'materialicon_filter_tilt_shift'], [0xe3e3,'materialicon_filter_vintage'], [0xe880,'materialicon_find_in_page'], [0xe881,'materialicon_find_replace'], [0xe90d,'materialicon_fingerprint'], [0xe5dc,'materialicon_first_page'], [0xeb43,'materialicon_fitness_center'], [0xe153,'materialicon_flag'], [0xe3e4,'materialicon_flare'], [0xe3e5,'materialicon_flash_auto'], [0xe3e6,'materialicon_flash_off'], [0xe3e7,'materialicon_flash_on'], [0xe539,'materialicon_flight'], [0xe904,'materialicon_flight_land'], [0xe905,'materialicon_flight_takeoff'], [0xe3e8,'materialicon_flip'], [0xe882,'materialicon_flip_to_back'], [0xe883,'materialicon_flip_to_front'], [0xe2c7,'materialicon_folder'], [0xe2c8,'materialicon_folder_open'], [0xe2c9,'materialicon_folder_shared'], [0xe617,'materialicon_folder_special'], [0xe167,'materialicon_font_download'], [0xe234,'materialicon_format_align_center'], [0xe235,'materialicon_format_align_justify'], [0xe236,'materialicon_format_align_left'], [0xe237,'materialicon_format_align_right'], [0xe238,'materialicon_format_bold'], [0xe239,'materialicon_format_clear'], [0xe23a,'materialicon_format_color_fill'], [0xe23b,'materialicon_format_color_reset'], [0xe23c,'materialicon_format_color_text'], [0xe23d,'materialicon_format_indent_decrease'], [0xe23e,'materialicon_format_indent_increase'], [0xe23f,'materialicon_format_italic'], [0xe240,'materialicon_format_line_spacing'], [0xe241,'materialicon_format_list_bulleted'], [0xe242,'materialicon_format_list_numbered'], [0xe243,'materialicon_format_paint'], [0xe244,'materialicon_format_quote'], [0xe25e,'materialicon_format_shapes'], [0xe245,'materialicon_format_size'], [0xe246,'materialicon_format_strikethrough'], [0xe247,'materialicon_format_textdirection_l_to_r'], [0xe248,'materialicon_format_textdirection_r_to_l'], [0xe249,'materialicon_format_underlined'], [0xe0bf,'materialicon_forum'], [0xe154,'materialicon_forward'], [0xe056,'materialicon_forward_10'], [0xe057,'materialicon_forward_30'], [0xe058,'materialicon_forward_5'], [0xeb44,'materialicon_free_breakfast'], [0xe5d0,'materialicon_fullscreen'], [0xe5d1,'materialicon_fullscreen_exit'], [0xe24a,'materialicon_functions'], [0xe927,'materialicon_g_translate'], [0xe30f,'materialicon_gamepad'], [0xe021,'materialicon_games'], [0xe90e,'materialicon_gavel'], [0xe155,'materialicon_gesture'], [0xe884,'materialicon_get_app'], [0xe908,'materialicon_gif'], [0xeb45,'materialicon_golf_course'], [0xe1b3,'materialicon_gps_fixed'], [0xe1b4,'materialicon_gps_not_fixed'], [0xe1b5,'materialicon_gps_off'], [0xe885,'materialicon_grade'], [0xe3e9,'materialicon_gradient'], [0xe3ea,'materialicon_grain'], [0xe1b8,'materialicon_graphic_eq'], [0xe3eb,'materialicon_grid_off'], [0xe3ec,'materialicon_grid_on'], [0xe7ef,'materialicon_group'], [0xe7f0,'materialicon_group_add'], [0xe886,'materialicon_group_work'], [0xe052,'materialicon_hd'], [0xe3ed,'materialicon_hdr_off'], [0xe3ee,'materialicon_hdr_on'], [0xe3f1,'materialicon_hdr_strong'], [0xe3f2,'materialicon_hdr_weak'], [0xe310,'materialicon_headset'], [0xe311,'materialicon_headset_mic'], [0xe3f3,'materialicon_healing'], [0xe023,'materialicon_hearing'], [0xe887,'materialicon_help'], [0xe8fd,'materialicon_help_outline'], [0xe024,'materialicon_high_quality'], [0xe25f,'materialicon_highlight'], [0xe888,'materialicon_highlight_off'], [0xe889,'materialicon_history'], [0xe88a,'materialicon_home'], [0xeb46,'materialicon_hot_tub'], [0xe53a,'materialicon_hotel'], [0xe88b,'materialicon_hourglass_empty'], [0xe88c,'materialicon_hourglass_full'], [0xe902,'materialicon_http'], [0xe88d,'materialicon_https'], [0xe3f4,'materialicon_image'], [0xe3f5,'materialicon_image_aspect_ratio'], [0xe0e0,'materialicon_import_contacts'], [0xe0c3,'materialicon_import_export'], [0xe912,'materialicon_important_devices'], [0xe156,'materialicon_inbox'], [0xe909,'materialicon_indeterminate_check_box'], [0xe88e,'materialicon_info'], [0xe88f,'materialicon_info_outline'], [0xe890,'materialicon_input'], [0xe24b,'materialicon_insert_chart'], [0xe24c,'materialicon_insert_comment'], [0xe24d,'materialicon_insert_drive_file'], [0xe24e,'materialicon_insert_emoticon'], [0xe24f,'materialicon_insert_invitation'], [0xe250,'materialicon_insert_link'], [0xe251,'materialicon_insert_photo'], [0xe891,'materialicon_invert_colors'], [0xe0c4,'materialicon_invert_colors_off'], [0xe3f6,'materialicon_iso'], [0xe312,'materialicon_keyboard'], [0xe313,'materialicon_keyboard_arrow_down'], [0xe314,'materialicon_keyboard_arrow_left'], [0xe315,'materialicon_keyboard_arrow_right'], [0xe316,'materialicon_keyboard_arrow_up'], [0xe317,'materialicon_keyboard_backspace'], [0xe318,'materialicon_keyboard_capslock'], [0xe31a,'materialicon_keyboard_hide'], [0xe31b,'materialicon_keyboard_return'], [0xe31c,'materialicon_keyboard_tab'], [0xe31d,'materialicon_keyboard_voice'], [0xeb47,'materialicon_kitchen'], [0xe892,'materialicon_label'], [0xe893,'materialicon_label_outline'], [0xe3f7,'materialicon_landscape'], [0xe894,'materialicon_language'], [0xe31e,'materialicon_laptop'], [0xe31f,'materialicon_laptop_chromebook'], [0xe320,'materialicon_laptop_mac'], [0xe321,'materialicon_laptop_windows'], [0xe5dd,'materialicon_last_page'], [0xe895,'materialicon_launch'], [0xe53b,'materialicon_layers'], [0xe53c,'materialicon_layers_clear'], [0xe3f8,'materialicon_leak_add'], [0xe3f9,'materialicon_leak_remove'], [0xe3fa,'materialicon_lens'], [0xe02e,'materialicon_library_add'], [0xe02f,'materialicon_library_books'], [0xe030,'materialicon_library_music'], [0xe90f,'materialicon_lightbulb_outline'], [0xe919,'materialicon_line_style'], [0xe91a,'materialicon_line_weight'], [0xe260,'materialicon_linear_scale'], [0xe157,'materialicon_link'], [0xe438,'materialicon_linked_camera'], [0xe896,'materialicon_list'], [0xe0c6,'materialicon_live_help'], [0xe639,'materialicon_live_tv'], [0xe53f,'materialicon_local_activity'], [0xe53d,'materialicon_local_airport'], [0xe53e,'materialicon_local_atm'], [0xe540,'materialicon_local_bar'], [0xe541,'materialicon_local_cafe'], [0xe542,'materialicon_local_car_wash'], [0xe543,'materialicon_local_convenience_store'], [0xe556,'materialicon_local_dining'], [0xe544,'materialicon_local_drink'], [0xe545,'materialicon_local_florist'], [0xe546,'materialicon_local_gas_station'], [0xe547,'materialicon_local_grocery_store'], [0xe548,'materialicon_local_hospital'], [0xe549,'materialicon_local_hotel'], [0xe54a,'materialicon_local_laundry_service'], [0xe54b,'materialicon_local_library'], [0xe54c,'materialicon_local_mall'], [0xe54d,'materialicon_local_movies'], [0xe54e,'materialicon_local_offer'], [0xe54f,'materialicon_local_parking'], [0xe550,'materialicon_local_pharmacy'], [0xe551,'materialicon_local_phone'], [0xe552,'materialicon_local_pizza'], [0xe553,'materialicon_local_play'], [0xe554,'materialicon_local_post_office'], [0xe555,'materialicon_local_printshop'], [0xe557,'materialicon_local_see'], [0xe558,'materialicon_local_shipping'], [0xe559,'materialicon_local_taxi'], [0xe7f1,'materialicon_location_city'], [0xe1b6,'materialicon_location_disabled'], [0xe0c7,'materialicon_location_off'], [0xe0c8,'materialicon_location_on'], [0xe1b7,'materialicon_location_searching'], [0xe897,'materialicon_lock'], [0xe898,'materialicon_lock_open'], [0xe899,'materialicon_lock_outline'], [0xe3fc,'materialicon_looks'], [0xe3fb,'materialicon_looks_3'], [0xe3fd,'materialicon_looks_4'], [0xe3fe,'materialicon_looks_5'], [0xe3ff,'materialicon_looks_6'], [0xe400,'materialicon_looks_one'], [0xe401,'materialicon_looks_two'], [0xe028,'materialicon_loop'], [0xe402,'materialicon_loupe'], [0xe16d,'materialicon_low_priority'], [0xe89a,'materialicon_loyalty'], [0xe158,'materialicon_mail'], [0xe0e1,'materialicon_mail_outline'], [0xe55b,'materialicon_map'], [0xe159,'materialicon_markunread'], [0xe89b,'materialicon_markunread_mailbox'], [0xe322,'materialicon_memory'], [0xe5d2,'materialicon_menu'], [0xe252,'materialicon_merge_type'], [0xe0c9,'materialicon_message'], [0xe029,'materialicon_mic'], [0xe02a,'materialicon_mic_none'], [0xe02b,'materialicon_mic_off'], [0xe618,'materialicon_mms'], [0xe253,'materialicon_mode_comment'], [0xe254,'materialicon_mode_edit'], [0xe263,'materialicon_monetization_on'], [0xe25c,'materialicon_money_off'], [0xe403,'materialicon_monochrome_photos'], [0xe7f2,'materialicon_mood'], [0xe7f3,'materialicon_mood_bad'], [0xe619,'materialicon_more'], [0xe5d3,'materialicon_more_horiz'], [0xe5d4,'materialicon_more_vert'], [0xe91b,'materialicon_motorcycle'], [0xe323,'materialicon_mouse'], [0xe168,'materialicon_move_to_inbox'], [0xe02c,'materialicon_movie'], [0xe404,'materialicon_movie_creation'], [0xe43a,'materialicon_movie_filter'], [0xe6df,'materialicon_multiline_chart'], [0xe405,'materialicon_music_note'], [0xe063,'materialicon_music_video'], [0xe55c,'materialicon_my_location'], [0xe406,'materialicon_nature'], [0xe407,'materialicon_nature_people'], [0xe408,'materialicon_navigate_before'], [0xe409,'materialicon_navigate_next'], [0xe55d,'materialicon_navigation'], [0xe569,'materialicon_near_me'], [0xe1b9,'materialicon_network_cell'], [0xe640,'materialicon_network_check'], [0xe61a,'materialicon_network_locked'], [0xe1ba,'materialicon_network_wifi'], [0xe031,'materialicon_new_releases'], [0xe16a,'materialicon_next_week'], [0xe1bb,'materialicon_nfc'], [0xe641,'materialicon_no_encryption'], [0xe0cc,'materialicon_no_sim'], [0xe033,'materialicon_not_interested'], [0xe06f,'materialicon_note'], [0xe89c,'materialicon_note_add'], [0xe7f4,'materialicon_notifications'], [0xe7f7,'materialicon_notifications_active'], [0xe7f5,'materialicon_notifications_none'], [0xe7f6,'materialicon_notifications_off'], [0xe7f8,'materialicon_notifications_paused'], [0xe90a,'materialicon_offline_pin'], [0xe63a,'materialicon_ondemand_video'], [0xe91c,'materialicon_opacity'], [0xe89d,'materialicon_open_in_browser'], [0xe89e,'materialicon_open_in_new'], [0xe89f,'materialicon_open_with'], [0xe7f9,'materialicon_pages'], [0xe8a0,'materialicon_pageview'], [0xe40a,'materialicon_palette'], [0xe925,'materialicon_pan_tool'], [0xe40b,'materialicon_panorama'], [0xe40c,'materialicon_panorama_fish_eye'], [0xe40d,'materialicon_panorama_horizontal'], [0xe40e,'materialicon_panorama_vertical'], [0xe40f,'materialicon_panorama_wide_angle'], [0xe7fa,'materialicon_party_mode'], [0xe034,'materialicon_pause'], [0xe035,'materialicon_pause_circle_filled'], [0xe036,'materialicon_pause_circle_outline'], [0xe8a1,'materialicon_payment'], [0xe7fb,'materialicon_people'], [0xe7fc,'materialicon_people_outline'], [0xe8a2,'materialicon_perm_camera_mic'], [0xe8a3,'materialicon_perm_contact_calendar'], [0xe8a4,'materialicon_perm_data_setting'], [0xe8a5,'materialicon_perm_device_information'], [0xe8a6,'materialicon_perm_identity'], [0xe8a7,'materialicon_perm_media'], [0xe8a8,'materialicon_perm_phone_msg'], [0xe8a9,'materialicon_perm_scan_wifi'], [0xe7fd,'materialicon_person'], [0xe7fe,'materialicon_person_add'], [0xe7ff,'materialicon_person_outline'], [0xe55a,'materialicon_person_pin'], [0xe56a,'materialicon_person_pin_circle'], [0xe63b,'materialicon_personal_video'], [0xe91d,'materialicon_pets'], [0xe0cd,'materialicon_phone'], [0xe324,'materialicon_phone_android'], [0xe61b,'materialicon_phone_bluetooth_speaker'], [0xe61c,'materialicon_phone_forwarded'], [0xe61d,'materialicon_phone_in_talk'], [0xe325,'materialicon_phone_iphone'], [0xe61e,'materialicon_phone_locked'], [0xe61f,'materialicon_phone_missed'], [0xe620,'materialicon_phone_paused'], [0xe326,'materialicon_phonelink'], [0xe0db,'materialicon_phonelink_erase'], [0xe0dc,'materialicon_phonelink_lock'], [0xe327,'materialicon_phonelink_off'], [0xe0dd,'materialicon_phonelink_ring'], [0xe0de,'materialicon_phonelink_setup'], [0xe410,'materialicon_photo'], [0xe411,'materialicon_photo_album'], [0xe412,'materialicon_photo_camera'], [0xe43b,'materialicon_photo_filter'], [0xe413,'materialicon_photo_library'], [0xe432,'materialicon_photo_size_select_actual'], [0xe433,'materialicon_photo_size_select_large'], [0xe434,'materialicon_photo_size_select_small'], [0xe415,'materialicon_picture_as_pdf'], [0xe8aa,'materialicon_picture_in_picture'], [0xe911,'materialicon_picture_in_picture_alt'], [0xe6c4,'materialicon_pie_chart'], [0xe6c5,'materialicon_pie_chart_outlined'], [0xe55e,'materialicon_pin_drop'], [0xe55f,'materialicon_place'], [0xe037,'materialicon_play_arrow'], [0xe038,'materialicon_play_circle_filled'], [0xe039,'materialicon_play_circle_outline'], [0xe906,'materialicon_play_for_work'], [0xe03b,'materialicon_playlist_add'], [0xe065,'materialicon_playlist_add_check'], [0xe05f,'materialicon_playlist_play'], [0xe800,'materialicon_plus_one'], [0xe801,'materialicon_poll'], [0xe8ab,'materialicon_polymer'], [0xeb48,'materialicon_pool'], [0xe0ce,'materialicon_portable_wifi_off'], [0xe416,'materialicon_portrait'], [0xe63c,'materialicon_power'], [0xe336,'materialicon_power_input'], [0xe8ac,'materialicon_power_settings_new'], [0xe91e,'materialicon_pregnant_woman'], [0xe0df,'materialicon_present_to_all'], [0xe8ad,'materialicon_print'], [0xe645,'materialicon_priority_high'], [0xe80b,'materialicon_public'], [0xe255,'materialicon_publish'], [0xe8ae,'materialicon_query_builder'], [0xe8af,'materialicon_question_answer'], [0xe03c,'materialicon_queue'], [0xe03d,'materialicon_queue_music'], [0xe066,'materialicon_queue_play_next'], [0xe03e,'materialicon_radio'], [0xe837,'materialicon_radio_button_checked'], [0xe836,'materialicon_radio_button_unchecked'], [0xe560,'materialicon_rate_review'], [0xe8b0,'materialicon_receipt'], [0xe03f,'materialicon_recent_actors'], [0xe91f,'materialicon_record_voice_over'], [0xe8b1,'materialicon_redeem'], [0xe15a,'materialicon_redo'], [0xe5d5,'materialicon_refresh'], [0xe15b,'materialicon_remove'], [0xe15c,'materialicon_remove_circle'], [0xe15d,'materialicon_remove_circle_outline'], [0xe067,'materialicon_remove_from_queue'], [0xe417,'materialicon_remove_red_eye'], [0xe928,'materialicon_remove_shopping_cart'], [0xe8fe,'materialicon_reorder'], [0xe040,'materialicon_repeat'], [0xe041,'materialicon_repeat_one'], [0xe042,'materialicon_replay'], [0xe059,'materialicon_replay_10'], [0xe05a,'materialicon_replay_30'], [0xe05b,'materialicon_replay_5'], [0xe15e,'materialicon_reply'], [0xe15f,'materialicon_reply_all'], [0xe160,'materialicon_report'], [0xe8b2,'materialicon_report_problem'], [0xe56c,'materialicon_restaurant'], [0xe561,'materialicon_restaurant_menu'], [0xe8b3,'materialicon_restore'], [0xe929,'materi