19 files modified
3 files added
| | |
| | | exit; |
| | | } |
| | | |
| | | define('JVB_LOADED', is_plugin_active('jvb/jvb.php')); |
| | | |
| | | use JVBase\managers\Cache; |
| | | use JVBase\managers\CacheManager; |
| | | use JVBase\meta\Meta; |
| | | use JVBase\registrar\Registrar; |
| | | |
| | | add_filter('jvb_base', function () { |
| | | return 'ajv_'; |
| | |
| | | const AJV_DIR = WP_PLUGIN_DIR . '/ajakevan'; |
| | | define('AJV_URL', plugin_dir_url(__FILE__)); |
| | | |
| | | add_filter('jvbChildDir', function() { return AJV_DIR; }); |
| | | add_filter('jvbChildUrl', function() { return AJV_URL; }); |
| | | |
| | | |
| | | require(AJV_DIR . '/blocks/_setup.php'); |
| | | require(AJV_DIR . '/content/_setup.php'); |
| | | //require(AJV_DIR . '/dashboard/setup.php'); |
| | |
| | | 'icon' => 'user-square', |
| | | ] |
| | | ]; |
| | | foreach (JVB_CONTENT as $slug => $config) { |
| | | if (array_key_exists('public', $config) && !$config['public']) { |
| | | |
| | | foreach (Registrar::getRegistered('post') as $slug) { |
| | | |
| | | $registrar = Registrar::getInstance($slug); |
| | | if (!$registrar || !$registrar->registrar->public) { |
| | | continue; |
| | | } |
| | | $items[] = [ |
| | | 'text' => $config['singular'], |
| | | 'text' => $registrar->getSingular(), |
| | | 'url' => get_post_type_archive_link(BASE.$slug), |
| | | 'icon' => $config['icon'], |
| | | 'icon' => $registrar->getIcon('icon'), |
| | | 'class' => $slug, |
| | | ]; |
| | | } |
| | |
| | | return '<p>I live and work in amiskwacîwâskahikan ᐊᒥᐢᑲᐧᒋᐋᐧᐢᑲᐦᐃᑲᐣ</p><p><a href="https://www.treatysix.org/#comp-lkljqlw1" title="Learn More">Treaty 6 territory</a></p><p>Edmonton, Alberta, Canada</p>'; |
| | | } |
| | | |
| | | add_filter('jvbRegisterCustomIcons', 'jv_custom_icons'); |
| | | function jv_custom_icons(array $icons):array |
| | | add_filter('jvbRegisterCustomIcons', 'ajv_custom_icons'); |
| | | function ajv_custom_icons(array $icons):array |
| | | { |
| | | $icons['logo'] = AJV_DIR . '/assets/icons/logo-concentric.svg'; |
| | | $icons['logo-jakevan'] = AJV_DIR . '/assets/icons/logo-concentric-jakevan.svg'; |
| | |
| | | 'strategy' => 'Edmonton-focused brand', |
| | | default => 'Edmonton made' |
| | | }; |
| | | $title = ($type === 'directory') ? 'Directory' : JVB_CONTENT[$type]['singular']; |
| | | $title = ($type === 'directory') ? 'Directory' : Registrar::getInstance($type)->getSingular(); |
| | | return '<small>'.$extra.'</small>'.$title.'.'; |
| | | } |
| | | |
| | | add_filter('jvbSummaryHeaderExtra', 'altr_summary_extra', 10, 2); |
| | | function altr_summary_extra(string $return, string $type):string |
| | | add_filter('jvbSummaryHeaderExtra', 'ajv_summary_extra', 10, 2); |
| | | function ajv_summary_extra(string $return, string $type):string |
| | | { |
| | | return ($type === 'directory') ? '' : '<p>Or see <a href="'.JVB()->directories()->getDirectoryList()[$type]['url'].'">alphabetical list</a>.</p>'; |
| | | } |
| | | |
| | | function ajv_render_core_post_content(array $block, string $content = ''):string |
| | | { |
| | | if(!is_singular(array_map(function($item) { return BASE.$item; }, array_keys(JVB_CONTENT)))) { |
| | | if(!is_singular(array_map(function($item) { return BASE.$item; }, Registrar::getRegistered('post')))) { |
| | | return JVB()->blocks()->render_core_post_content($block, $content); |
| | | } |
| | | $postType = jvbNoBase(get_post_type()); |
| | |
| | | if (function_exists($function)) { |
| | | $base = call_user_func($function, $block, $content); |
| | | } |
| | | return $base.JVB()->blocks()->render_core_post_content($block, $content); |
| | | return ($base === '') ? JVB()->blocks()->render_core_post_content($block, $content) : $base; |
| | | } |
| | | |
| | | add_filter('the_seo_framework_meta_render_data', 'ajvb_no_next_archive', 10, 1); |
| | |
| | | add_filter('jvbSummaryDetailsOutput', 'ajvb_summary_info',10, 1); |
| | | function ajvb_summary_info(string $return):string |
| | | { |
| | | if (!is_singular(array_map(function($item) { return BASE.$item;}, array_keys(JVB_CONTENT)))) { |
| | | if (!is_singular(array_map(function($item) { return BASE.$item;}, Registrar::getRegistered('post')))) { |
| | | return $return; |
| | | } |
| | | |
| | |
| | | |
| | | function ajvb_term_list():string |
| | | { |
| | | if (!JVB_TAXONOMY){ |
| | | if (empty(Registrar::getRegistered('term'))){ |
| | | return ''; |
| | | } |
| | | $ID = get_the_ID(); |
| | | $type = jvbNoBase(get_post_type($ID)); |
| | | $taxonomies = array_filter(JVB_TAXONOMY, function($config) use ($type){ |
| | | return in_array($type, $config['for_content']); |
| | | }); |
| | | |
| | | $registrar = Registrar::getInstance($type); |
| | | $taxonomies = $registrar->registrar->taxonomies; |
| | | |
| | | $lists = []; |
| | | foreach ($taxonomies as $taxonomy => $config) { |
| | | foreach ($taxonomies as $taxonomy) { |
| | | $baseless = jvbNoBase($taxonomy); |
| | | $taxRegistrar = Registrar::getInstance($baseless); |
| | | $terms = wp_get_object_terms($ID, $taxonomy); |
| | | if ($terms && !is_wp_error($terms)) { |
| | | $list = sprintf( |
| | | '<li>%s<span>%s</span><ul class="term-list">', |
| | | jvbIcon($config['icon']), |
| | | $config['plural'] |
| | | jvbIcon($taxRegistrar->getIcon()), |
| | | $taxRegistrar->getPlural() |
| | | ); |
| | | foreach ($terms as $term) { |
| | | $list .= sprintf( |
| | |
| | | function ajvb_format_needs(array $needs):string |
| | | { |
| | | $theNeeds = ''; |
| | | jvbDump($needs); |
| | | foreach ($needs as $need) { |
| | | $theNeeds .= sprintf( |
| | | '<li><h3>%s</h3>%s<div class="info">%s</div></li>', |
| | | $need['need'], |
| | | $need['image'] !== '' ? jvbFormatImage($need['image']) : '', |
| | | $need['image'] !== '' ? jvbFormatImage((int)$need['image']) : '', |
| | | $need['fulfilled'] |
| | | ); |
| | | } |
| | |
| | | '<section id="wants"><h2>What we wanted:</h2><ul class="needs-wants">%s</ul></section>', |
| | | $theWants |
| | | ); |
| | | } |
| | | |
| | | function ajv_is_singular(null|array|string $types = null):bool |
| | | { |
| | | if ($types) { |
| | | if (is_string($types)) { |
| | | $types = [$types]; |
| | | } |
| | | $types = array_map(function($type) { return jvbCheckBase($type); }, $types); |
| | | |
| | | }else { |
| | | $types = Cache::for('ajakevan')->remember( |
| | | 'types', |
| | | function() { |
| | | return array_map(function($type) { return jvbCheckBase($type);}, Registrar::getRegistered('post')); |
| | | } |
| | | ); |
| | | } |
| | | return is_singular($types); |
| | | } |
| New file |
| | |
| | | .icon-squares-four{--icon:url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTYgMjU2IiBmaWxsPSJjdXJyZW50Q29sb3IiPjxwYXRoIGQ9Ik0xMDQsNDJINTZBMTQsMTQsMCwwLDAsNDIsNTZ2NDhhMTQsMTQsMCwwLDAsMTQsMTRoNDhhMTQsMTQsMCwwLDAsMTQtMTRWNTZBMTQsMTQsMCwwLDAsMTA0LDQyWm0yLDYyYTIsMiwwLDAsMS0yLDJINTZhMiwyLDAsMCwxLTItMlY1NmEyLDIsMCwwLDEsMi0yaDQ4YTIsMiwwLDAsMSwyLDJabTk0LTYySDE1MmExNCwxNCwwLDAsMC0xNCwxNHY0OGExNCwxNCwwLDAsMCwxNCwxNGg0OGExNCwxNCwwLDAsMCwxNC0xNFY1NkExNCwxNCwwLDAsMCwyMDAsNDJabTIsNjJhMiwyLDAsMCwxLTIsMkgxNTJhMiwyLDAsMCwxLTItMlY1NmEyLDIsMCwwLDEsMi0yaDQ4YTIsMiwwLDAsMSwyLDJabS05OCwzNEg1NmExNCwxNCwwLDAsMC0xNCwxNHY0OGExNCwxNCwwLDAsMCwxNCwxNGg0OGExNCwxNCwwLDAsMCwxNC0xNFYxNTJBMTQsMTQsMCwwLDAsMTA0LDEzOFptMiw2MmEyLDIsMCwwLDEtMiwySDU2YTIsMiwwLDAsMS0yLTJWMTUyYTIsMiwwLDAsMSwyLTJoNDhhMiwyLDAsMCwxLDIsMlptOTQtNjJIMTUyYTE0LDE0LDAsMCwwLTE0LDE0djQ4YTE0LDE0LDAsMCwwLDE0LDE0aDQ4YTE0LDE0LDAsMCwwLDE0LTE0VjE1MkExNCwxNCwwLDAsMCwyMDAsMTM4Wm0yLDYyYTIsMiwwLDAsMS0yLDJIMTUyYTIsMiwwLDAsMS0yLTJWMTUyYTIsMiwwLDAsMSwyLTJoNDhhMiwyLDAsMCwxLDIsMloiLz48L3N2Zz4=');}.icon-rows{--icon:url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTYgMjU2IiBmaWxsPSJjdXJyZW50Q29sb3IiPjxwYXRoIGQ9Ik0yMDgsMTM4SDQ4YTE0LDE0LDAsMCwwLTE0LDE0djQwYTE0LDE0LDAsMCwwLDE0LDE0SDIwOGExNCwxNCwwLDAsMCwxNC0xNFYxNTJBMTQsMTQsMCwwLDAsMjA4LDEzOFptMiw1NGEyLDIsMCwwLDEtMiwySDQ4YTIsMiwwLDAsMS0yLTJWMTUyYTIsMiwwLDAsMSwyLTJIMjA4YTIsMiwwLDAsMSwyLDJaTTIwOCw1MEg0OEExNCwxNCwwLDAsMCwzNCw2NHY0MGExNCwxNCwwLDAsMCwxNCwxNEgyMDhhMTQsMTQsMCwwLDAsMTQtMTRWNjRBMTQsMTQsMCwwLDAsMjA4LDUwWm0yLDU0YTIsMiwwLDAsMS0yLDJINDhhMiwyLDAsMCwxLTItMlY2NGEyLDIsMCwwLDEsMi0ySDIwOGEyLDIsMCwwLDEsMiwyWiIvPjwvc3ZnPg==');}.icon-table{--icon:url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTYgMjU2IiBmaWxsPSJjdXJyZW50Q29sb3IiPjxwYXRoIGQ9Ik0yMjQsNTBIMzJhNiw2LDAsMCwwLTYsNlYxOTJhMTQsMTQsMCwwLDAsMTQsMTRIMjE2YTE0LDE0LDAsMCwwLDE0LTE0VjU2QTYsNiwwLDAsMCwyMjQsNTBaTTM4LDExMEg4MnYzNkgzOFptNTYsMEgyMTh2MzZIOTRaTTIxOCw2MlY5OEgzOFY2MlpNMzgsMTkyVjE1OEg4MnYzNkg0MEEyLDIsMCwwLDEsMzgsMTkyWm0xNzgsMkg5NFYxNThIMjE4djM0QTIsMiwwLDAsMSwyMTYsMTk0WiIvPjwvc3ZnPg==');}.icon-calendar{--icon:url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTYgMjU2IiBmaWxsPSJjdXJyZW50Q29sb3IiPjxwYXRoIGQ9Ik0yMDgsMzRIMTgyVjI0YTYsNiwwLDAsMC0xMiwwVjM0SDg2VjI0YTYsNiwwLDAsMC0xMiwwVjM0SDQ4QTE0LDE0LDAsMCwwLDM0LDQ4VjIwOGExNCwxNCwwLDAsMCwxNCwxNEgyMDhhMTQsMTQsMCwwLDAsMTQtMTRWNDhBMTQsMTQsMCwwLDAsMjA4LDM0Wk00OCw0Nkg3NFY1NmE2LDYsMCwwLDAsMTIsMFY0Nmg4NFY1NmE2LDYsMCwwLDAsMTIsMFY0NmgyNmEyLDIsMCwwLDEsMiwyVjgySDQ2VjQ4QTIsMiwwLDAsMSw0OCw0NlpNMjA4LDIxMEg0OGEyLDIsMCwwLDEtMi0yVjk0SDIxMFYyMDhBMiwyLDAsMCwxLDIwOCwyMTBabS05OC05MHY2NGE2LDYsMCwwLDEtMTIsMFYxMjkuNzFsLTcuMzIsMy42NmE2LDYsMCwxLDEtNS4zNi0xMC43NGwxNi04QTYsNiwwLDAsMSwxMTAsMTIwWm01OS41NywyOS4yNUwxNDgsMTc4aDIwYTYsNiwwLDAsMSwwLDEySDEzNmE2LDYsMCwwLDEtNC44LTkuNkwxNjAsMTQyYTEwLDEwLDAsMSwwLTE2LjY1LTExQTYsNiwwLDEsMSwxMzMsMTI1YTIyLDIyLDAsMSwxLDM2LjYyLDI0LjI2WiIvPjwvc3ZnPg==');}.icon-sort-ascending{--icon:url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTYgMjU2IiBmaWxsPSJjdXJyZW50Q29sb3IiPjxwYXRoIGQ9Ik0xMjYsMTI4YTYsNiwwLDAsMS02LDZINDhhNiw2LDAsMCwxLDAtMTJoNzJBNiw2LDAsMCwxLDEyNiwxMjhaTTQ4LDcwSDE4NGE2LDYsMCwwLDAsMC0xMkg0OGE2LDYsMCwwLDAsMCwxMlptNTYsMTE2SDQ4YTYsNiwwLDAsMCwwLDEyaDU2YTYsNiwwLDAsMCwwLTEyWm0xMjQuMjQtMjIuMjRhNiw2LDAsMCwwLTguNDgsMEwxOTAsMTkzLjUxVjExMmE2LDYsMCwwLDAtMTIsMHY4MS41MWwtMjkuNzYtMjkuNzVhNiw2LDAsMCwwLTguNDgsOC40OGw0MCw0MGE2LDYsMCwwLDAsOC40OCwwbDQwLTQwQTYsNiwwLDAsMCwyMjguMjQsMTYzLjc2WiIvPjwvc3ZnPg==');}.icon-sort-descending{--icon:url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTYgMjU2IiBmaWxsPSJjdXJyZW50Q29sb3IiPjxwYXRoIGQ9Ik00MiwxMjhhNiw2LDAsMCwxLDYtNmg3MmE2LDYsMCwwLDEsMCwxMkg0OEE2LDYsMCwwLDEsNDIsMTI4Wm02LTU4aDU2YTYsNiwwLDAsMCwwLTEySDQ4YTYsNiwwLDAsMCwwLDEyWk0xODQsMTg2SDQ4YTYsNiwwLDAsMCwwLDEySDE4NGE2LDYsMCwwLDAsMC0xMlpNMjI4LjI0LDgzLjc2bC00MC00MGE2LDYsMCwwLDAtOC40OCwwbC00MCw0MGE2LDYsMCwwLDAsOC40OCw4LjQ4TDE3OCw2Mi40OVYxNDRhNiw2LDAsMCwwLDEyLDBWNjIuNDlsMjkuNzYsMjkuNzVhNiw2LDAsMCwwLDguNDgtOC40OFoiLz48L3N2Zz4=');}.icon-columns{--icon:url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTYgMjU2IiBmaWxsPSJjdXJyZW50Q29sb3IiPjxwYXRoIGQ9Ik0xMDQsMzRINjRBMTQsMTQsMCwwLDAsNTAsNDhWMjA4YTE0LDE0LDAsMCwwLDE0LDE0aDQwYTE0LDE0LDAsMCwwLDE0LTE0VjQ4QTE0LDE0LDAsMCwwLDEwNCwzNFptMiwxNzRhMiwyLDAsMCwxLTIsMkg2NGEyLDIsMCwwLDEtMi0yVjQ4YTIsMiwwLDAsMSwyLTJoNDBhMiwyLDAsMCwxLDIsMlpNMTkyLDM0SDE1MmExNCwxNCwwLDAsMC0xNCwxNFYyMDhhMTQsMTQsMCwwLDAsMTQsMTRoNDBhMTQsMTQsMCwwLDAsMTQtMTRWNDhBMTQsMTQsMCwwLDAsMTkyLDM0Wm0yLDE3NGEyLDIsMCwwLDEtMiwySDE1MmEyLDIsMCwwLDEtMi0yVjQ4YTIsMiwwLDAsMSwyLTJoNDBhMiwyLDAsMCwxLDIsMloiLz48L3N2Zz4=');}.icon-caret-double-down{--icon:url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTYgMjU2IiBmaWxsPSJjdXJyZW50Q29sb3IiPjxwYXRoIGQ9Ik0yMTIuMjQsMTMxLjc2YTYsNiwwLDAsMSwwLDguNDhsLTgwLDgwYTYsNiwwLDAsMS04LjQ4LDBsLTgwLTgwYTYsNiwwLDAsMSw4LjQ4LTguNDhMMTI4LDIwNy41MWw3NS43Ni03NS43NUE2LDYsMCwwLDEsMjEyLjI0LDEzMS43NlptLTg4LjQ4LDguNDhhNiw2LDAsMCwwLDguNDgsMGw4MC04MGE2LDYsMCwwLDAtOC40OC04LjQ4TDEyOCwxMjcuNTEsNTIuMjQsNTEuNzZhNiw2LDAsMCwwLTguNDgsOC40OFoiLz48L3N2Zz4=');}.icon-caret-double-right{--icon:url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTYgMjU2IiBmaWxsPSJjdXJyZW50Q29sb3IiPjxwYXRoIGQ9Ik0xNDAuMjQsMTMyLjI0bC04MCw4MGE2LDYsMCwwLDEtOC40OC04LjQ4TDEyNy41MSwxMjgsNTEuNzYsNTIuMjRhNiw2LDAsMCwxLDguNDgtOC40OGw4MCw4MEE2LDYsMCwwLDEsMTQwLjI0LDEzMi4yNFptODAtOC40OC04MC04MGE2LDYsMCwwLDAtOC40OCw4LjQ4TDIwNy41MSwxMjhsLTc1Ljc1LDc1Ljc2YTYsNiwwLDEsMCw4LjQ4LDguNDhsODAtODBBNiw2LDAsMCwwLDIyMC4yNCwxMjMuNzZaIi8+PC9zdmc+');}.icon-door{--icon:url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTYgMjU2IiBmaWxsPSJjdXJyZW50Q29sb3IiPjxwYXRoIGQ9Ik0yMzIsMjE4SDIwNlY0MGExNCwxNCwwLDAsMC0xNC0xNEg2NEExNCwxNCwwLDAsMCw1MCw0MFYyMThIMjRhNiw2LDAsMCwwLDAsMTJIMjMyYTYsNiwwLDAsMCwwLTEyWk02Miw0MGEyLDIsMCwwLDEsMi0ySDE5MmEyLDIsMCwwLDEsMiwyVjIxOEg2MlptMTA0LDkyYTEwLDEwLDAsMSwxLTEwLTEwQTEwLDEwLDAsMCwxLDE2NiwxMzJaIi8+PC9zdmc+');}.icon-book-bookmark{--icon:url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTYgMjU2IiBmaWxsPSJjdXJyZW50Q29sb3IiPjxwYXRoIGQ9Ik0yMDgsMjZINzJBMzAsMzAsMCwwLDAsNDIsNTZWMjI0YTYsNiwwLDAsMCw2LDZIMTkyYTYsNiwwLDAsMCwwLTEySDU0di0yYTE4LDE4LDAsMCwxLDE4LTE4SDIwOGE2LDYsMCwwLDAsNi02VjMyQTYsNiwwLDAsMCwyMDgsMjZaTTExOCwzOGg1MnY3OEwxNDcuNTksOTkuMmE2LDYsMCwwLDAtNy4yLDBMMTE4LDExNlptODQsMTQ4SDcyYTI5Ljg3LDI5Ljg3LDAsMCwwLTE4LDZWNTZBMTgsMTgsMCwwLDEsNzIsMzhoMzR2OTBhNiw2LDAsMCwwLDkuNiw0LjhMMTQ0LDExMS41bDI4LjQxLDIxLjNBNiw2LDAsMCwwLDE4MiwxMjhWMzhoMjBaIi8+PC9zdmc+');}.icon-faders{--icon:url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTYgMjU2IiBmaWxsPSJjdXJyZW50Q29sb3IiPjxwYXRoIGQ9Ik0xMzQsMTIwdjk2YTYsNiwwLDAsMS0xMiwwVjEyMGE2LDYsMCwwLDEsMTIsMFptNjYsNzRhNiw2LDAsMCwwLTYsNnYxNmE2LDYsMCwwLDAsMTIsMFYyMDBBNiw2LDAsMCwwLDIwMCwxOTRabTI0LTMySDIwNlY0MGE2LDYsMCwwLDAtMTIsMFYxNjJIMTc2YTYsNiwwLDAsMCwwLDEyaDQ4YTYsNiwwLDAsMCwwLTEyWk01NiwxNjJhNiw2LDAsMCwwLTYsNnY0OGE2LDYsMCwwLDAsMTIsMFYxNjhBNiw2LDAsMCwwLDU2LDE2MlptMjQtMzJINjJWNDBhNiw2LDAsMCwwLTEyLDB2OTBIMzJhNiw2LDAsMCwwLDAsMTJIODBhNiw2LDAsMCwwLDAtMTJabTcyLTQ4SDEzNFY0MGE2LDYsMCwwLDAtMTIsMFY4MkgxMDRhNiw2LDAsMCwwLDAsMTJoNDhhNiw2LDAsMCwwLDAtMTJaIi8+PC9zdmc+');}.icon-robot{--icon:url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTYgMjU2IiBmaWxsPSJjdXJyZW50Q29sb3IiPjxwYXRoIGQ9Ik0yMDAsNTBIMTM0VjE2YTYsNiwwLDAsMC0xMiwwVjUwSDU2QTMwLDMwLDAsMCwwLDI2LDgwVjE5MmEzMCwzMCwwLDAsMCwzMCwzMEgyMDBhMzAsMzAsMCwwLDAsMzAtMzBWODBBMzAsMzAsMCwwLDAsMjAwLDUwWm0xOCwxNDJhMTgsMTgsMCwwLDEtMTgsMThINTZhMTgsMTgsMCwwLDEtMTgtMThWODBBMTgsMTgsMCwwLDEsNTYsNjJIMjAwYTE4LDE4LDAsMCwxLDE4LDE4Wk03NCwxMDhhMTAsMTAsMCwxLDEsMTAsMTBBMTAsMTAsMCwwLDEsNzQsMTA4Wm04OCwwYTEwLDEwLDAsMSwxLDEwLDEwQTEwLDEwLDAsMCwxLDE2MiwxMDhabTIsMzBIOTJhMjYsMjYsMCwwLDAsMCw1Mmg3MmEyNiwyNiwwLDAsMCwwLTUyWm0tMjIsMTJ2MjhIMTE0VjE1MFpNNzgsMTY0YTE0LDE0LDAsMCwxLDE0LTE0aDEwdjI4SDkyQTE0LDE0LDAsMCwxLDc4LDE2NFptODYsMTRIMTU0VjE1MGgxMGExNCwxNCwwLDAsMSwwLDI4WiIvPjwvc3ZnPg==');}.icon-plugs-connected{--icon:url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTYgMjU2IiBmaWxsPSJjdXJyZW50Q29sb3IiPjxwYXRoIGQ9Ik0yMzYuMjQsMTkuNzZhNiw2LDAsMCwwLTguNDgsMEwxNzMuOTQsNzMuNTdsLTYuNzktNi43OGEzMCwzMCwwLDAsMC00Mi40MiwwTDEwMCw5MS41MWwtNy43Ni03Ljc1YTYsNiwwLDAsMC04LjQ4LDguNDhMOTEuNTEsMTAwLDY2Ljc5LDEyNC43M2EzMCwzMCwwLDAsMCwwLDQyLjQybDYuNzgsNi43OUwxOS43NiwyMjcuNzZhNiw2LDAsMSwwLDguNDgsOC40OGw1My44Mi01My44MSw2Ljc5LDYuNzhhMzAsMzAsMCwwLDAsNDIuNDIsMEwxNTYsMTY0LjQ5bDcuNzYsNy43NWE2LDYsMCwwLDAsOC40OC04LjQ4TDE2NC40OSwxNTZsMjQuNzItMjQuNzNhMzAsMzAsMCwwLDAsMC00Mi40MmwtNi43OC02Ljc5LDUzLjgxLTUzLjgyQTYsNiwwLDAsMCwyMzYuMjQsMTkuNzZabS0xMTMuNDUsMTYxYTE4LDE4LDAsMCwxLTI1LjQ2LDBMNzUuMjcsMTU4LjY3YTE4LDE4LDAsMCwxLDAtMjUuNDZMMTAwLDEwOC40OSwxNDcuNTEsMTU2Wm01Ny45NC01Ny45NEwxNTYsMTQ3LjUxLDEwOC40OSwxMDBsMjQuNzItMjQuNzNhMTgsMTgsMCwwLDEsMjUuNDYsMGwyMi4wNiwyMi4wNmExOCwxOCwwLDAsMSwwLDI1LjQ2Wk05MC40MywzNC4yM2E2LDYsMCwwLDEsMTEuMTQtNC40Nmw4LDIwYTYsNiwwLDEsMS0xMS4xNCw0LjQ2Wm0tNjQsNTkuNTRhNiw2LDAsMCwxLDcuOC0zLjM0bDIwLDhhNiw2LDAsMSwxLTQuNDYsMTEuMTRsLTIwLThBNiw2LDAsMCwxLDI2LjQzLDkzLjc3Wm0yMDMuMTQsNjguNDZhNiw2LDAsMCwxLTcuOCwzLjM0bC0yMC04YTYsNiwwLDAsMSw0LjQ2LTExLjE0bDIwLDhBNiw2LDAsMCwxLDIyOS41NywxNjIuMjNabS02NCw1OS41NGE2LDYsMCwxLDEtMTEuMTQsNC40NmwtOC0yMGE2LDYsMCwwLDEsMTEuMTQtNC40NloiLz48L3N2Zz4=');}.icon-user-circle{--icon:url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTYgMjU2IiBmaWxsPSJjdXJyZW50Q29sb3IiPjxwYXRoIGQ9Ik0xMjgsMjZBMTAyLDEwMiwwLDEsMCwyMzAsMTI4LDEwMi4xMiwxMDIuMTIsMCwwLDAsMTI4LDI2Wk03MS40NCwxOThhNjYsNjYsMCwwLDEsMTEzLjEyLDAsODkuOCw4OS44LDAsMCwxLTExMy4xMiwwWk05NCwxMjBhMzQsMzQsMCwxLDEsMzQsMzRBMzQsMzQsMCwwLDEsOTQsMTIwWm05OS41MSw2OS42NGE3Ny41Myw3Ny41MywwLDAsMC00MC0zMS4zOCw0Niw0NiwwLDEsMC01MSwwLDc3LjUzLDc3LjUzLDAsMCwwLTQwLDMxLjM4LDkwLDkwLDAsMSwxLDEzMSwwWiIvPjwvc3ZnPg==');}.icon-password{--icon:url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTYgMjU2IiBmaWxsPSJjdXJyZW50Q29sb3IiPjxwYXRoIGQ9Ik00Niw1NlYyMDBhNiw2LDAsMCwxLTEyLDBWNTZhNiw2LDAsMCwxLDEyLDBabTk0LjU4LDU2LjQxTDExOCwxMTkuNzRWOTZhNiw2LDAsMCwwLTEyLDB2MjMuNzRsLTIyLjU4LTcuMzNhNiw2LDAsMSwwLTMuNzEsMTEuNDFsMjIuNTgsNy4zMy0xNCwxOS4yMWE2LDYsMCwxLDAsOS43LDcuMDZsMTQtMTkuMjEsMTQsMTkuMjFhNiw2LDAsMCwwLDkuNy03LjA2bC0xNC0xOS4yMSwyMi41OC03LjMzYTYsNiwwLDEsMC0zLjcxLTExLjQxWm0xMDMuNTYsMy44NWE2LDYsMCwwLDAtNy41Ni0zLjg1TDIxNCwxMTkuNzRWOTZhNiw2LDAsMCwwLTEyLDB2MjMuNzRsLTIyLjU4LTcuMzNhNiw2LDAsMSwwLTMuNzEsMTEuNDFsMjIuNTgsNy4zMy0xMy45NSwxOS4yMWE2LDYsMCwxLDAsOS43LDcuMDZsMTQtMTkuMjEsMTQsMTkuMjFhNiw2LDAsMCwwLDkuNy03LjA2bC0xMy45NS0xOS4yMSwyMi41OC03LjMzQTYsNiwwLDAsMCwyNDQuMTQsMTE2LjI2WiIvPjwvc3ZnPg==');}.icon-eye{--icon:url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTYgMjU2IiBmaWxsPSJjdXJyZW50Q29sb3IiPjxwYXRoIGQ9Ik0yNDUuNDgsMTI1LjU3Yy0uMzQtLjc4LTguNjYtMTkuMjMtMjcuMjQtMzcuODFDMjAxLDcwLjU0LDE3MS4zOCw1MCwxMjgsNTBTNTUsNzAuNTQsMzcuNzYsODcuNzZjLTE4LjU4LDE4LjU4LTI2LjksMzctMjcuMjQsMzcuODFhNiw2LDAsMCwwLDAsNC44OGMuMzQuNzcsOC42NiwxOS4yMiwyNy4yNCwzNy44QzU1LDE4NS40Nyw4NC42MiwyMDYsMTI4LDIwNnM3My0yMC41Myw5MC4yNC0zNy43NWMxOC41OC0xOC41OCwyNi45LTM3LDI3LjI0LTM3LjhBNiw2LDAsMCwwLDI0NS40OCwxMjUuNTdaTTEyOCwxOTRjLTMxLjM4LDAtNTguNzgtMTEuNDItODEuNDUtMzMuOTNBMTM0Ljc3LDEzNC43NywwLDAsMSwyMi42OSwxMjgsMTM0LjU2LDEzNC41NiwwLDAsMSw0Ni41NSw5NS45NEM2OS4yMiw3My40Miw5Ni42Miw2MiwxMjgsNjJzNTguNzgsMTEuNDIsODEuNDUsMzMuOTRBMTM0LjU2LDEzNC41NiwwLDAsMSwyMzMuMzEsMTI4QzIyNi45NCwxNDAuMjEsMTk1LDE5NCwxMjgsMTk0Wm0wLTExMmE0Niw0NiwwLDEsMCw0Niw0NkE0Ni4wNiw0Ni4wNiwwLDAsMCwxMjgsODJabTAsODBhMzQsMzQsMCwxLDEsMzQtMzRBMzQsMzQsMCwwLDEsMTI4LDE2MloiLz48L3N2Zz4=');}.icon-eye-slash{--icon:url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTYgMjU2IiBmaWxsPSJjdXJyZW50Q29sb3IiPjxwYXRoIGQ9Ik01Mi40NCwzNkE2LDYsMCwwLDAsNDMuNTYsNDRMNjQuNDQsNjdjLTM3LjI4LDIxLjktNTMuMjMsNTctNTMuOTIsNTguNTdhNiw2LDAsMCwwLDAsNC44OGMuMzQuNzcsOC42NiwxOS4yMiwyNy4yNCwzNy44QzU1LDE4NS40Nyw4NC42MiwyMDYsMTI4LDIwNmExMjQuOTEsMTI0LjkxLDAsMCwwLDUyLjU3LTExLjI1bDIzLDI1LjI5YTYsNiwwLDAsMCw4Ljg4LTguMDhabTQ4LjYyLDcxLjMyLDQ1LDQ5LjUyYTM0LDM0LDAsMCwxLTQ1LTQ5LjUyWk0xMjgsMTk0Yy0zMS4zOCwwLTU4Ljc4LTExLjQyLTgxLjQ1LTMzLjkzQTEzNC41NywxMzQuNTcsMCwwLDEsMjIuNjksMTI4YzQuMjktOC4yLDIwLjEtMzUuMTgsNTAtNTEuOTFMOTIuODksOTguM2E0Niw0NiwwLDAsMCw2MS4zNSw2Ny40OGwxNy44MSwxOS42QTExMy40NywxMTMuNDcsMCwwLDEsMTI4LDE5NFptNi40LTk5LjRhNiw2LDAsMCwxLDIuMjUtMTEuNzksNDYuMTcsNDYuMTcsMCwwLDEsMzcuMTUsNDAuODcsNiw2LDAsMCwxLTUuNDIsNi41M2wtLjU2LDBhNiw2LDAsMCwxLTYtNS40NUEzNC4xLDM0LjEsMCwwLDAsMTM0LjQsOTQuNlptMTExLjA4LDM1Ljg1Yy0uNDEuOTItMTAuMzcsMjMtMzIuODYsNDMuMTJhNiw2LDAsMSwxLTgtOC45NEExMzQuMDcsMTM0LjA3LDAsMCwwLDIzMy4zMSwxMjhhMTM0LjY3LDEzNC42NywwLDAsMC0yMy44Ni0zMi4wN0MxODYuNzgsNzMuNDIsMTU5LjM4LDYyLDEyOCw2MmExMjAuMTksMTIwLjE5LDAsMCwwLTE5LjY5LDEuNiw2LDYsMCwxLDEtMi0xMS44M0ExMzEuMTIsMTMxLjEyLDAsMCwxLDEyOCw1MGM0My4zOCwwLDczLDIwLjU0LDkwLjI0LDM3Ljc2LDE4LjU4LDE4LjU4LDI2LjksMzcsMjcuMjQsMzcuODFBNiw2LDAsMCwxLDI0NS40OCwxMzAuNDVaIi8+PC9zdmc+');} |
| New file |
| | |
| | | .icon-copy{--icon:url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTYgMjU2IiBmaWxsPSJjdXJyZW50Q29sb3IiPjxwYXRoIGQ9Ik0yMTYsMzRIODhhNiw2LDAsMCwwLTYsNlY4Mkg0MGE2LDYsMCwwLDAtNiw2VjIxNmE2LDYsMCwwLDAsNiw2SDE2OGE2LDYsMCwwLDAsNi02VjE3NGg0MmE2LDYsMCwwLDAsNi02VjQwQTYsNiwwLDAsMCwyMTYsMzRaTTE2MiwyMTBINDZWOTRIMTYyWm00OC00OEgxNzRWODhhNiw2LDAsMCwwLTYtNkg5NFY0NkgyMTBaIi8+PC9zdmc+');}.icon-paragraph{--icon:url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTYgMjU2IiBmaWxsPSJjdXJyZW50Q29sb3IiPjxwYXRoIGQ9Ik0yMDgsNDJIOTZhNjIsNjIsMCwwLDAsMCwxMjRoNDJ2NDJhNiw2LDAsMCwwLDEyLDBWNTRoMjhWMjA4YTYsNiwwLDAsMCwxMiwwVjU0aDE4YTYsNiwwLDAsMCwwLTEyWk0xMzgsMTU0SDk2QTUwLDUwLDAsMCwxLDk2LDU0aDQyWiIvPjwvc3ZnPg==');}.icon-text-h-one{--icon:url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTYgMjU2IiBmaWxsPSJjdXJyZW50Q29sb3IiPjxwYXRoIGQ9Ik0yMzAsMTEydjk2YTYsNiwwLDAsMS0xMiwwVjEyMy4yMUwyMDMuMzMsMTMzYTYsNiwwLDAsMS02LjY2LTEwbDI0LTE2YTYsNiwwLDAsMSw5LjMzLDVaTTE0NCw1MGE2LDYsMCwwLDAtNiw2djU0SDQ2VjU2YTYsNiwwLDAsMC0xMiwwVjE3NmE2LDYsMCwwLDAsMTIsMFYxMjJoOTJ2NTRhNiw2LDAsMCwwLDEyLDBWNTZBNiw2LDAsMCwwLDE0NCw1MFoiLz48L3N2Zz4=');}.icon-text-h-two{--icon:url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTYgMjU2IiBmaWxsPSJjdXJyZW50Q29sb3IiPjxwYXRoIGQ9Ik0xNTAsNTZWMTc2YTYsNiwwLDAsMS0xMiwwVjEyMkg0NnY1NGE2LDYsMCwwLDEtMTIsMFY1NmE2LDYsMCwwLDEsMTIsMHY1NGg5MlY1NmE2LDYsMCwwLDEsMTIsMFptOTAsMTQ2SDIwNEwyNDAsMTU0LjA1QTMwLDMwLDAsMSwwLDE4Ny43MSwxMjYsNiw2LDAsMSwwLDE5OSwxMzBhMTgsMTgsMCwwLDEsMTQuNDctMTEuODIsMTgsMTgsMCwwLDEsMTYuODcsMjguNjZMMTg3LjIsMjA0LjRBNiw2LDAsMCwwLDE5MiwyMTRoNDhhNiw2LDAsMCwwLDAtMTJaIi8+PC9zdmc+');}.icon-text-h-three{--icon:url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTYgMjU2IiBmaWxsPSJjdXJyZW50Q29sb3IiPjxwYXRoIGQ9Ik0yNDYsMTgwYTM0LDM0LDAsMCwxLTU4LjI5LDIzLjc5LDYsNiwwLDAsMSw4LjU4LTguMzlBMjIsMjIsMCwxLDAsMjEyLDE1OGE2LDYsMCwwLDEtNC45Mi05LjQ0TDIyOC40OCwxMThIMTkyYTYsNiwwLDAsMSwwLTEyaDQ4YTYsNiwwLDAsMSw0LjkxLDkuNDRsLTIyLjUyLDMyLjE4QTM0LjA2LDM0LjA2LDAsMCwxLDI0NiwxODBaTTE0NCw1MGE2LDYsMCwwLDAtNiw2djU0SDQ2VjU2YTYsNiwwLDAsMC0xMiwwVjE3NmE2LDYsMCwwLDAsMTIsMFYxMjJoOTJ2NTRhNiw2LDAsMCwwLDEyLDBWNTZBNiw2LDAsMCwwLDE0NCw1MFoiLz48L3N2Zz4=');}.icon-text-h-four{--icon:url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTYgMjU2IiBmaWxsPSJjdXJyZW50Q29sb3IiPjxwYXRoIGQ9Ik0xNTAsNTZWMTc2YTYsNiwwLDAsMS0xMiwwVjEyMkg0NnY1NGE2LDYsMCwwLDEtMTIsMFY1NmE2LDYsMCwwLDEsMTIsMHY1NGg5MlY1NmE2LDYsMCwwLDEsMTIsMFpNMjU0LDE4NGE2LDYsMCwwLDEtNiw2SDIzOHYxOGE2LDYsMCwwLDEtMTIsMFYxOTBIMTc2YTYsNiwwLDAsMS00Ljc0LTkuNjhsNTYtNzJBNiw2LDAsMCwxLDIzOCwxMTJ2NjZoMTBBNiw2LDAsMCwxLDI1NCwxODRabS0yOC01NC41MUwxODguMjcsMTc4SDIyNloiLz48L3N2Zz4=');}.icon-text-h-five{--icon:url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTYgMjU2IiBmaWxsPSJjdXJyZW50Q29sb3IiPjxwYXRoIGQ9Ik0yNDYsMTgwYTM0LDM0LDAsMCwxLTM0LDM0LDMzLjYsMzMuNiwwLDAsMS0yNC4yOS05LjgsNiw2LDAsMCwxLDguNTgtOC40QTIxLjY1LDIxLjY1LDAsMCwwLDIxMiwyMDJhMjIsMjIsMCwwLDAsMC00NCwyMS42NSwyMS42NSwwLDAsMC0xNS43MSw2LjJBNiw2LDAsMCwxLDE4Ni4wOCwxNTlsOC00OGE2LDYsMCwwLDEsNS45Mi01aDQwYTYsNiwwLDAsMSwwLDEySDIwNS4wOGwtNSwzMEEzNiwzNiwwLDAsMSwyMTIsMTQ2LDM0LDM0LDAsMCwxLDI0NiwxODBaTTE0NCw1MGE2LDYsMCwwLDAtNiw2djU0SDQ2VjU2YTYsNiwwLDAsMC0xMiwwVjE3NmE2LDYsMCwwLDAsMTIsMFYxMjJoOTJ2NTRhNiw2LDAsMCwwLDEyLDBWNTZBNiw2LDAsMCwwLDE0NCw1MFoiLz48L3N2Zz4=');}.icon-text-h-six{--icon:url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTYgMjU2IiBmaWxsPSJjdXJyZW50Q29sb3IiPjxwYXRoIGQ9Ik0yMTIsMTQ2YTM0LjUsMzQuNSwwLDAsMC01LjYuNDdsMTguNzUtMzEuMzlhNiw2LDAsMCwwLTEwLjMtNi4xNmwtMzIuMjUsNTQtLjIyLjQxQTM0LDM0LDAsMSwwLDIxMiwxNDZabTAsNTZhMjIsMjIsMCwxLDEsMjItMjJBMjIsMjIsMCwwLDEsMjEyLDIwMlpNMTUwLDU2VjE3NmE2LDYsMCwwLDEtMTIsMFYxMjJINDZ2NTRhNiw2LDAsMCwxLTEyLDBWNTZhNiw2LDAsMCwxLDEyLDB2NTRoOTJWNTZhNiw2LDAsMCwxLDEyLDBaIi8+PC9zdmc+');}.icon-text-italic{--icon:url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTYgMjU2IiBmaWxsPSJjdXJyZW50Q29sb3IiPjxwYXRoIGQ9Ik0xOTgsNTZhNiw2LDAsMCwxLTYsNkgxNTYuMzJsLTQ0LDEzMkgxNDRhNiw2LDAsMCwxLDAsMTJINjRhNiw2LDAsMCwxLDAtMTJIOTkuNjhsNDQtMTMySDExMmE2LDYsMCwwLDEsMC0xMmg4MEE2LDYsMCwwLDEsMTk4LDU2WiIvPjwvc3ZnPg==');}.icon-text-underline{--icon:url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTYgMjU2IiBmaWxsPSJjdXJyZW50Q29sb3IiPjxwYXRoIGQ9Ik0xOTgsMjI0YTYsNiwwLDAsMS02LDZINjRhNiw2LDAsMCwxLDAtMTJIMTkyQTYsNiwwLDAsMSwxOTgsMjI0Wm0tNzAtMjZhNjIuMDcsNjIuMDcsMCwwLDAsNjItNjJWNTZhNiw2LDAsMCwwLTEyLDB2ODBhNTAsNTAsMCwwLDEtMTAwLDBWNTZhNiw2LDAsMCwwLTEyLDB2ODBBNjIuMDcsNjIuMDcsMCwwLDAsMTI4LDE5OFoiLz48L3N2Zz4=');}.icon-text-strikethrough{--icon:url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTYgMjU2IiBmaWxsPSJjdXJyZW50Q29sb3IiPjxwYXRoIGQ9Ik0yMjIsMTI4YTYsNiwwLDAsMS02LDZIMTY5LjQ1YzExLjI4LDYuOTIsMjAuNTUsMTcuMzgsMjAuNTUsMzQsMCwyNS4zNi0yNy44MSw0Ni02Miw0NnMtNjItMjAuNjQtNjItNDZhNiw2LDAsMCwxLDEyLDBjMCwxOC43NSwyMi40MywzNCw1MCwzNHM1MC0xNS4yNSw1MC0zNGMwLTE4LjIzLTE1LjQ2LTI2LjU5LTQwLjQ3LTM0SDQwYTYsNiwwLDAsMSwwLTEySDIxNkE2LDYsMCwwLDEsMjIyLDEyOFpNNzYuMzMsMTAyYTYuMiw2LjIsMCwwLDAsMS44OC0uM0E2LDYsMCwwLDAsODIsOTQuMTMsMTkuNzQsMTkuNzQsMCwwLDEsODEuMTEsODhjMC0xOS4zOCwyMC4xNi0zNCw0Ni44OS0zNCwxOS41OCwwLDM1LjU2LDcuODEsNDIuNzQsMjAuODlhNiw2LDAsMCwwLDEwLjUyLTUuNzhDMTcxLjk0LDUyLjEzLDE1Miw0MiwxMjgsNDIsOTQuNDMsNDIsNjkuMTEsNjEuNzcsNjkuMTEsODhhMzEuNjIsMzEuNjIsMCwwLDAsMS41Miw5Ljg3QTYsNiwwLDAsMCw3Ni4zMywxMDJaIi8+PC9zdmc+');}.icon-list-dashes{--icon:url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTYgMjU2IiBmaWxsPSJjdXJyZW50Q29sb3IiPjxwYXRoIGQ9Ik05MCw2NGE2LDYsMCwwLDEsNi02SDIxNmE2LDYsMCwwLDEsMCwxMkg5NkE2LDYsMCwwLDEsOTAsNjRabTEyNiw1OEg5NmE2LDYsMCwwLDAsMCwxMkgyMTZhNiw2LDAsMCwwLDAtMTJabTAsNjRIOTZhNiw2LDAsMCwwLDAsMTJIMjE2YTYsNiwwLDAsMCwwLTEyWk01Niw1OEg0MGE2LDYsMCwwLDAsMCwxMkg1NmE2LDYsMCwwLDAsMC0xMlptMCw2NEg0MGE2LDYsMCwwLDAsMCwxMkg1NmE2LDYsMCwwLDAsMC0xMlptMCw2NEg0MGE2LDYsMCwwLDAsMCwxMkg1NmE2LDYsMCwwLDAsMC0xMloiLz48L3N2Zz4=');}.icon-list-numbers{--icon:url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTYgMjU2IiBmaWxsPSJjdXJyZW50Q29sb3IiPjxwYXRoIGQ9Ik0yMjIsMTI4YTYsNiwwLDAsMS02LDZIMTA0YTYsNiwwLDAsMSwwLTEySDIxNkE2LDYsMCwwLDEsMjIyLDEyOFpNMTA0LDcwSDIxNmE2LDYsMCwwLDAsMC0xMkgxMDRhNiw2LDAsMCwwLDAsMTJaTTIxNiwxODZIMTA0YTYsNiwwLDAsMCwwLDEySDIxNmE2LDYsMCwwLDAsMC0xMlpNNDIuNjgsNTMuMzcsNTAsNDkuNzFWMTA0YTYsNiwwLDAsMCwxMiwwVjQwYTYsNiwwLDAsMC04LjY4LTUuMzdsLTE2LDhhNiw2LDAsMCwwLDUuMzYsMTAuNzRaTTcyLDIwMkg1MmwyMS40OC0yOC43NEEyMS41LDIxLjUsMCwwLDAsNzcuNzksMTU3LDIxLjc1LDIxLjc1LDAsMCwwLDY5LDE0Mi4zOGEyMi44NiwyMi44NiwwLDAsMC0zMS4zNSw0LjMxLDIyLjE4LDIyLjE4LDAsMCwwLTMuMjgsNS45Miw2LDYsMCwwLDAsMTEuMjgsNC4xMSw5Ljg3LDkuODcsMCwwLDEsMS40OC0yLjY3LDEwLjc4LDEwLjc4LDAsMCwxLDE0Ljc4LTIsOS44OSw5Ljg5LDAsMCwxLDQsNi42MSw5LjY0LDkuNjQsMCwwLDEtMiw3LjI4bC0uMDYuMDlMMzUuMiwyMDQuNDFBNiw2LDAsMCwwLDQwLDIxNEg3MmE2LDYsMCwwLDAsMC0xMloiLz48L3N2Zz4=');}.icon-text-align-left{--icon:url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTYgMjU2IiBmaWxsPSJjdXJyZW50Q29sb3IiPjxwYXRoIGQ9Ik0zNCw2NGE2LDYsMCwwLDEsNi02SDIxNmE2LDYsMCwwLDEsMCwxMkg0MEE2LDYsMCwwLDEsMzQsNjRabTYsNDZIMTY4YTYsNiwwLDAsMCwwLTEySDQwYTYsNiwwLDAsMCwwLDEyWm0xNzYsMjhINDBhNiw2LDAsMCwwLDAsMTJIMjE2YTYsNiwwLDAsMCwwLTEyWm0tNDgsNDBINDBhNiw2LDAsMCwwLDAsMTJIMTY4YTYsNiwwLDAsMCwwLTEyWiIvPjwvc3ZnPg==');}.icon-text-align-center{--icon:url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTYgMjU2IiBmaWxsPSJjdXJyZW50Q29sb3IiPjxwYXRoIGQ9Ik0zNCw2NGE2LDYsMCwwLDEsNi02SDIxNmE2LDYsMCwwLDEsMCwxMkg0MEE2LDYsMCwwLDEsMzQsNjRaTTY0LDk4YTYsNiwwLDAsMCwwLDEySDE5MmE2LDYsMCwwLDAsMC0xMlptMTUyLDQwSDQwYTYsNiwwLDAsMCwwLDEySDIxNmE2LDYsMCwwLDAsMC0xMlptLTI0LDQwSDY0YTYsNiwwLDAsMCwwLDEySDE5MmE2LDYsMCwwLDAsMC0xMloiLz48L3N2Zz4=');}.icon-text-align-right{--icon:url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTYgMjU2IiBmaWxsPSJjdXJyZW50Q29sb3IiPjxwYXRoIGQ9Ik0zNCw2NGE2LDYsMCwwLDEsNi02SDIxNmE2LDYsMCwwLDEsMCwxMkg0MEE2LDYsMCwwLDEsMzQsNjRaTTIxNiw5OEg4OGE2LDYsMCwwLDAsMCwxMkgyMTZhNiw2LDAsMCwwLDAtMTJabTAsNDBINDBhNiw2LDAsMCwwLDAsMTJIMjE2YTYsNiwwLDAsMCwwLTEyWm0wLDQwSDg4YTYsNiwwLDAsMCwwLDEySDIxNmE2LDYsMCwwLDAsMC0xMloiLz48L3N2Zz4=');}.icon-link{--icon:url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTYgMjU2IiBmaWxsPSJjdXJyZW50Q29sb3IiPjxwYXRoIGQ9Ik0yMzgsODguMThhNTIuNDIsNTIuNDIsMCwwLDEtMTUuNCwzNS42NmwtMzQuNzUsMzQuNzVBNTIuMjgsNTIuMjgsMCwwLDEsMTUwLjYyLDE3NGgtLjA1QTUyLjYzLDUyLjYzLDAsMCwxLDk4LDExOS45YTYsNiwwLDAsMSw2LTUuODRoLjE3YTYsNiwwLDAsMSw1LjgzLDYuMTZBNDAuNjIsNDAuNjIsMCwwLDAsMTUwLjU4LDE2MmgwYTQwLjQsNDAuNCwwLDAsMCwyOC43My0xMS45bDM0Ljc1LTM0Ljc0QTQwLjYzLDQwLjYzLDAsMCwwLDE1Ni42Myw1Ny45bC0xMSwxMWE2LDYsMCwwLDEtOC40OS04LjQ5bDExLTExYTUyLjYyLDUyLjYyLDAsMCwxLDc0LjQzLDBBNTIuODMsNTIuODMsMCwwLDEsMjM4LDg4LjE4Wm0tMTI3LjYyLDk4LjktMTEsMTFBNDAuMzYsNDAuMzYsMCwwLDEsNzAuNiwyMTBoMGE0MC42Myw0MC42MywwLDAsMS0yOC43LTY5LjM2TDc2LjYyLDEwNS45QTQwLjYzLDQwLjYzLDAsMCwxLDE0NiwxMzUuNzdhNiw2LDAsMCwwLDUuODMsNi4xNkgxNTJhNiw2LDAsMCwwLDYtNS44NEE1Mi42Myw1Mi42MywwLDAsMCw2OC4xNCw5Ny40MkwzMy4zOCwxMzIuMTZBNTIuNjMsNTIuNjMsMCwwLDAsNzAuNTYsMjIyaDBhNTIuMjYsNTIuMjYsMCwwLDAsMzcuMjItMTUuNDJsMTEtMTFhNiw2LDAsMSwwLTguNDktOC40OFoiLz48L3N2Zz4=');}.icon-file-pdf{--icon:url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTYgMjU2IiBmaWxsPSJjdXJyZW50Q29sb3IiPjxwYXRoIGQ9Ik0yMjIsMTUyYTYsNiwwLDAsMS02LDZIMTkwdjIwaDE4YTYsNiwwLDAsMSwwLDEySDE5MHYxOGE2LDYsMCwwLDEtMTIsMFYxNTJhNiw2LDAsMCwxLDYtNmgzMkE2LDYsMCwwLDEsMjIyLDE1MlpNOTAsMTcyYTI2LDI2LDAsMCwxLTI2LDI2SDU0djEwYTYsNiwwLDAsMS0xMiwwVjE1MmE2LDYsMCwwLDEsNi02SDY0QTI2LDI2LDAsMCwxLDkwLDE3MlptLTEyLDBhMTQsMTQsMCwwLDAtMTQtMTRINTR2MjhINjRBMTQsMTQsMCwwLDAsNzgsMTcyWm04NCw4YTM0LDM0LDAsMCwxLTM0LDM0SDExMmE2LDYsMCwwLDEtNi02VjE1MmE2LDYsMCwwLDEsNi02aDE2QTM0LDM0LDAsMCwxLDE2MiwxODBabS0xMiwwYTIyLDIyLDAsMCwwLTIyLTIySDExOHY0NGgxMEEyMiwyMiwwLDAsMCwxNTAsMTgwWk00MiwxMTJWNDBBMTQsMTQsMCwwLDEsNTYsMjZoOTZhNiw2LDAsMCwxLDQuMjUsMS43Nmw1Niw1NkE2LDYsMCwwLDEsMjE0LDg4djI0YTYsNiwwLDAsMS0xMiwwVjk0SDE1MmE2LDYsMCwwLDEtNi02VjM4SDU2YTIsMiwwLDAsMC0yLDJ2NzJhNiw2LDAsMCwxLTEyLDBaTTE1OCw4MmgzNS41MkwxNTgsNDYuNDhaIi8+PC9zdmc+');}.icon-file-csv{--icon:url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTYgMjU2IiBmaWxsPSJjdXJyZW50Q29sb3IiPjxwYXRoIGQ9Ik00NiwxODBjMCwxMi4xMyw4LjA3LDIyLDE4LDIyYTE2LjI0LDE2LjI0LDAsMCwwLDExLjY3LTUuMjgsNiw2LDAsMCwxLDguNjYsOC4zQTI4LjA2LDI4LjA2LDAsMCwxLDY0LDIxNGMtMTYuNTQsMC0zMC0xNS4yNS0zMC0zNHMxMy40Ni0zNCwzMC0zNGEyOC4wNiwyOC4wNiwwLDAsMSwyMC4zMyw5LDYsNiwwLDAsMS04LjY2LDguM0ExNi4yMywxNi4yMywwLDAsMCw2NCwxNThDNTQuMDcsMTU4LDQ2LDE2Ny44Niw0NiwxODBabTgxLjA1LTYuNzdjLTEwLjg2LTMuMTMtMTMuNDEtNC42OS0xMy03LjkxYTYuNTksNi41OSwwLDAsMSwyLjg4LTUuMDhjNS42LTMuNzksMTcuNjYtMS44MiwyMS40NS0uODRhNiw2LDAsMCwwLDMuMDYtMTEuNmMtMi0uNTMtMjAuMS01LTMxLjIxLDIuNDhhMTguNjEsMTguNjEsMCwwLDAtOC4wOCwxMy41NGMtMS44LDE0LjE5LDEyLjI2LDE4LjI1LDIxLjU3LDIwLjk0LDEyLjEyLDMuNSwxNC43OCw1LjMzLDE0LjIsOS43NmE2Ljg1LDYuODUsMCwwLDEtMyw1LjM0Yy01LjYxLDMuNzMtMTcuNDgsMS42NC0yMS4xOS42MkE2LDYsMCwwLDAsMTEwLjQ4LDIxMmE1OS40MSw1OS40MSwwLDAsMCwxNC42OCwyYzUuNDksMCwxMS41NC0uOTUsMTYuMzYtNC4xNGExOC44OSwxOC44OSwwLDAsMCw4LjMxLTEzLjgxQzE1MS44NCwxODAuMzksMTM2LjkyLDE3Ni4wOCwxMjcuMDUsMTczLjIyWm04My0yNi44OGE2LDYsMCwwLDAtNy42NywzLjYzTDE4OCwxOTAuMTUsMTczLjY1LDE1MGE2LDYsMCwxLDAtMTEuMyw0bDIwLDU2YTYsNiwwLDAsMCwxMS4zLDBsMjAtNTZBNiw2LDAsMCwwLDIxMCwxNDYuMzRaTTIxNCw4OHYyNGE2LDYsMCwxLDEtMTIsMFY5NEgxNTJhNiw2LDAsMCwxLTYtNlYzOEg1NmEyLDIsMCwwLDAtMiwydjcyYTYsNiwwLDEsMS0xMiwwVjQwQTE0LDE0LDAsMCwxLDU2LDI2aDk2YTYsNiwwLDAsMSw0LjI0LDEuNzZsNTYsNTZBNiw2LDAsMCwxLDIxNCw4OFptLTIwLjQ5LTZMMTU4LDQ2LjQ4VjgyWiIvPjwvc3ZnPg==');}.icon-file-doc{--icon:url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTYgMjU2IiBmaWxsPSJjdXJyZW50Q29sb3IiPjxwYXRoIGQ9Ik01MiwxNDZIMzZhNiw2LDAsMCwwLTYsNnY1NmE2LDYsMCwwLDAsNiw2SDUyYTM0LDM0LDAsMCwwLDAtNjhabTAsNTZINDJWMTU4SDUyYTIyLDIyLDAsMCwxLDAsNDRabTE2OC4xNS01LjQ2YTYsNiwwLDAsMSwuMTgsOC40OEEyOC4wNiwyOC4wNiwwLDAsMSwyMDAsMjE0Yy0xNi41NCwwLTMwLTE1LjI1LTMwLTM0czEzLjQ2LTM0LDMwLTM0YTI4LjA2LDI4LjA2LDAsMCwxLDIwLjMzLDksNiw2LDAsMCwxLTguNjYsOC4zQTE2LjIzLDE2LjIzLDAsMCwwLDIwMCwxNThjLTkuOTMsMC0xOCw5Ljg3LTE4LDIyczguMDcsMjIsMTgsMjJhMTYuMjMsMTYuMjMsMCwwLDAsMTEuNjctNS4yOEE2LDYsMCwwLDEsMjIwLjE1LDE5Ni41NFpNMTI4LDE0NmMtMTYuNTQsMC0zMCwxNS4yNS0zMCwzNHMxMy40NiwzNCwzMCwzNCwzMC0xNS4yNSwzMC0zNFMxNDQuNTQsMTQ2LDEyOCwxNDZabTAsNTZjLTkuOTMsMC0xOC05Ljg3LTE4LTIyczguMDctMjIsMTgtMjIsMTgsOS44NywxOCwyMlMxMzcuOTMsMjAyLDEyOCwyMDJaTTQ4LDExOGE2LDYsMCwwLDAsNi02VjQwYTIsMiwwLDAsMSwyLTJoOTBWODhhNiw2LDAsMCwwLDYsNmg1MHYxOGE2LDYsMCwwLDAsMTIsMFY4OGE2LDYsMCwwLDAtMS43Ni00LjI0bC01Ni01NkE2LDYsMCwwLDAsMTUyLDI2SDU2QTE0LDE0LDAsMCwwLDQyLDQwdjcyQTYsNiwwLDAsMCw0OCwxMThaTTE1OCw0Ni40OCwxOTMuNTIsODJIMTU4WiIvPjwvc3ZnPg==');}.icon-file-txt{--icon:url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTYgMjU2IiBmaWxsPSJjdXJyZW50Q29sb3IiPjxwYXRoIGQ9Ik00OCwxMThhNiw2LDAsMCwwLDYtNlY0MGEyLDIsMCwwLDEsMi0yaDkwVjg4YTYsNiwwLDAsMCw2LDZoNTB2MThhNiw2LDAsMCwwLDEyLDBWODhhNiw2LDAsMCwwLTEuNzYtNC4yNGwtNTYtNTZBNiw2LDAsMCwwLDE1MiwyNkg1NkExNCwxNCwwLDAsMCw0Miw0MHY3MkE2LDYsMCwwLDAsNDgsMTE4Wk0xNTgsNDYuNDgsMTkzLjUyLDgySDE1OFptLTUuMTIsMTA5TDEzNS4zNywxODBsMTcuNTEsMjQuNTFhNiw2LDAsMSwxLTkuNzYsN0wxMjgsMTkwLjMybC0xNS4xMiwyMS4xN2E2LDYsMCwwLDEtOS43Ni03TDEyMC42MywxODBsLTE3LjUxLTI0LjUxYTYsNiwwLDEsMSw5Ljc2LTdMMTI4LDE2OS42OGwxNS4xMi0yMS4xN2E2LDYsMCwwLDEsOS43Niw3Wk05MCwxNTJhNiw2LDAsMCwxLTYsNkg3MHY1MGE2LDYsMCwwLDEtMTIsMFYxNThINDRhNiw2LDAsMCwxLDAtMTJIODRBNiw2LDAsMCwxLDkwLDE1MlptMTI4LDBhNiw2LDAsMCwxLTYsNkgxOTh2NTBhNiw2LDAsMCwxLTEyLDBWMTU4SDE3MmE2LDYsMCwwLDEsMC0xMmg0MEE2LDYsMCwwLDEsMjE4LDE1MloiLz48L3N2Zz4=');}.icon-file-xls{--icon:url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTYgMjU2IiBmaWxsPSJjdXJyZW50Q29sb3IiPjxwYXRoIGQ9Ik0xNTQsMjA4YTYsNiwwLDAsMS02LDZIMTIwYTYsNiwwLDAsMS02LTZWMTUyYTYsNiwwLDEsMSwxMiwwdjUwaDIyQTYsNiwwLDAsMSwxNTQsMjA4Wk05MS40OCwxNDcuMTFhNiw2LDAsMCwwLTguMzYsMS4zOUw2OCwxNjkuNjcsNTIuODgsMTQ4LjVhNiw2LDAsMSwwLTkuNzYsN0w2MC42MywxODAsNDMuMTIsMjA0LjVhNiw2LDAsMSwwLDkuNzYsN0w2OCwxOTAuMzFsMTUuMTIsMjEuMTZBNiw2LDAsMCwwLDg4LDIxNGE1LjkxLDUuOTEsMCwwLDAsMy40OC0xLjEyLDYsNiwwLDAsMCwxLjQtOC4zN0w3NS4zNywxODBsMTcuNTEtMjQuNTFBNiw2LDAsMCwwLDkxLjQ4LDE0Ny4xMVpNMTkxLDE3My4yMmMtMTAuODUtMy4xMy0xMy40MS00LjY5LTEzLTcuOTFhNi41OSw2LjU5LDAsMCwxLDIuODgtNS4wOGM1LjYtMy43OSwxNy42NS0xLjgzLDIxLjQ0LS44NGE2LDYsMCwwLDAsMy4wNy0xMS42Yy0yLS41NC0yMC4xLTUtMzEuMjEsMi40OGExOC42NCwxOC42NCwwLDAsMC04LjA4LDEzLjU0Yy0xLjgsMTQuMTksMTIuMjYsMTguMjUsMjEuNTcsMjAuOTQsMTIuMTIsMy41LDE0Ljc3LDUuMzMsMTQuMiw5Ljc2YTYuODUsNi44NSwwLDAsMS0zLDUuMzRjLTUuNjEsMy43My0xNy40OCwxLjY0LTIxLjE5LjYyQTYsNiwwLDAsMCwxNzQuNDcsMjEyYTU5LjQxLDU5LjQxLDAsMCwwLDE0LjY4LDJjNS40OSwwLDExLjU0LS45NSwxNi4zNi00LjE0YTE4Ljg5LDE4Ljg5LDAsMCwwLDguMzEtMTMuODFDMjE1LjgzLDE4MC4zOSwyMDAuOTEsMTc2LjA4LDE5MSwxNzMuMjJaTTQyLDExMlY0MEExNCwxNCwwLDAsMSw1NiwyNmg5NmE2LDYsMCwwLDEsNC4yNCwxLjc2bDU2LDU2QTYsNiwwLDAsMSwyMTQsODh2MjRhNiw2LDAsMSwxLTEyLDBWOTRIMTUyYTYsNiwwLDAsMS02LTZWMzhINTZhMiwyLDAsMCwwLTIsMnY3MmE2LDYsMCwxLDEtMTIsMFpNMTU4LDgySDE5My41TDE1OCw0Ni40OFoiLz48L3N2Zz4=');}.icon-text-b-fi{--icon:url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTYgMjU2IiBmaWxsPSJjdXJyZW50Q29sb3IiPjxwYXRoIGQ9Ik0xNjgsMTU2YTIwLDIwLDAsMCwxLTIwLDIwSDk2VjEzNmg1MkEyMCwyMCwwLDAsMSwxNjgsMTU2Wk0yMjQsNDhWMjA4YTE2LDE2LDAsMCwxLTE2LDE2SDQ4YTE2LDE2LDAsMCwxLTE2LTE2VjQ4QTE2LDE2LDAsMCwxLDQ4LDMySDIwOEExNiwxNiwwLDAsMSwyMjQsNDhaTTE4NCwxNTZhMzYsMzYsMCwwLDAtMTgtMzEuMTVBMzYsMzYsMCwwLDAsMTQwLDY0SDg4YTgsOCwwLDAsMC04LDhWMTg0YTgsOCwwLDAsMCw4LDhoNjBBMzYsMzYsMCwwLDAsMTg0LDE1NlptLTI0LTU2YTIwLDIwLDAsMCwwLTIwLTIwSDk2djQwaDQ0QTIwLDIwLDAsMCwwLDE2MCwxMDBaIi8+PC9zdmc+');} |
| New file |
| | |
| | | .icon-google-logo{--icon:url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTYgMjU2IiBmaWxsPSJjdXJyZW50Q29sb3IiPjxwYXRoIGQ9Ik0yMjIsMTI4YTk0LDk0LDAsMSwxLTIxLjQ5LTU5LjgyLDYsNiwwLDEsMS05LjI1LDcuNjRBODIsODIsMCwxLDAsMjA5Ljc4LDEzNEgxMjhhNiw2LDAsMCwxLDAtMTJoODhBNiw2LDAsMCwxLDIyMiwxMjhaIi8+PC9zdmc+');}.icon-apple-logo{--icon:url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTYgMjU2IiBmaWxsPSJjdXJyZW50Q29sb3IiPjxwYXRoIGQ9Ik0yMTkuNCwxNjcuODRDMjAxLjcxLDE1NS42OSwxOTgsMTM1LjEyLDE5OCwxMjBjMC0xOC40MiwxMy44Ni0zNC4yOSwyMi4xMi00Mi4xMmE2LDYsMCwwLDAsMC04LjcxQzIwOCw1Ny43LDE4Ny4wNyw1MCwxNjgsNTBhNzAuMjMsNzAuMjMsMCwwLDAtNDAsMTIuNTUsNjkuNiw2OS42LDAsMCwwLTg5LjMxLDguMDhBNzIuNjMsNzIuNjMsMCwwLDAsMTgsMTIzLjM1YTEyNS4xMSwxMjUuMTEsMCwwLDAsMzkuNTMsODguMzNBMzcuODUsMzcuODUsMCwwLDAsODMuNiwyMjJoODcuN0EzNy44MywzNy44MywwLDAsMCwxOTksMjEwLjA3YTEyMi42LDEyMi42LDAsMCwwLDE3LjU0LTI0LjJjNi41NS0xMiw1Ljc3LTEzLjc1LDUtMTUuNDhBNi4wNyw2LjA3LDAsMCwwLDIxOS40LDE2Ny44NFptLTI5LjIzLDM0QTI1LjgyLDI1LjgyLDAsMCwxLDE3MS4zLDIxMEg4My42QTI1Ljg1LDI1Ljg1LDAsMCwxLDY1Ljc4LDIwMywxMTMuMjEsMTEzLjIxLDAsMCwxLDMwLDEyM2E2MC41NSw2MC41NSwwLDAsMSwxNy4yMS00NEE1Ni44Miw1Ni44MiwwLDAsMSw4OCw2MmguODFhNTcuMzUsNTcuMzUsMCwwLDEsMzUuNDQsMTIuNzEsNiw2LDAsMCwwLDcuNSwwQTU3LjM5LDU3LjM5LDAsMCwxLDE2OCw2MmMxMy44OSwwLDI4LjgxLDQuNjgsMzkuMTEsMTItOS40NCwxMC4xNC0yMS4xLDI2LjU5LTIxLjEsNDYsMCwyMy43OCw3LjgxLDQyLjYsMjIuNjYsNTQuNzdBMTA3LjMzLDEwNy4zMywwLDAsMSwxOTAuMTcsMjAxLjg5Wm0tNjAtMTcxLjM5QTM4LDM4LDAsMCwxLDE2NywyaDFhNiw2LDAsMCwxLDAsMTJoLTFhMjYsMjYsMCwwLDAtMjUuMTgsMTkuNSw2LDYsMCwxLDEtMTEuNjItM1oiLz48L3N2Zz4=');}.icon-check-circle{--icon:url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTYgMjU2IiBmaWxsPSJjdXJyZW50Q29sb3IiPjxwYXRoIGQ9Ik0xNzIuMjQsOTkuNzZhNiw2LDAsMCwxLDAsOC40OGwtNTYsNTZhNiw2LDAsMCwxLTguNDgsMGwtMjQtMjRhNiw2LDAsMCwxLDguNDgtOC40OEwxMTIsMTUxLjUxbDUxLjc2LTUxLjc1QTYsNiwwLDAsMSwxNzIuMjQsOTkuNzZaTTIzMCwxMjhBMTAyLDEwMiwwLDEsMSwxMjgsMjYsMTAyLjEyLDEwMi4xMiwwLDAsMSwyMzAsMTI4Wm0tMTIsMGE5MCw5MCwwLDEsMC05MCw5MEE5MC4xLDkwLjEsMCwwLDAsMjE4LDEyOFoiLz48L3N2Zz4=');}.icon-cloud-slash{--icon:url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTYgMjU2IiBmaWxsPSJjdXJyZW50Q29sb3IiPjxwYXRoIGQ9Ik01Mi40NCwzNkE2LDYsMCwwLDAsNDMuNTYsNDRsNDAuMTgsNDQuMmMtLjQ1Ljg3LS45LDEuNzUtMS4zMiwyLjY0QTYyLDYyLDAsMSwwLDcyLDIxNGg4OGE4NS4yMyw4NS4yMywwLDAsMCwzMi4zNS02LjNMMjAzLjU2LDIyMGE2LDYsMCwwLDAsOC44OC04LjA4Wk0xNjAsMjAySDcyYTUwLDUwLDAsMSwxLDUuOS05OS42NEE4Ni4yNSw4Ni4yNSwwLDAsMCw3NCwxMjhhNiw2LDAsMCwwLDEyLDAsNzMuOTIsNzMuOTIsMCwwLDEsNi40NC0zMC4ybDkxLjIyLDEwMC4zNEE3My42NSw3My42NSwwLDAsMSwxNjAsMjAyWm04Ni03NGE4NS44NSw4NS44NSwwLDAsMS0yMS44NSw1Ny4yNyw2LDYsMCwwLDEtNC40NywyLDYsNiwwLDAsMS00LjQ3LTEwLDc0LDc0LDAsMCwwLTk5LTEwOC45Miw2LDYsMCwxLDEtNy4xMS05LjY3QTg2LDg2LDAsMCwxLDI0NiwxMjhaIi8+PC9zdmc+');}.icon-exclamation-mark{--icon:url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTYgMjU2IiBmaWxsPSJjdXJyZW50Q29sb3IiPjxwYXRoIGQ9Ik0xNDIsMjAwYTE0LDE0LDAsMSwxLTE0LTE0QTE0LDE0LDAsMCwxLDE0MiwyMDBabS0xNC00MmE2LDYsMCwwLDAsNi02VjQ4YTYsNiwwLDAsMC0xMiwwVjE1MkE2LDYsMCwwLDAsMTI4LDE1OFoiLz48L3N2Zz4=');}.icon-cloud-arrow-down{--icon:url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTYgMjU2IiBmaWxsPSJjdXJyZW50Q29sb3IiPjxwYXRoIGQ9Ik0yNDYsMTI4YTg1LjI3LDg1LjI3LDAsMCwxLTE3LjIsNTEuNiw2LDYsMCwxLDEtOS42LTcuMkE3NCw3NCwwLDEsMCw4NiwxMjhhNiw2LDAsMCwxLTEyLDAsODUuNTQsODUuNTQsMCwwLDEsMy45MS0yNS42NEE1MC42OCw1MC42OCwwLDAsMCw3MiwxMDJhNTAsNTAsMCwwLDAsMCwxMDBIOTZhNiw2LDAsMCwxLDAsMTJINzJBNjIsNjIsMCwxLDEsODIuNDMsOTAuODgsODYsODYsMCwwLDEsMjQ2LDEyOFptLTY2LjI0LDQzLjc2TDE1OCwxOTMuNTFWMTI4YTYsNiwwLDAsMC0xMiwwdjY1LjUxbC0yMS43Ni0yMS43NWE2LDYsMCwwLDAtOC40OCw4LjQ4bDMyLDMyYTYsNiwwLDAsMCw4LjQ4LDBsMzItMzJhNiw2LDAsMCwwLTguNDgtOC40OFoiLz48L3N2Zz4=');}.icon-caret-down{--icon:url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTYgMjU2IiBmaWxsPSJjdXJyZW50Q29sb3IiPjxwYXRoIGQ9Ik0yMTIuMjQsMTAwLjI0bC04MCw4MGE2LDYsMCwwLDEtOC40OCwwbC04MC04MGE2LDYsMCwwLDEsOC40OC04LjQ4TDEyOCwxNjcuNTFsNzUuNzYtNzUuNzVhNiw2LDAsMCwxLDguNDgsOC40OFoiLz48L3N2Zz4=');}.icon-cloud-arrow-up{--icon:url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTYgMjU2IiBmaWxsPSJjdXJyZW50Q29sb3IiPjxwYXRoIGQ9Ik0xODguMjQsMTY0LjI0YTYsNiwwLDAsMS04LjQ4LDBMMTU4LDE0Mi40OVYyMDhhNiw2LDAsMCwxLTEyLDBWMTQyLjQ5bC0yMS43NiwyMS43NWE2LDYsMCwwLDEtOC40OC04LjQ4bDMyLTMyYTYsNiwwLDAsMSw4LjQ4LDBsMzIsMzJBNiw2LDAsMCwxLDE4OC4yNCwxNjQuMjRaTTE2MCw0MkE4Ni4xLDg2LjEsMCwwLDAsODIuNDMsOTAuODgsNjIsNjIsMCwxLDAsNzIsMjE0aDQwYTYsNiwwLDAsMCwwLTEySDcyYTUwLDUwLDAsMCwxLDAtMTAwLDUwLjY4LDUwLjY4LDAsMCwxLDUuOTEuMzZBODUuNTQsODUuNTQsMCwwLDAsNzQsMTI4YTYsNiwwLDAsMCwxMiwwLDc0LDc0LDAsMSwxLDEwMy42LDY3Ljg1LDYsNiwwLDAsMCw0LjgsMTFBODYsODYsMCwwLDAsMTYwLDQyWiIvPjwvc3ZnPg==');}.icon-cloud-check{--icon:url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTYgMjU2IiBmaWxsPSJjdXJyZW50Q29sb3IiPjxwYXRoIGQ9Ik0xNjAsNDJBODYuMTEsODYuMTEsMCwwLDAsODIuNDMsOTAuODgsNjIsNjIsMCwxLDAsNzIsMjE0aDg4YTg2LDg2LDAsMCwwLDAtMTcyWm0wLDE2MEg3MmE1MCw1MCwwLDAsMSwwLTEwMCw1MC42Nyw1MC42NywwLDAsMSw1LjkxLjM1QTg1LjYxLDg1LjYxLDAsMCwwLDc0LDEyOGE2LDYsMCwwLDAsMTIsMCw3NCw3NCwwLDEsMSw3NCw3NFptMzYuMjQtOTQuMjRhNiw2LDAsMCwxLDAsOC40OGwtNDgsNDhhNiw2LDAsMCwxLTguNDgsMGwtMjQtMjRhNiw2LDAsMCwxLDguNDgtOC40OEwxNDQsMTUxLjUxbDQzLjc2LTQzLjc1QTYsNiwwLDAsMSwxOTYuMjQsMTA3Ljc2WiIvPjwvc3ZnPg==');}.icon-cloud-warning{--icon:url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTYgMjU2IiBmaWxsPSJjdXJyZW50Q29sb3IiPjxwYXRoIGQ9Ik0xNjAsNDJBODYuMTEsODYuMTEsMCwwLDAsODIuNDMsOTAuODgsNjIsNjIsMCwxLDAsNzIsMjE0aDg4YTg2LDg2LDAsMCwwLDAtMTcyWm0wLDE2MEg3MmE1MCw1MCwwLDAsMSwwLTEwMCw1MC42Nyw1MC42NywwLDAsMSw1LjkxLjM1QTg1LjYxLDg1LjYxLDAsMCwwLDc0LDEyOGE2LDYsMCwwLDAsMTIsMCw3NCw3NCwwLDEsMSw3NCw3NFptLTYtNzRWODhhNiw2LDAsMCwxLDEyLDB2NDBhNiw2LDAsMCwxLTEyLDBabTE2LDM2YTEwLDEwLDAsMSwxLTEwLTEwQTEwLDEwLDAsMCwxLDE3MCwxNjRaIi8+PC9zdmc+');}.icon-syncing{--icon:url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbDpzcGFjZT0icHJlc2VydmUiIHdpZHRoPSIzMiIgaGVpZ2h0PSIzMiIgZmlsbD0iY3VycmVudENvbG9yIiB2aWV3Qm94PSIwIDAgMjU2IDI1NiI+PHBhdGggaWQ9InJlZnJlc2giIGQ9Ik0xNjAuMDQ3IDEyMi44NzVhMzAuNzg0IDMwLjc4NCAwIDAgMC0yMS43NSA4Ljc5N2MtMi44NDIgMy4wMDMtLjQ2NyA0Ljk3MSAxLjMxMiAzLjE1NiAxMS4wNDMtMTAuNzg2IDI4LjcxLTEwLjY4IDM5LjYyNS4yMzRsNy4yMDMgNy4yMDRoLTEyLjg3NWMtMy4zNDcuMDA4LTMuMTY1IDMuODc1IDAgMy44NzVoMTYuMTFjMi4wNjIgMCAyLjU0LTEuNDE4IDIuNTYyLTQuOTdsLjA5NC0xNC45MjFjLjAyLTMuMjktMy40MzctMy4xNjUtMy40MzcgMHYxMi44NmwtNy4yMDMtNy4xODhhMzAuNzY4IDMwLjc2OCAwIDAgMC0yMS42NDEtOS4wNDd6bS0yOS41OTQgMzkuNzk3Yy0yLjA2MiAwLTIuNTI0IDEuNDAyLTIuNTQ3IDQuOTUzbC0uMDk0IDE0LjkyMmMtLjAyIDMuMjkgMy40MjIgMy4xNjQgMy40MjIgMHYtMTIuODZsNy4yMDMgNy4yMDRjMTEuOTU2IDExLjk1NSAzMS4zMTIgMTIuMDY0IDQzLjQwNy4yNSAyLjg0Mi0zLjAwMy40NTEtNC45ODgtMS4zMjgtMy4xNzItMTEuMDQzIDEwLjc4Ni0yOC43MSAxMC42OC0zOS42MjUtLjIzNWwtNy4xODgtNy4yMDNoMTIuODZjMy4zNDctLjAwOCAzLjE2NS0zLjg2IDAtMy44NmgtMTYuMTF6Ii8+PHBhdGggZD0iTTE2MCA0NGE4NC4xMSA4NC4xMSAwIDAgMC03Ni40MSA0OS4xMkE2MC43MSA2MC43MSAwIDAgMCA3MiA5MmE2MCA2MCAwIDAgMCAwIDEyMGg4OGE4NCA4NCAwIDAgMCAwLTE2OFptMCAxNjBINzJhNTIgNTIgMCAxIDEgOC41NS0xMDMuM0E4My42NiA4My42NiAwIDAgMCA3NiAxMjhhNCA0IDAgMCAwIDggMCA3NiA3NiAwIDEgMSA3NiA3NloiLz48L3N2Zz4=');}.icon-cloud-x{--icon:url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTYgMjU2IiBmaWxsPSJjdXJyZW50Q29sb3IiPjxwYXRoIGQ9Ik0xNjAsNDJBODYuMTEsODYuMTEsMCwwLDAsODIuNDMsOTAuODgsNjIsNjIsMCwxLDAsNzIsMjE0aDg4YTg2LDg2LDAsMCwwLDAtMTcyWm0wLDE2MEg3MmE1MCw1MCwwLDAsMSwwLTEwMCw1MC42Nyw1MC42NywwLDAsMSw1LjkxLjM1QTg1LjYxLDg1LjYxLDAsMCwwLDc0LDEyOGE2LDYsMCwwLDAsMTIsMCw3NCw3NCwwLDEsMSw3NCw3NFptMjguMjQtODUuNzZMMTY4LjQ4LDEzNmwxOS43NiwxOS43NmE2LDYsMCwxLDEtOC40OCw4LjQ4TDE2MCwxNDQuNDhsLTE5Ljc2LDE5Ljc2YTYsNiwwLDAsMS04LjQ4LTguNDhMMTUxLjUyLDEzNmwtMTkuNzYtMTkuNzZhNiw2LDAsMCwxLDguNDgtOC40OEwxNjAsMTI3LjUybDE5Ljc2LTE5Ljc2YTYsNiwwLDAsMSw4LjQ4LDguNDhaIi8+PC9zdmc+');}.icon-arrows-clockwise{--icon:url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTYgMjU2IiBmaWxsPSJjdXJyZW50Q29sb3IiPjxwYXRoIGQ9Ik0yMjIsNDhWOTZhNiw2LDAsMCwxLTYsNkgxNjhhNiw2LDAsMCwxLDAtMTJoMzMuNTJMMTgzLjQ3LDcyYTgxLjUxLDgxLjUxLDAsMCwwLTU3LjUzLTI0aC0uNDZBODEuNSw4MS41LDAsMCwwLDY4LjE5LDcxLjI4YTYsNiwwLDEsMS04LjM4LTguNTgsOTMuMzgsOTMuMzgsMCwwLDEsNjUuNjctMjYuNzZIMTI2YTkzLjQ1LDkzLjQ1LDAsMCwxLDY2LDI3LjUzbDE4LDE4VjQ4YTYsNiwwLDAsMSwxMiwwWk0xODcuODEsMTg0LjcyYTgxLjUsODEuNSwwLDAsMS01Ny4yOSwyMy4zNGgtLjQ2YTgxLjUxLDgxLjUxLDAsMCwxLTU3LjUzLTI0TDU0LjQ4LDE2Nkg4OGE2LDYsMCwwLDAsMC0xMkg0MGE2LDYsMCwwLDAtNiw2djQ4YTYsNiwwLDAsMCwxMiwwVjE3NC40OGwxOCwxOC4wNWE5My40NSw5My40NSwwLDAsMCw2NiwyNy41M2guNTJhOTMuMzgsOTMuMzgsMCwwLDAsNjUuNjctMjYuNzYsNiw2LDAsMSwwLTguMzgtOC41OFoiLz48L3N2Zz4=');}.icon-share-fat{--icon:url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTYgMjU2IiBmaWxsPSJjdXJyZW50Q29sb3IiPjxwYXRoIGQ9Ik0yMzYuMjQsMTA3Ljc2bC04MC04MEE2LDYsMCwwLDAsMTQ2LDMyVjc0LjJjLTU0LjQ4LDMuNTktMTIwLjM5LDU1LTEyNy45MywxMjAuNjZhMTAsMTAsMCwwLDAsMTcuMjMsOGgwQzQ2LjU2LDE5MC44NSw4NywxNTIuNiwxNDYsMTUwLjEzVjE5MmE2LDYsMCwwLDAsMTAuMjQsNC4yNGw4MC04MEE2LDYsMCwwLDAsMjM2LjI0LDEwNy43NlpNMTU4LDE3Ny41MlYxNDRhNiw2LDAsMCwwLTYtNmMtMjcuNzMsMC01NC43Niw3LjI1LTgwLjMyLDIxLjU1YTE5My4zOCwxOTMuMzgsMCwwLDAtNDAuODEsMzAuNjVjNC43LTI2LjU2LDIwLjE2LTUyLDQ0LTcyLjI3Qzk4LjQ3LDk3Ljk0LDEyNy4yOSw4NiwxNTIsODZhNiw2LDAsMCwwLDYtNlY0Ni40OUwyMjMuNTEsMTEyWiIvPjwvc3ZnPg==');}.icon-trash{--icon:url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTYgMjU2IiBmaWxsPSJjdXJyZW50Q29sb3IiPjxwYXRoIGQ9Ik0yMTYsNTBIMTc0VjQwYTIyLDIyLDAsMCwwLTIyLTIySDEwNEEyMiwyMiwwLDAsMCw4Miw0MFY1MEg0MGE2LDYsMCwwLDAsMCwxMkg1MFYyMDhhMTQsMTQsMCwwLDAsMTQsMTRIMTkyYTE0LDE0LDAsMCwwLDE0LTE0VjYyaDEwYTYsNiwwLDAsMCwwLTEyWk05NCw0MGExMCwxMCwwLDAsMSwxMC0xMGg0OGExMCwxMCwwLDAsMSwxMCwxMFY1MEg5NFpNMTk0LDIwOGEyLDIsMCwwLDEtMiwySDY0YTIsMiwwLDAsMS0yLTJWNjJIMTk0Wk0xMTAsMTA0djY0YTYsNiwwLDAsMS0xMiwwVjEwNGE2LDYsMCwwLDEsMTIsMFptNDgsMHY2NGE2LDYsMCwwLDEtMTIsMFYxMDRhNiw2LDAsMCwxLDEyLDBaIi8+PC9zdmc+');}.icon-star{--icon:url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTYgMjU2IiBmaWxsPSJjdXJyZW50Q29sb3IiPjxwYXRoIGQ9Ik0yMzcuMjgsOTcuODdBMTQuMTgsMTQuMTgsMCwwLDAsMjI0Ljc2LDg4bC02MC4yNS00Ljg3LTIzLjIyLTU2LjJhMTQuMzcsMTQuMzcsMCwwLDAtMjYuNTgsMEw5MS40OSw4My4xMSwzMS4yNCw4OGExNC4xOCwxNC4xOCwwLDAsMC0xMi41Miw5Ljg5QTE0LjQzLDE0LjQzLDAsMCwwLDIzLDExMy4zMkw2OSwxNTIuOTNsLTE0LDU5LjI1YTE0LjQsMTQuNCwwLDAsMCw1LjU5LDE1LDE0LjEsMTQuMSwwLDAsMCwxNS45MS42TDEyOCwxOTYuMTJsNTEuNTgsMzEuNzFhMTQuMSwxNC4xLDAsMCwwLDE1LjkxLS42LDE0LjQsMTQuNCwwLDAsMCw1LjU5LTE1bC0xNC01OS4yNUwyMzMsMTEzLjMyQTE0LjQzLDE0LjQzLDAsMCwwLDIzNy4yOCw5Ny44N1ptLTEyLjE0LDYuMzctNDguNjksNDJhNiw2LDAsMCwwLTEuOTIsNS45MmwxNC44OCw2Mi43OWEyLjM1LDIuMzUsMCwwLDEtLjk1LDIuNTcsMi4yNCwyLjI0LDAsMCwxLTIuNi4xTDEzMS4xNCwxODRhNiw2LDAsMCwwLTYuMjgsMEw3MC4xNCwyMTcuNjFhMi4yNCwyLjI0LDAsMCwxLTIuNi0uMSwyLjM1LDIuMzUsMCwwLDEtMS0yLjU3bDE0Ljg4LTYyLjc5YTYsNiwwLDAsMC0xLjkyLTUuOTJsLTQ4LjY5LTQyYTIuMzcsMi4zNywwLDAsMS0uNzMtMi42NSwyLjI4LDIuMjgsMCwwLDEsMi4wNy0xLjY1bDYzLjkyLTUuMTZhNiw2LDAsMCwwLDUuMDYtMy42OWwyNC42My01OS42YTIuMzUsMi4zNSwwLDAsMSw0LjM4LDBsMjQuNjMsNTkuNmE2LDYsMCwwLDAsNS4wNiwzLjY5bDYzLjkyLDUuMTZhMi4yOCwyLjI4LDAsMCwxLDIuMDcsMS42NUEyLjM3LDIuMzcsMCwwLDEsMjI1LjE0LDEwNC4yNFoiLz48L3N2Zz4=');}.icon-alphabetical{--icon:url('data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIiIGhlaWdodD0iMzIiIGZpbGw9ImN1cnJlbnRDb2xvciIgdmVyc2lvbj0iMS4xIiB2aWV3Qm94PSIwIDAgMTgzLjc4IDE4NC4wNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJtNTkuNTg2IDY5Ljc0MmMtMC44NTEzIDAtMS40NjEgMC4xOTY1Ni0xLjgzNjYgMC41OTcxOC0wLjM1MDU0IDAuMzc1NTgtMC41Mjk1OCAxLjAyMjktMC41Mjk1OCAxLjk0OTNzMC4xNzkwMyAxLjU5MzcgMC41Mjk1OCAxLjk5NDRjMC4zNzU1OCAwLjM3NTU4IDAuOTg1MjkgMC41NjMzOCAxLjgzNjYgMC41NjMzOGg3LjAxOTdsLTEyLjQyOCAzNC4zNjZoLTIuMTA3Yy0wLjg1MTMgMC0xLjQ2MSAwLjE5NjU2LTEuODM2NiAwLjU5NzE4LTAuMzUwNTQgMC4zNzU1OC0wLjUyOTU3IDEuMDM0MS0wLjUyOTU3IDEuOTYwNiAwIDAuOTI2NDQgMC4xNzkwMyAxLjU4MjUgMC41Mjk1NyAxLjk4MyAwLjM3NTU4IDAuMzc1NTkgMC45ODUyOSAwLjU2MzM4IDEuODM2NiAwLjU2MzM4aDEyLjU1MmMwLjg1MTMgMCAxLjQ1MjItMC4xODc3OSAxLjgwMjgtMC41NjMzOCAwLjM3NTU4LTAuNDAwNjIgMC41NjMzNy0xLjA1NjYgMC41NjMzNy0xLjk4MyAwLTAuOTI2NDUtMC4xODc3OS0xLjU4NS0wLjU2MzM3LTEuOTYwNi0wLjM1MDU0LTAuNDAwNjItMC45NTE0Ny0wLjU5NzE4LTEuODAyOC0wLjU5NzE4aC00LjU1MjFsMy4xMjExLTguOTM0OWgxOC4yMmwzLjA3NiA4LjkzNDloLTUuMDcwNGMtMC44NTEzIDAtMS40NjEgMC4xOTY1Ni0xLjgzNjYgMC41OTcxOC0wLjM1MDU0IDAuMzc1NTgtMC41Mjk1OCAxLjAzNDEtMC41Mjk1OCAxLjk2MDYgMCAwLjkyNjQ0IDAuMTc5MDMgMS41ODI1IDAuNTI5NTggMS45ODMgMC4zNzU1OCAwLjM3NTU5IDAuOTg1MjkgMC41NjMzOCAxLjgzNjYgMC41NjMzOGgxMy4yOTZjMC44NTEzIDAgMS40NTIyLTAuMTg3NzkgMS44MDI4LTAuNTYzMzggMC4zNzU1OC0wLjQwMDYyIDAuNTYzMzctMS4wNTY2IDAuNTYzMzctMS45ODMgMC0wLjkyNjQ1LTAuMTg3NzktMS41ODUtMC41NjMzNy0xLjk2MDYtMC4zNTA1NC0wLjQwMDYyLTAuOTUxNDctMC41OTcxOC0xLjgwMjgtMC41OTcxOGgtMi4yODczbC0xMy4yNjItMzcuMDM2Yy0wLjMwMDQ3LTAuODUxMy0wLjc1OTk0LTEuNDYxLTEuMzg1OS0xLjgzNjYtMC42MDA5My0wLjQwMDYyLTEuNDA5Ny0wLjU5NzE4LTIuNDExMy0wLjU5NzE4em00NC4xNDYgMGMtMC44NTEzIDAtMS40NzIzIDAuMTk2NTYtMS44NDc4IDAuNTk3MTgtMC4zNTA1NSAwLjM3NTU4LTAuNTE4MyAxLjAyMjktMC41MTgzIDEuOTQ5M3YxMS45MWMwIDAuODc2MzMgMC4yMDUzMiAxLjUwNjEgMC42MzA5OCAxLjg4MTcgMC40MjU2NiAwLjM3NTU4IDEuMTU5MyAwLjU2MzM3IDIuMTg1OSAwLjU2MzM3czEuNzQ5LTAuMTg3NzkgMi4xNzQ3LTAuNTYzMzdjMC40MjU2OS0wLjM3NTU4IDAuNjQyMjYtMS4wMDUzIDAuNjQyMjYtMS44ODE3di05LjM1MTdoMTguODUxbC0yNC43NTQgMzUuMzAxYy0wLjM1MDU0IDAuNTI1ODItMC41MTgzMSAxLjA3MTctMC41MTgzMSAxLjYyMjYgMCAwLjkyNjQ1IDAuMTY3NzcgMS41ODI1IDAuNTE4MzEgMS45ODMxIDAuMzc1NTggMC4zNzU1OCAwLjk5NjU0IDAuNTYzMzggMS44NDc4IDAuNTYzMzhoMjguNzY2YzAuODUxMyAwIDEuNDUyMi0wLjE4NzggMS44MDI4LTAuNTYzMzggMC4zNzU1OC0wLjQwMDYyIDAuNTYzMzgtMS4wNTY2IDAuNTYzMzgtMS45ODMxdi0xMi42NjVjMC0wLjg3NjMzLTAuMjE2NTgtMS40OTQ4LTAuNjQyMjUtMS44NzA0LTAuNDI1NjYtMC4zNzU1OC0xLjE0OC0wLjU2MzM4LTIuMTc0Ny0wLjU2MzM4LTEuMDI2NiAwLTEuNzQ5IDAuMTg3NzktMi4xNzQ3IDAuNTYzMzgtMC40MjU2NiAwLjM3NTU4LTAuNjQyMjQgMC45OTQwMi0wLjY0MjI0IDEuODcwNHYxMC4xMDdoLTE5Ljk3OGwyNC45MDEtMzUuNDU5YzAuMjUwMzktMC4zNTA1NCAwLjM3MTgzLTAuODM4ODMgMC4zNzE4My0xLjQ2NDggMC0wLjkyNjQ1LTAuMTg3OC0xLjU3MzctMC41NjMzOC0xLjk0OTMtMC4zNTA1NS0wLjQwMDYyLTAuOTUxNDctMC41OTcxOC0xLjgwMjgtMC41OTcxOHptLTMxLjc1MiA1LjEwNDJoMC43MDk4NWw2Ljk4NTkgMjAuMzE1aC0xNC43MTZ6bS0zNy43MjMtNDkuMTgzYy00LjczNDIgMC04LjYzMTMgMy44OTctOC42MzEzIDguNjMxM3YxMTUuNDdjMCA0LjczNDIgMy44OTcgOC42MzEzIDguNjMxMyA4LjYzMTNoMTE1LjI2YzQuNzM0MiAwIDguNjQyMS0zLjg5NyA4LjY0MjEtOC42MzEzdi0xMTUuNDdjMC00LjczNDItMy45MDgyLTguNjMxMy04LjY0MjEtOC42MzEzem0wIDUuNzI0aDExNS4yNmMxLjY1OCAwIDIuOTA3IDEuMjQ5MSAyLjkwNyAyLjkwNzF2MTE1LjQ3YzAgMS42NTgtMS4yNDkxIDIuOTA3LTIuOTA3IDIuOTA3aC0xMTUuMjZjLTEuNjU4IDAtMi44OTU4LTEuMjQ5MS0yLjg5NTgtMi45MDd2LTExNS40N2MwLTEuNjU4IDEuMjM3OC0yLjkwNzEgMi44OTU4LTIuOTA3MXoiIGZpbGw9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIuNzIxMTQiLz48L3N2Zz4=');}.icon-palette{--icon:url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTYgMjU2IiBmaWxsPSJjdXJyZW50Q29sb3IiPjxwYXRoIGQ9Ik0xOTkuMzcsNTUuMzFBMTAxLjMyLDEwMS4zMiwwLDAsMCwxMjgsMjZoLTFBMTAyLDEwMiwwLDAsMCwyNiwxMjhjMCw0Mi4wOSwyNi4wNyw3Ny40NCw2OCw5Mi4yNkEzMC4yMSwzMC4yMSwwLDAsMCwxMDQuMTEsMjIyLDMwLjA2LDMwLjA2LDAsMCwwLDEzNCwxOTJhMTgsMTgsMCwwLDEsMTgtMThoNDYuMjFhMjkuODIsMjkuODIsMCwwLDAsMjkuMjUtMjMuMzFBMTAyLjcxLDEwMi43MSwwLDAsMCwyMzAsMTI3LjExLDEwMS4yNSwxMDEuMjUsMCwwLDAsMTk5LjM3LDU1LjMxWk0yMTUuNzYsMTQ4YTE3Ljg5LDE3Ljg5LDAsMCwxLTE3LjU1LDE0SDE1MmEzMCwzMCwwLDAsMC0zMCwzMCwxOCwxOCwwLDAsMS0yNCwxN0M2MSwxOTUuODYsMzgsMTY0Ljg1LDM4LDEyOGE5MCw5MCwwLDAsMSw4OS4wNy05MEgxMjhhOTAuMzQsOTAuMzQsMCwwLDEsOTAsODkuMjJBOTAuNDYsOTAuNDYsMCwwLDEsMjE1Ljc2LDE0OFpNMTM4LDc2YTEwLDEwLDAsMSwxLTEwLTEwQTEwLDEwLDAsMCwxLDEzOCw3NlpNOTQsMTAwQTEwLDEwLDAsMSwxLDg0LDkwLDEwLDEwLDAsMCwxLDk0LDEwMFptMCw1NmExMCwxMCwwLDEsMS0xMC0xMEExMCwxMCwwLDAsMSw5NCwxNTZabTg4LTU2YTEwLDEwLDAsMSwxLTEwLTEwQTEwLDEwLDAsMCwxLDE4MiwxMDBaIi8+PC9zdmc+');}.icon-house{--icon:url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTYgMjU2IiBmaWxsPSJjdXJyZW50Q29sb3IiPjxwYXRoIGQ9Ik0yMTcuOSwxMTAuMWwtODAtODBhMTQsMTQsMCwwLDAtMTkuOCwwbC04MCw4MEExMy45MiwxMy45MiwwLDAsMCwzNCwxMjB2OTZhNiw2LDAsMCwwLDYsNmg2NGE2LDYsMCwwLDAsNi02VjE1OGgzNnY1OGE2LDYsMCwwLDAsNiw2aDY0YTYsNiwwLDAsMCw2LTZWMTIwQTEzLjkyLDEzLjkyLDAsMCwwLDIxNy45LDExMC4xWk0yMTAsMjEwSDE1OFYxNTJhNiw2LDAsMCwwLTYtNkgxMDRhNiw2LDAsMCwwLTYsNnY1OEg0NlYxMjBhMiwyLDAsMCwxLC41OC0xLjQybDgwLTgwYTIsMiwwLDAsMSwyLjg0LDBsODAsODBBMiwyLDAsMCwxLDIxMCwxMjBaIi8+PC9zdmc+');}.icon-sun-dim{--icon:url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTYgMjU2IiBmaWxsPSJjdXJyZW50Q29sb3IiPjxwYXRoIGQ9Ik0xMjIsNDBWMzJhNiw2LDAsMCwxLDEyLDB2OGE2LDYsMCwwLDEtMTIsMFptNjgsODhhNjIsNjIsMCwxLDEtNjItNjJBNjIuMDcsNjIuMDcsMCwwLDEsMTkwLDEyOFptLTEyLDBhNTAsNTAsMCwxLDAtNTAsNTBBNTAuMDYsNTAuMDYsMCwwLDAsMTc4LDEyOFpNNTkuNzYsNjguMjRhNiw2LDAsMSwwLDguNDgtOC40OGwtOC04YTYsNiwwLDAsMC04LjQ4LDguNDhabTAsMTE5LjUyLTgsOGE2LDYsMCwxLDAsOC40OCw4LjQ4bDgtOGE2LDYsMCwxLDAtOC40OC04LjQ4Wm0xMzYtMTM2LTgsOGE2LDYsMCwxLDAsOC40OCw4LjQ4bDgtOGE2LDYsMCwwLDAtOC40OC04LjQ4Wm0uNDgsMTM2YTYsNiwwLDAsMC04LjQ4LDguNDhsOCw4YTYsNiwwLDAsMCw4LjQ4LTguNDhaTTQwLDEyMkgzMmE2LDYsMCwwLDAsMCwxMmg4YTYsNiwwLDAsMCwwLTEyWm04OCw4OGE2LDYsMCwwLDAtNiw2djhhNiw2LDAsMCwwLDEyLDB2LThBNiw2LDAsMCwwLDEyOCwyMTBabTk2LTg4aC04YTYsNiwwLDAsMCwwLDEyaDhhNiw2LDAsMCwwLDAtMTJaIi8+PC9zdmc+');}.icon-moon{--icon:url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTYgMjU2IiBmaWxsPSJjdXJyZW50Q29sb3IiPjxwYXRoIGQ9Ik0yMzIuMTMsMTQzLjY0YTYsNiwwLDAsMC02LTEuNDlBOTAuMDcsOTAuMDcsMCwwLDEsMTEzLjg2LDI5Ljg1YTYsNiwwLDAsMC03LjQ5LTcuNDhBMTAyLjg4LDEwMi44OCwwLDAsMCw1NC40OCw1OC42OCwxMDIsMTAyLDAsMCwwLDE5Ny4zMiwyMDEuNTJhMTAyLjg4LDEwMi44OCwwLDAsMCwzNi4zMS01MS44OUE2LDYsMCwwLDAsMjMyLjEzLDE0My42NFptLTQyLDQ4LjI5YTkwLDkwLDAsMCwxLTEyNi0xMjZBOTAuOSw5MC45LDAsMCwxLDk5LjY1LDM3LjY2LDEwMi4wNiwxMDIuMDYsMCwwLDAsMjE4LjM0LDE1Ni4zNSw5MC45LDkwLjksMCwwLDEsMTkwLjEsMTkxLjkzWiIvPjwvc3ZnPg==');}.icon-sign-out{--icon:url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTYgMjU2IiBmaWxsPSJjdXJyZW50Q29sb3IiPjxwYXRoIGQ9Ik0xMTgsMjE2YTYsNiwwLDAsMS02LDZINDhhNiw2LDAsMCwxLTYtNlY0MGE2LDYsMCwwLDEsNi02aDY0YTYsNiwwLDAsMSwwLDEySDU0VjIxMGg1OEE2LDYsMCwwLDEsMTE4LDIxNlptMTEwLjI0LTkyLjI0LTQwLTQwYTYsNiwwLDAsMC04LjQ4LDguNDhMMjA5LjUxLDEyMkgxMTJhNiw2LDAsMCwwLDAsMTJoOTcuNTFsLTI5Ljc1LDI5Ljc2YTYsNiwwLDEsMCw4LjQ4LDguNDhsNDAtNDBBNiw2LDAsMCwwLDIyOC4yNCwxMjMuNzZaIi8+PC9zdmc+');}.icon-x{--icon:url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTYgMjU2IiBmaWxsPSJjdXJyZW50Q29sb3IiPjxwYXRoIGQ9Ik0yMDQuMjQsMTk1Ljc2YTYsNiwwLDEsMS04LjQ4LDguNDhMMTI4LDEzNi40OSw2MC4yNCwyMDQuMjRhNiw2LDAsMCwxLTguNDgtOC40OEwxMTkuNTEsMTI4LDUxLjc2LDYwLjI0YTYsNiwwLDAsMSw4LjQ4LTguNDhMMTI4LDExOS41MWw2Ny43Ni02Ny43NWE2LDYsMCwwLDEsOC40OCw4LjQ4TDEzNi40OSwxMjhaIi8+PC9zdmc+');}.icon-magnifying-glass{--icon:url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTYgMjU2IiBmaWxsPSJjdXJyZW50Q29sb3IiPjxwYXRoIGQ9Ik0yMjguMjQsMjE5Ljc2bC01MS4zOC01MS4zOGE4Ni4xNSw4Ni4xNSwwLDEsMC04LjQ4LDguNDhsNTEuMzgsNTEuMzhhNiw2LDAsMCwwLDguNDgtOC40OFpNMzgsMTEyYTc0LDc0LDAsMSwxLDc0LDc0QTc0LjA5LDc0LjA5LDAsMCwxLDM4LDExMloiLz48L3N2Zz4=');}.icon-x-circle{--icon:url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTYgMjU2IiBmaWxsPSJjdXJyZW50Q29sb3IiPjxwYXRoIGQ9Ik0xNjQuMjQsMTAwLjI0LDEzNi40OCwxMjhsMjcuNzYsMjcuNzZhNiw2LDAsMSwxLTguNDgsOC40OEwxMjgsMTM2LjQ4bC0yNy43NiwyNy43NmE2LDYsMCwwLDEtOC40OC04LjQ4TDExOS41MiwxMjgsOTEuNzYsMTAwLjI0YTYsNiwwLDAsMSw4LjQ4LTguNDhMMTI4LDExOS41MmwyNy43Ni0yNy43NmE2LDYsMCwwLDEsOC40OCw4LjQ4Wk0yMzAsMTI4QTEwMiwxMDIsMCwxLDEsMTI4LDI2LDEwMi4xMiwxMDIuMTIsMCwwLDEsMjMwLDEyOFptLTEyLDBhOTAsOTAsMCwxLDAtOTAsOTBBOTAuMSw5MC4xLDAsMCwwLDIxOCwxMjhaIi8+PC9zdmc+');}.icon-city{--icon:url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTYgMjU2IiBmaWxsPSJjdXJyZW50Q29sb3IiPjxwYXRoIGQ9Ik0yNDAsMjEwSDIzMFY4OGE2LDYsMCwwLDAtNi02SDE2MGE2LDYsMCwwLDAtNiw2djQySDEwMlY0MGE2LDYsMCwwLDAtNi02SDMyYTYsNiwwLDAsMC02LDZWMjEwSDE2YTYsNiwwLDAsMCwwLDEySDI0MGE2LDYsMCwwLDAsMC0xMlpNMTY2LDk0aDUyVjIxMEgxNjZabS0xMiw0OHY2OEgxMDJWMTQyWk0zOCw0Nkg5MFYyMTBIMzhaTTcwLDcyVjg4YTYsNiwwLDAsMS0xMiwwVjcyYTYsNiwwLDAsMSwxMiwwWm0wLDQ4djE2YTYsNiwwLDAsMS0xMiwwVjEyMGE2LDYsMCwwLDEsMTIsMFptMCw0OHYxNmE2LDYsMCwwLDEtMTIsMFYxNjhhNiw2LDAsMCwxLDEyLDBabTUyLDE2VjE2OGE2LDYsMCwwLDEsMTIsMHYxNmE2LDYsMCwwLDEtMTIsMFptNjQsMFYxNjhhNiw2LDAsMCwxLDEyLDB2MTZhNiw2LDAsMCwxLTEyLDBabTAtNDhWMTIwYTYsNiwwLDAsMSwxMiwwdjE2YTYsNiwwLDAsMS0xMiwwWiIvPjwvc3ZnPg==');}.icon-plus-square{--icon:url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTYgMjU2IiBmaWxsPSJjdXJyZW50Q29sb3IiPjxwYXRoIGQ9Ik0yMDgsMzRINDhBMTQsMTQsMCwwLDAsMzQsNDhWMjA4YTE0LDE0LDAsMCwwLDE0LDE0SDIwOGExNCwxNCwwLDAsMCwxNC0xNFY0OEExNCwxNCwwLDAsMCwyMDgsMzRabTIsMTc0YTIsMiwwLDAsMS0yLDJINDhhMiwyLDAsMCwxLTItMlY0OGEyLDIsMCwwLDEsMi0ySDIwOGEyLDIsMCwwLDEsMiwyWm0tMzYtODBhNiw2LDAsMCwxLTYsNkgxMzR2MzRhNiw2LDAsMCwxLTEyLDBWMTM0SDg4YTYsNiwwLDAsMSwwLTEyaDM0Vjg4YTYsNiwwLDAsMSwxMiwwdjM0aDM0QTYsNiwwLDAsMSwxNzQsMTI4WiIvPjwvc3ZnPg==');}.icon-crosshair-simple{--icon:url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTYgMjU2IiBmaWxsPSJjdXJyZW50Q29sb3IiPjxwYXRoIGQ9Ik0xMjgsMjZBMTAyLDEwMiwwLDEsMCwyMzAsMTI4LDEwMi4xMiwxMDIuMTIsMCwwLDAsMTI4LDI2Wm02LDE5MS44VjE4NGE2LDYsMCwwLDAtMTIsMHYzMy44QTkwLjE1LDkwLjE1LDAsMCwxLDM4LjIsMTM0SDcyYTYsNiwwLDAsMCwwLTEySDM4LjJBOTAuMTUsOTAuMTUsMCwwLDEsMTIyLDM4LjJWNzJhNiw2LDAsMCwwLDEyLDBWMzguMkE5MC4xNSw5MC4xNSwwLDAsMSwyMTcuOCwxMjJIMTg0YTYsNiwwLDAsMCwwLDEyaDMzLjhBOTAuMTUsOTAuMTUsMCwwLDEsMTM0LDIxNy44WiIvPjwvc3ZnPg==');}.icon-dots-six-vertical{--icon:url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTYgMjU2IiBmaWxsPSJjdXJyZW50Q29sb3IiPjxwYXRoIGQ9Ik0xMDIsNjBBMTAsMTAsMCwxLDEsOTIsNTAsMTAsMTAsMCwwLDEsMTAyLDYwWm02MiwxMGExMCwxMCwwLDEsMC0xMC0xMEExMCwxMCwwLDAsMCwxNjQsNzBaTTkyLDExOGExMCwxMCwwLDEsMCwxMCwxMEExMCwxMCwwLDAsMCw5MiwxMThabTcyLDBhMTAsMTAsMCwxLDAsMTAsMTBBMTAsMTAsMCwwLDAsMTY0LDExOFpNOTIsMTg2YTEwLDEwLDAsMSwwLDEwLDEwQTEwLDEwLDAsMCwwLDkyLDE4NlptNzIsMGExMCwxMCwwLDEsMCwxMCwxMEExMCwxMCwwLDAsMCwxNjQsMTg2WiIvPjwvc3ZnPg==');}.icon-plus{--icon:url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTYgMjU2IiBmaWxsPSJjdXJyZW50Q29sb3IiPjxwYXRoIGQ9Ik0yMjIsMTI4YTYsNiwwLDAsMS02LDZIMTM0djgyYTYsNiwwLDAsMS0xMiwwVjEzNEg0MGE2LDYsMCwwLDEsMC0xMmg4MlY0MGE2LDYsMCwwLDEsMTIsMHY4Mmg4MkE2LDYsMCwwLDEsMjIyLDEyOFoiLz48L3N2Zz4=');}.icon-floppy-disk{--icon:url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTYgMjU2IiBmaWxsPSJjdXJyZW50Q29sb3IiPjxwYXRoIGQ9Ik0yMTcuOSw3My40MiwxODIuNTgsMzguMWExMy45LDEzLjksMCwwLDAtOS44OS00LjFINDhBMTQsMTQsMCwwLDAsMzQsNDhWMjA4YTE0LDE0LDAsMCwwLDE0LDE0SDIwOGExNCwxNCwwLDAsMCwxNC0xNFY4My4zMUExMy45LDEzLjksMCwwLDAsMjE3LjksNzMuNDJaTTE3MCwyMTBIODZWMTUyYTIsMiwwLDAsMSwyLTJoODBhMiwyLDAsMCwxLDIsMlptNDAtMmEyLDIsMCwwLDEtMiwySDE4MlYxNTJhMTQsMTQsMCwwLDAtMTQtMTRIODhhMTQsMTQsMCwwLDAtMTQsMTR2NThINDhhMiwyLDAsMCwxLTItMlY0OGEyLDIsMCwwLDEsMi0ySDE3Mi42OWEyLDIsMCwwLDEsMS40MS41OEwyMDkuNDIsODEuOWEyLDIsMCwwLDEsLjU4LDEuNDFaTTE1OCw3MmE2LDYsMCwwLDEtNiw2SDk2YTYsNiwwLDAsMSwwLTEyaDU2QTYsNiwwLDAsMSwxNTgsNzJaIi8+PC9zdmc+');}.icon-pencil-simple{--icon:url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTYgMjU2IiBmaWxsPSJjdXJyZW50Q29sb3IiPjxwYXRoIGQ9Ik0yMjUuOSw3NC43OCwxODEuMjEsMzAuMDlhMTQsMTQsMCwwLDAtMTkuOCwwTDM4LjEsMTUzLjQxYTEzLjk0LDEzLjk0LDAsMCwwLTQuMSw5LjlWMjA4YTE0LDE0LDAsMCwwLDE0LDE0SDkyLjY5YTEzLjk0LDEzLjk0LDAsMCwwLDkuOS00LjFMMjI1LjksOTQuNThhMTQsMTQsMCwwLDAsMC0xOS44Wk05NC4xLDIwOS40MWEyLDIsMCwwLDEtMS40MS41OUg0OGEyLDIsMCwwLDEtMi0yVjE2My4zMWEyLDIsMCwwLDEsLjU5LTEuNDFMMTM2LDcyLjQ4LDE4My41MSwxMjBaTTIxNy40MSw4Ni4xLDE5MiwxMTEuNTEsMTQ0LjQ5LDY0LDE2OS45LDM4LjU4YTIsMiwwLDAsMSwyLjgzLDBsNDQuNjgsNDQuNjlhMiwyLDAsMCwxLDAsMi44M1oiLz48L3N2Zz4=');}.icon-scribble{--icon:url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTYgMjU2IiBmaWxsPSJjdXJyZW50Q29sb3IiPjxwYXRoIGQ9Ik0yMDQuMjUsMTg4LjI0YTE2LjYzLDE2LjYzLDAsMCwwLDAsMjMuNTIsNiw2LDAsMSwxLTguNDgsOC40OCwyOC42MSwyOC42MSwwLDAsMSwwLTQwLjQ4bDkuMzctOS4zOGExNi42MywxNi42MywwLDAsMC0yMy41Mi0yMy41MWwtNjYuNzUsNjYuNzVhMjguNjMsMjguNjMsMCwwLDEtNDAuNDktNDAuNDlsOTguNzYtOTguNzVhMTYuNjMsMTYuNjMsMCwwLDAtMjMuNTItMjMuNTFMODIuODYsMTE3LjYyQTI4LjYzLDI4LjYzLDAsMCwxLDQyLjM3LDc3LjEzTDgzLjc1LDM1Ljc2YTYsNiwwLDEsMSw4LjQ5LDguNDhMNTAuODYsODUuNjJhMTYuNjMsMTYuNjMsMCwwLDAsMjMuNTIsMjMuNTFsNjYuNzUtNjYuNzVhMjguNjMsMjguNjMsMCwwLDEsNDAuNDksNDAuNDlMODIuODYsMTgxLjYyYTE2LjYzLDE2LjYzLDAsMCwwLDIzLjUyLDIzLjUxbDY2Ljc2LTY2Ljc1YTI4LjYzLDI4LjYzLDAsMCwxLDQwLjQ5LDQwLjQ5WiIvPjwvc3ZnPg==');}.icon-shapes{--icon:url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTYgMjU2IiBmaWxsPSJjdXJyZW50Q29sb3IiPjxwYXRoIGQ9Ik02OS42OSw2Mi4xYTYsNiwwLDAsMC0xMS4zOCwwbC00MCwxMjBBNiw2LDAsMCwwLDI0LDE5MGg4MGE2LDYsMCwwLDAsNS42OS03LjlaTTMyLjMyLDE3OCw2NCw4M2wzMS42OCw5NVpNMjA2LDc2YTUwLDUwLDAsMSwwLTUwLDUwQTUwLjA2LDUwLjA2LDAsMCwwLDIwNiw3NlptLTg4LDBhMzgsMzgsMCwxLDEsMzgsMzhBMzgsMzgsMCwwLDEsMTE4LDc2Wm0xMDYsNzBIMTM2YTYsNiwwLDAsMC02LDZ2NTZhNiw2LDAsMCwwLDYsNmg4OGE2LDYsMCwwLDAsNi02VjE1MkE2LDYsMCwwLDAsMjI0LDE0NlptLTYsNTZIMTQyVjE1OGg3NloiLz48L3N2Zz4=');}.icon-folder{--icon:url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTYgMjU2IiBmaWxsPSJjdXJyZW50Q29sb3IiPjxwYXRoIGQ9Ik0yMTYsNzRIMTMwLjQ5bC0yNy45LTI3LjlhMTMuOTQsMTMuOTQsMCwwLDAtOS45LTQuMUg0MEExNCwxNCwwLDAsMCwyNiw1NlYyMDAuNjJBMTMuMzksMTMuMzksMCwwLDAsMzkuMzgsMjE0SDIxNi44OUExMy4xMiwxMy4xMiwwLDAsMCwyMzAsMjAwLjg5Vjg4QTE0LDE0LDAsMCwwLDIxNiw3NFpNNDAsNTRIOTIuNjlhMiwyLDAsMCwxLDEuNDEuNTlMMTEzLjUxLDc0SDM4VjU2QTIsMiwwLDAsMSw0MCw1NFpNMjE4LDIwMC44OWExLjExLDEuMTEsMCwwLDEtMS4xMSwxLjExSDM5LjM4QTEuNCwxLjQsMCwwLDEsMzgsMjAwLjYyVjg2SDIxNmEyLDIsMCwwLDEsMiwyWiIvPjwvc3ZnPg==');}.icon-hash{--icon:url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTYgMjU2IiBmaWxsPSJjdXJyZW50Q29sb3IiPjxwYXRoIGQ9Ik0yMjQsOTBIMTczbDguODktNDguOTNhNiw2LDAsMSwwLTExLjgtMi4xNEwxNjAuODEsOTBIMTA5bDguODktNDguOTNhNiw2LDAsMCwwLTExLjgtMi4xNEw5Ni44MSw5MEg0OGE2LDYsMCwwLDAsMCwxMkg5NC42M2wtOS40Niw1MkgzMmE2LDYsMCwwLDAsMCwxMkg4M0w3NC4xLDIxNC45M2E2LDYsMCwwLDAsNC44Myw3QTUuNjQsNS42NCwwLDAsMCw4MCwyMjJhNiw2LDAsMCwwLDUuODktNC45M0w5NS4xOSwxNjZIMTQ3bC04Ljg5LDQ4LjkzYTYsNiwwLDAsMCw0LjgzLDcsNS42NCw1LjY0LDAsMCwwLDEuMDguMSw2LDYsMCwwLDAsNS44OS00LjkzTDE1OS4xOSwxNjZIMjA4YTYsNiwwLDAsMCwwLTEySDE2MS4zN2w5LjQ2LTUySDIyNGE2LDYsMCwwLDAsMC0xMlptLTc0LjgzLDY0SDk3LjM3bDkuNDYtNTJoNTEuOFoiLz48L3N2Zz4=');}.icon-brackets-angle{--icon:url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTYgMjU2IiBmaWxsPSJjdXJyZW50Q29sb3IiPjxwYXRoIGQ9Ik04NS4wNiw0My4yMiwzMS4xMSwxMjhsNTQsODQuNzhhNiw2LDAsMCwxLTEuODQsOC4yOCw2LDYsMCwwLDEtOC4yOC0xLjg0bC01Ni04OGE2LDYsMCwwLDEsMC02LjQ0bDU2LTg4YTYsNiwwLDAsMSwxMC4xMiw2LjQ0Wm0xNTIsODEuNTYtNTYtODhhNiw2LDAsMSwwLTEwLjEyLDYuNDRMMjI0Ljg5LDEyOGwtNTMuOTUsODQuNzhhNiw2LDAsMCwwLDEuODQsOC4yOCw2LDYsMCwwLDAsOC4yOC0xLjg0bDU2LTg4QTYsNiwwLDAsMCwyMzcuMDYsMTI0Ljc4WiIvPjwvc3ZnPg==');}.icon-brain{--icon:url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTYgMjU2IiBmaWxsPSJjdXJyZW50Q29sb3IiPjxwYXRoIGQ9Ik0yNDYsMTI0YTU0LjEzLDU0LjEzLDAsMCwwLTMyLTQ5LjMzVjcyYTQ2LDQ2LDAsMCwwLTg2LTIyLjY3QTQ2LDQ2LDAsMCwwLDQyLDcydjIuNjdhNTQsNTQsMCwwLDAsMCw5OC42M1YxNzZhNDYsNDYsMCwwLDAsODYsMjIuNjdBNDYsNDYsMCwwLDAsMjE0LDE3NnYtMi43QTU0LjA3LDU0LjA3LDAsMCwwLDI0NiwxMjRaTTg4LDIxMGEzNCwzNCwwLDAsMS0zNC0zMi45NEE1My42Nyw1My42NywwLDAsMCw2NCwxNzhoOGE2LDYsMCwwLDAsMC0xMkg2NEE0Miw0MiwwLDAsMSw1MCw4NC4zOWE2LDYsMCwwLDAsNC01LjY2VjcyYTM0LDM0LDAsMCwxLDY4LDB2NzMuMDVBNDUuODksNDUuODksMCwwLDAsODgsMTMwYTYsNiwwLDAsMCwwLDEyLDM0LDM0LDAsMCwxLDAsNjhabTEwNC00NGgtOGE2LDYsMCwwLDAsMCwxMmg4YTUzLjY3LDUzLjY3LDAsMCwwLDEwLS45NEEzNCwzNCwwLDEsMSwxNjgsMTQyYTYsNiwwLDAsMCwwLTEyLDQ1Ljg5LDQ1Ljg5LDAsMCwwLTM0LDE1LjA1VjcyYTM0LDM0LDAsMCwxLDY4LDB2Ni43M2E2LDYsMCwwLDAsNCw1LjY2QTQyLDQyLDAsMCwxLDE5MiwxNjZabTE0LTU0YTYsNiwwLDAsMS02LDZoLTRhMzQsMzQsMCwwLDEtMzQtMzRWODBhNiw2LDAsMCwxLDEyLDB2NGEyMiwyMiwwLDAsMCwyMiwyMmg0QTYsNiwwLDAsMSwyMDYsMTEyWk02MCwxMThINTZhNiw2LDAsMCwxLDAtMTJoNEEyMiwyMiwwLDAsMCw4Miw4NFY4MGE2LDYsMCwwLDEsMTIsMHY0QTM0LDM0LDAsMCwxLDYwLDExOFoiLz48L3N2Zz4=');}.icon-question{--icon:url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTYgMjU2IiBmaWxsPSJjdXJyZW50Q29sb3IiPjxwYXRoIGQ9Ik0xMzgsMTgwYTEwLDEwLDAsMSwxLTEwLTEwQTEwLDEwLDAsMCwxLDEzOCwxODBaTTEyOCw3NGMtMjEsMC0zOCwxNS4yNS0zOCwzNHY0YTYsNiwwLDAsMCwxMiwwdi00YzAtMTIuMTMsMTEuNjYtMjIsMjYtMjJzMjYsOS44NywyNiwyMi0xMS42NiwyMi0yNiwyMmE2LDYsMCwwLDAtNiw2djhhNiw2LDAsMCwwLDEyLDB2LTIuNDJjMTguMTEtMi41OCwzMi0xNi42NiwzMi0zMy41OEMxNjYsODkuMjUsMTQ5LDc0LDEyOCw3NFptMTAyLDU0QTEwMiwxMDIsMCwxLDEsMTI4LDI2LDEwMi4xMiwxMDIuMTIsMCwwLDEsMjMwLDEyOFptLTEyLDBhOTAsOTAsMCwxLDAtOTAsOTBBOTAuMSw5MC4xLDAsMCwwLDIxOCwxMjhaIi8+PC9zdmc+');}.icon-pen-nib{--icon:url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTYgMjU2IiBmaWxsPSJjdXJyZW50Q29sb3IiPjxwYXRoIGQ9Ik0yNDYsOTIuNjhhMTMuOTQsMTMuOTQsMCwwLDAtNC4xLTkuOUwxNzMuMjEsMTQuMWExNCwxNCwwLDAsMC0xOS44LDBMMTI0LjY4LDQyLjgzLDY2LjIyLDY0Ljc2YTE0LDE0LDAsMCwwLTguOSwxMC44TDM0LjA4LDIxNUE2LDYsMCwwLDAsNDAsMjIyYTYuNjEsNi42MSwwLDAsMCwxLS4wOGwxMzkuNDQtMjMuMjRhMTQsMTQsMCwwLDAsMTAuODEtOC45bDIxLjkyLTU4LjQ2LDI4Ljc0LTI4Ljc0QTEzLjkyLDEzLjkyLDAsMCwwLDI0Niw5Mi42OFptLTY2LDkyLjg5YTIsMiwwLDAsMS0xLjU0LDEuMjdMNTcuNDksMjA3bDUyLjg3LTUyLjg4YTI2LDI2LDAsMSwwLTguNDgtOC40OEw0OSwxOTguNTNsMjAuMTctMTIxQTIsMiwwLDAsMSw3MC40Myw3Nmw1Ni4wNi0yMUwyMDEsMTI5LjUxWk0xMTAsMTMyYTE0LDE0LDAsMSwxLDE0LDE0QTE0LDE0LDAsMCwxLDExMCwxMzJaTTIzMy40MSw5NC4xLDIwOCwxMTkuNTEsMTM2LjQ4LDQ4LDE2MS45LDIyLjU4YTIsMiwwLDAsMSwyLjgzLDBsNjguNjgsNjguNjlhMiwyLDAsMCwxLDAsMi44M1oiLz48L3N2Zz4=');}.icon-list{--icon:url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTYgMjU2IiBmaWxsPSJjdXJyZW50Q29sb3IiPjxwYXRoIGQ9Ik0yMjIsMTI4YTYsNiwwLDAsMS02LDZINDBhNiw2LDAsMCwxLDAtMTJIMjE2QTYsNiwwLDAsMSwyMjIsMTI4Wk00MCw3MEgyMTZhNiw2LDAsMCwwLDAtMTJINDBhNiw2LDAsMCwwLDAsMTJaTTIxNiwxODZINDBhNiw2LDAsMCwwLDAsMTJIMjE2YTYsNiwwLDAsMCwwLTEyWiIvPjwvc3ZnPg==');}.icon-loading{--icon:url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+PHN2Zw0gICAgd2lkdGg9IjMyIg0gICAgaGVpZ2h0PSIzMiINICAgIHZpZXdCb3g9IjAgMCAzMiAzMiINICAgIHZlcnNpb249IjEuMSINICAgIHhtbDpzcGFjZT0icHJlc2VydmUiDSAgICBzdHlsZT0iY2xpcC1ydWxlOmV2ZW5vZGQ7ZmlsbC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlLWxpbmVjYXA6cm91bmQ7c3Ryb2tlLWxpbmVqb2luOnJvdW5kO3N0cm9rZS1taXRlcmxpbWl0OjEuNSINICAgIGlkPSJzdmcxMCINICAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyINICAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxkZWZzDSAgICBpZD0iZGVmczEwIiAvPjxwYXRoDSAgICBpZD0icGF0aDExIg0gICAgc3R5bGU9ImJhc2VsaW5lLXNoaWZ0OmJhc2VsaW5lO2Rpc3BsYXk6aW5saW5lO292ZXJmbG93OnZpc2libGU7dmVjdG9yLWVmZmVjdDpub25lO2ZpbGw6IzIyMjIyMjtlbmFibGUtYmFja2dyb3VuZDphY2N1bXVsYXRlO3N0b3AtY29sb3I6IzAwMDAwMDtzdG9wLW9wYWNpdHk6MSINICAgIGQ9Im0gMTYuNjIxMDk0LDEuMTQyNTc4MSBjIC04LjI2NjMyMzIsMCAtMTYuMjIwODY3MzgsNi40NDI4MDk1IC0xNS41ODU5Mzc4LDE0LjY4NTU0NjkgMC42MDEzNDU1LDcuODA3MzA4IDcuNDM0MTI2NCwxNC4xMjY5OCAxNC45MzM1OTM4LDE0Ljk0MzM1OSA4LjgzOTg0NSwwLjk2MjI4MyAxNS41MDU0NjksLTYuMzc2OTE5IDE1LjAwNTg1OSwtMTQuOTg2MzI4IEMgMzAuNDk1OSw3LjUzNjI2ODQgMjQuODgzMzk3LDEuMTQyNTc4MSAxNi42MjEwOTQsMS4xNDI1NzgxIFogbSAwLDAuNjUwMzkwNyBDIDI2LjQ4ODc4NiwxLjgwMzg2NDUgMjkuNzE0NTE4LDkuNTkzNTgzMyAzMC4zMDI3MzQsMTUuODA0Njg4IDMxLjE0MTk4MiwyNC42NjYzNjUgMjIuMTYwNDU5LDMxLjE2ODA3NyAxNi4wMzkwNjIsMzAuMTI1IDguODk1MTMyNywyOC45MDc2ODEgMi4yNjEzMTQyLDIzLjI3OTM3NiAxLjY4MzU5MzgsMTUuNzc5Mjk3IDEuMDc2OTMzOCw3LjkwMzI3NTQgOC43MjI1NDUxLDEuNzg0MjY5OSAxNi42MjEwOTQsMS43OTI5Njg4IFogbSAtMC4wNjQ0NSwxLjIxODc1IGMgLTMuNjEwMDgzLDAgLTcuMTU0Nzk5NSwxLjQwMTA2ODcgLTkuNzMwNDY5MSwzLjcwMzEyNSBDIDQuMjUwNTAyMyw5LjAxNjkwMDIgMi42NDIwMzcyLDEyLjIyNjI5NSAyLjkxOTkyMTksMTUuODMzOTg0IDMuNDQ2OTM1LDIyLjY3NTcxMiA5LjQyODk2NDksMjguMTk4OTg1IDE1Ljk5ODA0NywyOC45MTQwNjIgMjMuNzE0MjU2LDI5Ljc1NDAyMyAyOS41MzE2MDMsMjMuMzMxNyAyOS4wOTU3MDMsMTUuODIwMzEyIDI4LjY3Nzk0OCw4LjYyMTM5NTMgMjMuNzc2Njg2LDMuMDExNzE4OCAxNi41NTY2NDEsMy4wMTE3MTg4IFogbSAwLDAuMTk1MzEyNCBjIDcuMTE5MTM0LDAgMTEuOTMyNzEsNS41MDgxMzczIDEyLjM0NTcwMywxMi42MjQ5OTk4IEMgMjkuMzMyMDYyLDIzLjIzNjg5NiAyMy42MTg5NTgsMjkuNTQ1OTk4IDE2LjAxOTUzMSwyOC43MTg3NSA5LjU0NTQzMjEsMjguMDE0MDEyIDMuNjM0MTYzNywyMi41NTUxNDMgMy4xMTUyMzQ0LDE1LjgxODM1OSAyLjg0MjQ1NjMsMTIuMjc2OTY3IDQuNDE4NDEwOSw5LjEyODMxNjkgNi45NTcwMzEyLDYuODU5Mzc1IDkuNDk1NjUxNiw0LjU5MDQzMzEgMTIuOTk3MDkzLDMuMjA3MDMxMiAxNi41NTY2NDEsMy4yMDcwMzEyIFogbSAtMC4wNzAzMSwxLjQxNjAxNTcgYyAtMy4xNjE5NzMsMCAtNi4yNjM1MDksMS4yMjU4MTM5IC04LjUxOTUzMTEsMy4yNDIxODc1IEMgNS43MTA3NjkxLDkuODgxNjA4IDQuMzAxNDU0MiwxMi42OTQ1ODkgNC41NDQ5MjE5LDE1Ljg1NTQ2OSA1LjAwNjU2MjQsMjEuODQ4NTU0IDEwLjI0NDE3OCwyNi42ODYxNTkgMTUuOTk4MDQ3LDI3LjMxMjUgMjIuNzU3MDEzLDI4LjA0ODI2MSAyNy44NTQ0NTEsMjIuNDIwOTM2IDI3LjQ3MjY1NiwxNS44NDE3OTcgMjcuMTA2ODI0LDkuNTM3NjAyNSAyMi44MTAxNiw0LjYyMzA0NjkgMTYuNDg2MzI4LDQuNjIzMDQ2OSBaIG0gMCwwLjE5NTMxMjUgYyA2LjIyMjkyLDAgMTAuNDI5OTQ2LDQuODEzMDEzOCAxMC43OTEwMTYsMTEuMDM1MTU2NiAwLjM3NTYxMyw2LjQ3MjYxNSAtNC42MTc1ODQsMTEuOTg2NzIgLTExLjI1OTc2NiwxMS4yNjM2NzIgQyAxMC4zNTg2ODUsMjYuNTAxMTg2IDUuMTkxODM4MSwyMS43Mjc5ODUgNC43MzgyODEyLDE1LjgzOTg0NCA0LjQ5OTkyMDEsMTIuNzQ1MjYyIDUuODc2NzMxNSw5Ljk5NDk3NzggOC4wOTU3MDMxLDguMDExNzE4OCAxMC4zMTQ2NzUsNi4wMjg0NTk1IDEzLjM3NDg5LDQuODE4MzU5NCAxNi40ODYzMjgsNC44MTgzNTk0IFogbSAtMC4wNjgzNiwxLjQxNjAxNTYgYyAtMi43MTM4NzcsMCAtNS4zNzYxMTgsMS4wNTI1MTY0IC03LjMxMjUwMDIsMi43ODMyMDMxIC0xLjkzNjM4MjgsMS43MzA2ODY5IC0zLjE0NjU1MTcsNC4xNDUzMTE5IC0yLjkzNzUsNi44NTkzNzQ5IDAuMzk2MjY5OSw1LjE0NDQzIDQuODg5NDQ0Miw5LjI5NDQyOSA5LjgyODEyNTIsOS44MzIwMzEgNS44MDE3NDksMC42MzE1NjIgMTAuMTc5MjU3LC00LjE5ODgyOCA5Ljg1MTU2MiwtOS44NDU3MDMgQyAyNS41MzM3NSwxMC40NTM4MjIgMjEuODQ1NjE2LDYuMjM0Mzc1IDE2LjQxNzk3NCw2LjIzNDM3NSBaIG0gMCwwLjE5NTMxMjUgYyA1LjMyNjczLDAgOC45MjUyMjYsNC4xMTc5MDU1IDkuMjM0Mzc1LDkuNDQ1MzEyNSAwLjMyMTUxMyw1LjU0MDM1MSAtMy45NDk4MDEsMTAuMjU5NDc0IC05LjYzNDc2Niw5LjY0MDYyNSBDIDExLjE3Mzg3NSwyNC45ODgzNjIgNi43NDk1MTQzLDIwLjkwMDgxNCA2LjM2MTMyODEsMTUuODYxMzI4IDYuMTU3MzgzMSwxMy4yMTM1NjMgNy4zMzUwNDMxLDEwLjg1OTY4MiA5LjIzNDM3NSw5LjE2MjEwOTQgMTEuMTMzNzA3LDcuNDY0NTM3MiAxMy43NTQ2MjgsNi40Mjk2ODc1IDE2LjQxNzk2OSw2LjQyOTY4NzUgWiBtIC0wLjA2ODM2LDEuNDE2MDE1NiBjIC0yLjI2NTc3NSwwIC00LjQ4ODcyOSwwLjg3OTIxOTYgLTYuMTA1NDY4LDIuMzI0MjE4OSAtMS42MTY3NDA4LDEuNDQ0OTk5IC0yLjYyNzc2MDcsMy40NjEyNjkgLTIuNDUzMTI1NCw1LjcyODUxNiAwLjMzMDg5ODYsNC4yOTU3NjggNC4wODE1OTY0LDcuNzYwMTIgOC4yMDUwNzg0LDguMjA4OTg0IDQuODQ0NTI1LDAuNTI3MzYgOC41MDAxNTYsLTMuNTA2MDk3IDguMjI2NTYyLC04LjIyMDcwMyBDIDIzLjk2MDY3MiwxMS4zNzE5OTYgMjAuODgxMDYsNy44NDU3MDMxIDE2LjM0OTYxNCw3Ljg0NTcwMzEgWiBtIDAsMC4xOTUzMTI1IGMgNC40MzA1MzQsMCA3LjQyMjQ2MSwzLjQyMjc5OTQgNy42Nzk2ODgsNy44NTU0Njg0IDAuMjY3NDEyLDQuNjA4MDgyIC0zLjI4Mzk3OCw4LjUzMjIyNiAtOC4wMTE3MTksOC4wMTc1NzggQyAxMS45ODkwNzUsMjMuNDc1NTM4IDguMzA3MTg5OSwyMC4wNzU1OTMgNy45ODQzNzUsMTUuODg0NzY2IDcuODE0ODQ2MywxMy42ODM4MTkgOC43OTUzMTA1LDExLjcyNjMzOCAxMC4zNzUsMTAuMzE0NDUzIDExLjk1NDY4OSw4LjkwMjU2ODkgMTQuMTM0MzcsOC4wNDEwMTU2IDE2LjM0OTYwOSw4LjA0MTAxNTYgWiBtIC0wLjA2ODM2LDEuNDE2MDE1NiBjIC0xLjgxNzY3MiwwIC0zLjYwMTM0MiwwLjcwMzk2ODggLTQuODk4NDM4LDEuODYzMjgwOCAtMS4yOTcwOTUsMS4xNTkzMSAtMi4xMDg5NjgzLDIuNzc5MTg1IC0xLjk2ODc0OTUsNC41OTk2MSAwLjI2NTUyNjksMy40NDcxMTEgMy4yNzM3NTA1LDYuMjI1ODEzIDYuNTgyMDMxNSw2LjU4NTkzNyAzLjg4NzI5NSwwLjQyMzE2IDYuODIzMDA4LC0yLjgxNTMxOCA2LjYwMzUxNSwtNi41OTc2NTYgQyAyMi4zODk1NDEsMTIuMjg4MjIyIDE5LjkxNjQ5NSw5LjQ1NzAzMTEgMTYuMjgxMjUsOS40NTcwMzEyIFogbSAwLDAuMTk1MzEyNiBjIDMuNTM0MzMzLDAgNS45MTc3NDIsMi43Mjc2OTYyIDYuMTIzMDQ3LDYuMjY1NjI1MiAwLjIxMzMxMSwzLjY3NTgxNCAtMi42MTYyMDgsNi44MDMwMjUgLTYuMzg2NzE5LDYuMzkyNTc4IC0zLjIxMzI5OCwtMC4zNDk3ODUgLTYuMTUwNzU5NywtMy4wNjIxMyAtNi40MDgyMDMsLTYuNDA0Mjk3IC0wLjEzNTExMjIsLTEuNzU0MTI3IDAuNjQ0MjUyLC0zLjMxMzI1NyAxLjkwNDI5NywtNC40Mzk0NTMgMS4yNjAwNDUsLTEuMTI2MTk2IDMuMDAwNDQxLC0xLjgxNDQ1MzMgNC43Njc1NzgsLTEuODE0NDUzMiB6IG0gLTAuMDcwMzEsMS40MTYwMTUyIGMgLTEuMzY5NTcyLDAgLTIuNzEyLDAuNTMwNjc1IC0zLjY4OTQ1NCwxLjQwNDI5NyAtMC45Nzc0NTMsMC44NzM2MjIgLTEuNTkwMTc3LDIuMDk1MTQ1IC0xLjQ4NDM3NSwzLjQ2ODc1IDAuMjAwMTU2LDIuNTk4NDUyIDIuNDY1OSw0LjY4OTU1MSA0Ljk1ODk4NSw0Ljk2MDkzOCAyLjkzMDA3LDAuMzE4OTU4IDUuMTQzOTA4LC0yLjEyMjU4NyA0Ljk3ODUxNSwtNC45NzI2NTYgLTAuMTU4MTQ1LC0yLjcyNTI0NCAtMi4wMjQ2MjIsLTQuODYxMzI5IC00Ljc2MzY3MSwtNC44NjEzMjkgeiBtIDAsMC4xOTUzMTMgYyAyLjYzODEzNSwwIDQuNDE0OTc1LDIuMDM0NTQ0IDQuNTY4MzU5LDQuNjc3NzM0IDAuMTU5MjExLDIuNzQzNTQ2IC0xLjk1MDM4Niw1LjA3MzgyNCAtNC43NjM2NzIsNC43Njc1NzggLTIuMzk4MTAyLC0wLjI2MTA0NyAtNC41OTExMzEsLTIuMjg3NzQxIC00Ljc4MzIwMywtNC43ODEyNSAtMC4xMDA2OTYsLTEuMzA3MzA4IDAuNDc5NTE5LC0yLjQ3MDAzOSAxLjQxOTkyMiwtMy4zMTA1NDYgMC45NDA0MDMsLTAuODQwNTA4IDIuMjM5NTU3LC0xLjM1MzUxNiAzLjU1ODU5NCwtMS4zNTM1MTYgeiBtIC0wLjA2ODM2LDEuNDE2MDE2IGMgLTAuOTIxNDcyLDAgLTEuODIyNjU3LDAuMzU1NDI1IC0yLjQ4MDQ2OSwwLjk0MzM1OSAtMC42NTc4MTEsMC41ODc5MzQgLTEuMDczMzM5LDEuNDE1MDEgLTEuMDAxOTUzLDIuMzQxNzk3IDAuMTM0Nzg1LDEuNzQ5NzkyIDEuNjU2MDk1LDMuMTUzMjkxIDMuMzMzOTg1LDMuMzM1OTM3IDEuOTcyODQ2LDAuMjE0NzU5IDMuNDY2NzYsLTEuNDMxODA5IDMuMzU1NDY4LC0zLjM0OTYwOSAtMC4xMDYyMjQsLTEuODMwNTAzIC0xLjM2NDE3NywtMy4yNzE0ODcgLTMuMjA3MDMxLC0zLjI3MTQ4NCB6IG0gMCwwLjE5NTMxMiBjIDEuNzQxOTQyLDAgMi45MTIyMDksMS4zMzk0NCAzLjAxMzY3MiwzLjA4Nzg5MSAwLjEwNTExLDEuODExMjc2IC0xLjI4NDU2MiwzLjM0NjU3NyAtMy4xNDA2MjUsMy4xNDQ1MzEgLTEuNTgyOTA3LC0wLjE3MjMwNyAtMy4wMzM0NTUsLTEuNTEzMzU1IC0zLjE2MDE1NiwtMy4xNTgyMDMgLTAuMDY2MjgsLTAuODYwNDkgMC4zMTQ3ODUsLTEuNjI0ODY4IDAuOTM1NTQ3LC0yLjE3OTY4OCAwLjYyMDc0OSwtMC41NTQ4MTkgMS40ODA2MiwtMC44OTQ1MzEgMi4zNTE1NTYsLTAuODk0NTMxIHogbSAtMC4wNjgzNiwxLjQxNjAxNiBjIC0wLjQ3MzM2OSwwIC0wLjkzNTI3MSwwLjE4MjEyOSAtMS4yNzM0MzgsMC40ODQzNzUgLTAuMzM4MTY3LDAuMzAyMjQ2IC0wLjU1NDU0NiwwLjczMDk2OSAtMC41MTc1NzgsMS4yMTA5MzcgMC4wNjk0MSwwLjkwMTEzMyAwLjg0ODI0OSwxLjYxODk4MSAxLjcxMDkzOCwxLjcxMjg5MSAxLjAxNTYxNiwwLjExMDU1NyAxLjc4OTYxNCwtMC43NDEwMzEgMS43MzI0MjEsLTEuNzI2NTYzIC0wLjA1NDMsLTAuOTM1NzY2IC0wLjcwNTY5MSwtMS42ODE2NCAtMS42NTIzNDMsLTEuNjgxNjQgeiBtIDAsMC4xOTUzMTIgYyAwLjg0NTc0LDAgMS40MDc0OSwwLjY0NDMzMyAxLjQ1NzAzMSwxLjQ5ODA0NyAwLjA1MTAxLDAuODc5MDA4IC0wLjYxNjc5MywxLjYxOTMyOSAtMS41MTU2MjUsMS41MjE0ODQgLTAuNzY3NzA2LC0wLjA4MzU3IC0xLjQ3NTc4LC0wLjczODk2NyAtMS41MzcxMDksLTEuNTM1MTU2IC0wLjAzMTg2LC0wLjQxMzY3MSAwLjE1MDA1NSwtMC43Nzk2OTcgMC40NTExNzIsLTEuMDQ4ODI4IDAuMzAxMTE2LC0wLjI2OTEzMSAwLjcyMTY5OCwtMC40MzU1NDcgMS4xNDQ1MzEsLTAuNDM1NTQ3IHoiIC8+PC9zdmc+');}.icon-infinity{--icon:url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTYgMjU2IiBmaWxsPSJjdXJyZW50Q29sb3IiPjxwYXRoIGQ9Ik0yNDYsMTI4YTU0LDU0LDAsMCwxLTkyLjE4LDM4LjE4LDMuMDcsMy4wNywwLDAsMS0uMjUtLjI2bC02MC02Ny43NGE0Miw0MiwwLDEsMCwwLDU5LjY0bDguNTctOS42N2E2LDYsMCwxLDEsOSw4bC04LjY5LDkuODFhMy4wNywzLjA3LDAsMCwxLS4yNS4yNiw1NCw1NCwwLDEsMSwwLTc2LjM2LDMuMDcsMy4wNywwLDAsMSwuMjUuMjZsNjAsNjcuNzRhNDIsNDIsMCwxLDAsMC01OS42NGwtOC41Nyw5LjY3YTYsNiwwLDEsMS05LThsOC42OS05LjgxYTMuMDcsMy4wNywwLDAsMSwuMjUtLjI2QTU0LDU0LDAsMCwxLDI0NiwxMjhaIi8+PC9zdmc+');}.icon-arrow-counter-clockwise{--icon:url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTYgMjU2IiBmaWxsPSJjdXJyZW50Q29sb3IiPjxwYXRoIGQ9Ik0yMjIsMTI4YTk0LDk0LDAsMCwxLTkyLjc0LDk0SDEyOGE5My40Myw5My40MywwLDAsMS02NC41LTI1LjY1LDYsNiwwLDEsMSw4LjI0LTguNzJBODIsODIsMCwxLDAsNzAsNzBsLS4xOS4xOUwzOS40NCw5OEg3MmE2LDYsMCwwLDEsMCwxMkgyNGE2LDYsMCwwLDEtNi02VjU2YTYsNiwwLDAsMSwxMiwwVjkwLjM0TDYxLjYzLDYxLjRBOTQsOTQsMCwwLDEsMjIyLDEyOFoiLz48L3N2Zz4=');}.icon-clock{--icon:url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTYgMjU2IiBmaWxsPSJjdXJyZW50Q29sb3IiPjxwYXRoIGQ9Ik0xMjgsMjZBMTAyLDEwMiwwLDEsMCwyMzAsMTI4LDEwMi4xMiwxMDIuMTIsMCwwLDAsMTI4LDI2Wm0wLDE5MmE5MCw5MCwwLDEsMSw5MC05MEE5MC4xLDkwLjEsMCwwLDEsMTI4LDIxOFptNjItOTBhNiw2LDAsMCwxLTYsNkgxMjhhNiw2LDAsMCwxLTYtNlY3MmE2LDYsMCwwLDEsMTIsMHY1MGg1MEE2LDYsMCwwLDEsMTkwLDEyOFoiLz48L3N2Zz4=');}.icon-x-square{--icon:url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTYgMjU2IiBmaWxsPSJjdXJyZW50Q29sb3IiPjxwYXRoIGQ9Ik0yMDgsMzRINDhBMTQsMTQsMCwwLDAsMzQsNDhWMjA4YTE0LDE0LDAsMCwwLDE0LDE0SDIwOGExNCwxNCwwLDAsMCwxNC0xNFY0OEExNCwxNCwwLDAsMCwyMDgsMzRabTIsMTc0YTIsMiwwLDAsMS0yLDJINDhhMiwyLDAsMCwxLTItMlY0OGEyLDIsMCwwLDEsMi0ySDIwOGEyLDIsMCwwLDEsMiwyWk0xNjQuMjQsMTAwLjI0LDEzNi40OCwxMjhsMjcuNzYsMjcuNzZhNiw2LDAsMSwxLTguNDgsOC40OEwxMjgsMTM2LjQ4bC0yNy43NiwyNy43NmE2LDYsMCwwLDEtOC40OC04LjQ4TDExOS41MiwxMjgsOTEuNzYsMTAwLjI0YTYsNiwwLDAsMSw4LjQ4LTguNDhMMTI4LDExOS41MmwyNy43Ni0yNy43NmE2LDYsMCwwLDEsOC40OCw4LjQ4WiIvPjwvc3ZnPg==');}.icon-eye-closed{--icon:url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTYgMjU2IiBmaWxsPSJjdXJyZW50Q29sb3IiPjxwYXRoIGQ9Ik0yMjkuMjEsMTY1YTYsNiwwLDAsMS0xMC40Miw2bC0yMC0zNS4wOGExMjIsMTIyLDAsMCwxLTM5LDE4LjA5bDYuMTcsMzdhNiw2LDAsMCwxLTQuOTMsNi45MSw2Ljg1LDYuODUsMCwwLDEtMSwuMDgsNiw2LDAsMCwxLTUuOTEtNUwxNDgsMTU2LjQ0YTEyOC44NiwxMjguODYsMCwwLDEtNDAsMEwxMDEuOTIsMTkzQTYsNiwwLDAsMSw5NiwxOThhNi44NSw2Ljg1LDAsMCwxLTEtLjA4QTYsNiwwLDAsMSw5MC4wOCwxOTFsNi4xNy0zN2ExMjIsMTIyLDAsMCwxLTM5LTE4LjA5TDM3LjIxLDE3MWE2LDYsMCwxLDEtMTAuNDItNmwyMC44NS0zNi40OGExNTIsMTUyLDAsMCwxLTIwLjMxLTIwLjc3LDYsNiwwLDAsMSw5LjM0LTcuNTRDNTMuNTQsMTIxLjExLDgzLjA3LDE0NiwxMjgsMTQ2czc0LjQ2LTI0Ljg5LDkxLjMzLTQ1Ljc3YTYsNiwwLDAsMSw5LjM0LDcuNTQsMTUyLDE1MiwwLDAsMS0yMC4zMSwyMC43N1oiLz48L3N2Zz4=');}.icon-logo{--icon:url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+PHN2Zw0gICAgd2lkdGg9IjMyIg0gICAgaGVpZ2h0PSIzMiINICAgIHZpZXdCb3g9IjAgMCAzMiAzMiINICAgIHZlcnNpb249IjEuMSINICAgIHhtbDpzcGFjZT0icHJlc2VydmUiDSAgICBzdHlsZT0iY2xpcC1ydWxlOmV2ZW5vZGQ7ZmlsbC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlLWxpbmVjYXA6c3F1YXJlO3N0cm9rZS1saW5lam9pbjpyb3VuZDtzdHJva2UtbWl0ZXJsaW1pdDoxLjUiDSAgICBpZD0ic3ZnMTQiDSAgICB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciDSAgICB4bWxuczpzdmc9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48ZGVmcw0gICAgaWQ9ImRlZnMxNCIgLz48cGF0aA0gICAgZD0iTSAxNi41ODAwNzgsMi4xMzI4MTI1IEMgOC44NjQ4NDQ5LDIuMTMyODEyNSAxLjQ0MDYwMjEsOC4xNDY2MjE4IDIuMDMzMjAzMSwxNS44Mzk4NDQgMi41OTQ0NTg4LDIzLjEyNjY2NiA4Ljk3MTIwMTIsMjkuMDI1MTU1IDE1Ljk3MDcwMywyOS43ODcxMDkgMjQuMjIxMjI0LDMwLjY4NTI0IDMwLjQ0MDkxMSwyMy44MzQyNzcgMjkuOTc0NjA5LDE1Ljc5ODgyOCAyOS41Mjc4MTMsOC4wOTk4NjU1IDI0LjI5MTU2LDIuMTMyODEyNSAxNi41ODAwNzgsMi4xMzI4MTI1IFogbSAwLDAuNjA3NDIxOSBjIDAuMDEwNDYsMCAwLjAyMDgzLDAgMC4wMzEyNSwwIFYgMjkuMjMyNDIyIGMgLTAuMTkwMzIzLC0wLjAxMjE4IC0wLjM4MTUyMSwtMC4wMjc4MyAtMC41NzQyMTksLTAuMDQ4ODMgQyA5LjMxMzA0NTMsMjguNDUxNjE1IDMuMTc3ODc3NSwyMi43OTMwNDQgMi42Mzg2NzE5LDE1Ljc5Mjk2OSAyLjA3MjQ1Niw4LjQ0MjAxNTMgOS4yMDgxMDA4LDIuNzQwMjM0NCAxNi41ODAwNzgsMi43NDAyMzQ0IFogTSAxNi4wOTE3OTcsMy44ODQ3NjU2IDE2LDMuODg4NjcxOSBDIDEyLjcyNTQ1NCw0LjAxODM0ODkgOS41NTIzMzc5LDUuMzY0NjgzOCA3LjI1NTg1OTQsNy41IDQuOTU5MzgwOSw5LjYzNTMxNjIgMy41NDAyNzAzLDEyLjU2NDk3MiAzLjc5Mjk2ODgsMTUuODQ1NzAzIDQuMjg0NzczOSwyMi4yMzAwNDUgOS44NjQ0ODEyLDI3LjM4MzYwNiAxNS45OTQxNDEsMjguMDUyNzM0IGwgMC4wODk4NCwwLjAwOTggMC4wMjE0OCwtMC4xODE2NDEgLTAuMDkxOCwtMC4wMDk4IEMgOS45NzI2NzQ5LDI3LjIxMTY0NCA0LjQ1ODg2OTEsMjIuMTE2NDY4IDMuOTc0NjA5NCwxNS44MzAwNzggMy43MjY1NTU5LDEyLjYwOTY1MSA1LjExNTgwODQsOS43MzkwNDM3IDcuMzc4OTA2Miw3LjYzNDc2NTYgOS42NDIwMDQxLDUuNTMwNDg3NSAxMi43Nzg1MzksNC4xOTgxOTY4IDE2LjAwNzgxMiw0LjA3MDMxMjUgbCAwLjA5MTgsLTAuMDAzOTEgeiBtIDAsMS41MDE5NTMxIEwgMTYsNS4zOTA2MjUgQyAxMy4xMzE5NDksNS41MDQyMDQ3IDEwLjM1MzI5OCw2LjY4NDM0MTUgOC4zNDE3OTY5LDguNTU0Njg3NSA2LjMzMDI5NjIsMTAuNDI1MDMzIDUuMDg3MTkyOSwxMi45OTA4MTkgNS4zMDg1OTM3LDE1Ljg2NTIzNCA1LjczOTM5NCwyMS40NTc2NjkgMTAuNjI1MTYxLDI1Ljk3MDU0NyAxNS45OTQxNDEsMjYuNTU2NjQxIGwgMC4wODk4NCwwLjAwOTggMC4wMjE0OCwtMC4xNzk2ODcgLTAuMDkxOCwtMC4wMDk4IEMgMTAuNzMzMzU0LDI1LjgwMDUzMyA1LjkxMzQ4OTIsMjEuMzQ2MDQ2IDUuNDkwMjM0NCwxNS44NTE1NjMgNS4yNzM0Nzg0LDEzLjAzNzQ1MSA2LjQ4NjcyMzcsMTAuNTI2ODA4IDguNDY0ODQzOCw4LjY4NzUgMTAuNDQyOTY0LDYuODQ4MTkyMiAxMy4xODUwMzIsNS42ODQwNTI2IDE2LjAwNzgxMiw1LjU3MjI2NTYgbCAwLjA5MTgsLTAuMDAzOTEgeiBtIDAsMS41MDM5MDYzIEwgMTYsNi44OTI1NzgxIGMgLTIuNDYxNTc3LDAuMDk3NDgzIC00Ljg0NTcyOCwxLjExMTQxNzQgLTYuNTcyMjY1NiwyLjcxNjc5NjkgLTEuNzI2NTM4LDEuNjA1MzggLTIuNzk1NTc0MSwzLjgwNzI4MiAtMi42MDU0Njg4LDYuMjc1MzkxIDAuMzY5Nzk4Niw0LjgwMDU0IDQuNTYzNTMzNCw4LjY3NDY3NCA5LjE3MTg3NTQsOS4xNzc3MzQgbCAwLjA4OTg0LDAuMDA5OCAwLjAyMTQ4LC0wLjE4MTY0MSAtMC4wOTE4LC0wLjAwOTggQyAxMS40OTQwMzcsMjQuMzg3NDgxIDcuMzY2MTU1NywyMC41NzM2MzQgNy4wMDM5MDYyLDE1Ljg3MTA5NCA2LjgxODQ0ODEsMTMuNDYzMzIgNy44NTc2NDA1LDExLjMxNjUxMyA5LjU1MDc4MTMsOS43NDIxODc1IDExLjI0MzkyMiw4LjE2Nzg2MTggMTMuNTkxNTI5LDcuMTcxODYwOCAxNi4wMDc4MTIsNy4wNzYxNzE5IGwgMC4wOTE4LC0wLjAwMzkxIHogbSAwLDEuNTAxOTUzMSBMIDE2LDguMzk2NDg0NCBjIC0yLjA1NTA3MywwLjA4MTM4NCAtNC4wNDQ3NzUsMC45MjUyMzM0IC01LjQ4NjMyOCwyLjI2NTYyNDYgLTEuNDQxNTUzNSwxLjM0MDM5MyAtMi4zMzQ1ODgxLDMuMTgyMzc5IC0yLjE3NTc4MTQsNS4yNDQxNDEgMC4zMDg3OTIsNC4wMDg1NzkgMy44MDg2MDU0LDcuMjQwMTM2IDcuNjU2MjUwNCw3LjY2MDE1NiBsIDAuMDg5ODQsMC4wMDk4IDAuMDA3OCwtMC4wNjgzNiB2IC0wLjAwMiBsIDAuMDAyLC0wLjAwOTggYyA5LjQ5ZS00LC0wLjAwMzQgMC4wMDM1LC0wLjAwNjIgMC4wMDM5LC0wLjAwOTggNi40MmUtNCwtMC4wMDY3IDguMDJlLTQsLTAuMDEzMDEgMCwtMC4wMTk1MyBsIDAuMDA3OCwtMC4wNzIyNyAtMC4wOTE4LC0wLjAwOTggQyAxMi4yNTQ2NjcsMjIuOTc0NDIyIDguODIwNzc5NiwxOS44MDMyMzEgOC41MTk1MzEzLDE1Ljg5MjU3OCA4LjM2NTM2ODIsMTMuODkxMTA1IDkuMjI4NTM3MywxMi4xMDYyMzcgMTAuNjM2NzE5LDEwLjc5Njg3NSAxMi4wNDQ5LDkuNDg3NTEzIDEzLjk5Nzk5OSw4LjY1NzcxNyAxNi4wMDc4MTIsOC41NzgxMjUgbCAwLjA5MTgsLTAuMDAzOTEgeiBtIDAsMS41MDE5NTMyIEwgMTYsOS44OTg0Mzc1IGMgLTEuNjQ4NTg4LDAuMDY1Mjg3IC0zLjI0NTc2MSwwLjc0MjkzODUgLTQuNDAyMzQ0LDEuODE4MzU5NSAtMS4xNTY1ODIsMS4wNzU0MjEgLTEuODcxNjUwNiwyLjU1MzUzOCAtMS43NDQxNDA0LDQuMjA4OTg0IDAuMjQ3Nzg4NCwzLjIxNjY2OSAzLjA1MzY0MTQsNS44MDk1MDEgNi4xNDA2MjU0LDYuMTQ2NDg1IGwgMC4wODk4NCwwLjAwOTggMC4wMjE0OCwtMC4xODE2NCAtMC4wOTE4LC0wLjAwOTggYyAtMi45OTgzNDQsLTAuMzI3MzA4IC01LjczODI3MywtMi44NTk3OTggLTUuOTc4NTE2LC01Ljk3ODUxNiAtMC4xMjI4NjQ1LC0xLjU5NTE0MiAwLjU2NDI5OCwtMy4wMTgxMTcgMS42ODc1LC00LjA2MjUgMS4xMjMyMDIsLTEuMDQ0MzgyIDIuNjgxODM5LC0xLjcwNjAzNyA0LjI4NTE1NiwtMS43Njk1MzEgbCAwLjA5MTgsLTAuMDAzOSB6IG0gMCwxLjUwMzkwNjcgLTAuMDkxOCwwLjAwMiBjIC0xLjI0MjA5NSwwLjA0OTE5IC0yLjQ0NDgsMC41NjA2NTIgLTMuMzE2NDA2LDEuMzcxMDkzIC0wLjg3MTYwNiwwLjgxMDQ0MiAtMS40MTI2MTksMS45MjQ3MTMgLTEuMzE2NDA2LDMuMTczODI5IDAuMTg2NzgzLDIuNDI0NzMyIDIuMzAwNjQzLDQuMzc2OTEzIDQuNjI2OTUzLDQuNjMwODU5IGwgMC4wODk4NCwwLjAwOTggMC4wMjE0OCwtMC4xODE2NCAtMC4wOTE4LC0wLjAwOTggYyAtMi4yMzc2OTIsLTAuMjQ0MjcyIC00LjI4NTYwNCwtMi4xMzYwODMgLTQuNDY0ODQ0LC00LjQ2Mjg5IC0wLjA5MTU3LC0xLjE4ODgyNiAwLjQyMTUzMiwtMi4yNDc5MzMgMS4yNTk3NjYsLTMuMDI3MzQ0IDAuODM4MjM0LC0wLjc3OTQxMSAyLjAwMjM4MywtMS4yNzI5MTYgMy4xOTkyMTgsLTEuMzIwMzEzIGwgMC4wOTE4LC0wLjAwMzkgeiBtIDAsMS41MDE5NTMgLTAuMDkxOCwwLjAwMzkgYyAtMC44MzU2MTMsMC4wMzMwOSAtMS42NDM4MzEsMC4zNzQ0NTIgLTIuMjMwNDY5LDAuOTE5OTIyIC0wLjU4NjYzNywwLjU0NTQ3IC0wLjk1MTYzNiwxLjI5OTc3OCAtMC44ODY3MTgsMi4xNDI1NzggMC4xMjU3OCwxLjYzMjgyMSAxLjU0NTY3MywyLjk0MjM3IDMuMTExMzI4LDMuMTEzMjgxIC0wLjAwMjYsLTIuOGUtNCAtMC4wMDUzLDIuODZlLTQgLTAuMDA3OCwwIDAuMDAzLDYuMDNlLTQgMC4wMDY2LDAuMDAxNyAwLjAwOTgsMC4wMDIgMC4wMDMxLDMuMDhlLTQgMC4wMDY3LDEuMmUtNSAwLjAwOTgsMCBsIDAuMDc4MTMsMC4wMDk4IDAuMDIxNDgsLTAuMTgxNjQxIC0wLjA5MTgsLTAuMDA5OCBjIC0xLjQ3NzAxNSwtMC4xNjEyMzUgLTIuODMwOTg0LC0xLjQxMjM5NiAtMi45NDkyMTksLTIuOTQ3MjY2IC0wLjA2MDI3LC0wLjc4MjQ5NiAwLjI3NjgyMiwtMS40Nzk3MDkgMC44MzAwNzgsLTEuOTk0MTQxIDAuNTUzMjU3LC0wLjUxNDQzMSAxLjMyMjkzOSwtMC44NDE3NDggMi4xMTMyODEsLTAuODczMDQ2IGwgMC4wOTE4LC0wLjAwMzkgeiBtIDAsMS41MDE5NTMgTCAxNiwxNC40MDYyNSBjIC0wLjQyOTExNywwLjAxNjk5IC0wLjg0Mjg3MywwLjE5MjE2NiAtMS4xNDQ1MzEsMC40NzI2NTYgLTAuMzAxNjU5LDAuMjgwNDkxIC0wLjQ5MDY0OCwwLjY3MDk1NSAtMC40NTcwMzEsMS4xMDc0MjIgMC4wNjQ3NywwLjg0MDg4NiAwLjc5MDcyOSwxLjUxMTczMiAxLjU5NTcwMywxLjU5OTYwOSBsIDAuMDg5ODQsMC4wMDk4IDAuMDIxNDgsLTAuMTgxNjQxIC0wLjA5MTgsLTAuMDA5OCBjIC0wLjcxNjM1NywtMC4wNzgyIC0xLjM3NjM2MiwtMC42ODg2ODEgLTEuNDMzNTk0LC0xLjQzMTY0MSAtMC4wMjg5NywtMC4zNzYxNzkgMC4xMzIxMDUsLTAuNzExNDc3IDAuNDAwMzkxLC0wLjk2MDkzNyAwLjI2ODI4NiwtMC4yNDk0NjEgMC42NDM0ODUsLTAuNDA4NjI3IDEuMDI3MzQzLC0wLjQyMzgyOCBsIDAuMDkxOCwtMC4wMDM5IHoiDSAgICBzdHlsZT0iYmFzZWxpbmUtc2hpZnQ6YmFzZWxpbmU7Y2xpcC1ydWxlOm5vbnplcm87ZGlzcGxheTppbmxpbmU7b3ZlcmZsb3c6dmlzaWJsZTt2ZWN0b3ItZWZmZWN0Om5vbmU7ZmlsbDojMjIyMjIyO2ZpbGwtcnVsZTpub256ZXJvO3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO2VuYWJsZS1iYWNrZ3JvdW5kOmFjY3VtdWxhdGU7c3RvcC1jb2xvcjojMDAwMDAwO3N0b3Atb3BhY2l0eToxIg0gICAgaWQ9InBhdGgyNyIgLz48L3N2Zz4=');}.icon-jakevan{--icon:url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbDpzcGFjZT0icHJlc2VydmUiIHN0eWxlPSJjbGlwLXJ1bGU6ZXZlbm9kZDtmaWxsLXJ1bGU6ZXZlbm9kZDtzdHJva2UtbGluZWpvaW46cm91bmQ7c3Ryb2tlLW1pdGVybGltaXQ6MiIgdmlld0JveD0iMCAwIDMyIDMyIj48cGF0aCBkPSJNMTcuODggMTQuNjhIMTIuOWwtLjQzLTEuNjNIOS41OGwtLjQ1IDEuNjNINi41bDIuODktOC43NGgzLjJsMi44OSA4LjY0di04LjZoMi40djMuNzhjLjEtLjIuMjItLjM4LjM1LS41Ny4xMy0uMi4yNi0uMzcuMzktLjU0bDEuODYtMi42N2g3Ljh2MS44OUgyNS40djEuMzdoMi42NXYxLjg4SDI1LjR2MS42NWgyLjg2djEuOTFoLTcuOTNsLTEuNzUtMy4zMi0uNy40MXptNS4xMy04LjU5LTIuNyAzLjc5IDIuNyA0Ljc0em0tMTEuMDUgNS4wMy0uMzgtMS40M2ExMzYuODYgMTM2Ljg2IDAgMCAwLS40LTEuNTVMMTEgNy4zOGExNy43NiAxNy43NiAwIDAgMS0uMzYgMS42bC0uMTguNzEtLjM5IDEuNDN6bS04LjU4IDYuM2E1Ljc0IDUuNzQgMCAwIDEtMS4yNC0uMTN2LTEuODNsLjQxLjA4Yy4xNS4wMy4zLjA1LjQ3LjA1LjMgMCAuNTEtLjA2LjY3LS4xN2EuOTIuOTIgMCAwIDAgLjM0LS41MmMuMDYtLjIzLjEtLjUyLjEtLjg2VjUuOThoMi40djcuODVjMCAuODgtLjEzIDEuNTctLjQgMi4xLS4yNi41Mi0uNjMuOS0xLjEgMS4xNC0uNDguMjMtMS4wMy4zNS0xLjY1LjM1WiIgc3R5bGU9ImZpbGw6Y3VycmVudENvbG9yO3N0cm9rZS13aWR0aDouMDE4NDM5MiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMS40IC42Nikgc2NhbGUoLjk2MDUwMTM0KSIvPjxwYXRoIGQ9Ik0yMi44MiAyMi4yN2gtNC4wNmwtLjM3LTEuNEgxNS45bC0uMzkgMS40aC0yLjI2bDIuNDktNy41M2gyLjc1bDIuNDkgNy40NHYtNy40MWgyLjdsMi43NyA1LjIxaC4wM2E0MS4xIDQxLjEgMCAwIDEtLjA3LTEuODJ2LTMuMzloMS44M3Y3LjVoLTIuN2wtMi43OS01LjI4aC0uMDRhMTIuODMgMTIuODMgMCAwIDEgLjA4IDEuMjZsLjAyLjY0em0tNC44Ni0zLjA3LS4zMy0xLjIzYTg5LjA3IDg5LjA3IDAgMCAwLS4zNS0xLjM0bC0uMTQtLjY1YTE1LjA0IDE1LjA0IDAgMCAxLS4zMSAxLjM3bC0uMTYuNjItLjMzIDEuMjN6bS0zLjg1LTQuNDMtMi41IDcuNUg5LjJsLTIuNS03LjVoMi4zMmwxLjA0IDMuOGExNS4wMyAxNS4wMyAwIDAgMSAuMzYgMS43NiA3LjYxIDcuNjEgMCAwIDEgLjItMS4ybC4xNC0uNTQgMS4wNi0zLjgyeiIgc3R5bGU9ImZpbGw6Y3VycmVudENvbG9yO3N0cm9rZS13aWR0aDouMDE1OTg4NCIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMS40IC42Nikgc2NhbGUoLjk2MDUwMTM0KSIvPjxwYXRoIGQ9Ik0xMS45IDI0LjIxYzAgLjQtLjA3LjcyLS4yLjk5LS4xNS4yNi0uMzYuNDYtLjYzLjYtLjI4LjEzLS42Mi4yLTEuMDMuMkg5LjJ2LTMuNWguOTdjLjM4IDAgLjcuMDYuOTYuMTkuMjUuMTMuNDUuMzIuNTguNTguMTQuMjUuMi41Ny4yLjk0em0tLjI2LjAxYzAtLjMzLS4wNS0uNjEtLjE2LS44M2ExLjEgMS4xIDAgMCAwLS41MS0uNTEgMS45NSAxLjk1IDAgMCAwLS44Ny0uMTdoLS42NnYzLjA3aC42Yy41MyAwIC45My0uMTMgMS4yLS4zOS4yNy0uMjYuNC0uNjUuNC0xLjE3ek0xNC4yNyAyNmgtMS45NXYtMy41aDEuOTV2LjIyaC0xLjd2MS4zMmgxLjZ2LjIzaC0xLjZ2MS41aDEuN3ptMS4yOC0zLjVjLjI4IDAgLjUyLjAyLjcuMDhhLjguOCAwIDAgMSAuNDQuM2MuMS4xNC4xNC4zMy4xNC41N2EuOS45IDAgMCAxLS4xLjQ1Ljg3Ljg3IDAgMCAxLS4yNy4zMmMtLjEyLjA4LS4yNS4xNC0uNC4xOGwuOTggMS42aC0uM2wtLjkyLTEuNTNoLS44OVYyNmgtLjI1di0zLjV6bS0uMDMuMjFoLS41OXYxLjU1aC43MWMuMyAwIC41Mi0uMDcuNjktLjIxLjE2LS4xNC4yNC0uMzQuMjQtLjYgMC0uMjgtLjA5LS40Ny0uMjYtLjU4LS4xNy0uMS0uNDMtLjE2LS43OS0uMTZ6bTUuNTctLjIyTDIwLjEyIDI2aC0uMjVsLS43Ni0yLjY1LS4wNS0uMTYtLjA0LS4xNGExOC44IDE4LjggMCAwIDEtLjA2LS4yNCAyMC42IDIwLjYgMCAwIDEtLjExLjQ4TDE4LjA5IDI2aC0uMjVsLS45Ni0zLjVoLjI2bC42NyAyLjQ3YTI3LjM2IDI3LjM2IDAgMCAxIC4wOS4zNWwuMDQuMTcuMDMuMTUuMDMtLjE2YTQuODMgNC44MyAwIDAgMSAuMTQtLjUzbC43LTIuNDZoLjI1bC43MyAyLjQ4YTExLjk4IDExLjk4IDAgMCAxIC4xMy41M2wuMDQuMTVhMTEuMDIgMTEuMDIgMCAwIDEgLjE1LS42OGwuNjktMi40OHpNMjMuMjYgMjZoLTEuOTV2LTMuNWgxLjk1di4yMmgtMS43djEuMzJoMS42di4yM2gtMS42djEuNWgxLjd6bTEuMjgtMy41Yy4yOCAwIC41Mi4wMi43MS4wOGEuOC44IDAgMCAxIC40My4zYy4xLjE0LjE0LjMzLjE0LjU3YS45LjkgMCAwIDEtLjEuNDUuODcuODcgMCAwIDEtLjI3LjMyYy0uMTEuMDgtLjI1LjE0LS40LjE4bC45OCAxLjZoLS4zbC0uOTItMS41M2gtLjg4VjI2aC0uMjZ2LTMuNXptLS4wMi4yMWgtLjZ2MS41NWguNzJjLjI5IDAgLjUxLS4wNy42OC0uMjEuMTYtLjE0LjI0LS4zNC4yNC0uNiAwLS4yOC0uMDgtLjQ3LS4yNi0uNTgtLjE3LS4xLS40My0uMTYtLjc4LS4xNnpNMjYuNSAyNmgtLjI1di0zLjVoMS45NXYuMjJoLTEuN3YxLjQ5aDEuNnYuMjJoLTEuNnoiIHN0eWxlPSJmaWxsOmN1cnJlbnRDb2xvcjtzdHJva2Utd2lkdGg6LjAxMDEwNjgiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDEuNCAuNjYpIHNjYWxlKC45NjA1MDEzNCkiLz48L3N2Zz4=');}.icon-chat{--icon:url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTYgMjU2IiBmaWxsPSJjdXJyZW50Q29sb3IiPjxwYXRoIGQ9Ik0yMTYsNTBINDBBMTQsMTQsMCwwLDAsMjYsNjRWMjI0YTEzLjg4LDEzLjg4LDAsMCwwLDguMDksMTIuNjlBMTQuMTEsMTQuMTEsMCwwLDAsNDAsMjM4YTEzLjg3LDEzLjg3LDAsMCwwLDktMy4zMWwuMDYtLjA1TDgyLjIzLDIwNkgyMTZhMTQsMTQsMCwwLDAsMTQtMTRWNjRBMTQsMTQsMCwwLDAsMjE2LDUwWm0yLDE0MmEyLDIsMCwwLDEtMiwySDgwYTYsNiwwLDAsMC0zLjkyLDEuNDZMNDEuMjYsMjI1LjUzQTIsMiwwLDAsMSwzOCwyMjRWNjRhMiwyLDAsMCwxLDItMkgyMTZhMiwyLDAsMCwxLDIsMloiLz48L3N2Zz4=');}.icon-envelope{--icon:url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTYgMjU2IiBmaWxsPSJjdXJyZW50Q29sb3IiPjxwYXRoIGQ9Ik0yMjQsNTBIMzJhNiw2LDAsMCwwLTYsNlYxOTJhMTQsMTQsMCwwLDAsMTQsMTRIMjE2YTE0LDE0LDAsMCwwLDE0LTE0VjU2QTYsNiwwLDAsMCwyMjQsNTBabS05Niw4NS44Nkw0Ny40Miw2MkgyMDguNThaTTEwMS42NywxMjgsMzgsMTg2LjM2VjY5LjY0Wm04Ljg4LDguMTRMMTI0LDE0OC40MmE2LDYsMCwwLDAsOC4xLDBsMTMuNC0xMi4yOEwyMDguNTgsMTk0SDQ3LjQzWk0xNTQuMzMsMTI4LDIxOCw2OS42NFYxODYuMzZaIi8+PC9zdmc+');}.icon-logo-jakevan{--icon:url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+PHN2Zw0gICAgd2lkdGg9IjMyIg0gICAgaGVpZ2h0PSIzMiINICAgIHZpZXdCb3g9IjAgMCAzMiAzMiINICAgIHZlcnNpb249IjEuMSINICAgIHhtbDpzcGFjZT0icHJlc2VydmUiDSAgICBzdHlsZT0iY2xpcC1ydWxlOmV2ZW5vZGQ7ZmlsbC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlLWxpbmVjYXA6c3F1YXJlO3N0cm9rZS1saW5lam9pbjpyb3VuZDtzdHJva2UtbWl0ZXJsaW1pdDoxLjUiDSAgICBpZD0ic3ZnMTQiDSAgICB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciDSAgICB4bWxuczpzdmc9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48ZGVmcw0gICAgaWQ9ImRlZnMxNCIgLz48cGF0aA0gICAgZD0iTSAxNi41ODAwNzgsMi4xMzI4MTI1IEMgOC44NjQ4NDUsMi4xMzI4MTI1IDEuNDQwNjAyMSw4LjE0NjYyMTYgMi4wMzMyMDMxLDE1LjgzOTg0NCAyLjU5NDQ1ODgsMjMuMTI2NjY2IDguOTcxMjAxMywyOS4wMjUxNTUgMTUuOTcwNzAzLDI5Ljc4NzEwOSAyNC4yMjEyMjQsMzAuNjg1MjQgMzAuNDQwOTExLDIzLjgzNDI3NyAyOS45NzQ2MDksMTUuNzk4ODI4IDI5LjUyNzgxMyw4LjA5OTg2NTYgMjQuMjkxNTYsMi4xMzI4MTI1IDE2LjU4MDA3OCwyLjEzMjgxMjUgWiBtIDAsMC42MDc0MjE5IGggMC4wMzEyNSBWIDI5LjIzMjQyMiBjIC0wLjE5MDMyMywtMC4wMTIxOCAtMC4zODE1MjEsLTAuMDI3ODMgLTAuNTc0MjE5LC0wLjA0ODgzIEMgOS4zMTMwNDU3LDI4LjQ1MTYxNyAzLjE3Nzg3NzUsMjIuNzkzMDQ0IDIuNjM4NjcxOSwxNS43OTI5NjkgMi4wNzI0NTYsOC40NDIwMTUgOS4yMDgxMDA5LDIuNzQwMjM0NCAxNi41ODAwNzgsMi43NDAyMzQ0IFogbSAtMC40OTIxODcsMS4xNDQ1MzEyIC0wLjA5MTgsMC4wMDM5MSBDIDEyLjcyMTU2LDQuMDE4MzQxMyA5LjU0NjQ3NDMsNS4zNjQ2ODc3IDcuMjUsNy41IDQuOTUzNTI1Nyw5LjYzNTMxMjMgMy41MzYzNjQ3LDEyLjU2NDk4IDMuNzg5MDYyNSwxNS44NDU3MDMgNC4yODA4NjY4LDIyLjIzMDAzMiA5Ljg2MDU4NzksMjcuMzgzNjA4IDE1Ljk5MDIzNCwyOC4wNTI3MzQgbCAwLjA4OTg0LDAuMDA5OCAwLjAxOTUzLC0wLjE4MTY0MSAtMC4wODk4NCwtMC4wMDk4IEMgOS45Njg3Mzg5LDI3LjIxMTY0MyA0LjQ1NDk2MzgsMjIuMTE2NDgxIDMuOTcwNzAzMSwxNS44MzAwNzggMy43MjI2NDkxLDEyLjYwOTY0NCA1LjExMTg5NzksOS43MzkwNDc3IDcuMzc1LDcuNjM0NzY1NiA5LjYzODEwMjEsNS41MzA0ODM2IDEyLjc3NDYyNSw0LjE5ODE5NyAxNi4wMDM5MDYsNC4wNzAzMTI1IGwgMC4wODk4NCwtMC4wMDM5MSB6IG0gMCwxLjUwMTk1MzEgLTAuMDkxOCwwLjAwMzkxIEMgMTMuMTI4MDU0LDUuNTA0MTk3MSAxMC4zNDc0MzQsNi42ODQzNDU0IDguMzM1OTM3NSw4LjU1NDY4NzUgNi4zMjQ0NDExLDEwLjQyNTAzIDUuMDgxMzM0MSwxMi45OTA4MjcgNS4zMDI3MzQ0LDE1Ljg2NTIzNCA1LjczMzUzMzYsMjEuNDU3NjU2IDEwLjYyMTI2NSwyNS45NzA1NDggMTUuOTkwMjM0LDI2LjU1NjY0MSBsIDAuMDg5ODQsMC4wMDk4IDAuMDE5NTMsLTAuMTc5Njg3IC0wLjA4OTg0LC0wLjAwOTggQyAxMC43Mjk0MTksMjUuODAwNTMyIDUuOTA3NjMwNywyMS4zNDYwNTYgNS40ODQzNzUsMTUuODUxNTYzIDUuMjY3NjE4NCwxMy4wMzc0NDIgNi40ODI4MTMzLDEwLjUyNjgxMiA4LjQ2MDkzNzUsOC42ODc1IDEwLjQzOTA2Miw2Ljg0ODE4ODMgMTMuMTgxMTIsNS42ODQwNTI4IDE2LjAwMzkwNiw1LjU3MjI2NTYgbCAwLjA4OTg0LC0wLjAwMzkxIHogbSAwLDEuNTAzOTA2MyAtMC4wOTE4LDAuMDAxOTUgQyAxMy41MzQ1NCw2Ljk5MDA2NjMgMTEuMTQ4NCw4LjAwNDAwNzIgOS40MjE4NzUsOS42MDkzNzUgNy42OTUzNDk3LDExLjIxNDc0MyA2LjYyODI1NTgsMTMuNDE2NjggNi44MTgzNTk0LDE1Ljg4NDc2NiA3LjE4ODE1NTEsMjAuNjg1MjY5IDExLjM4MTk2LDI0LjU1OTQ0NCAxNS45OTAyMzQsMjUuMDYyNSBsIDAuMDg5ODQsMC4wMDk4IDAuMDE5NTMsLTAuMTgxNjQxIC0wLjA4OTg0LC0wLjAwOTggQyAxMS40OTAxMTQsMjQuMzg3NDc3IDcuMzYyMjUyMiwyMC41NzM2NzEgNywxNS44NzEwOTQgNi44MTQ1NDAxLDEzLjQ2MzI5NyA3Ljg1MzcyMTksMTEuMzE2NTI1IDkuNTQ2ODc1LDkuNzQyMTg3NSBjIDEuNjkzMTUzLC0xLjU3NDMzNzQgNC4wNDA3MywtMi41NzAzMjYgNi40NTcwMzEsLTIuNjY2MDE1NiBsIDAuMDg5ODQsLTAuMDAzOTEgeiBtIDAsMS41MDE5NTMxIC0wLjA5MTgsMC4wMDM5MSBjIC0yLjA1NTA3MywwLjA4MTM4NCAtNC4wNDY3MjgsMC45MjUyMzMxIC01LjQ4ODI4MSwyLjI2NTYyNDkgLTEuNDQxNTU0NywxLjM0MDM5MyAtMi4zMzI2MzU0LDMuMTgyMzc5IC0yLjE3MzgyODYsNS4yNDQxNDEgMC4zMDYzOTk0LDMuOTc3NTIgMy43NTc5NjQ2LDcuMTc0ODc3IDcuNTcwMzEyNiw3LjYzNDc2NiBsIC0wLjAwMiwwLjAxNzU4IDAuMDg3ODksMC4wMDc4IGggMC4wMDIgbCAwLjAwOTgsMC4wMDIgMC4wODAwOCwwLjAwOTggMC4wMjE0OCwtMC4xODE2NDEgaCAtMC4wMDM5IHYgLTAuMDAyIGwgLTAuMDg5ODQsLTAuMDA5OCBoIC0wLjAwMiBDIDEyLjI0OTQ3NiwyMi45NzM1NjUgOC44MTY4MTU1LDE5LjgwMjU3NiA4LjUxNTYxNywxNS44OTI1NzEgOC4zNjE0NTQsMTMuODkxMDk4IDkuMjI0NjIyNSwxMi4xMDYyMyAxMC42MzI4MDUsMTAuNzk2ODY4IDEyLjA0MDk4NSw5LjQ4NzUwNTQgMTMuOTk0MDg0LDguNjU3NzA5NyAxNi4wMDM4OTgsOC41NzgxMTc3IGwgMC4wODk4NCwtMC4wMDM5MSB6IG0gMCwxLjUwMTk1MzIgLTAuMDkxOCwwLjAwMzkxIGMgLTEuNjQ4NTgyLDAuMDY1Mjg3IC0zLjI0NTc2NiwwLjc0Mjk0MjcgLTQuNDAyMzQ0LDEuODE4MzU5NyAtMS4xNTY1NzgsMS4wNzU0MTcgLTEuODcxNjUwMywyLjU1MzU0NSAtMS43NDQxNDA2LDQuMjA4OTg0IDAuMjQ1Mzk0NiwzLjE4NTU5IDMuMDAzMTAzNiw1Ljc0NDM4MSA2LjA1NDY4NzYsNi4xMjEwOTQgbCAtMC4wMDIsMC4wMTc1OCAwLjA4Nzg5LDAuMDA3OCBoIDAuMDAyIGwgMC4wODc4OSwwLjAwOTggaCAwLjAwMiBsIDAuMDIxNDgsLTAuMTgxNjQgaCAtMC4wMDM5IGwgLTAuMDg3ODksLTAuMDA5OCBoIC0wLjAwMiAtMC4wMDIgYyAtMi45OTc2MjMsLTAuMzI4MTU2IC01LjczNjM2OCwtMi44NjA0MzMgLTUuOTc2NTYyLC01Ljk3ODUxNiAtMC4xMjI4NjU5LC0xLjU5NTE1IDAuNTY0Mjk0LC0zLjAxODExMyAxLjY4NzUsLTQuMDYyNSAxLjEyMzIwNiwtMS4wNDQzODYgMi42ODE4MzMsLTEuNzA2MDM3IDQuMjg1MTU2LC0xLjc2OTUzMSBsIDAuMDg5ODQsLTAuMDAzOSB6IG0gNC4xMjEwOTMsMS4zMjAzMTI3IGggMS40NjY3OTcgbCAxLjMyODEyNSwzLjk2Mjg5IHYgLTMuOTQ3MjY1IGggMS4xMDM1MTYgdiAxLjczNjMyOCBjIDAuMDQ2MzksLTAuMDg3NDIgMC4wOTk4OSwtMC4xNzYyMTIgMC4xNjAxNTYsLTAuMjYzNjcyIDAuMDYwMzEsLTAuMDg3NDYgMC4xMjAyOTQsLTAuMTY5Njg3IDAuMTc3NzM0LC0wLjI0ODA0NyBsIDAuODUzNTE2LC0xLjIyNDYwOSBoIDMuNTc4MTI1IHYgMC44NjcxODcgaCAtMS4zMTY0MDYgdiAwLjYyNjk1MyBoIDEuMjE4NzUgdiAwLjg2NzE4OCBoIC0xLjIxODc1IHYgMC43NTM5MDYgaCAxLjMxNjQwNiB2IDAuODgwODYgaCAtMy42Mzg2NzIgbCAtMC44MDQ2ODcsLTEuNTI3MzQ0IC0wLjMyNjE3MiwwLjE5MTQwNiB2IDEuMzM1OTM4IGggLTIuMjg5MDYzIGwgLTAuMjAxMTcyLC0wLjc0ODA0NyBoIC0xLjMyMDMxMiBsIC0wLjIwNzAzMSwwLjc0ODA0NyBoIC0xLjIwNzAzMiB6IG0gLTIuNDE0MDYyLDAuMDE1NjMgaCAxLjEwMzUxNSB2IDMuNjA1NDY5IGMgMTBlLTcsMC40MDA5MDUgLTAuMDYxMTcsMC43MjIzNTUgLTAuMTgzNTkzLDAuOTYyODkgLTAuMTIyNDIyLDAuMjQwNTM1IC0wLjI5MDgxMywwLjQxNDAxMSAtMC41MDc4MTMsMC41MjE0ODQgLTAuMjE2OTk5LDAuMTA3NTEzIC0wLjQ2ODI1NSwwLjE2MDE1NyAtMC43NTM5MDYsMC4xNjAxNTcgLTAuMTI0MjU2LDAgLTAuMjM0NDY1LC0wLjAwNTcgLTAuMzI4MTI1LC0wLjAxNzU4IC0wLjA5MzY2LC0wLjAxMTc3IC0wLjE3MzU3OCwtMC4wMjQ0NiAtMC4yNDIxODgsLTAuMDM5MDYgViAxNS41ODM5OSBjIDAuMDU5MzYsMC4wMTA4NiAwLjEyMjY3NCwwLjAyMzQxIDAuMTg5NDU0LDAuMDM3MTEgMC4wNjY3NywwLjAxMzcgMC4xMzg5MzYsMC4wMjE0OCAwLjIxNjc5NiwwLjAyMTQ4IDAuMTMxNjc2LDAgMC4yMzMzNjEsLTAuMDI3MjMgMC4zMDY2NDEsLTAuMDgwMDggMC4wNzMyMywtMC4wNTI4NiAwLjEyNDYxNywtMC4xMzI2MTEgMC4xNTQyOTcsLTAuMjM4MjgxIDAuMDI5NjgsLTAuMTA1NjcgMC4wNDQ5MiwtMC4yMzc5MTkgMC4wNDQ5MiwtMC4zOTY0ODUgeiBtIDguNjY3OTY5LDAuMDU0NjkgLTEuMjQ0MTQxLDEuNzM2MzI4IDEuMjQ0MTQxLDIuMTc1NzgyIHogbSAtMTAuMzc1LDAuMTEzMjgyIC0wLjA5MTgsMC4wMDIgYyAtMS4yNDIwOTUsMC4wNDkxOSAtMi40NDQ4LDAuNTYwNjUyIC0zLjMxNjQwNiwxLjM3MTA5MyAtMC44NzE2MDgsMC44MTA0NDIgLTEuNDEyNjIsMS45MjQ3MTIgLTEuMzE2NDA3LDMuMTczODI5IDAuMTg0MzksMi4zOTM2NTQgMi4yNTAxOTUsNC4zMTIwMjIgNC41NDEwMTYsNC42MDU0NjggbCAtMC4wMDIsMC4wMTc1OCAwLjA4Nzg5LDAuMDA3OCBoIDAuMDAyIGwgMC4wODc4OSwwLjAwOTggaCAwLjAwMiBsIDAuMDE5NTMsLTAuMTc5Njg3IGggLTAuMDAyIHYgLTAuMDAyIGwgLTAuMDc4MTMsLTAuMDA3OCAtMC4wMDk4LC0wLjAwMiBoIC0wLjAwMiAtMC4wMDIgYyAtMi4yMzY5NjEsLTAuMjQ1MTIxIC00LjI4MzcsLTIuMTM2NzMxIC00LjQ2Mjg5LC00LjQ2Mjg5IC0wLjA5MTU3LC0xLjE4ODgyNiAwLjQyMTUzMSwtMi4yNDc5MzMgMS4yNTk3NjYsLTMuMDI3MzQ0IDAuODM4MjM0LC0wLjc3OTQxMSAyLjAwMjM4MiwtMS4yNzI5MTYgMy4xOTkyMTgsLTEuMzIwMzEzIGwgMC4wODk4NCwtMC4wMDM5IHogbSA0Ljg2MTMyOCwwLjQ3NDYwOSBjIC0wLjAxNjcxLDAuMDkxMTEgLTAuMDM5NzIsMC4yMDM5MjggLTAuMDcwMzEsMC4zMzc4OTEgLTAuMDMwNiwwLjEzMzkyMiAtMC4wNjEyOCwwLjI2NTI2OSAtMC4wOTM3NSwwLjM5NjQ4NCAtMC4wMzI0MiwwLjEzMTE3NSAtMC4wNjE4NSwwLjI0MDY2NSAtMC4wODU5NCwwLjMyODEyNSBsIC0wLjE3NTc4MiwwLjY1NjI1IGggMC44NjUyMzUgbCAtMC4xNzM4MjgsLTAuNjU2MjUgYyAtMC4wMTg1MSwtMC4wNzEwNiAtMC4wNDY4MSwtMC4xNzI1MjkgLTAuMDgyMDMsLTAuMzA0Njg4IC0wLjAzNTI2LC0wLjEzMjExOCAtMC4wNjkyMSwtMC4yNjg5MzUgLTAuMTAzNTE1LC0wLjQxMDE1NiAtMC4wMzQzLC0wLjE0MTIyMSAtMC4wNjE1MywtMC4yNTY1NDYgLTAuMDgwMDgsLTAuMzQ3NjU2IHogbSAtNC44NjEzMjgsMS4wMjczNDQgLTAuMDkxOCwwLjAwMzkgYyAtMC44MzU2MDgsMC4wMzMwOSAtMS42NDM4MzYsMC4zNzQ0NTYgLTIuMjMwNDY5LDAuOTE5OTIyIC0wLjU4NjYzMywwLjU0NTQ2NiAtMC45NTE2MzUsMS4yOTk3ODYgLTAuODg2NzE5LDIuMTQyNTc4IDAuMTIzMjA1LDEuNTk5Mzc4IDEuNDk4MTI4LDIuODU5NDY3IDMuMDI1MzkxLDMuMDcyMjY1IGwgLTAuMDAzOSwwLjAzMzIgMC4wODk4NCwwLjAwOTggMC4wODIwMywwLjAwNzggMC4wMDc4LDAuMDAyIGggMC4wMDIgbCAwLjAxOTUzLC0wLjE4MTY0MSBoIC0wLjAwMiBsIC0wLjA4Nzg5LC0wLjAwOTggaCAtMC4wMDIgLTAuMDAyIGMgLTEuNDc2MzM3LC0wLjE2MjA0MSAtMi44MjkwNzYsLTEuNDEyOTk2IC0yLjk0NzI2NSwtMi45NDcyNjYgLTAuMDYwMjcsLTAuNzgyNTAzIDAuMjc2ODE3LC0xLjQ3OTcwNSAwLjgzMDA3OCwtMS45OTQxNDEgMC41NTMyNjEsLTAuNTE0NDM1IDEuMzIyOTMzLC0wLjg0MTc0OCAyLjExMzI4MSwtMC44NzMwNDYgbCAwLjA4OTg0LC0wLjAwMzkgeiBtIDAsMS41MDE5NTMgLTAuMDkxOCwwLjAwMzkgYyAtMC40MjkxMTgsMC4wMTY5OSAtMC44NDI4NzMsMC4xOTIxNjYgLTEuMTQ0NTMxLDAuNDcyNjU2IC0wLjMwMTY2LDAuMjgwNDkxIC0wLjQ5MDY0OCwwLjY3MDk1NSAtMC40NTcwMzIsMS4xMDc0MjIgMC4wNjIxOSwwLjgwNzM2IDAuNzQzODAxLDEuNDMwMjU3IDEuNTA5NzY2LDEuNTU4NTk0IGwgLTAuMDAzOSwwLjAzMzIgMC4wODk4NCwwLjAwNzggaCAwLjAwMiBsIDAuMDg3ODksMC4wMDk4IDAuMDIxNDgsLTAuMTc5Njg3IGggLTAuMDAyIHYgLTAuMDAyIGwgLTAuMDc4MTMsLTAuMDA3OCAtMC4wMDk4LC0wLjAwMiBoIC0wLjAwMiAtMC4wMDIgYyAtMC43MTU2NzUsLTAuMDc5MDEgLTEuMzc0NDU1LC0wLjY4OTI5IC0xLjQzMTY0LC0xLjQzMTY0MSAtMC4wMjg5NywtMC4zNzYxNzkgMC4xMzIxMDQsLTAuNzExNDc3IDAuNDAwMzkxLC0wLjk2MDkzNyAwLjI2ODI4NiwtMC4yNDk0NjEgMC42NDM0ODUsLTAuNDA4NjI3IDEuMDI3MzQzLC0wLjQyMzgyOCBsIDAuMDg5ODQsLTAuMDAzOSB6IG0gNy4wNDEwMTUsMC44NDk2MDkgaCAxLjI2MTcxOSBsIDEuMTQyNTc4LDMuNDE0MDYzIHYgLTMuNDAwMzkxIGggMS4yMzYzMjggbCAxLjI3NTM5MSwyLjM5MjU3OCBoIDAuMDEzNjcgYyAtMC4wMDQ3LC0wLjA3NTM3IC0wLjAwODksLTAuMTY0MDMyIC0wLjAxMzY3LC0wLjI2MzY3MiAtMC4wMDQ4LC0wLjA5OTY0IC0wLjAwOTcsLTAuMjAwNzEzIC0wLjAxMzY3LC0wLjMwMjczNCAtMC4wMDQsLTAuMTAyMDIgLTAuMDA1OSwtMC4xOTEwNTEgLTAuMDA1OSwtMC4yNjk1MzEgdiAtMS41NTY2NDEgaCAwLjg0Mzc1IHYgMy40NDE0MDYgaCAtMS4yNDIxODggbCAtMS4yNzkyOTcsLTIuNDIzODI4IGggLTAuMDIxNDggYyAwLjAwOCwwLjA3Mzc3IDAuMDE1MDgsMC4xNjIwODggMC4wMjE0OCwwLjI2NTYyNSAwLjAwNjQsMC4xMDM1NzkgMC4wMTI4OCwwLjIwODg5MSAwLjAxNzU4LDAuMzE2NDA2IDAuMDA0OCwwLjEwNzQ3NCAwLjAwNzgsMC4yMDQ3MDYgMC4wMDc4LDAuMjkxMDE2IHYgMS41NTA3ODEgSCAyNC41MTM2NzIgTCAyNC4zMzk4NDQsMTguMDYyNSBoIC0xLjEzNjcxOSBsIC0wLjE3NzczNCwwLjY0NDUzMSBoIC0xLjAzOTA2MyB6IG0gLTQuMTU0Mjk3LDAuMDEzNjcgaCAxLjA2MjUgbCAwLjQ3NjU2MywxLjc0NDE0MSBjIDAuMDE3NTQsMC4wNjU4OSAwLjAzOTM3LDAuMTUxMTA3IDAuMDYyNSwwLjI1MzkwNiAwLjAyMzE3LDAuMTAyNzU4IDAuMDQ0NDgsMC4yMDQ2NjEgMC4wNjQ0NSwwLjMwNjY0IDAuMDE5OTcsMC4xMDIwMiAwLjAzMjMxLDAuMTg1NjIgMC4wMzcxMSwwLjI1IDAuMDA2NCwtMC4wNjQzOCAwLjAxNzYxLC0wLjE0NzYyNSAwLjAzNTE2LC0wLjI0ODA0NiAwLjAxNzU5LC0wLjEwMDQyMSAwLjAzNzA0LC0wLjIwMTUzNSAwLjA1ODU5LC0wLjMwMjczNSAwLjAyMTYsLTAuMTAxMjQxIDAuMDQxMzgsLTAuMTg0MDYgMC4wNjA1NSwtMC4yNSBsIDAuNDg2MzI4LC0xLjc1MzkwNiBoIDEuMDYwNTQ3IGwgLTEuMTQ4NDM3LDMuNDQxNDA2IGggLTEuMTEzMjgyIHogbSA0Ljc5MTAxNiwwLjU1MjczNCBjIC0wLjAxNDI5LDAuMDc4NDQgLTAuMDM0MjEsMC4xNzU2NjkgLTAuMDYwNTUsMC4yOTEwMTYgLTAuMDI2MzQsMC4xMTUzNDcgLTAuMDU0MDYsMC4yMzA3ODIgLTAuMDgyMDMsMC4zNDM3NSAtMC4wMjc5MywwLjExMjk2OSAtMC4wNTE0NywwLjIwNTkyIC0wLjA3MjI3LDAuMjgxMjUgbCAtMC4xNTIzNDQsMC41NjQ0NTMgaCAwLjc0NjA5NCBsIC0wLjE1MDM5LC0wLjU2NDQ1MyBjIC0wLjAxNTkyLC0wLjA2MTIyIC0wLjAzOTg4LC0wLjE0Nzk3MSAtMC4wNzAzMSwtMC4yNjE3MTkgLTAuMDMwMjcsLTAuMTEzNzg5IC0wLjA2MDI5LC0wLjIzMTkzNSAtMC4wODk4NCwtMC4zNTM1MTUgLTAuMDI5NTYsLTAuMTIxNjIgLTAuMDUyMzUsLTAuMjIyMzQyIC0wLjA2ODM2LC0wLjMwMDc4MiB6IG0gLTMuNjQ2NDg0LDIuOTkyMTg4IEggMjAuNTYyNSBjIDAuMTc0Nzc1LDAgMC4zMjA2NTgsMC4wMjk2NCAwLjQzOTQ1MywwLjA4OTg0IDAuMTE4NzU0LDAuMDYwMiAwLjIxMDI1NSwwLjE0ODU1NiAwLjI3MTQ4NCwwLjI2NTYyNSAwLjA2MTI3LDAuMTE3MDY5IDAuMDkxOCwwLjI2MTg2NCAwLjA5MTgsMC40MzM1OTMgMCwwLjE3OTgwNyAtMC4wMzMwMSwwLjMzMTMgLTAuMDk3NjYsMC40NTMxMjUgLTAuMDY0NjEsMC4xMjE4MjYgLTAuMTYwNDc3LDAuMjEzNzYxIC0wLjI4NzEwOSwwLjI3NTM5MSAtMC4xMjY1OSwwLjA2MTY3IC0wLjI4Mzk2NSwwLjA5MTggLTAuNDcwNzAzLDAuMDkxOCBIIDIwLjExOTE0IFogbSAxLjQzNTU0NiwwIGggMC44OTY0ODUgdiAwLjEwMTU2MiBoIC0wLjc4MTI1IHYgMC42MTEzMjggSCAyMi40MDYyNSBWIDE5LjYyNSBoIC0wLjczNjMyOCB2IDAuNjkzMzU5IGggMC43ODEyNSB2IDAuMTAxNTYzIGggLTAuODk2NDg1IHogbSAxLjA4Mzk4NSwwIGggMC4zOTg0MzcgYyAwLjEzMDAwOCwwIDAuMjM3MjI5LDAuMDEzMDkgMC4zMjQyMTksMC4wNDEwMiAwLjA4NzAzLDAuMDI3ODggMC4xNTMxNjYsMC4wNzQ3OCAwLjE5NzI2NiwwLjEzODY3MiAwLjA0NDAyLDAuMDYzODQgMC4wNjY0MSwwLjE0OTE5MSAwLjA2NjQxLDAuMjU3ODEzIDAsMC4wODE0OCAtMC4wMTQ2MiwwLjE1MjU4NyAtMC4wNDQ5MiwwLjIxMDkzNyAtMC4wMzAzLDAuMDU4MzUgLTAuMDcyMDIsMC4xMDUxNzggLTAuMTI1LDAuMTQyNTc4IC0wLjA1MzEsMC4wMzc0OCAtMC4xMTQxNTQsMC4wNjYxMyAtMC4xODM1OTQsMC4wODU5NCBsIDAuNDQ5MjE5LDAuNzMyNDIyIEggMjMuNTgzOTkgbCAtMC40MjM4MjgsLTAuNjk5MjE5IGggLTAuNDA2MjUgdiAwLjY5OTIxOSBoIC0wLjExNTIzNCB6IG0gMS4wMDc4MTIsMCBoIDAuMTE5MTQxIGwgMC4zMDg1OTQsMS4xMzQ3NjUgYyAwLjAwODEsMC4wMzAwOSAwLjAxNDM4LDAuMDU4NzkgMC4wMjE0OCwwLjA4NTk0IDAuMDA3LDAuMDI3MTUgMC4wMTM1MywwLjA1MjgxIDAuMDE5NTMsMC4wNzgxMyAwLjAwNiwwLjAyNTM0IDAuMDExOTgsMC4wNTAzNSAwLjAxNzU4LDAuMDc0MjIgMC4wMDU2LDAuMDIzODMgMC4wMTExMiwwLjA0ODA0IDAuMDE1NjMsMC4wNzIyNyAwLjAwNTIsLTAuMDI0MjQgMC4wMTA0MywtMC4wNDkyNSAwLjAxNTYzLC0wLjA3NDIyIDAuMDA1MiwtMC4wMjQ5MyAwLjAxMTI4LC0wLjA0ODU1IDAuMDE3NTgsLTAuMDc0MjIgMC4wMDY0LC0wLjAyNTcxIDAuMDEyMzMsLTAuMDUyNTYgMC4wMTk1MywtMC4wODAwOCAwLjAwNywtMC4wMjc1MiAwLjAxNjM5LC0wLjA1Nzc5IDAuMDI1MzksLTAuMDg3ODkgbCAwLjMyMDMxMywtMS4xMjg5MDYgaCAwLjExNTIzNCBsIDAuMzMzOTg1LDEuMTM2NzE5IGMgMC4wMDksMC4wMzE1MyAwLjAxNzk5LDAuMDU5OTcgMC4wMjUzOSwwLjA4Nzg5IDAuMDA3NSwwLjAyNzg5IDAuMDEzNTMsMC4wNTQ3NCAwLjAxOTUzLDAuMDgwMDggMC4wMDU5LDAuMDI1MyAwLjAxMjI4LDAuMDUwMzUgMC4wMTc1OCwwLjA3NDIyIDAuMDA1MiwwLjAyMzgzIDAuMDEwNDMsMC4wNDgwOCAwLjAxNTYzLDAuMDcyMjcgMC4wMDYsLTAuMDMzMDEgMC4wMTExOCwtMC4wNjU3MiAwLjAxNzU4LC0wLjA5NzY2IDAuMDA2MywtMC4wMzE5IDAuMDE0NDQsLTAuMDY0MzkgMC4wMjM0NCwtMC4wOTk2MSAwLjAwOSwtMC4wMzUyNiAwLjAyLC0wLjA3NTM3IDAuMDMxMjUsLTAuMTE3MTg3IGwgMC4zMTQ0NTMsLTEuMTM2NzE5IGggMC4xMTkxNDEgbCAtMC40NDcyNjYsMS42MDkzNzUgaCAtMC4xMTEzMjggbCAtMC4zNTE1NjIsLTEuMjE0ODQ0IGMgLTAuMDA4MywtMC4wMjU2NyAtMC4wMTUwOCwtMC4wNTEwOSAtMC4wMjE0OCwtMC4wNzQyMiAtMC4wMDYzLC0wLjAyMzEzIC0wLjAxMTg4LC0wLjA0MzU0IC0wLjAxNzU4LC0wLjA2NDQ1IC0wLjAwNTYsLTAuMDIwOTIgLTAuMDEwNzMsLTAuMDQxODUgLTAuMDE1NjMsLTAuMDYwNTUgLTAuMDA0OCwtMC4wMTg2OSAtMC4wMDg3LC0wLjAzNTQgLTAuMDExNzIsLTAuMDUwNzggLTAuMDAyOSwwLjAxNTM4IC0wLjAwNjQsMC4wMzE2MSAtMC4wMDk4LDAuMDQ4ODMgLTAuMDAzNCwwLjAxNzI2IC0wLjAwNzIsMC4wMzQzOCAtMC4wMTE3MiwwLjA1MjczIC0wLjAwNDUsMC4wMTgzMyAtMC4wMDg0LDAuMDM4NzQgLTAuMDEzNjcsMC4wNTg1OSAtMC4wMDUyLDAuMDE5ODEgLTAuMDExNTgsMC4wMzkyNyAtMC4wMTc1OCwwLjA2MDU1IGwgLTAuMzQ5NjA5LDEuMjQ0MTQxIGggLTAuMTEzMjgxIHogbSAyLjAzNTE1NywwIGggMC44OTY0ODQgdiAwLjEwMTU2MiBoIC0wLjc3OTI5NyB2IDAuNjExMzI4IGggMC43MzYzMjggViAxOS42MjUgaCAtMC43MzYzMjggdiAwLjY5MzM1OSBoIDAuNzc5Mjk3IHYgMC4xMDE1NjMgaCAtMC44OTY0ODQgeiBtIDEuMDgzOTg0LDAgaCAwLjM5ODQzNyBjIDAuMTI5OTI2LDAgMC4yMzkxNDIsMC4wMTMwOSAwLjMyNjE3MiwwLjA0MTAyIDAuMDg2OTksMC4wMjc4OCAwLjE1MTIxMywwLjA3NDc4IDAuMTk1MzEzLDAuMTM4NjcyIDAuMDQ0MDIsMC4wNjM4NCAwLjA2NjQxLDAuMTQ5MTkxIDAuMDY2NDEsMC4yNTc4MTMgMCwwLjA4MTQ4IC0wLjAxNDYyLDAuMTUyNTg3IC0wLjA0NDkyLDAuMjEwOTM3IC0wLjAzMDI2LDAuMDU4MzUgLTAuMDcyMDIsMC4xMDUxNzggLTAuMTI1LDAuMTQyNTc4IC0wLjA1MzA2LDAuMDM3NDggLTAuMTE0MTUzLDAuMDY2MTMgLTAuMTgzNTk0LDAuMDg1OTQgbCAwLjQ0OTIxOSwwLjczMjQyMiBoIC0wLjEzNjcxOSBsIC0wLjQyMTg3NSwtMC42OTkyMTkgaCAtMC40MDgyMDMgdiAwLjY5OTIxOSBoIC0wLjExNTIzNCB6IG0gMS4xODE2NDEsMCBoIDAuODk2NDg0IHYgMC4xMDE1NjIgSCAyOC4wNjI1IHYgMC42ODc1IGggMC43MzgyODEgdiAwLjA5OTYxIEggMjguMDYyNSB2IDAuNzIwNzAzIGggLTAuMTE1MjM0IHogbSAtNy43MTI4OTEsMC4wOTk2MSB2IDEuNDEwMTU2IGggMC4yNzE0ODQgYyAwLjI0NzI2MSwwIDAuNDMyMTgzLC0wLjA2MDQgMC41NTQ2ODgsLTAuMTc5Njg3IDAuMTIyNTQ5LC0wLjExOTI0MiAwLjE4MzU5NCwtMC4yOTg1NDIgMC4xODM1OTQsLTAuNTM3MTA5IDAsLTAuMTUzMzU4IC0wLjAyNTM2LC0wLjI4MDA1NCAtMC4wNzYxNywtMC4zODI4MTMgLTAuMDUwNzcsLTAuMTAyNzU4IC0wLjEyOTc5MywtMC4xODA2NzIgLTAuMjM0Mzc1LC0wLjIzMjQyMiAtMC4xMDQ1ODIsLTAuMDUxNzEgLTAuMjM1ODgyLC0wLjA3ODEzIC0wLjM5NjQ4NSwtMC4wNzgxMyB6IG0gMi41MTk1MzEsMCB2IDAuNzA4OTg1IGggMC4zMjYxNzIgYyAwLjEzMzc2LDAgMC4yMzc0NywtMC4wMzA2NCAwLjMxMjUsLTAuMDkzNzUgMC4wNzUxNiwtMC4wNjMxNSAwLjExMzI4MSwtMC4xNTMzNSAwLjExMzI4MSwtMC4yNzE0ODUgMCwtMC4xMjk5NDQgLTAuMDM5OTgsLTAuMjIwMzIxIC0wLjExOTE0LC0wLjI2OTUzMSAtMC4wNzkyNCwtMC4wNDkxNyAtMC4xOTkyMjQsLTAuMDc0MjIgLTAuMzYxMzI4LC0wLjA3NDIyIHogbSA0LjEyNjk1MywwIHYgMC43MDg5ODUgaCAwLjMyNjE3MiBjIDAuMTMzNzU5LDAgMC4yMzk0MjMsLTAuMDMwNjQgMC4zMTQ0NTMsLTAuMDkzNzUgMC4wNzUxMiwtMC4wNjMxNSAwLjExMTMyOCwtMC4xNTMzNSAwLjExMTMyOCwtMC4yNzE0ODUgMCwtMC4xMjk5NDQgLTAuMDM4MDgsLTAuMjIwMzIxIC0wLjExNzE4NywtMC4yNjk1MzEgLTAuMDc5MjQsLTAuMDQ5MTcgLTAuMjAxMTc4LC0wLjA3NDIyIC0wLjM2MzI4MSwtMC4wNzQyMiB6Ig0gICAgc3R5bGU9ImJhc2VsaW5lLXNoaWZ0OmJhc2VsaW5lO2NsaXAtcnVsZTpub256ZXJvO2Rpc3BsYXk6aW5saW5lO292ZXJmbG93OnZpc2libGU7dmVjdG9yLWVmZmVjdDpub25lO2ZpbGw6IzIyMjIyMjtmaWxsLXJ1bGU6bm9uemVybztzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtlbmFibGUtYmFja2dyb3VuZDphY2N1bXVsYXRlO3N0b3AtY29sb3I6IzAwMDAwMDtzdG9wLW9wYWNpdHk6MSINICAgIGlkPSJwYXRoMTciIC8+PC9zdmc+');}.icon-user-square{--icon:url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTYgMjU2IiBmaWxsPSJjdXJyZW50Q29sb3IiPjxwYXRoIGQ9Ik0yMDgsMzRINDhBMTQsMTQsMCwwLDAsMzQsNDhWMjA4YTE0LDE0LDAsMCwwLDE0LDE0SDIwOGExNCwxNCwwLDAsMCwxNC0xNFY0OEExNCwxNCwwLDAsMCwyMDgsMzRaTTk0LDEyMGEzNCwzNCwwLDEsMSwzNCwzNEEzNCwzNCwwLDAsMSw5NCwxMjBaTTY1Ljc3LDIxMGE2Ni40Myw2Ni40MywwLDAsMSwyMC43Ny0yOS4zNiw2Niw2NiwwLDAsMSw4Mi45MiwwQTY2LjQzLDY2LjQzLDAsMCwxLDE5MC4yMywyMTBaTTIxMCwyMDhhMiwyLDAsMCwxLTIsMmgtNS4xN2E3Ny44NSw3Ny44NSwwLDAsMC00OS4zOC01MS43MSw0Niw0NiwwLDEsMC01MC45LDBBNzcuODUsNzcuODUsMCwwLDAsNTMuMTcsMjEwSDQ4YTIsMiwwLDAsMS0yLTJWNDhhMiwyLDAsMCwxLDItMkgyMDhhMiwyLDAsMCwxLDIsMloiLz48L3N2Zz4=');}.icon-chat-teardrop{--icon:url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTYgMjU2IiBmaWxsPSJjdXJyZW50Q29sb3IiPjxwYXRoIGQ9Ik0xMzIsMjZhOTguMTEsOTguMTEsMCwwLDAtOTgsOTh2ODRhMTQsMTQsMCwwLDAsMTQsMTRoODRhOTgsOTgsMCwwLDAsMC0xOTZabTAsMTg0SDQ4YTIsMiwwLDAsMS0yLTJWMTI0YTg2LDg2LDAsMSwxLDg2LDg2WiIvPjwvc3ZnPg==');}.icon-caret-left{--icon:url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTYgMjU2IiBmaWxsPSJjdXJyZW50Q29sb3IiPjxwYXRoIGQ9Ik0xNjQuMjQsMjAzLjc2YTYsNiwwLDEsMS04LjQ4LDguNDhsLTgwLTgwYTYsNiwwLDAsMSwwLTguNDhsODAtODBhNiw2LDAsMCwxLDguNDgsOC40OEw4OC40OSwxMjhaIi8+PC9zdmc+');}.icon-house-simple{--icon:url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTYgMjU2IiBmaWxsPSJjdXJyZW50Q29sb3IiPjxwYXRoIGQ9Ik0yMTcuOSwxMTAuMWwtODAtODBhMTQsMTQsMCwwLDAtMTkuOCwwbC04MCw4MEExMy45MiwxMy45MiwwLDAsMCwzNCwxMjB2OTZhNiw2LDAsMCwwLDYsNkgyMTZhNiw2LDAsMCwwLDYtNlYxMjBBMTMuOTIsMTMuOTIsMCwwLDAsMjE3LjksMTEwLjFaTTIxMCwyMTBINDZWMTIwYTIsMiwwLDAsMSwuNTgtMS40Mmw4MC04MGEyLDIsMCwwLDEsMi44NCwwbDgwLDgwQTIsMiwwLDAsMSwyMTAsMTIwWiIvPjwvc3ZnPg==');}.icon-calendar{--icon:url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTYgMjU2IiBmaWxsPSJjdXJyZW50Q29sb3IiPjxwYXRoIGQ9Ik0yMDgsMzRIMTgyVjI0YTYsNiwwLDAsMC0xMiwwVjM0SDg2VjI0YTYsNiwwLDAsMC0xMiwwVjM0SDQ4QTE0LDE0LDAsMCwwLDM0LDQ4VjIwOGExNCwxNCwwLDAsMCwxNCwxNEgyMDhhMTQsMTQsMCwwLDAsMTQtMTRWNDhBMTQsMTQsMCwwLDAsMjA4LDM0Wk00OCw0Nkg3NFY1NmE2LDYsMCwwLDAsMTIsMFY0Nmg4NFY1NmE2LDYsMCwwLDAsMTIsMFY0NmgyNmEyLDIsMCwwLDEsMiwyVjgySDQ2VjQ4QTIsMiwwLDAsMSw0OCw0NlpNMjA4LDIxMEg0OGEyLDIsMCwwLDEtMi0yVjk0SDIxMFYyMDhBMiwyLDAsMCwxLDIwOCwyMTBabS05OC05MHY2NGE2LDYsMCwwLDEtMTIsMFYxMjkuNzFsLTcuMzIsMy42NmE2LDYsMCwxLDEtNS4zNi0xMC43NGwxNi04QTYsNiwwLDAsMSwxMTAsMTIwWm01OS41NywyOS4yNUwxNDgsMTc4aDIwYTYsNiwwLDAsMSwwLDEySDEzNmE2LDYsMCwwLDEtNC44LTkuNkwxNjAsMTQyYTEwLDEwLDAsMSwwLTE2LjY1LTExQTYsNiwwLDEsMSwxMzMsMTI1YTIyLDIyLDAsMSwxLDM2LjYyLDI0LjI2WiIvPjwvc3ZnPg==');}.icon-clock-clockwise{--icon:url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTYgMjU2IiBmaWxsPSJjdXJyZW50Q29sb3IiPjxwYXRoIGQ9Ik0xMzQsODB2NDQuNmwzNy4wOSwyMi4yNWE2LDYsMCwwLDEtNi4xOCwxMC4zbC00MC0yNEE2LDYsMCwwLDEsMTIyLDEyOFY4MGE2LDYsMCwwLDEsMTIsMFptOTAtMjJhNiw2LDAsMCwwLTYsNlY4Ny4zNmMtNy40OC04LjgzLTE0Ljk0LTE3LjEzLTIzLjUzLTI1LjgzYTk0LDk0LDAsMSwwLTEuOTUsMTM0LjgzLDYsNiwwLDAsMC04LjI0LTguNzJBODIsODIsMCwxLDEsMTg2LDcwYzkuMjQsOS4zNiwxNy4xOCwxOC4zLDI1LjMxLDI4SDE4NGE2LDYsMCwwLDAsMCwxMmg0MGE2LDYsMCwwLDAsNi02VjY0QTYsNiwwLDAsMCwyMjQsNThaIi8+PC9zdmc+');}.icon-shuffle{--icon:url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTYgMjU2IiBmaWxsPSJjdXJyZW50Q29sb3IiPjxwYXRoIGQ9Ik0yMzYuMjQsMTc5Ljc2YTYsNiwwLDAsMSwwLDguNDhsLTI0LDI0YTYsNiwwLDAsMS04LjQ4LTguNDhMMjE3LjUyLDE5MEgyMDAuOTRhNzAuMTYsNzAuMTYsMCwwLDEtNTctMjkuMzFsLTQxLjcxLTU4LjRBNTguMTEsNTguMTEsMCwwLDAsNTUuMDYsNzhIMzJhNiw2LDAsMCwxLDAtMTJINTUuMDZhNzAuMTYsNzAuMTYsMCwwLDEsNTcsMjkuMzFsNDEuNzEsNTguNEE1OC4xMSw1OC4xMSwwLDAsMCwyMDAuOTQsMTc4aDE2LjU4bC0xMy43Ni0xMy43NmE2LDYsMCwwLDEsOC40OC04LjQ4Wm0tOTIuMDYtNzQuNDFhNS45MSw1LjkxLDAsMCwwLDMuNDgsMS4xMiw2LDYsMCwwLDAsNC44OS0yLjUxbDEuMTktMS42N0E1OC4xMSw1OC4xMSwwLDAsMSwyMDAuOTQsNzhoMTYuNThMMjAzLjc2LDkxLjc2YTYsNiwwLDEsMCw4LjQ4LDguNDhsMjQtMjRhNiw2LDAsMCwwLDAtOC40OGwtMjQtMjRhNiw2LDAsMCwwLTguNDgsOC40OEwyMTcuNTIsNjZIMjAwLjk0YTcwLjE2LDcwLjE2LDAsMCwwLTU3LDI5LjMxTDE0Mi43OCw5N0E2LDYsMCwwLDAsMTQ0LjE4LDEwNS4zNVptLTMyLjM2LDQ1LjNhNiw2LDAsMCwwLTguMzcsMS4zOWwtMS4xOSwxLjY3QTU4LjExLDU4LjExLDAsMCwxLDU1LjA2LDE3OEgzMmE2LDYsMCwwLDAsMCwxMkg1NS4wNmE3MC4xNiw3MC4xNiwwLDAsMCw1Ny0yOS4zMWwxLjE5LTEuNjdBNiw2LDAsMCwwLDExMS44MiwxNTAuNjVaIi8+PC9zdmc+');}.icon-sort-descending{--icon:url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTYgMjU2IiBmaWxsPSJjdXJyZW50Q29sb3IiPjxwYXRoIGQ9Ik00MiwxMjhhNiw2LDAsMCwxLDYtNmg3MmE2LDYsMCwwLDEsMCwxMkg0OEE2LDYsMCwwLDEsNDIsMTI4Wm02LTU4aDU2YTYsNiwwLDAsMCwwLTEySDQ4YTYsNiwwLDAsMCwwLDEyWk0xODQsMTg2SDQ4YTYsNiwwLDAsMCwwLDEySDE4NGE2LDYsMCwwLDAsMC0xMlpNMjI4LjI0LDgzLjc2bC00MC00MGE2LDYsMCwwLDAtOC40OCwwbC00MCw0MGE2LDYsMCwwLDAsOC40OCw4LjQ4TDE3OCw2Mi40OVYxNDRhNiw2LDAsMCwwLDEyLDBWNjIuNDlsMjkuNzYsMjkuNzVhNiw2LDAsMCwwLDguNDgtOC40OFoiLz48L3N2Zz4=');}.icon-sort-ascending{--icon:url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTYgMjU2IiBmaWxsPSJjdXJyZW50Q29sb3IiPjxwYXRoIGQ9Ik0xMjYsMTI4YTYsNiwwLDAsMS02LDZINDhhNiw2LDAsMCwxLDAtMTJoNzJBNiw2LDAsMCwxLDEyNiwxMjhaTTQ4LDcwSDE4NGE2LDYsMCwwLDAsMC0xMkg0OGE2LDYsMCwwLDAsMCwxMlptNTYsMTE2SDQ4YTYsNiwwLDAsMCwwLDEyaDU2YTYsNiwwLDAsMCwwLTEyWm0xMjQuMjQtMjIuMjRhNiw2LDAsMCwwLTguNDgsMEwxOTAsMTkzLjUxVjExMmE2LDYsMCwwLDAtMTIsMHY4MS41MWwtMjkuNzYtMjkuNzVhNiw2LDAsMCwwLTguNDgsOC40OGw0MCw0MGE2LDYsMCwwLDAsOC40OCwwbDQwLTQwQTYsNiwwLDAsMCwyMjguMjQsMTYzLjc2WiIvPjwvc3ZnPg==');}.icon-arrow-elbow-left-down{--icon:url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTYgMjU2IiBmaWxsPSJjdXJyZW50Q29sb3IiPjxwYXRoIGQ9Ik0yMzgsNzJhNiw2LDAsMCwxLTYsNkg5NFYyMDEuNTFsMzcuNzYtMzcuNzVhNiw2LDAsMCwxLDguNDgsOC40OGwtNDgsNDhhNiw2LDAsMCwxLTguNDgsMGwtNDgtNDhhNiw2LDAsMCwxLDguNDgtOC40OEw4MiwyMDEuNTFWNzJhNiw2LDAsMCwxLDYtNkgyMzJBNiw2LDAsMCwxLDIzOCw3MloiLz48L3N2Zz4=');}.icon-arrow-elbow-right-down{--icon:url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTYgMjU2IiBmaWxsPSJjdXJyZW50Q29sb3IiPjxwYXRoIGQ9Ik0yMjguMjQsMTY0LjI0bC00OCw0OGE2LDYsMCwwLDEtOC40OCwwbC00OC00OGE2LDYsMCwxLDEsOC40OC04LjQ4TDE3MCwxOTMuNTFWNzBIMzJhNiw2LDAsMCwxLDAtMTJIMTc2YTYsNiwwLDAsMSw2LDZWMTkzLjUxbDM3Ljc2LTM3Ljc1YTYsNiwwLDAsMSw4LjQ4LDguNDhaIi8+PC9zdmc+');}.icon-caret-right{--icon:url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTYgMjU2IiBmaWxsPSJjdXJyZW50Q29sb3IiPjxwYXRoIGQ9Ik0xODAuMjQsMTMyLjI0bC04MCw4MGE2LDYsMCwwLDEtOC40OC04LjQ4TDE2Ny41MSwxMjgsOTEuNzYsNTIuMjRhNiw2LDAsMCwxLDguNDgtOC40OGw4MCw4MEE2LDYsMCwwLDEsMTgwLjI0LDEzMi4yNFoiLz48L3N2Zz4=');}.icon-dots-three{--icon:url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTYgMjU2IiBmaWxsPSJjdXJyZW50Q29sb3IiPjxwYXRoIGQ9Ik0xMzgsMTI4YTEwLDEwLDAsMSwxLTEwLTEwQTEwLDEwLDAsMCwxLDEzOCwxMjhaTTYwLDExOGExMCwxMCwwLDEsMCwxMCwxMEExMCwxMCwwLDAsMCw2MCwxMThabTEzNiwwYTEwLDEwLDAsMSwwLDEwLDEwQTEwLDEwLDAsMCwwLDE5NiwxMThaIi8+PC9zdmc+');}.icon-caret-circle-up{--icon:url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTYgMjU2IiBmaWxsPSJjdXJyZW50Q29sb3IiPjxwYXRoIGQ9Ik0xMjgsMjZBMTAyLDEwMiwwLDEsMCwyMzAsMTI4LDEwMi4xMiwxMDIuMTIsMCwwLDAsMTI4LDI2Wm0wLDE5MmE5MCw5MCwwLDEsMSw5MC05MEE5MC4xLDkwLjEsMCwwLDEsMTI4LDIxOFptNDQuMjQtNzguMjRhNiw2LDAsMSwxLTguNDgsOC40OEwxMjgsMTEyLjQ5LDkyLjI0LDE0OC4yNGE2LDYsMCwwLDEtOC40OC04LjQ4bDQwLTQwYTYsNiwwLDAsMSw4LjQ4LDBaIi8+PC9zdmc+');}.icon-calendar-blank{--icon:url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTYgMjU2IiBmaWxsPSJjdXJyZW50Q29sb3IiPjxwYXRoIGQ9Ik0yMDgsMzRIMTgyVjI0YTYsNiwwLDAsMC0xMiwwVjM0SDg2VjI0YTYsNiwwLDAsMC0xMiwwVjM0SDQ4QTE0LDE0LDAsMCwwLDM0LDQ4VjIwOGExNCwxNCwwLDAsMCwxNCwxNEgyMDhhMTQsMTQsMCwwLDAsMTQtMTRWNDhBMTQsMTQsMCwwLDAsMjA4LDM0Wk00OCw0Nkg3NFY1NmE2LDYsMCwwLDAsMTIsMFY0Nmg4NFY1NmE2LDYsMCwwLDAsMTIsMFY0NmgyNmEyLDIsMCwwLDEsMiwyVjgySDQ2VjQ4QTIsMiwwLDAsMSw0OCw0NlpNMjA4LDIxMEg0OGEyLDIsMCwwLDEtMi0yVjk0SDIxMFYyMDhBMiwyLDAsMCwxLDIwOCwyMTBaIi8+PC9zdmc+');}.icon-currency-dollar-simple{--icon:url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTYgMjU2IiBmaWxsPSJjdXJyZW50Q29sb3IiPjxwYXRoIGQ9Ik0xOTgsMTY4YTQ2LjA2LDQ2LjA2LDAsMCwxLTQ2LDQ2SDEzNHYxOGE2LDYsMCwwLDEtMTIsMFYyMTRIMTA0YTQ2LjA2LDQ2LjA2LDAsMCwxLTQ2LTQ2LDYsNiwwLDAsMSwxMiwwLDM0LDM0LDAsMCwwLDM0LDM0aDQ4YTM0LDM0LDAsMCwwLDAtNjhIMTEyYTQ2LDQ2LDAsMCwxLDAtOTJoMTBWMjRhNiw2LDAsMCwxLDEyLDBWNDJoMTBhNDYuMDYsNDYuMDYsMCwwLDEsNDYsNDYsNiw2LDAsMCwxLTEyLDAsMzQsMzQsMCwwLDAtMzQtMzRIMTEyYTM0LDM0LDAsMCwwLDAsNjhoNDBBNDYuMDYsNDYuMDYsMCwwLDEsMTk4LDE2OFoiLz48L3N2Zz4=');}.icon-hourglass-medium{--icon:url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTYgMjU2IiBmaWxsPSJjdXJyZW50Q29sb3IiPjxwYXRoIGQ9Ik0xOTgsNzUuNjRWNDBhMTQsMTQsMCwwLDAtMTQtMTRINzJBMTQsMTQsMCwwLDAsNTgsNDBWNzZhMTQuMDYsMTQuMDYsMCwwLDAsNS42LDExLjJMMTE4LDEyOCw2My42LDE2OC44QTE0LjA2LDE0LjA2LDAsMCwwLDU4LDE4MHYzNmExNCwxNCwwLDAsMCwxNCwxNEgxODRhMTQsMTQsMCwwLDAsMTQtMTRWMTgwLjM2YTE0LjA4LDE0LjA4LDAsMCwwLTUuNTYtMTEuMTdMMTM4LDEyOGw1NC40OS00MS4xOUExNC4wOCwxNC4wOCwwLDAsMCwxOTgsNzUuNjRaTTcwLDQwYTIsMiwwLDAsMSwyLTJIMTg0YTIsMiwwLDAsMSwyLDJWNzUuNjRhMiwyLDAsMCwxLS43OSwxLjZMMTc4LjksODJINzYuNjdMNzAuOCw3Ny42QTIsMiwwLDAsMSw3MCw3NlptNTgsODAuNDlMOTIuNjcsOTRIMTYzWm01OCw1OS44N1YyMTZhMiwyLDAsMCwxLTIsMkg3MmEyLDIsMCwwLDEtMi0yVjE4MGEyLDIsMCwwLDEsLjgtMS42TDEyMiwxNDB2MjhhNiw2LDAsMCwwLDEyLDBWMTQwLjA2bDUxLjIxLDM4LjdBMiwyLDAsMCwxLDE4NiwxODAuMzZaIi8+PC9zdmc+');}.icon-arrow-elbow-left-up{--icon:url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTYgMjU2IiBmaWxsPSJjdXJyZW50Q29sb3IiPjxwYXRoIGQ9Ik0yMzgsMTkyYTYsNiwwLDAsMS02LDZIODhhNiw2LDAsMCwxLTYtNlY2Mi40OUw0NC4yNCwxMDAuMjRhNiw2LDAsMCwxLTguNDgtOC40OGw0OC00OGE2LDYsMCwwLDEsOC40OCwwbDQ4LDQ4YTYsNiwwLDEsMS04LjQ4LDguNDhMOTQsNjIuNDlWMTg2SDIzMkE2LDYsMCwwLDEsMjM4LDE5MloiLz48L3N2Zz4=');}.icon-arrow-elbow-right-up{--icon:url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTYgMjU2IiBmaWxsPSJjdXJyZW50Q29sb3IiPjxwYXRoIGQ9Ik0yMjAuMjQsMTAwLjI0YTYsNiwwLDAsMS04LjQ4LDBMMTc0LDYyLjQ5VjE5MmE2LDYsMCwwLDEtNiw2SDI0YTYsNiwwLDAsMSwwLTEySDE2MlY2Mi40OWwtMzcuNzYsMzcuNzVhNiw2LDAsMCwxLTguNDgtOC40OGw0OC00OGE2LDYsMCwwLDEsOC40OCwwbDQ4LDQ4QTYsNiwwLDAsMSwyMjAuMjQsMTAwLjI0WiIvPjwvc3ZnPg==');}.icon-star-half-fi{--icon:url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTYgMjU2IiBmaWxsPSJjdXJyZW50Q29sb3IiPjxwYXRoIGQ9Ik0yMzkuMTgsOTcuMjZBMTYuMzgsMTYuMzgsMCwwLDAsMjI0LjkyLDg2bC01OS00Ljc2TDE0My4xNCwyNi4xNWExNi4zNiwxNi4zNiwwLDAsMC0zMC4yNywwTDkwLjExLDgxLjIzLDMxLjA4LDg2YTE2LjQ2LDE2LjQ2LDAsMCwwLTkuMzcsMjguODZsNDUsMzguODNMNTMsMjExLjc1YTE2LjQsMTYuNCwwLDAsMCwyNC41LDE3LjgyTDEyOCwxOTguNDlsNTAuNTMsMzEuMDhBMTYuNCwxNi40LDAsMCwwLDIwMywyMTEuNzVsLTEzLjc2LTU4LjA3LDQ1LTM4LjgzQTE2LjQzLDE2LjQzLDAsMCwwLDIzOS4xOCw5Ny4yNlptLTE1LjM0LDUuNDctNDguNyw0MmE4LDgsMCwwLDAtMi41Niw3LjkxbDE0Ljg4LDYyLjhhLjM3LjM3LDAsMCwxLS4xNy40OGMtLjE4LjE0LS4yMy4xMS0uMzgsMGwtNTQuNzItMzMuNjVBOCw4LDAsMCwwLDEyOCwxODEuMVYzMmMuMjQsMCwuMjcuMDguMzUuMjZMMTUzLDkxLjg2YTgsOCwwLDAsMCw2Ljc1LDQuOTJsNjMuOTEsNS4xNmMuMTYsMCwuMjUsMCwuMzQuMjlTMjI0LDEwMi42MywyMjMuODQsMTAyLjczWiIvPjwvc3ZnPg==');}.icon-star-fi{--icon:url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTYgMjU2IiBmaWxsPSJjdXJyZW50Q29sb3IiPjxwYXRoIGQ9Ik0yMzQuMjksMTE0Ljg1bC00NSwzOC44M0wyMDMsMjExLjc1YTE2LjQsMTYuNCwwLDAsMS0yNC41LDE3LjgyTDEyOCwxOTguNDksNzcuNDcsMjI5LjU3QTE2LjQsMTYuNCwwLDAsMSw1MywyMTEuNzVsMTMuNzYtNTguMDctNDUtMzguODNBMTYuNDYsMTYuNDYsMCwwLDEsMzEuMDgsODZsNTktNC43NiwyMi43Ni01NS4wOGExNi4zNiwxNi4zNiwwLDAsMSwzMC4yNywwbDIyLjc1LDU1LjA4LDU5LDQuNzZhMTYuNDYsMTYuNDYsMCwwLDEsOS4zNywyOC44NloiLz48L3N2Zz4=');} |
| | |
| | | <?php |
| | | |
| | | use JVBase\registrar\Registrar; |
| | | |
| | | function ajv_render_core_site_logo(array $block, string $content):string |
| | | { |
| | | $open = $close = ''; |
| | |
| | | |
| | | function ajv_render_core_cover(array $block):string |
| | | { |
| | | $types = array_map(function($type) { |
| | | return BASE.$type; |
| | | }, array_keys(JVB_CONTENT)); |
| | | $types = array_map(function($type) { return jvbCheckBase($type); }, Registrar::getRegistered('post')); |
| | | $taxTypes = array_map(function($type) { return jvbCheckBase($type); }, Registrar::getRegistered('term')); |
| | | |
| | | if (is_post_type_archive($types)) { |
| | | $obj = get_queried_object(); |
| | | foreach ($types as $type) { |
| | | if ($type === $obj->name) { |
| | | $type = jvbNoBase($type); |
| | | $function = 'ajv_render_'.$type.'_cover'; |
| | | return '<section class="align-full cover alt '.$type.'">'.call_user_func($function).'</section>'; |
| | | } |
| | | $type = jvbNoBase($obj->name); |
| | | $function = 'ajv_render_'.$type.'_cover'; |
| | | if (function_exists($function)) { |
| | | return '<section class="align-full cover alt '.$type.'">'.$function().'</section>'; |
| | | } |
| | | // foreach ($types as $type) { |
| | | // if ($type === $obj->name) { |
| | | // $type = jvbNoBase($type); |
| | | // $function = 'ajv_render_'.$type.'_cover'; |
| | | // return '<section class="align-full cover alt '.$type.'">'.call_user_func($function).'</section>'; |
| | | // } |
| | | // } |
| | | } else if (is_tax($taxTypes)) { |
| | | $obj = get_queried_object(); |
| | | $type = jvbNoBase($obj->taxonomy); |
| | | $function = 'ajv_render_'.$type.'_cover'; |
| | | if (function_exists($function)) { |
| | | $result = $function($obj->term_id); |
| | | return $result === '' ? '' : '<section class="align-full cover '.$type.'">'.$result.'</section>'; |
| | | } |
| | | } |
| | | |
| | | |
| | | if(!is_singular(array_map(function($item) { return BASE.$item; }, array_keys(JVB_CONTENT)))) { |
| | | if(!is_singular($types)) { |
| | | return JVB()->blocks()->render_core_cover($block); |
| | | } |
| | | $post_type = jvbNoBase(get_post_type()); |
| | | $registrar = Registrar::getInstance($post_type); |
| | | if (!$registrar) { |
| | | return JVB()->blocks()->render_core_cover($block); |
| | | } |
| | | |
| | | |
| | | $ID = get_the_ID(); |
| | | $imgID = get_post_thumbnail_id($ID); |
| | |
| | | $img = str_replace('<img', '<img style="object-fit:center"',jvbFormatImage($imgID, 'tiny', 'large', false)) ; |
| | | } |
| | | |
| | | $post_type = jvbNoBase(get_post_type()); |
| | | $singular = JVB_CONTENT[$post_type]['singular']; |
| | | $singular = $registrar->getSingular(); |
| | | |
| | | $header = 'Canadian made '.$singular.'. Made in Edmonton.'; |
| | | $title = get_the_title(); |
| | |
| | | $out .= '<div>'.$img. '</div>'; |
| | | } |
| | | return $out; |
| | | } |
| | | |
| | | function ajv_render_core_post_title($block, $content):string |
| | | { |
| | | if (!ajv_is_singular()){ |
| | | return JVB()->blocks()->render_core_post_title($block); |
| | | } |
| | | $ID = get_the_ID(); |
| | | $city = get_the_terms($ID, BASE.'city'); |
| | | if ($city && !is_wp_error($city)) { |
| | | $city = $city[0]->name; |
| | | } else { |
| | | $city ='Edmonton'; |
| | | } |
| | | $registrar = Registrar::getInstance(get_post_type($ID)); |
| | | if (!$registrar) { |
| | | return JVB()->blocks()->render_core_post_title($block); |
| | | } |
| | | |
| | | $form = get_the_terms($ID, BASE.'form'); |
| | | if ($form && !is_wp_error($form)){ |
| | | $form = $form[0]->name.' '; |
| | | } else { |
| | | $form = ''; |
| | | } |
| | | |
| | | $title = get_the_title($ID); |
| | | |
| | | return sprintf( |
| | | '<h1><small>Canadian made %s%s. Made in %s.</small>%s</h1>', |
| | | $form, |
| | | $registrar->getPlural(), |
| | | $city, |
| | | $title |
| | | ); |
| | | |
| | | } |
| | |
| | | * - 'section' => (string) the slug of the section, as defined above |
| | | */ |
| | | |
| | | use JVBase\registrar\Registrar; |
| | | |
| | | require(AJV_DIR . '/content/art.php'); |
| | | require(AJV_DIR . '/content/design.php'); |
| | | require(AJV_DIR . '/content/development.php'); |
| | |
| | | require(AJV_DIR . '/content/support.php'); |
| | | require(AJV_DIR . '/content/writing.php'); |
| | | |
| | | add_filter('jvb_content', 'ajv_content'); |
| | | //add_filter('jvb_content', 'ajv_content'); |
| | | function ajv_content($content):array |
| | | { |
| | | return [ |
| | |
| | | add_filter('wp_footer', 'ajv_gallery_output'); |
| | | function ajv_gallery_output():void |
| | | { |
| | | if (is_singular(array_map(function($item) { return BASE.$item; }, array_keys(JVB_CONTENT)))) { |
| | | $types = array_map(function($type) { return jvbCheckBase($type); }, Registrar::getRegistered('post')); |
| | | |
| | | if (is_singular($types)) { |
| | | jvbRenderGallery(); |
| | | } |
| | | } |
| | |
| | | <?php |
| | | // /content/art.php |
| | | use JVBase\meta\Meta; |
| | | use JVBase\registrar\Registrar; |
| | | |
| | | function ajv_art():array |
| | | { |
| | | return [ |
| | | 'singular' => 'Art', |
| | | 'plural' => 'Art', |
| | | 'dash_title' => 'Art', |
| | | 'dash_description' => 'Manage your art posts', |
| | | 'directory' => 'Art', |
| | | 'breadcrumb' => 'Art', |
| | | 'addCrumb' => 'form', |
| | | 'hide_single' => false, |
| | | 'show_feed' => true, |
| | | 'show_directory'=> true, |
| | | 'favouritable' => true, |
| | | 'karma' => false, |
| | | 'icon' => 'palette', |
| | | 'seo' => [ |
| | | 'schema' => [ |
| | | 'type' => 'VisualArtwork', |
| | | 'name' => '{{post_title}}', |
| | | 'description' => '{{post_excerpt}}', |
| | | 'about' => ['@id' => '{{site_url}}/#art'], |
| | | 'associatedMedia' => '{{post_thumbnail}}', |
| | | 'dateCreated' => '{{post_date}}', |
| | | // artform, artMedium, creator, keywords auto-enriched by VisualArtworkResolver |
| | | ], |
| | | 'meta' => [ |
| | | 'title' => '{{post_title}} — {{form.name}} Art | Handmade. Human.', |
| | | 'description' => '{{post_excerpt}}', |
| | | ], |
| | | 'archive' => [ |
| | | 'type' => 'CollectionPage', |
| | | 'name' => 'Canadian Art. Made in Edmonton, Alberta.', |
| | | 'description' => 'Handmade sculpture, jewelry, and more from Edmonton, Alberta.', |
| | | ], |
| | | ], |
| | | 'feed' => [ |
| | | 'single' => [ |
| | | 'pre_title' => 'Canadian Art. Made in Edmonton, Alberta.', |
| | | ], |
| | | 'archive' => [ |
| | | if (!defined('ABSPATH')) { |
| | | exit; |
| | | } |
| | | |
| | | |
| | | add_action('plugins_loaded', 'ajv_art',1); |
| | | //Add fields later so we can verify taxonomies/post types exist |
| | | add_action('plugins_loaded', 'ajv_art_fields', 2); |
| | | |
| | | add_filter('ajv_ArtSchemaDefault', 'ajv_art_schema'); |
| | | add_filter('ajv_ArtMetaDefault', 'ajv_art_meta'); |
| | | add_filter('ajv_ArtArchiveDefault', 'ajv_art_archive'); |
| | | |
| | | function ajv_art(){ |
| | | if (!class_exists('JVBase\registrar\Registrar')) { |
| | | return; |
| | | } |
| | | $art = Registrar::forPost('art', 'Art', 'Art') |
| | | ->setIcon('palette') |
| | | ->make([ |
| | | 'rewrite' => [ |
| | | 'slug' => 'art', |
| | | 'with_front' => false, |
| | | ], |
| | | 'config' => [ |
| | | 'is_gallery' => false, |
| | | 'content' => 'art', |
| | | 'context' => 'art', |
| | | 'id' => [], |
| | | 'class' => [], |
| | | 'taxonomies' => [ |
| | | 'project', |
| | | 'form', |
| | | 'city', |
| | | 'media', |
| | | 'style', |
| | | 'theme' |
| | | ] |
| | | ], |
| | | 'rewrite' => [ |
| | | 'slug' => 'art', |
| | | 'with_front' => false, |
| | | ], |
| | | ]) |
| | | ->setAll([ |
| | | 'show_feed', |
| | | 'show_directory', |
| | | 'favouritable' |
| | | ]); |
| | | |
| | | 'fields' => [ |
| | | 'post_status' => [ |
| | | 'type' => 'radio', |
| | | 'label' => 'Status', |
| | | 'options' => [ |
| | | 'publish' => 'Show', |
| | | 'draft' => 'Hide', |
| | | 'trash' => 'Scrap', |
| | | 'delete' => 'Permanently Delete' |
| | | ], |
| | | 'hidden' => true, |
| | | //$directory = $art->getConfig('directory'); |
| | | |
| | | } |
| | | |
| | | function ajv_art_fields():void |
| | | { |
| | | if (!class_exists('JVBase\registrar\Registrar')) { |
| | | return; |
| | | } |
| | | $art = Registrar::getInstance('art'); |
| | | $breadcrumbs = $art->config('breadcrumbs'); |
| | | $breadcrumbs->setCrumb(['project', 'form']); |
| | | |
| | | $fields = $art->fields(); |
| | | $fields->addField('project', [ |
| | | 'type' => 'selector', |
| | | 'subtype' => 'taxonomy', |
| | | 'taxonomy' => 'project', |
| | | 'label' => 'Project', |
| | | ]); |
| | | $fields->addField('form', [ |
| | | 'type' => 'selector', |
| | | 'subtype' => 'taxonomy', |
| | | 'taxonomy' => 'form', |
| | | 'label' => 'Form', |
| | | ]); |
| | | $fields->addField('city', [ |
| | | 'type' => 'selector', |
| | | 'subtype' => 'taxonomy', |
| | | 'taxonomy' => 'city', |
| | | 'label' => 'City', |
| | | ]); |
| | | $fields->addField('media', [ |
| | | 'type' => 'selector', |
| | | 'subtype' => 'taxonomy', |
| | | 'taxonomy' => 'media', |
| | | 'label' => 'Media', |
| | | ]); |
| | | $fields->addField('style', [ |
| | | 'type' => 'selector', |
| | | 'subtype' => 'taxonomy', |
| | | 'taxonomy' => 'style', |
| | | 'label' => 'Style', |
| | | ]); |
| | | $fields->addField('theme', [ |
| | | 'type' => 'selector', |
| | | 'subtype' => 'taxonomy', |
| | | 'taxonomy' => 'theme', |
| | | 'label' => 'Theme', |
| | | ]); |
| | | $fields->addField('gallery', [ |
| | | 'type' => 'upload', |
| | | 'multiple' => true, |
| | | 'label' => 'Gallery', |
| | | ]); |
| | | $fields->addField('price', [ |
| | | 'type' => 'number', |
| | | 'label' => 'Price', |
| | | ]); |
| | | $fields->addField('needs', [ |
| | | 'type' => 'repeater', |
| | | 'label' => 'Needs', |
| | | 'fields' => [ |
| | | 'need' => [ |
| | | 'type' => 'text', |
| | | 'label' => 'Need', |
| | | 'required' => true |
| | | ], |
| | | 'post_title' => [ |
| | | 'type' => 'text', |
| | | 'label' => 'Title', |
| | | ], |
| | | 'post_date' => [ |
| | | 'type' => 'date', |
| | | 'label' => 'Date', |
| | | ], |
| | | 'city' => [ |
| | | 'type' => 'taxonomy', |
| | | 'taxonomy' => 'city', |
| | | 'autocomplete' => true, |
| | | 'label' => 'City', |
| | | ], |
| | | 'form' => [ |
| | | 'type' => 'taxonomy', |
| | | 'taxonomy' => 'form', |
| | | 'autocomplete' => true, |
| | | 'label' => 'Art Form', |
| | | ], |
| | | 'media' => [ |
| | | 'type' => 'taxonomy', |
| | | 'taxonomy' => 'media', |
| | | 'autocomplete' => true, |
| | | 'label' => 'Media', |
| | | ], |
| | | 'style' => [ |
| | | 'type' => 'taxonomy', |
| | | 'taxonomy' => 'style', |
| | | 'autocomplete' => true, |
| | | 'label' => 'Style', |
| | | ], |
| | | 'theme' => [ |
| | | 'type' => 'taxonomy', |
| | | 'taxonomy' => 'theme', |
| | | 'autocomplete' => true, |
| | | 'label' => 'Theme', |
| | | ], |
| | | 'project' => [ |
| | | 'type' => 'taxonomy', |
| | | 'taxonomy' => 'project', |
| | | 'autocomplete' => true, |
| | | 'label' => 'Project', |
| | | ], |
| | | 'post_thumbnail' => [ |
| | | 'image' => [ |
| | | 'type' => 'upload', |
| | | 'label' => 'Image', |
| | | 'multiple' => true, |
| | | 'label' => 'Example Image' |
| | | ], |
| | | 'gallery' => [ |
| | | 'type' => 'upload', |
| | | 'multiple'=> 'true', |
| | | 'label' => 'Gallery', |
| | | ], |
| | | 'price' => [ |
| | | 'type' => 'number', |
| | | 'label' => 'Price', |
| | | ], |
| | | 'post_excerpt' => [ |
| | | 'type' => 'textarea', |
| | | 'label' => 'Short Blurb', |
| | | ], |
| | | 'post_content' => [ |
| | | 'fulfilled' => [ |
| | | 'type' => 'textarea', |
| | | 'quill' => true, |
| | | 'label' => 'Notes' |
| | | 'label' => 'How I fulfilled it' |
| | | ] |
| | | ] |
| | | ]); |
| | | $fields->addField('wants', [ |
| | | 'type' => 'repeater', |
| | | 'label' => 'Wants', |
| | | 'fields' => [ |
| | | 'need' => [ |
| | | 'type' => 'text', |
| | | 'label' => 'Need', |
| | | 'required' => true |
| | | ], |
| | | 'needs' => [ |
| | | 'type' => 'repeater', |
| | | 'label' => 'Needs', |
| | | 'fields'=> [ |
| | | 'need' => [ |
| | | 'type' => 'text', |
| | | 'label' => 'Need', |
| | | 'required' => true |
| | | ], |
| | | 'image' => [ |
| | | 'type' => 'upload', |
| | | 'multiple' => true, |
| | | 'label' => 'Example Image' |
| | | ], |
| | | 'fulfilled' => [ |
| | | 'type' => 'textarea', |
| | | 'quill' => true, |
| | | 'label' => 'How I fulfilled it' |
| | | ] |
| | | ] |
| | | 'image' => [ |
| | | 'type' => 'upload', |
| | | 'multiple' => true, |
| | | 'label' => 'Example Image' |
| | | ], |
| | | 'wants' => [ |
| | | 'type' => 'repeater', |
| | | 'label' => 'Wants', |
| | | 'fields'=> [ |
| | | 'need' => [ |
| | | 'type' => 'text', |
| | | 'label' => 'Want', |
| | | 'required' => true |
| | | ], |
| | | 'image' => [ |
| | | 'type' => 'upload', |
| | | 'multiple' => true, |
| | | 'label' => 'Example Image' |
| | | ], |
| | | 'fulfilled' => [ |
| | | 'type' => 'textarea', |
| | | 'quill' => true, |
| | | 'label' => 'How I fulfilled it' |
| | | ] |
| | | ] |
| | | ], |
| | | ], |
| | | 'single_image' => false, |
| | | 'upload_title' => 'Upload Artwork', |
| | | ]; |
| | | 'fulfilled' => [ |
| | | 'type' => 'textarea', |
| | | 'quill' => true, |
| | | 'label' => 'How I fulfilled it' |
| | | ] |
| | | ] |
| | | ]); |
| | | } |
| | | |
| | | |
| | | //function ajv_art():array |
| | | //{ |
| | | // return [ |
| | | // 'singular' => 'Art', |
| | | // 'plural' => 'Art', |
| | | // 'dash_title' => 'Art', |
| | | // 'dash_description' => 'Manage your art posts', |
| | | // 'directory' => 'Art', |
| | | // 'breadcrumb' => 'Art', |
| | | // 'addCrumb' => 'form', |
| | | // 'hide_single' => false, |
| | | // 'show_feed' => true, |
| | | // 'show_directory'=> true, |
| | | // 'favouritable' => true, |
| | | // 'karma' => false, |
| | | // 'icon' => 'palette', |
| | | // 'seo' => [ |
| | | // 'schema' => [ |
| | | // 'type' => 'VisualArtwork', |
| | | // 'name' => '{{post_title}}', |
| | | // 'description' => '{{post_excerpt}}', |
| | | // 'about' => ['@id' => '{{site_url}}/#art'], |
| | | // 'associatedMedia' => '{{post_thumbnail}}', |
| | | // 'dateCreated' => '{{post_date}}', |
| | | // // artform, artMedium, creator, keywords auto-enriched by VisualArtworkResolver |
| | | // ], |
| | | // 'meta' => [ |
| | | // 'title' => '{{post_title}} — {{form.name}} Art | Handmade. Human.', |
| | | // 'description' => '{{post_excerpt}}', |
| | | // ], |
| | | // 'archive' => [ |
| | | // 'type' => 'CollectionPage', |
| | | // 'name' => 'Canadian Art. Made in Edmonton, Alberta.', |
| | | // 'description' => 'Handmade sculpture, jewelry, and more from Edmonton, Alberta.', |
| | | // ], |
| | | // ], |
| | | // 'feed' => [ |
| | | // 'single' => [ |
| | | // 'pre_title' => 'Canadian Art. Made in Edmonton, Alberta.', |
| | | // ], |
| | | // 'archive' => [ |
| | | // |
| | | // ], |
| | | // 'config' => [ |
| | | // 'is_gallery' => false, |
| | | // 'content' => 'art', |
| | | // 'context' => 'art', |
| | | // 'id' => [], |
| | | // 'class' => [], |
| | | // ] |
| | | // ], |
| | | // 'rewrite' => [ |
| | | // 'slug' => 'art', |
| | | // 'with_front' => false, |
| | | // ], |
| | | // |
| | | // 'fields' => [ |
| | | // 'post_status' => [ |
| | | // 'type' => 'radio', |
| | | // 'label' => 'Status', |
| | | // 'options' => [ |
| | | // 'publish' => 'Show', |
| | | // 'draft' => 'Hide', |
| | | // 'trash' => 'Scrap', |
| | | // 'delete' => 'Permanently Delete' |
| | | // ], |
| | | // 'hidden' => true, |
| | | // ], |
| | | // 'post_title' => [ |
| | | // 'type' => 'text', |
| | | // 'label' => 'Title', |
| | | // ], |
| | | // 'post_date' => [ |
| | | // 'type' => 'date', |
| | | // 'label' => 'Date', |
| | | // ], |
| | | // 'city' => [ |
| | | // 'type' => 'taxonomy', |
| | | // 'taxonomy' => 'city', |
| | | // 'autocomplete' => true, |
| | | // 'label' => 'City', |
| | | // ], |
| | | // 'form' => [ |
| | | // 'type' => 'taxonomy', |
| | | // 'taxonomy' => 'form', |
| | | // 'autocomplete' => true, |
| | | // 'label' => 'Art Form', |
| | | // ], |
| | | // 'media' => [ |
| | | // 'type' => 'taxonomy', |
| | | // 'taxonomy' => 'media', |
| | | // 'autocomplete' => true, |
| | | // 'label' => 'Media', |
| | | // ], |
| | | // 'style' => [ |
| | | // 'type' => 'taxonomy', |
| | | // 'taxonomy' => 'style', |
| | | // 'autocomplete' => true, |
| | | // 'label' => 'Style', |
| | | // ], |
| | | // 'theme' => [ |
| | | // 'type' => 'taxonomy', |
| | | // 'taxonomy' => 'theme', |
| | | // 'autocomplete' => true, |
| | | // 'label' => 'Theme', |
| | | // ], |
| | | // 'project' => [ |
| | | // 'type' => 'taxonomy', |
| | | // 'taxonomy' => 'project', |
| | | // 'autocomplete' => true, |
| | | // 'label' => 'Project', |
| | | // ], |
| | | // 'post_thumbnail' => [ |
| | | // 'type' => 'upload', |
| | | // 'label' => 'Image', |
| | | // ], |
| | | // 'gallery' => [ |
| | | // 'type' => 'upload', |
| | | // 'multiple'=> true, |
| | | // 'label' => 'Gallery', |
| | | // ], |
| | | // 'price' => [ |
| | | // 'type' => 'number', |
| | | // 'label' => 'Price', |
| | | // ], |
| | | // 'post_excerpt' => [ |
| | | // 'type' => 'textarea', |
| | | // 'label' => 'Short Blurb', |
| | | // ], |
| | | // 'post_content' => [ |
| | | // 'type' => 'textarea', |
| | | // 'quill' => true, |
| | | // 'label' => 'Notes' |
| | | // ], |
| | | // 'needs' => [ |
| | | // 'type' => 'repeater', |
| | | // 'label' => 'Needs', |
| | | // 'fields'=> [ |
| | | // 'need' => [ |
| | | // 'type' => 'text', |
| | | // 'label' => 'Need', |
| | | // 'required' => true |
| | | // ], |
| | | // 'image' => [ |
| | | // 'type' => 'upload', |
| | | // 'multiple' => true, |
| | | // 'label' => 'Example Image' |
| | | // ], |
| | | // 'fulfilled' => [ |
| | | // 'type' => 'textarea', |
| | | // 'quill' => true, |
| | | // 'label' => 'How I fulfilled it' |
| | | // ] |
| | | // ] |
| | | // ], |
| | | // 'wants' => [ |
| | | // 'type' => 'repeater', |
| | | // 'label' => 'Wants', |
| | | // 'fields'=> [ |
| | | // 'need' => [ |
| | | // 'type' => 'text', |
| | | // 'label' => 'Want', |
| | | // 'required' => true |
| | | // ], |
| | | // 'image' => [ |
| | | // 'type' => 'upload', |
| | | // 'multiple' => true, |
| | | // 'label' => 'Example Image' |
| | | // ], |
| | | // 'fulfilled' => [ |
| | | // 'type' => 'textarea', |
| | | // 'quill' => true, |
| | | // 'label' => 'How I fulfilled it' |
| | | // ] |
| | | // ] |
| | | // ], |
| | | // ], |
| | | // 'single_image' => false, |
| | | // 'upload_title' => 'Upload Artwork', |
| | | // ]; |
| | | //} |
| | | |
| | | function ajv_render_art_content(array $block, string $content):string |
| | | { |
| | | $out = ''; |
| | |
| | | if (array_key_exists('post_excerpt', $fields) && !empty($fields['post_excerpt'])) { |
| | | $bits[] = sprintf( |
| | | '<section id="excerpt"><h2>At a Glance</h2>%s</section>', |
| | | apply_filters('the_content', $fields['post_excerpt']) |
| | | jvb_filter_content($fields['post_excerpt']) |
| | | ); |
| | | } |
| | | |
| | |
| | | $gallery = array_map(function ($imgID) { |
| | | $out = '<figure>'.jvbFormatImage($imgID,'tiny','medium'); |
| | | $caption = wp_get_attachment_caption($imgID); |
| | | $out .= ($caption && $caption !== '') ? '<figcaption>'.apply_filters('the_content', $caption).'</figcaption>' : ''; |
| | | $out .= ($caption && $caption !== '') ? '<figcaption>'.jvb_filter_content($caption).'</figcaption>' : ''; |
| | | $out .= '</figure>'; |
| | | return $out; |
| | | |
| | |
| | | if (array_key_exists('post_content', $fields) && !empty($fields['post_content'])) { |
| | | $bits[] = sprintf( |
| | | '<section id="content">%s</section>', |
| | | apply_filters('the_content', $fields['post_content']) |
| | | $fields['post_content'] |
| | | ); |
| | | } |
| | | |
| | |
| | | |
| | | |
| | | return $out; |
| | | } |
| | | |
| | | |
| | | function ajv_art_schema():array |
| | | { |
| | | return [ |
| | | 'type' => 'JVBase\managers\SEO\render\Thing\CreativeWork\VisualArtwork\VisualArtwork', |
| | | 'name' => '{{post_title}} | Canadian Art', |
| | | 'artist' => '{{post_author}}', |
| | | 'description' => '{{post_excerpt}}', |
| | | 'thumbnail' => '{{post_thumbnail}}', |
| | | 'dateCreated' => '{{post_date}}', |
| | | 'dateModified' => '{{post_modified}}', |
| | | 'artform' => '{{form.name}}', |
| | | 'artMedium' => '{{medium.name}}', |
| | | 'keywords' => '{{style.name}}', |
| | | ]; |
| | | } |
| | | |
| | | function ajv_art_meta():array |
| | | { |
| | | return[ |
| | | 'name' => '{{post_title}} - {{form.name}} | Handmade. Human Art', |
| | | ]; |
| | | } |
| | | |
| | | function ajv_art_archive(array $defaults):array |
| | | { |
| | | return array_merge($defaults, [ |
| | | 'name' => 'Canadian Art. Made in Edmonton, Alberta.', |
| | | 'description' => 'Handmade sculpture, jewellery, and more from Edmonton, Alberta.' |
| | | ]); |
| | | } |
| | | |
| | | function ajv_art_reference_schema(array $defaults):array |
| | | { |
| | | return $defaults; |
| | | } |
| | |
| | | <?php |
| | | // /content/design.php |
| | | function ajv_design():array |
| | | { |
| | | return [ |
| | | 'singular' => 'Design', |
| | | 'plural' => 'Designs', |
| | | 'directory' => 'Design', |
| | | 'show_feed' => true, |
| | | 'show_directory'=> true, |
| | | 'addCrumb' => 'project', |
| | | 'favouritable' => true, |
| | | 'karma' => false, |
| | | 'icon' => 'scribble', |
| | | 'rewrite' => [ |
| | | 'slug' => 'design', |
| | | 'with_front' => false, |
| | | ], |
| | | // design.php |
| | | 'seo' => [ |
| | | 'schema' => [ |
| | | 'type' => 'CreativeWork', |
| | | 'name' => '{{post_title}}', |
| | | 'description' => '{{post_excerpt}}', |
| | | 'about' => ['@id' => '{{site_url}}/#design'], |
| | | 'associatedMedia' => '{{post_thumbnail}}', |
| | | 'dateCreated' => '{{post_date}}', |
| | | 'keywords' => '{{style.name}}', |
| | | ], |
| | | 'meta' => [ |
| | | 'title' => '{{post_title}} | Human-made Design', |
| | | 'description' => '{{post_excerpt}}', |
| | | ], |
| | | 'archive' => [ |
| | | 'type' => 'CollectionPage', |
| | | 'name' => 'Canadian Design. Made in Edmonton, Alberta.', |
| | | ], |
| | | ], |
| | | 'feed' => [ |
| | | 'single' => [ |
| | | 'pre_title' => 'Canadian Design. Made in Edmonton, Alberta.', |
| | | ], |
| | | 'archive' => [ |
| | | use JVBase\meta\Meta; |
| | | use JVBase\registrar\Registrar; |
| | | |
| | | if (!defined('ABSPATH')) { |
| | | exit; |
| | | } |
| | | |
| | | add_action('plugins_loaded', 'ajv_design',1); |
| | | //Add fields later so we can verify taxonomies/post types exist |
| | | add_action('plugins_loaded', 'ajv_design_fields', 2); |
| | | |
| | | |
| | | add_filter('ajv_DesignSchemaDefault', 'ajv_design_schema'); |
| | | add_filter('ajv_DesignMetaDefault', 'ajv_design_meta'); |
| | | add_filter('ajv_DesignArchiveDefault', 'ajv_design_archive'); |
| | | |
| | | function ajv_design(){ |
| | | if (!class_exists('JVBase\registrar\Registrar')) { |
| | | return; |
| | | } |
| | | $design = Registrar::forPost('design', 'Design', 'Designs') |
| | | ->setIcon('scribble') |
| | | ->make([ |
| | | 'rewrite' => [ |
| | | 'slug' => 'design', |
| | | 'with_front' => false, |
| | | ], |
| | | 'config' => [ |
| | | 'is_gallery' => false, |
| | | 'content' => 'design', |
| | | 'context' => 'design', |
| | | 'id' => [], |
| | | 'class' => [], |
| | | 'taxonomies' => [ |
| | | 'project', |
| | | 'form', |
| | | 'city', |
| | | 'style', |
| | | 'theme', |
| | | ] |
| | | ], |
| | | 'fields' => [ |
| | | 'post_status' => [ |
| | | 'type' => 'radio', |
| | | 'label' => 'Status', |
| | | 'options' => [ |
| | | 'publish' => 'Show', |
| | | 'draft' => 'Hide', |
| | | 'trash' => 'Scrap', |
| | | 'delete' => 'Permanently Delete' |
| | | ], |
| | | 'hidden' => true, |
| | | ]) |
| | | ->setAll([ |
| | | 'show_feed', |
| | | 'show_directory', |
| | | 'favouritable' |
| | | ]); |
| | | |
| | | } |
| | | function ajv_design_fields():void |
| | | { |
| | | if (!class_exists('JVBase\registrar\Registrar')) { |
| | | return; |
| | | } |
| | | $design = Registrar::getInstance('design'); |
| | | //$directory = $design->getConfig('directory'); |
| | | $breadcrumbs = $design->config('breadcrumbs'); |
| | | $breadcrumbs->setCrumb('project'); |
| | | |
| | | $fields = $design->fields(); |
| | | $fields->addField('project', [ |
| | | 'type' => 'selector', |
| | | 'subtype' => 'taxonomy', |
| | | 'taxonomy' => 'project', |
| | | 'label' => 'Project', |
| | | ]); |
| | | $fields->addField('form', [ |
| | | 'type' => 'selector', |
| | | 'subtype' => 'taxonomy', |
| | | 'taxonomy' => 'form', |
| | | 'label' => 'Form', |
| | | ]); |
| | | $fields->addField('city', [ |
| | | 'type' => 'selector', |
| | | 'subtype' => 'taxonomy', |
| | | 'taxonomy' => 'city', |
| | | 'label' => 'City', |
| | | ]); |
| | | $fields->addField('style', [ |
| | | 'type' => 'selector', |
| | | 'subtype' => 'taxonomy', |
| | | 'taxonomy' => 'style', |
| | | 'label' => 'Style', |
| | | ]); |
| | | $fields->addField('theme', [ |
| | | 'type' => 'selector', |
| | | 'subtype' => 'taxonomy', |
| | | 'taxonomy' => 'theme', |
| | | 'label' => 'Theme', |
| | | ]); |
| | | $fields->addField('gallery', [ |
| | | 'type' => 'upload', |
| | | 'multiple' => true, |
| | | 'label' => 'Gallery', |
| | | ]); |
| | | $fields->addField('price', [ |
| | | 'type' => 'number', |
| | | 'label' => 'Price', |
| | | ]); |
| | | $fields->addField('needs', [ |
| | | 'type' => 'repeater', |
| | | 'label' => 'Needs', |
| | | 'fields' => [ |
| | | 'need' => [ |
| | | 'type' => 'text', |
| | | 'label' => 'Need', |
| | | 'required' => true |
| | | ], |
| | | 'post_date' => [ |
| | | 'type' => 'date', |
| | | 'label' => 'Date', |
| | | ], |
| | | 'post_title' => [ |
| | | 'type' => 'text', |
| | | 'label' => 'Title', |
| | | ], |
| | | 'post_thumbnail' => [ |
| | | 'image' => [ |
| | | 'type' => 'upload', |
| | | 'label' => 'Image', |
| | | 'multiple' => true, |
| | | 'label' => 'Example Image' |
| | | ], |
| | | 'project' => [ |
| | | 'type' => 'taxonomy', |
| | | 'taxonomy' => 'project', |
| | | 'autocomplete' => true, |
| | | 'label' => 'Project', |
| | | ], |
| | | 'city' => [ |
| | | 'type' => 'taxonomy', |
| | | 'autocomplete' => true, |
| | | 'taxonomy' => 'city', |
| | | 'label' => 'City', |
| | | ], |
| | | 'style' => [ |
| | | 'type' => 'taxonomy', |
| | | 'taxonomy' => 'style', |
| | | 'autocomplete' => true, |
| | | 'label' => 'Styles', |
| | | ], |
| | | 'theme' => [ |
| | | 'type' => 'taxonomy', |
| | | 'taxonomy' => 'theme', |
| | | 'autocomplete' => true, |
| | | 'label' => 'Theme', |
| | | ], |
| | | 'gallery' => [ |
| | | 'type' => 'upload', |
| | | 'multiple' => true, |
| | | 'label' => 'Gallery', |
| | | ], |
| | | 'price' => [ |
| | | 'type' => 'number', |
| | | 'label' => 'Price', |
| | | ], |
| | | 'post_content' => [ |
| | | 'fulfilled' => [ |
| | | 'type' => 'textarea', |
| | | 'quill' => true, |
| | | 'label' => 'Notes' |
| | | 'label' => 'How I fulfilled it' |
| | | ] |
| | | ] |
| | | ]); |
| | | $fields->addField('wants', [ |
| | | 'type' => 'repeater', |
| | | 'label' => 'Wants', |
| | | 'fields' => [ |
| | | 'need' => [ |
| | | 'type' => 'text', |
| | | 'label' => 'Need', |
| | | 'required' => true |
| | | ], |
| | | 'image' => [ |
| | | 'type' => 'upload', |
| | | 'multiple' => true, |
| | | 'label' => 'Example Image' |
| | | ], |
| | | 'fulfilled' => [ |
| | | 'type' => 'textarea', |
| | | 'quill' => true, |
| | | 'label' => 'How I fulfilled it' |
| | | ] |
| | | ] |
| | | ]); |
| | | } |
| | | //function ajv_design():array |
| | | //{ |
| | | // return [ |
| | | // 'singular' => 'Design', |
| | | // 'plural' => 'Designs', |
| | | // 'directory' => 'Design', |
| | | // 'show_feed' => true, |
| | | // 'show_directory'=> true, |
| | | // 'addCrumb' => 'project', |
| | | // 'favouritable' => true, |
| | | // 'karma' => false, |
| | | // 'icon' => 'scribble', |
| | | // 'rewrite' => [ |
| | | // 'slug' => 'design', |
| | | // 'with_front' => false, |
| | | // ], |
| | | // // design.php |
| | | // 'seo' => [ |
| | | // 'schema' => [ |
| | | // 'type' => 'CreativeWork', |
| | | // 'name' => '{{post_title}}', |
| | | // 'description' => '{{post_excerpt}}', |
| | | // 'about' => ['@id' => '{{site_url}}/#design'], |
| | | // 'associatedMedia' => '{{post_thumbnail}}', |
| | | // 'dateCreated' => '{{post_date}}', |
| | | // 'keywords' => '{{style.name}}', |
| | | // ], |
| | | // 'meta' => [ |
| | | // 'title' => '{{post_title}} | Human-made Design', |
| | | // 'description' => '{{post_excerpt}}', |
| | | // ], |
| | | // 'archive' => [ |
| | | // 'type' => 'CollectionPage', |
| | | // 'name' => 'Canadian Design. Made in Edmonton, Alberta.', |
| | | // ], |
| | | // ], |
| | | // 'feed' => [ |
| | | // 'single' => [ |
| | | // 'pre_title' => 'Canadian Design. Made in Edmonton, Alberta.', |
| | | // ], |
| | | // 'archive' => [ |
| | | // |
| | | // ], |
| | | // 'config' => [ |
| | | // 'is_gallery' => false, |
| | | // 'content' => 'design', |
| | | // 'context' => 'design', |
| | | // 'id' => [], |
| | | // 'class' => [], |
| | | // ] |
| | | // ], |
| | | // 'fields' => [ |
| | | // 'post_status' => [ |
| | | // 'type' => 'radio', |
| | | // 'label' => 'Status', |
| | | // 'options' => [ |
| | | // 'publish' => 'Show', |
| | | // 'draft' => 'Hide', |
| | | // 'trash' => 'Scrap', |
| | | // 'delete' => 'Permanently Delete' |
| | | // ], |
| | | // 'hidden' => true, |
| | | // ], |
| | | // 'post_date' => [ |
| | | // 'type' => 'date', |
| | | // 'label' => 'Date', |
| | | // ], |
| | | // 'post_title' => [ |
| | | // 'type' => 'text', |
| | | // 'label' => 'Title', |
| | | // ], |
| | | // 'post_thumbnail' => [ |
| | | // 'type' => 'upload', |
| | | // 'label' => 'Image', |
| | | // ], |
| | | // 'project' => [ |
| | | // 'type' => 'taxonomy', |
| | | // 'taxonomy' => 'project', |
| | | // 'autocomplete' => true, |
| | | // 'label' => 'Project', |
| | | // ], |
| | | // 'form' => [ |
| | | // 'type' => 'taxonomy', |
| | | // 'taxonomy' => 'form', |
| | | // 'autocomplete' => true, |
| | | // 'label' => 'Format', |
| | | // ], |
| | | // 'city' => [ |
| | | // 'type' => 'taxonomy', |
| | | // 'autocomplete' => true, |
| | | // 'taxonomy' => 'city', |
| | | // 'label' => 'City', |
| | | // ], |
| | | // 'style' => [ |
| | | // 'type' => 'taxonomy', |
| | | // 'taxonomy' => 'style', |
| | | // 'autocomplete' => true, |
| | | // 'label' => 'Styles', |
| | | // ], |
| | | // 'theme' => [ |
| | | // 'type' => 'taxonomy', |
| | | // 'taxonomy' => 'theme', |
| | | // 'autocomplete' => true, |
| | | // 'label' => 'Theme', |
| | | // ], |
| | | // 'gallery' => [ |
| | | // 'type' => 'upload', |
| | | // 'multiple'=> true, |
| | | // 'label' => 'Gallery', |
| | | // ], |
| | | // 'price' => [ |
| | | // 'type' => 'number', |
| | | // 'label' => 'Price', |
| | | // ], |
| | | // 'post_content' => [ |
| | | // 'type' => 'textarea', |
| | | // 'quill' => true, |
| | | // 'label' => 'Notes' |
| | | // ], |
| | | // |
| | | // |
| | | // 'needs' => [ |
| | | // 'type' => 'repeater', |
| | | // 'label' => 'Needs', |
| | | // 'fields'=> [ |
| | | // 'need' => [ |
| | | // 'type' => 'text', |
| | | // 'label' => 'Need', |
| | | // 'required' => true |
| | | // ], |
| | | // 'image' => [ |
| | | // 'type' => 'upload', |
| | | // 'multiple' => true, |
| | | // 'label' => 'Example Image' |
| | | // ], |
| | | // 'fulfilled' => [ |
| | | // 'type' => 'textarea', |
| | | // 'quill' => true, |
| | | // 'label' => 'How I fulfilled it' |
| | | // ] |
| | | // ] |
| | | // ], |
| | | // 'wants' => [ |
| | | // 'type' => 'repeater', |
| | | // 'label' => 'Wants', |
| | | // 'fields'=> [ |
| | | // 'need' => [ |
| | | // 'type' => 'text', |
| | | // 'label' => 'Want', |
| | | // 'required' => true |
| | | // ], |
| | | // 'image' => [ |
| | | // 'type' => 'upload', |
| | | // 'multiple' => true, |
| | | // 'label' => 'Example Image' |
| | | // ], |
| | | // 'fulfilled' => [ |
| | | // 'type' => 'textarea', |
| | | // 'quill' => true, |
| | | // 'label' => 'How I fulfilled it' |
| | | // ] |
| | | // ] |
| | | // ], |
| | | // ], |
| | | // 'single_image' => false, |
| | | // 'upload_title' => 'Upload Designs', |
| | | // ]; |
| | | //} |
| | | |
| | | |
| | | 'needs' => [ |
| | | 'type' => 'repeater', |
| | | 'label' => 'Needs', |
| | | 'fields'=> [ |
| | | 'need' => [ |
| | | 'type' => 'text', |
| | | 'label' => 'Need', |
| | | 'required' => true |
| | | ], |
| | | 'image' => [ |
| | | 'type' => 'upload', |
| | | 'multiple' => true, |
| | | 'label' => 'Example Image' |
| | | ], |
| | | 'fulfilled' => [ |
| | | 'type' => 'textarea', |
| | | 'quill' => true, |
| | | 'label' => 'How I fulfilled it' |
| | | ] |
| | | ] |
| | | ], |
| | | 'wants' => [ |
| | | 'type' => 'repeater', |
| | | 'label' => 'Wants', |
| | | 'fields'=> [ |
| | | 'need' => [ |
| | | 'type' => 'text', |
| | | 'label' => 'Want', |
| | | 'required' => true |
| | | ], |
| | | 'image' => [ |
| | | 'type' => 'upload', |
| | | 'multiple' => true, |
| | | 'label' => 'Example Image' |
| | | ], |
| | | 'fulfilled' => [ |
| | | 'type' => 'textarea', |
| | | 'quill' => true, |
| | | 'label' => 'How I fulfilled it' |
| | | ] |
| | | ] |
| | | ], |
| | | ], |
| | | 'single_image' => false, |
| | | 'upload_title' => 'Upload Designs', |
| | | function ajv_render_design_content(array $block, string $content):string |
| | | { |
| | | $out = ''; |
| | | $ID = get_the_ID(); |
| | | $meta = Meta::forPost($ID); |
| | | |
| | | $fields = $meta->getAll(); |
| | | |
| | | $bits = []; |
| | | if (array_key_exists('post_excerpt', $fields) && !empty($fields['post_excerpt'])) { |
| | | $bits[] = sprintf( |
| | | '<section id="excerpt"><h2>At a Glance</h2>%s</section>', |
| | | jvb_filter_content($fields['post_excerpt']) |
| | | ); |
| | | } |
| | | |
| | | if (array_key_exists('gallery', $fields) && !empty($fields['gallery'])) { |
| | | $gallery = explode(',',$fields['gallery']); |
| | | $gallery = array_map(function ($imgID) { |
| | | $out = '<figure>'.jvbFormatImage($imgID,'tiny','medium'); |
| | | $caption = wp_get_attachment_caption($imgID); |
| | | $out .= ($caption && $caption !== '') ? '<figcaption>'.jvb_filter_content($caption).'</figcaption>' : ''; |
| | | $out .= '</figure>'; |
| | | return $out; |
| | | |
| | | }, $gallery); |
| | | $gallery = implode('',$gallery); |
| | | $bits[] = sprintf( |
| | | '<section id="gallery"><h2>Gallery</h2><div>%s</div></section>', |
| | | $gallery |
| | | ); |
| | | } |
| | | |
| | | if (array_key_exists('post_content', $fields) && !empty($fields['post_content'])) { |
| | | $bits[] = sprintf( |
| | | '<section id="content">%s</section>', |
| | | $fields['post_content'] |
| | | ); |
| | | } |
| | | |
| | | if (array_key_exists('needs', $fields) && !empty($fields['needs'])) { |
| | | $bits[] = ajvb_format_needs($fields['needs']); |
| | | } |
| | | if (array_key_exists('wants', $fields) && !empty($fields['wants'])) { |
| | | $bits[] = ajvb_format_wants($fields['wants']); |
| | | } |
| | | |
| | | if (!empty($bits)) { |
| | | $out = implode('',$bits); |
| | | } |
| | | |
| | | |
| | | return $out; |
| | | } |
| | | |
| | | function ajv_design_schema():array |
| | | { |
| | | return [ |
| | | 'type' => 'JVBase\managers\SEO\render\Thing\CreativeWork\CreativeWork', |
| | | 'name' => '{{post_title}} | Canadian Design', |
| | | 'description' => '{{post_excerpt}}', |
| | | 'thumbnail' => '{{post_thumbnail}}', |
| | | 'dateCreated' => '{{post_date}}', |
| | | 'dateModified' => '{{post_modified}}', |
| | | 'keywords' => '{{style.name}}', |
| | | 'isPartOf' => '{{project}}' |
| | | ]; |
| | | } |
| | | |
| | | function ajv_design_meta():array |
| | | { |
| | | return[ |
| | | 'name' => '{{post_title}} | Human-made Design', |
| | | ]; |
| | | } |
| | | |
| | | function ajv_design_archive(array $defaults):array |
| | | { |
| | | return array_merge($defaults, [ |
| | | 'name' => 'Canadian Design. Made in Edmonton, Alberta.', |
| | | ]); |
| | | } |
| | | |
| | | function ajv_design_reference_schema(array $defaults):array |
| | | { |
| | | return $defaults; |
| | | } |
| | |
| | | <?php |
| | | |
| | | // /content/development.php |
| | | function ajv_development():array |
| | | { |
| | | return [ |
| | | 'singular' => 'Development', |
| | | 'plural' => 'Developments', |
| | | 'directory' => 'Development', |
| | | 'addCrumb' => 'project', |
| | | 'show_directory'=> true, |
| | | 'show_feed' => true, |
| | | 'favouritable' => true, |
| | | 'karma' => false, |
| | | 'icon' => 'brackets-angle', |
| | | 'rewrite' => [ |
| | | 'slug' => 'development', |
| | | 'with_front' => false, |
| | | ], |
| | | use JVBase\meta\Meta; |
| | | use JVBase\registrar\Registrar; |
| | | |
| | | 'seo' => [ |
| | | 'schema' => [ |
| | | 'type' => 'CreativeWork', |
| | | 'name' => '{{post_title}}', |
| | | 'description' => '{{post_excerpt}}', |
| | | 'about' => ['@id' => '{{site_url}}/#development'], |
| | | 'associatedMedia' => '{{post_thumbnail}}', |
| | | 'dateCreated' => '{{post_date}}', |
| | | ], |
| | | 'meta' => [ |
| | | 'title' => '{{post_title}} | Custom Website Development', |
| | | 'description' => '{{post_excerpt}}', |
| | | ], |
| | | 'archive' => [ |
| | | 'type' => 'CollectionPage', |
| | | 'name' => 'Custom Canadian Website Development. Made in Edmonton, Alberta.', |
| | | ], |
| | | ], |
| | | 'feed' => [ |
| | | 'single' => [ |
| | | 'pre_title' => 'Custom Canadian Website Development. Made in Edmonton, Alberta.', |
| | | ], |
| | | 'archive' => [ |
| | | if (!defined('ABSPATH')) { |
| | | exit; |
| | | } |
| | | |
| | | |
| | | add_action('plugins_loaded', 'ajv_development',1); |
| | | //Add fields later so we can verify taxonomies/post types exist |
| | | add_action('plugins_loaded', 'ajv_development_fields', 2); |
| | | |
| | | add_filter('ajv_DevelopmentSchemaDefault', 'ajv_development_schema'); |
| | | add_filter('ajv_DevelopmentMetaDefault', 'ajv_development_meta'); |
| | | add_filter('ajv_DevelopmentArchiveDefault', 'ajv_development_archive'); |
| | | |
| | | function ajv_development(){ |
| | | if (!class_exists('JVBase\registrar\Registrar')) { |
| | | return; |
| | | } |
| | | $development = Registrar::forPost('development', 'Development', 'Developments') |
| | | ->setIcon('brackets-angle') |
| | | ->make([ |
| | | 'rewrite' => [ |
| | | 'slug' => 'development', |
| | | 'with_front' => false, |
| | | ], |
| | | 'config' => [ |
| | | 'is_gallery' => false, |
| | | 'content' => 'development', |
| | | 'context' => 'development', |
| | | 'id' => [], |
| | | 'class' => [], |
| | | 'taxonomies' => [ |
| | | 'project', |
| | | 'form', |
| | | 'city', |
| | | 'style', |
| | | 'theme', |
| | | 'target', |
| | | ] |
| | | ], |
| | | 'fields' => [ |
| | | 'post_status' => [ |
| | | 'type' => 'radio', |
| | | 'label' => 'Status', |
| | | 'options' => [ |
| | | 'publish' => 'Show', |
| | | 'draft' => 'Hide', |
| | | 'trash' => 'Scrap', |
| | | 'delete' => 'Permanently Delete' |
| | | ], |
| | | 'hidden' => true, |
| | | ]) |
| | | ->setAll([ |
| | | 'show_feed', |
| | | 'show_directory', |
| | | 'favouritable' |
| | | ]); |
| | | } |
| | | function ajv_development_fields():void |
| | | { |
| | | if (!class_exists('JVBase\registrar\Registrar')) { |
| | | return; |
| | | } |
| | | $development = Registrar::getInstance('development'); |
| | | |
| | | //$directory = $development->getConfig('directory'); |
| | | $breadcrumbs = $development->config('breadcrumbs'); |
| | | $breadcrumbs->setCrumb('project'); |
| | | |
| | | $fields = $development->fields(); |
| | | $fields->addField('project', [ |
| | | 'type' => 'selector', |
| | | 'subtype' => 'taxonomy', |
| | | 'taxonomy' => 'project', |
| | | 'label' => 'Project', |
| | | ]); |
| | | $fields->addField('form', [ |
| | | 'type' => 'selector', |
| | | 'subtype' => 'taxonomy', |
| | | 'taxonomy' => 'form', |
| | | 'label' => 'Form', |
| | | ]); |
| | | $fields->addField('city', [ |
| | | 'type' => 'selector', |
| | | 'subtype' => 'taxonomy', |
| | | 'taxonomy' => 'city', |
| | | 'label' => 'City', |
| | | ]); |
| | | $fields->addField('target', [ |
| | | 'type' => 'selector', |
| | | 'subtype' => 'taxonomy', |
| | | 'taxonomy' => 'target', |
| | | 'label' => 'Target Audience', |
| | | ]); |
| | | $fields->addField('style', [ |
| | | 'type' => 'selector', |
| | | 'subtype' => 'taxonomy', |
| | | 'taxonomy' => 'style', |
| | | 'label' => 'Style', |
| | | ]); |
| | | $fields->addField('theme', [ |
| | | 'type' => 'selector', |
| | | 'subtype' => 'taxonomy', |
| | | 'taxonomy' => 'theme', |
| | | 'label' => 'Theme', |
| | | ]); |
| | | $fields->addField('gallery', [ |
| | | 'type' => 'upload', |
| | | 'multiple' => true, |
| | | 'label' => 'Gallery', |
| | | ]); |
| | | $fields->addField('price', [ |
| | | 'type' => 'number', |
| | | 'label' => 'Price', |
| | | ]); |
| | | $fields->addField('needs', [ |
| | | 'type' => 'repeater', |
| | | 'label' => 'Needs', |
| | | 'fields' => [ |
| | | 'need' => [ |
| | | 'type' => 'text', |
| | | 'label' => 'Need', |
| | | 'required' => true |
| | | ], |
| | | 'post_title' => [ |
| | | 'type' => 'text', |
| | | 'label' => 'Title', |
| | | ], |
| | | 'post_date' => [ |
| | | 'type' => 'date', |
| | | 'label' => 'Date', |
| | | ], |
| | | 'post_thumbnail' => [ |
| | | 'image' => [ |
| | | 'type' => 'upload', |
| | | 'label' => 'Image', |
| | | 'multiple' => true, |
| | | 'label' => 'Example Image' |
| | | ], |
| | | 'project' => [ |
| | | 'type' => 'taxonomy', |
| | | 'taxonomy' => 'project', |
| | | 'autocomplete' => true, |
| | | 'label' => 'Project', |
| | | ], |
| | | 'target' => [ |
| | | 'type' => 'taxonomy', |
| | | 'taxonomy' => 'target', |
| | | 'autocomplete' => true, |
| | | 'label' => 'Target Audience', |
| | | ], |
| | | 'city' => [ |
| | | 'type' => 'taxonomy', |
| | | 'autocomplete' => true, |
| | | 'taxonomy' => 'city', |
| | | 'label' => 'City', |
| | | ], |
| | | 'gallery' => [ |
| | | 'type' => 'upload', |
| | | 'multiple' => true, |
| | | 'label' => 'Gallery', |
| | | ], |
| | | 'price' => [ |
| | | 'type' => 'number', |
| | | 'label' => 'Price', |
| | | ], |
| | | 'post_content' => [ |
| | | 'fulfilled' => [ |
| | | 'type' => 'textarea', |
| | | 'quill' => true, |
| | | 'label' => 'Notes' |
| | | 'label' => 'How I fulfilled it' |
| | | ] |
| | | ] |
| | | ]); |
| | | $fields->addField('wants', [ |
| | | 'type' => 'repeater', |
| | | 'label' => 'Wants', |
| | | 'fields' => [ |
| | | 'need' => [ |
| | | 'type' => 'text', |
| | | 'label' => 'Need', |
| | | 'required' => true |
| | | ], |
| | | 'image' => [ |
| | | 'type' => 'upload', |
| | | 'multiple' => true, |
| | | 'label' => 'Example Image' |
| | | ], |
| | | 'fulfilled' => [ |
| | | 'type' => 'textarea', |
| | | 'quill' => true, |
| | | 'label' => 'How I fulfilled it' |
| | | ] |
| | | ] |
| | | ]); |
| | | } |
| | | // |
| | | //function ajv_development():array |
| | | //{ |
| | | // return [ |
| | | // 'singular' => 'Development', |
| | | // 'plural' => 'Developments', |
| | | // 'directory' => 'Development', |
| | | // 'addCrumb' => 'project', |
| | | // 'show_directory'=> true, |
| | | // 'show_feed' => true, |
| | | // 'favouritable' => true, |
| | | // 'karma' => false, |
| | | // 'icon' => 'brackets-angle', |
| | | // 'rewrite' => [ |
| | | // 'slug' => 'development', |
| | | // 'with_front' => false, |
| | | // ], |
| | | // |
| | | // 'seo' => [ |
| | | // 'schema' => [ |
| | | // 'type' => 'CreativeWork', |
| | | // 'name' => '{{post_title}}', |
| | | // 'description' => '{{post_excerpt}}', |
| | | // 'about' => ['@id' => '{{site_url}}/#development'], |
| | | // 'associatedMedia' => '{{post_thumbnail}}', |
| | | // 'dateCreated' => '{{post_date}}', |
| | | // ], |
| | | // 'meta' => [ |
| | | // 'title' => '{{post_title}} | Custom Website Development', |
| | | // 'description' => '{{post_excerpt}}', |
| | | // ], |
| | | // 'archive' => [ |
| | | // 'type' => 'CollectionPage', |
| | | // 'name' => 'Custom Canadian Website Development. Made in Edmonton, Alberta.', |
| | | // ], |
| | | // ], |
| | | // 'feed' => [ |
| | | // 'single' => [ |
| | | // 'pre_title' => 'Custom Canadian Website Development. Made in Edmonton, Alberta.', |
| | | // ], |
| | | // 'archive' => [ |
| | | // |
| | | // ], |
| | | // 'config' => [ |
| | | // 'is_gallery' => false, |
| | | // 'content' => 'development', |
| | | // 'context' => 'development', |
| | | // 'id' => [], |
| | | // 'class' => [], |
| | | // ] |
| | | // ], |
| | | // 'fields' => [ |
| | | // 'post_status' => [ |
| | | // 'type' => 'radio', |
| | | // 'label' => 'Status', |
| | | // 'options' => [ |
| | | // 'publish' => 'Show', |
| | | // 'draft' => 'Hide', |
| | | // 'trash' => 'Scrap', |
| | | // 'delete' => 'Permanently Delete' |
| | | // ], |
| | | // 'hidden' => true, |
| | | // ], |
| | | // 'post_title' => [ |
| | | // 'type' => 'text', |
| | | // 'label' => 'Title', |
| | | // ], |
| | | // 'post_date' => [ |
| | | // 'type' => 'date', |
| | | // 'label' => 'Date', |
| | | // ], |
| | | // 'post_thumbnail' => [ |
| | | // 'type' => 'upload', |
| | | // 'label' => 'Image', |
| | | // ], |
| | | // 'project' => [ |
| | | // 'type' => 'taxonomy', |
| | | // 'taxonomy' => 'project', |
| | | // 'autocomplete' => true, |
| | | // 'label' => 'Project', |
| | | // ], |
| | | // 'url' => [ |
| | | // 'type' => 'url', |
| | | // 'label' => 'Live URL', |
| | | // 'quickEdit' => true |
| | | // ], |
| | | // |
| | | // 'form' => [ |
| | | // 'type' => 'taxonomy', |
| | | // 'taxonomy' => 'form', |
| | | // 'autocomplete' => true, |
| | | // 'label' => 'Format', |
| | | // ], |
| | | // 'target' => [ |
| | | // 'type' => 'taxonomy', |
| | | // 'taxonomy' => 'target', |
| | | // 'autocomplete' => true, |
| | | // 'label' => 'Target Audience', |
| | | // ], |
| | | // 'city' => [ |
| | | // 'type' => 'taxonomy', |
| | | // 'autocomplete' => true, |
| | | // 'taxonomy' => 'city', |
| | | // 'label' => 'City', |
| | | // ], |
| | | // 'gallery' => [ |
| | | // 'type' => 'upload', |
| | | // 'multiple' => true, |
| | | // 'label' => 'Gallery', |
| | | // ], |
| | | // 'price' => [ |
| | | // 'type' => 'number', |
| | | // 'label' => 'Price', |
| | | // ], |
| | | // 'post_content' => [ |
| | | // 'type' => 'textarea', |
| | | // 'quill' => true, |
| | | // 'label' => 'Notes' |
| | | // ], |
| | | // |
| | | // |
| | | // 'needs' => [ |
| | | // 'type' => 'repeater', |
| | | // 'label' => 'Needs', |
| | | // 'fields'=> [ |
| | | // 'need' => [ |
| | | // 'type' => 'text', |
| | | // 'label' => 'Need', |
| | | // 'required' => true |
| | | // ], |
| | | // 'image' => [ |
| | | // 'type' => 'upload', |
| | | // 'multiple' => true, |
| | | // 'label' => 'Example Image' |
| | | // ], |
| | | // 'fulfilled' => [ |
| | | // 'type' => 'textarea', |
| | | // 'quill' => true, |
| | | // 'label' => 'How I fulfilled it' |
| | | // ] |
| | | // ] |
| | | // ], |
| | | // 'wants' => [ |
| | | // 'type' => 'repeater', |
| | | // 'label' => 'Wants', |
| | | // 'fields'=> [ |
| | | // 'need' => [ |
| | | // 'type' => 'text', |
| | | // 'label' => 'Want', |
| | | // 'required' => true |
| | | // ], |
| | | // 'image' => [ |
| | | // 'type' => 'upload', |
| | | // 'multiple' => true, |
| | | // 'label' => 'Example Image' |
| | | // ], |
| | | // 'fulfilled' => [ |
| | | // 'type' => 'textarea', |
| | | // 'quill' => true, |
| | | // 'label' => 'How I fulfilled it' |
| | | // ] |
| | | // ] |
| | | // ], |
| | | // ], |
| | | // 'single_image' => false, |
| | | // 'upload_title' => 'Upload Development', |
| | | // ]; |
| | | //} |
| | | |
| | | |
| | | 'needs' => [ |
| | | 'type' => 'repeater', |
| | | 'label' => 'Needs', |
| | | 'fields'=> [ |
| | | 'need' => [ |
| | | 'type' => 'text', |
| | | 'label' => 'Need', |
| | | 'required' => true |
| | | ], |
| | | 'image' => [ |
| | | 'type' => 'upload', |
| | | 'multiple' => true, |
| | | 'label' => 'Example Image' |
| | | ], |
| | | 'fulfilled' => [ |
| | | 'type' => 'textarea', |
| | | 'quill' => true, |
| | | 'label' => 'How I fulfilled it' |
| | | ] |
| | | ] |
| | | ], |
| | | 'wants' => [ |
| | | 'type' => 'repeater', |
| | | 'label' => 'Wants', |
| | | 'fields'=> [ |
| | | 'need' => [ |
| | | 'type' => 'text', |
| | | 'label' => 'Want', |
| | | 'required' => true |
| | | ], |
| | | 'image' => [ |
| | | 'type' => 'upload', |
| | | 'multiple' => true, |
| | | 'label' => 'Example Image' |
| | | ], |
| | | 'fulfilled' => [ |
| | | 'type' => 'textarea', |
| | | 'quill' => true, |
| | | 'label' => 'How I fulfilled it' |
| | | ] |
| | | ] |
| | | ], |
| | | ], |
| | | 'single_image' => false, |
| | | 'upload_title' => 'Upload Development', |
| | | function ajv_render_development_content(array $block, string $content):string |
| | | { |
| | | $out = ''; |
| | | $ID = get_the_ID(); |
| | | $meta = Meta::forPost($ID); |
| | | |
| | | $fields = $meta->getAll(); |
| | | |
| | | $bits = []; |
| | | if (array_key_exists('post_excerpt', $fields) && !empty($fields['post_excerpt'])) { |
| | | $bits[] = sprintf( |
| | | '<section id="excerpt"><h2>At a Glance</h2>%s</section>', |
| | | jvb_filter_content($fields['post_excerpt']) |
| | | ); |
| | | } |
| | | |
| | | if (array_key_exists('url', $fields) && !empty($fields['url'])) { |
| | | $bits[] = sprintf( |
| | | '<section id="url"><a class="button" href="%s" target="_blank">See it Live</a></section>', |
| | | $fields['url'] |
| | | ); |
| | | } |
| | | |
| | | if (array_key_exists('gallery', $fields) && !empty($fields['gallery'])) { |
| | | $gallery = explode(',',$fields['gallery']); |
| | | $gallery = array_map(function ($imgID) { |
| | | $out = '<figure>'.jvbFormatImage($imgID,'tiny','medium'); |
| | | $caption = wp_get_attachment_caption($imgID); |
| | | $out .= ($caption && $caption !== '') ? '<figcaption>'.jvb_filter_content($caption).'</figcaption>' : ''; |
| | | $out .= '</figure>'; |
| | | return $out; |
| | | |
| | | }, $gallery); |
| | | $gallery = implode('',$gallery); |
| | | $bits[] = sprintf( |
| | | '<section id="gallery"><h2>Gallery</h2><div>%s</div></section>', |
| | | $gallery |
| | | ); |
| | | } |
| | | |
| | | if (array_key_exists('post_content', $fields) && !empty($fields['post_content'])) { |
| | | $bits[] = sprintf( |
| | | '<section id="content">%s</section>', |
| | | $fields['post_content'] |
| | | ); |
| | | } |
| | | |
| | | if (array_key_exists('needs', $fields) && !empty($fields['needs'])) { |
| | | $bits[] = ajvb_format_needs($fields['needs']); |
| | | } |
| | | if (array_key_exists('wants', $fields) && !empty($fields['wants'])) { |
| | | $bits[] = ajvb_format_wants($fields['wants']); |
| | | } |
| | | |
| | | if (!empty($bits)) { |
| | | $out = implode('',$bits); |
| | | } |
| | | |
| | | |
| | | return $out; |
| | | } |
| | | |
| | | |
| | | |
| | | function ajv_development_schema():array |
| | | { |
| | | return [ |
| | | 'type' => 'JVBase\managers\SEO\render\Thing\CreativeWork\CreativeWork', |
| | | 'name' => '{{post_title}} | Canadian Development', |
| | | 'description' => '{{post_excerpt}}', |
| | | 'thumbnail' => '{{post_thumbnail}}', |
| | | 'dateCreated' => '{{post_date}}', |
| | | 'dateModified' => '{{post_modified}}', |
| | | 'keywords' => '{{style.name}}' |
| | | ]; |
| | | } |
| | | |
| | | function ajv_development_meta():array |
| | | { |
| | | return[ |
| | | 'name' => '{{post_title}} | Human-made Development', |
| | | ]; |
| | | } |
| | | |
| | | function ajv_development_archive(array $defaults):array |
| | | { |
| | | return array_merge($defaults, [ |
| | | 'name' => 'Canadian Development. Made in Edmonton, Alberta.', |
| | | ]); |
| | | } |
| | | |
| | | function ajv_development_reference_schema(array $defaults):array |
| | | { |
| | | return $defaults; |
| | | } |
| | |
| | | <?php |
| | | // /content/strategy.php |
| | | function ajv_strategy():array |
| | | { |
| | | return [ |
| | | 'singular' => 'Strategy', |
| | | 'plural' => 'Strategies', |
| | | 'hide_single' => false, |
| | | 'redirectToAuthor'=> false, |
| | | 'show_directory'=> true, |
| | | 'directory' => 'Strategy', |
| | | 'addCrumb' => 'project', |
| | | 'show_feed' => true, |
| | | 'favouritable' => true, |
| | | 'karma' => false, |
| | | 'icon' => 'brain', |
| | | 'rewrite' => [ |
| | | 'slug' => 'strategy', |
| | | 'with_front' => false, |
| | | ], |
| | | 'seo' => [ |
| | | 'schema' => [ |
| | | 'type' => 'CreativeWork', |
| | | 'name' => '{{post_title}}', |
| | | 'description' => '{{post_excerpt}}', |
| | | 'about' => ['@id' => '{{site_url}}/#strategy'], |
| | | 'associatedMedia' => '{{post_thumbnail}}', |
| | | 'dateCreated' => '{{post_date}}', |
| | | ], |
| | | 'meta' => [ |
| | | 'title' => '{{post_title}} | Brand Strategy in Canada', |
| | | 'description' => '{{post_excerpt}}', |
| | | ], |
| | | 'archive' => [ |
| | | 'type' => 'CollectionPage', |
| | | 'name' => 'Brand Strategy in Canada. Made in Edmonton, Alberta.', |
| | | ], |
| | | ], |
| | | 'feed' => [ |
| | | 'single' => [ |
| | | 'pre_title' => 'Brand Strategy in Canada. Made in Edmonton, Alberta.', |
| | | ], |
| | | 'archive' => [ |
| | | use JVBase\meta\Meta; |
| | | use JVBase\registrar\Registrar; |
| | | |
| | | if (!defined('ABSPATH')) { |
| | | exit; |
| | | } |
| | | |
| | | |
| | | add_action('plugins_loaded', 'ajv_strategy',1); |
| | | //Add fields later so we can verify taxonomies/post types exist |
| | | add_action('plugins_loaded', 'ajv_strategy_fields', 2); |
| | | |
| | | add_filter('ajv_StrategySchemaDefault', 'ajv_strategy_schema'); |
| | | add_filter('ajv_StrategyMetaDefault', 'ajv_strategy_meta'); |
| | | add_filter('ajv_StrategyArchiveDefault', 'ajv_strategy_archive'); |
| | | |
| | | function ajv_strategy(){ |
| | | if (!class_exists('JVBase\registrar\Registrar')) { |
| | | return; |
| | | } |
| | | $strategy = Registrar::forPost('strategy', 'Strategy', 'Strategies') |
| | | ->setIcon('brain') |
| | | ->make([ |
| | | 'rewrite' => [ |
| | | 'slug' => 'strategy', |
| | | 'with_front' => false, |
| | | ], |
| | | 'config' => [ |
| | | 'is_gallery' => false, |
| | | 'content' => 'strategy', |
| | | 'context' => 'strategy', |
| | | 'id' => [], |
| | | 'class' => [], |
| | | 'taxonomies' => [ |
| | | 'project', |
| | | 'form', |
| | | 'target', |
| | | 'city' |
| | | ] |
| | | ], |
| | | 'fields' => [ |
| | | 'post_status' => [ |
| | | 'type' => 'radio', |
| | | 'label' => 'Status', |
| | | 'options' => [ |
| | | 'publish' => 'Show', |
| | | 'draft' => 'Hide', |
| | | 'trash' => 'Scrap', |
| | | 'delete' => 'Permanently Delete' |
| | | ], |
| | | 'hidden' => true, |
| | | ]) |
| | | ->setAll([ |
| | | 'show_feed', |
| | | 'show_directory', |
| | | 'favouritable' |
| | | ]); |
| | | } |
| | | |
| | | function ajv_strategy_fields():void { |
| | | if (!class_exists('JVBase\registrar\Registrar')) { |
| | | return; |
| | | } |
| | | $strategy = Registrar::getInstance('strategy'); |
| | | |
| | | |
| | | //$directory = $strategy->getConfig('directory'); |
| | | $breadcrumbs = $strategy->config('breadcrumbs'); |
| | | $breadcrumbs->setCrumb('project'); |
| | | |
| | | $fields = $strategy->fields(); |
| | | $fields->addField('project', [ |
| | | 'type' => 'selector', |
| | | 'subtype' => 'taxonomy', |
| | | 'taxonomy' => 'project', |
| | | 'label' => 'Project', |
| | | ]); |
| | | $fields->addField('form', [ |
| | | 'type' => 'selector', |
| | | 'subtype' => 'taxonomy', |
| | | 'taxonomy' => 'form', |
| | | 'label' => 'Format', |
| | | ]); |
| | | $fields->addField('target', [ |
| | | 'type' => 'selector', |
| | | 'subtype' => 'taxonomy', |
| | | 'taxonomy' => 'target', |
| | | 'label' => 'Target Audience', |
| | | ]); |
| | | $fields->addField('city', [ |
| | | 'type' => 'selector', |
| | | 'subtype' => 'taxonomy', |
| | | 'taxonomy' => 'city', |
| | | 'label' => 'City', |
| | | ]); |
| | | |
| | | $fields->addField('gallery', [ |
| | | 'type' => 'upload', |
| | | 'multiple' => true, |
| | | 'label' => 'Gallery', |
| | | ]); |
| | | $fields->addField('price', [ |
| | | 'type' => 'number', |
| | | 'label' => 'Price', |
| | | ]); |
| | | $fields->addField('needs', [ |
| | | 'type' => 'repeater', |
| | | 'label' => 'Needs', |
| | | 'fields' => [ |
| | | 'need' => [ |
| | | 'type' => 'text', |
| | | 'label' => 'Need', |
| | | 'required' => true |
| | | ], |
| | | 'post_date' => [ |
| | | 'type' => 'date', |
| | | 'label' => 'Date', |
| | | ], |
| | | 'post_title' => [ |
| | | 'type' => 'text', |
| | | 'label' => 'Title', |
| | | ], |
| | | 'post_thumbnail' => [ |
| | | 'image' => [ |
| | | 'type' => 'upload', |
| | | 'label' => 'Image', |
| | | 'multiple' => true, |
| | | 'label' => 'Example Image' |
| | | ], |
| | | 'project' => [ |
| | | 'type' => 'taxonomy', |
| | | 'taxonomy' => 'project', |
| | | 'autocomplete' => true, |
| | | 'label' => 'Project', |
| | | ], |
| | | 'target' => [ |
| | | 'type' => 'taxonomy', |
| | | 'taxonomy' => 'target', |
| | | 'autocomplete' => true, |
| | | 'label' => 'Target Audience', |
| | | ], |
| | | 'city' => [ |
| | | 'type' => 'taxonomy', |
| | | 'autocomplete' => true, |
| | | 'taxonomy' => 'city', |
| | | 'label' => 'City', |
| | | ], |
| | | 'gallery' => [ |
| | | 'type' => 'upload', |
| | | 'multiple' => true, |
| | | 'label' => 'Gallery', |
| | | ], |
| | | 'price' => [ |
| | | 'type' => 'number', |
| | | 'label' => 'Price', |
| | | ], |
| | | 'post_content' => [ |
| | | 'fulfilled' => [ |
| | | 'type' => 'textarea', |
| | | 'quill' => true, |
| | | 'label' => 'Notes' |
| | | 'label' => 'How I fulfilled it' |
| | | ] |
| | | ] |
| | | ]); |
| | | $fields->addField('wants', [ |
| | | 'type' => 'repeater', |
| | | 'label' => 'Wants', |
| | | 'fields' => [ |
| | | 'need' => [ |
| | | 'type' => 'text', |
| | | 'label' => 'Need', |
| | | 'required' => true |
| | | ], |
| | | 'image' => [ |
| | | 'type' => 'upload', |
| | | 'multiple' => true, |
| | | 'label' => 'Example Image' |
| | | ], |
| | | 'fulfilled' => [ |
| | | 'type' => 'textarea', |
| | | 'quill' => true, |
| | | 'label' => 'How I fulfilled it' |
| | | ] |
| | | ] |
| | | ]); |
| | | } |
| | | |
| | | //function ajv_strategy():array |
| | | //{ |
| | | // return [ |
| | | // 'singular' => 'Strategy', |
| | | // 'plural' => 'Strategies', |
| | | // 'hide_single' => false, |
| | | // 'redirectToAuthor'=> false, |
| | | // 'show_directory'=> true, |
| | | // 'directory' => 'Strategy', |
| | | // 'addCrumb' => 'project', |
| | | // 'show_feed' => true, |
| | | // 'favouritable' => true, |
| | | // 'karma' => false, |
| | | // 'icon' => 'brain', |
| | | // 'rewrite' => [ |
| | | // 'slug' => 'strategy', |
| | | // 'with_front' => false, |
| | | // ], |
| | | // 'seo' => [ |
| | | // 'schema' => [ |
| | | // 'type' => 'CreativeWork', |
| | | // 'name' => '{{post_title}}', |
| | | // 'description' => '{{post_excerpt}}', |
| | | // 'about' => ['@id' => '{{site_url}}/#strategy'], |
| | | // 'associatedMedia' => '{{post_thumbnail}}', |
| | | // 'dateCreated' => '{{post_date}}', |
| | | // ], |
| | | // 'meta' => [ |
| | | // 'title' => '{{post_title}} | Brand Strategy in Canada', |
| | | // 'description' => '{{post_excerpt}}', |
| | | // ], |
| | | // 'archive' => [ |
| | | // 'type' => 'CollectionPage', |
| | | // 'name' => 'Brand Strategy in Canada. Made in Edmonton, Alberta.', |
| | | // ], |
| | | // ], |
| | | // 'feed' => [ |
| | | // 'single' => [ |
| | | // 'pre_title' => 'Brand Strategy in Canada. Made in Edmonton, Alberta.', |
| | | // ], |
| | | // 'archive' => [ |
| | | // |
| | | // ], |
| | | // 'config' => [ |
| | | // 'is_gallery' => false, |
| | | // 'content' => 'strategy', |
| | | // 'context' => 'strategy', |
| | | // 'id' => [], |
| | | // 'class' => [], |
| | | // ] |
| | | // ], |
| | | // 'fields' => [ |
| | | // 'post_status' => [ |
| | | // 'type' => 'radio', |
| | | // 'label' => 'Status', |
| | | // 'options' => [ |
| | | // 'publish' => 'Show', |
| | | // 'draft' => 'Hide', |
| | | // 'trash' => 'Scrap', |
| | | // 'delete' => 'Permanently Delete' |
| | | // ], |
| | | // 'hidden' => true, |
| | | // ], |
| | | // 'post_date' => [ |
| | | // 'type' => 'date', |
| | | // 'label' => 'Date', |
| | | // ], |
| | | // 'post_title' => [ |
| | | // 'type' => 'text', |
| | | // 'label' => 'Title', |
| | | // ], |
| | | // 'post_thumbnail' => [ |
| | | // 'type' => 'upload', |
| | | // 'label' => 'Image', |
| | | // ], |
| | | // 'project' => [ |
| | | // 'type' => 'taxonomy', |
| | | // 'taxonomy' => 'project', |
| | | // 'autocomplete' => true, |
| | | // 'label' => 'Project', |
| | | // ], |
| | | // |
| | | // 'form' => [ |
| | | // 'type' => 'taxonomy', |
| | | // 'taxonomy' => 'form', |
| | | // 'autocomplete' => true, |
| | | // 'label' => 'Format', |
| | | // ], |
| | | // 'target' => [ |
| | | // 'type' => 'taxonomy', |
| | | // 'taxonomy' => 'target', |
| | | // 'autocomplete' => true, |
| | | // 'label' => 'Target Audience', |
| | | // ], |
| | | // 'city' => [ |
| | | // 'type' => 'taxonomy', |
| | | // 'autocomplete' => true, |
| | | // 'taxonomy' => 'city', |
| | | // 'label' => 'City', |
| | | // ], |
| | | // 'gallery' => [ |
| | | // 'type' => 'upload', |
| | | // 'multiple' => true, |
| | | // 'label' => 'Gallery', |
| | | // ], |
| | | // 'price' => [ |
| | | // 'type' => 'number', |
| | | // 'label' => 'Price', |
| | | // ], |
| | | // 'post_content' => [ |
| | | // 'type' => 'textarea', |
| | | // 'quill' => true, |
| | | // 'label' => 'Notes' |
| | | // ], |
| | | // |
| | | // |
| | | // 'needs' => [ |
| | | // 'type' => 'repeater', |
| | | // 'label' => 'Needs', |
| | | // 'fields'=> [ |
| | | // 'need' => [ |
| | | // 'type' => 'text', |
| | | // 'label' => 'Need', |
| | | // 'required' => true |
| | | // ], |
| | | // 'image' => [ |
| | | // 'type' => 'upload', |
| | | // 'multiple' => true, |
| | | // 'label' => 'Example Image' |
| | | // ], |
| | | // 'fulfilled' => [ |
| | | // 'type' => 'textarea', |
| | | // 'quill' => true, |
| | | // 'label' => 'How I fulfilled it' |
| | | // ] |
| | | // ] |
| | | // ], |
| | | // 'wants' => [ |
| | | // 'type' => 'repeater', |
| | | // 'label' => 'Wants', |
| | | // 'fields'=> [ |
| | | // 'need' => [ |
| | | // 'type' => 'text', |
| | | // 'label' => 'Want', |
| | | // 'required' => true |
| | | // ], |
| | | // 'image' => [ |
| | | // 'type' => 'upload', |
| | | // 'multiple' => true, |
| | | // 'label' => 'Example Image' |
| | | // ], |
| | | // 'fulfilled' => [ |
| | | // 'type' => 'textarea', |
| | | // 'quill' => true, |
| | | // 'label' => 'How I fulfilled it' |
| | | // ] |
| | | // ] |
| | | // ], |
| | | // ], |
| | | // 'single_image' => false, |
| | | // 'upload_title' => 'Upload Strategies', |
| | | // ]; |
| | | //} |
| | | |
| | | |
| | | 'needs' => [ |
| | | 'type' => 'repeater', |
| | | 'label' => 'Needs', |
| | | 'fields'=> [ |
| | | 'need' => [ |
| | | 'type' => 'text', |
| | | 'label' => 'Need', |
| | | 'required' => true |
| | | ], |
| | | 'image' => [ |
| | | 'type' => 'upload', |
| | | 'multiple' => true, |
| | | 'label' => 'Example Image' |
| | | ], |
| | | 'fulfilled' => [ |
| | | 'type' => 'textarea', |
| | | 'quill' => true, |
| | | 'label' => 'How I fulfilled it' |
| | | ] |
| | | ] |
| | | ], |
| | | 'wants' => [ |
| | | 'type' => 'repeater', |
| | | 'label' => 'Wants', |
| | | 'fields'=> [ |
| | | 'need' => [ |
| | | 'type' => 'text', |
| | | 'label' => 'Want', |
| | | 'required' => true |
| | | ], |
| | | 'image' => [ |
| | | 'type' => 'upload', |
| | | 'multiple' => true, |
| | | 'label' => 'Example Image' |
| | | ], |
| | | 'fulfilled' => [ |
| | | 'type' => 'textarea', |
| | | 'quill' => true, |
| | | 'label' => 'How I fulfilled it' |
| | | ] |
| | | ] |
| | | ], |
| | | ], |
| | | 'single_image' => false, |
| | | 'upload_title' => 'Upload Strategies', |
| | | function ajv_render_strategy_content(array $block, string $content):string |
| | | { |
| | | $out = ''; |
| | | $ID = get_the_ID(); |
| | | $meta = Meta::forPost($ID); |
| | | |
| | | $fields = $meta->getAll(); |
| | | |
| | | $bits = []; |
| | | if (array_key_exists('post_excerpt', $fields) && !empty($fields['post_excerpt'])) { |
| | | $bits[] = sprintf( |
| | | '<section id="excerpt"><h2>At a Glance</h2>%s</section>', |
| | | jvb_filter_content($fields['post_excerpt']) |
| | | ); |
| | | } |
| | | |
| | | if (array_key_exists('gallery', $fields) && !empty($fields['gallery'])) { |
| | | $gallery = explode(',',$fields['gallery']); |
| | | $gallery = array_map(function ($imgID) { |
| | | $out = '<figure>'.jvbFormatImage($imgID,'tiny','medium'); |
| | | $caption = wp_get_attachment_caption($imgID); |
| | | $out .= ($caption && $caption !== '') ? '<figcaption>'.jvb_filter_content($caption).'</figcaption>' : ''; |
| | | $out .= '</figure>'; |
| | | return $out; |
| | | |
| | | }, $gallery); |
| | | $gallery = implode('',$gallery); |
| | | $bits[] = sprintf( |
| | | '<section id="gallery"><h2>Gallery</h2><div>%s</div></section>', |
| | | $gallery |
| | | ); |
| | | } |
| | | |
| | | if (array_key_exists('post_content', $fields) && !empty($fields['post_content'])) { |
| | | $bits[] = sprintf( |
| | | '<section id="content">%s</section>', |
| | | $fields['post_content'] |
| | | ); |
| | | } |
| | | |
| | | if (array_key_exists('needs', $fields) && !empty($fields['needs'])) { |
| | | $bits[] = ajvb_format_needs($fields['needs']); |
| | | } |
| | | if (array_key_exists('wants', $fields) && !empty($fields['wants'])) { |
| | | $bits[] = ajvb_format_wants($fields['wants']); |
| | | } |
| | | |
| | | if (!empty($bits)) { |
| | | $out = implode('',$bits); |
| | | } |
| | | |
| | | |
| | | return $out; |
| | | } |
| | | |
| | | |
| | | function ajv_strategy_schema():array |
| | | { |
| | | return [ |
| | | 'type' => 'JVBase\managers\SEO\render\Thing\CreativeWork\CreativeWork', |
| | | 'name' => '{{post_title}} | Brand Strategy in Canada', |
| | | 'description' => '{{post_excerpt}}', |
| | | 'thumbnail' => '{{post_thumbnail}}', |
| | | 'dateCreated' => '{{post_date}}', |
| | | 'dateModified' => '{{post_modified}}', |
| | | 'keywords' => '{{style.name}}' |
| | | ]; |
| | | } |
| | | |
| | | function ajv_strategy_meta():array |
| | | { |
| | | return[ |
| | | 'name' => '{{post_title}} | Brand Strategy in Canada', |
| | | ]; |
| | | } |
| | | |
| | | function ajv_strategy_archive(array $defaults):array |
| | | { |
| | | return array_merge($defaults, [ |
| | | 'name' => 'Brand Strategy in Canada. Made in Edmonton, Alberta.', |
| | | ]); |
| | | } |
| | | |
| | | function ajv_strategy_reference_schema(array $defaults):array |
| | | { |
| | | return $defaults; |
| | | } |
| | |
| | | <?php |
| | | // /content/support.php |
| | | function ajv_support(): array |
| | | { |
| | | return [ |
| | | 'singular' => 'Support', |
| | | 'plural' => 'Support', |
| | | 'hide_single' => false, |
| | | 'show_feed' => false, |
| | | 'icon' => 'question', |
| | | 'public' => false, |
| | | 'rewrite' => [ |
| | | 'slug' => 'support', |
| | | 'with_front' => false, |
| | | ], |
| | | 'fields' => [ |
| | | 'post_title' => [ |
| | | 'type' => 'text', |
| | | 'label' => 'Title', |
| | | |
| | | use JVBase\registrar\Registrar; |
| | | |
| | | if (!defined('ABSPATH')) { |
| | | exit; |
| | | } |
| | | |
| | | |
| | | add_action('plugins_loaded', 'ajv_support',1); |
| | | |
| | | //add_filter('ajv_SupportSchemaDefault', 'ajv_support_schema'); |
| | | //add_filter('ajv_SupportMetaDefault', 'ajv_support_meta'); |
| | | //add_filter('ajv_SupportArchiveDefault', 'ajv_support_archive'); |
| | | |
| | | function ajv_support(){ |
| | | if (!class_exists('JVBase\registrar\Registrar')) { |
| | | return; |
| | | } |
| | | $support = Registrar::forPost('support', 'Support', 'Supports') |
| | | ->setIcon('question') |
| | | ->make([ |
| | | 'rewrite' => [ |
| | | 'slug' => 'support', |
| | | 'with_front' => false, |
| | | ], |
| | | 'post_content' => [ |
| | | 'type' => 'textarea', |
| | | 'quill' => true, |
| | | 'label' => 'Content' |
| | | ] |
| | | ], |
| | | ]; |
| | | } |
| | | 'public' => false, |
| | | 'taxonomies' => [] |
| | | ]); |
| | | } |
| | | //function ajv_support(): array |
| | | //{ |
| | | // return [ |
| | | // 'singular' => 'Support', |
| | | // 'plural' => 'Support', |
| | | // 'hide_single' => false, |
| | | // 'show_feed' => false, |
| | | // 'icon' => 'question', |
| | | // 'public' => false, |
| | | // 'rewrite' => [ |
| | | // 'slug' => 'support', |
| | | // 'with_front' => false, |
| | | // ], |
| | | // 'fields' => [ |
| | | // 'post_title' => [ |
| | | // 'type' => 'text', |
| | | // 'label' => 'Title', |
| | | // ], |
| | | // 'post_content' => [ |
| | | // 'type' => 'textarea', |
| | | // 'quill' => true, |
| | | // 'label' => 'Content' |
| | | // ] |
| | | // ], |
| | | // ]; |
| | | //} |
| | |
| | | <?php |
| | | // /content/writing.php |
| | | function ajv_writing():array |
| | | { |
| | | return [ |
| | | 'singular' => 'Writing', |
| | | 'plural' => 'Writings', |
| | | 'hide_single' => false, |
| | | 'redirectToAuthor'=> false, |
| | | 'show_feed' => true, |
| | | 'addCrumb' => 'project', |
| | | 'show_directory'=> true, |
| | | 'directory' => 'Writing', |
| | | 'favouritable' => true, |
| | | 'karma' => false, |
| | | 'icon' => 'pen-nib', |
| | | 'rewrite' => [ |
| | | 'slug' => 'writing', |
| | | 'with_front' => false, |
| | | ], |
| | | use JVBase\meta\Meta; |
| | | use JVBase\registrar\Registrar; |
| | | |
| | | 'seo' => [ |
| | | 'schema' => [ |
| | | 'type' => 'CreativeWork', |
| | | 'name' => '{{post_title}}', |
| | | 'description' => '{{post_excerpt}}', |
| | | 'about' => ['@id' => '{{site_url}}/#writing'], |
| | | 'associatedMedia' => '{{post_thumbnail}}', |
| | | 'dateCreated' => '{{post_date}}', |
| | | ], |
| | | 'meta' => [ |
| | | 'title' => '{{post_title}} | Human-made Writing', |
| | | 'description' => '{{post_excerpt}}', |
| | | ], |
| | | 'archive' => [ |
| | | 'type' => 'CollectionPage', |
| | | 'name' => 'Canadian Content Writing. From Edmonton, Alberta.', |
| | | ], |
| | | ], |
| | | 'feed' => [ |
| | | 'single' => [ |
| | | 'pre_title' => 'Canadian Content Writing. From Edmonton, Alberta.', |
| | | ], |
| | | 'archive' => [ |
| | | if (!defined('ABSPATH')) { |
| | | exit; |
| | | } |
| | | |
| | | |
| | | add_action('plugins_loaded', 'ajv_writing',1); |
| | | //Add fields later so we can verify taxonomies/post types exist |
| | | add_action('plugins_loaded', 'ajv_writing_fields', 2); |
| | | |
| | | add_filter('ajv_WritingSchemaDefault', 'ajv_writing_schema'); |
| | | add_filter('ajv_WritingMetaDefault', 'ajv_writing_meta'); |
| | | add_filter('ajv_WritingArchiveDefault', 'ajv_writing_archive'); |
| | | |
| | | function ajv_writing(){ |
| | | if (!class_exists('JVBase\registrar\Registrar')) { |
| | | return; |
| | | } |
| | | $writing = Registrar::forPost('writing', 'Writing', 'Writings') |
| | | ->setIcon('pen-nib') |
| | | ->make([ |
| | | 'rewrite' => [ |
| | | 'slug' => 'writing', |
| | | 'with_front' => false, |
| | | ], |
| | | 'config' => [ |
| | | 'is_gallery' => false, |
| | | 'content' => 'writing', |
| | | 'context' => 'writing', |
| | | 'id' => [], |
| | | 'class' => [], |
| | | 'taxonomies' => [ |
| | | 'project', |
| | | 'form', |
| | | 'target', |
| | | 'city', |
| | | 'style', |
| | | 'theme' |
| | | ] |
| | | ], |
| | | 'fields' => [ |
| | | 'post_status' => [ |
| | | 'type' => 'radio', |
| | | 'label' => 'Status', |
| | | 'options' => [ |
| | | 'publish' => 'Show', |
| | | 'draft' => 'Hide', |
| | | 'trash' => 'Scrap', |
| | | 'delete' => 'Permanently Delete' |
| | | ], |
| | | 'hidden' => true, |
| | | ]) |
| | | ->setAll([ |
| | | 'show_feed', |
| | | 'show_directory', |
| | | 'favouritable' |
| | | ]); |
| | | } |
| | | function ajv_writing_fields():void |
| | | { |
| | | if (!class_exists('JVBase\registrar\Registrar')) { |
| | | return; |
| | | } |
| | | $writing = Registrar::getInstance('writing'); |
| | | |
| | | //$directory = $writing->getConfig('directory'); |
| | | $breadcrumbs = $writing->config('breadcrumbs'); |
| | | $breadcrumbs->setCrumb('project'); |
| | | |
| | | $fields = $writing->fields(); |
| | | $fields->addField('project', [ |
| | | 'type' => 'selector', |
| | | 'subtype' => 'taxonomy', |
| | | 'taxonomy' => 'project', |
| | | 'label' => 'Project', |
| | | ]); |
| | | $fields->addField('form', [ |
| | | 'type' => 'selector', |
| | | 'subtype' => 'taxonomy', |
| | | 'taxonomy' => 'form', |
| | | 'label' => 'Form', |
| | | ]); |
| | | $fields->addField('target', [ |
| | | 'type' => 'selector', |
| | | 'subtype' => 'taxonomy', |
| | | 'taxonomy' => 'target', |
| | | 'label' => 'Target', |
| | | ]); |
| | | $fields->addField('city', [ |
| | | 'type' => 'selector', |
| | | 'subtype' => 'taxonomy', |
| | | 'taxonomy' => 'city', |
| | | 'label' => 'City', |
| | | ]); |
| | | $fields->addField('style', [ |
| | | 'type' => 'selector', |
| | | 'subtype' => 'taxonomy', |
| | | 'taxonomy' => 'style', |
| | | 'label' => 'Style', |
| | | ]); |
| | | $fields->addField('theme', [ |
| | | 'type' => 'selector', |
| | | 'subtype' => 'taxonomy', |
| | | 'taxonomy' => 'theme', |
| | | 'label' => 'Theme', |
| | | ]); |
| | | $fields->addField('gallery', [ |
| | | 'type' => 'upload', |
| | | 'multiple' => true, |
| | | 'label' => 'Gallery', |
| | | ]); |
| | | $fields->addField('price', [ |
| | | 'type' => 'number', |
| | | 'label' => 'Price', |
| | | ]); |
| | | $fields->addField('needs', [ |
| | | 'type' => 'repeater', |
| | | 'label' => 'Needs', |
| | | 'fields' => [ |
| | | 'need' => [ |
| | | 'type' => 'text', |
| | | 'label' => 'Need', |
| | | 'required' => true |
| | | ], |
| | | 'post_title' => [ |
| | | 'type' => 'text', |
| | | 'label' => 'Title', |
| | | ], |
| | | 'post_date' => [ |
| | | 'type' => 'date', |
| | | 'label' => 'Date', |
| | | ], |
| | | 'post_thumbnail' => [ |
| | | 'image' => [ |
| | | 'type' => 'upload', |
| | | 'label' => 'Image', |
| | | 'multiple' => true, |
| | | 'label' => 'Example Image' |
| | | ], |
| | | 'project' => [ |
| | | 'type' => 'taxonomy', |
| | | 'taxonomy' => 'project', |
| | | 'autocomplete' => true, |
| | | 'label' => 'Project', |
| | | ], |
| | | 'target' => [ |
| | | 'type' => 'taxonomy', |
| | | 'taxonomy' => 'target', |
| | | 'autocomplete' => true, |
| | | 'label' => 'Target Audience', |
| | | ], |
| | | 'city' => [ |
| | | 'type' => 'taxonomy', |
| | | 'autocomplete' => true, |
| | | 'taxonomy' => 'city', |
| | | 'label' => 'City', |
| | | ], |
| | | 'gallery' => [ |
| | | 'type' => 'upload', |
| | | 'multiple' => true, |
| | | 'label' => 'Gallery', |
| | | ], |
| | | 'price' => [ |
| | | 'type' => 'number', |
| | | 'label' => 'Price', |
| | | ], |
| | | 'post_content' => [ |
| | | 'fulfilled' => [ |
| | | 'type' => 'textarea', |
| | | 'quill' => true, |
| | | 'label' => 'Notes' |
| | | 'label' => 'How I fulfilled it' |
| | | ] |
| | | ] |
| | | ]); |
| | | $fields->addField('wants', [ |
| | | 'type' => 'repeater', |
| | | 'label' => 'Wants', |
| | | 'fields' => [ |
| | | 'need' => [ |
| | | 'type' => 'text', |
| | | 'label' => 'Need', |
| | | 'required' => true |
| | | ], |
| | | 'image' => [ |
| | | 'type' => 'upload', |
| | | 'multiple' => true, |
| | | 'label' => 'Example Image' |
| | | ], |
| | | 'fulfilled' => [ |
| | | 'type' => 'textarea', |
| | | 'quill' => true, |
| | | 'label' => 'How I fulfilled it' |
| | | ] |
| | | ] |
| | | ]); |
| | | } |
| | | |
| | | 'needs' => [ |
| | | 'type' => 'repeater', |
| | | 'label' => 'Needs', |
| | | 'fields'=> [ |
| | | 'need' => [ |
| | | 'type' => 'text', |
| | | 'label' => 'Need', |
| | | 'required' => true |
| | | ], |
| | | 'image' => [ |
| | | 'type' => 'upload', |
| | | 'multiple' => true, |
| | | 'label' => 'Example Image' |
| | | ], |
| | | 'fulfilled' => [ |
| | | 'type' => 'textarea', |
| | | 'quill' => true, |
| | | 'label' => 'How I fulfilled it' |
| | | ] |
| | | ] |
| | | ], |
| | | 'wants' => [ |
| | | 'type' => 'repeater', |
| | | 'label' => 'Wants', |
| | | 'fields'=> [ |
| | | 'need' => [ |
| | | 'type' => 'text', |
| | | 'label' => 'Want', |
| | | 'required' => true |
| | | ], |
| | | 'image' => [ |
| | | 'type' => 'upload', |
| | | 'multiple' => true, |
| | | 'label' => 'Example Image' |
| | | ], |
| | | 'fulfilled' => [ |
| | | 'type' => 'textarea', |
| | | 'quill' => true, |
| | | 'label' => 'How I fulfilled it' |
| | | ] |
| | | ] |
| | | ], |
| | | ], |
| | | 'single_image' => false, |
| | | 'upload_title' => 'Upload Writings', |
| | | //function ajv_writing():array |
| | | //{ |
| | | // return [ |
| | | // 'singular' => 'Writing', |
| | | // 'plural' => 'Writings', |
| | | // 'hide_single' => false, |
| | | // 'redirectToAuthor'=> false, |
| | | // 'show_feed' => true, |
| | | // 'addCrumb' => 'project', |
| | | // 'show_directory'=> true, |
| | | // 'directory' => 'Writing', |
| | | // 'favouritable' => true, |
| | | // 'karma' => false, |
| | | // 'icon' => 'pen-nib', |
| | | // 'rewrite' => [ |
| | | // 'slug' => 'writing', |
| | | // 'with_front' => false, |
| | | // ], |
| | | // |
| | | // 'seo' => [ |
| | | // 'schema' => [ |
| | | // 'type' => 'CreativeWork', |
| | | // 'name' => '{{post_title}}', |
| | | // 'description' => '{{post_excerpt}}', |
| | | // 'about' => ['@id' => '{{site_url}}/#writing'], |
| | | // 'associatedMedia' => '{{post_thumbnail}}', |
| | | // 'dateCreated' => '{{post_date}}', |
| | | // ], |
| | | // 'meta' => [ |
| | | // 'title' => '{{post_title}} | Human-made Writing', |
| | | // 'description' => '{{post_excerpt}}', |
| | | // ], |
| | | // 'archive' => [ |
| | | // 'type' => 'CollectionPage', |
| | | // 'name' => 'Canadian Content Writing. From Edmonton, Alberta.', |
| | | // ], |
| | | // ], |
| | | // 'feed' => [ |
| | | // 'single' => [ |
| | | // 'pre_title' => 'Canadian Content Writing. From Edmonton, Alberta.', |
| | | // ], |
| | | // 'archive' => [ |
| | | // |
| | | // ], |
| | | // 'config' => [ |
| | | // 'is_gallery' => false, |
| | | // 'content' => 'writing', |
| | | // 'context' => 'writing', |
| | | // 'id' => [], |
| | | // 'class' => [], |
| | | // ] |
| | | // ], |
| | | // 'fields' => [ |
| | | // 'post_status' => [ |
| | | // 'type' => 'radio', |
| | | // 'label' => 'Status', |
| | | // 'options' => [ |
| | | // 'publish' => 'Show', |
| | | // 'draft' => 'Hide', |
| | | // 'trash' => 'Scrap', |
| | | // 'delete' => 'Permanently Delete' |
| | | // ], |
| | | // 'hidden' => true, |
| | | // ], |
| | | // 'post_title' => [ |
| | | // 'type' => 'text', |
| | | // 'label' => 'Title', |
| | | // ], |
| | | // 'post_date' => [ |
| | | // 'type' => 'date', |
| | | // 'label' => 'Date', |
| | | // ], |
| | | // 'post_thumbnail' => [ |
| | | // 'type' => 'upload', |
| | | // 'label' => 'Image', |
| | | // ], |
| | | // 'project' => [ |
| | | // 'type' => 'taxonomy', |
| | | // 'taxonomy' => 'project', |
| | | // 'autocomplete' => true, |
| | | // 'label' => 'Project', |
| | | // ], |
| | | // |
| | | // 'form' => [ |
| | | // 'type' => 'taxonomy', |
| | | // 'taxonomy' => 'form', |
| | | // 'autocomplete' => true, |
| | | // 'label' => 'Format', |
| | | // ], |
| | | // 'target' => [ |
| | | // 'type' => 'taxonomy', |
| | | // 'taxonomy' => 'target', |
| | | // 'autocomplete' => true, |
| | | // 'label' => 'Target Audience', |
| | | // ], |
| | | // 'city' => [ |
| | | // 'type' => 'taxonomy', |
| | | // 'autocomplete' => true, |
| | | // 'taxonomy' => 'city', |
| | | // 'label' => 'City', |
| | | // ], |
| | | // 'gallery' => [ |
| | | // 'type' => 'upload', |
| | | // 'multiple' => true, |
| | | // 'label' => 'Gallery', |
| | | // ], |
| | | // 'price' => [ |
| | | // 'type' => 'number', |
| | | // 'label' => 'Price', |
| | | // ], |
| | | // 'post_content' => [ |
| | | // 'type' => 'textarea', |
| | | // 'quill' => true, |
| | | // 'label' => 'Notes' |
| | | // ], |
| | | // |
| | | // 'needs' => [ |
| | | // 'type' => 'repeater', |
| | | // 'label' => 'Needs', |
| | | // 'fields'=> [ |
| | | // 'need' => [ |
| | | // 'type' => 'text', |
| | | // 'label' => 'Need', |
| | | // 'required' => true |
| | | // ], |
| | | // 'image' => [ |
| | | // 'type' => 'upload', |
| | | // 'multiple' => true, |
| | | // 'label' => 'Example Image' |
| | | // ], |
| | | // 'fulfilled' => [ |
| | | // 'type' => 'textarea', |
| | | // 'quill' => true, |
| | | // 'label' => 'How I fulfilled it' |
| | | // ] |
| | | // ] |
| | | // ], |
| | | // 'wants' => [ |
| | | // 'type' => 'repeater', |
| | | // 'label' => 'Wants', |
| | | // 'fields'=> [ |
| | | // 'need' => [ |
| | | // 'type' => 'text', |
| | | // 'label' => 'Want', |
| | | // 'required' => true |
| | | // ], |
| | | // 'image' => [ |
| | | // 'type' => 'upload', |
| | | // 'multiple' => true, |
| | | // 'label' => 'Example Image' |
| | | // ], |
| | | // 'fulfilled' => [ |
| | | // 'type' => 'textarea', |
| | | // 'quill' => true, |
| | | // 'label' => 'How I fulfilled it' |
| | | // ] |
| | | // ] |
| | | // ], |
| | | // ], |
| | | // 'single_image' => false, |
| | | // 'upload_title' => 'Upload Writings', |
| | | // ]; |
| | | //} |
| | | |
| | | |
| | | function ajv_render_writing_content(array $block, string $content):string |
| | | { |
| | | $out = ''; |
| | | $ID = get_the_ID(); |
| | | $meta = Meta::forPost($ID); |
| | | |
| | | $fields = $meta->getAll(); |
| | | |
| | | $bits = []; |
| | | if (array_key_exists('post_excerpt', $fields) && !empty($fields['post_excerpt'])) { |
| | | $bits[] = sprintf( |
| | | '<section id="excerpt"><h2>At a Glance</h2>%s</section>', |
| | | jvb_filter_content($fields['post_excerpt']) |
| | | ); |
| | | } |
| | | |
| | | if (array_key_exists('gallery', $fields) && !empty($fields['gallery'])) { |
| | | $gallery = explode(',',$fields['gallery']); |
| | | $gallery = array_map(function ($imgID) { |
| | | $out = '<figure>'.jvbFormatImage($imgID,'tiny','medium'); |
| | | $caption = wp_get_attachment_caption($imgID); |
| | | $out .= ($caption && $caption !== '') ? '<figcaption>'.apply_filters('the_content', $caption).'</figcaption>' : ''; |
| | | $out .= '</figure>'; |
| | | return $out; |
| | | |
| | | }, $gallery); |
| | | $gallery = implode('',$gallery); |
| | | $bits[] = sprintf( |
| | | '<section id="gallery"><h2>Gallery</h2><div>%s</div></section>', |
| | | $gallery |
| | | ); |
| | | } |
| | | |
| | | if (array_key_exists('post_content', $fields) && !empty($fields['post_content'])) { |
| | | $bits[] = sprintf( |
| | | '<section id="content">%s</section>', |
| | | $fields['post_content'] |
| | | ); |
| | | } |
| | | |
| | | if (array_key_exists('needs', $fields) && !empty($fields['needs'])) { |
| | | $bits[] = ajvb_format_needs($fields['needs']); |
| | | } |
| | | if (array_key_exists('wants', $fields) && !empty($fields['wants'])) { |
| | | $bits[] = ajvb_format_wants($fields['wants']); |
| | | } |
| | | |
| | | if (!empty($bits)) { |
| | | $out = implode('',$bits); |
| | | } |
| | | |
| | | |
| | | return $out; |
| | | } |
| | | |
| | | |
| | | |
| | | function ajv_writing_schema():array |
| | | { |
| | | return [ |
| | | 'type' => 'JVBase\managers\SEO\render\Thing\CreativeWork\CreativeWork', |
| | | 'name' => '{{post_title}} | Human-made Canadian Writing', |
| | | 'description' => '{{post_excerpt}}', |
| | | 'thumbnail' => '{{post_thumbnail}}', |
| | | 'dateCreated' => '{{post_date}}', |
| | | 'dateModified' => '{{post_modified}}', |
| | | 'keywords' => '{{style.name}}' |
| | | ]; |
| | | } |
| | | |
| | | function ajv_writing_meta():array |
| | | { |
| | | return[ |
| | | 'name' => '{{post_title}} | Human-made Writing', |
| | | ]; |
| | | } |
| | | |
| | | function ajv_writing_archive(array $defaults):array |
| | | { |
| | | return array_merge($defaults, [ |
| | | 'name' => 'Canadian Content Writing. From Edmonton, Alberta.', |
| | | ]); |
| | | } |
| | | |
| | | function ajv_writing_reference_schema(array $defaults):array |
| | | { |
| | | return $defaults; |
| | | } |
| | |
| | | require(AJV_DIR . '/taxonomies/target.php'); |
| | | require(AJV_DIR . '/taxonomies/theme.php'); |
| | | |
| | | add_filter('jvb_taxonomy', 'ajv_taxonomy'); |
| | | //add_filter('jvb_taxonomy', 'ajv_taxonomy'); |
| | | function ajv_taxonomy():array |
| | | { |
| | | return [ |
| | |
| | | <?php |
| | | // /taxonomies/city.php |
| | | function ajv_city():array |
| | | use JVBase\registrar\Registrar; |
| | | |
| | | if (!defined('ABSPATH')) { |
| | | exit; |
| | | } |
| | | |
| | | |
| | | add_action('plugins_loaded', 'ajv_city',1); |
| | | //Add fields later so we can verify taxonomies/post types exist |
| | | add_action('plugins_loaded', 'ajv_city_fields', 2); |
| | | |
| | | add_filter('ajv_CitySchemaDefault', 'ajv_city_schema'); |
| | | add_filter('ajv_CityMetaDefault', 'ajv_city_meta'); |
| | | add_filter('ajv_CityArchiveDefault', 'ajv_city_archive'); |
| | | |
| | | function ajv_city(){ |
| | | if (!class_exists('JVBase\registrar\Registrar')) { |
| | | return; |
| | | } |
| | | $city = Registrar::forTerm('city', 'City', 'Cities') |
| | | ->setIcon('city') |
| | | ->make([ |
| | | 'rewrite' => [ |
| | | 'slug' => 'in/city', |
| | | 'with_front' => false, |
| | | 'hierarchical' => true, |
| | | ], |
| | | 'for' => [ |
| | | 'art', |
| | | 'design', |
| | | 'development', |
| | | 'strategy', |
| | | 'writing' |
| | | ], |
| | | 'hierarchical' => true, |
| | | ]) |
| | | ->setAll([ |
| | | 'show_feed', |
| | | 'show_directory' |
| | | ]); |
| | | } |
| | | |
| | | function ajv_city_fields():void |
| | | { |
| | | if (!class_exists('JVBase\registrar\Registrar')) { |
| | | return; |
| | | } |
| | | $city = Registrar::getInstance('city'); |
| | | |
| | | //$directory = $city->getConfig('directory'); |
| | | // $breadcrumbs = $city->config('breadcrumbs'); |
| | | // $breadcrumbs->setCrumb('project'); |
| | | |
| | | $fields = $city->fields(); |
| | | $fields->addCommon('wiki'); |
| | | $fields->addField( |
| | | 'province', |
| | | [ |
| | | 'type' => 'text', |
| | | 'label' => 'Province' |
| | | ] |
| | | ); |
| | | $fields->addField( |
| | | 'country', |
| | | [ |
| | | 'type' => 'text', |
| | | 'label' => 'Country' |
| | | ] |
| | | ); |
| | | } |
| | | |
| | | //function ajv_city():array |
| | | //{ |
| | | // return [ |
| | | // 'singular' => 'City', |
| | | // 'plural' => 'Cities', |
| | | // 'icon' => 'city', |
| | | // 'description' => [ |
| | | // 'From Edmonton, yes - but also throughout Alberta.' |
| | | // ], |
| | | // 'show_feed' => true, |
| | | // 'show_directory' => true, |
| | | // 'approve_new' => false, |
| | | // 'rewrite' => [ |
| | | // 'slug' => 'in', |
| | | // 'with_front' => false, |
| | | // 'hierarchical' => true, |
| | | // ], |
| | | // 'hierarchical' => true, |
| | | // 'for_content' => [ |
| | | // 'art', |
| | | // 'city', |
| | | // 'development', |
| | | // 'strategy', |
| | | // 'writing', |
| | | // ], |
| | | // 'seo' => [ |
| | | // 'schema' => [ |
| | | // 'type' => 'City', |
| | | // 'name' => '{{name}}', |
| | | // 'description' => '{{description}}', |
| | | // 'containedInPlace' => '{{site_url}}/#organization', |
| | | // ], |
| | | // 'meta' => [ |
| | | // 'title' => 'Projects in {{name}} | JakeVan', |
| | | // 'description' => 'Art, city, development, and strategy projects in {{name}}.', |
| | | // ], |
| | | // 'archive' => [ |
| | | // 'type' => 'CollectionPage', |
| | | // 'name' => 'Projects in {{name}}', |
| | | // ], |
| | | // ], |
| | | // 'fields' => [ |
| | | // 'term_name' => [ |
| | | // 'label' => 'Name', |
| | | // 'type' => 'text', |
| | | // 'quickEdit' => true, |
| | | // ], |
| | | // 'common' => [ 'wiki' ] |
| | | // ] |
| | | // ]; |
| | | //} |
| | | |
| | | |
| | | |
| | | function ajv_city_schema():array |
| | | { |
| | | return [ |
| | | 'singular' => 'City', |
| | | 'plural' => 'Cities', |
| | | 'icon' => 'city', |
| | | 'description' => [ |
| | | 'From Edmonton, yes - but also throughout Alberta.' |
| | | // 'type' => 'JVBase\managers\SEO\render\Thing\CreativeWork\CreativeWork', |
| | | 'name' => '{{name}} | Canadian City', |
| | | 'about' => [ |
| | | 'type' => 'JVBase\managers\SEO\render\Thing\Place\AdministrativeArea\City', |
| | | 'name' => '{{name}}', |
| | | ], |
| | | 'show_feed' => true, |
| | | 'show_directory' => true, |
| | | 'approve_new' => false, |
| | | 'rewrite' => [ |
| | | 'slug' => 'in', |
| | | 'with_front' => false, |
| | | 'hierarchical' => true, |
| | | ], |
| | | 'hierarchical' => true, |
| | | 'for_content' => [ |
| | | 'art', |
| | | 'design', |
| | | 'development', |
| | | 'strategy', |
| | | 'writing', |
| | | ], |
| | | 'seo' => [ |
| | | 'schema' => [ |
| | | 'type' => 'City', |
| | | 'name' => '{{term_name}}', |
| | | 'description' => '{{term_description}}', |
| | | 'containedInPlace' => '{{site_url}}/#organization', |
| | | ], |
| | | 'meta' => [ |
| | | 'title' => 'Projects in {{term_name}} | JakeVan', |
| | | 'description' => 'Art, design, development, and strategy projects in {{term_name}}.', |
| | | ], |
| | | 'archive' => [ |
| | | 'type' => 'CollectionPage', |
| | | 'name' => 'Projects in {{term_name}}', |
| | | ], |
| | | ], |
| | | 'fields' => [ |
| | | 'term_name' => [ |
| | | 'label' => 'Name', |
| | | 'type' => 'text', |
| | | 'quickEdit' => true, |
| | | ], |
| | | 'common' => [ 'wiki' ] |
| | | ] |
| | | 'description' => '{{description}}', |
| | | ]; |
| | | } |
| | | |
| | | function ajv_city_meta():array |
| | | { |
| | | return[ |
| | | 'name' => 'Projects in {{name}}', |
| | | 'description' => 'Art, Design, Development, Strategy, and Content Writing projects in {{name}}.' |
| | | ]; |
| | | } |
| | | |
| | | function ajv_city_archive(array $defaults):array |
| | | { |
| | | return array_merge($defaults, [ |
| | | 'name' => 'Projects in {{name}}', |
| | | ]); |
| | | } |
| | | |
| | | function ajv_city_reference_schema(array $defaults):array |
| | | { |
| | | return $defaults; |
| | | } |
| | |
| | | <?php |
| | | // /taxonomies/form.php |
| | | function ajv_form():array |
| | | use JVBase\registrar\Registrar; |
| | | |
| | | if (!defined('ABSPATH')) { |
| | | exit; |
| | | } |
| | | |
| | | add_action('plugins_loaded', 'ajv_form',1); |
| | | //Add fields later so we can verify taxonomies/post types exist |
| | | add_action('plugins_loaded', 'ajv_form_fields', 2); |
| | | |
| | | add_filter('ajv_FormSchemaDefault', 'ajv_form_schema'); |
| | | add_filter('ajv_FormMetaDefault', 'ajv_form_meta'); |
| | | add_filter('ajv_FormArchiveDefault', 'ajv_form_archive'); |
| | | |
| | | function ajv_form(){ |
| | | if (!class_exists('JVBase\registrar\Registrar')) { |
| | | return; |
| | | } |
| | | $form = Registrar::forTerm('form', 'Form', 'Forms') |
| | | ->setIcon('shapes') |
| | | ->make([ |
| | | 'rewrite' => [ |
| | | 'slug' => 'in/form', |
| | | 'with_front' => false, |
| | | 'hierarchical' => true, |
| | | ], |
| | | 'for' => [ |
| | | 'art', |
| | | 'design', |
| | | 'development', |
| | | 'strategy', |
| | | 'writing' |
| | | ], |
| | | 'hierarchical' => true, |
| | | ]) |
| | | ->setAll([ |
| | | 'show_feed', |
| | | 'show_directory', |
| | | ]); |
| | | |
| | | } |
| | | |
| | | function ajv_form_fields():void |
| | | { |
| | | if (!class_exists('JVBase\registrar\Registrar')) { |
| | | return; |
| | | } |
| | | $form = Registrar::getInstance('form'); |
| | | |
| | | //$directory = $form->getConfig('directory'); |
| | | //$breadcrumbs = $form->config('breadcrumbs'); |
| | | //$breadcrumbs->setCrumb('project'); |
| | | |
| | | $fields = $form->fields(); |
| | | $fields->addCommon('wiki'); |
| | | } |
| | | |
| | | //function ajv_form():array |
| | | //{ |
| | | // return [ |
| | | // 'singular' => 'Form', |
| | | // 'plural' => 'Forms', |
| | | // 'description' => [ |
| | | // 'From paintings to sculptures.' |
| | | // ], |
| | | // 'icon' => 'shapes', |
| | | // 'show_feed' => true, |
| | | // 'show_directory' => false, |
| | | // 'approve_new' => false, |
| | | // 'rewrite' => [ |
| | | // 'slug' => 'form', |
| | | // 'with_front' => false, |
| | | // ], |
| | | // 'for_content' => [ |
| | | // 'art', |
| | | // 'form', |
| | | // 'development', |
| | | // 'strategy', |
| | | // 'writing', |
| | | // ], |
| | | // 'seo' => [ |
| | | // 'schema' => [ |
| | | // 'type' => 'DefinedTerm', |
| | | // 'name' => '{{name}}', |
| | | // 'description' => '{{description}}', |
| | | // ], |
| | | // 'meta' => [ |
| | | // 'title' => '{{name}} | Art Forms', |
| | | // 'description' => '{{description}}', |
| | | // ], |
| | | // 'archive' => [ |
| | | // 'type' => 'CollectionPage', |
| | | // 'name' => '{{name}} Art', |
| | | // ], |
| | | // ], |
| | | // 'fields' => [ |
| | | // 'term_name' => [ |
| | | // 'label' => 'Name', |
| | | // 'type' => 'text', |
| | | // 'quickEdit' => true, |
| | | // ], |
| | | // 'common' => [ 'wiki' ] |
| | | // ] |
| | | // ]; |
| | | //} |
| | | |
| | | |
| | | |
| | | function ajv_form_schema():array |
| | | { |
| | | return [ |
| | | 'singular' => 'Form', |
| | | 'plural' => 'Forms', |
| | | 'description' => [ |
| | | 'From paintings to sculptures.' |
| | | ], |
| | | 'icon' => 'shapes', |
| | | 'show_feed' => true, |
| | | 'show_directory' => false, |
| | | 'approve_new' => false, |
| | | 'rewrite' => [ |
| | | 'slug' => 'form', |
| | | 'with_front' => false, |
| | | ], |
| | | 'for_content' => [ |
| | | 'art', |
| | | 'design', |
| | | ], |
| | | 'seo' => [ |
| | | 'schema' => [ |
| | | 'type' => 'DefinedTerm', |
| | | 'name' => '{{term_name}}', |
| | | 'description' => '{{term_description}}', |
| | | ], |
| | | 'meta' => [ |
| | | 'title' => '{{term_name}} | Art Forms', |
| | | 'description' => '{{term_description}}', |
| | | ], |
| | | 'archive' => [ |
| | | 'type' => 'CollectionPage', |
| | | 'name' => '{{term_name}} Art', |
| | | ], |
| | | ], |
| | | 'fields' => [ |
| | | 'term_name' => [ |
| | | 'label' => 'Name', |
| | | 'type' => 'text', |
| | | 'quickEdit' => true, |
| | | ], |
| | | 'common' => [ 'wiki' ] |
| | | ] |
| | | // 'type' => 'JVBase\managers\SEO\render\Thing\CreativeWork\CreativeWork', |
| | | 'name' => '{{name}} | Art Forms', |
| | | 'description' => '{{description}}', |
| | | ]; |
| | | } |
| | | |
| | | function ajv_form_meta():array |
| | | { |
| | | return[ |
| | | 'name' => '{{name}} | Art Forms', |
| | | ]; |
| | | } |
| | | |
| | | function ajv_form_archive(array $defaults):array |
| | | { |
| | | return array_merge($defaults, [ |
| | | 'name' => '{{name}} Art | Made in Edmonton', |
| | | ]); |
| | | } |
| | | |
| | | function ajv_form_reference_schema(array $defaults):array |
| | | { |
| | | |
| | | return $defaults; |
| | | } |
| | |
| | | <?php |
| | | // /taxonomies/media.php |
| | | function ajv_media():array |
| | | use JVBase\registrar\Registrar; |
| | | |
| | | if (!defined('ABSPATH')) { |
| | | exit; |
| | | } |
| | | |
| | | |
| | | add_action('plugins_loaded', 'ajv_media',1); |
| | | //Add fields later so we can verify taxonomies/post types exist |
| | | add_action('plugins_loaded', 'ajv_media_fields', 2); |
| | | |
| | | add_filter('ajv_MediaSchemaDefault', 'ajv_media_schema'); |
| | | add_filter('ajv_MediaMetaDefault', 'ajv_media_meta'); |
| | | add_filter('ajv_MediaArchiveDefault', 'ajv_media_archive'); |
| | | |
| | | function ajv_media(){ |
| | | if (!class_exists('JVBase\registrar\Registrar')) { |
| | | return; |
| | | } |
| | | $media = Registrar::forTerm('media', 'Medium', 'Media') |
| | | ->setIcon('scribble') |
| | | ->make([ |
| | | 'rewrite' => [ |
| | | 'slug' => 'in/media', |
| | | 'with_front' => false, |
| | | ], |
| | | 'for' => [ |
| | | 'art', |
| | | 'design', |
| | | 'development', |
| | | 'strategy', |
| | | 'writing' |
| | | ], |
| | | 'hierarchical' => true, |
| | | ]) |
| | | ->setAll([ |
| | | 'show_feed', |
| | | 'show_directory', |
| | | ]); |
| | | } |
| | | |
| | | function ajv_media_fields():void |
| | | { |
| | | if (!class_exists('JVBase\registrar\Registrar')) { |
| | | return; |
| | | } |
| | | $media = Registrar::getInstance('media'); |
| | | |
| | | //$directory = $media->getConfig('directory'); |
| | | //$breadcrumbs = $media->config('breadcrumbs'); |
| | | //$breadcrumbs->setCrumb('project'); |
| | | |
| | | $fields = $media->fields(); |
| | | $fields->addCommon('wiki'); |
| | | } |
| | | |
| | | //function ajv_media():array |
| | | //{ |
| | | // return [ |
| | | // 'singular' => 'Medium', |
| | | // 'plural' => 'Media', |
| | | // 'description' => [ |
| | | // '<b>What it\'s made of.</b>', |
| | | // 'From clay to oil paints' |
| | | // ], |
| | | // 'icon' => 'diamonds-four', |
| | | // 'show_feed' => true, |
| | | // 'show_directory' => true, |
| | | // 'approve_new' => true, |
| | | // 'rewrite' => [ |
| | | // 'slug' => 'media', |
| | | // 'with_front' => false, |
| | | // 'hierarchical' => true, |
| | | // ], |
| | | // 'hierarchical' => true, |
| | | // 'for_content' => [ |
| | | // 'art' |
| | | // ], |
| | | // 'seo' => [ |
| | | // 'schema' => [ |
| | | // 'type' => 'DefinedTerm', |
| | | // 'name' => '{{name}}', |
| | | // 'description' => '{{description}}', |
| | | // ], |
| | | // 'meta' => [ |
| | | // 'title' => '{{name}} Art | JakeVan', |
| | | // 'description' => '{{description}}', |
| | | // ], |
| | | // 'archive' => [ |
| | | // 'type' => 'CollectionPage', |
| | | // 'name' => '{{name}} Artwork', |
| | | // ], |
| | | // ], |
| | | // 'fields' => [ |
| | | // 'term_name' => [ |
| | | // 'label' => 'Name', |
| | | // 'type' => 'text', |
| | | // 'quickEdit' => true, |
| | | // ], |
| | | // 'common' => [ 'wiki' ] |
| | | // ] |
| | | // ]; |
| | | //} |
| | | |
| | | |
| | | function ajv_media_schema():array |
| | | { |
| | | return [ |
| | | 'singular' => 'Medium', |
| | | 'plural' => 'Media', |
| | | 'description' => [ |
| | | '<b>What it\'s made of.</b>', |
| | | 'From clay to oil paints' |
| | | ], |
| | | 'icon' => 'diamonds-four', |
| | | 'show_feed' => true, |
| | | 'show_directory' => true, |
| | | 'approve_new' => true, |
| | | 'rewrite' => [ |
| | | 'slug' => 'media', |
| | | 'with_front' => false, |
| | | 'hierarchical' => true, |
| | | ], |
| | | 'hierarchical' => true, |
| | | 'for_content' => [ |
| | | 'art' |
| | | ], |
| | | 'seo' => [ |
| | | 'schema' => [ |
| | | 'type' => 'DefinedTerm', |
| | | 'name' => '{{term_name}}', |
| | | 'description' => '{{term_description}}', |
| | | ], |
| | | 'meta' => [ |
| | | 'title' => '{{term_name}} Art | JakeVan', |
| | | 'description' => '{{term_description}}', |
| | | ], |
| | | 'archive' => [ |
| | | 'type' => 'CollectionPage', |
| | | 'name' => '{{term_name}} Artwork', |
| | | ], |
| | | ], |
| | | 'fields' => [ |
| | | 'term_name' => [ |
| | | 'label' => 'Name', |
| | | 'type' => 'text', |
| | | 'quickEdit' => true, |
| | | ], |
| | | 'common' => [ 'wiki' ] |
| | | ] |
| | | // 'type' => 'JVBase\managers\SEO\render\Thing\CreativeWork\CreativeWork', |
| | | 'name' => '{{name}} Artwork', |
| | | 'description' => '{{description}}', |
| | | ]; |
| | | } |
| | | |
| | | function ajv_media_meta():array |
| | | { |
| | | return[ |
| | | 'name' => '{{name}} | Human-made Art', |
| | | ]; |
| | | } |
| | | |
| | | function ajv_media_archive(array $defaults):array |
| | | { |
| | | return array_merge($defaults, [ |
| | | 'name' => 'Canadian {{name}} Artwork. Made in Edmonton, Alberta.', |
| | | ]); |
| | | } |
| | | |
| | | function ajv_media_reference_schema(array $defaults):array |
| | | { |
| | | return $defaults; |
| | | } |
| | |
| | | <?php |
| | | // /taxonomies/progress.php |
| | | function ajv_progress():array |
| | | use JVBase\registrar\Registrar; |
| | | |
| | | if (!defined('ABSPATH')) { |
| | | exit; |
| | | } |
| | | |
| | | |
| | | add_action('plugins_loaded', 'ajv_progress',1); |
| | | //Add fields later so we can verify taxonomies/post types exist |
| | | add_action('plugins_loaded', 'ajv_progress_fields', 2); |
| | | |
| | | add_filter('ajv_ProgressSchemaDefault', 'ajv_progress_schema'); |
| | | add_filter('ajv_ProgressMetaDefault', 'ajv_progress_meta'); |
| | | add_filter('ajv_ProgressArchiveDefault', 'ajv_progress_archive'); |
| | | |
| | | function ajv_progress(){ |
| | | if (!class_exists('JVBase\registrar\Registrar')) { |
| | | return; |
| | | } |
| | | $progress = Registrar::forTerm('progress', 'Progress', 'Progresss') |
| | | ->setIcon('scribble') |
| | | ->make([ |
| | | 'rewrite' => [ |
| | | 'slug' => 'in/progress', |
| | | 'with_front' => false, |
| | | ], |
| | | 'for' => [ |
| | | 'art', |
| | | 'design', |
| | | 'development', |
| | | 'strategy', |
| | | 'writing' |
| | | ], |
| | | 'hierarchical' => true, |
| | | ]) |
| | | ->setAll([ |
| | | 'show_feed', |
| | | 'show_directory', |
| | | ]); |
| | | } |
| | | |
| | | function ajv_progress_fields():void |
| | | { |
| | | if (!class_exists('JVBase\registrar\Registrar')) { |
| | | return; |
| | | } |
| | | $progress = Registrar::getInstance('progress'); |
| | | |
| | | //$directory = $progress->getConfig('directory'); |
| | | //$breadcrumbs = $progress->config('breadcrumbs'); |
| | | //$breadcrumbs->setCrumb('project'); |
| | | |
| | | $fields = $progress->fields(); |
| | | $fields->addCommon('wiki'); |
| | | } |
| | | |
| | | //function ajv_progress():array |
| | | //{ |
| | | // return [ |
| | | // 'singular' => 'Progress', |
| | | // 'plural' => 'Progress', |
| | | // 'icon' => 'circle-notch', |
| | | // 'show_feed' => true, |
| | | // 'show_directory' => true, |
| | | // 'approve_new' => false, |
| | | // 'rewrite' => [ |
| | | // 'slug' => 'progress', |
| | | // 'with_front' => false, |
| | | // 'hierarchical' => true, |
| | | // ], |
| | | // 'hierarchical' => true, |
| | | // 'for_content' => [ |
| | | // 'art', |
| | | // 'progress', |
| | | // 'development', |
| | | // 'strategy', |
| | | // 'writing', |
| | | // ], |
| | | // 'seo' => [ |
| | | // 'meta' => [ |
| | | // 'title' => '{{name}} Projects | JakeVan', |
| | | // ], |
| | | // 'archive' => [ |
| | | // 'type' => 'CollectionPage', |
| | | // 'name' => '{{name}} Projects', |
| | | // ], |
| | | // ], |
| | | // 'fields' => [ |
| | | // 'term_name' => [ |
| | | // 'label' => 'Name', |
| | | // 'type' => 'text', |
| | | // 'quickEdit' => true, |
| | | // ], |
| | | // 'common' => [ 'wiki' ] |
| | | // ] |
| | | // ]; |
| | | //} |
| | | |
| | | |
| | | function ajv_progress_schema():array |
| | | { |
| | | return [ |
| | | 'singular' => 'Progress', |
| | | 'plural' => 'Progress', |
| | | 'icon' => 'circle-notch', |
| | | 'show_feed' => true, |
| | | 'show_directory' => true, |
| | | 'approve_new' => false, |
| | | 'rewrite' => [ |
| | | 'slug' => 'progress', |
| | | 'with_front' => false, |
| | | 'hierarchical' => true, |
| | | ], |
| | | 'hierarchical' => true, |
| | | 'for_content' => [ |
| | | 'art', |
| | | 'design', |
| | | 'development', |
| | | 'strategy', |
| | | 'writing', |
| | | ], |
| | | 'seo' => [ |
| | | 'meta' => [ |
| | | 'title' => '{{term_name}} Projects | JakeVan', |
| | | ], |
| | | 'archive' => [ |
| | | 'type' => 'CollectionPage', |
| | | 'name' => '{{term_name}} Projects', |
| | | ], |
| | | ], |
| | | 'fields' => [ |
| | | 'term_name' => [ |
| | | 'label' => 'Name', |
| | | 'type' => 'text', |
| | | 'quickEdit' => true, |
| | | ], |
| | | 'common' => [ 'wiki' ] |
| | | ] |
| | | 'type' => 'JVBase\managers\SEO\render\Thing\CreativeWork\CreativeWork', |
| | | 'name' => '{{name}} Projects', |
| | | 'description' => '{{description}}', |
| | | ]; |
| | | } |
| | | |
| | | function ajv_progress_meta():array |
| | | { |
| | | return[ |
| | | 'name' => '{{name}} Projects', |
| | | ]; |
| | | } |
| | | |
| | | function ajv_progress_archive(array $defaults):array |
| | | { |
| | | return array_merge($defaults, [ |
| | | 'name' => '{{name}} Projects', |
| | | ]); |
| | | } |
| | | |
| | | function ajv_progress_reference_schema(array $defaults):array |
| | | { |
| | | return $defaults; |
| | | } |
| | |
| | | <?php |
| | | // /taxonomies/progress.php |
| | | function ajv_project():array |
| | | use JVBase\managers\Cache; |
| | | use JVBase\meta\Meta; |
| | | use JVBase\registrar\Registrar; |
| | | |
| | | if (!defined('ABSPATH')) { |
| | | exit; |
| | | } |
| | | |
| | | |
| | | add_action('plugins_loaded', 'ajv_project',1); |
| | | //Add fields later so we can verify taxonomies/post types exist |
| | | add_action('plugins_loaded', 'ajv_project_fields', 2); |
| | | |
| | | add_filter('ajv_ProjectSchemaDefault', 'ajv_project_schema'); |
| | | add_filter('ajv_ProjectMetaDefault', 'ajv_project_meta'); |
| | | add_filter('ajv_ProjectArchiveDefault', 'ajv_project_archive'); |
| | | |
| | | function ajv_project(){ |
| | | if (!class_exists('JVBase\registrar\Registrar')) { |
| | | return; |
| | | } |
| | | $project = Registrar::forTerm('project', 'Project', 'Projects') |
| | | ->setIcon('scribble') |
| | | ->make([ |
| | | 'rewrite' => [ |
| | | 'slug' => 'projects', |
| | | 'with_front' => false, |
| | | ], |
| | | 'for' => [ |
| | | 'art', |
| | | 'design', |
| | | 'development', |
| | | 'strategy', |
| | | 'writing' |
| | | ], |
| | | 'hierarchical' => true, |
| | | ]) |
| | | ->setAll([ |
| | | 'show_feed', |
| | | 'show_directory', |
| | | 'is_content' |
| | | ]); |
| | | } |
| | | function ajv_project_fields():void |
| | | { |
| | | return [ |
| | | 'singular' => 'Project', |
| | | 'plural' => 'Projects', |
| | | 'icon' => 'cards-three', |
| | | 'show_feed' => true, |
| | | 'show_directory' => true, |
| | | 'approve_new' => false, |
| | | 'rewrite' => [ |
| | | 'slug' => 'projects', |
| | | 'with_front' => false, |
| | | 'hierarchical' => true, |
| | | ], |
| | | 'hierarchical' => true, |
| | | 'for_content' => [ |
| | | 'art', |
| | | 'design', |
| | | 'development', |
| | | 'strategy', |
| | | 'writing', |
| | | ], |
| | | 'seo' => [ |
| | | 'schema' => [ |
| | | 'type' => 'CreativeWork', |
| | | 'name' => '{{term_name}}', |
| | | 'description' => '{{term_description}}', |
| | | 'dateCreated' => '{{started}}', |
| | | 'keywords' => '{{target.name}}', |
| | | if (!class_exists('JVBase\registrar\Registrar')) { |
| | | return; |
| | | } |
| | | $project = Registrar::getInstance('project'); |
| | | |
| | | //$directory = $project->getConfig('directory'); |
| | | //$breadcrumbs = $project->config('breadcrumbs'); |
| | | //$breadcrumbs->setCrumb('project'); |
| | | |
| | | $fields = $project->fields(); |
| | | $fields->addField( |
| | | 'city', |
| | | [ |
| | | 'type' => 'selector', |
| | | 'subtype' => 'taxonomy', |
| | | 'isReference' => true, |
| | | 'taxonomy' => 'city', |
| | | 'label' => 'City', |
| | | 'quickEdit' => true, |
| | | ] |
| | | ); |
| | | $fields->addField( |
| | | 'thumbnail', |
| | | [ |
| | | 'type' => 'upload', |
| | | 'multiple' => false, |
| | | 'label' => 'Featured Image', |
| | | ] |
| | | ); |
| | | $fields->addField( |
| | | 'summary', |
| | | [ |
| | | 'type' => 'textarea', |
| | | 'quill' => true, |
| | | 'label' => 'Summary', |
| | | ] |
| | | ); |
| | | $fields->addField( |
| | | 'target', |
| | | [ |
| | | 'type' => 'taxonomy', |
| | | 'isReference' => true, |
| | | 'taxonomy' => 'target', |
| | | 'label' => 'Target Audience', |
| | | 'quickEdit' => true, |
| | | ] |
| | | ); |
| | | $fields->addField( |
| | | 'started', |
| | | [ |
| | | 'type' => 'date', |
| | | 'label' => 'Started', |
| | | 'quickEdit' => true, |
| | | ] |
| | | ); |
| | | $fields->addField( |
| | | 'ended', |
| | | [ |
| | | 'type' => 'date', |
| | | 'label' => 'Ended', |
| | | 'quickEdit' => true, |
| | | ] |
| | | ); |
| | | $fields->addField( |
| | | 'budget', |
| | | [ |
| | | 'type' => 'radio', |
| | | 'label' => 'Budget', |
| | | 'options' => [ |
| | | 'low' => '$', |
| | | 'medium-low'=> '$$', |
| | | 'medium' => '$$$', |
| | | 'medium-high'=> '$$$$', |
| | | 'high' => '$$$$$', |
| | | ] |
| | | ] |
| | | ); |
| | | $fields->addField( |
| | | 'timeline', |
| | | [ |
| | | 'type' => 'text', |
| | | 'label' => 'Timeline', |
| | | 'quickEdit' => true, |
| | | ] |
| | | ); |
| | | |
| | | $fields->addField('needs', [ |
| | | 'type' => 'repeater', |
| | | 'label' => 'Needs', |
| | | 'fields' => [ |
| | | 'need' => [ |
| | | 'type' => 'text', |
| | | 'label' => 'Need', |
| | | 'required' => true |
| | | ], |
| | | 'meta' => [ |
| | | 'title' => '{{term_name}} | Project by JakeVan', |
| | | 'description' => '{{term_description}}', |
| | | 'image' => [ |
| | | 'type' => 'upload', |
| | | 'multiple' => true, |
| | | 'label' => 'Example Image' |
| | | ], |
| | | 'archive' => [ |
| | | 'type' => 'CollectionPage', |
| | | 'name' => '{{term_name}}', |
| | | 'description' => '{{term_description}}', |
| | | ], |
| | | ], |
| | | 'fields' => [ |
| | | 'term_name' => [ |
| | | 'label' => 'Name', |
| | | 'type' => 'text', |
| | | 'quickEdit' => true, |
| | | ], |
| | | 'city' => [ |
| | | 'type' => 'taxonomy', |
| | | 'taxonomy_type' => 'reference', |
| | | 'taxonomy' => 'city', |
| | | 'autocomplete' => true, |
| | | 'quickEdit' => true, |
| | | 'label' => 'City', |
| | | ], |
| | | 'target' => [ |
| | | 'type' => 'taxonomy', |
| | | 'taxonomy_type' => 'reference', |
| | | 'taxonomy' => 'target', |
| | | 'autocomplete' => true, |
| | | 'quickEdit' => true, |
| | | 'label' => 'Target Audience', |
| | | ], |
| | | 'started' => [ |
| | | 'type' => 'date', |
| | | 'label' => 'Started', |
| | | 'quickEdit' => true, |
| | | ], |
| | | 'ended' => [ |
| | | 'type' => 'date', |
| | | 'label' => 'Ended', |
| | | 'quickEdit' => true, |
| | | ], |
| | | 'budget' => [ |
| | | 'type' => 'radio', |
| | | 'label' => 'Budget', |
| | | 'options' => [ |
| | | 'low' => '$', |
| | | 'medium-low'=> '$$', |
| | | 'medium' => '$$$', |
| | | 'medium-high'=> '$$$$', |
| | | 'high' => '$$$$$', |
| | | ] |
| | | ], |
| | | 'timeline' => [ |
| | | 'type' => 'text', |
| | | 'label' => 'Timeline', |
| | | 'quickEdit' => true, |
| | | ], |
| | | 'url' => [ |
| | | 'type' => 'url', |
| | | 'label' => 'Project URL', |
| | | 'quickEdit' => true, |
| | | ], |
| | | 'description' => [ |
| | | 'fulfilled' => [ |
| | | 'type' => 'textarea', |
| | | 'quill' => true, |
| | | 'quickEdit' => true, |
| | | 'label' => 'Project Description', |
| | | ], |
| | | 'needs' => [ |
| | | 'type' => 'repeater', |
| | | 'label' => 'Needs', |
| | | 'fields'=> [ |
| | | 'need' => [ |
| | | 'type' => 'text', |
| | | 'label' => 'Need', |
| | | 'required' => true |
| | | ], |
| | | 'fulfilled' => [ |
| | | 'type' => 'textarea', |
| | | 'quill' => true, |
| | | 'label' => 'How I fulfilled it' |
| | | ] |
| | | ] |
| | | ], |
| | | 'wants' => [ |
| | | 'type' => 'repeater', |
| | | 'label' => 'Wants', |
| | | 'fields'=> [ |
| | | 'need' => [ |
| | | 'type' => 'text', |
| | | 'label' => 'Want', |
| | | 'required' => true |
| | | ], |
| | | 'fulfilled' => [ |
| | | 'type' => 'textarea', |
| | | 'quill' => true, |
| | | 'label' => 'How I fulfilled it' |
| | | ] |
| | | ] |
| | | ], |
| | | |
| | | 'common' => [ 'wiki' ] |
| | | 'label' => 'How I fulfilled it' |
| | | ] |
| | | ] |
| | | ]); |
| | | $fields->addField('wants', [ |
| | | 'type' => 'repeater', |
| | | 'label' => 'Wants', |
| | | 'fields' => [ |
| | | 'need' => [ |
| | | 'type' => 'text', |
| | | 'label' => 'Need', |
| | | 'required' => true |
| | | ], |
| | | 'image' => [ |
| | | 'type' => 'upload', |
| | | 'multiple' => true, |
| | | 'label' => 'Example Image' |
| | | ], |
| | | 'fulfilled' => [ |
| | | 'type' => 'textarea', |
| | | 'quill' => true, |
| | | 'label' => 'How I fulfilled it' |
| | | ] |
| | | ] |
| | | ]); |
| | | |
| | | $fields->addField( |
| | | 'forType', |
| | | [ |
| | | 'type' => 'repeater', |
| | | 'label' => 'Person, Organization, or LocalBusiness this is for', |
| | | 'fields' => [ |
| | | 'type' => [ |
| | | 'type' => 'select', |
| | | 'label' => 'Type', |
| | | 'options' => [ |
| | | 'JVBase\managers\SEO\render\Thing\Person' => 'Person', |
| | | 'JVBase\managers\SEO\render\Thing\Organization\LocalBusiness\LocalBusiness' => 'Local Business', |
| | | 'JVBase\managers\SEO\render\Thing\Organization\Organization' => 'Organization' |
| | | ] |
| | | ], |
| | | 'name' => [ |
| | | 'type' => 'text', |
| | | 'label' => 'Name', |
| | | ], |
| | | 'url' => [ |
| | | 'type' => 'url', |
| | | 'label' => 'Website', |
| | | ], |
| | | 'location' => [ |
| | | 'type' => 'text', |
| | | 'label' => 'Location', |
| | | ], |
| | | ] |
| | | ] |
| | | ); |
| | | $fields->addCommon('review'); |
| | | $fields->addCommon('wiki'); |
| | | } |
| | | |
| | | //function ajv_project():array |
| | | //{ |
| | | // return [ |
| | | // 'singular' => 'Project', |
| | | // 'plural' => 'Projects', |
| | | // 'icon' => 'cards-three', |
| | | // 'show_feed' => true, |
| | | // 'show_directory' => true, |
| | | // 'approve_new' => false, |
| | | // 'rewrite' => [ |
| | | // 'slug' => 'projects', |
| | | // 'with_front' => false, |
| | | // 'hierarchical' => true, |
| | | // ], |
| | | // 'hierarchical' => true, |
| | | // 'for_content' => [ |
| | | // 'art', |
| | | // 'project', |
| | | // 'development', |
| | | // 'strategy', |
| | | // 'writing', |
| | | // ], |
| | | // 'seo' => [ |
| | | // 'schema' => [ |
| | | // 'type' => 'CreativeWork', |
| | | // 'name' => '{{name}}', |
| | | // 'description' => '{{description}}', |
| | | // 'dateCreated' => '{{started}}', |
| | | // 'keywords' => '{{target.name}}', |
| | | // ], |
| | | // 'meta' => [ |
| | | // 'title' => '{{name}} | Project by JakeVan', |
| | | // 'description' => '{{description}}', |
| | | // ], |
| | | // 'archive' => [ |
| | | // 'type' => 'CollectionPage', |
| | | // 'name' => '{{name}}', |
| | | // 'description' => '{{description}}', |
| | | // ], |
| | | // ], |
| | | // 'fields' => [ |
| | | // 'term_name' => [ |
| | | // 'label' => 'Name', |
| | | // 'type' => 'text', |
| | | // 'quickEdit' => true, |
| | | // ], |
| | | // 'city' => [ |
| | | // 'type' => 'taxonomy', |
| | | // 'isReference' => true, |
| | | // 'taxonomy' => 'city', |
| | | // 'autocomplete' => true, |
| | | // 'quickEdit' => true, |
| | | // 'label' => 'City', |
| | | // ], |
| | | // 'target' => [ |
| | | // 'type' => 'taxonomy', |
| | | // 'isReference' => true, |
| | | // 'taxonomy' => 'target', |
| | | // 'autocomplete' => true, |
| | | // 'quickEdit' => true, |
| | | // 'label' => 'Target Audience', |
| | | // ], |
| | | // 'started' => [ |
| | | // 'type' => 'date', |
| | | // 'label' => 'Started', |
| | | // 'quickEdit' => true, |
| | | // ], |
| | | // 'ended' => [ |
| | | // 'type' => 'date', |
| | | // 'label' => 'Ended', |
| | | // 'quickEdit' => true, |
| | | // ], |
| | | // 'budget' => [ |
| | | // 'type' => 'radio', |
| | | // 'label' => 'Budget', |
| | | // 'options' => [ |
| | | // 'low' => '$', |
| | | // 'medium-low'=> '$$', |
| | | // 'medium' => '$$$', |
| | | // 'medium-high'=> '$$$$', |
| | | // 'high' => '$$$$$', |
| | | // ] |
| | | // ], |
| | | // 'timeline' => [ |
| | | // 'type' => 'text', |
| | | // 'label' => 'Timeline', |
| | | // 'quickEdit' => true, |
| | | // ], |
| | | // 'url' => [ |
| | | // 'type' => 'url', |
| | | // 'label' => 'Project URL', |
| | | // 'quickEdit' => true, |
| | | // ], |
| | | // 'description' => [ |
| | | // 'type' => 'textarea', |
| | | // 'quill' => true, |
| | | // 'quickEdit' => true, |
| | | // 'label' => 'Project Description', |
| | | // ], |
| | | // 'needs' => [ |
| | | // 'type' => 'repeater', |
| | | // 'label' => 'Needs', |
| | | // 'fields'=> [ |
| | | // 'need' => [ |
| | | // 'type' => 'text', |
| | | // 'label' => 'Need', |
| | | // 'required' => true |
| | | // ], |
| | | // 'fulfilled' => [ |
| | | // 'type' => 'textarea', |
| | | // 'quill' => true, |
| | | // 'label' => 'How I fulfilled it' |
| | | // ] |
| | | // ] |
| | | // ], |
| | | // 'wants' => [ |
| | | // 'type' => 'repeater', |
| | | // 'label' => 'Wants', |
| | | // 'fields'=> [ |
| | | // 'need' => [ |
| | | // 'type' => 'text', |
| | | // 'label' => 'Want', |
| | | // 'required' => true |
| | | // ], |
| | | // 'fulfilled' => [ |
| | | // 'type' => 'textarea', |
| | | // 'quill' => true, |
| | | // 'label' => 'How I fulfilled it' |
| | | // ] |
| | | // ] |
| | | // ], |
| | | // |
| | | // 'common' => [ 'wiki' ] |
| | | // ] |
| | | // ]; |
| | | //} |
| | | |
| | | |
| | | |
| | | function ajv_project_schema():array |
| | | { |
| | | return [ |
| | | // 'type' => 'JVBase\managers\SEO\render\Thing\CreativeWork\CreativeWork', |
| | | 'name' => 'Projects by JakeVan', |
| | | 'description' => 'Each project can have multiple aspects - from Design to Strategy.', |
| | | // 'primaryImageOfPage' => '{{thumbnail}}', |
| | | ]; |
| | | } |
| | | |
| | | function ajv_project_meta():array |
| | | { |
| | | return[ |
| | | 'name' => '{{name}} | Project', |
| | | ]; |
| | | } |
| | | |
| | | function ajv_project_archive(array $defaults):array |
| | | { |
| | | return array_merge($defaults, [ |
| | | 'name' => '{{name}} | Project', |
| | | 'description' => '{{description}}', |
| | | 'primaryImageOfPage' => '{{thumbnail}}', |
| | | 'about' => [ |
| | | 'type' => 'JVBase\managers\SEO\render\Thing\CreativeWork\CreativeWork', |
| | | 'name' => '{{name}}', |
| | | 'creator' => '{{CREATOR}}', |
| | | 'sourceOrganization'=> '{{forType}}', |
| | | 'abstract' => '{{summary}}' |
| | | ], |
| | | ]); |
| | | } |
| | | |
| | | function ajv_project_reference_schema(array $defaults):array |
| | | { |
| | | return $defaults; |
| | | } |
| | | |
| | | function ajv_render_project_cover(int $ID):string |
| | | { |
| | | return ''; |
| | | $background = ''; |
| | | $meta = Meta::forTerm($ID); |
| | | $thumbnail = $meta->get('thumbnail'); |
| | | if ($thumbnail !== '') { |
| | | $background = str_replace('<img', '<img style="object-position:center center"', jvbFormatImage((int)$thumbnail)); |
| | | } |
| | | return $background; |
| | | } |
| | | add_filter('jvbSummaryHeader', 'ajv_project_summary_header', 11, 2); |
| | | function ajv_project_summary_header(string $return, string $type):string |
| | | { |
| | | if ($type !== 'project') { |
| | | return $return; |
| | | } |
| | | $ID = get_queried_object_id(); |
| | | $meta = Meta::forTerm($ID); |
| | | $fields = $meta->getAll(); |
| | | $extra = 'Edmonton'; |
| | | if ($fields['city'] !== '') { |
| | | $cities = explode(',', $fields['city']); |
| | | $temp = []; |
| | | foreach ($cities as $city) { |
| | | $term = get_term($city, 'ajv_city'); |
| | | if ($term && !is_wp_error($term)) { |
| | | $temp[] = $term->name; |
| | | } |
| | | } |
| | | if (!empty($temp)) { |
| | | $extra = jvbCommaList($temp); |
| | | } |
| | | } |
| | | $extra .= ' Made Project'; |
| | | return '<small>'.$extra.'</small>'.$fields['name'].'.'; |
| | | } |
| | | |
| | | add_filter('jvbSummaryHeaderExtra', 'ajv_project_summary_extra', 11, 2); |
| | | function ajv_project_summary_extra(string $return, string $type):string |
| | | { |
| | | |
| | | if ($type !== 'project') { |
| | | return $return; |
| | | } |
| | | |
| | | |
| | | return '<p>Or see <a href="'.JVB()->directories()->getDirectoryList()[$type]['url'].'">all projects</a>.</p>'; |
| | | } |
| | | |
| | | add_filter('jvbBeforeSummary', 'ajv_project_before_summary', 10, 2); |
| | | function ajv_project_before_summary(string $return, string $type):string |
| | | { |
| | | if ($type !== 'project') { |
| | | return $return; |
| | | } |
| | | $meta = Meta::forTerm(get_queried_object_id()); |
| | | $fields = $meta->getAll(); |
| | | $rows = []; |
| | | if ($fields['city'] !== '') { |
| | | $rows[] = jvbMetaTermList($fields['city'], 'city'); |
| | | } |
| | | if ($fields['target'] !== '') { |
| | | $rows[] = jvbMetaTermList($fields['target'], 'target'); |
| | | } |
| | | |
| | | if ($fields['started'] !== '') { |
| | | $rows[] = '<span>'.jvbIcon('calendar-blank').'Started:</span><time datetime="'.$fields['started'].'">'.date('F j, Y', strtotime($fields['started'])).'</time>'; |
| | | } |
| | | if ($fields['ended'] !== '') { |
| | | $rows[] = '<span>Ended:</span><time datetime="'.$fields['ended'].'">'.date('F j, Y', strtotime($fields['ended'])).'</time>'; |
| | | } |
| | | |
| | | if ($fields['budget'] !== '') { |
| | | $budget = ''; |
| | | |
| | | for ($i = 0; $i <= (int) $fields['budget']; $i++) { |
| | | $budget .= '$'; |
| | | } |
| | | $title = match((int)$fields['budget']) { |
| | | 0 => 'Low', |
| | | 1 => 'Medium Low', |
| | | 2 => 'Medium', |
| | | 3 => 'Medium High', |
| | | 4 => 'High' |
| | | }; |
| | | $rows[] = '<span>'.jvbIcon('currency-dollar-simple').'Budget:</span><span title="'.$title.'">'.$budget.'</span>'; |
| | | } |
| | | |
| | | if ($fields['timeline'] !== '') { |
| | | $rows[] = '<span>'.jvbIcon('hourglass-medium').'Timeline:</span>'.$fields['timeline']; |
| | | } |
| | | $summary = ''; |
| | | if (!empty($rows)) { |
| | | $summary = '<section id="summary"><h2>At a Glance</h2><ul class="summary">'; |
| | | $summary .= implode('', array_map(function ($row) { |
| | | return '<li>'.$row.'</li>'; |
| | | }, $rows)); |
| | | $summary .= '</ul></section>'; |
| | | } |
| | | |
| | | return $summary; |
| | | } |
| | | |
| | | add_filter('jvbSummaryImage', 'ajv_project_summary_image', 10, 2); |
| | | function ajv_project_summary_image(string $return, string $type):string |
| | | { |
| | | if ($type !== 'project') { |
| | | return $return; |
| | | } |
| | | $meta = Meta::forTerm(get_queried_object_id()); |
| | | $thumbnail = $meta->get('thumbnail'); |
| | | |
| | | return $thumbnail === '' ? '' : jvbFormatImage((int)$thumbnail); |
| | | } |
| | | |
| | | add_filter('jvbSummaryDetails', 'ajv_project_summary_details', 10, 2); |
| | | function ajv_project_summary_details(array $return, string $type):array |
| | | { |
| | | if ($type !== 'project') { |
| | | return $return; |
| | | } |
| | | |
| | | $return = []; |
| | | $meta = Meta::forTerm(get_queried_object_id()); |
| | | $fields = $meta->getAll(); |
| | | |
| | | if ($fields['summary'] !== '') { |
| | | $return['about-this-project'] = $fields['summary']; |
| | | } |
| | | if (!empty($fields['needs'])) { |
| | | $return['needs'] = ajvb_format_needs($fields['needs']); |
| | | } |
| | | if (!empty($fields['wants'])) { |
| | | $return['wants'] = ajvb_format_wants($fields['wants']); |
| | | } |
| | | |
| | | if (!empty($fields['review'])) { |
| | | $return['review'] = $fields['review']; |
| | | } |
| | | |
| | | return $return; |
| | | } |
| | | |
| | | |
| | | add_filter('jvbSummaryIsOpen', 'ajv_open_project_summary', 10, 2); |
| | | function ajv_open_project_summary(bool $isOpen, string $type):bool |
| | | { |
| | | if ($type !== 'project') { |
| | | return $isOpen; |
| | | } |
| | | return true; |
| | | } |
| | | |
| | | add_filter('jvbSummaryDetailsTitle', 'ajv_project_summary_label', 10, 2); |
| | | function ajv_project_summary_label(string $title, string $type):string |
| | | { |
| | | return 'More about this project'; |
| | | } |
| | | |
| | | add_filter('render_block', 'ajv_project_content', 9999, 2); |
| | | function ajv_project_content(string $OG, array $block):string { |
| | | |
| | | |
| | | if ($block['blockName'] !== 'jvb/summary') { |
| | | return $OG; |
| | | } |
| | | if (!is_tax(BASE.'project')) { |
| | | return $OG; |
| | | } |
| | | |
| | | $menu = Cache::for('project_menu'); |
| | | $ID = get_queried_object_id(); |
| | | $menu->connect('term'); |
| | | $registrar = Registrar::getInstance('project'); |
| | | $menu->flush(); |
| | | $nav = $menu->remember($ID, function() use ($registrar, $ID) { |
| | | $types = array_map(function ($type) { |
| | | return jvbCheckBase($type); |
| | | }, $registrar->registrar->for); |
| | | $menu = []; |
| | | foreach ($types as $type) { |
| | | $query = new WP_Query([ |
| | | 'post_type' => $type, |
| | | 'post_status' => 'publish', |
| | | 'tax_query' => [[ |
| | | 'taxonomy' => BASE.'project', |
| | | 'terms' => $ID |
| | | ]], |
| | | 'posts_per_page' => 1, |
| | | 'fields' => 'ids', |
| | | ]); |
| | | if ($query->have_posts()) { |
| | | $typeRegistrar = Registrar::getInstance($type); |
| | | $menu[jvbNoBase($type)] = $typeRegistrar; |
| | | } |
| | | wp_reset_postdata(); |
| | | } |
| | | if (!empty($menu)) { |
| | | global $wp; |
| | | $base = home_url( $wp->request ); |
| | | $current = home_url(add_query_arg($_GET, $wp->request)); |
| | | $class = $current === $base ? ' class="current"' : ''; |
| | | $nav = sprintf( |
| | | '<nav class="filter-projects">Filter by: <ul><li><a href="%s"%s>All</a></li>', |
| | | $base, |
| | | $class |
| | | ); |
| | | foreach ($menu as $slug => $registrar) { |
| | | $url = add_query_arg('content', $slug, $base); |
| | | $class = $current === $url ? ' class="current"' : ''; |
| | | $nav .= sprintf( |
| | | '<li><a href="%s"%s>%s%s</a></li>', |
| | | $url, |
| | | $class, |
| | | jvbIcon($registrar->getIcon()), |
| | | $registrar->getPlural(), |
| | | ); |
| | | } |
| | | $nav .= '</ul></nav>'; |
| | | |
| | | return $nav; |
| | | } |
| | | return ''; |
| | | }); |
| | | global $_GET; |
| | | $content = array_key_exists('content', $_GET) ? $_GET['content'] : 'all'; |
| | | $cache = Cache::for($content)->connect('term'); |
| | | $cache->flush(); |
| | | $page = $_GET['jpage']??1; |
| | | $key = $cache->generateKey([ |
| | | 'id' => $ID, |
| | | 'page' => $page |
| | | ]); |
| | | |
| | | return $OG.$cache->remember( |
| | | $key, |
| | | function() use ($content, $ID, $page, $nav, $registrar) { |
| | | $post_types = ($content === 'all') ? array_map(function ($type) { return jvbCheckBase($type); },$registrar->registrar->for) : jvbCheckBase($content); |
| | | $args = [ |
| | | 'post_type' => $post_types, |
| | | 'posts_per_page' => 20, |
| | | 'paged' => $page, |
| | | 'fields' => 'ids', |
| | | 'tax_query' => [[ |
| | | 'taxonomy' => BASE.'project', |
| | | 'field' => 'term_id', |
| | | 'terms' => $ID |
| | | ]] |
| | | ]; |
| | | |
| | | $posts = new WP_Query($args); |
| | | $section = '<section id="project-parts" class="project-parts"> |
| | | <h2>Project Parts</h2>'.$nav; |
| | | |
| | | if (!empty($posts->posts)) { |
| | | $section .= '<ul class="project-list item-grid list-view">'; |
| | | foreach ($posts->posts as $postID) { |
| | | $meta = Meta::forPost($postID); |
| | | $fields = $meta->getAll(); |
| | | $link = get_the_permalink($postID); |
| | | $thumb = ''; |
| | | if (!empty($fields['post_thumbnail'])) { |
| | | $thumb = sprintf( |
| | | '<a href="%s">%s</a>', |
| | | $link, |
| | | jvbFormatImage($fields['post_thumbnail']) |
| | | ); |
| | | } |
| | | $published = ''; |
| | | if (!empty($fields['post_date'])) { |
| | | $published = sprintf('<span>%s<time datetime="%s">%s</time></span>', |
| | | jvbIcon('calendar-blank'), |
| | | $fields['post_date'], |
| | | date('F j, Y', strtotime($fields['post_date'])) |
| | | ); |
| | | } |
| | | $section .= sprintf( |
| | | '<li class="item">%s<div class="col start w-full"> |
| | | <h3><a href="%s">%s</a></h3> |
| | | %s |
| | | %s |
| | | </div></li>', |
| | | $thumb, |
| | | $link, |
| | | $fields['post_title'], |
| | | $published, |
| | | $fields['post_excerpt'] |
| | | ); |
| | | } |
| | | |
| | | $section .= '</ul>'; |
| | | |
| | | $total = $posts->max_num_pages; |
| | | if ($total > 1) { |
| | | $big = 999999999; // need an unlikely integer |
| | | $format = ($content === 'all') ? '' : '&content='.$content; |
| | | echo paginate_links([ |
| | | 'base' => str_replace( $big, '%#%', esc_url( get_pagenum_link( $big ) ) ), |
| | | 'format' => '?jpage=%#%'.$format, |
| | | 'current' => $page, |
| | | 'total' => $total |
| | | ]); |
| | | } |
| | | } else { |
| | | $section .= '<p>Nothing here yet.</p>'; |
| | | } |
| | | |
| | | $section .= '</section>'; |
| | | wp_reset_postdata(); |
| | | return $section; |
| | | } |
| | | ); |
| | | } |
| | | |
| | | add_filter('jvbSummaryOnThisPage', 'ajv_project_on_this_page', 10, 2); |
| | | function ajv_project_on_this_page(array $ids, string $type):array { |
| | | if ($type !== 'project'){ |
| | | return $ids; |
| | | } |
| | | $ids[] = 'project-parts'; |
| | | return $ids; |
| | | } |
| | |
| | | <?php |
| | | // /taxonomies/style.php |
| | | function ajv_style():array |
| | | use JVBase\registrar\Registrar; |
| | | |
| | | if (!defined('ABSPATH')) { |
| | | exit; |
| | | } |
| | | |
| | | |
| | | add_action('plugins_loaded', 'ajv_style',1); |
| | | //Add fields later so we can verify taxonomies/post types exist |
| | | add_action('plugins_loaded', 'ajv_style_fields', 2); |
| | | |
| | | add_filter('ajv_StyleSchemaDefault', 'ajv_style_schema'); |
| | | add_filter('ajv_StyleMetaDefault', 'ajv_style_meta'); |
| | | add_filter('ajv_StyleArchiveDefault', 'ajv_style_archive'); |
| | | |
| | | function ajv_style(){ |
| | | if (!class_exists('JVBase\registrar\Registrar')) { |
| | | return; |
| | | } |
| | | $style = Registrar::forTerm('style', 'Style', 'Styles') |
| | | ->setIcon('folder') |
| | | ->make([ |
| | | 'rewrite' => [ |
| | | 'slug' => 'in/style', |
| | | 'with_front' => false, |
| | | 'hierarchical' => true, |
| | | ], |
| | | 'for' => [ |
| | | 'art', |
| | | 'design', |
| | | 'development', |
| | | 'strategy', |
| | | 'writing' |
| | | ], |
| | | 'hierarchical' => true, |
| | | ]) |
| | | ->setAll([ |
| | | 'show_feed', |
| | | 'show_directory' |
| | | ]); |
| | | } |
| | | |
| | | function ajv_style_fields():void |
| | | { |
| | | if (!class_exists('JVBase\registrar\Registrar')) { |
| | | return; |
| | | } |
| | | $style = Registrar::getInstance('style'); |
| | | |
| | | //$directory = $style->getConfig('directory'); |
| | | //$breadcrumbs = $style->config('breadcrumbs'); |
| | | //$breadcrumbs->setCrumb('project'); |
| | | |
| | | $fields = $style->fields(); |
| | | $fields->addCommon('wiki'); |
| | | $fields->addCommon('alternate_name'); |
| | | $fields->addCommon('keywords'); |
| | | } |
| | | |
| | | //function ajv_style():array |
| | | //{ |
| | | // return [ |
| | | // 'directory' => 'Styles', |
| | | // 'singular' => 'Style', |
| | | // 'plural' => 'Styles', |
| | | // 'show_directory' => true, |
| | | // 'approve_new' => false, |
| | | // 'icon' => 'folder', |
| | | // 'favouritable' => true, |
| | | // 'show_feed' => true, |
| | | // 'rewrite' => [ |
| | | // 'slug' => 'style', |
| | | // 'with_front' => false, |
| | | // 'hierarchical' => true, |
| | | // ], |
| | | // 'hierarchical' => true, |
| | | // 'for_content' => [ |
| | | // 'art', |
| | | // 'style', |
| | | // 'development', |
| | | // 'strategy', |
| | | // 'writing', |
| | | // ], |
| | | // 'seo' => [ |
| | | // 'schema' => [ |
| | | // 'type' => 'DefinedTerm', |
| | | // 'name' => '{{name}}', |
| | | // 'description' => '{{description}}', |
| | | // 'alternateName' => '{{alternate_name}}', |
| | | // ], |
| | | // 'meta' => [ |
| | | // 'title' => '{{name}} Style | JakeVan', |
| | | // 'description' => '{{description}}', |
| | | // ], |
| | | // 'archive' => [ |
| | | // 'type' => 'CollectionPage', |
| | | // 'name' => '{{name}} Projects', |
| | | // ], |
| | | // ], |
| | | // 'fields' => [ |
| | | // 'term_name' => [ |
| | | // 'label' => 'Name', |
| | | // 'type' => 'text', |
| | | // 'quickEdit' => true, |
| | | // ], |
| | | // 'common' => [ 'wiki', 'alternate_name', 'keywords' ] |
| | | // ] |
| | | // ]; |
| | | //} |
| | | |
| | | |
| | | function ajv_style_schema():array |
| | | { |
| | | return [ |
| | | 'directory' => 'Styles', |
| | | 'singular' => 'Style', |
| | | 'plural' => 'Styles', |
| | | 'show_directory' => true, |
| | | 'approve_new' => false, |
| | | 'icon' => 'folder', |
| | | 'favouritable' => true, |
| | | 'show_feed' => true, |
| | | 'rewrite' => [ |
| | | 'slug' => 'style', |
| | | 'with_front' => false, |
| | | 'hierarchical' => true, |
| | | ], |
| | | 'hierarchical' => true, |
| | | 'for_content' => [ |
| | | 'art', |
| | | 'design', |
| | | 'development', |
| | | 'strategy', |
| | | 'writing', |
| | | ], |
| | | 'seo' => [ |
| | | 'schema' => [ |
| | | 'type' => 'DefinedTerm', |
| | | 'name' => '{{term_name}}', |
| | | 'description' => '{{term_description}}', |
| | | 'alternateName' => '{{alternate_name}}', |
| | | ], |
| | | 'meta' => [ |
| | | 'title' => '{{term_name}} Style | JakeVan', |
| | | 'description' => '{{term_description}}', |
| | | ], |
| | | 'archive' => [ |
| | | 'type' => 'CollectionPage', |
| | | 'name' => '{{term_name}} Projects', |
| | | ], |
| | | ], |
| | | 'fields' => [ |
| | | 'term_name' => [ |
| | | 'label' => 'Name', |
| | | 'type' => 'text', |
| | | 'quickEdit' => true, |
| | | ], |
| | | 'common' => [ 'wiki', 'alternate_name', 'keywords' ] |
| | | ] |
| | | // 'type' => 'JVBase\managers\SEO\render\Thing\CreativeWork\CreativeWork', |
| | | 'name' => '{{name}} | Style', |
| | | 'alternateName' => '{{alternateName}}', |
| | | 'description' => '{{description}}', |
| | | ]; |
| | | } |
| | | |
| | | function ajv_style_meta():array |
| | | { |
| | | return[ |
| | | 'name' => '{{name}} | Style', |
| | | ]; |
| | | } |
| | | |
| | | function ajv_style_archive(array $defaults):array |
| | | { |
| | | return array_merge($defaults, [ |
| | | 'name' => '{{name}}', |
| | | ]); |
| | | } |
| | | |
| | | function ajv_style_reference_schema(array $defaults):array |
| | | { |
| | | return $defaults; |
| | | } |
| | |
| | | <?php |
| | | // /taxonomies/target.php |
| | | function ajv_target():array |
| | | use JVBase\registrar\Registrar; |
| | | |
| | | if (!defined('ABSPATH')) { |
| | | exit; |
| | | } |
| | | |
| | | |
| | | add_action('plugins_loaded', 'ajv_target',1); |
| | | //Add fields later so we can verify taxonomies/post types exist |
| | | add_action('plugins_loaded', 'ajv_target_fields', 2); |
| | | |
| | | add_filter('ajv_TargetSchemaDefault', 'ajv_target_schema'); |
| | | add_filter('ajv_TargetMetaDefault', 'ajv_target_meta'); |
| | | add_filter('ajv_TargetArchiveDefault', 'ajv_target_archive'); |
| | | |
| | | function ajv_target(){ |
| | | if (!class_exists('JVBase\registrar\Registrar')) { |
| | | return; |
| | | } |
| | | $target = Registrar::forTerm('target', 'Target', 'Targets') |
| | | ->setIcon('crosshair-simple') |
| | | ->make([ |
| | | 'rewrite' => [ |
| | | 'slug' => 'in/target', |
| | | 'with_front' => false, |
| | | 'hierarchical' => true, |
| | | ], |
| | | 'for' => [ |
| | | 'art', |
| | | 'design', |
| | | 'development', |
| | | 'strategy', |
| | | 'writing' |
| | | ], |
| | | 'hierarchical' => true, |
| | | ]) |
| | | ->setAll([ |
| | | 'show_feed', |
| | | 'show_directory' |
| | | ]); |
| | | } |
| | | function ajv_target_fields():void |
| | | { |
| | | if (!class_exists('JVBase\registrar\Registrar')) { |
| | | return; |
| | | } |
| | | $target = Registrar::getInstance('target'); |
| | | |
| | | //$directory = $target->getConfig('directory'); |
| | | //$breadcrumbs = $target->config('breadcrumbs'); |
| | | //$breadcrumbs->setCrumb('project'); |
| | | |
| | | $fields = $target->fields(); |
| | | $fields->addCommon('wiki'); |
| | | } |
| | | |
| | | //function ajv_target():array |
| | | //{ |
| | | // return [ |
| | | // 'singular' => 'Target Audience', |
| | | // 'plural' => 'Target Audiences', |
| | | // 'icon' => 'crosshair-simple', |
| | | // 'show_feed' => true, |
| | | // 'show_directory' => true, |
| | | // 'rewrite' => [ |
| | | // 'slug' => 'target', |
| | | // 'with_front' => false, |
| | | // 'hierarchical' => true, |
| | | // ], |
| | | // 'hierarchical' => true, |
| | | // 'for_content' => [ |
| | | // 'art', |
| | | // 'target', |
| | | // 'development', |
| | | // 'strategy', |
| | | // 'writing', |
| | | // ], |
| | | // 'seo' => [ |
| | | // 'meta' => [ |
| | | // 'title' => '{{name}} Projects | JakeVan', |
| | | // ], |
| | | // 'archive' => [ |
| | | // 'type' => 'CollectionPage', |
| | | // 'name' => '{{name}} Projects', |
| | | // ], |
| | | // ], |
| | | // 'fields' => [ |
| | | // 'term_name' => [ |
| | | // 'label' => 'Name', |
| | | // 'type' => 'text', |
| | | // 'quickEdit' => true, |
| | | // ], |
| | | // 'common' => [ 'wiki' ] |
| | | // ] |
| | | // ]; |
| | | //} |
| | | |
| | | |
| | | function ajv_target_schema():array |
| | | { |
| | | return [ |
| | | 'singular' => 'Target Audience', |
| | | 'plural' => 'Target Audiences', |
| | | 'icon' => 'crosshair-simple', |
| | | 'show_feed' => true, |
| | | 'show_directory' => true, |
| | | 'rewrite' => [ |
| | | 'slug' => 'target', |
| | | 'with_front' => false, |
| | | 'hierarchical' => true, |
| | | ], |
| | | 'hierarchical' => true, |
| | | 'for_content' => [ |
| | | 'art', |
| | | 'design', |
| | | 'development', |
| | | 'strategy', |
| | | 'writing', |
| | | ], |
| | | 'seo' => [ |
| | | 'meta' => [ |
| | | 'title' => '{{term_name}} Projects | JakeVan', |
| | | ], |
| | | 'archive' => [ |
| | | 'type' => 'CollectionPage', |
| | | 'name' => '{{term_name}} Projects', |
| | | ], |
| | | ], |
| | | 'fields' => [ |
| | | 'term_name' => [ |
| | | 'label' => 'Name', |
| | | 'type' => 'text', |
| | | 'quickEdit' => true, |
| | | ], |
| | | 'common' => [ 'wiki' ] |
| | | ] |
| | | // 'type' => 'JVBase\managers\SEO\render\Thing\CreativeWork\CreativeWork', |
| | | 'name' => 'Target Audience: {{name}}', |
| | | 'description' => '{{description}}', |
| | | ]; |
| | | } |
| | | |
| | | function ajv_target_meta():array |
| | | { |
| | | return[ |
| | | 'name' => 'Target Audience: {{name}}', |
| | | ]; |
| | | } |
| | | |
| | | function ajv_target_archive(array $defaults):array |
| | | { |
| | | return array_merge($defaults, [ |
| | | 'name' => 'Target Audience: {{name}}', |
| | | ]); |
| | | } |
| | | |
| | | function ajv_target_reference_schema(array $defaults):array |
| | | { |
| | | return $defaults; |
| | | } |
| | |
| | | <?php |
| | | // /taxonomies/theme.php |
| | | function ajv_theme():array |
| | | use JVBase\registrar\Registrar; |
| | | |
| | | if (!defined('ABSPATH')) { |
| | | exit; |
| | | } |
| | | |
| | | |
| | | add_action('plugins_loaded', 'ajv_theme',1); |
| | | //Add fields later so we can verify taxonomies/post types exist |
| | | add_action('plugins_loaded', 'ajv_theme_fields', 2); |
| | | |
| | | add_filter('ajv_ThemeSchemaDefault', 'ajv_theme_schema'); |
| | | add_filter('ajv_ThemeMetaDefault', 'ajv_theme_meta'); |
| | | add_filter('ajv_ThemeArchiveDefault', 'ajv_theme_archive'); |
| | | |
| | | function ajv_theme(){ |
| | | if (!class_exists('JVBase\registrar\Registrar')) { |
| | | return; |
| | | } |
| | | $theme = Registrar::forTerm('theme', 'Theme', 'Themes') |
| | | ->setIcon('hash') |
| | | ->make([ |
| | | 'rewrite' => [ |
| | | 'slug' => 'in/theme', |
| | | 'with_front' => false, |
| | | 'hierarchical' => true, |
| | | ], |
| | | 'for' => [ |
| | | 'art', |
| | | 'design', |
| | | 'development', |
| | | 'strategy', |
| | | 'writing' |
| | | ], |
| | | 'hierarchical' => true, |
| | | ]) |
| | | ->setAll([ |
| | | 'show_feed', |
| | | 'show_directory' |
| | | ]); |
| | | } |
| | | |
| | | function ajv_theme_fields():void |
| | | { |
| | | if (!class_exists('JVBase\registrar\Registrar')) { |
| | | return; |
| | | } |
| | | $theme = Registrar::getInstance('theme'); |
| | | //$directory = $theme->getConfig('directory'); |
| | | //$breadcrumbs = $theme->config('breadcrumbs'); |
| | | //$breadcrumbs->setCrumb('project'); |
| | | |
| | | $fields = $theme->fields(); |
| | | $fields->addField( |
| | | 'similar', |
| | | [ |
| | | 'type' => 'selector', |
| | | 'subtype' => 'taxonomy', |
| | | 'isReference' => true, |
| | | 'taxonomy' => 'theme', |
| | | 'label' => 'Similar Themes', |
| | | ] |
| | | ); |
| | | $fields->addField( |
| | | 'description', |
| | | [ |
| | | 'type' => 'textarea', |
| | | 'quill' => true, |
| | | 'label' => 'Description', |
| | | ] |
| | | ); |
| | | $fields->addCommon('wiki'); |
| | | $fields->addCommon('alternate_name'); |
| | | $fields->addCommon('keywords'); |
| | | } |
| | | //function ajv_theme():array |
| | | //{ |
| | | // return [ |
| | | // 'directory' => 'Themes', |
| | | // 'show_directory' => true, |
| | | // 'isGrouped' => true, |
| | | // 'description' => [ |
| | | // 'What makes up the tattoo, asides from style.', |
| | | // 'From bees to ideas to carrots.' |
| | | // ], |
| | | // 'singular' => 'Theme', |
| | | // 'plural' => 'Themes', |
| | | // 'icon' => 'hash', |
| | | // 'favouritable' => true, |
| | | // 'show_feed' => true, |
| | | // 'approve_new' => false, |
| | | // 'rewrite' => [ |
| | | // 'slug' => 'themes', |
| | | // 'with_front' => false, |
| | | // 'hierarchical' => true, |
| | | // ], |
| | | // 'hierarchical' => true, |
| | | // 'for_content' => [ |
| | | // 'art', |
| | | // 'theme', |
| | | // 'development', |
| | | // 'strategy', |
| | | // 'writing', |
| | | // ], |
| | | // 'seo' => [ |
| | | // 'schema' => [ |
| | | // 'type' => 'DefinedTerm', |
| | | // 'name' => '{{name}}', |
| | | // 'description' => '{{description}}', |
| | | // 'alternateName' => '{{alternate_name}}', |
| | | // ], |
| | | // 'meta' => [ |
| | | // 'title' => '{{name}} | Themes', |
| | | // 'description' => '{{description}}', |
| | | // ], |
| | | // 'archive' => [ |
| | | // 'type' => 'CollectionPage', |
| | | // 'name' => '{{name}} Projects', |
| | | // ], |
| | | // ], |
| | | // 'fields' => [ |
| | | // 'term_name' => [ |
| | | // 'label' => 'Name', |
| | | // 'type' => 'text', |
| | | // 'quickEdit' => true, |
| | | // ], |
| | | // 'similar' => [ |
| | | // 'type' => 'taxonomy', |
| | | // 'isReference' => true, |
| | | // 'taxonomy' => 'theme', |
| | | // 'label' => 'Similar Themes', |
| | | // ], |
| | | // 'description' => [ |
| | | // 'type' => 'textarea', |
| | | // 'quill' => true, |
| | | // 'label' => 'Description', |
| | | // ], |
| | | // 'archive_title' => [ |
| | | // 'type' => 'text', |
| | | // 'label' => 'Archive Title', |
| | | // 'description' => 'If the generated title does not jive, set it here', |
| | | // ], |
| | | // 'common' => [ 'wiki', 'alternate_name', 'keywords' ] |
| | | // ] |
| | | // ]; |
| | | //} |
| | | |
| | | |
| | | |
| | | function ajv_theme_schema():array |
| | | { |
| | | return [ |
| | | 'directory' => 'Themes', |
| | | 'show_directory' => true, |
| | | 'isGrouped' => true, |
| | | 'description' => [ |
| | | 'What makes up the tattoo, asides from style.', |
| | | 'From bees to ideas to carrots.' |
| | | ], |
| | | 'singular' => 'Theme', |
| | | 'plural' => 'Themes', |
| | | 'icon' => 'hash', |
| | | 'favouritable' => true, |
| | | 'show_feed' => true, |
| | | 'approve_new' => false, |
| | | 'rewrite' => [ |
| | | 'slug' => 'themes', |
| | | 'with_front' => false, |
| | | 'hierarchical' => true, |
| | | ], |
| | | 'hierarchical' => true, |
| | | 'for_content' => [ |
| | | 'art', |
| | | 'design', |
| | | 'development', |
| | | 'strategy', |
| | | 'writing', |
| | | ], |
| | | 'seo' => [ |
| | | 'schema' => [ |
| | | 'type' => 'DefinedTerm', |
| | | 'name' => '{{term_name}}', |
| | | 'description' => '{{description}}', |
| | | 'alternateName' => '{{alternate_name}}', |
| | | ], |
| | | 'meta' => [ |
| | | 'title' => '{{term_name}} | Themes', |
| | | 'description' => '{{description}}', |
| | | ], |
| | | 'archive' => [ |
| | | 'type' => 'CollectionPage', |
| | | 'name' => '{{term_name}} Projects', |
| | | ], |
| | | ], |
| | | 'fields' => [ |
| | | 'term_name' => [ |
| | | 'label' => 'Name', |
| | | 'type' => 'text', |
| | | 'quickEdit' => true, |
| | | ], |
| | | 'similar' => [ |
| | | 'type' => 'taxonomy', |
| | | 'taxonomy_type' => 'reference', |
| | | 'taxonomy' => 'theme', |
| | | 'label' => 'Similar Themes', |
| | | ], |
| | | 'description' => [ |
| | | 'type' => 'textarea', |
| | | 'quill' => true, |
| | | 'label' => 'Description', |
| | | ], |
| | | 'archive_title' => [ |
| | | 'type' => 'text', |
| | | 'label' => 'Archive Title', |
| | | 'description' => 'If the generated title does not jive, set it here', |
| | | ], |
| | | 'common' => [ 'wiki', 'alternate_name', 'keywords' ] |
| | | ] |
| | | // 'type' => 'JVBase\managers\SEO\render\Thing\CreativeWork\CreativeWork', |
| | | 'name' => '{{name}} | Themes', |
| | | 'alternateName' => '{{alternate_name}}', |
| | | 'description' => '{{description}}', |
| | | ]; |
| | | } |
| | | |
| | | function ajv_theme_meta():array |
| | | { |
| | | return[ |
| | | 'name' => '{{name}} | Themes', |
| | | ]; |
| | | } |
| | | |
| | | function ajv_theme_archive(array $defaults):array |
| | | { |
| | | return array_merge($defaults, [ |
| | | 'name' => '{{name}} | Themes', |
| | | ]); |
| | | } |
| | | |
| | | function ajv_theme_reference_schema(array $defaults):array |
| | | { |
| | | return $defaults; |
| | | } |
| | |
| | | require(AJV_DIR . '/content/support.php'); |
| | | require(AJV_DIR . '/content/writing.php'); |
| | | |
| | | add_filter('jvb_content', 'ajv_content'); |
| | | //add_filter('the_content', 'ajv_content'); |
| | | function ajv_content($content): array |
| | | { |
| | | return [ |
| | |
| | | 'quickEdit' => true, |
| | | ], |
| | | 'similar' => [ |
| | | 'type' => 'taxonomy', |
| | | 'taxonomy_type' => 'reference', |
| | | 'type' => 'selector', |
| | | 'subtype' => 'taxonomy', |
| | | 'isReference' => true, |
| | | 'taxonomy' => 'theme', |
| | | 'label' => 'Similar Themes', |
| | | ], |